@riverbankcms/sdk 0.76.0 → 0.77.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 (151) hide show
  1. package/dist/{PreviewEditorSidebar-X2HWXFOL.mjs → PreviewEditorSidebar-DVUG7GK4.mjs} +1019 -442
  2. package/dist/{PreviewEditorUI-AQXIXPOH.mjs → PreviewEditorUI-P7RN4CDS.mjs} +2 -2
  3. package/dist/SdkPreviewModeRuntime-KLPX47SE.mjs +8 -0
  4. package/dist/_dts/ai/src/contracts/proposals.d.ts +538 -20
  5. package/dist/_dts/api/src/contentRuntime.d.ts +5 -0
  6. package/dist/_dts/api/src/siteAssets.d.ts +1 -0
  7. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +26 -2
  8. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +28 -0
  9. package/dist/_dts/block-form/src/client/index.d.ts +2 -2
  10. package/dist/_dts/block-form/src/index.d.ts +2 -1
  11. package/dist/_dts/block-form/src/widgets/DateField/dateFieldSchema.d.ts +1 -1
  12. package/dist/_dts/block-form/src/widgets/DateTimeField/dateTimeFieldSchema.d.ts +1 -1
  13. package/dist/_dts/block-form/src/widgets/TimeField/timeFieldSchema.d.ts +1 -1
  14. package/dist/_dts/blocks/src/PageRenderer.d.ts +10 -10
  15. package/dist/_dts/blocks/src/client/site-chrome.d.ts +22 -0
  16. package/dist/_dts/blocks/src/customBlockRegistry.d.ts +57 -0
  17. package/dist/_dts/blocks/src/index.d.ts +2 -0
  18. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +20 -2
  19. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +25 -0
  20. package/dist/_dts/blocks/src/system/blocks/index.d.ts +2 -0
  21. package/dist/_dts/blocks/src/system/blocks/intro.d.ts +24 -0
  22. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +3 -34
  23. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +2 -2
  24. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  25. package/dist/_dts/blocks/src/system/fields/aspectRatio.d.ts +30 -0
  26. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +4 -1
  27. package/dist/_dts/blocks/src/system/fields/ctas.d.ts +7 -0
  28. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +16 -2
  29. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  30. package/dist/_dts/blocks/src/system/runtime/components/multi-step/runtimeFormValidation.d.ts +28 -0
  31. package/dist/_dts/blocks/src/system/runtime/nodes/accordion.d.ts +2 -0
  32. package/dist/_dts/blocks/src/system/runtime/nodes/accordion.server.d.ts +2 -0
  33. package/dist/_dts/blocks/src/system/runtime/nodes/accordionIconTreatment.d.ts +5 -0
  34. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +5 -4
  35. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +2 -1
  36. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +2 -0
  37. package/dist/_dts/content-editor/src/hooks/blockDraftLifecycle.d.ts +48 -0
  38. package/dist/_dts/content-editor/src/hooks/invalidBlockSelectors.d.ts +4 -0
  39. package/dist/_dts/content-editor/src/hooks/publishability.d.ts +47 -0
  40. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  41. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +20 -0
  42. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -1
  43. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -1
  44. package/dist/_dts/editor-blocks/src/block-editor/customBlockRegistry.d.ts +2 -0
  45. package/dist/_dts/editor-blocks/src/block-editor/sdkBlockMerger.d.ts +9 -37
  46. package/dist/_dts/editor-blocks/src/index.d.ts +2 -2
  47. package/dist/_dts/preview-next/src/client/index.d.ts +3 -0
  48. package/dist/_dts/preview-next/src/client/layout/PreviewLayoutContext.d.ts +5 -1
  49. package/dist/_dts/preview-next/src/client/preview/PreviewDesignCoordinatorContext.d.ts +20 -0
  50. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +7 -2
  51. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +7 -2
  52. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +7 -2
  53. package/dist/_dts/preview-next/src/client/preview/PreviewThemedSiteDocument.d.ts +18 -0
  54. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +20 -3
  55. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +6 -1
  56. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +14 -4
  57. package/dist/_dts/preview-next/src/client/preview/previewDesignCoordinator.d.ts +73 -0
  58. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +12 -4
  59. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +46 -0
  60. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +6 -1
  61. package/dist/_dts/preview-next/src/client/preview/typographySelectionInput.d.ts +14 -0
  62. package/dist/_dts/preview-next/src/client/sdk/SdkPreviewModeRuntime.d.ts +1 -1
  63. package/dist/_dts/sdk/src/cli/commands/style.d.ts +8 -0
  64. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -1
  65. package/dist/_dts/sdk/src/client/types.d.ts +9 -0
  66. package/dist/_dts/sdk/src/client.d.ts +1 -1
  67. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +35 -0
  68. package/dist/_dts/sdk/src/contracts/theme.d.ts +1 -1
  69. package/dist/_dts/sdk/src/index.d.ts +2 -1
  70. package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -0
  71. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -2
  72. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  73. package/dist/_dts/sdk/src/version.d.ts +1 -1
  74. package/dist/_dts/site-commands/src/commands.d.ts +15 -0
  75. package/dist/_dts/theme-core/src/buttons/personalities/earth-pill.d.ts +16 -0
  76. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  77. package/dist/_dts/theme-core/src/fonts/types.d.ts +1 -1
  78. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  79. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +72 -27
  80. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
  81. package/dist/_dts/theme-core/src/palette/variants/warm-neutral.d.ts +16 -0
  82. package/dist/_dts/theme-core/src/schema.d.ts +306 -30
  83. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +81 -0
  84. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +6 -4
  85. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +81 -0
  86. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +119 -3
  87. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +4 -4
  88. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +13 -0
  89. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
  90. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +402 -13
  91. package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +6 -0
  92. package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
  93. package/dist/_dts/theme-core/src/site-styles/persistedIdParseResult.d.ts +9 -0
  94. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +20 -4
  95. package/dist/_dts/theme-core/src/site-styles/types.d.ts +74 -2
  96. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +189 -0
  97. package/dist/{chunk-Q4OLG66B.mjs → chunk-2SPENC5M.mjs} +476 -153
  98. package/dist/{chunk-Z7JLNTJR.mjs → chunk-6SMUFTXD.mjs} +2 -1
  99. package/dist/{chunk-TW2Y4RR5.mjs → chunk-IENWFSLO.mjs} +365 -52
  100. package/dist/{chunk-LYI7TEMH.mjs → chunk-KWJPDZH2.mjs} +4682 -1463
  101. package/dist/{chunk-V5VORNEJ.mjs → chunk-ZYEJLCTN.mjs} +1 -1
  102. package/dist/cli/index.mjs +2314 -267
  103. package/dist/client/{accordion-2YHIBOZH.mjs → accordion-RZMQSYLR.mjs} +1 -1
  104. package/dist/client/{bookingForm-35IBDWAS.mjs → bookingForm-NF4ASVNV.mjs} +2 -2
  105. package/dist/client/bookings.mjs +92 -0
  106. package/dist/client/{carousel-K6XG7NZQ.mjs → carousel-LDX47ZIK.mjs} +1 -1
  107. package/dist/client/{cart-HCFYUTTU.mjs → cart-RGXDS5F4.mjs} +3 -3
  108. package/dist/client/{checkout-J3U4XR7K.mjs → checkout-P7WWSNNY.mjs} +3 -3
  109. package/dist/client/{chunk-BOIHIU7E.mjs → chunk-E2TDNXCL.mjs} +1 -1
  110. package/dist/client/{chunk-PFBX3IQL.mjs → chunk-GMVTOKYG.mjs} +2 -2
  111. package/dist/client/{chunk-FGUIVT2B.mjs → chunk-JNC7CGHX.mjs} +1 -1
  112. package/dist/client/{chunk-SNSWVZEP.mjs → chunk-L3DNHIJX.mjs} +3 -3
  113. package/dist/client/{chunk-7UOSCYY4.mjs → chunk-R56FQ3RR.mjs} +92 -0
  114. package/dist/client/{chunk-J227A3CQ.mjs → chunk-UFSWADAO.mjs} +1 -1
  115. package/dist/client/client.mjs +3579 -1351
  116. package/dist/client/{courseRegistration-ZBXS7VGI.mjs → courseRegistration-7F65K5ZR.mjs} +2 -2
  117. package/dist/client/{eventCalendar-EQQZHJBA.mjs → eventCalendar-GLSC5KTL.mjs} +4 -4
  118. package/dist/client/{eventCombined-JCFTGBFQ.mjs → eventCombined-ZHK4WKUR.mjs} +4 -4
  119. package/dist/client/{eventDetails-HLUTQSYY.mjs → eventDetails-E3PJYBIN.mjs} +4 -4
  120. package/dist/client/{eventListing-FG4MICVB.mjs → eventListing-EMS3WC3E.mjs} +4 -4
  121. package/dist/client/{eventRegistration-GUEB7LBT.mjs → eventRegistration-NZOTVNPI.mjs} +4 -4
  122. package/dist/client/{form-YQEW4YIT.mjs → form-ETFZFATW.mjs} +1 -1
  123. package/dist/client/{headerSection-GTR3TTRM.mjs → headerSection-4LBP7ULT.mjs} +2 -2
  124. package/dist/client/hooks.mjs +2226 -402
  125. package/dist/client/{locationMap-SPC7VGUH.mjs → locationMap-5M655YSJ.mjs} +1 -1
  126. package/dist/client/{newsletterForm-4IW5BLID.mjs → newsletterForm-QOUYW44O.mjs} +1 -1
  127. package/dist/client/{productDetail-KP5H2WJO.mjs → productDetail-O4DOCWQG.mjs} +3 -3
  128. package/dist/client/{productList-3M3M72XZ.mjs → productList-A5RO5WIS.mjs} +3 -3
  129. package/dist/client/rendering/client.mjs +198 -32
  130. package/dist/client/rendering/islands.mjs +18 -18
  131. package/dist/client/rendering.mjs +3573 -1355
  132. package/dist/client/{shop-ACQKVGOM.mjs → shop-L4MZH4I2.mjs} +3 -3
  133. package/dist/preview-next/client/runtime.mjs +4 -4
  134. package/dist/{sdk-runtime-K7HNB4U2.mjs → sdk-runtime-6UT2S7KZ.mjs} +5 -5
  135. package/dist/server/components.mjs +3497 -1333
  136. package/dist/server/config-validation.mjs +2229 -402
  137. package/dist/server/config.mjs +2229 -402
  138. package/dist/server/data.mjs +2226 -402
  139. package/dist/server/index.mjs +31 -2
  140. package/dist/server/next.mjs +3503 -1329
  141. package/dist/server/page-converter.mjs +2213 -403
  142. package/dist/server/prebuild.mjs +1 -1
  143. package/dist/server/rendering/server.mjs +3497 -1333
  144. package/dist/server/rendering.mjs +3497 -1333
  145. package/dist/server/routing.mjs +2250 -363
  146. package/dist/server/server.mjs +2243 -400
  147. package/dist/server/theme-bridge.mjs +1313 -1035
  148. package/dist/server/theme.mjs +237 -12
  149. package/dist/styles/index.css +1081 -1028
  150. package/package.json +1 -1
  151. package/dist/SdkPreviewModeRuntime-ZQNDCASH.mjs +0 -8
