@riverbankcms/sdk 0.144.0 → 0.146.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/{PreviewEditorSidebar-CQZNnFiM.mjs → PreviewEditorSidebar-kg2r2Fyi.mjs} +4 -4
  3. package/dist/{PreviewEditorUI-DCNxnmI0.mjs → PreviewEditorUI-sWMLp5dT.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BCYICImX.mjs → PreviewQueryProvider-Cg51xq1w.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-BJolUbr1.mjs → SdkPreviewModeRuntime-h2ti3Hch.mjs} +688 -519
  6. package/dist/{SiteChromeCustomizeContext-CKgEpoxi.mjs → SiteChromeCustomizeContext-DEACFH9m.mjs} +3381 -2017
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +5643 -66
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +513 -6
  9. package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +49 -0
  10. package/dist/_dts/api/src/appointmentServiceCategoryEndpoints.d.ts +75 -0
  11. package/dist/_dts/api/src/appointmentServiceContracts.d.ts +80 -0
  12. package/dist/_dts/api/src/appointmentSetup.d.ts +8 -1
  13. package/dist/_dts/api/src/bookingConfig.d.ts +8 -1
  14. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +10 -26
  15. package/dist/_dts/api/src/bookingManagementEventEndpointTypes.d.ts +45 -1
  16. package/dist/_dts/api/src/clientErrorReporting.d.ts +50 -0
  17. package/dist/_dts/api/src/communications.d.ts +32 -24
  18. package/dist/_dts/api/src/contentRuntime.d.ts +3 -5
  19. package/dist/_dts/api/src/endpoints.d.ts +316 -134
  20. package/dist/_dts/api/src/event-visibility.d.ts +20 -0
  21. package/dist/_dts/api/src/eventManagementContracts.d.ts +56 -3
  22. package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +24 -0
  23. package/dist/_dts/api/src/eventPageWords.d.ts +19 -0
  24. package/dist/_dts/api/src/eventSeriesRegistrationEndpointDefinitions.d.ts +14 -0
  25. package/dist/_dts/api/src/index.d.ts +7 -1
  26. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
  27. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  28. package/dist/_dts/api/src/launchReadiness.d.ts +22 -2
  29. package/dist/_dts/api/src/launchRequirementPriority.d.ts +3 -0
  30. package/dist/_dts/api/src/newsletterCampaignCommandEndpoints.d.ts +13 -0
  31. package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +30 -11
  32. package/dist/_dts/api/src/occurrenceScheduling.d.ts +10 -0
  33. package/dist/_dts/api/src/onboarding/confirmationResend.d.ts +3 -0
  34. package/dist/_dts/api/src/pageSurfaceEndpoints.d.ts +44 -0
  35. package/dist/_dts/api/src/participantMessaging.d.ts +11 -1
  36. package/dist/_dts/api/src/publicBookingService.d.ts +35 -1
  37. package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +13 -0
  38. package/dist/_dts/api/src/publicNewsletterEndpointDefinitions.d.ts +58 -0
  39. package/dist/_dts/api/src/schemas/admin-observability-logs.d.ts +3 -3
  40. package/dist/_dts/api/src/sdk-event-upsert.d.ts +40 -1
  41. package/dist/_dts/api/src/sdkContracts.d.ts +3 -42
  42. package/dist/_dts/api/src/sdkCourseBooking.d.ts +30 -0
  43. package/dist/_dts/api/src/sdkEventEndpointDefinitions.d.ts +76 -0
  44. package/dist/_dts/api/src/sdkEventLifecycle.d.ts +37 -0
  45. package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +18 -0
  46. package/dist/_dts/api/src/sdkPageDesign.d.ts +388 -0
  47. package/dist/_dts/api/src/sdkPageDesignEndpointDefinitions.d.ts +22 -0
  48. package/dist/_dts/api/src/sdkPullEventContracts.d.ts +46 -0
  49. package/dist/_dts/api/src/siteAddressEndpoints.d.ts +29 -0
  50. package/dist/_dts/api/src/siteManagementEndpointDefinitions.d.ts +49 -0
  51. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +4 -38
  52. package/dist/_dts/api/src/siteOnboarding.d.ts +75 -9
  53. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -1
  54. package/dist/_dts/api/src/types.d.ts +8 -1
  55. package/dist/_dts/api/src/wholeSeriesRuns.d.ts +14 -0
  56. package/dist/_dts/blocks/src/PageRenderer.d.ts +4 -4
  57. package/dist/_dts/blocks/src/bindings/index.d.ts +2 -2
  58. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +24 -0
  59. package/dist/_dts/blocks/src/index.d.ts +3 -1
  60. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +10 -0
  61. package/dist/_dts/blocks/src/pageRenderJoins.d.ts +68 -0
  62. package/dist/_dts/blocks/src/pageRenderPlan.d.ts +8 -27
  63. package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +7 -4
  64. package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +40 -23
  65. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +3 -1
  66. package/dist/_dts/blocks/src/server.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/blocks/appointment-services.d.ts +2 -0
  68. package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +2 -2
  69. package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +1 -1
  70. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +27 -5
  71. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +14 -1
  72. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
  73. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -47
  74. package/dist/_dts/blocks/src/system/icons/social.d.ts +1 -1
  75. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +29 -3
  76. package/dist/_dts/blocks/src/system/registry.d.ts +1 -1
  77. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -1
  78. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +22 -2
  79. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +3 -1
  80. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +57 -2
  81. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-categories.d.ts +29 -0
  82. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-choices.d.ts +13 -0
  83. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +3 -3
  84. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +13 -1
  85. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +2 -1
  86. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +23 -7
  87. package/dist/_dts/blocks/src/system/runtime/nodes/form.fields.d.ts +5 -0
  88. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.block-submission.d.ts +36 -0
  89. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.d.ts +1 -1
  90. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +6 -1
  91. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.parts.d.ts +46 -0
  92. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +20 -1
  93. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
  94. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +2 -1
  95. package/dist/_dts/blocks/src/system/runtime/shared/components/CheckboxChoice.d.ts +18 -0
  96. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -0
  97. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  98. package/dist/_dts/content-editor/src/primitives/previewEditableOutline.d.ts +2 -0
  99. package/dist/_dts/content-editor/src/ui/editorBlockEquality.d.ts +3 -0
  100. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +3 -3
  101. package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
  102. package/dist/_dts/core/src/appointment-service-categories.d.ts +108 -0
  103. package/dist/_dts/core/src/block-content-identity.d.ts +5 -0
  104. package/dist/_dts/core/src/editor-state.d.ts +2 -1
  105. package/dist/_dts/core/src/index.d.ts +2 -0
  106. package/dist/_dts/core/src/mailing-list-submission.d.ts +3 -1
  107. package/dist/_dts/core/src/public-event-booking-availability.d.ts +20 -1
  108. package/dist/_dts/core/src/public-profile.d.ts +12 -1
  109. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +711 -242
  110. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +3 -0
  111. package/dist/_dts/editor-blocks/src/block-editor/EmptyState.d.ts +13 -1
  112. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +2 -2
  113. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  114. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +16 -1
  115. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/types.d.ts +13 -0
  116. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +29 -0
  117. package/dist/_dts/preview-next/src/client/blocks/BoundaryControl.d.ts +7 -2
  118. package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +1 -1
  119. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +3 -3
  120. package/dist/_dts/preview-next/src/client/blocks/previewProjection/applyPreviewProjections.d.ts +1 -3
  121. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
  122. package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +2 -2
  123. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -1
  124. package/dist/_dts/sdk/src/client/runtimeCacheKeys.d.ts +8 -0
  125. package/dist/_dts/sdk/src/client/types.d.ts +1 -1
  126. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  127. package/dist/_dts/sdk/src/contracts/page.d.ts +7 -2
  128. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +5 -0
  129. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +2 -2
  130. package/dist/_dts/sdk/src/next/renderSdkContent.d.ts +0 -1
  131. package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -8
  132. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +4 -4
  133. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -4
  134. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +7 -2
  135. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +5 -2
  136. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +6 -1
  137. package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +2 -0
  138. package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +6 -2
  139. package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +5 -1
  140. package/dist/_dts/sdk/src/version.d.ts +1 -1
  141. package/dist/_dts/surfaces/src/index.d.ts +10 -0
  142. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  143. package/dist/_dts/theme-core/src/inputs/checkable.d.ts +42 -0
  144. package/dist/_dts/theme-core/src/inputs/inputGroup.d.ts +19 -0
  145. package/dist/_dts/theme-core/src/layout/boundaryCss.d.ts +3 -0
  146. package/dist/_dts/theme-core/src/site-styles/compositionBudget.d.ts +8 -0
  147. package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +3 -2
  148. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +1 -3
  149. package/dist/_dts/theme-core/src/site-styles/generatedDesignPipeline.d.ts +3 -0
  150. package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
  151. package/dist/_dts/theme-core/src/site-styles/joinTreatment.d.ts +132 -0
  152. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorBoundaries.d.ts +31 -0
  153. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +33 -29
  154. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +4 -4
  155. package/dist/_dts/theme-core/src/site-styles/pageFlowPresets.d.ts +36 -0
  156. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +4 -10
  157. package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +17 -4
  158. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +20 -74
  159. package/dist/_dts/theme-core/src/site-styles/sectionBoundaryComposition.d.ts +95 -0
  160. package/dist/_dts/theme-core/src/site-styles/sectionTransitions.d.ts +80 -518
  161. package/dist/_dts/theme-core/src/site-styles/siteStyleBlockPolicies.d.ts +9 -4
  162. package/dist/_dts/theme-core/src/site-styles/transitionCatalogue.d.ts +320 -0
  163. package/dist/_dts/theme-core/src/site-styles/types.d.ts +3 -18
  164. package/dist/_dts/ui/src/navigation-tabs.d.ts +2 -1
  165. package/dist/client/{BookingConsentAgreement-DoAILrkN.mjs → BookingConsentAgreement-BQKL045f.mjs} +2 -2
  166. package/dist/client/CheckboxChoice--W2n6yKs.mjs +24 -0
  167. package/dist/client/{DiscountCodeDisclosure-X528hUTf.mjs → DiscountCodeDisclosure-CsOtjFY7.mjs} +1 -1
  168. package/dist/client/{EventCombined.client-DSBVwq5m.mjs → EventCombined.client-BdRjVbhH.mjs} +6 -6
  169. package/dist/client/{EventListing.client-DmFAX7Vb.mjs → EventListing.client-DBxC6xOU.mjs} +2 -2
  170. package/dist/client/{LeafletStaticMap-BAqXdfhq.mjs → LeafletStaticMap-mHEJKrTs.mjs} +1 -1
  171. package/dist/client/{ThemedButton-BwNFVwi4.mjs → ThemedButton-CE5KYT6z.mjs} +1 -1
  172. package/dist/client/{accordion-DRhMdkbd.mjs → accordion-BEQNSptH.mjs} +1 -1
  173. package/dist/client/{bookingForm-iJ_nCsNF.mjs → bookingForm-AMr-s5vw.mjs} +168 -95
  174. package/dist/client/bookings.mjs +239 -110
  175. package/dist/client/{carousel-D8zuffZr.mjs → carousel-Bbt_QgJy.mjs} +1 -1
  176. package/dist/client/{cart-DeMGJViN.mjs → cart-CnWi30zJ.mjs} +3 -3
  177. package/dist/client/{checkout-DXc06Km2.mjs → checkout-f3nkWgd4.mjs} +3 -3
  178. package/dist/client/client.mjs +3222 -1612
  179. package/dist/client/{context-CDLCfDep.mjs → context-Bc8T6pCe.mjs} +1 -1
  180. package/dist/client/{dates-ClFx7Epy.mjs → dates-DUsCEzLb.mjs} +2 -3
  181. package/dist/client/{eventCalendar-BaGpnOGN.mjs → eventCalendar-CKwgXui5.mjs} +9 -9
  182. package/dist/client/{eventCombined-ywONOx2m.mjs → eventCombined-CBAOSTGR.mjs} +4 -4
  183. package/dist/client/{eventDetails-B2LlOTYY.mjs → eventDetails-Dh-_WiBD.mjs} +4 -4
  184. package/dist/client/{eventListing-CMgxWpqP.mjs → eventListing-CA3frIH5.mjs} +4 -4
  185. package/dist/client/{eventRegistration-BarLDNHR.mjs → eventRegistration-BHtsgdcg.mjs} +21 -22
  186. package/dist/client/{form-BjqKaBJ7.mjs → form-C2h3YAcg.mjs} +135 -104
  187. package/dist/client/{headerSection-CP4XDwz1.mjs → headerSection-lwMuMTH9.mjs} +3 -3
  188. package/dist/client/hooks.mjs +1023 -148
  189. package/dist/client/{locationMap-C5gW-d-w.mjs → locationMap-DJ2bLODV.mjs} +3 -3
  190. package/dist/client/{newsletterForm-afXlVSA0.mjs → newsletterForm-8Pu5K32g.mjs} +225 -102
  191. package/dist/client/{pricing-Bl1CAl28.mjs → pricing-HHx3IgBz.mjs} +1 -1
  192. package/dist/client/{productDetail-CvQ3jWQe.mjs → productDetail-C_1odnAf.mjs} +3 -3
  193. package/dist/client/{productList-U874PGO7.mjs → productList-CtCv-Nmx.mjs} +3 -3
  194. package/dist/client/{propsDecoder-DPXtCZWP.mjs → propsDecoder-Dcgsncxb.mjs} +111 -55
  195. package/dist/client/rendering/client.mjs +1389 -722
  196. package/dist/client/rendering/islands.mjs +17 -17
  197. package/dist/client/rendering.mjs +3136 -1400
  198. package/dist/client/{routeIslandApiConfig-NGYiUWXu.mjs → routeIslandApiConfig-CWLP7wu3.mjs} +1 -1
  199. package/dist/client/{scrollToBlock-0-C3DVhK.mjs → scrollToBlock-BNgaEUpo.mjs} +1 -1
  200. package/dist/client/{shop-BXjXhM9P.mjs → shop-DQXrQ8kJ.mjs} +7 -7
  201. package/dist/client/{shop-commerce-BZ6UlWJ7.mjs → shop-commerce-B88zmWWo.mjs} +6 -6
  202. package/dist/client/{shop-commerce-store-DlSBXb3D.mjs → shop-commerce-store-DtSfkKuX.mjs} +1 -1
  203. package/dist/client/{shopShared-kkEOiLPA.mjs → shopShared-cuaONpkJ.mjs} +4 -4
  204. package/dist/client/{useEventFilters-zvnnE1ro.mjs → useEventFilters-Bukew6Gb.mjs} +6 -6
  205. package/dist/preview-next/before-render.mjs +500 -165
  206. package/dist/preview-next/client/runtime.mjs +4 -4
  207. package/dist/preview-next/editor-base.css +11 -0
  208. package/dist/preview-next/keepAlive.mjs +460 -165
  209. package/dist/preview-next/middleware.mjs +461 -165
  210. package/dist/{previewAuthStore-JA6-I_sL.mjs → previewAuthStore-h5IgbSp4.mjs} +485 -165
  211. package/dist/{sdk-runtime-DFJlQt3q.mjs → sdk-runtime-DTc1uIXn.mjs} +2 -2
  212. package/dist/{separator-o8GHb1xh.mjs → separator-BpHS1KZK.mjs} +1 -1
  213. package/dist/server/components.mjs +3088 -1307
  214. package/dist/server/config-validation.mjs +927 -109
  215. package/dist/server/config.mjs +927 -109
  216. package/dist/server/data.mjs +939 -110
  217. package/dist/server/index.mjs +513 -169
  218. package/dist/server/next.mjs +2874 -1195
  219. package/dist/server/page-converter.mjs +420 -79
  220. package/dist/server/prebuild.mjs +1 -1
  221. package/dist/server/rendering/server.mjs +3071 -1289
  222. package/dist/server/rendering.mjs +3169 -1350
  223. package/dist/server/routing.mjs +1085 -159
  224. package/dist/server/server.mjs +1042 -291
  225. package/dist/server/theme-bridge.mjs +1658 -137
  226. package/dist/server/theme.mjs +6 -4
  227. package/dist/styles/index.css +186 -65
  228. package/package.json +2 -1
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { B as calendarWindowPageSchema } from "./propsDecoder-DPXtCZWP.mjs";
2
+ import { H as calendarWindowPageSchema } from "./propsDecoder-Dcgsncxb.mjs";
3
3
  import { createContext, useContext, useMemo } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region ../blocks/src/system/runtime/api/deduplication.ts
