@riverbankcms/sdk 0.134.0 → 0.135.1

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 (258) hide show
  1. package/CHANGELOG.md +4 -3
  2. package/README.md +1 -1
  3. package/dist/{PreviewEditorSidebar-DfRhJPFQ.mjs → PreviewEditorSidebar-D4p_5TdY.mjs} +4 -4
  4. package/dist/{PreviewEditorUI-Dppxcr_g.mjs → PreviewEditorUI-D0cRoTX1.mjs} +3 -3
  5. package/dist/{PreviewQueryProvider-D51gQaG3.mjs → PreviewQueryProvider-DcgaESkm.mjs} +1 -1
  6. package/dist/{SdkPreviewModeRuntime-8CyGCXir.mjs → SdkPreviewModeRuntime-BKLtM3Nz.mjs} +5 -5
  7. package/dist/{SiteChromeCustomizeContext-DVMTMvqA.mjs → SiteChromeCustomizeContext-61X2m7QV.mjs} +4105 -8035
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +165 -165
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +15 -15
  10. package/dist/_dts/api/src/bookingConfig.d.ts +1 -1
  11. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +25 -60
  12. package/dist/_dts/api/src/bookingOperations.d.ts +111 -161
  13. package/dist/_dts/api/src/bookingPaymentTermSchemas.d.ts +123 -0
  14. package/dist/_dts/api/src/bookingRecords.d.ts +13 -13
  15. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +4 -4
  16. package/dist/_dts/api/src/bookingSessionSummaryTypes.d.ts +34 -0
  17. package/dist/_dts/api/src/bookings.d.ts +5 -9
  18. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +7 -7
  19. package/dist/_dts/api/src/communications.d.ts +1 -1
  20. package/dist/_dts/api/src/endpoints.d.ts +29 -109
  21. package/dist/_dts/api/src/eventManagementContracts.d.ts +1 -1
  22. package/dist/_dts/api/src/eventSeriesRegistrationEndpointDefinitions.d.ts +43 -0
  23. package/dist/_dts/api/src/index.d.ts +3 -4
  24. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
  25. package/dist/_dts/api/src/participantMessaging.d.ts +2 -2
  26. package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +8 -0
  27. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +32 -28
  28. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +85 -5
  29. package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +1 -1
  30. package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +9 -100
  31. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +7 -6
  32. package/dist/_dts/api/src/publicWholeSeriesEndpointDefinitions.d.ts +0 -32
  33. package/dist/_dts/api/src/sdk-event-payment-terms.d.ts +1 -1
  34. package/dist/_dts/api/src/sdk-event-upsert.d.ts +1 -1
  35. package/dist/_dts/api/src/siteOperations.d.ts +2 -2
  36. package/dist/_dts/api/src/types.d.ts +1 -1
  37. package/dist/_dts/api/src/{courses.d.ts → wholeSeriesOfferings.d.ts} +43 -95
  38. package/dist/_dts/blocks/src/client.d.ts +0 -5
  39. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -1
  40. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +5 -94
  41. package/dist/_dts/blocks/src/portal/dateFormatting.d.ts +3 -0
  42. package/dist/_dts/blocks/src/portal/types.d.ts +17 -20
  43. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +147 -42
  44. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +35 -10
  45. package/dist/_dts/blocks/src/system/blocks/events/whole-series/types.d.ts +3 -0
  46. package/dist/_dts/blocks/src/system/blocks/index.d.ts +0 -2
  47. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +3 -3
  48. package/dist/_dts/blocks/src/system/blocks/offerings-preview/scheduleSummary.d.ts +3 -3
  49. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  50. package/dist/_dts/blocks/src/system/node/builder.d.ts +0 -1
  51. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +9 -12
  52. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +2 -44
  53. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  54. package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +1 -1
  55. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +99 -59
  56. package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +1 -1
  57. package/dist/_dts/blocks/src/system/runtime/api/types/shop.d.ts +19 -16
  58. package/dist/_dts/blocks/src/system/runtime/api/types/waitlist-claims.d.ts +7 -0
  59. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +1 -1
  60. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +24 -247
  61. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +13 -126
  62. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +0 -1
  63. package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +2 -3
  64. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/WholeSeriesPricingDisplay.d.ts +8 -0
  65. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationBookingLayer.d.ts +17 -0
  66. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +24 -0
  67. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentBlockingPanel.d.ts +18 -0
  68. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +5 -0
  69. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/constants.d.ts +1 -0
  70. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +1 -3
  71. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +7 -4
  72. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +0 -1
  73. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +7 -8
  74. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/index.d.ts +1 -1
  75. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDerivations.d.ts +4 -4
  76. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.d.ts +3 -0
  77. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.d.ts +5 -0
  78. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationWizardContext.d.ts +28 -0
  79. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +12 -11
  80. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +53 -45
  81. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +10 -6
  82. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +9 -1
  83. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +20 -5
  84. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +20 -0
  85. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +5 -56
  86. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/waitlistClaimRestoration.d.ts +20 -0
  87. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +6 -22
  88. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DateTimeTile.d.ts +1 -1
  89. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +16 -6
  90. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +2 -2
  91. package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptions.d.ts +6 -1
  92. package/dist/_dts/blocks/src/system/runtime/shared/components/DiscountCodeDisclosure.d.ts +1 -13
  93. package/dist/_dts/blocks/src/system/runtime/shared/components/LoggedInAsUser.d.ts +1 -1
  94. package/dist/_dts/blocks/src/system/runtime/shared/components/MembershipHero.d.ts +1 -1
  95. package/dist/_dts/blocks/src/system/runtime/shared/components/StateIcon.d.ts +1 -1
  96. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +1 -1
  97. package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +1 -1
  98. package/dist/_dts/blocks/src/system/runtime/shared/utils/checkoutUrls.d.ts +2 -2
  99. package/dist/_dts/commerce/src/index.d.ts +16 -0
  100. package/dist/_dts/commerce/src/money.d.ts +122 -0
  101. package/dist/_dts/commerce/src/moneyContracts.d.ts +178 -0
  102. package/dist/_dts/commerce/src/moneyDateUtils.d.ts +22 -0
  103. package/dist/_dts/commerce/src/moneyPayments.d.ts +59 -0
  104. package/dist/_dts/commerce/src/moneyPlanningTime.d.ts +4 -0
  105. package/dist/_dts/commerce/src/moneyReceiptReadModel.d.ts +68 -0
  106. package/dist/_dts/commerce/src/moneyReport.d.ts +105 -0
  107. package/dist/_dts/commerce/src/moneyReportBreakdowns.d.ts +3 -0
  108. package/dist/_dts/commerce/src/moneyReportKindFilter.d.ts +4 -0
  109. package/dist/_dts/commerce/src/moneyReportPage.d.ts +132 -0
  110. package/dist/_dts/commerce/src/purchase/checkoutCollectionPlan.d.ts +1 -1
  111. package/dist/_dts/commerce/src/purchase/confirmationEmailPayment.d.ts +1 -1
  112. package/dist/_dts/commerce/src/purchase/orderCompletionEmailPlan.d.ts +3 -3
  113. package/dist/_dts/commerce/src/purchase/orderFulfillmentPlan.d.ts +6 -25
  114. package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +4 -4
  115. package/dist/_dts/commerce/src/purchase/orderPlanningTypes.d.ts +11 -11
  116. package/dist/_dts/commerce/src/purchase/orderTypes.d.ts +1 -1
  117. package/dist/_dts/commerce/src/purchase/persistedCheckoutLines.d.ts +1 -1
  118. package/dist/_dts/commerce/src/purchase/types.d.ts +12 -8
  119. package/dist/_dts/commerce/src/shop/digitalFulfillment.d.ts +111 -0
  120. package/dist/_dts/commerce/src/shop/fulfillmentStatus.d.ts +10 -0
  121. package/dist/_dts/commerce/src/shop/inventoryRestore.d.ts +13 -0
  122. package/dist/_dts/commerce/src/shop/shippingAddress.d.ts +18 -0
  123. package/dist/_dts/commerce/src/types/json.d.ts +3 -0
  124. package/dist/_dts/commerce/src/utils/isPlainRecord.d.ts +1 -0
  125. package/dist/_dts/commerce/src/waitlists.d.ts +172 -0
  126. package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +0 -30
  127. package/dist/_dts/content-model/src/content-types/builtins.d.ts +2 -39
  128. package/dist/_dts/content-model/src/metadataConfig.d.ts +0 -1
  129. package/dist/_dts/content-model/src/templates/defaults.d.ts +0 -68
  130. package/dist/_dts/core/src/branded.d.ts +3 -3
  131. package/dist/_dts/core/src/event-pricing.d.ts +6 -6
  132. package/dist/_dts/core/src/participants.d.ts +17 -17
  133. package/dist/_dts/core/src/rectification.d.ts +1 -1
  134. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +890 -2154
  135. package/dist/_dts/sdk/src/bookings/index.d.ts +4 -5
  136. package/dist/_dts/sdk/src/bookings/types.d.ts +34 -4
  137. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +4 -6
  138. package/dist/_dts/sdk/src/version.d.ts +1 -1
  139. package/dist/_dts/theme-core/src/blocks/vars/index.d.ts +0 -2
  140. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  141. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +1 -1
  142. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +1 -1
  143. package/dist/client/{usePolling-UN4WKnaM.mjs → BookingConsentAgreement-Bz9znbpn.mjs} +180 -4
  144. package/dist/client/{DiscountCodeDisclosure-CfuPOHD0.mjs → DiscountCodeDisclosure-35Ru8yB9.mjs} +13 -27
  145. package/dist/client/{EventCombined.client-DB8Qfzi-.mjs → EventCombined.client-BKB0ZxRR.mjs} +3 -3
  146. package/dist/client/{EventListing.client-DD4X8hp4.mjs → EventListing.client-Dx8I21ok.mjs} +2 -2
  147. package/dist/client/{LeafletStaticMap-QhgIBQbv.mjs → LeafletStaticMap-CEWx-Bhe.mjs} +1 -1
  148. package/dist/client/{accordion-DFXpLvwg.mjs → accordion-KIDsKTwS.mjs} +1 -1
  149. package/dist/client/{bookingForm-sI05d3lk.mjs → bookingForm-D96Rmp-5.mjs} +6 -7
  150. package/dist/client/bookings.mjs +913 -1906
  151. package/dist/client/{carousel-wjyWTZCh.mjs → carousel-YwUgyL66.mjs} +1 -1
  152. package/dist/client/{cart-DCwdpA4i.mjs → cart-BbwuNrUT.mjs} +3 -3
  153. package/dist/client/{checkout-DTDW3l0R.mjs → checkout-hp1ucmEY.mjs} +3 -3
  154. package/dist/client/{checkoutUrls-DQYC_Br-.mjs → checkoutUrls-BuseL0dw.mjs} +4 -2
  155. package/dist/client/client.mjs +5109 -9333
  156. package/dist/client/{context-TSK1CGx8.mjs → context-DljQn8L5.mjs} +15 -69
  157. package/dist/client/{eventCalendar-B0Zg-i_w.mjs → eventCalendar-DU4iNLpo.mjs} +5 -5
  158. package/dist/client/{eventCombined-B8Y2wizd.mjs → eventCombined-CZuupW8m.mjs} +3 -3
  159. package/dist/client/{eventDetails-DPDOwURJ.mjs → eventDetails-DPQWwCIi.mjs} +8 -8
  160. package/dist/client/{eventListing-CjBcmSLn.mjs → eventListing-C7oMidwS.mjs} +3 -3
  161. package/dist/client/{eventRegistration-CK30HsAq.mjs → eventRegistration-zEiunlUs.mjs} +4522 -3690
  162. package/dist/client/{form-CUXfsABE.mjs → form-D2KIyCVJ.mjs} +2 -2
  163. package/dist/client/{headerSection-N-mN3rjr.mjs → headerSection-CK5uChUK.mjs} +2 -2
  164. package/dist/client/hooks.mjs +459 -714
  165. package/dist/client/{locationMap-oiIDQMBt.mjs → locationMap-DLQNH1ln.mjs} +2 -2
  166. package/dist/client/{newsletterForm-CkQ2tTrM.mjs → newsletterForm-ZuhIG7fZ.mjs} +2 -2
  167. package/dist/client/{productDetail-CnidyrsN.mjs → productDetail-7hIcGeae.mjs} +3 -3
  168. package/dist/client/{productList-CttYcS_S.mjs → productList-T4Cii1ot.mjs} +3 -3
  169. package/dist/client/{propsDecoder-CeUMxI9a.mjs → propsDecoder-mB0aC_Fi.mjs} +4702 -4458
  170. package/dist/client/rendering/client.mjs +59617 -62260
  171. package/dist/client/rendering/islands.mjs +17 -19
  172. package/dist/client/rendering.mjs +5389 -9707
  173. package/dist/client/{scrollToBlock-lPr1oqxB.mjs → scrollToBlock-Du5mHgvL.mjs} +2 -2
  174. package/dist/client/{shop-DXQtMo2O.mjs → shop-B5zAcKZn.mjs} +6 -6
  175. package/dist/client/{shop-commerce-quDL411J.mjs → shop-commerce-BKBZB6l5.mjs} +6 -6
  176. package/dist/client/{shop-commerce-store-Dnu-8Iub.mjs → shop-commerce-store-Cq4qlNtQ.mjs} +1 -1
  177. package/dist/client/{shopShared-BWPUURvG.mjs → shopShared-DYGzEs9D.mjs} +3 -3
  178. package/dist/client/{useEventFilters-DRhWp2_5.mjs → useEventFilters-Bphkda8m.mjs} +3 -3
  179. package/dist/preview-next/before-render.mjs +40 -161
  180. package/dist/preview-next/client/runtime.mjs +4 -4
  181. package/dist/preview-next/keepAlive.mjs +40 -161
  182. package/dist/preview-next/middleware.mjs +40 -161
  183. package/dist/{previewAuthStore-BFKd4LrN.mjs → previewAuthStore-C7ksxt5b.mjs} +40 -161
  184. package/dist/{sdk-runtime-Ca5RD78X.mjs → sdk-runtime-BbIC8G4J.mjs} +2 -2
  185. package/dist/{separator-CMhj6BTi.mjs → separator-CadhAtI7.mjs} +1 -1
  186. package/dist/server/components.mjs +558 -2962
  187. package/dist/server/config-validation.mjs +459 -714
  188. package/dist/server/config.mjs +459 -714
  189. package/dist/server/data.mjs +459 -714
  190. package/dist/server/index.mjs +41 -162
  191. package/dist/server/next.mjs +572 -2976
  192. package/dist/server/page-converter.mjs +360 -582
  193. package/dist/server/prebuild.mjs +1 -1
  194. package/dist/server/rendering/server.mjs +569 -2879
  195. package/dist/server/rendering.mjs +558 -2962
  196. package/dist/server/routing.mjs +603 -1087
  197. package/dist/server/server.mjs +473 -728
  198. package/dist/server/theme-bridge.mjs +41 -1524
  199. package/dist/styles/index.css +41 -1348
  200. package/package.json +1 -1
  201. package/dist/_dts/api/src/courseEndpointDefinitions.d.ts +0 -99
  202. package/dist/_dts/blocks/src/client/course-registration.d.ts +0 -5
  203. package/dist/_dts/blocks/src/system/blocks/course-details.d.ts +0 -134
  204. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +0 -130
  205. package/dist/_dts/blocks/src/system/blocks/courses/shared/index.d.ts +0 -3
  206. package/dist/_dts/blocks/src/system/blocks/courses/shared/pricing.d.ts +0 -2
  207. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +0 -1
  208. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +0 -1
  209. package/dist/_dts/blocks/src/system/runtime/api/types/courses.d.ts +0 -135
  210. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +0 -28
  211. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/logic.d.ts +0 -11
  212. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/runs.d.ts +0 -10
  213. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/view.d.ts +0 -15
  214. package/dist/_dts/blocks/src/system/runtime/nodes/course-details.server.d.ts +0 -20
  215. package/dist/_dts/blocks/src/system/runtime/nodes/course-page-surface-scope.d.ts +0 -14
  216. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.client.d.ts +0 -10
  217. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +0 -181
  218. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.server.d.ts +0 -12
  219. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/CoursePricingDisplay.d.ts +0 -8
  220. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/BookingModeStep.d.ts +0 -32
  221. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/CheckIcon.d.ts +0 -4
  222. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/ErrorStep.d.ts +0 -17
  223. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/MembershipHero.d.ts +0 -12
  224. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/PaymentFailedStep.d.ts +0 -17
  225. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/PortalAuthSidebar.d.ts +0 -9
  226. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/StepIndicator.d.ts +0 -6
  227. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/SuccessStep.d.ts +0 -14
  228. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/VerifyingTimeoutStep.d.ts +0 -17
  229. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/WaitlistStep.d.ts +0 -12
  230. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/WholeSeriesRegistrationActiveSteps.d.ts +0 -9
  231. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/WholeSeriesRegistrationErrorBoundary.d.ts +0 -25
  232. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/WholeSeriesRegistrationTerminalContent.d.ts +0 -8
  233. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/WholeSeriesRegistrationWizard.d.ts +0 -8
  234. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/components.d.ts +0 -46
  235. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/index.d.ts +0 -18
  236. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/presentation.d.ts +0 -7
  237. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/pricing.d.ts +0 -14
  238. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/types.d.ts +0 -105
  239. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesEligibility.d.ts +0 -24
  240. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesPaymentVerification.d.ts +0 -10
  241. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesRegistrationActions.d.ts +0 -35
  242. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesRegistrationPortal.d.ts +0 -7
  243. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesRegistrationSelection.d.ts +0 -35
  244. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesRegistrationWizard.d.ts +0 -185
  245. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/useWholeSeriesWaitlistSelection.d.ts +0 -14
  246. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/utils.d.ts +0 -43
  247. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/whole-series-registration.headless.contract.d.ts +0 -325
  248. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/whole-series-registration.headless.planning.d.ts +0 -27
  249. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/wholeSeriesPageSurfaceScope.d.ts +0 -17
  250. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/wholeSeriesRegistrationViewState.d.ts +0 -21
  251. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/wizardSteps.d.ts +0 -30
  252. package/dist/_dts/sdk/src/rendering/islands/enhancers/courseRegistration.d.ts +0 -3
  253. package/dist/_dts/theme-core/src/blocks/vars/course-details.d.ts +0 -16
  254. package/dist/_dts/theme-core/src/blocks/vars/course-registration.d.ts +0 -21
  255. package/dist/client/BookingConsentAgreement-BxgpGEFD.mjs +0 -160
  256. package/dist/client/WholeSeriesRegistrationWizard-DwtC7bCs.mjs +0 -2546
  257. package/dist/client/courseRegistration-A-Tg7qw_.mjs +0 -52
  258. package/dist/client/pricing-Caa0QWzh.mjs +0 -195
