@riverbankcms/sdk 0.145.0 → 0.147.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 (254) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/{PreviewEditorSidebar-O-V6Pl5a.mjs → PreviewEditorSidebar-DtpB3_sS.mjs} +51 -33
  3. package/dist/{PreviewEditorUI-1UlX_9cw.mjs → PreviewEditorUI-DxTLgaHo.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BxGwdOCV.mjs → PreviewQueryProvider-Dd4dxOiU.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-DYbA_4iv.mjs → SdkPreviewModeRuntime-DMMNCngt.mjs} +311 -186
  6. package/dist/{SiteChromeCustomizeContext-CNTKQ9nx.mjs → SiteChromeCustomizeContext-DQXZXiqS.mjs} +3808 -2395
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +1122 -0
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +102 -0
  9. package/dist/_dts/api/src/accountApi.d.ts +5 -5
  10. package/dist/_dts/api/src/bookingConfig.d.ts +24 -1
  11. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +11 -26
  12. package/dist/_dts/api/src/bookingManagementEventEndpointTypes.d.ts +45 -1
  13. package/dist/_dts/api/src/bookingOperations.d.ts +2 -44
  14. package/dist/_dts/api/src/bookingPeople.d.ts +92 -0
  15. package/dist/_dts/api/src/bookingPeopleEndpointDefinitions.d.ts +38 -0
  16. package/dist/_dts/api/src/bookingRecords.d.ts +11 -49
  17. package/dist/_dts/api/src/bookingSettingsSections.d.ts +1 -1
  18. package/dist/_dts/api/src/bookings.d.ts +1 -0
  19. package/dist/_dts/api/src/clientErrorReporting.d.ts +50 -0
  20. package/dist/_dts/api/src/communications.d.ts +20 -4
  21. package/dist/_dts/api/src/contentRuntime.d.ts +3 -7
  22. package/dist/_dts/api/src/endpoints.d.ts +816 -655
  23. package/dist/_dts/api/src/event-visibility.d.ts +20 -0
  24. package/dist/_dts/api/src/eventManagementContracts.d.ts +72 -4
  25. package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +24 -0
  26. package/dist/_dts/api/src/eventPageWords.d.ts +19 -0
  27. package/dist/_dts/api/src/eventSeriesRegistrationEndpointDefinitions.d.ts +14 -0
  28. package/dist/_dts/api/src/index.d.ts +9 -2
  29. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
  30. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  31. package/dist/_dts/api/src/launchReadiness.d.ts +19 -6
  32. package/dist/_dts/api/src/launchRequirementPriority.d.ts +3 -0
  33. package/dist/_dts/api/src/mailingListIntegration.d.ts +6 -0
  34. package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +1 -1
  35. package/dist/_dts/api/src/newsletterCampaignCommandEndpoints.d.ts +13 -0
  36. package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +57 -0
  37. package/dist/_dts/api/src/occurrenceScheduling.d.ts +29 -0
  38. package/dist/_dts/api/src/pageSurfaceEndpoints.d.ts +44 -0
  39. package/dist/_dts/api/src/participantMessaging.d.ts +11 -1
  40. package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +48 -0
  41. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +7 -0
  42. package/dist/_dts/api/src/sdk-event-upsert.d.ts +55 -1
  43. package/dist/_dts/api/src/sdkContracts.d.ts +3 -42
  44. package/dist/_dts/api/src/sdkCourseBooking.d.ts +30 -0
  45. package/dist/_dts/api/src/sdkEventEndpointDefinitions.d.ts +76 -0
  46. package/dist/_dts/api/src/sdkEventLifecycle.d.ts +37 -0
  47. package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +18 -0
  48. package/dist/_dts/api/src/sdkPageDesign.d.ts +388 -0
  49. package/dist/_dts/api/src/sdkPageDesignEndpointDefinitions.d.ts +22 -0
  50. package/dist/_dts/api/src/sdkPullEventContracts.d.ts +46 -0
  51. package/dist/_dts/api/src/siteAddressEndpoints.d.ts +29 -0
  52. package/dist/_dts/api/src/siteLifecycleEndpoints.d.ts +61 -0
  53. package/dist/_dts/api/src/siteManagementEndpointDefinitions.d.ts +49 -0
  54. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +6 -49
  55. package/dist/_dts/api/src/siteOnboarding.d.ts +72 -18
  56. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -1
  57. package/dist/_dts/api/src/types.d.ts +7 -1
  58. package/dist/_dts/api/src/wholeSeriesRuns.d.ts +14 -0
  59. package/dist/_dts/blocks/src/PageRenderer.d.ts +3 -4
  60. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +8 -0
  61. package/dist/_dts/blocks/src/index.d.ts +2 -0
  62. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +29 -1
  63. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +5 -1
  64. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +27 -5
  65. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +14 -1
  66. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +4 -1
  67. package/dist/_dts/blocks/src/system/icons/social.d.ts +1 -1
  68. package/dist/_dts/blocks/src/system/registry.d.ts +1 -1
  69. package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +4 -0
  70. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +12 -0
  71. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +12 -0
  72. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +6 -0
  73. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -0
  74. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +2 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.completion.d.ts +9 -0
  76. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +9 -0
  77. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +19 -0
  78. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-choice.d.ts +5 -0
  79. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-note.d.ts +3 -0
  80. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-state.d.ts +9 -0
  81. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.reserved-fields.d.ts +1 -1
  82. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +1 -1
  83. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +2 -0
  84. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-handler.d.ts +8 -0
  85. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-success.d.ts +9 -0
  86. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +3 -0
  87. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/AttendeeDetailsStep.d.ts +3 -0
  88. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SuccessStep.d.ts +3 -0
  89. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +3 -0
  90. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +1 -0
  91. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +2 -0
  92. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +6 -0
  93. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +3 -0
  94. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +8 -0
  95. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +9 -0
  96. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +20 -4
  97. package/dist/_dts/blocks/src/system/runtime/nodes/form.fields.d.ts +5 -0
  98. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.block-submission.d.ts +34 -0
  99. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.d.ts +1 -1
  100. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +6 -1
  101. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.parts.d.ts +46 -0
  102. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
  103. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +4 -1
  104. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingMailingListNote.d.ts +6 -0
  105. package/dist/_dts/blocks/src/system/runtime/shared/components/CheckboxChoice.d.ts +18 -0
  106. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -0
  107. package/dist/_dts/blocks/src/system/runtime/shared/mailingListSignupCopy.d.ts +6 -0
  108. package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +1 -0
  109. package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +3 -2
  110. package/dist/_dts/blocks/src/system/transforms/registry/core.d.ts +2 -0
  111. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +1 -3
  112. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  113. package/dist/_dts/content-editor/src/primitives/previewEditableOutline.d.ts +2 -0
  114. package/dist/_dts/content-editor/src/ui/editorBlockEquality.d.ts +3 -0
  115. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +3 -5
  116. package/dist/_dts/core/src/block-content-identity.d.ts +5 -0
  117. package/dist/_dts/core/src/editor-state.d.ts +2 -7
  118. package/dist/_dts/core/src/index.d.ts +2 -1
  119. package/dist/_dts/core/src/mailing-list-runtime.d.ts +15 -0
  120. package/dist/_dts/core/src/mailing-list-setup.d.ts +2 -0
  121. package/dist/_dts/core/src/mailing-list-submission.d.ts +9 -1
  122. package/dist/_dts/core/src/navigation-portal-labels.d.ts +9 -0
  123. package/dist/_dts/core/src/participants.d.ts +0 -38
  124. package/dist/_dts/core/src/public-event-booking-availability.d.ts +20 -1
  125. package/dist/_dts/core/src/public-profile.d.ts +3 -1
  126. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +151 -24
  127. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +3 -0
  128. package/dist/_dts/editor-blocks/src/block-editor/EmptyState.d.ts +13 -1
  129. package/dist/_dts/editor-blocks/src/block-editor/actionPresentation.d.ts +1 -0
  130. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +2 -8
  131. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  132. package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +7 -1
  133. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +5 -5
  134. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -2
  135. package/dist/_dts/sdk/src/next/renderSdkContent.d.ts +0 -1
  136. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +3 -2
  137. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +3 -2
  138. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +6 -1
  139. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +5 -2
  140. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +6 -1
  141. package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +2 -0
  142. package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +5 -1
  143. package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +5 -1
  144. package/dist/_dts/sdk/src/version.d.ts +1 -1
  145. package/dist/_dts/surfaces/src/index.d.ts +9 -0
  146. package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +1 -1
  147. package/dist/_dts/theme-core/src/footer/effectiveNavLinkStyle.d.ts +13 -0
  148. package/dist/_dts/theme-core/src/footer/index.d.ts +1 -0
  149. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  150. package/dist/_dts/theme-core/src/header/effectiveNavLinkStyle.d.ts +17 -0
  151. package/dist/_dts/theme-core/src/header/generateHeaderLogoStyles.d.ts +15 -0
  152. package/dist/_dts/theme-core/src/header/generateHeaderNavLinkStyles.d.ts +4 -0
  153. package/dist/_dts/theme-core/src/header/index.d.ts +3 -0
  154. package/dist/_dts/theme-core/src/header/legacyNavLinkStyle.d.ts +1 -1
  155. package/dist/_dts/theme-core/src/header/openingForegroundProjection.d.ts +7 -0
  156. package/dist/_dts/theme-core/src/header/rootPaint.d.ts +4 -0
  157. package/dist/_dts/theme-core/src/inputs/checkable.d.ts +42 -0
  158. package/dist/_dts/theme-core/src/inputs/inputGroup.d.ts +19 -0
  159. package/dist/_dts/theme-core/src/navigation/effectPolicy.d.ts +38 -0
  160. package/dist/_dts/theme-core/src/navigation/generateNavLinkCSS.d.ts +4 -0
  161. package/dist/_dts/theme-core/src/navigation/types.d.ts +4 -0
  162. package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +1 -1
  163. package/dist/_dts/theme-core/src/surfaces/foregroundContract.d.ts +7 -0
  164. package/dist/_dts/theme-core/src/surfaces/foregroundInteraction.d.ts +29 -22
  165. package/dist/_dts/theme-core/src/surfaces/foregroundRoles.d.ts +10 -2
  166. package/dist/_dts/theme-core/src/surfaces/resolveSurfaceForeground.d.ts +9 -0
  167. package/dist/_dts/theme-core/src/utils/cssDeclarations.d.ts +2 -0
  168. package/dist/_dts/ui/src/badge.d.ts +2 -1
  169. package/dist/_dts/ui/src/button.d.ts +1 -1
  170. package/dist/_dts/ui/src/combobox-keys.d.ts +23 -0
  171. package/dist/_dts/ui/src/combobox-rows.d.ts +34 -0
  172. package/dist/_dts/ui/src/combobox.d.ts +26 -1
  173. package/dist/_dts/ui/src/date-picker.d.ts +5 -8
  174. package/dist/_dts/ui/src/editor-item-card.d.ts +1 -0
  175. package/dist/_dts/ui/src/field-trigger.d.ts +39 -0
  176. package/dist/_dts/ui/src/fieldControl.d.ts +27 -0
  177. package/dist/_dts/ui/src/index.d.ts +4 -1
  178. package/dist/_dts/ui/src/native-select.d.ts +8 -0
  179. package/dist/_dts/ui/src/navigation-tabs.d.ts +2 -1
  180. package/dist/_dts/ui/src/popover.d.ts +7 -1
  181. package/dist/_dts/ui/src/segmented-control.d.ts +4 -0
  182. package/dist/_dts/ui/src/surface.d.ts +1 -1
  183. package/dist/client/{BookingConsentAgreement-DlVOmpW4.mjs → BookingMailingListNote-1n4Ch_u_.mjs} +15 -4
  184. package/dist/client/CheckboxChoice-B33MqoUo.mjs +24 -0
  185. package/dist/client/{DiscountCodeDisclosure-T9q623PQ.mjs → DiscountCodeDisclosure-CKJtz0mY.mjs} +1 -1
  186. package/dist/client/{EventCombined.client-DnsUeONl.mjs → EventCombined.client-C0pgma9y.mjs} +7 -7
  187. package/dist/client/{EventListing.client-CNBFqJS4.mjs → EventListing.client-4fhLOvHP.mjs} +2 -2
  188. package/dist/client/{LeafletStaticMap-C7higg52.mjs → LeafletStaticMap-DScC4F3w.mjs} +1 -1
  189. package/dist/client/{scrollToBlock-CWs8EIdo.mjs → TerminalPanel-B5ZUsYhe.mjs} +77 -77
  190. package/dist/client/{ThemedButton-LAJTNrS8.mjs → ThemedButton-DoVIV1Ao.mjs} +2 -2
  191. package/dist/client/{accordion-BcNF9TjX.mjs → accordion-CoT5g7zo.mjs} +1 -1
  192. package/dist/client/{bookingForm-BUaQ3S03.mjs → bookingForm-BWxB46xD.mjs} +251 -150
  193. package/dist/client/bookings.mjs +415 -234
  194. package/dist/client/{carousel-CTdF6e0V.mjs → carousel-DtNYWFd3.mjs} +2 -2
  195. package/dist/client/{carousel.client-jahpU9Vz.mjs → carousel.client-A2lG-9od.mjs} +1 -1
  196. package/dist/client/{cart-pGtyf_XU.mjs → cart-z4qZih1Y.mjs} +3 -3
  197. package/dist/client/{checkout-Da9WSn7Y.mjs → checkout-DpL7euFH.mjs} +3 -3
  198. package/dist/client/{checkoutUrls-CW3-78uu.mjs → checkoutUrls-BEfR7kVu.mjs} +1 -1
  199. package/dist/client/client.mjs +3721 -2220
  200. package/dist/client/{colorStyles-CuJBiS-1.mjs → colorStyles-j5U9v5JA.mjs} +5 -1
  201. package/dist/client/{context-BFeY_Wbm.mjs → context-C8TinPJc.mjs} +1 -1
  202. package/dist/client/{dates-BhwVSxDg.mjs → dates-vwwxTeB0.mjs} +2 -3
  203. package/dist/client/{eventCalendar-BAtdnR4s.mjs → eventCalendar-DIbHfJXO.mjs} +10 -10
  204. package/dist/client/{eventCombined-RksA3tRC.mjs → eventCombined-DoGMJ6cg.mjs} +4 -4
  205. package/dist/client/{eventDetails-BB9hB4wR.mjs → eventDetails-BjN9v6a1.mjs} +4 -4
  206. package/dist/client/{eventListing-BpJBkviM.mjs → eventListing-DajjWgOv.mjs} +4 -4
  207. package/dist/client/{eventRegistration-B18jFq_o.mjs → eventRegistration-DMq9gMA-.mjs} +121 -54
  208. package/dist/client/{form-Dodt8Y8t.mjs → form-Qf6qTbos.mjs} +136 -105
  209. package/dist/client/{headerSection-B0qj9ttg.mjs → headerSection-D7qJrqFX.mjs} +3 -3
  210. package/dist/client/hooks.mjs +1148 -179
  211. package/dist/client/{locationMap-gn-iMk7a.mjs → locationMap-CCF9-t_0.mjs} +4 -4
  212. package/dist/client/{FieldValidationMessage-AYanWFb-.mjs → mailingListSignupCopy-DZSHZrm6.mjs} +14 -1
  213. package/dist/client/{media-BtJ37tzS.mjs → media-CwBGetqC.mjs} +1 -1
  214. package/dist/client/{newsletterForm-oByLdFkr.mjs → newsletterForm-DzCLSP4S.mjs} +206 -104
  215. package/dist/client/{pricing-BOU0_Hai.mjs → pricing-Cgxv2KLC.mjs} +1 -1
  216. package/dist/client/{productDetail-D9v1zH2j.mjs → productDetail-ru9w5GHx.mjs} +3 -3
  217. package/dist/client/{productList-D-mItx1n.mjs → productList-zaapKSl-.mjs} +3 -3
  218. package/dist/client/{propsDecoder-C3TP_z4x.mjs → propsDecoder-CwvvNOHx.mjs} +91 -28
  219. package/dist/client/rendering/client.mjs +1441 -826
  220. package/dist/client/rendering/islands.mjs +19 -19
  221. package/dist/client/rendering.mjs +3652 -2005
  222. package/dist/client/{routeIslandApiConfig-DzN1W0sq.mjs → routeIslandApiConfig-BwVFo0Y4.mjs} +1 -1
  223. package/dist/client/{shop-commerce-gklw_hLF.mjs → shop-commerce-De7gEnkA.mjs} +8 -8
  224. package/dist/client/{shop-commerce-store-Sf1eyTaZ.mjs → shop-commerce-store-B3MCxIBW.mjs} +1 -1
  225. package/dist/client/{shop-Dufw7N7o.mjs → shop-mktkXvbV.mjs} +7 -7
  226. package/dist/client/{shopShared-B5nyA41S.mjs → shopShared-TqExh235.mjs} +5 -5
  227. package/dist/client/{useEventFilters-CLL829vy.mjs → useEventFilters-n_OjkIjX.mjs} +8 -8
  228. package/dist/preview-next/before-render.mjs +490 -153
  229. package/dist/preview-next/client/runtime.mjs +4 -4
  230. package/dist/preview-next/editor-base.css +64 -2
  231. package/dist/preview-next/editor-chrome.css +7 -4
  232. package/dist/preview-next/keepAlive.mjs +450 -153
  233. package/dist/preview-next/middleware.mjs +451 -153
  234. package/dist/{previewAuthStore-BxAFlu-j.mjs → previewAuthStore-C_EHQ5XA.mjs} +475 -153
  235. package/dist/{sdk-runtime-D0uZFev7.mjs → sdk-runtime-BIkJg5y1.mjs} +2 -2
  236. package/dist/{separator-EvdCAn4V.mjs → separator-C9qDP95Z.mjs} +1 -1
  237. package/dist/server/components.mjs +4957 -3509
  238. package/dist/server/config-validation.mjs +1115 -189
  239. package/dist/server/config.mjs +1115 -189
  240. package/dist/server/data.mjs +1113 -188
  241. package/dist/server/index.mjs +492 -154
  242. package/dist/server/navigation.mjs +13 -2
  243. package/dist/server/next.mjs +4798 -3462
  244. package/dist/server/page-converter.mjs +143 -89
  245. package/dist/server/prebuild.mjs +1 -1
  246. package/dist/server/rendering/server.mjs +3862 -2414
  247. package/dist/server/rendering.mjs +5648 -4154
  248. package/dist/server/routing.mjs +1223 -329
  249. package/dist/server/server.mjs +1172 -314
  250. package/dist/server/theme-bridge.mjs +533 -128
  251. package/dist/server/theme.mjs +5 -1
  252. package/dist/styles/index.css +218 -69
  253. package/package.json +1 -1
  254. package/dist/_dts/core/src/participant-identity.d.ts +0 -135
