@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
@@ -1,3 +1,4 @@
1
+ import type { EventRegistrationErrorAction } from '../../../../../../commerce/src/purchase/index';
1
2
  import type { DiscountContext } from '../../api/types';
2
3
  import type { EventTicketSelectionLine, EventRegistrationClientProps, EligibilityData, FormData, Guest, GuestErrors, PaymentSelection, PaymentStepState, PublicEvent, RegistrationEvent, RegistrationResult, RegistrationStep } from './types';
3
4
  import { usePortalAuth, useEligibility, useExistingEventRegistration } from './hooks';
@@ -18,7 +19,6 @@ export type UseEventRegistrationWizardOptions = Readonly<{
18
19
  occurrenceContext: EventRegistrationClientProps['occurrenceContext'];
19
20
  subject?: EventRegistrationClientProps['subject'];
20
21
  events: PublicEvent[];
21
- wholeSeriesOfferings?: EventRegistrationClientProps['wholeSeriesOfferings'];
22
22
  maxTicketsNum: number;
23
23
  }>;
24
24
  export type EventRegistrationWizardDeps = Readonly<{
@@ -58,14 +58,14 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
58
58
  setSelectedEvent: import("react").Dispatch<import("react").SetStateAction<RegistrationEvent | null>>;
59
59
  ticketsCount: number;
60
60
  setTicketsCount: (nextTicketsCount: number) => void;
61
- selectedAttendanceMode: "online" | "in_person" | null;
62
- setSelectedAttendanceMode: import("react").Dispatch<import("react").SetStateAction<"online" | "in_person" | null>>;
61
+ selectedAttendanceMode: "in_person" | "online" | null;
62
+ setSelectedAttendanceMode: import("react").Dispatch<import("react").SetStateAction<"in_person" | "online" | null>>;
63
63
  ticketSelections: Readonly<{
64
- ticketTypeId: string | null;
64
+ pricingOptionId: string | null;
65
65
  quantity: number;
66
66
  }>[];
67
67
  selectedTicketLines: Readonly<{
68
- ticketTypeId: string | null;
68
+ pricingOptionId: string | null;
69
69
  quantity: number;
70
70
  }>[];
71
71
  setSelectedTicketLines: (lines: readonly EventTicketSelectionLine[]) => void;
@@ -78,16 +78,16 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
78
78
  suggestedAmount: number | null;
79
79
  }> | null;
80
80
  slidingScaleSelectionMessage: string | null;
81
- selectedTicketType: import("./utils").SelectableEventTicketType | null;
82
- ticketSelectionSummaryLines: Readonly<{
83
- ticketTypeId: string | null;
81
+ selectedTicketType: import("../../..").EventRegistrationPricingOption | null;
82
+ ticketSelectionSummaryLines: {
83
+ pricingOptionId: string | null;
84
84
  label: string;
85
85
  quantity: number;
86
86
  unitPriceCents: number;
87
87
  subtotalCents: number;
88
- }>[];
89
- ticketSelectionSubtotalCents: number;
90
- visibleTicketTypes: import("./utils").SelectableEventTicketType[];
88
+ }[];
89
+ ticketSelectionSubtotalCents: number | null;
90
+ visibleTicketTypes: import("../../..").EventRegistrationPricingOption[];
91
91
  ticketTypeSelectionRequired: boolean;
92
92
  hasValidTicketSelection: boolean;
93
93
  eventRequiresPayment: boolean;
@@ -101,6 +101,7 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
101
101
  handleGuestShakeEnd: () => void;
102
102
  registrationResult: RegistrationResult | null;
103
103
  errorMessage: string;
104
+ errorAction: EventRegistrationErrorAction;
104
105
  altchaSolution: string | null;
105
106
  setAltchaSolution: import("react").Dispatch<import("react").SetStateAction<string | null>>;
106
107
  portalAuthState: import("./hooks").PortalAuthState;
@@ -141,7 +142,7 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
141
142
  discountsAvailableLoading: boolean;
142
143
  discountContext: DiscountContext | null;
143
144
  shouldShowDiscountToggle: boolean;
144
- verification: import("../../hooks/usePaymentVerification").PaymentVerificationResult;
145
+ verification: import("./useEventRegistrationStripeReturn").EventRegistrationStripeReturnResult;
145
146
  handleDetailsComplete: () => Promise<EventRegistrationDetailsCompleteResult>;
146
147
  handlePaymentSelect: () => Promise<void>;
147
148
  handleUseCardInsteadOfPass: () => void;
@@ -178,14 +179,14 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
178
179
  setSelectedEvent: import("react").Dispatch<import("react").SetStateAction<RegistrationEvent | null>>;
