@riverbankcms/sdk 0.80.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 (265) hide show
  1. package/dist/{PreviewEditorSidebar-QZG37QIF.mjs → PreviewEditorSidebar-RDCMEXIJ.mjs} +763 -255
  2. package/dist/{PreviewEditorUI-AXIKSMZA.mjs → PreviewEditorUI-NYGQ6K7B.mjs} +170 -29
  3. package/dist/SdkPreviewModeRuntime-AKCSCZEC.mjs +8 -0
  4. package/dist/_dts/api/src/contentRuntime.d.ts +12 -0
  5. package/dist/_dts/api/src/contentTypes.d.ts +6 -0
  6. package/dist/_dts/api/src/index.d.ts +2 -2
  7. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +53 -0
  8. package/dist/_dts/block-form/src/backend/store-backend.d.ts +3 -1
  9. package/dist/_dts/block-form/src/backend/types.d.ts +3 -3
  10. package/dist/_dts/blocks/src/PageRenderer.d.ts +3 -0
  11. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +20 -28
  12. package/dist/_dts/blocks/src/index.d.ts +6 -4
  13. package/dist/_dts/blocks/src/primitives/content/components/Text.d.ts +1 -1
  14. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +1 -0
  15. package/dist/_dts/blocks/src/server.d.ts +1 -1
  16. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +3 -2
  17. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +135 -0
  18. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +5 -0
  19. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +2 -0
  20. package/dist/_dts/blocks/src/system/blocks/form.d.ts +20 -1
  21. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +2 -0
  22. package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +19 -0
  23. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +134 -0
  24. package/dist/_dts/blocks/src/system/componentFactory.d.ts +1 -0
  25. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  26. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  27. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +13 -3
  28. package/dist/_dts/blocks/src/system/data/index.d.ts +2 -0
  29. package/dist/_dts/blocks/src/system/data/linkedContentEntries.d.ts +64 -0
  30. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  31. package/dist/_dts/blocks/src/system/designCapabilities.d.ts +2 -2
  32. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +6 -1
  33. package/dist/_dts/blocks/src/system/fragments/library/faqHeading.d.ts +0 -1
  34. package/dist/_dts/blocks/src/system/media/slotContracts.d.ts +2 -0
  35. package/dist/_dts/blocks/src/system/node/types.d.ts +8 -1
  36. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  37. package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
  38. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +44 -50
  39. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +21 -24
  40. package/dist/_dts/blocks/src/system/runtime/headingDecoration.d.ts +21 -0
  41. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +45 -14
  42. package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.d.ts +2 -9
  43. package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.d.ts +1 -10
  44. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +1 -0
  45. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +21 -16
  46. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +3 -2
  47. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +21 -16
  48. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +17 -28
  49. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventPaginatedListView.client.d.ts +2 -3
  50. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +3 -3
  51. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listOptions.d.ts +50 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +2 -1
  53. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +29 -14
  54. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +21 -0
  55. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +7 -0
  56. package/dist/_dts/blocks/src/system/transforms/registry/_utils/sectionForegroundStyles.d.ts +2 -0
  57. package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +4 -2
  58. package/dist/_dts/calendar/src/grid.d.ts +27 -0
  59. package/dist/_dts/calendar/src/index.d.ts +2 -2
  60. package/dist/_dts/content-editor/src/controller/useAutosaveTriggers.d.ts +3 -1
  61. package/dist/_dts/content-editor/src/editorTransactionState.d.ts +1 -0
  62. package/dist/_dts/content-editor/src/hooks/autosaveScopePlanning.d.ts +26 -0
  63. package/dist/_dts/content-editor/src/hooks/publishability.d.ts +1 -0
  64. package/dist/_dts/content-editor/src/hooks/useLinkedEntryAutosave.d.ts +23 -0
  65. package/dist/_dts/content-editor/src/hooks/useReactiveToolbar.d.ts +1 -1
  66. package/dist/_dts/content-editor/src/hooks/useSimpleAutosave.d.ts +2 -2
  67. package/dist/_dts/content-editor/src/index.d.ts +3 -1
  68. package/dist/_dts/content-editor/src/lib/json.d.ts +2 -0
  69. package/dist/_dts/content-editor/src/linkedEntries/domain.d.ts +8 -0
  70. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +58 -0
  71. package/dist/_dts/content-editor/src/ui/editorTransactionState.d.ts +93 -0
  72. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +60 -3
  73. package/dist/_dts/content-editor/src/ui/stores/autosaveStore.d.ts +2 -0
  74. package/dist/_dts/content-editor/src/ui/stores/types.d.ts +1 -1
  75. package/dist/_dts/content-model/src/content-types/builtins.d.ts +43 -0
  76. package/dist/_dts/content-model/src/metadataConfig.d.ts +87 -47
  77. package/dist/_dts/core/src/branded.d.ts +5 -0
  78. package/dist/_dts/core/src/index.d.ts +1 -0
  79. package/dist/_dts/core/src/stable-json.d.ts +1 -0
  80. package/dist/_dts/editor/src/EditorProvider.d.ts +26 -0
  81. package/dist/_dts/editor/src/chrome/EditorChrome.d.ts +26 -0
  82. package/dist/_dts/editor/src/chrome/EditorStatusBar.d.ts +45 -0
  83. package/dist/_dts/editor/src/chrome/statusBarPresentation.d.ts +25 -0
  84. package/dist/_dts/editor/src/components/EditingToggle.d.ts +9 -0
  85. package/dist/_dts/editor/src/hooks/useEditableElement.d.ts +18 -0
  86. package/dist/_dts/editor/src/index.d.ts +29 -0
  87. package/dist/_dts/editor/src/inline/InlineTextEditor.d.ts +1 -0
  88. package/dist/_dts/editor/src/lib/utils.d.ts +1 -0
  89. package/dist/_dts/editor/src/primitives/EditorPrimitivesProvider.d.ts +20 -0
  90. package/dist/_dts/editor/src/primitives/InlineFieldContext.d.ts +11 -0
  91. package/dist/_dts/editor/src/primitives/SaveContext.d.ts +12 -0
  92. package/dist/_dts/editor/src/primitives/helpers.d.ts +1 -0
  93. package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +26 -0
  94. package/dist/_dts/editor/src/primitives/rich-text/RichTextToolbar.d.ts +16 -0
  95. package/dist/_dts/editor/src/primitives/rich-text/config.d.ts +23 -0
  96. package/dist/_dts/editor/src/primitives/rich-text/extensions/RichTextImage.d.ts +2 -0
  97. package/dist/_dts/editor/src/primitives/rich-text/extensions/RichTextLink.d.ts +1 -0
  98. package/dist/_dts/editor/src/primitives/rich-text/imageActions.d.ts +22 -0
  99. package/dist/_dts/editor/src/primitives/rich-text/sanitize.d.ts +23 -0
  100. package/dist/_dts/editor/src/primitives/rich-text/toolbar/BlockTypeDropdown.d.ts +6 -0
  101. package/dist/_dts/editor/src/primitives/rich-text/toolbar/LinkPopover.d.ts +10 -0
  102. package/dist/_dts/editor/src/primitives/rich-text/toolbar/ToolbarIconButton.d.ts +11 -0
  103. package/dist/_dts/editor/src/primitives/rich-text/toolbar/linkPopoverUtils.d.ts +58 -0
  104. package/dist/_dts/editor/src/primitives/rich-text/useRichTextEditor.d.ts +19 -0
  105. package/dist/_dts/editor/src/primitives/rich-text/utils.d.ts +20 -0
  106. package/dist/_dts/editor/src/utils/optimisticTokens.d.ts +27 -0
  107. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -2
  108. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +3 -3
  109. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +4 -4
  110. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -2
  111. package/dist/_dts/editor-blocks/src/block-editor/actionPresentation.d.ts +15 -0
  112. package/dist/_dts/editor-blocks/src/block-editor/blockHeaderActionPlan.d.ts +49 -0
  113. package/dist/_dts/editor-blocks/src/widgets/index.d.ts +1 -0
  114. package/dist/_dts/editor-blocks/src/widgets/rich-text/RichTextWidgetProvider.d.ts +1 -1
  115. package/dist/_dts/editor-blocks/src/widgets/rich-text/useImagePicker.d.ts +1 -1
  116. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/SiteOptionPickerField.d.ts +3 -0
  117. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/SiteOptionWidgetProvider.d.ts +14 -0
  118. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/index.d.ts +6 -0
  119. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +51 -0
  120. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/types.d.ts +20 -0
  121. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +5 -0
  122. package/dist/_dts/media-core/src/index.d.ts +1 -0
  123. package/dist/_dts/media-core/src/renderableMediaAsset.d.ts +18 -0
  124. package/dist/_dts/media-editor/src/MediaEditor.d.ts +4 -1
  125. package/dist/_dts/media-editor/src/MediaPickerDialog.d.ts +2 -1
  126. package/dist/_dts/media-editor/src/index.d.ts +1 -1
  127. package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +3 -2
  128. package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +5 -1
  129. package/dist/_dts/preview-next/src/client/blocks/blockCustomizePopoverRows.d.ts +25 -0
  130. package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +2 -1
  131. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +4 -30
  132. package/dist/_dts/preview-next/src/client/blocks/linkedEntryRenderOverlay.d.ts +11 -0
  133. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeActions.d.ts +3 -9
  134. package/dist/_dts/preview-next/src/client/blocks/useBlockCustomizeControls.d.ts +2 -1
  135. package/dist/_dts/preview-next/src/client/index.d.ts +0 -1
  136. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +3 -1
  137. package/dist/_dts/preview-next/src/client/preview/LinkedEntryEditEventBridge.d.ts +1 -0
  138. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +3 -1
  139. package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +20 -0
  140. package/dist/_dts/preview-next/src/client/preview/PreviewDesignHistoryOrderContext.d.ts +13 -0
  141. package/dist/_dts/preview-next/src/client/preview/PreviewOpenEditorButton.d.ts +1 -1
  142. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +19 -19
  143. package/dist/_dts/preview-next/src/client/preview/PreviewSidebarSection.d.ts +13 -0
  144. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +47 -4
  145. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +14 -1
  146. package/dist/_dts/preview-next/src/client/preview/linkedEntryEditEvents.d.ts +5 -0
  147. package/dist/_dts/preview-next/src/client/preview/previewChromePlacement.d.ts +46 -0
  148. package/dist/_dts/preview-next/src/client/preview/previewCustomizeControls.d.ts +68 -0
  149. package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +8 -1
  150. package/dist/_dts/preview-next/src/client/preview/previewCustomizeWorkflowState.d.ts +11 -9
  151. package/dist/_dts/preview-next/src/client/preview/previewDesignHistoryOrder.d.ts +18 -0
  152. package/dist/_dts/preview-next/src/client/preview/previewUndoDomains.d.ts +1 -1
  153. package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +41 -0
  154. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +101 -0
  155. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +29 -0
  156. package/dist/_dts/preview-next/src/client/preview/siteStyleHistoryState.d.ts +55 -0
  157. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -0
  158. package/dist/_dts/preview-next/src/client/widgets/widgetAdapters.d.ts +2 -1
  159. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +3 -2
  160. package/dist/_dts/preview-next/src/constants.d.ts +0 -1
  161. package/dist/_dts/sdk/src/cli/config-loader.d.ts +3 -1
  162. package/dist/_dts/sdk/src/cli/content/reader.d.ts +5 -3
  163. package/dist/_dts/sdk/src/cli/site-commands/commandSurfaceDispatch.d.ts +1 -0
  164. package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +3 -1
  165. package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +1 -0
  166. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  167. package/dist/_dts/sdk/src/config/validation.d.ts +3 -3
  168. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +28 -2
  169. package/dist/_dts/sdk/src/public-api/contracts.d.ts +10 -0
  170. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +42 -0
  171. package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +4 -0
  172. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  173. package/dist/_dts/sdk/src/version.d.ts +1 -1
  174. package/dist/_dts/theme-core/src/buttons/constants.d.ts +26 -1
  175. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  176. package/dist/_dts/theme-core/src/buttons/personalities/joy-stamp.d.ts +22 -0
  177. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +1 -0
  178. package/dist/_dts/theme-core/src/buttons/types.d.ts +9 -0
  179. package/dist/_dts/theme-core/src/cards/siteStyleDefaults.d.ts +44 -0
  180. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  181. package/dist/_dts/theme-core/src/interactive/types.d.ts +10 -0
  182. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +27 -6
  183. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
  184. package/dist/_dts/theme-core/src/palette/variants/warm-dark.d.ts +27 -0
  185. package/dist/_dts/theme-core/src/schema.d.ts +40 -3
  186. package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +4 -1
  187. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +87 -31
  188. package/dist/_dts/theme-core/src/site-styles/appearancePresetResolution.d.ts +6 -2
  189. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +87 -31
  190. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +30 -1
  191. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +18 -2
  192. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +6 -2
  193. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +5 -0
  194. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  195. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +3 -23
  196. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +276 -4
  197. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +33 -3
  198. package/dist/_dts/theme-core/src/site-styles/sectionTransitions.d.ts +508 -0
  199. package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +10 -10
  200. package/dist/_dts/theme-core/src/site-styles/types.d.ts +24 -6
  201. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +16 -1
  202. package/dist/{chunk-7PCYG6YV.mjs → chunk-3PTVPAT4.mjs} +1863 -1099
  203. package/dist/{chunk-5NZGBSJF.mjs → chunk-3QWQ2MUQ.mjs} +469 -1000
  204. package/dist/{chunk-HTB4BMKD.mjs → chunk-3VT7LZY2.mjs} +321 -113
  205. package/dist/{chunk-MPBNEVPB.mjs → chunk-4T5JIPWY.mjs} +1 -1
  206. package/dist/{chunk-BBLZSQEY.mjs → chunk-E3NZYEKF.mjs} +1 -7
  207. package/dist/{chunk-GYXKAUFV.mjs → chunk-WUHKQBB6.mjs} +9509 -2658
  208. package/dist/cli/index.mjs +1347 -324
  209. package/dist/client/{accordion-QFZMNB7O.mjs → accordion-SFIIZWNH.mjs} +2 -2
  210. package/dist/client/{bookingForm-NCIXFWIG.mjs → bookingForm-CFKZVWGA.mjs} +5 -5
  211. package/dist/client/bookings.mjs +281 -19
  212. package/dist/client/{carousel-EO4BJMWD.mjs → carousel-ELXWSBLA.mjs} +3 -3
  213. package/dist/client/{cart-FTYCLYUW.mjs → cart-6SSCPYY5.mjs} +6 -6
  214. package/dist/client/{checkout-NFGLVCOX.mjs → checkout-UFQ34HPV.mjs} +6 -6
  215. package/dist/client/{chunk-6GVVWSPU.mjs → chunk-76JUETXQ.mjs} +139 -186
  216. package/dist/client/{chunk-AUJ5DBZJ.mjs → chunk-7BXX7WXH.mjs} +112 -28
  217. package/dist/client/{chunk-IWFZSQNZ.mjs → chunk-G56BSZAM.mjs} +2 -2
  218. package/dist/client/{chunk-VDS5YFLX.mjs → chunk-IUEDYLFJ.mjs} +1 -1
  219. package/dist/client/{chunk-PYRBIURC.mjs → chunk-NP47RHIX.mjs} +5 -5
  220. package/dist/client/{chunk-PUOELU4O.mjs → chunk-NX6X3GRF.mjs} +330 -80
  221. package/dist/client/{chunk-Y37KDO7P.mjs → chunk-PA2LJH2M.mjs} +2 -2
  222. package/dist/client/{chunk-CE7IBGVW.mjs → chunk-RMWMT3ZD.mjs} +1 -1
  223. package/dist/client/{chunk-4W66ALYT.mjs → chunk-TCJS3NY5.mjs} +1 -1
  224. package/dist/client/{chunk-T6UIP6UZ.mjs → chunk-V6XI4M2Q.mjs} +1 -1
  225. package/dist/client/client.mjs +5924 -3138
  226. package/dist/client/{courseRegistration-2EORROPS.mjs → courseRegistration-HJIISAAG.mjs} +5 -5
  227. package/dist/client/{eventCalendar-WZI4VL6N.mjs → eventCalendar-F6YVUCZR.mjs} +7 -7
  228. package/dist/client/{eventCombined-QCB2TCNL.mjs → eventCombined-B5DSTIOK.mjs} +7 -7
  229. package/dist/client/{eventDetails-TFTATAPH.mjs → eventDetails-SEJDDHQC.mjs} +7 -7
  230. package/dist/client/{eventListing-A2CQEHEQ.mjs → eventListing-TPMWIIBO.mjs} +7 -7
  231. package/dist/client/{eventRegistration-OELPVLUY.mjs → eventRegistration-QU6W2PV6.mjs} +7 -7
  232. package/dist/client/{form-NTIFD6WQ.mjs → form-LVTYNTDE.mjs} +2 -2
  233. package/dist/client/{headerSection-7TBNKCLA.mjs → headerSection-SO3MFC4U.mjs} +54 -13
  234. package/dist/client/hooks.mjs +2266 -1179
  235. package/dist/client/{locationMap-LRLB5A3H.mjs → locationMap-5E5FLAKO.mjs} +2 -2
  236. package/dist/client/{newsletterForm-XI52RZSN.mjs → newsletterForm-GN32JEBQ.mjs} +2 -2
  237. package/dist/client/{productDetail-GSNKBFLY.mjs → productDetail-Q346KSVR.mjs} +6 -6
  238. package/dist/client/{productList-BGCGT4KZ.mjs → productList-DTDMQYGZ.mjs} +6 -6
  239. package/dist/client/rendering/client.mjs +4618 -3318
  240. package/dist/client/rendering/islands.mjs +32 -20
  241. package/dist/client/rendering.mjs +4898 -2108
  242. package/dist/client/{shop-RQHUCLNY.mjs → shop-OFUW7KPN.mjs} +6 -6
  243. package/dist/preview-next/client/runtime.mjs +5 -5
  244. package/dist/preview-next/constants.mjs +0 -2
  245. package/dist/preview-next/index.mjs +0 -2
  246. package/dist/{sdk-runtime-A4LHT2RS.mjs → sdk-runtime-2GIX6I7X.mjs} +6 -6
  247. package/dist/server/components.mjs +4377 -1852
  248. package/dist/server/config-validation.mjs +2283 -1303
  249. package/dist/server/config.mjs +2283 -1303
  250. package/dist/server/data.mjs +2267 -1180
  251. package/dist/server/index.mjs +2 -1
  252. package/dist/server/next.mjs +4394 -1773
  253. package/dist/server/page-converter.mjs +1999 -1015
  254. package/dist/server/prebuild.mjs +1 -1
  255. package/dist/server/rendering/server.mjs +4482 -1857
  256. package/dist/server/rendering.mjs +4484 -1859
  257. package/dist/server/routing.mjs +2302 -1120
  258. package/dist/server/server.mjs +2284 -1197
  259. package/dist/server/theme-bridge.mjs +757 -85
  260. package/dist/server/theme.mjs +69 -4
  261. package/dist/styles/index.css +474 -65
  262. package/package.json +1 -1
  263. package/dist/SdkPreviewModeRuntime-XE5M4UKM.mjs +0 -8
  264. package/dist/_dts/editor-blocks/src/block-editor/actionControlMode.d.ts +0 -2
  265. package/dist/_dts/preview-next/src/client/preview/previewSurface.d.ts +0 -3