@@ -1,5 +1,6 @@
1
+ import type { SiteLifecycleAPIEndpoints } from './siteLifecycleEndpoints';
1
2
  import type { PublicProfile, RectificationHistoryPropagationPlan, RectificationIdentityBoundary, RectificationIssueUrl, RectificationSurface } from '../../core/src/index';
2
- import type { CamelizeKeys, DbRow, DbJson } from '../../db/src/index';
3
+ import type { DbJson } from '../../db/src/index';
3
4
  import type { APIEndpoint } from './apiEndpointTypes';
4
5
  import type { BillingAPIEndpoints } from './billingEndpointTypes';
5
6
  import type { CustomDomainConnectionSnapshot, DomainHostingStatus } from './domainConnection';
@@ -7,15 +8,14 @@ import type { AdminListAllowedDomainsQueryOutput } from './schemas/admin-allowed
7
8
  import type { AdminListAxiomLogsQueryOutput, AdminListErrorLogsQueryOutput, AdminListSupabaseLogsQueryOutput, AdminListVercelLogsQueryOutput } from './schemas/admin-observability-logs';
8
9
  import type { AcceptAdminInviteRequest, AcceptAdminInviteResponse, AcceptSiteInvitationRequest, AcceptSiteInvitationResponse, AddCustomDomainRequest, AddCustomDomainResponse, AdminDeleteUserResponse, AuthInviteContinueRequest, AuthInviteContinueResponse, AuthInviteRegisterRequest, AuthInviteRegisterResponse, AuthResetCompleteRequest, AuthResetCompleteResponse, AuthSubmissionResult, BulkOperationResult, CreateAdminInviteRequest, CreateAdminInviteResponse, CreateAdminUserRequest, CreateAdminUserResponse, CreateAllowedDomainRequest, CreateAllowedDomainResponse, DeleteAllowedDomainResponse, DomainConfigResult, DomainSearchResultResponse, CurrentUserPractitionerLinkResponse, InviteSiteMemberRequest, InviteSiteMemberResponse, LinkCurrentUserPractitionerRequest, ListAdminInvitesResponse, ListAllowedDomainsResponse, ListSiteMembersResponse, LookupSiteDomainRequest, LookupSiteDomainResponse, MfaBackupCodesOverviewResponse, MfaBackupCodesRotateResponse, MfaOverviewResponse, MfaPhoneChallengeRequest, MfaPhoneChallengeResponse, MfaPhoneEnrollRequest, MfaPhoneEnrollResponse, MfaPhoneVerifyRequest, MfaTotpActivateRequest, MfaTotpEnrollResponse, MfaTotpVerifyRequest, MfaTotpVerifyResponse, ReauthSubmissionResult, RegisterDomainRequestPayload, RegisterDomainResponse, RegistrarBooleanMutationRequest, RegistrarLifecycleResponse, RegistrarRenewalPostureResponse, RegisterSiteDomainRequest, RegisterSiteDomainResponse, RemoveSiteMemberResponse, RevokeAdminInviteResponse, RevokeSiteInvitationResponse, ResendSiteInvitationResponse, SetHomepageRequest, SetHomepageResponse, SiteDomainContactPayload, SiteDomainRecord, TransferSiteOwnershipRequest, TransferSiteOwnershipResponse, UpdateSiteMemberRoleRequest, UpdateSiteMemberRoleResponse } from './accessAdmin';