@@ -3,7 +3,7 @@ import type { ApiClient } from '../../../../api/src/request';
3
3
  import type { Theme } from '../../../../blocks/src/index';
4
4
  import type { ButtonPersonalityId } from '../../../../theme-core/src/buttons/index';
5
5
  import type { PaletteOverrides, PaletteVariantId } from '../../../../theme-core/src/palette/index';
6
- import type { FooterLookId, FooterSelectionContext, HeaderLookId, HeaderSelectionContext } from '../../../../theme-core/src/site-styles/index';
6
+ import type { FooterLookId, FooterSelectionContext, HeaderLayoutId, HeaderLookId, HeaderSelectionContext, HeaderStyleId, TypographyPresetId } from '../../../../theme-core/src/site-styles/index';
7
7
  import type { SiteStyleAccess } from './siteStyleAccess';
8
8
  import { type SiteChromeLookOption } from './siteChromeLookRows';
9
9
  import type { SiteChromeEditableSurfaceKind } from './SiteChromeEditableSurface';
@@ -11,10 +11,22 @@ type SiteChromeCustomizeSurfaceState = Readonly<{
11
11
  kind: 'unavailable';
12
12
  }> | Readonly<{
13
13
  kind: 'available';
14
+ surface: 'header';
14
15
  label: string;
15
- currentId: HeaderLookId | FooterLookId | null;
16
+ currentId: HeaderStyleId;
16
17
  currentLabel: string;
17
- options: readonly SiteChromeLookOption<HeaderLookId | FooterLookId | null>[];
18
+ options: readonly SiteChromeLookOption<HeaderStyleId>[];
19
+ diagnostics: readonly string[];
20
+ saving: boolean;
21
+ failure: string | null;
22
+ applyAllowed: boolean;
23
+ }> | Readonly<{
24
+ kind: 'available';
25
+ surface: 'footer';
26
+ label: string;
27
+ currentId: FooterLookId | null;
28
+ currentLabel: string;
29
+ options: readonly SiteChromeLookOption<FooterLookId | null>[];
18
30
  diagnostics: readonly string[];
19
31
  saving: boolean;
20
32
  failure: string | null;
@@ -39,6 +51,11 @@ export type SiteChromeCustomizeProviderProps = Readonly<{
39
51
  buttonPersonalityId: ButtonPersonalityId | null;
40
52
  paletteVariantId: PaletteVariantId | null;
41
53
  paletteOverrides: PaletteOverrides | null;
54
+ headerLayoutId?: HeaderLayoutId | null;
55
+ headerStyleId?: HeaderStyleId | null;
56
+ typographyPresetId?: TypographyPresetId | null;
57
+ typographyBodyFontOverride?: string | null;
58
+ typographyHeadingFontOverride?: string | null;
42
59
  headerLookId?: HeaderLookId | null;
43
60
  footerLookId?: FooterLookId | null;
44
61
  }>;
@@ -2,7 +2,7 @@ import type { ApiClient } from '../../../../api/src/request';
2
2
  import type { Theme } from '../../../../blocks/src/index';
3
3
  import { type ButtonPersonalityId } from '../../../../theme-core/src/buttons/index';
4
4
  import { type PaletteVariantId, type PaletteOverrides } from '../../../../theme-core/src/palette/index';
5
- import { type FooterSelectionContext, type FooterLookId, type HeaderSelectionContext, type HeaderLookId } from '../../../../theme-core/src/site-styles/index';
5
+ import { type FooterSelectionContext, type FooterLookId, type HeaderLayoutId, type HeaderLookId, type HeaderSelectionContext, type HeaderStyleId, type TypographyPresetId } from '../../../../theme-core/src/site-styles/index';
6
6
  import { type VisibleSiteStyleAccess } from './siteStyleAccess';
7
7
  import type { PreviewDesignRow } from './sidebarTabPreference';
8
8
  export type StyleConfiguratorProps = Readonly<{
@@ -20,6 +20,11 @@ export type StyleConfiguratorProps = Readonly<{
20
20
  buttonPersonalityId: ButtonPersonalityId | null;
21
21
  paletteVariantId: PaletteVariantId | null;
22
22
  paletteOverrides: PaletteOverrides | null;
23
+ headerLayoutId?: HeaderLayoutId | null;
24
+ headerStyleId?: HeaderStyleId | null;
25
+ typographyPresetId?: TypographyPresetId | null;
26
+ typographyBodyFontOverride?: string | null;
27
+ typographyHeadingFontOverride?: string | null;
23
28
  headerLookId?: HeaderLookId | null;
24
29
  footerLookId?: FooterLookId | null;
25
30
  }>;
@@ -12,7 +12,7 @@
12
12
  */
13
13
  import type { ButtonPersonalityId } from '../../../../theme-core/src/buttons/index';
14
14
  import type { PaletteOverrides, PaletteVariantId } from '../../../../theme-core/src/palette/index';
15
- import type { FooterLookId, HeaderLookId } from '../../../../theme-core/src/site-styles/index';
15
+ import { type FooterLookId, type HeaderLayoutId, type HeaderLookId, type HeaderStyleId, type TypographyPresetId } from '../../../../theme-core/src/site-styles/index';
16
16
  import type { SelectionFallbackWarning, SiteStyleId } from '../../../../theme-core/src/site-styles/previewCompiler';
17
17
  export type StyleConfiguratorSaveStatus = Readonly<{
18
18
  kind: 'idle';
@@ -24,7 +24,7 @@ export type StyleConfiguratorSaveStatus = Readonly<{
24
24
  kind: 'failed';
25
25
  message: string;
26
26
  }>;
27
- export type StyleConfiguratorExpandedRow = 'style' | 'header' | 'footer' | 'buttons' | 'palette' | 'colours' | null;
27
+ export type StyleConfiguratorExpandedRow = 'style' | 'header-layout' | 'header-style' | 'footer' | 'buttons' | 'typography' | 'palette' | 'colours' | null;
28
28
  /**
29
29
  * Configurator-level notices that aren't compiler selection fallback warnings.
30
30
  * Kept separate from `SelectionFallbackWarning` (which comes from
@@ -40,11 +40,16 @@ export type SelectionSnapshot = Readonly<{
40
40
  siteStyleId: SiteStyleId;
41
41
  selectionVersion: number;
42
42
  selectionUpdatedAt?: string | null;
43
+ headerLayoutId: HeaderLayoutId;
44
+ headerStyleId: HeaderStyleId;
43
45
  headerLookId: HeaderLookId | null;
44
46
  footerLookId: FooterLookId | null;
45
47
  buttonPersonalityId: ButtonPersonalityId;
46
48
  paletteVariantId: PaletteVariantId;
47
49
  paletteOverrides: PaletteOverrides | null;
50
+ typographyPresetId: TypographyPresetId | null;
51
+ typographyBodyFontOverride: string | null;
52
+ typographyHeadingFontOverride: string | null;
48
53
  }>;
49
54
  type PaletteOverrideDrafts = Readonly<Partial<Record<PaletteVariantId, PaletteOverrides>>>;
50
55
  export type StyleConfiguratorState = Readonly<{
@@ -74,8 +79,13 @@ export declare function openRow(state: StyleConfiguratorState, row: Exclude<Styl
74
79
  export declare function isPreviewingChange(state: StyleConfiguratorState): boolean;
75
80
  export declare function previewSiteStyle(state: StyleConfiguratorState, siteStyleId: SiteStyleId): StyleConfiguratorState;
76
81
  export declare function previewButtonPersonality(state: StyleConfiguratorState, buttonPersonalityId: ButtonPersonalityId): StyleConfiguratorState;
77
- export declare function previewHeaderLook(state: StyleConfiguratorState, headerLookId: HeaderLookId | null): StyleConfiguratorState;
82
+ export declare function previewHeaderLayout(state: StyleConfiguratorState, headerLayoutId: HeaderLayoutId): StyleConfiguratorState;
83
+ export declare function previewHeaderStyle(state: StyleConfiguratorState, headerStyleId: HeaderStyleId): StyleConfiguratorState;
78
84
  export declare function previewFooterLook(state: StyleConfiguratorState, footerLookId: FooterLookId | null): StyleConfiguratorState;
85
+ export declare function previewTypographyPreset(state: StyleConfiguratorState, typographyPresetId: TypographyPresetId): StyleConfiguratorState;
86
+ export declare function setTypographyBodyFontOverride(state: StyleConfiguratorState, typographyBodyFontOverride: string | null): StyleConfiguratorState;
87
+ export declare function setTypographyHeadingFontOverride(state: StyleConfiguratorState, typographyHeadingFontOverride: string | null): StyleConfiguratorState;
88
+ export declare function clearTypographyFontOverrides(state: StyleConfiguratorState): StyleConfiguratorState;
79
89
  export declare function previewPaletteVariant(state: StyleConfiguratorState, paletteVariantId: PaletteVariantId): StyleConfiguratorState;
80
90
  export declare function setPaletteOverrides(state: StyleConfiguratorState, paletteOverrides: PaletteOverrides | null): StyleConfiguratorState;
81
91
  /**
@@ -89,7 +99,7 @@ export declare function setPaletteOverrides(state: StyleConfiguratorState, palet
89
99
  * under the previous palette ID and any draft for the new palette is restored.
90
100
  */
91
101
  export declare function applyResolvedSelections(state: StyleConfiguratorState, input: Readonly<{
92
- resolved: Pick<SelectionSnapshot, 'buttonPersonalityId' | 'paletteVariantId'>;
102
+ resolved: Pick<SelectionSnapshot, 'buttonPersonalityId' | 'paletteVariantId' | 'headerLayoutId' | 'headerStyleId' | 'headerLookId' | 'typographyPresetId' | 'typographyBodyFontOverride' | 'typographyHeadingFontOverride'>;
93
103
  warnings: ReadonlyArray<SelectionFallbackWarning>;
94
104
  }>): StyleConfiguratorState;
95
105
  export declare function cancelPreview(state: StyleConfiguratorState): StyleConfiguratorState;
@@ -0,0 +1,73 @@
1
+ import type { Theme } from '../../../../blocks/src/index';
2
+ import type { Rfc6902Op } from '../utils/rfc6902';
3
+ import type { PreviewThemeOverlaySource } from './themeOverlay';
4
+ export type PreviewDesignProducer = 'ai-designer' | 'style-configurator' | 'site-chrome';
5
+ export type PreviewDesignSurface = 'theme-json-patch' | 'site-style' | 'site-chrome';
6
+ type ActivePreviewDesignState = Readonly<{
7
+ kind: 'active';
8
+ owner: PreviewDesignProducer;
9
+ surface: PreviewDesignSurface;
10
+ apply: 'idle' | 'pending';
11
+ }>;
12
+ export type PreviewDesignState = Readonly<{
13
+ kind: 'idle';
14
+ }> | ActivePreviewDesignState;
15
+ export type PreviewDesignCommand = Readonly<{
16
+ kind: 'preview-theme-patch';
17
+ producer: PreviewDesignProducer;
18
+ ops: readonly Rfc6902Op[];
19
+ }> | Readonly<{
20
+ kind: 'preview-theme';
21
+ producer: PreviewDesignProducer;
22
+ theme: Theme;
23
+ sourcePlan: Exclude<PreviewDesignSurface, 'theme-json-patch'>;
24
+ }> | Readonly<{
25
+ kind: 'clear-preview';
26
+ producer: PreviewDesignProducer;
27
+ }> | Readonly<{
28
+ kind: 'base-theme-changed';
29
+ }> | Readonly<{
30
+ kind: 'apply-started';
31
+ producer: PreviewDesignProducer;
32
+ }> | Readonly<{
33
+ kind: 'apply-succeeded';
34
+ producer: PreviewDesignProducer;
35
+ }> | Readonly<{
36
+ kind: 'apply-failed';
37
+ producer: PreviewDesignProducer;
38
+ }>;
39
+ export type PreviewThemeOverlayEffect = Readonly<{
40
+ kind: 'none';
41
+ }> | Readonly<{
42
+ kind: 'clear';
43
+ }> | Readonly<{
44
+ kind: 'set-patch';
45
+ source: PreviewThemeOverlaySource;
46
+ ops: readonly Rfc6902Op[];
47
+ }> | Readonly<{
48
+ kind: 'set-theme';
49
+ source: PreviewThemeOverlaySource;
50
+ theme: Theme;
51
+ }>;
52
+ export type PreviewDesignIgnoredReason = 'no-active-preview' | 'producer-does-not-own-preview' | 'apply-event-for-displaced-preview';
53
+ export type PreviewDesignTransition = Readonly<{
54
+ kind: 'accepted';
55
+ state: PreviewDesignState;
56
+ effect: PreviewThemeOverlayEffect;
57
+ }> | Readonly<{
58
+ kind: 'ignored';
59
+ state: PreviewDesignState;
60
+ reason: PreviewDesignIgnoredReason;
61
+ }>;
62
+ export declare const NO_PREVIEW_DESIGN_STATE: PreviewDesignState;
63
+ /**
64
+ * Owns preview-design replacement semantics for all theme-like preview producers.
65
+ *
66
+ * Policy:
67
+ * - preview commands are deterministic last-writer-wins, including cross-producer replacement
68
+ * - clear/apply commands only affect the producer that still owns the active preview
69
+ * - stale apply results from displaced producers are ignored so they cannot clear a newer preview
70
+ * - base theme refresh is a coordinator-level command, not a producer clear
71
+ */
72
+ export declare function transitionPreviewDesignState(state: PreviewDesignState, command: PreviewDesignCommand): PreviewDesignTransition;
73
+ export {};
@@ -1,5 +1,5 @@
1
1
  import { type CuratedSiteStyle } from '../../../../theme-core/src/site-styles/previewCompiler';
2
- import { type FooterLookId, type FooterSelectionContext, type HeaderLookId, type HeaderSelectionContext, type LookCustomizationWritePlan } from '../../../../theme-core/src/site-styles/index';
2
+ import { type FooterLookId, type FooterSelectionContext, type HeaderLayoutId, type HeaderLookId, type HeaderSelectionContext, type HeaderStyleId, type LookCustomizationWritePlan } from '../../../../theme-core/src/site-styles/index';
3
3
  import type { SelectionSnapshot, StyleConfiguratorState } from './StyleConfigurator.state';
4
4
  export type SiteChromeLookOption<TId extends string | null> = Readonly<{
5
5
  id: TId;
@@ -17,7 +17,14 @@ export type SiteChromeLookRowModel<TId extends string> = Readonly<{
17
17
  renderedLookId: TId;
18
18
  }>;
19
19
  export type SiteChromeLookModels = Readonly<{
20
- header: SiteChromeLookRowModel<HeaderLookId>;
20
+ headerLayout: Readonly<{
21
+ options: readonly SiteChromeLookOption<HeaderLayoutId>[];
22
+ renderedLayoutId: HeaderLayoutId;
23
+ }>;
24
+ headerStyle: Readonly<{
25
+ options: readonly SiteChromeLookOption<HeaderStyleId>[];
26
+ renderedStyleId: HeaderStyleId;
27
+ }>;
21
28
  footer: SiteChromeLookRowModel<FooterLookId>;
22
29
  }>;
23
30
  type SiteChromeLookModelInput = Readonly<{
@@ -31,7 +38,8 @@ export declare function cycleSiteChromeLookId<TId extends string>(options: reado
31
38
  export declare function cycleableSiteChromeOptions<TId extends string>(options: readonly SiteChromeLookOption<TId | null>[]): readonly SiteChromeLookOption<TId | null>[];
32
39
  export type SiteChromeLookSelectionCommand = Readonly<{
33
40
  surface: 'header';
34
- lookId: HeaderLookId | null;
41
+ layoutId: HeaderLayoutId;
42
+ styleId: HeaderStyleId;
35
43
  }> | Readonly<{
36
44
  surface: 'footer';
37
45
  lookId: FooterLookId | null;
@@ -39,7 +47,7 @@ export type SiteChromeLookSelectionCommand = Readonly<{
39
47
  export type SiteChromeLookSelectionPlan = Readonly<{
40
48
  kind: 'header';
41
49
  writePlan: LookCustomizationWritePlan<HeaderLookId>;
42
- next: Pick<SelectionSnapshot, 'headerLookId'>;
50
+ next: Pick<SelectionSnapshot, 'headerLayoutId' | 'headerStyleId' | 'headerLookId'>;
43
51
  }> | Readonly<{
44
52
  kind: 'footer';
45
53
  writePlan: LookCustomizationWritePlan<FooterLookId>;
@@ -0,0 +1,46 @@
1
+ import type { Theme } from '../../../../blocks/src/index';
2
+ import type { ButtonPersonalityId } from '../../../../theme-core/src/buttons/index';
3
+ import type { PaletteOverrides, PaletteVariantId } from '../../../../theme-core/src/palette/index';
4
+ import type { FooterLookId, FooterSelectionContext, HeaderLayoutId, HeaderLookId, HeaderSelectionContext, HeaderStyleId, TypographyPresetId } from '../../../../theme-core/src/site-styles/index';
5
+ import { type CuratedSiteStyle, type SelectionFallbackWarning, type SiteStyleId } from '../../../../theme-core/src/site-styles/previewCompiler';
6
+ export type SiteStylePreviewSelection = Readonly<{
7
+ siteStyleId: SiteStyleId;
8
+ buttonPersonalityId: ButtonPersonalityId;
9
+ paletteVariantId: PaletteVariantId;
10
+ paletteOverrides: PaletteOverrides | null;
11
+ typographyPresetId?: TypographyPresetId | null;
12
+ typographyBodyFontOverride?: string | null;
13
+ typographyHeadingFontOverride?: string | null;
14
+ headerLayoutId?: HeaderLayoutId | null;
15
+ headerStyleId?: HeaderStyleId | null;
16
+ headerLookId: HeaderLookId | null;
17
+ footerLookId: FooterLookId | null;
18
+ }>;
19
+ export type SiteStyleChromePreviewSelection = Readonly<{
20
+ headerLookId: HeaderLookId | null;
21
+ footerLookId: FooterLookId | null;
22
+ }>;
23
+ export type SiteStylePreviewPlan = Readonly<{
24
+ themeOverlay: Theme;
25
+ resolvedSelections: Readonly<{
26
+ buttonPersonalityId: ButtonPersonalityId;
27
+ paletteVariantId: PaletteVariantId;
28
+ typographyPresetId: TypographyPresetId | null;
29
+ typographyBodyFontOverride: string | null;
30
+ typographyHeadingFontOverride: string | null;
31
+ headerLayoutId: HeaderLayoutId;
32
+ headerStyleId: HeaderStyleId;
33
+ headerLookId: HeaderLookId | null;
34
+ footerLookId: FooterLookId;
35
+ }>;
36
+ chromeSelection: SiteStyleChromePreviewSelection;
37
+ warnings: ReadonlyArray<SelectionFallbackWarning>;
38
+ }>;
39
+ export type SiteStylePreviewPlanInput = Readonly<{
40
+ siteStyle: CuratedSiteStyle;
41
+ selection: SiteStylePreviewSelection;
42
+ baseTheme?: Theme | null;
43
+ headerSelectionContext?: Partial<HeaderSelectionContext>;
44
+ footerSelectionContext?: Partial<FooterSelectionContext>;
45
+ }>;
46
+ export declare function planSiteStylePreviewChange(input: SiteStylePreviewPlanInput): SiteStylePreviewPlan;
@@ -1,7 +1,7 @@
1
1
  import type { Theme } from '../../../../blocks/src/index';
2
2
  import type { ButtonPersonalityId } from '../../../../theme-core/src/buttons/index';
3
3
  import type { PaletteOverrides, PaletteVariantId } from '../../../../theme-core/src/palette/index';
4
- import type { FooterLookId, FooterSelectionContext, HeaderLookId, HeaderSelectionContext } from '../../../../theme-core/src/site-styles/index';
4
+ import type { FooterLookId, FooterSelectionContext, HeaderLayoutId, HeaderLookId, HeaderSelectionContext, HeaderStyleId, TypographyPresetId } from '../../../../theme-core/src/site-styles/index';
5
5
  import type { SelectionSnapshot } from './StyleConfigurator.state';
6
6
  export declare function resolveStyleConfiguratorInitialSnapshot(input: Readonly<{
7
7
  theme?: Theme | null;
@@ -11,6 +11,11 @@ export declare function resolveStyleConfiguratorInitialSnapshot(input: Readonly<
11
11
  buttonPersonalityId: ButtonPersonalityId | null;
12
12
  paletteVariantId: PaletteVariantId | null;
13
13
  paletteOverrides: PaletteOverrides | null;
14
+ headerLayoutId?: HeaderLayoutId | null;
15
+ headerStyleId?: HeaderStyleId | null;
16
+ typographyPresetId?: TypographyPresetId | null;
17
+ typographyBodyFontOverride?: string | null;
18
+ typographyHeadingFontOverride?: string | null;
14
19
  headerLookId?: HeaderLookId | null;
15
20
  footerLookId?: FooterLookId | null;
16
21
  }>;
@@ -0,0 +1,14 @@
1
+ import type { Theme } from '../../../../blocks/src/index';
2
+ import type { TypographyPresetId, TypographySelection } from '../../../../theme-core/src/site-styles/previewCompiler';
3
+ type TypographySelectionSnapshot = Readonly<{
4
+ typographyPresetId?: TypographyPresetId | null;
5
+ typographyBodyFontOverride?: string | null;
6
+ typographyHeadingFontOverride?: string | null;
7
+ }>;
8
+ export declare function typographySelectionInputForSnapshot(snapshot: TypographySelectionSnapshot, theme: Theme | null | undefined): Readonly<{
9
+ typographySelection?: TypographySelection;
10
+ typographyPresetId?: TypographyPresetId | null;
11
+ typographyBodyFontOverride?: string | null;
12
+ typographyHeadingFontOverride?: string | null;
13
+ }>;
14
+ export {};
@@ -1,2 +1,2 @@
1
- import type { SdkPreviewModeProps } from "./SdkPreviewMode";
1
+ import type { SdkPreviewModeProps } from './SdkPreviewMode';
2
2
  export declare function SdkPreviewModeRuntime(props: SdkPreviewModeProps): import("react/jsx-runtime").JSX.Element;
@@ -13,7 +13,12 @@ export type StyleApplyOptions = Readonly<{
13
13
  buttonPersonalityId?: string;
14
14
  paletteVariantId?: string;
15
15
  paletteOverrides?: string;
16
+ typographyPresetId?: string;
17
+ typographyBodyFontOverride?: string;
18
+ typographyHeadingFontOverride?: string;
16
19
  headerLookId?: string;
20
+ headerLayoutId?: string;
21
+ headerStyleId?: string;
17
22
  footerLookId?: string;
18
23
  }>;
19
24
  export type StyleCatalogListOptions = Readonly<{
@@ -28,6 +33,9 @@ export type StyleCatalogListRow = Readonly<{
28
33
  name: string;
29
34
  palettes: readonly StyleCatalogChoice[];
30
35
  buttonPersonalities: readonly StyleCatalogChoice[];
36
+ typographyPresets: readonly StyleCatalogChoice[];
37
+ headerLayouts: readonly StyleCatalogChoice[];
38
+ headerStyles: readonly StyleCatalogChoice[];
31
39
  headerLooks: readonly StyleCatalogChoice[];
32
40
  footerLooks: readonly StyleCatalogChoice[];
33
41
  }>;
@@ -484,7 +484,12 @@ export interface ThemeStyleSelectionApplyResult {
484
484
  buttonPersonalityId: string;
485
485
  paletteVariantId: string;
486
486
  paletteOverrides: Record<string, string> | null;
487
- headerLookId: string;
487
+ headerLookId: string | null;
488
+ headerLayoutId: string;
489
+ headerStyleId: string;
490
+ typographyPresetId: string | null;
491
+ typographyBodyFontOverride: string | null;
492
+ typographyHeadingFontOverride: string | null;
488
493
  footerLookId: string;
489
494
  }
490
495
  /**
@@ -200,6 +200,9 @@ export type SdkAuthConfig = {
200
200
  type: 'bearer';
201
201
  token: string;
202
202
  };
203
+ export declare const SDK_CORRELATION_HEADER_NAMES: readonly ["x-request-id", "x-correlation-id", "x-riverbank-monitor-run-id"];
204
+ export type SdkCorrelationHeaderName = typeof SDK_CORRELATION_HEADER_NAMES[number];
205
+ export type SdkCorrelationHeaders = Readonly<Partial<Record<SdkCorrelationHeaderName, string>>>;
203
206
  /**
204
207
  * Configuration for creating a Riverbank CMS client
205
208
  */
@@ -236,6 +239,12 @@ export interface RiverbankClientConfig {
236
239
  * Base URL for the Riverbank CMS API (required; e.g. https://dashboard.example.com/api)
237
240
  */
238
241
  baseUrl: string;
242
+ /**
243
+ * Correlation headers to attach to every SDK API request.
244
+ *
245
+ * Per-request headers still win when an individual SDK method supplies `options.headers`.
246
+ */
247
+ defaultHeaders?: SdkCorrelationHeaders;
239
248
  /**
240
249
  * Cache configuration
241
250
  */
@@ -30,4 +30,4 @@ export { Page } from './rendering/components/Page';
30
30
  export type { PageProps } from './rendering/components/Page';
31
31
  export type { ContentEntryData } from './rendering/helpers/loadContent';
32
32
  export { createRiverbankClient } from './client/index';
33
- export type { RiverbankClient, RiverbankClientConfig } from './client/types';
33
+ export type { RiverbankClient, RiverbankClientConfig, SdkCorrelationHeaderName, SdkCorrelationHeaders, } from './client/types';
@@ -10,6 +10,7 @@ type UnknownRecord = Record<string, unknown>;
10
10
  type ImageMedia = Omit<Media, 'type'> & {
11
11
  type: 'image';
12
12
  };
13
+ type StandardAspectRatio = 'auto' | '16/9' | '4/3' | '1/1' | '3/4';
13
14
  export type SemanticSpacing = 'none' | 'compact' | 'cozy' | 'medium' | 'comfortable' | 'spacious';
14
15
  export type ImageColSize = '1/4' | '1/3' | '2/5' | '1/2' | '2/3';
15
16
  export type SectionStylesContent = {
@@ -94,6 +95,24 @@ export type BodyTextContent = {
94
95
  body: TipTapNode;
95
96
  alignment?: BodyTextAlignment | null;
96
97
  };
98
+ export type BlockCtaContent = {
99
+ label?: string | null;
100
+ href?: string | null;
101
+ link?: unknown;
102
+ variant?: string | null;
103
+ size?: string | null;
104
+ };
105
+ export type IntroContent = {
106
+ variant?: 'centered-copy' | 'statement-copy' | 'statement-media' | 'media-copy' | null;
107
+ title?: string | null;
108
+ body: TipTapNode;
109
+ media?: Media | null;
110
+ imagePosition?: 'left' | 'right' | null;
111
+ gap?: SemanticSpacing | null;
112
+ ratio?: ImageColSize | null;
113
+ aspectRatio?: StandardAspectRatio | null;
114
+ ctas?: BlockCtaContent[] | null;
115
+ };
97
116
  export type CollectionContent = {
98
117
  layout?: 'grid' | 'stack' | null;
99
118
  columns?: string | number | null;
@@ -293,6 +312,20 @@ export type FaqContent = {
293
312
  items?: FaqItem[] | null;
294
313
  _containerStyles?: ContainerStylesContent;
295
314
  };
315
+ export type FeatureCard = {
316
+ media?: Media | null;
317
+ aspectRatio?: StandardAspectRatio | null;
318
+ title: string;
319
+ body?: TipTapNode | null;
320
+ ctas?: BlockCtaContent[] | null;
321
+ };
322
+ export type FeatureCardsContent = {
323
+ variant?: 'cards' | null;
324
+ title?: string | null;
325
+ description?: TipTapNode | null;
326
+ columns?: '2' | '3' | '4' | null;
327
+ cards?: FeatureCard[] | null;
328
+ };
296
329
  export type HeroCta = {
297
330
  label: string;
298
331
  link: LinkValue;
@@ -582,8 +615,10 @@ export type GiftingContent = {
582
615
  };
583
616
  export type SystemBlockContentByFullKind = {
584
617
  'block.hero': HeroContent;
618
+ 'block.intro': IntroContent;
585
619
  'block.columns': ColumnsContent;
586
620
  'block.collection': CollectionContent;
621
+ 'block.feature-cards': FeatureCardsContent;
587
622
  'block.media-text': MediaTextContent;
588
623
  'block.cta-full': CtaFullContent;
589
624
  'block.single-button': SingleButtonContent;
@@ -7,7 +7,7 @@
7
7
  */
8
8
  export type Theme = {
9
9
  header?: {
10
- variant?: 'classic' | 'centered' | 'transparent' | 'floating' | 'editorial';
10
+ variant?: 'classic' | 'centered' | 'transparent' | 'floating';
11
11
  [key: string]: unknown;
12
12
  };
13
13
  footer?: {
@@ -18,7 +18,8 @@
18
18
  * @packageDocumentation
19
19
  */
20
20
  export { createRiverbankClient, RiverbankApiError } from './client/index';
21
- export type { RiverbankClient, RiverbankClientConfig, SdkAuthConfig, SiteResponse, PageResponse, EntriesResponse, EntriesResponseWithMeta, PaginationMeta, EntryResponse, ResilienceConfig, ResilienceStatus, ResilienceSource, CircuitState, RetryConfig, CircuitBreakerConfig, } from './client/types';
21
+ export { SDK_CORRELATION_HEADER_NAMES } from './client/types';
22
+ export type { RiverbankClient, RiverbankClientConfig, SdkCorrelationHeaderName, SdkCorrelationHeaders, SdkAuthConfig, SiteResponse, PageResponse, EntriesResponse, EntriesResponseWithMeta, PaginationMeta, EntryResponse, ResilienceConfig, ResilienceStatus, ResilienceSource, CircuitState, RetryConfig, CircuitBreakerConfig, } from './client/types';
22
23
  export { prebuildCache } from './prebuild/index';
23
24
  export type { PrebuildOptions, PrebuildResult, PrebuildProgress, PrebuildManifest, PrebuildContentType, } from './prebuild/types';
24
25
  export { PrebuildLoader, createPrebuildLoader, canUsePrebuild, } from './prebuild/loader';
@@ -307,6 +307,11 @@ export type SiteResponse = {
307
307
  selectionButtonPersonalityId?: string | null;
308
308
  selectionPaletteVariantId?: string | null;
309
309
  selectionPaletteOverrides?: Record<string, string> | null;
310
+ selectionHeaderLayoutId?: string | null;
311
+ selectionHeaderStyleId?: string | null;
312
+ selectionTypographyPresetId?: string | null;
313
+ selectionTypographyBodyFontOverride?: string | null;
314
+ selectionTypographyHeadingFontOverride?: string | null;
310
315
  selectionHeaderLookId?: string | null;
311
316
  selectionFooterLookId?: string | null;
312
317
  navigation: NavigationMenuWithItems[];
@@ -29,7 +29,7 @@ export type LayoutProps = {
29
29
  children: React.ReactNode;
30
30
  header?: boolean | ((data: HeaderData) => React.ReactNode);
31
31
  footer?: boolean | ((data: FooterData) => React.ReactNode);
32
- headerVariant?: 'classic' | 'centered' | 'transparent' | 'floating' | 'editorial';
32
+ headerVariant?: 'classic' | 'centered' | 'transparent' | 'floating';
33
33
  /**
34
34
  * Whether the current request has an active portal session.
35
35
  * Used to resolve portal navigation labels (e.g. "Login" vs "My account").
@@ -58,7 +58,7 @@ export type LayoutProps = {
58
58
  * the strict `@riverbankcms/sdk/rendering/server` surface stays bootstrap-free.
59
59
  * If a custom host renders hydratable CMS islands through the strict server
60
60
  * surface, mount `BlocksIslandsHydrator` from
61
- * `@riverbankcms/sdk/rendering/islands` explicitly.
61
+ * `@riverbankcms/sdk/rendering/islands` explicitly.
62
62
  *
63
63
  * @example With pre-fetched site data (recommended)
64
64
  * ```tsx
@@ -7,7 +7,7 @@
7
7
  * `@riverbankcms/blocks` (which is not a public dependency). This list is a
8
8
  * stable public contract; keep it in sync with the internal blocks runtime.
9
9
  */
10
- export declare const SYSTEM_BLOCK_KINDS: readonly ["block.hero", "block.columns", "block.collection", "block.media-text", "block.cta-full", "block.single-button", "block.body-text", "block.location-map", "block.faq", "block.testimonials", "block.team-members", "block.embed", "block.blog-post", "block.blog-listing", "block.site-header", "block.site-footer", "block.form", "block.appointment-booking", "block.event-registration", "block.event-details", "block.course-registration", "block.course-details", "block.event-spotlight", "block.event-listing", "block.event-calendar", "block.shop", "block.product-list", "block.product-detail", "block.cart", "block.checkout", "block.gifting", "block.newsletter-signup", "block.image-gallery", "block.video-grid", "block.audio-player", "block.file-download"];
10
+ export declare const SYSTEM_BLOCK_KINDS: readonly ["block.hero", "block.intro", "block.columns", "block.collection", "block.feature-cards", "block.media-text", "block.cta-full", "block.single-button", "block.body-text", "block.location-map", "block.faq", "block.testimonials", "block.team-members", "block.embed", "block.blog-post", "block.blog-listing", "block.site-header", "block.site-footer", "block.form", "block.appointment-booking", "block.event-registration", "block.event-details", "block.course-registration", "block.course-details", "block.event-spotlight", "block.event-listing", "block.event-calendar", "block.shop", "block.product-list", "block.product-detail", "block.cart", "block.checkout", "block.gifting", "block.newsletter-signup", "block.image-gallery", "block.video-grid", "block.audio-player", "block.file-download"];
11
11
  export type SystemBlockKind = (typeof SYSTEM_BLOCK_KINDS)[number];
12
12
  export type CustomBlockKind = `custom.${string}`;
13
13
  export type BlockKind = SystemBlockKind | CustomBlockKind;
@@ -8,4 +8,4 @@
8
8
  * 1. This constant
9
9
  * 2. The "version" field in package.json
10
10
  */
11
- export declare const SDK_VERSION = "0.76.0";
11
+ export declare const SDK_VERSION = "0.77.1";
@@ -43,7 +43,12 @@ export declare const applySiteStyleSelectionCommandSchema: z.ZodObject<{
43
43
  buttonPersonalityId: z.ZodNullable<z.ZodString>;
44
44
  paletteVariantId: z.ZodNullable<z.ZodString>;
45
45
  paletteOverrides: z.ZodNullable<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodString>>>;
46
+ typographyPresetId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
47
+ typographyBodyFontOverride: z.ZodOptional<z.ZodNullable<z.ZodString>>;
48
+ typographyHeadingFontOverride: z.ZodOptional<z.ZodNullable<z.ZodString>>;
46
49
  headerLookId: z.ZodNullable<z.ZodString>;
50
+ headerLayoutId: z.ZodString;
51
+ headerStyleId: z.ZodString;
47
52
  footerLookId: z.ZodNullable<z.ZodString>;
48
53
  baseSelectionVersion: z.ZodOptional<z.ZodNumber>;
49
54
  }, z.core.$strict>;
@@ -990,7 +995,12 @@ export declare const siteCommandSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
990
995
  buttonPersonalityId: z.ZodNullable<z.ZodString>;
991
996
  paletteVariantId: z.ZodNullable<z.ZodString>;
992
997
  paletteOverrides: z.ZodNullable<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodString>>>;
998
+ typographyPresetId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
999
+ typographyBodyFontOverride: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1000
+ typographyHeadingFontOverride: z.ZodOptional<z.ZodNullable<z.ZodString>>;
993
1001
  headerLookId: z.ZodNullable<z.ZodString>;
1002
+ headerLayoutId: z.ZodString;
1003
+ headerStyleId: z.ZodString;
994
1004
  footerLookId: z.ZodNullable<z.ZodString>;
995
1005
  baseSelectionVersion: z.ZodOptional<z.ZodNumber>;
996
1006
  }, z.core.$strict>;
@@ -1818,7 +1828,12 @@ export declare const siteCommandBatchSchema: z.ZodObject<{
1818
1828
  buttonPersonalityId: z.ZodNullable<z.ZodString>;
1819
1829
  paletteVariantId: z.ZodNullable<z.ZodString>;
1820
1830
  paletteOverrides: z.ZodNullable<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodString>>>;
1831
+ typographyPresetId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1832
+ typographyBodyFontOverride: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1833
+ typographyHeadingFontOverride: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1821
1834
  headerLookId: z.ZodNullable<z.ZodString>;
1835
+ headerLayoutId: z.ZodString;
1836
+ headerStyleId: z.ZodString;
1822
1837
  footerLookId: z.ZodNullable<z.ZodString>;
1823
1838
  baseSelectionVersion: z.ZodOptional<z.ZodNumber>;
1824
1839
  }, z.core.$strict>;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Earth Pill - warm studio pills with compact, primary-coloured ghost CTAs.
3
+ * Built for grounded editorial wellness styles such as Soft Earth.
4
+ */
5
+ export declare const earthPill: Readonly<{
6
+ id: import("./types").ButtonPersonalityId<"earth-pill">;
7
+ name: string;
8
+ description: string;
9
+ tags: Readonly<Partial<Readonly<{
10
+ tone: import("../../../../blocks/src/index").StyleTone;
11
+ energy: import("../../../../blocks/src/index").StyleEnergy;
12
+ motion: import("../../../../blocks/src/index").StyleMotion;
13
+ era: import("../../../../blocks/src/index").StyleEra;
14
+ }>>>;
15
+ buttonSystem: import("../../../../blocks/src/index").ButtonSystem;
16
+ }>;
@@ -20,6 +20,17 @@ export declare const buttonPersonalities: readonly [Readonly<{
20
20
  era: import("../../../../blocks/src/index").StyleEra;
21
21
  }>>>;
22
22
  buttonSystem: import("../../../../blocks/src/index").ButtonSystem;
23
+ }>, Readonly<{
24
+ id: ButtonPersonalityId<"earth-pill">;
25
+ name: string;
26
+ description: string;
27
+ tags: Readonly<Partial<Readonly<{
28
+ tone: import("../../../../blocks/src/index").StyleTone;
29
+ energy: import("../../../../blocks/src/index").StyleEnergy;
30
+ motion: import("../../../../blocks/src/index").StyleMotion;
31
+ era: import("../../../../blocks/src/index").StyleEra;
32
+ }>>>;
33
+ buttonSystem: import("../../../../blocks/src/index").ButtonSystem;
23
34
  }>, Readonly<{
24
35
  id: ButtonPersonalityId<"confident-chip">;
25
36
  name: string;
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Used by:
5
5
  * - packages/blocks: ThemeFontLoader
6
- * - apps/dashboard: Font settings, FontPicker
6
+ * - apps/dashboard: Font settings
7
7
  * - apps/frontend: Font loading
8
8
  */
9
9
  /**