@riverbankcms/sdk 0.136.0 → 0.138.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 (343) hide show
  1. package/CHANGELOG.md +109 -0
  2. package/README.md +7 -4
  3. package/dist/{PreviewEditorSidebar-BU5ZlhQR.mjs → PreviewEditorSidebar-BVPur_CU.mjs} +12 -18
  4. package/dist/{PreviewEditorUI-9XkHL-bC.mjs → PreviewEditorUI-DLhWX8oh.mjs} +3 -3
  5. package/dist/{PreviewQueryProvider-wbEpXryy.mjs → PreviewQueryProvider-BguJY1SW.mjs} +1 -1
  6. package/dist/{SdkPreviewModeRuntime-CnWmj-2B.mjs → SdkPreviewModeRuntime-Tda6qw4z.mjs} +1375 -495
  7. package/dist/{SiteChromeCustomizeContext-B6d5zkog.mjs → SiteChromeCustomizeContext-BHFgMjde.mjs} +35665 -33602
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +7226 -3057
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +1223 -811
  10. package/dist/_dts/ai/src/designer/themePatch.d.ts +5 -10
  11. package/dist/_dts/api/src/accessAdmin.d.ts +16 -18
  12. package/dist/_dts/api/src/accountApi.d.ts +49 -2
  13. package/dist/_dts/api/src/appointmentServiceContracts.d.ts +83 -0
  14. package/dist/_dts/api/src/appointmentServiceLocation.d.ts +12 -0
  15. package/dist/_dts/api/src/appointmentServiceVisibility.d.ts +14 -0
  16. package/dist/_dts/api/src/appointmentSetup.d.ts +8 -0
  17. package/dist/_dts/api/src/bookingConfig.d.ts +35 -87
  18. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +1 -1
  19. package/dist/_dts/api/src/bookingOperations.d.ts +2 -69
  20. package/dist/_dts/api/src/bookingRecords.d.ts +2 -2
  21. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +2 -2
  22. package/dist/_dts/api/src/bookingServicePricing.d.ts +47 -0
  23. package/dist/_dts/api/src/bookings.d.ts +2 -2
  24. package/dist/_dts/api/src/cache-tags.d.ts +7 -2
  25. package/dist/_dts/api/src/common/index.d.ts +1 -0
  26. package/dist/_dts/api/src/common/zodFieldErrors.d.ts +34 -0
  27. package/dist/_dts/api/src/communications.d.ts +14 -8
  28. package/dist/_dts/api/src/contentRuntime.d.ts +3 -6
  29. package/dist/_dts/api/src/domainConnection.d.ts +41 -0
  30. package/dist/_dts/api/src/endpoints.d.ts +1636 -1637
  31. package/dist/_dts/api/src/eventAttendanceLabels.d.ts +2 -2
  32. package/dist/_dts/api/src/eventManagementContracts.d.ts +10 -14
  33. package/dist/_dts/api/src/index.d.ts +11 -9
  34. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
  35. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  36. package/dist/_dts/api/src/media.d.ts +19 -2
  37. package/dist/_dts/api/src/occurrenceScheduling.d.ts +1 -1
  38. package/dist/_dts/api/src/participantMessaging.d.ts +3 -3
  39. package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
  40. package/dist/_dts/api/src/publicBookingAvailabilityEndpointDefinitions.d.ts +62 -0
  41. package/dist/_dts/api/src/publicBookingService.d.ts +109 -2
  42. package/dist/_dts/api/src/publicEventCheckoutEndpointDefinitions.d.ts +27 -0
  43. package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +7 -0
  44. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +2 -1
  45. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +30 -148
  46. package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +8 -26
  47. package/dist/_dts/api/src/publicExperience/siteEndpoints.d.ts +5 -13
  48. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +2 -3
  49. package/dist/_dts/api/src/schemas/admin-allowed-domains.d.ts +76 -0
  50. package/dist/_dts/api/src/schemas/admin-observability-logs.d.ts +61 -0
  51. package/dist/_dts/api/src/schemas/admin-users.d.ts +80 -0
  52. package/dist/_dts/api/src/schemas/newsletter-memberships.d.ts +98 -0
  53. package/dist/_dts/api/src/schemas/sdk-entries.d.ts +128 -0
  54. package/dist/_dts/api/src/schemas/site-api-keys.d.ts +112 -0
  55. package/dist/_dts/api/src/schemas/support.d.ts +35 -0
  56. package/dist/_dts/api/src/sdk-event-booking-offer.d.ts +14 -0
  57. package/dist/_dts/api/src/sdk-event-payment-terms.d.ts +4 -16
  58. package/dist/_dts/api/src/sdk-event-upsert.d.ts +11 -21
  59. package/dist/_dts/api/src/sdkContracts.d.ts +8 -23
  60. package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +37 -0
  61. package/dist/_dts/api/src/sdkMediaContracts.d.ts +40 -0
  62. package/dist/_dts/api/src/sdkMediaEndpointDefinitions.d.ts +66 -0
  63. package/dist/_dts/api/src/sdkThemeWire.d.ts +157 -146
  64. package/dist/_dts/api/src/siteInfrastructure.d.ts +37 -37
  65. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +35 -54
  66. package/dist/_dts/api/src/siteOnboarding.d.ts +3 -3
  67. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +38 -16
  68. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +37 -17
  69. package/dist/_dts/api/src/types.d.ts +2 -2
  70. package/dist/_dts/api/src/{wholeSeriesOfferings.d.ts → wholeSeriesRuns.d.ts} +11 -67
  71. package/dist/_dts/block-form/src/FormRenderer.d.ts +3 -1
  72. package/dist/_dts/block-form/src/backend/store-backend.d.ts +2 -1
  73. package/dist/_dts/block-form/src/backend/types.d.ts +2 -0
  74. package/dist/_dts/block-form/src/context/FormFocusContext.d.ts +7 -0
  75. package/dist/_dts/block-form/src/index.d.ts +2 -0
  76. package/dist/_dts/block-form/src/manifest/ManifestForm.d.ts +2 -1
  77. package/dist/_dts/block-form/src/utils/promotedFieldBackend.d.ts +8 -0
  78. package/dist/_dts/block-form/src/utils/promotedFieldPlan.d.ts +18 -0
  79. package/dist/_dts/block-form/src/utils/resolvePromotedFields.d.ts +8 -1
  80. package/dist/_dts/blocks/src/BlockErrorBoundary.d.ts +46 -0
  81. package/dist/_dts/blocks/src/PageRenderer.d.ts +2 -141
  82. package/dist/_dts/blocks/src/contracts/index.d.ts +2 -0
  83. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +12 -6
  84. package/dist/_dts/blocks/src/index.d.ts +1 -0
  85. package/dist/_dts/blocks/src/pageRenderAudience.d.ts +54 -0
  86. package/dist/_dts/blocks/src/pageRenderDiagnostics.d.ts +26 -0
  87. package/dist/_dts/blocks/src/pageRenderPlan.d.ts +116 -0
  88. package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +109 -0
  89. package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +1 -0
  90. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +154 -0
  91. package/dist/_dts/blocks/src/portal/types.d.ts +1 -1
  92. package/dist/_dts/blocks/src/server.d.ts +1 -0
  93. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +12 -20
  94. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +1 -1
  95. package/dist/_dts/blocks/src/system/blocks/events/eventCalendarDataLoaders.d.ts +3 -0
  96. package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +95 -0
  97. package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +1 -0
  98. package/dist/_dts/blocks/src/system/blocks/events/shared/runGrouping.d.ts +37 -0
  99. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +1046 -773
  100. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +59 -46
  101. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -3
  102. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +161 -161
  103. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +13 -6
  104. package/dist/_dts/blocks/src/system/blocks/offerings-preview/scheduleSummary.d.ts +10 -4
  105. package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +2 -2
  106. package/dist/_dts/blocks/src/system/constants/events.d.ts +4 -0
  107. package/dist/_dts/blocks/src/system/customize/facets.d.ts +4 -4
  108. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  109. package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +5 -9
  110. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +83 -83
  111. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +12 -3
  112. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -8
  113. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  114. package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +13 -0
  115. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +12 -20
  116. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +32 -37
  117. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +15 -18
  118. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +11 -8
  119. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +38 -22
  120. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +7 -0
  121. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/WholeSeriesPricingDisplay.d.ts +2 -2
  122. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +16 -4
  123. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ErrorStep.d.ts +3 -5
  124. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +4 -2
  125. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentSelectionStep.d.ts +1 -1
  126. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +5 -3
  127. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +1 -1
  128. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +1 -1
  129. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +2 -0
  130. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +15 -0
  131. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDerivations.d.ts +2 -2
  132. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorPresentation.d.ts +5 -0
  133. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +25 -0
  134. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.d.ts +14 -3
  135. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +3 -21
  136. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationWizardContext.d.ts +4 -0
  137. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/siteCreditPreview.d.ts +0 -3
  138. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ticketSelectionLines.d.ts +14 -16
  139. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +13 -15
  140. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +7 -3
  141. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +9 -3
  142. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +25 -23
  143. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +2 -0
  144. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +11 -4
  145. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +8 -13
  146. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +5 -0
  147. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +1 -0
  148. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +11 -3
  149. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/capacity.d.ts +164 -0
  150. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/cta.d.ts +29 -0
  151. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +47 -0
  152. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +14 -0
  153. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/people.d.ts +6 -0
  154. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/pricing.d.ts +24 -0
  155. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/OfferingTitle.d.ts +11 -0
  156. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +1 -1
  157. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +1 -1
  158. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +1080 -560
  159. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventProductEligibility.d.ts +2 -2
  160. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +3 -1
  161. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listingLayout.d.ts +23 -0
  162. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +2 -2
  163. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +7 -7
  164. package/dist/_dts/blocks/src/system/transforms/registry/eventCalendar.d.ts +11 -0
  165. package/dist/_dts/commerce/src/moneyReport.d.ts +1 -1
  166. package/dist/_dts/commerce/src/purchase/checkoutErrorCodes.d.ts +1 -1
  167. package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +57 -0
  168. package/dist/_dts/commerce/src/purchase/eventOrderOptionSnapshot.d.ts +3 -0
  169. package/dist/_dts/commerce/src/purchase/index.d.ts +1 -0
  170. package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +6 -3
  171. package/dist/_dts/commerce/src/purchase/types.d.ts +3 -2
  172. package/dist/_dts/commerce/src/waitlists.d.ts +1 -1
  173. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +4 -0
  174. package/dist/_dts/content-editor/src/controller/useBlockedPublishPlan.d.ts +11 -0
  175. package/dist/_dts/content-editor/src/hooks/applyBlockedPublishPlan.d.ts +1 -1
  176. package/dist/_dts/content-editor/src/hooks/blockedPublishPlan.d.ts +13 -5
  177. package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +5 -1
  178. package/dist/_dts/content-editor/src/hooks/validateBlocksForPublish.d.ts +34 -2
  179. package/dist/_dts/content-editor/src/index.d.ts +2 -1
  180. package/dist/_dts/content-editor/src/ui/blockValidationManifestRegistry.d.ts +2 -0
  181. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +4 -2
  182. package/dist/_dts/content-editor/src/ui/stores/types.d.ts +27 -5
  183. package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
  184. package/dist/_dts/content-model/src/templates/defaults.d.ts +11 -0
  185. package/dist/_dts/core/src/branded.d.ts +28 -9
  186. package/dist/_dts/core/src/event-booking-offer-parser.d.ts +82 -0
  187. package/dist/_dts/core/src/event-booking-offer.d.ts +89 -0
  188. package/dist/_dts/core/src/event-page-surface-subject.d.ts +81 -4
  189. package/dist/_dts/core/src/event-pricing.d.ts +81 -89
  190. package/dist/_dts/core/src/index.d.ts +3 -0
  191. package/dist/_dts/core/src/non-empty-array.d.ts +3 -0
  192. package/dist/_dts/core/src/whole-series-run-schedule.d.ts +92 -0
  193. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +495 -279
  194. package/dist/_dts/db/src/index.d.ts +1 -0
  195. package/dist/_dts/db/src/utils/postgrestFilter.d.ts +2 -0
  196. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +2 -6
  197. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +1 -1
  198. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +2 -2
  199. package/dist/_dts/editor-blocks/src/block-editor/BlockSettingsModal.d.ts +4 -2
  200. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockValidationManifests.d.ts +1 -0
  201. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +22 -7
  202. package/dist/_dts/editor-blocks/src/block-editor/useSettingsFieldFocus.d.ts +18 -0
  203. package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +4 -0
  204. package/dist/_dts/media-core/src/fileDomain.d.ts +3 -0
  205. package/dist/_dts/preview-next/src/client/blocks/previewBatchLoaderParams.d.ts +2 -0
  206. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -0
  207. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
  208. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +3 -2
  209. package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +1 -1
  210. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +2 -0
  211. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlSaveRequest.d.ts +51 -0
  212. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +24 -2
  213. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +23 -1
  214. package/dist/_dts/preview-next/src/client/preview/usePersistedHeaderPreferences.d.ts +8 -0
  215. package/dist/_dts/sdk/src/client/{eventSubrouteReadOperations.d.ts → publicEventReadOperations.d.ts} +4 -3
  216. package/dist/_dts/sdk/src/client/types.d.ts +6 -10
  217. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  218. package/dist/_dts/sdk/src/config/validation.d.ts +3 -3
  219. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +5 -0
  220. package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +2 -3
  221. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +8 -8
  222. package/dist/_dts/sdk/src/next/tags.d.ts +5 -8
  223. package/dist/_dts/sdk/src/public-api/contracts.d.ts +2 -26
  224. package/dist/_dts/sdk/src/rendering/helpers/footerPageOutline.d.ts +9 -1
  225. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
  226. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +6 -53
  227. package/dist/_dts/sdk/src/rendering/server.d.ts +1 -0
  228. package/dist/_dts/sdk/src/version.d.ts +1 -1
  229. package/dist/_dts/theme-core/src/accordions/types.d.ts +5 -5
  230. package/dist/_dts/theme-core/src/buttons/styles/recipes/flatInk.d.ts +25 -25
  231. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +25 -25
  232. package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +7 -7
  233. package/dist/_dts/theme-core/src/buttons/types.d.ts +22 -22
  234. package/dist/_dts/theme-core/src/cards/types.d.ts +49 -49
  235. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  236. package/dist/_dts/theme-core/src/gradients/types.d.ts +5 -0
  237. package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +26 -3
  238. package/dist/_dts/theme-core/src/inputs/types.d.ts +2 -2
  239. package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
  240. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +195 -195
  241. package/dist/_dts/theme-core/src/navigation/types.d.ts +3 -3
  242. package/dist/_dts/theme-core/src/palette/colors.d.ts +1 -1
  243. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +2 -2
  244. package/dist/_dts/theme-core/src/schema.d.ts +258 -257
  245. package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +1 -1
  246. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  247. package/dist/_dts/theme-core/src/site-styles/cardRoleVocabulary.d.ts +1 -1
  248. package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +43 -3
  249. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +10 -0
  250. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +4 -4
  251. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  252. package/dist/_dts/theme-core/src/site-styles/headerBrandPresentation.d.ts +63 -0
  253. package/dist/_dts/theme-core/src/site-styles/headerBytesComparison.d.ts +30 -0
  254. package/dist/_dts/theme-core/src/site-styles/headerInteractionPalette.d.ts +50 -1
  255. package/dist/_dts/theme-core/src/site-styles/headerLayoutCatalog.d.ts +48 -9
  256. package/dist/_dts/theme-core/src/site-styles/headerPreferences.d.ts +162 -0
  257. package/dist/_dts/theme-core/src/site-styles/headerPreferencesPersistence.d.ts +73 -0
  258. package/dist/_dts/theme-core/src/site-styles/headerRecompile.d.ts +118 -0
  259. package/dist/_dts/theme-core/src/site-styles/headerStyleCompiler.d.ts +10 -1
  260. package/dist/_dts/theme-core/src/site-styles/headerStyleDefaults.d.ts +1 -1
  261. package/dist/_dts/theme-core/src/site-styles/headerStyleRecipe.d.ts +7 -0
  262. package/dist/_dts/theme-core/src/site-styles/index.d.ts +5 -0
  263. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
  264. package/dist/_dts/theme-core/src/site-styles/siteChromeBackgrounds.d.ts +20 -1
  265. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +43 -2
  266. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  267. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +3 -3
  268. package/dist/_dts/ui/src/badge.d.ts +1 -1
  269. package/dist/_dts/ui/src/button.d.ts +2 -2
  270. package/dist/client/{BookingConsentAgreement-DCch21a6.mjs → BookingConsentAgreement-DQUik1Mx.mjs} +2 -2
  271. package/dist/client/{DiscountCodeDisclosure-DIj1T59K.mjs → DiscountCodeDisclosure-CU67Q4vH.mjs} +1 -1
  272. package/dist/client/{EventCombined.client-BWVNlXTx.mjs → EventCombined.client-a02TXUgg.mjs} +233 -348
  273. package/dist/client/{EventListing.client-DVFCDe3i.mjs → EventListing.client-99qx7jFl.mjs} +2 -2
  274. package/dist/client/{LeafletStaticMap-BY5mIHw9.mjs → LeafletStaticMap-CWzcq73L.mjs} +1 -1
  275. package/dist/client/{accordion-CK29E8rG.mjs → accordion-D1nb3-Oj.mjs} +1 -1
  276. package/dist/client/{bookingForm-DFvnet-N.mjs → bookingForm-BGrmLhaO.mjs} +5 -5
  277. package/dist/client/bookings.mjs +10555 -10475
  278. package/dist/client/{carousel-BVU5NQlb.mjs → carousel-DSmOx3ad.mjs} +1 -1
  279. package/dist/client/{cart-BNItcZVa.mjs → cart-COWeOIUk.mjs} +3 -3
  280. package/dist/client/{checkout-Bu6iCdkP.mjs → checkout-CeysaIJK.mjs} +3 -3
  281. package/dist/client/client.mjs +58968 -57441
  282. package/dist/client/{context-BImarOAq.mjs → context-DBzX85Xc.mjs} +46 -18
  283. package/dist/client/dates-DCYhZBlW.mjs +264 -0
  284. package/dist/client/{eventCalendar-DS2h-UXD.mjs → eventCalendar-BgsN73Ul.mjs} +21 -44
  285. package/dist/client/{eventCombined-Drt4Oq9p.mjs → eventCombined-DcZQAMQP.mjs} +3 -3
  286. package/dist/client/{eventDetails-Bl2vWgTX.mjs → eventDetails-BWwGJ54l.mjs} +131 -51
  287. package/dist/client/{eventListing-CS7PHY7v.mjs → eventListing-DqYqV8vp.mjs} +3 -3
  288. package/dist/client/{eventRegistration-D-j8eNy2.mjs → eventRegistration-DQGDgu_e.mjs} +1122 -803
  289. package/dist/client/{form-RMpoLTyr.mjs → form-ClfpasVT.mjs} +2 -2
  290. package/dist/client/{headerSection-BYE3Lb3k.mjs → headerSection-BuOMe98N.mjs} +2 -2
  291. package/dist/client/hooks.mjs +9630 -9526
  292. package/dist/client/{locationMap-BxSr7Kkh.mjs → locationMap-CEqu_sfa.mjs} +2 -2
  293. package/dist/client/{newsletterForm-DerbXwFC.mjs → newsletterForm-IbrHjMxy.mjs} +2 -2
  294. package/dist/client/pricing-xj7MPZlK.mjs +314 -0
  295. package/dist/client/{productDetail-4SZCLhAf.mjs → productDetail-vxqTt5Xj.mjs} +3 -3
  296. package/dist/client/{productList-D7AP4GNq.mjs → productList-OTdZu8sb.mjs} +3 -3
  297. package/dist/client/{propsDecoder-pzBeCh14.mjs → propsDecoder-CY9gGEF7.mjs} +786 -1194
  298. package/dist/client/rendering/client.mjs +11481 -10469
  299. package/dist/client/rendering/islands.mjs +17 -17
  300. package/dist/client/rendering.mjs +26871 -25232
  301. package/dist/client/{scrollToBlock-CduAKf8T.mjs → scrollToBlock--BFV6kl-.mjs} +1 -1
  302. package/dist/client/{shop-Cp5p_kGe.mjs → shop-CP4YbDL9.mjs} +6 -6
  303. package/dist/client/{shop-commerce-DicXYaYX.mjs → shop-commerce-APs4XBXE.mjs} +5 -5
  304. package/dist/client/{shop-commerce-store-CGWnpY4K.mjs → shop-commerce-store-CAVLxLFr.mjs} +1 -1
  305. package/dist/client/{shopShared-BDf9ljkm.mjs → shopShared-BnSRrwXI.mjs} +3 -3
  306. package/dist/client/{useEventFilters-DeeyGYuk.mjs → useEventFilters-1a1by4c8.mjs} +33 -18
  307. package/dist/preview-next/before-render.mjs +186 -148
  308. package/dist/preview-next/client/runtime.mjs +4 -4
  309. package/dist/preview-next/keepAlive.mjs +186 -148
  310. package/dist/preview-next/middleware.mjs +186 -148
  311. package/dist/{previewAuthStore-DbqBol0V.mjs → previewAuthStore-BkEgnYPP.mjs} +186 -148
  312. package/dist/{sdk-runtime-19MO27F0.mjs → sdk-runtime-DwGfsT0S.mjs} +2 -2
  313. package/dist/{separator-DaPLtJ1f.mjs → separator-BeqDLneQ.mjs} +1 -1
  314. package/dist/server/components.mjs +53243 -51879
  315. package/dist/server/config-validation.mjs +1015 -906
  316. package/dist/server/config.mjs +1019 -910
  317. package/dist/server/data.mjs +10304 -10200
  318. package/dist/server/index.mjs +217 -198
  319. package/dist/server/next/tags.mjs +18 -4
  320. package/dist/server/next.mjs +62787 -61617
  321. package/dist/server/page-converter.mjs +797 -917
  322. package/dist/server/prebuild.mjs +1 -1
  323. package/dist/server/rendering/server.mjs +52557 -51365
  324. package/dist/server/rendering.mjs +54373 -53054
  325. package/dist/server/routing.mjs +13274 -13142
  326. package/dist/server/server.mjs +1076 -1154
  327. package/dist/server/theme-bridge.mjs +69 -9
  328. package/dist/server/theme.mjs +27 -8
  329. package/dist/styles/index.css +32 -1
  330. package/package.json +1 -1
  331. package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +0 -65
  332. package/dist/_dts/api/src/publicWholeSeriesEndpointDefinitions.d.ts +0 -20
  333. package/dist/_dts/api/src/sdk-event-pricing.d.ts +0 -61
  334. package/dist/_dts/blocks/src/system/blocks/events/whole-series/index.d.ts +0 -3
  335. package/dist/_dts/blocks/src/system/blocks/events/whole-series/pricing.d.ts +0 -50
  336. package/dist/_dts/blocks/src/system/blocks/events/whole-series/schemas.d.ts +0 -135
  337. package/dist/_dts/blocks/src/system/blocks/events/whole-series/types.d.ts +0 -87
  338. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +0 -48
  339. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +0 -17
  340. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +0 -100
  341. package/dist/_dts/sdk/src/client/wholeSeriesReadOperations.d.ts +0 -11
  342. package/dist/_dts/sdk/src/public-api/wholeSeriesContracts.d.ts +0 -2
  343. /package/dist/_dts/blocks/src/system/runtime/nodes/events/{shared → domain}/destination.d.ts +0 -0
