@riverbankcms/sdk 0.130.2 → 0.132.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 (339) hide show
  1. package/CHANGELOG.md +3 -3
  2. package/dist/{PreviewEditorSidebar-BY-1QdE2.mjs → PreviewEditorSidebar-DKQ5eFK9.mjs} +351 -95
  3. package/dist/{PreviewEditorUI-BS34jI9_.mjs → PreviewEditorUI-CNTcOjCC.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BD0kOjtI.mjs → PreviewQueryProvider-D51gQaG3.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-B1pWnhu-.mjs → SdkPreviewModeRuntime-DJu3qu33.mjs} +48 -9
  6. package/dist/{SiteChromeCustomizeContext-BhUG_72i.mjs → SiteChromeCustomizeContext-2TzT3vbj.mjs} +6417 -4184
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +723 -151
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +151 -64
  9. package/dist/_dts/api/src/bookingConfig.d.ts +13 -9
  10. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +8 -19
  11. package/dist/_dts/api/src/bookingManagementEventEndpointTypes.d.ts +31 -2
  12. package/dist/_dts/api/src/bookingVerticals.d.ts +1 -140
  13. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +45 -12
  14. package/dist/_dts/api/src/contentRuntime.d.ts +2 -1
  15. package/dist/_dts/api/src/courses.d.ts +1 -19
  16. package/dist/_dts/api/src/endpoints.d.ts +466 -346
  17. package/dist/_dts/api/src/event-destination-policy.d.ts +1 -1
  18. package/dist/_dts/api/src/eventManagementContracts.d.ts +91 -1
  19. package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +32 -0
  20. package/dist/_dts/api/src/giftingDashboard.d.ts +117 -0
  21. package/dist/_dts/api/src/giftingEndpointDefinitions.d.ts +124 -0
  22. package/dist/_dts/api/src/index.d.ts +4 -4
  23. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
  24. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  25. package/dist/_dts/api/src/media.d.ts +1 -0
  26. package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +3 -4
  27. package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +11 -0
  28. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +25 -12
  29. package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +2 -0
  30. package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +1 -0
  31. package/dist/_dts/api/src/sdk-event-upsert.d.ts +2 -2
  32. package/dist/_dts/api/src/sdkBookingVerticalContracts.d.ts +29 -0
  33. package/dist/_dts/api/src/sdkContracts.d.ts +9 -32
  34. package/dist/_dts/api/src/sdkEndpointDefinitions.d.ts +23 -0
  35. package/dist/_dts/api/src/sdkSettingsContracts.d.ts +25 -0
  36. package/dist/_dts/api/src/sdkThemeCatalogContracts.d.ts +20 -0
  37. package/dist/_dts/api/src/sdkThemeWire.d.ts +16 -6
  38. package/dist/_dts/api/src/siteOnboarding.d.ts +3 -3
  39. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +4 -10
  40. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +0 -3
  41. package/dist/_dts/api/src/types.d.ts +1 -2
  42. package/dist/_dts/blocks/src/PageRenderer.d.ts +2 -13
  43. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +9 -0
  44. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +26 -44
  45. package/dist/_dts/blocks/src/index.d.ts +1 -1
  46. package/dist/_dts/blocks/src/subroutes/fold.d.ts +2 -1
  47. package/dist/_dts/blocks/src/system/blocks/courses/shared/index.d.ts +0 -3
  48. package/dist/_dts/blocks/src/system/blocks/courses/shared/pricing.d.ts +2 -50
  49. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +1 -929
  50. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +1 -97
  51. package/dist/_dts/blocks/src/system/blocks/event-details.d.ts +39 -6
  52. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +2 -1
  53. package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +3 -3
  54. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -3
  55. package/dist/_dts/blocks/src/system/blocks/events/shared/filtering.d.ts +2 -2
  56. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +6 -6
  57. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +2 -9
  58. package/dist/_dts/blocks/src/system/blocks/events/whole-series/index.d.ts +3 -0
  59. package/dist/_dts/blocks/src/system/blocks/events/whole-series/pricing.d.ts +50 -0
  60. package/dist/_dts/blocks/src/system/blocks/events/whole-series/schemas.d.ts +135 -0
  61. package/dist/_dts/blocks/src/system/blocks/events/whole-series/types.d.ts +81 -0
  62. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +9 -9
  63. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +1 -1
  64. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +7 -8
  65. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  66. package/dist/_dts/blocks/src/system/runtime/blockComposition.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +45 -72
  68. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +21 -36
  69. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +6 -6
  70. package/dist/_dts/blocks/src/system/runtime/nodes/course-page-surface-scope.d.ts +2 -5
  71. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.client.d.ts +4 -2
  72. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +19 -7
  73. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +25 -4
  74. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +75 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/view.d.ts +4 -1
  76. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +5 -2
  77. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +5 -2
  78. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentSelectionStep.d.ts +4 -0
  79. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/RegistrationClosedState.d.ts +5 -0
  80. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SiteCreditPreviewPanel.d.ts +6 -0
  81. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +2 -0
  82. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +17 -0
  83. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +3 -3
  84. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/siteCreditPreview.d.ts +51 -0
  85. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +3 -3
  86. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -0
  87. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/BookingModeStep.d.ts +1 -1
  88. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/CheckIcon.d.ts +1 -1
  89. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/ErrorStep.d.ts +1 -1
  90. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/MembershipHero.d.ts +3 -3
  91. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/PaymentFailedStep.d.ts +1 -1
  92. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/StepIndicator.d.ts +6 -0
  93. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/VerifyingTimeoutStep.d.ts +1 -1
  94. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/WholeSeriesRegistrationActiveSteps.d.ts +9 -0
  95. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration/CourseRegistrationErrorBoundary.d.ts → event-registration/whole-series/WholeSeriesRegistrationErrorBoundary.d.ts} +5 -2
  96. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/WholeSeriesRegistrationTerminalContent.d.ts +8 -0
  97. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/WholeSeriesRegistrationWizard.d.ts +8 -0
  98. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/components.d.ts +45 -0
  99. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/index.d.ts +4 -4
  100. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/presentation.d.ts +7 -0
  101. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/pricing.d.ts +14 -0
  102. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/types.d.ts +18 -16
  103. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration/useCourseEligibility.d.ts → event-registration/whole-series/useWholeSeriesEligibility.d.ts} +6 -6
  104. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesPaymentVerification.d.ts +10 -0
  105. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesRegistrationActions.d.ts +35 -0
  106. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration/useCourseRegistrationPortal.d.ts → event-registration/whole-series/useWholeSeriesRegistrationPortal.d.ts} +2 -2
  107. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesRegistrationSelection.d.ts +35 -0
  108. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesRegistrationWizard.d.ts +185 -0
  109. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration/useCourseWaitlistSelection.d.ts → event-registration/whole-series/useWholeSeriesWaitlistSelection.d.ts} +5 -5
  110. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/utils.d.ts +4 -4
  111. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/whole-series-registration.headless.contract.d.ts +5 -7
  112. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/whole-series-registration.headless.planning.d.ts +2 -2
  113. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/wholeSeriesPageSurfaceScope.d.ts +17 -0
  114. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration/courseRegistrationViewState.d.ts → event-registration/whole-series/wholeSeriesRegistrationViewState.d.ts} +7 -7
  115. package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/wizardSteps.d.ts +4 -4
  116. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +24 -54
  117. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -0
  118. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +3 -0
  119. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +12 -11
  120. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.server.d.ts +3 -2
  121. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventSpotlight.d.ts +3 -2
  122. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +3 -2
  123. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventDetailModal.d.ts +4 -3
  124. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModalCloseButton.d.ts +7 -0
  125. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +4 -3
  126. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +14 -0
  127. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +19 -4
  128. package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.d.ts +1 -1
  129. package/dist/_dts/blocks/src/system/runtime/shared/components/DiscountCodeDisclosure.d.ts +12 -12
  130. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +1 -0
  131. package/dist/_dts/blocks/src/system/transforms/registry/_utils/boxStyleClassNames.d.ts +30 -11
  132. package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +15 -4
  133. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +1 -0
  134. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -4
  135. package/dist/_dts/commerce/src/purchase/bookingInstalmentSchedule.d.ts +13 -0
  136. package/dist/_dts/commerce/src/purchase/cancellationPolicy.d.ts +7 -0
  137. package/dist/_dts/commerce/src/purchase/canonicalRefundPlanner.d.ts +48 -0
  138. package/dist/_dts/commerce/src/purchase/checkoutCollectionPlan.d.ts +39 -0
  139. package/dist/_dts/commerce/src/purchase/checkoutCommitPlan.d.ts +40 -0
  140. package/dist/_dts/commerce/src/purchase/checkoutDiscountContextPlanning.d.ts +80 -0
  141. package/dist/_dts/commerce/src/purchase/checkoutErrorCodes.d.ts +1 -0
  142. package/dist/_dts/commerce/src/purchase/checkoutOrderItemProjection.d.ts +22 -0
  143. package/dist/_dts/commerce/src/purchase/checkoutPaymentFlow.d.ts +50 -0
  144. package/dist/_dts/commerce/src/purchase/checkoutPaymentPlanPlanning.d.ts +30 -0
  145. package/dist/_dts/commerce/src/purchase/checkoutPaymentTermPlanning.d.ts +10 -0
  146. package/dist/_dts/commerce/src/purchase/checkoutPaymentTerms.d.ts +53 -0
  147. package/dist/_dts/commerce/src/purchase/checkoutQuantity.d.ts +8 -0
  148. package/dist/_dts/commerce/src/purchase/checkoutSessionMetadata.d.ts +76 -0
  149. package/dist/_dts/commerce/src/purchase/checkoutSettlement.d.ts +46 -0
  150. package/dist/_dts/commerce/src/purchase/checkoutStripeFinalizationPlanning.d.ts +12 -0
  151. package/dist/_dts/commerce/src/purchase/checkoutStripeSessionPlanning.d.ts +125 -0
  152. package/dist/_dts/commerce/src/purchase/checkoutValidatedItemPlanning.d.ts +55 -0
  153. package/dist/_dts/commerce/src/purchase/confirmationEmailPayment.d.ts +91 -0
  154. package/dist/_dts/commerce/src/purchase/discountApplication.d.ts +74 -0
  155. package/dist/_dts/commerce/src/purchase/index.d.ts +55 -0
  156. package/dist/_dts/commerce/src/purchase/oneTimeCheckoutPlanning.d.ts +86 -0
  157. package/dist/_dts/commerce/src/purchase/order-number.d.ts +33 -0
  158. package/dist/_dts/commerce/src/purchase/orderCancellationPlan.d.ts +19 -0
  159. package/dist/_dts/commerce/src/purchase/orderCompletionEmailPlan.d.ts +71 -0
  160. package/dist/_dts/commerce/src/purchase/orderConfirmationPlanning.d.ts +120 -0
  161. package/dist/_dts/commerce/src/purchase/orderFulfillmentPlan.d.ts +81 -0
  162. package/dist/_dts/commerce/src/purchase/orderFulfillmentResult.d.ts +8 -0
  163. package/dist/_dts/commerce/src/purchase/orderHistoryLedgerFilters.d.ts +1 -0
  164. package/dist/_dts/commerce/src/purchase/orderHistorySource.d.ts +11 -0
  165. package/dist/_dts/commerce/src/purchase/orderInstalmentAdminSettlement.d.ts +43 -0
  166. package/dist/_dts/commerce/src/purchase/orderInstalmentClosure.d.ts +29 -0
  167. package/dist/_dts/commerce/src/purchase/orderInstalmentLifecycle.d.ts +44 -0
  168. package/dist/_dts/commerce/src/purchase/orderInstalmentPayoff.d.ts +24 -0
  169. package/dist/_dts/commerce/src/purchase/orderInstalmentPlan.d.ts +40 -0
  170. package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +151 -0
  171. package/dist/_dts/commerce/src/purchase/orderItemSupport.d.ts +14 -0
  172. package/dist/_dts/commerce/src/purchase/orderListFilters.d.ts +3 -0
  173. package/dist/_dts/commerce/src/purchase/orderPaymentLinkPlanning.d.ts +60 -0
  174. package/dist/_dts/commerce/src/purchase/orderPaymentReceipt.d.ts +184 -0
  175. package/dist/_dts/commerce/src/purchase/orderPaymentState.d.ts +135 -0
  176. package/dist/_dts/commerce/src/purchase/orderPlanningTypes.d.ts +102 -0
  177. package/dist/_dts/commerce/src/purchase/orderRefundPlanning.d.ts +50 -0
  178. package/dist/_dts/commerce/src/purchase/orderRefundPolicy.d.ts +36 -0
  179. package/dist/_dts/commerce/src/purchase/orderTotals.d.ts +23 -0
  180. package/dist/_dts/commerce/src/purchase/orderTypes.d.ts +39 -0
  181. package/dist/_dts/commerce/src/purchase/pendingCheckoutSessionClaim.d.ts +1 -0
  182. package/dist/_dts/commerce/src/purchase/persistedCheckoutLines.d.ts +27 -0
  183. package/dist/_dts/commerce/src/purchase/protectedDepositRefundPolicy.d.ts +86 -0
  184. package/dist/_dts/commerce/src/purchase/refundPolicy.d.ts +8 -0
  185. package/dist/_dts/commerce/src/purchase/refundRailSplit.d.ts +40 -0
  186. package/dist/_dts/commerce/src/purchase/result.d.ts +2 -0
  187. package/dist/_dts/commerce/src/purchase/settlement.d.ts +97 -0
  188. package/dist/_dts/commerce/src/purchase/shopRefundPlanning.d.ts +43 -0
  189. package/dist/_dts/commerce/src/purchase/stateTransitions.d.ts +31 -0
  190. package/dist/_dts/commerce/src/purchase/stripeMinimumCharge.d.ts +10 -0
  191. package/dist/_dts/commerce/src/purchase/types.d.ts +168 -0
  192. package/dist/_dts/commerce/src/shop/shipmentEligibility.d.ts +14 -0
  193. package/dist/_dts/commerce/src/utils/assertNever.d.ts +1 -0
  194. package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +4 -0
  195. package/dist/_dts/content-model/src/content-types/builtins.d.ts +4 -0
  196. package/dist/_dts/core/src/booking-vertical-catalog.d.ts +741 -0
  197. package/dist/_dts/core/src/booking-vertical-config.d.ts +66 -0
  198. package/dist/_dts/core/src/booking-vertical-definitions.d.ts +68 -0
  199. package/dist/_dts/{api/src/bookingVerticalPreset.d.ts → core/src/booking-vertical-preset.d.ts} +1 -1
  200. package/dist/_dts/core/src/booking-verticals.d.ts +98 -0
  201. package/dist/_dts/core/src/event-page-selection.d.ts +22 -0
  202. package/dist/_dts/core/src/event-pricing.d.ts +5 -0
  203. package/dist/_dts/core/src/event-series-behaviour.d.ts +16 -0
  204. package/dist/_dts/core/src/index.d.ts +3 -0
  205. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +72 -0
  206. package/dist/_dts/db/src/schemas/forms.d.ts +4 -4
  207. package/dist/_dts/media-core/src/fileUploadCompletion.d.ts +3 -0
  208. package/dist/_dts/media-core/src/fileUploadDurableFinalization.d.ts +2 -0
  209. package/dist/_dts/media-core/src/identifiers.d.ts +10 -0
  210. package/dist/_dts/media-core/src/mediaWriteNormalizer.d.ts +2 -6
  211. package/dist/_dts/media-core/src/types.d.ts +2 -1
  212. package/dist/_dts/media-editor/src/index.d.ts +2 -2
  213. package/dist/_dts/media-editor/src/mediaSelection.d.ts +1 -22
  214. package/dist/_dts/media-editor/src/useMediaSelection.d.ts +0 -9
  215. package/dist/_dts/preview-next/src/client/preview/ButtonHoverRoleControls.d.ts +10 -0
  216. package/dist/_dts/preview-next/src/client/preview/ButtonStylePicker.d.ts +3 -2
  217. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +3 -1
  218. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -1
  219. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -1
  220. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +3 -1
  221. package/dist/_dts/preview-next/src/client/preview/StyleConfiguratorWarningNotice.d.ts +7 -0
  222. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +1 -1
  223. package/dist/_dts/sdk/src/client/eventSubrouteReadOperations.d.ts +11 -0
  224. package/dist/_dts/sdk/src/client/types.d.ts +12 -5
  225. package/dist/_dts/sdk/src/components.d.ts +1 -1
  226. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  227. package/dist/_dts/sdk/src/contracts/page.d.ts +2 -13
  228. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -16
  229. package/dist/_dts/sdk/src/next/pageMetadataProjection.d.ts +7 -0
  230. package/dist/_dts/sdk/src/next/resolveEventPageSubroute.d.ts +12 -0
  231. package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -19
  232. package/dist/_dts/sdk/src/public-api/eventSubrouteContracts.d.ts +12 -0
  233. package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
  234. package/dist/_dts/sdk/src/rendering/client.d.ts +44 -0
  235. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
  236. package/dist/_dts/sdk/src/routing/entrySubroutes.d.ts +1 -1
  237. package/dist/_dts/sdk/src/routing/resolveOccurrence.d.ts +4 -3
  238. package/dist/_dts/sdk/src/routing/resolvePageContent.d.ts +7 -3
  239. package/dist/_dts/sdk/src/version.d.ts +1 -1
  240. package/dist/_dts/theme-core/src/buttons/buttonSurfaceContext.d.ts +1 -1
  241. package/dist/_dts/theme-core/src/buttons/contextualHover.d.ts +41 -0
  242. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
  243. package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +3 -0
  244. package/dist/_dts/theme-core/src/buttons/resolveButtonHoverTreatment.d.ts +14 -0
  245. package/dist/_dts/theme-core/src/buttons/styles/domain.d.ts +21 -4
  246. package/dist/_dts/theme-core/src/buttons/styles/recipes/flatInk.d.ts +92 -0
  247. package/dist/_dts/theme-core/src/buttons/styles/recipes/staticRecipes.d.ts +10 -150
  248. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +57 -102
  249. package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +50 -2
  250. package/dist/_dts/theme-core/src/buttons/types.d.ts +29 -0
  251. package/dist/_dts/theme-core/src/cards/types.d.ts +3 -25
  252. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  253. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +21 -6
  254. package/dist/_dts/theme-core/src/schema.d.ts +21 -33
  255. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +27 -0
  256. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +27 -0
  257. package/dist/_dts/theme-core/src/site-styles/buttonSelectionCompiler.d.ts +18 -0
  258. package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +21 -0
  259. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +2 -11
  260. package/dist/_dts/theme-core/src/site-styles/selectionFallbackWarning.d.ts +15 -0
  261. package/dist/_dts/theme-core/src/site-styles/types.d.ts +13 -1
  262. package/dist/_dts/ui/src/navigation-tabs.d.ts +2 -0
  263. package/dist/client/{DiscountCodeDisclosure-BPZ-yfGI.mjs → DiscountCodeDisclosure-DO7llLxm.mjs} +12 -12
  264. package/dist/client/{EventCombined.client-Cjt3kKYR.mjs → EventCombined.client-xID7zN__.mjs} +36 -48
  265. package/dist/client/{EventListing.client-DY9dn6Fh.mjs → EventListing.client-CriBslp0.mjs} +2 -2
  266. package/dist/client/{LeafletStaticMap--2c61XYn.mjs → LeafletStaticMap-DYmHnM8g.mjs} +1 -1
  267. package/dist/client/{StepIndicator-CLjQhkDb.mjs → StepIndicator-CGixP_LW.mjs} +2 -2
  268. package/dist/client/{CourseRegistrationWizard-DGW9F0SQ.mjs → WholeSeriesRegistrationWizard-BEjzSiOA.mjs} +1408 -1245
  269. package/dist/client/{accordion-_boYwHHi.mjs → accordion-CgFbnnnQ.mjs} +1 -1
  270. package/dist/client/{bookingForm--AqEfyBX.mjs → bookingForm-dUyGpbxc.mjs} +5 -5
  271. package/dist/client/bookings.mjs +635 -471
  272. package/dist/client/{carousel-CVI2dqZr.mjs → carousel-BvBwkUzx.mjs} +1 -1
  273. package/dist/client/{cart-DR6IiPz9.mjs → cart-DiZENT2E.mjs} +3 -3
  274. package/dist/client/{checkout-CsrGAfQt.mjs → checkout-Dq13KIgR.mjs} +3 -3
  275. package/dist/client/client.mjs +6291 -3452
  276. package/dist/client/{courseRegistration-aNJVaLa3.mjs → courseRegistration-CKC5NmyH.mjs} +10 -4
  277. package/dist/client/{eventCalendar-OZ7h59VN.mjs → eventCalendar-BF0Jatfw.mjs} +40 -43
  278. package/dist/client/{eventCombined-BbJ6bFKz.mjs → eventCombined-BuoCF8je.mjs} +2 -2
  279. package/dist/client/{eventDetails-BLyUBiCT.mjs → eventDetails-CKwh0S9s.mjs} +276 -94
  280. package/dist/client/{eventListing-DuP1yhBS.mjs → eventListing-eUxaWFaB.mjs} +2 -2
  281. package/dist/client/{eventRegistration-BXyECPa-.mjs → eventRegistration-CfkNOkPb.mjs} +625 -132
  282. package/dist/client/{form-BA4t3kKU.mjs → form-C17H1c_H.mjs} +1 -1
  283. package/dist/client/{headerSection-CpNaJxhW.mjs → headerSection-DEwUmrtt.mjs} +2 -2
  284. package/dist/client/hooks.mjs +1312 -481
  285. package/dist/client/{locationMap-3HGMCL7_.mjs → locationMap-Pf2QwuvW.mjs} +2 -2
  286. package/dist/client/{newsletterForm-C2s6Mw67.mjs → newsletterForm-BWQAH5Sv.mjs} +1 -1
  287. package/dist/client/pricing-CVdvbopJ.mjs +195 -0
  288. package/dist/client/{productDetail-C9joWhdE.mjs → productDetail-BZi1Fa_G.mjs} +3 -3
  289. package/dist/client/{productList-CjzdU3pB.mjs → productList-qq-55DNk.mjs} +3 -3
  290. package/dist/client/{propsDecoder-CBPGXEYX.mjs → propsDecoder-BxmqPKdP.mjs} +412 -196
  291. package/dist/client/rendering/client.mjs +5685 -4037
  292. package/dist/client/rendering/islands.mjs +18 -18
  293. package/dist/client/rendering.mjs +7006 -4124
  294. package/dist/client/{scrollToBlock-DZ73aEX6.mjs → scrollToBlock-B3CcKdtG.mjs} +1 -1
  295. package/dist/client/{shop-CQRai7hj.mjs → shop-DNWJPut5.mjs} +5 -5
  296. package/dist/client/{shop-commerce-hP9UboOx.mjs → shop-commerce-BhvQCosS.mjs} +4 -4
  297. package/dist/client/{shop-commerce-store-DiD5a32e.mjs → shop-commerce-store-B04sCNnW.mjs} +1 -1
  298. package/dist/client/{shopShared-DP8DXTkF.mjs → shopShared-DNNgZlmW.mjs} +2 -2
  299. package/dist/client/{useEventFilters-pF_OJNQP.mjs → useEventFilters-CUmhE24_.mjs} +195 -6
  300. package/dist/client/{usePolling-Cls91SD2.mjs → usePolling-M5jG675x.mjs} +3 -3
  301. package/dist/preview-next/before-render.mjs +247 -60
  302. package/dist/preview-next/client/runtime.mjs +4 -4
  303. package/dist/preview-next/keepAlive.mjs +247 -60
  304. package/dist/preview-next/middleware.mjs +247 -60
  305. package/dist/{previewAuthStore-CX1C_KJ4.mjs → previewAuthStore-BFKd4LrN.mjs} +247 -60
  306. package/dist/{sdk-runtime-5CcPAI14.mjs → sdk-runtime-BEXb1wqo.mjs} +2 -2
  307. package/dist/{separator-BXlYN_gr.mjs → separator-DGMuip1D.mjs} +1 -1
  308. package/dist/server/components.mjs +3461 -1577
  309. package/dist/server/config-validation.mjs +1312 -482
  310. package/dist/server/config.mjs +1312 -482
  311. package/dist/server/data.mjs +1312 -481
  312. package/dist/server/index.mjs +289 -81
  313. package/dist/server/manifest.mjs +0 -1
  314. package/dist/server/next.mjs +3576 -1689
  315. package/dist/server/page-converter.mjs +797 -250
  316. package/dist/server/prebuild.mjs +1 -1
  317. package/dist/server/rendering/server.mjs +3461 -1576
  318. package/dist/server/rendering.mjs +3461 -1577
  319. package/dist/server/routing.mjs +1555 -616
  320. package/dist/server/server.mjs +1352 -560
  321. package/dist/server/theme-bridge.mjs +1992 -931
  322. package/dist/server/theme.mjs +346 -133
  323. package/dist/styles/index.css +1602 -796
  324. package/package.json +1 -1
  325. package/dist/_dts/api/src/bookingVerticalCatalog.d.ts +0 -746
  326. package/dist/_dts/api/src/eventSeriesPresentationPreset.d.ts +0 -12
  327. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/CourseRegistrationWizard.d.ts +0 -3
  328. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/StepIndicator.d.ts +0 -6
  329. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/components.d.ts +0 -45
  330. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/pricing.d.ts +0 -14
  331. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCoursePaymentVerification.d.ts +0 -9
  332. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationActions.d.ts +0 -35
  333. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationSelection.d.ts +0 -31
  334. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +0 -102
  335. package/dist/client/eventProductEligibility-AVxyCB1u.mjs +0 -50
  336. package/dist/client/pricing-BiqIMgZk.mjs +0 -174
  337. /package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/PortalAuthSidebar.d.ts +0 -0
  338. /package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/SuccessStep.d.ts +0 -0
  339. /package/dist/_dts/blocks/src/system/runtime/nodes/{course-registration → event-registration/whole-series}/WaitlistStep.d.ts +0 -0
