@riverbankcms/sdk 0.79.0 → 0.81.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 (327) hide show
  1. package/dist/PreviewEditorSidebar-RDCMEXIJ.mjs +3163 -0
  2. package/dist/{PreviewEditorUI-27KJVEET.mjs → PreviewEditorUI-NYGQ6K7B.mjs} +194 -30
  3. package/dist/SdkPreviewModeRuntime-AKCSCZEC.mjs +8 -0
  4. package/dist/_dts/ai/src/contracts/proposals.d.ts +20 -0
  5. package/dist/_dts/api/src/contentRuntime.d.ts +12 -0
  6. package/dist/_dts/api/src/contentTypes.d.ts +6 -0
  7. package/dist/_dts/api/src/endpoints.d.ts +24 -0
  8. package/dist/_dts/api/src/index.d.ts +3 -3
  9. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +53 -0
  10. package/dist/_dts/api/src/siteInfrastructure.d.ts +124 -0
  11. package/dist/_dts/api/src/siteOnboarding.d.ts +13 -0
  12. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +10 -1
  13. package/dist/_dts/block-form/src/backend/store-backend.d.ts +3 -1
  14. package/dist/_dts/block-form/src/backend/types.d.ts +3 -3
  15. package/dist/_dts/block-form/src/client/index.d.ts +2 -0
  16. package/dist/_dts/block-form/src/index.d.ts +2 -0
  17. package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +2 -1
  18. package/dist/_dts/blocks/src/PageRenderer.d.ts +3 -0
  19. package/dist/_dts/blocks/src/client/header.d.ts +1 -1
  20. package/dist/_dts/blocks/src/client.d.ts +12 -12
  21. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +20 -28
  22. package/dist/_dts/blocks/src/index.d.ts +7 -5
  23. package/dist/_dts/blocks/src/primitives/content/components/Text.d.ts +1 -1
  24. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +1 -0
  25. package/dist/_dts/blocks/src/server.d.ts +1 -1
  26. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +3 -2
  27. package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -2
  28. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
  29. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +135 -0
  30. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +9 -1
  31. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +2 -0
  32. package/dist/_dts/blocks/src/system/blocks/form.d.ts +20 -1
  33. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +2 -0
  34. package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +19 -0
  35. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +134 -0
  36. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +7 -1
  37. package/dist/_dts/blocks/src/system/componentFactory.d.ts +1 -0
  38. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  39. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  40. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +34 -15
  41. package/dist/_dts/blocks/src/system/data/index.d.ts +2 -0
  42. package/dist/_dts/blocks/src/system/data/linkedContentEntries.d.ts +64 -0
  43. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  44. package/dist/_dts/blocks/src/system/designCapabilities.d.ts +2 -2
  45. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +10 -3
  46. package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +5 -0
  47. package/dist/_dts/blocks/src/system/media/slotContracts.d.ts +2 -0
  48. package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +1 -4
  49. package/dist/_dts/blocks/src/system/node/types.d.ts +8 -1
  50. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +2 -2
  51. package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
  52. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +51 -57
  53. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -27
  54. package/dist/_dts/blocks/src/system/runtime/header/enhanceHeaderSection.d.ts +10 -2
  55. package/dist/_dts/blocks/src/system/runtime/headingDecoration.d.ts +21 -0
  56. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +45 -14
  57. package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.d.ts +2 -9
  58. package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.d.ts +1 -10
  59. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +1 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +21 -16
  61. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +3 -2
  62. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +21 -16
  63. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +22 -33
  64. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.server.d.ts +2 -2
  65. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventSpotlight.d.ts +2 -2
  66. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +2 -2
  67. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventDetailModal.d.ts +2 -2
  68. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -2
  69. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventPaginatedListView.client.d.ts +2 -3
  70. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +3 -3
  71. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listOptions.d.ts +50 -0
  72. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +2 -1
  73. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -2
  74. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +29 -14
  75. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +21 -0
  76. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +7 -0
  77. package/dist/_dts/blocks/src/system/transforms/registry/_utils/sectionForegroundStyles.d.ts +2 -0
  78. package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +7 -2
  79. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +9 -0
  80. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +14 -1
  81. package/dist/_dts/calendar/src/grid.d.ts +27 -0
  82. package/dist/_dts/calendar/src/index.d.ts +2 -2
  83. package/dist/_dts/content-editor/src/controller/useAutosaveTriggers.d.ts +3 -1
  84. package/dist/_dts/content-editor/src/editorTransactionState.d.ts +1 -0
  85. package/dist/_dts/content-editor/src/hooks/autosaveScopePlanning.d.ts +26 -0
  86. package/dist/_dts/content-editor/src/hooks/publishability.d.ts +1 -0
  87. package/dist/_dts/content-editor/src/hooks/useLinkedEntryAutosave.d.ts +23 -0
  88. package/dist/_dts/content-editor/src/hooks/useReactiveToolbar.d.ts +1 -1
  89. package/dist/_dts/content-editor/src/hooks/useSimpleAutosave.d.ts +2 -2
  90. package/dist/_dts/content-editor/src/index.d.ts +3 -1
  91. package/dist/_dts/content-editor/src/lib/json.d.ts +2 -0
  92. package/dist/_dts/content-editor/src/linkedEntries/domain.d.ts +8 -0
  93. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +58 -0
  94. package/dist/_dts/content-editor/src/ui/editorTransactionState.d.ts +93 -0
  95. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +60 -3
  96. package/dist/_dts/content-editor/src/ui/stores/autosaveStore.d.ts +2 -0
  97. package/dist/_dts/content-editor/src/ui/stores/types.d.ts +1 -1
  98. package/dist/_dts/content-model/src/content-types/builtins.d.ts +43 -0
  99. package/dist/_dts/content-model/src/metadataConfig.d.ts +87 -47
  100. package/dist/_dts/core/src/branded.d.ts +5 -0
  101. package/dist/_dts/core/src/index.d.ts +1 -0
  102. package/dist/_dts/core/src/stable-json.d.ts +1 -0
  103. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +9 -3
  104. package/dist/_dts/editor/src/EditorProvider.d.ts +26 -0
  105. package/dist/_dts/editor/src/chrome/EditorChrome.d.ts +26 -0
  106. package/dist/_dts/editor/src/chrome/EditorStatusBar.d.ts +45 -0
  107. package/dist/_dts/editor/src/chrome/statusBarPresentation.d.ts +25 -0
  108. package/dist/_dts/editor/src/components/EditingToggle.d.ts +9 -0
  109. package/dist/_dts/editor/src/hooks/useEditableElement.d.ts +18 -0
  110. package/dist/_dts/editor/src/index.d.ts +29 -0
  111. package/dist/_dts/editor/src/inline/InlineTextEditor.d.ts +1 -0
  112. package/dist/_dts/editor/src/lib/utils.d.ts +1 -0
  113. package/dist/_dts/editor/src/primitives/EditorPrimitivesProvider.d.ts +20 -0
  114. package/dist/_dts/editor/src/primitives/InlineFieldContext.d.ts +11 -0
  115. package/dist/_dts/editor/src/primitives/SaveContext.d.ts +12 -0
  116. package/dist/_dts/editor/src/primitives/helpers.d.ts +1 -0
  117. package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +26 -0
  118. package/dist/_dts/editor/src/primitives/rich-text/RichTextToolbar.d.ts +16 -0
  119. package/dist/_dts/editor/src/primitives/rich-text/config.d.ts +23 -0
  120. package/dist/_dts/editor/src/primitives/rich-text/extensions/RichTextImage.d.ts +2 -0
  121. package/dist/_dts/editor/src/primitives/rich-text/extensions/RichTextLink.d.ts +1 -0
  122. package/dist/_dts/editor/src/primitives/rich-text/imageActions.d.ts +22 -0
  123. package/dist/_dts/editor/src/primitives/rich-text/sanitize.d.ts +23 -0
  124. package/dist/_dts/editor/src/primitives/rich-text/toolbar/BlockTypeDropdown.d.ts +6 -0
  125. package/dist/_dts/editor/src/primitives/rich-text/toolbar/LinkPopover.d.ts +10 -0
  126. package/dist/_dts/editor/src/primitives/rich-text/toolbar/ToolbarIconButton.d.ts +11 -0
  127. package/dist/_dts/editor/src/primitives/rich-text/toolbar/linkPopoverUtils.d.ts +58 -0
  128. package/dist/_dts/editor/src/primitives/rich-text/useRichTextEditor.d.ts +19 -0
  129. package/dist/_dts/editor/src/primitives/rich-text/utils.d.ts +20 -0
  130. package/dist/_dts/editor/src/utils/optimisticTokens.d.ts +27 -0
  131. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -2
  132. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +5 -9
  133. package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +2 -6
  134. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +6 -10
  135. package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +2 -6
  136. package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +6 -4
  137. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +4 -8
  138. package/dist/_dts/editor-blocks/src/block-editor/actionPresentation.d.ts +15 -0
  139. package/dist/_dts/editor-blocks/src/block-editor/blockHeaderActionPlan.d.ts +49 -0
  140. package/dist/_dts/editor-blocks/src/index.d.ts +2 -0
  141. package/dist/_dts/editor-blocks/src/widgets/index.d.ts +1 -0
  142. package/dist/_dts/editor-blocks/src/widgets/rich-text/RichTextWidgetProvider.d.ts +1 -1
  143. package/dist/_dts/editor-blocks/src/widgets/rich-text/useImagePicker.d.ts +1 -1
  144. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/SiteOptionPickerField.d.ts +3 -0
  145. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/SiteOptionWidgetProvider.d.ts +14 -0
  146. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/index.d.ts +6 -0
  147. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +51 -0
  148. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/types.d.ts +20 -0
  149. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +5 -0
  150. package/dist/_dts/media-core/src/index.d.ts +1 -0
  151. package/dist/_dts/media-core/src/renderableMediaAsset.d.ts +18 -0
  152. package/dist/_dts/media-editor/src/MediaEditor.d.ts +4 -1
  153. package/dist/_dts/media-editor/src/MediaPickerDialog.d.ts +2 -1
  154. package/dist/_dts/media-editor/src/index.d.ts +1 -1
  155. package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +7 -2
  156. package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +5 -1
  157. package/dist/_dts/preview-next/src/client/blocks/blockCustomizePopoverRows.d.ts +25 -0
  158. package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +2 -1
  159. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +4 -30
  160. package/dist/_dts/preview-next/src/client/blocks/linkedEntryRenderOverlay.d.ts +11 -0
  161. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeActions.d.ts +3 -9
  162. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeControlPlan.d.ts +24 -0
  163. package/dist/_dts/preview-next/src/client/blocks/useBlockCustomizeControls.d.ts +35 -0
  164. package/dist/_dts/preview-next/src/client/index.d.ts +0 -1
  165. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +3 -1
  166. package/dist/_dts/preview-next/src/client/preview/LinkedEntryEditEventBridge.d.ts +1 -0
  167. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +5 -6
  168. package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +4 -1
  169. package/dist/_dts/preview-next/src/client/preview/PreviewBlockCustomizeSelectionContext.d.ts +20 -0
  170. package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +20 -0
  171. package/dist/_dts/preview-next/src/client/preview/PreviewDesignHistoryOrderContext.d.ts +13 -0
  172. package/dist/_dts/preview-next/src/client/preview/PreviewOpenEditorButton.d.ts +2 -0
  173. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +19 -19
  174. package/dist/_dts/preview-next/src/client/preview/PreviewSidebarSection.d.ts +13 -0
  175. package/dist/_dts/preview-next/src/client/preview/SelectedBlockCustomizePanel.d.ts +13 -0
  176. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +47 -4
  177. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +14 -1
  178. package/dist/_dts/preview-next/src/client/preview/linkedEntryEditEvents.d.ts +5 -0
  179. package/dist/_dts/preview-next/src/client/preview/previewChromePlacement.d.ts +46 -0
  180. package/dist/_dts/preview-next/src/client/preview/previewCustomizeControls.d.ts +68 -0
  181. package/dist/_dts/preview-next/src/client/preview/previewCustomizeEditorDraftPatch.d.ts +13 -0
  182. package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +8 -1
  183. package/dist/_dts/preview-next/src/client/preview/previewCustomizeRuntimePatch.d.ts +2 -0
  184. package/dist/_dts/preview-next/src/client/preview/previewCustomizeWorkflowState.d.ts +11 -9
  185. package/dist/_dts/preview-next/src/client/preview/previewDesignHistoryOrder.d.ts +18 -0
  186. package/dist/_dts/preview-next/src/client/preview/previewUndoDomains.d.ts +1 -1
  187. package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +41 -0
  188. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +101 -0
  189. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +29 -0
  190. package/dist/_dts/preview-next/src/client/preview/siteStyleHistoryState.d.ts +55 -0
  191. package/dist/_dts/preview-next/src/client/preview/storeTypes.d.ts +4 -0
  192. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -0
  193. package/dist/_dts/preview-next/src/client/widgets/widgetAdapters.d.ts +2 -1
  194. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +6 -3
  195. package/dist/_dts/preview-next/src/constants.d.ts +0 -1
  196. package/dist/_dts/sdk/src/cli/commands/webhooks.d.ts +44 -0
  197. package/dist/_dts/sdk/src/cli/config-loader.d.ts +3 -1
  198. package/dist/_dts/sdk/src/cli/content/reader.d.ts +5 -3
  199. package/dist/_dts/sdk/src/cli/site-commands/commandSurfaceDispatch.d.ts +1 -0
  200. package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +3 -1
  201. package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +1 -0
  202. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  203. package/dist/_dts/sdk/src/client/management/types.d.ts +56 -0
  204. package/dist/_dts/sdk/src/client/management/webhooks.d.ts +3 -0
  205. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  206. package/dist/_dts/sdk/src/config/validation.d.ts +3 -3
  207. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +34 -5
  208. package/dist/_dts/sdk/src/public-api/contracts.d.ts +10 -0
  209. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +42 -0
  210. package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +4 -0
  211. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  212. package/dist/_dts/sdk/src/version.d.ts +1 -1
  213. package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +220 -0
  214. package/dist/_dts/theme-core/src/accordions/types.d.ts +45 -2
  215. package/dist/_dts/theme-core/src/blockOverrides.d.ts +8 -0
  216. package/dist/_dts/theme-core/src/blocks/types.d.ts +1 -1
  217. package/dist/_dts/theme-core/src/blocks/vars/testimonials.d.ts +4 -1
  218. package/dist/_dts/theme-core/src/buttons/constants.d.ts +26 -1
  219. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  220. package/dist/_dts/theme-core/src/buttons/personalities/joy-stamp.d.ts +22 -0
  221. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +2 -1
  222. package/dist/_dts/theme-core/src/buttons/types.d.ts +9 -0
  223. package/dist/_dts/theme-core/src/cards/core.d.ts +20 -0
  224. package/dist/_dts/theme-core/src/cards/generateDefaultCardSystem.d.ts +6 -3
  225. package/dist/_dts/theme-core/src/cards/siteStyleDefaults.d.ts +149 -0
  226. package/dist/_dts/theme-core/src/cards/types.d.ts +177 -0
  227. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  228. package/dist/_dts/theme-core/src/interactive/types.d.ts +10 -0
  229. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +180 -21
  230. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +30 -0
  231. package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +16 -0
  232. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +1 -1
  233. package/dist/_dts/theme-core/src/palette/variants/warm-dark.d.ts +27 -0
  234. package/dist/_dts/theme-core/src/schema.d.ts +486 -55
  235. package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +4 -1
  236. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +172 -47
  237. package/dist/_dts/theme-core/src/site-styles/appearancePresetResolution.d.ts +6 -2
  238. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +2 -3
  239. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +172 -47
  240. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +140 -2
  241. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +18 -2
  242. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +20 -1
  243. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +10 -2
  244. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +291 -6
  245. package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
  246. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +193 -0
  247. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +3 -23
  248. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +276 -4
  249. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +2 -8
  250. package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +2 -0
  251. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +43 -10
  252. package/dist/_dts/theme-core/src/site-styles/sectionTransitions.d.ts +508 -0
  253. package/dist/_dts/theme-core/src/site-styles/siteStyleThemeCompiler.d.ts +11 -0
  254. package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +10 -10
  255. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  256. package/dist/_dts/theme-core/src/site-styles/testimonialQuotePresets.d.ts +15 -0
  257. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  258. package/dist/_dts/theme-core/src/site-styles/types.d.ts +28 -32
  259. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +16 -1
  260. package/dist/{chunk-4HCW7FHJ.mjs → chunk-3PTVPAT4.mjs} +1984 -1142
  261. package/dist/{PreviewEditorSidebar-56NMJMIK.mjs → chunk-3QWQ2MUQ.mjs} +1050 -2609
  262. package/dist/{chunk-GP555I66.mjs → chunk-3VT7LZY2.mjs} +413 -157
  263. package/dist/{chunk-A3HHFKVT.mjs → chunk-4T5JIPWY.mjs} +1 -1
  264. package/dist/{chunk-K2IIF34C.mjs → chunk-E3NZYEKF.mjs} +25 -7
  265. package/dist/{chunk-V47ZU33I.mjs → chunk-WUHKQBB6.mjs} +12062 -3211
  266. package/dist/cli/index.mjs +3395 -817
  267. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +16 -4
  268. package/dist/client/{accordion-QLA7KBYO.mjs → accordion-SFIIZWNH.mjs} +2 -2
  269. package/dist/client/{bookingForm-PYZIPA5G.mjs → bookingForm-CFKZVWGA.mjs} +5 -5
  270. package/dist/client/bookings.mjs +1422 -345
  271. package/dist/client/{carousel-5EIULWBI.mjs → carousel-ELXWSBLA.mjs} +3 -3
  272. package/dist/client/{cart-DOP3FNI4.mjs → cart-6SSCPYY5.mjs} +6 -6
  273. package/dist/client/{checkout-BVMF6FBV.mjs → checkout-UFQ34HPV.mjs} +6 -6
  274. package/dist/client/{chunk-44K2U3QI.mjs → chunk-76JUETXQ.mjs} +139 -186
  275. package/dist/client/{chunk-AUJ5DBZJ.mjs → chunk-7BXX7WXH.mjs} +112 -28
  276. package/dist/client/{chunk-UDS3NTWA.mjs → chunk-G56BSZAM.mjs} +2 -2
  277. package/dist/client/{chunk-V6M5FCR5.mjs → chunk-IUEDYLFJ.mjs} +1 -1
  278. package/dist/client/{chunk-YLDYVRZL.mjs → chunk-NP47RHIX.mjs} +5 -5
  279. package/dist/client/{chunk-R5ESWNKX.mjs → chunk-NX6X3GRF.mjs} +419 -85
  280. package/dist/client/{chunk-CCNTDRCF.mjs → chunk-PA2LJH2M.mjs} +2 -2
  281. package/dist/client/{chunk-CE7IBGVW.mjs → chunk-RMWMT3ZD.mjs} +1 -1
  282. package/dist/client/{chunk-TYONZMST.mjs → chunk-TCJS3NY5.mjs} +1 -1
  283. package/dist/client/{chunk-GG4M2NP6.mjs → chunk-V6XI4M2Q.mjs} +1 -1
  284. package/dist/client/client.mjs +9077 -4410
  285. package/dist/client/{courseRegistration-E6EAA6NL.mjs → courseRegistration-HJIISAAG.mjs} +5 -5
  286. package/dist/client/{eventCalendar-HBG3HAK6.mjs → eventCalendar-F6YVUCZR.mjs} +7 -7
  287. package/dist/client/{eventCombined-6K5ZZWAK.mjs → eventCombined-B5DSTIOK.mjs} +7 -7
  288. package/dist/client/{eventDetails-Q75ICXLT.mjs → eventDetails-SEJDDHQC.mjs} +7 -7
  289. package/dist/client/{eventListing-27P5F7DZ.mjs → eventListing-TPMWIIBO.mjs} +7 -7
  290. package/dist/client/{eventRegistration-IQ7AMASR.mjs → eventRegistration-QU6W2PV6.mjs} +7 -7
  291. package/dist/client/{form-JRTD65FN.mjs → form-LVTYNTDE.mjs} +2 -2
  292. package/dist/client/{headerSection-7FPSSZHS.mjs → headerSection-SO3MFC4U.mjs} +110 -28
  293. package/dist/client/hooks.mjs +4695 -2260
  294. package/dist/client/{locationMap-7NGFNYBH.mjs → locationMap-5E5FLAKO.mjs} +2 -2
  295. package/dist/client/{newsletterForm-F3BADCI2.mjs → newsletterForm-GN32JEBQ.mjs} +2 -2
  296. package/dist/client/{productDetail-V3HP7ITJ.mjs → productDetail-Q346KSVR.mjs} +6 -6
  297. package/dist/client/{productList-L3EGJUF2.mjs → productList-DTDMQYGZ.mjs} +6 -6
  298. package/dist/client/rendering/client.mjs +5795 -3582
  299. package/dist/client/rendering/islands.mjs +32 -20
  300. package/dist/client/rendering.mjs +7988 -3317
  301. package/dist/client/{shop-DQUB5E2C.mjs → shop-OFUW7KPN.mjs} +6 -6
  302. package/dist/preview-next/before-render.mjs +24 -0
  303. package/dist/preview-next/client/runtime.mjs +5 -5
  304. package/dist/preview-next/constants.mjs +0 -2
  305. package/dist/preview-next/index.mjs +0 -2
  306. package/dist/preview-next/middleware.mjs +24 -0
  307. package/dist/{sdk-runtime-AF6KXJU4.mjs → sdk-runtime-2GIX6I7X.mjs} +6 -6
  308. package/dist/server/components.mjs +7384 -3089
  309. package/dist/server/config-validation.mjs +4747 -2418
  310. package/dist/server/config.mjs +4747 -2418
  311. package/dist/server/data.mjs +4695 -2260
  312. package/dist/server/index.mjs +26 -1
  313. package/dist/server/next.mjs +7430 -3039
  314. package/dist/server/page-converter.mjs +3985 -2070
  315. package/dist/server/prebuild.mjs +1 -1
  316. package/dist/server/rendering/server.mjs +7489 -3094
  317. package/dist/server/rendering.mjs +7491 -3096
  318. package/dist/server/routing.mjs +4965 -2386
  319. package/dist/server/server.mjs +4713 -2278
  320. package/dist/server/theme-bridge.mjs +2181 -383
  321. package/dist/server/theme.mjs +477 -222
  322. package/dist/styles/index.css +747 -71
  323. package/package.json +1 -1
  324. package/dist/SdkPreviewModeRuntime-H4BSP6E7.mjs +0 -8
  325. package/dist/_dts/editor-blocks/src/block-editor/actionControlMode.d.ts +0 -2
  326. package/dist/_dts/preview-next/src/client/preview/previewSurface.d.ts +0 -3
  327. package/dist/chunk-LCY32PXF.mjs +0 -1175
