@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
@@ -944,10 +944,175 @@ export type FormSlug = string & {
944
944
  readonly [formSlugBrand]: 'FormSlug';
945
945
  };
946
946
  export declare const formSlugSchema: z.ZodPipe<z.ZodString, z.ZodTransform<FormSlug, string>>;
947
+ /**
948
+ * A form's fields as sent to the Forms API: the generic contract, or the
949
+ * booking-questions contract (which adds file uploads). Which one a form may
950
+ * use depends on its type, which the service checks — on update the type
951
+ * lives on the stored form, not the request.
952
+ */
953
+ export declare const formPayloadFieldsSchema: z.ZodUnion<readonly [z.ZodObject<{
954
+ version: z.ZodDefault<z.ZodString>;
955
+ fields: z.ZodArray<z.ZodObject<{
956
+ id: z.ZodString;
957
+ label: z.ZodString;
958
+ type: z.ZodEnum<{
959
+ number: "number";
960
+ date: "date";
961
+ time: "time";
962
+ text: "text";
963
+ email: "email";
964
+ url: "url";
965
+ textarea: "textarea";
966
+ select: "select";
967
+ checkbox: "checkbox";
968
+ radio: "radio";
969
+ tel: "tel";
970
+ consent: "consent";
971
+ }>;
972
+ required: z.ZodDefault<z.ZodBoolean>;
973
+ placeholder: z.ZodOptional<z.ZodString>;
974
+ helpText: z.ZodOptional<z.ZodString>;
975
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
976
+ value: z.ZodString;
977
+ label: z.ZodString;
978
+ }, z.core.$strict>>>;
979
+ multiple: z.ZodOptional<z.ZodBoolean>;
980
+ minLength: z.ZodOptional<z.ZodNumber>;
981
+ maxLength: z.ZodOptional<z.ZodNumber>;
982
+ pattern: z.ZodOptional<z.ZodString>;
983
+ min: z.ZodOptional<z.ZodNumber>;
984
+ max: z.ZodOptional<z.ZodNumber>;
985
+ layout: z.ZodOptional<z.ZodObject<{
986
+ width: z.ZodDefault<z.ZodEnum<{
987
+ full: "full";
988
+ half: "half";
989
+ }>>;
990
+ }, z.core.$strict>>;
991
+ }, z.core.$strict>>;
992
+ }, z.core.$strict>, z.ZodUnion<readonly [z.ZodObject<{
993
+ version: z.ZodDefault<z.ZodString>;
994
+ fields: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
995
+ id: z.ZodString;
996
+ label: z.ZodString;
997
+ required: z.ZodDefault<z.ZodBoolean>;
998
+ placeholder: z.ZodOptional<z.ZodString>;
999
+ helpText: z.ZodOptional<z.ZodString>;
1000
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
1001
+ value: z.ZodString;
1002
+ label: z.ZodString;
1003
+ }, z.core.$strict>>>;
1004
+ multiple: z.ZodOptional<z.ZodBoolean>;
1005
+ minLength: z.ZodOptional<z.ZodNumber>;
1006
+ maxLength: z.ZodOptional<z.ZodNumber>;
1007
+ pattern: z.ZodOptional<z.ZodString>;
1008
+ min: z.ZodOptional<z.ZodNumber>;
1009
+ max: z.ZodOptional<z.ZodNumber>;
1010
+ layout: z.ZodOptional<z.ZodObject<{
1011
+ width: z.ZodDefault<z.ZodEnum<{
1012
+ full: "full";
1013
+ half: "half";
1014
+ }>>;
1015
+ }, z.core.$strict>>;
1016
+ type: z.ZodEnum<{
1017
+ number: "number";
1018
+ date: "date";
1019
+ time: "time";
1020
+ text: "text";
1021
+ email: "email";
1022
+ url: "url";
1023
+ textarea: "textarea";
1024
+ select: "select";
1025
+ checkbox: "checkbox";
1026
+ radio: "radio";
1027
+ tel: "tel";
1028
+ }>;
1029
+ }, z.core.$strict>, z.ZodObject<{
1030
+ id: z.ZodString;
1031
+ label: z.ZodString;
1032
+ type: z.ZodLiteral<"document_upload">;
1033
+ required: z.ZodDefault<z.ZodBoolean>;
1034
+ placeholder: z.ZodOptional<z.ZodString>;
1035
+ helpText: z.ZodOptional<z.ZodString>;
1036
+ layout: z.ZodOptional<z.ZodObject<{
1037
+ width: z.ZodDefault<z.ZodEnum<{
1038
+ full: "full";
1039
+ half: "half";
1040
+ }>>;
1041
+ }, z.core.$strict>>;
1042
+ allowedFileTypes: z.ZodDefault<z.ZodArray<z.ZodEnum<{
1043
+ image: "image";
1044
+ pdf: "pdf";
1045
+ docx: "docx";
1046
+ }>>>;
1047
+ maxBytes: z.ZodDefault<z.ZodNumber>;
1048
+ }, z.core.$strict>], "type">>;
1049
+ }, z.core.$strict>, z.ZodObject<{
1050
+ schemaVersion: z.ZodLiteral<2>;
1051
+ sections: z.ZodArray<z.ZodObject<{
1052
+ id: z.ZodString;
1053
+ title: z.ZodString;
1054
+ description: z.ZodOptional<z.ZodString>;
1055
+ items: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1056
+ id: z.ZodString;
1057
+ label: z.ZodString;
1058
+ required: z.ZodDefault<z.ZodBoolean>;
1059
+ placeholder: z.ZodOptional<z.ZodString>;
1060
+ helpText: z.ZodOptional<z.ZodString>;
1061
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
1062
+ value: z.ZodString;
1063
+ label: z.ZodString;
1064
+ }, z.core.$strict>>>;
1065
+ multiple: z.ZodOptional<z.ZodBoolean>;
1066
+ minLength: z.ZodOptional<z.ZodNumber>;
1067
+ maxLength: z.ZodOptional<z.ZodNumber>;
1068
+ pattern: z.ZodOptional<z.ZodString>;
1069
+ min: z.ZodOptional<z.ZodNumber>;
1070
+ max: z.ZodOptional<z.ZodNumber>;
1071
+ layout: z.ZodOptional<z.ZodObject<{
1072
+ width: z.ZodDefault<z.ZodEnum<{
1073
+ full: "full";
1074
+ half: "half";
1075
+ }>>;
1076
+ }, z.core.$strict>>;
1077
+ type: z.ZodEnum<{
1078
+ number: "number";
1079
+ date: "date";
1080
+ time: "time";
1081
+ text: "text";
1082
+ email: "email";
1083
+ url: "url";
1084
+ textarea: "textarea";
1085
+ select: "select";
1086
+ checkbox: "checkbox";
1087
+ radio: "radio";
1088
+ tel: "tel";
1089
+ }>;
1090
+ }, z.core.$strict>, z.ZodObject<{
1091
+ id: z.ZodString;
1092
+ label: z.ZodString;
1093
+ type: z.ZodLiteral<"document_upload">;
1094
+ required: z.ZodDefault<z.ZodBoolean>;
1095
+ placeholder: z.ZodOptional<z.ZodString>;
1096
+ helpText: z.ZodOptional<z.ZodString>;
1097
+ layout: z.ZodOptional<z.ZodObject<{
1098
+ width: z.ZodDefault<z.ZodEnum<{
1099
+ full: "full";
1100
+ half: "half";
1101
+ }>>;
1102
+ }, z.core.$strict>>;
1103
+ allowedFileTypes: z.ZodDefault<z.ZodArray<z.ZodEnum<{
1104
+ image: "image";
1105
+ pdf: "pdf";
1106
+ docx: "docx";
1107
+ }>>>;
1108
+ maxBytes: z.ZodDefault<z.ZodNumber>;
1109
+ }, z.core.$strict>], "type">>;
1110
+ }, z.core.$strict>>;
1111
+ }, z.core.$strict>]>]>;
947
1112
  export declare const createFormPayloadSchema: z.ZodObject<{
948
1113
  name: z.ZodString;
949
1114
  slug: z.ZodPipe<z.ZodString, z.ZodTransform<FormSlug, string>>;
950
- schema: z.ZodObject<{
1115
+ schema: z.ZodUnion<readonly [z.ZodObject<{
951
1116
  version: z.ZodDefault<z.ZodString>;
952
1117
  fields: z.ZodArray<z.ZodObject<{
953
1118
  id: z.ZodString;
@@ -986,7 +1151,126 @@ export declare const createFormPayloadSchema: z.ZodObject<{
986
1151
  }>>;
987
1152
  }, z.core.$strict>>;
988
1153
  }, z.core.$strict>>;
989
- }, z.core.$strict>;
1154
+ }, z.core.$strict>, z.ZodUnion<readonly [z.ZodObject<{
1155
+ version: z.ZodDefault<z.ZodString>;
1156
+ fields: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1157
+ id: z.ZodString;
1158
+ label: z.ZodString;
1159
+ required: z.ZodDefault<z.ZodBoolean>;
1160
+ placeholder: z.ZodOptional<z.ZodString>;
1161
+ helpText: z.ZodOptional<z.ZodString>;
1162
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
1163
+ value: z.ZodString;
1164
+ label: z.ZodString;
1165
+ }, z.core.$strict>>>;
1166
+ multiple: z.ZodOptional<z.ZodBoolean>;
1167
+ minLength: z.ZodOptional<z.ZodNumber>;
1168
+ maxLength: z.ZodOptional<z.ZodNumber>;
1169
+ pattern: z.ZodOptional<z.ZodString>;
1170
+ min: z.ZodOptional<z.ZodNumber>;
1171
+ max: z.ZodOptional<z.ZodNumber>;
1172
+ layout: z.ZodOptional<z.ZodObject<{
1173
+ width: z.ZodDefault<z.ZodEnum<{
1174
+ full: "full";
1175
+ half: "half";
1176
+ }>>;
1177
+ }, z.core.$strict>>;
1178
+ type: z.ZodEnum<{
1179
+ number: "number";
1180
+ date: "date";
1181
+ time: "time";
1182
+ text: "text";
1183
+ email: "email";
1184
+ url: "url";
1185
+ textarea: "textarea";
1186
+ select: "select";
1187
+ checkbox: "checkbox";
1188
+ radio: "radio";
1189
+ tel: "tel";
1190
+ }>;
1191
+ }, z.core.$strict>, z.ZodObject<{
1192
+ id: z.ZodString;
1193
+ label: z.ZodString;
1194
+ type: z.ZodLiteral<"document_upload">;
1195
+ required: z.ZodDefault<z.ZodBoolean>;
1196
+ placeholder: z.ZodOptional<z.ZodString>;
1197
+ helpText: z.ZodOptional<z.ZodString>;
1198
+ layout: z.ZodOptional<z.ZodObject<{
1199
+ width: z.ZodDefault<z.ZodEnum<{
1200
+ full: "full";
1201
+ half: "half";
1202
+ }>>;
1203
+ }, z.core.$strict>>;
1204
+ allowedFileTypes: z.ZodDefault<z.ZodArray<z.ZodEnum<{
1205
+ image: "image";
1206
+ pdf: "pdf";
1207
+ docx: "docx";
1208
+ }>>>;
1209
+ maxBytes: z.ZodDefault<z.ZodNumber>;
1210
+ }, z.core.$strict>], "type">>;
1211
+ }, z.core.$strict>, z.ZodObject<{
1212
+ schemaVersion: z.ZodLiteral<2>;
1213
+ sections: z.ZodArray<z.ZodObject<{
1214
+ id: z.ZodString;
1215
+ title: z.ZodString;
1216
+ description: z.ZodOptional<z.ZodString>;
1217
+ items: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1218
+ id: z.ZodString;
1219
+ label: z.ZodString;
1220
+ required: z.ZodDefault<z.ZodBoolean>;
1221
+ placeholder: z.ZodOptional<z.ZodString>;
1222
+ helpText: z.ZodOptional<z.ZodString>;
1223
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
1224
+ value: z.ZodString;
1225
+ label: z.ZodString;
1226
+ }, z.core.$strict>>>;
1227
+ multiple: z.ZodOptional<z.ZodBoolean>;
1228
+ minLength: z.ZodOptional<z.ZodNumber>;
1229
+ maxLength: z.ZodOptional<z.ZodNumber>;
1230
+ pattern: z.ZodOptional<z.ZodString>;
1231
+ min: z.ZodOptional<z.ZodNumber>;
1232
+ max: z.ZodOptional<z.ZodNumber>;
1233
+ layout: z.ZodOptional<z.ZodObject<{
1234
+ width: z.ZodDefault<z.ZodEnum<{
1235
+ full: "full";
1236
+ half: "half";
1237
+ }>>;
1238
+ }, z.core.$strict>>;
1239
+ type: z.ZodEnum<{
1240
+ number: "number";
1241
+ date: "date";
1242
+ time: "time";
1243
+ text: "text";
1244
+ email: "email";
1245
+ url: "url";
1246
+ textarea: "textarea";
1247
+ select: "select";
1248
+ checkbox: "checkbox";
1249
+ radio: "radio";
1250
+ tel: "tel";
1251
+ }>;
1252
+ }, z.core.$strict>, z.ZodObject<{
1253
+ id: z.ZodString;
1254
+ label: z.ZodString;
1255
+ type: z.ZodLiteral<"document_upload">;
1256
+ required: z.ZodDefault<z.ZodBoolean>;
1257
+ placeholder: z.ZodOptional<z.ZodString>;
1258
+ helpText: z.ZodOptional<z.ZodString>;
1259
+ layout: z.ZodOptional<z.ZodObject<{
1260
+ width: z.ZodDefault<z.ZodEnum<{
1261
+ full: "full";
1262
+ half: "half";
1263
+ }>>;
1264
+ }, z.core.$strict>>;
1265
+ allowedFileTypes: z.ZodDefault<z.ZodArray<z.ZodEnum<{
1266
+ image: "image";
1267
+ pdf: "pdf";
1268
+ docx: "docx";
1269
+ }>>>;
1270
+ maxBytes: z.ZodDefault<z.ZodNumber>;
1271
+ }, z.core.$strict>], "type">>;
1272
+ }, z.core.$strict>>;
1273
+ }, z.core.$strict>]>]>;
990
1274
  settings: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