@@ -115,6 +115,7 @@ function formatCoursePriceDisplayLabel(display, options) {
115
115
  case "exact": return `Course (${formatCurrencyAmount(display.amount, display.currency, options)})`;
116
116
  case "from": return `Course (From ${formatCurrencyAmount(display.amount, display.currency, options)})`;
117
117
  case "range": return `Course (${formatCurrencyAmount(display.minAmount, display.currency, options)} - ${formatCurrencyAmount(display.maxAmount, display.currency, options)})`;
118
+ case "mixed": return display.paidToAmount > display.paidFromAmount ? `Course (Free / ${formatCurrencyAmount(display.paidFromAmount, display.currency, options)} - ${formatCurrencyAmount(display.paidToAmount, display.currency, options)})` : `Course (Free / ${formatCurrencyAmount(display.paidFromAmount, display.currency, options)})`;
118
119
  default: return assertNever$2(display);
119
120
  }
120
121
  }
@@ -485,6 +486,16 @@ function parseNewsletterSignupDestinationProvider(value) {
485
486
  return value === "riverbank" || value === "mailchimp" ? value : null;
486
487
  }
487
488
  //#endregion
489
+ //#region ../core/src/event-series-behaviour.ts
490
+ const SURFACE_EVENT_PRESET_VALUES = [
491
+ "class",
492
+ "course",
493
+ "term",
494
+ "workshop",
495
+ "retreat",
496
+ "performance"
497
+ ];
498
+ //#endregion
488
499
  //#region ../blocks/src/contracts/runtime.ts
