@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
@@ -2238,16 +2238,28 @@ function backgroundColorStyle(token) {
2238
2238
  return { backgroundColor: rgbColorValue(token) };
2239
2239
  }
2240
2240
  /**
2241
+ * Converts a text color token to a CSS color value that follows the enclosing
2242
+ * surface. The semantic text tokens (`text`, `heading`, `mutedText`) resolve
2243
+ * to the surface foreground variables, so text adapts when a section's
2244
+ * background changes; any other token is a fixed theme color.
2245
+ *
2246
+ * @param token - Theme color token
2247
+ * @returns CSS color value
2248
+ */
2249
+ function textColorValue(token) {
2250
+ const parsed = parseToken(token);
2251
+ const surfaceRole = parsed.raw ? null : surfaceRoleForTextToken(parsed.token);
2252
+ if (!surfaceRole) return rgbColorValue(token);
2253
+ return parsed.opacityPercent === void 0 ? surfaceForegroundValue(surfaceRole) : surfaceForegroundValueWithOpacity(surfaceRole, parsed.opacityPercent);
2254
+ }
2255
+ /**
2241
2256
  * Creates a text color style object from a theme token.
2242
2257
  *
2243
2258
  * @param token - Theme color token
2244
2259
  * @returns CSSProperties with color
2245
2260
  */
2246
2261
  function textColorStyle(token) {
2247
- const parsed = parseToken(token);
2248
- const surfaceRole = parsed.raw ? null : surfaceRoleForTextToken(parsed.token);
2249
- if (surfaceRole) return { color: parsed.opacityPercent === void 0 ? surfaceForegroundValue(surfaceRole) : surfaceForegroundValueWithOpacity(surfaceRole, parsed.opacityPercent) };
2250
- return { color: rgbColorValue(token) };
2262
+ return { color: textColorValue(token) };
2251
2263
  }
2252
2264
  /**
2253
2265
  * Creates a border color style object from a theme token.
@@ -5021,6 +5033,15 @@ function asSiteStyleId(value) {
5021
5033
  function asDesignSystemTemplateId(value) {
5022
5034
  return brandNonEmptyString(value, "DesignSystemTemplateId");
5023
5035
  }
5036
+ function toNonEmptyReadonlyArray(values) {
5037
+ const [first, ...rest] = values;
5038
+ return first === void 0 ? null : [first, ...rest];
5039
+ }
5040
+ function requireNonEmptyReadonlyArray(values, message = "Expected a non-empty array.") {
5041
+ const result = toNonEmptyReadonlyArray(values);
5042
+ if (!result) throw new Error(message);
5043
+ return result;
5044
+ }
5024
5045
  function makeBoundaryId(previousBlockId, nextBlockId) {
5025
5046
  return asDesignBoundaryId(`boundary:${encodeURIComponent(previousBlockId)}:${encodeURIComponent(nextBlockId)}`);
5026
5047
  }
@@ -5220,16 +5241,18 @@ const themeV2RuntimeStyleFieldNames = [
5220
5241
  "_frameStyles",
5221
5242
  "_sectionStyles",
5222
5243
  "_containerStyles",
5223
- "_cardStyles",
5224
- "_transitionStyles",
5225
- "styleGroup"
5244
+ "_cardStyles"
5226
5245
  ];
5227
5246
  const themeV2BlockSpecificRawStyleFieldNames = [
5228
5247
  "_contentCardStyles",
5229
5248
  "_heroLayoutStyles",
5230
5249
  "_textCardStyles"
5231
5250
  ];
5232
- const themeV2NormalEditorRawStyleFieldNames = [...themeV2RuntimeStyleFieldNames, ...themeV2BlockSpecificRawStyleFieldNames];
5251
+ const themeV2NormalEditorRawStyleFieldNames = [
5252
+ ...themeV2RuntimeStyleFieldNames,
5253
+ ...themeV2BlockSpecificRawStyleFieldNames,
5254
+ "styleGroup"
5255
+ ];
5233
5256
  new Set(themeV2NormalEditorRawStyleFieldNames);
5234
5257
  [...themeV2RuntimeStyleFieldNames, ...themeV2BlockSpecificRawStyleFieldNames];
5235
5258
  const pageDesignEditorBackgroundOverrideOwner = "page-design-editor";
@@ -6955,11 +6978,260 @@ function cardRoleFromLegacyVocabulary(value) {
6955
6978
  */
6956
6979
  const cardRoleWithLegacyAliasSchema = z.preprocess((value) => cardRoleFromLegacyVocabulary(value) ?? value, cardRoleSchema);
6957
6980
  //#endregion