@@ -1,7 +1,7 @@
1
- import { normalizeCarouselProps, CarouselNodeClient } from './chunk-UDS3NTWA.mjs';
1
+ import { normalizeCarouselProps, CarouselNodeClient } from './chunk-G56BSZAM.mjs';
2
2
  import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
3
- import { defineIslandPropsDecoder } from './chunk-R5ESWNKX.mjs';
4
- import './chunk-AUJ5DBZJ.mjs';
3
+ import { defineIslandPropsDecoder } from './chunk-NX6X3GRF.mjs';
4
+ import './chunk-7BXX7WXH.mjs';
5
5
  import { jsx } from 'react/jsx-runtime';
6
6
 
7
7
  var decode = defineIslandPropsDecoder("carousel");
@@ -1,15 +1,15 @@
1
- import { mountShopBlockIsland, CartClient } from './chunk-YLDYVRZL.mjs';
2
- import './chunk-TYONZMST.mjs';
3
- import './chunk-UDS3NTWA.mjs';
1
+ import { mountShopBlockIsland, CartClient } from './chunk-NP47RHIX.mjs';
2
+ import './chunk-TCJS3NY5.mjs';
3
+ import './chunk-G56BSZAM.mjs';
4
4
  import './chunk-I2MMZO53.mjs';