@@ -33,7 +33,7 @@ export type OccurrenceId = Brand<string, 'OccurrenceId'>;
33
33
  export type EventOfferingId = Brand<string, 'EventOfferingId'>;
34
34
  export type EventSeriesId = Brand<string, 'EventSeriesId'>;
35
35
  export type EventPageRouteSlug = Brand<string, 'EventPageRouteSlug'>;
36
- export type TicketTypeId = Brand<string, 'TicketTypeId'>;
36
+ export type EventAttendeeTicketLineId = Brand<string, 'EventAttendeeTicketLineId'>;
37
37
  export type EventSeriesRegistrationId = Brand<string, 'EventSeriesRegistrationId'>;
38
38
  export type EventCategoryId = Brand<string, 'EventCategoryId'>;
39
39
  export type VenueId = Brand<string, 'VenueId'>;
@@ -71,8 +71,12 @@ export type FormId = Brand<string, 'FormId'>;
71
71
  export type FormSubmissionId = Brand<string, 'FormSubmissionId'>;
72
72
  export type PassId = Brand<string, 'PassId'>;
73
73
  export type MembershipId = Brand<string, 'MembershipId'>;
74
- export type CourseId = Brand<string, 'CourseId'>;
75
- export type CourseProgramId = Brand<string, 'CourseProgramId'>;
74
+ /**
75
+ * Historical identity carried by pre-cutover order-item metadata under the
76
+ * `courseId` wire key. There is no live Course entity: this brand exists only
77
+ * so historical snapshots decode to something typed. Parse-only by design.
78
+ */
79
+ export type RetiredCourseId = Brand<string, 'RetiredCourseId'>;
76
80
  export type CustomerId = Brand<string, 'CustomerId'>;