@@ -1,4 +1,4 @@
1
- import { parseAspectRatioValue, parseColorTokenParts, toBookingTimeZone, resolvePlanningDateInput, formatBookingDate, toScheduledBookingDateTime, formatBookingTime, toScheduledBookingDateRange, formatBookingDateParts, ImagePresets, getCurrentResolveImageUrlContext, renderVideo, renderAudio, resolveMediaNodeResponsiveImage, MediaPlaceholder, computeMediaTransformStyle, rgbColorValue } from './chunk-AUJ5DBZJ.mjs';
1
+ import { parseAspectRatioValue, parseColorTokenParts, toBookingTimeZone, resolvePlanningDateInput, formatBookingDate, toScheduledBookingDateTime, formatBookingTime, toScheduledBookingDateRange, formatBookingDateParts, ImagePresets, getCurrentResolveImageUrlContext, renderVideo, renderAudio, resolveMediaNodeResponsiveImage, MediaPlaceholder, computeMediaTransformStyle, rgbColorValue } from './chunk-7BXX7WXH.mjs';
2
2
  import z2, { z } from 'zod';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
  import { forwardRef, createElement } from 'react';
@@ -281,6 +281,22 @@ var eventCategorySchema = z.object({
281
281
  var pricingTypeSchema = z.enum(["free", "paid", "pass_only", "membership_only"]);
282
282
  var accessRestrictionSchema = z.enum(["none", "category"]);
283
283
  var eventPricingModeSchema = z.enum(["single", "ticket_types"]);
284
+ var publicCoursePriceDisplaySchema = z.discriminatedUnion("kind", [
285
+ z.object({ kind: z.literal("free"), currency: z.string() }),
286
+ z.object({ kind: z.literal("exact"), amount: z.number(), currency: z.string() }),
287
+ z.object({ kind: z.literal("from"), amount: z.number(), currency: z.string() }),
288
+ z.object({ kind: z.literal("unavailable"), currency: z.string() })
289
+ ]);
290
+ var publicEventPriceDisplaySchema = z.discriminatedUnion("kind", [
291
+ z.object({ kind: z.literal("free"), currency: z.string() }),
292
+ z.object({ kind: z.literal("exact"), amount: z.number(), currency: z.string() }),
293
+ z.object({ kind: z.literal("from"), amount: z.number(), currency: z.string() }),
294
+ z.object({ kind: z.literal("mixed"), paidFromAmount: z.number(), currency: z.string() }),
295
+ z.object({ kind: z.literal("pass_only") }),
296
+ z.object({ kind: z.literal("membership_only") }),
297
+ z.object({ kind: z.literal("unavailable"), currency: z.string() }),
298
+ z.object({ kind: z.literal("course"), display: publicCoursePriceDisplaySchema })
299
+ ]);
284
300
  var publicEventAttendanceModeSchema = z.enum(["in_person", "online"]);
285
301
  var publicEventAttendanceModeAvailabilitySchema = z.object({
286
302
  mode: publicEventAttendanceModeSchema,
@@ -362,6 +378,7 @@ var publicEventSchema = z.object({
362
378
  pricingType: pricingTypeSchema,
363
379
  price: z.number().nullable(),
364
380
  currency: z.string(),
381
+ priceDisplay: publicEventPriceDisplaySchema,
365
382
  paymentTerms: blockBookingPaymentTermsSchema,
366
383
  pricingMode: eventPricingModeSchema.optional(),
367
384
  ticketTypes: z.array(publicEventTicketTypeSchema).optional(),
@@ -914,7 +931,9 @@ var buttonBorderSchema = z.object({
914
931
  var variantShadowSchema = z.object({
915
932
  elevation: z.enum(["none", "low", "medium", "high"]),
916
933
  softness: z.enum(["crisp", "soft", "hard"]).nullable(),
917
- position: z.enum(["bottom", "bottom-right"]).default("bottom")
934
+ position: z.enum(["bottom", "bottom-right"]).default("bottom"),
935
+ // Optional palette token for a coloured offset shadow; omit for neutral black.
936
+ colorToken: themeColorTokenSchema.optional()
918
937
  });
919
938
  var variantEffectsSchema = z.object({
920
939
  base: z.array(effectApplicationSchema).optional(),
@@ -1435,6 +1454,65 @@ var inkStamp = defineButtonPersonality({
1435
1454
  }
1436
1455
  });
1437
1456
 
1457
+ // ../theme-core/src/buttons/personalities/joy-stamp.ts
1458
+ var joyStamp = defineButtonPersonality({
1459
+ id: "joy-stamp",
1460
+ name: "Joy Stamp",
1461
+ description: "Pill buttons with a hard, brand-coloured offset shadow that presses in on hover.",
1462
+ tags: { tone: "bold", energy: "vibrant", motion: "expressive", era: "organic" },
1463
+ buttonSystem: {
1464
+ global: {
1465
+ cornerStyle: "pill",
1466
+ shadow: "high",
1467
+ textTransform: "none",
1468
+ // Bold display type on the buttons: use the heading font (Bricolage) at
1469
+ // 700, matching the mockup's chunky button labels.
1470
+ typography: "heading",
1471
+ fontWeight: 700,
1472
+ borderWidth: 2,
1473
+ hoverTransform: "none",
1474
+ hoverColor: "none"
1475
+ },
1476
+ sizes: {
1477
+ sm: { padding: "0.625rem 1.25rem", fontSize: "text-sm" },
1478
+ md: { padding: "0.875rem 1.75rem", fontSize: "text-base" },
1479
+ lg: { padding: "1.125rem 2.25rem", fontSize: "text-lg" },
1480
+ xl: { padding: "1.25rem 2.75rem", fontSize: "text-xl" }
1481
+ },
1482
+ variants: [
1483
+ {
1484
+ id: "primary",
1485
+ name: "Primary",
1486
+ enabled: true,
1487
+ priority: 1,
1488
+ background: { type: "solid", colorToken: "primary" },
1489
+ textColorToken: "primaryForeground",
1490
+ borderRadius: "rounded-full",
1491
+ // Cream stamp shadow under the burnt-orange fill.
1492
+ shadow: { elevation: "high", softness: "hard", position: "bottom-right", colorToken: "text" },
1493
+ effects: {
1494
+ hover: [{ effectId: "press-down" }]
1495
+ }
1496
+ },
1497
+ {
1498
+ id: "secondary",
1499
+ name: "Secondary",
1500
+ enabled: true,
1501
+ priority: 2,
1502
+ background: { type: "transparent" },
1503
+ textColorToken: "text",
1504
+ borderRadius: "rounded-full",
1505
+ border: { widthClass: "border-2", colorToken: "text" },
1506
+ // Brown stamp shadow under the cream outline.
1507
+ shadow: { elevation: "high", softness: "hard", position: "bottom-right", colorToken: "secondary" },
1508
+ effects: {
1509
+ hover: [{ effectId: "press-down" }]
1510
+ }
1511
+ }
1512
+ ]
1513
+ }
1514
+ });
1515
+
1438
1516
  // ../theme-core/src/buttons/personalities/pebble.ts
1439
1517
  var pebble = defineButtonPersonality({
1440
1518
  id: "pebble",
@@ -1708,7 +1786,8 @@ var buttonPersonalities = [
1708
1786
  pebble,
1709
1787
  inkStamp,
1710
1788
  brushedWash,
1711
- showtimePill
1789
+ showtimePill,
1790
+ joyStamp
1712
1791
  ];
1713
1792
  new Map(
1714
1793
  buttonPersonalities.map((p) => [p.id, p])
@@ -4872,6 +4951,17 @@ function addMonths(date, months) {
4872
4951
  base.setDate(Math.min(day, lastDayOfTargetMonth));
4873
4952
  return base;
4874
4953
  }
4954
+ function addDays(date, days) {
4955
+ const result = new Date(date);
4956
+ result.setDate(result.getDate() + days);
4957
+ return result;
4958
+ }
4959
+ function shiftCalendarAnchorDate(date, view, steps) {
4960
+ if (view === "week") {
4961
+ return addDays(date, steps * 7);
4962
+ }
4963
+ return addMonths(date, steps);
4964
+ }
4875
4965
  function getThreeMonthRange(date) {
4876
4966
  const year = date.getFullYear();
4877
4967
  const month = date.getMonth();
@@ -4915,6 +5005,16 @@ function getWeekCalendarDays(baseDate, startOfWeek) {
4915
5005
  }
4916
5006
  return days;
4917
5007
  }
5008
+ function getWeekCalendarDayTuple(baseDate, startOfWeek) {
5009
+ const days = getWeekCalendarDays(baseDate, startOfWeek);
5010
+ assertWeekCalendarDays(days);
5011
+ return days;
5012
+ }
5013
+ function assertWeekCalendarDays(days) {
5014
+ if (days.length !== 7) {
5015
+ throw new Error("Expected week calendar helper to return exactly 7 days");
5016
+ }
5017
+ }
4918
5018
  function getOrderedDayNames(startOfWeek, dayNames = DAY_NAMES) {
4919
5019
  if (startOfWeek === "monday") {
4920
5020
  const sunday = dayNames[0] ?? "Sun";
@@ -4938,6 +5038,29 @@ function formatCalendarTitle(viewDate, view, days, monthNames = MONTH_NAMES) {
4938
5038
  }
4939
5039
  return `${monthNames[viewDate.getMonth()] ?? ""} ${viewDate.getFullYear()}`;
4940
5040
  }
5041
+ function buildCalendarViewport(input) {
5042
+ const monthNames = input.monthNames ?? MONTH_NAMES;
5043
+ if (input.view === "week") {
5044
+ const days2 = getWeekCalendarDayTuple(input.anchorDate, input.startOfWeek);
5045
+ return {
5046
+ kind: "week",
5047
+ anchorDate: input.anchorDate,
5048
+ days: days2,
5049
+ title: formatCalendarTitle(input.anchorDate, "week", [...days2], monthNames)
5050
+ };
5051
+ }
5052
+ const days = getMonthCalendarDays(
5053
+ input.anchorDate.getFullYear(),
5054
+ input.anchorDate.getMonth(),
5055
+ input.startOfWeek
5056
+ );
5057
+ return {
5058
+ kind: "month",
5059
+ anchorDate: input.anchorDate,
5060
+ days,
5061
+ title: formatCalendarTitle(input.anchorDate, "month", days, monthNames)
5062
+ };
5063
+ }
4941
5064
 
4942
5065
  // ../calendar/src/lane-packing.ts
4943
5066
  function assignLanes(intervals) {
@@ -5558,47 +5681,51 @@ function groupEventsByDate(events) {
5558
5681
  }
5559
5682
  return map;
5560
5683
  }
5561
- function formatEventPrice(event) {
5562
- if (event.kind === "course_session") {
5563
- if (!event.course) {
5564
- return "Course";
5565
- }
5566
- const pricing = resolveCoursePricingState({
5567
- pricing: event.course.pricing,
5568
- priceCents: event.course.priceCents,
5569
- currency: event.course.currency
5570
- });
5571
- if (pricing.display.kind === "exact" || pricing.display.kind === "from") {
5572
- const amountLabel = formatCourseCurrencyAmount(pricing.display.amount, pricing.display.currency, {
5573
- minimumFractionDigits: 0,
5574
- maximumFractionDigits: 2
5575
- });
5576
- return pricing.display.kind === "from" ? `Course (From ${amountLabel})` : `Course (${amountLabel})`;
5577
- }
5684
+ function formatCompactCurrencyAmount(amount, currency) {
5685
+ return formatCourseCurrencyAmount(amount, currency, {
5686
+ minimumFractionDigits: 0,
5687
+ maximumFractionDigits: 2
5688
+ });
5689
+ }
5690
+ function formatCourseEventPriceDisplay(display) {
5691
+ if (display.kind !== "course") {
5578
5692
  return "Course";
5579
5693
  }
5580
- switch (event.pricingType) {
5694
+ if (display.display.kind === "exact" || display.display.kind === "from") {
5695
+ const amountLabel = formatCompactCurrencyAmount(
5696
+ display.display.amount,
5697
+ display.display.currency
5698
+ );
5699
+ return display.display.kind === "from" ? `Course (From ${amountLabel})` : `Course (${amountLabel})`;
5700
+ }
5701
+ return "Course";
5702
+ }
5703
+ function formatPublicEventPriceDisplay(display) {
5704
+ switch (display.kind) {
5581
5705
  case "free":
5582
5706
  return "Free";
5583
- case "paid":
5584
- if (event.price != null && event.price > 0) {
5585
- return formatCourseCurrencyAmount(event.price, event.currency || "USD", {
5586
- minimumFractionDigits: 0,
5587
- maximumFractionDigits: 2
5588
- });
5589
- }
5590
- return "Free";
5707
+ case "exact":
5708
+ return formatCompactCurrencyAmount(display.amount, display.currency);
5709
+ case "from":
5710
+ return `From ${formatCompactCurrencyAmount(display.amount, display.currency)}`;
5711
+ case "mixed":
5712
+ return `Free / From ${formatCompactCurrencyAmount(display.paidFromAmount, display.currency)}`;
5591
5713
  case "pass_only":
5592
5714
  return "Pass Only";
5593
5715
  case "membership_only":
5594
5716
  return "Members Only";
5595
- default:
5596
- return "Free";
5717
+ case "unavailable":
5718
+ return "Pricing unavailable";
5719
+ case "course":
5720
+ return formatCourseEventPriceDisplay(display);
5597
5721
  }
5598
5722
  }
5723
+ function formatEventPrice(event) {
5724
+ return formatPublicEventPriceDisplay(event.priceDisplay);
5725
+ }
5599
5726
  function resolveEventCta(event, buttonText) {
5600
5727
  const { isFull: isSoldOut } = getEventAvailability(event);
5601
- const defaultButtonText = event.kind === "course_session" ? "Book course" : "Book now";
5728
+ const defaultButtonText = event.kind === "course_session" ? "Book course" : "Book";
5602
5729
  const effectiveButtonText = buttonText ?? defaultButtonText;
5603
5730
  if (isSoldOut) {
5604
5731
  return { label: "Sold out", href: event.path, hidden: true };
@@ -5617,9 +5744,10 @@ var MediaNodeServer = ({
5617
5744
  size = ImagePresets.full,
5618
5745
  fieldPath,
5619
5746
  blockKind,
5620
- blockContent
5747
+ blockContent,
5748
+ imageResolveContext: explicitImageResolveContext
5621
5749
  }) => {
5622
- const imageResolveContext = getCurrentResolveImageUrlContext();
5750
+ const imageResolveContext = explicitImageResolveContext ?? getCurrentResolveImageUrlContext();
5623
5751
  if (!value) return null;
5624
5752
  if (value.type === "video") {
5625
5753
  return renderVideo(value, className, style, imageResolveContext, { playback: videoPlayback });
@@ -6021,25 +6149,28 @@ var EventCompactRow = ({
6021
6149
  /* @__PURE__ */ jsx("span", { className: "event-compact-row-date-day", children: dateRail.day }),
6022
6150
  /* @__PURE__ */ jsx("span", { className: "event-compact-row-date-month", children: dateRail.month })
6023
6151
  ] }),
6024
- /* @__PURE__ */ jsxs("div", { className: "event-compact-row-content", children: [
6025
- /* @__PURE__ */ jsx("h3", { className: "event-compact-row-title", children: event.title }),
6026
- /* @__PURE__ */ jsxs("div", { className: "event-compact-row-meta", children: [
6027
- event.venue && /* @__PURE__ */ jsxs("span", { className: "event-compact-row-venue", children: [
6028
- /* @__PURE__ */ jsx(MapPinIcon, { className: "rb-shrink-0" }),
6029
- event.venue.name
6030
- ] }),
6031
- teacherLine && /* @__PURE__ */ jsx("span", { className: "event-compact-row-teacher", children: teacherLine }),
6032
- /* @__PURE__ */ jsx("span", { className: "event-compact-row-price", children: price })
6033
- ] })
6034
- ] }),
6035
- /* @__PURE__ */ jsxs("div", { className: "event-compact-row-action", children: [
6036
- /* @__PURE__ */ jsxs("span", { className: "event-compact-row-datetime", children: [
6037
- /* @__PURE__ */ jsx(Clock, { "aria-hidden": "true" }),
6038
- formattedTime
6152
+ /* @__PURE__ */ jsxs("div", { className: "event-compact-row-body", children: [
6153
+ /* @__PURE__ */ jsxs("div", { className: "event-compact-row-content", children: [
6154
+ /* @__PURE__ */ jsx("h3", { className: "event-compact-row-title", children: event.title }),
6155
+ /* @__PURE__ */ jsxs("div", { className: "event-compact-row-meta", children: [
6156
+ event.venue && /* @__PURE__ */ jsxs("span", { className: "event-compact-row-venue", children: [
6157
+ /* @__PURE__ */ jsx(MapPinIcon, { className: "rb-shrink-0" }),
6158
+ event.venue.name
6159
+ ] }),
6160
+ teacherLine && /* @__PURE__ */ jsx("span", { className: "event-compact-row-teacher", children: teacherLine }),
6161
+ /* @__PURE__ */ jsx("span", { className: "event-compact-row-price", children: price })
6162
+ ] })
6039
6163
  ] }),
6040
- cta.hidden ? /* @__PURE__ */ jsx("span", { className: "event-compact-row-status", children: cta.label }) : /* @__PURE__ */ jsxs("a", { href: cta.href, className: `${buttonClass} event-compact-row-cta`, children: [
6041
- /* @__PURE__ */ jsx("span", { children: cta.label }),
6042
- /* @__PURE__ */ jsx(ArrowRight, { "aria-hidden": "true" })
6164
+ /* @__PURE__ */ jsxs("div", { className: "event-compact-row-action", children: [
6165
+ /* @__PURE__ */ jsxs("span", { className: "event-compact-row-datetime", children: [
6166
+ /* @__PURE__ */ jsx(Clock, { "aria-hidden": "true" }),
6167
+ formattedTime,
6168
+ /* @__PURE__ */ jsx("span", { className: "event-compact-row-action-price", children: price })
6169
+ ] }),
6170
+ cta.hidden ? /* @__PURE__ */ jsx("span", { className: "event-compact-row-status", children: cta.label }) : /* @__PURE__ */ jsxs("a", { href: cta.href, className: `${buttonClass} event-compact-row-cta`, children: [
6171
+ /* @__PURE__ */ jsx("span", { children: cta.label }),
6172
+ /* @__PURE__ */ jsx(ArrowRight, { "aria-hidden": "true" })
6173
+ ] })
6043
6174
  ] })
6044
6175
  ] })
6045
6176
  ] });
@@ -6072,6 +6203,110 @@ function DateTimeTile({ startsAt, endsAt, timeZone }) {
6072
6203
  ] });
6073
6204
  }
6074
6205
 
6206
+ // ../blocks/src/system/runtime/hooks/utils/normalize.ts
6207
+ function normalizeOptionalId(value) {
6208
+ const trimmed = typeof value === "string" ? value.trim() : void 0;
6209
+ return trimmed ? trimmed : void 0;
6210
+ }
6211
+ function normalizeCsvIds(value) {
6212
+ if (!value) return [];
6213
+ const parts = Array.isArray(value) ? value.filter((entry) => typeof entry === "string") : typeof value === "string" ? value.split(",") : [];
6214
+ return normalizeIdList(parts);
6215
+ }
6216
+ function normalizeCsvString(value) {
6217
+ const ids = normalizeCsvIds(value);
6218
+ return ids.length > 0 ? ids.join(",") : void 0;
6219
+ }
6220
+
6221
+ // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
6222
+ var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
6223
+ var eventPageSizeSchema = z.union([
6224
+ z.literal(3),
6225
+ z.literal(6),
6226
+ z.literal(10),
6227
+ z.literal(12),
6228
+ z.literal(20),
6229
+ z.literal(24),
6230
+ z.literal(30)
6231
+ ]);
6232
+ var eventPageSizeSet = new Set(eventPageSizeValues);
6233
+ function resolveEventPageSize(value, fallback = 12) {
6234
+ const candidate = typeof value === "number" ? value : typeof value === "string" && value.trim() !== "" ? Number(value.trim()) : null;
6235
+ return candidate != null && Number.isInteger(candidate) && eventPageSizeSet.has(candidate) ? candidate : fallback;
6236
+ }
6237
+ function resolveEventCalendarListPageSize(input) {
6238
+ return resolveEventPageSize(input.eventsPerPage);
6239
+ }
6240
+ var eventListPaginationActionSchema = z.discriminatedUnion("kind", [
6241
+ z.object({
6242
+ kind: z.literal("loadMore"),
6243
+ label: z.string()
6244
+ }),
6245
+ z.object({
6246
+ kind: z.literal("seeAllLink"),
6247
+ label: z.string(),
6248
+ href: z.string()
6249
+ })
6250
+ ]);
6251
+ function resolveEventListPaginationAction(input) {
6252
+ const label = input.loadMoreText?.trim() || input.defaultLabel || "Load more events";
6253
+ const href = input.seeAllUrl?.trim();
6254
+ if (input.paginationMode === "seeAllLink" && href) {
6255
+ return { kind: "seeAllLink", label, href };
6256
+ }
6257
+ return { kind: "loadMore", label };
6258
+ }
6259
+ function normalizeFilterId(value) {
6260
+ const id = normalizeOptionalId(value);
6261
+ return id === "all" ? void 0 : id;
6262
+ }
6263
+ function buildEventRuntimeFilters(input) {
6264
+ const params = {};
6265
+ if (input.eventSurface && input.eventSurface !== "all") {
6266
+ params.eventSurface = input.eventSurface;
6267
+ }
6268
+ const eventPresets = normalizeCsvString(input.filterEventPresets);
6269
+ if (eventPresets) {
6270
+ params.eventPresets = eventPresets;
6271
+ }
6272
+ if (input.scheduleScope && input.scheduleScope !== "any") {
6273
+ params.scheduleScope = input.scheduleScope;
6274
+ }
6275
+ const venueId = normalizeFilterId(input.filterVenueId);
6276
+ const staffMemberId = normalizeFilterId(input.filterStaffMemberId);
6277
+ if (input.eventKind === "courses") {
6278
+ params.kind = "courses";
6279
+ if (venueId) params.venueId = venueId;
6280
+ if (staffMemberId) params.staffMemberId = staffMemberId;
6281
+ return params;
6282
+ }
6283
+ const categoryIds = normalizeCsvString(input.filterCategoryIds);
6284
+ if (categoryIds) {
6285
+ params.categoryIds = categoryIds;
6286
+ }
6287
+ if (input.eventKind === "events") {
6288
+ params.kind = "events";
6289
+ }
6290
+ if (venueId) {
6291
+ params.venueId = venueId;
6292
+ }
6293
+ if (staffMemberId) {
6294
+ params.staffMemberId = staffMemberId;
6295
+ }
6296
+ return params;
6297
+ }
6298
+ function getEventRuntimeFiltersKey(filters) {
6299
+ return JSON.stringify({
6300
+ categoryIds: normalizeCsvString(filters?.categoryIds),
6301
+ staffMemberId: normalizeOptionalId(filters?.staffMemberId),
6302
+ venueId: normalizeOptionalId(filters?.venueId),
6303
+ kind: filters?.kind ?? null,
6304
+ eventSurface: filters?.eventSurface ?? null,
6305
+ eventPresets: normalizeCsvString(filters?.eventPresets),
6306
+ scheduleScope: filters?.scheduleScope ?? null
6307
+ });
6308
+ }
6309
+
6075
6310
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
6076
6311
  var legacyEventCardVariantSchema = z.enum(["variant1", "variant2"]);
6077
6312
  var eventCardVariantInputSchema = z.union([
@@ -6133,10 +6368,8 @@ var eventListingDisplaySchema = z.object({
6133
6368
  var eventListingHydrationSchema = z.object({
6134
6369
  siteId: z.string(),
6135
6370
  stage: previewStageSchema.optional(),
6136
- eventsPerPage: z.string(),
6137
- paginationMode: z.enum(["loadMore", "seeAllLink"]),
6138
- seeAllUrl: z.string().optional(),
6139
- loadMoreText: z.string(),
6371
+ eventsPerPage: eventPageSizeSchema,
6372
+ paginationAction: eventListPaginationActionSchema,
6140
6373
  showFilters: z.boolean(),
6141
6374
  showCategoryFilter: filterAutoShowSchema,
6142
6375
  showVenueFilter: z.boolean(),
@@ -6169,7 +6402,7 @@ var eventListingBlockRuntime = defineProgressiveBlockRuntime({
6169
6402
  },
6170
6403
  buildRender: (source) => {
6171
6404
  const normalizedEvents = Array.isArray(source.events) ? source.events : [];
6172
- const pageSize = parseInt(source.eventsPerPage ?? "12", 10) || 12;
6405
+ const pageSize = resolveEventPageSize(source.eventsPerPage);
6173
6406
  const initialEvents = normalizedEvents.slice(0, pageSize);
6174
6407
  const didPrefetchEvents = source.events != null;
6175
6408
  const layout = source.layout ?? "grid";
@@ -6184,7 +6417,7 @@ var eventListingBlockRuntime = defineProgressiveBlockRuntime({
6184
6417
  containerClass: getContainerClass(layout, source.columns ?? "3"),
6185
6418
  cardVariant: normalizeCardVariantRole(source.cardVariant) ?? "default",
6186
6419
  buttonVariant: source.buttonVariant ?? "primary",
6187
- buttonText: source.buttonText ?? "Book now",
6420
+ buttonText: source.buttonText ?? "Book",
6188
6421
  showVenue: source.showVenue ?? true,
6189
6422
  showMap: source.showMap ?? true,
6190
6423
  showCapacity: source.showCapacity ?? true,
@@ -6194,10 +6427,12 @@ var eventListingBlockRuntime = defineProgressiveBlockRuntime({
6194
6427
  hydration: {
6195
6428
  siteId: source.siteId,
6196
6429
  stage: source.stage,
6197
- eventsPerPage: source.eventsPerPage ?? "12",
6198
- paginationMode: source.paginationMode ?? "loadMore",
6199
- seeAllUrl: source.seeAllUrl,
6200
- loadMoreText: source.loadMoreText || "Load more",
6430
+ eventsPerPage: pageSize,
6431
+ paginationAction: resolveEventListPaginationAction({
6432
+ paginationMode: source.paginationMode,
6433
+ seeAllUrl: source.seeAllUrl,
6434
+ loadMoreText: source.loadMoreText
6435
+ }),
6201
6436
  showFilters: source.showFilters ?? false,
6202
6437
  showCategoryFilter: source.showCategoryFilter ?? "auto",
6203
6438
  showVenueFilter: source.showVenueFilter ?? false,
@@ -6252,7 +6487,8 @@ var eventCalendarSourceSchema = z.object(
6252
6487
  layout: eventLayoutSchema.optional(),
6253
6488
  columns: columnOptionSchema.optional(),
6254
6489
  eventsPerPage: z.string().optional(),
6255
- compactEventsPerPage: z.string().optional(),
6490
+ paginationMode: z.enum(["loadMore", "seeAllLink"]).optional(),
6491
+ seeAllUrl: z.string().optional(),
6256
6492
  loadMoreText: z.string().optional(),
6257
6493
  startOfWeek: weekStartSchema.optional(),
6258
6494
  calendarTabViews: calendarTabViewsSchema.optional(),
@@ -6283,8 +6519,8 @@ var eventCalendarDisplaySchema = z.object({
6283
6519
  events: z.array(publicEventSchema),
6284
6520
  listLayout: eventLayoutSchema,
6285
6521
  listColumns: columnOptionSchema,
6286
- eventsPerPage: z.string(),
6287
- loadMoreText: z.string(),
6522
+ eventsPerPage: eventPageSizeSchema,
6523
+ paginationAction: eventListPaginationActionSchema,
6288
6524
  startOfWeek: weekStartSchema,
6289
6525
  calendarTabViews: calendarTabViewsSchema,
6290
6526
  showFilters: z.boolean(),
@@ -6331,6 +6567,7 @@ var eventCalendarIslandMetaKeys = defineInteractiveIslandMetaKeys(
6331
6567
  "stage"
6332
6568
  );
6333
6569
  function buildEventCalendarDisplay(source) {
6570
+ const listLayout = source.listLayout ?? source.layout ?? "stack";
6334
6571
  return {
6335
6572
  kind: "event-calendar",
6336
6573
  displayMode: source.variant ?? source.displayMode ?? "combined",
@@ -6338,10 +6575,16 @@ function buildEventCalendarDisplay(source) {
6338
6575
  events: (source.events ?? []).slice().sort(
6339
6576
  (left, right) => new Date(left.startsAt).getTime() - new Date(right.startsAt).getTime()
6340
6577
  ),
6341
- listLayout: source.listLayout ?? source.layout ?? "stack",
6578
+ listLayout,
6342
6579
  listColumns: source.listColumns ?? source.columns ?? "3",
6343
- eventsPerPage: (source.listLayout ?? source.layout) === "compact" ? source.compactEventsPerPage ?? "10" : source.eventsPerPage ?? "12",
6344
- loadMoreText: source.loadMoreText ?? "Load more events",
6580
+ eventsPerPage: resolveEventCalendarListPageSize({
6581
+ eventsPerPage: source.eventsPerPage
6582
+ }),
6583
+ paginationAction: resolveEventListPaginationAction({
6584
+ paginationMode: source.paginationMode,
6585
+ seeAllUrl: source.seeAllUrl,
6586
+ loadMoreText: source.loadMoreText
6587
+ }),
6345
6588
  startOfWeek: source.startOfWeek ?? "monday",
6346
6589
  calendarTabViews: source.calendarTabViews ?? "both",
6347
6590
  showFilters: source.showFilters ?? true,
@@ -6358,7 +6601,7 @@ function buildEventCalendarDisplay(source) {
6358
6601
  ),
6359
6602
  filterVenueId: normalizeEventVenueId(source.filterVenueId),
6360
6603
  buttonVariant: source.buttonVariant ?? "primary",
6361
- buttonText: source.buttonText ?? "Book now",
6604
+ buttonText: source.buttonText ?? "Book",
6362
6605
  showVenue: source.showVenue ?? true,
6363
6606
  showMap: source.showMap ?? true,
6364
6607
  showCapacity: source.showCapacity ?? true,
@@ -6366,7 +6609,7 @@ function buildEventCalendarDisplay(source) {
6366
6609
  };
6367
6610
  }
6368
6611
  function buildEventCalendarListingDisplay(display, prefetchedEvents, className = display.className) {
6369
- const pageSize = parseInt(display.eventsPerPage, 10) || 12;
6612
+ const pageSize = display.eventsPerPage;
6370
6613
  const initialEvents = display.events.slice(0, pageSize);
6371
6614
  return {
6372
6615
  kind: "event-listing",
@@ -6399,8 +6642,7 @@ function buildEventCalendarListingRender(render, className = render.display.clas
6399
6642
  siteId: hydration.siteId,
6400
6643
  stage: hydration.stage,
6401
6644
  eventsPerPage: display.eventsPerPage,
6402
- paginationMode: "loadMore",
6403
- loadMoreText: display.loadMoreText,
6645
+ paginationAction: display.paginationAction,
6404
6646
  showFilters: display.showFilters,
6405
6647
  showCategoryFilter: display.showCategoryFilter,
6406
6648
  showVenueFilter: display.showVenueFilter,
@@ -6458,7 +6700,8 @@ var eventCombinedSourceSchema = z.object(
6458
6700
  listLayout: eventLayoutSchema.optional(),
6459
6701
  listColumns: columnOptionSchema.optional(),
6460
6702
  eventsPerPage: z.string().optional(),
6461
- compactEventsPerPage: z.string().optional(),
6703
+ paginationMode: z.enum(["loadMore", "seeAllLink"]).optional(),
6704
+ seeAllUrl: z.string().optional(),
6462
6705
  loadMoreText: z.string().optional(),
6463
6706
  startOfWeek: weekStartSchema.optional(),
6464
6707
  calendarTabViews: calendarTabViewsSchema.optional(),
@@ -6488,8 +6731,8 @@ var eventCombinedDisplaySchema = z.object({
6488
6731
  events: z.array(publicEventSchema),
6489
6732
  listLayout: eventLayoutSchema,
6490
6733
  listColumns: columnOptionSchema,
6491
- eventsPerPage: z.string(),
6492
- loadMoreText: z.string(),
6734
+ eventsPerPage: eventPageSizeSchema,
6735
+ paginationAction: eventListPaginationActionSchema,
6493
6736
  startOfWeek: weekStartSchema,
6494
6737
  calendarTabViews: calendarTabViewsSchema,
6495
6738
  showFilters: z.boolean(),
@@ -6536,14 +6779,21 @@ var eventCombinedIslandMetaKeys = defineInteractiveIslandMetaKeys(
6536
6779
  "stage"
6537
6780
  );
6538
6781
  function buildEventCombinedDisplay(source) {
6782
+ const listLayout = source.listLayout ?? "stack";
6539
6783
  return {
6540
6784
  kind: "event-combined",
6541
6785
  className: source.className ?? null,
6542
6786
  events: Array.isArray(source.events) ? [...source.events] : [],
6543
- listLayout: source.listLayout ?? "stack",
6787
+ listLayout,
6544
6788
  listColumns: source.listColumns ?? "3",
6545
- eventsPerPage: source.listLayout === "compact" ? source.compactEventsPerPage ?? "10" : source.eventsPerPage ?? "12",
6546
- loadMoreText: source.loadMoreText ?? "Load more events",
6789
+ eventsPerPage: resolveEventCalendarListPageSize({
6790
+ eventsPerPage: source.eventsPerPage
6791
+ }),
6792
+ paginationAction: resolveEventListPaginationAction({
6793
+ paginationMode: source.paginationMode,
6794
+ seeAllUrl: source.seeAllUrl,
6795
+ loadMoreText: source.loadMoreText
6796
+ }),
6547
6797
  startOfWeek: source.startOfWeek ?? "monday",
6548
6798
  calendarTabViews: source.calendarTabViews ?? "both",
6549
6799
  showFilters: source.showFilters ?? true,
@@ -6563,7 +6813,7 @@ function buildEventCombinedDisplay(source) {
6563
6813
  showMap: source.showMap ?? true,
6564
6814
  showCapacity: source.showCapacity ?? true,
6565
6815
  buttonVariant: source.buttonVariant ?? "primary",
6566
- buttonText: source.buttonText ?? "Book now",
6816
+ buttonText: source.buttonText ?? "Book",
6567
6817
  emptyMessage: source.emptyMessage ?? "No upcoming events scheduled."
6568
6818
  };
6569
6819
  }
@@ -8056,4 +8306,4 @@ lucide-react/dist/esm/lucide-react.js:
8056
8306
  *)
8057
8307
  */
8058
8308
 
8059
- export { BOOKING_FORM_DATA_RESERVED_KEYS, ChevronLeft, ChevronRight, CreditCard, DateTimeTile, EMPTY_COMMERCE_CART_STATE, EmptyState, EventCard, EventCompactRow, MAX_EVENTS_PER_DAY, MONTH_NAMES, Sparkles, Star, Ticket, addMonths, assertNever11, buildCartDisplay, buildEventCalendarListingRender, buildPassCartItem, buildProductCardDisplay, buildProductCartItem, buildProductDetailDisplay, buildTimetableModel, clearWorkflowFeedback, defineIslandPropsDecoder, deriveBookingFormViewState, deriveCommerceCheckoutState, err2, formatBookingSubmissionPreparationError, formatCalendarTitle, formatCommercePrice, formatCoursePriceAmount, formatCoursePriceDisplay, formatDate, formatDateKey, formatEventDateParts, formatEventPrice, formatEventTeacherLine, formatInterval, formatTime, getBookingRedirectStateFromLocation, getBookingSuccessMessage, getCardOrientation, getContainerClass, getEventAvailability, getMonthCalendarDays, getOrderedDayNames, getShopDisplayForItems, getThreeMonthRange, getWeekCalendarDays, groupEventsByDate, isEventContentType, isToday, logger, normalizeEventBlockKind, normalizeIdList, ok, okWith2, parseStoredCommerceCartState, prepareBookingSubmission, productItemKey, reduceCommerceCart, reportWorkflowError, reportWorkflowSuccess, resolveAppointmentCheckoutVerificationState, resolveBookingPaymentStep, resolveBookingSiteId, resolveCoursePricingState, resolveDefaultBookingServiceId, themeButtonClassName, toSelectedCollectionOptionKind };
8309
+ export { BOOKING_FORM_DATA_RESERVED_KEYS, ChevronLeft, ChevronRight, CreditCard, DateTimeTile, EMPTY_COMMERCE_CART_STATE, EmptyState, EventCard, EventCompactRow, MAX_EVENTS_PER_DAY, MONTH_NAMES, Sparkles, Star, Ticket, addMonths, assertNever11, buildCalendarViewport, buildCartDisplay, buildEventCalendarListingRender, buildEventRuntimeFilters, buildPassCartItem, buildProductCardDisplay, buildProductCartItem, buildProductDetailDisplay, buildTimetableModel, clearWorkflowFeedback, defineIslandPropsDecoder, deriveBookingFormViewState, deriveCommerceCheckoutState, err2, formatBookingSubmissionPreparationError, formatCommercePrice, formatCoursePriceAmount, formatCoursePriceDisplay, formatDate, formatDateKey, formatEventDateParts, formatEventPrice, formatEventTeacherLine, formatInterval, formatTime, getBookingRedirectStateFromLocation, getBookingSuccessMessage, getCardOrientation, getContainerClass, getEventAvailability, getEventRuntimeFiltersKey, getOrderedDayNames, getShopDisplayForItems, getThreeMonthRange, groupEventsByDate, isEventContentType, isToday, logger, normalizeCsvIds, normalizeCsvString, normalizeEventBlockKind, normalizeOptionalId, ok, okWith2, parseStoredCommerceCartState, prepareBookingSubmission, productItemKey, reduceCommerceCart, reportWorkflowError, reportWorkflowSuccess, resolveAppointmentCheckoutVerificationState, resolveBookingPaymentStep, resolveBookingSiteId, resolveCoursePricingState, resolveDefaultBookingServiceId, shiftCalendarAnchorDate, themeButtonClassName, toSelectedCollectionOptionKind };
@@ -1,6 +1,6 @@
1
1
  import { FeedbackMessage } from './chunk-UDNSI5PY.mjs';
2
- import { themeButtonClassName } from './chunk-PUOELU4O.mjs';
3
- import { clsx_default } from './chunk-AUJ5DBZJ.mjs';
2
+ import { themeButtonClassName } from './chunk-NX6X3GRF.mjs';
3
+ import { clsx_default } from './chunk-7BXX7WXH.mjs';
4
4
  import { useId } from 'react';
5
5
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
6
 
@@ -1,4 +1,4 @@
1
- import { clsx_default } from './chunk-AUJ5DBZJ.mjs';
1
+ import { clsx_default } from './chunk-7BXX7WXH.mjs';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
 
4
4
  function resolveColorStyle(color) {
@@ -1,4 +1,4 @@
1
- import { EMPTY_COMMERCE_CART_STATE, parseStoredCommerceCartState, reduceCommerceCart, buildPassCartItem } from './chunk-PUOELU4O.mjs';
1
+ import { EMPTY_COMMERCE_CART_STATE, parseStoredCommerceCartState, reduceCommerceCart, buildPassCartItem } from './chunk-NX6X3GRF.mjs';
2
2
  import * as React from 'react';
3
3
 
4
4
  var EMPTY_STATE = EMPTY_COMMERCE_CART_STATE;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { useBlockApi, BlockApiError } from './chunk-UDNSI5PY.mjs';
3
- import { themeButtonClassName } from './chunk-PUOELU4O.mjs';
3
+ import { themeButtonClassName } from './chunk-NX6X3GRF.mjs';
4
4
  import { useState, useSyncExternalStore, useEffect } from 'react';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
6
6