991
1275
  type: z.ZodLiteral<"contact">;
992
1276
  successMessage: z.ZodOptional<z.ZodString>;
@@ -1,3 +1,4 @@
1
+ import { type ReactNode } from 'react';
1
2
  import type { SyntheticListenerMap } from '@dnd-kit/core/dist/hooks/utilities';
2
3
  import type { FieldWidgetComponent } from '../../../block-form/src/index';
3
4
  import { type SiteIconStyleGuideVersionId, type SystemBlockDefinition, type Theme } from '../../../blocks/src/index';
@@ -8,11 +9,15 @@ import { type GeneratedIconSetGenerateInput, type GeneratedIconSetGenerateResult
8
9
  import { type GeneratedIconApplyState } from './generatedIconApplyCoordination';
9
10
  /** Drag listener props from dnd-kit */
10
11
  type DragListeners = SyntheticListenerMap | undefined;
11
- type BlockCardHeaderStore = UiStore<GeneratedIconApplyState & Pick<UiSlice, 'focusRequest' | 'clearFocus'> & {
12
+ type BlockCardFrameStore = UiStore<GeneratedIconApplyState & Pick<UiSlice, 'focusRequest' | 'clearFocus'> & {
12
13
  drafts: Pick<DraftsSlice, 'getBlockSnapshot' | 'getCurrentValues' | 'initNewBlock' | 'updateBlockBaseline' | 'clearError' | 'setAtPath' | 'getAtPath'>;
13
14
  arrayKeys: ArrayKeysManager;
14
15
  }>;
15
- export declare function BlockCardHeader({ interactionReady, block, manifest, isFirst, isLast, isMoving, onMove, onDuplicate, onDelete, dragListeners, canReorder, collapsed, onToggleCollapsed, contentId, uiStore, widgetOverrides, theme, hideThemeV2RawStyleFields, reorderControlMode, actionPresentation, currentStyleGuideVersionId, iconStyleGuideSummary, iconStyleGuideEditHref, onGenerateIconSet, }: {
16
+ /**
17
+ * One block in the block editor: the shared editor item card, with the
18
+ * block's own actions, dialogs and body.
19
+ */
20
+ export declare function BlockCardFrame({ interactionReady, block, manifest, isFirst, isLast, isMoving, onMove, onDuplicate, onDelete, dragListeners, canReorder, collapsed, onToggleCollapsed, contentId, uiStore, widgetOverrides, theme, hideThemeV2RawStyleFields, reorderControlMode, actionPresentation, currentStyleGuideVersionId, iconStyleGuideSummary, iconStyleGuideEditHref, onGenerateIconSet, highlighted, children, }: {
16
21
  interactionReady: boolean;
17
22
  block: BlockItem;
18
23
  manifest: SystemBlockDefinition['manifest'];
@@ -27,7 +32,10 @@ export declare function BlockCardHeader({ interactionReady, block, manifest, isF
27
32
  collapsed: boolean;
28
33
  onToggleCollapsed: () => void;
29
34
  contentId?: string;
30
- uiStore: BlockCardHeaderStore;
35
+ highlighted?: boolean;
36
+ /** The block's body, shown when expanded. */
37
+ children?: ReactNode;
38
+ uiStore: BlockCardFrameStore;
31
39
  /** Optional widget overrides for block customization form fields */
32
40
  widgetOverrides?: Record<string, FieldWidgetComponent>;
33
41
  theme?: Theme | null;
@@ -1,6 +1,12 @@
1
1
  import type { EditorBlockId, EditorBlockBaselineInput, EditorDraftBlockBaselineUpdateMetaInput, EditorDraftBlockInitMetaInput, EditorStructuralDraftSnapshot } from '../../../core/src/index';
2
2
  export type BlockItem = {
3
3
  id?: string | null;
4
+ /**
5
+ * The content version the block was loaded with. Runtime blocks that
6
+ * submit to the API (newsletter signup) cite it so the server can verify
7
+ * the placement; dropping it turns the form off in preview.
8
+ */
9
+ contentVersionId?: string | null;
4
10
  kind: string;
5
11
  content?: Record<string, unknown> | null;
6
12
  orderIndex?: number | null;
@@ -1,9 +1,10 @@
1
1
  import type { GetEndpoint, ApiClient } from '../../../../api/src/index';
2
2
  import type { SiteOptionSource } from '../../../../blocks/src/index';
3
- import type { SiteOptionWidgetAdapter, SiteOptionWidgetAdapters, SiteOptionWidgetItem } from './types';
3
+ import type { SiteOptionSingleSelectionConfig, SiteOptionWidgetAdapter, SiteOptionWidgetAdapters, SiteOptionWidgetItem } from './types';
4
4
  type ListEventCategoriesResponse = NonNullable<GetEndpoint<'listEventCategories'>['response']>;
5
5
  type ListVenuesResponse = NonNullable<GetEndpoint<'listVenues'>['response']>;
6
6
  type ListAppointmentResourcesResponse = NonNullable<GetEndpoint<'listAppointmentResources'>['response']>;
7
+ type ListAppointmentServiceCategoriesResponse = NonNullable<GetEndpoint<'listAppointmentServiceCategories'>['response']>;
7
8
  export type SiteOptionLoadItemsArgs = Readonly<{
8
9
  siteId: string;
9
10
  source: SiteOptionSource;
@@ -36,12 +37,19 @@ export declare const siteOptionWidgetLabels: {
36
37
  readonly empty: "No staff yet";
37
38
  readonly emptySelection: "Choose a staff member to restrict this block.";
38
39
  };
40
+ readonly appointmentServiceCategories: {
41
+ readonly loading: "Loading categories...";
42
+ readonly select: "All categories";
43
+ readonly empty: "No categories yet";
44
+ readonly emptySelection: "All categories";
45
+ };
39
46
  };
40
47
  export declare const siteOptionLoadFailureMessages: {
41
48
  readonly eventSeries: "We couldn't load your events. Please try again.";
42
49
  readonly eventCategories: "Failed to load event categories";
43
50
  readonly venues: "Failed to load venues";
44
51
  readonly staffMembers: "Failed to load staff members";
52
+ readonly appointmentServiceCategories: "Failed to load service categories";
45
53
  };
46
54
  export declare function mapEventCategoriesToSiteOptionItems(payload: ListEventCategoriesResponse): SiteOptionWidgetItem[];
47
55
  export declare function mapEventsToSiteOptionItems(events: readonly Readonly<{
@@ -65,6 +73,13 @@ export declare function mapEventsToSiteOptionItems(events: readonly Readonly<{
65
73
  }>[]): SiteOptionWidgetItem[];
66
74
  export declare function mapVenuesToSiteOptionItems(payload: ListVenuesResponse): SiteOptionWidgetItem[];
67
75
  export declare function mapStaffMembersToSiteOptionItems(payload: ListAppointmentResourcesResponse): SiteOptionWidgetItem[];
76
+ export declare function mapAppointmentServiceCategoriesToSiteOptionItems(payload: ListAppointmentServiceCategoriesResponse): SiteOptionWidgetItem[];
77
+ /**
78
+ * Sources whose single selection has an explicit default option and can go
79
+ * stale (issue 1403). Only appointment-service categories opt in: the event
80
+ * calendar pickers keep their existing behaviour.
81
+ */
82
+ export declare const siteOptionSingleSelection: Partial<Readonly<Record<SiteOptionSource, SiteOptionSingleSelectionConfig>>>;
68
83
  export declare function loadSiteOptionItemsFromApi({ apiClient, siteId, source }: SiteOptionLoadItemsArgs & Readonly<{
69
84
  apiClient: ApiClient;
70
85
  }>): Promise<SiteOptionWidgetItem[]>;
@@ -11,10 +11,23 @@ export type SiteOptionWidgetSelectionLabelArgs = {
11
11
  items: readonly SiteOptionWidgetItem[];
12
12
  };
13
13
  export type SiteOptionWidgetAdapterLabels = PickerLabels;
14
+ /**
15
+ * Opt-in behaviour for a single-select source. The empty value is offered as
16
+ * a named default option, and a stored value missing from the loaded options
17
+ * (it was deleted) shows `missingSelection.label` with its warning.
18
+ */
19
+ export type SiteOptionSingleSelectionConfig = Readonly<{
20
+ defaultOptionLabel: string;
21
+ missingSelection: Readonly<{
22
+ label: string;
23
+ warning: string;
24
+ }>;
25
+ }>;
14
26
  export type SiteOptionWidgetAdapter = {
15
27
  loadItems: (args: SiteOptionWidgetAdapterArgs) => Promise<SiteOptionWidgetItem[]>;
16
28
  renderManageLink?: (args: SiteOptionWidgetAdapterArgs) => ReactNode;
17
29
  formatSelectionLabel?: (args: SiteOptionWidgetSelectionLabelArgs) => string;
18
30
  labels?: SiteOptionWidgetAdapterLabels;
31
+ singleSelection?: SiteOptionSingleSelectionConfig;
19
32
  };
20
33
  export type SiteOptionWidgetAdapters = Record<SiteOptionSource, SiteOptionWidgetAdapter>;
@@ -2,4 +2,33 @@ import { type SiteOptionSource } from '../../../../blocks/src/index';
2
2
  import type { SelectFieldConfig } from '../../../../block-form/src/index';
3
3
  export type SiteOptionValue = string | string[] | null | undefined;
4
4
  export declare function normalizeSiteOptionMultiValue(value: SiteOptionValue): string[];
5
+ /**
6
+ * A single selection read against the loaded options.
7
+ *
8
+ * - `default`: nothing stored, so the source's default option applies.
9
+ * - `selected`: the stored value is one of the options.
10
+ * - `unresolved`: the options haven't loaded (or failed), so a stored value
11
+ * can't be judged yet. It must not be reported as deleted.
12
+ * - `missing`: the options loaded and the stored value isn't among them, so
13
+ * whatever it pointed at has been deleted.
14
+ */
15
+ export type SiteOptionSingleSelectionState = Readonly<{
16
+ kind: 'default';
17
+ }> | Readonly<{
18
+ kind: 'selected';
19
+ value: string;
20
+ }> | Readonly<{
21
+ kind: 'unresolved';
22
+ value: string;
23
+ }> | Readonly<{
24
+ kind: 'missing';
25
+ value: string;
26
+ }>;
27
+ export declare function resolveSiteOptionSingleSelection(input: Readonly<{
28
+ value: SiteOptionValue;
29
+ items: readonly Readonly<{
30
+ value: string;
31
+ }>[];
32
+ loaded: boolean;
33
+ }>): SiteOptionSingleSelectionState;
5
34
  export declare function getSiteOptionSource(config: SelectFieldConfig): SiteOptionSource | null;
@@ -0,0 +1,3 @@
1
+ import type { AppLogger } from './api';
2
+ export declare const logger: AppLogger;
3
+ export type { AppLogger, LogFields } from './api';
@@ -1,10 +1,15 @@
1
1
  import React from 'react';
2
- import { type DesignBlockId } from '../../../../theme-core/src/site-styles/index';
2
+ import { type BoundaryOutcome, type DesignBlockId } from '../../../../theme-core/src/site-styles/index';
3
3
  type BoundaryControlProps = Readonly<{
4
4
  previousBlockId: DesignBlockId;
5
5
  nextBlockId: DesignBlockId;
6
6
  previousBlockKind: string;
7
7
  nextBlockKind: string;
8
+ /**
9
+ * What the renderer composed for this join, or null when the pair has no
10
+ * break. Informational only: it never changes the controls or the choice.
11
+ */
12
+ outcome: BoundaryOutcome | null;
8
13
  }>;
9
- export declare function BoundaryControl({ previousBlockId, nextBlockId, previousBlockKind, nextBlockKind, }: BoundaryControlProps): React.JSX.Element | null;
14
+ export declare function BoundaryControl({ previousBlockId, nextBlockId, previousBlockKind, nextBlockKind, outcome, }: BoundaryControlProps): React.JSX.Element | null;
10
15
  export {};
@@ -4,4 +4,4 @@ import type { DraftSnapshot, EditorDraftInspectorStore, EnrichedBlock } from './
4
4
  import { type PreviewProjection } from '../previewProjection';
5
5
  import { type LinkedEntryRenderOverlay } from '../linkedEntryRenderOverlay';
6
6
  export declare function getDraftSnapshots(uiStore: EditorDraftInspectorStore): Map<EditorBlockId, DraftSnapshot>;
7
- export declare function mergeBlockWithDraft(block: BlockItem, draftMap: Map<EditorBlockId, DraftSnapshot>, index: number, projections?: readonly PreviewProjection[], linkedEntryOverlays?: LinkedEntryRenderOverlay, nextBlock?: BlockItem | null): EnrichedBlock;
7
+ export declare function mergeBlockWithDraft(block: BlockItem, draftMap: Map<EditorBlockId, DraftSnapshot>, index: number, projections?: readonly PreviewProjection[], linkedEntryOverlays?: LinkedEntryRenderOverlay): EnrichedBlock;
@@ -21,6 +21,7 @@ export type DraftSnapshot = {
21
21
  };
22
22
  export type EnrichedBlock = {
23
23
  id: string | null;
24
+ contentVersionId: string | null;
24
25
  kind: string;
25
26
  purpose: string;
26
27
  orderIndex: number;
@@ -3,7 +3,5 @@ import type { BlockItem } from '../../../../../editor-blocks/src/index';
3
3
  import type { CanonicalBlockContent, PreviewProjection, PreviewRenderContent } from './types';
4
4
  export declare function applyPreviewStructureProjections(blockItems: readonly BlockItem[], projections: readonly PreviewProjection[]): BlockItem[];
5
5
  export declare function applyPreviewContentFieldProjections(blockId: EditorBlockId, content: CanonicalBlockContent | null, projections: readonly PreviewProjection[]): CanonicalBlockContent | PreviewRenderContent | null;
6
- export declare function applyPreviewRuntimeContentProjections(block: BlockItem, content: CanonicalBlockContent | PreviewRenderContent | null, projections: readonly PreviewProjection[], adjacency?: Readonly<{
7
- nextContent: Record<string, unknown> | null | undefined;
8
- }>): CanonicalBlockContent | PreviewRenderContent | null;
6
+ export declare function applyPreviewRuntimeContentProjections(block: BlockItem, content: CanonicalBlockContent | PreviewRenderContent | null, projections: readonly PreviewProjection[]): CanonicalBlockContent | PreviewRenderContent | null;
9
7
  export declare function blockHasPreviewContentFieldProjection(blockId: EditorBlockId, projections: readonly PreviewProjection[]): boolean;
@@ -1,6 +1,6 @@
1
1
  import type { BlockItem } from '../../../../../editor-blocks/src/index';
2
- import { type DesignRuntimeRules, type PageDesignEditorReadModel, type RuntimeContentAdjacency, type SurfaceResolutionContext } from '../../../../../theme-core/src/site-styles/previewCompiler';
2
+ import { type DesignRuntimeRules, type PageDesignEditorReadModel, type SurfaceResolutionContext } from '../../../../../theme-core/src/site-styles/previewCompiler';
3
3
  import type { CanonicalBlockContent, PreviewRenderContent, RuntimeContentDecorationProjection } from './types';
4
4
  import type { ComponentRuntimeRules } from '../../../../../theme-core/src/site-styles/previewCompiler';
5
5
  export declare function runtimeContentDecorationProjectionFromEditorModel(editorModel: PageDesignEditorReadModel, surfaceResolutionContext: SurfaceResolutionContext, designRules?: DesignRuntimeRules, componentRules?: ComponentRuntimeRules): RuntimeContentDecorationProjection;
6
- export declare function applyRuntimeContentDecorationProjection(block: BlockItem, content: CanonicalBlockContent | PreviewRenderContent | null, projection: RuntimeContentDecorationProjection, adjacency?: Pick<RuntimeContentAdjacency, 'nextContent'>): PreviewRenderContent;
6
+ export declare function applyRuntimeContentDecorationProjection(block: BlockItem, content: CanonicalBlockContent | PreviewRenderContent | null, projection: RuntimeContentDecorationProjection): PreviewRenderContent;
@@ -1,6 +1,6 @@
1
1
  import type { EditorBlockId } from '../../../../../core/src/index';
2
2
  import type { BlockItem } from '../../../../../editor-blocks/src/index';
3
- import type { CompiledBlockRuntimeFields, CompiledBoundaryRuntime, DesignBlockId } from '../../../../../theme-core/src/site-styles/previewCompiler';
3
+ import type { CompiledBlockRuntimeFields, DesignBlockId, PageRuntimeJoin } from '../../../../../theme-core/src/site-styles/previewCompiler';
4
4
  export type CanonicalBlockContent = Record<string, unknown> & {
5
5
  readonly __contentAuthority?: 'canonical-block-content';
6
6
  };
@@ -55,7 +55,7 @@ export type PreviewProjection = Readonly<{
55
55
  kind: 'runtime-content-decoration';
56
56
  source: 'page-design';
57
57
  fieldsByBlockId: ReadonlyMap<DesignBlockId, CompiledBlockRuntimeFields>;
58
- boundaries: readonly CompiledBoundaryRuntime<DesignBlockId>[];
58
+ joins: readonly PageRuntimeJoin<DesignBlockId>[];
59
59
  }>;
60
60
  export type StructureProjection = Extract<PreviewProjection, {
61
61
  kind: 'structure-overlay';
@@ -3,6 +3,7 @@ import type { ApiClient } from '../../../../api/src/request';
3
3
  import { type ContentTypeSchema } from '../../../../content-model/src/index';
4
4
  export type PreviewBlock = {
5
5
  id: string | null;
6
+ contentVersionId?: string | null;
6
7
  kind: string;
7
8
  purpose?: string | null;
8
9
  orderIndex?: number | null;
@@ -6,6 +6,7 @@ type PublicEventReadDeps = Readonly<{
6
6
  resilientFetchData: <T>(policyEndpoint: PublicReadEndpoint, cacheKey: string, fetcher: (signal: AbortSignal) => Promise<ApiResult<T>>, options: Readonly<{
7
7
  signal?: AbortSignal;
8
8
  force?: boolean;
9
+ preview?: boolean;
9
10
  }>) => Promise<T>;
10
11
  }>;
11
12
  type PublicEventReadOperations = Pick<RiverbankClient, 'resolveEventOccurrence' | 'resolveEventRun' | 'listPublicEventCalendarWindow'>;
@@ -7,6 +7,14 @@ export type PublishedRuntimeCacheKey = string & {
7
7
  export type PublishedRuntimeCachePayloadSchemaVersion = number & {
8
8
  readonly [publishedRuntimeCachePayloadSchemaVersionBrand]: 'PublishedRuntimeCachePayloadSchemaVersion';
9
9
  };
10
+ /**
11
+ * Bump when a cached payload's shape changes incompatibly, so readers skip
12
+ * entries written in the old shape until publish or a live success rewrites
13
+ * them.
14
+ *
15
+ * - 2: pages carry intent-only `runtimeJoins` in place of compiled
16
+ * `runtimeBoundaries` (issue 1422).
17
+ */
10
18
  export declare const DEFAULT_PUBLISHED_RUNTIME_CACHE_PAYLOAD_SCHEMA_VERSION: PublishedRuntimeCachePayloadSchemaVersion;
11
19
  export type GetSiteRuntimeCacheParams = Readonly<Pick<GetSiteParams, 'id' | 'slug' | 'domain' | 'currentPath' | 'force'>>;
12
20
  export type GetContentByPathRuntimeCacheParams = Readonly<Pick<GetPageParams, 'siteId' | 'path' | 'preview'>>;
@@ -2,7 +2,7 @@ import type { CalendarWindowRequest, CalendarWindowPage } from '../../../blocks/
2
2
  import type { CheckRedirectResponse, EntriesResponse, EntryResponse, PageResponse, PublicBookingServicesResponse, PublicWeeklySlotAvailabilityResponse, PublicFormResponse, PublicFormsResponse, PublicProductsResponse, PublicTeamMembersResponse, PublicMembershipsResponse, PublicPassesResponse, PublicEventDetailsResponse, PublicEventsResponse, ResolveEventOccurrenceResponse, ResolveEventRunResponse, RouteDecisionResponse, RouteOutcomeResponse, RoutableContentResponse, SiteResponse, SitemapRoutesResponse, PublicProductCategorySelector } from '../public-api/contracts';
3
3
  import type { PublishedRuntimeCacheAdapter, PublishedRuntimeCacheAdapterErrorKind } from './runtimeCachePolicy';
4
4
  import type { EventPageSurfaceSubjectRefWire } from '../../../core/src/index';
5
- export type { CheckRedirectResponse, EntriesResponse, EntryResponse, PageResponse, PublicBookingServicesResponse, PublicWeeklySlotAvailabilityResponse, PublicEventsResponse, PublicFormResponse, PublicFormsResponse, PublicProductsResponse, PublicTeamMembersResponse, PublicMembershipsResponse, PublicPassesResponse, PublicEventDetailsResponse, ResolveEventOccurrenceResponse, ResolveEventRunResponse, RouteDecisionResponse, RouteOutcomeResponse, RoutableContentResponse, SiteResponse, SitemapRoutesResponse, } from '../public-api/contracts';
5
+ export type { CheckRedirectResponse, EntriesResponse, EntryResponse, PageResponse, PublicBookingServiceCatalogueItem, PublicBookingServicesResponse, PublicServiceCategorySummary, PublicWeeklySlotAvailabilityResponse, PublicEventsResponse, PublicFormResponse, PublicFormsResponse, PublicProductsResponse, PublicTeamMembersResponse, PublicMembershipsResponse, PublicPassesResponse, PublicEventDetailsResponse, ResolveEventOccurrenceResponse, ResolveEventRunResponse, RouteDecisionResponse, RouteOutcomeResponse, RoutableContentResponse, SiteResponse, SitemapRoutesResponse, } from '../public-api/contracts';
6
6
  /**
7
7
  * Pagination metadata returned when `includeMeta: true`
8
8
  */
@@ -574,12 +574,15 @@ export interface RiverbankClient {
574
574
  siteId: string;
575
575
  subject: EventPageSurfaceSubjectRefWire;
576
576
  segment: string;
577
+ /** Include draft subroutes; the API still validates preview credentials. */
578
+ preview?: boolean;
577
579
  } & SdkMethodOptions): Promise<ResolveEventOccurrenceResponse>;
578
580
  /** Resolve one run slug within a canonical parent Event. */
579
581
  resolveEventRun(params: {
580
582
  siteId: string;
581
583
  subject: EventPageSurfaceSubjectRefWire;
582
584
  segment: string;
585
+ preview?: boolean;
583
586
  } & SdkMethodOptions): Promise<ResolveEventRunResponse>;
584
587
  /**
585
588
  * Check if a path has a configured redirect rule
@@ -1,6 +1,6 @@
1
1
  export type { TipTapNode, TipTapMark, RichTextDoc, InlineText, InlineTextAccentTone, InlineTextHighlightTone, InlineTextMark, InlineTextRun, Media, LinkValue, InternalRouteOnlyLinkValue, InternalResolvedLinkValue, InternalLinkValue, ExternalLinkValue, CustomLinkValue, PageLinkValue, EntryLinkValue, RichTextPrimitiveProps, RichTextVariant, } from './content';
2
2
  export type { AppointmentBookingContent, BlogListingContent, BlogPostContent, BodyTextAlignment, BodyTextContent, ButtonVariant, CalendarTabViews, CartContent, CardRole, CardStylesContent, CheckoutContent, CollectionContent, ColumnsContent, ColumnOption, ContainerStylesContent, ContentFrameIntent, CtaFullContent, DisplayMode, EmbedContent, EventCalendarContent, EventDetailsContent, EventLayout, EventListingContent, EventRegistrationContent, EventSpotlightContent, FaqContent, FaqItem, FeatureCardLegacySurfaceRole, FeatureCardSurfaceRole, FilterAutoShow, FormBlockContent, GiftingContent, HeroContent, HeroCta, HeroCtaInput, HeroMedia, ImageColSize, ImageGalleryContent, IntroContent, LocationMapContent, LayoutAlign, LayoutWidth, MediaTextAlignment, MediaTextAspectRatio, MediaTextContent, MediaTextImagePosition, NewsletterSignupContent, OfferingsPreviewContent, ProductDetailContent, ProductListContent, RecurringScheduleContent, SectionStylesContent, SemanticIconId, SemanticSpacing, ShopContent, SingleButtonContent, SiteFooterContent, SiteHeaderContent, StackContentAlignment, StackImagePosition, SystemBlockContentByFullKind, SystemBlockContentByKind, SystemBlockContentFor, SystemBlockShortKind, TeamMembersContent, TestimonialEntryContent, TestimonialsBlockContent, ThumbnailPadding, ThumbnailShape, VideoGridContent, WeekStart, BlockIconValue, FeatureCardIconTreatment, } from './system-block-content';
3
- export type { PageOutline, PageRuntimeBoundary, BlockOutline, RouteMap, RouteMapEntry, OccurrenceContextData, EntrySubrouteContextData, } from './page';
3
+ export type { PageOutline, PageRuntimeJoin, BlockOutline, RouteMap, RouteMapEntry, OccurrenceContextData, EntrySubrouteContextData, } from './page';
4
4
  export type { Theme, ThemeTokens } from './theme';
5
5
  export type { CustomCssDeclarationsInput, CustomCssRuleInput, CustomCssNestedRuleInput, CustomCssAtRuleInput, KeyframesAtRuleInput, FontFaceAtRuleInput, MediaAtRuleInput, SupportsAtRuleInput, RawAtRuleInput, } from './custom-css';
6
6
  export type { BindingSource, BindingTransformName, BindingDescriptor, BindingInput, BindingMap, BindingContext, } from './bindings';
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Keep these types structurally compatible with the API responses.
5
5
  */
6
- import type { CompiledBoundaryRuntime } from '../../../theme-core/src/site-styles/index';
6
+ import type { PageRuntimeJoin as ThemeCorePageRuntimeJoin } from '../../../theme-core/src/site-styles/index';
7
7
  export type BlockOutline = {
8
8
  id: string | null;
9
9
  kind: string;
@@ -19,7 +19,12 @@ export type PageOutline = {
19
19
  purpose: string;
20
20
  blocks: BlockOutline[];
21
21
  };
22
- export type PageRuntimeBoundary = CompiledBoundaryRuntime<string>;
22
+ /**
23
+ * A section break between two adjacent blocks, sent as intent only. The
24
+ * renderer composes placement, paint and reserves from the blocks' final
25
+ * content; the boundary id derives from the two block ids.
26
+ */
27
+ export type PageRuntimeJoin = ThemeCorePageRuntimeJoin<string>;
23
28
  export type RouteMapEntry = string | {
24
29
  path?: string | null;
25
30
  href?: string | null;