179
180
  ticketsCount: number;
180
181
  setTicketsCount: (nextTicketsCount: number) => void;
181
- selectedAttendanceMode: "online" | "in_person" | null;
182
- setSelectedAttendanceMode: import("react").Dispatch<import("react").SetStateAction<"online" | "in_person" | null>>;
182
+ selectedAttendanceMode: "in_person" | "online" | null;
183
+ setSelectedAttendanceMode: import("react").Dispatch<import("react").SetStateAction<"in_person" | "online" | null>>;
183
184
  ticketSelections: Readonly<{
184
- ticketTypeId: string | null;
185
+ pricingOptionId: string | null;
185
186
  quantity: number;
186
187
  }>[];
187
188
  selectedTicketLines: Readonly<{
188
- ticketTypeId: string | null;
189
+ pricingOptionId: string | null;
189
190
  quantity: number;
190
191
  }>[];
191
192
  setSelectedTicketLines: (lines: readonly EventTicketSelectionLine[]) => void;
@@ -198,16 +199,16 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
198
199
  suggestedAmount: number | null;
199
200
  }> | null;
200
201
  slidingScaleSelectionMessage: string | null;
201
- selectedTicketType: import("./utils").SelectableEventTicketType | null;
202
- ticketSelectionSummaryLines: Readonly<{
203
- ticketTypeId: string | null;
202
+ selectedTicketType: import("../../..").EventRegistrationPricingOption | null;
203
+ ticketSelectionSummaryLines: {
204
+ pricingOptionId: string | null;
204
205
  label: string;
205
206
  quantity: number;
206
207
  unitPriceCents: number;
207
208
  subtotalCents: number;
208
- }>[];
209
- ticketSelectionSubtotalCents: number;
210
- visibleTicketTypes: import("./utils").SelectableEventTicketType[];
209
+ }[];
210
+ ticketSelectionSubtotalCents: number | null;
211
+ visibleTicketTypes: import("../../..").EventRegistrationPricingOption[];
211
212
  ticketTypeSelectionRequired: boolean;
212
213
  hasValidTicketSelection: boolean;
213
214
  eventRequiresPayment: boolean;
@@ -221,6 +222,7 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
221
222
  handleGuestShakeEnd: () => void;
222
223
  registrationResult: RegistrationResult | null;
223
224
  errorMessage: string;
225
+ errorAction: EventRegistrationErrorAction;
224
226
  altchaSolution: string | null;
225
227
  setAltchaSolution: import("react").Dispatch<import("react").SetStateAction<string | null>>;
226
228
  portalAuthState: import("./hooks").PortalAuthState;
@@ -261,7 +263,7 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
261
263
  discountsAvailableLoading: boolean;
262
264
  discountContext: DiscountContext | null;
263
265
  shouldShowDiscountToggle: boolean;
264
- verification: import("../../hooks/usePaymentVerification").PaymentVerificationResult;
266
+ verification: import("./useEventRegistrationStripeReturn").EventRegistrationStripeReturnResult;
265
267
  handleDetailsComplete: () => Promise<EventRegistrationDetailsCompleteResult>;
266
268
  handlePaymentSelect: () => Promise<void>;
267
269
  handleUseCardInsteadOfPass: () => void;
@@ -1,7 +1,9 @@
1
1
  import { type Dispatch, type SetStateAction } from 'react';
2
2
  import type { ResolveWaitlistClaimResponse } from '../../api/types';
3
3
  import type { EventTicketSelectionLine, FormData, Guest, RegistrationEvent, RegistrationStep } from './types';
