@riverbankcms/sdk 0.143.0 → 0.145.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/dist/{PreviewEditorSidebar-DROGfMKi.mjs → PreviewEditorSidebar-O-V6Pl5a.mjs} +20 -26
  2. package/dist/{PreviewEditorUI-BaRjhFu-.mjs → PreviewEditorUI-1UlX_9cw.mjs} +3 -3
  3. package/dist/{PreviewQueryProvider-BCYICImX.mjs → PreviewQueryProvider-BxGwdOCV.mjs} +1 -1
  4. package/dist/{SdkPreviewModeRuntime-OIABYLES.mjs → SdkPreviewModeRuntime-DYbA_4iv.mjs} +431 -351
  5. package/dist/{SiteChromeCustomizeContext-ohjTvZbc.mjs → SiteChromeCustomizeContext-CNTKQ9nx.mjs} +3989 -2769
  6. package/dist/_dts/ai/src/contracts/proposals.d.ts +4719 -66
  7. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +429 -6
  8. package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +49 -0
  9. package/dist/_dts/api/src/appointmentServiceCategoryEndpoints.d.ts +75 -0
  10. package/dist/_dts/api/src/appointmentServiceContracts.d.ts +80 -0
  11. package/dist/_dts/api/src/appointmentSetup.d.ts +8 -1
  12. package/dist/_dts/api/src/billing.d.ts +1 -1
  13. package/dist/_dts/api/src/billingEndpointTypes.d.ts +8 -2
  14. package/dist/_dts/api/src/bookingConfig.d.ts +3 -1
  15. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +2 -12
  16. package/dist/_dts/api/src/communications.d.ts +14 -22
  17. package/dist/_dts/api/src/contentRuntime.d.ts +2 -0
  18. package/dist/_dts/api/src/endpoints.d.ts +105 -58
  19. package/dist/_dts/api/src/index.d.ts +1 -1
  20. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  21. package/dist/_dts/api/src/launchReadiness.d.ts +2 -0
  22. package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +4 -4
  23. package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +0 -23
  24. package/dist/_dts/api/src/onboarding/confirmationResend.d.ts +3 -0
  25. package/dist/_dts/api/src/publicBookingService.d.ts +35 -1
  26. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +1 -0
  27. package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +13 -0
  28. package/dist/_dts/api/src/publicNewsletterEndpointDefinitions.d.ts +58 -0
  29. package/dist/_dts/api/src/schemas/admin-observability-logs.d.ts +3 -3
  30. package/dist/_dts/api/src/sdkContracts.d.ts +1 -1
  31. package/dist/_dts/api/src/sdkSettingsContracts.d.ts +8 -0
  32. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -6
  33. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +2 -8
  34. package/dist/_dts/api/src/siteSettings.d.ts +17 -7
  35. package/dist/_dts/api/src/types.d.ts +2 -1
  36. package/dist/_dts/billing/src/membership/index.d.ts +3 -0
  37. package/dist/_dts/block-form/src/backend/types.d.ts +14 -0
  38. package/dist/_dts/block-form/src/client/index.d.ts +1 -0
  39. package/dist/_dts/block-form/src/context/RepeaterHostActionsContext.d.ts +30 -0
  40. package/dist/_dts/block-form/src/context/index.d.ts +1 -0
  41. package/dist/_dts/block-form/src/index.d.ts +1 -0
  42. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterList.d.ts +4 -1
  43. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRow.d.ts +5 -2
  44. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowActions.d.ts +11 -1
  45. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/index.d.ts +1 -0
  46. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useEmptyStateFocusAfterRemoval.d.ts +8 -0
  47. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildSummary.d.ts +15 -1
  48. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterRowActionsDomain.d.ts +5 -2
  49. package/dist/_dts/blocks/src/PageRenderer.d.ts +4 -4
  50. package/dist/_dts/blocks/src/bindings/index.d.ts +2 -2
  51. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +58 -10
  52. package/dist/_dts/blocks/src/index.d.ts +1 -1
  53. package/dist/_dts/blocks/src/pageRenderJoins.d.ts +68 -0
  54. package/dist/_dts/blocks/src/pageRenderPlan.d.ts +8 -27
  55. package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +7 -4
  56. package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +40 -23
  57. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +3 -0
  58. package/dist/_dts/blocks/src/server.d.ts +1 -1
  59. package/dist/_dts/blocks/src/system/blocks/appointment-services.d.ts +2 -0
  60. package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +2 -2
  61. package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +1 -1
  62. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
  63. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -47
  64. package/dist/_dts/blocks/src/system/constants/events.d.ts +10 -0
  65. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +29 -3
  66. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +5 -0
  67. package/dist/_dts/blocks/src/system/runtime/api/context.d.ts +3 -3
  68. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +10 -0
  69. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +3 -2
  70. package/dist/_dts/blocks/src/system/runtime/api/readAuthority.d.ts +11 -0
  71. package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +9 -0
  72. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +7 -13
  73. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -6
  74. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +9 -4
  75. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +0 -1
  76. package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.d.ts +1 -3
  77. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -1
  78. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +22 -2
  79. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +7 -24
  80. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +3 -1
  81. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +57 -2
  82. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-categories.d.ts +29 -0
  83. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-choices.d.ts +13 -0
  84. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +3 -3
  85. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +13 -1
  86. package/dist/_dts/blocks/src/system/runtime/nodes/cart.server.d.ts +1 -0
  87. package/dist/_dts/blocks/src/system/runtime/nodes/checkout.server.d.ts +1 -0
  88. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationBookingLayer.d.ts +2 -1
  89. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +2 -1
  90. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +2 -1
  91. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -0
  92. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.d.ts +2 -1
  93. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +1 -1
  94. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -2
  95. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +8 -0
  96. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +4 -5
  97. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +7 -2
  98. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +7 -5
  99. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -6
  100. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +6 -4
  101. package/dist/_dts/blocks/src/system/runtime/nodes/header-control.d.ts +10 -0
  102. package/dist/_dts/blocks/src/system/runtime/nodes/layout.d.ts +6 -21
  103. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +20 -1
  104. package/dist/_dts/blocks/src/system/runtime/nodes/product-detail.server.d.ts +1 -0
  105. package/dist/_dts/blocks/src/system/runtime/nodes/product-list.server.d.ts +1 -0
  106. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +13 -0
  107. package/dist/_dts/blocks/src/system/runtime/nodes/shop.server.d.ts +1 -0
  108. package/dist/_dts/blocks/src/system/runtime/shared/components/ThemedButton.d.ts +58 -0
  109. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
  110. package/dist/_dts/blocks/src/system/transforms/registry/chromeLogo.d.ts +23 -0
  111. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +2 -1
  112. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +3 -1
  113. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +4 -1
  114. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +2 -0
  115. package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
  116. package/dist/_dts/core/src/appointment-service-categories.d.ts +108 -0
  117. package/dist/_dts/core/src/editor-state.d.ts +6 -0
  118. package/dist/_dts/core/src/event-catalogue.d.ts +27 -0
  119. package/dist/_dts/core/src/event-preset-vocabulary.d.ts +7 -0
  120. package/dist/_dts/core/src/index.d.ts +3 -0
  121. package/dist/_dts/core/src/public-profile.d.ts +9 -0
  122. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +676 -241
  123. package/dist/_dts/db/src/schemas/forms.d.ts +286 -2
  124. package/dist/_dts/editor-blocks/src/block-editor/{BlockCardHeader.d.ts → BlockCardFrame.d.ts} +11 -3
  125. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +6 -0
  126. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +16 -1
  127. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/types.d.ts +13 -0
  128. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +29 -0
  129. package/dist/_dts/logger/src/console.d.ts +3 -0
  130. package/dist/_dts/preview-next/src/client/blocks/BoundaryControl.d.ts +7 -2
  131. package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +1 -1
  132. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +1 -0
  133. package/dist/_dts/preview-next/src/client/blocks/previewProjection/applyPreviewProjections.d.ts +1 -3
  134. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
  135. package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +2 -2
  136. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
  137. package/dist/_dts/sdk/src/client/publicEventReadOperations.d.ts +1 -0
  138. package/dist/_dts/sdk/src/client/runtimeCacheKeys.d.ts +8 -0
  139. package/dist/_dts/sdk/src/client/types.d.ts +4 -1
  140. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  141. package/dist/_dts/sdk/src/contracts/page.d.ts +7 -2
  142. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +5 -0
  143. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +2 -2
  144. package/dist/_dts/sdk/src/navigation/index.d.ts +27 -0
  145. package/dist/_dts/sdk/src/public-api/contracts.d.ts +21 -15
  146. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +3 -2
  147. package/dist/_dts/sdk/src/rendering/client.d.ts +1 -0
  148. package/dist/_dts/sdk/src/rendering/components/Block.shared.d.ts +1 -0
  149. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +7 -1
  150. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -2
  151. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +1 -1
  152. package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +1 -1
  153. package/dist/_dts/sdk/src/rendering/islands/enhancers/routeIslandApiConfig.d.ts +3 -2
  154. package/dist/_dts/sdk/src/rendering/islands/enhancers/shopShared.d.ts +2 -0
  155. package/dist/_dts/sdk/src/rendering/overrides.d.ts +1 -0
  156. package/dist/_dts/sdk/src/version.d.ts +1 -1
  157. package/dist/_dts/surfaces/src/index.d.ts +1 -0
  158. package/dist/_dts/theme-core/src/buttons/affordanceSuppression.d.ts +1 -1
  159. package/dist/_dts/theme-core/src/buttons/classNames.d.ts +3 -13
  160. package/dist/_dts/theme-core/src/customCss/index.d.ts +1 -1
  161. package/dist/_dts/theme-core/src/customCss/patch.d.ts +0 -5
  162. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  163. package/dist/_dts/theme-core/src/layout/boundaryCss.d.ts +3 -0
  164. package/dist/_dts/theme-core/src/site-styles/compositionBudget.d.ts +8 -0
  165. package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +3 -2
  166. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +1 -3
  167. package/dist/_dts/theme-core/src/site-styles/generatedDesignPipeline.d.ts +3 -0
  168. package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
  169. package/dist/_dts/theme-core/src/site-styles/joinTreatment.d.ts +132 -0
  170. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorBoundaries.d.ts +31 -0
  171. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +33 -29
  172. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +4 -4
  173. package/dist/_dts/theme-core/src/site-styles/pageFlowPresets.d.ts +36 -0
  174. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +4 -10
  175. package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +17 -4
  176. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +20 -74
  177. package/dist/_dts/theme-core/src/site-styles/sectionBoundaryComposition.d.ts +95 -0
  178. package/dist/_dts/theme-core/src/site-styles/sectionTransitions.d.ts +80 -518
  179. package/dist/_dts/theme-core/src/site-styles/siteStyleBlockPolicies.d.ts +9 -4
  180. package/dist/_dts/theme-core/src/site-styles/transitionCatalogue.d.ts +320 -0
  181. package/dist/_dts/theme-core/src/site-styles/types.d.ts +3 -18
  182. package/dist/_dts/theme-core/src/surfaces/index.d.ts +1 -0
  183. package/dist/_dts/theme-core/src/surfaces/logoVariant.d.ts +26 -0
  184. package/dist/_dts/theme-core/src/utils/colorStyles.d.ts +10 -0
  185. package/dist/_dts/ui/src/editor-item-card.d.ts +116 -0
  186. package/dist/_dts/ui/src/index.d.ts +1 -0
  187. package/dist/client/{BookingConsentAgreement-BoCtvzzu.mjs → BookingConsentAgreement-DlVOmpW4.mjs} +4 -55
  188. package/dist/client/{DiscountCodeDisclosure-B5S30nZk.mjs → DiscountCodeDisclosure-T9q623PQ.mjs} +27 -17
  189. package/dist/client/{EventCombined.client-CeZ2-zSt.mjs → EventCombined.client-DnsUeONl.mjs} +54 -46
  190. package/dist/client/{EventListing.client-DJN3j8B3.mjs → EventListing.client-CNBFqJS4.mjs} +3 -4
  191. package/dist/client/{LeafletStaticMap-RjtGzDQT.mjs → LeafletStaticMap-C7higg52.mjs} +1 -1
  192. package/dist/client/ThemedButton-LAJTNrS8.mjs +412 -0
  193. package/dist/client/{accordion-DOmnDoyg.mjs → accordion-BcNF9TjX.mjs} +1 -1
  194. package/dist/client/{bookingForm-C0vk7pgS.mjs → bookingForm-BUaQ3S03.mjs} +161 -75
  195. package/dist/client/bookings.mjs +392 -182
  196. package/dist/client/{carousel-BZJ7pno3.mjs → carousel-CTdF6e0V.mjs} +2 -2
  197. package/dist/client/{carousel.client-DQTjCVQT.mjs → carousel.client-jahpU9Vz.mjs} +1 -1
  198. package/dist/client/{cart-CaeVAHJl.mjs → cart-pGtyf_XU.mjs} +3 -3
  199. package/dist/client/{checkout-7wmoNDtG.mjs → checkout-Da9WSn7Y.mjs} +3 -3
  200. package/dist/client/{checkoutUrls-FL6lRkrt.mjs → checkoutUrls-CW3-78uu.mjs} +1 -1
  201. package/dist/client/client.mjs +3819 -2717
  202. package/dist/client/{colorStyles-3013aRAY.mjs → colorStyles-CuJBiS-1.mjs} +16 -4
  203. package/dist/client/{context-BOimxE3U.mjs → context-BFeY_Wbm.mjs} +24 -8
  204. package/dist/client/{dates-BnzVksi4.mjs → dates-BhwVSxDg.mjs} +2 -2
  205. package/dist/client/{eventCalendar-l-fpaslC.mjs → eventCalendar-BAtdnR4s.mjs} +39 -50
  206. package/dist/client/{eventCombined-DGGvssK6.mjs → eventCombined-RksA3tRC.mjs} +5 -4
  207. package/dist/client/{eventDetails-DRiCm_hL.mjs → eventDetails-BB9hB4wR.mjs} +4 -4
  208. package/dist/client/{eventListing-dph8loYX.mjs → eventListing-BpJBkviM.mjs} +5 -4
  209. package/dist/client/{eventRegistration-ClBohmbY.mjs → eventRegistration-B18jFq_o.mjs} +83 -68
  210. package/dist/client/{form-BLVVAnd3.mjs → form-Dodt8Y8t.mjs} +9 -10
  211. package/dist/client/{headerSection-DHy4C8Ix.mjs → headerSection-B0qj9ttg.mjs} +23 -30
  212. package/dist/client/hooks.mjs +807 -162
  213. package/dist/client/{locationMap-6HuS28ck.mjs → locationMap-gn-iMk7a.mjs} +9 -10
  214. package/dist/client/{media-DHpfFwd3.mjs → media-BtJ37tzS.mjs} +1 -1
  215. package/dist/client/{newsletterForm-xOdcOhZP.mjs → newsletterForm-oByLdFkr.mjs} +31 -11
  216. package/dist/client/{pricing-ChinRYFt.mjs → pricing-BOU0_Hai.mjs} +1 -1
  217. package/dist/client/{productDetail-0chA5gbK.mjs → productDetail-D9v1zH2j.mjs} +3 -3
  218. package/dist/client/{productList-OoINA0h1.mjs → productList-D-mItx1n.mjs} +3 -3
  219. package/dist/client/{propsDecoder-CIZ-hbIG.mjs → propsDecoder-C3TP_z4x.mjs} +158 -61
  220. package/dist/client/rendering/client.mjs +2785 -2000
  221. package/dist/client/rendering/islands.mjs +19 -19
  222. package/dist/client/rendering.mjs +3855 -2694
  223. package/dist/client/{routeIslandApiConfig-UNsfPcYq.mjs → routeIslandApiConfig-DzN1W0sq.mjs} +8 -1
  224. package/dist/client/{scrollToBlock-BPZl0gPZ.mjs → scrollToBlock-CWs8EIdo.mjs} +1 -1
  225. package/dist/client/{shop-CLJFqNIq.mjs → shop-Dufw7N7o.mjs} +45 -58
  226. package/dist/client/{shop-commerce-PpANg5wB.mjs → shop-commerce-gklw_hLF.mjs} +42 -55
  227. package/dist/client/{shop-commerce-store-TA_Kz2ku.mjs → shop-commerce-store-Sf1eyTaZ.mjs} +1 -1
  228. package/dist/client/{shopShared-DzcFcA5g.mjs → shopShared-B5nyA41S.mjs} +6 -5
  229. package/dist/client/{useEventFilters-CFU21QZo.mjs → useEventFilters-CLL829vy.mjs} +66 -355
  230. package/dist/preview-next/before-render.mjs +147 -77
  231. package/dist/preview-next/client/runtime.mjs +4 -4
  232. package/dist/preview-next/editor-chrome.css +8 -0
  233. package/dist/preview-next/keepAlive.mjs +147 -77
  234. package/dist/preview-next/middleware.mjs +147 -77
  235. package/dist/{previewAuthStore-JA6-I_sL.mjs → previewAuthStore-BxAFlu-j.mjs} +147 -77
  236. package/dist/{sdk-runtime-CDKl0Fr7.mjs → sdk-runtime-D0uZFev7.mjs} +2 -2
  237. package/dist/{separator-BTp96X32.mjs → separator-EvdCAn4V.mjs} +1 -1
  238. package/dist/server/components.mjs +2548 -1607
  239. package/dist/server/config-validation.mjs +794 -160
  240. package/dist/server/config.mjs +794 -160
  241. package/dist/server/data.mjs +806 -161
  242. package/dist/server/index.mjs +167 -85
  243. package/dist/server/navigation.mjs +28 -1
  244. package/dist/server/next.mjs +14930 -14036
  245. package/dist/server/page-converter.mjs +494 -113
  246. package/dist/server/prebuild.mjs +1 -1
  247. package/dist/server/rendering/server.mjs +2537 -1590
  248. package/dist/server/rendering.mjs +2571 -1618
  249. package/dist/server/routing.mjs +918 -200
  250. package/dist/server/server.mjs +819 -205
  251. package/dist/server/theme-bridge.mjs +1232 -28
  252. package/dist/server/theme.mjs +6 -4
  253. package/dist/styles/index.css +6 -0
  254. package/package.json +2 -1
