@riverbankcms/sdk 0.130.2 → 0.134.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 (405) hide show
  1. package/CHANGELOG.md +13 -3
  2. package/dist/{PreviewEditorSidebar-BY-1QdE2.mjs → PreviewEditorSidebar-DfRhJPFQ.mjs} +351 -95
  3. package/dist/{PreviewEditorUI-BS34jI9_.mjs → PreviewEditorUI-Dppxcr_g.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BD0kOjtI.mjs → PreviewQueryProvider-D51gQaG3.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-B1pWnhu-.mjs → SdkPreviewModeRuntime-8CyGCXir.mjs} +91 -21
  6. package/dist/{SiteChromeCustomizeContext-BhUG_72i.mjs → SiteChromeCustomizeContext-DVMTMvqA.mjs} +6896 -4335
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +1105 -533
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +363 -276
  9. package/dist/_dts/api/src/accountApi.d.ts +5 -5
  10. package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +1 -1
  11. package/dist/_dts/api/src/bookingConfig.d.ts +13 -9
  12. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +8 -19
  13. package/dist/_dts/api/src/bookingManagementEventEndpointTypes.d.ts +31 -2
  14. package/dist/_dts/api/src/bookingOperations.d.ts +2 -14
  15. package/dist/_dts/api/src/bookingVerticals.d.ts +1 -140
  16. package/dist/_dts/api/src/bookings.d.ts +2 -2
  17. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +45 -12
  18. package/dist/_dts/api/src/contentRuntime.d.ts +3 -2
  19. package/dist/_dts/api/src/courseEndpointDefinitions.d.ts +2 -2
  20. package/dist/_dts/api/src/courses.d.ts +1 -19
  21. package/dist/_dts/api/src/endpoints.d.ts +469 -349
  22. package/dist/_dts/api/src/event-destination-policy.d.ts +1 -1
  23. package/dist/_dts/api/src/eventManagementContracts.d.ts +91 -1
  24. package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +32 -0
  25. package/dist/_dts/api/src/giftingDashboard.d.ts +117 -0
  26. package/dist/_dts/api/src/giftingEndpointDefinitions.d.ts +124 -0
  27. package/dist/_dts/api/src/index.d.ts +4 -4
  28. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
  29. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  30. package/dist/_dts/api/src/media.d.ts +1 -0
  31. package/dist/_dts/api/src/navigation/contracts.d.ts +9 -6
  32. package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +3 -4
  33. package/dist/_dts/api/src/navigation/linkResolver.d.ts +6 -2
  34. package/dist/_dts/api/src/navigation/types.d.ts +23 -6
  35. package/dist/_dts/api/src/navigation.d.ts +1 -1
  36. package/dist/_dts/api/src/publicBookingService.d.ts +15 -0
  37. package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +11 -0
  38. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +28 -13
  39. package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +2 -0
  40. package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +3 -0
  41. package/dist/_dts/api/src/sdk-event-upsert.d.ts +3 -3
  42. package/dist/_dts/api/src/sdkBookingVerticalContracts.d.ts +29 -0
  43. package/dist/_dts/api/src/sdkContracts.d.ts +9 -32
  44. package/dist/_dts/api/src/sdkEndpointDefinitions.d.ts +23 -0
  45. package/dist/_dts/api/src/sdkSettingsContracts.d.ts +25 -0
  46. package/dist/_dts/api/src/sdkThemeCatalogContracts.d.ts +20 -0
  47. package/dist/_dts/api/src/sdkThemeWire.d.ts +64 -54
  48. package/dist/_dts/api/src/siteBanner.d.ts +4 -2
  49. package/dist/_dts/api/src/siteOnboarding.d.ts +3 -3
  50. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +4 -10
  51. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +0 -3
  52. package/dist/_dts/api/src/types.d.ts +2 -3
  53. package/dist/_dts/api/src/webhooks.d.ts +12 -12
  54. package/dist/_dts/blocks/src/PageRenderer.d.ts +2 -13
  55. package/dist/_dts/blocks/src/client.d.ts +1 -1
  56. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +9 -0
  57. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +54 -116
  58. package/dist/_dts/blocks/src/index.d.ts +4 -3
  59. package/dist/_dts/blocks/src/primitives/content/components/RichText.d.ts +2 -2
  60. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +1 -0
  61. package/dist/_dts/blocks/src/subroutes/fold.d.ts +2 -1
  62. package/dist/_dts/blocks/src/system/blocks/courses/shared/index.d.ts +0 -3
  63. package/dist/_dts/blocks/src/system/blocks/courses/shared/pricing.d.ts +2 -50
  64. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +1 -929
  65. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +1 -97
  66. package/dist/_dts/blocks/src/system/blocks/event-details.d.ts +39 -6
  67. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +2 -1
  68. package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +3 -3
  69. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -3
  70. package/dist/_dts/blocks/src/system/blocks/events/shared/filtering.d.ts +2 -2
  71. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +42 -20
  72. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +5 -9
  73. package/dist/_dts/blocks/src/system/blocks/events/whole-series/index.d.ts +3 -0
  74. package/dist/_dts/blocks/src/system/blocks/events/whole-series/pricing.d.ts +50 -0
  75. package/dist/_dts/blocks/src/system/blocks/events/whole-series/schemas.d.ts +135 -0
  76. package/dist/_dts/blocks/src/system/blocks/events/whole-series/types.d.ts +84 -0
  77. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +4 -4
  78. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +148 -148
  79. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +3 -2
  80. package/dist/_dts/blocks/src/system/blocks/shared/bookingConsent.d.ts +36 -0
  81. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +7 -8
  82. package/dist/_dts/blocks/src/system/manifest/hydrateLinks.d.ts +9 -2
  83. package/dist/_dts/blocks/src/system/manifest/resolveBlockData.d.ts +8 -0
  84. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +79 -79
  85. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  86. package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +2 -11
  87. package/dist/_dts/blocks/src/system/runtime/api/types/courses.d.ts +2 -0
  88. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +1 -0
  89. package/dist/_dts/blocks/src/system/runtime/blockComposition.d.ts +1 -1
  90. package/dist/_dts/blocks/src/system/runtime/components/multi-step/DynamicFormFields.d.ts +3 -19
  91. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +45 -72
  92. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +22 -37
  93. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +6 -6
  94. package/dist/_dts/blocks/src/system/runtime/hooks/useSelectedAppointmentConsentForm.d.ts +2 -0
  95. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.consent.d.ts +10 -0
  96. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.field-values.d.ts +4 -0
  97. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.fields.d.ts +21 -0
  98. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +2 -1
  99. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +38 -144
  100. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +5 -19
  101. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +3 -2
  102. package/dist/_dts/blocks/src/system/runtime/nodes/course-page-surface-scope.d.ts +2 -5
  103. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.client.d.ts +4 -2
  104. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +19 -7
  105. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +25 -4
  106. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +75 -0
  107. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/view.d.ts +4 -1
  108. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +5 -2
  109. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +5 -2
  110. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/AttendeeDetailsStep.d.ts +2 -0
  111. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentSelectionStep.d.ts +4 -0
  112. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/RegistrationClosedState.d.ts +5 -0
  113. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SiteCreditPreviewPanel.d.ts +6 -0
  114. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +2 -0
  115. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +17 -0
  116. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +21 -4
  117. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/siteCreditPreview.d.ts +51 -0
  118. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +3 -3
  119. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +6 -4
  120. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/validation.d.ts +2 -1
  121. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/BookingModeStep.d.ts +1 -1
  122. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/CheckIcon.d.ts +1 -1
  123. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/ErrorStep.d.ts +1 -1
  124. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/MembershipHero.d.ts +3 -3
  125. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/PaymentFailedStep.d.ts +1 -1
  126. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/StepIndicator.d.ts +6 -0
  127. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/VerifyingTimeoutStep.d.ts +1 -1
  128. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/WholeSeriesRegistrationActiveSteps.d.ts +9 -0
  129. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration/CourseRegistrationErrorBoundary.d.ts → event-registration/whole-series/WholeSeriesRegistrationErrorBoundary.d.ts} +5 -2
  130. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/WholeSeriesRegistrationTerminalContent.d.ts +8 -0
  131. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/WholeSeriesRegistrationWizard.d.ts +8 -0
  132. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/components.d.ts +46 -0
  133. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/index.d.ts +4 -4
  134. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/presentation.d.ts +7 -0
  135. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/pricing.d.ts +14 -0
  136. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/types.d.ts +18 -16
  137. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration/useCourseEligibility.d.ts → event-registration/whole-series/useWholeSeriesEligibility.d.ts} +6 -6
  138. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesPaymentVerification.d.ts +10 -0
  139. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesRegistrationActions.d.ts +35 -0
  140. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration/useCourseRegistrationPortal.d.ts → event-registration/whole-series/useWholeSeriesRegistrationPortal.d.ts} +2 -2
  141. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesRegistrationSelection.d.ts +35 -0
  142. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesRegistrationWizard.d.ts +185 -0
  143. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration/useCourseWaitlistSelection.d.ts → event-registration/whole-series/useWholeSeriesWaitlistSelection.d.ts} +5 -5
  144. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/utils.d.ts +4 -4
  145. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/whole-series-registration.headless.contract.d.ts +7 -7
  146. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/whole-series-registration.headless.planning.d.ts +2 -2
  147. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/wholeSeriesPageSurfaceScope.d.ts +17 -0
  148. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration/courseRegistrationViewState.d.ts → event-registration/whole-series/wholeSeriesRegistrationViewState.d.ts} +7 -7
  149. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/wizardSteps.d.ts +4 -4
  150. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +24 -54
  151. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -0
  152. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +3 -0
  153. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +12 -11
  154. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.server.d.ts +3 -2
  155. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventSpotlight.d.ts +3 -2
  156. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +3 -2
  157. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventDetailModal.d.ts +4 -3
  158. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModalCloseButton.d.ts +7 -0
  159. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +4 -3
  160. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +14 -0
  161. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +51 -14
  162. package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.d.ts +1 -1
  163. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingConsentAgreement.d.ts +7 -0
  164. package/dist/_dts/blocks/src/system/runtime/shared/components/DiscountCodeDisclosure.d.ts +12 -12
  165. package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +1 -0
  166. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +1 -0
  167. package/dist/_dts/blocks/src/system/transforms/registry/_utils/boxStyleClassNames.d.ts +30 -11
  168. package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +15 -4
  169. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +1 -0
  170. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -4
  171. package/dist/_dts/blocks/src/system/types/link.d.ts +7 -1
  172. package/dist/_dts/commerce/src/purchase/bookingInstalmentSchedule.d.ts +13 -0
  173. package/dist/_dts/commerce/src/purchase/cancellationPolicy.d.ts +7 -0
  174. package/dist/_dts/commerce/src/purchase/canonicalRefundPlanner.d.ts +48 -0
  175. package/dist/_dts/commerce/src/purchase/checkoutCollectionPlan.d.ts +39 -0
  176. package/dist/_dts/commerce/src/purchase/checkoutCommitPlan.d.ts +40 -0
  177. package/dist/_dts/commerce/src/purchase/checkoutDiscountContextPlanning.d.ts +80 -0
  178. package/dist/_dts/commerce/src/purchase/checkoutErrorCodes.d.ts +1 -0
  179. package/dist/_dts/commerce/src/purchase/checkoutOrderItemProjection.d.ts +22 -0
  180. package/dist/_dts/commerce/src/purchase/checkoutPaymentFlow.d.ts +50 -0
  181. package/dist/_dts/commerce/src/purchase/checkoutPaymentPlanPlanning.d.ts +30 -0
  182. package/dist/_dts/commerce/src/purchase/checkoutPaymentTermPlanning.d.ts +10 -0
  183. package/dist/_dts/commerce/src/purchase/checkoutPaymentTerms.d.ts +53 -0
  184. package/dist/_dts/commerce/src/purchase/checkoutQuantity.d.ts +8 -0
  185. package/dist/_dts/commerce/src/purchase/checkoutSessionMetadata.d.ts +76 -0
  186. package/dist/_dts/commerce/src/purchase/checkoutSettlement.d.ts +46 -0
  187. package/dist/_dts/commerce/src/purchase/checkoutStripeFinalizationPlanning.d.ts +12 -0
  188. package/dist/_dts/commerce/src/purchase/checkoutStripeSessionPlanning.d.ts +125 -0
  189. package/dist/_dts/commerce/src/purchase/checkoutValidatedItemPlanning.d.ts +55 -0
  190. package/dist/_dts/commerce/src/purchase/confirmationEmailPayment.d.ts +91 -0
  191. package/dist/_dts/commerce/src/purchase/discountApplication.d.ts +74 -0
  192. package/dist/_dts/commerce/src/purchase/index.d.ts +55 -0
  193. package/dist/_dts/commerce/src/purchase/oneTimeCheckoutPlanning.d.ts +86 -0
  194. package/dist/_dts/commerce/src/purchase/order-number.d.ts +33 -0
  195. package/dist/_dts/commerce/src/purchase/orderCancellationPlan.d.ts +19 -0
  196. package/dist/_dts/commerce/src/purchase/orderCompletionEmailPlan.d.ts +71 -0
  197. package/dist/_dts/commerce/src/purchase/orderConfirmationPlanning.d.ts +120 -0
  198. package/dist/_dts/commerce/src/purchase/orderFulfillmentPlan.d.ts +81 -0
  199. package/dist/_dts/commerce/src/purchase/orderFulfillmentResult.d.ts +8 -0
  200. package/dist/_dts/commerce/src/purchase/orderHistoryLedgerFilters.d.ts +1 -0
  201. package/dist/_dts/commerce/src/purchase/orderHistorySource.d.ts +11 -0
  202. package/dist/_dts/commerce/src/purchase/orderInstalmentAdminSettlement.d.ts +43 -0
  203. package/dist/_dts/commerce/src/purchase/orderInstalmentClosure.d.ts +29 -0
  204. package/dist/_dts/commerce/src/purchase/orderInstalmentLifecycle.d.ts +44 -0
  205. package/dist/_dts/commerce/src/purchase/orderInstalmentPayoff.d.ts +24 -0
  206. package/dist/_dts/commerce/src/purchase/orderInstalmentPlan.d.ts +40 -0
  207. package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +151 -0
  208. package/dist/_dts/commerce/src/purchase/orderItemSupport.d.ts +14 -0
  209. package/dist/_dts/commerce/src/purchase/orderListFilters.d.ts +3 -0
  210. package/dist/_dts/commerce/src/purchase/orderPaymentLinkPlanning.d.ts +60 -0
  211. package/dist/_dts/commerce/src/purchase/orderPaymentReceipt.d.ts +184 -0
  212. package/dist/_dts/commerce/src/purchase/orderPaymentState.d.ts +135 -0
  213. package/dist/_dts/commerce/src/purchase/orderPlanningTypes.d.ts +102 -0
  214. package/dist/_dts/commerce/src/purchase/orderRefundPlanning.d.ts +50 -0
  215. package/dist/_dts/commerce/src/purchase/orderRefundPolicy.d.ts +36 -0
  216. package/dist/_dts/commerce/src/purchase/orderTotals.d.ts +23 -0
  217. package/dist/_dts/commerce/src/purchase/orderTypes.d.ts +39 -0
  218. package/dist/_dts/commerce/src/purchase/pendingCheckoutSessionClaim.d.ts +1 -0
  219. package/dist/_dts/commerce/src/purchase/persistedCheckoutLines.d.ts +27 -0
  220. package/dist/_dts/commerce/src/purchase/protectedDepositRefundPolicy.d.ts +86 -0
  221. package/dist/_dts/commerce/src/purchase/refundPolicy.d.ts +8 -0
  222. package/dist/_dts/commerce/src/purchase/refundRailSplit.d.ts +40 -0
  223. package/dist/_dts/commerce/src/purchase/result.d.ts +2 -0
  224. package/dist/_dts/commerce/src/purchase/settlement.d.ts +97 -0
  225. package/dist/_dts/commerce/src/purchase/shopRefundPlanning.d.ts +43 -0
  226. package/dist/_dts/commerce/src/purchase/stateTransitions.d.ts +31 -0
  227. package/dist/_dts/commerce/src/purchase/stripeMinimumCharge.d.ts +10 -0
  228. package/dist/_dts/commerce/src/purchase/types.d.ts +168 -0
  229. package/dist/_dts/commerce/src/shop/shipmentEligibility.d.ts +14 -0
  230. package/dist/_dts/commerce/src/utils/assertNever.d.ts +1 -0
  231. package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +4 -0
  232. package/dist/_dts/content-model/src/content-types/builtins.d.ts +4 -0
  233. package/dist/_dts/content-model/src/content-types/schema.d.ts +4 -4
  234. package/dist/_dts/core/src/booking-consent.d.ts +8 -0
  235. package/dist/_dts/core/src/booking-vertical-catalog.d.ts +741 -0
  236. package/dist/_dts/core/src/booking-vertical-config.d.ts +66 -0
  237. package/dist/_dts/core/src/booking-vertical-definitions.d.ts +68 -0
  238. package/dist/_dts/{api/src/bookingVerticalPreset.d.ts → core/src/booking-vertical-preset.d.ts} +1 -1
  239. package/dist/_dts/core/src/booking-verticals.d.ts +98 -0
  240. package/dist/_dts/core/src/event-page-selection.d.ts +22 -0
  241. package/dist/_dts/core/src/event-pricing.d.ts +5 -0
  242. package/dist/_dts/core/src/event-series-behaviour.d.ts +16 -0
  243. package/dist/_dts/core/src/index.d.ts +4 -0
  244. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +81 -3
  245. package/dist/_dts/db/src/schemas/forms.d.ts +25 -25
  246. package/dist/_dts/db/src/types/jsonb.d.ts +1 -1
  247. package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +2 -1
  248. package/dist/_dts/editor/src/primitives/rich-text/config.d.ts +2 -1
  249. package/dist/_dts/editor/src/primitives/rich-text/toolbar/linkPopoverUtils.d.ts +3 -2
  250. package/dist/_dts/editor/src/primitives/rich-text/useRichTextEditor.d.ts +3 -4
  251. package/dist/_dts/media-core/src/fileUploadCompletion.d.ts +3 -0
  252. package/dist/_dts/media-core/src/fileUploadDurableFinalization.d.ts +2 -0
  253. package/dist/_dts/media-core/src/identifiers.d.ts +10 -0
  254. package/dist/_dts/media-core/src/mediaWriteNormalizer.d.ts +2 -6
  255. package/dist/_dts/media-core/src/types.d.ts +2 -1
  256. package/dist/_dts/media-core/src/usageScanner.d.ts +1 -1
  257. package/dist/_dts/media-editor/src/index.d.ts +2 -2
  258. package/dist/_dts/media-editor/src/mediaSelection.d.ts +1 -22
  259. package/dist/_dts/media-editor/src/useMediaSelection.d.ts +0 -9
  260. package/dist/_dts/preview-next/src/client/preview/ButtonHoverRoleControls.d.ts +10 -0
  261. package/dist/_dts/preview-next/src/client/preview/ButtonStylePicker.d.ts +3 -2
  262. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +3 -1
  263. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -1
  264. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -1
  265. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +3 -1
  266. package/dist/_dts/preview-next/src/client/preview/StyleConfiguratorWarningNotice.d.ts +7 -0
  267. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +1 -1
  268. package/dist/_dts/sdk/src/bookings/types.d.ts +7 -89
  269. package/dist/_dts/sdk/src/client/eventSubrouteReadOperations.d.ts +11 -0
  270. package/dist/_dts/sdk/src/client/types.d.ts +12 -5
  271. package/dist/_dts/sdk/src/components.d.ts +1 -1
  272. package/dist/_dts/sdk/src/config/validation.d.ts +30 -30
  273. package/dist/_dts/sdk/src/contracts/content.d.ts +10 -36
  274. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  275. package/dist/_dts/sdk/src/contracts/page.d.ts +2 -13
  276. package/dist/_dts/sdk/src/contracts/rendering.d.ts +1 -1
  277. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -16
  278. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +9 -9
  279. package/dist/_dts/sdk/src/next/pageMetadataProjection.d.ts +7 -0
  280. package/dist/_dts/sdk/src/next/resolveEventPageSubroute.d.ts +12 -0
  281. package/dist/_dts/sdk/src/public-api/contracts.d.ts +11 -38
  282. package/dist/_dts/sdk/src/public-api/eventSubrouteContracts.d.ts +12 -0
  283. package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
  284. package/dist/_dts/sdk/src/rendering/client.d.ts +44 -0
  285. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
  286. package/dist/_dts/sdk/src/routing/entrySubroutes.d.ts +1 -1
  287. package/dist/_dts/sdk/src/routing/resolveOccurrence.d.ts +4 -3
  288. package/dist/_dts/sdk/src/routing/resolvePageContent.d.ts +7 -3
  289. package/dist/_dts/sdk/src/version.d.ts +1 -1
  290. package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
  291. package/dist/_dts/theme-core/src/buttons/buttonSurfaceContext.d.ts +1 -1
  292. package/dist/_dts/theme-core/src/buttons/contextualHover.d.ts +41 -0
  293. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
  294. package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +3 -0
  295. package/dist/_dts/theme-core/src/buttons/resolveButtonHoverTreatment.d.ts +14 -0
  296. package/dist/_dts/theme-core/src/buttons/styles/domain.d.ts +21 -4
  297. package/dist/_dts/theme-core/src/buttons/styles/recipes/flatInk.d.ts +92 -0
  298. package/dist/_dts/theme-core/src/buttons/styles/recipes/staticRecipes.d.ts +10 -150
  299. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +57 -102
  300. package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +50 -2
  301. package/dist/_dts/theme-core/src/buttons/types.d.ts +41 -12
  302. package/dist/_dts/theme-core/src/cards/types.d.ts +7 -29
  303. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  304. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +90 -75
  305. package/dist/_dts/theme-core/src/navigation/types.d.ts +4 -4
  306. package/dist/_dts/theme-core/src/palette/colors.d.ts +1 -1
  307. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +2 -2
  308. package/dist/_dts/theme-core/src/schema.d.ts +98 -110
  309. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +27 -0
  310. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +27 -0
  311. package/dist/_dts/theme-core/src/site-styles/buttonSelectionCompiler.d.ts +18 -0
  312. package/dist/_dts/theme-core/src/site-styles/cardRoleVocabulary.d.ts +1 -1
  313. package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +21 -0
  314. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
  315. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -4
  316. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +4 -4
  317. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +2 -11
  318. package/dist/_dts/theme-core/src/site-styles/selectionFallbackWarning.d.ts +15 -0
  319. package/dist/_dts/theme-core/src/site-styles/types.d.ts +13 -1
  320. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +1 -1
  321. package/dist/_dts/ui/src/badge.d.ts +1 -1
  322. package/dist/_dts/ui/src/button.d.ts +1 -1
  323. package/dist/_dts/ui/src/callout.d.ts +1 -1
  324. package/dist/_dts/ui/src/card.d.ts +1 -1
  325. package/dist/_dts/ui/src/navigation-tabs.d.ts +2 -0
  326. package/dist/client/{StepIndicator-CLjQhkDb.mjs → BookingConsentAgreement-BxgpGEFD.mjs} +26 -4
  327. package/dist/client/{DiscountCodeDisclosure-BPZ-yfGI.mjs → DiscountCodeDisclosure-CfuPOHD0.mjs} +12 -12
  328. package/dist/client/{EventCombined.client-Cjt3kKYR.mjs → EventCombined.client-DB8Qfzi-.mjs} +37 -49
  329. package/dist/client/{EventListing.client-DY9dn6Fh.mjs → EventListing.client-DD4X8hp4.mjs} +2 -2
  330. package/dist/client/{LeafletStaticMap--2c61XYn.mjs → LeafletStaticMap-QhgIBQbv.mjs} +1 -1
  331. package/dist/client/{CourseRegistrationWizard-DGW9F0SQ.mjs → WholeSeriesRegistrationWizard-DwtC7bCs.mjs} +1460 -1247
  332. package/dist/client/{accordion-_boYwHHi.mjs → accordion-DFXpLvwg.mjs} +1 -1
  333. package/dist/client/{bookingForm--AqEfyBX.mjs → bookingForm-sI05d3lk.mjs} +73 -47
  334. package/dist/client/bookings.mjs +1719 -706
  335. package/dist/client/{carousel-CVI2dqZr.mjs → carousel-wjyWTZCh.mjs} +1 -1
  336. package/dist/client/{cart-DR6IiPz9.mjs → cart-DCwdpA4i.mjs} +3 -3
  337. package/dist/client/{checkout-CsrGAfQt.mjs → checkout-DTDW3l0R.mjs} +3 -3
  338. package/dist/client/checkoutUrls-DQYC_Br-.mjs +187 -0
  339. package/dist/client/client.mjs +6830 -3672
  340. package/dist/client/{context-B83PiNzm.mjs → context-TSK1CGx8.mjs} +1 -14
  341. package/dist/client/{courseRegistration-aNJVaLa3.mjs → courseRegistration-A-Tg7qw_.mjs} +11 -5
  342. package/dist/client/{eventCalendar-OZ7h59VN.mjs → eventCalendar-B0Zg-i_w.mjs} +41 -44
  343. package/dist/client/{eventCombined-BbJ6bFKz.mjs → eventCombined-B8Y2wizd.mjs} +3 -3
  344. package/dist/client/{eventDetails-BLyUBiCT.mjs → eventDetails-DPDOwURJ.mjs} +276 -94
  345. package/dist/client/{eventListing-DuP1yhBS.mjs → eventListing-CjBcmSLn.mjs} +3 -3
  346. package/dist/client/{eventRegistration-BXyECPa-.mjs → eventRegistration-CK30HsAq.mjs} +730 -190
  347. package/dist/client/{form-BA4t3kKU.mjs → form-CUXfsABE.mjs} +2 -2
  348. package/dist/client/{headerSection-CpNaJxhW.mjs → headerSection-N-mN3rjr.mjs} +2 -2
  349. package/dist/client/hooks.mjs +1418 -484
  350. package/dist/client/{locationMap-3HGMCL7_.mjs → locationMap-oiIDQMBt.mjs} +2 -2
  351. package/dist/client/{newsletterForm-C2s6Mw67.mjs → newsletterForm-CkQ2tTrM.mjs} +2 -2
  352. package/dist/client/pricing-Caa0QWzh.mjs +195 -0
  353. package/dist/client/{productDetail-C9joWhdE.mjs → productDetail-CnidyrsN.mjs} +3 -3
  354. package/dist/client/{productList-CjzdU3pB.mjs → productList-CttYcS_S.mjs} +3 -3
  355. package/dist/client/{propsDecoder-CBPGXEYX.mjs → propsDecoder-CeUMxI9a.mjs} +677 -350
  356. package/dist/client/rendering/client.mjs +6075 -4150
  357. package/dist/client/rendering/islands.mjs +18 -18
  358. package/dist/client/rendering.mjs +7589 -4388
  359. package/dist/client/{scrollToBlock-DZ73aEX6.mjs → scrollToBlock-lPr1oqxB.mjs} +1 -1
  360. package/dist/client/{shop-CQRai7hj.mjs → shop-DXQtMo2O.mjs} +6 -6
  361. package/dist/client/{shop-commerce-hP9UboOx.mjs → shop-commerce-quDL411J.mjs} +7 -164
  362. package/dist/client/{shop-commerce-store-DiD5a32e.mjs → shop-commerce-store-Dnu-8Iub.mjs} +1 -1
  363. package/dist/client/{shopShared-DP8DXTkF.mjs → shopShared-BWPUURvG.mjs} +3 -3
  364. package/dist/client/{useEventFilters-pF_OJNQP.mjs → useEventFilters-DRhWp2_5.mjs} +196 -7
  365. package/dist/client/{usePolling-Cls91SD2.mjs → usePolling-UN4WKnaM.mjs} +3 -3
  366. package/dist/preview-next/before-render.mjs +247 -60
  367. package/dist/preview-next/client/runtime.mjs +4 -4
  368. package/dist/preview-next/keepAlive.mjs +247 -60
  369. package/dist/preview-next/middleware.mjs +247 -60
  370. package/dist/{previewAuthStore-CX1C_KJ4.mjs → previewAuthStore-BFKd4LrN.mjs} +247 -60
  371. package/dist/{sdk-runtime-5CcPAI14.mjs → sdk-runtime-Ca5RD78X.mjs} +2 -2
  372. package/dist/{separator-BXlYN_gr.mjs → separator-CMhj6BTi.mjs} +1 -1
  373. package/dist/server/components.mjs +3578 -1614
  374. package/dist/server/config-validation.mjs +1418 -485
  375. package/dist/server/config.mjs +1418 -485
  376. package/dist/server/data.mjs +1418 -484
  377. package/dist/server/index.mjs +289 -81
  378. package/dist/server/manifest.mjs +0 -1
  379. package/dist/server/next.mjs +3761 -1794
  380. package/dist/server/page-converter.mjs +911 -261
  381. package/dist/server/prebuild.mjs +1 -1
  382. package/dist/server/rendering/server.mjs +3580 -1613
  383. package/dist/server/rendering.mjs +3578 -1614
  384. package/dist/server/routing.mjs +1687 -689
  385. package/dist/server/server.mjs +1458 -563
  386. package/dist/server/theme-bridge.mjs +1996 -935
  387. package/dist/server/theme.mjs +346 -133
  388. package/dist/styles/index.css +1602 -796
  389. package/package.json +2 -2
  390. package/dist/_dts/api/src/bookingVerticalCatalog.d.ts +0 -746
  391. package/dist/_dts/api/src/eventSeriesPresentationPreset.d.ts +0 -12
  392. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/CourseRegistrationWizard.d.ts +0 -3
  393. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/StepIndicator.d.ts +0 -6
  394. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/components.d.ts +0 -45
  395. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/pricing.d.ts +0 -14
  396. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCoursePaymentVerification.d.ts +0 -9
  397. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationActions.d.ts +0 -35
  398. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationSelection.d.ts +0 -31
  399. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +0 -102
  400. package/dist/client/checkoutUrls-Ct8Mxna3.mjs +0 -26
  401. package/dist/client/eventProductEligibility-AVxyCB1u.mjs +0 -50
  402. package/dist/client/pricing-BiqIMgZk.mjs +0 -174
  403. /package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/PortalAuthSidebar.d.ts +0 -0
  404. /package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/SuccessStep.d.ts +0 -0
  405. /package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/WaitlistStep.d.ts +0 -0
@@ -187,7 +187,7 @@ var init_block_kinds = __esmMin((() => {
187
187
  }));
188
188
  //#endregion
189
189
  //#region src/types/index.ts