4
+ import type { EventRegistrationErrorAction } from '../../../../../../commerce/src/purchase/index';
4
5
  export type WaitlistClaimRestorationSetters = Readonly<{
6
+ setErrorAction?: (action: EventRegistrationErrorAction) => void;
5
7
  setErrorMessage: Dispatch<SetStateAction<string>>;
6
8
  setStep: (step: RegistrationStep) => void;
7
9
  setSelectedEvent: Dispatch<SetStateAction<RegistrationEvent | null>>;
@@ -1,10 +1,17 @@
1
+ import type { EventRegistrationPricingOption } from '../../../blocks/event-registration';
1
2
  import type { RegistrationOptionsResponse } from '../../api/types';
2
- import type { EligibilityData, EligibilityEventTicketType, PublicEvent, PublicEventTicketType, RegistrationEvent } from './types';
3
- export declare const DEFAULT_EVENT_CURRENCY = "usd";
3
+ import type { EligibilityData, PublicEvent, RegistrationEvent } from './types';
4
4
  export declare function getPortalSubjectEmail(profile: Readonly<{
5
5
  email: string;
6
6
  }> | null): string | null;
7
- export type SelectableEventTicketType = EligibilityEventTicketType | PublicEventTicketType;
7
+ /**
8
+ * A ticket type the wizard can offer.
9
+ *
10
+ * It answers to `pricingOptionId` whichever source it came from — the
11
+ * registration-options response or the event record — so the wizard never has
12
+ * to remember which of two names this identity goes by (A44).
13
+ */
14
+ export type SelectableEventTicketType = EventRegistrationPricingOption;
8
15
  type TicketTypeSourceEvent = PublicEvent | RegistrationEvent;
9
16
  /**
10
17
  * Format date for display
@@ -56,6 +63,6 @@ export declare function getImplicitSingleAvailableTicketType(ticketTypes: readon
56
63
  export declare function findSelectedTicketType(input: {
57
64
  event: TicketTypeSourceEvent | null;
58
65
  eligibility: EligibilityData | null;
59
- selectedTicketTypeId: string | null;
66
+ selectedPricingOptionId: string | null;
60
67
  selectedAttendanceMode?: 'in_person' | 'online' | null;
61
68
  }): SelectableEventTicketType | null;
@@ -1,6 +1,5 @@
1
1
  import type { BlockButtonRole } from '../../constants/buttonRoles';
2
2
  import type { PublicEvent } from '../../blocks/events/shared/types';
3
- import type { PublicWholeSeriesOffering } from '../../blocks/events/whole-series';
4
3
  import { type PublicMembershipProductCollection, type PublicPassProductCollection } from '../../blocks/shop.shared';
5
4
  import type { OccurrenceContext } from '../../blocks/event-registration.shared';
6
5
  import type { EventRegistrationClientProps as InternalEventRegistrationClientProps } from './event-registration/types';
@@ -18,9 +17,8 @@ export type EventRegistrationSourceProps = Readonly<{
18
17
  occurrenceContext?: OccurrenceContext | null;
19
18
  subject?: EventRegistrationPageSurfaceSubject | null;
20
19
  events?: PublicEvent[] | null;
21
- wholeSeriesOfferings?: PublicWholeSeriesOffering[] | null;
22
- wholeSeriesOffering?: PublicWholeSeriesOffering | null;
23
- subjectWholeSeriesOffering?: PublicWholeSeriesOffering | null;
20
+ /** Runs for a whole-series page, loaded independently of the date page. */
21
+ wholeSeriesRunEvents?: PublicEvent[] | null;
24
22
  className?: string | null;
25
23
  buttonText?: string | null;
26
24
  maxTickets?: string | null;
@@ -70,9 +68,8 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
70
68
  occurrenceContext?: OccurrenceContext | null;
71
69
  subject?: EventRegistrationPageSurfaceSubject | null;
72
70
  events?: PublicEvent[] | null;
73
- wholeSeriesOfferings?: PublicWholeSeriesOffering[] | null;
74
- wholeSeriesOffering?: PublicWholeSeriesOffering | null;
75
- subjectWholeSeriesOffering?: PublicWholeSeriesOffering | null;
71
+ /** Runs for a whole-series page, loaded independently of the date page. */
72
+ wholeSeriesRunEvents?: PublicEvent[] | null;
76
73
  className?: string | null;
77
74
  buttonText?: string | null;
78
75
  maxTickets?: string | null;
@@ -104,9 +101,8 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
104
101
  occurrenceContext?: OccurrenceContext | null;
105
102
  subject?: EventRegistrationPageSurfaceSubject | null;
106
103
  events?: PublicEvent[] | null;
107
- wholeSeriesOfferings?: PublicWholeSeriesOffering[] | null;
108
- wholeSeriesOffering?: PublicWholeSeriesOffering | null;
109
- subjectWholeSeriesOffering?: PublicWholeSeriesOffering | null;
104
+ /** Runs for a whole-series page, loaded independently of the date page. */
105
+ wholeSeriesRunEvents?: PublicEvent[] | null;
110
106
  className?: string | null;
111
107
  buttonText?: string | null;
112
108
  maxTickets?: string | null;
@@ -133,9 +129,8 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
133
129
  occurrenceContext?: OccurrenceContext | null;
134
130
  subject?: EventRegistrationPageSurfaceSubject | null;
135
131
  events?: PublicEvent[] | null;
136
- wholeSeriesOfferings?: PublicWholeSeriesOffering[] | null;
137
- wholeSeriesOffering?: PublicWholeSeriesOffering | null;
138
- subjectWholeSeriesOffering?: PublicWholeSeriesOffering | null;
132
+ /** Runs for a whole-series page, loaded independently of the date page. */
133
+ wholeSeriesRunEvents?: PublicEvent[] | null;
139
134
  className?: string | null;
140
135
  buttonText?: string | null;
141
136
  maxTickets?: string | null;
@@ -50,6 +50,7 @@ export declare const eventCalendarBlockRuntime: Readonly<{
50
50
  buildRender: (source: EventCalendarSourceProps) => Readonly<{
51
51
  display: EventCalendarDisplay;
52
52
  hydration: Readonly<{
53
+ calendarWindow?: import("../../../../contracts").CalendarWindowPage;
53
54
  siteId: string;
54
55
  stage?: "preview" | "published";
55
56
  prefetchedEvents: boolean;
@@ -75,6 +76,7 @@ export declare const eventCalendarBlockRuntime: Readonly<{
75
76
  encode: (value: Readonly<{
76
77
  display: EventCalendarDisplay;
77
78
  hydration: Readonly<{
79
+ calendarWindow?: import("../../../../contracts").CalendarWindowPage;
78
80
  siteId: string;
79
81
  stage?: "preview" | "published";
80
82
  prefetchedEvents: boolean;
@@ -94,6 +96,7 @@ export declare const eventCalendarBlockRuntime: Readonly<{
94
96
  decode: (input: unknown) => import("../../../../contracts").DecodeResult<Readonly<{
95
97
  display: EventCalendarDisplay;
96
98
  hydration: Readonly<{
99
+ calendarWindow?: import("../../../../contracts").CalendarWindowPage;
97
100
  siteId: string;
98
101
  stage?: "preview" | "published";
99
102
  prefetchedEvents: boolean;
@@ -125,6 +128,7 @@ export declare const eventCalendarInteractiveIslandPropsCodec: Readonly<{
125
128
  } & Readonly<{
126
129
  display: EventCalendarDisplay;
127
130
  hydration: Readonly<{
131
+ calendarWindow?: import("../../../../contracts").CalendarWindowPage;
128
132
  siteId: string;
129
133
  stage?: "preview" | "published";
130
134
  prefetchedEvents: boolean;
@@ -153,6 +157,7 @@ export declare const eventCalendarInteractiveIslandPropsCodec: Readonly<{
153
157
  } & Readonly<{
154
158
  display: EventCalendarDisplay;
155
159
  hydration: Readonly<{
160
+ calendarWindow?: import("../../../../contracts").CalendarWindowPage;
156
161
  siteId: string;
157
162
  stage?: "preview" | "published";
158
163
  prefetchedEvents: boolean;
@@ -34,6 +34,7 @@ export type EventCombinedClientProps = Readonly<{
34
34
  emptyMessage?: string;
35
35
  className?: string;
36
36
  calendarContext: EventCollectionHydration['calendarContext'];
37
+ calendarWindow?: EventCollectionHydration['calendarWindow'];
37
38
  }>;
38
39
  export type EventCombinedIslandClientProps = EventCombinedInteractiveIslandProps;
39
40
  /**
@@ -21,7 +21,8 @@ export type EventCombinedInteractiveIslandProps = InteractiveIslandProps<EventCo
21
21
  export declare const eventCombinedBlockRuntime: Readonly<{
22
22
  kind: "progressive";
23
23
  buildRender: (source: Readonly<{
24
- events?: import("../event-registration").PublicEvent[] | null;
24
+ calendarWindow?: import("../../../../contracts").CalendarWindowPage | null;
25
+ events?: import("../../../../../../api/src/index").PublicEvent[] | null;
25
26
  siteId: string;
26
27
  apiBaseUrl?: string;
27
28
  stage?: "preview" | "published";
@@ -56,6 +57,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
56
57
  }>) => Readonly<{
57
58
  display: EventCombinedDisplay;
58
59
  hydration: Readonly<{
60
+ calendarWindow?: import("../../../../contracts").CalendarWindowPage;
59
61
  siteId: string;
60
62
  stage?: "preview" | "published";
61
63
  prefetchedEvents: boolean;
@@ -75,7 +77,8 @@ export declare const eventCombinedBlockRuntime: Readonly<{
75
77
  contracts: Readonly<{
76
78
  source: Readonly<{
77
79
  encode: (value: Readonly<{
78
- events?: import("../event-registration").PublicEvent[] | null;
80
+ calendarWindow?: import("../../../../contracts").CalendarWindowPage | null;
81
+ events?: import("../../../../../../api/src/index").PublicEvent[] | null;
79
82
  siteId: string;
80
83
  apiBaseUrl?: string;
81
84
  stage?: "preview" | "published";
@@ -109,7 +112,8 @@ export declare const eventCombinedBlockRuntime: Readonly<{
109
112
  bookingTimeZone?: string;
110
113
  }>) => unknown;
111
114
  decode: (input: unknown) => import("../../../../contracts").DecodeResult<Readonly<{
112
- events?: import("../event-registration").PublicEvent[] | null;
115
+ calendarWindow?: import("../../../../contracts").CalendarWindowPage | null;
116
+ events?: import("../../../../../../api/src/index").PublicEvent[] | null;
113
117
  siteId: string;
114
118
  apiBaseUrl?: string;
115
119
  stage?: "preview" | "published";
@@ -147,6 +151,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
147
151
  encode: (value: Readonly<{
148
152
  display: EventCombinedDisplay;
149
153
  hydration: Readonly<{
154
+ calendarWindow?: import("../../../../contracts").CalendarWindowPage;
150
155
  siteId: string;
151
156
  stage?: "preview" | "published";
152
157
  prefetchedEvents: boolean;
@@ -166,6 +171,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
166
171
  decode: (input: unknown) => import("../../../../contracts").DecodeResult<Readonly<{
167
172
  display: EventCombinedDisplay;
168
173
  hydration: Readonly<{
174
+ calendarWindow?: import("../../../../contracts").CalendarWindowPage;
169
175
  siteId: string;
170
176
  stage?: "preview" | "published";
171
177
  prefetchedEvents: boolean;
@@ -197,6 +203,7 @@ export declare const eventCombinedInteractiveIslandPropsCodec: Readonly<{
197
203
  } & Readonly<{
198
204
  display: EventCombinedDisplay;
199
205
  hydration: Readonly<{
206
+ calendarWindow?: import("../../../../contracts").CalendarWindowPage;
200
207
  siteId: string;
201
208
  stage?: "preview" | "published";
202
209
  prefetchedEvents: boolean;
@@ -225,6 +232,7 @@ export declare const eventCombinedInteractiveIslandPropsCodec: Readonly<{
225
232
  } & Readonly<{
226
233
  display: EventCombinedDisplay;
227
234
  hydration: Readonly<{
235
+ calendarWindow?: import("../../../../contracts").CalendarWindowPage;
228
236
  siteId: string;
229
237
  stage?: "preview" | "published";
230
238
  prefetchedEvents: boolean;
@@ -0,0 +1,164 @@
1
+ import type { PublicEvent, PublicEventAttendanceMode, PublicEventAttendanceModeAvailability } from '../../../../blocks/events/shared/types';
2
+ /**
3
+ * The four fields capacity maths needs. Satisfied by a `PublicEvent`, by the
4
+ * wizard's `RegistrationEvent`, and by a single attendance-mode availability
5
+ * row, so one helper can answer for the whole event or for one mode.
6
+ */
7
+ export type EventCapacitySource = Pick<PublicEvent, 'capacity' | 'registeredCount' | 'availableSpots' | 'waitlistEnabled'>;
8
+ export type EventAvailability = {
9
+ /** Remaining spots. `null` when the event has no capacity cap. */
10
+ available: number | null;
11
+ /** True when the event has a cap and no spots remain. */
12
+ isFull: boolean;
13
+ };
14
+ /**
15
+ * Compute remaining spots for an event from `availableSpots` with a fallback
16
+ * to `capacity - registeredCount`. Returns `{ available: null, isFull: false }`
17
+ * for uncapped events so call sites can render no capacity indicator at all.
18
+ *
19
+ * The single source of truth for capacity math across event cards, agenda
20
+ * rows, and timetable cells — keep wording variations in the call sites.
21
+ */
22
+ export declare function getEventAvailability(event: EventCapacitySource): EventAvailability;
23
+ type EventWithAttendanceModes = EventCapacitySource & {
24
+ attendanceModes?: readonly PublicEventAttendanceModeAvailability[] | null;
25
+ };
26
+ /**
27
+ * Pick the capacity row a booking decision should read: the selected
28
+ * attendance mode's availability when the visitor has chosen one and the
29
+ * event publishes it, otherwise the event-level aggregate.
30
+ *
31
+ * The mode row is used wholesale. A mode with `capacity: null` on a capped
32
+ * event is uncapped *by design*: the registration write path applies the
33
+ * same rule via `getEffectiveOccurrenceCapacityForAttendanceMode`, so falling
34
+ * back to the event's `availableSpots` here would block bookings the server
35
+ * accepts. (Waitlist claims are still occurrence-scoped; see issue 1377.)
36
+ */
37
+ export declare function selectEventCapacitySource(event: EventWithAttendanceModes, attendanceMode?: PublicEventAttendanceMode | null): EventCapacitySource;
38
+ /**
39
+ * Whether the visitor's next step is the waitlist: the source is full *and*
40
+ * a waitlist is open. The one place this is decided — cards, rows, the
41
+ * wizard's steps and its action bar all route through here so they agree,
42
+ * including for producers that omit `availableSpots` and rely on the
43
+ * `capacity - registeredCount` fallback.
44
+ */
45
+ export declare function canJoinEventWaitlist(event: EventWithAttendanceModes, options?: {
46
+ attendanceMode?: PublicEventAttendanceMode | null;
47
+ }): boolean;
48
+ /**
49
+ * Remaining places at or below which an event reads as scarce and the exact
50
+ * count is worth showing. Above it, no number is shown at all: "147 places
51
+ * left" is not something a visitor acts on, and it is the figure most likely
52
+ * to be stale on a cached page.
53
+ *
54
+ * max( min(3, ceil(capacity * 0.25)), ceil(capacity * 0.05) )
55
+ *
56
+ * The 25% arm stops small groups shouting early (3 of 4 is not urgency); the
57
+ * 5% floor stops large events staying silent until three remain.
58
+ * capacity 4 -> 1, 12 -> 3, 40 -> 3, 100 -> 5, 200 -> 10.
59
+ */
60
+ export declare function lowCapacityThreshold(capacity: number): number;
61
+ /**
62
+ * The remaining-places state every surface renders from. `open` deliberately
63
+ * carries no count: nothing should show one above the threshold, and logic
64
+ * that needs the number (quantity caps) reads {@link getEventAvailability}.
65
+ */
66
+ export type RemainingPlaces = {
67
+ kind: 'unlimited';
68
+ } | {
69
+ kind: 'open';
70
+ } | {
71
+ kind: 'low';
72
+ remaining: number;
73
+ } | {
74
+ kind: 'full';
75
+ waitlist: boolean;
76
+ };
77
+ export declare function getRemainingPlaces(source: EventCapacitySource): RemainingPlaces;
78
+ export type RemainingPlacesWording = Readonly<{
79
+ /** Label when full with no waitlist. Defaults to "Full". */
80
+ full?: string;
81
+ /** Label when full with a waitlist open. Defaults to "Waitlist". */
82
+ waitlist?: string;
83
+ /** "2 left" instead of "2 places left", for pills and timetable cells. */
84
+ compact?: boolean;
85
+ }>;
86
+ /**
87
+ * The one place a remaining-places count becomes text. Returns `null` when
88
+ * nothing should be shown: uncapped events, and capped events above the
89
+ * scarcity threshold. Surfaces that need their own full-state wording pass
90
+ * it in rather than re-deriving the count.
91
+ */
92
+ export declare function formatRemainingPlaces(source: EventCapacitySource, wording?: RemainingPlacesWording): string | null;
93
+ /**
94
+ * Ticket types publish only what is left, never a total, so the capacity
95
+ * threshold cannot apply. The absolute arm of {@link lowCapacityThreshold}
96
+ * is used on its own: the count shows at three or fewer, otherwise nothing.
97
+ */
98
+ export declare const TICKET_TYPE_LOW_COUNT = 3;
99
+ export declare function formatTicketTypeRemaining(remainingCapacity: number | null): string | null;
100
+ /** Total capacity as copy ("12 places"), for detail surfaces that state the size of an event. */
101
+ export declare function formatTotalCapacity(capacity: number | null): string | null;
102
+ /**
103
+ * Three-state availability status for compact boards and pills.
104
+ * - `available`: uncapped, or above the scarcity threshold. No label.
105
+ * - `filling`: at or below {@link lowCapacityThreshold}. Label is the compact count.
106
+ * - `waitlist`: full. Label reflects whether a waitlist is open.
107
+ */
108
+ export type EventAvailabilityStatus = 'available' | 'filling' | 'waitlist';
109
+ export type EventAvailabilityDetail = {
110
+ status: EventAvailabilityStatus;
111
+ /** Remaining spots. `null` when the event has no capacity cap. */
112
+ available: number | null;
113
+ isFull: boolean;
114
+ /** Short pill label, e.g. "2 left", "Waitlist", "Full". `null` when nothing should show. */
115
+ label: string | null;
116
+ };
117
+ export declare function getEventAvailabilityStatus(event: HybridEventCapacitySource): EventAvailabilityDetail;
118
+ /**
119
+ * An event as the browse surfaces see it: the aggregate capacity fields plus
120
+ * the delivery mode and the per-mode rows. `PublicEvent` satisfies it.
121
+ */
122
+ export type HybridEventCapacitySource = EventWithAttendanceModes & {
123
+ deliveryMode?: PublicEvent['deliveryMode'];
124
+ };
125
+ /** Remaining places for each side of a hybrid event. */
126
+ export type HybridRemainingPlaces = Readonly<{
127
+ inPerson: RemainingPlaces;
128
+ online: RemainingPlaces;
129
+ }>;
130
+ /**
131
+ * Per-mode remaining places for a hybrid event, or `null` when the event is
132
+ * not hybrid or does not publish both rows — in which case the aggregate is
133
+ * all there is and the existing single-label helpers apply.
134
+ */
135
+ export declare function getHybridAvailability(event: HybridEventCapacitySource): HybridRemainingPlaces | null;
136
+ /**
137
+ * The capacity row a whole-event decision should read: the most open
138
+ * attendance mode of a hybrid event, otherwise the aggregate. A hybrid event
139
+ * is sold out only when both of its modes are, and its waitlist is reachable
140
+ * when either full mode has one open.
141
+ */
142
+ export declare function selectMostOpenCapacitySource(event: HybridEventCapacitySource): EventCapacitySource;
143
+ /** True when no attendance mode has room. Hybrid-aware; use this for sold-out decisions. */
144
+ export declare function isEventFull(event: HybridEventCapacitySource): boolean;
145
+ /**
146
+ * True when the event is full on every mode and at least one of those full
147
+ * modes has a waitlist open. An event with a mode still bookable is not a
148
+ * waitlist prospect: it should send the visitor to that mode instead.
149
+ */
150
+ export declare function canJoinEventWaitlistOnAnyMode(event: HybridEventCapacitySource): boolean;
151
+ /**
152
+ * The browse-surface label for an event's remaining places. Single-mode
153
+ * events get exactly the aggregate label {@link formatRemainingPlaces}
154
+ * produces, and so does a hybrid event whose two modes tell the same story.
155
+ * When the modes differ, both sides are named: "available" on a card is a
156
+ * promise the registration wizard would otherwise have to break.
157
+ *
158
+ * Hybrid examples, in person full with 3 online places left:
159
+ * default -> "Online: 3 places left · In person: Full"
160
+ * { full: 'Sold out' } -> "Online: 3 places left · In person: Sold out"
161
+ * { compact: true } -> "Online: 3 left"
162
+ */
163
+ export declare function formatEventRemainingPlaces(event: HybridEventCapacitySource, wording?: RemainingPlacesWording): string | null;
164
+ export {};
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Booking call-to-action resolution for events: where an event links to and
3
+ * what the button says. Sold-out and waitlist decisions come from capacity.ts
4
+ * so cards, rows and the wizard never disagree.
5
+ */
6
+ import type { PublicEvent } from '../../../../blocks/events/shared/types';
7
+ export type ResolvedEventCta = {
8
+ label: string;
9
+ href: string;
10
+ external: boolean;
11
+ /**
12
+ * True when no booking CTA should render (e.g. sold out with no waitlist).
13
+ * This does NOT mean the event is unreachable: cards and rows link the
14
+ * title to the event page regardless, so a hidden CTA is never a dead end.
15
+ */
16
+ hidden: boolean;
17
+ };
18
+ export declare function resolveEventHref(event: PublicEvent): string;
19
+ export declare function resolveEventLinkProps(event: PublicEvent): {
20
+ href: string;
21
+ target?: '_blank';
22
+ rel?: string;
23
+ };
24
+ /**
25
+ * Resolve the CTA state for an event.
26
+ * Shared by EventCard and EventCompactRow to keep sold-out, registration-closed,
27
+ * and course-specific defaults consistent.
28
+ */
29
+ export declare function resolveEventCta(event: PublicEvent, buttonText?: string | null): ResolvedEventCta;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Date and time presentation for events: the single place an event's
3
+ * timestamps become strings or date buckets. Calendar-grid primitives are
4
+ * re-exported from @riverbankcms/calendar so block code has one import.
5
+ */
6
+ import type { PublicEvent } from '../../../../blocks/events/shared/types';
7
+ export { DAY_NAMES, MONTH_NAMES } from '../../../../../../../calendar/src/index';
8
+ export type { WeekStart } from '../../../../../../../calendar/src/index';
9
+ type DateTimeFormatOptions = {
10
+ /** When omitted, runtime local timezone is used. */
11
+ timeZone?: string | null;
12
+ locale?: string;
13
+ };
14
+ /**
15
+ * Format date for display.
16
+ * Returns: "Monday, January 15, 2025"
17
+ */
18
+ export declare function formatDate(isoTimestamp: string, options?: DateTimeFormatOptions): string;
19
+ /**
20
+ * Format time for display.
21
+ * Returns: "10:00 AM"
22
+ */
23
+ export declare function formatTime(isoTimestamp: string, options?: DateTimeFormatOptions): string;
24
+ export declare function formatEventDateParts(args: {
25
+ startsAt: string;
26
+ endsAt: string;
27
+ timeZone?: string | null;
28
+ locale?: string;
29
+ }): {
30
+ date: string;
31
+ timeRange: string;
32
+ };
33
+ export type EventCompactDateRail = Readonly<{
34
+ weekday: string;
35
+ day: string;
36
+ month: string;
37
+ label: string;
38
+ }>;
39
+ export declare function formatEventCompactDateRail(isoTimestamp: string, options?: DateTimeFormatOptions): EventCompactDateRail;
40
+ export { addDays, addMonths, buildCalendarViewport, formatCalendarTitle, formatDateKey, getEndOfMonth, getMonthCalendarDays, getOrderedDayNames, getStartOfMonth, getWeekCalendarDays, getWeekCalendarDayTuple, isToday, MAX_EVENTS_PER_DAY, shiftCalendarAnchorDate, } from '../../../../../../../calendar/src/index';
41
+ export type { CalendarDate, CalendarViewport, CalendarViewportKind, MonthCalendarViewport, WeekCalendarDays, WeekCalendarViewport, } from '../../../../../../../calendar/src/index';
42
+ /**
43
+ * Group events by their local date (YYYY-MM-DD key in each event's own
44
+ * timezone). Thin domain wrapper over `groupItemsByDate` from the calendar
45
+ * package; preserves the historical `Map<string, PublicEvent[]>` shape.
46
+ */
47
+ export declare function groupEventsByDate(events: PublicEvent[], calendarTimeZone: string): Map<string, PublicEvent[]>;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Event domain helpers: pure functions that turn event data into strings,
3
+ * numbers, hrefs and decisions. One file per concept, no React.
4
+ *
5
+ * If you are about to format a date, a price, a name, a capacity count or a
6
+ * CTA for an event inline in a component, the function belongs here instead.
7
+ * Components in ../shared and the registration wizard import from this barrel.
8
+ */
9
+ export * from './capacity';
10
+ export * from './cta';
11
+ export * from './dates';
12
+ export * from './destination';
13
+ export * from './people';
14
+ export * from './pricing';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * People presentation for events: teacher lines and name lists.
3
+ */
4
+ import type { PublicEvent } from '../../../../blocks/events/shared/types';
5
+ export declare function formatTeamMemberNames(names: readonly string[]): string | null;
6
+ export declare function formatEventTeacherLine(event: PublicEvent): string | null;
@@ -0,0 +1,24 @@
1
+ import { type PublicEventPricing } from '../../../../../../../core/src/index';
2
+ import type { PublicEvent } from '../../../../blocks/events/shared/types';
3
+ /**
4
+ * Format event price for display.
5
+ * @returns "Free", "£25", "£12 - £25", "Free / £12 - £25", "Course (From £40)", etc.
6
+ *
7
+ * Events render compact amounts (no trailing ".00"); the actual ADT→string
8
+ * mapping lives in `formatBookingPriceDisplay` in @riverbankcms/core so all
9
+ * surfaces stay consistent.
10
+ */
11
+ export declare function formatEventPrice(event: PublicEvent): string;
12
+ /**
13
+ * Format an event's price directly from its pricing value (without the full
14
+ * event). Same output as {@link formatEventPrice}.
15
+ */
16
+ export declare function formatEventPriceDisplay(pricing: PublicEventPricing): string;
17
+ /**
18
+ * Format one exact money amount from the canonical Event pricing projection.
19
+ *
20
+ * Used where a surface has an amount rather than a whole pricing model — a
21
+ * discount line, a single run price. Amounts render exactly (trailing minor
22
+ * units kept) because these sit next to other exact figures.
23
+ */
24
+ export declare function formatEventPriceAmount(amount: number, currency: string, locale?: string): string;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ /**
3
+ * Heading for an offering card or row. Links to the offering's page when one
4
+ * exists so a sold-out or closed offering stays reachable (issue 1372); the
5
+ * `.event-title-link` rule lives in theme-core's event-list.css.
6
+ */
7
+ export declare function OfferingTitle({ className, path, title, }: Readonly<{
8
+ className: string;
9
+ path: string | null;
10
+ title: string;
11
+ }>): React.JSX.Element;