@riverbankcms/sdk 0.78.2 → 0.80.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 (230) hide show
  1. package/README.md +80 -0
  2. package/dist/PreviewEditorSidebar-QZG37QIF.mjs +2655 -0
  3. package/dist/{PreviewEditorUI-CS5P4N3P.mjs → PreviewEditorUI-AXIKSMZA.mjs} +27 -4
  4. package/dist/SdkPreviewModeRuntime-XE5M4UKM.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +56 -0
  6. package/dist/_dts/api/src/endpoints.d.ts +79 -0
  7. package/dist/_dts/api/src/index.d.ts +6 -4
  8. package/dist/_dts/api/src/media.d.ts +8 -1
  9. package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +1 -1
  10. package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +8 -8
  11. package/dist/_dts/api/src/navigation/identity.d.ts +59 -0
  12. package/dist/_dts/api/src/navigation.d.ts +2 -0
  13. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +4 -0
  14. package/dist/_dts/api/src/sdkContracts.d.ts +1 -0
  15. package/dist/_dts/api/src/siteIcons.d.ts +128 -0
  16. package/dist/_dts/api/src/siteInfrastructure.d.ts +124 -0
  17. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +16 -0
  18. package/dist/_dts/api/src/siteOnboarding.d.ts +13 -0
  19. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +17 -1
  20. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -1
  21. package/dist/_dts/api/src/types.d.ts +1 -1
  22. package/dist/_dts/api/src/webhooks.d.ts +239 -0
  23. package/dist/_dts/block-form/src/client/index.d.ts +2 -0
  24. package/dist/_dts/block-form/src/index.d.ts +2 -0
  25. package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +2 -1
  26. package/dist/_dts/blocks/src/client/header.d.ts +1 -1
  27. package/dist/_dts/blocks/src/client.d.ts +12 -12
  28. package/dist/_dts/blocks/src/index.d.ts +5 -1
  29. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -288
  30. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -288
  31. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -288
  32. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -288
  33. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -288
  34. package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -2
  35. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
  36. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -1
  37. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +294 -289
  38. package/dist/_dts/blocks/src/system/blocks/feature-card-icons.d.ts +57 -0
  39. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +4 -0
  40. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -288
  41. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  42. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
  43. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +22 -22
  44. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -288
  45. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -288
  46. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -288
  47. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +13 -1
  48. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +179 -0
  49. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +4 -2
  50. package/dist/_dts/blocks/src/system/fragments/library/faqHeading.d.ts +1 -0
  51. package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +10 -0
  52. package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +3 -1
  53. package/dist/_dts/blocks/src/system/icons/ids.d.ts +13 -0
  54. package/dist/_dts/blocks/src/system/icons/index.d.ts +6 -0
  55. package/dist/_dts/blocks/src/system/icons/presets.d.ts +4 -0
  56. package/dist/_dts/blocks/src/system/icons/registry.d.ts +18 -0
  57. package/dist/_dts/blocks/src/system/icons/semantic.d.ts +239 -0
  58. package/dist/_dts/blocks/src/system/icons/value.d.ts +94 -0
  59. package/dist/_dts/blocks/src/system/index.d.ts +1 -0
  60. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +4 -1
  61. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +23 -0
  62. package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +1 -4
  63. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  64. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +7 -7
  65. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
  66. package/dist/_dts/blocks/src/system/runtime/header/enhanceHeaderSection.d.ts +10 -2
  67. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -5
  68. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.server.d.ts +2 -2
  69. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventSpotlight.d.ts +2 -2
  70. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +2 -2
  71. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventDetailModal.d.ts +2 -2
  72. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -2
  73. package/dist/_dts/blocks/src/system/runtime/nodes/feature-card-icon.d.ts +13 -0
  74. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -2
  75. package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +3 -0
  76. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +9 -0
  77. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +14 -1
  78. package/dist/_dts/content-model/src/contentManifest.d.ts +3 -1
  79. package/dist/_dts/core/src/branded.d.ts +6 -0
  80. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +200 -3
  81. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +8 -1
  82. package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +8 -1
  83. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +8 -2
  84. package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +17 -0
  85. package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +42 -0
  86. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +7 -1
  87. package/dist/_dts/editor-blocks/src/block-editor/featureCardIconActions.d.ts +82 -0
  88. package/dist/_dts/editor-blocks/src/index.d.ts +2 -0
  89. package/dist/_dts/editor-blocks/src/widgets/icon-picker/IconPickerField.d.ts +1 -1
  90. package/dist/_dts/media-core/src/fileDomain.d.ts +8 -1
  91. package/dist/_dts/media-editor/src/MediaEditor.d.ts +3 -2
  92. package/dist/_dts/media-react/src/components/MediaLibrary.d.ts +2 -1
  93. package/dist/_dts/media-react/src/components/MediaPickerMini.d.ts +2 -1
  94. package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +5 -1
  95. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeActions.d.ts +17 -0
  96. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeControlPlan.d.ts +24 -0
  97. package/dist/_dts/preview-next/src/client/blocks/useBlockCustomizeControls.d.ts +34 -0
  98. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -5
  99. package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +8 -1
  100. package/dist/_dts/preview-next/src/client/preview/PreviewBlockCustomizeSelectionContext.d.ts +20 -0
  101. package/dist/_dts/preview-next/src/client/preview/PreviewOpenEditorButton.d.ts +2 -0
  102. package/dist/_dts/preview-next/src/client/preview/SelectedBlockCustomizePanel.d.ts +13 -0
  103. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +3 -2
  104. package/dist/_dts/preview-next/src/client/preview/previewCustomizeEditorDraftPatch.d.ts +13 -0
  105. package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +6 -0
  106. package/dist/_dts/preview-next/src/client/preview/previewCustomizeRuntimePatch.d.ts +2 -0
  107. package/dist/_dts/preview-next/src/client/preview/storeTypes.d.ts +4 -0
  108. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +3 -1
  109. package/dist/_dts/sdk/src/cli/commands/webhooks.d.ts +44 -0
  110. package/dist/_dts/sdk/src/cli/navigationIdentity.d.ts +11 -0
  111. package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +4 -0
  112. package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +1 -0
  113. package/dist/_dts/sdk/src/cli/sync/diff.d.ts +9 -0
  114. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  115. package/dist/_dts/sdk/src/client/management/types.d.ts +58 -0
  116. package/dist/_dts/sdk/src/client/management/webhooks.d.ts +3 -0
  117. package/dist/_dts/sdk/src/config/field-definitions.d.ts +3 -1
  118. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  119. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +24 -4
  120. package/dist/_dts/sdk/src/next/index.d.ts +1 -1
  121. package/dist/_dts/sdk/src/next/revalidate.d.ts +26 -5
  122. package/dist/_dts/sdk/src/next/static-params.d.ts +28 -3
  123. package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -1
  124. package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
  125. package/dist/_dts/sdk/src/version.d.ts +1 -1
  126. package/dist/_dts/sdk/src/webhooks/index.d.ts +1 -1
  127. package/dist/_dts/sdk/src/webhooks/verify.d.ts +6 -102
  128. package/dist/_dts/site-commands/src/commands.d.ts +3 -0
  129. package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +220 -0
  130. package/dist/_dts/theme-core/src/accordions/types.d.ts +45 -2
  131. package/dist/_dts/theme-core/src/blockOverrides.d.ts +8 -0
  132. package/dist/_dts/theme-core/src/blocks/types.d.ts +1 -1
  133. package/dist/_dts/theme-core/src/blocks/vars/testimonials.d.ts +4 -1
  134. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +1 -1
  135. package/dist/_dts/theme-core/src/cards/core.d.ts +20 -0
  136. package/dist/_dts/theme-core/src/cards/generateDefaultCardSystem.d.ts +6 -3
  137. package/dist/_dts/theme-core/src/cards/siteStyleDefaults.d.ts +105 -0
  138. package/dist/_dts/theme-core/src/cards/types.d.ts +177 -0
  139. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  140. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +159 -21
  141. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
  142. package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +16 -0
  143. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +1 -1
  144. package/dist/_dts/theme-core/src/schema.d.ts +451 -57
  145. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +86 -17
  146. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +2 -3
  147. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +86 -17
  148. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +135 -3
  149. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +5 -5
  150. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +20 -1
  151. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +8 -2
  152. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +286 -6
  153. package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
  154. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +193 -0
  155. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +6 -12
  156. package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +2 -0
  157. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +10 -7
  158. package/dist/_dts/theme-core/src/site-styles/siteStyleThemeCompiler.d.ts +11 -0
  159. package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +2 -2
  160. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  161. package/dist/_dts/theme-core/src/site-styles/testimonialQuotePresets.d.ts +15 -0
  162. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  163. package/dist/_dts/theme-core/src/site-styles/types.d.ts +7 -29
  164. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -0
  165. package/dist/_dts/ui/src/combobox.d.ts +1 -0
  166. package/dist/{PreviewEditorSidebar-4DXLYX2V.mjs → chunk-5NZGBSJF.mjs} +2215 -2566
  167. package/dist/{chunk-RGTOD4AJ.mjs → chunk-7PCYG6YV.mjs} +621 -108
  168. package/dist/{chunk-CR5HKAGU.mjs → chunk-BBLZSQEY.mjs} +79 -0
  169. package/dist/{chunk-MCRQMPET.mjs → chunk-GYXKAUFV.mjs} +4500 -912
  170. package/dist/{chunk-6HYXHRAI.mjs → chunk-HTB4BMKD.mjs} +267 -49
  171. package/dist/{chunk-OKMBEAXY.mjs → chunk-MPBNEVPB.mjs} +1 -1
  172. package/dist/cli/index.mjs +3255 -702
  173. package/dist/cli/init-docs/content/workflow-editor-workflows.md +2 -0
  174. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +150 -0
  175. package/dist/client/{accordion-PLYNJIIM.mjs → accordion-QFZMNB7O.mjs} +1 -1
  176. package/dist/client/{bookingForm-BXAP6AO7.mjs → bookingForm-NCIXFWIG.mjs} +3 -3
  177. package/dist/client/bookings.mjs +1246 -323
  178. package/dist/client/{carousel-TRBXDHGF.mjs → carousel-EO4BJMWD.mjs} +2 -2
  179. package/dist/client/{cart-Z7H3HJRS.mjs → cart-FTYCLYUW.mjs} +5 -5
  180. package/dist/client/{checkout-WAFCUBIX.mjs → checkout-NFGLVCOX.mjs} +5 -5
  181. package/dist/client/{chunk-CWGTG37I.mjs → chunk-4W66ALYT.mjs} +1 -1
  182. package/dist/client/{chunk-JRDUHZCT.mjs → chunk-6GVVWSPU.mjs} +4 -4
  183. package/dist/client/{chunk-75OUS5MT.mjs → chunk-IWFZSQNZ.mjs} +1 -1
  184. package/dist/client/{chunk-JGXPTEI2.mjs → chunk-PUOELU4O.mjs} +95 -8
  185. package/dist/client/{chunk-FUXW6VW2.mjs → chunk-PYRBIURC.mjs} +4 -4
  186. package/dist/client/{chunk-ZI3LLBPZ.mjs → chunk-T6UIP6UZ.mjs} +1 -1
  187. package/dist/client/{chunk-DNRGY432.mjs → chunk-VDS5YFLX.mjs} +1 -1
  188. package/dist/client/{chunk-UVQEJJTN.mjs → chunk-Y37KDO7P.mjs} +1 -1
  189. package/dist/client/client.mjs +24277 -20796
  190. package/dist/client/{courseRegistration-AHFQHWIJ.mjs → courseRegistration-2EORROPS.mjs} +3 -3
  191. package/dist/client/{eventCalendar-LDXTV5R7.mjs → eventCalendar-WZI4VL6N.mjs} +5 -5
  192. package/dist/client/{eventCombined-A4JGTNJO.mjs → eventCombined-QCB2TCNL.mjs} +5 -5
  193. package/dist/client/{eventDetails-4YXTZ7EG.mjs → eventDetails-TFTATAPH.mjs} +5 -5
  194. package/dist/client/{eventListing-P72TPFFM.mjs → eventListing-A2CQEHEQ.mjs} +5 -5
  195. package/dist/client/{eventRegistration-LSYJHGMT.mjs → eventRegistration-OELPVLUY.mjs} +5 -5
  196. package/dist/client/{form-AOPYOKOW.mjs → form-NTIFD6WQ.mjs} +1 -1
  197. package/dist/client/{headerSection-5TFYDFVQ.mjs → headerSection-7TBNKCLA.mjs} +65 -24
  198. package/dist/client/hooks.mjs +3687 -2024
  199. package/dist/client/{locationMap-QSZ3ZVAZ.mjs → locationMap-LRLB5A3H.mjs} +1 -1
  200. package/dist/client/{newsletterForm-KTRHZY52.mjs → newsletterForm-XI52RZSN.mjs} +1 -1
  201. package/dist/client/{productDetail-N4E775RG.mjs → productDetail-GSNKBFLY.mjs} +5 -5
  202. package/dist/client/{productList-UGUQ2S45.mjs → productList-BGCGT4KZ.mjs} +5 -5
  203. package/dist/client/rendering/client.mjs +5274 -3030
  204. package/dist/client/rendering/islands.mjs +18 -18
  205. package/dist/client/rendering.mjs +6271 -2790
  206. package/dist/client/{shop-VHSZEEQ2.mjs → shop-RQHUCLNY.mjs} +5 -5
  207. package/dist/preview-next/before-render.mjs +79 -0
  208. package/dist/preview-next/client/runtime.mjs +5 -5
  209. package/dist/preview-next/middleware.mjs +79 -0
  210. package/dist/{sdk-runtime-WHPJEF5G.mjs → sdk-runtime-A4LHT2RS.mjs} +6 -6
  211. package/dist/server/components.mjs +6215 -3057
  212. package/dist/server/config-validation.mjs +3858 -2194
  213. package/dist/server/config.mjs +3858 -2194
  214. package/dist/server/data.mjs +3687 -2024
  215. package/dist/server/index.mjs +88 -1
  216. package/dist/server/next/revalidate.mjs +229 -34
  217. package/dist/server/next.mjs +6295 -3036
  218. package/dist/server/page-converter.mjs +3055 -1883
  219. package/dist/server/prebuild.mjs +1 -1
  220. package/dist/server/rendering/server.mjs +6220 -3062
  221. package/dist/server/rendering.mjs +6233 -3075
  222. package/dist/server/routing.mjs +4251 -2137
  223. package/dist/server/server.mjs +3705 -2042
  224. package/dist/server/theme-bridge.mjs +1617 -329
  225. package/dist/server/theme.mjs +411 -221
  226. package/dist/server/webhooks.mjs +129 -25
  227. package/dist/styles/index.css +355 -33
  228. package/package.json +2 -1
  229. package/dist/SdkPreviewModeRuntime-IJDHTW4W.mjs +0 -8
  230. package/dist/chunk-4QEGTLK6.mjs +0 -1175