190
- var init_types$16 = __esmMin((() => {
190
+ var init_types$17 = __esmMin((() => {
191
191
  init_block_kinds();
192
192
  }));
193
193
  //#endregion
@@ -533,7 +533,7 @@ function mergeLoaderResults(configResults, codeResults) {
533
533
  }
534
534
  var systemBlockKindSet;
535
535
  var init_executeCodeLoaders = __esmMin((() => {
536
- init_types$16();
536
+ init_types$17();
537
537
  init_dataLoaderContext();
538
538
  init_dataLoaderValue();
539
539
  init_defineOwnDataProperty();
@@ -1901,6 +1901,22 @@ var init_publicWholeSeriesEndpointDefinitions = __esmMin((() => {
1901
1901
  });
1902
1902
  }));
1903
1903
  //#endregion
1904
+ //#region ../api/src/publicEventEndpointDefinitions.ts
1905
+ var PUBLIC_EVENT_ENDPOINT_DEFINITIONS;
1906
+ var init_publicEventEndpointDefinitions = __esmMin((() => {
1907
+ init_cache_tags();
1908
+ init_defineEndpointDefinitions();
1909
+ PUBLIC_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({ resolveEventSubroute: {
1910
+ path: "/public/sites/{siteId}/events/subroutes/resolve",
1911
+ method: "GET",
1912
+ revalidate: 60,
1913
+ tags: [TAG_TEMPLATES.publicEvents, "event-subroute"],
1914
+ auth: "public",
1915
+ responseKind: "json",
1916
+ errors: []
1917
+ } });
1918
+ }));
1919
+ //#endregion
1904
1920
  //#region ../api/src/siteApiKeyEndpointDefinitions.ts
1905
1921
  var SITE_API_KEY_ENDPOINT_DEFINITIONS;
1906
1922
  var init_siteApiKeyEndpointDefinitions = __esmMin((() => {
@@ -2034,6 +2050,243 @@ var init_eventManagementEndpointDefinitions = __esmMin((() => {
2034
2050
  "resource:conflict",
2035
2051
  "server:internal_error"
2036
2052
  ]
2053
+ },
2054
+ updateEventIdentity: {
2055
+ path: "/sites/{siteId}/bookings/events/{eventId}",
2056
+ method: "PATCH",
2057
+ tags: ["site-{siteId}", "event-series-{siteId}"],
2058
+ auth: "user",
2059
+ responseKind: "json",
2060
+ errors: [
2061
+ "validation:invalid_input",
2062
+ "resource:not_found",
2063
+ "server:internal_error"
2064
+ ]
2065
+ },
2066
+ createWholeSeriesRun: {
2067
+ path: "/sites/{siteId}/bookings/events/{eventId}/runs",
2068
+ method: "POST",
2069
+ tags: ["site-{siteId}", "event-series-{siteId}"],
2070
+ auth: "user",
2071
+ responseKind: "json",
2072
+ errors: [
2073
+ "validation:invalid_input",
2074
+ "resource:not_found",
2075
+ "resource:already_exists",
2076
+ "server:internal_error"
2077
+ ]
2078
+ },
2079
+ updateWholeSeriesRun: {
2080
+ path: "/sites/{siteId}/bookings/events/{eventId}/runs/{runId}",
2081
+ method: "PATCH",
2082
+ tags: ["site-{siteId}", "event-series-{siteId}"],
2083
+ auth: "user",
2084
+ responseKind: "json",
2085
+ errors: [
2086
+ "validation:invalid_input",
2087
+ "resource:not_found",
2088
+ "resource:conflict",
2089
+ "server:internal_error"
2090
+ ]
2091
+ },
2092
+ cancelWholeSeriesRun: {
2093
+ path: "/sites/{siteId}/bookings/events/{eventId}/runs/{runId}/cancellation",
2094
+ method: "POST",
2095
+ tags: ["site-{siteId}", "event-series-{siteId}"],
2096
+ auth: "user",
2097
+ responseKind: "json",
2098
+ errors: [
2099
+ "validation:invalid_input",
2100
+ "resource:not_found",
2101
+ "resource:conflict",
2102
+ "server:internal_error"
2103
+ ]
2104
+ }
2105
+ });
2106
+ }));
2107
+ //#endregion
2108
+ //#region ../api/src/giftingEndpointDefinitions.ts
2109
+ var GIFTING_ENDPOINT_DEFINITIONS;
2110
+ var init_giftingEndpointDefinitions = __esmMin((() => {
2111
+ init_cache_tags();
2112
+ init_defineEndpointDefinitions();
2113
+ init_demoMutationPolicies();
2114
+ GIFTING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
2115
+ createGiftingOffer: {
2116
+ path: "/sites/{siteId}/gifting/offers",
2117
+ method: "POST",
2118
+ tags: ["site-{siteId}", "gifting-offers-{siteId}"],
2119
+ auth: "user",
2120
+ responseKind: "json",
2121
+ errors: [
2122
+ "validation:invalid_input",
2123
+ "auth:forbidden",
2124
+ "server:internal_error"
2125
+ ]
2126
+ },
2127
+ updateGiftingOffer: {
2128
+ path: "/sites/{siteId}/gifting/offers/{offerId}",
2129
+ method: "PATCH",
2130
+ tags: ["site-{siteId}", "gifting-offers-{siteId}"],
2131
+ auth: "user",
2132
+ responseKind: "json",
2133
+ errors: [
2134
+ "validation:invalid_input",
2135
+ "auth:forbidden",
2136
+ "resource:not_found",
2137
+ "resource:conflict",
2138
+ "server:internal_error"
2139
+ ]
2140
+ },
2141
+ deleteGiftingOffer: {
2142
+ path: "/sites/{siteId}/gifting/offers/{offerId}",
2143
+ method: "DELETE",
2144
+ tags: ["site-{siteId}", "gifting-offers-{siteId}"],
2145
+ auth: "user",
2146
+ responseKind: "json",
2147
+ errors: [
2148
+ "auth:forbidden",
2149
+ "resource:not_found",
2150
+ "resource:conflict",
2151
+ "server:internal_error"
2152
+ ]
2153
+ },
2154
+ duplicateGiftingOffer: {
2155
+ path: "/sites/{siteId}/gifting/offers/{offerId}/duplicate",
2156
+ method: "POST",
2157
+ tags: ["site-{siteId}", "gifting-offers-{siteId}"],
2158
+ auth: "user",
2159
+ responseKind: "json",
2160
+ errors: [
2161
+ "auth:forbidden",
2162
+ "resource:not_found",
2163
+ "server:internal_error"
2164
+ ]
2165
+ },
2166
+ reorderGiftingOffers: {
2167
+ path: "/sites/{siteId}/gifting/offers/order",
2168
+ method: "PUT",
2169
+ tags: ["site-{siteId}", "gifting-offers-{siteId}"],
2170
+ auth: "user",
2171
+ responseKind: "json",
2172
+ errors: [
2173
+ "validation:invalid_input",
2174
+ "auth:forbidden",
2175
+ "resource:not_found",
2176
+ "server:internal_error"
2177
+ ]
2178
+ },
2179
+ sendGift: {
2180
+ path: "/sites/{siteId}/gifting/gifts",
2181
+ method: "POST",
2182
+ tags: ["site-{siteId}", "gifting-gifts-{siteId}"],
2183
+ auth: "user",
2184
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN,
2185
+ responseKind: "json",
2186
+ errors: [
2187
+ "validation:invalid_input",
2188
+ "auth:forbidden",
2189
+ "resource:not_found",
2190
+ "server:internal_error"
2191
+ ]
2192
+ },
2193
+ resendGift: {
2194
+ path: "/sites/{siteId}/gifting/gifts/{giftId}/resend",
2195
+ method: "POST",
2196
+ tags: ["site-{siteId}", "gifting-gifts-{siteId}"],
2197
+ auth: "user",
2198
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN,
2199
+ responseKind: "json",
2200
+ errors: [
2201
+ "auth:forbidden",
2202
+ "resource:not_found",
2203
+ "resource:conflict",
2204
+ "server:internal_error"
2205
+ ]
2206
+ },
2207
+ correctGiftEmailAndResend: {
2208
+ path: "/sites/{siteId}/gifting/gifts/{giftId}/correct-email-and-resend",
2209
+ method: "POST",
2210
+ tags: ["site-{siteId}", "gifting-gifts-{siteId}"],
2211
+ auth: "user",
2212
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN,
2213
+ responseKind: "json",
2214
+ errors: [
2215
+ "validation:invalid_input",
2216
+ "auth:forbidden",
2217
+ "resource:not_found",
2218
+ "resource:conflict",
2219
+ "server:internal_error"
2220
+ ]
2221
+ },
2222
+ updateGiftingSettings: {
2223
+ path: "/sites/{siteId}/gifting/settings",
2224
+ method: "PATCH",
2225
+ tags: [
2226
+ "site-{siteId}",
2227
+ "gifting-offers-{siteId}",
2228
+ "gifting-gifts-{siteId}"
2229
+ ],
2230
+ auth: "user",
2231
+ responseKind: "json",
2232
+ errors: [
2233
+ "validation:invalid_input",
2234
+ "auth:forbidden",
2235
+ "server:internal_error"
2236
+ ]
2237
+ },
2238
+ listPublicGiftingOffers: {
2239
+ path: "/public/sites/{siteId}/gifting/offers",
2240
+ method: "GET",
2241
+ revalidate: 300,
2242
+ tags: [TAG_TEMPLATES.publicGifting],
2243
+ errors: [],
2244
+ auth: "public",
2245
+ responseKind: "json"
2246
+ },
2247
+ createPublicGiftingCheckout: {
2248
+ path: "/public/sites/{siteId}/gifting/checkout",
2249
+ method: "POST",
2250
+ tags: [TAG_TEMPLATES.publicGifting],
2251
+ errors: [],
2252
+ auth: "public",
2253
+ responseKind: "json"
2254
+ },
2255
+ claimGiftCardPublic: {
2256
+ path: "/public/sites/{siteId}/gifting/claim",
2257
+ method: "POST",
2258
+ tags: [TAG_TEMPLATES.publicGifting],
2259
+ errors: [],
2260
+ auth: "public",
2261
+ responseKind: "json"
2262
+ }
2263
+ });
2264
+ }));
2265
+ //#endregion
2266
+ //#region ../api/src/sdkEndpointDefinitions.ts
2267
+ var SDK_ENDPOINT_DEFINITIONS;
2268
+ var init_sdkEndpointDefinitions = __esmMin((() => {
2269
+ init_defineEndpointDefinitions();
2270
+ SDK_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
2271
+ sdkUpdateSettings: {
2272
+ path: "/sdk/{siteId}/settings",
2273
+ method: "PATCH",
2274
+ auth: "service",
2275
+ responseKind: "json",
2276
+ errors: ["validation:invalid_input", "server:internal_error"]
2277
+ },
2278
+ sdkConfigureBookingVertical: {
2279
+ path: "/sdk/{siteId}/settings/booking/vertical",
2280
+ method: "POST",
2281
+ auth: "service",
2282
+ responseKind: "json"
2283
+ },
2284
+ sdkSetupRevalidationWebhook: {
2285
+ path: "/sdk/{siteId}/webhooks/revalidation/setup",
2286
+ method: "POST",
2287
+ auth: "service",
2288
+ responseKind: "json",
2289
+ errors: ["validation:invalid_input", "server:internal_error"]
2037
2290
  }
2038
2291
  });
2039
2292
  }));
