@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
@@ -1,19 +1,143 @@
1
- import type { Theme } from '../schema';
1
+ import type { Theme, ThemeHeader } from '../schema';
2
2
  import { type SiteChromeLookDiagnostics } from './customizableSurfaces';
3
3
  import { type Brand } from './types';
4
- export declare const headerLookIdValues: readonly ["clean-base", "brand-solid", "editorial-line", "centered-calm", "practical-utility", "minimal-transparent", "transparent-overlay", "floating-glass"];
5
- export type HeaderLookIdValue = typeof headerLookIdValues[number];
4
+ export declare const headerLookIdValues: readonly ["clean-base", "brand-solid", "serif-line", "centered-calm", "practical-utility", "minimal-transparent", "transparent-overlay", "floating-glass"];
5
+ export type HeaderLookIdValue = (typeof headerLookIdValues)[number];
6
6
  export type HeaderLookId = Brand<HeaderLookIdValue, 'HeaderLookId'>;
7
7
  export declare function asHeaderLookId(value: HeaderLookIdValue): HeaderLookId;
8
- export type HeaderLookVisualTreatment = 'solid-neutral' | 'solid-brand' | 'light-editorial' | 'minimal-transparent' | 'transparent-overlay' | 'floating-glass';
8
+ export type PersistedHeaderLookIdParseResult = Readonly<{
9
+ kind: 'known';
10
+ id: HeaderLookId;
11
+ }> | Readonly<{
12
+ kind: 'unknown';
13
+ raw: string;
14
+ }> | Readonly<{
15
+ kind: 'empty';
16
+ }>;
17
+ export declare function parsePersistedHeaderLookId(value: string): Exclude<PersistedHeaderLookIdParseResult, {
18
+ kind: 'empty';
19
+ }>;
20
+ export declare function parsePersistedHeaderLookId(value: string | null | undefined): PersistedHeaderLookIdParseResult;
21
+ export declare const headerLayoutIdValues: readonly ["classic", "centered", "floating"];
22
+ export type HeaderLayoutIdValue = (typeof headerLayoutIdValues)[number];
23
+ export type HeaderLayoutId = Brand<HeaderLayoutIdValue, 'HeaderLayoutId'>;
24
+ export declare function asHeaderLayoutId(value: HeaderLayoutIdValue): HeaderLayoutId;
25
+ export type PersistedHeaderLayoutIdParseResult = Readonly<{
26
+ kind: 'known';
27
+ id: HeaderLayoutId;
28
+ }> | Readonly<{
29
+ kind: 'unknown';
30
+ raw: string;
31
+ }> | Readonly<{
32
+ kind: 'empty';
33
+ }>;
34
+ export declare function parsePersistedHeaderLayoutId(value: string): Exclude<PersistedHeaderLayoutIdParseResult, {
35
+ kind: 'empty';
36
+ }>;
37
+ export declare function parsePersistedHeaderLayoutId(value: string | null | undefined): PersistedHeaderLayoutIdParseResult;
38
+ export declare const headerStyleIdValues: readonly ["minimal", "fine-line", "soft-bar", "pill-nav", "brand-bar", "brand-underline", "brand-pill", "serif-line", "flat-tabs", "glass", "minimal-surface", "soft-shell", "split-glass", "split-pill"];
39
+ export type HeaderStyleIdValue = (typeof headerStyleIdValues)[number];
40
+ export type HeaderStyleId = Brand<HeaderStyleIdValue, 'HeaderStyleId'>;
41
+ export declare function asHeaderStyleId(value: HeaderStyleIdValue): HeaderStyleId;
42
+ export type PersistedHeaderStyleIdParseResult = Readonly<{
43
+ kind: 'known';
44
+ id: HeaderStyleId;
45
+ }> | Readonly<{
46
+ kind: 'unknown';
47
+ raw: string;
48
+ }> | Readonly<{
49
+ kind: 'empty';
50
+ }>;
51
+ export declare function parsePersistedHeaderStyleId(value: string): Exclude<PersistedHeaderStyleIdParseResult, {
52
+ kind: 'empty';
53
+ }>;
54
+ export declare function parsePersistedHeaderStyleId(value: string | null | undefined): PersistedHeaderStyleIdParseResult;
55
+ export type HeaderLayoutDefinition = Readonly<{
56
+ id: HeaderLayoutId;
57
+ label: string;
58
+ description: string;
59
+ structure: HeaderStructureId;
60
+ variant: ThemeHeader['variant'];
61
+ defaultPositioning: ThemeHeader['positioning'];
62
+ shrinkOnScroll: boolean;
63
+ maxRecommendedNavItems?: number;
64
+ allowedLogoShapes?: readonly HeaderLogoShape[];
65
+ }>;
66
+ export type HeaderStyleNavInteraction = 'color-change' | 'underline-grow' | 'pill-background' | 'flat-block' | 'glass-backed';
67
+ export type HeaderStyleSurface = 'neutral' | 'bordered' | 'soft' | 'brand-solid' | 'floating';
68
+ export type HeaderStyleDefinition = Readonly<{
69
+ id: HeaderStyleId;
70
+ label: string;
71
+ description: string;
72
+ supportedLayoutIds: readonly HeaderLayoutId[];
73
+ navInteraction: HeaderStyleNavInteraction;
74
+ surface: HeaderStyleSurface;
75
+ navTypography: HeaderStyleNavTypography;
76
+ }>;
77
+ export type HeaderLayoutStyleSelection = Readonly<{
78
+ layoutId: HeaderLayoutId;
79
+ styleId: HeaderStyleId;
80
+ }>;
81
+ export type HeaderStyleChoiceSource = Readonly<{
82
+ id: HeaderStyleId;
83
+ }>;
84
+ export type HeaderLayoutChoiceSource = Readonly<{
85
+ id: HeaderLayoutId;
86
+ }>;
87
+ export type HeaderStyleChoicesByLayout = Readonly<Partial<Record<HeaderLayoutIdValue, readonly HeaderStyleChoiceSource[]>>>;
88
+ export type HeaderLayoutStyleCuration = Readonly<{
89
+ recommendedHeaderLayoutChoices: readonly HeaderLayoutChoiceSource[];
90
+ recommendedHeaderStyleChoicesByLayout: HeaderStyleChoicesByLayout;
91
+ }>;
92
+ export type HeaderLegacyLookAlias = Readonly<{
93
+ lookId: HeaderLookId;
94
+ selection: HeaderLayoutStyleSelection;
95
+ }>;
96
+ export type HeaderLayoutStyleRepair = Readonly<{
97
+ requested: HeaderLayoutStyleSelection;
98
+ resolved: HeaderLayoutStyleSelection;
99
+ reason: 'style-incompatible-with-layout';
100
+ }>;
101
+ export type HeaderLayoutStyleResolution = Readonly<{
102
+ kind: 'valid';
103
+ selection: HeaderLayoutStyleSelection;
104
+ layout: HeaderLayoutDefinition;
105
+ style: HeaderStyleDefinition;
106
+ }> | Readonly<{
107
+ kind: 'repaired';
108
+ selection: HeaderLayoutStyleSelection;
109
+ layout: HeaderLayoutDefinition;
110
+ style: HeaderStyleDefinition;
111
+ repair: HeaderLayoutStyleRepair;
112
+ }>;
113
+ export type HeaderLookVisualTreatment = 'solid-neutral' | 'solid-brand' | 'light-serif' | 'minimal-transparent' | 'transparent-overlay' | 'floating-glass';
9
114
  export type HeaderLookLayoutBehavior = 'normal-flow' | 'sticky' | 'sticky-shrink' | 'fixed-overlay' | 'fixed-floating';