489
500
  function decodeSuccess(value) {
490
501
  return {
@@ -1391,19 +1402,13 @@ const bookingFormInteractiveIslandPropsCodec = createInteractiveIslandCodec({
1391
1402
  })
1392
1403
  });
1393
1404
  //#endregion
1394
- //#region ../blocks/src/system/blocks/courses/shared/schemas.ts
1395
- /**
1396
- * Zod schema for course venue data
1397
- */
1398
- const courseVenueSchema = z.object({
1405
+ //#region ../blocks/src/system/blocks/events/whole-series/schemas.ts
1406
+ const wholeSeriesVenueSchema = z.object({
1399
1407
  id: z.string(),
1400
1408
  name: z.string(),
1401
1409
  address: z.string().nullable()
1402
1410
  });
1403
- /**
1404
- * Zod schema for course session (occurrence) data
1405
- */
1406
- const courseSessionSchema = z.object({
1411
+ const wholeSeriesSessionSchema = z.object({
1407
1412
  id: z.string(),
1408
1413
  startsAt: z.string(),
1409
1414
  endsAt: z.string(),
@@ -1411,14 +1416,14 @@ const courseSessionSchema = z.object({
1411
1416
  capacityOverride: z.number().nullable().optional(),
1412
1417
  overrides: z.record(z.string(), z.unknown()).nullable().optional()
1413
1418
  });
1414
- const courseTeamMemberSummarySchema = z.object({
1419
+ const wholeSeriesTeamMemberSummarySchema = z.object({
1415
1420
  id: z.string(),
1416
1421
  name: z.string(),
1417
1422
  roleLabel: z.string().nullable(),
1418
1423
  summary: z.string().nullable(),
1419
1424
  profilePath: z.string().nullable()
1420
1425
  });
1421
- const coursePricingOptionSchema = z.object({
1426
+ const wholeSeriesPricingOptionSchema = z.object({
1422
1427
  id: z.string(),
1423
1428
  name: z.string(),
1424
1429
  description: z.string().nullable(),
@@ -1434,7 +1439,7 @@ const coursePricingOptionSchema = z.object({
1434
1439
  "both"
1435
1440
  ]).nullable().optional()
1436
1441
  });
1437
- const coursePricingSchema = z.object({
1442
+ const wholeSeriesPricingSchema = z.object({
1438
1443
  bookingRequirement: z.enum(["none", "required"]),
1439
1444
  pricingStrategy: z.enum([
1440
1445
  "free",
@@ -1448,20 +1453,17 @@ const coursePricingSchema = z.object({
1448
1453
  slidingMaxAmount: z.number().nullable().optional(),
1449
1454
  slidingSuggestedAmount: z.number().nullable().optional(),
1450
1455
  paymentTerms: blockBookingPaymentTermsSchema,
1451
- options: z.array(coursePricingOptionSchema)
1456
+ options: z.array(wholeSeriesPricingOptionSchema)
1452
1457
  });
1453
- /**
1454
- * Zod schema for public course data
1455
- */
1456
1458
  const publicWholeSeriesOfferingSchema = z.object({
1457
1459
  eventSeriesId: z.string(),
1458
1460
  eventOfferingId: z.string(),
1459
1461
  title: z.string(),
1460
1462
  slug: z.string(),
1461
1463
  description: z.unknown().nullable(),
1462
- teamMembers: z.array(courseTeamMemberSummarySchema).optional(),
1464
+ teamMembers: z.array(wholeSeriesTeamMemberSummarySchema).optional(),
1463
1465
  enrollmentOpen: z.boolean(),
1464
- pricing: coursePricingSchema,
1466
+ pricing: wholeSeriesPricingSchema,
1465
1467
  currency: z.string(),
1466
1468
  paymentTerms: blockBookingPaymentTermsSchema,
1467
1469
  enrollmentCapacity: z.number().nullable(),
@@ -1474,12 +1476,10 @@ const publicWholeSeriesOfferingSchema = z.object({
1474
1476
  sessionsCount: z.number(),
1475
1477
  enrolledCount: z.number(),
1476
1478
  availableSpots: z.number().nullable(),
1477
- sessions: z.array(courseSessionSchema),
1478
- venue: courseVenueSchema.nullable()
1479
+ sessions: z.array(wholeSeriesSessionSchema),
1480
+ venue: wholeSeriesVenueSchema.nullable()
1479
1481
  });
1480
- /** Deployed course blocks retain this schema alias for stored content. */
1481
- const publicCourseSchema = publicWholeSeriesOfferingSchema;
1482
- const publicCoursesArraySchema = z.array(publicWholeSeriesOfferingSchema);
1482
+ const publicWholeSeriesOfferingsArraySchema = z.array(publicWholeSeriesOfferingSchema);
1483
1483
  //#endregion
1484
1484
  //#region ../blocks/src/system/constants/events.ts
1485
1485
  const eventCalendarDisplayModeValues = [
@@ -1531,6 +1531,12 @@ const opaqueButtonColourTokenSchema = themeColorTokenSchema.refine((value) => pa
1531
1531
  if (token === null) throw new Error("Invariant: opaque button token passed its schema");
1532
1532
  return token;
1533
1533
  });
1534
+ const contextualButtonHoverSchema = z.strictObject({
1535
+ kind: z.literal("shade-shift"),
1536
+ seedToken: opaqueButtonColourTokenSchema,
1537
+ fallbackDirection: z.enum(["lighter", "darker"]),
1538
+ preferredToken: opaqueButtonColourTokenSchema.optional()
1539
+ });
1534
1540
  const buttonShadeAmountSchema = z.number().finite().min(0).max(900).multipleOf(100);
1535
1541
  const buttonShadowIntensitySchema = z.enum([
1536
1542
  "subtle",
@@ -1870,6 +1876,7 @@ const buttonVariantSchema = z.strictObject({
1870
1876
  shadow: variantShadowSchema.optional(),
1871
1877
  border: buttonBorderSchema.optional(),
1872
1878
  hoverBackgroundToken: opaqueButtonColourTokenSchema.optional(),
1879
+ contextualHover: contextualButtonHoverSchema.optional(),
1873
1880
  effects: variantEffectsSchema.optional(),
1874
1881
  sizes: variantSizeOverridesSchema.optional(),
1875
1882
  affordance: buttonVariantAffordanceSchema.optional()
@@ -2017,8 +2024,8 @@ const openCardRoleValue = "open";
2017
2024
  */
2018
2025
  const surfaceCardRoleValues = [...cardVariantRoleValues, openCardRoleValue];
2019
2026
  /**
2020
- * The closed card-role vocabulary Looks and blocks address cards by — this is
2021
- * `BoxStylesCardVariant` widened with `open`, not a parallel enum.
2027
+ * The closed role vocabulary Looks and blocks use for surfaced and boxless
2028
+ * card choices.
2022
2029
  *
2023
2030
  * - `none` — no site-style card surface; the block's own composition and
2024
2031
  * the author's own card fields govern the item. This is *not*
@@ -2030,11 +2037,6 @@ const surfaceCardRoleValues = [...cardVariantRoleValues, openCardRoleValue];
2030
2037
  * - `alternative` — the statement card carrying the site's personality
2031
2038
  */
2032
2039
  const cardRoleValues = [...surfaceCardRoleValues, boxlessCardVariantValue];
2033
- const legacyCardVariantRoleAliases = {
2034
- variant1: "alternative",
2035
- variant2: "alternative",
2036
- statement: "alternative"
2037
- };
2038
2040
  const cardSpacingSchema = z.enum([
2039
2041
  "none",
2040
2042
  "compact",
@@ -2064,21 +2066,20 @@ const gradientDirectionSchema = z.enum([
2064
2066
  "to-br",
2065
2067
  "to-bl"
2066
2068
  ]);
2067
- const cardVariantRoleSchema = z.enum(cardVariantRoleValues);
2069
+ z.enum(cardVariantRoleValues);
2068
2070
  const surfaceCardRoleSchema = z.enum(surfaceCardRoleValues);
2069
2071
  const cardRoleSchema = z.enum(cardRoleValues);
2070
- /**
2071
- * Historical name for the role vocabulary as it reaches box styles. Widened to
2072
- * the full `CardRole` set — old values keep parsing, `open` now parses too.
2073
- */
2074
- const boxStylesCardVariantSchema = cardRoleSchema;
2075
2072
  function isCardVariantRole(value) {
2076
2073
  return typeof value === "string" && cardVariantRoleValues.includes(value);
2077
2074
  }
2078
2075
  function normalizeCardVariantRole(value) {
2079
- if (isCardVariantRole(value)) return value;
2080
- if (typeof value !== "string") return null;
2081
- return legacyCardVariantRoleAliases[value] ?? null;
2076
+ return isCardVariantRole(value) ? value : null;
2077
+ }
2078
+ /** The one untrusted-input boundary for the closed role vocabulary. */
2079
+ function normalizeCardRole(value) {
2080
+ if (value === "none") return boxlessCardVariantValue;
2081
+ if (value === "open") return openCardRoleValue;
2082
+ return normalizeCardVariantRole(value);
2082
2083
  }
2083
2084
  const PRIORITY_ROLE_INFERENCE = {
2084
2085
  1: "default",
@@ -3581,8 +3582,7 @@ const cardStylesOverrideSchema = z.object({
3581
3582
  spacing: semanticSpacingSchema.nullable().optional(),
3582
3583
  raised: z.boolean().nullable().optional(),
3583
3584
  rounded: boxRoundedSchema.nullable().optional(),
3584
- role: cardRoleSchema.nullable().optional(),
3585
- cardVariant: boxStylesCardVariantSchema.nullable().optional()
3585
+ role: cardRoleSchema.nullable().optional()
3586
3586
  });
3587
3587
  const blockStyleOverridesSchema = z.object({
3588
3588
  sectionStyles: sectionStylesOverrideSchema.nullable().optional(),
@@ -4211,13 +4211,7 @@ function shadeBackgroundEffect(config) {
4211
4211
  buttonSizeNameSchema.options;
4212
4212
  //#endregion
4213
4213
  //#region ../theme-core/src/buttons/styles/domain.ts
4214
- const PUBLIC_BUTTON_ROLES = [
4215
- "primary",
4216
- "secondary",
4217
- "outline",
4218
- "ghost",
4219
- "accent"
4220
- ];
4214
+ const PUBLIC_BUTTON_ROLES = VARIANT_ROLES;
4221
4215
  function defineButtonStyleRecipe(recipe) {
4222
4216
  return recipe;
4223
4217
  }
@@ -4313,6 +4307,14 @@ const BUTTON_STYLE_IDS = [
4313
4307
  "quiet-arrow"
4314
4308
  ];
4315
4309
  const quietArrowParametersSchema = z.object({ secondaryTreatment: z.enum(["outlined", "solid-accent"]) }).strict();
4310
+ const flatInkHoverTreatmentSchema = z.enum([
4311
+ "contextual",
4312
+ "secondary",
4313
+ "accent"
4314
+ ]);
4315
+ const flatInkHoverPreferencesShape = Object.fromEntries(VARIANT_ROLES.map((role) => [role, flatInkHoverTreatmentSchema.optional()]));
4316
+ const flatInkHoverPreferencesSchema = z.strictObject(flatInkHoverPreferencesShape);
4317
+ const flatInkParametersSchema = z.strictObject({ hoverPreferences: flatInkHoverPreferencesSchema.optional() });
4316
4318
  const emptyParametersSchema$1 = z.object({}).strict();
4317
4319
  function selectionBranch(styleId, parameters) {
4318
4320
  return z.object({
@@ -4327,7 +4329,7 @@ z.discriminatedUnion("styleId", [
4327
4329
  selectionBranch("editorial-link", emptyParametersSchema$1),
4328
4330
  selectionBranch("pebble", emptyParametersSchema$1),
4329
4331
  selectionBranch("ink-stamp", emptyParametersSchema$1),
4330
- selectionBranch("flat-ink", emptyParametersSchema$1),
4332
+ selectionBranch("flat-ink", flatInkParametersSchema),
4331
4333
  selectionBranch("brushed-wash", emptyParametersSchema$1),
4332
4334
  selectionBranch("showtime-pill", emptyParametersSchema$1),
4333
4335
  selectionBranch("joy-stamp", emptyParametersSchema$1),
@@ -4464,6 +4466,189 @@ const quietArrowRecipe = defineButtonStyleRecipe({
4464
4466
  })
4465
4467
  });
4466
4468
  //#endregion
4469
+ //#region ../theme-core/src/buttons/styles/recipes/flatInk.ts
4470
+ const contextualRoleConfig = {
4471
+ primary: {
4472
+ contextualSeedToken: unsafeAsOpaqueButtonColourToken("primary"),
4473
+ fallbackDirection: "darker"
4474
+ },
4475
+ secondary: {
4476
+ contextualSeedToken: unsafeAsOpaqueButtonColourToken("surfaceAlt"),
4477
+ fallbackDirection: "darker"
4478
+ },
4479
+ outline: {
4480
+ contextualSeedToken: unsafeAsOpaqueButtonColourToken("surfaceAlt"),
4481
+ fallbackDirection: "darker"
4482
+ },
4483
+ ghost: {
4484
+ contextualSeedToken: unsafeAsOpaqueButtonColourToken("surfaceAlt"),
4485
+ fallbackDirection: "darker"
4486
+ },
4487
+ accent: {
4488
+ contextualSeedToken: unsafeAsOpaqueButtonColourToken("accent"),
4489
+ fallbackDirection: "darker"
4490
+ }
4491
+ };
4492
+ const hoverControl = {
4493
+ kind: "button-hover-by-role",
4494
+ parameter: "hoverPreferences",
4495
+ label: "Button hover",
4496
+ roles: contextualRoleConfig,
4497
+ options: [
4498
+ {
4499
+ value: "contextual",
4500
+ label: "Contextual shade shift"
4501
+ },
4502
+ {
4503
+ value: "secondary",
4504
+ label: "Secondary button colour"
4505
+ },
4506
+ {
4507
+ value: "accent",
4508
+ label: "Accent button colour"
4509
+ }
4510
+ ]
4511
+ };
4512
+ const lift = { effectId: "lift" };
4513
+ const flatInkRecipe = defineButtonStyleRecipe({
4514
+ id: "flat-ink",
4515
+ accessibilityLabel: "Flat rounded buttons with arrow affordances",
4516
+ tags: {
4517
+ tone: "classic",
4518
+ energy: "calm",
4519
+ motion: "subtle",
4520
+ era: "editorial"
4521
+ },
4522
+ parameterSchema: flatInkParametersSchema,
4523
+ defaultParameters: {},
4524
+ controls: [hoverControl],
4525
+ defineSystem: (parameters) => ({
4526
+ global: {
4527
+ cornerStyle: "rounded",
4528
+ textTransform: "none",
4529
+ fontWeight: 600,
4530
+ typography: "body",
4531
+ letterSpacing: "tight",
4532
+ paddingPreset: "default",
4533
+ hoverTransform: "lift",
4534
+ hoverColor: "none"
4535
+ },
4536
+ sizes: {
4537
+ sm: {
4538
+ padding: "0.625rem 1.125rem",
4539
+ fontSize: "text-sm"
4540
+ },
4541
+ md: { padding: "0.8125rem 1.375rem" },
4542
+ lg: {
4543
+ padding: "0.9375rem 1.625rem",
4544
+ fontSize: "text-lg"
4545
+ },
4546
+ xl: {
4547
+ padding: "1.0625rem 2rem",
4548
+ fontSize: "text-xl"
4549
+ }
4550
+ },
4551
+ roles: {
4552
+ primary: {
4553
+ kind: "complete",
4554
+ appearance: {
4555
+ background: {
4556
+ type: "solid",
4557
+ colorToken: unsafeAsOpaqueButtonColourToken("primary")
4558
+ },
4559
+ borderRadius: "rounded-lg",
4560
+ affordance: { iconId: "ArrowRight" },
4561
+ ...hoverAppearance("primary", parameters, [lift, {
4562
+ effectId: "background-on-hover",
4563
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("secondary") }
4564
+ }])
4565
+ }
4566
+ },
4567
+ secondary: {
4568
+ kind: "complete",
4569
+ appearance: {
4570
+ background: {
4571
+ type: "surface",
4572
+ role: "link"
4573
+ },
4574
+ borderRadius: "rounded-lg",
4575
+ border: { widthClass: "border" },
4576
+ ...hoverAppearance("secondary", parameters, [lift, {
4577
+ effectId: "background-on-hover",
4578
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surfaceAlt") }
4579
+ }])
4580
+ }
4581
+ },
4582
+ outline: {
4583
+ kind: "complete",
4584
+ appearance: {
4585
+ background: {
4586
+ type: "surface",
4587
+ role: "link"
4588
+ },
4589
+ borderRadius: "rounded-lg",
4590
+ border: { widthClass: "border" },
4591
+ ...hoverAppearance("outline", parameters, [lift, {
4592
+ effectId: "background-on-hover",
4593
+ options: { colorToken: unsafeAsOpaqueButtonColourToken("surfaceAlt") }
4594
+ }])
4595
+ }
4596
+ },
4597
+ ghost: {
4598
+ kind: "complete",
4599
+ appearance: {
4600
+ background: {
4601
+ type: "surface",
4602
+ role: "link"
4603
+ },
4604
+ borderRadius: "rounded-lg",
4605
+ ...hoverAppearance("ghost", parameters, [lift])
4606
+ }
4607
+ },
4608
+ accent: {
4609
+ kind: "complete",
4610
+ appearance: {
4611
+ background: {
4612
+ type: "solid",
4613
+ colorToken: unsafeAsOpaqueButtonColourToken("accent")
4614
+ },
4615
+ borderRadius: "rounded-lg",
4616
+ affordance: { iconId: "ArrowRight" },
4617
+ ...hoverAppearance("accent", parameters, [lift])
4618
+ }
4619
+ }
4620
+ }
4621
+ })
4622
+ });
4623
+ function hoverAppearance(role, parameters, recommended) {
4624
+ const preference = parameters.hoverPreferences?.[role];
4625
+ if (preference === void 0) return { effects: { hover: [...recommended] } };
4626
+ if (preference === "contextual") {
4627
+ const config = contextualRoleConfig[role];
4628
+ return {
4629
+ effects: { hover: [lift] },
4630
+ contextualHover: {
4631
+ kind: "shade-shift",
4632
+ seedToken: config.contextualSeedToken,
4633
+ fallbackDirection: config.fallbackDirection
4634
+ }
4635
+ };
4636
+ }
4637
+ const config = contextualRoleConfig[role];
4638
+ return {
4639
+ effects: { hover: [lift] },
4640
+ contextualHover: {
4641
+ kind: "shade-shift",
4642
+ seedToken: config.contextualSeedToken,
4643
+ fallbackDirection: config.fallbackDirection,
4644
+ preferredToken: unsafeAsOpaqueButtonColourToken(paletteRole(preference))
4645
+ }
4646
+ };
4647
+ }
4648
+ function paletteRole(preference) {
4649
+ return preference;
4650
+ }
4651
+ //#endregion
4467
4652
  //#region ../theme-core/src/buttons/styles/recipes/defineStaticButtonStyleRecipe.ts
4468
4653
  const emptyParametersSchema = z.object({}).strict();
4469
4654
  function defineStaticButtonStyleRecipe(input) {
@@ -5310,113 +5495,6 @@ const inkStampRecipe = defineStaticButtonStyleRecipe({
5310
5495
  }
5311
5496
  }
5312
5497
  });
5313
- const flatInkRecipe = defineStaticButtonStyleRecipe({
5314
- id: "flat-ink",
5315
- accessibilityLabel: "Flat rounded buttons with arrow affordances",
5316
- tags: {
5317
- tone: "classic",
5318
- energy: "calm",
5319
- motion: "subtle",
5320
- era: "editorial"
5321
- },
5322
- system: {
5323
- global: {
5324
- cornerStyle: "rounded",
5325
- textTransform: "none",
5326
- fontWeight: 600,
5327
- typography: "body",
5328
- letterSpacing: "tight",
5329
- paddingPreset: "default",
5330
- hoverTransform: "lift",
5331
- hoverColor: "none"
5332
- },
5333
- sizes: {
5334
- sm: {
5335
- padding: "0.625rem 1.125rem",
5336
- fontSize: "text-sm"
5337
- },
5338
- md: { padding: "0.8125rem 1.375rem" },
5339
- lg: {
5340
- padding: "0.9375rem 1.625rem",
5341
- fontSize: "text-lg"
5342
- },
5343
- xl: {
5344
- padding: "1.0625rem 2rem",
5345
- fontSize: "text-xl"
5346
- }
5347
- },
5348
- roles: {
5349
- primary: {
5350
- kind: "complete",
5351
- appearance: {
5352
- background: {
5353
- type: "solid",
5354
- colorToken: "primary"
5355
- },
5356
- borderRadius: "rounded-lg",
5357
- affordance: { iconId: "ArrowRight" },
5358
- effects: { hover: [{ effectId: "lift" }, {
5359
- effectId: "background-on-hover",
5360
- options: { colorToken: unsafeAsOpaqueButtonColourToken("secondary") }
5361
- }] }
5362
- }
5363
- },
5364
- secondary: {
5365
- kind: "complete",
5366
- appearance: {
5367
- background: {
5368
- type: "surface",
5369
- role: "link"
5370
- },
5371
- borderRadius: "rounded-lg",
5372
- border: { widthClass: "border" },
5373
- effects: { hover: [{ effectId: "lift" }, {
5374
- effectId: "background-on-hover",
5375
- options: { colorToken: unsafeAsOpaqueButtonColourToken("surfaceAlt") }
5376
- }] }
5377
- }
5378
- },
5379
- outline: {
5380
- kind: "complete",
5381
- appearance: {
5382
- background: {
5383
- type: "surface",
5384
- role: "link"
5385
- },
5386
- borderRadius: "rounded-lg",
5387
- border: { widthClass: "border" },
5388
- effects: { hover: [{ effectId: "lift" }, {
5389
- effectId: "background-on-hover",
5390
- options: { colorToken: unsafeAsOpaqueButtonColourToken("surfaceAlt") }
5391
- }] }
5392
- }
5393
- },
5394
- ghost: {
5395
- kind: "complete",
5396
- appearance: {
5397
- background: {
5398
- type: "surface",
5399
- role: "link"
5400
- },
5401
- borderRadius: "rounded-lg",
5402
- effects: { hover: [{ effectId: "lift" }] }
5403
- }
5404
- },
5405
- accent: {
5406
- kind: "complete",
5407
- appearance: {
5408
- background: {
5409
- type: "solid",
5410
- colorToken: "accent"
5411
- },
5412
- borderRadius: "rounded-lg",
5413
- affordance: { iconId: "ArrowRight" },
5414
- effects: { hover: [{ effectId: "lift" }] }
5415
- }
5416
- }
5417
- }
5418
- }
5419
- });
5420
5498
  const showtimePillRecipe = defineStaticButtonStyleRecipe({
5421
5499
  id: "showtime-pill",
5422
5500
  accessibilityLabel: "Bold uppercase pill buttons with playful movement",
@@ -5930,13 +6008,9 @@ function resolveEventRegistrationScopedEvents(events, context) {
5930
6008
  }
5931
6009
  //#endregion
5932
6010
  //#region ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
5933
- const courseRegistrationSourceSchema = z.object({
5934
- siteId: z.string().optional(),
5935
- apiBaseUrl: z.string().optional(),
5936
- portalToken: z.string().nullable().optional(),
6011
+ const courseRegistrationHydrationSchemaShape = {
5937
6012
  subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
5938
- courses: z.array(publicCourseSchema).nullable().optional(),
5939
- className: z.string().nullable().optional(),
6013
+ courses: z.array(publicWholeSeriesOfferingSchema).nullable().optional(),
5940
6014
  showSessions: z.boolean().optional(),
5941
6015
  showPrice: z.boolean().optional(),
5942
6016
  showCapacity: z.boolean().optional(),
@@ -5944,8 +6018,15 @@ const courseRegistrationSourceSchema = z.object({
5944
6018
  successMessage: z.string().optional(),
5945
6019
  waitlistMessage: z.string().optional(),
5946
6020
  membershipMessage: z.string().optional(),
6021
+ buttonVariant: registrationButtonVariantSchema.optional()
6022
+ };
6023
+ const courseRegistrationSourceSchema = z.object({
6024
+ siteId: z.string().optional(),
6025
+ apiBaseUrl: z.string().optional(),
6026
+ portalToken: z.string().nullable().optional(),
6027
+ ...courseRegistrationHydrationSchemaShape,
6028
+ className: z.string().nullable().optional(),
5947
6029
  buttonText: z.string().nullable().optional(),
5948
- buttonVariant: registrationButtonVariantSchema.optional(),
5949
6030
  stage: previewStageSchema.optional()
5950
6031
  });
5951
6032
  const courseRegistrationDisplaySchema = z.object({
@@ -5954,18 +6035,7 @@ const courseRegistrationDisplaySchema = z.object({
5954
6035
  className: z.string().nullable(),
5955
6036
  summaryButtonText: z.string()
5956
6037
  });
5957
- const courseRegistrationHydrationSchema = z.object({
5958
- subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
5959
- courses: z.array(publicCourseSchema).nullable().optional(),
5960
- showSessions: z.boolean().optional(),
5961
- showPrice: z.boolean().optional(),
5962
- showCapacity: z.boolean().optional(),
5963
- showVenue: z.boolean().optional(),
5964
- successMessage: z.string().optional(),
5965
- waitlistMessage: z.string().optional(),
5966
- membershipMessage: z.string().optional(),
5967
- buttonVariant: registrationButtonVariantSchema.optional()
5968
- });
6038
+ const courseRegistrationHydrationSchema = z.object(courseRegistrationHydrationSchemaShape);
5969
6039
  const courseRegistrationRenderSchema = z.object({
5970
6040
  display: courseRegistrationDisplaySchema,
5971
6041
  hydration: courseRegistrationHydrationSchema
@@ -6405,7 +6475,7 @@ const publicEventSchema = z.object({
6405
6475
  acceptsMemberships: z.boolean().optional(),
6406
6476
  wholeSeries: z.object({
6407
6477
  eventSeriesId: z.string(),
6408
- pricing: coursePricingSchema,
6478
+ pricing: wholeSeriesPricingSchema,
6409
6479
  currency: z.string(),
6410
6480
  enrollmentOpen: z.boolean()
6411
6481
  }).nullable().optional()
@@ -6429,14 +6499,7 @@ function normalizeIdList(parts) {
6429
6499
  }
6430
6500
  //#endregion
6431
6501
  //#region ../blocks/src/system/blocks/events/shared/filtering.ts
6432
- const eventSurfacePresetValues = [
6433
- "course",
6434
- "term",
6435
- "class",
6436
- "workshop",
6437
- "retreat",
6438
- "performance"
6439
- ];
6502
+ const eventSurfacePresetValues = SURFACE_EVENT_PRESET_VALUES;
6440
6503
  const eventSurfaceScopeValues = [
6441
6504
  "all",
6442
6505
  "regularClassSchedule",
@@ -7202,6 +7265,7 @@ const eventCollectionSourceSchemaShape = {
7202
7265
  showVenue: z.boolean().nullable().optional(),
7203
7266
  showMap: z.boolean().nullable().optional(),
7204
7267
  showCapacity: z.boolean().nullable().optional(),
7268
+ cardRole: cardRoleSchema.optional(),
7205
7269
  buttonVariant: eventButtonVariantSchema.optional(),
7206
7270
  buttonText: z.string().optional(),
7207
7271
  emptyMessage: z.string().optional(),
@@ -7229,6 +7293,7 @@ const eventCollectionDisplaySchemaShape = {
7229
7293
  showVenue: z.boolean(),
7230
7294
  showMap: z.boolean(),
7231
7295
  showCapacity: z.boolean(),
7296
+ cardRole: cardRoleSchema,
7232
7297
  buttonVariant: eventButtonVariantSchema,
7233
7298
  buttonText: z.string(),
7234
7299
  emptyMessage: z.string()
@@ -7278,6 +7343,7 @@ function buildEventCollectionPresentationDisplay(source) {
7278
7343
  showVenue: source.showVenue ?? true,
7279
7344
  showMap: source.showMap ?? true,
7280
7345
  showCapacity: source.showCapacity ?? true,
7346
+ cardRole: source.cardRole ?? "default",
7281
7347
  buttonVariant: source.buttonVariant ?? "primary",
7282
7348
  buttonText: source.buttonText ?? "Book",
7283
7349
  emptyMessage: source.emptyMessage ?? "No upcoming events scheduled."
@@ -7303,7 +7369,7 @@ function buildEventCollectionListingDisplay(display, prefetchedEvents, className
7303
7369
  emptyMessage: display.emptyMessage,
7304
7370
  loadingMessage: "Loading events…",
7305
7371
  containerClass: getContainerClass(display.listLayout, display.listColumns),
7306
- cardVariant: "default",
7372
+ cardRole: display.cardRole,
7307
7373
  buttonVariant: display.buttonVariant,
7308
7374
  buttonText: display.buttonText,
7309
7375
  showVenue: display.showVenue,
@@ -7315,8 +7381,6 @@ function buildEventCollectionListingDisplay(display, prefetchedEvents, className
7315
7381
  }
7316
7382
  //#endregion
7317
7383
  //#region ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
7318
- const legacyEventCardVariantSchema = z.enum(["variant1", "variant2"]);
7319
- const eventCardVariantInputSchema = z.union([cardVariantRoleSchema, legacyEventCardVariantSchema]);
7320
7384
  const cardOrientationSchema = z.enum(["vertical", "horizontal"]);
7321
7385
  const eventSurfaceScopeSchema = z.enum(eventSurfaceScopeValues);
7322
7386
  const eventScheduleScopeSchema = z.enum(eventScheduleScopeValues);
@@ -7331,7 +7395,7 @@ const eventListingSourceSchema = z.object({
7331
7395
  paginationMode: z.enum(["loadMore", "seeAllLink"]).optional(),
7332
7396
  seeAllUrl: z.string().optional(),
7333
7397
  loadMoreText: z.string().optional(),
7334
- cardVariant: eventCardVariantInputSchema.optional(),
7398
+ cardRole: cardRoleSchema.optional(),
7335
7399
  buttonVariant: eventButtonVariantSchema.optional(),
7336
7400
  buttonText: z.string().optional(),
7337
7401
  showVenue: z.boolean().optional(),
@@ -7353,7 +7417,7 @@ const eventListingDisplaySchema = z.object({
7353
7417
  emptyMessage: z.string(),
7354
7418
  loadingMessage: z.string(),
7355
7419
  containerClass: z.string(),
7356
- cardVariant: cardVariantRoleSchema,
7420
+ cardRole: cardRoleSchema,
7357
7421
  buttonVariant: eventButtonVariantSchema,
7358
7422
  buttonText: z.string(),
7359
7423
  showVenue: z.boolean(),
@@ -7410,7 +7474,7 @@ const eventListingInteractiveIslandPropsCodec = createInteractiveIslandCodec({
7410
7474
  emptyMessage: source.emptyMessage ?? "No upcoming events scheduled.",
7411
7475
  loadingMessage: "Loading events…",
7412
7476
  containerClass: getContainerClass(layout, source.columns ?? "3"),
7413
- cardVariant: normalizeCardVariantRole(source.cardVariant) ?? "default",
7477
+ cardRole: source.cardRole ?? "default",
7414
7478
  buttonVariant: source.buttonVariant ?? "primary",
7415
7479
  buttonText: source.buttonText ?? "Book",
7416
7480
  showVenue: source.showVenue ?? true,
@@ -7845,6 +7909,104 @@ function createBackgroundOverlayNode(path, className = "background-overlay rb-ab
7845
7909
  //#endregion
7846
7910
  //#region ../blocks/src/system/spacing.ts
7847
7911
  /**
7912
+ * Type-safe spacing system for sections and containers.
7913
+ *
7914
+ * This module provides:
7915
+ * - Semantic spacing values (none, compact, cozy, medium, comfortable, spacious)
7916
+ * - Type-safe mappings to CSS class tokens
7917
+ * - Runtime validation via type guards
7918
+ * - Separate handling for section (vertical) vs container (all-sides) spacing
7919
+ *
7920
+ * Type Safety Guarantees:
7921
+ * - Type is derived from data (single source of truth)
7922
+ * - Maps are validated for completeness at compile time
7923
+ * - Runtime validation available via isSemanticSpacing()
7924
+ */
7925
+ /**
7926
+ * Single source of truth for semantic spacing values.
7927
+ * The SemanticSpacing type is derived from this array to ensure they stay in sync.
7928
+ *
7929
+ * Adding a new spacing value:
7930
+ * 1. Add it to this array
7931
+ * 2. TypeScript will error until you update both spacing maps
7932
+ * 3. No way to get out of sync
7933
+ */
7934
+ const SEMANTIC_SPACING_VALUES = [
7935
+ "none",
7936
+ "compact",
7937
+ "cozy",
7938
+ "medium",
7939
+ "comfortable",
7940
+ "spacious"
7941
+ ];
7942
+ /**
7943
+ * Runtime type guard for validating spacing values.
7944
+ * Use this at system boundaries where data enters from external sources.
7945
+ *
7946
+ * @param value - Unknown value to validate
7947
+ * @returns true if value is a valid SemanticSpacing, with type narrowing
7948
+ *
7949
+ * @example
7950
+ * const userInput = 'medium';
7951
+ * if (isSemanticSpacing(userInput)) {
7952
+ * // TypeScript knows userInput is SemanticSpacing here
7953
+ * const classes = resolveSpacing(userInput, 'y');
7954
+ * }
7955
+ */
7956
+ function isSemanticSpacing(value) {
7957
+ return typeof value === "string" && SEMANTIC_SPACING_VALUES.includes(value);
7958
+ }
7959
+ /**
7960
+ * Type-safe mapping from semantic spacing to CSS classes for sections (y-axis).
7961
+ *
7962
+ * Sections use vertical padding only to control spacing between blocks.
7963
+ * Horizontal padding (px-6) is handled separately via baseClass.
7964
+ *
7965
+ * The `satisfies` operator ensures all SemanticSpacing values are present at compile time.
7966
+ * TypeScript will error if any spacing value is missing or if extra keys exist.
7967
+ */
7968
+ const SECTION_SPACING_MAP = {
7969
+ none: "rb-section-pad-none",
7970
+ compact: "rb-section-pad-compact",
7971
+ cozy: "rb-section-pad-cozy",
7972
+ medium: "rb-section-pad-medium",
7973
+ comfortable: "rb-section-pad-comfortable",
7974
+ spacious: "rb-section-pad-spacious"
7975
+ };
7976
+ /**
7977
+ * Type-safe mapping from semantic spacing to CSS classes for containers (all sides).
7978
+ *
7979
+ * Containers use padding on all sides for internal content spacing.
7980
+ *
7981
+ * The `satisfies` operator ensures all SemanticSpacing values are present at compile time.
7982
+ */
7983
+ const CONTAINER_SPACING_MAP = {
7984
+ none: "rb-container-pad-none",
7985
+ compact: "rb-container-pad-compact",
7986
+ cozy: "rb-container-pad-cozy",
7987
+ medium: "rb-container-pad-medium",
7988
+ comfortable: "rb-container-pad-comfortable",
7989
+ spacious: "rb-container-pad-spacious"
7990
+ };
7991
+ /**
7992
+ * Resolve semantic spacing to CSS classes based on axis.
7993
+ *
7994
+ * This function guarantees that valid SemanticSpacing values always return a result.
7995
+ * Since spacing is typed, there's no need for fallback logic.
7996
+ *
7997
+ * @param spacing - Semantic spacing value (validated at compile time)
7998
+ * @param axis - Which axis to apply padding ('y' for sections, 'all' for containers)
7999
+ * @returns CSS class token string
8000
+ *
8001
+ * @example
8002
+ * resolveSpacing('medium', 'y') // => 'rb-section-pad-medium'
8003
+ * resolveSpacing('medium', 'all') // => 'rb-container-pad-medium'
8004
+ * resolveSpacing('compact') // => 'rb-section-pad-compact' (defaults to 'y' axis)
8005
+ */
8006
+ function resolveSpacing(spacing, axis = "y") {
8007
+ return (axis === "y" ? SECTION_SPACING_MAP : CONTAINER_SPACING_MAP)[spacing];
8008
+ }
8009
+ /**
7848
8010
  * Default spacing value for sections when not explicitly configured.
7849
8011
  */
7850
8012
  const DEFAULT_SECTION_SPACING = "medium";
@@ -9739,6 +9901,22 @@ createBlockManifest({
9739
9901
  defaultValue: true,
9740
9902
  ui: { intent: "display" }
9741
9903
  },
9904
+ {
9905
+ id: "showTitle",
9906
+ type: "boolean",
9907
+ label: "Show event title",
9908
+ required: false,
9909
+ defaultValue: false,
9910
+ ui: { intent: "display" }
9911
+ },
9912
+ {
9913
+ id: "showDescription",
9914
+ type: "boolean",
9915
+ label: "Show event description",
9916
+ required: false,
9917
+ defaultValue: false,
9918
+ ui: { intent: "display" }
9919
+ },
9742
9920
  {
9743
9921
  id: "showMap",
9744
9922
  type: "boolean",
@@ -9775,10 +9953,22 @@ createBlockManifest({
9775
9953
  {
9776
9954
  value: "10",
9777
9955
  label: "10 dates"
9956
+ },
9957
+ {
9958
+ value: "all",
9959
+ label: "All dates"
9778
9960
  }
9779
9961
  ],
9780
9962
  ui: { intent: "display" }
9781
9963
  },
9964
+ {
9965
+ id: "showCapacity",
9966
+ type: "boolean",
9967
+ label: "Show capacity",
9968
+ required: false,
9969
+ defaultValue: false,
9970
+ ui: { intent: "display" }
9971
+ },
9782
9972
  {
9783
9973
  id: "showCost",
9784
9974
  type: "boolean",
@@ -9821,6 +10011,8 @@ createBlockManifest({
9821
10011
  } },
9822
10012
  events: { $bind: { from: "data.eventDetailsData.events" } },
9823
10013
  showVenue: { $bind: { from: "content.showVenue" } },
10014
+ showTitle: { $bind: { from: "content.showTitle" } },
10015
+ showDescription: { $bind: { from: "content.showDescription" } },
9824
10016
  showMap: { $bind: { from: "content.showMap" } },
9825
10017
  showOtherDates: { $bind: { from: "content.showOtherDates" } },
9826
10018
  otherDatesLimit: { $bind: {
@@ -9831,6 +10023,10 @@ createBlockManifest({
9831
10023
  from: "content.showCost",
9832
10024
  fallback: true
9833
10025
  } },
10026
+ showCapacity: { $bind: {
10027
+ from: "content.showCapacity",
10028
+ fallback: false
10029
+ } },
9834
10030
  showAcceptedPasses: { $bind: {
9835
10031
  from: "content.showAcceptedPasses",
9836
10032
  fallback: true
@@ -9925,6 +10121,9 @@ const eventDetailsIslandSchema = z.object({
9925
10121
  showOtherDates: z.boolean().optional(),
9926
10122
  otherDatesLimit: z.string().optional(),
9927
10123
  showCost: z.boolean().optional(),
10124
+ showTitle: z.boolean().optional(),
10125
+ showDescription: z.boolean().optional(),
10126
+ showCapacity: z.boolean().optional(),
9928
10127
  showAcceptedPasses: z.boolean().optional(),
9929
10128
  showAcceptedMemberships: z.boolean().optional(),
9930
10129
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
@@ -10233,8 +10432,8 @@ const eventRegistrationHydrationSchemaShape = {
10233
10432
  occurrenceContext: occurrenceContextSchema.optional(),
10234
10433
  subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
10235
10434
  events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
10236
- wholeSeriesOfferings: publicCoursesArraySchema.nullable().optional(),
10237
- wholeSeriesOffering: publicCourseSchema.nullable().optional(),
10435
+ wholeSeriesOfferings: publicWholeSeriesOfferingsArraySchema.nullable().optional(),
10436
+ wholeSeriesOffering: publicWholeSeriesOfferingSchema.nullable().optional(),
10238
10437
  maxTickets: z.string().optional(),
10239
10438
  showVenue: z.boolean().optional(),
10240
10439
  showCapacity: z.boolean().optional(),
@@ -10256,12 +10455,13 @@ const eventRegistrationSourceSchema = z.object({
10256
10455
  portalToken: z.string().nullable().optional(),
10257
10456
  previewToken: z.string().nullable().optional(),
10258
10457
  ...eventRegistrationHydrationSchemaShape,
10458
+ subjectWholeSeriesOffering: publicWholeSeriesOfferingSchema.nullable().optional(),
10259
10459
  className: z.string().nullable().optional(),
10260
10460
  buttonText: z.string().nullable().optional(),
10261
10461
  maxTickets: z.string().nullable().optional(),
10262
10462
  stage: previewStageSchema.optional()
10263
10463
  });
10264
- const eventRegistrationDisplaySchema = z.object({
10464
+ const eventRegistrationDisplaySchema = z.discriminatedUnion("state", [z.object({
10265
10465
  kind: z.literal("event-registration"),
10266
10466
  state: z.literal("generic-shell"),
10267
10467
  className: z.string().nullable(),
@@ -10269,7 +10469,13 @@ const eventRegistrationDisplaySchema = z.object({
10269
10469
  bodyText: z.string(),
10270
10470
  stepLabels: z.array(z.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
10271
10471
  summaryButtonText: z.string()
10272
- });
10472
+ }), z.object({
10473
+ kind: z.literal("event-registration"),
10474
+ state: z.literal("registration-closed"),
10475
+ className: z.string().nullable(),
10476
+ titleText: z.string(),
10477
+ bodyText: z.string()
10478
+ })]);
10273
10479
  const eventRegistrationHydrationSchema = z.object(eventRegistrationHydrationSchemaShape);
10274
10480
  const eventRegistrationRenderSchema = z.object({
10275
10481
  display: eventRegistrationDisplaySchema,
@@ -10284,6 +10490,13 @@ const eventRegistrationIslandMetaCodec = createZodCodec(z.object({
10284
10490
  }));
10285
10491
  const eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "portalToken", "previewToken", "stage");
10286
10492
  function buildEventRegistrationDisplay(source) {
10493
+ if (resolveWholeSeriesOffering(source)?.enrollmentOpen === false) return {
10494
+ kind: "event-registration",
10495
+ state: "registration-closed",
10496
+ className: source.className ?? null,
10497
+ titleText: "Registration closed",
10498
+ bodyText: "This run is no longer open for bookings."
10499
+ };
10287
10500
  const stepLabels = buildEventRegistrationShellStepLabels(source);
10288
10501
  return {
10289
10502
  kind: "event-registration",
@@ -10295,6 +10508,9 @@ function buildEventRegistrationDisplay(source) {
10295
10508
  summaryButtonText: source.buttonText?.trim() || "Register"
10296
10509
  };
10297
10510
  }
10511
+ function resolveWholeSeriesOffering(source) {
10512
+ return source.wholeSeriesOffering ?? source.subjectWholeSeriesOffering ?? null;
10513
+ }
10298
10514
  function buildEventRegistrationShellStepLabels(source) {
10299
10515
  const scopedEvents = scopeEventRegistrationEvents(source);
10300
10516
  if (scopedEvents.length === 0) return EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
@@ -10352,7 +10568,7 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
10352
10568
  subject: source.subject ?? null,
10353
10569
  events: source.events ?? null,
10354
10570
  wholeSeriesOfferings: source.wholeSeriesOfferings ?? null,
10355
- wholeSeriesOffering: source.wholeSeriesOffering ?? null,
10571
+ wholeSeriesOffering: resolveWholeSeriesOffering(source),
10356
10572
  maxTickets: source.maxTickets ?? void 0,
10357
10573
  showVenue: source.showVenue,
10358
10574
  showCapacity: source.showCapacity,
@@ -11842,4 +12058,4 @@ function defineIslandPropsDecoder(kind) {
11842
12058
  };
11843
12059
  }
11844
12060
  //#endregion
11845
- export { resolveOnColorForThemeToken as $, normalizeOptionalId as A, formatLocalScheduleDate as At, groupEventsByDate as B, publicEventPricingType as Bt, getWizardStepsForContext as C, reportWorkflowError as Ct, getEventRuntimeFiltersKey as D, formatBookingDateTime as Dt, buildEventRuntimeFilters as E, formatBookingDate as Et, formatEventPriceDisplay as F, toScheduledBookingDateTime as Ft, getEventAvailabilityStatus as G, resolveEventLinkProps as H, publicEventTicketTypes as Ht, formatEventTeacherLine as I, parseEventPageSurfaceSubject as It, RichTextDocSchema as J, getLocalDateKey as K, formatTime as L, formatBookingPriceDisplay as Lt, formatEventCompactDateRail as M, parseBookingLocalDate as Mt, formatEventDateParts as N, resolveBookingTimeZoneId as Nt, normalizeCsvIds as O, formatBookingInstant as Ot, formatEventPrice as P, toBookingTimeZone as Pt, isCssColorLiteral as Q, getCardOrientation as R, publicEventPricingCurrency as Rt, getStepNumber as S, okWith as St, staticHeaderChromeRuntime as T, addLocalScheduleDays as Tt, resolveRuntimeEventPricing as U, formatCurrencyAmount as Ut, resolveEventCta as V, publicEventScalarPrice as Vt, getEventAvailability as W, assertNever$2 as Wt, resolveEventRegistrationScopedEvents as X, isRecord$3 as Y, themeButtonClassName as Z, findPreSelectedEvent as _, BOOKING_FORM_DATA_RESERVED_KEYS as _t, buildProductDetailDisplay as a, formatBookingSubmissionPreparationError as at, resolveRegistrationTarget as b, err as bt, EMPTY_COMMERCE_CART_STATE as c, getBookingSuccessMessage as ct, deriveCommerceCheckoutState as d, prepareBookingSubmission as dt, resolveTokenOrCssColorValue as et, parseStoredCommerceCartState as f, resolveAppointmentCheckoutVerificationState as ft, findEventByOccurrenceId as g, toSelectedCollectionOptionKind as gt, toRegistrationEvents as h, resolveDefaultBookingServiceId as ht, buildProductCardDisplay as i, formatBookingCentsAsCurrencyInput as it, formatDate as j, getBookingLocalDateKey as jt, normalizeCsvString as k, formatBookingTime as kt, buildPassCartItem as l, isBookingServiceSlidingAmountInRange as lt, reduceCommerceCart as m, resolveBookingSiteId as mt, getShopDisplayForItems as n, logger as nt, formatCommercePrice as o, getBookingRedirectStateFromLocation as ot, productItemKey as p, resolveBookingPaymentStep as pt, getLocalMinuteOfDay as q, buildCartDisplay as r, deriveBookingFormViewState as rt, formatInterval as s, getBookingServiceSlidingScale as st, defineIslandPropsDecoder as t, normalizeCardVariantRole as tt, buildProductCartItem as u, parseBookingCurrencyInputToCents as ut, resolveDiscountContext as v, assertNever$1 as vt, buildEventCalendarListingRender as w, reportWorkflowSuccess as wt, WIZARD_STEPS as x, ok as xt, resolveEventRequiresPayment as y, clearWorkflowFeedback as yt, getContainerClass as z, publicEventPricingMode as zt };
12061
+ export { resolveEventRegistrationScopedEvents as $, getEventRuntimeFiltersKey as A, formatBookingDate as At, formatTime as B, parseEventPageSurfaceSubject as Bt, getWizardStepsForContext as C, clearWorkflowFeedback as Ct, isSemanticSpacing as D, reportWorkflowError as Dt, SEMANTIC_SPACING_VALUES as E, okWith as Et, formatEventCompactDateRail as F, getBookingLocalDateKey as Ft, resolveEventLinkProps as G, publicEventScalarPrice as Gt, getContainerClass as H, publicEventPricingCurrency as Ht, formatEventDateParts as I, parseBookingLocalDate as It, getEventAvailabilityStatus as J, assertNever$2 as Jt, resolveRuntimeEventPricing as K, publicEventTicketTypes as Kt, formatEventPrice as L, resolveBookingTimeZoneId as Lt, normalizeCsvString as M, formatBookingInstant as Mt, normalizeOptionalId as N, formatBookingTime as Nt, resolveSpacing as O, reportWorkflowSuccess as Ot, formatDate as P, formatLocalScheduleDate as Pt, isRecord$3 as Q, formatEventPriceDisplay as R, toBookingTimeZone as Rt, getStepNumber as S, assertNever$1 as St, staticHeaderChromeRuntime as T, ok as Tt, groupEventsByDate as U, publicEventPricingMode as Ut, getCardOrientation as V, formatBookingPriceDisplay as Vt, resolveEventCta as W, publicEventPricingType as Wt, getLocalMinuteOfDay as X, getLocalDateKey as Y, RichTextDocSchema as Z, findPreSelectedEvent as _, resolveBookingPaymentStep as _t, buildProductDetailDisplay as a, normalizeCardRole as at, resolveRegistrationTarget as b, toSelectedCollectionOptionKind as bt, EMPTY_COMMERCE_CART_STATE as c, formatBookingCentsAsCurrencyInput as ct, deriveCommerceCheckoutState as d, getBookingServiceSlidingScale as dt, themeButtonClassName as et, parseStoredCommerceCartState as f, getBookingSuccessMessage as ft, findEventByOccurrenceId as g, resolveAppointmentCheckoutVerificationState as gt, toRegistrationEvents as h, prepareBookingSubmission as ht, buildProductCardDisplay as i, resolveTokenOrCssColorValue as it, normalizeCsvIds as j, formatBookingDateTime as jt, buildEventRuntimeFilters as k, addLocalScheduleDays as kt, buildPassCartItem as l, formatBookingSubmissionPreparationError as lt, reduceCommerceCart as m, parseBookingCurrencyInputToCents as mt, getShopDisplayForItems as n, isCssColorLiteral as nt, formatCommercePrice as o, logger as ot, productItemKey as p, isBookingServiceSlidingAmountInRange as pt, getEventAvailability as q, formatCurrencyAmount as qt, buildCartDisplay as r, resolveOnColorForThemeToken as rt, formatInterval as s, deriveBookingFormViewState as st, defineIslandPropsDecoder as t, boxBackgroundSchema as tt, buildProductCartItem as u, getBookingRedirectStateFromLocation as ut, resolveDiscountContext as v, resolveBookingSiteId as vt, buildEventCalendarListingRender as w, err as wt, WIZARD_STEPS as x, BOOKING_FORM_DATA_RESERVED_KEYS as xt, resolveEventRequiresPayment as y, resolveDefaultBookingServiceId as yt, formatEventTeacherLine as z, toScheduledBookingDateTime as zt };