@@ -1,18 +1,59 @@
1
1
  "use client";
2
- import { C as unsafeAsPassId, b as unsafeAsCustomerPassId, v as unsafeAsAppointmentResourceId, x as unsafeAsFormId, y as unsafeAsAppointmentServiceId } from "./colorStyles-3013aRAY.mjs";
3
- import { a as buildBookingPaymentSelectionViewModel, i as usePolling, n as StepIndicator, r as SpinnerNode, t as BookingConsentAgreement } from "./BookingConsentAgreement-BoCtvzzu.mjs";
4
- import { At as resolveSelectedAppointmentConsent, Bt as reportWorkflowError, Ct as prepareBookingSubmission, Dt as resolveDefaultBookingServiceId, Et as resolveBookingSiteId, Ft as assertNever, Gt as addLocalScheduleDays, It as clearWorkflowFeedback, Lt as err, Mt as isBookingRequirementConsentFieldId, Ot as toSelectedCollectionOptionKind, St as parseBookingCurrencyInputToCents, Tt as resolveBookingPaymentStep, Vt as reportWorkflowSuccess, Yt as formatBookingInstant, Zt as formatLocalScheduleDate, _t as formatBookingSubmissionPreparationError, bt as getBookingSuccessMessage, en as parseBookingLocalDate, ft as themeButtonClassName, gt as formatBookingCentsAsCurrencyInput, ht as deriveBookingFormViewState, jt as BOOKING_FORM_DATA_RESERVED_KEYS, kt as projectSelectedAppointmentConsentIntoForm, mt as logger, pn as formatCurrencyAmount, t as defineIslandPropsDecoder, tn as resolveBookingTimeZoneId, vt as getBookingRedirectStateFromLocation, wt as resolveAppointmentCheckoutVerificationState, xt as isBookingServiceSlidingAmountInRange, yt as getBookingServiceSlidingScale, zt as okWith } from "./propsDecoder-CIZ-hbIG.mjs";
5
- import { n as useBlockApi, t as BlockApiProvider } from "./context-BOimxE3U.mjs";
2
+ import { C as unsafeAsPassId, b as unsafeAsCustomerPassId, v as unsafeAsAppointmentResourceId, x as unsafeAsFormId, y as unsafeAsAppointmentServiceId } from "./colorStyles-CuJBiS-1.mjs";
3
+ import { i as buildBookingPaymentSelectionViewModel, n as StepIndicator, r as usePolling, t as BookingConsentAgreement } from "./BookingConsentAgreement-DlVOmpW4.mjs";
4
+ import { $t as formatBookingInstant, At as resolveBookingSiteId, Bt as clearWorkflowFeedback, Ct as getBookingServiceSlidingScale, Dt as prepareBookingSubmission, Et as parseBookingCurrencyInputToCents, Ft as BOOKING_FORM_DATA_RESERVED_KEYS, Gt as reportWorkflowSuccess, It as isBookingRequirementConsentFieldId, Mt as toSelectedCollectionOptionKind, Nt as projectSelectedAppointmentConsentIntoForm, Ot as resolveAppointmentCheckoutVerificationState, Pt as resolveSelectedAppointmentConsent, St as getBookingRedirectStateFromLocation, Tt as isBookingServiceSlidingAmountInRange, Ut as okWith, Vt as err, Wt as reportWorkflowError, Yt as addLocalScheduleDays, _n as formatCurrencyAmount, an as resolveBookingTimeZoneId, bt as formatBookingCentsAsCurrencyInput, in as parseBookingLocalDate, jt as resolveDefaultBookingServiceId, kt as resolveBookingPaymentStep, t as defineIslandPropsDecoder, tn as formatLocalScheduleDate, vt as logger, wt as getBookingSuccessMessage, xt as formatBookingSubmissionPreparationError, yt as deriveBookingFormViewState, zt as assertNever } from "./propsDecoder-C3TP_z4x.mjs";
5
+ import { n as useBlockApi, t as BlockApiProvider } from "./context-BFeY_Wbm.mjs";
6
6
  import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