115
+ export type HeaderStructureId = 'inline-classic' | 'centered-stack' | 'floating-shell';
116
+ export type HeaderTreatmentId = HeaderLookVisualTreatment;
117
+ export type HeaderBehaviorId = HeaderLookLayoutBehavior;
118
+ export type HeaderConfiguration = Readonly<{
119
+ structure: HeaderStructureId;
120
+ treatment: HeaderTreatmentId;
121
+ behavior: HeaderBehaviorId;
122
+ }>;
123
+ export type HeaderConfigurationRejectionReason = 'unsupported-structure-treatment-behavior-combination';
124
+ export type HeaderConfigurationResolution = Readonly<{
125
+ kind: 'valid';
126
+ configuration: HeaderConfiguration;
127
+ }> | Readonly<{
128
+ kind: 'rejected';
129
+ requested: HeaderConfiguration;
130
+ reasons: readonly HeaderConfigurationRejectionReason[];
131
+ }>;
10
132
  export type HeaderLookOpeningRequirement = 'none' | 'reserved-space-ok' | 'requires-image-hero-with-contrast-overlay';
11
133
  export type HeaderLogoShape = 'none' | 'text-only' | 'horizontal' | 'square' | 'tall';
134
+ export type HeaderStyleNavTypography = 'plain' | 'heading' | 'quiet-caps' | 'brand-caps';
12
135
  export type HeaderLookDefinition = Readonly<{
13
136
  id: HeaderLookId;
14
137
  label: string;
15
138
  visualTreatment: HeaderLookVisualTreatment;
16
139
  layoutBehavior: HeaderLookLayoutBehavior;
140
+ configuration: HeaderConfiguration;
17
141
  openingRequirement: HeaderLookOpeningRequirement;
18
142
  maxRecommendedNavItems?: number;
19
143
  allowedLogoShapes?: readonly HeaderLogoShape[];
@@ -25,12 +149,32 @@ export type HeaderOpeningSectionContext = Readonly<{
25
149
  canAdjust: false;
26
150
  }> | Readonly<{
27
151
  kind: 'plain';
28
- canAdjust: false;
152
+ canAdjust: boolean;
153
+ }> | Readonly<{
154
+ kind: 'page-background';
155
+ canAdjust: true;
156
+ }> | Readonly<{
157
+ kind: 'color-section';
158
+ contrast: 'light' | 'dark' | 'unknown';
159
+ canAdjust: boolean;
160
+ }> | Readonly<{
161
+ kind: 'gradient-section';
162
+ contrast: 'light' | 'dark' | 'unknown';
163
+ canAdjust: boolean;
164
+ }> | Readonly<{
165
+ kind: 'dynamic-media';
166
+ canAdjust: boolean;
29
167
  }> | Readonly<{
30
168
  kind: 'image-hero';
31
169
  hasContrastOverlay: boolean;
32
170
  hasTopSpacing: boolean;
33
- canAdjust: false;
171
+ canAdjust: boolean;
172
+ }>;
173
+ export type OverlayHeaderOpeningPlan = Readonly<{
174
+ canRender: true;
175
+ contrastIntent: 'theme-default' | 'light-on-dark' | 'dark-on-light';
176
+ topSpacing: 'preserve' | 'add';
177
+ legibilityFallback: 'none' | 'glass-nav-backing';
34
178
  }>;
35
179
  export type HeaderLogoContext = Readonly<{
36
180
  shape: HeaderLogoShape;
@@ -43,7 +187,6 @@ export type HeaderCtaContext = Readonly<{
43
187
  }>;
44
188
  export type HeaderBannerContext = Readonly<{
45
189
  persistentVisibility: 'none' | 'possible' | 'visible';
46
- shellCanOffsetOverlayHeader: boolean;
47
190
  }>;
48
191
  export type HeaderSelectionContext = Readonly<{
49
192
  openingSection: HeaderOpeningSectionContext;
@@ -52,7 +195,7 @@ export type HeaderSelectionContext = Readonly<{
52
195
  cta: HeaderCtaContext;
53
196
  banner: HeaderBannerContext;
54
197
  }>;
55
- export type RejectedHeaderLookReason = 'requires-image-hero-with-contrast-overlay' | 'requires-opening-section-top-spacing' | 'requires-banner-offset-shell' | 'too-many-nav-items' | 'logo-shape-incompatible' | 'cta-treatment-unavailable';
198
+ export type RejectedHeaderLookReason = 'requires-image-hero-with-contrast-overlay' | 'too-many-nav-items' | 'logo-shape-incompatible' | 'cta-treatment-unavailable';
56
199
  export type RejectedHeaderLook = Readonly<{
57
200
  lookId: HeaderLookId;
58
201
  reasons: readonly RejectedHeaderLookReason[];
@@ -70,9 +213,212 @@ export type HeaderLookResolutionInput = Readonly<{
70
213
  context?: Partial<HeaderSelectionContext>;
71
214
  }>;
72
215
  export declare const defaultHeaderSelectionContext: HeaderSelectionContext;
216
+ export declare function planOverlayHeaderOpening(opening: HeaderOpeningSectionContext): OverlayHeaderOpeningPlan;
217
+ export declare const headerLayoutCatalog: readonly [{
218
+ readonly id: HeaderLayoutId;
219
+ readonly label: "Classic";
220
+ readonly description: "Logo and navigation in one practical horizontal row.";
221
+ readonly structure: "inline-classic";
222
+ readonly variant: "classic";
223
+ readonly defaultPositioning: "sticky";
224
+ readonly shrinkOnScroll: false;
225
+ }, {
226
+ readonly id: HeaderLayoutId;
227
+ readonly label: "Centered";
228
+ readonly description: "Logo centered above a balanced navigation row.";
229
+ readonly structure: "centered-stack";
230
+ readonly variant: "centered";
231
+ readonly defaultPositioning: "static";
232
+ readonly shrinkOnScroll: false;
233
+ readonly maxRecommendedNavItems: 5;
234
+ readonly allowedLogoShapes: readonly ["none", "text-only", "horizontal", "square"];
235
+ }, {
236
+ readonly id: HeaderLayoutId;
237
+ readonly label: "Floating";
238
+ readonly description: "Detached header chrome that sits over the opening section.";
239
+ readonly structure: "floating-shell";
240
+ readonly variant: "floating";
241
+ readonly defaultPositioning: "fixed";
242
+ readonly shrinkOnScroll: true;
243
+ readonly maxRecommendedNavItems: 5;
244
+ readonly allowedLogoShapes: readonly ["none", "text-only", "horizontal"];
245
+ }];
246
+ export declare const headerStyleCatalog: readonly [{
247
+ readonly id: HeaderStyleId;
248
+ readonly label: "Minimal";
249
+ readonly description: "Quiet surface with simple color-change navigation.";
250
+ readonly supportedLayoutIds: readonly HeaderLayoutId[];
251
+ readonly navInteraction: "color-change";
252
+ readonly surface: "neutral";
253
+ readonly navTypography: "plain";
254
+ }, {
255
+ readonly id: HeaderStyleId;
256
+ readonly label: "Fine Line";
257
+ readonly description: "Light surface with a crisp lower rule and underline hover.";
258
+ readonly supportedLayoutIds: readonly HeaderLayoutId[];
259
+ readonly navInteraction: "underline-grow";
260
+ readonly surface: "bordered";
261
+ readonly navTypography: "plain";
262
+ }, {
263
+ readonly id: HeaderStyleId;
264
+ readonly label: "Soft Bar";
265
+ readonly description: "Soft tinted surface with gentle pill hover states.";
266
+ readonly supportedLayoutIds: readonly HeaderLayoutId[];
267
+ readonly navInteraction: "pill-background";
268
+ readonly surface: "soft";
269
+ readonly navTypography: "plain";
270
+ }, {
271
+ readonly id: HeaderStyleId;
272
+ readonly label: "Pill Nav";
273
+ readonly description: "A calm pill navigation rail over a neutral header.";
274
+ readonly supportedLayoutIds: readonly HeaderLayoutId[];
275
+ readonly navInteraction: "pill-background";
276
+ readonly surface: "soft";
277
+ readonly navTypography: "plain";
278
+ }, {
279
+ readonly id: HeaderStyleId;
280
+ readonly label: "Brand Bar";
281
+ readonly description: "Solid brand surface with high-contrast navigation.";
282
+ readonly supportedLayoutIds: readonly HeaderLayoutId[];
283
+ readonly navInteraction: "color-change";
284
+ readonly surface: "brand-solid";
285
+ readonly navTypography: "brand-caps";
286
+ }, {
287
+ readonly id: HeaderStyleId;
288
+ readonly label: "Brand Underline";
289
+ readonly description: "Brand surface with underline-grow navigation.";
290
+ readonly supportedLayoutIds: readonly HeaderLayoutId[];
291
+ readonly navInteraction: "underline-grow";
292
+ readonly surface: "brand-solid";
293
+ readonly navTypography: "brand-caps";
294
+ }, {
295
+ readonly id: HeaderStyleId;
296
+ readonly label: "Brand Pill";
297
+ readonly description: "Solid brand surface with rounded active and hover states.";
298
+ readonly supportedLayoutIds: readonly HeaderLayoutId[];
299
+ readonly navInteraction: "pill-background";
300
+ readonly surface: "brand-solid";
301
+ readonly navTypography: "brand-caps";
302
+ }, {
303
+ readonly id: HeaderStyleId;
304
+ readonly label: "Serif Line";
305
+ readonly description: "Typographic logo treatment with understated underline navigation.";
306
+ readonly supportedLayoutIds: readonly HeaderLayoutId[];
307
+ readonly navInteraction: "underline-grow";
308
+ readonly surface: "bordered";
309
+ readonly navTypography: "heading";
310
+ }, {
311
+ readonly id: HeaderStyleId;
312
+ readonly label: "Flat Tabs";
313
+ readonly description: "Flat block hover and active states with a Swiss utility feel.";
314
+ readonly supportedLayoutIds: readonly HeaderLayoutId[];
315
+ readonly navInteraction: "flat-block";
316
+ readonly surface: "bordered";
317
+ readonly navTypography: "quiet-caps";
318
+ }, {
319
+ readonly id: HeaderStyleId;
320
+ readonly label: "Glass";
321
+ readonly description: "Translucent chrome with frosted navigation backing.";
322
+ readonly supportedLayoutIds: readonly HeaderLayoutId[];
323
+ readonly navInteraction: "glass-backed";
324
+ readonly surface: "floating";
325
+ readonly navTypography: "plain";
326
+ }, {
327
+ readonly id: HeaderStyleId;
328
+ readonly label: "Clear Split";
329
+ readonly description: "Floating logo with transparent navigation and no shared shell.";
330
+ readonly supportedLayoutIds: readonly HeaderLayoutId[];
331
+ readonly navInteraction: "color-change";
332
+ readonly surface: "floating";
333
+ readonly navTypography: "plain";
334
+ }, {
335
+ readonly id: HeaderStyleId;
336
+ readonly label: "Soft Shell";
337
+ readonly description: "Floating rounded shell with soft pill navigation states.";
338
+ readonly supportedLayoutIds: readonly HeaderLayoutId[];
339
+ readonly navInteraction: "pill-background";
340
+ readonly surface: "floating";
341
+ readonly navTypography: "plain";
342
+ }, {
343
+ readonly id: HeaderStyleId;
344
+ readonly label: "Split Glass";
345
+ readonly description: "Logo floats independently while the navigation sits in a glass rail.";
346
+ readonly supportedLayoutIds: readonly HeaderLayoutId[];
347
+ readonly navInteraction: "glass-backed";
348
+ readonly surface: "floating";
349
+ readonly navTypography: "quiet-caps";
350
+ }, {
351
+ readonly id: HeaderStyleId;
352
+ readonly label: "Split Pill";
353
+ readonly description: "Logo floats independently with a soft pill-backed navigation rail.";
354
+ readonly supportedLayoutIds: readonly HeaderLayoutId[];
355
+ readonly navInteraction: "pill-background";
356
+ readonly surface: "floating";
357
+ readonly navTypography: "heading";
358
+ }];
359
+ export declare const legacyHeaderLookAliases: readonly [{
360
+ readonly lookId: HeaderLookId;
361
+ readonly selection: {
362
+ readonly layoutId: HeaderLayoutId;
363
+ readonly styleId: HeaderStyleId;
364
+ };
365
+ }, {
366
+ readonly lookId: HeaderLookId;
367
+ readonly selection: {
368
+ readonly layoutId: HeaderLayoutId;
369
+ readonly styleId: HeaderStyleId;
370
+ };
371
+ }, {
372
+ readonly lookId: HeaderLookId;
373
+ readonly selection: {
374
+ readonly layoutId: HeaderLayoutId;
375
+ readonly styleId: HeaderStyleId;
376
+ };
377
+ }, {
378
+ readonly lookId: HeaderLookId;
379
+ readonly selection: {
380
+ readonly layoutId: HeaderLayoutId;
381
+ readonly styleId: HeaderStyleId;
382
+ };
383
+ }, {
384
+ readonly lookId: HeaderLookId;
385
+ readonly selection: {
386
+ readonly layoutId: HeaderLayoutId;
387
+ readonly styleId: HeaderStyleId;
388
+ };
389
+ }, {
390
+ readonly lookId: HeaderLookId;
391
+ readonly selection: {
392
+ readonly layoutId: HeaderLayoutId;
393
+ readonly styleId: HeaderStyleId;
394
+ };
395
+ }, {
396
+ readonly lookId: HeaderLookId;
397
+ readonly selection: {
398
+ readonly layoutId: HeaderLayoutId;
399
+ readonly styleId: HeaderStyleId;
400
+ };
401
+ }, {
402
+ readonly lookId: HeaderLookId;
403
+ readonly selection: {
404
+ readonly layoutId: HeaderLayoutId;
405
+ readonly styleId: HeaderStyleId;
406
+ };
407
+ }];
408
+ export declare function getHeaderLayout(id: HeaderLayoutId): HeaderLayoutDefinition | null;
409
+ export declare function getHeaderStyle(id: HeaderStyleId): HeaderStyleDefinition | null;
410
+ export declare function isHeaderStyleCompatibleWithLayout(style: HeaderStyleDefinition, layoutId: HeaderLayoutId): boolean;
411
+ export declare function resolveLegacyHeaderLookAlias(lookId: HeaderLookId): HeaderLayoutStyleSelection | null;
412
+ export declare function findLegacyHeaderLookIdForSelection(selection: HeaderLayoutStyleSelection): HeaderLookId | null;
413
+ export declare function getCompatibleHeaderStyleIds(layoutId: HeaderLayoutId): readonly HeaderStyleId[];
414
+ export declare function getOrderedHeaderLayoutIdsForCuration(curation: HeaderLayoutStyleCuration): readonly HeaderLayoutId[];
415
+ export declare function getOrderedHeaderStyleIdsForLayout(curation: HeaderLayoutStyleCuration, layoutId: HeaderLayoutId): readonly HeaderStyleId[];
416
+ export declare function deriveNearestCompatibleHeaderStyle(styleId: HeaderStyleId, layoutId: HeaderLayoutId): HeaderStyleId;
417
+ export declare function resolveHeaderLayoutStyleSelection(selection: HeaderLayoutStyleSelection): HeaderLayoutStyleResolution;
418
+ export declare function compileHeaderLayoutStyleSelection(theme: Theme, selection: HeaderLayoutStyleSelection): Theme['header'];
73
419
  declare function solidBrandHeader(theme: Theme): Theme['header'];
74
420
  declare function cleanBaseHeader(theme: Theme): Theme['header'];
75
- declare function editorialLineHeader(theme: Theme): Theme['header'];
421
+ declare function serifLineHeader(theme: Theme): Theme['header'];
76
422
  declare function centeredCalmHeader(theme: Theme): Theme['header'];
77
423
  declare function practicalUtilityHeader(theme: Theme): Theme['header'];
78
424
  declare function minimalTransparentHeader(theme: Theme): Theme['header'];
@@ -83,6 +429,11 @@ export declare const headerLookCatalog: readonly [{
83
429
  readonly label: "Clean base";
84
430
  readonly visualTreatment: "solid-neutral";
85
431
  readonly layoutBehavior: "sticky";
432
+ readonly configuration: {
433
+ readonly structure: "inline-classic";
434
+ readonly treatment: "solid-neutral";
435
+ readonly behavior: "sticky";
436
+ };
86
437
  readonly openingRequirement: "none";
87
438
  readonly compile: typeof cleanBaseHeader;
88
439
  }, {
@@ -90,21 +441,36 @@ export declare const headerLookCatalog: readonly [{
90
441
  readonly label: "Brand solid";
91
442
  readonly visualTreatment: "solid-brand";
92
443
  readonly layoutBehavior: "sticky-shrink";
444
+ readonly configuration: {
445
+ readonly structure: "inline-classic";
446
+ readonly treatment: "solid-brand";
447
+ readonly behavior: "sticky-shrink";
448
+ };
93
449
  readonly openingRequirement: "none";
94
450
  readonly compile: typeof solidBrandHeader;
95
451
  }, {
96
452
  readonly id: HeaderLookId;
97
- readonly label: "Editorial line";
98
- readonly visualTreatment: "light-editorial";
453
+ readonly label: "Serif line";
454
+ readonly visualTreatment: "light-serif";
99
455
  readonly layoutBehavior: "sticky";
456
+ readonly configuration: {
457
+ readonly structure: "centered-stack";
458
+ readonly treatment: "light-serif";
459
+ readonly behavior: "sticky";
460
+ };
100
461
  readonly openingRequirement: "none";
101
462
  readonly maxRecommendedNavItems: 6;
102
- readonly compile: typeof editorialLineHeader;
463
+ readonly compile: typeof serifLineHeader;
103
464
  }, {
104
465
  readonly id: HeaderLookId;
105
466
  readonly label: "Centered calm";
106
- readonly visualTreatment: "light-editorial";
467
+ readonly visualTreatment: "light-serif";
107
468
  readonly layoutBehavior: "normal-flow";
469
+ readonly configuration: {
470
+ readonly structure: "centered-stack";
471
+ readonly treatment: "light-serif";
472
+ readonly behavior: "normal-flow";
473
+ };
108
474
  readonly openingRequirement: "none";
109
475
  readonly maxRecommendedNavItems: 5;
110
476
  readonly allowedLogoShapes: readonly ["none", "text-only", "horizontal", "square"];
@@ -114,6 +480,11 @@ export declare const headerLookCatalog: readonly [{
114
480
  readonly label: "Practical utility";
115
481
  readonly visualTreatment: "solid-neutral";
116
482
  readonly layoutBehavior: "sticky-shrink";
483
+ readonly configuration: {
484
+ readonly structure: "inline-classic";
485
+ readonly treatment: "solid-neutral";
486
+ readonly behavior: "sticky-shrink";
487
+ };
117
488
  readonly openingRequirement: "none";
118
489
  readonly requiresProminentCta: true;
119
490
  readonly compile: typeof practicalUtilityHeader;
@@ -122,6 +493,11 @@ export declare const headerLookCatalog: readonly [{
122
493
  readonly label: "Minimal transparent";
123
494
  readonly visualTreatment: "minimal-transparent";
124
495
  readonly layoutBehavior: "normal-flow";
496
+ readonly configuration: {
497
+ readonly structure: "inline-classic";
498
+ readonly treatment: "minimal-transparent";
499
+ readonly behavior: "normal-flow";
500
+ };
125
501
  readonly openingRequirement: "reserved-space-ok";
126
502
  readonly compile: typeof minimalTransparentHeader;
127
503
  }, {
@@ -129,6 +505,11 @@ export declare const headerLookCatalog: readonly [{
129
505
  readonly label: "Transparent overlay";
130
506
  readonly visualTreatment: "transparent-overlay";
131
507
  readonly layoutBehavior: "fixed-overlay";
508
+ readonly configuration: {
509
+ readonly structure: "inline-classic";
510
+ readonly treatment: "transparent-overlay";
511
+ readonly behavior: "fixed-overlay";
512
+ };
132
513
  readonly openingRequirement: "requires-image-hero-with-contrast-overlay";
133
514
  readonly maxRecommendedNavItems: 5;
134
515
  readonly allowedLogoShapes: readonly ["none", "text-only", "horizontal"];
@@ -138,12 +519,20 @@ export declare const headerLookCatalog: readonly [{
138
519
  readonly label: "Floating glass";
139
520
  readonly visualTreatment: "floating-glass";
140
521
  readonly layoutBehavior: "fixed-floating";
522
+ readonly configuration: {
523
+ readonly structure: "floating-shell";
524
+ readonly treatment: "floating-glass";
525
+ readonly behavior: "fixed-floating";
526
+ };
141
527
  readonly openingRequirement: "requires-image-hero-with-contrast-overlay";
142
528
  readonly maxRecommendedNavItems: 5;
143
529
  readonly allowedLogoShapes: readonly ["none", "text-only", "horizontal"];
144
530
  readonly compile: typeof floatingGlassHeader;
145
531
  }];
146
532
  export declare const guaranteedFallbackHeaderLookId: HeaderLookId;
533
+ export declare const guaranteedFallbackHeaderLayoutId: HeaderLayoutId;
534
+ export declare const guaranteedFallbackHeaderStyleId: HeaderStyleId;
535
+ export declare function resolveHeaderConfiguration(configuration: HeaderConfiguration): HeaderConfigurationResolution;
147
536
  export declare function getHeaderLook(id: HeaderLookId): HeaderLookDefinition | null;
148
537
  export declare function findHeaderLook(id: HeaderLookId): HeaderLookDefinition | undefined;
149
538
  export declare function getHeaderLookOrThrow(id: HeaderLookId): HeaderLookDefinition;
@@ -5,10 +5,16 @@ export type HeaderOpeningSectionPlan<TBlockId extends DesignBlockId = DesignBloc
5
5
  plan: readonly BlockDesignPlan<TBlockId>[];
6
6
  repairs: readonly HeaderOpeningSectionRepair[];
7
7
  }>;
8
+ export type HeaderOpeningContentSnapshot = Readonly<{
9
+ blockKind: string | null;
10
+ content?: Record<string, unknown> | null;
11
+ canAdjust?: boolean;
12
+ }>;
8
13
  export declare function planGeneratedHeaderOpeningSection<TBlockId extends DesignBlockId>(input: Readonly<{
9
14
  plan: readonly BlockDesignPlan<TBlockId>[];
10
15
  recommendedHeaderLookIds: readonly HeaderLookId[];
11
16
  }>): HeaderOpeningSectionPlan<TBlockId>;
17
+ export declare function deriveHeaderOpeningSectionContextFromContent(input: HeaderOpeningContentSnapshot): HeaderOpeningSectionContext;
12
18
  export declare function deriveHeaderOpeningSectionContext(input: Readonly<{
13
19
  openingBlock: ResolvedBlockDesignPlan | null;
14
20
  openingContent?: Record<string, unknown> | null;
@@ -19,6 +19,7 @@ export * from './pageDesignEditorErrors';
19
19
  export * from './pageDesignEditorModel';
20
20
  export * from './pageDesignIntent';
21
21
  export * from './previewCustomization';
22
+ export * from './persistedIdParseResult';
22
23
  export * from './rawStyleFields';
23
24
  export * from './records';
24
25
  export * from './resolver';
@@ -27,4 +28,5 @@ export * from './siteStyleBlockPolicies';
27
28
  export * from './sourceCatalogs';
28
29
  export * from './styleTags';
29
30
  export * from './tokenRecipes';
31
+ export * from './typographyPresets';
30
32
  export * from './types';
@@ -0,0 +1,9 @@
1
+ export type PersistedIdParseResult<TId extends string> = Readonly<{
2
+ kind: 'known';
3
+ id: TId;
4
+ }> | Readonly<{
5
+ kind: 'unknown';
6
+ raw: string;
7
+ }> | Readonly<{
8
+ kind: 'empty';
9
+ }>;
@@ -3,8 +3,9 @@ import { type Theme } from '../schema';
3
3
  import { type ButtonPersonalityId } from '../buttons/personalities';
4
4
  import { type PaletteOverrides, type PaletteVariantId } from '../palette/variants';
5
5
  import { type CuratedSiteStyle } from './curatedSiteStyles';
6
+ import { type CompiledTypographySelection, type KnownTypographyPresetId, type TypographyPresetId, type TypographyPresetResolutionWarning, type TypographySelection } from './typographyPresets';
6
7
  import { type FooterLookId, type FooterSelectionContext, type FooterSelectionResult } from './footerLooks';
7
- import { type HeaderSelectionContext, type HeaderLookId, type HeaderSelectionResult } from './headerLooks';
8
+ import { type HeaderLayoutId, type HeaderSelectionContext, type HeaderLookId, type HeaderSelectionResult, type HeaderStyleId } from './headerLooks';
8
9
  import { type CompiledBlockRuntimeFields, type CompiledPageRuntime, type ComponentRuntimeRules, type DesignRuntimeRules, type SemanticSpacing, type SurfaceResolutionContext } from './runtimeCompiler';
9
10
  import type { AppearancePresetId, DesignBlockId, SiteStyleId } from './types';
10
11
  /**
@@ -22,7 +23,8 @@ export { repairDesignIssue, resolveBlockDesignPlan } from './resolver';
22
23
  export { cycleableOptionsFromResolved, deriveDesignCustomizationScope, recommendedDesignOption, type CycleableDesignOption, type CycleableOptions, type DesignCustomizationAuthority, type DesignCustomizationScope, type DesignCustomizationSurface, type DesignCustomizationUnsupportedReason, type DesignOptionIssue, type ResolvedDesignOption, } from './previewCustomization';
23
24
  export { compileBlockRuntimeFields, compilePageRuntimeFields, compileTokenRecipes, compiledRuntimeStyleFieldNames, defaultComponentRuntimeRules, defaultDesignRuntimeRules, surfaceResolutionContextFromPalette, surfaceResolutionContextFromTheme, stripCompiledRuntimeStyleFields, type CompiledBlockRuntime, type CompiledBlockRuntimeFields, type CompiledPageRuntime, type CompileBlockRuntimeInput, type ComponentRuntimeRules, type DesignRuntimeRules, type SemanticSpacing, type SurfaceResolutionContext, } from './runtimeCompiler';
24
25
  export { defaultCuratedChoice, requireEntriesForCuratedChoices, resolveCuratedChoice, type CuratedChoice, type CuratedChoiceResolution, } from './curatedChoices';
25
- export { curatedSiteStyles, defaultButtonPersonalityForSiteStyle, defaultPaletteVariantForSiteStyle, getCuratedSiteStyle, type CuratedSiteStyle, } from './curatedSiteStyles';
26
+ export { curatedSiteStyles, defaultButtonPersonalityForSiteStyle, defaultPaletteVariantForSiteStyle, defaultTypographyPresetForSiteStyle, getCuratedSiteStyle, type CuratedSiteStyle, } from './curatedSiteStyles';
27
+ export { asTypographyPresetId, compileTypographySelection, evaluateTypographyFontSlot, findTypographyPreset, parsePersistedTypographyPresetId, typographyPresetIdValues, typographyPresets, type CompiledTypographySelection, type GoogleFontCategory, type KnownTypographyPresetId, type KnownTypographyPresetIdValue, type TypographyFontCapability, type TypographyFontSlot, type TypographyFontSlotFit, type TypographyFontSlotPolicy, type TypographyPreset, type TypographyPresetId, type TypographyPresetResolutionWarning, type TypographySelection, } from './typographyPresets';
26
28
  export { asDesignBlockId, asSiteStyleId, makeBoundaryId, type AppearancePresetId, type BoundaryOptionId, type DesignBlockId, type DesignBoundaryId, type LayoutVariantKey, type NonEmptyReadonlyArray, type PageFlowPresetId, type ResolvedPageDesignPlan, type SiteStyleId, } from './types';
27
29
  export declare const previewCustomizePurpose: "preview-customize";
28
30
  /**
@@ -48,13 +50,19 @@ export type SelectionFallbackWarning = Readonly<{
48
50
  kind: 'rejected-palette';
49
51
  requested: string;
50
52
  fellBackTo: PaletteVariantId;
51
- }>;
53
+ }> | TypographyPresetResolutionWarning;
52
54
  export type SiteThemeSelectionsInput = Readonly<{
53
55
  siteStyle: CuratedSiteStyle;
54
56
  buttonPersonalityId: ButtonPersonalityId | null;
55
57
  paletteVariantId: PaletteVariantId | null;
56
58
  paletteOverrides: PaletteOverrides | null;
59
+ typographyPresetId?: TypographyPresetId | null;
60
+ typographyBodyFontOverride?: string | null;
61
+ typographyHeadingFontOverride?: string | null;
62
+ typographySelection?: TypographySelection | null;
57
63
  headerLookId?: HeaderLookId | null;
64
+ headerLayoutId?: HeaderLayoutId | null;
65
+ headerStyleId?: HeaderStyleId | null;
58
66
  footerLookId?: FooterLookId | null;
59
67
  headerSelectionContext?: Partial<HeaderSelectionContext>;
60
68
  footerSelectionContext?: Partial<FooterSelectionContext>;
@@ -63,12 +71,20 @@ export type SiteThemeSelectionsResult = Readonly<{
63
71
  theme: CuratedSiteStyleTheme;
64
72
  requestedSelections: Readonly<{
65
73
  headerLookId: HeaderLookId | null;
74
+ headerLayoutId: HeaderLayoutId | null;
75
+ headerStyleId: HeaderStyleId | null;
66
76
  footerLookId: FooterLookId | null;
67
77
  }>;
68
78
  resolvedSelections: Readonly<{
69
79
  buttonPersonalityId: ButtonPersonalityId;
70
80
  paletteVariantId: PaletteVariantId;
71
- headerLookId: HeaderLookId;
81
+ typographySelection: CompiledTypographySelection['resolvedSelection'];
82
+ typographyPresetId: KnownTypographyPresetId | null;
83
+ typographyBodyFontOverride: string | null;
84
+ typographyHeadingFontOverride: string | null;
85
+ headerLookId: HeaderLookId | null;
86
+ headerLayoutId: HeaderLayoutId;
87
+ headerStyleId: HeaderStyleId;
72
88
  footerLookId: FooterLookId;
73
89
  }>;
74
90
  headerSelection: HeaderSelectionResult;