77
81
  export type OrderId = Brand<string, 'OrderId'>;
78
82
  export type OrderItemId = Brand<string, 'OrderItemId'>;
@@ -84,6 +88,18 @@ export type OrderPaymentPlanInstalmentId = Brand<string, 'OrderPaymentPlanInstal
84
88
  export type ManualPaymentOperationId = Brand<string, 'ManualPaymentOperationId'>;
85
89
  export type CheckoutLineId = Brand<string, 'CheckoutLineId'>;
86
90
  export type AttendeeId = Brand<string, 'AttendeeId'>;
91
+ /** Client-generated identity for one registration submission (#1273). */
92
+ export type EventRegistrationCommandId = Brand<string, 'EventRegistrationCommandId'>;
93
+ /**
94
+ * The command *row* that records one registration submission.
95
+ *
96
+ * Distinct from `EventRegistrationCommandId`, which is the client's own id for
97
+ * the submission. Both are UUIDs and both travel together through the order
98
+ * projection, so the type is what stops one being handed over where the other
99
+ * is meant.
100
+ */
101
+ export type EventRegistrationCommandRowId = Brand<string, 'EventRegistrationCommandRowId'>;
102
+ export type EventRegistrationProjectionClaimToken = Brand<string, 'EventRegistrationProjectionClaimToken'>;
87
103
  export type CustomerPassId = Brand<string, 'CustomerPassId'>;