9
10
  import type { AdminRoleMutationResponse, RevokeAdminRoleRequest, StartImpersonationRequest, StartImpersonationResponse, StopImpersonationRequest, StopImpersonationResponse, UpsertAdminRoleRequest } from './admin/types';
10
- import type { AccountRevokeSessionsBody, AccountRevokeSessionsResponse, AccountUpdatePasswordBody, AccountUpdatePasswordResponse, CreateManualSiteRequest, CreateManualSiteResponse } from './siteOperations';
11
+ import type { AccountRevokeSessionsBody, AccountRevokeSessionsResponse, AccountUpdatePasswordBody, AccountUpdatePasswordResponse } from './siteOperations';
11
12
  import type { BookingSessionCancelAppointmentRequest, BookingSessionCancelAppointmentResponse, BookingSessionCreateAppointmentRequest, BookingSessionCreateAppointmentResponse, BookingSessionGetAppointmentResponse, BookingSessionListEligibleAppointmentPackagesResponse, BookingSessionGetEventResponse, BookingSessionListAppointmentsResponse, BookingSessionListEventsResponse, BookingSessionListMembershipsResponse, BookingSessionListPassesResponse, BookingSessionMeResponse, BookingSessionUpdateMeRequest, BookingSessionUpdateMeResponse, PublicBookingAppointmentStatusResponse, PublicBookingAvailabilityQuery, PublicBookingAvailableDatesResponse, PublicBookingAvailableSlotsResponse, PublicBookingService, PublicBookingServicesResponse, PublicWeeklySlotAvailabilityQuery, PublicWeeklySlotAvailabilityResponse, PublicCreateBookingAppointmentRequest, PublicCreateBookingAppointmentResponse, ReferenceOptionsResponse } from './bookingOperations';