6958
- //#region ../theme-core/src/site-styles/compilationPlan.ts
6959
- const defaultHeaderBrandPreferences = {
6960
- brandDisplay: "auto",
6961
- logoSize: "auto"
6962
- };
6981
+ //#region ../theme-core/src/site-styles/transitionCatalogue.ts
6982
+ /**
6983
+ * Family order for pickers. Entries below are listed family by family in this
6984
+ * same order, so the flat option list and the grouped families agree.
6985
+ */
6986
+ const transitionCatalogueFamilies = [
6987
+ {
6988
+ id: "gradient",
6989
+ label: "Gradient"
6990
+ },
6991
+ {
6992
+ id: "wave",
6993
+ label: "Wave"
6994
+ },
6995
+ {
6996
+ id: "angle",
6997
+ label: "Angle"
6998
+ }
6999
+ ];
7000
+ const mediumHeight = "6rem + 2px";
7001
+ const compactHeight = "4.5rem + 2px";
7002
+ const largeHeight = "7rem + 2px";
7003
+ /**
7004
+ * The single source of transition vocabulary. Order is significant: it is the
7005
+ * order of `boundaryOptions` (after `none`) and of each family's variants,
7006
+ * which persisted pins, page-flow presets and the editor picker all rely on.
7007
+ *
7008
+ * Shapes match what `generateLayoutCss` draws today. Structured
7009
+ * amplitude/frequency treatments (issue 826) extend this list later.
7010
+ */
7011
+ const transitionCatalogueEntries = defineExactCatalog()([
7012
+ {
7013
+ intent: "soft-fade-short",
7014
+ optionId: asBoundaryOptionId("break:soft"),
7015
+ family: "gradient",
7016
+ variantId: "soft",
7017
+ label: "Soft",
7018
+ variantLabel: "Soft",
7019
+ treatment: {
7020
+ kind: "soft-fade",
7021
+ height: "medium",
7022
+ curve: "soft"
7023
+ },
7024
+ size: "medium",
7025
+ heightExpression: mediumHeight,
7026
+ shape: { kind: "fade" }
7027
+ },
7028
+ {
7029
+ intent: "soft-fade-long",
7030
+ optionId: asBoundaryOptionId("break:spacious"),
7031
+ family: "gradient",
7032
+ variantId: "spacious",
7033
+ label: "Spacious",
7034
+ variantLabel: "Spacious",
7035
+ treatment: {
7036
+ kind: "soft-fade",
7037
+ height: "large",
7038
+ curve: "spacious"
7039
+ },
7040
+ size: "spacious",
7041
+ heightExpression: "10rem",
7042
+ shape: { kind: "fade" }
7043
+ },
7044
+ {
7045
+ intent: "soft-fade-expansive",
7046
+ optionId: asBoundaryOptionId("break:expansive"),
7047
+ family: "gradient",
7048
+ variantId: "expansive",
7049
+ label: "Expansive",
7050
+ variantLabel: "Expansive",
7051
+ treatment: {
7052
+ kind: "soft-fade",
7053
+ height: "expansive",
7054
+ curve: "expansive"
7055
+ },
7056
+ size: "expansive",
7057
+ heightExpression: "14rem",
7058
+ shape: { kind: "fade" }
7059
+ },
7060
+ {
7061
+ intent: "wave-edge-balanced",
7062
+ optionId: asBoundaryOptionId("break:wave-balanced"),
7063
+ family: "wave",
7064
+ variantId: "balanced",
7065
+ label: "Balanced wave",
7066
+ variantLabel: "Balanced",
7067
+ treatment: {
7068
+ kind: "wave-edge",
7069
+ height: "medium",
7070
+ amplitude: "balanced",
7071
+ rhythm: "double",
7072
+ symmetry: "symmetrical"
7073
+ },
7074
+ size: "medium",
7075
+ heightExpression: mediumHeight,
7076
+ shape: {
7077
+ kind: "wave",
7078
+ mask: "balanced"
7079
+ }
7080
+ },
7081
+ {
7082
+ intent: "wave-edge",
7083
+ optionId: asBoundaryOptionId("break:wave"),
7084
+ family: "wave",
7085
+ variantId: "classic",
7086
+ label: "Classic wave",
7087
+ variantLabel: "Classic",
7088
+ treatment: {
7089
+ kind: "wave-edge",
7090
+ height: "medium",
7091
+ amplitude: "balanced",
7092
+ rhythm: "double",
7093
+ symmetry: "asymmetrical"
7094
+ },
7095
+ size: "medium",
7096
+ heightExpression: mediumHeight,
7097
+ shape: {
7098
+ kind: "wave",
7099
+ mask: "classic"
7100
+ }
7101
+ },
7102
+ {
7103
+ intent: "wave-edge-gentle",
7104
+ optionId: asBoundaryOptionId("break:wave-gentle"),
7105
+ family: "wave",
7106
+ variantId: "gentle",
7107
+ label: "Gentle wave",
7108
+ variantLabel: "Gentle",
7109
+ treatment: {
7110
+ kind: "wave-edge",
7111
+ height: "compact",
7112
+ amplitude: "subtle",
7113
+ rhythm: "single",
7114
+ symmetry: "symmetrical"
7115
+ },
7116
+ size: "compact",
7117
+ heightExpression: compactHeight,
7118
+ shape: {
7119
+ kind: "wave",
7120
+ mask: "gentle"
7121
+ }
7122
+ },
7123
+ {
7124
+ intent: "wave-edge-bold",
7125
+ optionId: asBoundaryOptionId("break:wave-bold"),
7126
+ family: "wave",
7127
+ variantId: "bold",
7128
+ label: "Bold wave",
7129
+ variantLabel: "Bold",
7130
+ treatment: {
7131
+ kind: "wave-edge",
7132
+ height: "large",
7133
+ amplitude: "bold",
7134
+ rhythm: "double",
7135
+ symmetry: "symmetrical"
7136
+ },
7137
+ size: "large",
7138
+ heightExpression: largeHeight,
7139
+ shape: {
7140
+ kind: "wave",
7141
+ mask: "bold"
7142
+ }
7143
+ },
7144
+ {
7145
+ intent: "wave-edge-drift",
7146
+ optionId: asBoundaryOptionId("break:wave-drift"),
7147
+ family: "wave",
7148
+ variantId: "drift",
7149
+ label: "Drift wave",
7150
+ variantLabel: "Drift",
7151
+ treatment: {
7152
+ kind: "wave-edge",
7153
+ height: "medium",
7154
+ amplitude: "balanced",
7155
+ rhythm: "double",
7156
+ symmetry: "drift"
7157
+ },
7158
+ size: "medium",
7159
+ heightExpression: mediumHeight,
7160
+ shape: {
7161
+ kind: "wave",
7162
+ mask: "drift"
7163
+ }
7164
+ },
7165
+ {
7166
+ intent: "angle-edge-subtle",
7167
+ optionId: asBoundaryOptionId("break:angle-subtle"),
7168
+ family: "angle",
7169
+ variantId: "subtle",
7170
+ label: "Subtle angle",
7171
+ variantLabel: "Subtle",
7172
+ treatment: {
7173
+ kind: "angle-edge",
7174
+ height: "compact",
7175
+ slope: "subtle",
7176
+ direction: "forward"
7177
+ },
7178
+ size: "compact",
7179
+ heightExpression: compactHeight,
7180
+ shape: {
7181
+ kind: "angle",
7182
+ polygon: {
7183
+ startTopPercent: 34,
7184
+ endTopPercent: 18
7185
+ }
7186
+ }
7187
+ },
7188
+ {
7189
+ intent: "angle-edge",
7190
+ optionId: asBoundaryOptionId("break:angle-balanced"),
7191
+ family: "angle",
7192
+ variantId: "balanced",
7193
+ label: "Balanced angle",
7194
+ variantLabel: "Balanced",
7195
+ treatment: {
7196
+ kind: "angle-edge",
7197
+ height: "medium",
7198
+ slope: "balanced",
7199
+ direction: "forward"
7200
+ },
7201
+ size: "medium",
7202
+ heightExpression: mediumHeight,
7203
+ shape: {
7204
+ kind: "angle",
7205
+ polygon: {
7206
+ startTopPercent: 42,
7207
+ endTopPercent: 8
7208
+ }
7209
+ }
7210
+ },
7211
+ {
7212
+ intent: "angle-edge-steep",
7213
+ optionId: asBoundaryOptionId("break:angle-steep"),
7214
+ family: "angle",
7215
+ variantId: "steep",
7216
+ label: "Steep angle",
7217
+ variantLabel: "Steep",
7218
+ treatment: {
7219
+ kind: "angle-edge",
7220
+ height: "large",
7221
+ slope: "steep",
7222
+ direction: "forward"
7223
+ },
7224
+ size: "large",
7225
+ heightExpression: largeHeight,
7226
+ shape: {
7227
+ kind: "angle",
7228
+ polygon: {
7229
+ startTopPercent: 54,
7230
+ endTopPercent: 0
7231
+ }
7232
+ }
7233
+ }
7234
+ ]);
6963
7235
  //#endregion