88
104
  export type CustomerMembershipId = Brand<string, 'CustomerMembershipId'>;
89
105
  export type AppointmentId = Brand<string, 'AppointmentId'>;
@@ -169,7 +185,7 @@ export declare const unsafeAsOccurrenceId: (id: string) => OccurrenceId;
169
185
  export declare const unsafeAsEventOfferingId: (id: string) => EventOfferingId;
170
186
  export declare const unsafeAsEventSeriesId: (id: string) => EventSeriesId;
171
187
  export declare const unsafeAsEventPageRouteSlug: (value: string) => EventPageRouteSlug;
172
- export declare const unsafeAsTicketTypeId: (id: string) => TicketTypeId;
188
+ export declare const unsafeAsEventAttendeeTicketLineId: (id: string) => EventAttendeeTicketLineId;
173
189
  export declare const unsafeAsEventSeriesRegistrationId: (id: string) => EventSeriesRegistrationId;
174
190
  export declare const unsafeAsEventCategoryId: (id: string) => EventCategoryId;
175
191
  export declare const unsafeAsVenueId: (id: string) => VenueId;
@@ -207,8 +223,6 @@ export declare const unsafeAsFormId: (id: string) => FormId;
207
223
  export declare const unsafeAsFormSubmissionId: (id: string) => FormSubmissionId;
208
224
  export declare const unsafeAsPassId: (id: string) => PassId;
209
225
  export declare const unsafeAsMembershipId: (id: string) => MembershipId;
210
- export declare const unsafeAsCourseId: (id: string) => CourseId;
211
- export declare const unsafeAsCourseProgramId: (id: string) => CourseProgramId;
212
226
  export declare const unsafeAsCustomerId: (id: string) => CustomerId;
213
227
  export declare const unsafeAsOrderId: (id: string) => OrderId;
214
228
  export declare const unsafeAsOrderItemId: (id: string) => OrderItemId;
@@ -220,6 +234,9 @@ export declare const unsafeAsOrderPaymentPlanInstalmentId: (id: string) => Order
220
234
  export declare const unsafeAsManualPaymentOperationId: (id: string) => ManualPaymentOperationId;
221
235
  export declare const unsafeAsCheckoutLineId: (id: string) => CheckoutLineId;
222
236
  export declare const unsafeAsAttendeeId: (id: string) => AttendeeId;
237
+ export declare const unsafeAsEventRegistrationCommandId: (id: string) => EventRegistrationCommandId;
238
+ export declare const unsafeAsEventRegistrationCommandRowId: (id: string) => EventRegistrationCommandRowId;
239
+ export declare const unsafeAsEventRegistrationProjectionClaimToken: (id: string) => EventRegistrationProjectionClaimToken;
223
240
  export declare const unsafeAsCustomerPassId: (id: string) => CustomerPassId;
224
241
  export declare const unsafeAsCustomerMembershipId: (id: string) => CustomerMembershipId;
225
242
  export declare const unsafeAsAppointmentId: (id: string) => AppointmentId;
@@ -277,8 +294,7 @@ export declare const parsePageId: (value: unknown) => Result<PageId, BrandedIdPa
277
294
  export declare const parsePageSurfaceId: (value: unknown) => Result<PageSurfaceId, BrandedIdParseError>;
278
295
  export declare const parseOccurrenceId: (value: unknown) => Result<OccurrenceId, BrandedIdParseError>;
279
296
  export declare const parseEventOfferingId: (value: unknown) => Result<EventOfferingId, BrandedIdParseError>;
280
- export declare const parseCourseProgramId: (value: unknown) => Result<CourseProgramId, BrandedIdParseError>;
281
- export declare const parseTicketTypeId: (value: unknown) => Result<TicketTypeId, BrandedIdParseError>;
297
+ export declare const parseEventAttendeeTicketLineId: (value: unknown) => Result<EventAttendeeTicketLineId, BrandedIdParseError>;
282
298
  export declare const parsePricingOptionId: (value: unknown) => Result<PricingOptionId, BrandedIdParseError>;
283
299
  export declare const parseUserId: (value: unknown) => Result<UserId, BrandedIdParseError>;
284
300
  export declare const parseProductId: (value: unknown) => Result<ProductId, BrandedIdParseError>;
@@ -292,7 +308,7 @@ export declare const parseNavigationMenuId: (value: unknown) => Result<Navigatio
292
308
  export declare const parseNavigationItemId: (value: unknown) => Result<NavigationItemId, BrandedIdParseError>;