7
- import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-BPZl0gPZ.mjs";
8
- import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-B5S30nZk.mjs";
7
+ import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-CWs8EIdo.mjs";
8
+ import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-T9q623PQ.mjs";
9
+ import { i as SpinnerNode, t as ThemedButton } from "./ThemedButton-LAJTNrS8.mjs";
9
10
  import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
10
11
  import { n as getFieldValidationControlProps, t as FieldValidationMessage } from "./FieldValidationMessage-AYanWFb-.mjs";
11
- import { t as buildCheckoutReturnUrls } from "./checkoutUrls-FL6lRkrt.mjs";
12
+ import { t as buildCheckoutReturnUrls } from "./checkoutUrls-CW3-78uu.mjs";
12
13
  import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
13
- import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-UNsfPcYq.mjs";
14
+ import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-DzN1W0sq.mjs";
14
15
  import React, { useCallback, useEffect, useLayoutEffect, useMemo, useReducer, useRef, useState } from "react";
15
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
16
+ import { jsx, jsxs } from "react/jsx-runtime";
17
+ //#region ../core/src/appointment-service-categories.ts
18
+ /**
19
+ * Groups services under their categories.
20
+ *
21
+ * A service whose `categoryId` names no category in `categories` lands in
22
+ * Other. The composite foreign key keeps that from happening with stored data,
23
+ * so this is only the total, safe answer for a caller holding a stale list.
24
+ */
25
+ function layoutServicesByCategory(categories, services, options) {
26
+ if (categories.length === 0) return {
27
+ kind: "uncategorized-site",
28
+ services: [...services]
29
+ };
30
+ const buckets = new Map(categories.map((category) => [category.id, []]));
31
+ const other = [];
32
+ for (const service of services) {
33
+ const bucket = service.categoryId === null ? void 0 : buckets.get(service.categoryId);
34
+ if (bucket !== void 0) bucket.push(service);
35
+ else other.push(service);
36
+ }
37
+ const groups = [];
38
+ for (const category of categories) {
39
+ const groupServices = buckets.get(category.id) ?? [];
40
+ if (groupServices.length === 0 && !options.keepEmptyGroups) continue;
41
+ groups.push({
42
+ category,
43
+ services: groupServices
44
+ });
45
+ }
46
+ if (groups.length === 0 && !options.keepEmptyGroups) return {
47
+ kind: "uncategorized-site",
48
+ services: other
49
+ };
50
+ return {
51
+ kind: "categorized-site",
52
+ groups,
53
+ other
54
+ };
55
+ }
56
+ //#endregion
16
57
  //#region ../blocks/src/system/runtime/components/booking/SuccessMessage.tsx
