@riverbankcms/sdk 0.143.0 → 0.145.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/dist/{PreviewEditorSidebar-DROGfMKi.mjs → PreviewEditorSidebar-O-V6Pl5a.mjs} +20 -26
  2. package/dist/{PreviewEditorUI-BaRjhFu-.mjs → PreviewEditorUI-1UlX_9cw.mjs} +3 -3
  3. package/dist/{PreviewQueryProvider-BCYICImX.mjs → PreviewQueryProvider-BxGwdOCV.mjs} +1 -1
  4. package/dist/{SdkPreviewModeRuntime-OIABYLES.mjs → SdkPreviewModeRuntime-DYbA_4iv.mjs} +431 -351
  5. package/dist/{SiteChromeCustomizeContext-ohjTvZbc.mjs → SiteChromeCustomizeContext-CNTKQ9nx.mjs} +3989 -2769
  6. package/dist/_dts/ai/src/contracts/proposals.d.ts +4719 -66
  7. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +429 -6
  8. package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +49 -0
  9. package/dist/_dts/api/src/appointmentServiceCategoryEndpoints.d.ts +75 -0
  10. package/dist/_dts/api/src/appointmentServiceContracts.d.ts +80 -0
  11. package/dist/_dts/api/src/appointmentSetup.d.ts +8 -1
  12. package/dist/_dts/api/src/billing.d.ts +1 -1
  13. package/dist/_dts/api/src/billingEndpointTypes.d.ts +8 -2
  14. package/dist/_dts/api/src/bookingConfig.d.ts +3 -1
  15. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +2 -12
  16. package/dist/_dts/api/src/communications.d.ts +14 -22
  17. package/dist/_dts/api/src/contentRuntime.d.ts +2 -0
  18. package/dist/_dts/api/src/endpoints.d.ts +105 -58
  19. package/dist/_dts/api/src/index.d.ts +1 -1
  20. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  21. package/dist/_dts/api/src/launchReadiness.d.ts +2 -0
  22. package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +4 -4
  23. package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +0 -23
  24. package/dist/_dts/api/src/onboarding/confirmationResend.d.ts +3 -0
  25. package/dist/_dts/api/src/publicBookingService.d.ts +35 -1
  26. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +1 -0
  27. package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +13 -0
  28. package/dist/_dts/api/src/publicNewsletterEndpointDefinitions.d.ts +58 -0
  29. package/dist/_dts/api/src/schemas/admin-observability-logs.d.ts +3 -3
  30. package/dist/_dts/api/src/sdkContracts.d.ts +1 -1
  31. package/dist/_dts/api/src/sdkSettingsContracts.d.ts +8 -0
  32. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -6
  33. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +2 -8
  34. package/dist/_dts/api/src/siteSettings.d.ts +17 -7
  35. package/dist/_dts/api/src/types.d.ts +2 -1
  36. package/dist/_dts/billing/src/membership/index.d.ts +3 -0
  37. package/dist/_dts/block-form/src/backend/types.d.ts +14 -0
  38. package/dist/_dts/block-form/src/client/index.d.ts +1 -0
  39. package/dist/_dts/block-form/src/context/RepeaterHostActionsContext.d.ts +30 -0
  40. package/dist/_dts/block-form/src/context/index.d.ts +1 -0
  41. package/dist/_dts/block-form/src/index.d.ts +1 -0
  42. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterList.d.ts +4 -1
  43. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRow.d.ts +5 -2
  44. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowActions.d.ts +11 -1
  45. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/index.d.ts +1 -0
  46. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useEmptyStateFocusAfterRemoval.d.ts +8 -0
  47. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildSummary.d.ts +15 -1
  48. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterRowActionsDomain.d.ts +5 -2
  49. package/dist/_dts/blocks/src/PageRenderer.d.ts +4 -4
  50. package/dist/_dts/blocks/src/bindings/index.d.ts +2 -2
  51. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +58 -10
  52. package/dist/_dts/blocks/src/index.d.ts +1 -1
  53. package/dist/_dts/blocks/src/pageRenderJoins.d.ts +68 -0
  54. package/dist/_dts/blocks/src/pageRenderPlan.d.ts +8 -27
  55. package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +7 -4
  56. package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +40 -23
  57. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +3 -0
  58. package/dist/_dts/blocks/src/server.d.ts +1 -1
  59. package/dist/_dts/blocks/src/system/blocks/appointment-services.d.ts +2 -0
  60. package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +2 -2
  61. package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +1 -1
  62. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
  63. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -47
  64. package/dist/_dts/blocks/src/system/constants/events.d.ts +10 -0
  65. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +29 -3
  66. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +5 -0
  67. package/dist/_dts/blocks/src/system/runtime/api/context.d.ts +3 -3
  68. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +10 -0
  69. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +3 -2
  70. package/dist/_dts/blocks/src/system/runtime/api/readAuthority.d.ts +11 -0
  71. package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +9 -0
  72. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +7 -13
  73. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -6
  74. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +9 -4
  75. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +0 -1
  76. package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.d.ts +1 -3
  77. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -1
  78. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +22 -2
  79. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +7 -24
  80. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +3 -1
  81. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +57 -2
  82. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-categories.d.ts +29 -0
  83. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-choices.d.ts +13 -0
  84. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +3 -3
  85. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +13 -1
  86. package/dist/_dts/blocks/src/system/runtime/nodes/cart.server.d.ts +1 -0
  87. package/dist/_dts/blocks/src/system/runtime/nodes/checkout.server.d.ts +1 -0
  88. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationBookingLayer.d.ts +2 -1
  89. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +2 -1
  90. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +2 -1
  91. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -0
  92. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.d.ts +2 -1
  93. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +1 -1
  94. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -2
  95. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +8 -0
  96. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +4 -5
  97. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +7 -2
  98. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +7 -5
  99. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -6
  100. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +6 -4
  101. package/dist/_dts/blocks/src/system/runtime/nodes/header-control.d.ts +10 -0
  102. package/dist/_dts/blocks/src/system/runtime/nodes/layout.d.ts +6 -21
  103. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +20 -1
  104. package/dist/_dts/blocks/src/system/runtime/nodes/product-detail.server.d.ts +1 -0
  105. package/dist/_dts/blocks/src/system/runtime/nodes/product-list.server.d.ts +1 -0
  106. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +13 -0
  107. package/dist/_dts/blocks/src/system/runtime/nodes/shop.server.d.ts +1 -0
  108. package/dist/_dts/blocks/src/system/runtime/shared/components/ThemedButton.d.ts +58 -0
  109. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
  110. package/dist/_dts/blocks/src/system/transforms/registry/chromeLogo.d.ts +23 -0
  111. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +2 -1
  112. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +3 -1
  113. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +4 -1
  114. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +2 -0
  115. package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
  116. package/dist/_dts/core/src/appointment-service-categories.d.ts +108 -0
  117. package/dist/_dts/core/src/editor-state.d.ts +6 -0
  118. package/dist/_dts/core/src/event-catalogue.d.ts +27 -0
  119. package/dist/_dts/core/src/event-preset-vocabulary.d.ts +7 -0
  120. package/dist/_dts/core/src/index.d.ts +3 -0
  121. package/dist/_dts/core/src/public-profile.d.ts +9 -0
  122. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +676 -241
  123. package/dist/_dts/db/src/schemas/forms.d.ts +286 -2
  124. package/dist/_dts/editor-blocks/src/block-editor/{BlockCardHeader.d.ts → BlockCardFrame.d.ts} +11 -3
  125. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +6 -0
  126. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +16 -1
  127. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/types.d.ts +13 -0
  128. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +29 -0
  129. package/dist/_dts/logger/src/console.d.ts +3 -0
  130. package/dist/_dts/preview-next/src/client/blocks/BoundaryControl.d.ts +7 -2
  131. package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +1 -1
  132. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +1 -0
  133. package/dist/_dts/preview-next/src/client/blocks/previewProjection/applyPreviewProjections.d.ts +1 -3
  134. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
  135. package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +2 -2
  136. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
  137. package/dist/_dts/sdk/src/client/publicEventReadOperations.d.ts +1 -0
  138. package/dist/_dts/sdk/src/client/runtimeCacheKeys.d.ts +8 -0
  139. package/dist/_dts/sdk/src/client/types.d.ts +4 -1
  140. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  141. package/dist/_dts/sdk/src/contracts/page.d.ts +7 -2
  142. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +5 -0
  143. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +2 -2
  144. package/dist/_dts/sdk/src/navigation/index.d.ts +27 -0
  145. package/dist/_dts/sdk/src/public-api/contracts.d.ts +21 -15
  146. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +3 -2
  147. package/dist/_dts/sdk/src/rendering/client.d.ts +1 -0
  148. package/dist/_dts/sdk/src/rendering/components/Block.shared.d.ts +1 -0
  149. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +7 -1
  150. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -2
  151. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +1 -1
  152. package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +1 -1
  153. package/dist/_dts/sdk/src/rendering/islands/enhancers/routeIslandApiConfig.d.ts +3 -2
  154. package/dist/_dts/sdk/src/rendering/islands/enhancers/shopShared.d.ts +2 -0
  155. package/dist/_dts/sdk/src/rendering/overrides.d.ts +1 -0
  156. package/dist/_dts/sdk/src/version.d.ts +1 -1
  157. package/dist/_dts/surfaces/src/index.d.ts +1 -0
  158. package/dist/_dts/theme-core/src/buttons/affordanceSuppression.d.ts +1 -1
  159. package/dist/_dts/theme-core/src/buttons/classNames.d.ts +3 -13
  160. package/dist/_dts/theme-core/src/customCss/index.d.ts +1 -1
  161. package/dist/_dts/theme-core/src/customCss/patch.d.ts +0 -5
  162. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  163. package/dist/_dts/theme-core/src/layout/boundaryCss.d.ts +3 -0
  164. package/dist/_dts/theme-core/src/site-styles/compositionBudget.d.ts +8 -0
  165. package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +3 -2
  166. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +1 -3
  167. package/dist/_dts/theme-core/src/site-styles/generatedDesignPipeline.d.ts +3 -0
  168. package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
  169. package/dist/_dts/theme-core/src/site-styles/joinTreatment.d.ts +132 -0
  170. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorBoundaries.d.ts +31 -0
  171. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +33 -29
  172. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +4 -4
  173. package/dist/_dts/theme-core/src/site-styles/pageFlowPresets.d.ts +36 -0
  174. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +4 -10
  175. package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +17 -4
  176. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +20 -74
  177. package/dist/_dts/theme-core/src/site-styles/sectionBoundaryComposition.d.ts +95 -0
  178. package/dist/_dts/theme-core/src/site-styles/sectionTransitions.d.ts +80 -518
  179. package/dist/_dts/theme-core/src/site-styles/siteStyleBlockPolicies.d.ts +9 -4
  180. package/dist/_dts/theme-core/src/site-styles/transitionCatalogue.d.ts +320 -0
  181. package/dist/_dts/theme-core/src/site-styles/types.d.ts +3 -18
  182. package/dist/_dts/theme-core/src/surfaces/index.d.ts +1 -0
  183. package/dist/_dts/theme-core/src/surfaces/logoVariant.d.ts +26 -0
  184. package/dist/_dts/theme-core/src/utils/colorStyles.d.ts +10 -0
  185. package/dist/_dts/ui/src/editor-item-card.d.ts +116 -0
  186. package/dist/_dts/ui/src/index.d.ts +1 -0
  187. package/dist/client/{BookingConsentAgreement-BoCtvzzu.mjs → BookingConsentAgreement-DlVOmpW4.mjs} +4 -55
  188. package/dist/client/{DiscountCodeDisclosure-B5S30nZk.mjs → DiscountCodeDisclosure-T9q623PQ.mjs} +27 -17
  189. package/dist/client/{EventCombined.client-CeZ2-zSt.mjs → EventCombined.client-DnsUeONl.mjs} +54 -46
  190. package/dist/client/{EventListing.client-DJN3j8B3.mjs → EventListing.client-CNBFqJS4.mjs} +3 -4
  191. package/dist/client/{LeafletStaticMap-RjtGzDQT.mjs → LeafletStaticMap-C7higg52.mjs} +1 -1
  192. package/dist/client/ThemedButton-LAJTNrS8.mjs +412 -0
  193. package/dist/client/{accordion-DOmnDoyg.mjs → accordion-BcNF9TjX.mjs} +1 -1
  194. package/dist/client/{bookingForm-C0vk7pgS.mjs → bookingForm-BUaQ3S03.mjs} +161 -75
  195. package/dist/client/bookings.mjs +392 -182
  196. package/dist/client/{carousel-BZJ7pno3.mjs → carousel-CTdF6e0V.mjs} +2 -2
  197. package/dist/client/{carousel.client-DQTjCVQT.mjs → carousel.client-jahpU9Vz.mjs} +1 -1
  198. package/dist/client/{cart-CaeVAHJl.mjs → cart-pGtyf_XU.mjs} +3 -3
  199. package/dist/client/{checkout-7wmoNDtG.mjs → checkout-Da9WSn7Y.mjs} +3 -3
  200. package/dist/client/{checkoutUrls-FL6lRkrt.mjs → checkoutUrls-CW3-78uu.mjs} +1 -1
  201. package/dist/client/client.mjs +3819 -2717
  202. package/dist/client/{colorStyles-3013aRAY.mjs → colorStyles-CuJBiS-1.mjs} +16 -4
  203. package/dist/client/{context-BOimxE3U.mjs → context-BFeY_Wbm.mjs} +24 -8
  204. package/dist/client/{dates-BnzVksi4.mjs → dates-BhwVSxDg.mjs} +2 -2
  205. package/dist/client/{eventCalendar-l-fpaslC.mjs → eventCalendar-BAtdnR4s.mjs} +39 -50
  206. package/dist/client/{eventCombined-DGGvssK6.mjs → eventCombined-RksA3tRC.mjs} +5 -4
  207. package/dist/client/{eventDetails-DRiCm_hL.mjs → eventDetails-BB9hB4wR.mjs} +4 -4
  208. package/dist/client/{eventListing-dph8loYX.mjs → eventListing-BpJBkviM.mjs} +5 -4
  209. package/dist/client/{eventRegistration-ClBohmbY.mjs → eventRegistration-B18jFq_o.mjs} +83 -68
  210. package/dist/client/{form-BLVVAnd3.mjs → form-Dodt8Y8t.mjs} +9 -10
  211. package/dist/client/{headerSection-DHy4C8Ix.mjs → headerSection-B0qj9ttg.mjs} +23 -30
  212. package/dist/client/hooks.mjs +807 -162
  213. package/dist/client/{locationMap-6HuS28ck.mjs → locationMap-gn-iMk7a.mjs} +9 -10
  214. package/dist/client/{media-DHpfFwd3.mjs → media-BtJ37tzS.mjs} +1 -1
  215. package/dist/client/{newsletterForm-xOdcOhZP.mjs → newsletterForm-oByLdFkr.mjs} +31 -11
  216. package/dist/client/{pricing-ChinRYFt.mjs → pricing-BOU0_Hai.mjs} +1 -1
  217. package/dist/client/{productDetail-0chA5gbK.mjs → productDetail-D9v1zH2j.mjs} +3 -3
  218. package/dist/client/{productList-OoINA0h1.mjs → productList-D-mItx1n.mjs} +3 -3
  219. package/dist/client/{propsDecoder-CIZ-hbIG.mjs → propsDecoder-C3TP_z4x.mjs} +158 -61
  220. package/dist/client/rendering/client.mjs +2785 -2000
  221. package/dist/client/rendering/islands.mjs +19 -19
  222. package/dist/client/rendering.mjs +3855 -2694
  223. package/dist/client/{routeIslandApiConfig-UNsfPcYq.mjs → routeIslandApiConfig-DzN1W0sq.mjs} +8 -1
  224. package/dist/client/{scrollToBlock-BPZl0gPZ.mjs → scrollToBlock-CWs8EIdo.mjs} +1 -1
  225. package/dist/client/{shop-CLJFqNIq.mjs → shop-Dufw7N7o.mjs} +45 -58
  226. package/dist/client/{shop-commerce-PpANg5wB.mjs → shop-commerce-gklw_hLF.mjs} +42 -55
  227. package/dist/client/{shop-commerce-store-TA_Kz2ku.mjs → shop-commerce-store-Sf1eyTaZ.mjs} +1 -1
  228. package/dist/client/{shopShared-DzcFcA5g.mjs → shopShared-B5nyA41S.mjs} +6 -5
  229. package/dist/client/{useEventFilters-CFU21QZo.mjs → useEventFilters-CLL829vy.mjs} +66 -355
  230. package/dist/preview-next/before-render.mjs +147 -77
  231. package/dist/preview-next/client/runtime.mjs +4 -4
  232. package/dist/preview-next/editor-chrome.css +8 -0
  233. package/dist/preview-next/keepAlive.mjs +147 -77
  234. package/dist/preview-next/middleware.mjs +147 -77
  235. package/dist/{previewAuthStore-JA6-I_sL.mjs → previewAuthStore-BxAFlu-j.mjs} +147 -77
  236. package/dist/{sdk-runtime-CDKl0Fr7.mjs → sdk-runtime-D0uZFev7.mjs} +2 -2
  237. package/dist/{separator-BTp96X32.mjs → separator-EvdCAn4V.mjs} +1 -1
  238. package/dist/server/components.mjs +2548 -1607
  239. package/dist/server/config-validation.mjs +794 -160
  240. package/dist/server/config.mjs +794 -160
  241. package/dist/server/data.mjs +806 -161
  242. package/dist/server/index.mjs +167 -85
  243. package/dist/server/navigation.mjs +28 -1
  244. package/dist/server/next.mjs +14930 -14036
  245. package/dist/server/page-converter.mjs +494 -113
  246. package/dist/server/prebuild.mjs +1 -1
  247. package/dist/server/rendering/server.mjs +2537 -1590
  248. package/dist/server/rendering.mjs +2571 -1618
  249. package/dist/server/routing.mjs +918 -200
  250. package/dist/server/server.mjs +819 -205
  251. package/dist/server/theme-bridge.mjs +1232 -28
  252. package/dist/server/theme.mjs +6 -4
  253. package/dist/styles/index.css +6 -0
  254. package/package.json +2 -1