293
309
  export declare const parsePassId: (value: unknown) => Result<PassId, BrandedIdParseError>;
294
310
  export declare const parseMembershipId: (value: unknown) => Result<MembershipId, BrandedIdParseError>;
295
- export declare const parseCourseId: (value: unknown) => Result<CourseId, BrandedIdParseError>;
311
+ export declare const parseRetiredCourseId: (value: unknown) => Result<RetiredCourseId, BrandedIdParseError>;
296
312
  export declare const parseFormId: (value: unknown) => Result<FormId, BrandedIdParseError>;
297
313
  export declare const parseAppointmentId: (value: unknown) => Result<AppointmentId, BrandedIdParseError>;
298
314
  export declare const parseAppointmentServiceId: (value: unknown) => Result<AppointmentServiceId, BrandedIdParseError>;
@@ -300,6 +316,9 @@ export declare const parseAppointmentResourceId: (value: unknown) => Result<Appo
300
316
  export declare const parseAppointmentReservationId: (value: unknown) => Result<AppointmentReservationId, BrandedIdParseError>;
301
317
  export declare const parseAppointmentReservationRunId: (value: unknown) => Result<AppointmentReservationRunId, BrandedIdParseError>;
302
318
  export declare const parseAttendeeId: (value: unknown) => Result<AttendeeId, BrandedIdParseError>;
319
+ export declare const parseEventRegistrationCommandId: (value: unknown) => Result<EventRegistrationCommandId, BrandedIdParseError>;
320
+ export declare const parseEventRegistrationCommandRowId: (value: unknown) => Result<EventRegistrationCommandRowId, BrandedIdParseError>;
321
+ export declare const parseEventRegistrationProjectionClaimToken: (value: unknown) => Result<EventRegistrationProjectionClaimToken, BrandedIdParseError>;
303
322
  export declare const parseDatedOfferingCapacityHoldId: (value: unknown) => Result<DatedOfferingCapacityHoldId, BrandedIdParseError>;
304
323
  export declare const parseDatedOfferingCapacityHoldAuditRef: (value: unknown) => Result<DatedOfferingCapacityHoldAuditRef, BrandedIdParseError>;
305
324
  export declare const parseDatedOfferingRevocationAuditEventId: (value: unknown) => Result<DatedOfferingRevocationAuditEventId, BrandedIdParseError>;
@@ -0,0 +1,82 @@
1
+ import { type EventPricing } from './event-booking-offer';
2
+ import { type CentsParseError } from './money-input';
3
+ import { type Result } from './result';
4
+ import { type ReadonlyNonEmptyArray } from './non-empty-array';
5
+ export type EventPricingOptionParseInput = Readonly<{
6
+ id: unknown;
7
+ name: unknown;
8
+ description: unknown;
9
+ priceAmount: unknown;
10
+ isActive: unknown;
11
+ sortOrder: unknown;
12
+ capacityLimit: unknown;
13
+ saleStartsAt: unknown;
14
+ saleEndsAt: unknown;
15
+ attendanceScope: unknown;
16
+ recipeIdentifier: unknown;
17
+ }>;
18
+ export type EventPricingParseInput = Readonly<{
19
+ pricingStrategy: unknown;
20
+ currency: unknown;
21
+ singlePriceAmount: unknown;
22
+ slidingMinAmount: unknown;
23
+ slidingMaxAmount: unknown;
24
+ slidingSuggestedAmount: unknown;
25
+ options: unknown;
26
+ }>;
27
+ export type EventPricingParseIssue = Readonly<{
28
+ kind: 'invalid_strategy';
29
+ value: unknown;
30
+ }> | Readonly<{
31
+ kind: 'invalid_currency';
32
+ value: unknown;
33
+ }> | Readonly<{
34
+ kind: 'unexpected_value';
35
+ field: AmountField | 'options';
36
+ }> | Readonly<{
37
+ kind: 'invalid_amount';
38
+ field: AmountField;
39
+ error: CentsParseError;
40
+ }> | Readonly<{
41
+ kind: 'invalid_sliding_range';
42
+ }> | Readonly<{
43
+ kind: 'suggested_outside_range';
44
+ }> | Readonly<{
45
+ kind: 'tiered_options_empty';
46
+ }> | Readonly<{
47
+ kind: 'invalid_option';
48
+ index: number;
49
+ issue: EventPricingOptionParseIssue;
50
+ }>;
51
+ export type EventPricingOptionParseIssue = Readonly<{
52
+ kind: 'invalid_id';
53
+ }> | Readonly<{
54
+ kind: 'invalid_name';
55
+ }> | Readonly<{
56
+ kind: 'invalid_description';
57
+ }> | Readonly<{
58
+ kind: 'invalid_price';
59
+ error: CentsParseError;
60
+ }> | Readonly<{
61
+ kind: 'invalid_active';
62
+ }> | Readonly<{
63
+ kind: 'invalid_sort_order';
64
+ }> | Readonly<{
65
+ kind: 'invalid_capacity';
66
+ }> | Readonly<{
67
+ kind: 'invalid_sale_start';
68
+ }> | Readonly<{
69
+ kind: 'invalid_sale_end';
70
+ }> | Readonly<{
71
+ kind: 'invalid_sale_window';
72
+ }> | Readonly<{
73
+ kind: 'invalid_object';
74
+ }> | Readonly<{
75
+ kind: 'invalid_attendance_scope';
76
+ }> | Readonly<{
77
+ kind: 'invalid_recipe_identifier';
78
+ }>;
79
+ export type NonEmptyEventPricingIssues<TIssue> = ReadonlyNonEmptyArray<TIssue>;
80
+ type AmountField = 'singlePriceAmount' | 'slidingMinAmount' | 'slidingMaxAmount' | 'slidingSuggestedAmount';
81
+ export declare function parseEventPricing(input: EventPricingParseInput): Result<EventPricing, NonEmptyEventPricingIssues<EventPricingParseIssue>>;
82
+ export {};
@@ -0,0 +1,89 @@
1
+ import type { PricingOptionId } from './branded';
2
+ import type { CurrencyCode } from './currency-format';
3
+ import type { NonNegativeCents, PositiveCents } from './money-input';
4
+ import { type Result } from './result';
5
+ export declare const EVENT_PRICING_STRATEGIES: readonly ["free", "single", "tiered", "sliding_scale"];
6
+ export type EventPricingStrategy = (typeof EVENT_PRICING_STRATEGIES)[number];
7
+ export type EventBookingRequirement = 'none' | 'required';
8
+ export type EventPricingAttendanceScope = 'in_person' | 'online' | 'both';
9
+ export type EventPricingOption = Readonly<{
10
+ id: PricingOptionId;
11
+ name: string;
12
+ description: string | null;
13
+ priceAmount: NonNegativeCents;
14
+ isActive: boolean;
15
+ sortOrder: number;
16
+ capacityLimit: number | null;
17
+ saleStartsAt: string | null;
18
+ saleEndsAt: string | null;
19
+ attendanceScope: EventPricingAttendanceScope;
20
+ recipeIdentifier: string | null;
21
+ }>;
22
+ export type NonEmptyEventPricingOptions<TOption> = readonly [
23
+ TOption,
24
+ ...TOption[]
25
+ ];
26
+ export type EventPricingValueTypes = Readonly<{
27
+ currency: unknown;
28
+ positiveAmount: unknown;
29
+ nonNegativeAmount: unknown;
30
+ option: unknown;
31
+ }>;
32
+ export type CanonicalEventPricingValueTypes = Readonly<{
33
+ currency: CurrencyCode;
34
+ positiveAmount: PositiveCents;
35
+ nonNegativeAmount: NonNegativeCents;
36
+ option: EventPricingOption;
37
+ }>;
38
+ export type EventFreePricing<TCurrency = CurrencyCode> = Readonly<{
39
+ kind: 'free';
40
+ currency: TCurrency;
41
+ }>;
42
+ export type EventSinglePricing<TCurrency = CurrencyCode, TPositiveAmount = PositiveCents> = Readonly<{
43
+ kind: 'single';
44
+ currency: TCurrency;
45
+ amount: TPositiveAmount;
46
+ }>;
47
+ export type EventTieredPricing<TCurrency = CurrencyCode, TOption = EventPricingOption> = Readonly<{
48
+ kind: 'tiered';
49
+ currency: TCurrency;
50
+ options: NonEmptyEventPricingOptions<TOption>;
51
+ }>;
52
+ export type EventSlidingScalePricing<TCurrency = CurrencyCode, TPositiveAmount = PositiveCents, TNonNegativeAmount = NonNegativeCents> = Readonly<{
53
+ kind: 'sliding_scale';
54
+ currency: TCurrency;
55
+ minimum: TNonNegativeAmount;
56
+ maximum: TPositiveAmount;
57
+ suggested: TNonNegativeAmount | null;
58
+ }>;
59
+ export type EventPricing<TValues extends EventPricingValueTypes = CanonicalEventPricingValueTypes> = EventFreePricing<TValues['currency']> | EventSinglePricing<TValues['currency'], TValues['positiveAmount']> | EventTieredPricing<TValues['currency'], TValues['option']> | EventSlidingScalePricing<TValues['currency'], TValues['positiveAmount'], TValues['nonNegativeAmount']>;
60
+ export type EventBookingOffer<TPaymentTerms, TValues extends EventPricingValueTypes = CanonicalEventPricingValueTypes> = Readonly<{
61
+ bookingRequirement: 'none';
62
+ pricing: EventFreePricing<TValues['currency']>;
63
+ paymentTerms: TPaymentTerms;
64
+ }> | Readonly<{
65
+ bookingRequirement: 'required';
66
+ pricing: EventPricing<TValues>;
67
+ paymentTerms: TPaymentTerms;
68
+ }>;
69
+ export type EventBookingOfferIssue = Readonly<{
70
+ kind: 'invalid_booking_requirement';
71
+ value: unknown;
72
+ }> | Readonly<{
73
+ kind: 'paid_without_registration';
74
+ }>;
75
+ export declare function createEventBookingOffer<TPaymentTerms, TValues extends EventPricingValueTypes>(input: Readonly<{
76
+ bookingRequirement: unknown;
77
+ pricing: EventPricing<TValues>;
78
+ paymentTerms: TPaymentTerms;
79
+ }>): Result<EventBookingOffer<TPaymentTerms, TValues>, EventBookingOfferIssue>;
80
+ type PayableEventPricingValues = Readonly<{
81
+ currency: unknown;
82
+ positiveAmount: number;
83
+ nonNegativeAmount: number;
84
+ option: Readonly<{
85
+ priceAmount: number;
86
+ }>;
87
+ }>;
88
+ export declare function eventPricingRequiresPayment<TValues extends PayableEventPricingValues>(pricing: EventPricing<TValues>): boolean;
89
+ export {};
@@ -15,35 +15,93 @@ export type EventPageSurfaceSubjectRefWire = Readonly<{
15
15
  eventOfferingId: string;
16
16
  }>;