5
5
  import './chunk-ZFHRN6W2.mjs';
6
- import './chunk-CCNTDRCF.mjs';
6
+ import './chunk-PA2LJH2M.mjs';
7
7
  import './chunk-3DCJ45Z2.mjs';
8
8
  import './chunk-3PEDD5KJ.mjs';
9
9
  import './chunk-UDNSI5PY.mjs';
10
10
  import './chunk-N7PBWBWQ.mjs';
11
- import { defineIslandPropsDecoder } from './chunk-R5ESWNKX.mjs';
12
- import './chunk-AUJ5DBZJ.mjs';
11
+ import { defineIslandPropsDecoder } from './chunk-NX6X3GRF.mjs';
12
+ import './chunk-7BXX7WXH.mjs';
13
13
 
14
14
  // src/rendering/islands/enhancers/cart.tsx
15
15
  var decode = defineIslandPropsDecoder("cart");
@@ -1,15 +1,15 @@
1
- import { mountShopBlockIsland, CheckoutClient } from './chunk-YLDYVRZL.mjs';
2
- import './chunk-TYONZMST.mjs';
3
- import './chunk-UDS3NTWA.mjs';
1
+ import { mountShopBlockIsland, CheckoutClient } from './chunk-NP47RHIX.mjs';
2
+ import './chunk-TCJS3NY5.mjs';
3
+ import './chunk-G56BSZAM.mjs';
4
4
  import './chunk-I2MMZO53.mjs';