12
13
  import type { ContentEntryOrPageResponse, ContentEntrySummary, ExportFormSubmissionsCsvQuery, ExportFormSubmissionsCsvResponse, CreateFormSubmissionRectificationAnnotationRequest, CreateFormSubmissionRectificationAnnotationResponse, FormRecord, FormSubmissionWithRectificationAnnotations, FormSummary, NavigationItemRecord, NavigationMenuWithItems, PublicFormRecord, PublishedContentEntryOrPageResponse, RunSdkWorkflowResponse, ScheduledContentEntryOrPageResponse, WorkflowRunStatusResponse } from './contentRuntime';
13
14
  import type { GetVersionHistoryResponse, ListVersionHistoryResponse, RestoreVersionHistoryRequest, RestoreVersionHistoryResponse, VersionHistoryListQuery } from './contentVersionHistory';
14
15
  import type { ApplyContentTemplateAddonRequest, ContentTemplateDetailsResponse, CreateTemplateBlockRequest, GetTransformsResponse, ReorderTemplateBlocksRequest, SerializedContentTypeSummary, UpdateContentTemplateBlockBindingsRequest, UpdateContentTemplateBlockRequest } from './contentTypes';
15
16
  import type { LinkPayload, RoutableContentItem, SitemapRouteItem } from './navigation/types';
16
17
  import type { RouteMetadataPayload, RouteMetadataResponse } from './routes';
17
- import type { PageSurfaceEditorDocument, PublishPageSurfaceResponse } from './contentRuntime';
18
- import type { ContentRouteRecord } from './types';
18
+ import type { PageSurfaceAPIEndpoints } from './pageSurfaceEndpoints';
19
19
  import type { SiteAnalyticsSettingsPayload, SiteAnalyticsSettingsResponse } from './siteAnalytics';
20
20
  import type { SiteBannerSettingsPayload, SiteBannerSettingsResponse } from './siteBanner';
21
21
  import type { GeneratedIconSetGenerateRequest, GeneratedIconSetGenerateResponse, GeneratedIconSetListRequest, GeneratedIconSetListResponse, SiteIconStyleGuideResponse, SiteIconStyleGuideUpdateRequest } from './siteIcons';
