@riverbankcms/sdk 0.130.0 → 0.130.2

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 (244) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/README.md +1 -1
  3. package/dist/{PreviewEditorSidebar-DiEpbOdw.mjs → PreviewEditorSidebar-BY-1QdE2.mjs} +18 -15
  4. package/dist/{PreviewEditorUI-C6MvxnIa.mjs → PreviewEditorUI-BS34jI9_.mjs} +3 -3
  5. package/dist/{PreviewQueryProvider-C2rnoPz6.mjs → PreviewQueryProvider-BD0kOjtI.mjs} +1 -1
  6. package/dist/{SdkPreviewModeRuntime-DRXA_m5L.mjs → SdkPreviewModeRuntime-B1pWnhu-.mjs} +48 -21
  7. package/dist/{SiteChromeCustomizeContext-BTHdv5_-.mjs → SiteChromeCustomizeContext-BhUG_72i.mjs} +6180 -5076
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +309 -32
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +969 -112
  10. package/dist/_dts/api/src/accountApi.d.ts +213 -0
  11. package/dist/_dts/api/src/accountEndpointDefinitions.d.ts +30 -0
  12. package/dist/_dts/api/src/accountEndpoints.d.ts +254 -0
  13. package/dist/_dts/api/src/apiCallParams.d.ts +60 -0
  14. package/dist/_dts/api/src/bookingConfig.d.ts +10 -20
  15. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -5
  16. package/dist/_dts/api/src/bookingManagementEventEndpointTypes.d.ts +15 -0
  17. package/dist/_dts/api/src/bookingSettingsSections.d.ts +9 -0
  18. package/dist/_dts/api/src/bookingVerticals.d.ts +2 -2
  19. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +2 -0
  20. package/dist/_dts/api/src/endpoints.d.ts +1253 -1209
  21. package/dist/_dts/api/src/event-destination-policy.d.ts +1 -1
  22. package/dist/_dts/api/src/eventManagementContracts.d.ts +83 -7
  23. package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +26 -0
  24. package/dist/_dts/api/src/eventSeriesPresentationPreset.d.ts +12 -0
  25. package/dist/_dts/api/src/index.d.ts +11 -3
  26. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -0
  27. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -0
  28. package/dist/_dts/api/src/oauth.d.ts +8 -0
  29. package/dist/_dts/api/src/preview-auth.d.ts +26 -0
  30. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +5 -5
  31. package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +0 -1
  32. package/dist/_dts/api/src/sdk-event-upsert.d.ts +2 -0
  33. package/dist/_dts/api/src/sdkBlockUpsertContracts.d.ts +48 -0
  34. package/dist/_dts/api/src/sdkContracts.d.ts +5 -13
  35. package/dist/_dts/api/src/sdkEventCategoryContracts.d.ts +9 -0
  36. package/dist/_dts/api/src/sdkThemeWire.d.ts +40 -8
  37. package/dist/_dts/api/src/settings/permissions.d.ts +2 -2
  38. package/dist/_dts/api/src/siteApiKeyEndpointDefinitions.d.ts +66 -0
  39. package/dist/_dts/api/src/siteInfrastructure.d.ts +3 -3
  40. package/dist/_dts/api/src/siteOperations.d.ts +1 -1
  41. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +12 -4
  42. package/dist/_dts/api/src/types.d.ts +7 -59
  43. package/dist/_dts/block-form/src/client/index.d.ts +15 -23
  44. package/dist/_dts/block-form/src/index.d.ts +23 -22
  45. package/dist/_dts/blocks/src/primitives/layout/Grid.d.ts +18 -1
  46. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +1 -0
  47. package/dist/_dts/blocks/src/system/blocks/events/shared/filtering.d.ts +1 -1
  48. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +61 -0
  49. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +24 -22
  50. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +25 -1
  51. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +7 -30
  52. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +0 -1
  53. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +4 -63
  54. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +1 -3
  55. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +13 -1
  56. package/dist/_dts/blocks/src/system/fields/gridLayout.d.ts +20 -0
  57. package/dist/_dts/blocks/src/system/node/fragments/classNameBinding.d.ts +6 -1
  58. package/dist/_dts/blocks/src/system/node/fragments/styledCard.d.ts +31 -0
  59. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +4 -0
  60. package/dist/_dts/blocks/src/system/runtime/api/types/courses.d.ts +0 -1
  61. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +0 -1
  62. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +4 -2
  63. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +24 -8
  64. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +8 -0
  65. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.validationErrors.d.ts +17 -0
  66. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +1 -1
  68. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  69. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +42 -0
  70. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +4 -1
  71. package/dist/_dts/blocks/src/system/runtime/shared/components/FeedbackMessage.d.ts +17 -1
  72. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -1
  73. package/dist/_dts/blocks/src/system/spacing.d.ts +1 -1
  74. package/dist/_dts/blocks/src/system/transforms/registry/_utils/boxStyleClassNames.d.ts +90 -0
  75. package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +4 -0
  76. package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +26 -0
  77. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +4 -37
  78. package/dist/_dts/content-editor/src/components/ContentFieldsForm.d.ts +2 -2
  79. package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +6 -6
  80. package/dist/_dts/content-model/src/content-types/builtins.d.ts +6 -6
  81. package/dist/_dts/core/src/branded.d.ts +4 -0
  82. package/dist/_dts/core/src/event-page-surface-subject.d.ts +25 -4
  83. package/dist/_dts/core/src/index.d.ts +3 -0
  84. package/dist/_dts/core/src/public-event-booking-availability.d.ts +8 -0
  85. package/dist/_dts/core/src/secret.d.ts +44 -0
  86. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +341 -0
  87. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -1
  88. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +2 -2
  89. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +2 -2
  90. package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +1 -1
  91. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +1 -1
  92. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +1 -1
  93. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockValidationManifests.d.ts +1 -1
  94. package/dist/_dts/editor-blocks/src/block-editor/preparedManifest.d.ts +1 -1
  95. package/dist/_dts/editor-blocks/src/blockPayload.d.ts +1 -1
  96. package/dist/_dts/editor-blocks/src/index.d.ts +2 -2
  97. package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -2
  98. package/dist/_dts/editor-blocks/src/widgets/button/ButtonField.d.ts +1 -1
  99. package/dist/_dts/editor-blocks/src/widgets/button/ButtonVariantField.d.ts +1 -1
  100. package/dist/_dts/editor-blocks/src/widgets/button/index.d.ts +1 -1
  101. package/dist/_dts/editor-blocks/src/widgets/content-type-select/ContentTypeSelectField.d.ts +1 -1
  102. package/dist/_dts/editor-blocks/src/widgets/entry-picker/EntryPickerField.d.ts +1 -1
  103. package/dist/_dts/editor-blocks/src/widgets/entry-picker/index.d.ts +1 -1
  104. package/dist/_dts/editor-blocks/src/widgets/icon-picker/IconPickerField.d.ts +1 -1
  105. package/dist/_dts/editor-blocks/src/widgets/inline-text/InlineTextField.d.ts +1 -1
  106. package/dist/_dts/editor-blocks/src/widgets/link/LinkField.d.ts +2 -2
  107. package/dist/_dts/editor-blocks/src/widgets/offerings-preview/OfferingsPreviewGroupOrderField.d.ts +1 -1
  108. package/dist/_dts/editor-blocks/src/widgets/reference/ReferenceField.d.ts +2 -2
  109. package/dist/_dts/editor-blocks/src/widgets/rich-text/RichTextField.d.ts +2 -2
  110. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/SiteOptionPickerField.d.ts +1 -1
  111. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +1 -1
  112. package/dist/_dts/preview-next/src/client/blocks/useBlockCustomizeControls.d.ts +1 -1
  113. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +1 -1
  114. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +1 -1
  115. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -0
  116. package/dist/_dts/preview-next/src/client/preview/PreviewSiteFontStorageContext.d.ts +6 -0
  117. package/dist/_dts/preview-next/src/client/preview/siteFontPreview.d.ts +5 -0
  118. package/dist/_dts/preview-next/src/client/sdk/contentStorage.d.ts +10 -0
  119. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -1
  120. package/dist/_dts/preview-next/src/index.d.ts +1 -0
  121. package/dist/_dts/preview-next/src/keepAlive.d.ts +3 -5
  122. package/dist/_dts/preview-next/src/refresh-contract.d.ts +1 -0
  123. package/dist/_dts/preview-next/src/route-contract.d.ts +7 -0
  124. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  125. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +61 -39
  126. package/dist/_dts/sdk/src/preview-next/keep-alive.d.ts +1 -1
  127. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +1 -1
  128. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
  129. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +9 -1
  130. package/dist/_dts/sdk/src/theme-bridge/types.d.ts +4 -2
  131. package/dist/_dts/sdk/src/version.d.ts +1 -1
  132. package/dist/_dts/theme-core/src/cards/core.d.ts +54 -10
  133. package/dist/_dts/theme-core/src/cards/decorations.d.ts +33 -0
  134. package/dist/_dts/theme-core/src/cards/generateDefaultCardSystem.d.ts +7 -2
  135. package/dist/_dts/theme-core/src/cards/index.d.ts +3 -0
  136. package/dist/_dts/theme-core/src/cards/openCardVariant.d.ts +24 -0
  137. package/dist/_dts/theme-core/src/cards/roles.d.ts +38 -0
  138. package/dist/_dts/theme-core/src/cards/siteStyleDefaults.d.ts +53 -8
  139. package/dist/_dts/theme-core/src/cards/types.d.ts +489 -21
  140. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  141. package/dist/_dts/theme-core/src/header/legacyHeaderVariant.d.ts +59 -0
  142. package/dist/_dts/theme-core/src/header/paintTargets.d.ts +2 -2
  143. package/dist/_dts/theme-core/src/header/scrollTreatment.d.ts +3 -2
  144. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +12 -135
  145. package/dist/_dts/theme-core/src/palette/utils/contrast.d.ts +1 -0
  146. package/dist/_dts/theme-core/src/palette/utils/opaqueSurfaceColor.d.ts +6 -0
  147. package/dist/_dts/theme-core/src/runtime/buildThemeRuntimeFromBridge.d.ts +1 -1
  148. package/dist/_dts/theme-core/src/schema.d.ts +301 -94
  149. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +84 -102
  150. package/dist/_dts/theme-core/src/site-styles/appearancePresetResolution.d.ts +12 -1
  151. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +9 -4
  152. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +0 -20
  153. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +84 -102
  154. package/dist/_dts/theme-core/src/site-styles/cardRoleVocabulary.d.ts +48 -0
  155. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +21 -385
  156. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +10 -18
  157. package/dist/_dts/theme-core/src/site-styles/headerLayoutTypes.d.ts +2 -4
  158. package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +2 -9
  159. package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +0 -2
  160. package/dist/_dts/theme-core/src/site-styles/index.d.ts +5 -0
  161. package/dist/_dts/theme-core/src/site-styles/pageDesignAppearanceAvailability.d.ts +3 -0
  162. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorCapabilities.d.ts +22 -0
  163. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +9 -8
  164. package/dist/_dts/theme-core/src/site-styles/pageDesignIntentEquality.d.ts +3 -0
  165. package/dist/_dts/theme-core/src/site-styles/previewRuntimeCapabilities.d.ts +19 -0
  166. package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +9 -0
  167. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +1 -62
  168. package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +13 -12
  169. package/dist/_dts/theme-core/src/site-styles/types.d.ts +50 -39
  170. package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +9 -9
  171. package/dist/_dts/theme-core/src/status/generateStatusCss.d.ts +1 -0
  172. package/dist/_dts/theme-core/src/surfaces/index.d.ts +1 -0
  173. package/dist/_dts/theme-core/src/surfaces/resolveSurfaceForeground.d.ts +39 -0
  174. package/dist/_dts/ui/src/navigation-tabs.d.ts +3 -2
  175. package/dist/client/{CourseRegistrationWizard-Bvtz9G9g.mjs → CourseRegistrationWizard-DGW9F0SQ.mjs} +7 -7
  176. package/dist/client/{DiscountCodeDisclosure-Ur-Xx1U_.mjs → DiscountCodeDisclosure-BPZ-yfGI.mjs} +1 -1
  177. package/dist/client/{EventCombined.client-EhscD4U6.mjs → EventCombined.client-Cjt3kKYR.mjs} +4 -4
  178. package/dist/client/{EventListing.client-Bn26cFTY.mjs → EventListing.client-DY9dn6Fh.mjs} +2 -2
  179. package/dist/client/{FeedbackMessage-ByMrs3cr.mjs → FeedbackMessage-CtLvvS_d.mjs} +15 -3
  180. package/dist/client/{LeafletStaticMap-BUw9Ntzr.mjs → LeafletStaticMap--2c61XYn.mjs} +1 -1
  181. package/dist/client/{StepIndicator-BfbdiVQI.mjs → StepIndicator-CLjQhkDb.mjs} +3 -3
  182. package/dist/client/{accordion-CjIeof73.mjs → accordion-_boYwHHi.mjs} +1 -1
  183. package/dist/client/{bookingForm-DwEeovf_.mjs → bookingForm--AqEfyBX.mjs} +56 -39
  184. package/dist/client/bookings.mjs +393 -192
  185. package/dist/client/{carousel-BMrfgOba.mjs → carousel-CVI2dqZr.mjs} +2 -2
  186. package/dist/client/{carousel.client-CpwTUhIo.mjs → carousel.client-59G_WMr4.mjs} +1 -1
  187. package/dist/client/{cart-rXEdxTdb.mjs → cart-DR6IiPz9.mjs} +3 -3
  188. package/dist/client/{checkout-D3JlSzh3.mjs → checkout-CsrGAfQt.mjs} +3 -3
  189. package/dist/client/client.mjs +4524 -3512
  190. package/dist/client/{colorStyles-BWpj_h4C.mjs → colorStyles-CrxJrPjJ.mjs} +277 -1
  191. package/dist/client/{context-CJz1Vlsz.mjs → context-B83PiNzm.mjs} +6 -21
  192. package/dist/client/{courseRegistration-DO5XvMAA.mjs → courseRegistration-aNJVaLa3.mjs} +3 -3
  193. package/dist/client/{eventCalendar-DO6rTqCn.mjs → eventCalendar-OZ7h59VN.mjs} +6 -6
  194. package/dist/client/{eventCombined-bJ3i_ovU.mjs → eventCombined-BbJ6bFKz.mjs} +3 -3
  195. package/dist/client/{eventDetails-CCbrXE7o.mjs → eventDetails-BLyUBiCT.mjs} +3 -3
  196. package/dist/client/{eventListing-Bdlt9YTm.mjs → eventListing-DuP1yhBS.mjs} +3 -3
  197. package/dist/client/{eventRegistration-B02lt6iY.mjs → eventRegistration-BXyECPa-.mjs} +11 -12
  198. package/dist/client/{form-DrUBAAox.mjs → form-BA4t3kKU.mjs} +4 -4
  199. package/dist/client/{headerSection-MzqvHL6T.mjs → headerSection-CpNaJxhW.mjs} +2 -2
  200. package/dist/client/hooks.mjs +1967 -2059
  201. package/dist/client/{locationMap-DG8BxTBm.mjs → locationMap-3HGMCL7_.mjs} +3 -3
  202. package/dist/client/{media-CNE1Z-wb.mjs → media-BOHuueS5.mjs} +16 -4
  203. package/dist/client/{newsletterForm-BzO-Td3p.mjs → newsletterForm-C2s6Mw67.mjs} +4 -4
  204. package/dist/client/{pricing-NgK7ozkg.mjs → pricing-BiqIMgZk.mjs} +1 -1
  205. package/dist/client/{productDetail-CfQ7rhVK.mjs → productDetail-C9joWhdE.mjs} +3 -3
  206. package/dist/client/{productList-C23rOLUi.mjs → productList-CjzdU3pB.mjs} +3 -3
  207. package/dist/client/{propsDecoder-CAZdhwjs.mjs → propsDecoder-CBPGXEYX.mjs} +395 -402
  208. package/dist/client/rendering/client.mjs +2004 -2856
  209. package/dist/client/rendering/islands.mjs +20 -20
  210. package/dist/client/rendering.mjs +4605 -3496
  211. package/dist/client/{scrollToBlock-DSSqVQr1.mjs → scrollToBlock-DZ73aEX6.mjs} +1 -1
  212. package/dist/client/{shop-BMToKLK7.mjs → shop-CQRai7hj.mjs} +7 -7
  213. package/dist/client/{shop-commerce-DB4JRKmp.mjs → shop-commerce-hP9UboOx.mjs} +8 -8
  214. package/dist/client/{shop-commerce-store-BOqSIOuc.mjs → shop-commerce-store-DiD5a32e.mjs} +1 -1
  215. package/dist/client/{shopShared-B6SK9DZv.mjs → shopShared-DP8DXTkF.mjs} +5 -5
  216. package/dist/client/{useEventFilters-CULOa4nB.mjs → useEventFilters-pF_OJNQP.mjs} +137 -81
  217. package/dist/client/{usePolling-BGG_8-jl.mjs → usePolling-Cls91SD2.mjs} +2 -2
  218. package/dist/preview-next/before-render.mjs +192 -108
  219. package/dist/preview-next/client/runtime.mjs +4 -4
  220. package/dist/preview-next/keepAlive.mjs +7406 -29
  221. package/dist/preview-next/middleware.mjs +186 -107
  222. package/dist/{previewAuthStore-_GXFRg2W.mjs → previewAuthStore-CX1C_KJ4.mjs} +185 -107
  223. package/dist/{sdk-runtime-hhSOMShR.mjs → sdk-runtime-5CcPAI14.mjs} +2 -2
  224. package/dist/{separator-flRaFc14.mjs → separator-BXlYN_gr.mjs} +1 -1
  225. package/dist/server/components.mjs +6363 -4998
  226. package/dist/server/config-validation.mjs +1967 -2059
  227. package/dist/server/config.mjs +1967 -2059
  228. package/dist/server/data.mjs +1967 -2059
  229. package/dist/server/index.mjs +186 -108
  230. package/dist/server/next.mjs +6553 -5285
  231. package/dist/server/page-converter.mjs +1031 -1844
  232. package/dist/server/prebuild.mjs +1 -1
  233. package/dist/server/rendering/server.mjs +3352 -3006
  234. package/dist/server/rendering.mjs +6289 -4924
  235. package/dist/server/routing.mjs +1906 -1036
  236. package/dist/server/server.mjs +1976 -2165
  237. package/dist/server/theme-bridge.mjs +949 -670
  238. package/dist/server/theme.mjs +252 -51
  239. package/dist/styles/index.css +295 -334
  240. package/package.json +3 -2
  241. package/dist/_dts/block-form/src/client/blockDraftSaveability.d.ts +0 -1
  242. package/dist/_dts/block-form/src/widgets/index.d.ts +0 -20
  243. package/dist/_dts/blocks/src/system/runtime/api/requestBody.d.ts +0 -7
  244. package/dist/client/clsx-DgIEfj3H.mjs +0 -16
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { t as clsx } from "./clsx-DgIEfj3H.mjs";
3
- import { B as groupEventsByDate, D as getEventRuntimeFiltersKey, E as buildEventRuntimeFilters, H as resolveEventLinkProps, I as formatEventTeacherLine, L as formatTime, P as formatEventPrice, R as getCardOrientation, W as getEventAvailability, Z as themeButtonClassName, bt as assertNever, j as formatDate, z as getContainerClass } from "./propsDecoder-CAZdhwjs.mjs";
4
- import { a as EventCardClient, i as EventPaginatedListView, n as useEventPagination, o as EventFilters, r as toError, t as useEventFilters } from "./useEventFilters-CULOa4nB.mjs";
5
- import { n as useBlockApi } from "./context-CJz1Vlsz.mjs";
2
+ import { D as clsx } from "./colorStyles-CrxJrPjJ.mjs";
3
+ import { B as groupEventsByDate, D as getEventRuntimeFiltersKey, E as buildEventRuntimeFilters, H as resolveEventLinkProps, I as formatEventTeacherLine, L as formatTime, P as formatEventPrice, R as getCardOrientation, W as getEventAvailability, Z as themeButtonClassName, j as formatDate, vt as assertNever, z as getContainerClass } from "./propsDecoder-CBPGXEYX.mjs";
4
+ import { a as EventCardClient, i as EventPaginatedListView, n as useEventPagination, o as EventFilters, r as toError, t as useEventFilters } from "./useEventFilters-pF_OJNQP.mjs";
5
+ import { n as useBlockApi } from "./context-B83PiNzm.mjs";
6
6
  import { t as createBodyThemePortalRoot } from "./themePortalRoot-AGs4cE7t.mjs";