@@ -6659,7 +6659,7 @@ defineBlockAppearancePreset({
6659
6659
  id: "schedule-details-brand-depth",
6660
6660
  target: "events",
6661
6661
  label: "Brand-depth schedule details",
6662
- blockKinds: ["block.event-details", "block.course-details"],
6662
+ blockKinds: ["block.event-details"],
6663
6663
  design: {
6664
6664
  sectionSurface: "brand-depth-band",
6665
6665
  contentFrame: plainFrame,
@@ -10950,14 +10950,14 @@ function publicEventPricingType(pricing) {
10950
10950
  case "single_paid":
10951
10951
  case "ticket_types":
10952
10952
  case "sliding_scale":
10953
- case "course": return isFreePublicEventPriceDisplay(pricing.display) ? "free" : "paid";
10953
+ case "whole_series": return isFreePublicEventPriceDisplay(pricing.display) ? "free" : "paid";
10954
10954
  case "external": return "external";
10955
10955
  }
10956
10956
  }
10957
10957
  function isFreePublicEventPriceDisplay(display) {
10958
10958
  switch (display.kind) {
10959
10959
  case "free": return true;
10960
- case "course": return display.display.kind === "free";
10960
+ case "whole_series": return display.display.kind === "free";
10961
10961
  case "exact":
10962
10962
  case "from":
10963
10963
  case "range":
@@ -11198,6 +11198,25 @@ function parseNewsletterSignupDestinationProvider(value) {
11198
11198
  return value === "riverbank" || value === "mailchimp" ? value : null;
11199
11199
  }
11200
11200
  //#endregion
11201
+ //#region ../core/src/planner.ts
11202
+ /** Default clock for production callers that do not inject time explicitly. */
11203
+ const systemPlanningClock = { now: () => Date.now() };
11204
+ /** Resolve current time as a Date from an explicit Date, injected clock, or system clock. */
11205
+ function resolvePlanningNowDate(input = {}) {
11206
+ if (input.now !== void 0) return input.now;
11207
+ return new Date((input.clock ?? systemPlanningClock).now());
11208
+ }
11209
+ /**
11210
+ * Resolve a Date-compatible planner input.
11211
+ *
11212
+ * Precedence: bare Date, `{ now }`, `{ clock }`, then `systemPlanningClock`.
11213
+ * Explicit Date inputs are returned by reference, not cloned.
11214
+ */
11215
+ function resolvePlanningDateInput(input = {}) {
11216
+ if (input instanceof Date) return input;
11217
+ return resolvePlanningNowDate(input);
11218
+ }
11219
+ //#endregion
11201
11220
  //#region ../core/src/event-series-behaviour.ts
11202
11221
  const SURFACE_EVENT_PRESET_VALUES = [
11203
11222
  "class",
@@ -13033,7 +13052,6 @@ const productDetail = (props, children, ...mods) => el("product-detail", props,
13033
13052
  const cart = (props, children, ...mods) => el("cart", props, children, ...mods);
13034
13053
  const checkout = (props, children, ...mods) => el("checkout", props, children, ...mods);
13035
13054
  const gifting = (props, children, ...mods) => el("gifting", props, children, ...mods);
13036
- const courseRegistration = (props, children, ...mods) => el("course-registration", props, children, ...mods);
13037
13055
  function bind(from, options) {
13038
13056
  return (node) => ({
13039
13057
  ...node,
@@ -21089,6 +21107,164 @@ const bookingRequirementConsentFieldSchema = z.object({
21089
21107
  });
21090
21108
  z.union([blockBookingConsentSchema, bookingRequirementConsentFieldSchema]);
21091
21109
  //#endregion
21110
+ //#region ../blocks/src/system/blocks/events/whole-series/pricing.ts
21111
+ function isSaleWindowOpen(option, now) {
21112
+ if (!option.isActive) return false;
21113
+ if (option.saleStartsAt && new Date(option.saleStartsAt) > now) return false;
21114
+ if (option.saleEndsAt && new Date(option.saleEndsAt) < now) return false;
21115
+ return true;
21116
+ }
21117
+ function toExactOrFreeDisplay(amount, currency) {
21118
+ if (amount <= 0) return {
21119
+ kind: "free",
21120
+ currency
21121
+ };
21122
+ return {
21123
+ kind: "exact",
21124
+ amount,
21125
+ currency
21126
+ };
21127
+ }
21128
+ function getSelectableWholeSeriesPricingOptionsForNow(offering, now) {
21129
+ if (offering.pricing.pricingStrategy !== "tiered") return [];
21130
+ return [...offering.pricing.options].filter((option) => isSaleWindowOpen(option, now)).sort((left, right) => {
21131
+ if (left.sortOrder !== right.sortOrder) return left.sortOrder - right.sortOrder;
21132
+ if (left.priceAmount !== right.priceAmount) return left.priceAmount - right.priceAmount;
21133
+ return left.name.localeCompare(right.name);
21134
+ });
21135
+ }
21136
+ function resolveWholeSeriesPricingState(offering, selectedPricingOptionId, selectedSlidingAmountOrNowInput, nowInput = {}) {
21137
+ const selection = normalizePricingSelectionInput(selectedSlidingAmountOrNowInput, nowInput);
21138
+ const currency = offering.pricing.currency;
21139
+ switch (offering.pricing.pricingStrategy) {
21140
+ case "free": return resolveFreePricing(currency);
21141
+ case "single": return resolveSinglePricing(offering.pricing.singlePriceAmount ?? 0, currency);
21142
+ case "tiered": return resolveTieredPricing(offering, selectedPricingOptionId, selection.nowInput);
21143
+ case "sliding_scale": return resolveSlidingScalePricing(offering, selection.selectedSlidingAmount);
21144
+ }
21145
+ }
21146
+ function normalizePricingSelectionInput(selectedSlidingAmountOrNowInput, nowInput) {
21147
+ return typeof selectedSlidingAmountOrNowInput === "object" && selectedSlidingAmountOrNowInput !== null ? {
21148
+ selectedSlidingAmount: null,
21149
+ nowInput: selectedSlidingAmountOrNowInput
21150
+ } : {
21151
+ selectedSlidingAmount: typeof selectedSlidingAmountOrNowInput === "number" || selectedSlidingAmountOrNowInput === null ? selectedSlidingAmountOrNowInput : null,
21152
+ nowInput
21153
+ };
21154
+ }
21155
+ function resolveFreePricing(currency) {
21156
+ return {
21157
+ currency,
21158
+ display: {
21159
+ kind: "free",
21160
+ currency
21161
+ },
21162
+ selectableOptions: [],
21163
+ requiresSelection: false,
21164
+ selectedOption: null,
21165
+ slidingScale: null,
21166
+ selectedSlidingAmount: null,
21167
+ selectedPriceAmount: 0,
21168
+ selectedRequiresPayment: false,
21169
+ hasPaidSelection: false,
21170
+ hasFreeSelection: true
21171
+ };
21172
+ }
21173
+ function resolveSinglePricing(amount, currency) {
21174
+ return {
21175
+ currency,
21176
+ display: toExactOrFreeDisplay(amount, currency),
21177
+ selectableOptions: [],
21178
+ requiresSelection: false,
21179
+ selectedOption: null,
21180
+ slidingScale: null,
21181
+ selectedSlidingAmount: null,
21182
+ selectedPriceAmount: amount,
21183
+ selectedRequiresPayment: amount > 0,
21184
+ hasPaidSelection: amount > 0,
21185
+ hasFreeSelection: amount <= 0
21186
+ };
21187
+ }
21188
+ function resolveTieredPricing(offering, selectedPricingOptionId, nowInput) {
21189
+ const currency = offering.pricing.currency;
21190
+ const selectableOptions = getSelectableWholeSeriesPricingOptionsForNow(offering, resolvePlanningDateInput(nowInput));
21191
+ const selectedOption = resolveSelectedTier(selectableOptions, selectedPricingOptionId);
21192
+ return {
21193
+ currency,
21194
+ display: resolveTieredDisplay(selectableOptions.reduce((lowest, option) => lowest === null || option.priceAmount < lowest ? option.priceAmount : lowest, null), selectableOptions.length, currency),
21195
+ selectableOptions,
21196
+ requiresSelection: selectableOptions.length > 1,
21197
+ selectedOption,
21198
+ slidingScale: null,
21199
+ selectedSlidingAmount: null,
21200
+ selectedPriceAmount: selectedOption?.priceAmount ?? null,
21201
+ selectedRequiresPayment: (selectedOption?.priceAmount ?? 0) > 0,
21202
+ hasPaidSelection: selectableOptions.some((option) => option.priceAmount > 0),
21203
+ hasFreeSelection: selectableOptions.some((option) => option.priceAmount === 0)
21204
+ };
21205
+ }
21206
+ function resolveSelectedTier(options, selectedId) {
21207
+ return (selectedId ? options.find((option) => option.id === selectedId) : null) ?? (options.length === 1 ? options[0] ?? null : null);
21208
+ }
21209
+ function resolveTieredDisplay(lowestAmount, optionCount, currency) {
21210
+ if (lowestAmount === null) return {
21211
+ kind: "unavailable",
21212
+ currency
21213
+ };
21214
+ return optionCount > 1 && lowestAmount > 0 ? {
21215
+ kind: "from",
21216
+ amount: lowestAmount,
21217
+ currency
21218
+ } : toExactOrFreeDisplay(lowestAmount, currency);
21219
+ }
21220
+ function resolveSlidingScalePricing(offering, selectedSlidingAmount) {
21221
+ const currency = offering.pricing.currency;
21222
+ const minAmount = offering.pricing.slidingMinAmount ?? null;
21223
+ const maxAmount = offering.pricing.slidingMaxAmount ?? null;
21224
+ if (minAmount === null || maxAmount === null || minAmount < 0 || maxAmount < minAmount) return unavailableSlidingScale(currency);
21225
+ const selectedAmount = Number.isFinite(selectedSlidingAmount) ? selectedSlidingAmount : null;
21226
+ return {
21227
+ currency,
21228
+ display: {
21229
+ kind: "range",
21230
+ minAmount,
21231
+ maxAmount,
21232
+ currency
21233
+ },
21234
+ selectableOptions: [],
21235
+ requiresSelection: selectedAmount === null,
21236
+ selectedOption: null,
21237
+ slidingScale: {
21238
+ minAmount,
21239
+ maxAmount,
21240
+ suggestedAmount: offering.pricing.slidingSuggestedAmount ?? null
21241
+ },
21242
+ selectedSlidingAmount: selectedAmount,
21243
+ selectedPriceAmount: selectedAmount,
21244
+ selectedRequiresPayment: (selectedAmount ?? 0) > 0,
21245
+ hasPaidSelection: maxAmount > 0,
21246
+ hasFreeSelection: minAmount === 0
21247
+ };
21248
+ }
21249
+ function unavailableSlidingScale(currency) {
21250
+ return {
21251
+ currency,
21252
+ display: {
21253
+ kind: "unavailable",
21254
+ currency
21255
+ },
21256
+ selectableOptions: [],
21257
+ requiresSelection: true,
21258
+ selectedOption: null,
21259
+ slidingScale: null,
21260
+ selectedSlidingAmount: null,
21261
+ selectedPriceAmount: null,
21262
+ selectedRequiresPayment: false,
21263
+ hasPaidSelection: false,
21264
+ hasFreeSelection: false
21265
+ };
21266
+ }
21267
+ //#endregion
21092
21268
  //#region ../blocks/src/system/blocks/events/whole-series/schemas.ts
21093
21269
  const wholeSeriesVenueSchema = z.object({
21094
21270
  id: z.string(),
@@ -21148,6 +21324,13 @@ const publicWholeSeriesOfferingSchema = z.object({
21148
21324
  title: z.string(),
21149
21325
  slug: z.string(),
21150
21326
  description: z.unknown().nullable(),
21327
+ deliveryMode: z.enum([
21328
+ "in_person",
21329
+ "online",
21330
+ "hybrid"
21331
+ ]),
21332
+ waitlistEnabled: z.boolean(),
21333
+ requireGuestDetails: z.boolean(),
21151
21334
  teamMembers: z.array(wholeSeriesTeamMemberSummarySchema).optional(),
21152
21335
  enrollmentOpen: z.boolean(),
21153
21336
  pricing: wholeSeriesPricingSchema,
@@ -21263,10 +21446,11 @@ const mixedPriceDisplaySchema = z.object({
21263
21446
  paidToAmount: z.number(),
21264
21447
  currency: z.string()
21265
21448
  });
21266
- const publicCoursePriceDisplaySchema = z.discriminatedUnion("kind", [
21449
+ const publicWholeSeriesPriceDisplaySchema = z.discriminatedUnion("kind", [
21267
21450
  freePriceDisplaySchema,
21268
21451
  exactPriceDisplaySchema,
21269
21452
  fromPriceDisplaySchema,
21453
+ rangePriceDisplaySchema,
21270
21454
  unavailablePriceDisplaySchema
21271
21455
  ]);
21272
21456
  z.discriminatedUnion("kind", [
@@ -21281,8 +21465,8 @@ z.discriminatedUnion("kind", [
21281
21465
  label: z.string()
21282
21466
  }),
21283
21467
  z.object({
21284
- kind: z.literal("course"),
21285
- display: publicCoursePriceDisplaySchema
21468
+ kind: z.literal("whole_series"),
21469
+ display: publicWholeSeriesPriceDisplaySchema
21286
21470
  })
21287
21471
  ]);
21288
21472
  const publicEventTicketTypePriceDisplaySchema = z.union([
@@ -21384,10 +21568,10 @@ const publicEventPricingSchema = z.discriminatedUnion("kind", [
21384
21568
  })
21385
21569
  }),
21386
21570
  z.object({
21387
- kind: z.literal("course"),
21571
+ kind: z.literal("whole_series"),
21388
21572
  display: z.object({
21389
- kind: z.literal("course"),
21390
- display: publicCoursePriceDisplaySchema
21573
+ kind: z.literal("whole_series"),
21574
+ display: publicWholeSeriesPriceDisplaySchema
21391
21575
  })
21392
21576
  }),
21393
21577
  z.object({
@@ -21804,7 +21988,8 @@ function resolveEventRegistrationScope(context) {
21804
21988
  };
21805
21989
  return { kind: "unscoped" };
21806
21990
  }
21807
- function applyEventRegistrationScope(events, scope) {
21991
+ function resolveEventRegistrationScopedEvents(events, context) {
21992
+ const scope = resolveEventRegistrationScope(context);
21808
21993
  switch (scope.kind) {
21809
21994
  case "occurrenceSeries":
21810
21995
  case "pageSurfaceSeries": return events.filter((event) => event.seriesId === scope.seriesId);
@@ -21816,9 +22001,6 @@ function applyEventRegistrationScope(events, scope) {
21816
22001
  case "unscoped": return [...events];
21817
22002
  }
21818
22003
  }
21819
- function resolveEventRegistrationScopedEvents(events, context) {
21820
- return applyEventRegistrationScope(events, resolveEventRegistrationScope(context));
21821
- }
21822
22004
  //#endregion
21823
22005
  //#region ../blocks/src/system/runtime/nodes/event-registration/registrationSurface.ts
21824
22006
  function planEventRegistrationScope(input) {
@@ -21912,14 +22094,14 @@ function isRecord$4(value) {
21912
22094
  }
21913
22095
  function isPublicEventPricing(value) {
21914
22096
  if (!isRecord$4(value) || typeof value.kind !== "string") return false;
21915
- return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "sliding_scale" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
22097
+ return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "sliding_scale" || value.kind === "ticket_types" || value.kind === "whole_series" || value.kind === "external";
21916
22098
  }
21917
22099
  function isPublicEventTicketType(value) {
21918
22100
  return isRecord$4(value) && typeof value.id === "string";
21919
22101
  }
21920
22102
  function readTicketTypePriceDisplay(value, currency) {
21921
22103
  const display = readLegacyPriceDisplay(value, currency);
21922
- return display.kind === "course" || display.kind === "external" ? {
22104
+ return display.kind === "whole_series" || display.kind === "external" ? {
21923
22105
  kind: "unavailable",
21924
22106
  currency
21925
22107
  } : display;
@@ -21977,11 +22159,11 @@ function readLegacyPriceDisplay(value, currency) {
21977
22159
  kind: "unavailable",
21978
22160
  currency: displayCurrency
21979
22161
  };
21980
- case "course": return isRecord$4(value.display) ? {
21981
- kind: "course",
22162
+ case "whole_series": return isRecord$4(value.display) ? {
22163
+ kind: "whole_series",
21982
22164
  display: readCoursePriceDisplay(value.display, displayCurrency)
21983
22165
  } : {
21984
- kind: "course",
22166
+ kind: "whole_series",
21985
22167
  display: {
21986
22168
  kind: "unavailable",
21987
22169
  currency: displayCurrency
@@ -22107,7 +22289,7 @@ function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
22107
22289
  //#endregion
22108
22290
  //#region ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
22109
22291
  function eventMatchesOccurrenceId(event, occurrenceId) {
22110
- return event.registrationOccurrenceId === occurrenceId || event.publicEventId === occurrenceId;
22292
+ return event.registrationSubject.kind === "occurrence" && (event.registrationSubject.occurrenceId === occurrenceId || event.selectionId === occurrenceId);
22111
22293
  }
22112
22294
  function findPreSelectedEvent(input) {
22113
22295
  const occurrenceContext = input.occurrenceContext;
@@ -22133,12 +22315,127 @@ function toRegistrationEvent(event) {
22133
22315
  return {
22134
22316
  ...event,
22135
22317
  pricing: resolveRuntimeEventPricing(event),
22136
- publicEventId: event.id,
22137
- registrationOccurrenceId: event.occurrenceId
22318
+ selectionId: event.id,
22319
+ registrationSubject: {
22320
+ kind: "occurrence",
22321
+ occurrenceId: event.occurrenceId
22322
+ }
22138
22323
  };
22139
22324
  }
22140
22325
  function toRegistrationEvents(events) {
22141
- return events.map(toRegistrationEvent);
22326
+ return events.filter((event) => event.bookingScope === "single_occurrence").map(toRegistrationEvent);
22327
+ }
22328
+ function toWholeSeriesTicketType(option) {
22329
+ return {
22330
+ ...option,
22331
+ capacityMode: option.capacityLimit === null ? "unlimited" : "limited",
22332
+ attendanceScope: option.attendanceScope ?? void 0,
22333
+ availability: {
22334
+ kind: "available",
22335
+ remainingCapacity: option.capacityLimit
22336
+ }
22337
+ };
22338
+ }
22339
+ function toWholeSeriesPricing(offering) {
22340
+ const resolved = resolveWholeSeriesPricingState(offering);
22341
+ switch (offering.pricing.pricingStrategy) {
22342
+ case "free": return {
22343
+ kind: "free_registration",
22344
+ currency: offering.currency,
22345
+ display: {
22346
+ kind: "free",
22347
+ currency: offering.currency
22348
+ }
22349
+ };
22350
+ case "single": {
22351
+ const amount = offering.pricing.singlePriceAmount ?? 0;
22352
+ return amount === 0 ? {
22353
+ kind: "free_registration",
22354
+ currency: offering.currency,
22355
+ display: {
22356
+ kind: "free",
22357
+ currency: offering.currency
22358
+ }
22359
+ } : {
22360
+ kind: "single_paid",
22361
+ amount,
22362
+ currency: offering.currency,
22363
+ display: {
22364
+ kind: "exact",
22365
+ amount,
22366
+ currency: offering.currency
22367
+ }
22368
+ };
22369
+ }
22370
+ case "tiered": return {
22371
+ kind: "ticket_types",
22372
+ currency: offering.currency,
22373
+ ticketTypes: resolved.selectableOptions.map((option) => toWholeSeriesTicketType(option)),
22374
+ display: resolved.display
22375
+ };
22376
+ case "sliding_scale": return {
22377
+ kind: "sliding_scale",
22378
+ minAmount: offering.pricing.slidingMinAmount ?? 0,
22379
+ maxAmount: offering.pricing.slidingMaxAmount ?? 0,
22380
+ suggestedAmount: offering.pricing.slidingSuggestedAmount ?? null,
22381
+ currency: offering.currency,
22382
+ display: {
22383
+ kind: "range",
22384
+ minAmount: offering.pricing.slidingMinAmount ?? 0,
22385
+ maxAmount: offering.pricing.slidingMaxAmount ?? 0,
22386
+ currency: offering.currency
22387
+ }
22388
+ };
22389
+ }
22390
+ }
22391
+ function toAttendanceModes(offering) {
22392
+ return (offering.deliveryMode === "hybrid" ? ["in_person", "online"] : [offering.deliveryMode]).map((mode) => ({
22393
+ mode,
22394
+ capacity: offering.enrollmentCapacity,
22395
+ registeredCount: offering.enrolledCount,
22396
+ availableSpots: offering.availableSpots,
22397
+ waitlistEnabled: offering.waitlistEnabled
22398
+ }));
22399
+ }
22400
+ function toWholeSeriesRegistrationEvent(offering) {
22401
+ const firstSession = offering.sessions[0];
22402
+ const lastSession = offering.sessions[offering.sessions.length - 1];
22403
+ return {
22404
+ selectionId: offering.eventSeriesId,
22405
+ registrationSubject: {
22406
+ kind: "wholeSeries",
22407
+ eventSeriesId: offering.eventSeriesId,
22408
+ sessions: offering.sessions
22409
+ },
22410
+ seriesId: offering.eventSeriesId,
22411
+ title: offering.title,
22412
+ startsAt: firstSession?.startsAt ?? "",
22413
+ endsAt: lastSession?.endsAt ?? firstSession?.endsAt ?? "",
22414
+ bookingAvailability: offering.enrollmentOpen ? { kind: "open" } : {
22415
+ kind: "closed",
22416
+ reason: "enrollment_closed"
22417
+ },
22418
+ deliveryMode: offering.deliveryMode,
22419
+ attendanceModes: toAttendanceModes(offering),
22420
+ capacity: offering.enrollmentCapacity,
22421
+ registeredCount: offering.enrolledCount,
22422
+ availableSpots: offering.availableSpots,
22423
+ waitlistEnabled: offering.waitlistEnabled,
22424
+ venue: offering.venue ? {
22425
+ ...offering.venue,
22426
+ location: null
22427
+ } : null,
22428
+ eventCategory: null,
22429
+ teamMembers: offering.teamMembers,
22430
+ status: offering.status,
22431
+ timeZone: firstSession?.timeZone ?? "UTC",
22432
+ pricing: toWholeSeriesPricing(offering),
22433
+ paymentTerms: offering.paymentTerms,
22434
+ consent: offering.consent,
22435
+ requireGuestDetails: offering.requireGuestDetails,
22436
+ acceptsPasses: false,
22437
+ acceptsMemberships: offering.acceptsMemberships
22438
+ };
22142
22439
  }
22143
22440
  //#endregion
22144
22441
  //#region ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
@@ -22164,11 +22461,7 @@ const eventRegistrationHydrationSchemaShape = {
22164
22461
  maxTickets: z.string().optional(),
22165
22462
  showVenue: z.boolean().optional(),
22166
22463
  showCapacity: z.boolean().optional(),
22167
- showSessions: z.boolean().optional(),
22168
- showPrice: z.boolean().optional(),
22169
22464
  successMessage: z.string().optional(),
22170
- waitlistMessage: z.string().optional(),
22171
- membershipMessage: z.string().optional(),
22172
22465
  buttonVariant: registrationButtonVariantSchema.optional(),
22173
22466
  overlayEnabled: z.boolean().optional(),
22174
22467
  spamProtectionEnabled: z.boolean().optional(),
@@ -22238,6 +22531,15 @@ function resolveWholeSeriesOffering(source) {
22238
22531
  return source.wholeSeriesOffering ?? source.subjectWholeSeriesOffering ?? null;
22239
22532
  }
22240
22533
  function buildEventRegistrationShellStepLabels(source) {
22534
+ const selectedOffering = resolveWholeSeriesOffering(source);
22535
+ if (selectedOffering) {
22536
+ const selectedEvent = toWholeSeriesRegistrationEvent(selectedOffering);
22537
+ return getWizardStepsForContext(true, resolveEventRequiresPayment({
22538
+ eligibility: null,
22539
+ selectedTicketType: null,
22540
+ event: selectedEvent
22541
+ })).map((step) => shellLabelForRegistrationStep(step, [selectedEvent]));
22542
+ }
22241
22543
  const scopedEvents = scopeEventRegistrationEvents(source);
22242
22544
  if (scopedEvents.length === 0) return EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
22243
22545
  const preSelectedEvent = findPreSelectedEvent({
@@ -22252,13 +22554,16 @@ function buildEventRegistrationShellStepLabels(source) {
22252
22554
  }) : false).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
22253
22555
  }
22254
22556
  function scopeEventRegistrationEvents(source) {
22557
+ return toRegistrationEvents(scopeEventRegistrationSourceEvents(source));
22558
+ }
22559
+ function scopeEventRegistrationSourceEvents(source) {
22255
22560
  const scope = planEventRegistrationScope({
22256
- events: toRegistrationEvents(source.events ?? []),
22561
+ events: source.events ?? [],
22257
22562
  wholeSeriesOffering: source.wholeSeriesOffering,
22258
22563
  occurrenceContext: source.occurrenceContext,
22259
22564
  subject: source.subject
22260
22565
  });
22261
- return scope.kind === "invalidSelectedRun" ? [] : scope.events;
22566
+ return scope.kind === "invalidSelectedRun" ? [] : [...scope.events];
22262
22567
  }
22263
22568
  function shellLabelForRegistrationStep(step, events) {
22264
22569
  switch (step) {
@@ -22290,30 +22595,29 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
22290
22595
  source: createZodCodec(eventRegistrationSourceSchema),
22291
22596
  render: createZodCodec(eventRegistrationRenderSchema)
22292
22597
  },
22293
- buildRender: (source) => ({
22294
- display: buildEventRegistrationDisplay(source),
22295
- hydration: {
22296
- occurrenceContext: source.occurrenceContext ?? null,
22297
- subject: source.subject ?? null,
22298
- events: source.events ?? null,
22299
- wholeSeriesOfferings: source.wholeSeriesOfferings ?? null,
22300
- wholeSeriesOffering: resolveWholeSeriesOffering(source),
22301
- maxTickets: source.maxTickets ?? void 0,
22302
- showVenue: source.showVenue,
22303
- showCapacity: source.showCapacity,
22304
- showSessions: source.showSessions,
22305
- showPrice: source.showPrice,
22306
- successMessage: source.successMessage,
22307
- waitlistMessage: source.waitlistMessage,
22308
- membershipMessage: source.membershipMessage,
22309
- buttonVariant: source.buttonVariant,
22310
- overlayEnabled: source.overlayEnabled,
22311
- spamProtectionEnabled: source.spamProtectionEnabled,
22312
- supportEmail: source.supportEmail,
22313
- sitePasses: source.sitePasses ?? null,
22314
- siteMemberships: source.siteMemberships ?? null
22315
- }
22316
- })
22598
+ buildRender: (source) => {
22599
+ const events = source.events == null ? null : scopeEventRegistrationSourceEvents(source);
22600
+ return {
22601
+ display: buildEventRegistrationDisplay(source),
22602
+ hydration: {
22603
+ occurrenceContext: source.occurrenceContext ?? null,
22604
+ subject: source.subject ?? null,
22605
+ events,
22606
+ wholeSeriesOfferings: source.wholeSeriesOfferings ?? null,
22607
+ wholeSeriesOffering: resolveWholeSeriesOffering(source),
22608
+ maxTickets: source.maxTickets ?? void 0,
22609
+ showVenue: source.showVenue,
22610
+ showCapacity: source.showCapacity,
22611
+ successMessage: source.successMessage,
22612
+ buttonVariant: source.buttonVariant,
22613
+ overlayEnabled: source.overlayEnabled,
22614
+ spamProtectionEnabled: source.spamProtectionEnabled,
22615
+ supportEmail: source.supportEmail,
22616
+ sitePasses: source.sitePasses ?? null,
22617
+ siteMemberships: source.siteMemberships ?? null
22618
+ }
22619
+ };
22620
+ }
22317
22621
  });
22318
22622
  function normalizeEventRegistrationEventInput(value) {
22319
22623
  if (!isRecord$3(value)) return value;
@@ -22421,24 +22725,6 @@ const eventRegistrationBlockDefinition = {
22421
22725
  defaultValue: true,
22422
22726
  ui: { intent: "display" }
22423
22727
  },
22424
- {
22425
- id: "showSessions",
22426
- type: "boolean",
22427
- label: "Show complete schedule",
22428
- description: "Display every session for whole-series registrations",
22429
- required: false,
22430
- defaultValue: true,
22431
- ui: { intent: "display" }
22432
- },
22433
- {
22434
- id: "showPrice",
22435
- type: "boolean",
22436
- label: "Show price",
22437
- description: "Display the whole-series price",
22438
- required: false,
22439
- defaultValue: true,
22440
- ui: { intent: "display" }
22441
- },
22442
22728
  {
22443
22729
  id: "successMessage",
22444
22730
  type: "text",
@@ -22449,26 +22735,6 @@ const eventRegistrationBlockDefinition = {
22449
22735
  defaultValue: "Thank you for registering! Check your email for confirmation details.",
22450
22736
  maxLength: 500
22451
22737
  },
22452
- {
22453
- id: "waitlistMessage",
22454
- type: "text",
22455
- label: "Waitlist message",
22456
- description: "Message shown after joining a whole-series waitlist",
22457
- required: false,
22458
- multiline: true,
22459
- defaultValue: "You've been added to the waitlist. We'll email you if a place becomes available.",
22460
- maxLength: 500
22461
- },
22462
- {
22463
- id: "membershipMessage",
22464
- type: "text",
22465
- label: "Membership registration message",
22466
- description: "Message shown when a whole-series place is covered by membership",
22467
- required: false,
22468
- multiline: true,
22469
- defaultValue: "Registered using your membership. Check your email for session details.",
22470
- maxLength: 500
22471
- },
22472
22738
  {
22473
22739
  id: "buttonText",
22474
22740
  type: "text",
@@ -22500,11 +22766,7 @@ const eventRegistrationBlockDefinition = {
22500
22766
  } },
22501
22767
  showVenue: { $bind: { from: "content.showVenue" } },
22502
22768
  showCapacity: { $bind: { from: "content.showCapacity" } },
22503
- showSessions: { $bind: { from: "content.showSessions" } },
22504
- showPrice: { $bind: { from: "content.showPrice" } },
22505
22769
  successMessage: { $bind: { from: "content.successMessage" } },
22506
- waitlistMessage: { $bind: { from: "content.waitlistMessage" } },
22507
- membershipMessage: { $bind: { from: "content.membershipMessage" } },
22508
22770
  buttonText: { $bind: {
22509
22771
  from: "content.buttonText",
22510
22772
  fallback: "Complete Registration"
@@ -22621,254 +22883,6 @@ const eventRegistrationBlockDefinition = {
22621
22883
  }
22622
22884
  };
22623
22885
  //#endregion
22624
- //#region ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
22625
- const courseRegistrationHydrationSchemaShape = {
22626
- subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
22627
- courses: z.array(publicWholeSeriesOfferingSchema).nullable().optional(),
22628
- showSessions: z.boolean().optional(),
22629
- showPrice: z.boolean().optional(),
22630
- showCapacity: z.boolean().optional(),
22631
- showVenue: z.boolean().optional(),
22632
- successMessage: z.string().optional(),
22633
- waitlistMessage: z.string().optional(),
22634
- membershipMessage: z.string().optional(),
22635
- buttonVariant: registrationButtonVariantSchema.optional()
22636
- };
22637
- const courseRegistrationSourceSchema = z.object({
22638
- siteId: z.string().optional(),
22639
- apiBaseUrl: z.string().optional(),
22640
- portalToken: z.string().nullable().optional(),
22641
- ...courseRegistrationHydrationSchemaShape,
22642
- className: z.string().nullable().optional(),
22643
- buttonText: z.string().nullable().optional(),
22644
- stage: previewStageSchema.optional()
22645
- });
22646
- const courseRegistrationDisplaySchema = z.object({
22647
- kind: z.literal("course-registration"),
22648
- state: z.literal("shell"),
22649
- className: z.string().nullable(),
22650
- summaryButtonText: z.string()
22651
- });
22652
- const courseRegistrationHydrationSchema = z.object(courseRegistrationHydrationSchemaShape);
22653
- const courseRegistrationRenderSchema = z.object({
22654
- display: courseRegistrationDisplaySchema,
22655
- hydration: courseRegistrationHydrationSchema
22656
- });
22657
- z.object({
22658
- siteId: z.string().optional(),
22659
- apiBaseUrl: z.string().optional(),
22660
- portalToken: z.string().nullable().optional(),
22661
- stage: previewStageSchema.optional()
22662
- });
22663
- function buildCourseRegistrationDisplay(source) {
22664
- return {
22665
- kind: "course-registration",
22666
- state: "shell",
22667
- className: source.className ?? null,
22668
- summaryButtonText: source.buttonText?.trim() || "Sign up"
22669
- };
22670
- }
22671
- const courseRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
22672
- kind: "client-owned",
22673
- contracts: {
22674
- source: createZodCodec(courseRegistrationSourceSchema),
22675
- render: createZodCodec(courseRegistrationRenderSchema)
22676
- },
22677
- buildRender: (source) => ({
22678
- display: buildCourseRegistrationDisplay(source),
22679
- hydration: {
22680
- subject: source.subject ?? null,
22681
- courses: source.courses ?? null,
22682
- showSessions: source.showSessions,
22683
- showPrice: source.showPrice,
22684
- showCapacity: source.showCapacity,
22685
- showVenue: source.showVenue,
22686
- successMessage: source.successMessage,
22687
- waitlistMessage: source.waitlistMessage,
22688
- membershipMessage: source.membershipMessage,
22689
- buttonVariant: source.buttonVariant
22690
- }
22691
- })
22692
- });
22693
- const courseRegistrationBlockDefinition = {
22694
- manifest: createBlockManifest({
22695
- id: "block.course-registration",
22696
- version: "1.0.0",
22697
- title: "Course Registration",
22698
- titleSource: "heading",
22699
- description: "Enrollment form for multi-session courses",
22700
- category: "interactive",
22701
- contentSource: { kind: "inline" },
22702
- tags: [
22703
- "courses",
22704
- "enrollment",
22705
- "booking",
22706
- "form",
22707
- "signup",
22708
- "education"
22709
- ],
22710
- icon: "GraduationCap",
22711
- styleTokens: {
22712
- background: "surface",
22713
- typography: "body",
22714
- spacing: "md"
22715
- },
22716
- behaviours: {
22717
- supportsThemeSwitching: true,
22718
- inlineEditing: false,
22719
- animation: false,
22720
- paletteHidden: false
22721
- },
22722
- additionalFields: [
22723
- {
22724
- id: "heading",
22725
- type: "text",
22726
- label: "Heading",
22727
- description: "Main heading for the registration form",
22728
- required: false,
22729
- multiline: false,
22730
- defaultValue: "Sign up"
22731
- },
22732
- {
22733
- id: "description",
22734
- type: "richText",
22735
- label: "Description",
22736
- description: "Optional introductory text",
22737
- required: false
22738
- },
22739
- {
22740
- id: "showSessions",
22741
- type: "boolean",
22742
- label: "Show sessions",
22743
- description: "Display the list of course sessions",
22744
- required: false,
22745
- defaultValue: true,
22746
- ui: { intent: "display" }
22747
- },
22748
- {
22749
- id: "showPrice",
22750
- type: "boolean",
22751
- label: "Show price",
22752
- description: "Display the course price",
22753
- required: false,
22754
- defaultValue: true,
22755
- ui: { intent: "display" }
22756
- },
22757
- {
22758
- id: "showCapacity",
22759
- type: "boolean",
22760
- label: "Show available spots",
22761
- description: "Display remaining enrollment capacity",
22762
- required: false,
22763
- defaultValue: true,
22764
- ui: { intent: "display" }
22765
- },
22766
- {
22767
- id: "showVenue",
22768
- type: "boolean",
22769
- label: "Show venue",
22770
- description: "Display venue information",
22771
- required: false,
22772
- defaultValue: true,
22773
- ui: { intent: "display" }
22774
- },
22775
- {
22776
- id: "successMessage",
22777
- type: "text",
22778
- label: "Success message",
22779
- description: "Message shown after successful enrollment",
22780
- required: false,
22781
- multiline: true,
22782
- defaultValue: "You're enrolled! Check your email for confirmation and session details.",
22783
- maxLength: 500
22784
- },
22785
- {
22786
- id: "waitlistMessage",
22787
- type: "text",
22788
- label: "Waitlist message",
22789
- description: "Message when added to waitlist",
22790
- required: false,
22791
- multiline: true,
22792
- defaultValue: "You've been added to the waitlist. We'll email you a claim link if a spot opens up.",
22793
- maxLength: 500
22794
- },
22795
- {
22796
- id: "membershipMessage",
22797
- type: "text",
22798
- label: "Membership enrollment message",
22799
- description: "Message when enrolled using a membership",
22800
- required: false,
22801
- multiline: true,
22802
- defaultValue: "Enrolled using your membership! Check your email for session details.",
22803
- maxLength: 500
22804
- },
22805
- {
22806
- id: "buttonText",
22807
- type: "text",
22808
- label: "Submit button text",
22809
- description: "Text for the enrollment submit button",
22810
- required: false,
22811
- multiline: false,
22812
- defaultValue: "Sign up",
22813
- maxLength: 40
22814
- },
22815
- createButtonVariantField()
22816
- ],
22817
- layout: [styledSection({
22818
- baseClass: "",
22819
- spacing: "spacious",
22820
- children: sectionContainer([
22821
- text({ as: "h2" }, bind("content.heading"), when("content.heading")),
22822
- richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
22823
- courseRegistration(withApiBindings({
22824
- subject: { $bind: {
22825
- from: "$root.subject",
22826
- fallback: null
22827
- } },
22828
- portalToken: { $bind: {
22829
- from: "$root.portalToken",
22830
- fallback: null
22831
- } },
22832
- showSessions: { $bind: { from: "content.showSessions" } },
22833
- showPrice: { $bind: { from: "content.showPrice" } },
22834
- showCapacity: { $bind: { from: "content.showCapacity" } },
22835
- showVenue: { $bind: { from: "content.showVenue" } },
22836
- successMessage: { $bind: { from: "content.successMessage" } },
22837
- waitlistMessage: { $bind: { from: "content.waitlistMessage" } },
22838
- membershipMessage: { $bind: { from: "content.membershipMessage" } },
22839
- buttonText: { $bind: {
22840
- from: "content.buttonText",
22841
- fallback: "Sign up"
22842
- } },
22843
- buttonVariant: { $bind: {
22844
- from: "content.buttonVariant",
22845
- fallback: "primary"
22846
- } },
22847
- courses: { $bind: { from: "data.courses" } },
22848
- stage: { $bind: {
22849
- from: "$root.previewStage",
22850
- fallback: "published"
22851
- } }
22852
- }))
22853
- ], { gap: "lg" })
22854
- })]
22855
- }),
22856
- runtime: courseRegistrationBlockRuntime,
22857
- dataSchemas: { courses: publicWholeSeriesOfferingsArraySchema.optional() },
22858
- dataLoaders: { courses: {
22859
- endpoint: "listPublicWholeSeriesOfferings",
22860
- params: {
22861
- siteId: { $bind: { from: "$root.siteId" } },
22862
- limit: "50",
22863
- stage: { $bind: {
22864
- from: "$root.previewStage",
22865
- fallback: "published"
22866
- } }
22867
- },
22868
- mode: "server"
22869
- } }
22870
- };
22871
- //#endregion
22872
22886
  //#region ../blocks/src/system/blocks/event-details.ts
22873
22887
  /**
22874
22888
  * Event Details Block
@@ -23115,200 +23129,6 @@ const eventDetailsBlockDefinition = {
23115
23129
  mode: "server"
23116
23130
  } }
23117
23131
  };
23118
- const courseDetailsBlockDefinition = {
23119
- manifest: createBlockManifest({
23120
- id: "block.course-details",
23121
- version: "1.0.0",
23122
- title: "Course Details",
23123
- titleSource: "heading",
23124
- description: "Schedule, venue, price, and enrollment status for a course",
23125
- category: "content",
23126
- contentSource: { kind: "entries" },
23127
- tags: [
23128
- "courses",
23129
- "schedule",
23130
- "sessions",
23131
- "venue",
23132
- "pricing"
23133
- ],
23134
- icon: "GraduationCap",
23135
- styleTokens: {
23136
- background: "surface",
23137
- typography: "body",
23138
- spacing: "md"
23139
- },
23140
- behaviours: {
23141
- supportsThemeSwitching: true,
23142
- inlineEditing: false,
23143
- animation: false,
23144
- paletteHidden: false
23145
- },
23146
- additionalFields: [
23147
- {
23148
- id: "heading",
23149
- type: "text",
23150
- label: "Heading",
23151
- description: "Optional heading shown above course details",
23152
- required: false,
23153
- multiline: false,
23154
- defaultValue: "Course details"
23155
- },
23156
- {
23157
- id: "showTitle",
23158
- type: "boolean",
23159
- label: "Show course title",
23160
- required: false,
23161
- defaultValue: false,
23162
- ui: { intent: "display" }
23163
- },
23164
- {
23165
- id: "showDescription",
23166
- type: "boolean",
23167
- label: "Show course description",
23168
- description: "Render the course description from the bookings course record",
23169
- required: false,
23170
- defaultValue: false,
23171
- ui: { intent: "display" }
23172
- },
23173
- {
23174
- id: "showSessions",
23175
- type: "boolean",
23176
- label: "Show sessions",
23177
- required: false,
23178
- defaultValue: true,
23179
- ui: { intent: "display" }
23180
- },
23181
- {
23182
- id: "sessionsLimit",
23183
- type: "select",
23184
- label: "Sessions limit",
23185
- required: false,
23186
- multiple: false,
23187
- defaultValue: "10",
23188
- options: [
23189
- {
23190
- value: "3",
23191
- label: "3 sessions"
23192
- },
23193
- {
23194
- value: "5",
23195
- label: "5 sessions"
23196
- },
23197
- {
23198
- value: "10",
23199
- label: "10 sessions"
23200
- },
23201
- {
23202
- value: "all",
23203
- label: "All sessions"
23204
- }
23205
- ],
23206
- ui: { intent: "display" }
23207
- },
23208
- {
23209
- id: "showVenue",
23210
- type: "boolean",
23211
- label: "Show venue",
23212
- required: false,
23213
- defaultValue: true,
23214
- ui: { intent: "display" }
23215
- },
23216
- {
23217
- id: "showPrice",
23218
- type: "boolean",
23219
- label: "Show price",
23220
- required: false,
23221
- defaultValue: true,
23222
- ui: { intent: "display" }
23223
- },
23224
- {
23225
- id: "showCapacity",
23226
- type: "boolean",
23227
- label: "Show capacity",
23228
- required: false,
23229
- defaultValue: true,
23230
- ui: { intent: "display" }
23231
- },
23232
- {
23233
- id: "showEnrollmentStatus",
23234
- type: "boolean",
23235
- label: "Show enrollment status",
23236
- required: false,
23237
- defaultValue: true,
23238
- ui: { intent: "display" }
23239
- },
23240
- {
23241
- id: "showMembershipNote",
23242
- type: "boolean",
23243
- label: "Show membership note",
23244
- description: "Indicate when memberships can be used for free enrollment",
23245
- required: false,
23246
- defaultValue: true,
23247
- ui: { intent: "display" }
23248
- }
23249
- ],
23250
- layout: [styledSection({
23251
- baseClass: "",
23252
- spacing: "spacious",
23253
- children: sectionContainer([text({ as: "h2" }, bind("content.heading"), when("content.heading")), el("course-details", {
23254
- subject: { $bind: {
23255
- from: "$root.subject",
23256
- fallback: null
23257
- } },
23258
- courses: { $bind: { from: "data.courses" } },
23259
- showTitle: { $bind: {
23260
- from: "content.showTitle",
23261
- fallback: false
23262
- } },
23263
- showDescription: { $bind: {
23264
- from: "content.showDescription",
23265
- fallback: false
23266
- } },
23267
- showSessions: { $bind: {
23268
- from: "content.showSessions",
23269
- fallback: true
23270
- } },
23271
- sessionsLimit: { $bind: {
23272
- from: "content.sessionsLimit",
23273
- fallback: "10"
23274
- } },
23275
- showVenue: { $bind: {
23276
- from: "content.showVenue",
23277
- fallback: true
23278
- } },
23279
- showPrice: { $bind: {
23280
- from: "content.showPrice",
23281
- fallback: true
23282
- } },
23283
- showCapacity: { $bind: {
23284
- from: "content.showCapacity",
23285
- fallback: true
23286
- } },
23287
- showEnrollmentStatus: { $bind: {
23288
- from: "content.showEnrollmentStatus",
23289
- fallback: true
23290
- } },
23291
- showMembershipNote: { $bind: {
23292
- from: "content.showMembershipNote",
23293
- fallback: true
23294
- } }
23295
- })], { gap: "lg" })
23296
- })]
23297
- }),
23298
- dataSchemas: { courses: publicWholeSeriesOfferingsArraySchema.optional() },
23299
- dataLoaders: { courses: {
23300
- endpoint: "listPublicWholeSeriesOfferings",
23301
- params: {
23302
- siteId: { $bind: { from: "$root.siteId" } },
23303
- limit: "50",
23304
- stage: { $bind: {
23305
- from: "$root.previewStage",
23306
- fallback: "published"
23307
- } }
23308
- },
23309
- mode: "server"
23310
- } }
23311
- };
23312
23132
  const eventSpotlightBlockDefinition = {
23313
23133
  manifest: createBlockManifest({
23314
23134
  id: "block.event-spotlight",
@@ -25810,7 +25630,7 @@ const offeringsPreviewManifest = createBlockManifest({
25810
25630
  fallback: "published"
25811
25631
  } },
25812
25632
  routeCandidates: { $bind: { from: "data.routeCandidates" } },
25813
- courses: { $bind: { from: "data.courses" } },
25633
+ wholeSeriesOfferings: { $bind: { from: "data.wholeSeriesOfferings" } },
25814
25634
  ...offeringsPreviewEventDataBindings
25815
25635
  })
25816
25636
  ], { gap: "lg" }),
@@ -25827,7 +25647,7 @@ const offeringsPreviewBlockDefinition = {
25827
25647
  dataSchemas: {
25828
25648
  ...offeringsPreviewEventDataSchemas,
25829
25649
  routeCandidates: publicRouteCandidatesSchema.optional(),
25830
- courses: publicWholeSeriesOfferingsArraySchema.optional()
25650
+ wholeSeriesOfferings: publicWholeSeriesOfferingsArraySchema.optional()
25831
25651
  },
25832
25652
  dataLoaders: {
25833
25653
  ...offeringsPreviewEventDataLoaders,
@@ -25836,7 +25656,7 @@ const offeringsPreviewBlockDefinition = {
25836
25656
  params: {},
25837
25657
  mode: "server"
25838
25658
  },
25839
- courses: {
25659
+ wholeSeriesOfferings: {
25840
25660
  endpoint: "listPublicWholeSeriesOfferings",
25841
25661
  params: {
25842
25662
  siteId: { $bind: { from: "$root.siteId" } },
@@ -30803,22 +30623,6 @@ const systemBlockDefinitions = [
30803
30623
  weight: "standard"
30804
30624
  })]
30805
30625
  })),
30806
- withDesignCapability("block.course-registration", courseRegistrationBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
30807
- flow: conversionFlow,
30808
- layoutProfiles: [layoutProfile({
30809
- variantKey: "default",
30810
- family: "form",
30811
- weight: "standard"
30812
- })]
30813
- })),
30814
- withDesignCapability("block.course-details", courseDetailsBlockDefinition, scheduleDetailsCapable(), defineBlockDesignMetadata({
30815
- flow: offeringsFlow,
30816
- layoutProfiles: [layoutProfile({
30817
- variantKey: "default",
30818
- family: "stack",
30819
- weight: "standard"
30820
- })]
30821
- })),
30822
30626
  withDesignCapability("block.event-spotlight", eventSpotlightBlockDefinition, eventSpotlightCapable(), defineBlockDesignMetadata({
30823
30627
  flow: offeringsFlow,
30824
30628
  layoutProfiles: [layoutProfile({
@@ -31206,32 +31010,6 @@ let cachedBlockSummaries;
31206
31010
  */
31207
31011
  function getBuiltInContentTypes() {
31208
31012
  return [
31209
- {
31210
- key: "course",
31211
- name: "Course",
31212
- description: "Courses with listing content and long-form details",
31213
- isRouted: true,
31214
- fields: [
31215
- {
31216
- id: "summary",
31217
- type: "text",
31218
- label: "Summary",
31219
- required: false
31220
- },
31221
- {
31222
- id: "image",
31223
- type: "media",
31224
- label: "Listing image",
31225
- required: false
31226
- },
31227
- {
31228
- id: "body",
31229
- type: "richText",
31230
- label: "Details",
31231
- required: false
31232
- }
31233
- ]
31234
- },
31235
31013
  {
31236
31014
  key: "event",
31237
31015
  name: "Event",