@@ -1,4 +1,4 @@
1
- import { D as ok$1, E as err$1, _ as parseEventSeriesId, a as paletteColorEntries, c as themeColorTokenSchema, g as parseEventOfferingId, h as parseContentVersionId, l as parseColorTokenParts, o as paletteColorsFromEntries, p as parseAspectRatioValue, r as rgbColorValue, s as parseThemeColorToken } from "./colorStyles-3013aRAY.mjs";
1
+ import { D as ok$1, E as err$1, _ as parseEventSeriesId, a as paletteColorEntries, c as themeColorTokenSchema, g as parseEventOfferingId, h as parseContentVersionId, l as parseColorTokenParts, o as paletteColorsFromEntries, p as parseAspectRatioValue, r as rgbColorValue, s as parseThemeColorToken } from "./colorStyles-CuJBiS-1.mjs";
2
2
  import "react";
3
3
  import { z } from "zod";
4
4
  import "react/jsx-runtime";
@@ -282,7 +282,7 @@ function parseEventPageSurfaceDestinationMode(value) {
282
282
  return value === "cms-managed" || value === "system-managed" ? value : void 0;
283
283
  }
284
284
  function parseEventPageSurfaceSubject(value) {
285
- if (!isRecord$8(value)) return err$1({ kind: "notObject" });
285
+ if (!isRecord$9(value)) return err$1({ kind: "notObject" });
286
286
  switch (value.kind) {
287
287
  case "eventSeries": {
288
288
  const eventSeriesId = parseEventSeriesId(value.eventSeriesId);
@@ -337,7 +337,7 @@ function parseEventSeriesIdList(values) {
337
337
  }
338
338
  return ok$1(parsed);
339
339
  }
340
- function isRecord$8(value) {
340
+ function isRecord$9(value) {
341
341
  return typeof value === "object" && value !== null && !Array.isArray(value);
342
342
  }
343
343
  //#endregion
@@ -715,7 +715,7 @@ const DEFAULT_MAILING_LIST_SUCCESS_MESSAGE = "Thanks — you're on the list.";
715
715
  //#endregion
716
716
  //#region ../core/src/mailing-list-setup-parser.ts
717
717
  function parseMailingListGlobalForm(value) {
718
- if (!isRecord$7(value)) return formError("shape");
718
+ if (!isRecord$8(value)) return formError("shape");
719
719
  const fields = parseGlobalFields(value.fields);
720
720
  if (fields === null) return formError("fields");
721
721
  if (typeof value.includeOptionalPhone !== "boolean") return formError("includeOptionalPhone");
@@ -734,7 +734,7 @@ function parseMailingListGlobalForm(value) {
734
734
  });
735
735
  }
736
736
  function parseGlobalFields(value) {
737
- if (!isRecord$7(value) || typeof value.preset !== "string") return null;
737
+ if (!isRecord$8(value) || typeof value.preset !== "string") return null;
738
738
  switch (value.preset) {
739
739
  case "emailOnly": return { preset: "emailOnly" };
740
740
  case "emailName": return isRequirement(value.name) ? {
@@ -771,7 +771,7 @@ function parseOptionalString(value) {
771
771
  function isRequirement(value) {
772
772
  return value === "required" || value === "optional";
773
773
  }
774
- function isRecord$7(value) {
774
+ function isRecord$8(value) {
775
775
  return typeof value === "object" && value !== null && !Array.isArray(value);
776
776
  }
777
777
  function formError(field) {
@@ -823,7 +823,7 @@ function planMailingListChoicePresentation(targeting) {
823
823
  //#endregion
824
824
  //#region ../core/src/mailing-list-runtime.ts
825
825
  function parseMailingListRuntimeContext(value) {
826
- if (!isRecord$6(value)) return invalidRuntimeContext();
826
+ if (!isRecord$7(value)) return invalidRuntimeContext();
827
827
  if (value.tag === "not_configured") return ok$1({ tag: "not_configured" });
828
828
  if (value.tag !== "configured") return invalidRuntimeContext();
829
829
  const revision = parseMailingListSetupRevision(value.revision);
@@ -838,7 +838,7 @@ function parseMailingListRuntimeContext(value) {
838
838
  });
839
839
  }
840
840
  function parseRuntimeProvider(value) {
841
- if (!isRecord$6(value)) return null;
841
+ if (!isRecord$7(value)) return null;
842
842
  switch (value.provider) {
843
843
  case "native": return parseNativeRuntimeProvider(value);
844
844
  case "brevo": return parseBrevoRuntimeProvider(value);
@@ -870,7 +870,7 @@ function parseMailchimpRuntimeProvider(value) {
870
870
  if (defaultAudienceId === null) return null;
871
871
  const audiences = [];
872
872
  for (const audience of value.audiences) {
873
- if (!isRecord$6(audience)) return null;
873
+ if (!isRecord$7(audience)) return null;
874
874
  const id = parseMailchimpAudienceId(audience.id);
875
875
  const name = parseName(audience.name);
876
876
  if (id === null || name === null || !Array.isArray(audience.interests)) return null;
@@ -891,7 +891,7 @@ function parseMailchimpRuntimeProvider(value) {
891
891
  function parseMailchimpInterests(value) {
892
892
  const interests = [];
893
893
  for (const interest of value) {
894
- if (!isRecord$6(interest)) return null;
894
+ if (!isRecord$7(interest)) return null;
895
895
  const id = parseMailchimpInterestId(interest.id);
896
896
  const name = parseName(interest.name);
897
897
  const categoryName = parseName(interest.categoryName);
@@ -908,7 +908,7 @@ function parseNamedItems(value, parseId) {
908
908
  if (!Array.isArray(value)) return null;
909
909
  const items = [];
910
910
  for (const item of value) {
911
- if (!isRecord$6(item)) return null;
911
+ if (!isRecord$7(item)) return null;
912
912
  const id = parseId(item.id);
913
913
  const name = parseName(item.name);
914
914
  if (id === null || name === null) return null;
@@ -924,7 +924,7 @@ function parseName(value) {
924
924
  const name = value.trim();
925
925
  return name.length > 0 ? name : null;
926
926
  }
927
- function isRecord$6(value) {
927
+ function isRecord$7(value) {
928
928
  return typeof value === "object" && value !== null && !Array.isArray(value);
929
929
  }
930
930
  function invalidRuntimeContext() {
@@ -933,10 +933,10 @@ function invalidRuntimeContext() {
933
933
  //#endregion
934
934
  //#region ../core/src/mailing-list-targeting-parser.ts
935
935
  function parseMailingListPlacementTargeting(value) {
936
- if (!isRecord$5(value)) return targetingError("shape");
936
+ if (!isRecord$6(value)) return targetingError("shape");
937
937
  if (value.mode === "default") return ok$1({ mode: "default" });
938
938
  if (value.mode !== "custom") return targetingError("mode");
939
- if (!isRecord$5(value.selection)) return targetingError("selection");
939
+ if (!isRecord$6(value.selection)) return targetingError("selection");
940
940
  switch (value.provider) {
941
941
  case "native": return parseNativeTargeting(value.selection);
942
942
  case "brevo": return parseBrevoTargeting(value.selection);
@@ -945,7 +945,7 @@ function parseMailingListPlacementTargeting(value) {
945
945
  }
946
946
  }
947
947
  function parseMailingListVisitorSelection(value) {
948
- if (!isRecord$5(value)) return visitorSelectionError("shape");
948
+ if (!isRecord$6(value)) return visitorSelectionError("shape");
949
949
  switch (value.provider) {
950
950
  case "native": {
951
951
  const topicIds = parseVisitorIds(value.topicIds, parseNewsletterListId);
@@ -1078,7 +1078,7 @@ function parseVisitorIds(value, parseId) {
1078
1078
  }
1079
1079
  return parsed;
1080
1080
  }
1081
- function isRecord$5(value) {
1081
+ function isRecord$6(value) {
1082
1082
  return typeof value === "object" && value !== null && !Array.isArray(value);
1083
1083
  }
1084
1084
  function targetingError(field) {
@@ -1375,7 +1375,7 @@ function assertNever$1(value, message) {
1375
1375
  /**
1376
1376
  * Strict record guard: excludes null, primitives, and arrays.
1377
1377
  */
1378
- function isRecord$4(value) {
1378
+ function isRecord$5(value) {
1379
1379
  return typeof value === "object" && value !== null && !Array.isArray(value);
1380
1380
  }
1381
1381
  //#endregion
@@ -1630,12 +1630,12 @@ function resolveBookingSiteId(siteId, form) {
1630
1630
  return siteId || form?.siteId || "";
1631
1631
  }
1632
1632
  function normalizeBookingFormConfig(form) {
1633
- if (!isRecord$3(form)) return null;
1633
+ if (!isRecord$4(form)) return null;
1634
1634
  const id = readNonEmptyString(form.id);
1635
1635
  const name = readNonEmptyString(form.name);
1636
1636
  if (!id || !name) return null;
1637
- const schemaSource = isRecord$3(form.schema) ? form.schema : isRecord$3(form.schemaJson) ? form.schemaJson : null;
1638
- const settingsSource = isRecord$3(form.settings) ? form.settings : isRecord$3(form.settingsJson) ? form.settingsJson : null;
1637
+ const schemaSource = isRecord$4(form.schema) ? form.schema : isRecord$4(form.schemaJson) ? form.schemaJson : null;
1638
+ const settingsSource = isRecord$4(form.settings) ? form.settings : isRecord$4(form.settingsJson) ? form.settingsJson : null;
1639
1639
  return {
1640
1640
  id,
1641
1641
  name,
@@ -1655,8 +1655,8 @@ function normalizeBookingServices(services) {
1655
1655
  };
1656
1656
  if (!services) return [];
1657
1657
  if (Array.isArray(services)) return services.filter(isBookingFormService).map(normalizeService);
1658
- if (isRecord$3(services) && "services" in services) return Array.isArray(services.services) ? services.services.filter(isBookingFormService).map(normalizeService) : [];
1659
- return isRecord$3(services) ? Object.values(services).filter(isBookingFormService).map(normalizeService) : [];
1658
+ if (isRecord$4(services) && "services" in services) return Array.isArray(services.services) ? services.services.filter(isBookingFormService).map(normalizeService) : [];
1659
+ return isRecord$4(services) ? Object.values(services).filter(isBookingFormService).map(normalizeService) : [];
1660
1660
  }
1661
1661
  function normalizeBookingSchema(value) {
1662
1662
  if (!value) return void 0;
@@ -1667,7 +1667,7 @@ function normalizeBookingSchema(value) {
1667
1667
  };
1668
1668
  }
1669
1669
  function readBookingFormField(value) {
1670
- if (!isRecord$3(value)) return null;
1670
+ if (!isRecord$4(value)) return null;
1671
1671
  const id = readNonEmptyString(value.id);
1672
1672
  const label = readNonEmptyString(value.label);
1673
1673
  const type = readBookingFieldType(value.type);
@@ -1710,7 +1710,7 @@ function readBookingFieldOptions(value) {
1710
1710
  return options.length > 0 ? options : void 0;
1711
1711
  }
1712
1712
  function readBookingFieldOption(value) {
1713
- if (!isRecord$3(value)) return null;
1713
+ if (!isRecord$4(value)) return null;
1714
1714
  const optionValue = readNonEmptyString(value.value);
1715
1715
  const label = readNonEmptyString(value.label);
1716
1716
  return optionValue && label ? {
@@ -1730,7 +1730,7 @@ function normalizeBookingSettings(value) {
1730
1730
  };
1731
1731
  }
1732
1732
  function isBookingFormService(value) {
1733
- return isRecord$3(value) && typeof value.id === "string" && typeof value.siteId === "string" && typeof value.title === "string" && (value.consent === void 0 || blockBookingConsentSchema.safeParse(value.consent).success);
1733
+ return isRecord$4(value) && typeof value.id === "string" && typeof value.siteId === "string" && typeof value.title === "string" && (value.consent === void 0 || blockBookingConsentSchema.safeParse(value.consent).success);
1734
1734
  }
1735
1735
  function collectBookingCustomFields(data) {
1736
1736
  const customFields = {};
@@ -1780,7 +1780,7 @@ function readStringArray(value) {
1780
1780
  const strings = value.filter((item) => typeof item === "string");
1781
1781
  return strings.length > 0 ? strings : void 0;
1782
1782
  }
1783
- function isRecord$3(value) {
1783
+ function isRecord$4(value) {
1784
1784
  return typeof value === "object" && value !== null;
1785
1785
  }
1786
1786
  function getBookingServicePaymentSelectionMode(service) {
@@ -1974,6 +1974,31 @@ function getBookingSuccessMessage(successMessage) {
1974
1974
  return successMessage?.trim() || "Your appointment has been booked! Check your email for confirmation.";
1975
1975
  }
1976
1976
  //#endregion
1977
+ //#region ../blocks/src/system/runtime/nodes/booking-form.service-categories.ts
1978
+ function isRecord$3(value) {
1979
+ return typeof value === "object" && value !== null && !Array.isArray(value);
1980
+ }
1981
+ function readCategory(value) {
1982
+ if (!isRecord$3(value)) return [];
1983
+ const { id, name, description } = value;
1984
+ if (typeof id !== "string" || id.trim() === "" || typeof name !== "string") return [];
1985
+ return [{
1986
+ id,
1987
+ name,
1988
+ description: typeof description === "string" ? description : null
1989
+ }];
1990
+ }
1991
+ /**
1992
+ * The ordered service categories carried by a catalogue-shaped services
1993
+ * source (`{ services, categories }`). Every other shape has none, which
1994
+ * reads as a site without categories. Order is preserved: the database owns
1995
+ * it.
1996
+ */
1997
+ function normalizeBookingServiceCategories(services) {
1998
+ if (!isRecord$3(services) || !Array.isArray(services.categories)) return [];
1999
+ return services.categories.flatMap(readCategory);
2000
+ }
2001
+ //#endregion
1977
2002
  //#region ../logger/src/noop.ts
1978
2003
  const noop = () => {};
1979
2004
  const logger = {
@@ -2124,11 +2149,20 @@ const bookingServiceSchema = z.object({
2124
2149
  priceCurrency: z.string().nullable().optional(),
2125
2150
  paymentTerms: blockBookingPaymentTermsSchema.optional(),
2126
2151
  paymentTermsAvailability: blockBookingPaymentTermsAvailabilitySchema.optional(),
2127
- consent: blockBookingConsentSchema.optional()
2152
+ consent: blockBookingConsentSchema.optional(),
2153
+ categoryId: z.string().nullable().optional()
2154
+ });
2155
+ const bookingServiceCategorySchema = z.object({
2156
+ id: z.string(),
2157
+ name: z.string(),
2158
+ description: z.string().nullable()
2128
2159
  });
2129
2160
  const bookingServicesSourceSchema = z.union([
2130
2161
  z.array(bookingServiceSchema),
2131
- z.object({ services: z.array(bookingServiceSchema).optional() }),
2162
+ z.object({
2163
+ services: z.array(bookingServiceSchema).optional(),
2164
+ categories: z.array(bookingServiceCategorySchema).optional()
2165
+ }),
2132
2166
  z.record(z.string(), bookingServiceSchema)
2133
2167
  ]);
2134
2168
  const bookingConfigSchema = z.object({
@@ -2181,6 +2215,7 @@ const bookingHydrationSchema = z.object({
2181
2215
  rebookContext: z.object({ kind: z.literal("portal_rebook") }).nullable().optional(),
2182
2216
  form: bookingConfigSchema.nullable(),
2183
2217
  services: z.array(bookingServiceSchema),
2218
+ serviceCategories: z.array(bookingServiceCategorySchema).optional(),
2184
2219
  spamProtectionEnabled: z.boolean().optional()
2185
2220
  });
2186
2221
  const bookingRenderSchema = z.object({
@@ -2227,6 +2262,7 @@ const bookingFormInteractiveIslandPropsCodec = createInteractiveIslandCodec({
2227
2262
  rebookContext: source.rebookContext ?? null,
2228
2263
  form,
2229
2264
  services,
2265
+ serviceCategories: normalizeBookingServiceCategories(source.services),
2230
2266
  spamProtectionEnabled: source.spamProtectionEnabled
2231
2267
  }
2232
2268
  };
@@ -3067,13 +3103,6 @@ function themeButtonVariantClassNames(variant) {
3067
3103
  function themeButtonSizeClassName(size) {
3068
3104
  return `btn-${size}`;
3069
3105
  }
3070
- function themeButtonClassName(spec) {
3071
- return [
3072
- ...themeButtonVariantClassNames(spec.variant),
3073
- themeButtonSizeClassName(spec.size),
3074
- spec.extraClassName
3075
- ].filter(Boolean).join(" ");
3076
- }
3077
3106
  shadeBackgroundEffect({
3078
3107
  id: "darken-background",
3079
3108
  name: "Darken on Hover",
@@ -5732,16 +5761,18 @@ const themeV2RuntimeStyleFieldNames = [
5732
5761
  "_frameStyles",
5733
5762
  "_sectionStyles",
5734
5763
  "_containerStyles",
5735
- "_cardStyles",
5736
- "_transitionStyles",
5737
- "styleGroup"
5764
+ "_cardStyles"
5738
5765
  ];
5739
5766
  const themeV2BlockSpecificRawStyleFieldNames = [
5740
5767
  "_contentCardStyles",
5741
5768
  "_heroLayoutStyles",
5742
5769
  "_textCardStyles"
5743
5770
  ];
5744
- const themeV2NormalEditorRawStyleFieldNames = [...themeV2RuntimeStyleFieldNames, ...themeV2BlockSpecificRawStyleFieldNames];
5771
+ const themeV2NormalEditorRawStyleFieldNames = [
5772
+ ...themeV2RuntimeStyleFieldNames,
5773
+ ...themeV2BlockSpecificRawStyleFieldNames,
5774
+ "styleGroup"
5775
+ ];
5745
5776
  new Set(themeV2NormalEditorRawStyleFieldNames);
5746
5777
  [...themeV2RuntimeStyleFieldNames, ...themeV2BlockSpecificRawStyleFieldNames];
5747
5778
  const pageDesignEditorBackgroundOverrideOwner = "page-design-editor";
@@ -7305,6 +7336,33 @@ function normalizeEventCalendarDisplayMode(input) {
7305
7336
  if (isEventCalendarDisplayMode(input.variant)) return input.variant;
7306
7337
  return isEventCalendarDisplayMode(input.displayMode) ? input.displayMode : void 0;
7307
7338
  }
7339
+ /** One closed authority for the projections required by each rendered mode. */
7340
+ function resolveEventCalendarReadPlan(input) {
7341
+ const mode = normalizeEventCalendarDisplayMode(input) ?? "combined";
7342
+ switch (mode) {
7343
+ case "combined": return {
7344
+ mode,
7345
+ jobs: "both",
7346
+ readProfile: "listing-card"
7347
+ };
7348
+ case "list": return {
7349
+ mode,
7350
+ jobs: "list",
7351
+ readProfile: "listing-card"
7352
+ };
7353
+ case "calendar": return {
7354
+ mode,
7355
+ jobs: "calendar",
7356
+ readProfile: "listing-card"
7357
+ };
7358
+ case "timetable":
7359
+ case "week-board": return {
7360
+ mode,
7361
+ jobs: "calendar",
7362
+ readProfile: "timetable"
7363
+ };
7364
+ }
7365
+ }
7308
7366
  //#endregion
7309
7367
  //#region ../blocks/src/system/constants/buttonRoles.ts
7310
7368
  /**
@@ -7444,10 +7502,36 @@ function getEventRuntimeFiltersKey(filters) {
7444
7502
  });
7445
7503
  }
7446
7504
  //#endregion
7505
+ //#region ../blocks/src/system/runtime/api/readAuthority.ts
7506
+ const browserReadAuthoritySchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("published") }).strict(), z.object({
7507
+ kind: z.literal("preview"),
7508
+ token: z.string().min(1)
7509
+ }).strict()]);
7510
+ /** Generic SDK/editor configuration is projected here; hosted callers supply the closed union. */
7511
+ function getBlockApiReadStage(config) {
7512
+ return config.readAuthority?.kind ?? (config.isPreview && config.auth.type !== "none" ? "preview" : "published");
7513
+ }
7514
+ function createHostedBlockApiConfig(input) {
7515
+ const { baseUrl, siteId, readAuthority, portalToken } = input;
7516
+ return {
7517
+ baseUrl,
7518
+ siteId,
7519
+ readAuthority,
7520
+ auth: readAuthority.kind === "preview" ? {
7521
+ type: "bearer",
7522
+ token: readAuthority.token
7523
+ } : { type: "none" },
7524
+ isPreview: readAuthority.kind === "preview",
7525
+ authOverrides: { portal: portalToken ? {
7526
+ type: "bearer",
7527
+ token: portalToken
7528
+ } : { type: "none" } }
7529
+ };
7530
+ }
7531
+ //#endregion
7447
7532
  //#region ../blocks/src/system/blocks/events/shared/calendarWindow.ts
7448
7533
  function resolveCalendarReadProfile(content) {
7449
- const mode = normalizeEventCalendarDisplayMode(content);
7450
- return mode === "timetable" || mode === "week-board" ? "timetable" : "listing-card";
7534
+ return resolveEventCalendarReadPlan(content).readProfile;
7451
7535
  }
7452
7536
  /** Runtime picker sentinels and bound loader IDs must describe the same query. */
7453
7537
  function normalizeCalendarFilterId(value) {
@@ -7619,6 +7703,7 @@ const eventCollectionSourceSchemaShape = {
7619
7703
  events: z.array(publicEventSchema).nullable().optional(),
7620
7704
  siteId: z.string(),
7621
7705
  apiBaseUrl: z.string().optional(),
7706
+ readAuthority: browserReadAuthoritySchema.optional(),
7622
7707
  stage: previewStageSchema.optional(),
7623
7708
  listLayout: eventLayoutSchema.optional(),
7624
7709
  listColumns: columnOptionSchema.optional(),
@@ -7671,7 +7756,6 @@ const eventCollectionDisplaySchemaShape = {
7671
7756
  const eventCollectionHydrationSchema = z.object({
7672
7757
  siteId: z.string(),
7673
7758
  calendarWindow: calendarWindowPageSchema.optional(),
7674
- stage: previewStageSchema.optional(),
7675
7759
  prefetchedEvents: z.boolean(),
7676
7760
  eventSurface: eventSurfaceScopeSchema$1,
7677
7761
  filterEventPresets: z.string().nullable(),
@@ -7746,7 +7830,6 @@ function buildEventCollectionHydration(source, now = /* @__PURE__ */ new Date())
7746
7830
  return {
7747
7831
  calendarWindow: source.calendarWindow ?? void 0,
7748
7832
  siteId: source.siteId,
7749
- stage: source.stage,
7750
7833
  prefetchedEvents: source.events != null,
7751
7834
  eventSurface: selected ? "all" : normalizeEventSurfaceScope(source.eventSurface),
7752
7835
  filterEventPresets: selected ? null : normalizeEventSurfacePresetsCsv(source.filterEventPresets),
@@ -7786,6 +7869,7 @@ const eventListingSourceSchema = z.object({
7786
7869
  events: z.array(publicEventSchema).nullable().optional(),
7787
7870
  siteId: z.string(),
7788
7871
  apiBaseUrl: z.string().optional(),
7872
+ readAuthority: browserReadAuthoritySchema.optional(),
7789
7873
  stage: previewStageSchema.optional(),
7790
7874
  layout: eventLayoutSchema.optional(),
7791
7875
  columns: columnOptionSchema.optional(),
@@ -7826,7 +7910,6 @@ const eventListingDisplaySchema = z.object({
7826
7910
  });
7827
7911
  const eventListingHydrationSchema = z.object({
7828
7912
  siteId: z.string(),
7829
- stage: previewStageSchema.optional(),
7830
7913
  eventsPerPage: eventPageSizeSchema,
7831
7914
  paginationAction: eventListPaginationActionSchema,
7832
7915
  showFilters: z.boolean(),
@@ -7849,6 +7932,7 @@ const eventListingRenderSchema = z.object({
7849
7932
  const eventListingIslandMetaCodec = createZodCodec(z.object({
7850
7933
  siteId: z.string(),
7851
7934
  apiBaseUrl: z.string().optional(),
7935
+ readAuthority: browserReadAuthoritySchema.optional(),
7852
7936
  stage: previewStageSchema.optional()
7853
7937
  }));
7854
7938
  const eventListingInteractiveIslandPropsCodec = createInteractiveIslandCodec({
@@ -7884,7 +7968,6 @@ const eventListingInteractiveIslandPropsCodec = createInteractiveIslandCodec({
7884
7968
  },
7885
7969
  hydration: {
7886
7970
  siteId: source.siteId,
7887
- stage: source.stage,
7888
7971
  eventsPerPage: pageSize,
7889
7972
  paginationAction: resolveEventListPaginationAction({
7890
7973
  paginationMode: source.paginationMode,
@@ -7909,10 +7992,11 @@ const eventListingInteractiveIslandPropsCodec = createInteractiveIslandCodec({
7909
7992
  }),
7910
7993
  mode: "event-listing",
7911
7994
  meta: eventListingIslandMetaCodec,
7912
- metaKeys: defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage"),
7995
+ metaKeys: defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "readAuthority", "stage"),
7913
7996
  selectMeta: (value) => ({
7914
7997
  siteId: value.siteId,
7915
7998
  apiBaseUrl: value.apiBaseUrl,
7999
+ readAuthority: value.readAuthority,
7916
8000
  stage: value.stage
7917
8001
  })
7918
8002
  });
@@ -8582,7 +8666,8 @@ const siteOptionSources = [
8582
8666
  "eventCategories",
8583
8667
  "eventSeries",
8584
8668
  "venues",
8585
- "staffMembers"
8669
+ "staffMembers",
8670
+ "appointmentServiceCategories"
8586
8671
  ];
8587
8672
  const mediaDeliverySchema = z.object({
8588
8673
  sizes: z.string().optional(),
@@ -10640,9 +10725,10 @@ const eventCalendarRenderSchema = z.object({
10640
10725
  const eventCalendarIslandMetaCodec = createZodCodec(z.object({
10641
10726
  siteId: z.string(),
10642
10727
  apiBaseUrl: z.string().optional(),
10728
+ readAuthority: browserReadAuthoritySchema.optional(),
10643
10729
  stage: previewStageSchema.optional()
10644
10730
  }));
10645
- const eventCalendarIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
10731
+ const eventCalendarIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "readAuthority", "stage");
10646
10732
  /**
10647
10733
  * Collapse an optional/blank string to `undefined` so downstream week-board
10648
10734
  * copy (title, footer note) and the CTA href stay hidden unless a site opts in
@@ -10662,7 +10748,7 @@ function buildEventCalendarDisplay(source) {
10662
10748
  listColumns: source.listColumns ?? source.columns
10663
10749
  }),
10664
10750
  kind: "event-calendar",
10665
- displayMode: normalizeEventCalendarDisplayMode(source) ?? "combined",
10751
+ displayMode: resolveEventCalendarReadPlan(source).mode,
10666
10752
  className: source.className ?? null,
10667
10753
  events: (source.events ?? []).slice().sort((left, right) => new Date(left.startsAt).getTime() - new Date(right.startsAt).getTime()),
10668
10754
  boardTitle: normalizeOptionalText(source.boardTitle),
@@ -10683,7 +10769,6 @@ function buildEventCalendarListingRender(render, className = render.display.clas
10683
10769
  display: buildEventCalendarListingDisplay(display, hydration.prefetchedEvents, className),
10684
10770
  hydration: {
10685
10771
  siteId: hydration.siteId,
10686
- stage: hydration.stage,
10687
10772
  eventsPerPage: display.eventsPerPage,
10688
10773
  paginationAction: display.paginationAction,
10689
10774
  showFilters: display.showFilters,
@@ -10708,13 +10793,16 @@ const eventCalendarInteractiveIslandPropsCodec = createInteractiveIslandCodec({
10708
10793
  source: createZodCodec(eventCalendarSourceSchema),
10709
10794
  render: createZodCodec(eventCalendarRenderSchema)
10710
10795
  },
10711
- buildRender: (source) => ({
10712
- display: buildEventCalendarDisplay(source.calendarWindow && (source.variant ?? source.displayMode ?? "combined") !== "combined" && (source.variant ?? source.displayMode) !== "list" ? {
10713
- ...source,
10714
- events: source.calendarWindow.events
10715
- } : source),
10716
- hydration: buildEventCollectionHydration(source)
10717
- })
10796
+ buildRender: (source) => {
10797
+ const plan = resolveEventCalendarReadPlan(source);
10798
+ return {
10799
+ display: buildEventCalendarDisplay(source.calendarWindow && plan.jobs === "calendar" ? {
10800
+ ...source,
10801
+ events: source.calendarWindow.events
10802
+ } : source),
10803
+ hydration: buildEventCollectionHydration(source)
10804
+ };
10805
+ }
10718
10806
  }),
10719
10807
  mode: "event-calendar",
10720
10808
  meta: eventCalendarIslandMetaCodec,
@@ -10722,6 +10810,7 @@ const eventCalendarInteractiveIslandPropsCodec = createInteractiveIslandCodec({
10722
10810
  selectMeta: (value) => ({
10723
10811
  siteId: value.siteId,
10724
10812
  apiBaseUrl: value.apiBaseUrl,
10813
+ readAuthority: value.readAuthority,
10725
10814
  stage: value.stage
10726
10815
  })
10727
10816
  });
@@ -10741,9 +10830,10 @@ const eventCombinedRenderSchema = z.object({
10741
10830
  const eventCombinedIslandMetaCodec = createZodCodec(z.object({
10742
10831
  siteId: z.string(),
10743
10832
  apiBaseUrl: z.string().optional(),
10833
+ readAuthority: browserReadAuthoritySchema.optional(),
10744
10834
  stage: previewStageSchema.optional()
10745
10835
  }));
10746
- const eventCombinedIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
10836
+ const eventCombinedIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "readAuthority", "stage");
10747
10837
  function buildEventCombinedDisplay(source) {
10748
10838
  return {
10749
10839
  ...buildEventCollectionDisplay(source),
@@ -10769,6 +10859,7 @@ const eventCombinedInteractiveIslandPropsCodec = createInteractiveIslandCodec({
10769
10859
  selectMeta: (value) => ({
10770
10860
  siteId: value.siteId,
10771
10861
  apiBaseUrl: value.apiBaseUrl,
10862
+ readAuthority: value.readAuthority,
10772
10863
  stage: value.stage
10773
10864
  })
10774
10865
  });
@@ -11003,6 +11094,7 @@ const eventRegistrationSourceSchema = z.object({
11003
11094
  apiBaseUrl: z.string().optional(),
11004
11095
  portalToken: z.string().nullable().optional(),
11005
11096
  previewToken: z.string().nullable().optional(),
11097
+ readAuthority: browserReadAuthoritySchema.optional(),
11006
11098
  ...eventRegistrationHydrationSchemaShape,
11007
11099
  events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
11008
11100
  wholeSeriesRunEvents: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
@@ -11040,9 +11132,10 @@ const eventRegistrationIslandMetaCodec = createZodCodec(z.object({
11040
11132
  apiBaseUrl: z.string().optional(),
11041
11133
  portalToken: z.string().nullable().optional(),
11042
11134
  previewToken: z.string().nullable().optional(),
11135
+ readAuthority: browserReadAuthoritySchema.optional(),
11043
11136
  stage: previewStageSchema.optional()
11044
11137
  }));
11045
- const eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "portalToken", "previewToken", "stage");
11138
+ const eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "portalToken", "previewToken", "readAuthority", "stage");
11046
11139
  function buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents) {
11047
11140
  const selectedRun = resolveSelectedWholeSeriesRun(scopedSourceEvents);
11048
11141
  if (selectedRun && (!selectedRun.run.enrollmentOpen || toWholeSeriesRegistrationEvent(selectedRun) === null)) return {
@@ -11185,6 +11278,7 @@ const eventRegistrationInteractiveIslandPropsCodec = createInteractiveIslandCode
11185
11278
  apiBaseUrl: value.apiBaseUrl,
11186
11279
  portalToken: value.portalToken,
11187
11280
  previewToken: value.previewToken,
11281
+ readAuthority: value.readAuthority,
11188
11282
  stage: value.stage
11189
11283
  })
11190
11284
  });
@@ -12279,6 +12373,7 @@ const shopSourceSchema = z.object({
12279
12373
  products: z.array(publicProductSchema).nullable().optional(),
12280
12374
  siteId: z.string().optional(),
12281
12375
  apiBaseUrl: z.string().optional(),
12376
+ readAuthority: browserReadAuthoritySchema.optional(),
12282
12377
  stage: previewStageSchema.optional()
12283
12378
  });
12284
12379
  const productVariantOptionDisplaySchema = z.object({
@@ -12446,13 +12541,15 @@ function resolveShowPricePerCredit(source) {
12446
12541
  const shopIslandMetaCodec = createZodCodec(z.object({
12447
12542
  siteId: z.string().optional(),
12448
12543
  apiBaseUrl: z.string().optional(),
12544
+ readAuthority: browserReadAuthoritySchema.optional(),
12449
12545
  stage: previewStageSchema.optional()
12450
12546
  }));
12451
- const shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
12547
+ const shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "readAuthority", "stage");
12452
12548
  function selectShopIslandMeta(value) {
12453
12549
  return {
12454
12550
  siteId: value.siteId,
12455
12551
  apiBaseUrl: value.apiBaseUrl,
12552
+ readAuthority: value.readAuthority,
12456
12553
  stage: value.stage
12457
12554
  };
12458
12555
  }
@@ -12675,4 +12772,4 @@ function defineIslandPropsDecoder(kind) {
12675
12772
  };
12676
12773
  }
12677
12774
  //#endregion
12678
- export { formatDateKey as $, getLocalScheduleDate as $t, resolveEventRegistrationScopedEvents as A, resolveSelectedAppointmentConsent as At, planCalendarMonthRanges as B, reportWorkflowError as Bt, resolveRegistrationTarget as C, prepareBookingSubmission as Ct, getWizardStepsForContext as D, resolveDefaultBookingServiceId as Dt, getStepNumber as E, resolveBookingSiteId as Et, calendarPageResponseError as F, assertNever$1 as Ft, normalizeCsvString as G, addLocalScheduleDays as Gt, buildEventRuntimeFilters as H, CANCELLED_SESSION_STATUS as Ht, calendarQueryKey as I, clearWorkflowFeedback as It, getContainerClass as J, formatBookingDateTime as Jt, normalizeOptionalId as K, formatBookingDate as Kt, calendarWindowBounds as L, err as Lt, isSemanticSpacing as M, isBookingRequirementConsentFieldId as Mt, resolveSpacing as N, RichTextDocSchema as Nt, buildEventCalendarListingRender as O, toSelectedCollectionOptionKind as Ot, calendarMonthDate as P, isRecord$4 as Pt, buildCalendarViewport as Q, getBookingLocalDateKey as Qt, calendarWindowMonths as R, ok as Rt, resolveEventRequiresPayment as S, parseBookingCurrencyInputToCents as St, WIZARD_STEPS as T, resolveBookingPaymentStep as Tt, getEventRuntimeFiltersKey as U, resolveWholeSeriesBookingPhase as Ut, resolveCalendarReadProfile as V, reportWorkflowSuccess as Vt, normalizeCsvIds as W, parseMailingListVisitorSelection as Wt, addDays as X, formatBookingTime as Xt, MONTH_NAMES as Y, formatBookingInstant as Yt, addMonths as Z, formatLocalScheduleDate as Zt, toRegistrationEvents as _, formatBookingSubmissionPreparationError as _t, buildProductDetailDisplay as a, formatBookingPriceDisplay as an, shiftCalendarAnchorDate as at, findPreSelectedEvent as b, getBookingSuccessMessage as bt, EMPTY_COMMERCE_CART_STATE as c, publicEventPricingCurrency as cn, boxBackgroundSchema as ct, deriveCommerceCheckoutState as d, publicEventPricingStrategy as dn, resolveTokenOrCssColorValue as dt, parseBookingLocalDate as en, getDayOfWeek as et, parseStoredCommerceCartState as f, publicEventPricingType as fn, themeButtonClassName as ft, getRegistrationStartAt as g, formatBookingCentsAsCurrencyInput as gt, buildEventRegistrationDisplayFromScopedEvents as h, assertNever$2 as hn, deriveBookingFormViewState as ht, buildProductCardDisplay as i, toScheduledBookingDateTime as in, isToday as it, SEMANTIC_SPACING_VALUES as j, BOOKING_FORM_DATA_RESERVED_KEYS as jt, staticHeaderChromeRuntime as k, projectSelectedAppointmentConsentIntoForm as kt, buildPassCartItem as l, publicEventPricingDisplay as ln, isCssColorLiteral as lt, reduceCommerceCart as m, parseCurrencyCode as mn, logger as mt, getShopDisplayForItems as n, toBookingTimeZone as nn, getWeekCalendarDays as nt, formatCommercePrice as o, formatEventPricing as on, resolveRuntimeEventDestination as ot, productItemKey as p, formatCurrencyAmount as pn, normalizeCardRole as pt, getCardOrientation as q, formatBookingDateParts as qt, buildCartDisplay as r, toScheduledBookingDateRange as rn, isSameCalendarDay as rt, formatInterval as s, isPublicEventPricingOptionDisplayable as sn, groupPublicEventsByRun as st, defineIslandPropsDecoder as t, resolveBookingTimeZoneId as tn, getOrderedDayNames as tt, buildProductCartItem as u, publicEventPricingOptions as un, resolveOnColorForThemeToken as ut, toWholeSeriesRegistrationEvents as v, getBookingRedirectStateFromLocation as vt, toRegistrationRequestSubject as w, resolveAppointmentCheckoutVerificationState as wt, resolveDiscountContext as x, isBookingServiceSlidingAmountInRange as xt, findEventByOccurrenceId as y, getBookingServiceSlidingScale as yt, calendarWindowPageSchema as z, okWith as zt };
12775
+ export { addDays as $, formatBookingInstant as $t, resolveEventRegistrationScopedEvents as A, resolveBookingSiteId as At, calendarWindowPageSchema as B, clearWorkflowFeedback as Bt, resolveRegistrationTarget as C, getBookingServiceSlidingScale as Ct, getWizardStepsForContext as D, prepareBookingSubmission as Dt, getStepNumber as E, parseBookingCurrencyInputToCents as Et, calendarMonthKey as F, BOOKING_FORM_DATA_RESERVED_KEYS as Ft, buildEventRuntimeFilters as G, reportWorkflowSuccess as Gt, resolveCalendarReadProfile as H, ok as Ht, calendarPageResponseError as I, isBookingRequirementConsentFieldId as It, normalizeCsvString as J, parseMailingListVisitorSelection as Jt, getEventRuntimeFiltersKey as K, CANCELLED_SESSION_STATUS as Kt, calendarQueryKey as L, RichTextDocSchema as Lt, isSemanticSpacing as M, toSelectedCollectionOptionKind as Mt, resolveSpacing as N, projectSelectedAppointmentConsentIntoForm as Nt, buildEventCalendarListingRender as O, resolveAppointmentCheckoutVerificationState as Ot, calendarMonthDate as P, resolveSelectedAppointmentConsent as Pt, MONTH_NAMES as Q, formatBookingDateTime as Qt, calendarWindowBounds as R, isRecord$5 as Rt, resolveEventRequiresPayment as S, getBookingRedirectStateFromLocation as St, WIZARD_STEPS as T, isBookingServiceSlidingAmountInRange as Tt, createHostedBlockApiConfig as U, okWith as Ut, planCalendarMonthRanges as V, err as Vt, getBlockApiReadStage as W, reportWorkflowError as Wt, getCardOrientation as X, formatBookingDate as Xt, normalizeOptionalId as Y, addLocalScheduleDays as Yt, getContainerClass as Z, formatBookingDateParts as Zt, toRegistrationEvents as _, formatCurrencyAmount as _n, normalizeCardRole as _t, buildProductDetailDisplay as a, resolveBookingTimeZoneId as an, getWeekCalendarDays as at, findPreSelectedEvent as b, formatBookingCentsAsCurrencyInput as bt, EMPTY_COMMERCE_CART_STATE as c, toScheduledBookingDateTime as cn, shiftCalendarAnchorDate as ct, deriveCommerceCheckoutState as d, isPublicEventPricingOptionDisplayable as dn, boxBackgroundSchema as dt, formatBookingTime as en, addMonths as et, parseStoredCommerceCartState as f, publicEventPricingCurrency as fn, isCssColorLiteral as ft, getRegistrationStartAt as g, publicEventPricingType as gn, themeButtonVariantClassNames as gt, buildEventRegistrationDisplayFromScopedEvents as h, publicEventPricingStrategy as hn, themeButtonSizeClassName as ht, buildProductCardDisplay as i, parseBookingLocalDate as in, getOrderedDayNames as it, SEMANTIC_SPACING_VALUES as j, resolveDefaultBookingServiceId as jt, staticHeaderChromeRuntime as k, resolveBookingPaymentStep as kt, buildPassCartItem as l, formatBookingPriceDisplay as ln, resolveRuntimeEventDestination as lt, reduceCommerceCart as m, publicEventPricingOptions as mn, resolveTokenOrCssColorValue as mt, getShopDisplayForItems as n, getBookingLocalDateKey as nn, formatDateKey as nt, formatCommercePrice as o, toBookingTimeZone as on, isSameCalendarDay as ot, productItemKey as p, publicEventPricingDisplay as pn, resolveOnColorForThemeToken as pt, normalizeCsvIds as q, resolveWholeSeriesBookingPhase as qt, buildCartDisplay as r, getLocalScheduleDate as rn, getDayOfWeek as rt, formatInterval as s, toScheduledBookingDateRange as sn, isToday as st, defineIslandPropsDecoder as t, formatLocalScheduleDate as tn, buildCalendarViewport as tt, buildProductCartItem as u, formatEventPricing as un, groupPublicEventsByRun as ut, toWholeSeriesRegistrationEvents as v, parseCurrencyCode as vn, logger as vt, toRegistrationRequestSubject as w, getBookingSuccessMessage as wt, resolveDiscountContext as x, formatBookingSubmissionPreparationError as xt, findEventByOccurrenceId as y, assertNever$2 as yn, deriveBookingFormViewState as yt, calendarWindowMonths as z, assertNever$1 as zt };