5
5
  import './chunk-ZFHRN6W2.mjs';
6
- import './chunk-CCNTDRCF.mjs';
6
+ import './chunk-PA2LJH2M.mjs';
7
7
  import './chunk-3DCJ45Z2.mjs';
8
8
  import './chunk-3PEDD5KJ.mjs';
9
9
  import './chunk-UDNSI5PY.mjs';
10
10
  import './chunk-N7PBWBWQ.mjs';
11
- import { defineIslandPropsDecoder } from './chunk-R5ESWNKX.mjs';
12
- import './chunk-AUJ5DBZJ.mjs';
11
+ import { defineIslandPropsDecoder } from './chunk-NX6X3GRF.mjs';
12
+ import './chunk-7BXX7WXH.mjs';
13
13
 
14
14
  // src/rendering/islands/enhancers/checkout.tsx
15
15
  var decode = defineIslandPropsDecoder("checkout");
@@ -1,16 +1,16 @@
1
1
  "use client";
2
2
  import { LeafletStaticMap } from './chunk-XSV6KW4D.mjs';
3
- import { MagicLinkForm, useWaitlistClaim } from './chunk-GG4M2NP6.mjs';
4
- import { usePolling } from './chunk-V6M5FCR5.mjs';
5
- import { SpinnerNode } from './chunk-CE7IBGVW.mjs';
3
+ import { MagicLinkForm, useWaitlistClaim } from './chunk-V6XI4M2Q.mjs';
4
+ import { usePolling } from './chunk-IUEDYLFJ.mjs';
5
+ import { SpinnerNode } from './chunk-RMWMT3ZD.mjs';
6
6
  import { useDiscountCodeUi } from './chunk-ZFHRN6W2.mjs';
7
- import { TabBarFragment, logoutPortal, StepIndicator, DiscountCodeDisclosure, TerminalPanel, StateIcon, formatPrice, CrossIcon, ClockIcon, consumeSearchParam, LoggedInAsUser, CheckIcon } from './chunk-CCNTDRCF.mjs';
7
+ import { TabBarFragment, logoutPortal, StepIndicator, DiscountCodeDisclosure, TerminalPanel, StateIcon, formatPrice, CrossIcon, ClockIcon, consumeSearchParam, LoggedInAsUser, CheckIcon } from './chunk-PA2LJH2M.mjs';
8
8
  import { getFieldValidationControlProps, FieldValidationMessage } from './chunk-3DCJ45Z2.mjs';
9
9
  import { ModalShell } from './chunk-3PEDD5KJ.mjs';
10
10
  import { isSpamProtectionEnabled, AltchaWidget, getChallengeUrl } from './chunk-YLMKMCSJ.mjs';
11
11
  import { useBlockApi, FeedbackMessage } from './chunk-UDNSI5PY.mjs';
12
- import { buildEventCalendarListingRender, getWeekCalendarDays, formatCalendarTitle, groupEventsByDate, getOrderedDayNames, getMonthCalendarDays, formatDateKey, themeButtonClassName, normalizeEventBlockKind, EventCompactRow, EmptyState, getContainerClass, getCardOrientation, addMonths, getThreeMonthRange, isToday, MAX_EVENTS_PER_DAY, formatTime, resolveCoursePricingState, formatEventDateParts, formatCoursePriceAmount, DateTimeTile, normalizeIdList, EventCard, buildTimetableModel, formatDate, isEventContentType, formatCoursePriceDisplay, MONTH_NAMES, formatEventPrice, getEventAvailability, formatEventTeacherLine, CreditCard, Ticket, Star, Sparkles, assertNever11 } from './chunk-R5ESWNKX.mjs';
13
- import { getBookingLocalDateKey, toScheduledBookingDateTime, toBookingTimeZone, formatBookingDateTime, formatBookingDate, formatBookingTime } from './chunk-AUJ5DBZJ.mjs';
12
+ import { buildEventRuntimeFilters, buildEventCalendarListingRender, groupEventsByDate, getOrderedDayNames, formatDateKey, getEventRuntimeFiltersKey, themeButtonClassName, normalizeCsvIds, normalizeOptionalId, normalizeEventBlockKind, normalizeCsvString, EventCompactRow, EmptyState, getContainerClass, getCardOrientation, isToday, MAX_EVENTS_PER_DAY, formatTime, resolveCoursePricingState, formatEventDateParts, formatCoursePriceAmount, DateTimeTile, EventCard, buildCalendarViewport, shiftCalendarAnchorDate, addMonths, getThreeMonthRange, buildTimetableModel, formatDate, isEventContentType, formatCoursePriceDisplay, MONTH_NAMES, formatEventPrice, getEventAvailability, formatEventTeacherLine, CreditCard, Ticket, Star, Sparkles, assertNever11 } from './chunk-NX6X3GRF.mjs';
13
+ import { getBookingLocalDateKey, toScheduledBookingDateTime, toBookingTimeZone, formatBookingDateTime, formatBookingDate, formatBookingTime } from './chunk-7BXX7WXH.mjs';
14
14
  import { createContext, useId, useMemo, useState, useRef, useEffect, useCallback, useContext, useReducer } from 'react';