@@ -2046,13 +2299,20 @@ var init_endpoints = __esmMin((() => {
2046
2299
  init_courseEndpointDefinitions();
2047
2300
  init_newsletterEndpointDefinitions();
2048
2301
  init_publicWholeSeriesEndpointDefinitions();
2302
+ init_publicEventEndpointDefinitions();
2049
2303
  init_siteApiKeyEndpointDefinitions();
2050
2304
  init_eventManagementEndpointDefinitions();
2051
- ({ ...ACCOUNT_ENDPOINT_DEFINITIONS }), TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, { ...SITE_API_KEY_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, {
2305
+ init_giftingEndpointDefinitions();
2306
+ init_sdkEndpointDefinitions();
2307
+ ({
2308
+ ...ACCOUNT_ENDPOINT_DEFINITIONS,
2309
+ ...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
2310
+ ...GIFTING_ENDPOINT_DEFINITIONS
2311
+ }), TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, { ...SITE_API_KEY_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, {
2052
2312
  ...NEWSLETTER_ENDPOINT_DEFINITIONS,
2053
2313
  ...APPOINTMENT_ENDPOINT_DEFINITIONS,
2054
2314
  ...COURSE_ENDPOINT_DEFINITIONS
2055
- }, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.formById, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEventFilters, { ...PUBLIC_WHOLE_SERIES_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicTeamMembers, TAG_TEMPLATES.publicWholeSeriesOfferings, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicPasses, TAG_TEMPLATES.publicMemberships, TAG_TEMPLATES.publicProducts, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicGifting, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, { ...EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS }, { ...SDK_ENTRY_READ_ENDPOINTS };
2315
+ }, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.formById, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEventFilters, { ...PUBLIC_WHOLE_SERIES_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicTeamMembers, TAG_TEMPLATES.publicWholeSeriesOfferings, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicPasses, TAG_TEMPLATES.publicMemberships, TAG_TEMPLATES.publicProducts, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, { ...EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS }, { ...SDK_ENDPOINT_DEFINITIONS }, { ...SDK_ENTRY_READ_ENDPOINTS };
2056
2316
  }));
2057
2317
  var init_preview_auth = __esmMin((() => {
2058
2318
  z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
@@ -2390,6 +2650,9 @@ var init_event_page_surface_subject = __esmMin((() => {
2390
2650
  init_result();
2391
2651
  }));
2392
2652
  //#endregion
2653
+ //#region ../core/src/event-page-selection.ts
2654
+ var init_event_page_selection = __esmMin((() => {}));
2655
+ //#endregion
2393
2656
  //#region ../core/src/public-event-booking-availability.ts
2394
2657
  var init_public_event_booking_availability = __esmMin((() => {}));
2395
2658
  //#endregion
@@ -2560,6 +2823,9 @@ var init_booking_date_time = __esmMin((() => {
2560
2823
  dateTimeFormatterCache = /* @__PURE__ */ new Map();
2561
2824
  }));
2562
2825
  //#endregion
2826
+ //#region ../core/src/booking-consent.ts
2827
+ var init_booking_consent = __esmMin((() => {}));
2828
+ //#endregion
2563
2829
  //#region ../core/src/dated-offering-settlement.ts
2564
2830
  var init_dated_offering_settlement = __esmMin((() => {}));
2565
2831
  //#endregion
@@ -2742,6 +3008,319 @@ var init_secret = __esmMin((() => {
2742
3008
  //#region ../core/src/site-route-target.ts
2743
3009
  var init_site_route_target = __esmMin((() => {}));
2744
3010
  //#endregion
3011
+ //#region ../core/src/event-series-behaviour.ts
3012
+ var SURFACE_EVENT_PRESET_VALUES;
3013
+ var init_event_series_behaviour = __esmMin((() => {
3014
+ SURFACE_EVENT_PRESET_VALUES = [
3015
+ "class",
3016
+ "course",
3017
+ "term",
3018
+ "workshop",
3019
+ "retreat",
3020
+ "performance"
3021
+ ];
3022
+ }));
3023
+ //#endregion
3024
+ //#region ../core/src/booking-vertical-preset.ts
3025
+ function verticalBookingPreset(id, verticalId, canonicalBehaviour, label, pluralLabel, description, availability = "onboarding") {
3026
+ return {
3027
+ id,
3028
+ verticalId,
3029
+ canonicalBehaviour,
3030
+ engine: BOOKING_ENGINE_BY_BEHAVIOUR[canonicalBehaviour],
3031
+ availability,
3032
+ label,
3033
+ pluralLabel,
3034
+ description
3035
+ };
3036
+ }
3037
+ var BOOKING_ENGINE_BY_BEHAVIOUR;
3038
+ var init_booking_vertical_preset = __esmMin((() => {
3039
+ BOOKING_ENGINE_BY_BEHAVIOUR = {
3040
+ class: "event_series",
3041
+ workshop: "event_series",
3042
+ course: "event_series",
3043
+ retreat: "event_series",
3044
+ performance: "event_series",
3045
+ appointment: "appointment_service"
3046
+ };
3047
+ })), VERTICAL_DEFINITIONS;
3048
+ var init_booking_vertical_definitions = __esmMin((() => {
3049
+ VERTICAL_DEFINITIONS = [
3050
+ {
3051
+ id: "yoga_wellness",
3052
+ label: "Yoga, meditation or mindfulness",
3053
+ description: "Yoga studios, wellness teachers, and movement practitioners."
3054
+ },
3055
+ {
3056
+ id: "fitness_pt",
3057
+ label: "Fitness and personal training",
3058
+ description: "Personal trainers, group training, and fitness programmes."
3059
+ },
3060
+ {
3061
+ id: "dance_school",
3062
+ label: "Dance school",
3063
+ description: "Dance classes, courses or terms, workshops, private lessons, and shows."
3064
+ },
3065
+ {
3066
+ id: "physiotherapy_physical_health",
3067
+ label: "Physiotherapy & physical health",
3068
+ description: "Physiotherapists, chiropractors, osteopaths, sports therapists, and rehabilitation practitioners."
3069
+ },
3070
+ {
3071
+ id: "massage_bodywork",
3072
+ label: "Massage & bodywork",
3073
+ description: "Massage therapists, bodyworkers, and somatic practitioners."
3074
+ },
3075
+ {
3076
+ id: "therapist_practitioner",
3077
+ label: "Therapist or practitioner",
3078
+ description: "Appointments, sessions, consultations, and occasional group work."
3079
+ },
3080
+ {
3081
+ id: "beauty_spa",
3082
+ label: "Beauty or spa",
3083
+ description: "Treatment-led businesses with optional workshops."
3084
+ },
3085
+ {
3086
+ id: "consultant_coach",
3087
+ label: "Consultant or coach",
3088
+ description: "One-to-one calls, workshops, courses, and retreats."
3089
+ },
3090
+ {
3091
+ id: "training_provider",
3092
+ label: "Training provider",
3093
+ description: "Courses, workshops, classes, appointments, and residential training."
3094
+ },
3095
+ {
3096
+ id: "retreat_centre",
3097
+ label: "Retreat centre",
3098
+ description: "Residential retreats, workshops, classes, courses, and private sessions."
3099
+ },
3100
+ {
3101
+ id: "music_school",
3102
+ label: "Music teacher or school",
3103
+ description: "Lessons, classes, terms, workshops, and performances."
3104
+ },
3105
+ {
3106
+ id: "voice_singing",
3107
+ label: "Voice & Singing",
3108
+ description: "Singing lessons, choirs, voice circles, workshops, and performances."
3109
+ },
3110
+ {
3111
+ id: "performing_arts_school",
3112
+ label: "Theatre or performing arts school",
3113
+ description: "Classes, terms, workshops, performances, and lessons."
3114
+ },
3115
+ {
3116
+ id: "community_wellbeing",
3117
+ label: "Community or wellbeing centre",
3118
+ description: "Groups, workshops, courses, appointments, and retreats."
3119
+ },
3120
+ {
3121
+ id: "venue_event_space",
3122
+ label: "Venue or event space",
3123
+ description: "Room, resource, or access bookings. Depends on the future capacity-booking domain."
3124
+ }
3125
+ ];
3126
+ VERTICAL_DEFINITIONS.map(({ id }) => id);
3127
+ }));
3128
+ //#endregion
3129
+ //#region ../core/src/booking-vertical-catalog.ts
3130
+ var VERTICAL_BOOKING_PRESETS;
3131
+ var init_booking_vertical_catalog = __esmMin((() => {
3132
+ init_booking_vertical_preset();
3133
+ init_booking_vertical_definitions();
3134
+ VERTICAL_BOOKING_PRESETS = [
3135
+ verticalBookingPreset("yoga_wellness.classes", "yoga_wellness", "class", "Class", "Classes", "Regular scheduled classes and group sessions."),
3136
+ verticalBookingPreset("yoga_wellness.workshops", "yoga_wellness", "workshop", "Workshop", "Workshops", "One-off workshops, day retreats, or special sessions."),
3137
+ verticalBookingPreset("yoga_wellness.courses", "yoga_wellness", "course", "Course", "Courses", "Fixed-schedule courses or multi-session groups."),
3138
+ verticalBookingPreset("yoga_wellness.retreats", "yoga_wellness", "retreat", "Retreat", "Retreats", "Multi-day or residential retreats and immersive experiences."),
3139
+ verticalBookingPreset("yoga_wellness.appointments", "yoga_wellness", "appointment", "Appointment", "Appointments", "Private sessions, consultations, or one-to-one support."),
3140
+ verticalBookingPreset("fitness_pt.group_training", "fitness_pt", "class", "Group training", "Group training", "Regular scheduled classes and group sessions."),
3141
+ verticalBookingPreset("fitness_pt.personal_training", "fitness_pt", "appointment", "Personal training", "Personal training", "One-to-one sessions booked from your availability."),
3142
+ verticalBookingPreset("fitness_pt.programmes", "fitness_pt", "course", "Programme", "Programmes", "Multi-session programmes like bootcamps or courses."),
3143
+ verticalBookingPreset("fitness_pt.workshops", "fitness_pt", "workshop", "Workshop", "Workshops", "One-off workshops, events, or special sessions."),
3144
+ verticalBookingPreset("fitness_pt.retreats", "fitness_pt", "retreat", "Retreat", "Retreats", "Multi-day or residential fitness experiences."),
3145
+ verticalBookingPreset("dance_school.classes", "dance_school", "class", "Class", "Classes", "Regular group classes and weekly sessions."),
3146
+ {
3147
+ ...verticalBookingPreset("dance_school.terms", "dance_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date course groups."),
3148
+ eventPresetOverride: "term"
3149
+ },
3150
+ verticalBookingPreset("dance_school.courses", "dance_school", "course", "Course", "Courses", "Fixed-schedule courses or multi-session groups.", "settings"),
3151
+ verticalBookingPreset("dance_school.workshops", "dance_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
3152
+ verticalBookingPreset("dance_school.private_lessons", "dance_school", "appointment", "Private lesson", "Private lessons", "One-to-one lessons or coaching sessions."),
3153
+ verticalBookingPreset("dance_school.shows", "dance_school", "performance", "Show", "Shows", "Ticketed performances, showcases, and recitals."),
3154
+ verticalBookingPreset("physiotherapy_physical_health.appointments", "physiotherapy_physical_health", "appointment", "Appointment", "Appointments", "Assessments, treatments, follow-ups, and rehabilitation sessions."),
3155
+ verticalBookingPreset("physiotherapy_physical_health.rehab_classes", "physiotherapy_physical_health", "class", "Rehab class", "Rehab classes", "Regular rehabilitation, mobility, strength, or recovery classes."),
3156
+ verticalBookingPreset("physiotherapy_physical_health.workshops", "physiotherapy_physical_health", "workshop", "Workshop", "Workshops", "One-off workshops, talks, or practical group sessions."),
3157
+ verticalBookingPreset("massage_bodywork.treatments", "massage_bodywork", "appointment", "Treatment", "Treatments", "Massage treatments, bodywork sessions, and one-to-one appointments."),
3158
+ verticalBookingPreset("massage_bodywork.group_sessions", "massage_bodywork", "class", "Group session", "Group sessions", "Regular bodywork, somatic movement, or self-massage sessions."),
3159
+ verticalBookingPreset("massage_bodywork.workshops", "massage_bodywork", "workshop", "Workshop", "Workshops", "One-off bodywork, self-massage, or somatic practice workshops."),
3160
+ verticalBookingPreset("therapist_practitioner.appointments", "therapist_practitioner", "appointment", "Appointment", "Appointments", "Sessions, consultations, treatments, or assessments."),
3161
+ verticalBookingPreset("therapist_practitioner.workshops", "therapist_practitioner", "workshop", "Workshop", "Workshops", "One-off group workshops, talks, or wellbeing sessions."),
3162
+ verticalBookingPreset("therapist_practitioner.retreats", "therapist_practitioner", "retreat", "Retreat", "Retreats", "Multi-day retreats or immersive group experiences."),
3163
+ verticalBookingPreset("beauty_spa.appointments", "beauty_spa", "appointment", "Appointment", "Appointments", "Treatments, consultations, services, and sessions."),
3164
+ verticalBookingPreset("beauty_spa.workshops", "beauty_spa", "workshop", "Workshop", "Workshops", "Skincare workshops, makeup lessons, demos, or group events."),
3165
+ verticalBookingPreset("consultant_coach.appointments", "consultant_coach", "appointment", "Appointment", "Appointments", "One-to-one calls, consultations, reviews, or coaching sessions."),
3166
+ verticalBookingPreset("consultant_coach.workshops", "consultant_coach", "workshop", "Workshop", "Workshops", "One-off group sessions, webinars, or strategy days."),
3167
+ verticalBookingPreset("consultant_coach.courses", "consultant_coach", "course", "Course", "Courses", "Fixed-schedule cohorts or multi-session group programmes."),
3168
+ verticalBookingPreset("consultant_coach.retreats", "consultant_coach", "retreat", "Retreat", "Retreats", "Multi-day coaching retreats or immersive experiences."),
3169
+ verticalBookingPreset("training_provider.courses", "training_provider", "course", "Course", "Courses", "Fixed-schedule courses, cohorts, and multi-session training."),
3170
+ verticalBookingPreset("training_provider.workshops", "training_provider", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, and short training sessions."),
3171
+ verticalBookingPreset("training_provider.appointments", "training_provider", "appointment", "Appointment", "Appointments", "Consultations, assessments, mentoring, or office hours."),
3172
+ verticalBookingPreset("training_provider.classes", "training_provider", "class", "Class", "Classes", "Regular classes, sessions, or groups.", "settings"),
3173
+ verticalBookingPreset("training_provider.residentials", "training_provider", "retreat", "Residential", "Residentials", "Residential courses or multi-day training experiences.", "settings"),
3174
+ verticalBookingPreset("retreat_centre.retreats", "retreat_centre", "retreat", "Retreat", "Retreats", "Multi-day or residential retreats with richer booking needs."),
3175
+ verticalBookingPreset("retreat_centre.workshops", "retreat_centre", "workshop", "Workshop", "Workshops", "One-day retreats, ceremonies, workshops, or special events."),
3176
+ verticalBookingPreset("retreat_centre.classes", "retreat_centre", "class", "Class", "Classes", "Regular sessions like guided meditations or group practices."),
3177
+ verticalBookingPreset("retreat_centre.courses", "retreat_centre", "course", "Course", "Courses", "Fixed-schedule programmes or multi-session experiences."),
3178
+ verticalBookingPreset("retreat_centre.appointments", "retreat_centre", "appointment", "Appointment", "Appointments", "Private sessions, therapies, consultations, or add-ons."),
3179
+ verticalBookingPreset("music_school.lessons", "music_school", "appointment", "Lesson", "Lessons", "One-to-one lessons, consultations, or coaching sessions."),
3180
+ verticalBookingPreset("music_school.classes", "music_school", "class", "Class", "Classes", "Regular group classes, ensembles, or recurring sessions."),
3181
+ {
3182
+ ...verticalBookingPreset("music_school.terms", "music_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date group courses."),
3183
+ eventPresetOverride: "term"
3184
+ },
3185
+ verticalBookingPreset("music_school.workshops", "music_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
3186
+ verticalBookingPreset("music_school.performances", "music_school", "performance", "Performance", "Performances", "Concerts, recitals, showcases, or ticketed performances."),
3187
+ verticalBookingPreset("voice_singing.lessons", "voice_singing", "appointment", "Voice session", "Voice sessions", "One-to-one singing lessons, voice coaching, or private practice sessions."),
3188
+ verticalBookingPreset("voice_singing.classes", "voice_singing", "class", "Ongoing weekly session", "Ongoing weekly sessions", "Regular choirs, voice circles, community singing, or group practice."),
3189
+ {
3190
+ ...verticalBookingPreset("voice_singing.terms", "voice_singing", "course", "Singing term", "Singing terms", "Multi-week choir terms, voice courses, or fixed-date group programmes."),
3191
+ eventPresetOverride: "term"
3192
+ },
3193
+ verticalBookingPreset("voice_singing.workshops", "voice_singing", "workshop", "Workshop", "Workshops", "One-off singing workshops, voice journeys, or devotional singing sessions."),
3194
+ verticalBookingPreset("voice_singing.performances", "voice_singing", "performance", "Performance", "Performances", "Choir concerts, sharing events, recitals, or community performances."),
3195
+ verticalBookingPreset("performing_arts_school.classes", "performing_arts_school", "class", "Class", "Classes", "Regular group classes, rehearsals, or weekly sessions."),
3196
+ {
3197
+ ...verticalBookingPreset("performing_arts_school.terms", "performing_arts_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date course groups."),
3198
+ eventPresetOverride: "term"
3199
+ },
3200
+ verticalBookingPreset("performing_arts_school.workshops", "performing_arts_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
3201
+ verticalBookingPreset("performing_arts_school.performances", "performing_arts_school", "performance", "Performance", "Performances", "Shows, showcases, productions, or ticketed performances."),
3202
+ verticalBookingPreset("performing_arts_school.lessons", "performing_arts_school", "appointment", "Lesson", "Lessons", "One-to-one lessons, coaching, or audition prep."),
3203
+ verticalBookingPreset("community_wellbeing.classes", "community_wellbeing", "class", "Class", "Classes", "Regular groups, sessions, practices, or weekly activities."),
3204
+ verticalBookingPreset("community_wellbeing.workshops", "community_wellbeing", "workshop", "Workshop", "Workshops", "One-off workshops, talks, events, or gatherings."),
3205
+ verticalBookingPreset("community_wellbeing.courses", "community_wellbeing", "course", "Course", "Courses", "Fixed-schedule courses, study groups, or multi-session programmes."),
3206
+ verticalBookingPreset("community_wellbeing.appointments", "community_wellbeing", "appointment", "Appointment", "Appointments", "One-to-one appointments, consultations, or support sessions."),
3207
+ verticalBookingPreset("community_wellbeing.retreats", "community_wellbeing", "retreat", "Retreat", "Retreats", "Multi-day or residential retreats."),
3208
+ verticalBookingPreset("venue_event_space.resource_hire", "venue_event_space", "appointment", "Hire slot", "Hire slots", "Future room, venue, and resource hire bookings.", "future")
3209
+ ];
3210
+ }));
3211
+ //#endregion
3212
+ //#region ../core/src/booking-vertical-config.ts
3213
+ function parseVerticalId(value) {
3214
+ return typeof value === "string" && VERTICAL_ID_SET.has(value) ? value : null;
3215
+ }
3216
+ function parseVerticalPresetId(value) {
3217
+ return typeof value === "string" && VERTICAL_PRESET_ID_SET.has(value) ? value : null;
3218
+ }
3219
+ function getVerticalPresetDefinition(presetId) {
3220
+ const definition = VERTICAL_BOOKING_PRESETS.find((presetDefinition) => presetDefinition.id === presetId);
3221
+ if (definition === void 0) throw new Error(`Unhandled vertical preset id: ${presetId}`);
3222
+ return definition;
3223
+ }
3224
+ function createConfiguredSiteVerticalBookingConfig(verticalId, selectedPresetIds) {
3225
+ return {
3226
+ verticalId,
3227
+ selectedPresetIds
3228
+ };
3229
+ }
3230
+ function toNonEmptyVerticalPresetIds(presetIds) {
3231
+ const firstPresetId = presetIds[0];
3232
+ return firstPresetId ? [firstPresetId, ...presetIds.slice(1)] : null;
3233
+ }
3234
+ function appendUniqueIssue(issues, issue) {
3235
+ return issues.some((existing) => existing.code === issue.code) ? issues : [...issues, issue];
3236
+ }
3237
+ function collectRawConfigIssues(rawConfig, config) {
3238
+ const rawPresetValue = rawConfig.selectedPresetIds;
3239
+ const rawPresetIds = Array.isArray(rawPresetValue) ? rawPresetValue : [];
3240
+ let issues = [];
3241
+ if (rawConfig.verticalId != null && config.verticalId === null) issues = appendUniqueIssue(issues, {
3242
+ code: "unknown_vertical",
3243
+ rawValue: rawConfig.verticalId
3244
+ });
3245
+ if (config.verticalId === null && config.selectedPresetIds.length > 0) issues = appendUniqueIssue(issues, { code: "missing_vertical" });
3246
+ if (rawPresetValue !== void 0 && !Array.isArray(rawPresetValue) || rawPresetIds.some((presetId) => parseVerticalPresetId(presetId) === null)) issues = appendUniqueIssue(issues, {
3247
+ code: "unknown_preset",
3248
+ rawValue: rawPresetValue
3249
+ });
3250
+ if (rawConfig.verticalId != null && config.selectedPresetIds.length === 0) issues = appendUniqueIssue(issues, { code: "empty_selected_presets" });
3251
+ return issues;
3252
+ }
3253
+ function collectPresetConfigIssues(config) {
3254
+ const seenPresetIds = /* @__PURE__ */ new Set();
3255
+ const seenBehaviours = /* @__PURE__ */ new Set();
3256
+ let issues = [];
3257
+ for (const presetId of config.selectedPresetIds) {
3258
+ const presetDefinition = getVerticalPresetDefinition(presetId);
3259
+ if (seenPresetIds.has(presetId)) issues = appendUniqueIssue(issues, { code: "duplicate_preset_id" });
3260
+ seenPresetIds.add(presetId);
3261
+ if (config.verticalId !== null && presetDefinition.verticalId !== config.verticalId) issues = appendUniqueIssue(issues, { code: "preset_vertical_mismatch" });
3262
+ if (presetDefinition.availability === "future") issues = appendUniqueIssue(issues, { code: "future_preset_selected" });
3263
+ if (seenBehaviours.has(presetDefinition.canonicalBehaviour)) issues = appendUniqueIssue(issues, { code: "duplicate_canonical_behaviour" });
3264
+ seenBehaviours.add(presetDefinition.canonicalBehaviour);
3265
+ }
3266
+ return issues;
3267
+ }
3268
+ function getSiteVerticalConfigIssues(rawConfig, config) {
3269
+ let issues = collectRawConfigIssues(rawConfig, config);
3270
+ for (const issue of collectPresetConfigIssues(config)) issues = appendUniqueIssue(issues, issue);
3271
+ return issues;
3272
+ }
3273
+ function resolveSiteVerticalBookingConfig(rawConfig) {
3274
+ if (rawConfig == null) return {
3275
+ kind: "unconfigured",
3276
+ config: DEFAULT_SITE_VERTICAL_BOOKING_CONFIG
3277
+ };
3278
+ const verticalId = parseVerticalId(rawConfig.verticalId);
3279
+ const selectedPresetIds = (Array.isArray(rawConfig.selectedPresetIds) ? rawConfig.selectedPresetIds : []).map(parseVerticalPresetId).filter((presetId) => Boolean(presetId));
3280
+ const config = {
3281
+ verticalId,
3282
+ selectedPresetIds
3283
+ };
3284
+ if (rawConfig.verticalId == null && selectedPresetIds.length === 0) return {
3285
+ kind: "unconfigured",
3286
+ config: DEFAULT_SITE_VERTICAL_BOOKING_CONFIG
3287
+ };
3288
+ const issues = getSiteVerticalConfigIssues(rawConfig, config);
3289
+ if (issues.length > 0) return {
3290
+ kind: "invalid",
3291
+ config,
3292
+ issues
3293
+ };
3294
+ const nonEmptyPresetIds = toNonEmptyVerticalPresetIds(selectedPresetIds);
3295
+ const configuredConfig = verticalId !== null && nonEmptyPresetIds !== null ? createConfiguredSiteVerticalBookingConfig(verticalId, nonEmptyPresetIds) : null;
3296
+ if (configuredConfig === null) return {
3297
+ kind: "invalid",
3298
+ config,
3299
+ issues: [{ code: "empty_selected_presets" }]
3300
+ };
3301
+ return {
3302
+ kind: "configured",
3303
+ config: configuredConfig,
3304
+ selectedPresets: configuredConfig.selectedPresetIds.map(getVerticalPresetDefinition)
3305
+ };
3306
+ }
3307
+ var VERTICAL_ID_SET, VERTICAL_PRESET_ID_SET, DEFAULT_SITE_VERTICAL_BOOKING_CONFIG;
3308
+ var init_booking_vertical_config = __esmMin((() => {
3309
+ init_booking_vertical_catalog();
3310
+ init_booking_vertical_definitions();
3311
+ VERTICAL_ID_SET = new Set(VERTICAL_DEFINITIONS.map(({ id }) => id));
3312
+ VERTICAL_PRESET_ID_SET = new Set(VERTICAL_BOOKING_PRESETS.map((presetDefinition) => presetDefinition.id));
3313
+ DEFAULT_SITE_VERTICAL_BOOKING_CONFIG = {
3314
+ verticalId: null,
3315
+ selectedPresetIds: []
3316
+ };
3317
+ }));
3318
+ //#endregion
3319
+ //#region ../core/src/booking-verticals.ts
3320
+ var init_booking_verticals = __esmMin((() => {
3321
+ init_booking_vertical_config();
3322
+ }));
3323
+ //#endregion
2745
3324
  //#region ../core/src/index.ts
2746
3325
  var init_src$4 = __esmMin((() => {
2747
3326
  init_branded();
@@ -2754,12 +3333,14 @@ var init_src$4 = __esmMin((() => {
2754
3333
  init_collections();
2755
3334
  init_event_pricing();
2756
3335
  init_event_page_surface_subject();
3336
+ init_event_page_selection();
2757
3337
  init_public_event_booking_availability();
2758
3338
  init_money_input();
2759
3339
  init_booking_flexible_balance();
2760
3340
  init_booking_refunds();
2761
3341
  init_booking_instalments();
2762
3342
  init_booking_date_time();
3343
+ init_booking_consent();
2763
3344
  init_dated_offering_settlement();
2764
3345
  init_person_records();
2765
3346
  init_rectification();
@@ -2800,6 +3381,8 @@ var init_src$4 = __esmMin((() => {
2800
3381
  init_stable_json();
2801
3382
  init_secret();
2802
3383
  init_site_route_target();
3384
+ init_booking_verticals();
3385
+ init_event_series_behaviour();
2803
3386
  }));
2804
3387
  //#endregion
2805
3388
  //#region ../api/src/demoDashboardMutationSurfaces.ts
@@ -2828,8 +3411,71 @@ var init_media$4 = __esmMin((() => {
2828
3411
  "style-atmosphere-2"
2829
3412
  ];
2830
3413
  [...AMBIENT_BACKGROUND_ROLES$1];
2831
- })), portalLinkPayloadSchema, cartLinkLabelConfigSchema, cartLinkPayloadSchema, internalLinkPayloadSchema, externalLinkSchema$1, customLinkSchema$1, pageLinkSchema$1, entryLinkSchema$1, linkPayloadSchema, navigationLinkInputSchemaOptions;
3414
+ })), nullableString, RESOLVED_INTERNAL_LINK_ENTITY_TYPES, resolvedInternalLinkKeys, internalRouteOnlyLinkSchema, internalResolvedLinkSchema, internalLinkSchema, externalLinkSchema$1, customLinkSchema$1, pageLinkSchema$1, entryLinkSchema$1;
3415
+ var init_link = __esmMin((() => {
3416
+ nullableString = z.union([z.string().min(1), z.null()]);
3417
+ RESOLVED_INTERNAL_LINK_ENTITY_TYPES = [
3418
+ "page",
3419
+ "content",
3420
+ "pageSurface"
3421
+ ];
3422
+ resolvedInternalLinkKeys = [
3423
+ "entityId",
3424
+ "entityType",
3425
+ "href",
3426
+ "title",
3427
+ "typeLabel"
3428
+ ];
3429
+ internalRouteOnlyLinkSchema = z.object({
3430
+ kind: z.literal("internal"),
3431
+ routeId: z.string().min(1)
3432
+ }).passthrough().superRefine((value, ctx) => {
3433
+ if (!resolvedInternalLinkKeys.some((key) => value[key] != null)) return;
3434
+ ctx.addIssue({
3435
+ code: "custom",
3436
+ message: "Internal links with resolved metadata must include entityId, entityType, href, title, and typeLabel"
3437
+ });
3438
+ });
3439
+ internalResolvedLinkSchema = z.object({
3440
+ kind: z.literal("internal"),
3441
+ routeId: z.string().min(1),
3442
+ entityId: z.string().min(1),
3443
+ entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
3444
+ href: z.string().min(1),
3445
+ title: z.string().min(1),
3446
+ typeLabel: z.string().min(1),
3447
+ contentTypeKey: nullableString.optional(),
3448
+ contentTypeName: nullableString.optional(),
3449
+ updatedAt: nullableString.optional()
3450
+ }).passthrough();
3451
+ internalLinkSchema = z.union([internalResolvedLinkSchema, internalRouteOnlyLinkSchema]);
3452
+ externalLinkSchema$1 = z.object({
3453
+ kind: z.literal("external"),
3454
+ href: z.string().min(1)
3455
+ }).passthrough();
3456
+ customLinkSchema$1 = z.object({
3457
+ kind: z.literal("url"),
3458
+ href: z.string().min(1)
3459
+ }).passthrough();
3460
+ pageLinkSchema$1 = z.object({
3461
+ kind: z.literal("page"),
3462
+ identifier: z.string().min(1)
3463
+ }).passthrough();
3464
+ entryLinkSchema$1 = z.object({
3465
+ kind: z.literal("entry"),
3466
+ contentType: z.string().min(1),
3467
+ identifier: z.string().min(1)
3468
+ }).passthrough();
3469
+ z.union([
3470
+ internalLinkSchema,
3471
+ externalLinkSchema$1,
3472
+ customLinkSchema$1,
3473
+ pageLinkSchema$1,
3474
+ entryLinkSchema$1
3475
+ ]);
3476
+ })), portalLinkPayloadSchema, cartLinkLabelConfigSchema, cartLinkPayloadSchema, internalLinkPayloadSchema, externalLinkSchema, customLinkSchema, pageLinkSchema, entryLinkSchema, linkPayloadSchema, navigationLinkInputSchemaOptions;
2832
3477
  var init_contracts$1 = __esmMin((() => {
3478
+ init_link();
2833
3479
  portalLinkPayloadSchema = z.object({
2834
3480
  kind: z.literal("portal"),
2835
3481
  path: z.string().trim().startsWith("/").optional(),
@@ -2851,7 +3497,7 @@ var init_contracts$1 = __esmMin((() => {
2851
3497
  kind: z.literal("internal"),
2852
3498
  routeId: z.string().uuid(),
2853
3499
  entityId: z.string().uuid(),
2854
- entityType: z.enum(["page", "content"]),
3500
+ entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
2855
3501
  href: z.string().min(1),
2856
3502
  title: z.string().min(1),
2857
3503
  typeLabel: z.string().min(1),
@@ -2859,37 +3505,37 @@ var init_contracts$1 = __esmMin((() => {
2859
3505
  contentTypeName: z.string().nullable().optional(),
2860
3506
  updatedAt: z.string().nullable().optional()
2861
3507
  }).passthrough();
2862
- externalLinkSchema$1 = z.object({
3508
+ externalLinkSchema = z.object({
2863
3509
  kind: z.literal("external"),
2864
3510
  href: z.string().url()
2865
3511
  });
2866
- customLinkSchema$1 = z.object({
3512
+ customLinkSchema = z.object({
2867
3513
  kind: z.literal("url"),
2868
3514
  href: z.string().min(1)
2869
3515
  });
2870
- pageLinkSchema$1 = z.object({
3516
+ pageLinkSchema = z.object({
2871
3517
  kind: z.literal("page"),
2872
3518
  identifier: z.string().min(1)
2873
3519
  });
2874
- entryLinkSchema$1 = z.object({
3520
+ entryLinkSchema = z.object({
2875
3521
  kind: z.literal("entry"),
2876
3522
  contentType: z.string().min(1),
2877
3523
  identifier: z.string().min(1)
2878
3524
  });
2879
3525
  linkPayloadSchema = z.discriminatedUnion("kind", [
2880
3526
  internalLinkPayloadSchema,
2881
- pageLinkSchema$1,
2882
- entryLinkSchema$1,
2883
- externalLinkSchema$1,
2884
- customLinkSchema$1,
3527
+ pageLinkSchema,
3528
+ entryLinkSchema,
3529
+ externalLinkSchema,
3530
+ customLinkSchema,
2885
3531
  portalLinkPayloadSchema,
2886
3532
  cartLinkPayloadSchema
2887
3533
  ]);
2888
3534
  navigationLinkInputSchemaOptions = [
2889
- pageLinkSchema$1,
2890
- entryLinkSchema$1,
2891
- externalLinkSchema$1,
2892
- customLinkSchema$1,
3535
+ pageLinkSchema,
3536
+ entryLinkSchema,
3537
+ externalLinkSchema,
3538
+ customLinkSchema,
2893
3539
  portalLinkPayloadSchema,
2894
3540
  cartLinkPayloadSchema
2895
3541
  ];
@@ -3113,7 +3759,7 @@ var init_all = __esmMin((() => {
3113
3759
  }));
3114
3760
  //#endregion
3115
3761
  //#region ../theme-core/src/palette/types.ts
3116
- var init_types$15 = __esmMin((() => {}));
3762
+ var init_types$16 = __esmMin((() => {}));
3117
3763
  //#endregion
3118
3764
  //#region ../../node_modules/.pnpm/@vibrant+image@4.0.4/node_modules/@vibrant/image/dist/esm/histogram.js
3119
3765
  var Histogram;
@@ -4585,7 +5231,7 @@ function defineCuratedPalette(input) {
4585
5231
  };
4586
5232
  }
4587
5233
  var curatedPaletteAuthoringKeySchema;
4588
- var init_types$14 = __esmMin((() => {
5234
+ var init_types$15 = __esmMin((() => {
4589
5235
  init_styleTags();
4590
5236
  init_themeColorTokens();
4591
5237
  init_colors();
@@ -4626,7 +5272,7 @@ var init_types$14 = __esmMin((() => {
4626
5272
  //#region ../theme-core/src/palette/curated/brand-led.ts
4627
5273
  var brandLedCool, brandLedWarm, brandLedJewel, brandLedSpruce, brandLedBurgundyGold;
4628
5274
  var init_brand_led = __esmMin((() => {
4629
- init_types$14();
5275
+ init_types$15();
4630
5276
  brandLedCool = defineCuratedPalette({
4631
5277
  authoringKey: "brand-led-cool",
4632
5278
  name: "Brand-led — Cool",
@@ -4957,7 +5603,7 @@ var init_brand_led = __esmMin((() => {
4957
5603
  //#region ../theme-core/src/palette/curated/high-contrast.ts
4958
5604
  var highContrastInk, highContrastCharcoal, highContrastMonochrome;
4959
5605
  var init_high_contrast = __esmMin((() => {
4960
- init_types$14();
5606
+ init_types$15();
4961
5607
  highContrastInk = defineCuratedPalette({
4962
5608
  authoringKey: "high-contrast-ink",
4963
5609
  name: "High Contrast — Ink",
@@ -5158,7 +5804,7 @@ var init_high_contrast = __esmMin((() => {
5158
5804
  //#region ../theme-core/src/palette/curated/soft-natural.ts
5159
5805
  var softNaturalSage, softNaturalStone, softNaturalWatercolor, softNaturalLilac;
5160
5806
  var init_soft_natural = __esmMin((() => {
5161
- init_types$14();
5807
+ init_types$15();
5162
5808
  softNaturalSage = defineCuratedPalette({
5163
5809
  authoringKey: "soft-natural-sage",
5164
5810
  name: "Soft Natural — Sage",
@@ -5424,7 +6070,7 @@ var init_soft_natural = __esmMin((() => {
5424
6070
  //#region ../theme-core/src/palette/curated/warm-neutral.ts
5425
6071
  var warmNeutralClay, warmNeutralCream, warmNeutralSoftEarth, warmNeutralForest;
5426
6072
  var init_warm_neutral = __esmMin((() => {
5427
- init_types$14();
6073
+ init_types$15();
5428
6074
  warmNeutralClay = defineCuratedPalette({
5429
6075
  authoringKey: "warm-neutral-clay",
5430
6076
  name: "Warm Neutral — Clay",
@@ -5690,7 +6336,7 @@ var init_warm_neutral = __esmMin((() => {
5690
6336
  //#region ../theme-core/src/palette/curated/warm-dark.ts
5691
6337
  var warmDarkEmber, warmDarkKirtanGold;
5692
6338
  var init_warm_dark = __esmMin((() => {
5693
- init_types$14();
6339
+ init_types$15();
5694
6340
  warmDarkEmber = defineCuratedPalette({
5695
6341
  authoringKey: "warm-dark-ember",
5696
6342
  name: "Warm Dark — Ember",
@@ -5845,7 +6491,7 @@ var init_curated = __esmMin((() => {
5845
6491
  init_soft_natural();
5846
6492
  init_warm_neutral();
5847
6493
  init_warm_dark();
5848
- init_types$14();
6494
+ init_types$15();
5849
6495
  curatedPalettes = [
5850
6496
  admitCuratedPaletteDefinition(brandLedCool),
5851
6497
  admitCuratedPaletteDefinition(brandLedWarm),
@@ -5878,7 +6524,7 @@ var init_palette = __esmMin((() => {
5878
6524
  init_generateCssVars();
5879
6525
  init_generateShades();
5880
6526
  init_neutralScale();
5881
- init_types$15();
6527
+ init_types$16();
5882
6528
  init_utils$4();
5883
6529
  init_paletteAccess();
5884
6530
  init_extractPalette();
@@ -6029,8 +6675,8 @@ function unsafeAsOpaqueButtonColourToken(value) {
6029
6675
  function createStandardButtonSurfacePolicy() {
6030
6676
  return Object.fromEntries(VARIANT_ROLES.map((role) => [role, [...STANDARD_BUTTON_SURFACE_POLICY[role]]]));
6031
6677
  }
6032
- var VARIANT_ROLES, buttonVariantIdSchema, opaqueButtonColourTokenSchema, buttonShadeAmountSchema, buttonShadowIntensitySchema, buttonEffectApplicationSchema, cornerStyleSchema, shadowSizeSchema, textTransformSchema, fontWeightSchema, buttonTypographySchema, letterSpacingSchema, hoverTransformSchema, buttonPaddingPresetSchema, gradientStyleSchema, gradientSharpnessSchema, prioritySchema, variantRoleSchema, buttonSurfaceFallbackSchema, standardButtonSurfacePolicy, STANDARD_BUTTON_SURFACE_POLICY, buttonSurfacePolicyShape, buttonSurfacePolicySchema, buttonSizeNameSchema, PADDING_TOKEN_PATTERN, paddingShorthandSchema, buttonSizeConfigSchema, buttonSizesSchema, buttonGlobalSettingsBaseSchema, buttonGlobalSettingsSchema, gradientDirectionSchema$1, buttonColourTreatmentSchema, buttonBackgroundSchema, buttonBorderSchema, buttonVariantAffordanceSchema, variantShadowSchema, variantEffectsSchema, variantSizeOverridesSchema, buttonVariantSchema, buttonSystemSchema;
6033
- var init_types$13 = __esmMin((() => {
6678
+ var VARIANT_ROLES, buttonVariantIdSchema, opaqueButtonColourTokenSchema, contextualButtonHoverSchema, buttonShadeAmountSchema, buttonShadowIntensitySchema, buttonEffectApplicationSchema, cornerStyleSchema, shadowSizeSchema, textTransformSchema, fontWeightSchema, buttonTypographySchema, letterSpacingSchema, hoverTransformSchema, buttonPaddingPresetSchema, gradientStyleSchema, gradientSharpnessSchema, prioritySchema, variantRoleSchema, buttonSurfaceFallbackSchema, standardButtonSurfacePolicy, STANDARD_BUTTON_SURFACE_POLICY, buttonSurfacePolicyShape, buttonSurfacePolicySchema, buttonSizeNameSchema, PADDING_TOKEN_PATTERN, paddingShorthandSchema, buttonSizeConfigSchema, buttonSizesSchema, buttonGlobalSettingsBaseSchema, buttonGlobalSettingsSchema, gradientDirectionSchema$1, buttonColourTreatmentSchema, buttonBackgroundSchema, buttonBorderSchema, buttonVariantAffordanceSchema, variantShadowSchema, variantEffectsSchema, variantSizeOverridesSchema, buttonVariantSchema, buttonSystemSchema;
6679
+ var init_types$14 = __esmMin((() => {
6034
6680
  init_themeColorTokens();
6035
6681
  init_colorTokenParts();
6036
6682
  VARIANT_ROLES = [
@@ -6046,6 +6692,12 @@ var init_types$13 = __esmMin((() => {
6046
6692
  if (token === null) throw new Error("Invariant: opaque button token passed its schema");
6047
6693
  return token;
6048
6694
  });
6695
+ contextualButtonHoverSchema = z.strictObject({
6696
+ kind: z.literal("shade-shift"),
6697
+ seedToken: opaqueButtonColourTokenSchema,
6698
+ fallbackDirection: z.enum(["lighter", "darker"]),
6699
+ preferredToken: opaqueButtonColourTokenSchema.optional()
6700
+ });
6049
6701
  buttonShadeAmountSchema = z.number().finite().min(0).max(900).multipleOf(100);
6050
6702
  buttonShadowIntensitySchema = z.enum([
6051
6703
  "subtle",
@@ -6349,6 +7001,7 @@ var init_types$13 = __esmMin((() => {
6349
7001
  shadow: variantShadowSchema.optional(),
6350
7002
  border: buttonBorderSchema.optional(),
6351
7003
  hoverBackgroundToken: opaqueButtonColourTokenSchema.optional(),
7004
+ contextualHover: contextualButtonHoverSchema.optional(),
6352
7005
  effects: variantEffectsSchema.optional(),
6353
7006
  sizes: variantSizeOverridesSchema.optional(),
6354
7007
  affordance: buttonVariantAffordanceSchema.optional()
@@ -6470,7 +7123,7 @@ function getButtonEffectPolicy(effectId) {
6470
7123
  }
6471
7124
  var BUTTON_EFFECT_POLICIES;
6472
7125
  var init_effectClassification = __esmMin((() => {
6473
- init_types$13();
7126
+ init_types$14();
6474
7127
  BUTTON_EFFECT_POLICIES = {
6475
7128
  "darken-background": {
6476
7129
  classification: "colour-transition",
@@ -6623,6 +7276,148 @@ var init_buttonColourContract = __esmMin((() => {
6623
7276
  };
6624
7277
  }));
6625
7278
  //#endregion
7279
+ //#region ../theme-core/src/buttons/contextualHover.ts
7280
+ function resolveContextualHoverPreference(input) {
7281
+ const preferred = input.instruction.preferredToken;
7282
+ if (preferred && isSafeCandidate(preferred, input.palette, input.surface)) return {
7283
+ kind: "resolved",
7284
+ token: preferred,
7285
+ repair: null
7286
+ };
7287
+ const contextual = resolveContextualHover(input);
7288
+ return contextual.kind === "resolved" ? {
7289
+ kind: "resolved",
7290
+ token: contextual.token,
7291
+ repair: preferred ? {
7292
+ kind: "preferred-token-replaced",
7293
+ preferredToken: preferred,
7294
+ contextualToken: contextual.token
7295
+ } : null
7296
+ } : contextual;
7297
+ }
7298
+ /**
7299
+ * Resolves semantic shade movement from real palette steps. The persisted
7300
+ * instruction owns the colour family and deterministic unknown-surface
7301
+ * fallback; a proven surface may select the opposite direction when it gives
7302
+ * the button stronger separation while retaining the shared contrast contract.
7303
+ */
7304
+ function resolveContextualHover(input) {
7305
+ const candidates = shadeCandidates(input.instruction.seedToken, input.palette);
7306
+ if (candidates.length === 0) return {
7307
+ kind: "unavailable",
7308
+ reason: "no-distinct-shade"
7309
+ };
7310
+ const textSafe = candidates.filter((candidate) => hasSafeTextContrast(candidate.token, input.palette));
7311
+ if (textSafe.length === 0) return {
7312
+ kind: "unavailable",
7313
+ reason: "no-text-safe-candidate"
7314
+ };
7315
+ if (!input.surface) {
7316
+ const selected = textSafe.find((candidate) => candidate.direction === input.instruction.fallbackDirection) ?? textSafe[0];
7317
+ return selected ? {
7318
+ kind: "resolved",
7319
+ token: selected.token,
7320
+ direction: selected.direction,
7321
+ evidence: "fallback-direction"
7322
+ } : {
7323
+ kind: "unavailable",
7324
+ reason: "no-text-safe-candidate"
7325
+ };
7326
+ }
7327
+ const selected = textSafe.map((candidate) => ({
7328
+ ...candidate,
7329
+ surfaceContrast: contrastRatio(input.palette[candidate.token] ?? "", input.surface?.backgroundHex ?? "")
7330
+ })).filter((candidate) => candidate.surfaceContrast !== null && candidate.surfaceContrast >= BUTTON_CONTRAST_POLICY.nonTextMinimumRatio).sort((left, right) => {
7331
+ const distanceDifference = left.distance - right.distance;
7332
+ if (distanceDifference !== 0) return distanceDifference;
7333
+ const contrastDifference = (right.surfaceContrast ?? 0) - (left.surfaceContrast ?? 0);
7334
+ if (contrastDifference !== 0) return contrastDifference;
7335
+ if (left.direction === right.direction) return left.token.localeCompare(right.token);
7336
+ return left.direction === input.instruction.fallbackDirection ? -1 : 1;
7337
+ })[0];
7338
+ return selected ? {
7339
+ kind: "resolved",
7340
+ token: selected.token,
7341
+ direction: selected.direction,
7342
+ evidence: "known-surface"
7343
+ } : {
7344
+ kind: "unavailable",
7345
+ reason: "no-surface-safe-candidate"
7346
+ };
7347
+ }
7348
+ function shadeCandidates(seedToken, palette) {
7349
+ const match = String(seedToken).match(/^(.*?)(?:-(\d{2,3}))?$/);
7350
+ const family = match?.[1] ?? String(seedToken);
7351
+ const currentShade = match?.[2] ? Number(match[2]) : 500;
7352
+ const seedHex = palette[seedToken];
7353
+ const shades = Object.keys(palette).flatMap((token) => {
7354
+ const shade = token.match(new RegExp(`^${escapeRegExp$1(family)}-(\\d{2,3})$`));
7355
+ return shade?.[1] ? [Number(shade[1])] : [];
7356
+ }).filter((shade) => Number.isFinite(shade)).sort((left, right) => left - right);
7357
+ const lower = [...shades].filter((shade) => shade < currentShade).sort((left, right) => right - left);
7358
+ const higher = shades.filter((shade) => shade > currentShade);
7359
+ return [...lower.map((shade) => candidate(family, shade, currentShade, "lighter", seedHex, palette)), ...higher.map((shade) => candidate(family, shade, currentShade, "darker", seedHex, palette))].filter((value) => value !== null);
7360
+ }
7361
+ function candidate(family, shade, currentShade, direction, seedHex, palette) {
7362
+ const token = parseOpaqueButtonColourToken(`${family}-${shade}`);
7363
+ if (token === null) return null;
7364
+ const candidateHex = palette[token];
7365
+ if (!candidateHex || candidateHex === seedHex) return null;
7366
+ return {
7367
+ token,
7368
+ direction,
7369
+ distance: Math.abs(shade - currentShade),
7370
+ surfaceContrast: null
7371
+ };
7372
+ }
7373
+ function hasSafeTextContrast(token, palette) {
7374
+ const background = palette[token];
7375
+ const foreground = palette[onColorTokenName(token)];
7376
+ return typeof background === "string" && typeof foreground === "string" && contrastRatio(background, foreground) >= BUTTON_CONTRAST_POLICY.textMinimumRatio;
7377
+ }
7378
+ function isSafeCandidate(token, palette, surface) {
7379
+ if (!hasSafeTextContrast(token, palette)) return false;
7380
+ return surface ? contrastRatio(palette[token] ?? "", surface.backgroundHex) >= BUTTON_CONTRAST_POLICY.nonTextMinimumRatio : true;
7381
+ }
7382
+ function escapeRegExp$1(value) {
7383
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
7384
+ }
7385
+ var init_contextualHover = __esmMin((() => {
7386
+ init_contrast();
7387
+ init_onColor();
7388
+ init_buttonColourContract();
7389
+ init_types$14();
7390
+ }));
7391
+ //#endregion
7392
+ //#region ../theme-core/src/buttons/resolveButtonHoverTreatment.ts
7393
+ function resolveButtonHoverTreatment(input) {
7394
+ if (input.variant.contextualHover) {
7395
+ const contextual = resolveContextualHoverPreference({
7396
+ instruction: input.variant.contextualHover,
7397
+ palette: input.palette,
7398
+ surface: input.surface
7399
+ });
7400
+ if (contextual.kind === "resolved") return {
7401
+ treatment: {
7402
+ type: "solid",
7403
+ colorToken: contextual.token
7404
+ },
7405
+ repair: contextual.repair
7406
+ };
7407
+ }
7408
+ const token = input.variant.hoverBackgroundToken ?? (input.global.hoverColor === "token" ? input.global.hoverColorToken : void 0);
7409
+ return {
7410
+ treatment: token === void 0 ? input.fallback : {
7411
+ type: "solid",
7412
+ colorToken: token
7413
+ },
7414
+ repair: null
7415
+ };
7416
+ }
7417
+ var init_resolveButtonHoverTreatment = __esmMin((() => {
7418
+ init_contextualHover();
7419
+ }));
7420
+ //#endregion
6626
7421
  //#region ../theme-core/src/buttons/resolveButtonColourStates.ts
6627
7422
  function compileButtonColourStates(input) {
6628
7423
  const baseTransition = applyColourEffects({
@@ -6633,9 +7428,16 @@ function compileButtonColourStates(input) {
6633
7428
  palette: input.palette
6634
7429
  });
6635
7430
  if (!baseTransition.ok) return baseTransition;
7431
+ const hover = resolveButtonHoverTreatment({
7432
+ variant: input.variant,
7433
+ global: input.global,
7434
+ fallback: baseTransition.treatment,
7435
+ palette: input.palette,
7436
+ surface: input.surface
7437
+ });
6636
7438
  const stateTreatments = {
6637
7439
  base: baseTransition.treatment,
6638
- hover: hoverTreatment(input.variant, input.global, baseTransition.treatment),
7440
+ hover: hover.treatment,
6639
7441
  focus: baseTransition.treatment,
6640
7442
  active: baseTransition.treatment,
6641
7443
  disabled: baseTransition.treatment
@@ -6674,14 +7476,8 @@ function compileButtonColourStates(input) {
6674
7476
  ok: true,
6675
7477
  states: resolved,
6676
7478
  focusIndicator: resolveFocusIndicator(resolved.focus),
6677
- nonColourEffects
6678
- };
6679
- }
6680
- function hoverTreatment(variant, global, fallback) {
6681
- const token = variant.hoverBackgroundToken ?? (global.hoverColor === "token" ? global.hoverColorToken : void 0);
6682
- return token === void 0 ? fallback : {
6683
- type: "solid",
6684
- colorToken: token
7479
+ nonColourEffects,
7480
+ contextualHoverRepair: hover.repair
6685
7481
  };
6686
7482
  }
6687
7483
  function applyColourEffects(input) {
@@ -6986,9 +7782,10 @@ var init_resolveButtonColourStates = __esmMin((() => {
6986
7782
  init_colorConversion();
6987
7783
  init_onColor();
6988
7784
  init_foregroundContract();
6989
- init_types$13();
7785
+ init_types$14();
6990
7786
  init_constants$1();
6991
7787
  init_effectClassification();
7788
+ init_resolveButtonHoverTreatment();
6992
7789
  init_buttonColourContract();
6993
7790
  }));
6994
7791
  //#endregion
@@ -6996,12 +7793,12 @@ var init_resolveButtonColourStates = __esmMin((() => {
6996
7793
  var init_parseThemeForPersistence = __esmMin((() => {
6997
7794
  init_schema$2();
6998
7795
  init_resolveButtonColourStates();
6999
- init_types$13();
7796
+ init_types$14();
7000
7797
  }));
7001
7798
  //#endregion
7002
7799
  //#region ../theme-core/src/buttons/classNames.ts
7003
7800
  var init_classNames = __esmMin((() => {
7004
- init_types$13();
7801
+ init_types$14();
7005
7802
  }));
7006
7803
  //#endregion
7007
7804
  //#region ../theme-core/src/buttons/effects/presets/background.ts
@@ -7074,7 +7871,7 @@ var init_generateEffectsCSS = __esmMin((() => {
7074
7871
  //#endregion
7075
7872
  //#region ../theme-core/src/buttons/generateDefaultButtonSystem.ts
7076
7873
  var init_generateDefaultButtonSystem = __esmMin((() => {
7077
- init_types$13();
7874
+ init_types$14();
7078
7875
  }));
7079
7876
  //#endregion
7080
7877
  //#region ../theme-core/src/buttons/affordanceIcons.ts
@@ -7562,13 +8359,24 @@ function resolveContextualButtonRole(input) {
7562
8359
  };
7563
8360
  const rejected = [];
7564
8361
  const preferred = compileCandidate(requested, input.buttonSystem, input.palette, input.surface);
7565
- if (preferred.ok) return {
7566
- kind: "preferred",
7567
- requestedRole: input.role,
7568
- states: preferred.states,
7569
- focusIndicator: preferred.focusIndicator,
7570
- boundary: boundaryForVariant(requested)
7571
- };
8362
+ if (preferred.ok) {
8363
+ if (preferred.contextualHoverRepair) return {
8364
+ kind: "repaired",
8365
+ requestedRole: input.role,
8366
+ candidate: "contextual-hover",
8367
+ states: preferred.states,
8368
+ focusIndicator: preferred.focusIndicator,
8369
+ boundary: boundaryForVariant(requested),
8370
+ rejectedCandidates: []
8371
+ };
8372
+ return {
8373
+ kind: "preferred",
8374
+ requestedRole: input.role,
8375
+ states: preferred.states,
8376
+ focusIndicator: preferred.focusIndicator,
8377
+ boundary: boundaryForVariant(requested)
8378
+ };
8379
+ }
7572
8380
  rejected.push({
7573
8381
  candidate: "preferred",
7574
8382
  error: preferred.error
@@ -7688,6 +8496,7 @@ function candidateVariant(fallback, requested, system) {
7688
8496
  },
7689
8497
  border: { widthClass: "border" },
7690
8498
  hoverBackgroundToken: void 0,
8499
+ contextualHover: void 0,
7691
8500
  effects: void 0
7692
8501
  },
7693
8502
  boundary: {
@@ -7791,7 +8600,7 @@ var init_buttonSurfaceContext = __esmMin((() => {
7791
8600
  init_tokenOrColor();
7792
8601
  init_constants$1();
7793
8602
  init_resolveButtonColourStates();
7794
- init_types$13();
8603
+ init_types$14();
7795
8604
  NAMED_OPAQUE_COLOURS = {
7796
8605
  black: "#000000",
7797
8606
  white: "#ffffff",
@@ -7812,7 +8621,7 @@ var init_resolvedButtonCss = __esmMin((() => {
7812
8621
  init_buttonSurfaceContext();
7813
8622
  }));
7814
8623
  var init_generateButtonCss = __esmMin((() => {
7815
- init_types$13();
8624
+ init_types$14();
7816
8625
  init_classNames();
7817
8626
  init_generateEffectsCSS();
7818
8627
  init_generateDefaultButtonSystem();
@@ -7903,14 +8712,8 @@ function rolePriority(role) {
7903
8712
  }
7904
8713
  var PUBLIC_BUTTON_ROLES;
7905
8714
  var init_domain = __esmMin((() => {
7906
- init_types$13();
7907
- PUBLIC_BUTTON_ROLES = [
7908
- "primary",
7909
- "secondary",
7910
- "outline",
7911
- "ghost",
7912
- "accent"
7913
- ];
8715
+ init_types$14();
8716
+ PUBLIC_BUTTON_ROLES = VARIANT_ROLES;
7914
8717
  }));
7915
8718
  //#endregion
7916
8719
  //#region ../theme-core/src/buttons/styles/selection.ts
@@ -7920,8 +8723,9 @@ function selectionBranch(styleId, parameters) {
7920
8723
  parameters
7921
8724
  }).strict();
7922
8725
  }
7923
- var BUTTON_STYLE_IDS, quietArrowParametersSchema, emptyParametersSchema$1, buttonStyleSelectionWireSchema, buttonStyleSelectionSchema;
8726
+ var BUTTON_STYLE_IDS, quietArrowParametersSchema, FLAT_INK_HOVER_TREATMENT_VALUES, flatInkHoverTreatmentSchema, flatInkHoverPreferencesShape, flatInkHoverPreferencesSchema, flatInkParametersSchema, emptyParametersSchema$1, buttonStyleSelectionWireSchema, buttonStyleSelectionSchema;
7924
8727
  var init_selection = __esmMin((() => {
8728
+ init_types$14();
7925
8729
  BUTTON_STYLE_IDS = [
7926
8730
  "soft-pill",
7927
8731
  "earth-pill",
@@ -7937,6 +8741,15 @@ var init_selection = __esmMin((() => {
7937
8741
  "quiet-arrow"
7938
8742
  ];
7939
8743
  quietArrowParametersSchema = z.object({ secondaryTreatment: z.enum(["outlined", "solid-accent"]) }).strict();
8744
+ FLAT_INK_HOVER_TREATMENT_VALUES = [
8745
+ "contextual",
8746
+ "secondary",
8747
+ "accent"
8748
+ ];
8749
+ flatInkHoverTreatmentSchema = z.enum(FLAT_INK_HOVER_TREATMENT_VALUES);
8750
+ flatInkHoverPreferencesShape = Object.fromEntries(VARIANT_ROLES.map((role) => [role, flatInkHoverTreatmentSchema.optional()]));
8751
+ flatInkHoverPreferencesSchema = z.strictObject(flatInkHoverPreferencesShape);
8752
+ flatInkParametersSchema = z.strictObject({ hoverPreferences: flatInkHoverPreferencesSchema.optional() });
7940
8753
  emptyParametersSchema$1 = z.object({}).strict();
7941
8754
  buttonStyleSelectionWireSchema = z.discriminatedUnion("styleId", [
7942
8755
  selectionBranch("soft-pill", emptyParametersSchema$1),
@@ -7945,7 +8758,7 @@ var init_selection = __esmMin((() => {
7945
8758
  selectionBranch("editorial-link", emptyParametersSchema$1),
7946
8759
  selectionBranch("pebble", emptyParametersSchema$1),
7947
8760
  selectionBranch("ink-stamp", emptyParametersSchema$1),
7948
- selectionBranch("flat-ink", emptyParametersSchema$1),
8761
+ selectionBranch("flat-ink", flatInkParametersSchema),
7949
8762
  selectionBranch("brushed-wash", emptyParametersSchema$1),
7950
8763
  selectionBranch("showtime-pill", emptyParametersSchema$1),
7951
8764
  selectionBranch("joy-stamp", emptyParametersSchema$1),
@@ -7959,7 +8772,7 @@ var init_selection = __esmMin((() => {
7959
8772
  var quietArrowRecipe;
7960
8773
  var init_quietArrow = __esmMin((() => {
7961
8774
  init_domain();
7962
- init_types$13();
8775
+ init_types$14();
7963
8776
  init_selection();
7964
8777
  quietArrowRecipe = defineButtonStyleRecipe({
7965
8778
  id: "quiet-arrow",
@@ -8090,6 +8903,195 @@ var init_quietArrow = __esmMin((() => {
8090
8903
  });
8091
8904
  }));
8092
8905
  //#endregion
8906
+ //#region ../theme-core/src/buttons/styles/recipes/flatInk.ts
8907
+ function hoverAppearance(role, parameters, recommended) {
8908
+ const preference = parameters.hoverPreferences?.[role];
8909
+ if (preference === void 0) return { effects: { hover: [...recommended] } };
8910
+ if (preference === "contextual") {
8911
+ const config = contextualRoleConfig[role];
8912
+ return {
8913
+ effects: { hover: [lift] },
8914
+ contextualHover: {
8915
+ kind: "shade-shift",
8916
+ seedToken: config.contextualSeedToken,
8917
+ fallbackDirection: config.fallbackDirection
8918
+ }
8919
+ };
8920
+ }
8921
+ const config = contextualRoleConfig[role];
8922
+ return {
8923
+ effects: { hover: [lift] },
8924
+ contextualHover: {
8925
+ kind: "shade-shift",
8926
+ seedToken: config.contextualSeedToken,
8927
+ fallbackDirection: config.fallbackDirection,
8928
+ preferredToken: unsafeAsOpaqueButtonColourToken(paletteRole(preference))
8929
+ }
8930
+ };
8931
+ }
8932
+ function paletteRole(preference) {
8933
+ return preference;
8934
+ }
8935
+ var contextualRoleConfig, hoverControl, lift, flatInkRecipe;
8936
+ var init_flatInk = __esmMin((() => {
8937
+ init_types$14();
8938
+ init_domain();
8939
+ init_selection();
8940
+ contextualRoleConfig = {
8941
+ primary: {
8942
+ contextualSeedToken: unsafeAsOpaqueButtonColourToken("primary"),
8943
+ fallbackDirection: "darker"
8944
+ },
8945
+ secondary: {
8946
+ contextualSeedToken: unsafeAsOpaqueButtonColourToken("surfaceAlt"),
8947
+ fallbackDirection: "darker"
8948
+ },
8949
+ outline: {
8950
+ contextualSeedToken: unsafeAsOpaqueButtonColourToken("surfaceAlt"),
8951
+ fallbackDirection: "darker"
8952
+ },
8953
+ ghost: {
8954
+ contextualSeedToken: unsafeAsOpaqueButtonColourToken("surfaceAlt"),
8955
+ fallbackDirection: "darker"
8956
+ },
8957
+ accent: {
8958
+ contextualSeedToken: unsafeAsOpaqueButtonColourToken("accent"),
8959
+ fallbackDirection: "darker"
8960
+ }
8961
+ };
8962
+ hoverControl = {
8963
+ kind: "button-hover-by-role",
8964
+ parameter: "hoverPreferences",
8965
+ label: "Button hover",
8966
+ roles: contextualRoleConfig,
8967
+ options: [
8968
+ {
8969
+ value: "contextual",
8970
+ label: "Contextual shade shift"
8971
+ },
8972
+ {
8973
+ value: "secondary",
8974
+ label: "Secondary button colour"
8975
+ },
8976
+ {
8977
+ value: "accent",
8978
+ label: "Accent button colour"
8979
+ }
8980
+ ]
8981
+ };
8982
+ lift = { effectId: "lift" };
8983
+ flatInkRecipe = defineButtonStyleRecipe({
8984
+ id: "flat-ink",
8985
+ accessibilityLabel: "Flat rounded buttons with arrow affordances",
8986
+ tags: {
8987
+ tone: "classic",
8988
+ energy: "calm",
8989
+ motion: "subtle",
8990
+ era: "editorial"
8991
+ },
8992
+ parameterSchema: flatInkParametersSchema,
8993
+ defaultParameters: {},
8994
+ controls: [hoverControl],
8995
+ defineSystem: (parameters) => ({
8996
+ global: {
8997
+ cornerStyle: "rounded",
8998
+ textTransform: "none",
8999
+ fontWeight: 600,
9000
+ typography: "body",
9001
+ letterSpacing: "tight",
9002
+ paddingPreset: "default",
9003
+ hoverTransform: "lift",
9004
+ hoverColor: "none"
9005
+ },
9006
+ sizes: {
9007
+ sm: {
9008
+ padding: "0.625rem 1.125rem",
9009
+ fontSize: "text-sm"
9010
+ },
9011
+ md: { padding: "0.8125rem 1.375rem" },
9012
+ lg: {
9013
+ padding: "0.9375rem 1.625rem",
9014
+ fontSize: "text-lg"
9015
+ },
9016
+ xl: {
9017
+ padding: "1.0625rem 2rem",
9018
+ fontSize: "text-xl"
9019
+ }
9020
+ },
9021
+ roles: {
9022
+ primary: {
9023
+ kind: "complete",
9024
+ appearance: {
9025
+ background: {
9026
+ type: "solid",
9027
+ colorToken: unsafeAsOpaqueButtonColourToken("primary")
9028
+ },
9029
+ borderRadius: "rounded-lg",
9030
+ affordance: { iconId: "ArrowRight" },
9031
+ ...hoverAppearance("primary", parameters, [lift, {
9032
+ effectId: "background-on-hover",
9033
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("secondary") }
9034
+ }])
9035
+ }
9036
+ },
9037
+ secondary: {
9038
+ kind: "complete",
9039
+ appearance: {
9040
+ background: {
9041
+ type: "surface",
9042
+ role: "link"
9043
+ },
9044
+ borderRadius: "rounded-lg",
9045
+ border: { widthClass: "border" },
9046
+ ...hoverAppearance("secondary", parameters, [lift, {
9047
+ effectId: "background-on-hover",
9048
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surfaceAlt") }
9049
+ }])
9050
+ }
9051
+ },
9052
+ outline: {
9053
+ kind: "complete",
9054
+ appearance: {
9055
+ background: {
9056
+ type: "surface",
9057
+ role: "link"
9058
+ },
9059
+ borderRadius: "rounded-lg",
9060
+ border: { widthClass: "border" },
9061
+ ...hoverAppearance("outline", parameters, [lift, {
9062
+ effectId: "background-on-hover",
9063
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surfaceAlt") }
9064
+ }])
9065
+ }
9066
+ },
9067
+ ghost: {
9068
+ kind: "complete",
9069
+ appearance: {
9070
+ background: {
9071
+ type: "surface",
9072
+ role: "link"
9073
+ },
9074
+ borderRadius: "rounded-lg",
9075
+ ...hoverAppearance("ghost", parameters, [lift])
9076
+ }
9077
+ },
9078
+ accent: {
9079
+ kind: "complete",
9080
+ appearance: {
9081
+ background: {
9082
+ type: "solid",
9083
+ colorToken: unsafeAsOpaqueButtonColourToken("accent")
9084
+ },
9085
+ borderRadius: "rounded-lg",
9086
+ affordance: { iconId: "ArrowRight" },
9087
+ ...hoverAppearance("accent", parameters, [lift])
9088
+ }
9089
+ }
9090
+ }
9091
+ })
9092
+ });
9093
+ }));
9094
+ //#endregion
8093
9095
  //#region ../theme-core/src/buttons/styles/recipes/defineStaticButtonStyleRecipe.ts
8094
9096
  function defineStaticButtonStyleRecipe(input) {
8095
9097
  const system = normalizeSystem(input.system);
@@ -8148,16 +9150,16 @@ function normalizeAppearanceOverrides(overrides) {
8148
9150
  }
8149
9151
  var emptyParametersSchema;
8150
9152
  var init_defineStaticButtonStyleRecipe = __esmMin((() => {
8151
- init_types$13();
9153
+ init_types$14();
8152
9154
  init_domain();
8153
9155
  emptyParametersSchema = z.object({}).strict();
8154
9156
  }));
8155
9157
  //#endregion
8156
9158
  //#region ../theme-core/src/buttons/styles/recipes/staticRecipes.ts
8157
- var softPillRecipe, earthPillRecipe, confidentChipRecipe, editorialSizes, editorialLinkRecipe, pebbleRecipe, brushedWashRecipe, inkStampRecipe, flatInkRecipe, showtimePillRecipe, joyStampRecipe, ornateGhostSizes, ornateRitualRecipe;
9159
+ var softPillRecipe, earthPillRecipe, confidentChipRecipe, editorialSizes, editorialLinkRecipe, pebbleRecipe, brushedWashRecipe, inkStampRecipe, showtimePillRecipe, joyStampRecipe, ornateGhostSizes, ornateRitualRecipe;
8158
9160
  var init_staticRecipes = __esmMin((() => {
8159
9161
  init_defineStaticButtonStyleRecipe();
8160
- init_types$13();
9162
+ init_types$14();
8161
9163
  softPillRecipe = defineStaticButtonStyleRecipe({
8162
9164
  id: "soft-pill",
8163
9165
  accessibilityLabel: "Rounded pill buttons with a gentle hover lift",
@@ -8945,113 +9947,6 @@ var init_staticRecipes = __esmMin((() => {
8945
9947
  }
8946
9948
  }
8947
9949
  });
8948
- flatInkRecipe = defineStaticButtonStyleRecipe({
8949
- id: "flat-ink",
8950
- accessibilityLabel: "Flat rounded buttons with arrow affordances",
8951
- tags: {
8952
- tone: "classic",
8953
- energy: "calm",
8954
- motion: "subtle",
8955
- era: "editorial"
8956
- },
8957
- system: {
8958
- global: {
8959
- cornerStyle: "rounded",
8960
- textTransform: "none",
8961
- fontWeight: 600,
8962
- typography: "body",
8963
- letterSpacing: "tight",
8964
- paddingPreset: "default",
8965
- hoverTransform: "lift",
8966
- hoverColor: "none"
8967
- },
8968
- sizes: {
8969
- sm: {
8970
- padding: "0.625rem 1.125rem",
8971
- fontSize: "text-sm"
8972
- },
8973
- md: { padding: "0.8125rem 1.375rem" },
8974
- lg: {
8975
- padding: "0.9375rem 1.625rem",
8976
- fontSize: "text-lg"
8977
- },
8978
- xl: {
8979
- padding: "1.0625rem 2rem",
8980
- fontSize: "text-xl"
8981
- }
8982
- },
8983
- roles: {
8984
- primary: {
8985
- kind: "complete",
8986
- appearance: {
8987
- background: {
8988
- type: "solid",
8989
- colorToken: "primary"
8990
- },
8991
- borderRadius: "rounded-lg",
8992
- affordance: { iconId: "ArrowRight" },
8993
- effects: { hover: [{ effectId: "lift" }, {
8994
- effectId: "background-on-hover",
8995
- options: { colorToken: unsafeAsOpaqueButtonColourToken("secondary") }
8996
- }] }
8997
- }
8998
- },
8999
- secondary: {
9000
- kind: "complete",
9001
- appearance: {
9002
- background: {
9003
- type: "surface",
9004
- role: "link"
9005
- },
9006
- borderRadius: "rounded-lg",
9007
- border: { widthClass: "border" },
9008
- effects: { hover: [{ effectId: "lift" }, {
9009
- effectId: "background-on-hover",
9010
- options: { colorToken: unsafeAsOpaqueButtonColourToken("surfaceAlt") }
9011
- }] }
9012
- }
9013
- },
9014
- outline: {
9015
- kind: "complete",
9016
- appearance: {
9017
- background: {
9018
- type: "surface",
9019
- role: "link"
9020
- },
9021
- borderRadius: "rounded-lg",
9022
- border: { widthClass: "border" },
9023
- effects: { hover: [{ effectId: "lift" }, {
9024
- effectId: "background-on-hover",
9025
- options: { colorToken: unsafeAsOpaqueButtonColourToken("surfaceAlt") }
9026
- }] }
9027
- }
9028
- },
9029
- ghost: {
9030
- kind: "complete",
9031
- appearance: {
9032
- background: {
9033
- type: "surface",
9034
- role: "link"
9035
- },
9036
- borderRadius: "rounded-lg",
9037
- effects: { hover: [{ effectId: "lift" }] }
9038
- }
9039
- },
9040
- accent: {
9041
- kind: "complete",
9042
- appearance: {
9043
- background: {
9044
- type: "solid",
9045
- colorToken: "accent"
9046
- },
9047
- borderRadius: "rounded-lg",
9048
- affordance: { iconId: "ArrowRight" },
9049
- effects: { hover: [{ effectId: "lift" }] }
9050
- }
9051
- }
9052
- }
9053
- }
9054
- });
9055
9950
  showtimePillRecipe = defineStaticButtonStyleRecipe({
9056
9951
  id: "showtime-pill",
9057
9952
  accessibilityLabel: "Bold uppercase pill buttons with playful movement",
@@ -9428,6 +10323,7 @@ var init_registry$7 = __esmMin((() => {
9428
10323
  init_domain();
9429
10324
  init_selection();
9430
10325
  init_quietArrow();
10326
+ init_flatInk();
9431
10327
  init_staticRecipes();
9432
10328
  buttonStyleRecipes = [
9433
10329
  softPillRecipe,
@@ -9486,12 +10382,13 @@ var init_presets$3 = __esmMin((() => {
9486
10382
  //#endregion
9487
10383
  //#region ../theme-core/src/buttons/index.ts
9488
10384
  var init_buttons = __esmMin((() => {
9489
- init_types$13();
10385
+ init_types$14();
9490
10386
  init_parseThemeForPersistence();
9491
10387
  init_classNames();
9492
10388
  init_generateButtonCss();
9493
10389
  init_resolveButtonColourStates();
9494
10390
  init_buttonSurfaceContext();
10391
+ init_contextualHover();
9495
10392
  init_affordanceIcons();
9496
10393
  init_generateDefaultButtonSystem();
9497
10394
  init_constants$1();
@@ -9505,14 +10402,9 @@ function isCardVariantRole(value) {
9505
10402
  return typeof value === "string" && cardVariantRoleValues.includes(value);
9506
10403
  }
9507
10404
  function normalizeCardVariantRole(value) {
9508
- if (isCardVariantRole(value)) return value;
9509
- if (typeof value !== "string") return null;
9510
- return legacyCardVariantRoleAliases[value] ?? null;
10405
+ return isCardVariantRole(value) ? value : null;
9511
10406
  }
9512
- /**
9513
- * The one untrusted-input boundary for the role vocabulary. Legacy alias values
9514
- * (`variant1`, `variant2`, `statement`) normalize here and nowhere else.
9515
- */
10407
+ /** The one untrusted-input boundary for the closed role vocabulary. */
9516
10408
  function normalizeCardRole(value) {
9517
10409
  if (value === "none") return boxlessCardVariantValue;
9518
10410
  if (value === "open") return openCardRoleValue;
@@ -9607,19 +10499,14 @@ function validateUniqueDeclaredCardVariantRoles(system, ctx) {
9607
10499
  declared.add(role);
9608
10500
  });
9609
10501
  }
9610
- var cardVariantRoleValues, boxlessCardVariantValue, openCardRoleValue, surfaceCardRoleValues, cardRoleValues, legacyCardVariantRoleAliases, cardSpacingSchema, cardSpacingAxesSchema, cardSpacingValueSchema, gradientDirectionSchema, cardVariantRoleSchema, surfaceCardRoleSchema, cardRoleSchema, boxStylesCardVariantSchema, normalizeBoxStylesCardVariant, PRIORITY_ROLE_INFERENCE, cardBackgroundSchema, cardBorderSchema, cardCornerValueSchema, cardEdgeSchema, cardAccentEdgeSchema, cardEdgeRuleWidthSchema, cardEdgeRuleLengthSchema, cardEdgeRuleAlignSchema, cardEdgeRuleSchema, cardDecorationSchema, cardDecorationsSchema, cardCornerRadiiSchema, cardVariantInputSchema, cardVariantSchema, cardSystemSchema;
9611
- var init_types$12 = __esmMin((() => {
10502
+ var cardVariantRoleValues, boxlessCardVariantValue, openCardRoleValue, surfaceCardRoleValues, cardRoleValues, cardSpacingSchema, cardSpacingAxesSchema, cardSpacingValueSchema, gradientDirectionSchema, surfaceCardRoleSchema, cardRoleSchema, PRIORITY_ROLE_INFERENCE, cardBackgroundSchema, cardBorderSchema, cardCornerValueSchema, cardEdgeSchema, cardAccentEdgeSchema, cardEdgeRuleWidthSchema, cardEdgeRuleLengthSchema, cardEdgeRuleAlignSchema, cardEdgeRuleSchema, cardDecorationSchema, cardDecorationsSchema, cardCornerRadiiSchema, cardVariantInputSchema, cardVariantSchema, cardSystemSchema;
10503
+ var init_types$13 = __esmMin((() => {
9612
10504
  init_themeColorTokens();
9613
10505
  cardVariantRoleValues = ["default", "alternative"];
9614
10506
  boxlessCardVariantValue = "none";
9615
10507
  openCardRoleValue = "open";
9616
10508
  surfaceCardRoleValues = [...cardVariantRoleValues, openCardRoleValue];
9617
10509
  cardRoleValues = [...surfaceCardRoleValues, boxlessCardVariantValue];
9618
- legacyCardVariantRoleAliases = {
9619
- variant1: "alternative",
9620
- variant2: "alternative",
9621
- statement: "alternative"
9622
- };
9623
10510
  cardSpacingSchema = z.enum([
9624
10511
  "none",
9625
10512
  "compact",
@@ -9643,11 +10530,9 @@ var init_types$12 = __esmMin((() => {
9643
10530
  "to-br",
9644
10531
  "to-bl"
9645
10532
  ]);
9646
- cardVariantRoleSchema = z.enum(cardVariantRoleValues);
10533
+ z.enum(cardVariantRoleValues);
9647
10534
  surfaceCardRoleSchema = z.enum(surfaceCardRoleValues);
9648
10535
  cardRoleSchema = z.enum(cardRoleValues);
9649
- boxStylesCardVariantSchema = cardRoleSchema;
9650
- normalizeBoxStylesCardVariant = normalizeCardRole;
9651
10536
  PRIORITY_ROLE_INFERENCE = {
9652
10537
  1: "default",
9653
10538
  2: "alternative"
@@ -9781,13 +10666,13 @@ var init_generateDefaultCardSystem = __esmMin((() => {}));
9781
10666
  //#endregion
9782
10667
  //#region ../theme-core/src/cards/roles.ts
9783
10668
  var init_roles = __esmMin((() => {
9784
- init_types$12();
10669
+ init_types$13();
9785
10670
  }));
9786
10671
  //#endregion
9787
10672
  //#region ../theme-core/src/cards/generateCardCss.ts
9788
10673
  var init_generateCardCss = __esmMin((() => {
9789
10674
  init_roles();
9790
- init_types$12();
10675
+ init_types$13();
9791
10676
  init_surfaces();
9792
10677
  }));
9793
10678
  //#endregion
@@ -9798,7 +10683,7 @@ var init_core$2 = __esmMin((() => {
9798
10683
  //#endregion
9799
10684
  //#region ../theme-core/src/cards/index.ts
9800
10685
  var init_cards = __esmMin((() => {
9801
- init_types$12();
10686
+ init_types$13();
9802
10687
  init_constants();
9803
10688
  init_decorations();
9804
10689
  init_roles();
@@ -9810,7 +10695,7 @@ var init_cards = __esmMin((() => {
9810
10695
  //#endregion
9811
10696
  //#region ../theme-core/src/accordions/types.ts
9812
10697
  var accordionIconSchema, accordionSystemSchema;
9813
- var init_types$11 = __esmMin((() => {
10698
+ var init_types$12 = __esmMin((() => {
9814
10699
  init_themeColorTokens();
9815
10700
  accordionIconSchema = z.enum([
9816
10701
  "plus-minus",
@@ -9915,7 +10800,7 @@ var init_types$11 = __esmMin((() => {
9915
10800
  //#endregion
9916
10801
  //#region ../theme-core/src/inputs/types.ts
9917
10802
  var inputSystemSchema;
9918
- var init_types$10 = __esmMin((() => {
10803
+ var init_types$11 = __esmMin((() => {
9919
10804
  init_themeColorTokens();
9920
10805
  inputSystemSchema = z.object({
9921
10806
  base: z.object({
@@ -10015,7 +10900,7 @@ var init_types$10 = __esmMin((() => {
10015
10900
  * Gradient configuration types and schemas
10016
10901
  */
10017
10902
  var gradientStopSchema, radialGradientShapeSchema, gradientConfigSchema;
10018
- var init_types$9 = __esmMin((() => {
10903
+ var init_types$10 = __esmMin((() => {
10019
10904
  init_themeColorTokens();
10020
10905
  gradientStopSchema = z.object({
10021
10906
  color: themeColorTokenSchema,
@@ -10087,7 +10972,7 @@ var init_baseSchema = __esmMin((() => {
10087
10972
  * Schema and types for composable nav link styling used by header and footer.
10088
10973
  */
10089
10974
  var navLinkPaddingSchema, navLinkPaddingXSchema, navLinkBorderRadiusSchema, navLinkTextSizeSchema, navLinkLetterSpacingSchema, navLinkContrastTreatmentSchema, navLinkStyleSchema;
10090
- var init_types$8 = __esmMin((() => {
10975
+ var init_types$9 = __esmMin((() => {
10091
10976
  init_baseSchema();
10092
10977
  init_themeColorTokens();
10093
10978
  navLinkPaddingSchema = z.enum([
@@ -10435,8 +11320,8 @@ function defineBlockDesignCapability(capability) {
10435
11320
  ...capability.accordionIconSets ? { accordionIconSets: capability.accordionIconSets } : {}
10436
11321
  };
10437
11322
  }
10438
- var plainFrame, tileTreatmentValues, eventListTreatmentValues, eyebrowTreatmentValues, visibleHeadingDecorationFamilyValues, headingDecorationOverrideValues, headingDecorationColorTokenValues, noHeadingDecoration, accordionIconSetValues, accordionIconColorTokenValues, accordionIconMotionValues;
10439
- var init_types$7 = __esmMin((() => {
11323
+ var plainFrame, tileTreatmentValues, eventListTreatmentValues, testimonialsCompositionTreatmentValues, offeringsPreviewCompositionTreatmentValues, eyebrowTreatmentValues, visibleHeadingDecorationFamilyValues, headingDecorationOverrideValues, headingDecorationColorTokenValues, noHeadingDecoration, accordionIconSetValues, accordionIconColorTokenValues, accordionIconMotionValues;
11324
+ var init_types$8 = __esmMin((() => {
10440
11325
  plainFrame = { kind: "plain" };
10441
11326
  tileTreatmentValues = [
10442
11327
  "default",
@@ -10450,6 +11335,17 @@ var init_types$7 = __esmMin((() => {
10450
11335
  "editorial-register",
10451
11336
  "dense-index"
10452
11337
  ];
11338
+ testimonialsCompositionTreatmentValues = [
11339
+ "open-editorial",
11340
+ "evergreen-lead",
11341
+ "room-and-response",
11342
+ "open-floor"
11343
+ ];
11344
+ offeringsPreviewCompositionTreatmentValues = [
11345
+ "paired-feature-cards",
11346
+ "open-editorial-columns",
11347
+ "joined-programme-panel"
11348
+ ];
10453
11349
  eyebrowTreatmentValues = [
10454
11350
  "plain",
10455
11351
  "accent",
@@ -10767,14 +11663,14 @@ var init_schema$2 = __esmMin((() => {
10767
11663
  init_schema$3();
10768
11664
  init_buttons();
10769
11665
  init_cards();
11666
+ init_types$12();
10770
11667
  init_types$11();
10771
11668
  init_types$10();
10772
11669
  init_types$9();
10773
- init_types$8();
10774
11670
  init_validation$1();
10775
11671
  init_atRuleValidation();
10776
11672
  init_shared$5();
10777
- init_types$7();
11673
+ init_types$8();
10778
11674
  init_logoBranding();
10779
11675
  init_rawStyleFields();
10780
11676
  init_themeColorTokens();
@@ -10975,8 +11871,7 @@ var init_schema$2 = __esmMin((() => {
10975
11871
  spacing: semanticSpacingSchema.nullable().optional(),
10976
11872
  raised: z.boolean().nullable().optional(),
10977
11873
  rounded: boxRoundedSchema.nullable().optional(),
10978
- role: cardRoleSchema.nullable().optional(),
10979
- cardVariant: boxStylesCardVariantSchema.nullable().optional()
11874
+ role: cardRoleSchema.nullable().optional()
10980
11875
  });
10981
11876
  blockStyleOverridesSchema = z.object({
10982
11877
  sectionStyles: sectionStylesOverrideSchema.nullable().optional(),
@@ -11566,7 +12461,7 @@ var init_appearancePresetResolution = __esmMin((() => {
11566
12461
  })), brandScrimOptionGroups, microBannerLayoutPatches;
11567
12462
  var init_blockAppearancePresets = __esmMin((() => {
11568
12463
  init_appearancePresetResolution();
11569
- init_types$7();
12464
+ init_types$8();
11570
12465
  brandScrimOptionGroups = [{
11571
12466
  id: "image-surface-treatment",
11572
12467
  label: "Treatment",
@@ -11854,7 +12749,12 @@ var init_blockAppearancePresets = __esmMin((() => {
11854
12749
  constraints: { layoutVariantKeys: ["cards"] },
11855
12750
  design: {
11856
12751
  sectionSurface: "base",
11857
- contentFrame: plainFrame
12752
+ contentFrame: plainFrame,
12753
+ cardRole: "alternative",
12754
+ composition: {
12755
+ kind: "offerings-preview",
12756
+ treatment: "paired-feature-cards"
12757
+ }
11858
12758
  }
11859
12759
  }), defineBlockAppearancePreset({
11860
12760
  id: "offerings-preview-open-editorial-columns",
@@ -11864,7 +12764,12 @@ var init_blockAppearancePresets = __esmMin((() => {
11864
12764
  constraints: { layoutVariantKeys: ["cards"] },
11865
12765
  design: {
11866
12766
  sectionSurface: "base",
11867
- contentFrame: plainFrame
12767
+ contentFrame: plainFrame,
12768
+ cardRole: "open",
12769
+ composition: {
12770
+ kind: "offerings-preview",
12771
+ treatment: "open-editorial-columns"
12772
+ }
11868
12773
  }
11869
12774
  }), defineBlockAppearancePreset({
11870
12775
  id: "offerings-preview-joined-programme-panel",
@@ -11874,7 +12779,12 @@ var init_blockAppearancePresets = __esmMin((() => {
11874
12779
  constraints: { layoutVariantKeys: ["cards"] },
11875
12780
  design: {
11876
12781
  sectionSurface: "base",
11877
- contentFrame: plainFrame
12782
+ contentFrame: plainFrame,
12783
+ cardRole: "default",
12784
+ composition: {
12785
+ kind: "offerings-preview",
12786
+ treatment: "joined-programme-panel"
12787
+ }
11878
12788
  }
11879
12789
  }), defineBlockAppearancePreset({
11880
12790
  id: "feature-cards-raised-rule",
@@ -12116,7 +13026,11 @@ var init_blockAppearancePresets = __esmMin((() => {
12116
13026
  constraints: { layoutVariantKeys: ["featured-editorial"] },
12117
13027
  design: {
12118
13028
  sectionSurface: "base",
12119
- contentFrame: plainFrame
13029
+ contentFrame: plainFrame,
13030
+ composition: {
13031
+ kind: "testimonials",
13032
+ treatment: "evergreen-lead"
13033
+ }
12120
13034
  }
12121
13035
  }), defineBlockAppearancePreset({
12122
13036
  id: "testimonials-room-and-response",
@@ -12126,7 +13040,11 @@ var init_blockAppearancePresets = __esmMin((() => {
12126
13040
  constraints: { layoutVariantKeys: ["featured-editorial"] },
12127
13041
  design: {
12128
13042
  sectionSurface: "base",
12129
- contentFrame: plainFrame
13043
+ contentFrame: plainFrame,
13044
+ composition: {
13045
+ kind: "testimonials",
13046
+ treatment: "room-and-response"
13047
+ }
12130
13048
  }
12131
13049
  }), defineBlockAppearancePreset({
12132
13050
  id: "testimonials-open-floor",
@@ -12136,7 +13054,11 @@ var init_blockAppearancePresets = __esmMin((() => {
12136
13054
  constraints: { layoutVariantKeys: ["featured-editorial"] },
12137
13055
  design: {
12138
13056
  sectionSurface: "base",
12139
- contentFrame: plainFrame
13057
+ contentFrame: plainFrame,
13058
+ composition: {
13059
+ kind: "testimonials",
13060
+ treatment: "open-floor"
13061
+ }
12140
13062
  }
12141
13063
  }), defineBlockAppearancePreset({
12142
13064
  id: "faq-base-accordion",
@@ -12231,7 +13153,7 @@ function assertUniqueLayoutProfileKeys(profiles) {
12231
13153
  if (duplicates.length > 0) throw new Error(`Duplicate block layout design profiles: ${duplicates.join(", ")}`);
12232
13154
  }
12233
13155
  var init_blockFlow = __esmMin((() => {
12234
- init_types$7();
13156
+ init_types$8();
12235
13157
  }));
12236
13158
  //#endregion
12237
13159
  //#region ../theme-core/src/tokens/tokens.ts
@@ -12434,7 +13356,7 @@ function boundaryRuntimeMetrics(family, size, heightExpression) {
12434
13356
  }
12435
13357
  var noneBoundaryOption, softBoundaryOption, spaciousBoundaryOption;
12436
13358
  var init_sectionTransitions = __esmMin((() => {
12437
- init_types$7();
13359
+ init_types$8();
12438
13360
  boundaryRuntimeMetrics("gradient", "medium", "6rem + 2px"), boundaryRuntimeMetrics("gradient", "spacious", "10rem"), boundaryRuntimeMetrics("gradient", "expansive", "14rem"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("wave", "compact", "4.5rem + 2px"), boundaryRuntimeMetrics("wave", "large", "7rem + 2px"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("angle", "medium", "6rem + 2px"), boundaryRuntimeMetrics("angle", "compact", "4.5rem + 2px"), boundaryRuntimeMetrics("angle", "large", "7rem + 2px");
12439
13361
  noneBoundaryOption = {
12440
13362
  id: asBoundaryOptionId("break:none"),
@@ -12512,7 +13434,7 @@ function boundaryKey(previousBlockId, nextBlockId) {
12512
13434
  }
12513
13435
  var pageDesignUserPinnedAppearanceChoiceSchema, pageDesignUserPinnedBoundaryChoiceSchema, pageDesignBoundaryTreatmentSchema, pageDesignUserPinnedBoundaryTreatmentChoiceSchema, pageDesignBlockLookPinSchema, pageDesignBoundaryPinSchema, legacyPageDesignBoundaryPinSchema;
12514
13436
  var init_pageDesignIntent = __esmMin((() => {
12515
- init_types$7();
13437
+ init_types$8();
12516
13438
  init_sectionTransitions();
12517
13439
  asBoundaryOptionId("break:unknown");
12518
13440
  pageDesignUserPinnedAppearanceChoiceSchema = z.object({
@@ -13260,7 +14182,7 @@ var init_utils$2 = __esmMin((() => {}));
13260
14182
  //#endregion
13261
14183
  //#region ../theme-core/src/gradients/index.ts
13262
14184
  var init_gradients = __esmMin((() => {
13263
- init_types$9();
14185
+ init_types$10();
13264
14186
  init_presets$2();
13265
14187
  init_utils$2();
13266
14188
  }));
@@ -13307,7 +14229,7 @@ function supportedLayouts(ids) {
13307
14229
  var titleOnlyLogoAccommodation, inlineWordmarkLogoAccommodation, inlineMarkWithTitleLogoAccommodation, logoPlateAccommodation, centeredBadgeAccommodation, popoutBadgeAccommodation, centeredMastheadAccommodation, unbackedOverlayLogoAccommodation, inlineClassicLogoAccommodations, centeredLogoAccommodations, overlayLogoAccommodations, headerLayoutCatalog, headerStyleCatalog;
13308
14230
  var init_headerLayoutCatalog = __esmMin((() => {
13309
14231
  init_logoBranding();
13310
- init_types$7();
14232
+ init_types$8();
13311
14233
  init_headerInteractionPalette();
13312
14234
  init_headerLayoutTypes();
13313
14235
  titleOnlyLogoAccommodation = {
@@ -13640,7 +14562,7 @@ function emphasizedFooterLinks(theme) {
13640
14562
  }
13641
14563
  var footerLookCatalog;
13642
14564
  var init_footerLooks = __esmMin((() => {
13643
- init_types$7();
14565
+ init_types$8();
13644
14566
  footerLookCatalog = defineExactCatalog()([{
13645
14567
  id: asFooterLookId("footer-links-quiet"),
13646
14568
  label: "Quiet links",
@@ -13659,7 +14581,7 @@ var init_footerLooks = __esmMin((() => {
13659
14581
  var init_curatedChoices = __esmMin((() => {})), generatedContentFrames, userContentFrames, generatedDesignOptionCatalog, userDesignOptionCatalog;
13660
14582
  var init_sourceCatalogs = __esmMin((() => {
13661
14583
  init_cards();
13662
- init_types$7();
14584
+ init_types$8();
13663
14585
  generatedContentFrames = [
13664
14586
  plainFrame,
13665
14587
  panelFrame("inset"),
@@ -14175,7 +15097,7 @@ var init_siteStyleTypography = __esmMin((() => {
14175
15097
  };
14176
15098
  })), designResolutionPolicySchema, runtimeStyleFieldNameSchema, nonEmptyRuntimeStyleFieldNamesSchema, styleAuthoritySchema;
14177
15099
  var init_designState = __esmMin((() => {
14178
- init_types$7();
15100
+ init_types$8();
14179
15101
  init_rawStyleFields();
14180
15102
  designResolutionPolicySchema = z.enum([
14181
15103
  "generated",
@@ -14430,7 +15352,7 @@ var init_curatedSiteStyles = __esmMin((() => {
14430
15352
  init_headerLayoutStyles();
14431
15353
  init_footerLooks();
14432
15354
  init_sourceCatalogs();
14433
- init_types$7();
15355
+ init_types$8();
14434
15356
  init_siteStyleTypography();
14435
15357
  init_runtimeCompiler();
14436
15358
  SOFT_EARTH_SITE_STYLE_ID_VALUE = "site-style:soft-earth";
@@ -15172,7 +16094,8 @@ var init_curatedSiteStyles = __esmMin((() => {
15172
16094
  buttonStyleChoices: [
15173
16095
  buttonChoice("soft-pill"),
15174
16096
  buttonChoice("pebble"),
15175
- buttonChoice("confident-chip")
16097
+ buttonChoice("confident-chip"),
16098
+ buttonChoice("flat-ink")
15176
16099
  ],
15177
16100
  paletteRecommendations: [
15178
16101
  paletteRecommendation("soft-natural-sage"),
@@ -16026,7 +16949,7 @@ var init_siteStyleBlockPolicies = __esmMin((() => {
16026
16949
  init_lookResolution();
16027
16950
  init_appearancePresets();
16028
16951
  init_pageDesignIntent();
16029
- init_types$7();
16952
+ init_types$8();
16030
16953
  init_sectionTransitions();
16031
16954
  asPageFlowPresetId("generated-default");
16032
16955
  asSiteStyleId("site-style:south-west-twerk-school");
@@ -16040,12 +16963,12 @@ var init_pageDesignEditorModel = __esmMin((() => {
16040
16963
  init_lookResolution();
16041
16964
  init_siteStyleBlockPolicies();
16042
16965
  init_pageDesignIntent();
16043
- init_types$7();
16966
+ init_types$8();
16044
16967
  init_sectionTransitions();
16045
16968
  asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
16046
16969
  })), blockDesignFallback;
16047
16970
  var init_resolver$1 = __esmMin((() => {
16048
- init_types$7();
16971
+ init_types$8();
16049
16972
  blockDesignFallback = {
16050
16973
  sectionSurface: "base",
16051
16974
  contentFrame: plainFrame,
@@ -16079,6 +17002,13 @@ var init_siteStyleThemeCompiler = __esmMin((() => {
16079
17002
  init_concretePalette();
16080
17003
  }));
16081
17004
  //#endregion
17005
+ //#region ../theme-core/src/site-styles/buttonSelectionCompiler.ts
17006
+ var init_buttonSelectionCompiler = __esmMin((() => {
17007
+ init_runtimeCompiler();
17008
+ init_curatedSiteStyles();
17009
+ init_siteStyleThemeCompiler();
17010
+ }));
17011
+ //#endregion
16082
17012
  //#region ../theme-core/src/site-styles/previewCustomization.ts
16083
17013
  var init_previewCustomization = __esmMin((() => {}));
16084
17014
  //#endregion
@@ -16096,11 +17026,12 @@ var init_previewCompiler = __esmMin((() => {
16096
17026
  init_rawStyleFields();
16097
17027
  init_runtimeBackgroundResolution();
16098
17028
  init_siteStyleThemeCompiler();
17029
+ init_buttonSelectionCompiler();
16099
17030
  init_blockFlow();
16100
17031
  init_pageDesignEditorModel();
16101
17032
  init_pageDesignIntent();
16102
17033
  init_previewCustomization();
16103
- init_types$7();
17034
+ init_types$8();
16104
17035
  }));
16105
17036
  //#endregion
16106
17037
  //#region ../theme-core/src/site-styles/contentTemplateRuntimeCompiler.ts
@@ -16135,7 +17066,7 @@ var init_generatedSchemas = __esmMin((() => {
16135
17066
  init_cardRoleVocabulary();
16136
17067
  init_curatedSiteStyles();
16137
17068
  init_sourceCatalogs();
16138
- init_types$7();
17069
+ init_types$8();
16139
17070
  generatedPanelTreatments = uniqueNonEmpty(generatedDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "panel").map((frame) => frame.treatment));
16140
17071
  generatedFlushTreatments = uniqueNonEmpty(generatedDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.treatment));
16141
17072
  generatedFlushBleeds = uniqueNonEmpty(generatedDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.bleed));
@@ -16252,7 +17183,7 @@ function collectBlockSequenceIssues(snapshots) {
16252
17183
  }
16253
17184
  var nonEmptyStringSchema, blockContentVersionIdSchema, designBlockIdSchema, designPageIdSchema, designEntryIdSchema, blockOrderIndexSchema, publishedPageBlockSnapshotSchema, draftPageBlockSnapshotSchema, missingPageBlockSnapshotSchema, pageBlockSnapshotSchema, publishedPageBlockSequenceSchema, draftPageBlockSequenceSchema, publishedPageDesignVersionDataV1Schema, draftPageDesignVersionDataV1Schema;
16254
17185
  var init_pageDesignAuthority = __esmMin((() => {
16255
- init_types$7();
17186
+ init_types$8();
16256
17187
  init_pageDesignIntent();
16257
17188
  nonEmptyStringSchema = z.string().min(1);
16258
17189
  blockContentVersionIdSchema = nonEmptyStringSchema.transform(asBlockContentVersionId);
@@ -16465,7 +17396,7 @@ var init_site_styles = __esmMin((() => {
16465
17396
  init_tokenRecipes();
16466
17397
  init_siteStyleTypography();
16467
17398
  init_themeParity();
16468
- init_types$7();
17399
+ init_types$8();
16469
17400
  }));
16470
17401
  //#endregion
16471
17402
  //#region ../theme-core/src/footer/mode.ts
@@ -16478,7 +17409,7 @@ var init_shadow = __esmMin((() => {
16478
17409
  //#endregion
16479
17410
  //#region ../theme-core/src/accordions/generateAccordionCss.ts
16480
17411
  var init_generateAccordionCss = __esmMin((() => {
16481
- init_types$11();
17412
+ init_types$12();
16482
17413
  init_colorStyles();
16483
17414
  init_surfaces();
16484
17415
  }));
@@ -16490,13 +17421,13 @@ var init_defaults = __esmMin((() => {
16490
17421
  //#endregion
16491
17422
  //#region ../theme-core/src/inputs/generateInputCss.ts
16492
17423
  var init_generateInputCss = __esmMin((() => {
16493
- init_types$10();
17424
+ init_types$11();
16494
17425
  init_colorStyles();
16495
17426
  }));
16496
17427
  //#endregion
16497
17428
  //#region ../theme-core/src/navigation/generateNavLinkCSS.ts
16498
17429
  var init_generateNavLinkCSS = __esmMin((() => {
16499
- init_types$8();
17430
+ init_types$9();
16500
17431
  init_generateEffectsCSS();
16501
17432
  })), NAV_DROPDOWN_SHIFT_PROPERTY, NAV_DROPDOWN_MAX_WIDTH_CSS;
16502
17433
  var init_navDropdownSizing = __esmMin((() => {
@@ -17370,6 +18301,8 @@ ${`:where([data-theme-scope="${themeId}"]) :where([data-block="course-registrati
17370
18301
  --cr-summary-bg: rgba(var(--tb-primary), 0.1);
17371
18302
  --cr-summary-border: rgb(var(--tb-border));
17372
18303
 
18304
+ ${EVENT_WHOLE_SERIES_VARIABLE_BRIDGE}
18305
+
17373
18306
  /* Shared registration-surface mappings (issue 1174).
17374
18307
  Route the shared --rb-reg-* contract through this block's Tier 3 vars
17375
18308
  (palette tokens where no --cr-* var exists) so existing --cr-* overrides
@@ -17382,7 +18315,7 @@ ${`:where([data-theme-scope="${themeId}"]) :where([data-block="course-registrati
17382
18315
  --rb-reg-option-bg: rgb(var(--tb-background));
17383
18316
  --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
17384
18317
  --rb-reg-surface-bg: rgb(var(--tb-surface));
17385
- --rb-reg-on-surface: var(--cr-on-surface);
18318
+ --rb-reg-on-surface: rgb(var(--tb-onSurface, var(--tb-text)));
17386
18319
  --rb-reg-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
17387
18320
  --rb-reg-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
17388
18321
  --rb-reg-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
@@ -17401,7 +18334,48 @@ ${`:where([data-theme-scope="${themeId}"]) :where([data-block="course-registrati
17401
18334
  }
17402
18335
  `;
17403
18336
  }
17404
- var init_course_registration$1 = __esmMin((() => {}));
18337
+ var EVENT_WHOLE_SERIES_VARIABLE_BRIDGE;
18338
+ var init_course_registration$1 = __esmMin((() => {
18339
+ EVENT_WHOLE_SERIES_VARIABLE_BRIDGE = `
18340
+ /* Temporary bridge while persisted Course blocks render the Event-owned
18341
+ whole-series registration runtime. Removed with the Course block. */
18342
+ --er-step-active: var(--cr-step-active);
18343
+ --er-step-inactive: var(--cr-step-inactive);
18344
+ --er-step-completed: var(--cr-step-completed);
18345
+ --er-step-text: var(--cr-step-text);
18346
+ --er-step-text-active: var(--cr-step-text-active);
18347
+ --er-step-connector: var(--cr-step-connector);
18348
+ --er-step-title-size: var(--cr-step-title-size);
18349
+ --er-success-bg: var(--cr-success-bg);
18350
+ --er-success-text: var(--cr-success-text);
18351
+ --er-error-bg: var(--cr-error-bg);
18352
+ --er-error-text: var(--cr-error-text);
18353
+ --er-waitlist-bg: var(--cr-waitlist-bg);
18354
+ --er-waitlist-text: var(--cr-waitlist-text);
18355
+ --er-capacity-available-bg: var(--cr-capacity-available-bg);
18356
+ --er-capacity-available-text: var(--cr-capacity-available-text);
18357
+ --er-capacity-low-bg: var(--cr-capacity-low-bg);
18358
+ --er-capacity-low-text: var(--cr-capacity-low-text);
18359
+ --er-capacity-soldout-bg: var(--cr-capacity-soldout-bg);
18360
+ --er-capacity-soldout-text: var(--cr-capacity-soldout-text);
18361
+ --er-border: var(--cr-border);
18362
+ --er-border-hover: var(--cr-border-hover);
18363
+ --er-border-selected: var(--cr-border-selected);
18364
+ --er-border-error: var(--cr-border-error);
18365
+ --er-focus-ring: var(--cr-focus-ring);
18366
+ --er-required: var(--cr-required);
18367
+ --er-payment-border: var(--cr-payment-border);
18368
+ --er-payment-border-hover: var(--cr-payment-border-hover);
18369
+ --er-payment-border-selected: var(--cr-payment-border-selected);
18370
+ --er-payment-bg-selected: var(--cr-payment-bg-selected);
18371
+ --er-check-bg: var(--cr-check-bg);
18372
+ --er-check-text: var(--cr-check-text);
18373
+ --er-summary-bg: var(--cr-summary-bg);
18374
+ --er-summary-border: var(--cr-summary-border);
18375
+ --er-on-surface: rgb(var(--tb-onSurface, var(--tb-text)));
18376
+ --er-on-surface-hover-bg: rgba(var(--tb-onSurface, var(--tb-text)), 0.05);
18377
+ `;
18378
+ }));
17405
18379
  //#endregion
17406
18380
  //#region ../theme-core/src/blocks/registry.ts
17407
18381
  var blockVarRegistry;
@@ -17435,6 +18409,7 @@ var init_vars = __esmMin((() => {
17435
18409
  init_event_cards();
17436
18410
  init_customer_portal();
17437
18411
  init_testimonials$1();
18412
+ init_course_registration$1();
17438
18413
  }));
17439
18414
  //#endregion
17440
18415
  //#region ../theme-core/src/blocks/index.ts
@@ -17535,7 +18510,7 @@ var init_fonts = __esmMin((() => {}));
17535
18510
  var init_core$1 = __esmMin((() => {
17536
18511
  init_resolveButtonColourStates();
17537
18512
  init_resolvedButtonCss();
17538
- init_types$13();
18513
+ init_types$14();
17539
18514
  }));
17540
18515
  var init_buildThemeRuntimeFromBridge = __esmMin((() => {
17541
18516
  init_shadow();
@@ -17622,7 +18597,7 @@ function planSiteChromePlacement(positioning) {
17622
18597
  }
17623
18598
  var HEADER_POSITIONINGS;
17624
18599
  var init_siteChromePlacement = __esmMin((() => {
17625
- init_types$7();
18600
+ init_types$8();
17626
18601
  HEADER_POSITIONINGS = [
17627
18602
  "static",
17628
18603
  "sticky",
@@ -17725,7 +18700,7 @@ var init_registry$5 = __esmMin((() => {
17725
18700
  }));
17726
18701
  //#endregion
17727
18702
  //#region ../media-core/src/types.ts
17728
- var init_types$6 = __esmMin((() => {}));
18703
+ var init_types$7 = __esmMin((() => {}));
17729
18704
  //#endregion
17730
18705
  //#region ../media-core/src/fileSafety.ts
17731
18706
  var init_fileSafety = __esmMin((() => {})), AMBIENT_BACKGROUND_ROLES;
@@ -18001,7 +18976,7 @@ var init_contentMediaSnapshotAudit = __esmMin((() => {}));
18001
18976
  //#endregion
18002
18977
  //#region ../media-core/src/index.ts
18003
18978
  var init_src$3 = __esmMin((() => {
18004
- init_types$6();
18979
+ init_types$7();
18005
18980
  init_fileDomain();
18006
18981
  init_fileStorage();
18007
18982
  init_storagePathDomain();
@@ -18241,7 +19216,6 @@ var init_validation_constants = __esmMin((() => {
18241
19216
  "boxStyles.resolveRootStyle",
18242
19217
  "boxStyles.semanticGap",
18243
19218
  "boxStyles.semanticGapValue",
18244
- "boxStyles.cardVariantClass",
18245
19219
  "containerStyles.resolveBoxClassName"
18246
19220
  ];
18247
19221
  new Set(ALLOWED_NODE_TYPES);
@@ -19704,9 +20678,43 @@ function containerStylesField(options = {}) {
19704
20678
  return createBoxStylesFieldWithDepth("container", options);
19705
20679
  }
19706
20680
  function cardStylesField(options = {}) {
20681
+ if (options.controls === "role-only") return createRoleOnlyCardStylesField(options);
19707
20682
  return createBoxStylesFieldWithDepth("card", options);
19708
20683
  }
20684
+ function createRoleOnlyCardStylesField(options) {
20685
+ const { id = "_cardStyles", label = "Card styles", renderInHeader, intent } = options;
20686
+ return {
20687
+ id,
20688
+ type: "modal",
20689
+ label,
20690
+ required: false,
20691
+ schema: { fields: [{
20692
+ id: "role",
20693
+ type: "select",
20694
+ label: "Card style",
20695
+ description: "Choose a semantic card style from the active site style.",
20696
+ required: false,
20697
+ multiple: false,
20698
+ defaultValue: "default",
20699
+ options: cardVariantRoleValues.map((value) => ({
20700
+ value,
20701
+ label: value === "default" ? "Default" : "Alternative"
20702
+ }))
20703
+ }] },
20704
+ ui: {
20705
+ ...typeof renderInHeader === "boolean" ? { renderInHeader } : {},
20706
+ ...intent ? { intent } : {},
20707
+ modalConfig: {
20708
+ buttonLabel: label,
20709
+ description: "Choose the site-style card role.",
20710
+ buttonVariant: "outline",
20711
+ showCustomizedIndicator: true
20712
+ }
20713
+ }
20714
+ };
20715
+ }
19709
20716
  var init_boxStyles$1 = __esmMin((() => {
20717
+ init_cards();
19710
20718
  init_background$1();
19711
20719
  }));
19712
20720
  //#endregion
@@ -19804,7 +20812,7 @@ function validateProps(props, context = "node builder") {
19804
20812
  else console.error(message);
19805
20813
  }
19806
20814
  var RESERVED_KEYS;
19807
- var init_types$5 = __esmMin((() => {
20815
+ var init_types$6 = __esmMin((() => {
19808
20816
  init_env();
19809
20817
  RESERVED_KEYS = [
19810
20818
  "children",
@@ -19909,7 +20917,7 @@ function devValidate(node) {
19909
20917
  var section, headerSection, stack, inline, accordion, accordionItem, carousel, text, richText, icon, media, fileDownload, videoEmbed, button, link, form, bookingForm, eventRegistration, shop, productList, productDetail, cart, checkout, gifting, courseRegistration;
19910
20918
  var init_builder$1 = __esmMin((() => {
19911
20919
  init_schema$1();
19912
- init_types$5();
20920
+ init_types$6();
19913
20921
  init_env();
19914
20922
  section = (props, children, ...mods) => el$1("section", props, children, ...mods);
19915
20923
  headerSection = (props, children, ...mods) => el$1("headerSection", props, children, ...mods);
@@ -20913,21 +21921,29 @@ function cardRoleClass(role) {
20913
21921
  return `card-role-${role}`;
20914
21922
  }
20915
21923
  /**
21924
+ * The role class for a card slot the *block* owns structurally, where a Look
21925
+ * may still name the surface.
21926
+ *
21927
+ * Some layouts have more than one card slot and decide themselves which one is
21928
+ * the statement — the featured-editorial testimonials field is a lead voice
21929
+ * beside its supporting voices, and that is structure, not composition. Those
21930
+ * slots still have to honour a Look that picks a surface, or a role-picking
21931
+ * Look would silently no-op under the layout. So the slot carries a default
21932
+ * role and the Look's compiled role wins over it when there is one.
21933
+ *
21934
+ * An explicit `none` is honoured as boxlessness and emits no class, matching
21935
+ * how the composite emitter reads it.
21936
+ */
21937
+ /**
20916
21938
  * The role a card renders with, and the one place a set of card styles becomes
20917
21939
  * a role.
20918
21940
  *
20919
- * Precedence: a per-item override, then the `role` a Look compiled onto the
20920
- * block's card styles, then the legacy `cardVariant` field. `cardVariant` only
20921
- * ever held role names, so it reads *as* a role rather than as a second
20922
- * vocabulary — an explicit `role` wins when a record carries both.
20923
- *
20924
- * Compiled and freshly authored card styles carry only `role`. `cardVariant`
20925
- * survives on content persisted before the role contract, and normalizes here
20926
- * rather than in `cardStylesOverrideSchema` because that content reaches the
20927
- * renderer as a raw record without ever passing through the schema.
21941
+ * Precedence: a per-item override, then the `role` a Look or semantic field
21942
+ * compiled onto the block's card styles. Persisted inputs are normalized at
21943
+ * this boundary because raw block records do not pass through the theme schema.
20928
21944
  */
20929
21945
  function resolveCardRoleForBoxStyles(input, override) {
20930
- return override ?? normalizeCardRole(input.role) ?? normalizeCardRole(input.cardVariant);
21946
+ return override ?? normalizeCardRole(input.role);
20931
21947
  }
20932
21948
  /**
20933
21949
  * Parse a block's own per-item surface vocabulary into a card role. The alias
@@ -20944,8 +21960,8 @@ function resolveItemCardRole(value, aliases) {
20944
21960
  * The card surface for a set of box styles: one role, one class vocabulary, so
20945
21961
  * a site-style swap re-skins the card whichever field named it.
20946
21962
  */
20947
- function cardSurface(input, override) {
20948
- const role = resolveCardRoleForBoxStyles(input, override);
21963
+ function cardSurface(input, override, fallback) {
21964
+ const role = resolveCardRoleForBoxStyles(input, override) ?? fallback ?? null;
20949
21965
  if (!role) return {
20950
21966
  role: null,
20951
21967
  classes: []
@@ -21036,10 +22052,9 @@ function raisedClassFor(options) {
21036
22052
  * of keeping a copy that drifts.
21037
22053
  */
21038
22054
  function boxStyleClassNames(value, options) {
21039
- if (!value || typeof value !== "object") return options.baseClass?.trim() || "";
21040
- const input = value;
22055
+ const input = value && typeof value === "object" ? value : {};
21041
22056
  const borderOverride = borderOverrideClass(input);
21042
- const surface = cardSurface(input, options.cardRoleOverride);
22057
+ const surface = cardSurface(input, options.cardRoleOverride, options.cardRoleFallback);
21043
22058
  const cardOwnsBorder = surface.role !== null && surface.role !== "none";
21044
22059
  return [
21045
22060
  borderOverride || cardOwnsBorder ? withoutBorderClasses(options.baseClass ?? "") : options.baseClass ?? "",
@@ -21076,6 +22091,14 @@ var init_boxStyleClassNames = __esmMin((() => {
21076
22091
  }));
21077
22092
  //#endregion
21078
22093
  //#region ../blocks/src/system/transforms/registry/boxStyles.ts
22094
+ function resolveBorderColorState(value, options, viewModel) {
22095
+ const input = asPartialObject(options?.stylesPath ? readPath(viewModel, options.stylesPath) : value);
22096
+ if (!input) return null;
22097
+ return {
22098
+ input,
22099
+ role: resolveCardRoleForBoxStyles(input, options?.stylesPath ? resolveItemCardRole(value, options.itemRoleAliases) : void 0)
22100
+ };
22101
+ }
21079
22102
  function readPath(source, path) {
21080
22103
  if (!source || !path) return void 0;
21081
22104
  if (!path.includes(".")) return source[path];
@@ -21100,13 +22123,12 @@ function isTileTreatment(value) {
21100
22123
  function isEventListTreatment(value) {
21101
22124
  return typeof value === "string" && eventListTreatmentSet.has(value);
21102
22125
  }
21103
- var spacingTransform, raisedTransform, roundedTransform, boxStylesCompositeTransform, CARD_ROLE_CHILD_HOOKS, cardRoleClassTransform, cardVariantClassTransform, boxStylesBorderColorTransform, tileTreatmentClassMap, tileTreatmentSet, eventListTreatmentClassMap, eventListTreatmentSet, sectionClassNameTransform, containerStylesResolveClassName, containerStylesResolveBoxClassName, sectionColorsStyleTransform, GAP_CLASS_MAP, GAP_VALUE_MAP, semanticGapTransform, semanticGapValueTransform, boxStylesTransforms;
22126
+ var spacingTransform, raisedTransform, roundedTransform, boxStylesCompositeTransform, CARD_ROLE_CHILD_HOOKS, cardRoleClassTransform, cardSlotRoleTransform, boxStylesBorderColorTransform, tileTreatmentClassMap, tileTreatmentSet, eventListTreatmentClassMap, eventListTreatmentSet, sectionClassNameTransform, containerStylesResolveClassName, containerStylesResolveBoxClassName, sectionColorsStyleTransform, GAP_CLASS_MAP, GAP_VALUE_MAP, semanticGapTransform, semanticGapValueTransform, boxStylesTransforms;
21104
22127
  var init_boxStyles = __esmMin((() => {
21105
22128
  init_core();
21106
22129
  init_spacing();
21107
22130
  init_site_styles();
21108
22131
  init_colorStyles();
21109
- init_cards();
21110
22132
  init_blockColorTokens();
21111
22133
  init_surfaceForegroundStyles();
21112
22134
  init_boxStyleClassNames();
@@ -21190,29 +22212,28 @@ var init_boxStyles = __esmMin((() => {
21190
22212
  return baseClass ? `${baseClass.trim()} ${hook}` : hook;
21191
22213
  }
21192
22214
  };
21193
- cardVariantClassTransform = {
21194
- id: "boxStyles.cardVariantClass",
22215
+ cardSlotRoleTransform = {
22216
+ id: "boxStyles.cardSlotRole",
21195
22217
  kind: "string",
21196
- summary: "Map a site-style card variant role to its card-role-{role} CSS class",
21197
- run: (value, options) => {
21198
- const baseClass = options?.baseClass?.trim() ?? "";
21199
- const cardVariant = normalizeBoxStylesCardVariant(value);
21200
- if (!cardVariant || cardVariant === "none") return baseClass;
21201
- const roleClass = `card-role-${cardVariant}`;
21202
- return baseClass ? `${baseClass} ${roleClass}` : roleClass;
21203
- }
22218
+ summary: "Resolve a layout card slot's role class, defaulting to the slot's own role",
22219
+ run: (value, options) => boxStyleClassNames(value, {
22220
+ baseClass: options?.baseClass,
22221
+ cardRoleFallback: options.slotDefault,
22222
+ includeSpacing: false
22223
+ })
21204
22224
  };
21205
22225
  boxStylesBorderColorTransform = {
21206
22226
  id: "boxStyles.borderColor",
21207
22227
  kind: "string",
21208
22228
  summary: "Resolve border color from box styles border.colorToken",
21209
- run: (value, options, _context) => {
22229
+ run: (value, options, context) => {
21210
22230
  const fallbackToken = options?.fallbackToken ?? "border";
21211
22231
  const returnEmptyForDefault = options?.returnEmptyForDefault ?? false;
21212
22232
  let explicitToken = null;
21213
- const input = asPartialObject(value);
21214
- if (input) {
21215
- const border = normalizeBoxStylesBorder(input.border);
22233
+ const state = resolveBorderColorState(value, options, context.viewModel);
22234
+ if (state) {
22235
+ if (state.role && state.role !== "none") return "";
22236
+ const border = normalizeBoxStylesBorder(state.input.border);
21216
22237
  if (border && border.enabled === true && border.colorToken) explicitToken = border.colorToken;
21217
22238
  }
21218
22239
  if (explicitToken) {
@@ -21372,7 +22393,7 @@ var init_boxStyles = __esmMin((() => {
21372
22393
  roundedTransform,
21373
22394
  boxStylesCompositeTransform,
21374
22395
  cardRoleClassTransform,
21375
- cardVariantClassTransform,
22396
+ cardSlotRoleTransform,
21376
22397
  boxStylesBorderColorTransform,
21377
22398
  sectionClassNameTransform,
21378
22399
  containerStylesResolveClassName,
@@ -21468,10 +22489,16 @@ function styledCard(children, opts, ...mods) {
21468
22489
  const style = {
21469
22490
  ...opts.style ?? {},
21470
22491
  borderColor: { $bind: {
21471
- from: opts.stylesFrom,
22492
+ from: opts.itemRole?.from ?? opts.stylesFrom,
21472
22493
  transforms: [{
21473
22494
  id: "boxStyles.borderColor",
21474
- options: { returnEmptyForDefault: true }
22495
+ options: {
22496
+ returnEmptyForDefault: true,
22497
+ ...opts.itemRole ? {
22498
+ stylesPath: opts.stylesFrom,
22499
+ ...opts.itemRole.aliases ? { itemRoleAliases: opts.itemRole.aliases } : {}
22500
+ } : {}
22501
+ }
21475
22502
  }]
21476
22503
  } }
21477
22504
  };
@@ -21790,7 +22817,7 @@ function scopeContentPath(path, scope) {
21790
22817
  return `content.${scope}.${path}`;
21791
22818
  }
21792
22819
  var FRAGMENT_ID_PATTERN, FIELD_ID_PATTERN, dataLoaderSchema, fragmentDataSchema, fragmentConfigSchema, FragmentConfigError;
21793
- var init_types$4 = __esmMin((() => {
22820
+ var init_types$5 = __esmMin((() => {
21794
22821
  init_schema();
21795
22822
  init_node();
21796
22823
  FRAGMENT_ID_PATTERN = /^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$/i;
@@ -21909,7 +22936,7 @@ function buildFragmentDataLoaders(composition) {
21909
22936
  }
21910
22937
  var FragmentCompositionError, DOT_SCOPE_REGEX;
21911
22938
  var init_builder = __esmMin((() => {
21912
- init_types$4();
22939
+ init_types$5();
21913
22940
  FragmentCompositionError = class extends Error {
21914
22941
  constructor(message) {
21915
22942
  super(message);
@@ -21967,7 +22994,7 @@ var init_toRepeaterSchema = __esmMin((() => {}));
21967
22994
  //#region ../blocks/src/system/fragments/library/bodyCopy.ts
21968
22995
  var bodyCopyFragment;
21969
22996
  var init_bodyCopy = __esmMin((() => {
21970
- init_types$4();
22997
+ init_types$5();
21971
22998
  init_builder$1();
21972
22999
  bodyCopyFragment = defineFragment$2({
21973
23000
  id: "bodyCopy",
@@ -22034,7 +23061,7 @@ var init_bodyCopy = __esmMin((() => {
22034
23061
  //#region ../blocks/src/system/fragments/library/heroCopy.ts
22035
23062
  var heroCopyFragment;
22036
23063
  var init_heroCopy = __esmMin((() => {
22037
- init_types$4();
23064
+ init_types$5();
22038
23065
  init_builder$1();
22039
23066
  init_fragments$1();
22040
23067
  heroCopyFragment = defineFragment$2({
@@ -22094,7 +23121,7 @@ var init_heroCopy = __esmMin((() => {
22094
23121
  //#region ../blocks/src/system/fragments/library/heroLayoutControls.ts
22095
23122
  var heroLayoutControlsFragment;
22096
23123
  var init_heroLayoutControls = __esmMin((() => {
22097
- init_types$4();
23124
+ init_types$5();
22098
23125
  heroLayoutControlsFragment = defineFragment$2({
22099
23126
  id: "heroLayoutControls",
22100
23127
  title: "Hero Layout",
@@ -22384,7 +23411,7 @@ var init_ctas = __esmMin((() => {
22384
23411
  //#region ../blocks/src/system/fragments/library/ctaRow.ts
22385
23412
  var ctaRowFragment;
22386
23413
  var init_ctaRow = __esmMin((() => {
22387
- init_types$4();
23414
+ init_types$5();
22388
23415
  init_fragments$1();
22389
23416
  init_ctas();
22390
23417
  ctaRowFragment = defineFragment$2({
@@ -22407,7 +23434,7 @@ var init_ctaRow = __esmMin((() => {
22407
23434
  //#region ../blocks/src/system/fragments/library/heroCtaRow.ts
22408
23435
  var heroCtaFields, heroCtaRowFragment;
22409
23436
  var init_heroCtaRow = __esmMin((() => {
22410
- init_types$4();
23437
+ init_types$5();
22411
23438
  init_fragments$1();
22412
23439
  init_ctas();
22413
23440
  heroCtaFields = [createCtasRepeater({
@@ -22464,7 +23491,7 @@ var init_heroCtaRow = __esmMin((() => {
22464
23491
  //#region ../blocks/src/system/fragments/library/ctaCopy.ts
22465
23492
  var ctaCopyFragment;
22466
23493
  var init_ctaCopy = __esmMin((() => {
22467
- init_types$4();
23494
+ init_types$5();
22468
23495
  init_fragments$1();
22469
23496
  init_builder$1();
22470
23497
  ctaCopyFragment = defineFragment$2({
@@ -22504,7 +23531,7 @@ var init_ctaCopy = __esmMin((() => {
22504
23531
  //#region ../blocks/src/system/fragments/library/testimonialsHeading.ts
22505
23532
  var testimonialsHeadingFragment;
22506
23533
  var init_testimonialsHeading = __esmMin((() => {
22507
- init_types$4();
23534
+ init_types$5();
22508
23535
  init_builder$1();
22509
23536
  init_colorStyles();
22510
23537
  testimonialsHeadingFragment = defineFragment$2({
@@ -22701,18 +23728,48 @@ function buildGridCardsLayout(className) {
22701
23728
  return el$1("div", { className }, buildResponsiveGridCards());
22702
23729
  }
22703
23730
  /**
23731
+ * The class list for one featured-editorial card slot.
23732
+ *
23733
+ * A slot that follows the Look has to resolve at render time, so it binds
23734
+ * through the shared card-class emitter rather than naming a role class here;
23735
+ * a slot that does not is a plain string built by the same composite emitter.
23736
+ */
23737
+ function featuredEditorialCardClassName(slot) {
23738
+ const { variantClass, slotDefault, followsLook } = FEATURED_EDITORIAL_SLOTS[slot];
23739
+ const baseClass = ["rb-testimonials-fe-card", variantClass].filter(Boolean).join(" ");
23740
+ if (!followsLook) return boxStyleClassNames({}, {
23741
+ baseClass,
23742
+ cardRoleFallback: slotDefault,
23743
+ includeSpacing: false
23744
+ });
23745
+ return { $bind: {
23746
+ from: TESTIMONIALS_CARD_STYLES_PATH,
23747
+ transforms: [{
23748
+ id: "boxStyles.cardSlotRole",
23749
+ options: {
23750
+ baseClass,
23751
+ slotDefault
23752
+ }
23753
+ }],
23754
+ fallback: boxStyleClassNames({}, {
23755
+ baseClass,
23756
+ cardRoleFallback: slotDefault,
23757
+ includeSpacing: false
23758
+ })
23759
+ } };
23760
+ }
23761
+ /**
22704
23762
  * Build a single "featured editorial" testimonial card.
22705
23763
  *
22706
- * This card type deliberately renders NO avatar/headshot: an amber quote mark,
22707
- * the quote body, then the author name and a context line. Colour + surface
22708
- * treatment is driven entirely by `variantClass` (see testimonials.css):
22709
- * - `rb-testimonials-fe-card--feature` → spruce-ink card (dark primary bg)
22710
- * - `rb-testimonials-fe-card--plain` → white surface card
23764
+ * This card type deliberately renders NO avatar/headshot: a quote mark, the
23765
+ * quote body, then the author name and a context line. The card surface comes
23766
+ * from the slot's card role — the site style owns the fill, border, corners and
23767
+ * padding.
22711
23768
  *
22712
23769
  * Extra modifiers (`repeat`, `when`) are forwarded to the card node so the
22713
23770
  * caller can drive first-vs-rest branching.
22714
23771
  */
22715
- function buildFeaturedEditorialCard(variantClass, ...mods) {
23772
+ function buildFeaturedEditorialCard(slot, ...mods) {
22716
23773
  const quoteMark = text({
22717
23774
  as: "span",
22718
23775
  className: "rb-testimonials-fe-qmark",
@@ -22726,11 +23783,11 @@ function buildFeaturedEditorialCard(variantClass, ...mods) {
22726
23783
  as: "span",
22727
23784
  className: "rb-testimonials-fe-context"
22728
23785
  }, when("testimonial.content.jobTitle"), bind$1("testimonial.content.jobTitle"))]);
22729
- return el$1("div", { className: `rb-testimonials-fe-card ${variantClass}` }, [
23786
+ return el$1("div", { className: featuredEditorialCardClassName(slot) }, [el$1("div", { className: "card-content rb-testimonials-fe-card-body" }, [
22730
23787
  quoteMark,
22731
23788
  quote,
22732
23789
  meta
22733
- ], ...mods);
23790
+ ])], ...mods);
22734
23791
  }
22735
23792
  /**
22736
23793
  * Build the "featured editorial" layout: an asymmetric two-column arrangement
@@ -22744,17 +23801,32 @@ function buildFeaturedEditorialCard(variantClass, ...mods) {
22744
23801
  * index scope in context, so entry 0 produces no node in the rest column.
22745
23802
  */
22746
23803
  function buildFeaturedEditorialLayout() {
22747
- return el$1("div", { className: "rb-testimonials-fe-grid" }, [buildFeaturedEditorialCard("rb-testimonials-fe-card--feature", repeat("data.entries", "testimonial", { limit: 1 })), el$1("div", { className: "rb-testimonials-fe-col" }, [buildFeaturedEditorialCard("rb-testimonials-fe-card--plain", repeat("data.entries", "testimonial", { indexName: "tIndex" }), when("tIndex", {
23804
+ return el$1("div", { className: "rb-testimonials-fe-grid" }, [buildFeaturedEditorialCard("lead", repeat("data.entries", "testimonial", { limit: 1 })), el$1("div", { className: "rb-testimonials-fe-col" }, [buildFeaturedEditorialCard("support", repeat("data.entries", "testimonial", { indexName: "tIndex" }), when("tIndex", {
22748
23805
  equals: 0,
22749
23806
  not: true
22750
23807
  }))])]);
22751
23808
  }
22752
- var grid$4, testimonialsCarouselFragment;
23809
+ var grid$4, FEATURED_EDITORIAL_SLOTS, TESTIMONIALS_CARD_STYLES_PATH, testimonialsCarouselFragment;
22753
23810
  var init_testimonialsCarousel = __esmMin((() => {
22754
- init_types$4();
23811
+ init_types$5();
22755
23812
  init_builder$1();
22756
23813
  init_fragments$1();
23814
+ init_boxStyleClassNames();
22757
23815
  grid$4 = (props, children, ...mods) => el$1("grid", props ?? void 0, children ?? void 0, ...mods);
23816
+ FEATURED_EDITORIAL_SLOTS = {
23817
+ lead: {
23818
+ /** Composition CSS addresses the lead card's geometry through this. */
23819
+ variantClass: "rb-testimonials-fe-card--feature",
23820
+ slotDefault: "alternative",
23821
+ followsLook: true
23822
+ },
23823
+ support: {
23824
+ variantClass: null,
23825
+ slotDefault: "default",
23826
+ followsLook: false
23827
+ }
23828
+ };
23829
+ TESTIMONIALS_CARD_STYLES_PATH = "content._cardStyles";
22758
23830
  testimonialsCarouselFragment = defineFragment$2({
22759
23831
  id: "testimonialsCarousel",
22760
23832
  title: "Testimonials",
@@ -22995,7 +24067,7 @@ var init_testimonialsCarousel = __esmMin((() => {
22995
24067
  //#region ../blocks/src/system/fragments/library/formCopy.ts
22996
24068
  var formCopyFragment;
22997
24069
  var init_formCopy = __esmMin((() => {
22998
- init_types$4();
24070
+ init_types$5();
22999
24071
  init_builder$1();
23000
24072
  formCopyFragment = defineFragment$2({
23001
24073
  id: "formCopy",
@@ -23036,7 +24108,7 @@ var init_api_bindings = __esmMin((() => {
23036
24108
  //#region ../blocks/src/system/fragments/library/formEmbed.ts
23037
24109
  var formEmbedFragment;
23038
24110
  var init_formEmbed = __esmMin((() => {
23039
- init_types$4();
24111
+ init_types$5();
23040
24112
  init_builder$1();
23041
24113
  init_api_bindings();
23042
24114
  formEmbedFragment = defineFragment$2({
@@ -23186,7 +24258,7 @@ var init_headerCta = __esmMin((() => {
23186
24258
  //#region ../blocks/src/system/fragments/library/singleButton.ts
23187
24259
  var singleButtonFragment;
23188
24260
  var init_singleButton = __esmMin((() => {
23189
- init_types$4();
24261
+ init_types$5();
23190
24262
  init_fragments$1();
23191
24263
  init_button();
23192
24264
  singleButtonFragment = defineFragment$2({
@@ -23212,7 +24284,7 @@ var init_singleButton = __esmMin((() => {
23212
24284
  //#region ../blocks/src/system/fragments/library/blogFeaturedPost.ts
23213
24285
  var blogFeaturedPostFragment;
23214
24286
  var init_blogFeaturedPost = __esmMin((() => {
23215
- init_types$4();
24287
+ init_types$5();
23216
24288
  init_fragments$1();
23217
24289
  init_builder$1();
23218
24290
  init_colorStyles();
@@ -23321,7 +24393,7 @@ function faqHeadingLayout() {
23321
24393
  }
23322
24394
  var faqHeadingFragment;
23323
24395
  var init_faqHeading = __esmMin((() => {
23324
- init_types$4();
24396
+ init_types$5();
23325
24397
  init_builder$1();
23326
24398
  init_fragments$1();
23327
24399
  init_colorStyles();
@@ -23393,7 +24465,7 @@ function createFaqAccordionLayout(options = {}) {
23393
24465
  var faqAccordionFragment;
23394
24466
  var init_faqAccordion = __esmMin((() => {
23395
24467
  init_builder$1();
23396
- init_types$4();
24468
+ init_types$5();
23397
24469
  faqAccordionFragment = defineFragment$2({
23398
24470
  id: "faqAccordion",
23399
24471
  title: "FAQ Accordion",
@@ -23427,7 +24499,7 @@ var init_faqAccordion = __esmMin((() => {
23427
24499
  //#region ../blocks/src/system/fragments/library/newsletterCopy.ts
23428
24500
  var newsletterCopyFragment;
23429
24501
  var init_newsletterCopy = __esmMin((() => {
23430
- init_types$4();
24502
+ init_types$5();
23431
24503
  init_builder$1();
23432
24504
  newsletterCopyFragment = defineFragment$2({
23433
24505
  id: "newsletterCopy",
@@ -23454,7 +24526,7 @@ var init_newsletterCopy = __esmMin((() => {
23454
24526
  //#region ../blocks/src/system/fragments/library/newsletterForm.ts
23455
24527
  var newsletterFormFragment;
23456
24528
  var init_newsletterForm = __esmMin((() => {
23457
- init_types$4();
24529
+ init_types$5();
23458
24530
  init_builder$1();
23459
24531
  init_api_bindings();
23460
24532
  init_button();
@@ -23613,15 +24685,15 @@ var init_newsletterForm = __esmMin((() => {
23613
24685
  }));
23614
24686
  //#endregion
23615
24687
  //#region ../blocks/src/system/fragments/library/card.ts
23616
- var cardVariantOptions$1, cardFragment;
24688
+ var cardVariantOptions, cardFragment;
23617
24689
  var init_card = __esmMin((() => {
23618
- init_types$4();
24690
+ init_types$5();
23619
24691
  init_builder$1();
23620
24692
  init_ctas();
23621
24693
  init_ctaRow$1();
23622
24694
  init_colorStyles();
23623
24695
  init_cards();
23624
- cardVariantOptions$1 = cardVariantRoleValues.map((value) => ({
24696
+ cardVariantOptions = cardVariantRoleValues.map((value) => ({
23625
24697
  value,
23626
24698
  label: value === "default" ? "Default" : "Alternative"
23627
24699
  }));
@@ -23702,7 +24774,7 @@ var init_card = __esmMin((() => {
23702
24774
  description: "Choose a card style from your theme",
23703
24775
  required: false,
23704
24776
  defaultValue: "default",
23705
- options: cardVariantOptions$1,
24777
+ options: cardVariantOptions,
23706
24778
  ui: { intent: "style" }
23707
24779
  }
23708
24780
  ],
@@ -23711,7 +24783,10 @@ var init_card = __esmMin((() => {
23711
24783
  className: { $bind: {
23712
24784
  from: "variant",
23713
24785
  fallback: "default",
23714
- transforms: [{ id: "boxStyles.cardVariantClass" }]
24786
+ transforms: [{
24787
+ id: "boxStyles.cardRoleClass",
24788
+ options: { baseClass: "" }
24789
+ }]
23715
24790
  } }
23716
24791
  }, [media({
23717
24792
  className: "card-media rb-w-full rb-h-auto rb-object-cover",
@@ -23742,7 +24817,7 @@ var init_card = __esmMin((() => {
23742
24817
  //#region ../blocks/src/system/fragments/library/heading.ts
23743
24818
  var headingFragment;
23744
24819
  var init_heading = __esmMin((() => {
23745
- init_types$4();
24820
+ init_types$5();
23746
24821
  init_builder$1();
23747
24822
  headingFragment = defineFragment$2({
23748
24823
  id: "heading",
@@ -23787,7 +24862,7 @@ var init_heading = __esmMin((() => {
23787
24862
  //#region ../blocks/src/system/fragments/library/richText.ts
23788
24863
  var richTextFragment;
23789
24864
  var init_richText = __esmMin((() => {
23790
- init_types$4();
24865
+ init_types$5();
23791
24866
  init_builder$1();
23792
24867
  richTextFragment = defineFragment$2({
23793
24868
  id: "richText",
@@ -23808,7 +24883,7 @@ var init_richText = __esmMin((() => {
23808
24883
  //#region ../blocks/src/system/fragments/library/image.ts
23809
24884
  var imageFragment;
23810
24885
  var init_image = __esmMin((() => {
23811
- init_types$4();
24886
+ init_types$5();
23812
24887
  init_builder$1();
23813
24888
  init_colorStyles();
23814
24889
  imageFragment = defineFragment$2({
@@ -23912,7 +24987,7 @@ var init_image = __esmMin((() => {
23912
24987
  //#region ../blocks/src/system/fragments/library/videoEmbed.ts
23913
24988
  var videoEmbedFragment;
23914
24989
  var init_videoEmbed = __esmMin((() => {
23915
- init_types$4();
24990
+ init_types$5();
23916
24991
  init_builder$1();
23917
24992
  init_colorStyles();
23918
24993
  videoEmbedFragment = defineFragment$2({
@@ -23976,7 +25051,7 @@ var init_videoEmbed = __esmMin((() => {
23976
25051
  //#region ../blocks/src/system/fragments/library/quote.ts
23977
25052
  var quoteFragment;
23978
25053
  var init_quote = __esmMin((() => {
23979
- init_types$4();
25054
+ init_types$5();
23980
25055
  init_builder$1();
23981
25056
  quoteFragment = defineFragment$2({
23982
25057
  id: "quote",
@@ -24025,7 +25100,7 @@ var init_quote = __esmMin((() => {
24025
25100
  //#region ../blocks/src/system/fragments/library/feedbackCallout.ts
24026
25101
  var feedbackCalloutFragment;
24027
25102
  var init_feedbackCallout = __esmMin((() => {
24028
- init_types$4();
25103
+ init_types$5();
24029
25104
  init_ctas();
24030
25105
  init_fragments$1();
24031
25106
  feedbackCalloutFragment = defineFragment$2({
@@ -24120,7 +25195,7 @@ var init_feedbackCallout = __esmMin((() => {
24120
25195
  //#region ../blocks/src/system/fragments/library/sectionState.ts
24121
25196
  var SECTION_STATE_KIND_LABELS, sectionStateFragment;
24122
25197
  var init_sectionState = __esmMin((() => {
24123
- init_types$4();
25198
+ init_types$5();
24124
25199
  init_ctas();
24125
25200
  init_fragments$1();
24126
25201
  SECTION_STATE_KIND_LABELS = {
@@ -24207,7 +25282,7 @@ var init_sectionState = __esmMin((() => {
24207
25282
  //#region ../blocks/src/system/fragments/library/columnContent.ts
24208
25283
  var columnContentFragment;
24209
25284
  var init_columnContent = __esmMin((() => {
24210
- init_types$4();
25285
+ init_types$5();
24211
25286
  init_builder$1();
24212
25287
  init_toRepeaterSchema();
24213
25288
  init_image();
@@ -24259,7 +25334,7 @@ var init_columnContent = __esmMin((() => {
24259
25334
  //#region ../blocks/src/system/fragments/library/teamMember.ts
24260
25335
  var teamMemberFragment;
24261
25336
  var init_teamMember = __esmMin((() => {
24262
- init_types$4();
25337
+ init_types$5();
24263
25338
  init_builder$1();
24264
25339
  init_fragments$1();
24265
25340
  teamMemberFragment = defineFragment$2({
@@ -24332,7 +25407,7 @@ var init_teamMember = __esmMin((() => {
24332
25407
  //#endregion
24333
25408
  //#region ../blocks/src/system/fragments/index.ts
24334
25409
  var init_fragments = __esmMin((() => {
24335
- init_types$4();
25410
+ init_types$5();
24336
25411
  init_builder();
24337
25412
  init_registry$4();
24338
25413
  init_toRepeaterSchema();
@@ -30786,7 +31861,7 @@ var init_weekly_slot_availability = __esmMin((() => {
30786
31861
  }));
30787
31862
  //#endregion
30788
31863
  //#region ../blocks/src/system/blocks/events/shared/types.ts
30789
- var init_types$3 = __esmMin((() => {}));
31864
+ var init_types$4 = __esmMin((() => {}));
30790
31865
  //#endregion
30791
31866
  //#region ../blocks/src/lib/media.ts
30792
31867
  var PUBLIC_DOWNLOAD_MEDIA_TYPES;
@@ -30908,18 +31983,40 @@ var init_bookingPaymentTerms = __esmMin((() => {
30908
31983
  })
30909
31984
  ]);
30910
31985
  blockBookingPaymentTermsSchema = z.object({ allowedOptions: z.array(blockBookingPaymentCollectionOptionSchema).min(1) });
31986
+ })), blockBookingConsentSchema, bookingRequirementConsentFieldSchema;
31987
+ var init_bookingConsent = __esmMin((() => {
31988
+ init_richTextSchema();
31989
+ blockBookingConsentSchema = z.object({
31990
+ requirementId: z.string(),
31991
+ title: z.string(),
31992
+ agreement: RichTextDocSchema,
31993
+ checkboxLabel: z.string()
31994
+ });
31995
+ bookingRequirementConsentFieldSchema = z.object({
31996
+ id: z.string(),
31997
+ label: z.string(),
31998
+ type: z.literal("booking_requirement_consent"),
31999
+ required: z.literal(true),
32000
+ agreement: RichTextDocSchema,
32001
+ checkboxLabel: z.string().min(1)
32002
+ });
32003
+ z.union([blockBookingConsentSchema, bookingRequirementConsentFieldSchema]);
30911
32004
  }));
30912
32005
  //#endregion
30913
- //#region ../blocks/src/system/blocks/courses/shared/schemas.ts
30914
- var courseVenueSchema, courseSessionSchema, courseTeamMemberSummarySchema, coursePricingOptionSchema, coursePricingSchema, publicWholeSeriesOfferingSchema, publicCourseSchema, publicWholeSeriesOfferingsArraySchema, publicCoursesArraySchema;
30915
- var init_schemas$1 = __esmMin((() => {
32006
+ //#region ../blocks/src/system/blocks/events/whole-series/pricing.ts
32007
+ var init_pricing$2 = __esmMin((() => {}));
32008
+ //#endregion
32009
+ //#region ../blocks/src/system/blocks/events/whole-series/schemas.ts
32010
+ var wholeSeriesVenueSchema, wholeSeriesSessionSchema, wholeSeriesTeamMemberSummarySchema, wholeSeriesPricingOptionSchema, wholeSeriesPricingSchema, publicWholeSeriesOfferingSchema, publicWholeSeriesOfferingsArraySchema;
32011
+ var init_schemas$2 = __esmMin((() => {
30916
32012
  init_bookingPaymentTerms();
30917
- courseVenueSchema = z.object({
32013
+ init_bookingConsent();
32014
+ wholeSeriesVenueSchema = z.object({
30918
32015
  id: z.string(),
30919
32016
  name: z.string(),
30920
32017
  address: z.string().nullable()
30921
32018
  });
30922
- courseSessionSchema = z.object({
32019
+ wholeSeriesSessionSchema = z.object({
30923
32020
  id: z.string(),
30924
32021
  startsAt: z.string(),
30925
32022
  endsAt: z.string(),
@@ -30927,14 +32024,14 @@ var init_schemas$1 = __esmMin((() => {
30927
32024
  capacityOverride: z.number().nullable().optional(),
30928
32025
  overrides: z.record(z.string(), z.unknown()).nullable().optional()
30929
32026
  });
30930
- courseTeamMemberSummarySchema = z.object({
32027
+ wholeSeriesTeamMemberSummarySchema = z.object({
30931
32028
  id: z.string(),
30932
32029
  name: z.string(),
30933
32030
  roleLabel: z.string().nullable(),
30934
32031
  summary: z.string().nullable(),
30935
32032
  profilePath: z.string().nullable()
30936
32033
  });
30937
- coursePricingOptionSchema = z.object({
32034
+ wholeSeriesPricingOptionSchema = z.object({
30938
32035
  id: z.string(),
30939
32036
  name: z.string(),
30940
32037
  description: z.string().nullable(),
@@ -30950,7 +32047,7 @@ var init_schemas$1 = __esmMin((() => {
30950
32047
  "both"
30951
32048
  ]).nullable().optional()
30952
32049
  });
30953
- coursePricingSchema = z.object({
32050
+ wholeSeriesPricingSchema = z.object({
30954
32051
  bookingRequirement: z.enum(["none", "required"]),
30955
32052
  pricingStrategy: z.enum([
30956
32053
  "free",
@@ -30964,7 +32061,7 @@ var init_schemas$1 = __esmMin((() => {
30964
32061
  slidingMaxAmount: z.number().nullable().optional(),
30965
32062
  slidingSuggestedAmount: z.number().nullable().optional(),
30966
32063
  paymentTerms: blockBookingPaymentTermsSchema,
30967
- options: z.array(coursePricingOptionSchema)
32064
+ options: z.array(wholeSeriesPricingOptionSchema)
30968
32065
  });
30969
32066
  publicWholeSeriesOfferingSchema = z.object({
30970
32067
  eventSeriesId: z.string(),
@@ -30972,11 +32069,12 @@ var init_schemas$1 = __esmMin((() => {
30972
32069
  title: z.string(),
30973
32070
  slug: z.string(),
30974
32071
  description: z.unknown().nullable(),
30975
- teamMembers: z.array(courseTeamMemberSummarySchema).optional(),
32072
+ teamMembers: z.array(wholeSeriesTeamMemberSummarySchema).optional(),
30976
32073
  enrollmentOpen: z.boolean(),
30977
- pricing: coursePricingSchema,
32074
+ pricing: wholeSeriesPricingSchema,
30978
32075
  currency: z.string(),
30979
32076
  paymentTerms: blockBookingPaymentTermsSchema,
32077
+ consent: blockBookingConsentSchema.nullable(),
30980
32078
  enrollmentCapacity: z.number().nullable(),
30981
32079
  acceptsMemberships: z.boolean(),
30982
32080
  status: z.enum([
@@ -30987,18 +32085,27 @@ var init_schemas$1 = __esmMin((() => {
30987
32085
  sessionsCount: z.number(),
30988
32086
  enrolledCount: z.number(),
30989
32087
  availableSpots: z.number().nullable(),
30990
- sessions: z.array(courseSessionSchema),
30991
- venue: courseVenueSchema.nullable()
32088
+ sessions: z.array(wholeSeriesSessionSchema),
32089
+ venue: wholeSeriesVenueSchema.nullable()
30992
32090
  });
30993
- publicCourseSchema = publicWholeSeriesOfferingSchema;
30994
32091
  publicWholeSeriesOfferingsArraySchema = z.array(publicWholeSeriesOfferingSchema);
30995
- publicCoursesArraySchema = publicWholeSeriesOfferingsArraySchema;
32092
+ }));
32093
+ //#endregion
32094
+ //#region ../blocks/src/system/blocks/events/whole-series/types.ts
32095
+ var init_types$3 = __esmMin((() => {}));
32096
+ //#endregion
32097
+ //#region ../blocks/src/system/blocks/events/whole-series/index.ts
32098
+ var init_whole_series = __esmMin((() => {
32099
+ init_pricing$2();
32100
+ init_schemas$2();
32101
+ init_types$3();
30996
32102
  })), eventPresetSchema, eventScheduleScopeSchema$2, publicEventRecurrenceSchema, eventDestinationModeSchema, publicEventDestinationSchema, eventVenueSchema, eventCategorySchema, accessRestrictionSchema, freePriceDisplaySchema, exactPriceDisplaySchema, fromPriceDisplaySchema, unavailablePriceDisplaySchema, rangePriceDisplaySchema, mixedPriceDisplaySchema, publicCoursePriceDisplaySchema, publicEventTicketTypePriceDisplaySchema, publicEventAttendanceModeSchema, publicEventAttendanceModeAvailabilitySchema, publicEventTicketTypeAvailabilitySchema, publicEventTicketTypeSchema, publicEventPricingSchema, publicTeamMemberSummarySchema, publicEventBookingAvailabilitySchema, publicEventSchema, publicEventsArraySchema;
30997
- var init_schemas = __esmMin((() => {
32103
+ var init_schemas$1 = __esmMin((() => {
30998
32104
  init_media$1();
30999
32105
  init_richTextSchema();
31000
32106
  init_bookingPaymentTerms();
31001
- init_schemas$1();
32107
+ init_bookingConsent();
32108
+ init_whole_series();
31002
32109
  eventPresetSchema = z.enum([
31003
32110
  "event",
31004
32111
  "class",
@@ -31288,6 +32395,7 @@ var init_schemas = __esmMin((() => {
31288
32395
  timeZone: z.string(),
31289
32396
  pricing: publicEventPricingSchema,
31290
32397
  paymentTerms: blockBookingPaymentTermsSchema,
32398
+ consent: blockBookingConsentSchema.nullable(),
31291
32399
  accessRestriction: accessRestrictionSchema,
31292
32400
  allowedCategoryIds: z.array(z.string()),
31293
32401
  requireGuestDetails: z.boolean().optional(),
@@ -31295,7 +32403,7 @@ var init_schemas = __esmMin((() => {
31295
32403
  acceptsMemberships: z.boolean().optional(),
31296
32404
  wholeSeries: z.object({
31297
32405
  eventSeriesId: z.string(),
31298
- pricing: coursePricingSchema,
32406
+ pricing: wholeSeriesPricingSchema,
31299
32407
  currency: z.string(),
31300
32408
  enrollmentOpen: z.boolean()
31301
32409
  }).nullable().optional()
@@ -31304,26 +32412,18 @@ var init_schemas = __esmMin((() => {
31304
32412
  }));
31305
32413
  //#endregion
31306
32414
  //#region ../blocks/src/system/blocks/events/shared/fields.ts
31307
- var cardVariantOptions, cardStylingFields, eventDisplayFields, emptyStateField, sectionHeaderFields, layoutField, columnsField;
32415
+ var cardStylingFields, eventDisplayFields, emptyStateField, sectionHeaderFields, layoutField, columnsField;
31308
32416
  var init_fields = __esmMin((() => {
31309
32417
  init_button();
31310
- init_cards();
31311
- cardVariantOptions = cardVariantRoleValues.map((value) => ({
31312
- value,
31313
- label: value === "default" ? "Default" : "Alternative"
31314
- }));
32418
+ init_boxStyles$1();
31315
32419
  cardStylingFields = [
31316
- {
31317
- id: "cardVariant",
31318
- type: "select",
32420
+ cardStylesField({
32421
+ id: "_cardStyles",
31319
32422
  label: "Card style",
31320
- description: "Choose a card style from your theme",
31321
- required: false,
31322
- multiple: false,
31323
- defaultValue: "default",
31324
- options: cardVariantOptions,
31325
- ui: { intent: "style" }
31326
- },
32423
+ controls: "role-only",
32424
+ renderInHeader: false,
32425
+ intent: "style"
32426
+ }),
31327
32427
  createButtonVariantField({ description: "Choose a button style from your theme" }),
31328
32428
  {
31329
32429
  id: "buttonText",
@@ -31487,15 +32587,9 @@ function normalizeEventStaffMemberId(value) {
31487
32587
  }
31488
32588
  var eventSurfacePresetValues, eventSurfaceScopeValues, eventScheduleScopeValues, unsafeAsEventCategoryId, unsafeAsVenueId;
31489
32589
  var init_filtering = __esmMin((() => {
32590
+ init_src$4();
31490
32591
  init_normalizeIds();
31491
- eventSurfacePresetValues = [
31492
- "course",
31493
- "term",
31494
- "class",
31495
- "workshop",
31496
- "retreat",
31497
- "performance"
31498
- ];
32592
+ eventSurfacePresetValues = SURFACE_EVENT_PRESET_VALUES;
31499
32593
  eventSurfaceScopeValues = [
31500
32594
  "all",
31501
32595
  "regularClassSchedule",
@@ -31533,8 +32627,8 @@ var init_layout$1 = __esmMin((() => {
31533
32627
  //#endregion
31534
32628
  //#region ../blocks/src/system/blocks/events/shared/index.ts
31535
32629
  var init_shared$3 = __esmMin((() => {
31536
- init_types$3();
31537
- init_schemas();
32630
+ init_types$4();
32631
+ init_schemas$1();
31538
32632
  init_fields();
31539
32633
  init_filtering();
31540
32634
  init_layout$1();
@@ -31656,6 +32750,28 @@ var init_eventScope = __esmMin((() => {
31656
32750
  });
31657
32751
  }));
31658
32752
  //#endregion
32753
+ //#region ../blocks/src/system/runtime/nodes/event-registration/registrationSurface.ts
32754
+ function planEventRegistrationScope(input) {
32755
+ const subject = input.subject;
32756
+ const selectedRunOffering = input.wholeSeriesOffering;
32757
+ if (subject?.kind !== "eventOffering" || !selectedRunOffering) return {
32758
+ kind: "context",
32759
+ events: resolveEventRegistrationScopedEvents(input.events, {
32760
+ occurrenceContext: input.occurrenceContext,
32761
+ subject
32762
+ })
32763
+ };
32764
+ if (!(selectedRunOffering.eventOfferingId === subject.eventOfferingId && subject.availableEventSeriesIds.some((seriesId) => seriesId === selectedRunOffering.eventSeriesId))) return { kind: "invalidSelectedRun" };
32765
+ return {
32766
+ kind: "selectedRun",
32767
+ events: input.events.filter((event) => event.seriesId === selectedRunOffering.eventSeriesId),
32768
+ offering: selectedRunOffering
32769
+ };
32770
+ }
32771
+ var init_registrationSurface = __esmMin((() => {
32772
+ init_eventScope();
32773
+ }));
32774
+ //#endregion
31659
32775
  //#region ../blocks/src/system/runtime/nodes/events/shared/destination.ts
31660
32776
  function isRecord$9(value) {
31661
32777
  return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -31981,6 +33097,13 @@ var init_registrationEventAdapter = __esmMin((() => {
31981
33097
  //#endregion
31982
33098
  //#region ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
31983
33099
  function buildEventRegistrationDisplay(source) {
33100
+ if (resolveWholeSeriesOffering(source)?.enrollmentOpen === false) return {
33101
+ kind: "event-registration",
33102
+ state: "registration-closed",
33103
+ className: source.className ?? null,
33104
+ titleText: "Registration closed",
33105
+ bodyText: "This run is no longer open for bookings."
33106
+ };
31984
33107
  const stepLabels = buildEventRegistrationShellStepLabels(source);
31985
33108
  return {
31986
33109
  kind: "event-registration",
@@ -31992,6 +33115,9 @@ function buildEventRegistrationDisplay(source) {
31992
33115
  summaryButtonText: source.buttonText?.trim() || "Register"
31993
33116
  };
31994
33117
  }
33118
+ function resolveWholeSeriesOffering(source) {
33119
+ return source.wholeSeriesOffering ?? source.subjectWholeSeriesOffering ?? null;
33120
+ }
31995
33121
  function buildEventRegistrationShellStepLabels(source) {
31996
33122
  const scopedEvents = scopeEventRegistrationEvents(source);
31997
33123
  if (scopedEvents.length === 0) return EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
@@ -32007,10 +33133,13 @@ function buildEventRegistrationShellStepLabels(source) {
32007
33133
  }) : false).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
32008
33134
  }
32009
33135
  function scopeEventRegistrationEvents(source) {
32010
- return resolveEventRegistrationScopedEvents(toRegistrationEvents(source.events ?? []), {
33136
+ const scope = planEventRegistrationScope({
33137
+ events: toRegistrationEvents(source.events ?? []),
33138
+ wholeSeriesOffering: source.wholeSeriesOffering,
32011
33139
  occurrenceContext: source.occurrenceContext,
32012
33140
  subject: source.subject
32013
33141
  });
33142
+ return scope.kind === "invalidSelectedRun" ? [] : scope.events;
32014
33143
  }
32015
33144
  function shellLabelForRegistrationStep(step, events) {
32016
33145
  switch (step) {
@@ -32049,11 +33178,12 @@ function isRecord$7(value) {
32049
33178
  }
32050
33179
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS, EVENT_REGISTRATION_SHELL_STEP_LABELS, eventRegistrationPublicEventSchema, eventRegistrationHydrationSchemaShape, eventRegistrationSourceSchema, eventRegistrationDisplaySchema, eventRegistrationHydrationSchema, eventRegistrationRenderSchema, eventRegistrationBlockRuntime;
32051
33180
  var init_event_registration_interactive = __esmMin((() => {
32052
- init_schemas();
32053
33181
  init_schemas$1();
33182
+ init_whole_series();
32054
33183
  init_shop_shared();
32055
33184
  init_event_registration_shared();
32056
33185
  init_eventScope();
33186
+ init_registrationSurface();
32057
33187
  init_pricing$1();
32058
33188
  init_destination();
32059
33189
  init_islands();
@@ -32079,8 +33209,8 @@ var init_event_registration_interactive = __esmMin((() => {
32079
33209
  occurrenceContext: occurrenceContextSchema.optional(),
32080
33210
  subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
32081
33211
  events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
32082
- wholeSeriesOfferings: publicCoursesArraySchema.nullable().optional(),
32083
- wholeSeriesOffering: publicCourseSchema.nullable().optional(),
33212
+ wholeSeriesOfferings: publicWholeSeriesOfferingsArraySchema.nullable().optional(),
33213
+ wholeSeriesOffering: publicWholeSeriesOfferingSchema.nullable().optional(),
32084
33214
  maxTickets: z.string().optional(),
32085
33215
  showVenue: z.boolean().optional(),
32086
33216
  showCapacity: z.boolean().optional(),
@@ -32102,12 +33232,13 @@ var init_event_registration_interactive = __esmMin((() => {
32102
33232
  portalToken: z.string().nullable().optional(),
32103
33233
  previewToken: z.string().nullable().optional(),
32104
33234
  ...eventRegistrationHydrationSchemaShape,
33235
+ subjectWholeSeriesOffering: publicWholeSeriesOfferingSchema.nullable().optional(),
32105
33236
  className: z.string().nullable().optional(),
32106
33237
  buttonText: z.string().nullable().optional(),
32107
33238
  maxTickets: z.string().nullable().optional(),
32108
33239
  stage: previewStageSchema.optional()
32109
33240
  });
32110
- eventRegistrationDisplaySchema = z.object({
33241
+ eventRegistrationDisplaySchema = z.discriminatedUnion("state", [z.object({
32111
33242
  kind: z.literal("event-registration"),
32112
33243
  state: z.literal("generic-shell"),
32113
33244
  className: z.string().nullable(),
@@ -32115,7 +33246,13 @@ var init_event_registration_interactive = __esmMin((() => {
32115
33246
  bodyText: z.string(),
32116
33247
  stepLabels: z.array(z.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
32117
33248
  summaryButtonText: z.string()
32118
- });
33249
+ }), z.object({
33250
+ kind: z.literal("event-registration"),
33251
+ state: z.literal("registration-closed"),
33252
+ className: z.string().nullable(),
33253
+ titleText: z.string(),
33254
+ bodyText: z.string()
33255
+ })]);
32119
33256
  eventRegistrationHydrationSchema = z.object(eventRegistrationHydrationSchemaShape);
32120
33257
  eventRegistrationRenderSchema = z.object({
32121
33258
  display: eventRegistrationDisplaySchema,
@@ -32141,7 +33278,7 @@ var init_event_registration_interactive = __esmMin((() => {
32141
33278
  subject: source.subject ?? null,
32142
33279
  events: source.events ?? null,
32143
33280
  wholeSeriesOfferings: source.wholeSeriesOfferings ?? null,
32144
- wholeSeriesOffering: source.wholeSeriesOffering ?? null,
33281
+ wholeSeriesOffering: resolveWholeSeriesOffering(source),
32145
33282
  maxTickets: source.maxTickets ?? void 0,
32146
33283
  showVenue: source.showVenue,
32147
33284
  showCapacity: source.showCapacity,
@@ -32161,19 +33298,6 @@ var init_event_registration_interactive = __esmMin((() => {
32161
33298
  });
32162
33299
  }));
32163
33300
  //#endregion
32164
- //#region ../blocks/src/system/blocks/courses/shared/types.ts
32165
- var init_types$2 = __esmMin((() => {}));
32166
- //#endregion
32167
- //#region ../blocks/src/system/blocks/courses/shared/pricing.ts
32168
- var init_pricing = __esmMin((() => {}));
32169
- //#endregion
32170
- //#region ../blocks/src/system/blocks/courses/shared/index.ts
32171
- var init_shared$2 = __esmMin((() => {
32172
- init_types$2();
32173
- init_schemas$1();
32174
- init_pricing();
32175
- }));
32176
- //#endregion
32177
33301
  //#region ../blocks/src/system/blocks/event-registration.ts
32178
33302
  var eventRegistrationManifest, eventRegistrationBlockDefinition;
32179
33303
  var init_event_registration = __esmMin((() => {
@@ -32187,7 +33311,7 @@ var init_event_registration = __esmMin((() => {
32187
33311
  init_defineBlock();
32188
33312
  init_event_registration_shared();
32189
33313
  init_event_registration_interactive();
32190
- init_shared$2();
33314
+ init_whole_series();
32191
33315
  eventRegistrationManifest = createBlockManifest({
32192
33316
  id: "block.event-registration",
32193
33317
  version: "1.0.0",
@@ -32379,7 +33503,9 @@ var init_event_registration = __esmMin((() => {
32379
33503
  fallback: false
32380
33504
  } },
32381
33505
  events: { $bind: { from: "data.events" } },
32382
- wholeSeriesOffering: { $bind: { from: "data.wholeSeriesOffering.offering" } },
33506
+ wholeSeriesOffering: { $bind: { from: "data.selectedRunOffering.offering" } },
33507
+ subjectWholeSeriesOffering: { $bind: { from: "data.subjectWholeSeriesOffering.offering" } },
33508
+ wholeSeriesOfferings: { $bind: { from: "data.wholeSeriesOfferings" } },
32383
33509
  sitePasses: { $bind: { from: "data.sitePasses" } },
32384
33510
  siteMemberships: { $bind: { from: "data.siteMemberships" } },
32385
33511
  stage: { $bind: {
@@ -32395,7 +33521,9 @@ var init_event_registration = __esmMin((() => {
32395
33521
  runtime: eventRegistrationBlockRuntime,
32396
33522
  dataSchemas: {
32397
33523
  events: publicEventsArraySchema.optional(),
32398
- wholeSeriesOffering: z.object({ offering: publicCourseSchema }).optional(),
33524
+ selectedRunOffering: z.object({ offering: publicWholeSeriesOfferingSchema }).optional(),
33525
+ subjectWholeSeriesOffering: z.object({ offering: publicWholeSeriesOfferingSchema }).optional(),
33526
+ wholeSeriesOfferings: z.array(publicWholeSeriesOfferingSchema).optional(),
32399
33527
  sitePasses: publicPassProductCollectionSchema.optional(),
32400
33528
  siteMemberships: publicMembershipProductCollectionSchema.optional(),
32401
33529
  occurrenceContext: occurrenceContextSchema.optional()
@@ -32412,11 +33540,29 @@ var init_event_registration = __esmMin((() => {
32412
33540
  } },
32413
33541
  readProfile: "registration",
32414
33542
  seriesId: { $bind: { from: "$root.subject.eventSeriesId" } },
33543
+ seriesIds: { $bind: {
33544
+ from: "$root.subject.availableEventSeriesIds",
33545
+ transforms: [{ id: "value.csv" }]
33546
+ } },
33547
+ runSeriesId: { $bind: { from: "$root.entrySubrouteContext.run.seriesId" } },
32415
33548
  includeOccurrenceId: { $bind: { from: "$root.occurrenceContext.id" } }
32416
33549
  },
32417
33550
  mode: "server"
32418
33551
  },
32419
- wholeSeriesOffering: {
33552
+ selectedRunOffering: {
33553
+ endpoint: "getPublicWholeSeriesOffering",
33554
+ params: {
33555
+ siteId: { $bind: { from: "$root.siteId" } },
33556
+ eventSeriesId: { $bind: { from: "$root.entrySubrouteContext.run.seriesId" } },
33557
+ stage: { $bind: {
33558
+ from: "$root.previewStage",
33559
+ fallback: "published"
33560
+ } }
33561
+ },
33562
+ requiredParams: ["eventSeriesId"],
33563
+ mode: "server"
33564
+ },
33565
+ subjectWholeSeriesOffering: {
32420
33566
  endpoint: "getPublicWholeSeriesOffering",
32421
33567
  when: { $bind: {
32422
33568
  from: "$root.subject.isWholeSeriesBooking",
@@ -32433,6 +33579,22 @@ var init_event_registration = __esmMin((() => {
32433
33579
  requiredParams: ["eventSeriesId"],
32434
33580
  mode: "server"
32435
33581
  },
33582
+ wholeSeriesOfferings: {
33583
+ endpoint: "listPublicWholeSeriesOfferings",
33584
+ params: {
33585
+ siteId: { $bind: { from: "$root.siteId" } },
33586
+ eventSeriesIds: { $bind: {
33587
+ from: "$root.subject.availableEventSeriesIds",
33588
+ transforms: [{ id: "value.csv" }]
33589
+ } },
33590
+ stage: { $bind: {
33591
+ from: "$root.previewStage",
33592
+ fallback: "published"
33593
+ } }
33594
+ },
33595
+ requiredParams: ["eventSeriesIds"],
33596
+ mode: "server"
33597
+ },
32436
33598
  sitePasses: {
32437
33599
  endpoint: "listPublicPasses",
32438
33600
  params: { siteId: { $bind: { from: "$root.siteId" } } },
@@ -32447,6 +33609,24 @@ var init_event_registration = __esmMin((() => {
32447
33609
  };
32448
33610
  }));
32449
33611
  //#endregion
33612
+ //#region ../blocks/src/system/blocks/courses/shared/types.ts
33613
+ var init_types$2 = __esmMin((() => {}));
33614
+ //#endregion
33615
+ //#region ../blocks/src/system/blocks/courses/shared/schemas.ts
33616
+ var init_schemas = __esmMin((() => {
33617
+ init_schemas$2();
33618
+ }));
33619
+ //#endregion
33620
+ //#region ../blocks/src/system/blocks/courses/shared/pricing.ts
33621
+ var init_pricing = __esmMin((() => {}));
33622
+ //#endregion
33623
+ //#region ../blocks/src/system/blocks/courses/shared/index.ts
33624
+ var init_shared$2 = __esmMin((() => {
33625
+ init_types$2();
33626
+ init_schemas();
33627
+ init_pricing();
33628
+ }));
33629
+ //#endregion
32450
33630
  //#region ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
32451
33631
  function buildCourseRegistrationDisplay(source) {
32452
33632
  return {
@@ -32456,20 +33636,16 @@ function buildCourseRegistrationDisplay(source) {
32456
33636
  summaryButtonText: source.buttonText?.trim() || "Sign up"
32457
33637
  };
32458
33638
  }
32459
- var courseRegistrationSourceSchema, courseRegistrationDisplaySchema, courseRegistrationHydrationSchema, courseRegistrationRenderSchema, courseRegistrationBlockRuntime;
33639
+ var courseRegistrationHydrationSchemaShape, courseRegistrationSourceSchema, courseRegistrationDisplaySchema, courseRegistrationHydrationSchema, courseRegistrationRenderSchema, courseRegistrationBlockRuntime;
32460
33640
  var init_course_registration_interactive = __esmMin((() => {
32461
- init_schemas$1();
33641
+ init_schemas();
32462
33642
  init_islands();
32463
33643
  init_runtime$1();
32464
33644
  init_contract_schemas();
32465
33645
  init_eventScope();
32466
- courseRegistrationSourceSchema = z.object({
32467
- siteId: z.string().optional(),
32468
- apiBaseUrl: z.string().optional(),
32469
- portalToken: z.string().nullable().optional(),
33646
+ courseRegistrationHydrationSchemaShape = {
32470
33647
  subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
32471
- courses: z.array(publicCourseSchema).nullable().optional(),
32472
- className: z.string().nullable().optional(),
33648
+ courses: z.array(publicWholeSeriesOfferingSchema).nullable().optional(),
32473
33649
  showSessions: z.boolean().optional(),
32474
33650
  showPrice: z.boolean().optional(),
32475
33651
  showCapacity: z.boolean().optional(),
@@ -32477,8 +33653,15 @@ var init_course_registration_interactive = __esmMin((() => {
32477
33653
  successMessage: z.string().optional(),
32478
33654
  waitlistMessage: z.string().optional(),
32479
33655
  membershipMessage: z.string().optional(),
33656
+ buttonVariant: registrationButtonVariantSchema.optional()
33657
+ };
33658
+ courseRegistrationSourceSchema = z.object({
33659
+ siteId: z.string().optional(),
33660
+ apiBaseUrl: z.string().optional(),
33661
+ portalToken: z.string().nullable().optional(),
33662
+ ...courseRegistrationHydrationSchemaShape,
33663
+ className: z.string().nullable().optional(),
32480
33664
  buttonText: z.string().nullable().optional(),
32481
- buttonVariant: registrationButtonVariantSchema.optional(),
32482
33665
  stage: previewStageSchema.optional()
32483
33666
  });
32484
33667
  courseRegistrationDisplaySchema = z.object({
@@ -32487,18 +33670,7 @@ var init_course_registration_interactive = __esmMin((() => {
32487
33670
  className: z.string().nullable(),
32488
33671
  summaryButtonText: z.string()
32489
33672
  });
32490
- courseRegistrationHydrationSchema = z.object({
32491
- subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
32492
- courses: z.array(publicCourseSchema).nullable().optional(),
32493
- showSessions: z.boolean().optional(),
32494
- showPrice: z.boolean().optional(),
32495
- showCapacity: z.boolean().optional(),
32496
- showVenue: z.boolean().optional(),
32497
- successMessage: z.string().optional(),
32498
- waitlistMessage: z.string().optional(),
32499
- membershipMessage: z.string().optional(),
32500
- buttonVariant: registrationButtonVariantSchema.optional()
32501
- });
33673
+ courseRegistrationHydrationSchema = z.object(courseRegistrationHydrationSchemaShape);
32502
33674
  courseRegistrationRenderSchema = z.object({
32503
33675
  display: courseRegistrationDisplaySchema,
32504
33676
  hydration: courseRegistrationHydrationSchema
@@ -32709,7 +33881,7 @@ var init_course_registration = __esmMin((() => {
32709
33881
  courseRegistrationBlockDefinition = {
32710
33882
  manifest: courseRegistrationManifest,
32711
33883
  runtime: courseRegistrationBlockRuntime,
32712
- dataSchemas: { courses: publicCoursesArraySchema.optional() },
33884
+ dataSchemas: { courses: publicWholeSeriesOfferingsArraySchema.optional() },
32713
33885
  dataLoaders: { courses: {
32714
33886
  endpoint: "listPublicWholeSeriesOfferings",
32715
33887
  params: {
@@ -32780,6 +33952,22 @@ var init_event_details = __esmMin((() => {
32780
33952
  defaultValue: true,
32781
33953
  ui: { intent: "display" }
32782
33954
  },
33955
+ {
33956
+ id: "showTitle",
33957
+ type: "boolean",
33958
+ label: "Show event title",
33959
+ required: false,
33960
+ defaultValue: false,
33961
+ ui: { intent: "display" }
33962
+ },
33963
+ {
33964
+ id: "showDescription",
33965
+ type: "boolean",
33966
+ label: "Show event description",
33967
+ required: false,
33968
+ defaultValue: false,
33969
+ ui: { intent: "display" }
33970
+ },
32783
33971
  {
32784
33972
  id: "showMap",
32785
33973
  type: "boolean",
@@ -32816,10 +34004,22 @@ var init_event_details = __esmMin((() => {
32816
34004
  {
32817
34005
  value: "10",
32818
34006
  label: "10 dates"
34007
+ },
34008
+ {
34009
+ value: "all",
34010
+ label: "All dates"
32819
34011
  }
32820
34012
  ],
32821
34013
  ui: { intent: "display" }
32822
34014
  },
34015
+ {
34016
+ id: "showCapacity",
34017
+ type: "boolean",
34018
+ label: "Show capacity",
34019
+ required: false,
34020
+ defaultValue: false,
34021
+ ui: { intent: "display" }
34022
+ },
32823
34023
  {
32824
34024
  id: "showCost",
32825
34025
  type: "boolean",
@@ -32862,6 +34062,8 @@ var init_event_details = __esmMin((() => {
32862
34062
  } },
32863
34063
  events: { $bind: { from: "data.eventDetailsData.events" } },
32864
34064
  showVenue: { $bind: { from: "content.showVenue" } },
34065
+ showTitle: { $bind: { from: "content.showTitle" } },
34066
+ showDescription: { $bind: { from: "content.showDescription" } },
32865
34067
  showMap: { $bind: { from: "content.showMap" } },
32866
34068
  showOtherDates: { $bind: { from: "content.showOtherDates" } },
32867
34069
  otherDatesLimit: { $bind: {
@@ -32872,6 +34074,10 @@ var init_event_details = __esmMin((() => {
32872
34074
  from: "content.showCost",
32873
34075
  fallback: true
32874
34076
  } },
34077
+ showCapacity: { $bind: {
34078
+ from: "content.showCapacity",
34079
+ fallback: false
34080
+ } },
32875
34081
  showAcceptedPasses: { $bind: {
32876
34082
  from: "content.showAcceptedPasses",
32877
34083
  fallback: true
@@ -32926,6 +34132,11 @@ var init_event_details = __esmMin((() => {
32926
34132
  limit: "100",
32927
34133
  readProfile: "details",
32928
34134
  seriesId: { $bind: { from: "$root.subject.eventSeriesId" } },
34135
+ seriesIds: { $bind: {
34136
+ from: "$root.subject.availableEventSeriesIds",
34137
+ transforms: [{ id: "value.csv" }]
34138
+ } },
34139
+ runSeriesId: { $bind: { from: "$root.entrySubrouteContext.run.seriesId" } },
32929
34140
  includeOccurrenceId: { $bind: { from: "$root.occurrenceContext.id" } }
32930
34141
  },
32931
34142
  mode: "server"
@@ -33122,7 +34333,7 @@ var init_course_details = __esmMin((() => {
33122
34333
  });
33123
34334
  courseDetailsBlockDefinition = {
33124
34335
  manifest: courseDetailsManifest,
33125
- dataSchemas: { courses: publicCoursesArraySchema.optional() },
34336
+ dataSchemas: { courses: publicWholeSeriesOfferingsArraySchema.optional() },
33126
34337
  dataLoaders: { courses: {
33127
34338
  endpoint: "listPublicWholeSeriesOfferings",
33128
34339
  params: {
@@ -33251,8 +34462,8 @@ var init_event_spotlight = __esmMin((() => {
33251
34462
  from: "content.columns",
33252
34463
  fallback: "3"
33253
34464
  } },
33254
- cardVariant: { $bind: {
33255
- from: "content.cardVariant",
34465
+ cardRole: { $bind: {
34466
+ from: "content._cardStyles.role",
33256
34467
  fallback: "default"
33257
34468
  } },
33258
34469
  buttonVariant: { $bind: {
@@ -33431,6 +34642,7 @@ function buildEventCollectionPresentationDisplay(source) {
33431
34642
  showVenue: source.showVenue ?? true,
33432
34643
  showMap: source.showMap ?? true,
33433
34644
  showCapacity: source.showCapacity ?? true,
34645
+ cardRole: source.cardRole ?? "default",
33434
34646
  buttonVariant: source.buttonVariant ?? "primary",
33435
34647
  buttonText: source.buttonText ?? "Book",
33436
34648
  emptyMessage: source.emptyMessage ?? "No upcoming events scheduled."
@@ -33447,7 +34659,8 @@ function buildEventCollectionHydration(source) {
33447
34659
  };
33448
34660
  }
33449
34661
  var eventSurfaceScopeSchema$1, eventScheduleScopeSchema$1, eventCollectionFilterSourceSchemaShape, eventCollectionSourceSchemaShape, eventCollectionDisplaySchemaShape, eventCollectionHydrationSchema, init_eventCollectionContract = __esmMin((() => {
33450
- init_schemas();
34662
+ init_cards();
34663
+ init_schemas$1();
33451
34664
  init_shared$3();
33452
34665
  init_contract_schemas();
33453
34666
  init_listOptions();
@@ -33483,6 +34696,7 @@ var eventSurfaceScopeSchema$1, eventScheduleScopeSchema$1, eventCollectionFilter
33483
34696
  showVenue: z.boolean().nullable().optional(),
33484
34697
  showMap: z.boolean().nullable().optional(),
33485
34698
  showCapacity: z.boolean().nullable().optional(),
34699
+ cardRole: cardRoleSchema.optional(),
33486
34700
  buttonVariant: eventButtonVariantSchema.optional(),
33487
34701
  buttonText: z.string().optional(),
33488
34702
  emptyMessage: z.string().optional(),
@@ -33510,6 +34724,7 @@ var eventSurfaceScopeSchema$1, eventScheduleScopeSchema$1, eventCollectionFilter
33510
34724
  showVenue: z.boolean(),
33511
34725
  showMap: z.boolean(),
33512
34726
  showCapacity: z.boolean(),
34727
+ cardRole: cardRoleSchema,
33513
34728
  buttonVariant: eventButtonVariantSchema,
33514
34729
  buttonText: z.string(),
33515
34730
  emptyMessage: z.string()
@@ -33522,10 +34737,10 @@ var eventSurfaceScopeSchema$1, eventScheduleScopeSchema$1, eventCollectionFilter
33522
34737
  filterEventPresets: z.string().nullable(),
33523
34738
  scheduleScope: eventScheduleScopeSchema$1
33524
34739
  });
33525
- })), legacyEventCardVariantSchema, eventCardVariantInputSchema, cardOrientationSchema, eventSurfaceScopeSchema, eventScheduleScopeSchema, eventListingSourceSchema, eventListingDisplaySchema, eventListingHydrationSchema, eventListingRenderSchema, eventListingBlockRuntime;
34740
+ })), cardOrientationSchema, eventSurfaceScopeSchema, eventScheduleScopeSchema, eventListingSourceSchema, eventListingDisplaySchema, eventListingHydrationSchema, eventListingRenderSchema, eventListingBlockRuntime;
33526
34741
  var init_EventListing_interactive = __esmMin((() => {
33527
34742
  init_cards();
33528
- init_schemas();
34743
+ init_schemas$1();
33529
34744
  init_shared$3();
33530
34745
  init_islands();
33531
34746
  init_runtime$1();
@@ -33533,8 +34748,6 @@ var init_EventListing_interactive = __esmMin((() => {
33533
34748
  init_contract_schemas();
33534
34749
  init_listOptions();
33535
34750
  init_eventCollectionContract();
33536
- legacyEventCardVariantSchema = z.enum(["variant1", "variant2"]);
33537
- eventCardVariantInputSchema = z.union([cardVariantRoleSchema, legacyEventCardVariantSchema]);
33538
34751
  cardOrientationSchema = z.enum(["vertical", "horizontal"]);
33539
34752
  eventSurfaceScopeSchema = z.enum(eventSurfaceScopeValues);
33540
34753
  eventScheduleScopeSchema = z.enum(eventScheduleScopeValues);
@@ -33549,7 +34762,7 @@ var init_EventListing_interactive = __esmMin((() => {
33549
34762
  paginationMode: z.enum(["loadMore", "seeAllLink"]).optional(),
33550
34763
  seeAllUrl: z.string().optional(),
33551
34764
  loadMoreText: z.string().optional(),
33552
- cardVariant: eventCardVariantInputSchema.optional(),
34765
+ cardRole: cardRoleSchema.optional(),
33553
34766
  buttonVariant: eventButtonVariantSchema.optional(),
33554
34767
  buttonText: z.string().optional(),
33555
34768
  showVenue: z.boolean().optional(),
@@ -33571,7 +34784,7 @@ var init_EventListing_interactive = __esmMin((() => {
33571
34784
  emptyMessage: z.string(),
33572
34785
  loadingMessage: z.string(),
33573
34786
  containerClass: z.string(),
33574
- cardVariant: cardVariantRoleSchema,
34787
+ cardRole: cardRoleSchema,
33575
34788
  buttonVariant: eventButtonVariantSchema,
33576
34789
  buttonText: z.string(),
33577
34790
  showVenue: z.boolean(),
@@ -33627,7 +34840,7 @@ var init_EventListing_interactive = __esmMin((() => {
33627
34840
  emptyMessage: source.emptyMessage ?? "No upcoming events scheduled.",
33628
34841
  loadingMessage: "Loading events…",
33629
34842
  containerClass: getContainerClass(layout, source.columns ?? "3"),
33630
- cardVariant: normalizeCardVariantRole(source.cardVariant) ?? "default",
34843
+ cardRole: source.cardRole ?? "default",
33631
34844
  buttonVariant: source.buttonVariant ?? "primary",
33632
34845
  buttonText: source.buttonText ?? "Book",
33633
34846
  showVenue: source.showVenue ?? true,
@@ -33927,8 +35140,8 @@ var init_event_listing = __esmMin((() => {
33927
35140
  from: "content.loadMoreText",
33928
35141
  fallback: "Load more events"
33929
35142
  } },
33930
- cardVariant: { $bind: {
33931
- from: "content.cardVariant",
35143
+ cardRole: { $bind: {
35144
+ from: "content._cardStyles.role",
33932
35145
  fallback: "default"
33933
35146
  } },
33934
35147
  buttonVariant: { $bind: {
@@ -34240,6 +35453,10 @@ var init_event_calendar = __esmMin((() => {
34240
35453
  filterCategoryIds: { $bind: { from: "content.filterCategoryIds" } },
34241
35454
  filterStaffMemberId: { $bind: { from: "content.filterStaffMemberId" } },
34242
35455
  filterVenueId: { $bind: { from: "content.filterVenueId" } },
35456
+ cardRole: { $bind: {
35457
+ from: "content._cardStyles.role",
35458
+ fallback: "default"
35459
+ } },
34243
35460
  buttonVariant: { $bind: {
34244
35461
  from: "content.buttonVariant",
34245
35462
  fallback: "primary"
@@ -34872,11 +36089,11 @@ var init_event_calendar = __esmMin((() => {
34872
36089
  searchThreshold: 8
34873
36090
  }
34874
36091
  }),
34875
- ...cardStylingFields.filter((f) => f.id === "buttonVariant" || f.id === "buttonText").map((field) => ({
36092
+ ...cardStylingFields.map((field) => ({
34876
36093
  ...field,
34877
36094
  ui: {
34878
36095
  ...field.ui ?? {},
34879
- intent: field.id === "buttonVariant" ? "style" : "content"
36096
+ intent: field.id === "_cardStyles" || field.id === "buttonVariant" ? "style" : "content"
34880
36097
  }
34881
36098
  })),
34882
36099
  {
@@ -35245,7 +36462,7 @@ function projectRecurringSchedule(events) {
35245
36462
  var weekdayOrder, weekdayCodeOrder, recurringScheduleWeekdaySchema, recurringScheduleSeriesIdSchema, recurringScheduleProjectionSchema, weekdayFormatterCache, timeFormatterCache, dateFormatterCache;
35246
36463
  var init_recurring_schedule_projection = __esmMin((() => {
35247
36464
  init_src$4();
35248
- init_schemas();
36465
+ init_schemas$1();
35249
36466
  weekdayOrder = [
35250
36467
  "Monday",
35251
36468
  "Tuesday",
@@ -35684,6 +36901,7 @@ function isRecord$5(value) {
35684
36901
  }
35685
36902
  var publicRouteCandidatesSchema, groupOverrideFields, offeringsPreviewFields, offeringsPreviewEventDataBindings, offeringsPreviewConfig, offeringsPreviewManifest, optionalPublicEventsArraySchema, offeringsPreviewEventDataSchemas, offeringsPreviewEventDataLoaders, offeringsPreviewBlockDefinition;
35686
36903
  var init_offerings_preview = __esmMin((() => {
36904
+ init_link();
35687
36905
  init_builder$1();
35688
36906
  init_styledSection();
35689
36907
  init_fragments$1();
@@ -35699,7 +36917,7 @@ var init_offerings_preview = __esmMin((() => {
35699
36917
  entityId: z.string(),
35700
36918
  path: z.string(),
35701
36919
  title: z.string(),
35702
- kind: z.enum(["page", "content"]),
36920
+ kind: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
35703
36921
  contentTypeKey: z.string().nullable().optional()
35704
36922
  })) });
35705
36923
  groupOverrideFields = [
@@ -35994,7 +37212,7 @@ var init_offerings_preview = __esmMin((() => {
35994
37212
  dataSchemas: {
35995
37213
  ...offeringsPreviewEventDataSchemas,
35996
37214
  routeCandidates: publicRouteCandidatesSchema.optional(),
35997
- courses: publicCoursesArraySchema.optional()
37215
+ courses: publicWholeSeriesOfferingsArraySchema.optional()
35998
37216
  },
35999
37217
  dataLoaders: {
36000
37218
  ...offeringsPreviewEventDataLoaders,
@@ -37372,8 +38590,9 @@ var init_audio_player = __esmMin((() => {
37372
38590
  init_builder$1();
37373
38591
  init_fragments$1();
37374
38592
  init_colorStyles();
38593
+ init_boxStyleClassNames();
37375
38594
  audioPlayerLayout = styledSection({
37376
- children: stack({ className: "rb-container rb-mx-auto rb-max-w-3xl" }, [el$1("div", { className: "card-role-default" }, [media({
38595
+ children: stack({ className: "rb-container rb-mx-auto rb-max-w-3xl" }, [el$1("div", { className: boxStyleClassNames({ role: "default" }, {}) }, [media({
37377
38596
  className: "card-media rb-aspect-video rb-w-full rb-object-cover",
37378
38597
  size: {
37379
38598
  width: 960,
@@ -40614,16 +41833,27 @@ function eventListCapable() {
40614
41833
  looks: "supported",
40615
41834
  sectionSurfaces: "supported",
40616
41835
  contentFrames: ["plain", "panel"],
40617
- cardRoles: "unsupported",
41836
+ cardRoles: "supported",
40618
41837
  eventListTreatments
40619
41838
  });
40620
41839
  }
41840
+ function eventSpotlightCapable() {
41841
+ return declareBlockDesignCapability({
41842
+ sectionSurfaces: "supported",
41843
+ contentFrames: ["plain"],
41844
+ cardRoles: "supported"
41845
+ });
41846
+ }
40621
41847
  function offeringsPreviewCapable() {
40622
41848
  return declareBlockDesignCapability({
40623
41849
  looks: "supported",
40624
41850
  sectionSurfaces: "supported",
40625
41851
  contentFrames: ["plain"],
40626
- cardRoles: "supported"
41852
+ cardRoles: "supported",
41853
+ compositions: {
41854
+ kind: "offerings-preview",
41855
+ treatments: offeringsPreviewCompositionTreatmentValues
41856
+ }
40627
41857
  });
40628
41858
  }
40629
41859
  function defaultBoundaryBias(visualWeight) {
@@ -41060,7 +42290,7 @@ var init_blocks$1 = __esmMin((() => {
41060
42290
  cardRoles: "supported",
41061
42291
  compositions: {
41062
42292
  kind: "testimonials",
41063
- treatments: ["open-editorial"]
42293
+ treatments: testimonialsCompositionTreatmentValues
41064
42294
  },
41065
42295
  headingDecorationCapability: {
41066
42296
  kind: "supported",
@@ -41215,7 +42445,7 @@ var init_blocks$1 = __esmMin((() => {
41215
42445
  weight: "standard"
41216
42446
  })]
41217
42447
  })),
41218
- withDesignCapability("block.event-spotlight", eventSpotlightBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
42448
+ withDesignCapability("block.event-spotlight", eventSpotlightBlockDefinition, eventSpotlightCapable(), defineBlockDesignMetadata({
41219
42449
  flow: offeringsFlow,
41220
42450
  layoutProfiles: [layoutProfile({
41221
42451
  variantKey: "default",
@@ -41912,6 +43142,7 @@ var init_registry$2 = __esmMin((() => {
41912
43142
  init_boxStyles();
41913
43143
  init_content();
41914
43144
  init_headerRuntime();
43145
+ init_boxStyleClassNames();
41915
43146
  builtinTransformDefinitions = [
41916
43147
  ...formattingTransforms,
41917
43148
  ...layoutTransforms,
@@ -42049,63 +43280,6 @@ var init_hints = __esmMin((() => {
42049
43280
  //#region ../blocks/src/system/ai/index.ts
42050
43281
  var init_ai = __esmMin((() => {
42051
43282
  init_hints();
42052
- })), nullableString, resolvedInternalLinkKeys, internalRouteOnlyLinkSchema, internalResolvedLinkSchema, internalLinkSchema, externalLinkSchema, customLinkSchema, pageLinkSchema, entryLinkSchema;
42053
- var init_link = __esmMin((() => {
42054
- nullableString = z.union([z.string().min(1), z.null()]);
42055
- resolvedInternalLinkKeys = [
42056
- "entityId",
42057
- "entityType",
42058
- "href",
42059
- "title",
42060
- "typeLabel"
42061
- ];
42062
- internalRouteOnlyLinkSchema = z.object({
42063
- kind: z.literal("internal"),
42064
- routeId: z.string().min(1)
42065
- }).passthrough().superRefine((value, ctx) => {
42066
- if (!resolvedInternalLinkKeys.some((key) => value[key] != null)) return;
42067
- ctx.addIssue({
42068
- code: "custom",
42069
- message: "Internal links with resolved metadata must include entityId, entityType, href, title, and typeLabel"
42070
- });
42071
- });
42072
- internalResolvedLinkSchema = z.object({
42073
- kind: z.literal("internal"),
42074
- routeId: z.string().min(1),
42075
- entityId: z.string().min(1),
42076
- entityType: z.enum(["page", "content"]),
42077
- href: z.string().min(1),
42078
- title: z.string().min(1),
42079
- typeLabel: z.string().min(1),
42080
- contentTypeKey: nullableString.optional(),
42081
- contentTypeName: nullableString.optional(),
42082
- updatedAt: nullableString.optional()
42083
- }).passthrough();
42084
- internalLinkSchema = z.union([internalResolvedLinkSchema, internalRouteOnlyLinkSchema]);
42085
- externalLinkSchema = z.object({
42086
- kind: z.literal("external"),
42087
- href: z.string().min(1)
42088
- }).passthrough();
42089
- customLinkSchema = z.object({
42090
- kind: z.literal("url"),
42091
- href: z.string().min(1)
42092
- }).passthrough();
42093
- pageLinkSchema = z.object({
42094
- kind: z.literal("page"),
42095
- identifier: z.string().min(1)
42096
- }).passthrough();
42097
- entryLinkSchema = z.object({
42098
- kind: z.literal("entry"),
42099
- contentType: z.string().min(1),
42100
- identifier: z.string().min(1)
42101
- }).passthrough();
42102
- z.union([
42103
- internalLinkSchema,
42104
- externalLinkSchema,
42105
- customLinkSchema,
42106
- pageLinkSchema,
42107
- entryLinkSchema
42108
- ]);
42109
43283
  }));
42110
43284
  //#endregion
42111
43285
  //#region ../blocks/src/system/media/constrainedVideoMedia.ts
@@ -43268,202 +44442,33 @@ var init_bookingRefundOutcomes = __esmMin((() => {
43268
44442
  [...STANDARD_LINE_ITEM_REFUND_INVALID_CODES, ...CANONICAL_ADMIN_REFUND_FAILURE_CODES];
43269
44443
  }));
43270
44444
  //#endregion
43271
- //#region ../api/src/eventSeriesPresentationPreset.ts
43272
- var init_eventSeriesPresentationPreset = __esmMin((() => {}));
43273
- //#endregion
43274
- //#region ../api/src/bookingVerticalPreset.ts
43275
- function verticalBookingPreset(id, verticalId, canonicalBehaviour, label, pluralLabel, description, availability = "onboarding") {
43276
- return {
43277
- id,
43278
- verticalId,
43279
- canonicalBehaviour,
43280
- engine: BOOKING_ENGINE_BY_BEHAVIOUR[canonicalBehaviour],
43281
- availability,
43282
- label,
43283
- pluralLabel,
43284
- description
43285
- };
43286
- }
43287
- var BOOKING_ENGINE_BY_BEHAVIOUR;
43288
- var init_bookingVerticalPreset = __esmMin((() => {
43289
- BOOKING_ENGINE_BY_BEHAVIOUR = {
43290
- class: "event_series",
43291
- workshop: "event_series",
43292
- course: "event_series",
43293
- retreat: "event_series",
43294
- performance: "event_series",
43295
- appointment: "appointment_service"
43296
- };
43297
- }));
43298
- //#endregion
43299
- //#region ../api/src/bookingVerticalCatalog.ts
43300
- var VERTICAL_BOOKING_PRESETS;
43301
- var init_bookingVerticalCatalog = __esmMin((() => {
43302
- init_bookingVerticalPreset();
43303
- VERTICAL_BOOKING_PRESETS = [
43304
- verticalBookingPreset("yoga_wellness.classes", "yoga_wellness", "class", "Class", "Classes", "Regular scheduled classes and group sessions."),
43305
- verticalBookingPreset("yoga_wellness.workshops", "yoga_wellness", "workshop", "Workshop", "Workshops", "One-off workshops, day retreats, or special sessions."),
43306
- verticalBookingPreset("yoga_wellness.courses", "yoga_wellness", "course", "Course", "Courses", "Fixed-schedule courses or multi-session groups."),
43307
- verticalBookingPreset("yoga_wellness.retreats", "yoga_wellness", "retreat", "Retreat", "Retreats", "Multi-day or residential retreats and immersive experiences."),
43308
- verticalBookingPreset("yoga_wellness.appointments", "yoga_wellness", "appointment", "Appointment", "Appointments", "Private sessions, consultations, or one-to-one support."),
43309
- verticalBookingPreset("fitness_pt.group_training", "fitness_pt", "class", "Group training", "Group training", "Regular scheduled classes and group sessions."),
43310
- verticalBookingPreset("fitness_pt.personal_training", "fitness_pt", "appointment", "Personal training", "Personal training", "One-to-one sessions booked from your availability."),
43311
- verticalBookingPreset("fitness_pt.programmes", "fitness_pt", "course", "Programme", "Programmes", "Multi-session programmes like bootcamps or courses."),
43312
- verticalBookingPreset("fitness_pt.workshops", "fitness_pt", "workshop", "Workshop", "Workshops", "One-off workshops, events, or special sessions."),
43313
- verticalBookingPreset("fitness_pt.retreats", "fitness_pt", "retreat", "Retreat", "Retreats", "Multi-day or residential fitness experiences."),
43314
- verticalBookingPreset("dance_school.classes", "dance_school", "class", "Class", "Classes", "Regular group classes and weekly sessions."),
43315
- verticalBookingPreset("dance_school.terms", "dance_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date course groups."),
43316
- verticalBookingPreset("dance_school.courses", "dance_school", "course", "Course", "Courses", "Fixed-schedule courses or multi-session groups.", "settings"),
43317
- verticalBookingPreset("dance_school.workshops", "dance_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
43318
- verticalBookingPreset("dance_school.private_lessons", "dance_school", "appointment", "Private lesson", "Private lessons", "One-to-one lessons or coaching sessions."),
43319
- verticalBookingPreset("dance_school.shows", "dance_school", "performance", "Show", "Shows", "Ticketed performances, showcases, and recitals."),
43320
- verticalBookingPreset("physiotherapy_physical_health.appointments", "physiotherapy_physical_health", "appointment", "Appointment", "Appointments", "Assessments, treatments, follow-ups, and rehabilitation sessions."),
43321
- verticalBookingPreset("physiotherapy_physical_health.rehab_classes", "physiotherapy_physical_health", "class", "Rehab class", "Rehab classes", "Regular rehabilitation, mobility, strength, or recovery classes."),
43322
- verticalBookingPreset("physiotherapy_physical_health.workshops", "physiotherapy_physical_health", "workshop", "Workshop", "Workshops", "One-off workshops, talks, or practical group sessions."),
43323
- verticalBookingPreset("massage_bodywork.treatments", "massage_bodywork", "appointment", "Treatment", "Treatments", "Massage treatments, bodywork sessions, and one-to-one appointments."),
43324
- verticalBookingPreset("massage_bodywork.group_sessions", "massage_bodywork", "class", "Group session", "Group sessions", "Regular bodywork, somatic movement, or self-massage sessions."),
43325
- verticalBookingPreset("massage_bodywork.workshops", "massage_bodywork", "workshop", "Workshop", "Workshops", "One-off bodywork, self-massage, or somatic practice workshops."),
43326
- verticalBookingPreset("therapist_practitioner.appointments", "therapist_practitioner", "appointment", "Appointment", "Appointments", "Sessions, consultations, treatments, or assessments."),
43327
- verticalBookingPreset("therapist_practitioner.workshops", "therapist_practitioner", "workshop", "Workshop", "Workshops", "One-off group workshops, talks, or wellbeing sessions."),
43328
- verticalBookingPreset("therapist_practitioner.retreats", "therapist_practitioner", "retreat", "Retreat", "Retreats", "Multi-day retreats or immersive group experiences."),
43329
- verticalBookingPreset("beauty_spa.appointments", "beauty_spa", "appointment", "Appointment", "Appointments", "Treatments, consultations, services, and sessions."),
43330
- verticalBookingPreset("beauty_spa.workshops", "beauty_spa", "workshop", "Workshop", "Workshops", "Skincare workshops, makeup lessons, demos, or group events."),
43331
- verticalBookingPreset("consultant_coach.appointments", "consultant_coach", "appointment", "Appointment", "Appointments", "One-to-one calls, consultations, reviews, or coaching sessions."),
43332
- verticalBookingPreset("consultant_coach.workshops", "consultant_coach", "workshop", "Workshop", "Workshops", "One-off group sessions, webinars, or strategy days."),
43333
- verticalBookingPreset("consultant_coach.courses", "consultant_coach", "course", "Course", "Courses", "Fixed-schedule cohorts or multi-session group programmes."),
43334
- verticalBookingPreset("consultant_coach.retreats", "consultant_coach", "retreat", "Retreat", "Retreats", "Multi-day coaching retreats or immersive experiences."),
43335
- verticalBookingPreset("training_provider.courses", "training_provider", "course", "Course", "Courses", "Fixed-schedule courses, cohorts, and multi-session training."),
43336
- verticalBookingPreset("training_provider.workshops", "training_provider", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, and short training sessions."),
43337
- verticalBookingPreset("training_provider.appointments", "training_provider", "appointment", "Appointment", "Appointments", "Consultations, assessments, mentoring, or office hours."),
43338
- verticalBookingPreset("training_provider.classes", "training_provider", "class", "Class", "Classes", "Regular classes, sessions, or groups.", "settings"),
43339
- verticalBookingPreset("training_provider.residentials", "training_provider", "retreat", "Residential", "Residentials", "Residential courses or multi-day training experiences.", "settings"),
43340
- verticalBookingPreset("retreat_centre.retreats", "retreat_centre", "retreat", "Retreat", "Retreats", "Multi-day or residential retreats with richer booking needs."),
43341
- verticalBookingPreset("retreat_centre.workshops", "retreat_centre", "workshop", "Workshop", "Workshops", "One-day retreats, ceremonies, workshops, or special events."),
43342
- verticalBookingPreset("retreat_centre.classes", "retreat_centre", "class", "Class", "Classes", "Regular sessions like guided meditations or group practices."),
43343
- verticalBookingPreset("retreat_centre.courses", "retreat_centre", "course", "Course", "Courses", "Fixed-schedule programmes or multi-session experiences."),
43344
- verticalBookingPreset("retreat_centre.appointments", "retreat_centre", "appointment", "Appointment", "Appointments", "Private sessions, therapies, consultations, or add-ons."),
43345
- verticalBookingPreset("music_school.lessons", "music_school", "appointment", "Lesson", "Lessons", "One-to-one lessons, consultations, or coaching sessions."),
43346
- verticalBookingPreset("music_school.classes", "music_school", "class", "Class", "Classes", "Regular group classes, ensembles, or recurring sessions."),
43347
- verticalBookingPreset("music_school.terms", "music_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date group courses."),
43348
- verticalBookingPreset("music_school.workshops", "music_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
43349
- verticalBookingPreset("music_school.performances", "music_school", "performance", "Performance", "Performances", "Concerts, recitals, showcases, or ticketed performances."),
43350
- verticalBookingPreset("voice_singing.lessons", "voice_singing", "appointment", "Voice session", "Voice sessions", "One-to-one singing lessons, voice coaching, or private practice sessions."),
43351
- verticalBookingPreset("voice_singing.classes", "voice_singing", "class", "Ongoing weekly session", "Ongoing weekly sessions", "Regular choirs, voice circles, community singing, or group practice."),
43352
- verticalBookingPreset("voice_singing.terms", "voice_singing", "course", "Singing term", "Singing terms", "Multi-week choir terms, voice courses, or fixed-date group programmes."),
43353
- verticalBookingPreset("voice_singing.workshops", "voice_singing", "workshop", "Workshop", "Workshops", "One-off singing workshops, voice journeys, or devotional singing sessions."),
43354
- verticalBookingPreset("voice_singing.performances", "voice_singing", "performance", "Performance", "Performances", "Choir concerts, sharing events, recitals, or community performances."),
43355
- verticalBookingPreset("performing_arts_school.classes", "performing_arts_school", "class", "Class", "Classes", "Regular group classes, rehearsals, or weekly sessions."),
43356
- verticalBookingPreset("performing_arts_school.terms", "performing_arts_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date course groups."),
43357
- verticalBookingPreset("performing_arts_school.workshops", "performing_arts_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
43358
- verticalBookingPreset("performing_arts_school.performances", "performing_arts_school", "performance", "Performance", "Performances", "Shows, showcases, productions, or ticketed performances."),
43359
- verticalBookingPreset("performing_arts_school.lessons", "performing_arts_school", "appointment", "Lesson", "Lessons", "One-to-one lessons, coaching, or audition prep."),
43360
- verticalBookingPreset("community_wellbeing.classes", "community_wellbeing", "class", "Class", "Classes", "Regular groups, sessions, practices, or weekly activities."),
43361
- verticalBookingPreset("community_wellbeing.workshops", "community_wellbeing", "workshop", "Workshop", "Workshops", "One-off workshops, talks, events, or gatherings."),
43362
- verticalBookingPreset("community_wellbeing.courses", "community_wellbeing", "course", "Course", "Courses", "Fixed-schedule courses, study groups, or multi-session programmes."),
43363
- verticalBookingPreset("community_wellbeing.appointments", "community_wellbeing", "appointment", "Appointment", "Appointments", "One-to-one appointments, consultations, or support sessions."),
43364
- verticalBookingPreset("community_wellbeing.retreats", "community_wellbeing", "retreat", "Retreat", "Retreats", "Multi-day or residential retreats."),
43365
- verticalBookingPreset("venue_event_space.resource_hire", "venue_event_space", "appointment", "Hire slot", "Hire slots", "Future room, venue, and resource hire bookings.", "future")
43366
- ];
43367
- }));
43368
- //#endregion
43369
44445
  //#region ../api/src/bookingVerticals.ts
43370
- function parseVerticalId(value) {
43371
- return typeof value === "string" && VERTICAL_ID_SET.has(value) ? value : null;
43372
- }
43373
- function parseVerticalPresetId(value) {
43374
- return typeof value === "string" && VERTICAL_PRESET_ID_SET.has(value) ? value : null;
43375
- }
43376
- function getVerticalPresetDefinition(presetId) {
43377
- const definition = VERTICAL_BOOKING_PRESETS.find((presetDefinition) => presetDefinition.id === presetId);
43378
- if (!definition) throw new Error(`Unhandled vertical preset id: ${presetId}`);
43379
- return definition;
43380
- }
43381
- function toNonEmptyVerticalPresetIds(presetIds) {
43382
- const firstPresetId = presetIds[0];
43383
- return firstPresetId ? [firstPresetId, ...presetIds.slice(1)] : null;
43384
- }
43385
- function createConfiguredSiteVerticalBookingConfig(verticalId, selectedPresetIds) {
43386
- return {
43387
- verticalId,
43388
- selectedPresetIds
43389
- };
43390
- }
43391
- function createSiteVerticalBookingConfig(verticalId, selectedPresetIds) {
43392
- const nonEmptyPresetIds = toNonEmptyVerticalPresetIds(selectedPresetIds);
43393
- return nonEmptyPresetIds ? createConfiguredSiteVerticalBookingConfig(verticalId, nonEmptyPresetIds) : null;
43394
- }
43395
- function resolveSiteVerticalBookingConfig(rawConfig) {
43396
- if (!rawConfig) return {
43397
- kind: "unconfigured",
43398
- config: DEFAULT_SITE_VERTICAL_BOOKING_CONFIG
43399
- };
43400
- const verticalId = parseVerticalId(rawConfig.verticalId);
43401
- const selectedPresetIds = (Array.isArray(rawConfig.selectedPresetIds) ? rawConfig.selectedPresetIds : []).map(parseVerticalPresetId).filter((presetId) => Boolean(presetId));
43402
- const config = {
43403
- verticalId,
43404
- selectedPresetIds
43405
- };
43406
- if (!verticalId && selectedPresetIds.length === 0) return {
43407
- kind: "unconfigured",
43408
- config: DEFAULT_SITE_VERTICAL_BOOKING_CONFIG
43409
- };
43410
- const issues = getSiteVerticalConfigIssues(rawConfig, config);
43411
- if (issues.length > 0) return {
43412
- kind: "invalid",
43413
- config,
43414
- issues
43415
- };
43416
- const configuredConfig = verticalId ? createSiteVerticalBookingConfig(verticalId, selectedPresetIds) : null;
43417
- if (!configuredConfig) return {
43418
- kind: "invalid",
43419
- config,
43420
- issues: ["empty_selected_presets"]
43421
- };
43422
- return {
43423
- kind: "configured",
43424
- config: configuredConfig,
43425
- selectedPresets: configuredConfig.selectedPresetIds.map(getVerticalPresetDefinition)
43426
- };
43427
- }
43428
- function getSiteVerticalConfigIssues(rawConfig, config) {
43429
- const issues = /* @__PURE__ */ new Set();
43430
- if (rawConfig.verticalId != null && !config.verticalId) issues.add("unknown_vertical");
43431
- if (!config.verticalId && config.selectedPresetIds.length > 0) issues.add("missing_vertical");
43432
- if ((Array.isArray(rawConfig.selectedPresetIds) ? rawConfig.selectedPresetIds : []).some((presetId) => parseVerticalPresetId(presetId) === null)) issues.add("unknown_preset");
43433
- if (config.verticalId && config.selectedPresetIds.length === 0) issues.add("empty_selected_presets");
43434
- const seenBehaviours = /* @__PURE__ */ new Set();
43435
- for (const presetId of config.selectedPresetIds) {
43436
- const presetDefinition = getVerticalPresetDefinition(presetId);
43437
- if (config.verticalId && presetDefinition.verticalId !== config.verticalId) issues.add("preset_vertical_mismatch");
43438
- if (presetDefinition.availability === "future") issues.add("future_preset_selected");
43439
- if (seenBehaviours.has(presetDefinition.canonicalBehaviour)) issues.add("duplicate_canonical_behaviour");
43440
- seenBehaviours.add(presetDefinition.canonicalBehaviour);
44446
+ /**
44447
+ * Transport adapters for the booking-vertical domain.
44448
+ *
44449
+ * The domain catalog and all pure resolution/selection rules live in core;
44450
+ * this module owns only the Zod boundary used by API payloads.
44451
+ */
44452
+ function formatRawDiagnosticValue(value) {
44453
+ const serialized = JSON.stringify(value);
44454
+ return serialized === void 0 ? String(value) : serialized;
44455
+ }
44456
+ function describeSiteVerticalConfigIssue(issue) {
44457
+ switch (issue.code) {
44458
+ case "unknown_vertical": return `${issue.code}: ${formatRawDiagnosticValue(issue.rawValue)}`;
44459
+ case "unknown_preset": return `${issue.code}: ${formatRawDiagnosticValue(issue.rawValue)}`;
44460
+ case "missing_vertical":
44461
+ case "empty_selected_presets":
44462
+ case "preset_vertical_mismatch":
44463
+ case "duplicate_preset_id":
44464
+ case "duplicate_canonical_behaviour":
44465
+ case "future_preset_selected": return issue.code;
44466
+ default: return assertNever$3(issue);
43441
44467
  }
43442
- return [...issues];
43443
44468
  }
43444
- var VERTICAL_IDS, VERTICAL_ID_SET, VERTICAL_PRESET_ID_SET, VerticalIdSchema, VerticalPresetIdSchema, DEFAULT_SITE_VERTICAL_BOOKING_CONFIG;
44469
+ var VerticalIdSchema, VerticalPresetIdSchema;
43445
44470
  var init_bookingVerticals = __esmMin((() => {
43446
- init_eventSeriesPresentationPreset();
43447
- init_bookingVerticalCatalog();
43448
- VERTICAL_IDS = [
43449
- "yoga_wellness",
43450
- "fitness_pt",
43451
- "dance_school",
43452
- "physiotherapy_physical_health",
43453
- "massage_bodywork",
43454
- "therapist_practitioner",
43455
- "beauty_spa",
43456
- "consultant_coach",
43457
- "training_provider",
43458
- "retreat_centre",
43459
- "music_school",
43460
- "voice_singing",
43461
- "performing_arts_school",
43462
- "community_wellbeing",
43463
- "venue_event_space"
43464
- ];
43465
- VERTICAL_ID_SET = new Set(VERTICAL_IDS);
43466
- VERTICAL_PRESET_ID_SET = new Set(VERTICAL_BOOKING_PRESETS.map((presetDefinition) => presetDefinition.id));
44471
+ init_src$4();
43467
44472
  VerticalIdSchema = z.string().trim().transform((value, ctx) => {
43468
44473
  const parsed = parseVerticalId(value);
43469
44474
  if (!parsed) {
@@ -43494,16 +44499,12 @@ var init_bookingVerticals = __esmMin((() => {
43494
44499
  if (resolved.kind === "invalid") {
43495
44500
  ctx.addIssue({
43496
44501
  code: z.ZodIssueCode.custom,
43497
- message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
44502
+ message: `Invalid booking vertical config: ${resolved.issues.map(describeSiteVerticalConfigIssue).join(", ")}`
43498
44503
  });
43499
44504
  return z.NEVER;
43500
44505
  }
43501
44506
  return resolved.config;
43502
44507
  });
43503
- DEFAULT_SITE_VERTICAL_BOOKING_CONFIG = {
43504
- verticalId: null,
43505
- selectedPresetIds: []
43506
- };
43507
44508
  }));
43508
44509
  //#endregion
43509
44510
  //#region ../api/src/utils/isRecord.ts
@@ -43969,7 +44970,6 @@ var init_dashboardTeamMemberNav = __esmMin((() => {
43969
44970
  //#endregion
43970
44971
  //#region ../api/src/navigation/dashboardBookingsNav.ts
43971
44972
  var init_dashboardBookingsNav = __esmMin((() => {
43972
- init_bookingVerticals();
43973
44973
  init_staffAccess();
43974
44974
  }));
43975
44975
  var init_identity = __esmMin((() => {}));
@@ -44130,7 +45130,6 @@ var init_src = __esmMin((() => {
44130
45130
  init_bookingRefundOutcomes();
44131
45131
  init_customerMembershipOutcomes();
44132
45132
  init_bookingVerticals();
44133
- init_eventSeriesPresentationPreset();
44134
45133
  init_appointmentSetup();
44135
45134
  init_bookings();
44136
45135
  init_cache_tags();
@@ -44144,7 +45143,6 @@ var init_src = __esmMin((() => {
44144
45143
  init_blocks();
44145
45144
  init_pages();
44146
45145
  init_routes();
44147
- init_eventSeriesPresentationPreset();
44148
45146
  init_bookingRecords();
44149
45147
  init_emailSettings();
44150
45148
  init_eventEmailTemplates();
@@ -45243,7 +46241,7 @@ function isSubrouteSlugSegment(segment) {
45243
46241
  * - others: not subroute-eligible
45244
46242
  */
45245
46243
  function defaultShouldAttemptEntrySubroute(args) {
45246
- if (args.entryTypeKey === "event") return isValidSegment(args.segment);
46244
+ if (args.entryTypeKey === "event") return isValidSegment(args.segment) || isSubrouteSlugSegment(args.segment);
45247
46245
  if (args.entryTypeKey === null) return isValidSegment(args.segment);
45248
46246
  return false;
45249
46247
  }