@@ -28,6 +28,7 @@ export type MediaLibraryProps = {
28
28
  uploader?: UseUploadsOptions['uploader'];
29
29
  maxParallelUploads?: number;
30
30
  getListOptions?: () => Partial<ListMediaAssetsOptions>;
31
+ onUploadComplete?: (asset: MediaAssetWithLabels) => void;
31
32
  children: (props: MediaLibraryRenderProps) => ReactNode;
32
33
  };
33
- export declare const MediaLibrary: ({ siteId, repo, pageSize, allowMultiSelect, uploader, maxParallelUploads, children, getListOptions, }: MediaLibraryProps) => import("react/jsx-runtime").JSX.Element;
34
+ export declare const MediaLibrary: ({ siteId, repo, pageSize, allowMultiSelect, uploader, maxParallelUploads, children, getListOptions, onUploadComplete, }: MediaLibraryProps) => import("react/jsx-runtime").JSX.Element;
@@ -17,5 +17,6 @@ export type MediaPickerMiniProps = {
17
17
  open?: boolean;
18
18
  onOpenChange?: (value: boolean) => void;
19
19
  getListOptions?: MediaLibraryProps['getListOptions'];
20
+ onUploadComplete?: MediaLibraryProps['onUploadComplete'];
20
21
  };