17
17
  export type EventPageSurfaceBookingScope = 'single_occurrence' | 'whole_series';
18
+ /**
19
+ * Which renderer owns the URLs a page surface fronts.
20
+ *
21
+ * The site's Event destination policy, read through this subject's preset,
22
+ * settles this before any public Event record is loaded. Carrying it on the
23
+ * subject is what lets a route tell "this system-managed Event has no dates to
24
+ * show" apart from "this URL was never a system-managed Event", so a run whose
25
+ * public facts are withheld cannot quietly hand its URL back to whatever CMS
26
+ * content sits underneath it.
27
+ *
28
+ * Optional for now: the wire declares it, and a surface that has not been given
29
+ * one leaves the routed Event record as the only authority, exactly as before.
30
+ */
31
+ export type EventPageSurfaceDestinationMode = 'cms-managed' | 'system-managed';
18
32
  export type EventSeriesPageSurfaceSubject = Readonly<{
19
33
  kind: 'eventSeries';
20
34
  eventSeriesId: EventSeriesId;
21
35
  bookingScope: 'single_occurrence';
36
+ eventDestinationMode?: EventPageSurfaceDestinationMode;
22
37
  }> | Readonly<{
23
38
  kind: 'eventSeries';
24
39
  eventSeriesId: EventSeriesId;
25
40
  bookingScope: 'whole_series';
26
41
  isWholeSeriesBooking: true;
42
+ eventDestinationMode?: EventPageSurfaceDestinationMode;
27
43
  }>;
28
44
  export type EventSeriesPageSurfaceSubjectWire = Readonly<{
29
45
  kind: 'eventSeries';
30
46
  eventSeriesId: string;
31
47
  bookingScope: 'single_occurrence';
48
+ eventDestinationMode?: EventPageSurfaceDestinationMode;
32
49
  }> | Readonly<{
33
50
  kind: 'eventSeries';
34
51
  eventSeriesId: string;
35
52
  bookingScope: 'whole_series';
36
53
  isWholeSeriesBooking: true;
54
+ eventDestinationMode?: EventPageSurfaceDestinationMode;
37
55
  }>;
