@riverbankcms/sdk 0.134.0 → 0.135.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 (258) hide show
  1. package/CHANGELOG.md +4 -3
  2. package/README.md +1 -1
  3. package/dist/{PreviewEditorSidebar-DfRhJPFQ.mjs → PreviewEditorSidebar-roNY0GVy.mjs} +4 -4
  4. package/dist/{PreviewEditorUI-Dppxcr_g.mjs → PreviewEditorUI-KboDbEh_.mjs} +3 -3
  5. package/dist/{PreviewQueryProvider-D51gQaG3.mjs → PreviewQueryProvider-DcgaESkm.mjs} +1 -1
  6. package/dist/{SdkPreviewModeRuntime-8CyGCXir.mjs → SdkPreviewModeRuntime-DBrF7Caa.mjs} +5 -5
  7. package/dist/{SiteChromeCustomizeContext-DVMTMvqA.mjs → SiteChromeCustomizeContext-DrIEpJKn.mjs} +4070 -8011
  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 +10 -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 +6 -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-BQqwi8Oa.mjs} +180 -4
  144. package/dist/client/{DiscountCodeDisclosure-CfuPOHD0.mjs → DiscountCodeDisclosure-B97aMo0V.mjs} +13 -27
  145. package/dist/client/{EventCombined.client-DB8Qfzi-.mjs → EventCombined.client-Bs2Iw9Q6.mjs} +3 -3
  146. package/dist/client/{EventListing.client-DD4X8hp4.mjs → EventListing.client-C4QUQdmg.mjs} +2 -2
  147. package/dist/client/{LeafletStaticMap-QhgIBQbv.mjs → LeafletStaticMap-CwWRk69M.mjs} +1 -1
  148. package/dist/client/{accordion-DFXpLvwg.mjs → accordion-BA0j8Mpw.mjs} +1 -1
  149. package/dist/client/{bookingForm-sI05d3lk.mjs → bookingForm-Br2e41H0.mjs} +6 -7
  150. package/dist/client/bookings.mjs +912 -1906
  151. package/dist/client/{carousel-wjyWTZCh.mjs → carousel-B4dmwnpD.mjs} +1 -1
  152. package/dist/client/{cart-DCwdpA4i.mjs → cart-B_ckGW4b.mjs} +3 -3
  153. package/dist/client/{checkout-DTDW3l0R.mjs → checkout-DAyspHdf.mjs} +3 -3
  154. package/dist/client/{checkoutUrls-DQYC_Br-.mjs → checkoutUrls-BuseL0dw.mjs} +4 -2
  155. package/dist/client/client.mjs +5074 -9309
  156. package/dist/client/{context-TSK1CGx8.mjs → context-DljQn8L5.mjs} +15 -69
  157. package/dist/client/{eventCalendar-B0Zg-i_w.mjs → eventCalendar-pJu3FUod.mjs} +5 -5
  158. package/dist/client/{eventCombined-B8Y2wizd.mjs → eventCombined-B6Kacm9F.mjs} +3 -3
  159. package/dist/client/{eventDetails-DPDOwURJ.mjs → eventDetails-CaX9z1pv.mjs} +8 -8
  160. package/dist/client/{eventListing-CjBcmSLn.mjs → eventListing-B9aXPO-I.mjs} +3 -3
  161. package/dist/client/{eventRegistration-CK30HsAq.mjs → eventRegistration-CBSovBkg.mjs} +4522 -3690
  162. package/dist/client/{form-CUXfsABE.mjs → form-Cm0tu_7o.mjs} +2 -2
  163. package/dist/client/{headerSection-N-mN3rjr.mjs → headerSection-OgRtHeKS.mjs} +2 -2
  164. package/dist/client/hooks.mjs +430 -692
  165. package/dist/client/{locationMap-oiIDQMBt.mjs → locationMap-DmjcYqNM.mjs} +2 -2
  166. package/dist/client/{newsletterForm-CkQ2tTrM.mjs → newsletterForm-D08OZQAC.mjs} +2 -2
  167. package/dist/client/{productDetail-CnidyrsN.mjs → productDetail-BqZeu2P4.mjs} +3 -3
  168. package/dist/client/{productList-CttYcS_S.mjs → productList-mNyIF9FG.mjs} +3 -3
  169. package/dist/client/{propsDecoder-CeUMxI9a.mjs → propsDecoder-DwHXRm9X.mjs} +4656 -4419
  170. package/dist/client/rendering/client.mjs +59504 -62158
  171. package/dist/client/rendering/islands.mjs +17 -19
  172. package/dist/client/rendering.mjs +5354 -9683
  173. package/dist/client/{scrollToBlock-lPr1oqxB.mjs → scrollToBlock-DtmdM3v-.mjs} +2 -2
  174. package/dist/client/{shop-DXQtMo2O.mjs → shop-CNjZK16F.mjs} +6 -6
  175. package/dist/client/{shop-commerce-quDL411J.mjs → shop-commerce-DkNNao1J.mjs} +6 -6
  176. package/dist/client/{shop-commerce-store-Dnu-8Iub.mjs → shop-commerce-store-9WA--zuW.mjs} +1 -1
  177. package/dist/client/{shopShared-BWPUURvG.mjs → shopShared-CHCVfccY.mjs} +3 -3
  178. package/dist/client/{useEventFilters-DRhWp2_5.mjs → useEventFilters-DvuaB4ZN.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-3GhW4knb.mjs} +2 -2
  185. package/dist/{separator-CMhj6BTi.mjs → separator-D3bCWYYb.mjs} +1 -1
  186. package/dist/server/components.mjs +535 -2950
  187. package/dist/server/config-validation.mjs +430 -692
  188. package/dist/server/config.mjs +430 -692
  189. package/dist/server/data.mjs +430 -692
  190. package/dist/server/index.mjs +41 -162
  191. package/dist/server/next.mjs +549 -2964
  192. package/dist/server/page-converter.mjs +331 -560
  193. package/dist/server/prebuild.mjs +1 -1
  194. package/dist/server/rendering/server.mjs +534 -2855
  195. package/dist/server/rendering.mjs +535 -2950
  196. package/dist/server/routing.mjs +574 -1065
  197. package/dist/server/server.mjs +444 -706
  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,7 +21446,7 @@ 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,
