@riverbankcms/sdk 0.103.0 → 0.104.1

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 (156) hide show
  1. package/dist/{PreviewEditorSidebar-DkNpCPja.mjs → PreviewEditorSidebar-CmaPXdKu.mjs} +148 -128
  2. package/dist/{PreviewEditorUI-DeNKtqk3.mjs → PreviewEditorUI-C5xRTh2b.mjs} +3 -3
  3. package/dist/{PreviewQueryProvider-ZF6TXq5Q.mjs → PreviewQueryProvider-CStABBUh.mjs} +1 -1
  4. package/dist/{SdkPreviewModeRuntime-5bCsXK2y.mjs → SdkPreviewModeRuntime-Eks51NcN.mjs} +1204 -566
  5. package/dist/{SiteChromeCustomizeContext-CO1sTK_W.mjs → SiteChromeCustomizeContext-Bt8zb3qu.mjs} +5330 -4533
  6. package/dist/_dts/api/src/bookingVerticals.d.ts +64 -1
  7. package/dist/_dts/api/src/contentRuntime.d.ts +6 -3
  8. package/dist/_dts/api/src/endpoints.d.ts +10 -3
  9. package/dist/_dts/api/src/index.d.ts +1 -1
  10. package/dist/_dts/api/src/siteIcons.d.ts +39 -43
  11. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +3 -3
  12. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +36 -7
  13. package/dist/_dts/block-form/src/widgets/SliderField/SliderField.d.ts +3 -3
  14. package/dist/_dts/block-form/src/widgets/SliderField/sliderValue.d.ts +36 -0
  15. package/dist/_dts/block-form/src/widgets/utils/readNumericUiConfig.d.ts +3 -0
  16. package/dist/_dts/blocks/src/index.d.ts +1 -1
  17. package/dist/_dts/blocks/src/system/blocks/feature-card-icons.d.ts +29 -29
  18. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +1 -0
  19. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -0
  20. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +135 -0
  21. package/dist/_dts/blocks/src/system/icons/generatedAssets.d.ts +28 -0
  22. package/dist/_dts/blocks/src/system/icons/index.d.ts +1 -0
  23. package/dist/_dts/blocks/src/system/icons/value.d.ts +3 -6
  24. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +240 -0
  25. package/dist/_dts/blocks/src/system/runtime/nodes/feature-card-icon.d.ts +1 -0
  26. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +2 -0
  27. package/dist/_dts/content-editor/src/ui/stores/generatedIconAssetsStore.d.ts +9 -0
  28. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +208 -0
  29. package/dist/_dts/editor/src/index.d.ts +3 -1
  30. package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +14 -6
  31. package/dist/_dts/editor/src/primitives/rich-text/RichTextToolbar.d.ts +23 -4
  32. package/dist/_dts/editor/src/primitives/rich-text/config.d.ts +6 -0
  33. package/dist/_dts/editor/src/primitives/rich-text/extensions/RichTextLink.d.ts +1 -0
  34. package/dist/_dts/editor/src/primitives/rich-text/paste.d.ts +10 -0
  35. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +7 -0
  36. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +2 -1
  37. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +4 -4
  38. package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +2 -3
  39. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +4 -4
  40. package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +4 -4
  41. package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +3 -3
  42. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -3
  43. package/dist/_dts/editor-blocks/src/block-editor/blockHeaderActionPlan.d.ts +1 -5
  44. package/dist/_dts/editor-blocks/src/block-editor/featureCardIconActions.d.ts +25 -19
  45. package/dist/_dts/editor-blocks/src/block-editor/generatedIconApplyCoordination.d.ts +32 -0
  46. package/dist/_dts/editor-blocks/src/widgets/icon-picker/GeneratedIconLibraryContext.d.ts +28 -0
  47. package/dist/_dts/editor-blocks/src/widgets/icon-picker/index.d.ts +2 -0
  48. package/dist/_dts/editor-blocks/src/widgets/icon-picker/loaders.d.ts +7 -0
  49. package/dist/_dts/preview-next/src/client/preview/CustomizeBackgroundControlRows.d.ts +15 -0
  50. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +2 -1
  51. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +2 -1
  52. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -1
  53. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +4 -3
  54. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +4 -3
  55. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +4 -3
  56. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +3 -4
  57. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +5 -4
  58. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +44 -18
  59. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +4 -5
  60. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +22 -1
  61. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +12 -4
  62. package/dist/_dts/sdk/src/client/management/types.d.ts +3 -0
  63. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +0 -1
  64. package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -2
  65. package/dist/_dts/sdk/src/version.d.ts +1 -1
  66. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  67. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +9 -9
  68. package/dist/_dts/theme-core/src/navigation/types.d.ts +2 -0
  69. package/dist/_dts/theme-core/src/palette/colors.d.ts +84 -0
  70. package/dist/_dts/theme-core/src/palette/{variants → curated}/brand-led.d.ts +12 -24
  71. package/dist/_dts/theme-core/src/palette/{variants → curated}/high-contrast.d.ts +9 -18
  72. package/dist/_dts/theme-core/src/palette/{variants → curated}/index.d.ts +67 -119
  73. package/dist/_dts/theme-core/src/palette/{variants → curated}/soft-natural.d.ts +12 -24
  74. package/dist/_dts/theme-core/src/palette/{variants → curated}/types.d.ts +50 -60
  75. package/dist/_dts/theme-core/src/palette/{variants → curated}/warm-dark.d.ts +6 -12
  76. package/dist/_dts/theme-core/src/palette/{variants → curated}/warm-neutral.d.ts +12 -24
  77. package/dist/_dts/theme-core/src/palette/editorState.d.ts +45 -0
  78. package/dist/_dts/theme-core/src/palette/index.d.ts +25 -14
  79. package/dist/_dts/theme-core/src/palette/legacyRuntimeProjection.d.ts +55 -0
  80. package/dist/_dts/theme-core/src/palette/legacySelection.d.ts +34 -0
  81. package/dist/_dts/theme-core/src/palette/libraryModel.d.ts +58 -0
  82. package/dist/_dts/theme-core/src/palette/paletteCompatibilityTransition.d.ts +232 -0
  83. package/dist/_dts/theme-core/src/palette/persistenceReadSource.d.ts +118 -0
  84. package/dist/_dts/theme-core/src/palette/resolveSelection.d.ts +50 -0
  85. package/dist/_dts/theme-core/src/palette/selection.d.ts +72 -0
  86. package/dist/_dts/theme-core/src/palette/sitePalettePersistence.d.ts +34 -0
  87. package/dist/_dts/theme-core/src/palette/themePaletteCompatibility.d.ts +58 -0
  88. package/dist/_dts/theme-core/src/schema.d.ts +9 -0
  89. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +22 -22
  90. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  91. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +31 -9
  92. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +22 -16
  93. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +6 -5
  94. package/dist/_dts/theme-core/src/site-styles/themeParity.d.ts +21 -0
  95. package/dist/_dts/ui/src/palette/PaletteTokenEditor.d.ts +2 -1
  96. package/dist/cli/index.mjs +7805 -7449
  97. package/dist/client/{DiscountCodeDisclosure-ChVZwVtS.mjs → DiscountCodeDisclosure-Dit2aItR.mjs} +1 -1
  98. package/dist/client/{EventCombined.client-PZtXbH6R.mjs → EventCombined.client-BnREyCjf.mjs} +3 -3
  99. package/dist/client/{EventListing.client-C4AMTXec.mjs → EventListing.client-0uHld51x.mjs} +2 -2
  100. package/dist/client/{LeafletStaticMap-B0w8_i0u.mjs → LeafletStaticMap-DJcvSfmj.mjs} +1 -1
  101. package/dist/client/{MagicLinkForm-DF0ZGhIu.mjs → MagicLinkForm-EAsIktfw.mjs} +2 -2
  102. package/dist/client/{StepIndicator-PccQ89Ct.mjs → StepIndicator-CRR17tYI.mjs} +2 -2
  103. package/dist/client/{accordion-CTNWT1lk.mjs → accordion-B47HIuuH.mjs} +1 -1
  104. package/dist/client/{bookingForm-DYixwPqP.mjs → bookingForm-I1E-8F9P.mjs} +6 -6
  105. package/dist/client/{buttons-CySQwlFs.mjs → buttons-BbPn8OKA.mjs} +1 -1
  106. package/dist/client/{carousel-W75iYR0M.mjs → carousel-OlM7SyBs.mjs} +1 -1
  107. package/dist/client/{cart-Ca_DGWQq.mjs → cart-BKpG5jz6.mjs} +3 -3
  108. package/dist/client/{checkout-STgKTsNh.mjs → checkout-Dmmr6qoU.mjs} +3 -3
  109. package/dist/client/client.mjs +8706 -8320
  110. package/dist/client/{courseRegistration-DQI1cu1u.mjs → courseRegistration-CflZiqGk.mjs} +7 -7
  111. package/dist/client/{eventCalendar-BJrHpofg.mjs → eventCalendar-BvoLWcp-.mjs} +5 -5
  112. package/dist/client/{eventCombined-DPtqBHaH.mjs → eventCombined-DsrO8t_t.mjs} +2 -2
  113. package/dist/client/{eventDetails-Brt31CDo.mjs → eventDetails-C3hxgcJm.mjs} +3 -3
  114. package/dist/client/{eventListing-BrClHJOq.mjs → eventListing-C-hb237X.mjs} +2 -2
  115. package/dist/client/{eventRegistration-DxlNlVUC.mjs → eventRegistration-B0gyzDGi.mjs} +7 -7
  116. package/dist/client/{form-Vp5cGzDF.mjs → form-C_RUi6oJ.mjs} +2 -2
  117. package/dist/client/{headerSection-DL2xjRgW.mjs → headerSection-IKQiD2U0.mjs} +3 -3
  118. package/dist/client/hooks.mjs +4845 -4663
  119. package/dist/client/{locationMap-B0EjoXQS.mjs → locationMap-8ZBrMzRJ.mjs} +2 -2
  120. package/dist/client/{newsletterForm-BlV9VRlq.mjs → newsletterForm-CYk3ucwj.mjs} +2 -2
  121. package/dist/client/{pricing-DmRD7Tjx.mjs → pricing-B5GmvfIH.mjs} +1 -1
  122. package/dist/client/{productDetail-BLTQsY2f.mjs → productDetail-BjS2Dqzo.mjs} +3 -3
  123. package/dist/client/{productList-R8lsMpRs.mjs → productList-BOHvC8My.mjs} +3 -3
  124. package/dist/client/{propsDecoder-DgAshF92.mjs → propsDecoder-WS6UEJwZ.mjs} +7 -0
  125. package/dist/client/rendering/client.mjs +3606 -3281
  126. package/dist/client/rendering/islands.mjs +18 -18
  127. package/dist/client/rendering.mjs +8569 -8190
  128. package/dist/client/{shop-DWjyje1s.mjs → shop-CON03-wN.mjs} +6 -6
  129. package/dist/client/{shop-commerce-CSKCR87d.mjs → shop-commerce-DlqrFgH8.mjs} +5 -5
  130. package/dist/client/{shop-commerce-store-DxPnE-iN.mjs → shop-commerce-store-l74-Kne6.mjs} +1 -1
  131. package/dist/client/{shopShared-OOeAkFq7.mjs → shopShared-CQheEXSg.mjs} +2 -2
  132. package/dist/client/{useDiscountCodeUi-Bp6X7XgG.mjs → useDiscountCodeUi-v6OluyWl.mjs} +1 -1
  133. package/dist/client/{useEventFilters-B489x9TO.mjs → useEventFilters-BqSTcNOf.mjs} +3 -3
  134. package/dist/client/{usePolling-BKP66stL.mjs → usePolling-DMfADjIF.mjs} +2 -2
  135. package/dist/preview-next/before-render.mjs +10 -3
  136. package/dist/preview-next/client/runtime.mjs +4 -4
  137. package/dist/preview-next/middleware.mjs +10 -3
  138. package/dist/{previewAuthStore-ByPPZqmp.mjs → previewAuthStore-CfquDtTh.mjs} +10 -3
  139. package/dist/{sdk-runtime-C8whifOy.mjs → sdk-runtime-BUmJ0DaT.mjs} +2 -2
  140. package/dist/{separator-CM2C5Axs.mjs → separator-Dd-JYok7.mjs} +1 -1
  141. package/dist/server/components.mjs +9871 -9557
  142. package/dist/server/config-validation.mjs +4869 -4687
  143. package/dist/server/config.mjs +4869 -4687
  144. package/dist/server/data.mjs +4846 -4664
  145. package/dist/server/index.mjs +11 -4
  146. package/dist/server/next.mjs +8665 -8344
  147. package/dist/server/page-converter.mjs +4749 -4575
  148. package/dist/server/prebuild.mjs +1 -1
  149. package/dist/server/rendering/server.mjs +9816 -9586
  150. package/dist/server/rendering.mjs +9880 -9566
  151. package/dist/server/routing.mjs +4975 -4704
  152. package/dist/server/server.mjs +4819 -4630
  153. package/dist/server/theme-bridge.mjs +207 -114
  154. package/dist/server/theme.mjs +92 -91
  155. package/dist/styles/index.css +20 -0
  156. package/package.json +1 -1