6964
7236
  //#region ../theme-core/src/site-styles/sectionTransitions.ts
6965
7237
  function boundaryRuntimeMetrics(family, size, heightExpression) {
@@ -6970,42 +7242,106 @@ function boundaryRuntimeMetrics(family, size, heightExpression) {
6970
7242
  reserveCss: `calc((${heightExpression}) / 2)`
6971
7243
  };
6972
7244
  }
6973
- boundaryRuntimeMetrics("gradient", "medium", "6rem + 2px"), boundaryRuntimeMetrics("gradient", "spacious", "10rem"), boundaryRuntimeMetrics("gradient", "expansive", "14rem"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("wave", "compact", "4.5rem + 2px"), boundaryRuntimeMetrics("wave", "large", "7rem + 2px"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("angle", "medium", "6rem + 2px"), boundaryRuntimeMetrics("angle", "compact", "4.5rem + 2px"), boundaryRuntimeMetrics("angle", "large", "7rem + 2px");
7245
+ new Map(transitionCatalogueEntries.map((entry) => [entry.intent, entry]));
7246
+ new Map(transitionCatalogueEntries.map((entry) => [entry.intent, boundaryRuntimeMetrics(entry.family, entry.size, entry.heightExpression)]));
7247
+ /**
7248
+ * The catalogue's compile-time coverage check guarantees an entry per
7249
+ * decorative intent, so a miss here is a broken invariant, not bad input.
7250
+ */
7251
+ function requireCatalogueValue(values, intent) {
7252
+ const value = values.get(intent);
7253
+ if (value === void 0) throw new Error(`Transition catalogue has no entry for ${intent}`);
7254
+ return value;
7255
+ }
6974
7256
  const noneBoundaryOption = {
6975
7257
  id: asBoundaryOptionId("break:none"),
6976
7258
  label: "None",
6977
7259
  transitionAfter: "none",
6978
7260
  treatment: { kind: "none" }
6979
7261
  };
6980
- const softBoundaryOption = {
6981
- id: asBoundaryOptionId("break:soft"),
6982
- label: "Soft",
6983
- transitionAfter: "soft-fade-short",
6984
- treatment: {
6985
- kind: "soft-fade",
6986
- height: "medium",
6987
- curve: "soft"
6988
- }
7262
+ const boundaryOptionByIntent = new Map(transitionCatalogueEntries.map((entry) => [entry.intent, {
7263
+ id: entry.optionId,
7264
+ label: entry.label,
7265
+ transitionAfter: entry.intent,
7266
+ treatment: entry.treatment
7267
+ }]));
7268
+ function boundaryOptionForTransitionIntent(intent) {
7269
+ return requireCatalogueValue(boundaryOptionByIntent, intent);
7270
+ }
7271
+ const softBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-short");
7272
+ const spaciousBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-long");
7273
+ boundaryOptionForTransitionIntent("soft-fade-expansive");
7274
+ boundaryOptionForTransitionIntent("wave-edge");
7275
+ boundaryOptionForTransitionIntent("wave-edge-balanced");
7276
+ boundaryOptionForTransitionIntent("wave-edge-gentle");
7277
+ boundaryOptionForTransitionIntent("wave-edge-bold");
7278
+ boundaryOptionForTransitionIntent("wave-edge-drift");
7279
+ boundaryOptionForTransitionIntent("angle-edge-subtle");
7280
+ boundaryOptionForTransitionIntent("angle-edge");
7281
+ boundaryOptionForTransitionIntent("angle-edge-steep");
7282
+ /**
7283
+ * Must remain non-empty; downstream code indexes `[0]` as the documented default.
7284
+ */
7285
+ const boundaryOptions = [noneBoundaryOption, ...transitionCatalogueEntries.map((entry) => boundaryOptionForTransitionIntent(entry.intent))];
7286
+ const noneTransitionVariant = {
7287
+ familyId: "none",
7288
+ variantId: "none",
7289
+ label: "None",
7290
+ boundaryOption: noneBoundaryOption
6989
7291
  };
6990
- const spaciousBoundaryOption = {
6991
- id: asBoundaryOptionId("break:spacious"),
6992
- label: "Spacious",
6993
- transitionAfter: "soft-fade-long",
6994
- treatment: {
6995
- kind: "soft-fade",
6996
- height: "large",
6997
- curve: "spacious"
6998
- }
7292
+ function transitionVariantForEntry(entry) {
7293
+ return {
7294
+ familyId: entry.family,
7295
+ variantId: entry.variantId,
7296
+ label: entry.variantLabel,
7297
+ boundaryOption: boundaryOptionForTransitionIntent(entry.intent)
7298
+ };
7299
+ }
7300
+ const sectionTransitionFamilies = [{
7301
+ id: "none",
7302
+ label: "None",
7303
+ variants: [noneTransitionVariant]
7304
+ }, ...transitionCatalogueFamilies.map((family) => ({
7305
+ id: family.id,
7306
+ label: family.label,
7307
+ variants: requireNonEmptyReadonlyArray(transitionCatalogueEntries.filter((entry) => entry.family === family.id).map(transitionVariantForEntry), `Transition family ${family.id} has no catalogue entries.`)
7308
+ }))];
7309
+ new Map(boundaryOptions.map((option) => [option.id, option]));
7310
+ new Map(boundaryOptions.map((option) => [stableTreatmentKey(option.treatment), option]));
7311
+ new Map(sectionTransitionFamilies.flatMap((family) => family.variants.map((variant) => [variant.boundaryOption.id, variant])));
7312
+ new Map(sectionTransitionFamilies.map((family) => [family.id, family]));
7313
+ function stableTreatmentKey(treatment) {
7314
+ switch (treatment.kind) {
7315
+ case "none": return "none";
7316
+ case "soft-fade": return `${treatment.kind}:${treatment.height}:${treatment.curve}`;
7317
+ case "wave-edge": return [
7318
+ treatment.kind,
7319
+ treatment.height,
7320
+ treatment.amplitude,
7321
+ treatment.rhythm,
7322
+ treatment.symmetry
7323
+ ].join(":");
7324
+ case "angle-edge": return [
7325
+ treatment.kind,
7326
+ treatment.height,
7327
+ treatment.slope,
7328
+ treatment.direction
7329
+ ].join(":");
7330
+ case "legacy-unsupported": return `${treatment.kind}:${treatment.boundaryOptionId}`;
7331
+ }
7332
+ }
7333
+ requireThemeColorToken$1("background");
7334
+ function requireThemeColorToken$1(value) {
7335
+ const token = parseThemeColorToken(value);
7336
+ if (!token) throw new Error(`Expected a theme color token. Received: ${value}`);
7337
+ return token;
7338
+ }
7339
+ //#endregion
7340
+ //#region ../theme-core/src/site-styles/compilationPlan.ts
7341
+ const defaultHeaderBrandPreferences = {
7342
+ brandDisplay: "auto",
7343
+ logoSize: "auto"
6999
7344
  };
7000
- asBoundaryOptionId("break:expansive");
7001
- asBoundaryOptionId("break:wave");
7002
- asBoundaryOptionId("break:wave-balanced");
7003
- asBoundaryOptionId("break:wave-gentle");
7004
- asBoundaryOptionId("break:wave-bold");
7005
- asBoundaryOptionId("break:wave-drift");
7006
- asBoundaryOptionId("break:angle-subtle");
7007
- asBoundaryOptionId("break:angle-balanced");
7008
- asBoundaryOptionId("break:angle-steep");
7009
7345
  asBoundaryOptionId("break:unknown");
7010
7346
  const pageDesignUserPinnedAppearanceChoiceSchema = z.object({
7011
7347
  kind: z.literal("user-pinned"),
@@ -7132,14 +7468,11 @@ function validateUniquePageDesignPins(intent, ctx) {
7132
7468
  label: "block Look pin"
7133
7469
  });
7134
7470
  addDuplicateStringIssues(ctx, {
7135
- values: intent.boundaryPins.map((pin) => boundaryKey(pin.previousBlockId, pin.nextBlockId)),
7471
+ values: intent.boundaryPins.map((pin) => makeBoundaryId(pin.previousBlockId, pin.nextBlockId)),
7136
7472
  path: ["boundaryPins"],
7137
7473
  label: "boundary pin"
7138
7474
  });
7139
7475
  }
7140
- function boundaryKey(previousBlockId, nextBlockId) {
7141
- return makeBoundaryId(previousBlockId, nextBlockId);
7142
- }
7143
7476
  //#endregion
7144
7477
  //#region ../theme-core/src/accordions/siteStyleDefaults.ts
7145
7478
  /**
@@ -8740,6 +9073,13 @@ z.object({
8740
9073
  fields: nonEmptyRuntimeStyleFieldNamesSchema,
8741
9074
  authority: styleAuthoritySchema
8742
9075
  }).strict();
9076
+ asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
9077
+ asPageFlowPresetId("generated-default");
9078
+ asSiteStyleId("site-style:south-west-twerk-school");
9079
+ asAppearancePresetId("hero-brand-scrim-fixed-frame");
9080
+ asLayoutVariantKey("classic");
9081
+ asLayoutVariantKey("micro");
9082
+ asBoundaryOptionId("break:wave");
8743
9083
  //#endregion
8744
9084
  //#region ../theme-core/src/site-styles/runtimeCompiler.ts
8745
9085
  function defineSectionForegroundRuntimeTokens(input) {
@@ -8763,7 +9103,7 @@ function defineComponentRuntimeRules(rules) {
8763
9103
  }
8764
9104
  /**
8765
9105
  * Default design rules translate semantic page-level choices into the current
8766
- * runtime's section background and transition style-group vocabulary.
9106
+ * runtime's section background vocabulary.
8767
9107
  */
8768
9108
  const defaultDesignRuntimeRules = defineDesignRuntimeRules({
8769
9109
  sectionSurfaces: {
@@ -8798,8 +9138,7 @@ const defaultDesignRuntimeRules = defineDesignRuntimeRules({
8798
9138
  color: "surface",
8799
9139
  opacity: .88
8800
9140
  }
8801
- },
8802
- transitionClassName: (transition, fromSurface, toSurface) => transition === "none" ? null : `site-style-transition-${transition}-from-${fromSurface}-to-${toSurface}`
9141
+ }
8803
9142
  });
8804
9143
  /**
8805
9144
  * Default component rules translate frame and item-surface semantics into the
@@ -10534,19 +10873,11 @@ const curatedSiteStyles = [
10534
10873
  })
10535
10874
  ];
10536
10875
  new Map(curatedSiteStyles.map((style) => [style.id, style]));
10537
- asPageFlowPresetId("generated-default");
10538
- asSiteStyleId("site-style:south-west-twerk-school");
10539
- asAppearancePresetId("hero-brand-scrim-fixed-frame");
10540
- asLayoutVariantKey("classic");
10541
- asLayoutVariantKey("micro");
10542
- asBoundaryOptionId("break:wave");
10543
- asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
10544
10876
  //#endregion
10545
10877
  //#region ../theme-core/src/site-styles/resolver.ts
10546
10878
  const blockDesignFallback = {
10547
10879
  sectionSurface: "base",
10548
10880
  contentFrame: plainFrame,
10549
- transitionAfter: "none",
10550
10881
  sectionHeight: "default",
10551
10882
  heroLegibility: "none",
10552
10883
  imageSurfaceTreatment: { kind: "none" },
@@ -10557,7 +10888,7 @@ const blockDesignFallback = {
10557
10888
  accordionIconTreatment: null,
10558
10889
  composition: null
10559
10890
  };
10560
- blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.transitionAfter, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
10891
+ blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
10561
10892
  //#endregion
10562
10893
  //#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
10563
10894
  const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
@@ -12155,7 +12486,8 @@ const siteOptionSources = [
12155
12486
  "eventCategories",
12156
12487
  "eventSeries",
12157
12488
  "venues",
12158
- "staffMembers"
12489
+ "staffMembers",
12490
+ "appointmentServiceCategories"
12159
12491
  ];
12160
12492
  const mediaDeliverySchema = z.object({
12161
12493
  sizes: z.string().optional(),
@@ -14353,9 +14685,7 @@ function navRow(opts) {
14353
14685
  rel: { $bind: { from: `${childItemName}.rel` } },
14354
14686
  "data-active": { $bind: { from: `${childItemName}.active` } }
14355
14687
  }, [text({ as: "span" }, bind(`${childItemName}.label`))], repeat(`${itemName}.children`, childItemName));
14356
- const dropdown = el("div", { className: "nav-dropdown rb-relative" }, [button({
14357
- type: "button",
14358
- variantId: "",
14688
+ const dropdown = el("div", { className: "nav-dropdown rb-relative" }, [el("headerControl", {
14359
14689
  className: prependClassName("nav-dropdown-trigger", linkClassName),
14360
14690
  "aria-haspopup": "menu",
14361
14691
  "aria-expanded": "false",
@@ -14423,9 +14753,7 @@ function navColumn(opts) {
14423
14753
  const dropdown = el("div", {
14424
14754
  className: "nav-mobile-dropdown",
14425
14755
  "data-nav-mobile-dropdown": "true"
14426
- }, [button({
14427
- type: "button",
14428
- variantId: "",
14756
+ }, [el("headerControl", {
14429
14757
  className: triggerClassName,
14430
14758
  "aria-expanded": "false",
14431
14759
  "aria-controls": childrenId,
@@ -19221,46 +19549,42 @@ const whenTransformed = (from, transformId, equals = true) => (node) => ({
19221
19549
  equals
19222
19550
  }
19223
19551
  });
19224
- const logoRow = link({
19552
+ /** Draw whichever site logo suits the surface this row sits on. */
19553
+ const bindChromeLogo = (surface) => bind("content", { transforms: [{
19554
+ id: "layout.chromeLogo",
19555
+ options: { surface }
19556
+ }] });
19557
+ /**
19558
+ * The brand link. The logo is chosen per surface because the open mobile menu
19559
+ * paints its own background, which may be the opposite tone to the header.
19560
+ */
19561
+ const createLogoRow = (surface) => link({
19225
19562
  href: "/",
19226
19563
  className: bindProp("$root.theme.header.logo", {
19227
19564
  transforms: pipe(tx("layout.headerLogoClass")),
19228
19565
  fallback: "header-logo rb-flex rb-min-w-0 rb-items-center rb-gap-3 rb-no-underline rb-transition-opacity rb-hover-opacity-80"
19229
19566
  })
19230
- }, [
19231
- media({ className: bindProp("$root.theme.header.logo", {
19232
- transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300" })),
19233
- fallback: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300"
19234
- }) }, when("content.logo"), bind("content.logo")),
19235
- stack({ className: "rb-contents" }, [media({ className: bindProp("$root.theme.header.logo", {
19236
- transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300" })),
19237
- fallback: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300"
19238
- }) }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
19239
- text({
19240
- as: "strong",
19241
- className: "header-logo-text rb-truncate"
19242
- }, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
19243
- ]);
19567
+ }, [media({ className: bindProp("$root.theme.header.logo", {
19568
+ transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300" })),
19569
+ fallback: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300"
19570
+ }) }, when("content.logo"), bindChromeLogo(surface)), text({
19571
+ as: "strong",
19572
+ className: "header-logo-text rb-truncate"
19573
+ }, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))]);
19574
+ const logoRow = createLogoRow("header-root");
19244
19575
  const centeredLogoRow = link({
19245
19576
  href: "/",
19246
19577
  className: bindProp("$root.theme.header.logo", {
19247
19578
  transforms: pipe(tx("layout.headerLogoClass", { base: "header-logo rb-flex rb-items-center rb-justify-center rb-gap-3 rb-text-center rb-no-underline rb-transition-opacity rb-hover-opacity-80" })),
19248
19579
  fallback: "header-logo rb-flex rb-items-center rb-justify-center rb-gap-3 rb-text-center rb-no-underline rb-transition-opacity rb-hover-opacity-80"
19249
19580
  })
19250
- }, [
19251
- media({ className: bindProp("$root.theme.header.logo", {
19252
- transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300" })),
19253
- fallback: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300"
19254
- }) }, when("content.logo"), bind("content.logo")),
19255
- stack({ className: "rb-contents" }, [media({ className: bindProp("$root.theme.header.logo", {
19256
- transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300" })),
19257
- fallback: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300"
19258
- }) }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
19259
- text({
19260
- as: "strong",
19261
- className: "header-logo-text"
19262
- }, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
19263
- ]);
19581
+ }, [media({ className: bindProp("$root.theme.header.logo", {
19582
+ transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300" })),
19583
+ fallback: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300"
19584
+ }) }, when("content.logo"), bindChromeLogo("header-root")), text({
19585
+ as: "strong",
19586
+ className: "header-logo-text"
19587
+ }, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))]);
19264
19588
  const createNavRow = (className, align = "end") => navRow({
19265
19589
  className: `${className} header-nav-row`,
19266
19590
  align,
@@ -19300,10 +19624,8 @@ const mobileToggleIcon = stack({
19300
19624
  }
19301
19625
  ]);
19302
19626
  const mobileToggleButton = {
19303
- type: "button",
19627
+ type: "headerControl",
19304
19628
  props: {
19305
- type: "button",
19306
- variantId: "",
19307
19629
  className: `nav-mobile-toggle ${mobileOnlyDisplay("inline-flex")} rb-h-10 rb-w-10 rb-items-center rb-justify-center rb-rounded-md transition-theme-standard`,
19308
19630
  "aria-label": "Open menu",
19309
19631
  "aria-expanded": "false",
@@ -19313,10 +19635,8 @@ const mobileToggleButton = {
19313
19635
  children: [mobileToggleIcon]
19314
19636
  };
19315
19637
  const mobileOverlayToggleButton = {
19316
- type: "button",
19638
+ type: "headerControl",
19317
19639
  props: {
19318
- type: "button",
19319
- variantId: "",
19320
19640
  className: "nav-mobile-toggle rb-inline-flex rb-h-10 rb-w-10 rb-items-center rb-justify-center rb-rounded-md transition-theme-standard",
19321
19641
  "aria-label": "Open menu",
19322
19642
  "aria-expanded": "false",
@@ -19340,7 +19660,7 @@ const mobileOverlayHeader = inline({
19340
19660
  align: "center",
19341
19661
  justify: "between",
19342
19662
  style: borderColorStyle("border")
19343
- }, [logoRow, mobileOverlayToggleButton]);
19663
+ }, [createLogoRow("header-mobile-panel"), mobileOverlayToggleButton]);
19344
19664
  const mobileOverlayBody = stack({
19345
19665
  className: "rb-flex-1 rb-px-6 rb-py-6",
19346
19666
  gap: "md",
@@ -19527,7 +19847,10 @@ const brandLogo = link({
19527
19847
  options: { base: "rb-h-10 rb-w-auto" }
19528
19848
  }],
19529
19849
  fallback: "rb-h-10 rb-w-auto"
19530
- } } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content.logo")), text({
19850
+ } } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content", { transforms: [{
19851
+ id: "layout.chromeLogo",
19852
+ options: { surface: "footer-root" }
19853
+ }] })), text({
19531
19854
  as: "strong",
19532
19855
  className: "footer-logo-text rb-nav-text"
19533
19856
  }, when("module.showTitle", { equals: true }), bind("site.title", { fallback: "Your Site" }))], when("module.kind", { equals: "brand" }));
