@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
@@ -0,0 +1,23 @@
1
+ import type { Content } from '@tiptap/react';
2
+ export type RichTextContentWarnings = {
3
+ unsupportedNodes: string[];
4
+ unsupportedMarks: string[];
5
+ };
6
+ type SchemaLike = {
7
+ nodes: {
8
+ get: (name: string) => unknown;
9
+ } | Record<string, unknown>;
10
+ marks: {
11
+ get: (name: string) => unknown;
12
+ } | Record<string, unknown>;
13
+ topNodeType?: {
14
+ inlineContent?: boolean;
15
+ };
16
+ };
17
+ export declare function sanitizeRichTextContentForSchema(schema: SchemaLike, content: Content | null | undefined): {
18
+ content: Content;
19
+ warnings: RichTextContentWarnings;
20
+ };
21
+ export declare function hasUnsupportedRichTextContent(warnings: RichTextContentWarnings): boolean;
22
+ export declare function formatUnsupportedRichTextSummary(warnings: RichTextContentWarnings): string;
23
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { Editor } from '@tiptap/react';
2
+ export declare function BlockTypeDropdown({ editor, onOpenChange, tone }: {
3
+ editor: Editor;
4
+ onOpenChange: (open: boolean) => void;
5
+ tone?: 'light' | 'dark';
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import type { Editor } from '@tiptap/react';
2
+ import { type RichTextRoutableItem } from './linkPopoverUtils';
3
+ type LinkPopoverProps = {
4
+ editor: Editor;
5
+ tone?: 'light' | 'dark';
6
+ initialItems?: RichTextRoutableItem[];
7
+ loadItems?: () => Promise<RichTextRoutableItem[]>;
8
+ };
9
+ export { type RichTextRoutableItem };
10
+ export declare function LinkPopover({ editor, tone, initialItems, loadItems }: LinkPopoverProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import type { ReactNode } from 'react';
2
+ export declare function ToolbarIconButton({ children, ariaLabel, isActive, label, widthClassName, onClick, disabled, tone, }: {
3
+ children: ReactNode;
4
+ ariaLabel: string;
5
+ isActive: boolean;
6
+ label?: string;
7
+ widthClassName?: string;
8
+ onClick: () => void;
9
+ disabled?: boolean;
10
+ tone?: 'light' | 'dark';
11
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,58 @@
1
+ type TabKey = 'internal' | 'external' | 'custom';
2
+ export type RichTextRoutableItem = {
3
+ routeId: string;
4
+ entityId: string;
5
+ entityType: 'page' | 'content';
6
+ identifier: string | null;
7
+ contentTypeKey?: string | null;
8
+ contentTypeName?: string | null;
9
+ title: string;
10
+ draftTitle: string | null;
11
+ path: string;
12
+ typeLabel: string;
13
+ updatedAt: string | null;
14
+ };
15
+ export type LinkAttrs = {
16
+ href?: string;
17
+ target?: string;
18
+ rel?: string;
19
+ kind?: 'internal' | 'page' | 'entry' | 'external' | 'url';
20
+ identifier?: string;
21
+ contentType?: string;
22
+ routeId?: string;
23
+ entityId?: string;
24
+ entityType?: 'page' | 'content';
25
+ title?: string;
26
+ typeLabel?: string;
27
+ contentTypeKey?: string | null;
28
+ contentTypeName?: string | null;
29
+ updatedAt?: string | null;
30
+ };
31
+ export type LinkAttrsInput = LinkAttrs & {
32
+ href: string;
33
+ };
34
+ export type LinkDraftState = {
35
+ tab: TabKey;
36
+ selectedItem: RichTextRoutableItem | null;
37
+ externalUrlValue: string;
38
+ customPathValue: string;
39
+ };
40
+ export type DraftLinkResolution = {
41
+ mode: 'apply';
42
+ attrs: LinkAttrsInput;
43
+ } | {
44
+ mode: 'clear';
45
+ } | {
46
+ mode: 'noop';
47
+ };
48
+ export declare function isIdentifierLinkCandidate(item: RichTextRoutableItem): boolean;
49
+ export declare function looksLikeAbsoluteUrl(value: string): boolean;
50
+ export declare function normalizeTab(attrs: LinkAttrs): TabKey;
51
+ export declare function normalizeCustomPath(value: string): string;
52
+ export declare function toInternalLinkAttrs(item: RichTextRoutableItem): LinkAttrsInput | null;
53
+ export declare function getDisplayTitle(item: Pick<RichTextRoutableItem, 'title' | 'draftTitle'>): string;
54
+ export declare function resolveDraftLinkResolution(draft: LinkDraftState): DraftLinkResolution;
55
+ export declare function getLoadItemsErrorMessage(error: unknown): string;
56
+ export declare function findSelectedRouteId(attrs: LinkAttrs, items: RichTextRoutableItem[]): string | null;
57
+ export declare function filterRoutableItems(items: RichTextRoutableItem[], searchQuery: string): RichTextRoutableItem[];
58
+ export {};
@@ -0,0 +1,19 @@
1
+ import type { Content, Editor } from '@tiptap/react';
2
+ import type { RichTextVariant } from '../../../../blocks/src/index';
3
+ import { type RichTextEditorConfig } from './config';
4
+ import { type RichTextContentWarnings } from './sanitize';
5
+ interface UseRichTextEditorOptions {
6
+ /** TipTap document content - can be JSON object, HTML string, or null */
7
+ content: Content;
8
+ editable: boolean;
9
+ variant: RichTextVariant;
10
+ }
11
+ interface UseRichTextEditorResult {
12
+ editor: Editor | null;
13
+ isEmpty: boolean;
14
+ config: RichTextEditorConfig;
15
+ warnings: RichTextContentWarnings;
16
+ warningSummary: string | null;
17
+ }
18
+ export declare function useRichTextEditor({ content, editable, variant }: UseRichTextEditorOptions): UseRichTextEditorResult;
19
+ export {};
@@ -0,0 +1,20 @@
1
+ export interface TextNode {
2
+ type: 'text';
3
+ text: string;
4
+ marks?: Array<{
5
+ type: string;
6
+ [key: string]: unknown;
7
+ }>;
8
+ }
9
+ export interface ContentNode {
10
+ type: string;
11
+ content?: Array<TextNode | ContentNode>;
12
+ [key: string]: unknown;
13
+ }
14
+ export interface RichTextDoc {
15
+ type: 'doc';
16
+ content: ContentNode[];
17
+ }
18
+ export declare const EMPTY_DOC: RichTextDoc;
19
+ export declare function isDocEmpty(doc: unknown): boolean;
20
+ export declare function normaliseDoc(doc: unknown): RichTextDoc;
@@ -0,0 +1,27 @@
1
+ export type OptimisticToken = number;
2
+ type TokenState = {
3
+ counter: number;
4
+ baseline: number;
5
+ };
6
+ export type OptimisticTokenSnapshot = Record<string, TokenState>;
7
+ /**
8
+ * Maintains monotonically increasing optimistic tokens per resource (e.g. block).
9
+ * Use `issue` before scheduling an optimistic write, then guard async results by checking `isCurrent`.
10
+ * When the server confirms, call `commit` with the token so failures for older tokens can be ignored safely.
11
+ */
12
+ export declare class OptimisticTokenStore {
13
+ private state;
14
+ issue(id: string): OptimisticToken;
15
+ isCurrent(id: string, token: OptimisticToken): boolean;
16
+ isStale(id: string, token: OptimisticToken): boolean;
17
+ commit(id: string, token: OptimisticToken): boolean;
18
+ revertToBaseline(id: string): OptimisticToken;
19
+ getBaseline(id: string): OptimisticToken;
20
+ getLatest(id: string): OptimisticToken;
21
+ reset(id: string): void;
22
+ clear(): void;
23
+ snapshot(): OptimisticTokenSnapshot;
24
+ restore(snapshot: OptimisticTokenSnapshot): void;
25
+ }
26
+ export declare function createOptimisticTokenStore(): OptimisticTokenStore;
27
+ export {};
@@ -5,7 +5,7 @@ import { type Theme } from '../../blocks/src/index';
5
5
  import type { PageDesignEditorReadModel } from '../../theme-core/src/site-styles/index';
6
6
  import { type EditorStructuralCommand } from '../../core/src/index';
7
7
  import { type CustomBlockRegistryEntry, type SdkConfigForBlockPicker } from './block-editor/sdkBlockMerger';
8
- import { type BlockActionControlMode } from './block-editor/actionControlMode';
8
+ import { type BlockActionPresentation } from './block-editor/actionPresentation';
9
9
  import { type ReorderControlMode } from './block-editor/reorderControlMode';
10
10
  import type { ArrayKeysManager, BlockEditorHandle, BlockItem, BlockFocusRequest, UiSlice, DraftsSlice } from './block-editor/types';
11
11
  import type { BlockDraftSaveability, FieldWidgetComponent } from '../../block-form/src/client/index';
@@ -54,7 +54,7 @@ export type BlockEditorProps = {
54
54
  sdkConfig?: SdkConfigForBlockPicker | null;
55
55
  customBlocks?: readonly CustomBlockRegistryEntry[];
56
56
  reorderControlMode?: ReorderControlMode;
57
- actionControlMode?: BlockActionControlMode;
57
+ actionPresentation?: BlockActionPresentation;
58
58
  };
59
59
  export declare const BlockEditor: import("react").ForwardRefExoticComponent<BlockEditorProps & import("react").RefAttributes<BlockEditorHandle>>;
60
60
  export {};
@@ -6,7 +6,7 @@ import type { BlockDraftSaveability } from '../../../block-form/src/client/index
6
6
  import type { FieldWidgetComponent } from '../../../block-form/src/client/index';
7
7
  import type { Theme } from '../../../blocks/src/index';
8
8
  import type { SiteIconStyleGuideVersionId } from '../../../blocks/src/index';
9
- import { type BlockActionControlMode } from './actionControlMode';
9
+ import { type BlockActionPresentation } from './actionPresentation';
10
10
  import { type ReorderControlMode } from './reorderControlMode';
11
11
  import type { GeneratedIconSetGenerateInput, GeneratedIconSetGenerateResult, GeneratedIconSetPreview } from './GeneratedIconSetDialog';
12
12
  import type { ArrayKeysManager, BlockFocusRequest, BlockItem, UiStore, DraftsSlice, UiSlice } from './types';
@@ -22,7 +22,7 @@ type BlockCardStore = UiStore<Pick<UiSlice, 'activeBlockId' | 'setActiveBlockId'
22
22
  drafts: Pick<DraftsSlice, 'getBlockSnapshot' | 'getCurrentValues' | 'getAtPath' | 'setAtPath' | 'edit' | 'initNewBlock' | 'updateBlockBaseline' | 'clearError'>;
23
23
  arrayKeys: ArrayKeysManager;
24
24
  }>;
25
- export declare function BlockCard({ siteId, block, manifest, isFirst, isLast, isMoving, onMove, onDuplicate, onDelete, dragListeners, canReorder, collapsed, onCollapsedChange, highlighted, hasRecoveryConflict, focusSignal, onFocusHandled, onBlockSave, theme, widgetOverrides, uiStore, hideThemeV2RawStyleFields, pageDesignBlock, reorderControlMode, actionControlMode, currentStyleGuideVersionId, iconStyleGuideSummary, iconStyleGuideEditHref, onGenerateIconSet, onApplyGeneratedIconSet, }: {
25
+ export declare function BlockCard({ siteId, block, manifest, isFirst, isLast, isMoving, onMove, onDuplicate, onDelete, dragListeners, canReorder, collapsed, onCollapsedChange, highlighted, hasRecoveryConflict, focusSignal, onFocusHandled, onBlockSave, theme, widgetOverrides, uiStore, hideThemeV2RawStyleFields, pageDesignBlock, reorderControlMode, actionPresentation, currentStyleGuideVersionId, iconStyleGuideSummary, iconStyleGuideEditHref, onGenerateIconSet, onApplyGeneratedIconSet, }: {
26
26
  siteId: string;
27
27
  block: BlockItem;
28
28
  manifest: SystemBlockDefinition['manifest'];
@@ -47,7 +47,7 @@ export declare function BlockCard({ siteId, block, manifest, isFirst, isLast, is
47
47
  hideThemeV2RawStyleFields?: boolean;
48
48
  pageDesignBlock?: PageDesignEditorBlock | null;
49
49
  reorderControlMode?: ReorderControlMode;
50
- actionControlMode?: BlockActionControlMode;
50
+ actionPresentation?: BlockActionPresentation;
51
51
  currentStyleGuideVersionId?: SiteIconStyleGuideVersionId | null;
52
52
  iconStyleGuideSummary?: string | null;
53
53
  iconStyleGuideEditHref?: string | null;
@@ -1,7 +1,7 @@
1
1
  import type { SyntheticListenerMap } from '@dnd-kit/core/dist/hooks/utilities';
2
2
  import type { FieldWidgetComponent } from '../../../block-form/src/client/index';
3
3
  import { type SiteIconStyleGuideVersionId, type SystemBlockDefinition, type Theme } from '../../../blocks/src/index';
4
- import { type BlockActionControlMode } from './actionControlMode';
4
+ import { type BlockActionPresentation } from './actionPresentation';
5
5
  import type { ReorderControlMode } from './reorderControlMode';
6
6
  import type { BlockItem, UiStore, DraftsSlice, ArrayKeysManager } from './types';
7
7
  import { type GeneratedIconSetGenerateInput, type GeneratedIconSetGenerateResult, type GeneratedIconSetPreview } from './GeneratedIconSetDialog';
@@ -11,7 +11,7 @@ type BlockCardHeaderStore = UiStore<{
11
11
  drafts: Pick<DraftsSlice, 'getBlockSnapshot' | 'getCurrentValues' | 'initNewBlock' | 'updateBlockBaseline' | 'clearError' | 'setAtPath' | 'getAtPath'>;
12
12
  arrayKeys: ArrayKeysManager;
13
13
  }>;
14
- export declare function BlockCardHeader({ block, manifest, isFirst, isLast, isMoving, onMove, onDuplicate, onDelete, dragListeners, canReorder, collapsed, onToggleCollapsed, contentId, uiStore, widgetOverrides, theme, hideThemeV2RawStyleFields, reorderControlMode, actionControlMode, currentStyleGuideVersionId, iconStyleGuideSummary, iconStyleGuideEditHref, onGenerateIconSet, onApplyGeneratedIconSet, }: {
14
+ export declare function BlockCardHeader({ block, manifest, isFirst, isLast, isMoving, onMove, onDuplicate, onDelete, dragListeners, canReorder, collapsed, onToggleCollapsed, contentId, uiStore, widgetOverrides, theme, hideThemeV2RawStyleFields, reorderControlMode, actionPresentation, currentStyleGuideVersionId, iconStyleGuideSummary, iconStyleGuideEditHref, onGenerateIconSet, onApplyGeneratedIconSet, }: {
15
15
  block: BlockItem;
16
16
  manifest: SystemBlockDefinition['manifest'];
17
17
  isFirst: boolean;
@@ -26,12 +26,12 @@ export declare function BlockCardHeader({ block, manifest, isFirst, isLast, isMo
26
26
  onToggleCollapsed: () => void;
27
27
  contentId?: string;
28
28
  uiStore: BlockCardHeaderStore;
29
- /** Optional widget overrides for block settings form fields */
29
+ /** Optional widget overrides for block customization form fields */
30
30
  widgetOverrides?: Record<string, FieldWidgetComponent>;
31
31
  theme?: Theme | null;
32
32
  hideThemeV2RawStyleFields?: boolean;
33
33
  reorderControlMode?: ReorderControlMode;
34
- actionControlMode?: BlockActionControlMode;
34
+ actionPresentation?: BlockActionPresentation;
35
35
  currentStyleGuideVersionId?: SiteIconStyleGuideVersionId | null;
36
36
  iconStyleGuideSummary?: string | null;
37
37
  iconStyleGuideEditHref?: string | null;
@@ -5,7 +5,7 @@ import type { BlockFocusRequest, BlockItem } from './types';
5
5
  import { type CustomBlockRegistryEntry, type SdkConfigForBlockPicker } from './sdkBlockMerger';
6
6
  import { BlockCard } from './BlockCard';
7
7
  import type { FieldWidgetComponent } from '../../../block-form/src/client/index';
8
- import { type BlockActionControlMode } from './actionControlMode';
8
+ import { type BlockActionPresentation } from './actionPresentation';
9
9
  import { type ReorderControlMode } from './reorderControlMode';
10
10
  import type { GeneratedIconSetGenerateInput, GeneratedIconSetGenerateResult, GeneratedIconSetPreview } from './GeneratedIconSetDialog';
11
11
  export declare const SortableBlockItem: import("react").NamedExoticComponent<{
@@ -33,7 +33,7 @@ export declare const SortableBlockItem: import("react").NamedExoticComponent<{
33
33
  hideThemeV2RawStyleFields?: boolean;
34
34
  pageDesignBlock?: PageDesignEditorBlock | null;
35
35
  reorderControlMode?: ReorderControlMode;
36
- actionControlMode?: BlockActionControlMode;
36
+ actionPresentation?: BlockActionPresentation;
37
37
  currentStyleGuideVersionId?: SiteIconStyleGuideVersionId | null;
38
38
  iconStyleGuideSummary?: string | null;
39
39
  iconStyleGuideEditHref?: string | null;
@@ -0,0 +1,15 @@
1
+ import type { EditorBlockId } from '../../../core/src/index';
2
+ export type BlockCustomizePresentation = Readonly<{
3
+ kind: 'modal';
4
+ }> | Readonly<{
5
+ kind: 'external';
6
+ onSelect: (blockId: EditorBlockId) => void;
7
+ }>;
8
+ export type BlockActionPresentation = Readonly<{
9
+ kind: 'inline';
10
+ }> | Readonly<{
11
+ kind: 'menu';
12
+ customize: BlockCustomizePresentation;
13
+ }>;
14
+ export declare const DEFAULT_BLOCK_ACTION_PRESENTATION: BlockActionPresentation;
15
+ export declare const MENU_MODAL_BLOCK_ACTION_PRESENTATION: BlockActionPresentation;
@@ -0,0 +1,49 @@
1
+ import type { EditorBlockId } from '../../../core/src/index';
2
+ import type { BlockActionPresentation } from './actionPresentation';
3
+ export type BlockHeaderCustomizeAction = Readonly<{
4
+ kind: 'customize';
5
+ presentation: 'modal';
6
+ }> | Readonly<{
7
+ kind: 'customize';
8
+ presentation: 'external';
9
+ blockId: EditorBlockId;
10
+ }>;
11
+ export type BlockHeaderMenuAction = BlockHeaderCustomizeAction | Readonly<{
12
+ kind: 'suggest-icons';
13
+ disabled: boolean;
14
+ }> | Readonly<{
15
+ kind: 'generated-icon-set';
16
+ disabled: boolean;
17
+ stale: boolean;
18
+ }> | Readonly<{
19
+ kind: 'duplicate';
20
+ disabled: boolean;
21
+ }> | Readonly<{
22
+ kind: 'delete';
23
+ disabled: boolean;
24
+ }>;
25
+ export type BlockHeaderMenuActionGroup = Readonly<{
26
+ id: 'customize' | 'icons' | 'structure';
27
+ actions: readonly BlockHeaderMenuAction[];
28
+ }>;
29
+ export type BlockHeaderActionPlan = Readonly<{
30
+ layout: BlockActionPresentation['kind'];
31
+ customizeAction: BlockHeaderCustomizeAction | null;
32
+ menuGroups: readonly BlockHeaderMenuActionGroup[];
33
+ hasMenuActions: boolean;
34
+ }>;
35
+ export type DeriveBlockHeaderActionPlanInput = Readonly<{
36
+ actionPresentation: BlockActionPresentation;
37
+ blockId: EditorBlockId | null;
38
+ settingsAvailable: boolean;
39
+ featureCardIconActionsAvailable: boolean;
40
+ featureCardIconsComplete: boolean;
41
+ generatedIconSetActionsAvailable: boolean;
42
+ hasStaleGeneratedIcons: boolean;
43
+ featureCardIconDialogCardsCount: number;
44
+ duplicateAvailable: boolean;
45
+ duplicateDisabled: boolean;
46
+ deleteAvailable: boolean;
47
+ deleteDisabled: boolean;
48
+ }>;
49
+ export declare function deriveBlockHeaderActionPlan({ actionPresentation, blockId, settingsAvailable, featureCardIconActionsAvailable, featureCardIconsComplete, generatedIconSetActionsAvailable, hasStaleGeneratedIcons, featureCardIconDialogCardsCount, duplicateAvailable, duplicateDisabled, deleteAvailable, deleteDisabled, }: DeriveBlockHeaderActionPlanInput): BlockHeaderActionPlan;
@@ -5,3 +5,4 @@ export * from './icon-picker/index';
5
5
  export * from './link/index';
6
6
  export * from './reference/index';
7
7
  export * from './rich-text/index';
8
+ export * from './site-option-picker/index';
@@ -1,6 +1,6 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import type { Theme } from '../../../../blocks/src/index';
3
- import type { PickedRichTextImage } from '@riverbankcms/editor';
3
+ import type { PickedRichTextImage } from '../../../../editor/src/index';
4
4
  export type OnPickImage = () => Promise<PickedRichTextImage | null>;
5
5
  export type RichTextWidgetContextValue = {
6
6
  theme: Theme | null;
@@ -1,4 +1,4 @@
1
- import type { PickedRichTextImage } from '@riverbankcms/editor';
1
+ import type { PickedRichTextImage } from '../../../../editor/src/index';
2
2
  export declare function useRichTextImagePicker(): {
3
3
  readonly onPickImage: () => Promise<PickedRichTextImage | null>;
4
4
  readonly picker: import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import type { SelectFieldConfig, FieldWidgetProps } from '../../../../block-form/src/client/index';
2
+ import { type SiteOptionValue } from './utils';
3
+ export declare function SiteOptionPickerField({ path, backend, config, }: FieldWidgetProps<SiteOptionValue, SelectFieldConfig>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,14 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { SiteOptionWidgetAdapters } from './types';
3
+ type SiteOptionWidgetContextValue = {
4
+ siteId: string;
5
+ adapters: SiteOptionWidgetAdapters | undefined;
6
+ };
7
+ export declare function SiteOptionWidgetProvider({ siteId, adapters, children, }: {
8
+ siteId: string;
9
+ adapters?: SiteOptionWidgetAdapters;
10
+ children: ReactNode;
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ export declare function useSiteOptionWidgetContext(): SiteOptionWidgetContextValue;
13
+ export declare function useOptionalSiteOptionWidgetContext(): SiteOptionWidgetContextValue | null;
14
+ export {};
@@ -0,0 +1,6 @@
1
+ export { SiteOptionPickerField } from './SiteOptionPickerField';
2
+ export { SiteOptionWidgetProvider, useOptionalSiteOptionWidgetContext, useSiteOptionWidgetContext, } from './SiteOptionWidgetProvider';
3
+ export { createSiteOptionApiLoader, createSiteOptionWidgetAdapters, loadSiteOptionItemsFromApi, mapEventCategoriesToSiteOptionItems, mapStaffMembersToSiteOptionItems, mapVenuesToSiteOptionItems, siteOptionLoadFailureMessages, siteOptionWidgetLabels, } from './loaders';
4
+ export { getSiteOptionSource, normalizeSiteOptionMultiValue, } from './utils';
5
+ export type { SiteOptionLoadErrorMapper, SiteOptionLoadItems, SiteOptionLoadItemsArgs, SiteOptionManageLinkRenderers, } from './loaders';
6
+ export type { SiteOptionWidgetAdapter, SiteOptionWidgetAdapterArgs, SiteOptionWidgetAdapterLabels, SiteOptionWidgetAdapters, SiteOptionWidgetItem, SiteOptionWidgetSelectionLabelArgs, } from './types';
@@ -0,0 +1,51 @@
1
+ import type { GetEndpoint, ApiClient } from '../../../../api/src/index';
2
+ import type { SiteOptionSource } from '../../../../blocks/src/index';
3
+ import type { SiteOptionWidgetAdapter, SiteOptionWidgetAdapters, SiteOptionWidgetItem } from './types';
4
+ type ListEventCategoriesResponse = NonNullable<GetEndpoint<'listEventCategories'>['response']>;
5
+ type ListVenuesResponse = NonNullable<GetEndpoint<'listVenues'>['response']>;
6
+ type ListAppointmentResourcesResponse = NonNullable<GetEndpoint<'listAppointmentResources'>['response']>;
7
+ export type SiteOptionLoadItemsArgs = Readonly<{
8
+ siteId: string;
9
+ source: SiteOptionSource;
10
+ }>;
11
+ export type SiteOptionLoadItems = (args: SiteOptionLoadItemsArgs) => Promise<SiteOptionWidgetItem[]>;
12
+ export type SiteOptionLoadErrorMapper = (error: unknown, args: SiteOptionLoadItemsArgs) => unknown;
13
+ export type SiteOptionManageLinkRenderers = Partial<Readonly<Record<SiteOptionSource, SiteOptionWidgetAdapter['renderManageLink']>>>;
14
+ export declare const siteOptionWidgetLabels: {
15
+ readonly eventCategories: {
16
+ readonly loading: "Loading categories...";
17
+ readonly select: "Select categories";
18
+ readonly empty: "No categories yet";
19
+ readonly emptySelection: "Choose which event categories to include.";
20
+ };
21
+ readonly venues: {
22
+ readonly loading: "Loading venues...";
23
+ readonly select: "Select a venue";
24
+ readonly empty: "No venues yet";
25
+ readonly emptySelection: "Choose a venue to restrict this block.";
26
+ };
27
+ readonly staffMembers: {
28
+ readonly loading: "Loading staff...";
29
+ readonly select: "Select a staff member";
30
+ readonly empty: "No staff yet";
31
+ readonly emptySelection: "Choose a staff member to restrict this block.";
32
+ };
33
+ };
34
+ export declare const siteOptionLoadFailureMessages: {
35
+ readonly eventCategories: "Failed to load event categories";
36
+ readonly venues: "Failed to load venues";
37
+ readonly staffMembers: "Failed to load staff members";
38
+ };
39
+ export declare function mapEventCategoriesToSiteOptionItems(payload: ListEventCategoriesResponse): SiteOptionWidgetItem[];
40
+ export declare function mapVenuesToSiteOptionItems(payload: ListVenuesResponse): SiteOptionWidgetItem[];
41
+ export declare function mapStaffMembersToSiteOptionItems(payload: ListAppointmentResourcesResponse): SiteOptionWidgetItem[];
42
+ export declare function loadSiteOptionItemsFromApi({ apiClient, siteId, source, }: SiteOptionLoadItemsArgs & Readonly<{
43
+ apiClient: ApiClient;
44
+ }>): Promise<SiteOptionWidgetItem[]>;
45
+ export declare function createSiteOptionApiLoader(apiClient: ApiClient): SiteOptionLoadItems;
46
+ export declare function createSiteOptionWidgetAdapters({ loadItems, mapLoadError, renderManageLink, }: Readonly<{
47
+ loadItems: SiteOptionLoadItems;
48
+ mapLoadError?: SiteOptionLoadErrorMapper;
49
+ renderManageLink?: SiteOptionManageLinkRenderers;
50
+ }>): SiteOptionWidgetAdapters;
51
+ export {};
@@ -0,0 +1,20 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { SiteOptionSource } from '../../../../blocks/src/index';
3
+ import type { PickerLabels, PickerOption } from '../../../../ui/src/index';
4
+ export type SiteOptionWidgetItem = PickerOption;
5
+ export type SiteOptionWidgetAdapterArgs = {
6
+ siteId?: string;
7
+ source: SiteOptionSource;
8
+ };
9
+ export type SiteOptionWidgetSelectionLabelArgs = {
10
+ value: string;
11
+ items: readonly SiteOptionWidgetItem[];
12
+ };
13
+ export type SiteOptionWidgetAdapterLabels = PickerLabels;
14
+ export type SiteOptionWidgetAdapter = {
15
+ loadItems: (args: SiteOptionWidgetAdapterArgs) => Promise<SiteOptionWidgetItem[]>;
16
+ renderManageLink?: (args: SiteOptionWidgetAdapterArgs) => ReactNode;
17
+ formatSelectionLabel?: (args: SiteOptionWidgetSelectionLabelArgs) => string;
18
+ labels?: SiteOptionWidgetAdapterLabels;
19
+ };
20
+ export type SiteOptionWidgetAdapters = Record<SiteOptionSource, SiteOptionWidgetAdapter>;
@@ -0,0 +1,5 @@
1
+ import { type SiteOptionSource } from '../../../../blocks/src/index';
2
+ import type { SelectFieldConfig } from '../../../../block-form/src/client/index';
3
+ export type SiteOptionValue = string | string[] | null | undefined;
4
+ export declare function normalizeSiteOptionMultiValue(value: SiteOptionValue): string[];
5
+ export declare function getSiteOptionSource(config: SelectFieldConfig): SiteOptionSource | null;
@@ -42,3 +42,4 @@ export { walkAndCollectImageAttrs, pickFilenameFromUrl, type RichTextImageAttrsR
42
42
  export * from './richTextImageWriteNormalizer';
43
43
  export * from './mediaUsageProjection';
44
44
  export * from './portableMediaReferences';
45
+ export * from './renderableMediaAsset';
@@ -0,0 +1,18 @@
1
+ import type { MediaAssetId } from '../../core/src/index';
2
+ export type RenderableMediaAsset = Readonly<{
3
+ id: MediaAssetId;
4
+ identifier?: string | null;
5
+ storageBucket?: string;
6
+ storagePath?: string;
7
+ width?: number | null;
8
+ height?: number | null;
9
+ mimeType?: string;
10
+ }>;
11
+ export type RenderableMediaAssetIndex = Readonly<{
12
+ byId: ReadonlyMap<string, RenderableMediaAsset>;
13
+ byIdentifier: ReadonlyMap<string, RenderableMediaAsset>;
14
+ }>;
15
+ export declare function buildRenderableMediaAssetIndex(assets: readonly RenderableMediaAsset[] | undefined): RenderableMediaAssetIndex | undefined;
16
+ export declare function attachRenderableMediaAssetFields<TMedia extends Readonly<Record<string, unknown>>>(media: TMedia, asset: RenderableMediaAsset): TMedia & RenderableMediaAsset & Readonly<{
17
+ assetId: MediaAssetId;
18
+ }>;
@@ -1,6 +1,7 @@
1
1
  import type { MediaAssetWithLabels, MediaKind } from '@riverbankcms/media-storage-supabase';
2
2
  import { type UploadIntentResolver, type VideoPrepIntentResolver } from '../../media-react/src/index';
3
3
  import type { VideoPrepIntent } from '../../media-core/src/index';
4
+ import { type MediaPickerPolicy } from './MediaPickerDialog';
4
5
  import type { MediaValue } from './types';
5
6
  export type MediaEditorProps = {
6
7
  value: MediaValue | undefined;
@@ -13,6 +14,8 @@ export type MediaEditorProps = {
13
14
  cropEditorMode?: 'dialog' | 'inline';
14
15
  cropEditorAutoOpen?: boolean;
15
16
  mediaPickerAutoOpen?: boolean;
17
+ mediaPickerDialogMaxWidth?: string;
18
+ mediaPickerPolicy?: MediaPickerPolicy;
16
19
  showPreview?: boolean;
17
20
  showActionOverlay?: boolean;
18
21
  onEditDetails?: () => void;
@@ -26,4 +29,4 @@ export type MediaEditorProps = {
26
29
  videoPrepIntent?: VideoPrepIntentResolver;
27
30
  videoSelectionIntent?: VideoPrepIntent;
28
31
  };
29
- export declare const MediaEditor: ({ value, onChange, allowedKinds, previewAspectRatio, minSourceWidth, minSourceHeight, showAltInput, cropEditorMode, cropEditorAutoOpen, mediaPickerAutoOpen, showPreview, showActionOverlay, onEditDetails, fullWidth, previewVariant, showRemoveAction, previewMaxWidth, preventPreviewUpscale, onUploadComplete, uploadIntent, videoPrepIntent, videoSelectionIntent, }: MediaEditorProps) => import("react/jsx-runtime").JSX.Element;
32
+ export declare const MediaEditor: ({ value, onChange, allowedKinds, previewAspectRatio, minSourceWidth, minSourceHeight, showAltInput, cropEditorMode, cropEditorAutoOpen, mediaPickerAutoOpen, mediaPickerDialogMaxWidth, mediaPickerPolicy, showPreview, showActionOverlay, onEditDetails, fullWidth, previewVariant, showRemoveAction, previewMaxWidth, preventPreviewUpscale, onUploadComplete, uploadIntent, videoPrepIntent, videoSelectionIntent, }: MediaEditorProps) => import("react/jsx-runtime").JSX.Element;
@@ -16,6 +16,7 @@ export type MediaPickerDialogProps = {
16
16
  statusMessage?: string | null;
17
17
  statusTone?: 'info' | 'error';
18
18
  title?: string;
19
+ dialogMaxWidth?: string;
19
20
  uploadButtonLabel?: string;
20
21
  uploadAccept?: string;
21
22
  showCameraInput?: boolean;
@@ -32,4 +33,4 @@ export type MediaPickerAssetSelection = Readonly<{
32
33
  tag: 'disabled';
33
34
  reason: string;
34
35
  }>;
35
- export declare const MediaPickerDialog: ({ allowedKinds, open, onOpenChange, assets, loading, hasMore, selectAsset, loadMore, enqueueUploads, uploads, closeOnSelect, disableSelection, statusMessage, statusTone, title, uploadButtonLabel, uploadAccept, showCameraInput, policy, }: MediaPickerDialogProps) => import("react/jsx-runtime").JSX.Element;
36
+ export declare const MediaPickerDialog: ({ allowedKinds, open, onOpenChange, assets, loading, hasMore, selectAsset, loadMore, enqueueUploads, uploads, closeOnSelect, disableSelection, statusMessage, statusTone, title, dialogMaxWidth, uploadButtonLabel, uploadAccept, showCameraInput, policy, }: MediaPickerDialogProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  export { MediaEditor } from './MediaEditor';
2
2
  export type { MediaEditorProps } from './MediaEditor';
3
3
  export { MediaPickerDialog } from './MediaPickerDialog';
4
- export type { MediaPickerDialogProps } from './MediaPickerDialog';
4
+ export type { MediaPickerAssetSelection, MediaPickerDialogProps, MediaPickerPolicy, } from './MediaPickerDialog';
5
5
  export { FileAssetPreview, classifyMimeForPreview } from './FileAssetPreview';
6
6
  export { CropDialog } from './CropDialog';
7
7
  export type { CropDialogProps } from './CropDialog';
@@ -1,10 +1,11 @@
1
1
  import { type Theme } from '../../../../blocks/src/index';
2
2
  import { type BackgroundColorPalette } from '../../../../blocks/src/system/customize/backgrounds';
3
- export declare function BlockToolbar({ blockId, blockKind, content, theme, headerClearancePx, }: {
3
+ import { type PreviewChromeFloatingPlacement } from '../preview/previewChromePlacement';
4
+ export declare function BlockToolbar({ blockId, blockKind, content, theme, placement, }: {
4
5
  blockId: string;
5
6
  blockKind: string;
6
7
  content: Record<string, unknown>;
7
8
  theme?: Theme | null;
8
- headerClearancePx?: number;
9
+ placement?: PreviewChromeFloatingPlacement;
9
10
  }): import("react/jsx-runtime").JSX.Element;
10
11
  export declare function readBackgroundColorPaletteSnapshot(): BackgroundColorPalette | null;
@@ -1,5 +1,9 @@
1
1
  import { PageRenderer } from '../../../../blocks/src/index';
2
+ import type { ApiClient as DashboardApiClient } from '../../../../api/src/request';
2
3
  import { type ComponentProps } from 'react';
3
- type EditablePageRendererProps = ComponentProps<typeof PageRenderer>;
4
+ type PageRendererProps = ComponentProps<typeof PageRenderer>;
5
+ type EditablePageRendererProps = PageRendererProps & {
6
+ blockDataApiClient?: DashboardApiClient | null;
7
+ };
4
8
  export declare function EditablePageRenderer(props: EditablePageRendererProps): import("react/jsx-runtime").JSX.Element;
5
9
  export {};
@@ -0,0 +1,25 @@
1
+ import type { PageDesignEditorBlock } from '../../../../theme-core/src/site-styles/previewCompiler';
2
+ import type { PreviewCustomizeFacetControl } from './customizeFacetControls';
3
+ export type BlockCustomizeBuiltinRow = Readonly<{
4
+ kind: 'variant';
5
+ block: PageDesignEditorBlock;
6
+ }> | Readonly<{
7
+ kind: 'unsupported-variant-warning';
8
+ }> | Readonly<{
9
+ kind: 'look';
10
+ block: PageDesignEditorBlock;
11
+ }> | Readonly<{
12
+ kind: 'background';
13
+ }> | Readonly<{
14
+ kind: 'facet';
15
+ control: PreviewCustomizeFacetControl;
16
+ }>;
17
+ export type BuildBlockCustomizeBuiltinRowsInput = Readonly<{
18
+ designBlock: PageDesignEditorBlock | null;
19
+ facetControls: readonly PreviewCustomizeFacetControl[];
20
+ hasLayoutControls: boolean;
21
+ hasLookControls: boolean;
22
+ hasBackgroundControls: boolean;
23
+ }>;
24
+ export declare function buildBlockCustomizeBuiltinRows({ designBlock, facetControls, hasLayoutControls, hasLookControls, hasBackgroundControls, }: BuildBlockCustomizeBuiltinRowsInput): readonly BlockCustomizeBuiltinRow[];
25
+ export declare function blockCustomizeBuiltinRowBudget(rows: readonly BlockCustomizeBuiltinRow[]): number;
@@ -2,5 +2,6 @@ import type { EditorBlockId } from '../../../../../core/src/index';
2
2
  import type { BlockItem } from '../../../../../editor-blocks/src/index';
3
3
  import type { DraftSnapshot, EditorDraftInspectorStore, EnrichedBlock } from './types';
4
4
  import { type PreviewProjection } from '../previewProjection';
5
+ import { type LinkedEntryRenderOverlay } from '../linkedEntryRenderOverlay';
5
6
  export declare function getDraftSnapshots(uiStore: EditorDraftInspectorStore): Map<EditorBlockId, DraftSnapshot>;
6
- export declare function mergeBlockWithDraft(block: BlockItem, draftMap: Map<EditorBlockId, DraftSnapshot>, index: number, projections?: readonly PreviewProjection[]): EnrichedBlock;
7
+ export declare function mergeBlockWithDraft(block: BlockItem, draftMap: Map<EditorBlockId, DraftSnapshot>, index: number, projections?: readonly PreviewProjection[], linkedEntryOverlays?: LinkedEntryRenderOverlay): EnrichedBlock;