@@ -21281,8 +21464,8 @@ z.discriminatedUnion("kind", [
21281
21464
  label: z.string()
21282
21465
  }),
21283
21466
  z.object({
21284
- kind: z.literal("course"),
21285
- display: publicCoursePriceDisplaySchema
21467
+ kind: z.literal("whole_series"),
21468
+ display: publicWholeSeriesPriceDisplaySchema
21286
21469
  })
21287
21470
  ]);
21288
21471
  const publicEventTicketTypePriceDisplaySchema = z.union([
@@ -21384,10 +21567,10 @@ const publicEventPricingSchema = z.discriminatedUnion("kind", [
21384
21567
  })
21385
21568
  }),
21386
21569
  z.object({
21387
- kind: z.literal("course"),
21570
+ kind: z.literal("whole_series"),
21388
21571
  display: z.object({
21389
- kind: z.literal("course"),
21390
- display: publicCoursePriceDisplaySchema
21572
+ kind: z.literal("whole_series"),
21573
+ display: publicWholeSeriesPriceDisplaySchema
21391
21574
  })
21392
21575
  }),
21393
21576
  z.object({
@@ -21804,7 +21987,8 @@ function resolveEventRegistrationScope(context) {
21804
21987
  };
21805
21988
  return { kind: "unscoped" };
21806
21989
  }
21807
- function applyEventRegistrationScope(events, scope) {
21990
+ function resolveEventRegistrationScopedEvents(events, context) {
21991
+ const scope = resolveEventRegistrationScope(context);
21808
21992
  switch (scope.kind) {
21809
21993
  case "occurrenceSeries":
21810
21994
  case "pageSurfaceSeries": return events.filter((event) => event.seriesId === scope.seriesId);
@@ -21816,9 +22000,6 @@ function applyEventRegistrationScope(events, scope) {
21816
22000
  case "unscoped": return [...events];
21817
22001
  }
21818
22002
  }
21819
- function resolveEventRegistrationScopedEvents(events, context) {
21820
- return applyEventRegistrationScope(events, resolveEventRegistrationScope(context));
21821
- }
21822
22003
  //#endregion
21823
22004
  //#region ../blocks/src/system/runtime/nodes/event-registration/registrationSurface.ts
21824
22005
  function planEventRegistrationScope(input) {
@@ -21912,14 +22093,14 @@ function isRecord$4(value) {
21912
22093
  }
21913
22094
  function isPublicEventPricing(value) {
21914
22095
  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";
22096
+ 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
22097
  }
21917
22098
  function isPublicEventTicketType(value) {
21918
22099
  return isRecord$4(value) && typeof value.id === "string";
21919
22100
  }
21920
22101
  function readTicketTypePriceDisplay(value, currency) {
21921
22102
  const display = readLegacyPriceDisplay(value, currency);
21922
- return display.kind === "course" || display.kind === "external" ? {
22103
+ return display.kind === "whole_series" || display.kind === "external" ? {
21923
22104
  kind: "unavailable",
21924
22105
  currency
21925
22106
  } : display;
@@ -21977,11 +22158,11 @@ function readLegacyPriceDisplay(value, currency) {
21977
22158
  kind: "unavailable",
21978
22159
  currency: displayCurrency
21979
22160
  };
21980
- case "course": return isRecord$4(value.display) ? {
21981
- kind: "course",
22161
+ case "whole_series": return isRecord$4(value.display) ? {
22162
+ kind: "whole_series",
21982
22163
  display: readCoursePriceDisplay(value.display, displayCurrency)
21983
22164
  } : {
21984
- kind: "course",
22165
+ kind: "whole_series",
21985
22166
  display: {
21986
22167
  kind: "unavailable",
21987
22168
  currency: displayCurrency
@@ -22107,7 +22288,7 @@ function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
22107
22288
  //#endregion
22108
22289
  //#region ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
22109
22290
  function eventMatchesOccurrenceId(event, occurrenceId) {
22110
- return event.registrationOccurrenceId === occurrenceId || event.publicEventId === occurrenceId;
22291
+ return event.registrationSubject.kind === "occurrence" && (event.registrationSubject.occurrenceId === occurrenceId || event.selectionId === occurrenceId);
22111
22292
  }
22112
22293
  function findPreSelectedEvent(input) {
22113
22294
  const occurrenceContext = input.occurrenceContext;
@@ -22133,12 +22314,127 @@ function toRegistrationEvent(event) {
22133
22314
  return {
22134
22315
  ...event,
22135
22316
  pricing: resolveRuntimeEventPricing(event),
22136
- publicEventId: event.id,
22137
- registrationOccurrenceId: event.occurrenceId
22317
+ selectionId: event.id,
22318
+ registrationSubject: {
22319
+ kind: "occurrence",
22320
+ occurrenceId: event.occurrenceId
22321
+ }
22138
22322
  };
22139
22323
  }
22140
22324
  function toRegistrationEvents(events) {
22141
- return events.map(toRegistrationEvent);
22325
+ return events.filter((event) => event.bookingScope === "single_occurrence").map(toRegistrationEvent);
22326
+ }
22327
+ function toWholeSeriesTicketType(option) {
22328
+ return {
22329
+ ...option,
22330
+ capacityMode: option.capacityLimit === null ? "unlimited" : "limited",
22331
+ attendanceScope: option.attendanceScope ?? void 0,
22332
+ availability: {
22333
+ kind: "available",
22334
+ remainingCapacity: option.capacityLimit
22335
+ }
22336
+ };
22337
+ }
22338
+ function toWholeSeriesPricing(offering) {
22339
+ const resolved = resolveWholeSeriesPricingState(offering);
22340
+ switch (offering.pricing.pricingStrategy) {
22341
+ case "free": return {
22342
+ kind: "free_registration",
22343
+ currency: offering.currency,
22344
+ display: {
22345
+ kind: "free",
22346
+ currency: offering.currency
22347
+ }
22348
+ };
22349
+ case "single": {
22350
+ const amount = offering.pricing.singlePriceAmount ?? 0;
22351
+ return amount === 0 ? {
22352
+ kind: "free_registration",
22353
+ currency: offering.currency,
22354
+ display: {
22355
+ kind: "free",
22356
+ currency: offering.currency
22357
+ }
22358
+ } : {
22359
+ kind: "single_paid",
22360
+ amount,
22361
+ currency: offering.currency,
22362
+ display: {
22363
+ kind: "exact",
22364
+ amount,
22365
+ currency: offering.currency
22366
+ }
22367
+ };
22368
+ }
22369
+ case "tiered": return {
22370
+ kind: "ticket_types",
22371
+ currency: offering.currency,
22372
+ ticketTypes: resolved.selectableOptions.map((option) => toWholeSeriesTicketType(option)),
22373
+ display: resolved.display
22374
+ };
22375
+ case "sliding_scale": return {
22376
+ kind: "sliding_scale",
22377
+ minAmount: offering.pricing.slidingMinAmount ?? 0,
22378
+ maxAmount: offering.pricing.slidingMaxAmount ?? 0,
22379
+ suggestedAmount: offering.pricing.slidingSuggestedAmount ?? null,
22380
+ currency: offering.currency,
22381
+ display: {
22382
+ kind: "range",
22383
+ minAmount: offering.pricing.slidingMinAmount ?? 0,
22384
+ maxAmount: offering.pricing.slidingMaxAmount ?? 0,
22385
+ currency: offering.currency
22386
+ }
22387
+ };
22388
+ }
22389
+ }
22390
+ function toAttendanceModes(offering) {
22391
+ return (offering.deliveryMode === "hybrid" ? ["in_person", "online"] : [offering.deliveryMode]).map((mode) => ({
22392
+ mode,
22393
+ capacity: offering.enrollmentCapacity,
22394
+ registeredCount: offering.enrolledCount,
22395
+ availableSpots: offering.availableSpots,
22396
+ waitlistEnabled: offering.waitlistEnabled
22397
+ }));
22398
+ }
22399
+ function toWholeSeriesRegistrationEvent(offering) {
22400
+ const firstSession = offering.sessions[0];
22401
+ const lastSession = offering.sessions[offering.sessions.length - 1];
22402
+ return {
22403
+ selectionId: offering.eventSeriesId,
22404
+ registrationSubject: {
22405
+ kind: "wholeSeries",
22406
+ eventSeriesId: offering.eventSeriesId,
22407
+ sessions: offering.sessions
22408
+ },
22409
+ seriesId: offering.eventSeriesId,
22410
+ title: offering.title,
22411
+ startsAt: firstSession?.startsAt ?? "",
22412
+ endsAt: lastSession?.endsAt ?? firstSession?.endsAt ?? "",
22413
+ bookingAvailability: offering.enrollmentOpen ? { kind: "open" } : {
22414
+ kind: "closed",
22415
+ reason: "enrollment_closed"
22416
+ },
22417
+ deliveryMode: offering.deliveryMode,
22418
+ attendanceModes: toAttendanceModes(offering),
22419
+ capacity: offering.enrollmentCapacity,
22420
+ registeredCount: offering.enrolledCount,
22421
+ availableSpots: offering.availableSpots,
22422
+ waitlistEnabled: offering.waitlistEnabled,
22423
+ venue: offering.venue ? {
22424
+ ...offering.venue,
22425
+ location: null
22426
+ } : null,
22427
+ eventCategory: null,
22428
+ teamMembers: offering.teamMembers,
22429
+ status: offering.status,
22430
+ timeZone: firstSession?.timeZone ?? "UTC",
22431
+ pricing: toWholeSeriesPricing(offering),
22432
+ paymentTerms: offering.paymentTerms,
22433
+ consent: offering.consent,
22434
+ requireGuestDetails: offering.requireGuestDetails,
22435
+ acceptsPasses: false,
22436
+ acceptsMemberships: offering.acceptsMemberships
22437
+ };
22142
22438
  }
22143
22439
  //#endregion
22144
22440
  //#region ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
@@ -22164,11 +22460,7 @@ const eventRegistrationHydrationSchemaShape = {
22164
22460
  maxTickets: z.string().optional(),
22165
22461
  showVenue: z.boolean().optional(),
22166
22462
  showCapacity: z.boolean().optional(),
22167
- showSessions: z.boolean().optional(),
22168
- showPrice: z.boolean().optional(),
22169
22463
  successMessage: z.string().optional(),
22170
- waitlistMessage: z.string().optional(),
22171
- membershipMessage: z.string().optional(),
22172
22464
  buttonVariant: registrationButtonVariantSchema.optional(),
22173
22465
  overlayEnabled: z.boolean().optional(),
22174
22466
  spamProtectionEnabled: z.boolean().optional(),
@@ -22238,6 +22530,15 @@ function resolveWholeSeriesOffering(source) {
22238
22530
  return source.wholeSeriesOffering ?? source.subjectWholeSeriesOffering ?? null;
22239
22531
  }
22240
22532
  function buildEventRegistrationShellStepLabels(source) {
22533
+ const selectedOffering = resolveWholeSeriesOffering(source);
22534
+ if (selectedOffering) {
22535
+ const selectedEvent = toWholeSeriesRegistrationEvent(selectedOffering);
22536
+ return getWizardStepsForContext(true, resolveEventRequiresPayment({
22537
+ eligibility: null,
22538
+ selectedTicketType: null,
22539
+ event: selectedEvent
22540
+ })).map((step) => shellLabelForRegistrationStep(step, [selectedEvent]));
22541
+ }
22241
22542
  const scopedEvents = scopeEventRegistrationEvents(source);
22242
22543
  if (scopedEvents.length === 0) return EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
22243
22544
  const preSelectedEvent = findPreSelectedEvent({
@@ -22301,11 +22602,7 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
22301
22602
  maxTickets: source.maxTickets ?? void 0,
22302
22603
  showVenue: source.showVenue,
22303
22604
  showCapacity: source.showCapacity,
22304
- showSessions: source.showSessions,
22305
- showPrice: source.showPrice,
22306
22605
  successMessage: source.successMessage,
22307
- waitlistMessage: source.waitlistMessage,
22308
- membershipMessage: source.membershipMessage,
22309
22606
  buttonVariant: source.buttonVariant,
22310
22607
  overlayEnabled: source.overlayEnabled,
22311
22608
  spamProtectionEnabled: source.spamProtectionEnabled,
@@ -22421,24 +22718,6 @@ const eventRegistrationBlockDefinition = {
22421
22718
  defaultValue: true,
22422
22719
  ui: { intent: "display" }
22423
22720
  },
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
22721
  {
22443
22722
  id: "successMessage",
22444
22723
  type: "text",
@@ -22449,26 +22728,6 @@ const eventRegistrationBlockDefinition = {
22449
22728
  defaultValue: "Thank you for registering! Check your email for confirmation details.",
22450
22729
  maxLength: 500
22451
22730
  },
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
22731
  {
22473
22732
  id: "buttonText",
22474
22733
  type: "text",
@@ -22500,11 +22759,7 @@ const eventRegistrationBlockDefinition = {
22500
22759
  } },
22501
22760
  showVenue: { $bind: { from: "content.showVenue" } },
22502
22761
  showCapacity: { $bind: { from: "content.showCapacity" } },
22503
- showSessions: { $bind: { from: "content.showSessions" } },
22504
- showPrice: { $bind: { from: "content.showPrice" } },
22505
22762
  successMessage: { $bind: { from: "content.successMessage" } },
22506
- waitlistMessage: { $bind: { from: "content.waitlistMessage" } },
22507
- membershipMessage: { $bind: { from: "content.membershipMessage" } },
22508
22763
  buttonText: { $bind: {
22509
22764
  from: "content.buttonText",
22510
22765
  fallback: "Complete Registration"
@@ -22621,254 +22876,6 @@ const eventRegistrationBlockDefinition = {
22621
22876
  }
22622
22877
  };
22623
22878
  //#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
22879
  //#region ../blocks/src/system/blocks/event-details.ts
22873
22880
  /**
22874
22881
  * Event Details Block
@@ -23115,200 +23122,6 @@ const eventDetailsBlockDefinition = {
23115
23122
  mode: "server"
23116
23123
  } }
23117
23124
  };
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
23125
  const eventSpotlightBlockDefinition = {
23313
23126
  manifest: createBlockManifest({
23314
23127
  id: "block.event-spotlight",
@@ -25810,7 +25623,7 @@ const offeringsPreviewManifest = createBlockManifest({
25810
25623
  fallback: "published"
25811
25624
  } },
25812
25625
  routeCandidates: { $bind: { from: "data.routeCandidates" } },
25813
- courses: { $bind: { from: "data.courses" } },
25626
+ wholeSeriesOfferings: { $bind: { from: "data.wholeSeriesOfferings" } },
25814
25627
  ...offeringsPreviewEventDataBindings
25815
25628
  })
25816
25629
  ], { gap: "lg" }),
@@ -25827,7 +25640,7 @@ const offeringsPreviewBlockDefinition = {
25827
25640
  dataSchemas: {
25828
25641
  ...offeringsPreviewEventDataSchemas,
25829
25642
  routeCandidates: publicRouteCandidatesSchema.optional(),
25830
- courses: publicWholeSeriesOfferingsArraySchema.optional()
25643
+ wholeSeriesOfferings: publicWholeSeriesOfferingsArraySchema.optional()
25831
25644
  },
25832
25645
  dataLoaders: {
25833
25646
  ...offeringsPreviewEventDataLoaders,
@@ -25836,7 +25649,7 @@ const offeringsPreviewBlockDefinition = {
25836
25649
  params: {},
25837
25650
  mode: "server"
25838
25651
  },
25839
- courses: {
25652
+ wholeSeriesOfferings: {
25840
25653
  endpoint: "listPublicWholeSeriesOfferings",
25841
25654
  params: {
25842
25655
  siteId: { $bind: { from: "$root.siteId" } },
@@ -30803,22 +30616,6 @@ const systemBlockDefinitions = [
30803
30616
  weight: "standard"
30804
30617
  })]
30805
30618
  })),
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
30619
  withDesignCapability("block.event-spotlight", eventSpotlightBlockDefinition, eventSpotlightCapable(), defineBlockDesignMetadata({
30823
30620
  flow: offeringsFlow,
30824
30621
  layoutProfiles: [layoutProfile({
@@ -31206,32 +31003,6 @@ let cachedBlockSummaries;
31206
31003
  */
31207
31004
  function getBuiltInContentTypes() {
31208
31005
  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
31006
  {
31236
31007
  key: "event",
31237
31008
  name: "Event",