@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
@@ -18,6 +18,13 @@ export declare const transformDefinitions: {
18
18
  stickyTransparent?: string | undefined;
19
19
  invert?: string | undefined;
20
20
  }>;
21
+ readonly "layout.headerLogoClass": TransformDefinition<{
22
+ base?: string | undefined;
23
+ }>;
24
+ readonly "layout.headerLogoMediaClass": TransformDefinition<{
25
+ base?: string | undefined;
26
+ }>;
27
+ readonly "layout.headerLogoTextVisible": TransformDefinition;
21
28
  readonly "layout.footerRootClass": TransformDefinition<{
22
29
  base?: string | undefined;
23
30
  surface?: string | undefined;
@@ -41,8 +48,11 @@ export declare const transformDefinitions: {
41
48
  base?: string | undefined;
42
49
  reverseClass?: string | undefined;
43
50
  }>;
51
+ readonly "layout.footerSimpleRootClass": TransformDefinition;
52
+ readonly "layout.footerSimpleNavClass": TransformDefinition;
44
53
  readonly "layout.footerLogoClass": TransformDefinition<{
45
54
  base?: string | undefined;
55
+ requireExplicitShow?: boolean | undefined;
46
56
  }>;
47
57
  readonly "layout.footerLogoMediaClass": TransformDefinition<{
48
58
  base?: string | undefined;
@@ -92,6 +102,9 @@ export declare const transformDefinitions: {
92
102
  readonly "boxStyles.semanticGapValue": TransformDefinition<{
93
103
  fallback?: import("../spacing").SemanticSpacing;
94
104
  }>;
105
+ readonly "boxStyles.cardVariantClass": TransformDefinition<{
106
+ baseClass?: string;
107
+ }>;
95
108
  };
96
109
  export type TransformId = keyof typeof transformDefinitions;
97
110
  type OptionsOf<T> = T extends TransformDefinition<infer O> ? O : never;
@@ -112,7 +125,7 @@ export declare function bindProp(from: string, opts?: {
112
125
  readonly $bind: {
113
126
  readonly pick?: "value" | "collection" | "context" | undefined;
114
127
  readonly fallback?: {} | null | undefined;
115
- readonly transforms?: TransformStep<"date.formatShort" | "boxStyles.semanticGap" | "boxStyles.semanticGapValue" | "ui.twoColumnContainerClass" | "ui.twoColumnFlexBasis" | "ui.sectionStateTone" | "string.uppercase" | "value.fallback" | "value.csv" | "layout.maxWidthClass" | "layout.headerRootClass" | "layout.footerRootClass" | "layout.headerRootStyle" | "layout.headerSectionBackground" | "layout.footerRootStyle" | "ui.headerNavLinkClass" | "ui.headingClassFromAlignment" | "ui.bodyClassFromAlignment" | "ui.stackAlignFromAlignment" | "ui.heroContentWrapperClass" | "ui.heroCtaJustify" | "ui.heroStackJustifyFromVerticalAlignment" | "ui.heroGridClassFromVerticalAlignment" | "ui.conditionalClass" | "media.fromUrl" | "content.interpolateRichTextTokens" | "layout.footerBottomBarClass" | "layout.footerBottomBarContainerClass" | "layout.footerBottomBarStyle" | "layout.footerSplitNavSingleClass" | "layout.footerSplitMainClass" | "layout.footerLogoClass" | "layout.footerLogoMediaClass" | "layout.footerLogoTextVisible">[] | undefined;
128
+ readonly transforms?: TransformStep<"date.formatShort" | "boxStyles.cardVariantClass" | "boxStyles.semanticGap" | "boxStyles.semanticGapValue" | "ui.twoColumnContainerClass" | "ui.twoColumnFlexBasis" | "ui.sectionStateTone" | "string.uppercase" | "value.fallback" | "value.csv" | "layout.maxWidthClass" | "layout.headerRootClass" | "layout.footerRootClass" | "layout.headerRootStyle" | "layout.headerSectionBackground" | "layout.footerRootStyle" | "ui.headerNavLinkClass" | "ui.headingClassFromAlignment" | "ui.bodyClassFromAlignment" | "ui.stackAlignFromAlignment" | "ui.heroContentWrapperClass" | "ui.heroCtaJustify" | "ui.heroStackJustifyFromVerticalAlignment" | "ui.heroGridClassFromVerticalAlignment" | "ui.conditionalClass" | "media.fromUrl" | "content.interpolateRichTextTokens" | "layout.headerLogoClass" | "layout.headerLogoMediaClass" | "layout.headerLogoTextVisible" | "layout.footerBottomBarClass" | "layout.footerBottomBarContainerClass" | "layout.footerBottomBarStyle" | "layout.footerSplitNavSingleClass" | "layout.footerSimpleRootClass" | "layout.footerSimpleNavClass" | "layout.footerSplitMainClass" | "layout.footerLogoClass" | "layout.footerLogoMediaClass" | "layout.footerLogoTextVisible">[] | undefined;
116
129
  readonly from: string;
117
130
  };
118
131
  };
@@ -15,6 +15,8 @@ export interface ContentMappingContext {
15
15
  referenceContentTypeKeys?: readonly string[];
16
16
  }
17
17
  type VisibilityRole = 'admin' | 'designer' | 'author';
18
+ export declare const CONTENT_MODEL_ICON_PICKER_PRESETS: readonly ["cta", "feature"];
19
+ export type ContentModelIconPickerPreset = (typeof CONTENT_MODEL_ICON_PICKER_PRESETS)[number];
18
20
  type FieldUi = {
19
21
  widget?: string;
20
22
  preset?: 'disclosure';
@@ -22,7 +24,7 @@ type FieldUi = {
22
24
  colSpan?: number;
23
25
  layout?: 'stack' | 'grid';
24
26
  columns?: number;
25
- iconPickerPreset?: 'cta';
27
+ iconPickerPreset?: ContentModelIconPickerPreset;
26
28
  } & Record<string, unknown>;
27
29
  type BaseFieldDefinition = {
28
30
  id: string;
@@ -77,6 +77,8 @@ export type BookingCalendarFeedTokenSecretHash = Brand<string, 'BookingCalendarF
77
77
  export type ContentEntryId = Brand<string, 'ContentEntryId'>;
78
78
  export type StripeInvoiceId = Brand<string, 'StripeInvoiceId'>;
79
79
  export type NewsletterSubscriberId = Brand<string, 'NewsletterSubscriberId'>;
80
+ export type NavigationMenuId = Brand<string, 'NavigationMenuId'>;
81
+ export type NavigationItemId = Brand<string, 'NavigationItemId'>;
80
82
  export type EmailAuditRowId = Brand<string, 'EmailAuditRowId'>;
81
83
  export type WaitlistEntryId = Brand<string, 'WaitlistEntryId'>;
82
84
  export type WaitlistHoldId = Brand<string, 'WaitlistHoldId'>;
@@ -186,6 +188,8 @@ export declare const unsafeAsBookingCalendarFeedTokenSecretHash: (value: string)
186
188
  export declare const unsafeAsContentEntryId: (id: string) => ContentEntryId;
187
189
  export declare const unsafeAsStripeInvoiceId: (id: string) => StripeInvoiceId;
188
190
  export declare const unsafeAsNewsletterSubscriberId: (id: string) => NewsletterSubscriberId;
191
+ export declare const unsafeAsNavigationMenuId: (id: string) => NavigationMenuId;
192
+ export declare const unsafeAsNavigationItemId: (id: string) => NavigationItemId;
189
193
  export declare const unsafeAsEmailAuditRowId: (id: string) => EmailAuditRowId;
190
194
  export declare const unsafeAsWaitlistEntryId: (id: string) => WaitlistEntryId;
191
195
  export declare const unsafeAsWaitlistHoldId: (id: string) => WaitlistHoldId;
@@ -225,6 +229,8 @@ export declare const parseProductVariantId: (value: unknown) => Result<ProductVa
225
229
  export declare const parseProductCategoryId: (value: unknown) => Result<ProductCategoryId, BrandedIdParseError>;
226
230
  export declare const parseMediaAssetId: (value: unknown) => Result<MediaAssetId, BrandedIdParseError>;
227
231
  export declare const parseContentEntryId: (value: unknown) => Result<ContentEntryId, BrandedIdParseError>;
232
+ export declare const parseNavigationMenuId: (value: unknown) => Result<NavigationMenuId, BrandedIdParseError>;
233
+ export declare const parseNavigationItemId: (value: unknown) => Result<NavigationItemId, BrandedIdParseError>;
228
234
  export declare const parsePassId: (value: unknown) => Result<PassId, BrandedIdParseError>;
229
235
  export declare const parseMembershipId: (value: unknown) => Result<MembershipId, BrandedIdParseError>;
230
236
  export declare const parseCourseId: (value: unknown) => Result<CourseId, BrandedIdParseError>;
@@ -8059,6 +8059,138 @@ export type Database = {
8059
8059
  }
8060
8060
  ];
8061
8061
  };
8062
+ generated_icon_assets: {
8063
+ Row: {
8064
+ byte_length: number;
8065
+ card_key: string;
8066
+ created_at: string;
8067
+ height: number;
8068
+ id: string;
8069
+ media_asset_id: string | null;
8070
+ mime_type: string;
8071
+ semantic_fallback_icon_id: string;
8072
+ set_id: string;
8073
+ site_id: string;
8074
+ sort_order: number;
8075
+ updated_at: string;
8076
+ width: number;
8077
+ };
8078
+ Insert: {
8079
+ byte_length: number;
8080
+ card_key: string;
8081
+ created_at?: string;
8082
+ height: number;
8083
+ id: string;
8084
+ media_asset_id?: string | null;
8085
+ mime_type: string;
8086
+ semantic_fallback_icon_id: string;
8087
+ set_id: string;
8088
+ site_id: string;
8089
+ sort_order?: number;
8090
+ updated_at?: string;
8091
+ width: number;
8092
+ };
8093
+ Update: {
8094
+ byte_length?: number;
8095
+ card_key?: string;
8096
+ created_at?: string;
8097
+ height?: number;
8098
+ id?: string;
8099
+ media_asset_id?: string | null;
8100
+ mime_type?: string;
8101
+ semantic_fallback_icon_id?: string;
8102
+ set_id?: string;
8103
+ site_id?: string;
8104
+ sort_order?: number;
8105
+ updated_at?: string;
8106
+ width?: number;
8107
+ };
8108
+ Relationships: [
8109
+ {
8110
+ foreignKeyName: "generated_icon_assets_media_asset_id_fkey";
8111
+ columns: ["media_asset_id"];
8112
+ isOneToOne: false;
8113
+ referencedRelation: "media_assets";
8114
+ referencedColumns: ["id"];
8115
+ },
8116
+ {
8117
+ foreignKeyName: "generated_icon_assets_set_id_fkey";
8118
+ columns: ["set_id"];
8119
+ isOneToOne: false;
8120
+ referencedRelation: "generated_icon_sets";
8121
+ referencedColumns: ["id"];
8122
+ },
8123
+ {
8124
+ foreignKeyName: "generated_icon_assets_site_id_fkey";
8125
+ columns: ["site_id"];
8126
+ isOneToOne: false;
8127
+ referencedRelation: "sites";
8128
+ referencedColumns: ["id"];
8129
+ }
8130
+ ];
8131
+ };
8132
+ generated_icon_sets: {
8133
+ Row: {
8134
+ block_kind: string;
8135
+ block_label: string;
8136
+ created_at: string;
8137
+ created_by: string | null;
8138
+ id: string;
8139
+ model_id: string;
8140
+ prompt: string;
8141
+ prompt_fingerprint: string;
8142
+ provider_name: string;
8143
+ site_id: string;
8144
+ status: string;
8145
+ style_guide_source_fingerprint: string;
8146
+ style_guide_version_id: string;
8147
+ updated_at: string;
8148
+ user_style_note: string | null;
8149
+ };
8150
+ Insert: {
8151
+ block_kind: string;
8152
+ block_label: string;
8153
+ created_at?: string;
8154
+ created_by?: string | null;
8155
+ id: string;
8156
+ model_id: string;
8157
+ prompt: string;
8158
+ prompt_fingerprint: string;
8159
+ provider_name: string;
8160
+ site_id: string;
8161
+ status?: string;
8162
+ style_guide_source_fingerprint: string;
8163
+ style_guide_version_id: string;
8164
+ updated_at?: string;
8165
+ user_style_note?: string | null;
8166
+ };
8167
+ Update: {
8168
+ block_kind?: string;
8169
+ block_label?: string;
8170
+ created_at?: string;
8171
+ created_by?: string | null;
8172
+ id?: string;
8173
+ model_id?: string;
8174
+ prompt?: string;
8175
+ prompt_fingerprint?: string;
8176
+ provider_name?: string;
8177
+ site_id?: string;
8178
+ status?: string;
8179
+ style_guide_source_fingerprint?: string;
8180
+ style_guide_version_id?: string;
8181
+ updated_at?: string;
8182
+ user_style_note?: string | null;
8183
+ };
8184
+ Relationships: [
8185
+ {
8186
+ foreignKeyName: "generated_icon_sets_site_id_fkey";
8187
+ columns: ["site_id"];
8188
+ isOneToOne: false;
8189
+ referencedRelation: "sites";
8190
+ referencedColumns: ["id"];
8191
+ }
8192
+ ];
8193
+ };
8062
8194
  gifting_audit_events: {
8063
8195
  Row: {
8064
8196
  actor_kind: string;
@@ -12553,6 +12685,65 @@ export type Database = {
12553
12685
  }
12554
12686
  ];
12555
12687
  };
12688
+ site_icon_style_guides: {
12689
+ Row: {
12690
+ approved_example_refs: Json;
12691
+ created_at: string;
12692
+ created_by: string | null;
12693
+ derivation_version: number;
12694
+ display_summary: string;
12695
+ guide: Json;
12696
+ id: string;
12697
+ schema_version: number;
12698
+ site_id: string;
12699
+ source_fingerprint: string;
12700
+ source_snapshot: Json;
12701
+ updated_at: string;
12702
+ updated_by: string | null;
12703
+ version_id: string;
12704
+ };
12705
+ Insert: {
12706
+ approved_example_refs?: Json;
12707
+ created_at?: string;
12708
+ created_by?: string | null;
12709
+ derivation_version: number;
12710
+ display_summary: string;
12711
+ guide: Json;
12712
+ id?: string;
12713
+ schema_version: number;
12714
+ site_id: string;
12715
+ source_fingerprint: string;
12716
+ source_snapshot: Json;
12717
+ updated_at?: string;
12718
+ updated_by?: string | null;
12719
+ version_id: string;
12720
+ };
12721
+ Update: {
12722
+ approved_example_refs?: Json;
12723
+ created_at?: string;
12724
+ created_by?: string | null;
12725
+ derivation_version?: number;
12726
+ display_summary?: string;
12727
+ guide?: Json;
12728
+ id?: string;
12729
+ schema_version?: number;
12730
+ site_id?: string;
12731
+ source_fingerprint?: string;
12732
+ source_snapshot?: Json;
12733
+ updated_at?: string;
12734
+ updated_by?: string | null;
12735
+ version_id?: string;
12736
+ };
12737
+ Relationships: [
12738
+ {
12739
+ foreignKeyName: "site_icon_style_guides_site_id_fkey";
12740
+ columns: ["site_id"];
12741
+ isOneToOne: true;
12742
+ referencedRelation: "sites";
12743
+ referencedColumns: ["id"];
12744
+ }
12745
+ ];
12746
+ };
12556
12747
  site_inspiration_analyses: {
12557
12748
  Row: {
12558
12749
  aggregated_constraints: Json | null;
@@ -13971,7 +14162,9 @@ export type Database = {
13971
14162
  last_success_at: string | null;
13972
14163
  last_triggered_at: string | null;
13973
14164
  name: string;
13974
- secret: string;
14165
+ secret: string | null;
14166
+ secret_encrypted: string | null;
14167
+ secret_key_version: string | null;
13975
14168
  site_id: string;
13976
14169
  updated_at: string;
13977
14170
  url: string;
@@ -13986,7 +14179,9 @@ export type Database = {
13986
14179
  last_success_at?: string | null;
13987
14180
  last_triggered_at?: string | null;
13988
14181
  name?: string;
13989
- secret: string;
14182
+ secret?: string | null;
14183
+ secret_encrypted?: string | null;
14184
+ secret_key_version?: string | null;
13990
14185
  site_id: string;
13991
14186
  updated_at?: string;
13992
14187
  url: string;
@@ -14001,7 +14196,9 @@ export type Database = {
14001
14196
  last_success_at?: string | null;
14002
14197
  last_triggered_at?: string | null;
14003
14198
  name?: string;
14004
- secret?: string;
14199
+ secret?: string | null;
14200
+ secret_encrypted?: string | null;
14201
+ secret_key_version?: string | null;
14005
14202
  site_id?: string;
14006
14203
  updated_at?: string;
14007
14204
  url?: string;
@@ -5,8 +5,10 @@ import type { SystemBlockDefinition } from '../../../blocks/src/index';
5
5
  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
+ import type { SiteIconStyleGuideVersionId } from '../../../blocks/src/index';
8
9
  import { type BlockActionControlMode } from './actionControlMode';
9
10
  import { type ReorderControlMode } from './reorderControlMode';
11
+ import type { GeneratedIconSetGenerateInput, GeneratedIconSetGenerateResult, GeneratedIconSetPreview } from './GeneratedIconSetDialog';
10
12
  import type { ArrayKeysManager, BlockFocusRequest, BlockItem, UiStore, DraftsSlice, UiSlice } from './types';
11
13
  /** Drag listener props from dnd-kit */
12
14
  type DragListeners = SyntheticListenerMap | undefined;
@@ -20,7 +22,7 @@ type BlockCardStore = UiStore<Pick<UiSlice, 'activeBlockId' | 'setActiveBlockId'
20
22
  drafts: Pick<DraftsSlice, 'getBlockSnapshot' | 'getCurrentValues' | 'getAtPath' | 'setAtPath' | 'edit' | 'initNewBlock' | 'updateBlockBaseline' | 'clearError'>;
21
23
  arrayKeys: ArrayKeysManager;
22
24
  }>;
23
- 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, }: {
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, }: {
24
26
  siteId: string;
25
27
  block: BlockItem;
26
28
  manifest: SystemBlockDefinition['manifest'];
@@ -46,5 +48,10 @@ export declare function BlockCard({ siteId, block, manifest, isFirst, isLast, is
46
48
  pageDesignBlock?: PageDesignEditorBlock | null;
47
49
  reorderControlMode?: ReorderControlMode;
48
50
  actionControlMode?: BlockActionControlMode;
51
+ currentStyleGuideVersionId?: SiteIconStyleGuideVersionId | null;
52
+ iconStyleGuideSummary?: string | null;
53
+ iconStyleGuideEditHref?: string | null;
54
+ onGenerateIconSet?: (input: GeneratedIconSetGenerateInput) => Promise<GeneratedIconSetGenerateResult>;
55
+ onApplyGeneratedIconSet?: (preview: GeneratedIconSetPreview) => GeneratedIconSetPreview | void | Promise<GeneratedIconSetPreview | void>;
49
56
  }): import("react/jsx-runtime").JSX.Element;
50
57
  export {};
@@ -4,7 +4,9 @@ import { BlockForm } from '../BlockForm';
4
4
  import type { ComponentProps } from 'react';
5
5
  import type { BlockItem, BlockFocusRequest } from './types';
6
6
  import type { FieldWidgetComponent } from '../../../block-form/src/client/index';
7
- export declare function BlockCardBody({ siteId, block, manifest, uiStore, hasRecoveryConflict, focusSignal, onFocusHandled, onBlockSave, theme, widgetOverrides, hideThemeV2RawStyleFields, pageDesignBlock, }: {
7
+ import type { SiteIconStyleGuideVersionId } from '../../../blocks/src/index';
8
+ import type { GeneratedIconSetGenerateInput, GeneratedIconSetGenerateResult, GeneratedIconSetPreview } from './GeneratedIconSetDialog';
9
+ export declare function BlockCardBody({ siteId, block, manifest, uiStore, hasRecoveryConflict, focusSignal, onFocusHandled, onBlockSave, theme, widgetOverrides, hideThemeV2RawStyleFields, pageDesignBlock, currentStyleGuideVersionId, iconStyleGuideSummary, iconStyleGuideEditHref, onGenerateIconSet, onApplyGeneratedIconSet, }: {
8
10
  siteId: string;
9
11
  block: BlockItem;
10
12
  manifest: SystemBlockDefinition['manifest'];
@@ -17,4 +19,9 @@ export declare function BlockCardBody({ siteId, block, manifest, uiStore, hasRec
17
19
  widgetOverrides?: Record<string, FieldWidgetComponent>;
18
20
  hideThemeV2RawStyleFields?: boolean;
19
21
  pageDesignBlock?: PageDesignEditorBlock | null;
22
+ currentStyleGuideVersionId?: SiteIconStyleGuideVersionId | null;
23
+ iconStyleGuideSummary?: string | null;
24
+ iconStyleGuideEditHref?: string | null;
25
+ onGenerateIconSet?: (input: GeneratedIconSetGenerateInput) => Promise<GeneratedIconSetGenerateResult>;
26
+ onApplyGeneratedIconSet?: (preview: GeneratedIconSetPreview) => GeneratedIconSetPreview | void | Promise<GeneratedIconSetPreview | void>;
20
27
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,16 +1,17 @@
1
1
  import type { SyntheticListenerMap } from '@dnd-kit/core/dist/hooks/utilities';
2
2
  import type { FieldWidgetComponent } from '../../../block-form/src/client/index';
3
- import { type SystemBlockDefinition, type Theme } from '../../../blocks/src/index';
3
+ import { type SiteIconStyleGuideVersionId, type SystemBlockDefinition, type Theme } from '../../../blocks/src/index';
4
4
  import { type BlockActionControlMode } from './actionControlMode';
5
5
  import type { ReorderControlMode } from './reorderControlMode';
6
6
  import type { BlockItem, UiStore, DraftsSlice, ArrayKeysManager } from './types';
7
+ import { type GeneratedIconSetGenerateInput, type GeneratedIconSetGenerateResult, type GeneratedIconSetPreview } from './GeneratedIconSetDialog';
7
8
  /** Drag listener props from dnd-kit */
8
9
  type DragListeners = SyntheticListenerMap | undefined;
9
10
  type BlockCardHeaderStore = UiStore<{
10
11
  drafts: Pick<DraftsSlice, 'getBlockSnapshot' | 'getCurrentValues' | 'initNewBlock' | 'updateBlockBaseline' | 'clearError' | 'setAtPath' | 'getAtPath'>;
11
12
  arrayKeys: ArrayKeysManager;
12
13
  }>;
13
- export declare function BlockCardHeader({ block, manifest, isFirst, isLast, isMoving, onMove, onDuplicate, onDelete, dragListeners, canReorder, collapsed, onToggleCollapsed, contentId, uiStore, widgetOverrides, theme, hideThemeV2RawStyleFields, reorderControlMode, actionControlMode, }: {
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
15
  block: BlockItem;
15
16
  manifest: SystemBlockDefinition['manifest'];
16
17
  isFirst: boolean;
@@ -31,5 +32,10 @@ export declare function BlockCardHeader({ block, manifest, isFirst, isLast, isMo
31
32
  hideThemeV2RawStyleFields?: boolean;
32
33
  reorderControlMode?: ReorderControlMode;
33
34
  actionControlMode?: BlockActionControlMode;
35
+ currentStyleGuideVersionId?: SiteIconStyleGuideVersionId | null;
36
+ iconStyleGuideSummary?: string | null;
37
+ iconStyleGuideEditHref?: string | null;
38
+ onGenerateIconSet?: (input: GeneratedIconSetGenerateInput) => Promise<GeneratedIconSetGenerateResult>;
39
+ onApplyGeneratedIconSet?: (preview: GeneratedIconSetPreview) => GeneratedIconSetPreview | void | Promise<GeneratedIconSetPreview | void>;
34
40
  }): import("react/jsx-runtime").JSX.Element;
35
41
  export {};
@@ -0,0 +1,17 @@
1
+ import type { SiteIconStyleGuideVersionId } from '../../../blocks/src/index';
2
+ import type { BlockItem, DraftsSlice, UiStore } from './types';
3
+ import { type GeneratedIconSetGenerateInput, type GeneratedIconSetGenerateResult, type GeneratedIconSetPreview } from './GeneratedIconSetDialog';
4
+ type FeatureCardIconsPanelStore = UiStore<{
5
+ drafts: Pick<DraftsSlice, 'getCurrentValues' | 'setAtPath'>;
6
+ }>;
7
+ export declare function supportsFeatureCardIconActions(blockKind: string): boolean;
8
+ export declare function FeatureCardIconsPanel({ block, uiStore, currentStyleGuideVersionId, iconStyleGuideSummary, iconStyleGuideEditHref, onGenerateIconSet, onApplyGeneratedIconSet, }: {
9
+ block: BlockItem;
10
+ uiStore: FeatureCardIconsPanelStore;
11
+ currentStyleGuideVersionId?: SiteIconStyleGuideVersionId | null;
12
+ iconStyleGuideSummary?: string | null;
13
+ iconStyleGuideEditHref?: string | null;
14
+ onGenerateIconSet?: (input: GeneratedIconSetGenerateInput) => Promise<GeneratedIconSetGenerateResult>;
15
+ onApplyGeneratedIconSet?: (preview: GeneratedIconSetPreview) => GeneratedIconSetPreview | void | Promise<GeneratedIconSetPreview | void>;
16
+ }): import("react/jsx-runtime").JSX.Element | null;
17
+ export {};
@@ -0,0 +1,42 @@
1
+ import { type GeneratedBlockIconValue } from '../../../blocks/src/index';
2
+ import type { GeneratedIconSetCandidate } from '../../../api/src/index';
3
+ import type { FeatureCardIconDialogCard } from './featureCardIconActions';
4
+ export type GeneratedIconSetPreviewAsset = Readonly<{
5
+ cardKey: string;
6
+ title: string;
7
+ src: string;
8
+ iconValue: GeneratedBlockIconValue;
9
+ }>;
10
+ export type GeneratedIconSetPreview = Readonly<{
11
+ setId: string;
12
+ styleGuideSummary: string;
13
+ candidate?: GeneratedIconSetCandidate;
14
+ assets: readonly GeneratedIconSetPreviewAsset[];
15
+ }>;
16
+ export type GeneratedIconSetGenerateResult = Readonly<{
17
+ kind: 'preview_ready';
18
+ preview: GeneratedIconSetPreview;
19
+ }> | Readonly<{
20
+ kind: 'failed';
21
+ message: string;
22
+ }>;
23
+ export type GeneratedIconSetGenerateInput = Readonly<{
24
+ userStyleNote: string | null;
25
+ cards: readonly FeatureCardIconDialogCard[];
26
+ signal?: AbortSignal;
27
+ }>;
28
+ export type GeneratedIconSetApplyResult = Readonly<{
29
+ kind: 'applied';
30
+ }> | Readonly<{
31
+ kind: 'failed';
32
+ message: string;
33
+ }>;
34
+ export declare function GeneratedIconSetDialog({ open, onOpenChange, cards, styleGuideSummary, styleGuideEditHref, onGenerate, onApply, }: {
35
+ open: boolean;
36
+ onOpenChange: (open: boolean) => void;
37
+ cards: readonly FeatureCardIconDialogCard[];
38
+ styleGuideSummary?: string | null;
39
+ styleGuideEditHref?: string | null;
40
+ onGenerate?: (input: GeneratedIconSetGenerateInput) => Promise<GeneratedIconSetGenerateResult>;
41
+ onApply?: (preview: GeneratedIconSetPreview) => GeneratedIconSetApplyResult | void | Promise<GeneratedIconSetApplyResult | void>;
42
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import { type ComponentProps } from 'react';
2
- import { type Theme } from '../../../blocks/src/index';
2
+ import { type Theme, type SiteIconStyleGuideVersionId } from '../../../blocks/src/index';
3
3
  import type { PageDesignEditorBlock } from '../../../theme-core/src/site-styles/index';
4
4
  import type { BlockFocusRequest, BlockItem } from './types';
5
5
  import { type CustomBlockRegistryEntry, type SdkConfigForBlockPicker } from './sdkBlockMerger';
@@ -7,6 +7,7 @@ import { BlockCard } from './BlockCard';
7
7
  import type { FieldWidgetComponent } from '../../../block-form/src/client/index';
8
8
  import { type BlockActionControlMode } from './actionControlMode';
9
9
  import { type ReorderControlMode } from './reorderControlMode';
10
+ import type { GeneratedIconSetGenerateInput, GeneratedIconSetGenerateResult, GeneratedIconSetPreview } from './GeneratedIconSetDialog';
10
11
  export declare const SortableBlockItem: import("react").NamedExoticComponent<{
11
12
  siteId: string;
12
13
  block: BlockItem;
@@ -33,4 +34,9 @@ export declare const SortableBlockItem: import("react").NamedExoticComponent<{
33
34
  pageDesignBlock?: PageDesignEditorBlock | null;
34
35
  reorderControlMode?: ReorderControlMode;
35
36
  actionControlMode?: BlockActionControlMode;
37
+ currentStyleGuideVersionId?: SiteIconStyleGuideVersionId | null;
38
+ iconStyleGuideSummary?: string | null;
39
+ iconStyleGuideEditHref?: string | null;
40
+ onGenerateIconSet?: (input: GeneratedIconSetGenerateInput) => Promise<GeneratedIconSetGenerateResult>;
41
+ onApplyGeneratedIconSet?: (preview: GeneratedIconSetPreview) => GeneratedIconSetPreview | void | Promise<GeneratedIconSetPreview | void>;
36
42
  }>;
@@ -0,0 +1,82 @@
1
+ import { applyFeatureCardIconSuggestions, type GeneratedBlockIconValue, type FeatureCardIconInputContent, type SemanticIconId, type SiteIconStyleGuideVersionId } from '../../../blocks/src/index';
2
+ import { type EditorBlockId } from '../../../core/src/index';
3
+ import type { DraftsSlice } from './types';
4
+ type FeatureCardIconActionDrafts = Pick<DraftsSlice, 'setAtPath'>;
5
+ export type FeatureCardIconActionResult = {
6
+ kind: 'applied';
7
+ appliedCount: number;
8
+ } | {
9
+ kind: 'no_cards';
10
+ } | {
11
+ kind: 'complete';
12
+ } | {
13
+ kind: 'plan_failed';
14
+ reason: Exclude<ReturnType<typeof applyFeatureCardIconSuggestions>['kind'], 'applied'>;
15
+ cardKey?: string;
16
+ iconId?: string;
17
+ };
18
+ export type FeatureCardGeneratedIconSetAssetInput = Readonly<{
19
+ cardKey: string;
20
+ iconValue: unknown;
21
+ }>;
22
+ export type FeatureCardGeneratedIconSetApplyPlan = Readonly<{
23
+ kind: 'applied';
24
+ appliedIcons: readonly Readonly<{
25
+ cardIndex: number;
26
+ cardKey: string;
27
+ iconValue: GeneratedBlockIconValue;
28
+ }>[];
29
+ }> | Readonly<{
30
+ kind: 'duplicate_asset_card_key';
31
+ cardKey: string;
32
+ }> | Readonly<{
33
+ kind: 'missing_asset_card_key';
34
+ cardKey: string;
35
+ }> | Readonly<{
36
+ kind: 'unknown_card_key';
37
+ cardKey: string;
38
+ }> | Readonly<{
39
+ kind: 'invalid_generated_icon';
40
+ cardKey: string;
41
+ }>;
42
+ export type FeatureCardGeneratedIconSetActionResult = Readonly<{
43
+ kind: 'applied';
44
+ appliedCount: number;
45
+ }> | Readonly<{
46
+ kind: 'no_cards';
47
+ }> | Readonly<{
48
+ kind: 'plan_failed';
49
+ reason: Exclude<FeatureCardGeneratedIconSetApplyPlan['kind'], 'applied'>;
50
+ cardKey?: string;
51
+ }>;
52
+ export type FeatureCardIconDialogCard = Readonly<{
53
+ cardKey: string;
54
+ title: string;
55
+ bodyText: string;
56
+ semanticIconId: SemanticIconId;
57
+ }>;
58
+ export type FeatureCardGeneratedIconStyleSummary = Readonly<{
59
+ kind: 'unavailable';
60
+ }> | Readonly<{
61
+ kind: 'available';
62
+ generatedCount: number;
63
+ staleCount: number;
64
+ invalidGeneratedCount: number;
65
+ }>;
66
+ export declare function getFeatureCards(content: Record<string, unknown> | null | undefined): FeatureCardIconInputContent[];
67
+ export declare function getFeatureCardIconStatus(content: Record<string, unknown> | null | undefined): import("../../../blocks/src/index").FeatureCardIconCompletion;
68
+ export declare function getFeatureCardIconDialogCards(content: Record<string, unknown> | null | undefined): readonly FeatureCardIconDialogCard[];
69
+ export declare function getFeatureCardGeneratedIconStyleSummary(content: Record<string, unknown> | null | undefined, currentStyleGuideVersionId: SiteIconStyleGuideVersionId | null | undefined): FeatureCardGeneratedIconStyleSummary;
70
+ export declare function applyCuratedFeatureCardIconSuggestions({ blockId, content, drafts, }: {
71
+ blockId: EditorBlockId;
72
+ content: Record<string, unknown> | null | undefined;
73
+ drafts: FeatureCardIconActionDrafts;
74
+ }): FeatureCardIconActionResult;
75
+ export declare function planGeneratedFeatureCardIconSetApply(cards: readonly FeatureCardIconInputContent[], assets: readonly FeatureCardGeneratedIconSetAssetInput[]): FeatureCardGeneratedIconSetApplyPlan;
76
+ export declare function applyGeneratedFeatureCardIconSet({ blockId, content, drafts, assets, }: {
77
+ blockId: EditorBlockId;
78
+ content: Record<string, unknown> | null | undefined;
79
+ drafts: FeatureCardIconActionDrafts;
80
+ assets: readonly FeatureCardGeneratedIconSetAssetInput[];
81
+ }): FeatureCardGeneratedIconSetActionResult;
82
+ export {};
@@ -18,6 +18,8 @@ export type { BlockDraftSaveability, BlockDraftValidationIssue } from '../../blo
18
18
  export { applyManifestIssuesToForm } from './manifestIssues';
19
19
  export { BlockPickerDialog } from './block-editor/BlockPickerDialog';
20
20
  export { FileField, MediaField } from './media/MediaField';
21
+ export { hideThemeV2RawStyleFields, prepareBlockEditorManifest, } from './block-editor/preparedManifest';
22
+ export { stripTopLevelRoutingUi, } from './block-editor/settingsIntent';
21
23
  export * from './widgets/index';
22
24
  export { createBlockFormLogger, setBlockFormLoggerFactory, setBlockFormAppLogger } from './block-form/debug';
23
25
  export type { BlockFormLogger } from './block-form/debug';
@@ -1,4 +1,4 @@
1
1
  import { type FieldWidgetProps, type TextFieldConfig } from '../../../../block-form/src/client/index';
2
- type IconPickerValue = string | null;
2
+ type IconPickerValue = unknown;
3
3
  export declare function IconPickerField({ path, backend, config }: FieldWidgetProps<IconPickerValue, TextFieldConfig>): import("react/jsx-runtime").JSX.Element;
4
4
  export {};
@@ -61,6 +61,9 @@ export type FileUse = {
61
61
  } | {
62
62
  readonly tag: 'site-brand-asset';
63
63
  readonly brandUse: SiteBrandAssetUse;
64
+ } | {
65
+ readonly tag: 'site-background-asset';
66
+ readonly backgroundUse: SiteBackgroundAssetUse;
64
67
  } | {
65
68
  readonly tag: 'site-font-file';
66
69
  readonly fontId: SiteFontId;
@@ -71,10 +74,14 @@ export type FileUse = {
71
74
  export type FileUseTag = FileUse['tag'];
72
75
  export type WorkflowInputKind = 'audio-enrichment' | 'generic-file-processing';
73
76
  export type SiteBrandAssetUse = 'logo' | 'social-image';
77
+ export type AmbientBackgroundRole = 'light-texture' | 'proof-band-dark' | 'cta-wash' | 'footer-detail' | 'style-atmosphere-1' | 'style-atmosphere-2';
78
+ export type SiteBackgroundAssetUse = 'selected-background' | AmbientBackgroundRole;
74
79
  export type TemporaryIngestionKind = 'backup-zip' | 'newsletter-csv' | 'instagram-zip';
75
- export declare const FILE_USE_TAGS: readonly ["media-library", "content-download", "digital-product-file", "workflow-input", "booking-evidence", "site-brand-asset", "site-font-file", "temporary-ingestion"];
80
+ export declare const FILE_USE_TAGS: readonly ["media-library", "content-download", "digital-product-file", "workflow-input", "booking-evidence", "site-brand-asset", "site-background-asset", "site-font-file", "temporary-ingestion"];
76
81
  export declare const WORKFLOW_INPUT_KINDS: readonly ["audio-enrichment", "generic-file-processing"];
77
82
  export declare const SITE_BRAND_ASSET_USES: readonly ["logo", "social-image"];
83
+ export declare const AMBIENT_BACKGROUND_ROLES: readonly ["light-texture", "proof-band-dark", "cta-wash", "footer-detail", "style-atmosphere-1", "style-atmosphere-2"];
84
+ export declare const SITE_BACKGROUND_ASSET_USES: readonly ["selected-background", "light-texture", "proof-band-dark", "cta-wash", "footer-detail", "style-atmosphere-1", "style-atmosphere-2"];
78
85
  export declare const TEMPORARY_INGESTION_KINDS: readonly ["backup-zip", "newsletter-csv", "instagram-zip"];
79
86
  export type UploadIntent = {
80
87
  readonly tag: 'media-library';
@@ -1,4 +1,4 @@
1
- import type { MediaKind } from '@riverbankcms/media-storage-supabase';
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
4
  import type { MediaValue } from './types';
@@ -21,8 +21,9 @@ export type MediaEditorProps = {
21
21
  showRemoveAction?: boolean;
22
22
  previewMaxWidth?: 'xs' | 'sm' | 'md' | 'none';
23
23
  preventPreviewUpscale?: boolean;
24
+ onUploadComplete?: (asset: MediaAssetWithLabels) => void;
24
25
  uploadIntent?: UploadIntentResolver;
25
26
  videoPrepIntent?: VideoPrepIntentResolver;
26
27
  videoSelectionIntent?: VideoPrepIntent;
27
28
  };
28
- export declare const MediaEditor: ({ value, onChange, allowedKinds, previewAspectRatio, minSourceWidth, minSourceHeight, showAltInput, cropEditorMode, cropEditorAutoOpen, mediaPickerAutoOpen, showPreview, showActionOverlay, onEditDetails, fullWidth, previewVariant, showRemoveAction, previewMaxWidth, preventPreviewUpscale, uploadIntent, videoPrepIntent, videoSelectionIntent, }: MediaEditorProps) => import("react/jsx-runtime").JSX.Element;
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;