@@ -1,5 +1,5 @@
1
- import { Xt as formatBookingDate, Zt as formatBookingDateParts, cn as toScheduledBookingDateTime, en as formatBookingTime, lt as resolveRuntimeEventDestination, on as toBookingTimeZone, sn as toScheduledBookingDateRange, yn as assertNever } from "./propsDecoder-DPXtCZWP.mjs";
2
- import { a as canJoinEventWaitlistOnAnyMode, p as isEventFull } from "./pricing-Bl1CAl28.mjs";
1
+ import { $t as formatBookingDateParts, Qt as formatBookingDate, cn as toBookingTimeZone, dt as resolveRuntimeEventDestination, ln as toScheduledBookingDateRange, nn as formatBookingTime, un as toScheduledBookingDateTime, xn as assertNever } from "./propsDecoder-Dcgsncxb.mjs";
2
+ import { a as canJoinEventWaitlistOnAnyMode, p as isEventFull } from "./pricing-HHx3IgBz.mjs";
3
3
  //#region ../blocks/src/system/runtime/nodes/events/domain/cta.ts
4
4
  /**
5
5
  * Booking call-to-action resolution for events: where an event links to and
@@ -16,7 +16,6 @@ function closedEventBookingLabel(reason) {
16
16
  case "series_archived":
17
17
  case "parent_archived":
18
18
  case "parent_inconsistent":
19
- case "not_public":
20
19
  case "already_started":
21
20
  case "enrollment_closed": return "Registration closed";
22
21
  default: return assertNever(reason);
@@ -1,15 +1,15 @@
1
1
  "use client";
2
2
  import { O as clsx } from "./colorStyles-CuJBiS-1.mjs";
3
- import { $ as addDays, G as buildEventRuntimeFilters, H as resolveCalendarReadProfile, O as buildEventCalendarListingRender, Q as MONTH_NAMES, at as getWeekCalendarDays, it as getOrderedDayNames, nt as formatDateKey, ot as isSameCalendarDay, rt as getDayOfWeek, st as isToday, t as defineIslandPropsDecoder } from "./propsDecoder-DPXtCZWP.mjs";
4
- import { o as EventFilters, s as formatEventTeacherLine, t as useEventFilters } from "./useEventFilters-zvnnE1ro.mjs";
5
- import { d as getEventAvailabilityStatus, o as formatEventRemainingPlaces, p as isEventFull } from "./pricing-Bl1CAl28.mjs";
6
- import { a as formatTime, c as getLocalDateKey, d as resolveEventLinkProps, l as getLocalMinuteOfDay, o as groupEventsByDate, s as resolveEventTimeZone } from "./dates-ClFx7Epy.mjs";
7
- import { a as WeekAgendaView, c as CalendarDayCell, d as useCalendarEvents, i as useHydrationReady, l as EventModalProvider, o as CalendarNavigationChevron, r as EventModals, s as CalendarDayHeaders, t as EventCombinedClient, u as useEventModal } from "./EventCombined.client-DSBVwq5m.mjs";
8
- import { t as BlockApiProvider } from "./context-CDLCfDep.mjs";
9
- import { n as ThemedButtonLink, t as ThemedButton } from "./ThemedButton-BwNFVwi4.mjs";
3
+ import { A as buildEventCalendarListingRender, W as resolveCalendarReadProfile, at as getDayOfWeek, ct as isSameCalendarDay, et as MONTH_NAMES, it as formatDateKey, lt as isToday, ot as getOrderedDayNames, q as buildEventRuntimeFilters, st as getWeekCalendarDays, t as defineIslandPropsDecoder, tt as addDays } from "./propsDecoder-Dcgsncxb.mjs";
4
+ import { o as EventFilters, s as formatEventTeacherLine, t as useEventFilters } from "./useEventFilters-Bukew6Gb.mjs";
5
+ import { d as getEventAvailabilityStatus, o as formatEventRemainingPlaces, p as isEventFull } from "./pricing-HHx3IgBz.mjs";
6
+ import { a as formatTime, c as getLocalDateKey, d as resolveEventLinkProps, l as getLocalMinuteOfDay, o as groupEventsByDate, s as resolveEventTimeZone } from "./dates-DUsCEzLb.mjs";
7
+ import { a as WeekAgendaView, c as CalendarDayCell, d as useCalendarEvents, i as useHydrationReady, l as EventModalProvider, o as CalendarNavigationChevron, r as EventModals, s as CalendarDayHeaders, t as EventCombinedClient, u as useEventModal } from "./EventCombined.client-BdRjVbhH.mjs";
8
+ import { t as BlockApiProvider } from "./context-Bc8T6pCe.mjs";
9
+ import { n as ThemedButtonLink, t as ThemedButton } from "./ThemedButton-CE5KYT6z.mjs";
10
10
  import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
11
- import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-NGYiUWXu.mjs";
12
- import { n as EventListingController } from "./EventListing.client-DmFAX7Vb.mjs";
11
+ import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-CWLP7wu3.mjs";
12
+ import { n as EventListingController } from "./EventListing.client-DBxC6xOU.mjs";
13
13
  import { useEffect, useId, useMemo, useState } from "react";
14
14
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
15
15
  //#region ../calendar/src/lane-packing.ts
@@ -1,8 +1,8 @@
1
- import { t as defineIslandPropsDecoder } from "./propsDecoder-DPXtCZWP.mjs";
2
- import { n as EventCombinedIslandClient } from "./EventCombined.client-DSBVwq5m.mjs";
3
- import { t as BlockApiProvider } from "./context-CDLCfDep.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-Dcgsncxb.mjs";
2
+ import { n as EventCombinedIslandClient } from "./EventCombined.client-BdRjVbhH.mjs";
3
+ import { t as BlockApiProvider } from "./context-Bc8T6pCe.mjs";
4
4
  import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
5
- import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-NGYiUWXu.mjs";
5
+ import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-CWLP7wu3.mjs";
6
6
  import "react";
7
7
  import { jsx } from "react/jsx-runtime";
8
8
  //#region src/rendering/islands/enhancers/eventCombined.tsx
@@ -1,8 +1,8 @@
1
- import { A as resolveEventRegistrationScopedEvents, Kt as CANCELLED_SESSION_STATUS, _n as formatCurrencyAmount, cn as toScheduledBookingDateTime, dn as isPublicEventPricingOptionDisplayable, fn as publicEventPricingCurrency, gn as publicEventPricingType, ln as formatBookingPriceDisplay, nn as getBookingLocalDateKey, on as toBookingTimeZone, pn as publicEventPricingDisplay, qt as resolveWholeSeriesBookingPhase, t as defineIslandPropsDecoder } from "./propsDecoder-DPXtCZWP.mjs";
2
- import { l as formatTotalCapacity, n as formatEventPriceAmount, t as formatEventPrice } from "./pricing-Bl1CAl28.mjs";
3
- import { d as resolveEventLinkProps, r as formatEventDateParts } from "./dates-ClFx7Epy.mjs";
1
+ import { Jt as CANCELLED_SESSION_STATUS, M as resolveEventRegistrationScopedEvents, Yt as resolveWholeSeriesBookingPhase, cn as toBookingTimeZone, dn as formatBookingPriceDisplay, hn as publicEventPricingDisplay, in as getBookingLocalDateKey, mn as publicEventPricingCurrency, pn as isPublicEventPricingOptionDisplayable, t as defineIslandPropsDecoder, un as toScheduledBookingDateTime, vn as publicEventPricingType, yn as formatCurrencyAmount } from "./propsDecoder-Dcgsncxb.mjs";
2
+ import { l as formatTotalCapacity, n as formatEventPriceAmount, t as formatEventPrice } from "./pricing-HHx3IgBz.mjs";
3
+ import { d as resolveEventLinkProps, r as formatEventDateParts } from "./dates-DUsCEzLb.mjs";
4
4
  import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
5
- import { t as LeafletStaticMap } from "./LeafletStaticMap-BAqXdfhq.mjs";
5
+ import { t as LeafletStaticMap } from "./LeafletStaticMap-mHEJKrTs.mjs";
6
6
  import "react";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  //#region ../blocks/src/system/runtime/nodes/events/shared/eventProductEligibility.ts
@@ -1,8 +1,8 @@
1
- import { t as defineIslandPropsDecoder } from "./propsDecoder-DPXtCZWP.mjs";
2
- import { t as BlockApiProvider } from "./context-CDLCfDep.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-Dcgsncxb.mjs";
2
+ import { t as BlockApiProvider } from "./context-Bc8T6pCe.mjs";
3
3
  import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
4
- import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-NGYiUWXu.mjs";
5
- import { t as EventListingClient } from "./EventListing.client-DmFAX7Vb.mjs";
4
+ import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-CWLP7wu3.mjs";
5
+ import { t as EventListingClient } from "./EventListing.client-DBxC6xOU.mjs";
6
6
  import "react";
7
7
  import { jsx } from "react/jsx-runtime";
8
8
  //#region src/rendering/islands/enhancers/eventListing.tsx
@@ -1,20 +1,21 @@
1
1
  "use client";
2
- import { a as resolveBookingPaymentDueNowCents, i as buildBookingPaymentSelectionViewModel, n as StepIndicator$1, o as formatPrice, r as usePolling, t as BookingConsentAgreement } from "./BookingConsentAgreement-DoAILrkN.mjs";
3
- import { A as resolveEventRegistrationScopedEvents, C as resolveRegistrationTarget, D as getWizardStepsForContext, E as getStepNumber, Qt as formatBookingDateTime, S as resolveEventRequiresPayment, T as WIZARD_STEPS, Xt as formatBookingDate, _ as toRegistrationEvents, _n as formatCurrencyAmount, b as findPreSelectedEvent, cn as toScheduledBookingDateTime, en as formatBookingTime, fn as publicEventPricingCurrency, g as getRegistrationStartAt, gn as publicEventPricingType, h as buildEventRegistrationDisplayFromScopedEvents, hn as publicEventPricingStrategy, mn as publicEventPricingOptions, on as toBookingTimeZone, t as defineIslandPropsDecoder, ut as groupPublicEventsByRun, v as toWholeSeriesRegistrationEvents, vn as parseCurrencyCode, w as toRegistrationRequestSubject, x as resolveDiscountContext, y as findEventByOccurrenceId, zt as assertNever } from "./propsDecoder-DPXtCZWP.mjs";
4
- import { a as canJoinEventWaitlistOnAnyMode, c as formatTicketTypeRemaining, f as getRemainingPlaces, h as selectMostOpenCapacitySource, i as canJoinEventWaitlist, m as selectEventCapacitySource, o as formatEventRemainingPlaces, p as isEventFull, r as formatEventPriceDisplay, s as formatRemainingPlaces, u as getEventAvailability } from "./pricing-Bl1CAl28.mjs";
5
- import { n as useBlockApi, r as BlockApiError, t as BlockApiProvider } from "./context-CDLCfDep.mjs";
2
+ import { a as resolveBookingPaymentDueNowCents, i as buildBookingPaymentSelectionViewModel, n as StepIndicator$1, o as formatPrice, r as usePolling, t as BookingConsentAgreement } from "./BookingConsentAgreement-BQKL045f.mjs";
3
+ import { C as resolveDiscountContext, D as WIZARD_STEPS, E as toRegistrationRequestSubject, M as resolveEventRegistrationScopedEvents, O as getStepNumber, Qt as formatBookingDate, S as findPreSelectedEvent, T as resolveRegistrationTarget, Vt as assertNever, _ as buildEventRegistrationDisplayFromScopedEvents, _n as publicEventPricingStrategy, b as toWholeSeriesRegistrationEvents, bn as parseCurrencyCode, cn as toBookingTimeZone, en as formatBookingDateTime, ft as groupPublicEventsByRun, gn as publicEventPricingOptions, k as getWizardStepsForContext, mn as publicEventPricingCurrency, nn as formatBookingTime, t as defineIslandPropsDecoder, un as toScheduledBookingDateTime, v as getRegistrationStartAt, vn as publicEventPricingType, w as resolveEventRequiresPayment, x as findEventByOccurrenceId, y as toRegistrationEvents, yn as formatCurrencyAmount } from "./propsDecoder-Dcgsncxb.mjs";
4
+ import { a as canJoinEventWaitlistOnAnyMode, c as formatTicketTypeRemaining, f as getRemainingPlaces, h as selectMostOpenCapacitySource, i as canJoinEventWaitlist, m as selectEventCapacitySource, o as formatEventRemainingPlaces, p as isEventFull, r as formatEventPriceDisplay, s as formatRemainingPlaces, u as getEventAvailability } from "./pricing-HHx3IgBz.mjs";
5
+ import { n as useBlockApi, r as BlockApiError, t as BlockApiProvider } from "./context-Bc8T6pCe.mjs";
6
6
  import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
7
- import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-0-C3DVhK.mjs";
8
- import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-X528hUTf.mjs";
9
- import { i as SpinnerNode, t as ThemedButton } from "./ThemedButton-BwNFVwi4.mjs";
7
+ import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-BNgaEUpo.mjs";
8
+ import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-CsOtjFY7.mjs";
9
+ import { i as SpinnerNode, t as ThemedButton } from "./ThemedButton-CE5KYT6z.mjs";
10
10
  import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
11
11
  import { n as getFieldValidationControlProps, t as FieldValidationMessage } from "./FieldValidationMessage-AYanWFb-.mjs";
12
12
  import { t as buildCheckoutReturnUrls } from "./checkoutUrls-CW3-78uu.mjs";
13
+ import { t as CheckboxChoice } from "./CheckboxChoice--W2n6yKs.mjs";
13
14
  import { t as createBodyThemePortalRoot } from "./themePortalRoot-AGs4cE7t.mjs";
14
15
  import { n as consumeSearchParams } from "./urlParams-D71VXFGx.mjs";
15
16
  import { t as CrossIcon } from "./CrossIcon-Dn1KRKW5.mjs";
16
17
  import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
17
- import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-NGYiUWXu.mjs";
18
+ import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-CWLP7wu3.mjs";
18
19
  import { t as createLucideIcon } from "./createLucideIcon-PaLVMov4.mjs";
19
20
  import { t as ModalShell } from "./ModalShell-CqkBvBIC.mjs";
20
21
  import React, { useCallback, useEffect, useId, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore } from "react";
@@ -4550,26 +4551,24 @@ function EventConsentField({ consent, error, formData, idBase, onChange }) {
4550
4551
  title: consent.title,
4551
4552
  titleId: `${idBase}-consent-title`
4552
4553
  }),
4553
- /* @__PURE__ */ jsxs("label", {
4554
- className: "er-label rb-flex rb-items-start rb-gap-2 rb-cursor-pointer",
4555
- children: [
4556
- /* @__PURE__ */ jsx("input", {
4557
- "aria-describedby": error ? errorId : void 0,
4558
- className: "form-checkbox rb-mt-0.5",
4559
- checked: formData.consentAccepted === true,
4560
- onChange: (event) => onChange({
4561
- ...formData,
4562
- consentAccepted: event.target.checked
4563
- }),
4564
- type: "checkbox"
4565
- }),
4554
+ /* @__PURE__ */ jsx(CheckboxChoice, {
4555
+ "aria-describedby": error ? errorId : void 0,
4556
+ "aria-invalid": error ? true : void 0,
4557
+ checked: formData.consentAccepted === true,
4558
+ onChange: (event) => onChange({
4559
+ ...formData,
4560
+ consentAccepted: event.target.checked
4561
+ }),
4562
+ label: /* @__PURE__ */ jsxs(Fragment, { children: [
4566
4563
  consent.checkboxLabel,
4567
4564
  " ",
4568
4565
  /* @__PURE__ */ jsx("span", {
4569
4566
  className: "er-required",
4570
4567
  children: "*"
4571
4568
  })
4572
- ]
4569
+ ] }),
4570
+ presentation: "tile",
4571
+ className: "er-consent-check"
4573
4572
  }),
4574
4573
  error ? /* @__PURE__ */ jsx(FieldValidationMessage, {
4575
4574
  id: errorId,
@@ -1,10 +1,11 @@
1
1
  "use client";
2
2
  import { O as clsx } from "./colorStyles-CuJBiS-1.mjs";
3
- import { Ht as ok, Vt as err, t as defineIslandPropsDecoder, zt as assertNever } from "./propsDecoder-DPXtCZWP.mjs";
4
- import { n as useBlockApi, t as BlockApiProvider } from "./context-CDLCfDep.mjs";
3
+ import { Ut as err, Vt as assertNever, Wt as ok, t as defineIslandPropsDecoder } from "./propsDecoder-Dcgsncxb.mjs";
4
+ import { n as useBlockApi, t as BlockApiProvider } from "./context-Bc8T6pCe.mjs";
5
5
  import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
6
- import { t as ThemedButton } from "./ThemedButton-BwNFVwi4.mjs";
6
+ import { t as ThemedButton } from "./ThemedButton-CE5KYT6z.mjs";
7
7
  import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
8
+ import { t as CheckboxChoice } from "./CheckboxChoice--W2n6yKs.mjs";
8
9
  import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
9
10
  import { useReducer, useRef, useState } from "react";
10
11
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -87,6 +88,136 @@ function useFormSubmission() {
87
88
  };
88
89
  }
89
90
  //#endregion
91
+ //#region ../blocks/src/system/runtime/nodes/form.fields.tsx
92
+ function fieldBasics(field) {
93
+ return {
94
+ inputId: `f_${field.id}`,
95
+ label: String(field.label ?? field.id),
96
+ required: Boolean(field.required)
97
+ };
98
+ }
99
+ function textInputType(type) {
100
+ return type === "email" || type === "url" || type === "tel" || type === "number" ? type : "text";
101
+ }
102
+ function textInputConstraints(field, inputType) {
103
+ if (inputType === "number") return {
104
+ ...typeof field.min === "number" ? { min: field.min } : {},
105
+ ...typeof field.max === "number" ? { max: field.max } : {}
106
+ };
107
+ return {
108
+ ...typeof field.minLength === "number" ? { minLength: field.minLength } : {},
109
+ ...typeof field.maxLength === "number" ? { maxLength: field.maxLength } : {},
110
+ ...typeof field.pattern === "string" && field.pattern ? { pattern: field.pattern } : {}
111
+ };
112
+ }
113
+ function LabelledField({ basics, children }) {
114
+ return /* @__PURE__ */ jsxs("div", {
115
+ className: "fb-field",
116
+ children: [/* @__PURE__ */ jsx("label", {
117
+ htmlFor: basics.inputId,
118
+ className: "form-label",
119
+ children: basics.label
120
+ }), children]
121
+ });
122
+ }
123
+ function TextareaField({ field }) {
124
+ const basics = fieldBasics(field);
125
+ return /* @__PURE__ */ jsx(LabelledField, {
126
+ basics,
127
+ children: /* @__PURE__ */ jsx("textarea", {
128
+ id: basics.inputId,
129
+ name: field.id,
130
+ required: basics.required,
131
+ placeholder: field.placeholder,
132
+ rows: field.rows,
133
+ className: "form-textarea"
134
+ })
135
+ });
136
+ }
137
+ function SelectField({ field }) {
138
+ const basics = fieldBasics(field);
139
+ const options = field.options ?? [];
140
+ const multiple = Boolean(field.multiple);
141
+ return /* @__PURE__ */ jsx(LabelledField, {
142
+ basics,
143
+ children: /* @__PURE__ */ jsxs("select", {
144
+ id: basics.inputId,
145
+ name: field.id,
146
+ multiple,
147
+ required: basics.required,
148
+ className: "form-select",
149
+ children: [!multiple && /* @__PURE__ */ jsx("option", {
150
+ value: "",
151
+ children: "Select…"
152
+ }), options.map((opt) => /* @__PURE__ */ jsx("option", {
153
+ value: opt.value,
154
+ children: opt.label
155
+ }, opt.value))]
156
+ })
157
+ });
158
+ }
159
+ function RadioField({ field }) {
160
+ const basics = fieldBasics(field);
161
+ const options = field.options ?? [];
162
+ return /* @__PURE__ */ jsxs("fieldset", {
163
+ className: "fb-fieldset",
164
+ children: [/* @__PURE__ */ jsx("legend", {
165
+ className: "form-label",
166
+ children: basics.label
167
+ }), options.map((opt) => /* @__PURE__ */ jsxs("label", {
168
+ className: "form-check",
169
+ children: [/* @__PURE__ */ jsx("input", {
170
+ type: "radio",
171
+ name: field.id,
172
+ value: opt.value,
173
+ required: basics.required,
174
+ className: "form-radio"
175
+ }), /* @__PURE__ */ jsx("span", {
176
+ className: "form-check-label",
177
+ children: opt.label
178
+ })]
179
+ }, opt.value))]
180
+ });
181
+ }
182
+ function TextInputField({ field, type }) {
183
+ const basics = fieldBasics(field);
184
+ const inputType = textInputType(type);
185
+ return /* @__PURE__ */ jsx(LabelledField, {
186
+ basics,
187
+ children: /* @__PURE__ */ jsx("input", {
188
+ id: basics.inputId,
189
+ name: field.id,
190
+ type: inputType,
191
+ required: basics.required,
192
+ placeholder: field.placeholder,
193
+ ...textInputConstraints(field, inputType),
194
+ className: "form-input"
195
+ })
196
+ });
197
+ }
198
+ function FormFieldControl({ field }) {
199
+ const type = String(field.type ?? "text");
200
+ switch (type) {
201
+ case "textarea": return /* @__PURE__ */ jsx(TextareaField, { field });
202
+ case "select": return /* @__PURE__ */ jsx(SelectField, { field });
203
+ case "radio": return /* @__PURE__ */ jsx(RadioField, { field });
204
+ case "checkbox":
205
+ case "consent": {
206
+ const basics = fieldBasics(field);
207
+ return /* @__PURE__ */ jsx(CheckboxChoice, {
208
+ name: field.id,
209
+ required: basics.required,
210
+ label: basics.label,
211
+ presentation: type === "consent" ? "tile" : "row"
212
+ });
213
+ }
214
+ default: return /* @__PURE__ */ jsx(TextInputField, {
215
+ field,
216
+ type
217
+ });
218
+ }
219
+ }
220
+ //#endregion
90
221
  //#region ../blocks/src/system/runtime/nodes/form.client.tsx
91
222
  const FormNodeClient = ({ render }) => {
92
223
  const form = render.display.form;
@@ -100,107 +231,7 @@ const FormNodeClient = ({ render }) => {
100
231
  children: "Missing or unknown form."
101
232
  });
102
233
  const groups = render.display.groups;
103
- const renderField = (field) => {
104
- const inputId = `f_${field.id}`;
105
- const label = String(field.label ?? field.id);
106
- const required = Boolean(field.required);
107
- const type = String(field.type ?? "text");
108
- if (type === "textarea") return /* @__PURE__ */ jsxs("div", {
109
- className: "fb-field",
110
- children: [/* @__PURE__ */ jsx("label", {
111
- htmlFor: inputId,
112
- className: "form-label",
113
- children: label
114
- }), /* @__PURE__ */ jsx("textarea", {
115
- id: inputId,
116
- name: field.id,
117
- required,
118
- placeholder: field.placeholder,
119
- rows: field.rows,
120
- className: "form-textarea"
121
- })]
122
- }, field.id);
123
- if (type === "select") {
124
- const options = field.options ?? [];
125
- const multiple = Boolean(field.multiple);
126
- return /* @__PURE__ */ jsxs("div", {
127
- className: "fb-field",
128
- children: [/* @__PURE__ */ jsx("label", {
129
- htmlFor: inputId,
130
- className: "form-label",
131
- children: label
132
- }), /* @__PURE__ */ jsxs("select", {
133
- id: inputId,
134
- name: field.id,
135
- multiple,
136
- required,
137
- className: "form-select",
138
- children: [!multiple && /* @__PURE__ */ jsx("option", {
139
- value: "",
140
- children: "Select…"
141
- }), options.map((opt) => /* @__PURE__ */ jsx("option", {
142
- value: opt.value,
143
- children: opt.label
144
- }, opt.value))]
145
- })]
146
- }, field.id);
147
- }
148
- if (type === "radio") {
149
- const options = field.options ?? [];
150
- return /* @__PURE__ */ jsxs("fieldset", {
151
- className: "fb-fieldset",
152
- children: [/* @__PURE__ */ jsx("legend", {
153
- className: "form-label",
154
- children: label
155
- }), options.map((opt) => /* @__PURE__ */ jsxs("label", {
156
- className: "fb-inline form-label",
157
- children: [/* @__PURE__ */ jsx("input", {
158
- type: "radio",
159
- name: field.id,
160
- value: opt.value,
161
- required,
162
- className: "form-radio"
163
- }), /* @__PURE__ */ jsx("span", { children: opt.label })]
164
- }, opt.value))]
165
- }, field.id);
166
- }
167
- if (type === "checkbox" || type === "consent") return /* @__PURE__ */ jsxs("label", {
168
- className: "fb-inline form-label",
169
- children: [/* @__PURE__ */ jsx("input", {
170
- type: "checkbox",
171
- name: field.id,
172
- required,
173
- className: "form-checkbox"
174
- }), /* @__PURE__ */ jsx("span", { children: label })]
175
- }, field.id);
176
- const inputType = type === "email" || type === "url" || type === "tel" || type === "number" ? type : "text";
177
- const extra = {};
178
- if (inputType === "text" || inputType === "email" || inputType === "url" || inputType === "tel") {
179
- if (typeof field.minLength === "number") extra.minLength = field.minLength;
180
- if (typeof field.maxLength === "number") extra.maxLength = field.maxLength;
181
- if (typeof field.pattern === "string" && field.pattern) extra.pattern = field.pattern;
182
- }
183
- if (inputType === "number") {
184
- if (typeof field.min === "number") extra.min = field.min;
185
- if (typeof field.max === "number") extra.max = field.max;
186
- }
187
- return /* @__PURE__ */ jsxs("div", {
188
- className: "fb-field",
189
- children: [/* @__PURE__ */ jsx("label", {
190
- htmlFor: inputId,
191
- className: "form-label",
192
- children: label
193
- }), /* @__PURE__ */ jsx("input", {
194
- id: inputId,
195
- name: field.id,
196
- type: inputType,
197
- required,
198
- placeholder: field.placeholder,
199
- ...extra,
200
- className: "form-input"
201
- })]
202
- }, field.id);
203
- };
234
+ const renderField = (field) => /* @__PURE__ */ jsx(FormFieldControl, { field }, field.id);
204
235
  const handleSubmit = async (e) => {
205
236
  e.preventDefault();
206
237
  const formData = new FormData(e.currentTarget);
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { k as staticHeaderChromeRuntime, r as buildCartDisplay, t as defineIslandPropsDecoder } from "./propsDecoder-DPXtCZWP.mjs";
3
- import { n as ThemedButtonLink, t as ThemedButton } from "./ThemedButton-BwNFVwi4.mjs";
2
+ import { j as staticHeaderChromeRuntime, r as buildCartDisplay, t as defineIslandPropsDecoder } from "./propsDecoder-Dcgsncxb.mjs";
3
+ import { n as ThemedButtonLink, t as ThemedButton } from "./ThemedButton-CE5KYT6z.mjs";
4
4
  import { t as resolveDedicatedCheckoutPath } from "./checkoutRoute-ClwHwYVA.mjs";
5
- import { n as useCommerceCart } from "./shop-commerce-store-DlSBXb3D.mjs";
5
+ import { n as useCommerceCart } from "./shop-commerce-store-DtSfkKuX.mjs";
6
6
  import { t as ModalShell } from "./ModalShell-CqkBvBIC.mjs";
7
7
  import * as React$1 from "react";
8
8
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";