15
15
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
16
16
 
@@ -3355,9 +3355,7 @@ var EventPaginatedListView = ({
3355
3355
  error,
3356
3356
  hasMore,
3357
3357
  loadMore,
3358
- paginationMode = "loadMore",
3359
- seeAllUrl,
3360
- loadMoreText,
3358
+ paginationAction,
3361
3359
  hasActiveFilters,
3362
3360
  onResetFilters,
3363
3361
  resetFiltersText
@@ -3397,7 +3395,7 @@ var EventPaginatedListView = ({
3397
3395
  }
3398
3396
  )
3399
3397
  ] }) : null,
3400
- paginationMode === "loadMore" && hasMore && !error ? /* @__PURE__ */ jsx("div", { className: "rb-mt-8 rb-text-center", children: /* @__PURE__ */ jsx(
3398
+ paginationAction.kind === "loadMore" && hasMore && !error ? /* @__PURE__ */ jsx("div", { className: "rb-mt-8 rb-text-center", children: /* @__PURE__ */ jsx(
3401
3399
  "button",
3402
3400
  {
3403
3401
  type: "button",
@@ -3408,18 +3406,18 @@ var EventPaginatedListView = ({
3408
3406
  size: "md",
3409
3407
  extraClassName: loading ? "rb-opacity-50 rb-cursor-wait" : null
3410
3408
  }),
3411
- children: loading ? "Loading..." : loadMoreText
3409
+ children: loading ? "Loading..." : paginationAction.label
3412
3410
  }
3413
3411
  ) }) : null,
3414
- paginationMode === "seeAllLink" && seeAllUrl && hasMore ? /* @__PURE__ */ jsx("div", { className: "rb-mt-8 rb-text-center", children: /* @__PURE__ */ jsx(
3412
+ paginationAction.kind === "seeAllLink" && hasMore ? /* @__PURE__ */ jsx("div", { className: "rb-mt-8 rb-text-center", children: /* @__PURE__ */ jsx(
3415
3413
  "a",
3416
3414
  {
3417
- href: seeAllUrl,
3415
+ href: paginationAction.href,
3418
3416
  className: themeButtonClassName({
3419
3417
  variant: display.buttonVariant,
3420
3418
  size: "md"
3421
3419
  }),
3422
- children: loadMoreText
3420
+ children: paginationAction.label
3423
3421
  }
3424
3422
  ) }) : null
3425
3423
  ] }),
@@ -3449,41 +3447,9 @@ var EventPaginatedListView = ({
3449
3447
  }
3450
3448
  );
3451
3449
  };
3452
-
3453
- // ../blocks/src/system/runtime/hooks/utils/normalize.ts
3454
- function normalizeOptionalId(value) {
3455
- const trimmed = typeof value === "string" ? value.trim() : void 0;
3456
- return trimmed ? trimmed : void 0;
3457
- }
3458
- function normalizeCsvIds(value) {
3459
- if (!value) return [];
3460
- const parts = Array.isArray(value) ? value.filter((entry) => typeof entry === "string") : typeof value === "string" ? value.split(",") : [];
3461
- return normalizeIdList(parts);
3462
- }
3463
- function normalizeCsvString(value) {
3464
- const ids = normalizeCsvIds(value);
3465
- return ids.length > 0 ? ids.join(",") : void 0;
3466
- }
3467
-
3468
- // ../blocks/src/system/runtime/hooks/useEventPagination.ts
3469
3450
  function getEventIdentity(event) {
3470
3451
  return event.occurrenceId || event.id;
3471
3452
  }
3472
- function getFiltersKey(filters) {
3473
- const categoryIds = normalizeCsvString(filters?.categoryIds);
3474
- const staffMemberId = normalizeOptionalId(filters?.staffMemberId);
3475
- const venueId = normalizeOptionalId(filters?.venueId);
3476
- const eventPresets = normalizeCsvString(filters?.eventPresets);
3477
- return JSON.stringify({
3478
- categoryIds,
3479
- staffMemberId,
3480
- venueId,
3481
- kind: filters?.kind ?? null,
3482
- eventSurface: filters?.eventSurface ?? null,
3483
- eventPresets,
3484
- scheduleScope: filters?.scheduleScope ?? null
3485
- });
3486
- }
3487
3453
  function getEventsKey(events) {
3488
3454
  return events.map((e) => `${getEventIdentity(e)}:${e.startsAt}`).join("|");
3489
3455
  }
@@ -3498,8 +3464,8 @@ function useEventPagination({
3498
3464
  stage
3499
3465
  }) {
3500
3466
  const { getPublicEvents } = useBlockApi();
3501
- const initialFiltersKey = getFiltersKey(initialFilters);
3502
- const filtersKey = getFiltersKey(filters);
3467
+ const initialFiltersKey = getEventRuntimeFiltersKey(initialFilters);
3468
+ const filtersKey = getEventRuntimeFiltersKey(filters);
3503
3469
  const filtersMatchInitial = filtersKey === initialFiltersKey;
3504
3470
  const initialEventsKey = useMemo(() => getEventsKey(initialEvents), [initialEvents]);
3505
3471
  const initialEventsRef = useRef(initialEvents);
@@ -3935,14 +3901,14 @@ var EventListingController = ({
3935
3901
  [display.events]
3936
3902
  );
3937
3903
  const initialListFilters = useMemo(
3938
- () => ({
3939
- kind: hydration.eventKind === "all" ? void 0 : hydration.eventKind,
3940
- eventSurface: hydration.eventSurface === "all" ? void 0 : hydration.eventSurface,
3941
- eventPresets: hydration.filterEventPresets ?? void 0,
3942
- scheduleScope: hydration.scheduleScope === "any" ? void 0 : hydration.scheduleScope,
3943
- categoryIds: hydration.filterCategoryIds ?? void 0,
3944
- staffMemberId: hydration.filterStaffMemberId ?? void 0,
3945
- venueId: hydration.filterVenueId ?? void 0
3904
+ () => buildEventRuntimeFilters({
3905
+ eventKind: hydration.eventKind,
3906
+ eventSurface: hydration.eventSurface,
3907
+ filterEventPresets: hydration.filterEventPresets,
3908
+ scheduleScope: hydration.scheduleScope,
3909
+ filterCategoryIds: hydration.filterCategoryIds,
3910
+ filterStaffMemberId: hydration.filterStaffMemberId,
3911
+ filterVenueId: hydration.filterVenueId
3946
3912
  }),
3947
3913
  [
3948
3914
  hydration.eventKind,
@@ -3994,7 +3960,7 @@ var EventListingController = ({
3994
3960
  fetchInitialOnMount: hydration.fetchInitialEventsOnMount,
3995
3961
  initialFilters: initialListFilters,
3996
3962
  filters: listFilters,
3997
- pageSize: parseInt(hydration.eventsPerPage, 10) || 12,
3963
+ pageSize: hydration.eventsPerPage,
3998
3964
  stage: hydration.stage
3999
3965
  });
4000
3966
  return /* @__PURE__ */ jsx(
@@ -4029,9 +3995,7 @@ var EventListingController = ({
4029
3995
  error,
4030
3996
  hasMore,
4031
3997
  loadMore,
4032
- paginationMode: hydration.paginationMode,
4033
- seeAllUrl: hydration.seeAllUrl,
4034
- loadMoreText: hydration.loadMoreText,
3998
+ paginationAction: hydration.paginationAction,
4035
3999
  hasActiveFilters,
4036
4000
  onResetFilters: resetFilters
4037
4001
  }
@@ -4059,36 +4023,50 @@ var CALENDAR_FETCH_LIMIT = 200;
4059
4023
  function getMonthKey(date) {
4060
4024
  return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, "0")}`;
4061
4025
  }
4062
- function getFiltersKey2(filters) {
4063
- const categoryIds = normalizeCsvString(filters?.categoryIds);
4064
- const staffMemberId = normalizeOptionalId(filters?.staffMemberId);
4065
- const venueId = normalizeOptionalId(filters?.venueId);
4066
- const eventPresets = normalizeCsvString(filters?.eventPresets);
4067
- return JSON.stringify({
4068
- categoryIds,
4069
- staffMemberId,
4070
- venueId,
4071
- kind: filters?.kind ?? null,
4072
- eventSurface: filters?.eventSurface ?? null,
4073
- eventPresets,
4074
- scheduleScope: filters?.scheduleScope ?? null
4075
- });
4026
+ function useCalendarViewport({
4027
+ view = "month",
4028
+ startOfWeek = "monday",
4029
+ initialDate
4030
+ } = {}) {
4031
+ const [viewDate, setViewDate] = useState(() => initialDate ?? /* @__PURE__ */ new Date());
4032
+ const viewport = useMemo(
4033
+ () => buildCalendarViewport({ view, anchorDate: viewDate, startOfWeek }),
4034
+ [startOfWeek, view, viewDate]
4035
+ );
4036
+ const goToPrevious = useCallback(() => {
4037
+ setViewDate((current) => shiftCalendarAnchorDate(current, view, -1));
4038
+ }, [view]);
4039
+ const goToNext = useCallback(() => {
4040
+ setViewDate((current) => shiftCalendarAnchorDate(current, view, 1));
4041
+ }, [view]);
4042
+ const goToDate = useCallback((date) => {
4043
+ setViewDate(date);
4044
+ }, []);
4045
+ const goToToday = useCallback(() => {
4046
+ setViewDate(/* @__PURE__ */ new Date());
4047
+ }, []);
4048
+ return {
4049
+ viewDate,
4050
+ viewport,
4051
+ goToDate,
4052
+ goToPrevious,
4053
+ goToNext,
4054
+ goToToday
4055
+ };
4076
4056
  }
4077
- function useCalendarEvents({
4078
- siteId: _siteId,
4079
- // Deprecated: siteId now comes from BlockApiProvider context
4057
+ function useCalendarEventCache({
4058
+ viewDate,
4080
4059
  initialEvents = [],
4081
4060
  preloadMonths = 1,
4082
4061
  filters,
4083
4062
  stage
4084
4063
  }) {
4085
4064
  const { getPublicEvents } = useBlockApi();
4086
- const [viewDate, setViewDate] = useState(() => /* @__PURE__ */ new Date());
4087
4065
  const [loading, setLoading] = useState(false);
4088
4066
  const [error, setError] = useState(null);
4089
4067
  const [cacheVersion, setCacheVersion] = useState(0);
4090
4068
  const filtersKey = useMemo(
4091
- () => getFiltersKey2(filters),
4069
+ () => getEventRuntimeFiltersKey(filters),
4092
4070
  [
4093
4071
  filters?.categoryIds,
4094
4072
  filters?.eventPresets,
@@ -4147,9 +4125,8 @@ function useCalendarEvents({
4147
4125
  staffMemberId: filters?.staffMemberId,
4148
4126
  venueId: filters?.venueId
4149
4127
  });
4150
- const events2 = result;
4151
4128
  if (currentRequestId === requestIdRef.current) {
4152
- for (const event of events2) {
4129
+ for (const event of result) {
4153
4130
  const eventDate = new Date(event.startsAt);
4154
4131
  const monthKey = getMonthKey(eventDate);
4155
4132
  const existing = cacheRef.current.get(monthKey) || [];
@@ -4221,18 +4198,44 @@ function useCalendarEvents({
4221
4198
  (a, b) => new Date(a.startsAt).getTime() - new Date(b.startsAt).getTime()
4222
4199
  );
4223
4200
  }, [viewDate, cacheVersion]);
4224
- const goToPrevious = useCallback(() => {
4225
- setViewDate((current) => addMonths(current, -1));
4226
- }, []);
4227
- const goToNext = useCallback(() => {
4228
- setViewDate((current) => addMonths(current, 1));
4229
- }, []);
4230
- const goToToday = useCallback(() => {
4231
- setViewDate(/* @__PURE__ */ new Date());
4232
- }, []);
4233
4201
  return {
4234
4202
  events,
4203
+ loading,
4204
+ error
4205
+ };
4206
+ }
4207
+ function useCalendarEvents({
4208
+ siteId: _siteId,
4209
+ // Deprecated: siteId now comes from BlockApiProvider context
4210
+ initialEvents = [],
4211
+ view = "month",
4212
+ startOfWeek = "monday",
4213
+ preloadMonths = 1,
4214
+ filters,
4215
+ stage
4216
+ }) {
4217
+ const {
4235
4218
  viewDate,
4219
+ viewport,
4220
+ goToDate,
4221
+ goToPrevious,
4222
+ goToNext,
4223
+ goToToday
4224
+ } = useCalendarViewport({ view, startOfWeek });
4225
+ const { events, loading, error } = useCalendarEventCache({
4226
+ viewDate,
4227
+ initialEvents,
4228
+ preloadMonths,
4229
+ filters,
4230
+ stage
4231
+ });
4232
+ const setViewDate = useCallback((date) => {
4233
+ goToDate(date);
4234
+ }, [goToDate]);
4235
+ return {
4236
+ events,
4237
+ viewDate,
4238
+ viewport,
4236
4239
  loading,
4237
4240
  error,
4238
4241
  setViewDate,
@@ -4392,15 +4395,13 @@ function formatAgendaDayHeader(date) {
4392
4395
  return `${dayName}, ${monthName} ${date.getDate()}`;
4393
4396
  }
4394
4397
  var WeekAgendaView = ({
4395
- viewDate,
4398
+ days,
4396
4399
  events,
4397
- startOfWeek,
4398
4400
  showCapacity,
4399
4401
  emptyMessage = "No events scheduled"
4400
4402
  }) => {
4401
- const weekDays = getWeekCalendarDays(viewDate, startOfWeek);
4402
4403
  const eventsByDate = groupEventsByDate(events);
4403
- return /* @__PURE__ */ jsx("div", { className: "event-agenda-week", children: weekDays.map((date) => {
4404
+ return /* @__PURE__ */ jsx("div", { className: "event-agenda-week", children: days.map((date) => {
4404
4405
  const dateKey = formatDateKey(date);
4405
4406
  const dayEvents = eventsByDate.get(dateKey) || [];
4406
4407
  const today = isToday(date);
@@ -4572,7 +4573,7 @@ function toEventCombinedControllerProps(props) {
4572
4573
  listLayout: props.render.display.listLayout,
4573
4574
  listColumns: props.render.display.listColumns,
4574
4575
  eventsPerPage: props.render.display.eventsPerPage,
4575
- loadMoreText: props.render.display.loadMoreText,
4576
+ paginationAction: props.render.display.paginationAction,
4576
4577
  startOfWeek: props.render.display.startOfWeek,
4577
4578
  calendarTabViews: props.render.display.calendarTabViews,
4578
4579
  showFilters: props.render.display.showFilters,
@@ -4602,8 +4603,8 @@ var EventCombinedClient = ({
4602
4603
  // List options
4603
4604
  listLayout = "stack",
4604
4605
  listColumns = "3",
4605
- eventsPerPage = "12",
4606
- loadMoreText,
4606
+ eventsPerPage = 12,
4607
+ paginationAction = { kind: "loadMore", label: "Load more events" },
4607
4608
  // Calendar options
4608
4609
  startOfWeek = "monday",
4609
4610
  calendarTabViews = "both",
@@ -4625,7 +4626,7 @@ var EventCombinedClient = ({
4625
4626
  showCapacity,
4626
4627
  // Styling
4627
4628
  buttonVariant = "primary",
4628
- buttonText = "Book now",
4629
+ buttonText = "Book",
4629
4630
  emptyMessage = "No upcoming events scheduled.",
4630
4631
  className
4631
4632
  }) => {
@@ -4677,14 +4678,14 @@ var EventCombinedClient = ({
4677
4678
  preFilterScheduleScope: resolvedScheduleScope
4678
4679
  });
4679
4680
  const initialListFilters = useMemo(
4680
- () => ({
4681
- kind: eventKind === "courses" || eventKind === "events" ? eventKind : void 0,
4682
- eventSurface: resolvedEventSurface === "all" ? void 0 : resolvedEventSurface,
4683
- eventPresets: filterEventPresets ?? void 0,
4684
- scheduleScope: resolvedScheduleScope === "any" ? void 0 : resolvedScheduleScope,
4685
- categoryIds: filterCategoryIds ?? void 0,
4686
- staffMemberId: filterStaffMemberId ?? void 0,
4687
- venueId: filterVenueId ?? void 0
4681
+ () => buildEventRuntimeFilters({
4682
+ eventKind,
4683
+ eventSurface: resolvedEventSurface,
4684
+ filterEventPresets,
4685
+ scheduleScope: resolvedScheduleScope,
4686
+ filterCategoryIds,
4687
+ filterStaffMemberId,
4688
+ filterVenueId
4688
4689
  }),
4689
4690
  [
4690
4691
  eventKind,
@@ -4697,7 +4698,7 @@ var EventCombinedClient = ({
4697
4698
  ]
4698
4699
  );
4699
4700
  const listFilters = useMemo(() => getFilterParams(), [getFilterParams]);
4700
- const pageSize = parseInt(eventsPerPage, 10) || 12;
4701
+ const pageSize = eventsPerPage;
4701
4702
  const initialListEvents = useMemo(
4702
4703
  () => (initialEvents ?? []).slice(0, pageSize),
4703
4704
  [initialEvents, pageSize]
@@ -4718,13 +4719,14 @@ var EventCombinedClient = ({
4718
4719
  stage
4719
4720
  });
4720
4721
  const calendarInitialEvents = useMemo(() => {
4721
- const initialKey = JSON.stringify(initialListFilters);
4722
- const currentKey = JSON.stringify(listFilters);
4722
+ const initialKey = getEventRuntimeFiltersKey(initialListFilters);
4723
+ const currentKey = getEventRuntimeFiltersKey(listFilters);
4723
4724
  return initialKey === currentKey ? initialEvents ?? [] : [];
4724
4725
  }, [initialEvents, initialListFilters, listFilters]);
4725
4726
  const {
4726
4727
  events: calendarEventsRaw,
4727
4728
  viewDate,
4729
+ viewport,
4728
4730
  loading: calendarLoading,
4729
4731
  goToPrevious,
4730
4732
  goToNext,
@@ -4732,6 +4734,8 @@ var EventCombinedClient = ({
4732
4734
  } = useCalendarEvents({
4733
4735
  siteId,
4734
4736
  initialEvents: calendarInitialEvents,
4737
+ view: calendarView,
4738
+ startOfWeek,
4735
4739
  preloadMonths: 1,
4736
4740
  filters: listFilters,
4737
4741
  stage
@@ -4744,22 +4748,10 @@ var EventCombinedClient = ({
4744
4748
  () => getOrderedDayNames(startOfWeek),
4745
4749
  [startOfWeek]
4746
4750
  );
4747
- const calendarDays = useMemo(() => {
4748
- return getMonthCalendarDays(
4749
- viewDate.getFullYear(),
4750
- viewDate.getMonth(),
4751
- startOfWeek
4752
- );
4753
- }, [viewDate, startOfWeek]);
4754
- const headerTitle = useMemo(
4755
- () => formatCalendarTitle(viewDate, calendarView, calendarDays),
4756
- [viewDate, calendarView, calendarDays]
4757
- );
4758
4751
  const tabs = [
4759
4752
  { id: "list", label: "List" },
4760
4753
  { id: "calendar", label: "Calendar" }
4761
4754
  ];
4762
- const loadMoreButtonText = loadMoreText || "Load more";
4763
4755
  const containerClass = getContainerClass(listLayout, listColumns);
4764
4756
  const cardOrientation = getCardOrientation(listLayout);
4765
4757
  const listDisplay = {
@@ -4825,7 +4817,7 @@ var EventCombinedClient = ({
4825
4817
  error: eventsError,
4826
4818
  hasMore,
4827
4819
  loadMore,
4828
- loadMoreText: loadMoreButtonText,
4820
+ paginationAction,
4829
4821
  hasActiveFilters,
4830
4822
  onResetFilters: resetFilters
4831
4823
  }
@@ -4883,7 +4875,7 @@ var EventCombinedClient = ({
4883
4875
  }
4884
4876
  ),
4885
4877
  /* @__PURE__ */ jsxs("h3", { className: "event-calendar-title", children: [
4886
- headerTitle,
4878
+ viewport.title,
4887
4879
  calendarLoading && /* @__PURE__ */ jsx("span", { className: "rb-ml-2 rb-caption status-muted", children: "(loading...)" })
4888
4880
  ] }),
4889
4881
  /* @__PURE__ */ jsx(
@@ -4925,18 +4917,17 @@ var EventCombinedClient = ({
4925
4917
  }
4926
4918
  )
4927
4919
  ] }),
4928
- calendarView === "week" ? /* @__PURE__ */ jsx(
4920
+ viewport.kind === "week" ? /* @__PURE__ */ jsx(
4929
4921
  WeekAgendaView,
4930
4922
  {
4931
- viewDate,
4923
+ days: viewport.days,
4932
4924
  events: calendarEventsRaw,
4933
- startOfWeek,
4934
4925
  emptyMessage: "No events scheduled",
4935
4926
  showCapacity: resolvedShowCapacity
4936
4927
  }
4937
4928
  ) : /* @__PURE__ */ jsxs("div", { className: "event-calendar-container", children: [
4938
4929
  /* @__PURE__ */ jsx("div", { className: "event-calendar-day-headers", children: dayNames.map((day) => /* @__PURE__ */ jsx("div", { className: "event-calendar-day-header", children: day }, day)) }),
4939
- /* @__PURE__ */ jsx("div", { className: "event-calendar-grid", children: calendarDays.map((date) => {
4930
+ /* @__PURE__ */ jsx("div", { className: "event-calendar-grid", children: viewport.days.map((date) => {
4940
4931
  const dateKey = formatDateKey(date);
4941
4932
  const dayEvents = eventsByDate.get(dateKey) || [];
4942
4933
  return /* @__PURE__ */ jsx(
@@ -5189,7 +5180,7 @@ var EventCalendarClient = ({
5189
5180
  listLayout: display.listLayout,
5190
5181
  listColumns: display.listColumns,
5191
5182
  eventsPerPage: display.eventsPerPage,
5192
- loadMoreText: display.loadMoreText,
5183
+ paginationAction: display.paginationAction,
5193
5184
  startOfWeek: display.startOfWeek,
5194
5185
  calendarTabViews: display.calendarTabViews,
5195
5186
  showFilters: display.showFilters,
@@ -5233,6 +5224,7 @@ var EventCalendarTimetableClient = ({ render }) => {
5233
5224
  const {
5234
5225
  events,
5235
5226
  viewDate,
5227
+ viewport,
5236
5228
  loading,
5237
5229
  error,
5238
5230
  goToPrevious,
@@ -5241,18 +5233,12 @@ var EventCalendarTimetableClient = ({ render }) => {
5241
5233
  } = useCalendarEvents({
5242
5234
  siteId: hydration.siteId,
5243
5235
  initialEvents: calendarInitialEvents,
5236
+ view: "week",
5237
+ startOfWeek: display.startOfWeek,
5244
5238
  preloadMonths: 1,
5245
5239
  filters: listFilters,
5246
5240
  stage: hydration.stage
5247
5241
  });
5248
- const calendarDays = useMemo(
5249
- () => getWeekCalendarDays(viewDate, display.startOfWeek),
5250
- [display.startOfWeek, viewDate]
5251
- );
5252
- const headerTitle = useMemo(
5253
- () => formatCalendarTitle(viewDate, "week", calendarDays),
5254
- [calendarDays, viewDate]
5255
- );
5256
5242
  return /* @__PURE__ */ jsxs(EventModalProvider, { children: [
5257
5243
  /* @__PURE__ */ jsx(
5258
5244
  EventCalendarChrome,
@@ -5262,7 +5248,7 @@ var EventCalendarTimetableClient = ({ render }) => {
5262
5248
  className: "event-calendar--timetable",
5263
5249
  error,
5264
5250
  filters: filtersNode,
5265
- headerTitle,
5251
+ headerTitle: viewport.title,
5266
5252
  loading,
5267
5253
  onNext: goToNext,
5268
5254
  onPrevious: goToPrevious,
@@ -5297,6 +5283,7 @@ var EventCalendarGridClient = ({ render }) => {
5297
5283
  const {
5298
5284
  events,
5299
5285
  viewDate,
5286
+ viewport,
5300
5287
  loading,
5301
5288
  error,
5302
5289
  goToPrevious,
@@ -5305,6 +5292,8 @@ var EventCalendarGridClient = ({ render }) => {
5305
5292
  } = useCalendarEvents({
5306
5293
  siteId: hydration.siteId,
5307
5294
  initialEvents: calendarInitialEvents,
5295
+ view: calendarView,
5296
+ startOfWeek: display.startOfWeek,
5308
5297
  preloadMonths: 1,
5309
5298
  filters: listFilters,
5310
5299
  stage: hydration.stage
@@ -5314,20 +5303,6 @@ var EventCalendarGridClient = ({ render }) => {
5314
5303
  () => getOrderedDayNames(display.startOfWeek),
5315
5304
  [display.startOfWeek]
5316
5305
  );
5317
- const calendarDays = useMemo(() => {
5318
- if (calendarView === "week") {
5319
- return getWeekCalendarDays(viewDate, display.startOfWeek);
5320
- }
5321
- return getMonthCalendarDays(
5322
- viewDate.getFullYear(),
5323
- viewDate.getMonth(),
5324
- display.startOfWeek
5325
- );
5326
- }, [calendarView, display.startOfWeek, viewDate]);
5327
- const headerTitle = useMemo(
5328
- () => formatCalendarTitle(viewDate, calendarView, calendarDays),
5329
- [viewDate, calendarView, calendarDays]
5330
- );
5331
5306
  return /* @__PURE__ */ jsxs(EventModalProvider, { children: [
5332
5307
  /* @__PURE__ */ jsxs(
5333
5308
  EventCalendarChrome,
@@ -5336,7 +5311,7 @@ var EventCalendarGridClient = ({ render }) => {
5336
5311
  calendarView,
5337
5312
  error,
5338
5313
  filters: filtersNode,
5339
- headerTitle,
5314
+ headerTitle: viewport.title,
5340
5315
  loading,
5341
5316
  onNext: goToNext,
5342
5317
  onPrevious: goToPrevious,
@@ -5344,7 +5319,7 @@ var EventCalendarGridClient = ({ render }) => {
5344
5319
  children: [
5345
5320
  /* @__PURE__ */ jsxs("div", { className: "event-calendar-container", children: [
5346
5321
  /* @__PURE__ */ jsx("div", { className: "event-calendar-day-headers", children: dayNames.map((day) => /* @__PURE__ */ jsx("div", { className: "event-calendar-day-header", children: day }, day)) }),
5347
- /* @__PURE__ */ jsx("div", { className: "event-calendar-grid", children: calendarDays.map((date) => {
5322
+ /* @__PURE__ */ jsx("div", { className: "event-calendar-grid", children: viewport.days.map((date) => {
5348
5323
  const dateKey = formatDateKey(date);
5349
5324
  const dayEvents = eventsByDate.get(dateKey) || [];
5350
5325
  return /* @__PURE__ */ jsx(
@@ -5432,43 +5407,21 @@ function usePrefetchedCalendarEvents(display, listFilters) {
5432
5407
  ]
5433
5408
  );
5434
5409
  return useMemo(() => {
5435
- const initialKey = JSON.stringify(initialFilters);
5436
- const currentKey = JSON.stringify(listFilters);
5410
+ const initialKey = getEventRuntimeFiltersKey(initialFilters);
5411
+ const currentKey = getEventRuntimeFiltersKey(listFilters);
5437
5412
  return initialKey === currentKey ? [...display.events] : [];
5438
5413
  }, [display.events, initialFilters, listFilters]);
5439
5414
  }
5440
5415
  function buildDisplayFilterParams(display) {
5441
- const params = {};
5442
- if (display.eventSurface !== "all") {
5443
- params.eventSurface = display.eventSurface;
5444
- }
5445
- if (display.filterEventPresets) {
5446
- params.eventPresets = display.filterEventPresets;
5447
- }
5448
- if (display.scheduleScope !== "any") {
5449
- params.scheduleScope = display.scheduleScope;
5450
- }
5451
- if (display.eventKind === "courses") {
5452
- params.kind = "courses";
5453
- if (display.filterVenueId) params.venueId = display.filterVenueId;
5454
- if (display.filterStaffMemberId) {
5455
- params.staffMemberId = display.filterStaffMemberId;
5456
- }
5457
- return params;
5458
- }
5459
- if (display.filterCategoryIds) {
5460
- params.categoryIds = display.filterCategoryIds;
5461
- }
5462
- if (display.eventKind === "events") {
5463
- params.kind = "events";
5464
- }
5465
- if (display.filterVenueId) {
5466
- params.venueId = display.filterVenueId;
5467
- }
5468
- if (display.filterStaffMemberId) {
5469
- params.staffMemberId = display.filterStaffMemberId;
5470
- }
5471
- return params;
5416
+ return buildEventRuntimeFilters({
5417
+ eventKind: display.eventKind,
5418
+ eventSurface: display.eventSurface,
5419
+ filterEventPresets: display.filterEventPresets,
5420
+ scheduleScope: display.scheduleScope,
5421
+ filterCategoryIds: display.filterCategoryIds,
5422
+ filterStaffMemberId: display.filterStaffMemberId,
5423
+ filterVenueId: display.filterVenueId
5424
+ });
5472
5425
  }
5473
5426
  var EventCalendarChrome = ({
5474
5427
  children,