@@ -29,7 +29,6 @@ export type { FooterCompositionSnapshot, FooterCompositionUpdateRequest, FooterC
29
29
  * that still belong to the aggregate contract layer but no longer need to live inline in
30
30
  * `types.ts`.
31
31
  */
32
- type Site = CamelizeKeys<DbRow<'sites'>>;
33
32
  export type PublicProfileSnapshot = Readonly<{
34
33
  kind: 'ready';
35
34
  profile: PublicProfile;
@@ -57,7 +56,7 @@ export type PublicProfileUpdateResponse = Readonly<{
57
56
  type DsarRunKindApi = 'preview_export' | 'execute_actions';
58
57
  type DsarExecutionModeApi = 'preview_only' | 'confirmed_execute';
59
58
  type DsarRunStatusApi = 'running' | 'previewed' | 'completed' | 'partially_failed' | 'failed';
60
- type DsarSurfaceNameApi = 'booking_customer' | 'person_record' | 'appointment' | 'event_registration' | 'order' | 'form_submission' | 'portal_session' | 'email_audit' | 'newsletter_subscriber';
59
+ type DsarSurfaceNameApi = 'booking_customer' | 'person_record' | 'appointment' | 'event_registration' | 'booking_question_answer' | 'order' | 'form_submission' | 'portal_session' | 'email_audit' | 'newsletter_subscriber';
61
60
  type DsarExecutableSurfaceNameApi = 'portal_session' | 'newsletter_subscriber' | 'form_submission';
62
61
  type DsarRunCountsApi = {
63
62
  matchedSurfaces: number;
@@ -146,20 +145,7 @@ type DsarExecutionOutcomeApi = {
146
145
  detail: string;
147
146
  message: string;
148
147
  };
149
- export type SiteManagementAPIEndpoints = BillingAPIEndpoints & {
150
- createSite: APIEndpoint<{
151
- title: string;
152
- }, never, {
153
- id: string;
154
- title: string;
155
- }>;
156
- createSiteManual: APIEndpoint<CreateManualSiteRequest, never, CreateManualSiteResponse>;
157
- updateSite: APIEndpoint<Partial<Site>, never, Partial<Site>>;
158
- deleteSite: APIEndpoint<never, {
159
- siteId: string;
160
- }, {
161
- ok: boolean;
162
- }>;
148
+ export type SiteManagementAPIEndpoints = BillingAPIEndpoints & SiteLifecycleAPIEndpoints & PageSurfaceAPIEndpoints & {
163
149
  listContentEntries: APIEndpoint<never, {
164
150
  siteId: string;
165
151
  type: string;
@@ -247,35 +233,6 @@ export type SiteManagementAPIEndpoints = BillingAPIEndpoints & {
247
233
  type: string;
248
234
  entryId: string;
249
235
  }, ContentEntryOrPageResponse>;
250
- updatePageSurfaceDraftContent: APIEndpoint<{
251
- data: Record<string, unknown>;
252
- optimisticHash: string;
253
- }, {
254
- siteId: string;
255
- pageSurfaceId: string;
256
- }, {
257
- document: PageSurfaceEditorDocument;
258
- }>;
259
- discardPageSurfaceDraftContent: APIEndpoint<{
260
- optimisticHash: string;
261
- }, {
262
- siteId: string;
263
- pageSurfaceId: string;
264
- }, {
265
- document: PageSurfaceEditorDocument;
266
- }>;
267
- updatePageSurfaceRouteMetadata: APIEndpoint<Pick<RouteMetadataPayload, 'draftSlug' | 'draftMetaTitle' | 'draftMetaDescription' | 'ogImageId'> & {
268
- expectedDraftUpdatedAt: string | null;
269
- }, {
270
- siteId: string;
271
- pageSurfaceId: string;
272
- }, {
273
- route: ContentRouteRecord;
274
- }>;
275
- publishPageSurface: APIEndpoint<never, {
276
- siteId: string;
277
- pageSurfaceId: string;
278
- }, PublishPageSurfaceResponse>;
279
236
  runSdkWorkflow: APIEndpoint<never, {
280
237
  siteId: string;
281
238
  type: string;
@@ -2,7 +2,7 @@ import type { Theme } from '../../blocks/src/index';
2
2
  import type { SiteVerticalBookingConfig } from '../../core/src/index';
3
3
  import { z } from 'zod';
4
4
  import type { AiGenerateSiteEntityType, AiGenerateSitePrimaryCta, AiGenerateSiteRequest } from './siteGeneration';
5
- import type { AppointmentSetupTargetStep } from './appointmentSetup';
5
+ import type { AppointmentSetupReadiness, AppointmentSetupTargetStep } from './appointmentSetup';
6
6
  import type { MacadamiaOnboardingLogoAnalysis, MacadamiaOnboardingSurfaceData, PublicOnboardingSurfaceId } from './onboarding/surfaceData';
7
7
  export type * from './onboarding/surfaceData';
8
8
  /**
@@ -89,8 +89,8 @@ export type AiBrandGuidelinesGenerateResponse = {
89
89
  stats: SiteContentSamplingStats;
90
90
  };
91
91
  };
92
- export type LaunchRequirementId = 'confirm_email' | 'review_generated_site' | 'configure_appointments' | 'configure_events' | 'configure_courses' | 'connect_payments' | 'connect_custom_domain';
93
- export type LaunchRequirementPackId = 'core' | 'bookings_appointments' | 'bookings_events' | 'bookings_courses' | 'payments' | 'domain';
92
+ export type LaunchRequirementId = 'confirm_email' | 'review_generated_site' | 'configure_appointments' | 'configure_events' | 'configure_courses' | 'connect_payments' | 'add_first_offering' | 'add_cover_image' | 'add_public_contact';
93
+ export type LaunchRequirementPackId = 'core' | 'bookings_appointments' | 'bookings_events' | 'bookings_courses' | 'payments' | 'offerings' | 'presence';
94
94
  export type LaunchRequirementPriority = 'required' | 'recommended' | 'optional';
95
95
  export type LaunchRequirementState = 'complete' | 'pending';
96
96
  export type LaunchRequirementOwner = 'admin' | 'editor' | 'either';
@@ -129,9 +129,6 @@ export type LaunchRequirementAction = {
129
129
  label: string;
130
130
  };
131
131
  export type LaunchRequirementEvidence = {
132
- kind: 'domain_connection';
133
- domainIds: readonly string[];
134
- } | {
135
132
  kind: 'derived';
136
133
  } | {
137
134
  kind: 'acknowledged';
@@ -162,23 +159,36 @@ export type LaunchAppointmentsPackState = {
162
159
  kind: 'disabled';
163
160
  } | {
164
161
  kind: 'ready';
165
- } | {
162
+ }
163
+ /** `missing` is the first gap in setup, so copy can name it. */
164
+ | {
166
165
  kind: 'pending_setup';
166
+ missing: LaunchAppointmentsSetupGap;
167
167
  targetStep: AppointmentSetupTargetStep;
168
168
  };
169
+ export type LaunchAppointmentsSetupGap = Exclude<AppointmentSetupReadiness['kind'], 'not_applicable' | 'bookable'>;
170
+ /** The event offering kinds a launch item can name (courses have their own item). */
171
+ export declare const LAUNCH_EVENT_OFFERING_KINDS: readonly ["classes", "workshops", "retreats", "performances"];
172
+ export type LaunchEventOfferingKind = (typeof LAUNCH_EVENT_OFFERING_KINDS)[number];
169
173
  export type LaunchEventsPackState = {
170
174
  kind: 'disabled';
171
175
  } | {
172
176
  kind: 'ready';
173
- } | {
177
+ }
178
+ /** `offeredKinds`: event kinds recorded at onboarding, in wizard order; empty when none. */
179
+ | {
174
180
  kind: 'pending_setup';
181
+ offeredKinds: readonly LaunchEventOfferingKind[];
175
182
  };
183
+ /** Keyed on whether a Stripe account exists: `connected_pending` has one that can't take payments yet. */
176
184
  export type LaunchPaymentsPackState = {
177
185
  kind: 'not_applicable';
178
186
  } | {
179
187
  kind: 'ready';
180
188
  } | {
181
- kind: 'pending_setup';
189
+ kind: 'not_connected';
190
+ } | {
191
+ kind: 'connected_pending';
182
192
  };
183
193
  export type LaunchCoursesPackState = {
184
194
  kind: 'not_applicable';
@@ -187,20 +197,46 @@ export type LaunchCoursesPackState = {
187
197
  } | {
188
198
  kind: 'pending_setup';
189
199
  };
190
- export type LaunchCustomDomainPackState = {
191
- kind: 'connected';
192
- domainIds: readonly string[];
200
+ /** Booking pages only: whether the site has anything people could book. */
201
+ export type LaunchOfferingsPackState = {
202
+ kind: 'has_offerings';
193
203
  } | {
194
- kind: 'pending_verification' | 'partially_connected' | 'check_unavailable';
195
- domainIds: readonly string[];
204
+ kind: 'none';
205
+ };
206
+ /** Booking pages only. */
207
+ export type LaunchCoverImagePackState = {
208
+ kind: 'set';
196
209
  } | {
197
- kind: 'pending_setup';
210
+ kind: 'missing';
211
+ };
212
+ /** Booking pages only: whether any contact method is published. */
213
+ export type LaunchPublicContactPackState = {
214
+ kind: 'published';
215
+ } | {
216
+ kind: 'missing';
198
217
  };
199
- export type LaunchRequirement = {
200
- id: LaunchRequirementId;
218
+ /**
219
+ * The exact gap behind a pending requirement, so a presentation can name it
220
+ * ("Set your hours", "Finish setting up Stripe") without re-deriving facts.
221
+ */
222
+ export type LaunchAppointmentsGapDetail = {
223
+ kind: 'appointments_gap';
224
+ missing: LaunchAppointmentsSetupGap;
225
+ };
226
+ export type LaunchPaymentsGapDetail = {
227
+ kind: 'payments_gap';
228
+ stage: 'not_connected' | 'connected_pending';
229
+ };
230
+ export type LaunchEventKindsDetail = {
231
+ kind: 'event_kinds';
232
+ offeredKinds: readonly LaunchEventOfferingKind[];
233
+ };
234
+ export type LaunchRequirementDetail = LaunchAppointmentsGapDetail | LaunchPaymentsGapDetail | LaunchEventKindsDetail;
235
+ /** Requirements that always carry a `detail` while pending. */
236
+ export type LaunchDetailedRequirementId = Extract<LaunchRequirementId, 'configure_appointments' | 'connect_payments' | 'configure_events'>;
237
+ type LaunchRequirementFields = {
201
238
  packId: LaunchRequirementPackId;
202
239
  priority: LaunchRequirementPriority;
203
- state: LaunchRequirementState;
204
240
  owner: LaunchRequirementOwner;
205
241
  title: string;
206
242
  description: string;
@@ -208,6 +244,24 @@ export type LaunchRequirement = {
208
244
  secondaryAction?: LaunchRequirementAction | null;
209
245
  evidence: LaunchRequirementEvidence;
210
246
  };
247
+ type LaunchPendingWithDetail<Id extends LaunchDetailedRequirementId, Detail> = LaunchRequirementFields & {
248
+ id: Id;
249
+ state: 'pending';
250
+ detail: Detail;
251
+ };
252
+ /**
253
+ * One launch requirement. The three detailed items must carry their gap
254
+ * while pending, so a presentation never has to guess it.
255
+ */
256
+ export type LaunchRequirement = LaunchPendingWithDetail<'configure_appointments', LaunchAppointmentsGapDetail> | LaunchPendingWithDetail<'connect_payments', LaunchPaymentsGapDetail> | LaunchPendingWithDetail<'configure_events', LaunchEventKindsDetail> | (LaunchRequirementFields & {
257
+ id: LaunchDetailedRequirementId;
258
+ state: 'complete';
259
+ detail?: never;
260
+ }) | (LaunchRequirementFields & {
261
+ id: Exclude<LaunchRequirementId, LaunchDetailedRequirementId>;
262
+ state: LaunchRequirementState;
263
+ detail?: never;
264
+ });
211
265
  export type GoLiveDecision = {
212
266
  kind: 'allowed';
213
267
  overriddenRequirementIds: LaunchRequirementId[];
@@ -23,7 +23,7 @@ export type SdkUpsertNavigationItemInput = Readonly<{
23
23
  * Site platform endpoints cover admin/configuration surfaces: redirects, webhooks,
24
24
  * keys, SDK management, content-type CRUD, backup flows, and site-level admin tools.
25
25
  */
26
- export type SitePlatformAPIEndpoints = {
26
+ export type SitePlatformAPIEndpoints = import('./sdkEventLifecycle').SdkEventLifecycleAPIEndpoints & {
27
27
  listGscPropertiesAdmin: APIEndpoint<never, never, ListGscPropertiesAdminResponse>;
28
28
  getPublicChallenge: APIEndpoint<never, never, string>;
29
29
  checkRedirect: APIEndpoint<never, CheckRedirectQuery, CheckRedirectResponse>;
@@ -12,6 +12,7 @@ export type * from './bookingAdjustments';
12
12
  export type * from './bookingConfig';
13
13
  export type * from './event-listing-destination';
14
14
  export type * from './bookingManagementEndpoints';
15
+ export type * from './newsletterCampaignCommandEndpoints';
15
16
  export type * from './bookingOperations';
16
17
  export { APPOINTMENT_HISTORY_STATUS_VALUES } from './bookingOperations';
17
18
  export type * from './bookingRecords';
@@ -28,6 +29,7 @@ export type * from './sdk-event-payment-terms';
28
29
  export type * from './siteInfrastructure';
29
30
  export type * from './siteGeneration';
30
31
  export type * from './siteManagementEndpoints';
32
+ export type * from './siteAddressEndpoints';
31
33
  export type * from './siteOnboarding';
32
34
  export type * from './siteOperations';
33
35
  export type * from './siteAssets';
@@ -61,17 +63,21 @@ export type * from './accountEndpoints';
61
63
  import type { AiAndLaunchReadinessAPIEndpointDefinitions, AiAPIEndpointName, AiAPIEndpoints, LaunchReadinessAPIEndpointName, LaunchReadinessAPIEndpoints } from './aiEndpoints';
62
64
  import type { AppointmentServiceCategoryAPIEndpoints } from './appointmentServiceCategoryEndpoints';
63
65
  import type { BookingManagementAPIEndpoints } from './bookingManagementEndpoints';
66
+ import type { NewsletterCampaignCommandAPIEndpoints } from './newsletterCampaignCommandEndpoints';
64
67
  import type { CommercePortalAPIEndpoints } from './commercePortalEndpoints';
65
68
  import type { MailchimpIntegrationAPIEndpoints } from './mailchimpIntegration';
66
69
  import type { MailingListIntegrationAPIEndpoints } from './mailingListIntegration';
67
70
  import type { PublicExperienceAPIEndpoints } from './publicExperienceEndpoints';
68
71
  import type { SeoEndpointDefinitions } from './seoEndpoints';
69
72
  import type { SiteManagementAPIEndpoints } from './siteManagementEndpoints';
73
+ import type { SiteAddressAPIEndpoints } from './siteAddressEndpoints';
70
74
  import type { SitePlatformAPIEndpoints } from './sitePlatformEndpoints';
75
+ import type { SdkPageDesignAPIEndpoints } from './sdkPageDesign';
71
76
  import type { SiteRuntimeAPIEndpoints } from './siteRuntimeEndpoints';
77
+ import type { ClientErrorReportingAPIEndpoints } from './clientErrorReporting';
72
78
  type TableName = keyof DbDatabase['public']['Tables'];
73
79
  export type DTOType<K extends TableName> = Partial<CamelizeKeys<DbRow<K>>>;
74
- type APIEndpointsMonolith = AiAndLaunchReadinessAPIEndpointDefinitions & AccountAPIEndpoints & SeoEndpointDefinitions & SiteManagementAPIEndpoints & PublicExperienceAPIEndpoints & SiteRuntimeAPIEndpoints & SitePlatformAPIEndpoints & BookingManagementAPIEndpoints & AppointmentServiceCategoryAPIEndpoints & CommercePortalAPIEndpoints & MailchimpIntegrationAPIEndpoints & MailingListIntegrationAPIEndpoints;
80
+ type APIEndpointsMonolith = AiAndLaunchReadinessAPIEndpointDefinitions & AccountAPIEndpoints & SeoEndpointDefinitions & SiteManagementAPIEndpoints & SiteAddressAPIEndpoints & PublicExperienceAPIEndpoints & SiteRuntimeAPIEndpoints & SitePlatformAPIEndpoints & SdkPageDesignAPIEndpoints & BookingManagementAPIEndpoints & NewsletterCampaignCommandAPIEndpoints & AppointmentServiceCategoryAPIEndpoints & CommercePortalAPIEndpoints & MailchimpIntegrationAPIEndpoints & MailingListIntegrationAPIEndpoints & ClientErrorReportingAPIEndpoints;
75
81
  type ComposeEndpointMaps<Maps extends readonly object[], Acc extends object = {}> = Maps extends readonly [
76
82
  infer Head extends object,
77
83
  ...infer Tail extends readonly object[]
@@ -147,3 +147,17 @@ export type UpdateEventSeriesRegistrationRequest = {
147
147
  export type UpdateEventSeriesRegistrationResponse = {
148
148
  enrollment: EventSeriesRegistrationRecord;
149
149
  };
150
+ /**
151
+ * Somebody on the team filling in or editing the answers of one person on a
152
+ * booking. A booking can hold several places and each person is asked the
153
+ * questions separately, so the person is named rather than assumed.
154
+ */
155
+ export type SaveEventSeriesRegistrationAnswersRequest = {
156
+ requirementId: string;
157
+ participantParticipationId: string;
158
+ answers: Record<string, unknown>;
159
+ };
160
+ export type SaveEventSeriesRegistrationAnswersResponse = {
161
+ savedAt: string;
162
+ filledInByName: string;
163
+ };
@@ -1,13 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import type { ResolverContext } from './system';
3
- import type { PageOutline } from './structure/schema';
4
3
  import type { SdkCustomBlock } from './system/manifest/schema';
5
4
  import type { RouteMap } from './system/transforms';
6
5
  import { type OverrideOnlyRenderMode, type ThemedRenderMode, type TokensOnlyRenderMode } from './pageRenderingMode';
7
6
  import { type PageJoinRenderer, type PageRuntimeJoin } from './pageRendererBoundaries';
8
7
  import { type BlockOverrides, type PageRendererDataContext, type SdkConfigForRenderer } from './pageRendererContracts';
9
- import { type RenderablePageOutline } from './pageRenderAdmission';
10
- export type { PageBlockRenderAdmissionError, RenderablePageBlock, RenderablePageOutline, } from './pageRenderAdmission';
8
+ import { type RenderablePageOutline, type EditorPageOutlineWithPlacement } from './pageRenderAdmission';
9
+ export type { PageBlockRenderAdmissionError, RenderablePageBlock, RenderablePageOutline, EditorRenderablePageOutline, EditorPageOutlineWithPlacement, } from './pageRenderAdmission';
11
10
  export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, OccurrenceContextData, SdkConfigForRenderer, } from './pageRendererContracts';
12
11
  export { MissingBlockOverrideError } from './pageRenderingMode';
13
12
  export type { PageBlockPosition, PageJoinRenderer, PageJoinSlot, PageRuntimeJoin, RenderedJoin, } from './pageRendererBoundaries';
@@ -30,6 +29,6 @@ type OverrideOnlyPageRendererProps<TPage> = PageRendererCommonProps<TPage> & Ove
30
29
  blockOverrides: BlockOverrides;
31
30
  };
32
31
  export type PageRendererProps = ThemedPageRendererProps<RenderablePageOutline> | TokensOnlyPageRendererProps<RenderablePageOutline> | OverrideOnlyPageRendererProps<RenderablePageOutline>;
33
- export type EditorPageRendererProps = ThemedPageRendererProps<PageOutline> | OverrideOnlyPageRendererProps<PageOutline>;
32
+ export type EditorPageRendererProps = ThemedPageRendererProps<EditorPageOutlineWithPlacement> | OverrideOnlyPageRendererProps<EditorPageOutlineWithPlacement>;
34
33
  export default function PageRenderer(props: PageRendererProps): React.JSX.Element;
35
34
  export declare function EditorPageRenderer(props: EditorPageRendererProps): React.JSX.Element;
@@ -28,6 +28,8 @@ export declare const proofBlockIslandCodecs: {
28
28
  message: string | null;
29
29
  }>;
30
30
  hydration: Readonly<{
31
+ mailingList?: import("../../../core/src/index").MailingListRuntimeContext;
32
+ siteName?: string;
31
33
  formId: string | null;
32
34
  serviceId: string | null;
33
35
  resourceId: string | null;
@@ -116,6 +118,8 @@ export declare const proofBlockIslandCodecs: {
116
118
  message: string | null;
117
119
  }>;
118
120
  hydration: Readonly<{
121
+ mailingList?: import("../../../core/src/index").MailingListRuntimeContext;
122
+ siteName?: string;
119
123
  formId: string | null;
120
124
  serviceId: string | null;
121
125
  resourceId: string | null;
@@ -990,6 +994,8 @@ export declare const runtimeIslandCodecs: {
990
994
  message: string | null;
991
995
  }>;
992
996
  hydration: Readonly<{
997
+ mailingList?: import("../../../core/src/index").MailingListRuntimeContext;
998
+ siteName?: string;
993
999
  formId: string | null;
994
1000
  serviceId: string | null;
995
1001
  resourceId: string | null;
@@ -1078,6 +1084,8 @@ export declare const runtimeIslandCodecs: {
1078
1084
  message: string | null;
1079
1085
  }>;
1080
1086
  hydration: Readonly<{
1087
+ mailingList?: import("../../../core/src/index").MailingListRuntimeContext;
1088
+ siteName?: string;
1081
1089
  formId: string | null;
1082
1090
  serviceId: string | null;
1083
1091
  resourceId: string | null;
@@ -4,6 +4,8 @@ export { createCustomBlockRegistry, mergeBlockDescriptorsWithRegistry, planCusto
4
4
  export type { CustomBlockConflictReason, CustomBlockManifestSource, CustomBlockRegistry, CustomBlockRegistryConflict, CustomBlockRegistryEntry, CustomBlockRegistryResolutionPlan, CustomBlockSourcePolicy, ResolvedCustomBlockManifest, SdkConfigForBlockPicker, } from './customBlockRegistry';
5
5
  export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, EditorPageRendererProps, PageBlockRenderAdmissionError, PageRendererProps, RenderablePageBlock, RenderablePageOutline, OccurrenceContextData, PageBlockPosition, PageJoinRenderer, PageJoinSlot, PageRuntimeJoin, RenderedJoin, SdkConfigForRenderer, } from './PageRenderer';
6
6
  export { MissingBlockOverrideError } from './pageRenderingMode';
7
+ export { readPublishedBlockPlacement } from './pageRenderAdmission';
8
+ export type { EditorPageOutlineWithPlacement, EditorRenderablePageOutline, PublishedBlockPlacement, PublishedBlockPlacementRead } from './pageRenderAdmission';
7
9
  export * from './subroutes';
8
10
  export * from './structure/schema';
9
11
  export { BLOCK_BUTTON_ROLES, BLOCK_BUTTON_ROLE_OPTIONS, blockButtonRoleSchema, isBlockButtonRole, type BlockButtonRole, } from './system/constants/buttonRoles';
@@ -6,12 +6,26 @@ export type PageBlockRenderAdmissionError = Readonly<{
6
6
  }> | Readonly<{
7
7
  kind: 'manifest_unavailable';
8
8
  }>;
9
+ export type PublishedBlockPlacement = Readonly<{
10
+ id: string;
11
+ content: Record<string, unknown>;
12
+ }>;
13
+ export type PublishedBlockPlacementRead = PublishedBlockPlacement | Readonly<{
14
+ kind: 'incomplete';
15
+ id: string | null;
16
+ content: Record<string, unknown> | null;
17
+ }> | null;
18
+ /** Pair a published version with the content it authorises at the render boundary. */
19
+ export declare function readPublishedBlockPlacement(id: string | null | undefined, content: Record<string, unknown> | null | undefined): PublishedBlockPlacementRead;
9
20
  export type RenderablePageBlock = Readonly<{
10
21
  id: Block['id'];
11
22
  kind: Block['kind'];
12
23
  purpose: Block['purpose'];
13
24
  bindings?: Block['bindings'];
14
25
  contentVersionId?: string | null;
26
+ draftContentId?: string | null;
27
+ draftContent?: Record<string, unknown> | null;
28
+ publishedPlacement: PublishedBlockPlacementRead;
15
29
  admission: Readonly<{
16
30
  kind: 'renderable';
17
31
  content: RenderableManifestContent;
@@ -34,9 +48,23 @@ export type PresentationAdmission = Readonly<{
34
48
  export type PresentationBlock = Block & Readonly<{
35
49
  presentationAdmission: PresentationAdmission;
36
50
  contentVersionId?: string | null;
51
+ draftContentId?: string | null;
52
+ publishedPlacement: PublishedBlockPlacementRead;
37
53
  }>;
38
54
  export type PresentationPageOutline = Omit<PageOutline, 'blocks'> & Readonly<{
39
55
  blocks: readonly PresentationBlock[];
40
56
  }>;
57
+ export type EditorRenderablePageOutline = Omit<PageOutline, 'blocks'> & Readonly<{
58
+ blocks: (Block & Readonly<{
59
+ draftContentId: string | null;
60
+ publishedContentId: string | null;
61
+ publishedContent: Record<string, unknown> | null;
62
+ }>)[];
63
+ }>;
64
+ export type EditorPageOutlineWithPlacement = Omit<PageOutline, 'blocks'> & Readonly<{
65
+ blocks: readonly (Block & Readonly<{
66
+ publishedPlacement: PublishedBlockPlacementRead;
67
+ }>)[];
68
+ }>;
41
69
  export declare function toPresentationPage(page: RenderablePageOutline | null): PresentationPageOutline | null;
42
- export declare function toEditorPresentationPage(page: PageOutline | null): PresentationPageOutline | null;
70
+ export declare function toEditorPresentationPage(page: EditorPageOutlineWithPlacement | null): PresentationPageOutline | null;
@@ -7,6 +7,7 @@ import type { RouteMap } from './system/transforms';
7
7
  import type { BookingOfferingPresetSummary } from './system/blocks/offerings-preview/model';
8
8
  import type { BlockLoaderFailures } from './system/data/types';
9
9
  import type { BrowserReadAuthority } from './system/runtime/api/types';
10
+ import type { NewsletterBlockSubmission } from './system/runtime/nodes/newsletter-form.block-submission';
10
11
  /**
11
12
  * Occurrence context for event pages.
12
13
  * Passed through to blocks that need occurrence information (e.g., event-registration).
@@ -76,6 +77,7 @@ export type BlockOverrideProps<TContent = Record<string, unknown>> = {
76
77
  blockId: string | null;
77
78
  /** Exact content snapshot rendered for this block. */
78
79
  contentVersionId?: string | null;
80
+ newsletterBlockSubmission?: NewsletterBlockSubmission;
79
81
  /** Block kind identifier (e.g., "block.hero" or "custom.my-block") */
80
82
  blockKind: string;
81
83
  };
@@ -135,13 +137,15 @@ export type SdkConfigForRenderer = {
135
137
  */
136
138
  export type PageRendererDataContext = {
137
139
  siteId?: string;
140
+ /** Public business name from sites.title. */
141
+ siteName?: string;
138
142
  pageId?: string;
139
143
  /** Canonical request pathname used by blocks when resolving same-site destinations. */
140
144
  pathname?: string;
141
145
  resolvedData?: Record<string, Record<string, unknown>>;
142
146
  /** Failed server loader requests, kept separate from successful data. */
143
147
  loaderFailures?: BlockLoaderFailures;
144
- previewStage?: 'published' | 'preview';
148
+ previewStage: 'published' | 'preview';
145
149
  previewToken?: string | null;
146
150
  readAuthority?: BrowserReadAuthority;
147
151
  routes?: RouteMap;
@@ -18,6 +18,7 @@ export declare const publicEventLoaderQuerySchemaShape: {
18
18
  readonly seriesSlug: z.ZodOptional<z.ZodString>;
19
19
  readonly includeOccurrenceId: z.ZodOptional<z.ZodString>;
20
20
  readonly readIntent: z.ZodOptional<z.ZodString>;
21
+ readonly detailAdmission: z.ZodOptional<z.ZodString>;
21
22
  readonly detailLevel: z.ZodOptional<z.ZodString>;
22
23
  readonly readProfile: z.ZodOptional<z.ZodString>;
23
24
  };
@@ -39,6 +40,7 @@ export declare const publicEventLoaderQuerySchema: z.ZodObject<{
39
40
  seriesSlug: z.ZodOptional<z.ZodString>;
40
41
  includeOccurrenceId: z.ZodOptional<z.ZodString>;
41
42
  readIntent: z.ZodOptional<z.ZodString>;
43
+ detailAdmission: z.ZodOptional<z.ZodString>;
42
44
  detailLevel: z.ZodOptional<z.ZodString>;
43
45
  readProfile: z.ZodOptional<z.ZodString>;
44
46
  }, z.core.$strip>;
@@ -164,11 +166,15 @@ export declare const publicEventBookingAvailabilitySchema: z.ZodDiscriminatedUni
164
166
  series_archived: "series_archived";
165
167
  parent_archived: "parent_archived";
166
168
  parent_inconsistent: "parent_inconsistent";
167
- not_public: "not_public";
168
169
  already_started: "already_started";
169
170
  enrollment_closed: "enrollment_closed";
170
171
  }>;
171
172
  }, z.core.$strip>], "kind">;
173
+ export declare const publicEventBookingClosedDetailSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
174
+ kind: z.ZodLiteral<"opensSoon">;
175
+ }, z.core.$strip>, z.ZodObject<{
176
+ kind: z.ZodLiteral<"paused">;
177
+ }, z.core.$strip>], "kind">;
172
178
  export declare const publicRunSessionSchema: z.ZodObject<{
173
179
  occurrenceId: z.ZodString;
174
180
  startsAt: z.ZodString;
@@ -536,11 +542,15 @@ export declare const publicEventSchema: z.ZodUnion<readonly [z.ZodObject<{
536
542
  series_archived: "series_archived";
537
543
  parent_archived: "parent_archived";
538
544
  parent_inconsistent: "parent_inconsistent";
539
- not_public: "not_public";
540
545
  already_started: "already_started";
541
546
  enrollment_closed: "enrollment_closed";
542
547
  }>;
543
548
  }, z.core.$strip>], "kind">;
549
+ bookingClosedDetail: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
550
+ kind: z.ZodLiteral<"opensSoon">;
551
+ }, z.core.$strip>, z.ZodObject<{
552
+ kind: z.ZodLiteral<"paused">;
553
+ }, z.core.$strip>], "kind">>;
544
554
  deliveryMode: z.ZodEnum<{
545
555
  in_person: "in_person";
546
556
  online: "online";
@@ -1021,11 +1031,15 @@ export declare const publicEventSchema: z.ZodUnion<readonly [z.ZodObject<{
1021
1031
  series_archived: "series_archived";
1022
1032
  parent_archived: "parent_archived";
1023
1033
  parent_inconsistent: "parent_inconsistent";
1024
- not_public: "not_public";
1025
1034
  already_started: "already_started";
1026
1035
  enrollment_closed: "enrollment_closed";
1027
1036
  }>;
1028
1037
  }, z.core.$strip>], "kind">;
1038
+ bookingClosedDetail: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
1039
+ kind: z.ZodLiteral<"opensSoon">;
1040
+ }, z.core.$strip>, z.ZodObject<{
1041
+ kind: z.ZodLiteral<"paused">;
1042
+ }, z.core.$strip>], "kind">>;
1029
1043
  deliveryMode: z.ZodEnum<{
1030
1044
  in_person: "in_person";
1031
1045
  online: "online";
@@ -1531,11 +1545,15 @@ export declare const publicEventsArraySchema: z.ZodArray<z.ZodUnion<readonly [z.
1531
1545
  series_archived: "series_archived";
1532
1546
  parent_archived: "parent_archived";
1533
1547
  parent_inconsistent: "parent_inconsistent";
1534
- not_public: "not_public";
1535
1548
  already_started: "already_started";
1536
1549
  enrollment_closed: "enrollment_closed";
1537
1550
  }>;
1538
1551
  }, z.core.$strip>], "kind">;
1552
+ bookingClosedDetail: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
1553
+ kind: z.ZodLiteral<"opensSoon">;
1554
+ }, z.core.$strip>, z.ZodObject<{
1555
+ kind: z.ZodLiteral<"paused">;
1556
+ }, z.core.$strip>], "kind">>;
1539
1557
  deliveryMode: z.ZodEnum<{
1540
1558
  in_person: "in_person";
1541
1559
  online: "online";
@@ -2016,11 +2034,15 @@ export declare const publicEventsArraySchema: z.ZodArray<z.ZodUnion<readonly [z.
2016
2034
  series_archived: "series_archived";
2017
2035
  parent_archived: "parent_archived";
2018
2036
  parent_inconsistent: "parent_inconsistent";
2019
- not_public: "not_public";
2020
2037
  already_started: "already_started";
2021
2038
  enrollment_closed: "enrollment_closed";
2022
2039
  }>;
2023
2040
  }, z.core.$strip>], "kind">;
2041
+ bookingClosedDetail: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
2042
+ kind: z.ZodLiteral<"opensSoon">;
2043
+ }, z.core.$strip>, z.ZodObject<{
2044
+ kind: z.ZodLiteral<"paused">;
2045
+ }, z.core.$strip>], "kind">>;
2024
2046
  deliveryMode: z.ZodEnum<{
2025
2047
  in_person: "in_person";
2026
2048
  online: "online";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Shared types for event display blocks
3
3
  */
4
- import type { LocationCoordinates, PublicEventPricing, PublicEventBookingAvailability, PublicEventPricingOption, PublicEventPricingOptionAvailability } from '../../../../../../core/src/index';
4
+ import type { LocationCoordinates, PublicEventPricing, PublicEventBookingAvailability, PublicEventBookingClosedDetail, PublicEventPricingOption, PublicEventPricingOptionAvailability } from '../../../../../../core/src/index';
5
5
  import type { Media } from '../../../../lib/media';
6
6
  import type { RichTextDoc } from '../../../manifest/richTextSchema';
7
7
  import type { BlockBookingPaymentTerms } from '../../shared/bookingPaymentTerms';
@@ -140,6 +140,19 @@ export type PublicEventBase = {
140
140
  requiresRegistration: boolean;
141
141
  /** Canonical lifecycle admission; display remains independent from booking. */
142
142
  bookingAvailability: PublicEventBookingAvailability;
143
+ /**
144
+ * Why an online page is not taking bookings, when that has two readings.
145
+ *
146
+ * Only ever present alongside a closed `bookingAvailability`, and only on a
147
+ * read that named this event and said it was rendering the event's own page.
148
+ * Every listing, calendar, filter, feed and unscoped read is absent it,
149
+ * because a unit that is not live never appears in those at all.
150
+ *
151
+ * The page also has to be online for this unit in particular: an ordinary
152
+ * event or a run with its own page speaks for itself, while a run that uses
153
+ * the course page is only spoken for when no run of that course is live.
154
+ */
155
+ bookingClosedDetail?: PublicEventBookingClosedDetail;
143
156
  /** How people can attend this event. */
144
157
  deliveryMode: 'in_person' | 'online' | 'hybrid';
145
158
  /** Per-mode availability used by registration flows. */
@@ -1,9 +1,10 @@
1
1
  import type { SystemBlockDefinition } from "../registry";
2
- import type { SectionStylesContent } from "../fields/boxStyles";
2
+ import type { ContainerStylesContent, SectionStylesContent } from "../fields/boxStyles";
3
3
  import { newsletterFormBlockRuntime } from "../runtime/nodes/newsletter-form.interactive";
4
4
  import type { MailingListPlacementTargeting } from '../../../../core/src/index';
5
5
  import type { RichTextDoc } from "../manifest/richTextSchema";
6
6
  import type { BlockButtonRole } from "../constants/buttonRoles";
7
+ import type { ContentFromManifest } from '../manifest/derivedContent';
7
8
  export declare const newsletterSignupManifest: import("..").DefinedBlockManifest<import("..").BlockContentShapeInput<{
8
9
  readonly id: "block.newsletter-signup";
9
10
  readonly title: "Newsletter Signup";
@@ -120,10 +121,12 @@ export declare const newsletterSignupManifest: import("..").DefinedBlockManifest
120
121
  export type NewsletterSignupContent = {
121
122
  title?: string | null;
122
123
  subtitle?: RichTextDoc | null;
124
+ variant?: NonNullable<ContentFromManifest<typeof newsletterSignupManifest>['variant']>;
123
125
  targeting: MailingListPlacementTargeting;
124
126
  buttonVariant?: BlockButtonRole | null;
125
127
  mailingListSource?: 'signed-footer' | null;
126
128
  mailingListSourceToken?: string | null;
129
+ _containerStyles?: ContainerStylesContent;
127
130
  _sectionStyles?: SectionStylesContent;
128
131
  };
129
132
  export type NewsletterSignupAuthoringContent = NewsletterSignupContent;
@@ -1,5 +1,5 @@
1
1
  import { type IconComponent } from './svg';
2
- export declare const SOCIAL_ICON_NAMES: readonly ["SocialFacebook", "SocialInstagram", "SocialLinkedIn", "SocialTikTok", "SocialX", "SocialYouTube"];
2
+ export declare const SOCIAL_ICON_NAMES: readonly ["SocialFacebook", "SocialInstagram", "SocialLinkedIn", "SocialTikTok", "SocialWhatsApp", "SocialX", "SocialYouTube"];
3
3
  export type SocialIconName = (typeof SOCIAL_ICON_NAMES)[number];
4
4
  export declare function isSocialIconName(value: unknown): value is SocialIconName;
5
5
  export declare function getSocialIconComponent(value: unknown): IconComponent | null;