38
- export type EventPageSurfaceSubject = EventSeriesPageSurfaceSubject | Readonly<{
56
+ /**
57
+ * An offering page, and the runs it speaks for.
58
+ *
59
+ * `catalogueEventSeriesIds` is the offering's catalogue: every run it has,
60
+ * whatever the run's lifecycle and wherever the run's content is published. A
61
+ * finished run belongs here, because it is the informational fallback a parent
62
+ * page shows when nothing is bookable; so does a run that was given its own
63
+ * authored page, because the chooser links to that page rather than pretending
64
+ * the run is not the offering's.
65
+ *
66
+ * That is deliberately *not* the same question as which runs' content this
67
+ * page renders. Content ownership is settled where the offering's route is
68
+ * projected, and it is right for it to exclude an independently authored run.
69
+ * Answering both questions with one list is how the narrower answer ends up
70
+ * deciding whether the offering has anything on at all.
71
+ *
72
+ * `bookingScope` is read off the offering's own runs rather than assumed: an
73
+ * offering can front an ordinary Event as well as a whole-series one.
74
+ * `isWholeSeriesBooking` is derived from it, exactly as it is for a series
75
+ * subject, because a page's data loaders can only branch on a flag.
76
+ */
77
+ export type EventOfferingPageSurfaceSubject = Readonly<{
39
78
  kind: 'eventOffering';
40
79
  eventOfferingId: EventOfferingId;
41
- availableEventSeriesIds: readonly EventSeriesId[];
80
+ catalogueEventSeriesIds: readonly EventSeriesId[];
81
+ bookingScope: 'single_occurrence';
82
+ eventDestinationMode?: EventPageSurfaceDestinationMode;
83
+ }> | Readonly<{
84
+ kind: 'eventOffering';
85
+ eventOfferingId: EventOfferingId;
86
+ catalogueEventSeriesIds: readonly EventSeriesId[];
87
+ bookingScope: 'whole_series';
88
+ isWholeSeriesBooking: true;
89
+ eventDestinationMode?: EventPageSurfaceDestinationMode;
42
90
  }>;
91
+ export type EventPageSurfaceSubject = EventSeriesPageSurfaceSubject | EventOfferingPageSurfaceSubject;
43
92
  export type EventPageSurfaceSubjectWire = EventSeriesPageSurfaceSubjectWire | Readonly<{
44
93
  kind: 'eventOffering';
45
94
  eventOfferingId: string;
46
- availableEventSeriesIds: readonly string[];
95
+ catalogueEventSeriesIds: readonly string[];
96
+ bookingScope: 'single_occurrence';
97
+ eventDestinationMode?: EventPageSurfaceDestinationMode;
98
+ }> | Readonly<{
99
+ kind: 'eventOffering';
100
+ eventOfferingId: string;
101
+ catalogueEventSeriesIds: readonly string[];
102
+ bookingScope: 'whole_series';
103
+ isWholeSeriesBooking: true;
104
+ eventDestinationMode?: EventPageSurfaceDestinationMode;
47
105
  }>;
48
106
  export type EventPageSurfaceSubjectParseError = Readonly<{
49
107
  kind: 'notObject';
@@ -59,7 +117,26 @@ export type EventPageSurfaceSubjectParseError = Readonly<{
59
117
  }> | Readonly<{
60
118
  kind: 'invalidEventOfferingId';
61
119
  error: BrandedIdParseError;
120
+ }> | Readonly<{
121
+ kind: 'invalidEventOfferingBookingScope';
122
+ bookingScope: unknown;
123
+ }> | Readonly<{
124
+ kind: 'invalidEventOfferingCatalogue';
125
+ catalogue: unknown;
62
126
  }>;
63
- export declare function createEventSeriesPageSurfaceSubject(eventSeriesId: EventSeriesId, bookingScope: EventPageSurfaceBookingScope): EventSeriesPageSurfaceSubject;
127
+ export declare function createEventSeriesPageSurfaceSubject(eventSeriesId: EventSeriesId, bookingScope: EventPageSurfaceBookingScope, eventDestinationMode?: EventPageSurfaceDestinationMode): EventSeriesPageSurfaceSubject;
128
+ export declare function createEventOfferingPageSurfaceSubject(eventOfferingId: EventOfferingId, input: Readonly<{
129
+ catalogueEventSeriesIds: readonly EventSeriesId[];
130
+ bookingScope: EventPageSurfaceBookingScope;
131
+ eventDestinationMode?: EventPageSurfaceDestinationMode;
132
+ }>): EventOfferingPageSurfaceSubject;
133
+ /**
134
+ * Read the destination mode off a wire value.
135
+ *
136
+ * Absent or unrecognised reads as absent, which leaves the routed Event record
137
+ * as the only authority — the behaviour every caller had before the field
138
+ * existed.
139
+ */
140
+ export declare function parseEventPageSurfaceDestinationMode(value: unknown): EventPageSurfaceDestinationMode | undefined;
64
141
  export declare function parseEventPageSurfaceSubject(value: unknown): Result<EventPageSurfaceSubject, EventPageSurfaceSubjectParseError>;
65
142
  export declare function toEventPageSurfaceSubjectWire(subject: EventPageSurfaceSubject): EventPageSurfaceSubjectWire;
@@ -1,118 +1,109 @@
1
- import { type CurrencyDecimals } from "./currency-format";
2
- export declare const EVENT_PRICING_MODES: readonly ["single", "ticket_types", "sliding_scale"];
3
- export type EventPricingMode = (typeof EVENT_PRICING_MODES)[number];
4
- export type PublicEventPricingType = "free" | "paid" | "external";
5
- export type PublicWholeSeriesPriceDisplay = Readonly<{
6
- kind: "free";
7
- currency: string;
8
- }> | Readonly<{
9
- kind: "exact";
10
- amount: number;
11
- currency: string;
12
- }> | Readonly<{
13
- kind: "from";
14
- amount: number;
15
- currency: string;
1
+ import type { EventPricing, EventPricingStrategy } from './event-booking-offer';
2
+ import { type CurrencyDecimals } from './currency-format';
3
+ import { type PlanningClock } from './planner';
4
+ export type PublicEventPricingType = 'free' | 'paid' | 'external';
5
+ export type PublicEventPricingOptionAvailability = Readonly<{
6
+ kind: 'available';
7
+ remainingPlaces: number | null;
16
8
  }> | Readonly<{
17
- kind: "range";
18
- minAmount: number;
19
- maxAmount: number;
20
- currency: string;
21
- }> | Readonly<{
22
- kind: "mixed";
23
- paidFromAmount: number;
24
- paidToAmount: number;
25
- currency: string;
26
- }> | Readonly<{
27
- kind: "unavailable";
28
- currency: string;
9
+ kind: 'unavailable';
10
+ reason: 'inactive' | 'not_on_sale_yet' | 'sale_ended' | 'sold_out' | 'attendance_mode_unavailable' | 'overallCapacityUnavailable';
11
+ remainingPlaces: number | null;
12
+ }>;
13
+ export type PublicEventPricingOption = Readonly<{
14
+ id: string;
15
+ name: string;
16
+ description: string | null;
17
+ priceAmount: number;
18
+ isActive: boolean;
19
+ sortOrder: number;
20
+ attendanceScope: 'in_person' | 'online' | 'both';
21
+ saleStartsAt: string | null;
22
+ saleEndsAt: string | null;
23
+ availability: PublicEventPricingOptionAvailability;
29
24
  }>;
30
25
  export type PublicEventFreePriceDisplay = Readonly<{
31
- kind: "free";
26
+ kind: 'free';
32
27
  currency: string;
33
28
  }>;
34
29
  export type PublicEventExactPriceDisplay = Readonly<{
35
- kind: "exact";
30
+ kind: 'exact';
36
31
  amount: number;
37
32
  currency: string;
38
33
  }>;
39
34
  export type PublicEventExternalPriceDisplay = Readonly<{
40
- kind: "external";
35
+ kind: 'external';
41
36
  label: string;
42
37
  }>;
43
- export type PublicEventTicketTypePriceDisplay = PublicEventFreePriceDisplay | PublicEventExactPriceDisplay | Readonly<{
44
- kind: "from";
38
+ export type PublicEventPricingOptionPriceDisplay = PublicEventFreePriceDisplay | PublicEventExactPriceDisplay | Readonly<{
39
+ kind: 'from';
45
40
  amount: number;
46
41
  currency: string;
47
42
  }> | Readonly<{
48
- kind: "range";
43
+ kind: 'range';
49
44
  minAmount: number;
50
45
  maxAmount: number;
46
+ suggestedAmount?: number | null;
51
47
  currency: string;
52
48
  }> | Readonly<{
53
- kind: "mixed";
49
+ kind: 'mixed';
54
50
  paidFromAmount: number;
55
51
  paidToAmount: number;
56
52
  currency: string;
57
53
  }> | Readonly<{
58
- kind: "unavailable";
54
+ kind: 'unavailable';
59
55
  currency: string;
60
56
  }>;
61
- export type PublicEventPriceDisplay = PublicEventTicketTypePriceDisplay | PublicEventExternalPriceDisplay | Readonly<{
62
- kind: "whole_series";
63
- display: PublicWholeSeriesPriceDisplay;
64
- }>;
65
- export type PublicEventPricing<TTicketType = never> = Readonly<{
66
- kind: "drop_in";
57
+ export type PublicEventPriceDisplay = PublicEventPricingOptionPriceDisplay | PublicEventExternalPriceDisplay;
58
+ export type SharedPricingPriceDisplay = PublicEventPricingOptionPriceDisplay;
59
+ type PublicEventPricingValues = Readonly<{
67
60
  currency: string;
68
- display: PublicEventFreePriceDisplay;
69
- }> | Readonly<{
70
- kind: "free_registration";
71
- currency: string;
72
- display: PublicEventFreePriceDisplay;
73
- }> | Readonly<{
74
- kind: "single_paid";
75
- amount: number;
76
- currency: string;
77
- display: PublicEventExactPriceDisplay;
78
- }> | Readonly<{
79
- kind: "ticket_types";
80
- currency: string;
81
- ticketTypes: readonly TTicketType[];
82
- display: PublicEventTicketTypePriceDisplay;
83
- }> | Readonly<{
84
- kind: "sliding_scale";
85
- minAmount: number;
86
- maxAmount: number;
87
- suggestedAmount: number | null;
88
- currency: string;
89
- display: Readonly<{
90
- kind: "range";
91
- minAmount: number;
92
- maxAmount: number;
93
- currency: string;
94
- }>;
95
- }> | Readonly<{
96
- kind: "whole_series";
97
- display: Readonly<{
98
- kind: "whole_series";
99
- display: PublicWholeSeriesPriceDisplay;
100
- }>;
101
- }> | Readonly<{
102
- kind: "external";
103
- display: Readonly<{
104
- kind: "external";
105
- label: string;
61
+ positiveAmount: number;
62
+ nonNegativeAmount: number;
63
+ option: PublicEventPricingOption;
64
+ }>;
65
+ export type PublicManagedEventPricing = EventPricing<PublicEventPricingValues>;
66
+ export type PublicEventPricing = PublicManagedEventPricing | Readonly<{
67
+ kind: 'external';
68
+ label: string;
69
+ }>;
70
+ /** Capacity closes booking, but does not make an otherwise eligible price unknown. */
71
+ export declare function isPublicEventPricingOptionDisplayable(option: Pick<PublicEventPricingOption, 'isActive' | 'availability'>): boolean;
72
+ export declare function publicEventPricingDisplay(pricing: PublicEventPricing): PublicEventPriceDisplay;
73
+ export declare function publicEventPricingType(pricing: PublicEventPricing): PublicEventPricingType;
74
+ export declare function publicEventPricingCurrency(pricing: PublicEventPricing): string | null;
75
+ export declare function publicEventScalarPrice(pricing: PublicEventPricing): number | null;
76
+ export declare function publicEventPricingStrategy(pricing: PublicEventPricing): EventPricingStrategy | undefined;
77
+ export declare function publicEventPricingOptions(pricing: PublicEventPricing): readonly PublicEventPricingOption[];
78
+ export type CanonicalEventPriceDisplay = PublicEventPricingOptionPriceDisplay;
79
+ type DisplayableEventPricingValues = Readonly<{
80
+ currency: string;
81
+ positiveAmount: number;
82
+ nonNegativeAmount: number;
83
+ option: Readonly<{
84
+ priceAmount: number;
85
+ isActive: boolean;
106
86
  }>;
107
87
  }>;
108
- export declare function isEventPricingMode(value: unknown): value is EventPricingMode;
109
- export declare function publicEventPricingDisplay(pricing: PublicEventPricing<unknown>): PublicEventPriceDisplay;
110
- export declare function publicEventPricingType(pricing: PublicEventPricing<unknown>): PublicEventPricingType;
111
- export declare function publicEventPricingCurrency(pricing: PublicEventPricing<unknown>): string | null;
112
- export declare function publicEventScalarPrice(pricing: PublicEventPricing<unknown>): number | null;
113
- export declare function publicEventPricingMode(pricing: PublicEventPricing<unknown>): EventPricingMode | undefined;
114
- export declare function publicEventTicketTypes<TTicketType>(pricing: PublicEventPricing<TTicketType>): readonly TTicketType[];
115
- export type BookingPriceDisplay = PublicEventPriceDisplay;
88
+ export type PricingOptionsDisplayPurpose = 'configured' | 'available_now';
89
+ export type PricingOptionForDisplay = Readonly<{
90
+ priceAmount: number;
91
+ isActive: boolean;
92
+ saleStartsAt?: string | null;
93
+ saleEndsAt?: string | null;
94
+ }>;
95
+ export type PricingOptionSaleWindowState = 'open' | 'not_started' | 'ended';
96
+ export declare function resolvePricingOptionSaleWindowState(option: Pick<PricingOptionForDisplay, 'saleStartsAt' | 'saleEndsAt'>, now: Date): PricingOptionSaleWindowState;
97
+ export declare function resolveExactOrFreePriceDisplay(amount: number | null | undefined, currency: string): PublicEventPricingOptionPriceDisplay;
98
+ export declare function resolvePricingOptionsPriceDisplay(input: Readonly<{
99
+ options: readonly PricingOptionForDisplay[];
100
+ currency: string;
101
+ purpose: PricingOptionsDisplayPurpose;
102
+ now?: Date;
103
+ clock?: PlanningClock;
104
+ }>): PublicEventPricingOptionPriceDisplay;
105
+ /** Derives configured price presentation directly from canonical pricing. */
106
+ export declare function canonicalEventPricingDisplay<TValues extends DisplayableEventPricingValues>(pricing: EventPricing<TValues>): CanonicalEventPriceDisplay;
116
107
  export type FormatBookingPriceDisplayOptions = Readonly<{
117
108
  /** Trailing-decimal policy passed through to the currency formatter. */
118
109
  decimals?: CurrencyDecimals;
@@ -126,6 +117,7 @@ export type FormatBookingPriceDisplayOptions = Readonly<{
126
117
  * should route through here so labels never drift. Adding a variant to the ADT
127
118
  * breaks compilation here (via `assertNever`) until it is handled.
128
119
  */
129
- export declare function formatBookingPriceDisplay(display: BookingPriceDisplay, options?: FormatBookingPriceDisplayOptions): string;
120
+ export declare function formatBookingPriceDisplay(display: PublicEventPriceDisplay, options?: FormatBookingPriceDisplayOptions): string;
130
121
  /** Render an event's price directly from its pricing value. */
131
- export declare function formatEventPricing(pricing: PublicEventPricing<unknown>, options?: FormatBookingPriceDisplayOptions): string;
122
+ export declare function formatEventPricing(pricing: PublicEventPricing, options?: FormatBookingPriceDisplayOptions): string;
123
+ export {};
@@ -6,6 +6,8 @@ export * from './demo-claim-access';
6
6
  export * from './demo-lifecycle-status';
7
7
  export * from './demo-runtime';
8
8
  export * from './collections';
9
+ export * from './event-booking-offer';
10
+ export * from './event-booking-offer-parser';
9
11
  export * from './event-pricing';
10
12
  export * from './event-page-surface-subject';
11
13
  export * from './event-page-selection';
@@ -60,5 +62,6 @@ export * from './site-route-target';
60
62
  export { disabledSelection, enabledSelection, plannerNoChange, plannerPatch, plannerUpdate, resolvePlanningDateInput, resolvePlanningNow, resolvePlanningNowDate, systemPlanningClock, } from './planner';
61
63
  export type { DisabledSelection, EnabledSelection, OptionalSelection, PlannerNoChange, PlannerPatch, PlannerUpdate, PlanningClock, PlanningDateInput, PlanningTimeOptions, } from './planner';
62
64
  export { isValidBookingTimeZone, parseBookingTimeZone, type BookingTimeZone, type BookingTimeZoneParseError, } from './booking-time-zone';
65
+ export { CANCELLED_SESSION_STATUS, firstLiveRunSessionStartMs, isWholeSeriesRegistrationOpen, orderedLiveRunSessions, resolveWholeSeriesBookingPhase, resolveWholeSeriesRunLifecycle, type WholeSeriesBookingPhase, type WholeSeriesRunLifecycle, type WholeSeriesScheduleSession, } from './whole-series-run-schedule';
63
66
  export * from './booking-verticals';
64
67
  export * from './event-series-behaviour';
@@ -1,4 +1,7 @@
1
1
  import { type Result } from './result';
2
2
  export type NonEmptyArray<T> = [T, ...T[]];
3
+ export type ReadonlyNonEmptyArray<T> = readonly [T, ...T[]];
3
4
  export declare function fromArray<T>(items: readonly T[]): Result<NonEmptyArray<T>, 'empty_array'>;
4
5
  export declare function mapNonEmptyArray<T, U>(items: NonEmptyArray<T>, map: (item: T, index: number) => U): NonEmptyArray<U>;
6
+ export declare function fromReadonlyArray<T>(items: readonly T[]): Result<ReadonlyNonEmptyArray<T>, 'empty_array'>;
7
+ export declare function mapReadonlyNonEmptyArray<T, U>(items: ReadonlyNonEmptyArray<T>, map: (item: T, index: number) => U): ReadonlyNonEmptyArray<U>;