7
7
  import { t as ModalShell } from "./ModalShell-CqkBvBIC.mjs";
8
8
  import React, { createContext, useCallback, useContext, useEffect, useId, useMemo, useReducer, useRef, useState } from "react";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { E as buildEventRuntimeFilters } from "./propsDecoder-CAZdhwjs.mjs";
3
- import { i as EventPaginatedListView, n as useEventPagination, o as EventFilters, t as useEventFilters } from "./useEventFilters-CULOa4nB.mjs";
2
+ import { E as buildEventRuntimeFilters } from "./propsDecoder-CBPGXEYX.mjs";
3
+ import { i as EventPaginatedListView, n as useEventPagination, o as EventFilters, t as useEventFilters } from "./useEventFilters-pF_OJNQP.mjs";
4
4
  import { useId, useMemo } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region ../blocks/src/system/runtime/nodes/events/EventListing.client.tsx
@@ -3,13 +3,25 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  function joinClasses(...parts) {
4
4
  return parts.filter((part) => typeof part === "string" && part.length > 0).join(" ");
5
5
  }
6
- function FeedbackMessage({ tone, children, className, id, title, titleClassName, bodyClassName, role = "status", live }) {
6
+ /**
7
+ * The class each treatment contributes on top of whatever the caller passed.
8
+ *
9
+ * `panel` contributes nothing: its callers already pass `alert alert-*`, so
10
+ * adopting the vocabulary changes no existing rendering. `field-note` needs a
11
+ * single hook — its tone styling keys off `data-feedback-tone` in the
12
+ * theme-generated CSS rather than off a second class.
13
+ */
14
+ function treatmentClass(treatment) {
15
+ return treatment === "field-note" ? "feedback-note" : void 0;
16
+ }
17
+ function FeedbackMessage({ tone, treatment = "panel", children, className, id, title, titleClassName, bodyClassName, role = "status", live }) {
7
18
  const resolvedLive = live ?? (role === "alert" ? "assertive" : "polite");
8
- const shouldWrapBody = Boolean(title || bodyClassName);
19
+ const shouldWrapBody = Boolean(title || bodyClassName) || treatment === "field-note";
9
20
  return /* @__PURE__ */ jsxs("div", {
10
21
  id,
11
- className,
22
+ className: joinClasses(className, treatmentClass(treatment)) || void 0,
12
23
  "data-feedback-tone": tone,
24
+ "data-feedback-treatment": treatment,
13
25
  role,
14
26
  "aria-live": resolvedLive === "off" ? void 0 : resolvedLive,
15
27
  children: [title ? /* @__PURE__ */ jsx("p", {
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { Y as isRecord } from "./propsDecoder-CAZdhwjs.mjs";
2
+ import { Y as isRecord } from "./propsDecoder-CBPGXEYX.mjs";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region ../blocks/src/system/runtime/nodes/shared/LeafletStaticMap.tsx
@@ -1,6 +1,6 @@
1
- import { t as clsx } from "./clsx-DgIEfj3H.mjs";
2
- import { Gt as formatCurrencyAmount } from "./propsDecoder-CAZdhwjs.mjs";
3
- import { a as CheckIcon } from "./scrollToBlock-DSSqVQr1.mjs";
1
+ import { D as clsx } from "./colorStyles-CrxJrPjJ.mjs";
2
+ import { Ut as formatCurrencyAmount } from "./propsDecoder-CBPGXEYX.mjs";
3
+ import { a as CheckIcon } from "./scrollToBlock-DZ73aEX6.mjs";
4
4
  import "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region ../blocks/src/system/runtime/shared/utils/formatting.ts
@@ -1,4 +1,4 @@
1
- import { t as defineIslandPropsDecoder } from "./propsDecoder-CAZdhwjs.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-CBPGXEYX.mjs";
2
2
  //#region src/rendering/islands/enhancers/accordion.ts
3
3
  const decode = defineIslandPropsDecoder("accordion");
4
4
  function parseDefaultValues(value) {
@@ -1,13 +1,13 @@
1
1
  "use client";
2
- import { d as unsafeAsAppointmentResourceId, f as unsafeAsAppointmentServiceId, g as unsafeAsPassId, m as unsafeAsFormId, p as unsafeAsCustomerPassId } from "./colorStyles-BWpj_h4C.mjs";
3
- import { n as buildBookingPaymentSelectionViewModel, t as usePolling } from "./usePolling-BGG_8-jl.mjs";
4
- import { At as formatBookingInstant, Dt as addLocalScheduleDays, Et as reportWorkflowSuccess, Ft as resolveBookingTimeZoneId, Gt as formatCurrencyAmount, Mt as formatLocalScheduleDate, Pt as parseBookingLocalDate, St as err, Tt as reportWorkflowError, Z as themeButtonClassName, _t as resolveDefaultBookingServiceId, at as deriveBookingFormViewState, bt as assertNever, ct as getBookingRedirectStateFromLocation, dt as isBookingServiceSlidingAmountInRange, ft as parseBookingCurrencyInputToCents, gt as resolveBookingSiteId, ht as resolveBookingPaymentStep, it as logger, lt as getBookingServiceSlidingScale, mt as resolveAppointmentCheckoutVerificationState, ot as formatBookingCentsAsCurrencyInput, pt as prepareBookingSubmission, st as formatBookingSubmissionPreparationError, t as defineIslandPropsDecoder, ut as getBookingSuccessMessage, vt as toSelectedCollectionOptionKind, wt as okWith, xt as clearWorkflowFeedback, yt as BOOKING_FORM_DATA_RESERVED_KEYS } from "./propsDecoder-CAZdhwjs.mjs";
5
- import { n as useBlockApi, t as BlockApiProvider } from "./context-CJz1Vlsz.mjs";
2
+ import { S as unsafeAsPassId, _ as unsafeAsAppointmentResourceId, b as unsafeAsFormId, v as unsafeAsAppointmentServiceId, y as unsafeAsCustomerPassId } from "./colorStyles-CrxJrPjJ.mjs";
3
+ import { n as buildBookingPaymentSelectionViewModel, t as usePolling } from "./usePolling-Cls91SD2.mjs";
4
+ import { At as formatLocalScheduleDate, Ct as reportWorkflowError, Mt as parseBookingLocalDate, Nt as resolveBookingTimeZoneId, Ot as formatBookingInstant, St as okWith, Tt as addLocalScheduleDays, Ut as formatCurrencyAmount, Z as themeButtonClassName, _t as BOOKING_FORM_DATA_RESERVED_KEYS, at as formatBookingSubmissionPreparationError, bt as err, ct as getBookingSuccessMessage, dt as prepareBookingSubmission, ft as resolveAppointmentCheckoutVerificationState, gt as toSelectedCollectionOptionKind, ht as resolveDefaultBookingServiceId, it as formatBookingCentsAsCurrencyInput, lt as isBookingServiceSlidingAmountInRange, mt as resolveBookingSiteId, nt as logger, ot as getBookingRedirectStateFromLocation, pt as resolveBookingPaymentStep, rt as deriveBookingFormViewState, st as getBookingServiceSlidingScale, t as defineIslandPropsDecoder, ut as parseBookingCurrencyInputToCents, vt as assertNever, wt as reportWorkflowSuccess, yt as clearWorkflowFeedback } from "./propsDecoder-CBPGXEYX.mjs";
5
+ import { n as useBlockApi, t as BlockApiProvider } from "./context-B83PiNzm.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-DSSqVQr1.mjs";
8
- import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-Ur-Xx1U_.mjs";
9
- import { n as SpinnerNode, t as StepIndicator } from "./StepIndicator-BfbdiVQI.mjs";
10
- import { t as FeedbackMessage } from "./FeedbackMessage-ByMrs3cr.mjs";
7
+ import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-DZ73aEX6.mjs";
8
+ import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-BPZ-yfGI.mjs";
9
+ import { n as SpinnerNode, t as StepIndicator } from "./StepIndicator-CLjQhkDb.mjs";
10
+ import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
11
11
  import { n as getFieldValidationControlProps, t as FieldValidationMessage } from "./FieldValidationMessage-AYanWFb-.mjs";
12
12
  import { t as buildCheckoutReturnUrls } from "./checkoutUrls-Ct8Mxna3.mjs";
13
13
  import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
@@ -641,8 +641,12 @@ function useBookingSubmission(_siteId) {
641
641
  };
642
642
  }
643
643
  //#endregion
644
- //#region ../blocks/src/system/runtime/nodes/booking-form.headless.state.ts
645
- const unsafeAsBookingFieldId = (id) => id;
644
+ //#region ../blocks/src/system/runtime/nodes/booking-form.validationErrors.ts
645
+ function omitRecordKey(record, key) {
646
+ if (!(key in record)) return record;
647
+ const { [key]: _removed, ...rest } = record;
648
+ return rest;
649
+ }
646
650
  function createEmptyBookingValidationErrors() {
647
651
  return {
648
652
  formError: null,
@@ -677,6 +681,9 @@ function clearBookingFieldError(errors, fieldId) {
677
681
  fieldErrors: omitRecordKey(errors.fieldErrors, fieldId)
678
682
  };
679
683
  }
684
+ //#endregion
685
+ //#region ../blocks/src/system/runtime/nodes/booking-form.headless.state.ts
686
+ const unsafeAsBookingFieldId = (id) => id;
680
687
  function createInitialBookingFlowReducerState(input) {
681
688
  const initialData = input.initialData ?? {};
682
689
  return {
@@ -688,6 +695,7 @@ function createInitialBookingFlowReducerState(input) {
688
695
  selectedSlot: null,
689
696
  fieldValues: collectInitialFieldValues(initialData),
690
697
  touchedFields: {},
698
+ attemptedStepIds: {},
691
699
  discountCode: toOptionalString(initialData.discountCode) ?? "",
692
700
  selectedSlidingAmountInput: toOptionalString(initialData.selectedSlidingAmountInput) ?? "",
693
701
  selectedCollectionOptionKind: toSelectedCollectionOptionKind(initialData.selectedCollectionOptionKind),
@@ -726,6 +734,25 @@ function toOptionalCustomerPassId(value) {
726
734
  function isBookingFieldValue(value) {
727
735
  return value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean" || Array.isArray(value) && value.every((item) => typeof item === "string");
728
736
  }
737
+ /**
738
+ * Send the flow back to the date step when the slot it was holding went away,
739
+ * leaving a scoped feedback message. A completed booking is left alone.
740
+ */
741
+ function applyAvailabilitySelectionInvalidation(state, invalidation) {
742
+ if (state.phase !== "editing") return state;
743
+ return {
744
+ ...state,
745
+ currentStepId: "datetime-selection",
746
+ selectedDate: invalidation.kind === "date_unavailable" ? void 0 : state.selectedDate,
747
+ selectedSlot: null,
748
+ feedback: {
749
+ kind: "error",
750
+ scope: "availability",
751
+ message: invalidation.message
752
+ },
753
+ validationErrors: clearBookingFormError(state.validationErrors)
754
+ };
755
+ }
729
756
  function bookingFlowReducer(state, event) {
730
757
  switch (event.type) {
731
758
  case "service-selected": return {
@@ -774,6 +801,13 @@ function bookingFlowReducer(state, event) {
774
801
  [event.fieldId]: true
775
802
  }
776
803
  };
804
+ case "step-advance-attempted": return state.attemptedStepIds[event.stepId] ? state : {
805
+ ...state,
806
+ attemptedStepIds: {
807
+ ...state.attemptedStepIds,
808
+ [event.stepId]: true
809
+ }
810
+ };
777
811
  case "payment-option-selected": return {
778
812
  ...state,
779
813
  selectedCollectionOptionKind: event.kind ?? void 0,
@@ -820,20 +854,7 @@ function bookingFlowReducer(state, event) {
820
854
  phase: event.feedback.kind === "success" ? "completed" : "editing",
821
855
  feedback: event.feedback
822
856
  };
823
- case "availability-selection-invalidated":
824
- if (state.phase !== "editing") return state;
825
- return {
826
- ...state,
827
- currentStepId: "datetime-selection",
828
- selectedDate: event.invalidation.kind === "date_unavailable" ? void 0 : state.selectedDate,
829
- selectedSlot: null,
830
- feedback: {
831
- kind: "error",
832
- scope: "availability",
833
- message: event.invalidation.message
834
- },
835
- validationErrors: clearBookingFormError(state.validationErrors)
836
- };
857
+ case "availability-selection-invalidated": return applyAvailabilitySelectionInvalidation(state, event.invalidation);
837
858
  case "feedback-cleared": return {
838
859
  ...state,
839
860
  phase: "editing",
@@ -1064,6 +1085,7 @@ function deriveBookingFlowSteps(input) {
1064
1085
  requiresResourceSelection: input.requiresResourceSelection,
1065
1086
  paymentResolution: stepResolution.paymentResolution
1066
1087
  }));
1088
+ const attemptedStepIds = input.attemptedStepIds ?? {};
1067
1089
  const steps = stepPlan.map((step, index) => {
1068
1090
  const validation = validations.get(step.id) ?? { ok: true };
1069
1091
  const state = index < currentStepIndex ? "complete" : index === currentStepIndex ? "active" : "available";
@@ -1073,7 +1095,7 @@ function deriveBookingFlowSteps(input) {
1073
1095
  state,
1074
1096
  index,
1075
1097
  visibleIndex: index,
1076
- errors: validation.ok ? createEmptyBookingValidationErrors() : validation.errors,
1098
+ errors: validation.ok || !attemptedStepIds[step.id] ? createEmptyBookingValidationErrors() : validation.errors,
1077
1099
  canEnter: index <= currentStepIndex,
1078
1100
  canLeave: validation.ok
1079
1101
  };
@@ -1299,11 +1321,6 @@ function isBlankFieldValue(value) {
1299
1321
  if (Array.isArray(value)) return value.length === 0;
1300
1322
  return false;
1301
1323
  }
1302
- function omitRecordKey(record, key) {
1303
- if (!(key in record)) return record;
1304
- const { [key]: _removed, ...rest } = record;
1305
- return rest;
1306
- }
1307
1324
  //#endregion
1308
1325
  //#region ../blocks/src/system/runtime/hooks/useHeadlessBookingFlow.ts
1309
1326
  function useHeadlessBookingFlow(options) {
@@ -1377,9 +1394,11 @@ function useHeadlessBookingFlow(options) {
1377
1394
  currentStepId: state.currentStepId,
1378
1395
  requiresServiceSelection: options.requiresServiceSelection,
1379
1396
  requiresResourceSelection: options.requiresResourceSelection,
1380
- enableAppointmentPackages: options.enableAppointmentPackages
1397
+ enableAppointmentPackages: options.enableAppointmentPackages,
1398
+ attemptedStepIds: state.attemptedStepIds
1381
1399
  }), [
1382
1400
  data,
1401
+ state.attemptedStepIds,
1383
1402
  defaultServiceId,
1384
1403
  defaultResourceId,
1385
1404
  options.enableAppointmentPackages,
@@ -1731,6 +1750,10 @@ function useHeadlessBookingFlow(options) {
1731
1750
  if (!latest.currentStep) return { ok: true };
1732
1751
  const validation = latest.validations.get(latest.currentStep.id) ?? { ok: true };
1733
1752
  if (!validation.ok) {
1753
+ dispatch({
1754
+ type: "step-advance-attempted",
1755
+ stepId: latest.currentStep.id
1756
+ });
1734
1757
  dispatch({
1735
1758
  type: "validation-errors-set",
1736
1759
  errors: validation.errors
@@ -2856,16 +2879,10 @@ function DefaultBookingErrorSummary({ errors, id }) {
2856
2879
  if (!hasBookingValidationErrors(errors)) return null;
2857
2880
  return /* @__PURE__ */ jsxs(FeedbackMessage, {
2858
2881
  tone: "error",
2859
- className: "rb-mt-6 alert alert-error",
2882
+ treatment: "field-note",
2860
2883
  id,
2861
2884
  role: "alert",
2862
- children: [errors.formError ? /* @__PURE__ */ jsx("p", {
2863
- className: "rb-caption",
2864
- children: /* @__PURE__ */ jsx("strong", { children: errors.formError })
2865
- }) : null, Object.entries(errors.fieldErrors).map(([key, message]) => /* @__PURE__ */ jsx("p", {
2866
- className: "rb-caption",
2867
- children: message
2868
- }, key))]
2885
+ 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))]
2869
2886
  });
2870
2887
  }
2871
2888
  function SelectedCheck() {