17
58
  const SuccessMessage = ({ message, resourceName, className }) => {
18
59
  return /* @__PURE__ */ jsx(TerminalPanel, {
@@ -1896,6 +1937,7 @@ function useHeadlessBookingFlow(options) {
1896
1937
  data,
1897
1938
  services: {
1898
1939
  items: options.services,
1940
+ categories: readServiceCategories(options),
1899
1941
  selected: selectedService,
1900
1942
  defaultServiceId,
1901
1943
  requiresSelection: Boolean(options.requiresServiceSelection)
@@ -1960,6 +2002,10 @@ function useHeadlessBookingFlow(options) {
1960
2002
  actions
1961
2003
  };
1962
2004
  }
2005
+ const EMPTY_SERVICE_CATEGORIES = [];
2006
+ function readServiceCategories(options) {
2007
+ return options.serviceCategories ?? EMPTY_SERVICE_CATEGORIES;
2008
+ }
1963
2009
  function navigateToCheckout(checkoutUrl) {
1964
2010
  window.location.href = checkoutUrl;
1965
2011
  }
@@ -2181,10 +2227,97 @@ const TimeSlotSelector = ({ value, onChange, slots, isLoading, timezone, require
2181
2227
  });
2182
2228
  };
2183
2229
  //#endregion
2184
- //#region ../blocks/src/system/runtime/nodes/booking-form.default-ui.tsx
2230
+ //#region ../blocks/src/system/runtime/nodes/booking-form.service-choices.tsx
2185
2231
  function optionCardClassName(isSelected) {
2186
2232
  return `rb-option-card${isSelected ? " rb-option-card--selected" : ""}`;
2187
2233
  }
2234
+ function SelectedCheck() {
2235
+ return /* @__PURE__ */ jsx("div", {
2236
+ className: "rb-option-check",
2237
+ children: /* @__PURE__ */ jsx(CheckIcon, {})
2238
+ });
2239
+ }
2240
+ /**
2241
+ * The service buttons. A site with no categories keeps its single grid; a
2242
+ * categorised site gets a heading per category, then "Other", above the same
2243
+ * grid (issue 1403). Empty categories are skipped, and there are no intros
2244
+ * here, to keep the step compact.
2245
+ */
2246
+ function DefaultServiceChoices({ booking }) {
2247
+ const layout = layoutServicesByCategory(booking.services.categories, booking.services.items.map((service) => ({
2248
+ service,
2249
+ categoryId: service.categoryId ?? null
2250
+ })), { keepEmptyGroups: false });
2251
+ switch (layout.kind) {
2252
+ case "uncategorized-site": return /* @__PURE__ */ jsxs("div", {
2253
+ className: "rb-reg-stack rb-reg-stack--sm",
2254
+ children: [/* @__PURE__ */ jsx("span", {
2255
+ className: "ab-subtitle",
2256
+ children: "Service"
2257
+ }), /* @__PURE__ */ jsx(ServiceChoiceGrid, {
2258
+ booking,
2259
+ choices: layout.services
2260
+ })]
2261
+ });
2262
+ case "categorized-site": return /* @__PURE__ */ jsx("div", {
2263
+ className: "rb-reg-stack",
2264
+ children: [...layout.groups.map((group) => ({
2265
+ key: group.category.id,
2266
+ heading: group.category.name,
2267
+ choices: group.services
2268
+ })), ...layout.other.length > 0 ? [{
2269
+ key: "other",
2270
+ heading: "Other",
2271
+ choices: layout.other
2272
+ }] : []].map((group) => /* @__PURE__ */ jsxs("div", {
2273
+ className: "rb-reg-stack rb-reg-stack--sm",
2274
+ "data-booking-service-group": group.key,
2275
+ children: [/* @__PURE__ */ jsx("h3", {
2276
+ className: "ab-subtitle",
2277
+ children: group.heading
2278
+ }), /* @__PURE__ */ jsx(ServiceChoiceGrid, {
2279
+ booking,
2280
+ choices: group.choices
2281
+ })]
2282
+ }, group.key))
2283
+ });
2284
+ default: return assertNever(layout);
2285
+ }
2286
+ }
2287
+ function ServiceChoiceGrid({ booking, choices }) {
2288
+ const selectedServiceId = booking.services.selected?.id;
2289
+ return /* @__PURE__ */ jsx("div", {
2290
+ className: "rb-reg-grid",
2291
+ children: choices.map(({ service }) => {
2292
+ const isSelected = selectedServiceId === service.id;
2293
+ return /* @__PURE__ */ jsxs("button", {
2294
+ type: "button",
2295
+ onClick: () => booking.actions.selectService(service.id),
2296
+ className: optionCardClassName(isSelected),
2297
+ "aria-pressed": isSelected,
2298
+ children: [/* @__PURE__ */ jsxs("div", {
2299
+ className: "rb-flex-1",
2300
+ children: [
2301
+ /* @__PURE__ */ jsx("div", {
2302
+ className: "ab-subtitle",
2303
+ children: service.title
2304
+ }),
2305
+ service.description ? /* @__PURE__ */ jsx("div", {
2306
+ className: "ab-text rb-on-surface--muted",
2307
+ children: service.description
2308
+ }) : null,
2309
+ service.durationMinutes ? /* @__PURE__ */ jsxs("div", {
2310
+ className: "ab-text rb-on-surface--muted",
2311
+ children: [service.durationMinutes, " minutes"]
2312
+ }) : null
2313
+ ]
2314
+ }), isSelected ? /* @__PURE__ */ jsx(SelectedCheck, {}) : null]
2315
+ }, service.id);
2316
+ })
2317
+ });
2318
+ }
2319
+ //#endregion
2320
+ //#region ../blocks/src/system/runtime/nodes/booking-form.default-ui.tsx
2188
2321
  function formatBookingAmount(amount, currency) {
2189
2322
  return formatCurrencyAmount(amount, currency, { decimals: "auto" });
2190
2323
  }
@@ -2228,30 +2361,25 @@ function HeadlessBookingDefaultForm({ booking, onSubmit }) {
2228
2361
  }),
2229
2362
  /* @__PURE__ */ jsxs("div", {
2230
2363
  className: "rb-wizard-actions",
2231
- children: [!isFirstStep ? /* @__PURE__ */ jsx("button", {
2364
+ children: [!isFirstStep ? /* @__PURE__ */ jsx(ThemedButton, {
2232
2365
  type: "button",
2233
2366
  onClick: booking.actions.back,
2234
- className: themeButtonClassName({
2235
- variant: "outline",
2236
- size: "md"
2237
- }),
2238
- children: "Back"
2239
- }) : null, /* @__PURE__ */ jsx("button", {
2367
+ variant: "outline",
2368
+ size: "md",
2369
+ label: "Back"
2370
+ }) : null, /* @__PURE__ */ jsx(ThemedButton, {
2240
2371
  type: "button",
2241
2372
  onClick: () => {
2242
2373
  handlePrimaryAction();
2243
2374
  },
2244
2375
  disabled: isSubmitting,
2245
- className: themeButtonClassName({
2246
- variant: "primary",
2247
- size: "md"
2248
- }),
2249
- children: isSubmitting ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(SpinnerNode, {
2250
- size: "sm",
2251
- color: "inherit",
2252
- className: "rb-mr-2",
2376
+ variant: "primary",
2377
+ size: "md",
2378
+ label: isLastStep ? "Complete" : "Continue",
2379
+ pending: isSubmitting ? {
2380
+ label: "Submitting...",
2253
2381
  srLabel: "Submitting"
2254
- }), "Submitting..."] }) : isLastStep ? "Complete" : "Continue"
2382
+ } : void 0
2255
2383
  })]
2256
2384
  }),
2257
2385
  /* @__PURE__ */ jsx(DefaultBookingDiscount, { booking }),
@@ -2280,7 +2408,6 @@ function DefaultBookingStepContent({ booking, errorSummaryId }) {
2280
2408
  function DefaultServiceSelectionStep({ booking }) {
2281
2409
  const services = booking.services.items;
2282
2410
  const resources = booking.resources.items;
2283
- const selectedServiceId = booking.services.selected?.id;
2284
2411
  const selectedResourceId = booking.resources.selectedResourceId;
2285
2412
  const showServiceSelect = booking.services.requiresSelection || services.length > 1;
2286
2413
  const showResourceSelect = booking.resources.requiresSelection || resources.length > 1;
@@ -2295,41 +2422,7 @@ function DefaultServiceSelectionStep({ booking }) {
2295
2422
  className: "ab-text rb-on-surface--muted",
2296
2423
  children: "Choose the service you'd like to book"
2297
2424
  })] }),