@@ -5,7 +5,7 @@ export declare const BOOKING_ENGINES: readonly ["event_series", "course", "appoi
5
5
  export type BookingEngine = (typeof BOOKING_ENGINES)[number];
6
6
  export declare const VERTICAL_PRESET_AVAILABILITIES: readonly ["onboarding", "settings", "future"];
7
7
  export type VerticalPresetAvailability = (typeof VERTICAL_PRESET_AVAILABILITIES)[number];
8
- export declare const VERTICAL_IDS: readonly ["yoga_wellness", "fitness_pt", "dance_school", "therapist_practitioner", "beauty_spa", "consultant_coach", "training_provider", "retreat_centre", "music_school", "voice_singing", "performing_arts_school", "community_wellbeing", "venue_event_space"];
8
+ export declare const VERTICAL_IDS: readonly ["yoga_wellness", "fitness_pt", "dance_school", "physiotherapy_physical_health", "massage_bodywork", "therapist_practitioner", "beauty_spa", "consultant_coach", "training_provider", "retreat_centre", "music_school", "voice_singing", "performing_arts_school", "community_wellbeing", "venue_event_space"];
9
9
  export type VerticalId = (typeof VERTICAL_IDS)[number];
10
10
  export type EventSeriesCanonicalBehaviour = Extract<CanonicalBookingBehaviour, 'class' | 'workshop' | 'retreat' | 'performance'>;
11
11
  export declare const EVENT_SERIES_BEHAVIOURS: readonly ["class", "workshop", "retreat", "performance"];
@@ -133,6 +133,14 @@ export declare const VERTICAL_DEFINITIONS: readonly [{
133
133
  readonly id: "dance_school";
134
134
  readonly label: "Dance school";
135
135
  readonly description: "Dance classes, terms, workshops, private lessons, and shows.";
136
+ }, {
137
+ readonly id: "physiotherapy_physical_health";
138
+ readonly label: "Physiotherapy & physical health";
139
+ readonly description: "Physiotherapists, chiropractors, osteopaths, sports therapists, and rehabilitation practitioners.";
140
+ }, {
141
+ readonly id: "massage_bodywork";
142
+ readonly label: "Massage & bodywork";
143
+ readonly description: "Massage therapists, bodyworkers, and somatic practitioners.";
136
144
  }, {
137
145
  readonly id: "therapist_practitioner";
138
146
  readonly label: "Therapist or practitioner";
@@ -311,6 +319,60 @@ export declare const VERTICAL_BOOKING_PRESETS: readonly [Readonly<{
311
319
  label: string;
312
320
  pluralLabel: string;
313
321
  description: string;
322
+ }>, Readonly<{
323
+ id: "physiotherapy_physical_health.appointments";
324
+ verticalId: VerticalId;
325
+ canonicalBehaviour: CanonicalBookingBehaviour;
326
+ engine: BookingEngine;
327
+ availability: VerticalPresetAvailability;
328
+ label: string;
329
+ pluralLabel: string;
330
+ description: string;
331
+ }>, Readonly<{
332
+ id: "physiotherapy_physical_health.rehab_classes";
333
+ verticalId: VerticalId;
334
+ canonicalBehaviour: CanonicalBookingBehaviour;
335
+ engine: BookingEngine;
336
+ availability: VerticalPresetAvailability;
337
+ label: string;
338
+ pluralLabel: string;
339
+ description: string;
340
+ }>, Readonly<{
341
+ id: "physiotherapy_physical_health.workshops";
342
+ verticalId: VerticalId;
343
+ canonicalBehaviour: CanonicalBookingBehaviour;
344
+ engine: BookingEngine;
345
+ availability: VerticalPresetAvailability;
346
+ label: string;
347
+ pluralLabel: string;
348
+ description: string;
349
+ }>, Readonly<{
350
+ id: "massage_bodywork.treatments";
351
+ verticalId: VerticalId;
352
+ canonicalBehaviour: CanonicalBookingBehaviour;
353
+ engine: BookingEngine;
354
+ availability: VerticalPresetAvailability;
355
+ label: string;
356
+ pluralLabel: string;
357
+ description: string;
358
+ }>, Readonly<{
359
+ id: "massage_bodywork.group_sessions";
360
+ verticalId: VerticalId;
361
+ canonicalBehaviour: CanonicalBookingBehaviour;
362
+ engine: BookingEngine;
363
+ availability: VerticalPresetAvailability;
364
+ label: string;
365
+ pluralLabel: string;
366
+ description: string;
367
+ }>, Readonly<{
368
+ id: "massage_bodywork.workshops";
369
+ verticalId: VerticalId;
370
+ canonicalBehaviour: CanonicalBookingBehaviour;
371
+ engine: BookingEngine;
372
+ availability: VerticalPresetAvailability;
373
+ label: string;
374
+ pluralLabel: string;
375
+ description: string;
314
376
  }>, Readonly<{
315
377
  id: "therapist_practitioner.appointments";
316
378
  verticalId: VerticalId;
@@ -696,6 +758,7 @@ export declare function getVerticalPresetsForVertical(verticalId: VerticalId, op
696
758
  availability?: VerticalPresetAvailability | 'selectable';
697
759
  }>): readonly VerticalBookingPresetDefinition[];
698
760
  export declare function getOnboardingPresetsForVertical(verticalId: VerticalId): readonly VerticalBookingPresetDefinition[];
761
+ export declare function getDefaultOnboardingPresetForVertical(verticalId: VerticalId): VerticalBookingPresetDefinition | null;
699
762
  export declare function isEventSeriesCanonicalBehaviour(behaviour: CanonicalBookingBehaviour): behaviour is EventSeriesCanonicalBehaviour;
700
763
  export declare function isEventSeriesVerticalPresetDefinition(presetDefinition: VerticalBookingPresetDefinition): presetDefinition is EventSeriesVerticalPresetDefinition;
701
764
  export declare function canonicalBehaviourToEventPreset(behaviour: EventSeriesCanonicalBehaviour): EventSeriesCanonicalBehaviour;
@@ -1,5 +1,6 @@
1
1
  import type { Block, SdkCustomBlock, SdkCustomBlockInput, SiteFont, Theme } from '../../blocks/src/index';
2
2
  import type { CamelizeKeys, DbRow } from '../../db/src/index';
3
+ import type { CuratedPaletteId, PaletteOverrides, RuntimePaletteState } from '../../theme-core/src/palette/index';
3
4
  import type { ContentTypeRoutingInfo, PublicContentTypeMeta } from './contentTypes';
4
5
  import type { SiteRuntimePrivacyPolicy } from './privacyPolicy';
5
6
  import type { SitePagePayload } from './sitePages';
@@ -357,10 +358,12 @@ export type SiteBySlugResponse = {
357
358
  * Persisted Style configurator selections (Phase C). Optional so legacy
358
359
  * site_theme_selections rows (pre-migration) still satisfy the response
359
360
  * type — consumers fall back to the site style's defaults when null.
360
- */
361
+ */
361
362
  selectionButtonPersonalityId?: string | null;
362
- selectionPaletteVariantId?: string | null;
363
- selectionPaletteOverrides?: Record<string, string> | null;
363
+ runtimePaletteState?: RuntimePaletteState | null;
364
+ /** Temporary legacy compatibility projection for stale runtime clients. */
365
+ selectionPaletteVariantId?: CuratedPaletteId | null;
366
+ selectionPaletteOverrides?: PaletteOverrides | null;
364
367
  selectionHeaderLayoutId?: string | null;
365
368
  selectionHeaderStyleId?: string | null;
366
369
  selectionTypographyPresetId?: string | null;
@@ -1920,9 +1920,9 @@ export declare const API_ENDPOINTS: {
1920
1920
  readonly responseKind: "json";
1921
1921
  readonly errors: readonly [];
1922
1922
  };
1923
- readonly applyGeneratedIconSet: {
1924
- readonly path: "/sites/{siteId}/ai/generated-icons/apply";
1925
- readonly method: "POST";
1923
+ readonly listGeneratedIconSets: {
1924
+ readonly path: "/sites/{siteId}/generated-icons";
1925
+ readonly method: "GET";
1926
1926
  readonly tags: ["riverbank:site:{siteId}", "riverbank:site:{siteId}:settings"];
1927
1927
  readonly auth: "user";
1928
1928
  readonly responseKind: "json";
@@ -4684,6 +4684,13 @@ export declare const API_ENDPOINTS: {
4684
4684
  readonly auth: "user";
4685
4685
  readonly responseKind: "json";
4686
4686
  };
4687
+ readonly listSiteThemePalettes: {
4688
+ readonly path: "/sites/{siteId}/theme/palettes";
4689
+ readonly method: "GET";
4690
+ readonly auth: "user";
4691
+ readonly errors: readonly [];
4692
+ readonly responseKind: "json";
4693
+ };
4687
4694
  readonly createSiteFontUploadUrl: {
4688
4695
  readonly path: "/sites/{siteId}/fonts/upload-url";
4689
4696
  readonly method: "POST";
@@ -15,7 +15,7 @@ export type { DiscountsAvailableResponse, NewsletterSubscribeTarget, NewsletterS
15
15
  export { PUBLIC_EVENT_TICKET_SELECTION_CONTRACT_VERSION } from "./publicExperienceEndpoints";
16
16
  export type { ListMailchimpAudiencesResponse, MailchimpAudienceId, MailchimpAudienceCompatibilityIssue, MailchimpAudienceReferenceItem, MailchimpConnectionId, MailchimpIntegrationConnectionStatus, MailchimpIntegrationReauthReason, MailchimpOAuthReturnIntent, MailchimpSignupSyncHealthCounts, MailchimpSignupSyncHealthErrorCategory, MailchimpSignupSyncHealthGroup, MailchimpSignupSyncHealthResponse, MailchimpSignupSyncHealthState, MailchimpSignupSourceBlockId, StartMailchimpOAuthRequest, StartMailchimpOAuthResponse, } from "./mailchimpIntegration";
17
17
  export { parseMailchimpAudienceId, parseMailchimpConnectionId, } from "./mailchimpIntegration";
18
- export type { GeneratedIconSetApplyRequest, GeneratedIconSetApplyResponse, GeneratedIconSetCandidate, GeneratedIconSetGenerateRequest, GeneratedIconSetGenerateResponse, GeneratedIconRenderAsset, GeneratedIconRenderAssetRef, GeneratedIconRenderAssetsRequest, GeneratedIconRenderAssetsResponse, SiteIconStyleGuidePayload, SiteIconStyleGuideResponse, SiteIconStyleStrokeRule, SiteIconStyleGuideUpdateRequest, } from "./siteIcons";
18
+ export type { GeneratedIconSetCardRequest, GeneratedIconSetGenerateRequest, GeneratedIconSetGenerateResponse, GeneratedIconSetListRequest, GeneratedIconSetListResponse, GeneratedIconLibraryAsset, GeneratedIconLibrarySet, GeneratedIconRenderAsset, GeneratedIconRenderAssetRef, GeneratedIconRenderAssetsRequest, GeneratedIconRenderAssetsResponse, SiteIconStyleGuidePayload, SiteIconStyleGuideResponse, SiteIconStyleStrokeRule, SiteIconStyleGuideUpdateRequest, } from "./siteIcons";
19
19
  export { DEFAULT_LAUNCH_READINESS_INPUT, deriveLaunchReadiness, } from "./launchReadiness";
20
20
  export { getDashboardBaseUrl, getDashboardUrl, getAbsoluteDashboardUrl, getCmsApiUrl, resolveApiBaseUrl, normalizeDashboardOrigin, deriveCmsApiUrlFromDashboardUrl, } from "./url";
21
21
  export { API_ERROR_CODES, ApiEnvelopeError, extractApiEnvelopeErrorDetails, isApiErrorCode, unwrapResponse, } from "./common/envelope";
@@ -9,7 +9,6 @@ export type BlockIconValue = {
9
9
  kind: "generated";
10
10
  setId: string;
11
11
  assetId: string;
12
- semanticFallbackIconId: SemanticIconId;
13
12
  styleGuideVersionId: string;
14
13
  };
15
14
  export type SiteIconStyleGuidePayload = {
@@ -59,34 +58,46 @@ export type GeneratedIconSetGenerateRequest = {
59
58
  cards: GeneratedIconSetCardRequest[];
60
59
  userStyleNote?: string | null;
61
60
  };
62
- export type GeneratedIconSetPreviewAsset = {
63
- cardKey: string;
61
+ export type GeneratedIconRenderAssetRef = {
62
+ setId: string;
63
+ assetId: string;
64
+ };
65
+ export type GeneratedIconRenderAsset = GeneratedIconRenderAssetRef & {
64
66
  src: string;
65
- width: number;
66
- height: number;
67
- iconValue: BlockIconValue;
67
+ width?: number;
68
+ height?: number;
68
69
  };
69
- export type GeneratedIconSetCandidateAsset = {
70
+ type GeneratedIconLibraryAssetBase = {
70
71
  cardKey: string;
71
- mimeType: "image/png" | "image/webp";
72
- width: number;
73
- height: number;
74
- byteLength: number;
75
- bytesBase64: string;
72
+ subjectLabel: string;
73
+ iconValue: BlockIconValue;
76
74
  };
77
- export type GeneratedIconSetCandidate = {
75
+ export type GeneratedIconLibraryAsset = GeneratedIconLibraryAssetBase & ({
76
+ availability: "available";
77
+ mediaAssetId: string;
78
+ renderAsset: GeneratedIconRenderAsset;
79
+ } | {
80
+ availability: "unavailable";
81
+ mediaAssetId: string | null;
82
+ renderAsset: null;
83
+ });
84
+ export type GeneratedIconLibrarySet = {
78
85
  setId: string;
79
86
  blockKind: string;
80
87
  blockLabel: string;
81
88
  userStyleNote: string | null;
82
89
  styleGuideVersionId: string;
83
- styleGuideSourceFingerprint: string;
84
- prompt: string;
85
- promptFingerprint: string;
86
- providerName: string;
87
- modelId: string;
88
- cards: GeneratedIconSetCardRequest[];
89
- assets: GeneratedIconSetCandidateAsset[];
90
+ sourceContentFingerprint: string | null;
91
+ sourceFingerprintVersion: number | null;
92
+ sourceCards: GeneratedIconSetCardRequest[] | null;
93
+ createdAt: string;
94
+ styleFreshness: {
95
+ kind: "current";
96
+ } | {
97
+ kind: "older_style";
98
+ currentStyleGuideVersionId: string;
99
+ };
100
+ assets: GeneratedIconLibraryAsset[];
90
101
  };
91
102
  export type GeneratedIconSetGenerateResponse = {
92
103
  styleGuide: {
@@ -94,35 +105,20 @@ export type GeneratedIconSetGenerateResponse = {
94
105
  sourceFingerprint: string;
95
106
  displaySummary: string;
96
107
  };
97
- candidate: GeneratedIconSetCandidate;
98
- preview: {
99
- assets: GeneratedIconSetPreviewAsset[];
100
- };
101
- };
102
- export type GeneratedIconSetApplyRequest = {
103
- candidate: GeneratedIconSetCandidate;
108
+ set: GeneratedIconLibrarySet;
104
109
  };
105
- export type GeneratedIconSetApplyResponse = {
106
- setId: string;
107
- styleGuideVersionId: string;
108
- assets: Array<{
109
- cardKey: string;
110
- mediaAssetId: string;
111
- iconValue: BlockIconValue;
112
- }>;
110
+ export type GeneratedIconSetListRequest = {
111
+ cursor?: string;
112
+ limit?: string;
113
113
  };
114
- export type GeneratedIconRenderAssetRef = {
115
- setId: string;
116
- assetId: string;
114
+ export type GeneratedIconSetListResponse = {
115
+ sets: GeneratedIconLibrarySet[];
116
+ nextCursor: string | null;
117
117
  };
118
118
  export type GeneratedIconRenderAssetsRequest = {
119
119
  refs: GeneratedIconRenderAssetRef[];
120
120
  };
121
- export type GeneratedIconRenderAsset = GeneratedIconRenderAssetRef & {
122
- src: string;
123
- width?: number;
124
- height?: number;
125
- };
126
121
  export type GeneratedIconRenderAssetsResponse = {
127
122
  assets: GeneratedIconRenderAsset[];
128
123
  };
124
+ export {};
@@ -12,7 +12,7 @@ import type { LinkPayload, RoutableContentItem, SitemapRouteItem } from "./navig
12
12
  import type { RouteMetadataPayload, RouteMetadataResponse } from "./routes";
13
13
  import type { SiteAnalyticsSettingsPayload, SiteAnalyticsSettingsResponse } from "./siteAnalytics";
14
14
  import type { SiteBannerSettingsPayload, SiteBannerSettingsResponse } from "./siteBanner";
15
- import type { GeneratedIconSetApplyRequest, GeneratedIconSetApplyResponse, GeneratedIconSetGenerateRequest, GeneratedIconSetGenerateResponse, SiteIconStyleGuideResponse, SiteIconStyleGuideUpdateRequest } from "./siteIcons";
15
+ import type { GeneratedIconSetGenerateRequest, GeneratedIconSetGenerateResponse, GeneratedIconSetListRequest, GeneratedIconSetListResponse, SiteIconStyleGuideResponse, SiteIconStyleGuideUpdateRequest } from "./siteIcons";
16
16
  import type { AiBrandGuidelinesGenerateRequest, AiBrandGuidelinesGenerateResponse, AiBrandGuidelinesGenerationContextResponse, SiteAiBrandGuidelinesPayload, SiteAiBrandGuidelinesResponse, SiteAiProfilePayload, SiteAiProfileResponse, SiteGenerationIntakePayload, SiteGenerationIntakeResponse } from "./siteOnboarding";
17
17
  import type { SitePrivacySettingsPayload, SitePrivacySettingsResponse } from "./privacyPolicy";
18
18
  import type { MaintenanceSettingsPayload, MaintenanceSettingsResponse, SiteBusinessAddressPayload, SiteBusinessAddressResponse, SiteFooterBlocksEditorResponse, SiteGeneralSettingsPayload, SiteGeneralSettingsResponse, SiteLayoutSettingsPayload, SiteLayoutSettingsResponse, UpdateSiteDeploymentModePayload, UpdateSiteDeploymentModeResponse, UpdateSiteFooterBlocksPayload, UpdateSiteFooterBlocksResponse } from "./siteSettings";
@@ -509,9 +509,9 @@ export type SiteManagementAPIEndpoints = {
509
509
  generateGeneratedIconSet: APIEndpoint<GeneratedIconSetGenerateRequest, {
510
510
  siteId: string;
511
511
  }, GeneratedIconSetGenerateResponse>;
512
- applyGeneratedIconSet: APIEndpoint<GeneratedIconSetApplyRequest, {
512
+ listGeneratedIconSets: APIEndpoint<never, {
513
513
  siteId: string;
514
- }, GeneratedIconSetApplyResponse>;
514
+ } & GeneratedIconSetListRequest, GeneratedIconSetListResponse>;
515
515
  getSiteAiProfile: APIEndpoint<never, {
516
516
  siteId: string;
517
517
  }, SiteAiProfileResponse>;
@@ -3,7 +3,7 @@ import type { ListMediaAssetsResult, MediaAssetWithLabels } from '@riverbankcms/
3
3
  import type { DbJson } from '../../db/src/index';
4
4
  import type { PageDesignEditorReadModel, PageDesignIntent, AppearancePresetId, BoundaryOptionId, DesignBlockId, FooterLookId, HeaderLayoutId, HeaderLookId, HeaderStyleId, LayoutVariantKey, SiteStyleId, TypographyPresetId } from '../../theme-core/src/site-styles/index';
5
5
  import type { ButtonPersonalityId } from '../../theme-core/src/buttons/index';
6
- import type { PaletteOverrides, PaletteVariantId } from '../../theme-core/src/palette/index';
6
+ import type { PaletteCommand, PaletteOverrides, PaletteSelection, CuratedPaletteId } from '../../theme-core/src/palette/index';
7
7
  import type { APIEndpoint } from './apiEndpointTypes';
8
8
  import type { AnalyticsReportQuery, AnalyticsReportResponse } from './analytics';
9
9
  import type { CreateMediaAssetBody, MediaAssetResponse, MediaAssetFileFilterContract, MediaBulkDeleteResponse, MediaClassifyJobResponse, MediaJobSummaryResponse, MediaLabelSummary, MediaSettingsResponse } from './media';
@@ -21,7 +21,7 @@ import type { DevToolsGetSiteRoleDowngradeQuery, DevToolsImpersonationResponse,
21
21
  */
22
22
  export type SiteThemeSelectionsPayload = {
23
23
  buttonPersonalityId?: ButtonPersonalityId | null;
24
- paletteVariantId?: PaletteVariantId | null;
24
+ paletteVariantId?: CuratedPaletteId | null;
25
25
  paletteOverrides?: PaletteOverrides | null;
26
26
  headerLayoutId?: HeaderLayoutId | null;
27
27
  headerStyleId?: HeaderStyleId | null;
@@ -31,11 +31,9 @@ export type SiteThemeSelectionsPayload = {
31
31
  headerLookId?: HeaderLookId | null;
32
32
  footerLookId?: FooterLookId | null;
33
33
  };
34
- export type ApplySiteStyleSelectionBody = Readonly<{
34
+ type ApplySiteStyleSelectionCommonBody = Readonly<{
35
35
  siteStyleId: SiteStyleId;
36
36
  buttonPersonalityId: ButtonPersonalityId | null;
37
- paletteVariantId: PaletteVariantId | null;
38
- paletteOverrides: PaletteOverrides | null;
39
37
  typographyPresetId?: TypographyPresetId | null;
40
38
  typographyBodyFontOverride?: string | null;
41
39
  typographyHeadingFontOverride?: string | null;
@@ -47,6 +45,16 @@ export type ApplySiteStyleSelectionBody = Readonly<{
47
45
  baseSelectionVersion: number;
48
46
  selectionId?: string | null;
49
47
  }>;
48
+ export type ApplySiteStyleSelectionBody = ApplySiteStyleSelectionCommonBody & (Readonly<{
49
+ paletteCommand: PaletteCommand;
50
+ paletteVariantId?: never;
51
+ paletteOverrides?: never;
52
+ }> | Readonly<{
53
+ /** Bounded input adapter for callers not yet emitting commands. */
54
+ paletteCommand?: undefined;
55
+ paletteVariantId: CuratedPaletteId | null;
56
+ paletteOverrides: PaletteOverrides | null;
57
+ }>);
50
58
  export type ApplySiteStyleSelectionResponse = Readonly<{
51
59
  success: boolean;
52
60
  themeId: string;
@@ -57,8 +65,11 @@ export type ApplySiteStyleSelectionResponse = Readonly<{
57
65
  theme: Theme;
58
66
  siteStyleId: SiteStyleId;
59
67
  buttonPersonalityId: ButtonPersonalityId;
60
- paletteVariantId: PaletteVariantId;
68
+ paletteVariantId: CuratedPaletteId;
61
69
  paletteOverrides: PaletteOverrides | null;
70
+ activePaletteSelection: PaletteSelection;
71
+ /** Present only when the active selection is a site palette. */
72
+ activeSitePaletteVersion: number | null;
62
73
  headerLayoutId: HeaderLayoutId;
63
74
  headerStyleId: HeaderStyleId;
64
75
  typographyPresetId: TypographyPresetId | null;
@@ -67,6 +78,18 @@ export type ApplySiteStyleSelectionResponse = Readonly<{
67
78
  headerLookId: HeaderLookId | null;
68
79
  footerLookId: FooterLookId;
69
80
  }>;
81
+ export type ListSiteThemePalettesResponse = Readonly<{
82
+ active: Readonly<{
83
+ kind: 'migrated';
84
+ selection: PaletteSelection;
85
+ }> | Readonly<{
86
+ kind: 'legacy-unmigrated';
87
+ }> | Readonly<{
88
+ kind: 'invalid';
89
+ reason: string;
90
+ }>;
91
+ palettes: readonly import('../../theme-core/src/palette/index').SitePalette[];
92
+ }>;
70
93
  export type SaveSiteChromeLookSelectionBody = Readonly<{
71
94
  surface: 'header';
72
95
  lookId: HeaderLookId | null;
@@ -89,6 +112,7 @@ export type SaveSiteChromeLookSelectionResponse = Readonly<{
89
112
  themeId: string;
90
113
  selectionId: string;
91
114
  selectionUpdatedAt: string | null;
115
+ selectionVersion: number;
92
116
  savedAt: string;
93
117
  theme: Theme;
94
118
  headerLookId: HeaderLookId | null;
@@ -230,6 +254,7 @@ export type SiteRuntimeAPIEndpoints = {
230
254
  themeId: string;
231
255
  selectionId: string;
232
256
  selectionUpdatedAt: string | null;
257
+ selectionVersion: number;
233
258
  savedAt: string;
234
259
  overrides: Record<string, unknown> | null;
235
260
  theme: Theme;
@@ -242,7 +267,7 @@ export type SiteRuntimeAPIEndpoints = {
242
267
  * local state without a follow-up read.
243
268
  */
244
269
  buttonPersonalityId: ButtonPersonalityId | null;
245
- paletteVariantId: PaletteVariantId | null;
270
+ paletteVariantId: CuratedPaletteId | null;
246
271
  paletteOverrides: PaletteOverrides | null;
247
272
  headerLayoutId: HeaderLayoutId | null;
248
273
  headerStyleId: HeaderStyleId | null;
@@ -255,6 +280,9 @@ export type SiteRuntimeAPIEndpoints = {
255
280
  applySiteStyleSelection: APIEndpoint<ApplySiteStyleSelectionBody, {
256
281
  siteId: string;
257
282
  }, ApplySiteStyleSelectionResponse>;
283
+ listSiteThemePalettes: APIEndpoint<never, {
284
+ siteId: string;
285
+ }, ListSiteThemePalettesResponse>;
258
286
  saveSiteChromeLookSelection: APIEndpoint<SaveSiteChromeLookSelectionBody, {
259
287
  siteId: string;
260
288
  }, SaveSiteChromeLookSelectionResponse>;
@@ -807,3 +835,4 @@ export type SiteRuntimeAPIEndpoints = {
807
835
  sessionId?: string;
808
836
  }, never, void>;
809
837
  };
838
+ export {};
@@ -7,9 +7,9 @@
7
7
  * `ui: { widget: 'slider' }` on `type: 'number'` fields.
8
8
  *
9
9
  * Key behaviors:
10
- * - Null/undefined values display as max (100%) since null opacity = fully opaque at runtime
11
- * - Hardcodes `%` suffix (designed for 0-100 percentage fields like opacity)
12
- * - Supports `ui.min`, `ui.max`, `ui.step`, `ui.showValue` configuration
10
+ * - Percentage/max-on-unset behavior remains the default for opacity fields
11
+ * - Supports percent, pixel, and unitless value display
12
+ * - Supports an optional linked numeric input for broad ranges
13
13
  */
14
14
  import type { FieldWidgetProps } from '../../fields/props';
15
15
  import type { NumberFieldConfig } from '../../fields/types';
@@ -0,0 +1,36 @@
1
+ import type { SliderUiConfig } from '../utils/readNumericUiConfig';
2
+ import { type Result } from '../../../../core/src/index';
3
+ export type SliderValueBounds = Readonly<{
4
+ min: number;
5
+ max: number;
6
+ step: number;
7
+ }>;
8
+ export type SliderValueBoundsError = Readonly<{
9
+ tag: 'invalid_min';
10
+ value: number;
11
+ }> | Readonly<{
12
+ tag: 'invalid_max';
13
+ value: number;
14
+ }> | Readonly<{
15
+ tag: 'inverted_range';
16
+ min: number;
17
+ max: number;
18
+ }> | Readonly<{
19
+ tag: 'invalid_step';
20
+ value: number;
21
+ }>;
22
+ export declare const DEFAULT_SLIDER_VALUE_BOUNDS: SliderValueBounds;
23
+ export declare function parseSliderValueBounds(input: Readonly<{
24
+ fieldMin?: number;
25
+ fieldMax?: number;
26
+ fieldStep?: number;
27
+ ui: SliderUiConfig;
28
+ }>): Result<SliderValueBounds, SliderValueBoundsError>;
29
+ export declare function constrainSliderValue(value: number, bounds: SliderValueBounds): number;
30
+ export declare function resolveSliderDisplayValue(input: Readonly<{
31
+ value: number | null | undefined;
32
+ defaultValue: unknown;
33
+ unsetValue: SliderUiConfig['unsetValue'];
34
+ bounds: SliderValueBounds;
35
+ }>): number;
36
+ export declare function sliderValueSuffix(unit: SliderUiConfig['valueUnit']): string;
@@ -5,6 +5,9 @@ export type NumericInputUiConfig = {
5
5
  };
6
6
  export type SliderUiConfig = NumericInputUiConfig & {
7
7
  showValue?: boolean;
8
+ valueUnit?: 'percent' | 'pixels' | 'unitless';
9
+ unsetValue?: 'max' | 'field-default';
10
+ allowDirectInput?: boolean;
8
11
  };
9
12
  export declare function readNumberFieldUiConfig(ui: unknown): NumericInputUiConfig;
10
13
  export declare function readSliderFieldUiConfig(ui: unknown): SliderUiConfig;
@@ -33,7 +33,7 @@ export * from '../../theme-core/src/siteChrome';
33
33
  export * from '../../theme-core/src/blocks/index';
34
34
  export { EDITABLE_SURFACE_FORWARDING_PROP, markEditableSurfaceForwarding, type EditableSurfaceForwardingComponent, } from './system/runtime/header/shared';
35
35
  export * from './system';
36
- export { parseSiteIconStyleGuideVersionId, type SiteIconStyleGuideVersionId, } from './system/icons/ids';
36
+ export { type GeneratedIconAssetId, type GeneratedIconSetId, parseSiteIconStyleGuideVersionId, type SiteIconStyleGuideVersionId, } from './system/icons/ids';
37
37
  export { isSemanticIconId, type SemanticIconId, } from './system/icons/semantic';
38
38
  export { getGeneratedBlockIconStyleState, parseBlockIconValue, type GeneratedBlockIconValue, type GeneratedBlockIconStyleState, } from './system/icons/value';
39
39
  export { SUPPORTED_LOADER_ENDPOINTS, isSupportedLoaderEndpoint, type SupportedLoaderEndpoint, } from './system/data';
@@ -1,8 +1,37 @@
1
1
  import type { TipTapNode } from '../manifest/richTextSchema';
2
+ import { type Brand, type Result } from '../../../../core/src/index';
2
3
  import type { SemanticIconId } from '../icons/semantic';
3
4
  import { type BlockIconValue } from '../icons/value';
4
5
  export declare const FEATURE_CARD_ICON_TREATMENTS: readonly ["plain", "soft-badge", "utility-badge"];
5
6
  export type FeatureCardIconTreatment = (typeof FEATURE_CARD_ICON_TREATMENTS)[number];
7
+ export declare const FEATURE_CARD_GENERATED_ICON_SIZE_PX: {
8
+ readonly min: 40;
9
+ readonly max: 400;
10
+ readonly step: 5;
11
+ readonly default: 75;
12
+ };
13
+ export type FeatureCardGeneratedIconSizePx = Brand<number, 'FeatureCardGeneratedIconSizePx'>;
14
+ export type FeatureCardGeneratedIconSizeError = Readonly<{
15
+ tag: 'not_number';
16
+ }> | Readonly<{
17
+ tag: 'not_finite';
18
+ value: number;
19
+ }> | Readonly<{
20
+ tag: 'not_integer';
21
+ value: number;
22
+ }> | Readonly<{
23
+ tag: 'out_of_range';
24
+ value: number;
25
+ min: number;
26
+ max: number;
27
+ }> | Readonly<{
28
+ tag: 'off_step';
29
+ value: number;
30
+ min: number;
31
+ step: number;
32
+ }>;
33
+ export declare function parseFeatureCardGeneratedIconSizePx(value: unknown): Result<FeatureCardGeneratedIconSizePx, FeatureCardGeneratedIconSizeError>;
34
+ export declare function resolveFeatureCardGeneratedIconSizePx(value: unknown): FeatureCardGeneratedIconSizePx;
6
35
  export type FeatureCardIconContent = {
7
36
  title?: string | null;
8
37
  body?: TipTapNode | null;
@@ -17,41 +46,12 @@ export type FeatureCardIconSuggestionInput = {
17
46
  bodyText: string;
18
47
  icon: BlockIconValue;
19
48
  };
20
- export type FeatureCardIconSuggestion = {
21
- cardKey: string;
22
- iconId: string;
23
- };
24
- export type ValidatedFeatureCardIconSuggestion = {
25
- cardKey: string;
26
- iconId: SemanticIconId;
27
- };
28
49
  export type FeatureCardIconCompletion = {
29
50
  totalCards: number;
30
51
  cardsWithIcons: number;
31
52
  };
32
- export type FeatureCardIconSuggestionPlan = {
33
- kind: 'applied';
34
- appliedSuggestions: readonly ValidatedFeatureCardIconSuggestion[];
35
- } | {
36
- kind: 'duplicate_card_key';
37
- cardKey: string;
38
- } | {
39
- kind: 'duplicate_suggestion_card_key';
40
- cardKey: string;
41
- } | {
42
- kind: 'missing_suggestion_card_key';
43
- cardKey: string;
44
- } | {
45
- kind: 'unknown_card_key';
46
- cardKey: string;
47
- } | {
48
- kind: 'invalid_semantic_icon';
49
- iconId: string;
50
- };
51
53
  export declare function createFeatureCardIconKey(card: FeatureCardIconInputContent, index: number): string;
52
54
  export declare function getFeatureCardIconCompletion(cards: readonly FeatureCardIconInputContent[] | null | undefined): FeatureCardIconCompletion;
53
55
  export declare function shouldReserveFeatureCardIconZone(cards: readonly FeatureCardIconInputContent[] | null | undefined): boolean;
54
56
  export declare function toFeatureCardIconSuggestionInputs(cards: readonly FeatureCardIconInputContent[] | null | undefined): readonly FeatureCardIconSuggestionInput[];
55
57
  export declare function suggestSemanticIconForFeatureCard(card: FeatureCardIconSuggestionInput): SemanticIconId;
56
- export declare function suggestFeatureCardSemanticIcons(cards: readonly FeatureCardIconInputContent[] | null | undefined): readonly FeatureCardIconSuggestion[];
57
- export declare function applyFeatureCardIconSuggestions(cards: readonly FeatureCardIconInputContent[], suggestions: readonly FeatureCardIconSuggestion[]): FeatureCardIconSuggestionPlan;
@@ -25,6 +25,7 @@ export type FeatureCardsContent = {
25
25
  columns?: FeatureCardsColumns | null;
26
26
  cardMarker?: FeatureCardsCardMarker | null;
27
27
  _iconTreatment?: FeatureCardIconTreatment | null;
28
+ _generatedIconSizePx?: number | null;
28
29
  cards?: FeatureCard[] | null;
29
30
  };
30
31
  export declare const featureCardsBlockDefinition: SystemBlockDefinition<FeatureCardsContent>;
@@ -76,6 +76,9 @@ export declare const locationMapManifest: import("..").DefinedBlockManifest<{
76
76
  max?: number | undefined;
77
77
  step?: number | undefined;
78
78
  showValue?: boolean | undefined;
79
+ valueUnit?: "percent" | "pixels" | "unitless" | undefined;
80
+ unsetValue?: "max" | "field-default" | undefined;
81
+ allowDirectInput?: boolean | undefined;
79
82
  pattern?: string | undefined;
80
83
  placeholder?: string | undefined;
81
84
  visibleWhen?: import("..").FieldVisibleWhen | undefined;