21
- export declare const MediaPickerMini: ({ siteId, repo, onPick, children, pageSize, uploader, autoCloseOnPick, open, onOpenChange, getListOptions, }: MediaPickerMiniProps) => import("react/jsx-runtime").JSX.Element;
22
+ export declare const MediaPickerMini: ({ siteId, repo, onPick, children, pageSize, uploader, autoCloseOnPick, open, onOpenChange, getListOptions, onUploadComplete, }: MediaPickerMiniProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,10 @@
1
- export declare function BlockToolbar({ blockId, blockKind, content, headerClearancePx, }: {
1
+ import { type Theme } from '../../../../blocks/src/index';
2
+ import { type BackgroundColorPalette } from '../../../../blocks/src/system/customize/backgrounds';
3
+ export declare function BlockToolbar({ blockId, blockKind, content, theme, headerClearancePx, }: {
2
4
  blockId: string;
3
5
  blockKind: string;
4
6
  content: Record<string, unknown>;
7
+ theme?: Theme | null;
5
8
  headerClearancePx?: number;
6
9
  }): import("react/jsx-runtime").JSX.Element;
10
+ export declare function readBackgroundColorPaletteSnapshot(): BackgroundColorPalette | null;
@@ -1,5 +1,6 @@
1
1
  import type { AppearancePresetId, BoundaryOptionId, DesignBlockId, LayoutVariantKey, PageDesignEditorBlock, PageDesignEditorBoundary } from '../../../../theme-core/src/site-styles/index';
2
2
  import { type SystemCustomizeFacetId, type SystemCustomizeFacetTransition, type SystemCustomizeFacetValue } from '../../../../blocks/src/system/customize/facets';
3
+ import { type BackgroundImagePoolItem, type BackgroundOverride } from '../../../../blocks/src/system/customize/backgrounds';
3
4
  export type PreviewCustomizeCycleDirection = 'prev' | 'next';
4
5
  export type PreviewCustomizeAction = Readonly<{
5
6
  kind: 'set-layout';
@@ -15,6 +16,12 @@ export type PreviewCustomizeAction = Readonly<{
15
16
  blockId: DesignBlockId;
16
17
  baseContentId: string | null;
17
18
  } & SystemCustomizeFacetTransition> | Readonly<{
19
+ kind: 'set-background';
20
+ blockId: DesignBlockId;
21
+ override: BackgroundOverride;
22
+ fromOverride: BackgroundOverride;
23
+ baseContentId: string | null;
24
+ }> | Readonly<{
18
25
  kind: 'set-boundary';
19
26
  previousBlockId: DesignBlockId;
20
27
  nextBlockId: DesignBlockId;
@@ -33,6 +40,9 @@ type PreviewSetLookAction = Extract<PreviewCustomizeAction, {
33
40
  type PreviewSetBlockFacetAction = Extract<PreviewCustomizeAction, {
34
41
  kind: 'set-block-facet';
35
42
  }>;
43
+ type PreviewSetBackgroundAction = Extract<PreviewCustomizeAction, {
44
+ kind: 'set-background';
45
+ }>;
36
46
  type PreviewSetBoundaryAction = Extract<PreviewCustomizeAction, {
37
47
  kind: 'set-boundary';
38
48
  }>;
@@ -47,5 +57,12 @@ export declare function cyclePageDesignBlockFacet(input: Readonly<{
47
57
  currentValue: SystemCustomizeFacetValue;
48
58
  direction: PreviewCustomizeCycleDirection;
49
59
  }>): PreviewSetBlockFacetAction | null;
60
+ export declare function setPageDesignBlockBackground(input: Readonly<{
61
+ block: PageDesignEditorBlock;
62
+ override: BackgroundOverride;
63
+ currentContent?: Record<string, unknown> | null;
64
+ fromOverride?: BackgroundOverride;
65
+ imagePool?: readonly BackgroundImagePoolItem[];
66
+ }>): PreviewSetBackgroundAction | null;
50
67
  export declare function cyclePageDesignBoundaryBreak(boundary: PageDesignEditorBoundary, direction: PreviewCustomizeCycleDirection): PreviewSetBoundaryAction | PreviewResetBoundaryAction | null;
51
68
  export {};
@@ -0,0 +1,24 @@
1
+ import type { FieldConfig, FieldIntent } from '../../../../block-form/src/index';
2
+ export type PreviewCustomizeControl = Readonly<{
3
+ kind: 'manifest-field';
4
+ field: FieldConfig;
5
+ placement: 'quick' | 'panel';
6
+ intent: Extract<FieldIntent, 'display' | 'behavior'>;
7
+ }>;
8
+ export type PreviewCustomizeControlPlan = Readonly<{
9
+ quickControls: readonly PreviewCustomizeControl[];
10
+ panelControls: readonly PreviewCustomizeControl[];
11
+ hiddenControls: readonly PreviewCustomizeHiddenControl[];
12
+ }>;
13
+ export type PreviewCustomizeHiddenControl = Readonly<{
14
+ fieldId: string;
15
+ reason: 'theme-v2-raw-style-field' | 'unsupported-intent' | 'header-field' | 'not-visible';
16
+ }>;
17
+ export type CreatePreviewCustomizeControlPlanInput = Readonly<{
18
+ blockKind: string;
19
+ fields: readonly FieldConfig[];
20
+ content: Readonly<Record<string, unknown>>;
21
+ maxQuickFields?: number;
22
+ }>;
23
+ export declare function createPreviewCustomizeControlPlan({ blockKind, fields, content, maxQuickFields, }: CreatePreviewCustomizeControlPlanInput): PreviewCustomizeControlPlan;
24
+ export declare function isRawThemeV2CustomizeFieldPath(fieldPath: string): boolean;
@@ -0,0 +1,34 @@
1
+ import { type BlockManifest, type Theme } from '../../../../blocks/src/index';
2
+ import { type FieldConfig, type FormBackend } from '../../../../block-form/src/client/index';
3
+ import { type SdkConfigForBlockPicker } from '../../../../editor-blocks/src/index';
4
+ import type { EditorUiState } from '../../../../content-editor/src/index';
5
+ import type { PreviewZustandStoreApi } from '../preview/storeTypes';
6
+ import { type PreviewCustomizeControlPlan } from './previewCustomizeControlPlan';
7
+ export declare const MAX_CUSTOMIZE_POPOVER_ROWS = 6;
8
+ export declare const MAX_QUICK_MANIFEST_FIELDS = 3;
9
+ export type BlockCustomizeControls = Readonly<{
10
+ manifest: BlockManifest | null;
11
+ controlPlan: PreviewCustomizeControlPlan;
12
+ quickFields: FieldConfig[];
13
+ panelFields: FieldConfig[];
14
+ backend: FormBackend | null;
15
+ hasControls: boolean;
16
+ hasOverflowControls: boolean;
17
+ }>;
18
+ export declare function useBlockCustomizeControls({ blockId, blockKind, content, uiStore, theme, sdkConfig, maxQuickFields, maxPopoverRows, builtInPopoverRows, }: {
19
+ blockId: string;
20
+ blockKind: string;
21
+ content: Readonly<Record<string, unknown>>;
22
+ uiStore: PreviewZustandStoreApi<EditorUiState>;
23
+ theme?: Theme | null;
24
+ sdkConfig?: SdkConfigForBlockPicker | null;
25
+ maxQuickFields?: number;
26
+ maxPopoverRows?: number;
27
+ builtInPopoverRows?: number;
28
+ }): BlockCustomizeControls;
29
+ export declare function resolveQuickFieldBudget({ requestedMaxQuickFields, maxPopoverRows, builtInPopoverRows, hasOverflowControls, }: {
30
+ requestedMaxQuickFields: number;
31
+ maxPopoverRows?: number;
32
+ builtInPopoverRows: number;
33
+ hasOverflowControls: boolean;
34
+ }): number;
@@ -5,10 +5,7 @@ import type { BlockEditorHandle, BlockItem } from '../../../../editor-blocks/src
5
5
  import type { MediaAssetIndexItem, Theme } from '../../../../blocks/src/index';
6
6
  import type { EditorUiState, ZoomLevel } from '../../../../content-editor/src/index';
7
7
  import { type ViewportMode, type ViewportWidth } from './PreviewViewportControls';
8
- type StoreApi<T> = {
9
- getState: () => T;
10
- subscribe: (listener: () => void) => () => void;
11
- };
8
+ import type { PreviewZustandStoreApi } from './storeTypes';
12
9
  type PageBlockEditorPanelProps = {
13
10
  siteId: string;
14
11
  pageId: string;
@@ -17,7 +14,7 @@ type PageBlockEditorPanelProps = {
17
14
  bearerToken?: string | null;
18
15
  supabaseUrl?: string;
19
16
  blockItems: BlockItem[];
20
- uiStoreForBlockEditor: StoreApi<EditorUiState>;
17
+ uiStoreForBlockEditor: PreviewZustandStoreApi<EditorUiState>;
21
18
  blockEditorRef: MutableRefObject<BlockEditorHandle | null>;
22
19
  onBlocksChange: (nextItems: BlockItem[]) => void;
23
20
  metadataPanel: ReactNode;
@@ -1,12 +1,19 @@
1
1
  import { type ReactNode } from 'react';
2
+ import type { BackgroundImagePoolItem } from '../../../../blocks/src/system/customize/backgrounds';
2
3
  import { type ApiClient } from '../../../../api/src/request';
3
4
  import type { PreviewCustomizeAction } from '../blocks/previewCustomizeActions';
4
5
  import { type PreviewPageDesignEditorApplyOutcome, type PreviewPageDesignEditorState } from './previewCustomizeWorkflowState';
6
+ import { type PreviewEditorRuntimeContent } from './previewCustomizeRuntimePatch';
5
7
  export type { PreviewPageDesignEditorApplyOutcome, PreviewPageDesignEditorState, } from './previewCustomizeWorkflowState';
6
8
  type PageDesignEditorStateContextValue = Readonly<{
7
9
  state: PreviewPageDesignEditorState;
8
10
  reload: () => void;
9
- applyAction: (action: PreviewCustomizeAction) => Promise<PreviewPageDesignEditorApplyOutcome>;
11
+ backgroundImagePool: readonly BackgroundImagePoolItem[];
12
+ backgroundImagePoolStatus: 'idle' | 'loading' | 'loaded' | 'failed';
13
+ loadBackgroundImagePool: () => Promise<readonly BackgroundImagePoolItem[]>;
14
+ applyAction: (action: PreviewCustomizeAction, options?: Readonly<{
15
+ runtimeContent?: PreviewEditorRuntimeContent | null;
16
+ }>) => Promise<PreviewPageDesignEditorApplyOutcome>;
10
17
  undo: () => Promise<PreviewPageDesignEditorApplyOutcome>;
11
18
  redo: () => Promise<PreviewPageDesignEditorApplyOutcome>;
12
19
  canUndo: boolean;
@@ -0,0 +1,20 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { EditorBlockId } from '../../../../core/src/index';
3
+ export type PreviewBlockCustomizeSelection = Readonly<{
4
+ kind: 'none';
5
+ }> | Readonly<{
6
+ kind: 'selected';
7
+ blockId: EditorBlockId;
8
+ requestId: number;
9
+ }>;
10
+ type PreviewBlockCustomizeSelectionContextValue = Readonly<{
11
+ selection: PreviewBlockCustomizeSelection;
12
+ inspectBlock: (blockId: EditorBlockId) => void;
13
+ clearInspection: () => void;
14
+ }>;
15
+ export declare function PreviewBlockCustomizeSelectionProvider({ children, }: {
16
+ children: ReactNode;
17
+ }): import("react/jsx-runtime").JSX.Element;
18
+ export declare function usePreviewBlockCustomizeSelection(): PreviewBlockCustomizeSelectionContextValue;
19
+ export declare function usePreviewBlockCustomizeSelectionOptional(): PreviewBlockCustomizeSelectionContextValue | null;
20
+ export {};
@@ -1 +1,3 @@
1
+ import type { StatusBarMenuItem } from '@riverbankcms/editor';
2
+ export declare function usePreviewOpenEditorMobileMenuItems(): StatusBarMenuItem[];
1
3
  export declare function PreviewOpenEditorButton(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import type { Theme } from '../../../../blocks/src/index';
2
+ import type { EditorBlockId } from '../../../../core/src/index';
3
+ import type { SdkConfigForBlockPicker } from '../../../../editor-blocks/src/index';
4
+ import type { BlockItem } from '../../../../editor-blocks/src/block-editor/types';
5
+ import type { EditorUiState } from '../../../../content-editor/src/index';
6
+ import type { PreviewZustandStoreApi } from './storeTypes';
7
+ export declare function SelectedBlockCustomizePanel({ blockItems, uiStoreForBlockEditor, theme, sdkConfig, }: {
8
+ blockItems: readonly BlockItem[];
9
+ uiStoreForBlockEditor: PreviewZustandStoreApi<EditorUiState>;
10
+ theme?: Theme | null;
11
+ sdkConfig?: SdkConfigForBlockPicker | null;
12
+ }): import("react/jsx-runtime").JSX.Element;
13
+ export declare function readBlockCurrentValues(store: PreviewZustandStoreApi<EditorUiState>, blockId: EditorBlockId, fallback: Record<string, unknown>): Record<string, unknown>;
@@ -91,8 +91,9 @@ export declare function setPaletteOverrides(state: StyleConfiguratorState, palet
91
91
  /**
92
92
  * Records the post-compile resolved selection + any fallback warnings.
93
93
  * Used after `compileSiteThemeFromSelections` runs against a new site style:
94
- * the resolver may have auto-picked a different personality / palette if the
95
- * user's previous selections are not offered for the new style.
94
+ * the resolver may have auto-picked a different personality if the user's
95
+ * previous selection is not offered for the new style, or a different palette
96
+ * if the persisted palette ID is no longer known.
96
97
  *
97
98
  * Palette overrides are scoped by palette variant. If the resolver moves the
98
99
  * preview to a different palette, the current sparse overrides are stashed
@@ -0,0 +1,13 @@
1
+ import { type EditorUiStoreInstance } from '../../../../content-editor/src/index';
2
+ import type { DesignBlockId, PageDesignEditorReadModel } from '../../../../theme-core/src/site-styles/index';
3
+ import type { PreviewCustomizeRuntimePatch, PreviewEditorRuntimeContent } from './previewCustomizeRuntimePatch';
4
+ export type PreviewCustomizeDraftPatchResult = Readonly<{
5
+ kind: 'applied';
6
+ }> | Readonly<{
7
+ kind: 'missing-block-model';
8
+ }> | Readonly<{
9
+ kind: 'missing-current-content';
10
+ }>;
11
+ export declare function applyPreviewCustomizeDraftPatch(uiStore: EditorUiStoreInstance, patch: PreviewCustomizeRuntimePatch, editorModel: PageDesignEditorReadModel): PreviewCustomizeDraftPatchResult;
12
+ export declare function rollbackPreviewCustomizeDraftPatch(uiStore: EditorUiStoreInstance, patch: PreviewCustomizeRuntimePatch | null): PreviewCustomizeDraftPatchResult;
13
+ export declare function currentLocalBlockContent(uiStore: EditorUiStoreInstance, targetBlockId: DesignBlockId): PreviewEditorRuntimeContent | null;
@@ -2,6 +2,7 @@ import { type AppearancePresetId, type BoundaryOptionId, type DesignBlockId, typ
2
2
  import { type HistoryState } from '../../../../content-editor/src/index';
3
3
  import type { PreviewCustomizeAction } from '../blocks/previewCustomizeActions';
4
4
  import type { SystemCustomizeFacetHistorySelection } from '../../../../blocks/src/system/customize/facets';
5
+ import { type BackgroundOverride } from '../../../../blocks/src/system/customize/backgrounds';
5
6
  type PreviewLoadedEditorModel = PageDesignEditorReadModel;
6
7
  export type PreviewCustomizeHistoryEntry = Readonly<{
7
8
  kind: 'layout';
@@ -17,6 +18,11 @@ export type PreviewCustomizeHistoryEntry = Readonly<{
17
18
  kind: 'block-facet';
18
19
  blockId: PreviewCustomizeActionBlockId;
19
20
  } & SystemCustomizeFacetHistorySelection> | Readonly<{
21
+ kind: 'background';
22
+ blockId: PreviewCustomizeActionBlockId;
23
+ fromOverride: BackgroundOverride;
24
+ toOverride: BackgroundOverride;
25
+ }> | Readonly<{
20
26
  kind: 'boundary';
21
27
  boundaryId: DesignBoundaryId;
22
28
  previousBlockId: PreviewCustomizeActionBlockId;
@@ -2,8 +2,10 @@ import type { PageDesignEditorReadModel } from '../../../../theme-core/src/site-
2
2
  import type { DesignBlockId } from '../../../../theme-core/src/site-styles/index';
3
3
  import type { PreviewCustomizeAction } from '../blocks/previewCustomizeActions';
4
4
  export type PreviewEditorRuntimeContent = Record<string, unknown>;
5
+ export type PreviewCustomizeRuntimeFieldPath = '_sectionStyles.background';
5
6
  export type PreviewCustomizeRuntimePatch = Readonly<{
6
7
  blockId: DesignBlockId;
8
+ ownedRuntimeFieldPaths: readonly PreviewCustomizeRuntimeFieldPath[];
7
9
  previousContent: PreviewEditorRuntimeContent;
8
10
  nextContent: PreviewEditorRuntimeContent;
9
11
  rollback: (currentContent: PreviewEditorRuntimeContent) => PreviewEditorRuntimeContent;
@@ -0,0 +1,4 @@
1
+ export type PreviewZustandStoreApi<T> = {
2
+ getState: () => T;
3
+ subscribe: (listener: () => void) => () => void;
4
+ };
@@ -2,14 +2,16 @@ import { type ReactNode } from 'react';
2
2
  import type { ApiClient } from '../../../../api/src/request';
3
3
  import { type MediaAssetIndexItem, type Theme } from '../../../../blocks/src/index';
4
4
  import type { FieldWidgetComponent } from '../../../../block-form/src/client/index';
5
+ import type { SdkConfigForBlockPicker } from '../../../../editor-blocks/src/index';
5
6
  import { __testUtils, createPreviewEntryPickerAdapter, createPreviewLinkAdapters, createPreviewReferenceAdapters } from './widgetAdapters';
6
- export declare function PreviewFormProvider({ siteId: rawSiteId, theme, previewClient, bearerToken, supabaseUrl, mediaAssets, children, }: {
7
+ export declare function PreviewFormProvider({ siteId: rawSiteId, theme, previewClient, bearerToken, supabaseUrl, mediaAssets, sdkConfig, children, }: {
7
8
  siteId: string;
8
9
  theme?: Theme | null;
9
10
  previewClient: ApiClient;
10
11
  bearerToken?: string | null;
11
12
  supabaseUrl?: string;
12
13
  mediaAssets?: MediaAssetIndexItem[];
14
+ sdkConfig?: SdkConfigForBlockPicker | null;
13
15
  children: ReactNode;
14
16
  }): import("react/jsx-runtime").JSX.Element;
15
17
  export declare const previewWidgetOverrides: {
@@ -0,0 +1,44 @@
1
+ import { Command } from 'commander';
2
+ import type { SetupRevalidationWebhookResult } from '../../client/management';
3
+ export declare const RIVERBANK_WEBHOOK_SECRET_ENV = "RIVERBANK_WEBHOOK_SECRET";
4
+ export type EnvPatchPlan = Readonly<{
5
+ tag: 'create-file';
6
+ nextContent: string;
7
+ }> | Readonly<{
8
+ tag: 'append-key';
9
+ nextContent: string;
10
+ }> | Readonly<{
11
+ tag: 'replace-key';
12
+ nextContent: string;
13
+ }> | Readonly<{
14
+ tag: 'unchanged';
15
+ nextContent: string;
16
+ }>;
17
+ export interface WebhookSetupOptions {
18
+ url: string;
19
+ name?: string;
20
+ rotateSecret?: boolean;
21
+ dryRun?: boolean;
22
+ writeEnv?: boolean;
23
+ vercel?: boolean;
24
+ yes?: boolean;
25
+ }
26
+ export declare function planEnvSecretPatch(existingContent: string | null, secret: string): EnvPatchPlan;
27
+ export declare function writeEnvSecret(filePath: string, secret: string): Promise<Readonly<{
28
+ path: string;
29
+ plan: EnvPatchPlan;
30
+ written: boolean;
31
+ }>>;
32
+ export declare function planHumanResultOutput(input: Readonly<{
33
+ result: SetupRevalidationWebhookResult;
34
+ envWrite: Readonly<{
35
+ path: string;
36
+ plan: EnvPatchPlan;
37
+ written: boolean;
38
+ }> | null;
39
+ writeEnv: boolean;
40
+ }>): Readonly<{
41
+ summary: string;
42
+ details: string[];
43
+ }>;
44
+ export declare const webhooksCommand: Command;
@@ -0,0 +1,11 @@
1
+ import { navigationMenuIdentity, type NavigationMenuIdentity, type NavigationMenuIdentityInput } from '../../../api/src/navigation';
2
+ import { type Result } from '../../../core/src/index';
3
+ export type NavigationIdentityInput = NavigationMenuIdentityInput;
4
+ export type DuplicateNavigationIdentityError = Readonly<{
5
+ code: 'duplicate_navigation_identity';
6
+ identity: NavigationMenuIdentity;
7
+ menuNames: readonly string[];
8
+ }>;
9
+ export declare const navigationIdentity: typeof navigationMenuIdentity;
10
+ export declare function navigationIdentityMap<T extends NavigationIdentityInput>(menus: readonly T[]): Result<ReadonlyMap<NavigationMenuIdentity, T>, DuplicateNavigationIdentityError>;
11
+ export declare function duplicateNavigationIdentityMessage(error: DuplicateNavigationIdentityError): string;
@@ -12,6 +12,10 @@ export type CliNavigationCommandCompileError = Readonly<{
12
12
  code: 'missing_local_navigation_menu';
13
13
  name: CliNavigationMenuName;
14
14
  message: string;
15
+ }> | Readonly<{
16
+ code: 'duplicate_navigation_identity';
17
+ identity: string;
18
+ message: string;
15
19
  }> | CliCommandValidationCompileError;
16
20
  export type CliNavigationCommandCompileInput = Readonly<{
17
21
  source: CliNavigationCommandBatchSource;
@@ -47,6 +47,7 @@ export type OneOffBlockMutation = Readonly<{
47
47
  }>;
48
48
  export type OneOffNavigationMutation = Readonly<{
49
49
  kind: 'upsert';
50
+ identifier?: string;
50
51
  menuName: string;
51
52
  items: readonly NavigationItemInput[];
52
53
  }>;
@@ -35,6 +35,7 @@ export interface BlockDiff {
35
35
  }
36
36
  export interface NavigationDiff {
37
37
  type: DiffType;
38
+ identifier?: string | null;
38
39
  name: string;
39
40
  /** List of changed field paths (for updates) */
40
41
  changes?: string[];
@@ -135,6 +136,13 @@ export interface JsonDiffChange {
135
136
  /** Status change: publish or unpublish */
136
137
  statusChange?: 'publish' | 'unpublish';
137
138
  }
139
+ export interface JsonDiffWarning {
140
+ type: 'duplicate_navigation_identity';
141
+ source: 'local' | 'remote';
142
+ identity: string;
143
+ menuNames: readonly string[];
144
+ message: string;
145
+ }
138
146
  export interface JsonDiff {
139
147
  summary: {
140
148
  creates: number;
@@ -144,6 +152,7 @@ export interface JsonDiff {
144
152
  unpublishes: number;
145
153
  };
146
154
  changes: JsonDiffChange[];
155
+ warnings?: readonly JsonDiffWarning[];
147
156
  }
148
157
  /** JSON diff output for pull --dry-run --json-diff */
149
158
  export interface PullJsonDiff {
@@ -36,7 +36,7 @@ import { CourseSessionConflictError } from './courses';
36
36
  * @returns ManagementClient instance
37
37
  */
38
38
  export declare function createManagementClient(config: ManagementClientConfig): ManagementClient;
39
- export type { ManagementClient, ManagementClientConfig, ManagementEntry, ManagementPage, ManagementBlock, ManagementNavigationMenu, ManagementNavigationItem, ManagementSettings, ManagementForm, ManagementFormField, ManagementFormSchema, ManagementFormSettings, ManagementVenue, VenueAddress, VenueLocation, VenueUpsertInput, ManagementEventCategory, EventCategoryUpsertInput, ManagementEventSeries, EventSchedule, EventPricing, EventContent, EventSeriesUpsertInput, ManagementCourseRun, CourseRunUpsertInput, CourseSession, CourseProgramContent, CourseSessionConflict, EntryUpsertInput, PageUpsertInput, BlockUpsertInput, NavigationMenuUpsertInput, NavigationItemInput, FormUpsertInput, SiteStyleSelectionApplyCommand, SiteStyleSelectionApplyCommandInput, ThemeUpsertInput, ThemeUpsertResult, ThemeStyleSelectionApplyInput, ThemeStyleSelectionApplyResult, FooterContent, ManagementFooterContent, FooterContentUpsertInput, FooterOperations, PulledFooter, PulledEntries, PulledPages, PulledNavigation, PulledSettings, PulledForms, PulledTheme, PulledVenues, PulledEventCategories, PulledEvents, PulledCourses, PulledSiteInfo, PulledContentType, PulledContentTypes, PulledContent, PaginationOptions, PaginatedResult, EntryOperations, PageOperations, BlockOperations, NavigationOperations, SettingsOperations, SettingsUpdateInput, FormOperations, ThemeOperations, VenueOperations, EventCategoryOperations, EventOperations, CourseOperations, PullOperations, IdentifiersOperations, BackfillResult, BackfillPageResult, BackfillBlockResult, BackfillEntryResult, MediaOperations, MediaUploadResult, } from './types';
39
+ export type { ManagementClient, ManagementClientConfig, ManagementEntry, ManagementPage, ManagementBlock, ManagementNavigationMenu, ManagementNavigationItem, ManagementSettings, ManagementForm, ManagementFormField, ManagementFormSchema, ManagementFormSettings, ManagementVenue, VenueAddress, VenueLocation, VenueUpsertInput, ManagementEventCategory, EventCategoryUpsertInput, ManagementEventSeries, EventSchedule, EventPricing, EventContent, EventSeriesUpsertInput, ManagementCourseRun, CourseRunUpsertInput, CourseSession, CourseProgramContent, CourseSessionConflict, EntryUpsertInput, PageUpsertInput, BlockUpsertInput, NavigationMenuUpsertInput, NavigationItemInput, FormUpsertInput, SiteStyleSelectionApplyCommand, SiteStyleSelectionApplyCommandInput, ThemeUpsertInput, ThemeUpsertResult, ThemeStyleSelectionApplyInput, ThemeStyleSelectionApplyResult, FooterContent, ManagementFooterContent, FooterContentUpsertInput, FooterOperations, PulledFooter, PulledEntries, PulledPages, PulledNavigation, PulledSettings, PulledForms, PulledTheme, PulledVenues, PulledEventCategories, PulledEvents, PulledCourses, PulledSiteInfo, PulledContentType, PulledContentTypes, PulledContent, PaginationOptions, PaginatedResult, EntryOperations, PageOperations, BlockOperations, NavigationOperations, SettingsOperations, SettingsUpdateInput, WebhookOperations, SetupRevalidationWebhookInput, SetupRevalidationWebhookResult, ManagementWebhookEndpoint, RevalidationWebhookPlannedEndpoint, FormOperations, ThemeOperations, VenueOperations, EventCategoryOperations, EventOperations, CourseOperations, PullOperations, IdentifiersOperations, BackfillResult, BackfillPageResult, BackfillBlockResult, BackfillEntryResult, MediaOperations, MediaUploadResult, } from './types';
40
40
  export { ManagementApiError, type ManagementApiErrorRequest } from './http';
41
41
  export { applySiteStyleSelectionBodyFromCommand, buildApplySiteStyleSelectionCommand, } from './theme';
42
42
  export { CourseSessionConflictError };
@@ -131,6 +131,7 @@ export interface PulledNavigationMenu {
131
131
  updatedAt: string;
132
132
  }
133
133
  export interface NavigationMenuUpsertInput {
134
+ identifier?: string;
134
135
  name: string;
135
136
  isPrimary?: boolean;
136
137
  isFooter?: boolean;
@@ -166,6 +167,58 @@ export interface SettingsUpdateInput {
166
167
  logoIdentifier?: string | null;
167
168
  faviconIdentifier?: string | null;
168
169
  }
170
+ export interface ManagementWebhookEndpoint {
171
+ id: string;
172
+ name: string;
173
+ url: string;
174
+ events: string[];
175
+ enabled: boolean;
176
+ hasSecret: boolean;
177
+ createdAt: string;
178
+ updatedAt: string;
179
+ siteId: string;
180
+ failureCount: number;
181
+ lastFailureAt: string | null;
182
+ lastSuccessAt: string | null;
183
+ lastTriggeredAt: string | null;
184
+ }
185
+ export interface SetupRevalidationWebhookInput {
186
+ url: string;
187
+ name?: string;
188
+ rotateSecret?: boolean;
189
+ dryRun?: boolean;
190
+ vercel?: boolean;
191
+ }
192
+ export interface RevalidationWebhookPlannedEndpoint {
193
+ name: string;
194
+ url: string;
195
+ events: string[];
196
+ enabled: boolean;
197
+ rotateSecret: boolean;
198
+ }
199
+ export type SetupRevalidationWebhookResult = {
200
+ dryRun: true;
201
+ action: 'would_create' | 'would_update' | 'would_rotate' | 'would_leave_unchanged';
202
+ endpoint: ManagementWebhookEndpoint | null;
203
+ plannedEndpoint: RevalidationWebhookPlannedEndpoint;
204
+ message: string;
205
+ checklist: string[];
206
+ } | {
207
+ dryRun: false;
208
+ action: 'created' | 'rotated';
209
+ endpoint: ManagementWebhookEndpoint;
210
+ plannedEndpoint: RevalidationWebhookPlannedEndpoint;
211
+ secret: string;
212
+ message: string;
213
+ checklist: string[];
214
+ } | {
215
+ dryRun: false;
216
+ action: 'updated' | 'unchanged';
217
+ endpoint: ManagementWebhookEndpoint;
218
+ plannedEndpoint: RevalidationWebhookPlannedEndpoint;
219
+ message: string;
220
+ checklist: string[];
221
+ };
169
222
  /**
170
223
  * Form field definition.
171
224
  */
@@ -808,11 +861,15 @@ export interface NavigationOperations {
808
861
  list(): Promise<ManagementNavigationMenu[]>;
809
862
  get(name: string): Promise<ManagementNavigationMenu | null>;
810
863
  upsert(input: NavigationMenuUpsertInput): Promise<ManagementNavigationMenu>;
864
+ delete(menuId: string): Promise<void>;
811
865
  }
812
866
  export interface SettingsOperations {
813
867
  get(): Promise<ManagementSettings>;
814
868
  update(input: SettingsUpdateInput): Promise<ManagementSettings>;
815
869
  }
870
+ export interface WebhookOperations {
871
+ setupRevalidation(input: SetupRevalidationWebhookInput): Promise<SetupRevalidationWebhookResult>;
872
+ }
816
873
  export interface FormOperations {
817
874
  list(): Promise<ManagementForm[]>;
818
875
  get(slug: string): Promise<ManagementForm | null>;
@@ -955,6 +1012,7 @@ export interface ManagementClient {
955
1012
  blocks: BlockOperations;
956
1013
  navigation: NavigationOperations;
957
1014
  settings: SettingsOperations;
1015
+ webhooks: WebhookOperations;
958
1016
  forms: FormOperations;
959
1017
  theme: ThemeOperations;
960
1018
  footer: FooterOperations;
@@ -0,0 +1,3 @@
1
+ import type { HttpClient } from './http';
2
+ import type { WebhookOperations } from './types';
3
+ export declare function createWebhookOperations(http: HttpClient): WebhookOperations;
@@ -9,6 +9,8 @@
9
9
  import type { LinkValue, Media, TipTapNode } from '../contracts';
10
10
  export type VisibilityLevel = 'admin' | 'designer' | 'author';
11
11
  export type ReferenceValueFrom = 'id' | 'identifier' | 'slug';
12
+ export declare const SDK_ICON_PICKER_PRESETS: readonly ["cta", "feature"];
13
+ export type SdkIconPickerPreset = (typeof SDK_ICON_PICKER_PRESETS)[number];
12
14
  export type MediaDeliveryOptions = {
13
15
  sizes?: string;
14
16
  widthCandidates?: number[];
@@ -80,7 +82,7 @@ export type FieldUi = Partial<{
80
82
  thumbnailAltField: string;
81
83
  thumbnailLabelField: string;
82
84
  thumbnailCardDensity: 'compact' | 'comfortable';
83
- iconPickerPreset: 'cta';
85
+ iconPickerPreset: SdkIconPickerPreset;
84
86
  contentTypeField: string;
85
87
  fixedContentType: string;
86
88
  valueFrom: 'id' | 'identifier' | 'slug';
@@ -1,5 +1,5 @@
1
1
  export type { TipTapNode, TipTapMark, Media, LinkValue, InternalRouteOnlyLinkValue, InternalResolvedLinkValue, InternalLinkValue, ExternalLinkValue, CustomLinkValue, PageLinkValue, EntryLinkValue, RichTextPrimitiveProps, RichTextVariant, } from './content';
2
- export type { AppointmentBookingContent, BlogListingContent, BlogPostContent, BodyTextAlignment, BodyTextContent, ButtonVariant, CalendarTabViews, CartContent, CardStylesContent, CheckoutContent, CollectionContent, ColumnsContent, ColumnOption, ContainerStylesContent, CourseDetailsContent, CourseRegistrationContent, CtaFullContent, DisplayMode, EmbedContent, EventCalendarContent, EventDetailsContent, EventLayout, EventListingContent, EventRegistrationContent, EventSpotlightContent, FaqContent, FaqItem, FilterAutoShow, FormBlockContent, GiftingContent, HeroContent, HeroCta, HeroCtaInput, HeroMedia, ImageColSize, ImageGalleryContent, LocationMapContent, LayoutAlign, LayoutWidth, MediaTextAlignment, MediaTextAspectRatio, MediaTextContent, MediaTextImagePosition, NewsletterSignupContent, NewsletterSignupPreset, ProductDetailContent, ProductListContent, SectionStylesContent, SemanticSpacing, ShopContent, SingleButtonContent, SiteFooterContent, SiteHeaderContent, StackContentAlignment, StackImagePosition, SystemBlockContentByFullKind, SystemBlockContentByKind, SystemBlockContentFor, SystemBlockShortKind, TeamMembersContent, TestimonialEntryContent, TestimonialsBlockContent, ThumbnailPadding, ThumbnailShape, VideoGridContent, WeekStart, } from './system-block-content';
2
+ export type { AppointmentBookingContent, BlogListingContent, BlogPostContent, BodyTextAlignment, BodyTextContent, ButtonVariant, CalendarTabViews, CartContent, CardStylesContent, CheckoutContent, CollectionContent, ColumnsContent, ColumnOption, ContainerStylesContent, CourseDetailsContent, CourseRegistrationContent, CtaFullContent, DisplayMode, EmbedContent, EventCalendarContent, EventDetailsContent, EventLayout, EventListingContent, EventRegistrationContent, EventSpotlightContent, FaqContent, FaqItem, FilterAutoShow, FormBlockContent, GiftingContent, HeroContent, HeroCta, HeroCtaInput, HeroMedia, ImageColSize, ImageGalleryContent, LocationMapContent, LayoutAlign, LayoutWidth, MediaTextAlignment, MediaTextAspectRatio, MediaTextContent, MediaTextImagePosition, NewsletterSignupContent, NewsletterSignupPreset, ProductDetailContent, ProductListContent, SectionStylesContent, SemanticIconId, SemanticSpacing, ShopContent, SingleButtonContent, SiteFooterContent, SiteHeaderContent, StackContentAlignment, StackImagePosition, SystemBlockContentByFullKind, SystemBlockContentByKind, SystemBlockContentFor, SystemBlockShortKind, TeamMembersContent, TestimonialEntryContent, TestimonialsBlockContent, ThumbnailPadding, ThumbnailShape, VideoGridContent, WeekStart, BlockIconValue, FeatureCardIconTreatment, } from './system-block-content';
3
3
  export type { PageOutline, BlockOutline, RouteMap, RouteMapEntry, OccurrenceContextData, EntrySubrouteContextData, } from './page';
4
4
  export type { Theme, ThemeTokens } from './theme';
5
5
  export type { CustomCssDeclarationsInput, CustomCssRuleInput, CustomCssNestedRuleInput, CustomCssAtRuleInput, KeyframesAtRuleInput, FontFaceAtRuleInput, MediaAtRuleInput, SupportsAtRuleInput, RawAtRuleInput, } from './custom-css';