Adds the missing booking question field types to routing forms so that both event-type booking questions and routing forms share the same set of available field types.
New field types added to routing forms:
URL — text input with URL type validation
Address — address input with map pin icon
Multiple Emails — multi-email input for collecting multiple email addresses
Radio Group — single-choice selection rendered as radio buttons
Checkbox Group — multiple-choice selection rendered as checkboxes
Checkbox — single boolean checkbox
Changes:
FieldTypes.ts — Added new types to the RoutingFormFieldType enum, validation function, and FieldTypes array
config.ts — Added RAQB widget and type definitions for new field types
uiConfig.tsx — Added factory functions and widget mappings for the UI layer
FormEdit.tsx — Extended the options editor to also show for radio and checkbox group types
getQueryBuilderConfig.ts — Extended listValues support to radio and checkbox types for routing logic
transformResponse.ts — Added value transformation for radio (like select) and checkbox (like multiselect) types
Design decisions:
Radio maps to RAQB select type (single value) and Checkbox Group maps to multiselect type (array of values), ensuring routing logic operators work correctly
URL, Address, and Multiple Emails map to RAQB text type for simple text-based routing operators
Boolean maps to text type in RAQB config
The approach extends the existing routing form infrastructure rather than replacing it, keeping the change minimal and backward-compatible
How should this be tested?
Navigate to Routing Forms - Create/Edit a form
Add a new field and verify the new field types appear in the Type dropdown
For Radio Group and Checkbox Group, verify options can be added/removed
Fill out the form and verify each new field type renders and captures input correctly
Set up routing rules using the new field types and verify routing logic works
Mandatory Tasks (DO NOT REMOVE)
I have self-reviewed the code (A decent size PR without self-review might be rejected).
I have updated the developer docs in /docs if this PR makes changes that would require a documentation change. N/A
I confirm automated tests are in place that prove my fix is effective or that my feature works.