2298
- showServiceSelect ? /* @__PURE__ */ jsxs("div", {
2299
- className: "rb-reg-stack rb-reg-stack--sm",
2300
- children: [/* @__PURE__ */ jsx("span", {
2301
- className: "ab-subtitle",
2302
- children: "Service"
2303
- }), /* @__PURE__ */ jsx("div", {
2304
- className: "rb-reg-grid",
2305
- children: services.map((service) => {
2306
- const isSelected = selectedServiceId === service.id;
2307
- return /* @__PURE__ */ jsxs("button", {
2308
- type: "button",
2309
- onClick: () => booking.actions.selectService(service.id),
2310
- className: optionCardClassName(isSelected),
2311
- "aria-pressed": isSelected,
2312
- children: [/* @__PURE__ */ jsxs("div", {
2313
- className: "rb-flex-1",
2314
- children: [
2315
- /* @__PURE__ */ jsx("div", {
2316
- className: "ab-subtitle",
2317
- children: service.title
2318
- }),
2319
- service.description ? /* @__PURE__ */ jsx("div", {
2320
- className: "ab-text rb-on-surface--muted",
2321
- children: service.description
2322
- }) : null,
2323
- service.durationMinutes ? /* @__PURE__ */ jsxs("div", {
2324
- className: "ab-text rb-on-surface--muted",
2325
- children: [service.durationMinutes, " minutes"]
2326
- }) : null
2327
- ]
2328
- }), isSelected ? /* @__PURE__ */ jsx(SelectedCheck, {}) : null]
2329
- }, service.id);
2330
- })
2331
- })]
2332
- }) : null,
2425
+ showServiceSelect ? /* @__PURE__ */ jsx(DefaultServiceChoices, { booking }) : null,
2333
2426
  booking.resources.state.tag === "loading" ? /* @__PURE__ */ jsxs("div", {
2334
2427
  className: "ab-center",
2335
2428
  children: [/* @__PURE__ */ jsx(SpinnerNode, {
@@ -2879,14 +2972,12 @@ function DefaultBookingFeedback({ booking }) {
2879
2972
  children: [/* @__PURE__ */ jsx("p", {
2880
2973
  className: "ab-text",
2881
2974
  children: booking.feedback.message
2882
- }), /* @__PURE__ */ jsx("button", {
2975
+ }), /* @__PURE__ */ jsx(ThemedButton, {
2883
2976
  type: "button",
2884
- className: themeButtonClassName({
2885
- variant: "secondary",
2886
- size: "sm"
2887
- }),
2888
- onClick: booking.actions.clearFeedback,
2889
- children: "Dismiss"
2977
+ variant: "secondary",
2978
+ size: "sm",
2979
+ label: "Dismiss",
2980
+ onClick: booking.actions.clearFeedback
2890
2981
  })]
2891
2982
  });
2892
2983
  }
@@ -2910,12 +3001,6 @@ function DefaultBookingErrorSummary({ errors, id }) {
2910
3001
  children: [errors.formError ? /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx("strong", { children: errors.formError }) }) : null, Object.entries(errors.fieldErrors).map(([key, message]) => /* @__PURE__ */ jsx("p", { children: message }, key))]
2911
3002
  });
2912
3003
  }
2913
- function SelectedCheck() {
2914
- return /* @__PURE__ */ jsx("div", {
2915
- className: "rb-option-check",
2916
- children: /* @__PURE__ */ jsx(CheckIcon, {})
2917
- });
2918
- }
2919
3004
  //#endregion
2920
3005
  //#region ../blocks/src/system/runtime/nodes/booking-form.client.tsx
2921
3006
  const PORTAL_REBOOK_QUERY_PARAM = "rebook";
@@ -2968,6 +3053,7 @@ const BookingFormClient = ({ siteId: siteIdProp, render }) => {
2968
3053
  formId: render.hydration.formId ?? form?.id ?? "booking-form",
2969
3054
  form,
2970
3055
  services,
3056
+ serviceCategories: render.hydration.serviceCategories,
2971
3057
  initialServiceId,
2972
3058
  initialResourceId,
2973
3059
  initialData: render.hydration.initialData ?? void 0,