@@ -21220,6 +21543,15 @@ const appointmentServicesBlockDefinition = {
21220
21543
  required: false,
21221
21544
  ui: { intent: "content" }
21222
21545
  },
21546
+ createSiteOptionSelectField({
21547
+ id: "categoryId",
21548
+ label: "Category",
21549
+ description: "Show one category (with its heading and intro), or leave it on All categories to show everything grouped.",
21550
+ required: false,
21551
+ multiple: false,
21552
+ optionSource: "appointmentServiceCategories",
21553
+ ui: { intent: "content" }
21554
+ }),
21223
21555
  sectionStylesField({
21224
21556
  id: "_sectionStyles",
21225
21557
  label: "Section styles",
@@ -21254,6 +21586,7 @@ const appointmentServicesBlockDefinition = {
21254
21586
  richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
21255
21587
  el("appointment-services", {
21256
21588
  sectionHeading: { $bind: { from: "content.heading" } },
21589
+ categoryId: { $bind: { from: "content.categoryId" } },
21257
21590
  services: { $bind: { from: "data.services" } },
21258
21591
  pathname: { $bind: { from: "$root.pathname" } },
21259
21592
  servicePathPrefix: { $bind: { from: "$root.appointmentServicePathPrefix" } }
@@ -22313,6 +22646,12 @@ const occurrenceContextSchema = z.object({
22313
22646
  capacityOverride: z.number().nullable().optional(),
22314
22647
  overrides: z.record(z.string(), z.unknown()).nullable().optional()
22315
22648
  }).nullable();
22649
+ //#endregion
22650
+ //#region ../blocks/src/system/runtime/api/readAuthority.ts
22651
+ const browserReadAuthoritySchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("published") }).strict(), z.object({
22652
+ kind: z.literal("preview"),
22653
+ token: z.string().min(1)
22654
+ }).strict()]);
22316
22655
  const unsupportedEventRegistrationPageSurfaceSubjectSchema = z.object({
22317
22656
  kind: z.literal("unsupported"),
22318
22657
  reason: z.enum([
@@ -22423,6 +22762,33 @@ function normalizeEventCalendarDisplayMode$1(input) {
22423
22762
  if (isEventCalendarDisplayMode(input.variant)) return input.variant;
22424
22763
  return isEventCalendarDisplayMode(input.displayMode) ? input.displayMode : void 0;
22425
22764
  }
22765
+ /** One closed authority for the projections required by each rendered mode. */
22766
+ function resolveEventCalendarReadPlan(input) {
22767
+ const mode = normalizeEventCalendarDisplayMode$1(input) ?? "combined";
22768
+ switch (mode) {
22769
+ case "combined": return {
22770
+ mode,
22771
+ jobs: "both",
22772
+ readProfile: "listing-card"
22773
+ };
22774
+ case "list": return {
22775
+ mode,
22776
+ jobs: "list",
22777
+ readProfile: "listing-card"
22778
+ };
22779
+ case "calendar": return {
22780
+ mode,
22781
+ jobs: "calendar",
22782
+ readProfile: "listing-card"
22783
+ };
22784
+ case "timetable":
22785
+ case "week-board": return {
22786
+ mode,
22787
+ jobs: "calendar",
22788
+ readProfile: "timetable"
22789
+ };
22790
+ }
22791
+ }
22426
22792
  function isEventCalendarDefaultView(value) {
22427
22793
  return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
22428
22794
  }
@@ -22617,6 +22983,7 @@ const eventRegistrationSourceSchema = z.object({
22617
22983
  apiBaseUrl: z.string().optional(),
22618
22984
  portalToken: z.string().nullable().optional(),
22619
22985
  previewToken: z.string().nullable().optional(),
22986
+ readAuthority: browserReadAuthoritySchema.optional(),
22620
22987
  ...eventRegistrationHydrationSchemaShape,
22621
22988
  events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
22622
22989
  wholeSeriesRunEvents: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
@@ -22654,6 +23021,7 @@ z.object({
22654
23021
  apiBaseUrl: z.string().optional(),
22655
23022
  portalToken: z.string().nullable().optional(),
22656
23023
  previewToken: z.string().nullable().optional(),
23024
+ readAuthority: browserReadAuthoritySchema.optional(),
22657
23025
  stage: previewStageSchema.optional()
22658
23026
  });
22659
23027
  function buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents) {
@@ -22912,6 +23280,7 @@ const eventRegistrationBlockDefinition = {
22912
23280
  text({ as: "h2" }, bind("content.heading"), when("content.heading")),
22913
23281
  richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
22914
23282
  eventRegistration(withApiBindings({
23283
+ readAuthority: { $bind: { from: "$root.readAuthority" } },
22915
23284
  occurrenceContext: { $bind: { from: "$root.occurrenceContext" } },
22916
23285
  subject: { $bind: { from: "$root.subject" } },
22917
23286
  portalToken: { $bind: {
@@ -23629,6 +23998,7 @@ const eventCollectionSourceSchemaShape = {
23629
23998
  events: z.array(publicEventSchema).nullable().optional(),
23630
23999
  siteId: z.string(),
23631
24000
  apiBaseUrl: z.string().optional(),
24001
+ readAuthority: browserReadAuthoritySchema.optional(),
23632
24002
  stage: previewStageSchema.optional(),
23633
24003
  listLayout: eventLayoutSchema.optional(),
23634
24004
  listColumns: columnOptionSchema.optional(),
@@ -23681,7 +24051,6 @@ const eventCollectionDisplaySchemaShape = {
23681
24051
  const eventCollectionHydrationSchema = z.object({
23682
24052
  siteId: z.string(),
23683
24053
  calendarWindow: calendarWindowPageSchema.optional(),
23684
- stage: previewStageSchema.optional(),
23685
24054
  prefetchedEvents: z.boolean(),
23686
24055
  eventSurface: eventSurfaceScopeSchema$1,
23687
24056
  filterEventPresets: z.string().nullable(),
@@ -23756,7 +24125,6 @@ function buildEventCollectionHydration(source, now = /* @__PURE__ */ new Date())
23756
24125
  return {
23757
24126
  calendarWindow: source.calendarWindow ?? void 0,
23758
24127
  siteId: source.siteId,
23759
- stage: source.stage,
23760
24128
  prefetchedEvents: source.events != null,
23761
24129
  eventSurface: selected ? "all" : normalizeEventSurfaceScope(source.eventSurface),
23762
24130
  filterEventPresets: selected ? null : normalizeEventSurfacePresetsCsv(source.filterEventPresets),
@@ -23776,6 +24144,7 @@ const eventListingSourceSchema = z.object({
23776
24144
  events: z.array(publicEventSchema).nullable().optional(),
23777
24145
  siteId: z.string(),
23778
24146
  apiBaseUrl: z.string().optional(),
24147
+ readAuthority: browserReadAuthoritySchema.optional(),
23779
24148
  stage: previewStageSchema.optional(),
23780
24149
  layout: eventLayoutSchema.optional(),
23781
24150
  columns: columnOptionSchema.optional(),
@@ -23816,7 +24185,6 @@ const eventListingDisplaySchema = z.object({
23816
24185
  });
23817
24186
  const eventListingHydrationSchema = z.object({
23818
24187
  siteId: z.string(),
23819
- stage: previewStageSchema.optional(),
23820
24188
  eventsPerPage: eventPageSizeSchema,
23821
24189
  paginationAction: eventListPaginationActionSchema,
23822
24190
  showFilters: z.boolean(),
@@ -23839,6 +24207,7 @@ const eventListingRenderSchema = z.object({
23839
24207
  z.object({
23840
24208
  siteId: z.string(),
23841
24209
  apiBaseUrl: z.string().optional(),
24210
+ readAuthority: browserReadAuthoritySchema.optional(),
23842
24211
  stage: previewStageSchema.optional()
23843
24212
  });
23844
24213
  const eventListingBlockRuntime = defineProgressiveBlockRuntime({
@@ -23873,7 +24242,6 @@ const eventListingBlockRuntime = defineProgressiveBlockRuntime({
23873
24242
  },
23874
24243
  hydration: {
23875
24244
  siteId: source.siteId,
23876
- stage: source.stage,
23877
24245
  eventsPerPage: pageSize,
23878
24246
  paginationAction: resolveEventListPaginationAction({
23879
24247
  paginationMode: source.paginationMode,
@@ -24155,6 +24523,7 @@ const eventListingBlockDefinition = {
24155
24523
  rootType: "stack",
24156
24524
  rootProps: { gap: "lg" },
24157
24525
  children: [...eventSectionHeaderLayoutNodes(), el("event-listing", withApiBindings({
24526
+ readAuthority: { $bind: { from: "$root.readAuthority" } },
24158
24527
  events: { $bind: { from: "data.events" } },
24159
24528
  stage: { $bind: {
24160
24529
  from: "$root.previewStage",
@@ -24352,6 +24721,7 @@ const eventCalendarRenderSchema = z.object({
24352
24721
  z.object({
24353
24722
  siteId: z.string(),
24354
24723
  apiBaseUrl: z.string().optional(),
24724
+ readAuthority: browserReadAuthoritySchema.optional(),
24355
24725
  stage: previewStageSchema.optional()
24356
24726
  });
24357
24727
  /**
@@ -24373,7 +24743,7 @@ function buildEventCalendarDisplay(source) {
24373
24743
  listColumns: source.listColumns ?? source.columns
24374
24744
  }),
24375
24745
  kind: "event-calendar",
24376
- displayMode: normalizeEventCalendarDisplayMode$1(source) ?? "combined",
24746
+ displayMode: resolveEventCalendarReadPlan(source).mode,
24377
24747
  className: source.className ?? null,
24378
24748
  events: (source.events ?? []).slice().sort((left, right) => new Date(left.startsAt).getTime() - new Date(right.startsAt).getTime()),
24379
24749
  boardTitle: normalizeOptionalText(source.boardTitle),
@@ -24390,13 +24760,16 @@ const eventCalendarBlockRuntime = defineProgressiveBlockRuntime({
24390
24760
  source: createZodCodec(eventCalendarSourceSchema),
24391
24761
  render: createZodCodec(eventCalendarRenderSchema)
24392
24762
  },
24393
- buildRender: (source) => ({
24394
- display: buildEventCalendarDisplay(source.calendarWindow && (source.variant ?? source.displayMode ?? "combined") !== "combined" && (source.variant ?? source.displayMode) !== "list" ? {
24395
- ...source,
24396
- events: source.calendarWindow.events
24397
- } : source),
24398
- hydration: buildEventCollectionHydration(source)
24399
- })
24763
+ buildRender: (source) => {
24764
+ const plan = resolveEventCalendarReadPlan(source);
24765
+ return {
24766
+ display: buildEventCalendarDisplay(source.calendarWindow && plan.jobs === "calendar" ? {
24767
+ ...source,
24768
+ events: source.calendarWindow.events
24769
+ } : source),
24770
+ hydration: buildEventCollectionHydration(source)
24771
+ };
24772
+ }
24400
24773
  });
24401
24774
  //#endregion
24402
24775
  //#region ../blocks/src/system/blocks/events/eventCalendarDataLoaders.ts
@@ -24546,6 +24919,7 @@ const eventCalendarLayout = [styledSection({
24546
24919
  rootType: "stack",
24547
24920
  rootProps: { gap: "lg" },
24548
24921
  children: [...eventSectionHeaderLayoutNodes({ splitClassName: "event-section-head event-section-head--split" }), el("event-calendar", withApiBindings({
24922
+ readAuthority: { $bind: { from: "$root.readAuthority" } },
24549
24923
  events: { $bind: { from: "data.events" } },
24550
24924
  calendarWindow: { $bind: { from: "data.calendarWindow" } },
24551
24925
  stage: { $bind: {
@@ -28171,6 +28545,7 @@ const shopSourceSchema = z.object({
28171
28545
  products: z.array(publicProductSchema).nullable().optional(),
28172
28546
  siteId: z.string().optional(),
28173
28547
  apiBaseUrl: z.string().optional(),
28548
+ readAuthority: browserReadAuthoritySchema.optional(),
28174
28549
  stage: previewStageSchema.optional()
28175
28550
  });
28176
28551
  const productVariantOptionDisplaySchema = z.object({
@@ -28338,6 +28713,7 @@ function resolveShowPricePerCredit(source) {
28338
28713
  z.object({
28339
28714
  siteId: z.string().optional(),
28340
28715
  apiBaseUrl: z.string().optional(),
28716
+ readAuthority: browserReadAuthoritySchema.optional(),
28341
28717
  stage: previewStageSchema.optional()
28342
28718
  });
28343
28719
  const shopBlockRuntime = defineProgressiveBlockRuntime({
@@ -28678,6 +29054,7 @@ const shopBlockDefinition = {
28678
29054
  baseClass: "",
28679
29055
  spacing: "spacious",
28680
29056
  children: sectionContainer([shop(withApiBindings({
29057
+ readAuthority: { $bind: { from: "$root.readAuthority" } },
28681
29058
  mode: "passes-memberships",
28682
29059
  showPasses: { $bind: {
28683
29060
  from: "content.showPasses",
@@ -28876,6 +29253,7 @@ const productListBlockDefinition = {
28876
29253
  baseClass: "",
28877
29254
  spacing: "spacious",
28878
29255
  children: sectionContainer([productList(withApiBindings({
29256
+ readAuthority: { $bind: { from: "$root.readAuthority" } },
28879
29257
  mode: "product-list",
28880
29258
  heading: { $bind: {
28881
29259
  from: "content.heading",
@@ -29018,6 +29396,7 @@ const productDetailBlockDefinition = {
29018
29396
  baseClass: "",
29019
29397
  spacing: "spacious",
29020
29398
  children: sectionContainer([productDetail(withApiBindings({
29399
+ readAuthority: { $bind: { from: "$root.readAuthority" } },
29021
29400
  mode: "product-detail",
29022
29401
  heading: { $bind: {
29023
29402
  from: "content.heading",
@@ -29134,6 +29513,7 @@ const cartBlockDefinition = {
29134
29513
  baseClass: "",
29135
29514
  spacing: "spacious",
29136
29515
  children: sectionContainer([cart(withApiBindings({
29516
+ readAuthority: { $bind: { from: "$root.readAuthority" } },
29137
29517
  mode: "cart",
29138
29518
  heading: { $bind: {
29139
29519
  from: "content.heading",
@@ -29217,6 +29597,7 @@ const checkoutBlockDefinition = {
29217
29597
  baseClass: "",
29218
29598
  spacing: "spacious",
29219
29599
  children: sectionContainer([checkout(withApiBindings({
29600
+ readAuthority: { $bind: { from: "$root.readAuthority" } },
29220
29601
  mode: "checkout",
29221
29602
  heading: { $bind: {
29222
29603
  from: "content.heading",