@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
@@ -0,0 +1,50 @@
1
+ import type { PaletteColors, PaletteMode } from './colors';
2
+ import { type CuratedPalette, type CuratedPaletteId } from './curated';
3
+ import type { PaletteSelection, SitePalette, SitePaletteId } from './selection';
4
+ declare const resolvedPaletteSelectionBrand: unique symbol;
5
+ export type ResolvedCuratedPaletteSelection = Readonly<{
6
+ kind: 'curated';
7
+ selection: Extract<PaletteSelection, {
8
+ kind: 'curated';
9
+ }>;
10
+ colors: PaletteColors;
11
+ mode: PaletteMode;
12
+ [resolvedPaletteSelectionBrand]: true;
13
+ }>;
14
+ export type ResolvedSitePaletteSelection = Readonly<{
15
+ kind: 'site';
16
+ selection: Extract<PaletteSelection, {
17
+ kind: 'site';
18
+ }>;
19
+ colors: PaletteColors;
20
+ mode: PaletteMode;
21
+ version: SitePalette['version'];
22
+ [resolvedPaletteSelectionBrand]: true;
23
+ }>;
24
+ export type ResolvedPaletteSelection = ResolvedCuratedPaletteSelection | ResolvedSitePaletteSelection;
25
+ export type PaletteSelectionResolutionError = Readonly<{
26
+ kind: 'curated-palette-not-found';
27
+ paletteId: CuratedPaletteId;
28
+ }> | Readonly<{
29
+ kind: 'site-palette-not-found';
30
+ paletteId: SitePaletteId;
31
+ }>;
32
+ export type PaletteSelectionResolution = Readonly<{
33
+ ok: true;
34
+ resolved: ResolvedPaletteSelection;
35
+ }> | Readonly<{
36
+ ok: false;
37
+ error: PaletteSelectionResolutionError;
38
+ }>;
39
+ /** Core-owned constructors keep the resolved marker out of application code. */
40
+ export declare function resolvedCuratedPaletteSelection(palette: CuratedPalette): ResolvedCuratedPaletteSelection;
41
+ export declare function resolvedSitePaletteSelection(palette: SitePalette): ResolvedSitePaletteSelection;
42
+ /** Resolves a persisted selection against the records that actually own it. */
43
+ export declare function resolvePaletteSelection(input: Readonly<{
44
+ selection: PaletteSelection;
45
+ curatedPalettes: readonly CuratedPalette[];
46
+ sitePalettes: readonly SitePalette[];
47
+ }>): PaletteSelectionResolution;
48
+ /** Resolves catalog authority without asking callers to manufacture a brand. */
49
+ export declare function resolveCuratedPaletteSelection(paletteId: CuratedPaletteId): PaletteSelectionResolution;
50
+ export {};
@@ -0,0 +1,72 @@
1
+ import { z } from 'zod';
2
+ import { type CuratedPaletteId } from './curated/types';
3
+ import { type PaletteColors, type PaletteMode } from './colors';
4
+ export type SitePaletteId = string & {
5
+ readonly __brand: 'SitePaletteId';
6
+ };
7
+ export type SitePaletteVersion = number & {
8
+ readonly __brand: 'SitePaletteVersion';
9
+ };
10
+ export declare const sitePaletteIdSchema: z.ZodPipe<z.ZodString, z.ZodTransform<SitePaletteId, string>>;
11
+ export declare const sitePaletteVersionSchema: z.ZodPipe<z.ZodNumber, z.ZodTransform<SitePaletteVersion, number>>;
12
+ export declare function parseSitePaletteId(value: unknown): SitePaletteId | null;
13
+ export declare function parseSitePaletteVersion(value: unknown): SitePaletteVersion | null;
14
+ export type PaletteSelection = Readonly<{
15
+ kind: 'curated';
16
+ paletteId: CuratedPaletteId;
17
+ }> | Readonly<{
18
+ kind: 'site';
19
+ paletteId: SitePaletteId;
20
+ }>;
21
+ export declare const paletteSelectionSchema: z.ZodType<PaletteSelection>;
22
+ export type SitePaletteOrigin = Readonly<{
23
+ kind: 'onboarding';
24
+ sourceKey: string | null;
25
+ }> | Readonly<{
26
+ kind: 'curated-fork';
27
+ sourcePaletteId: CuratedPaletteId;
28
+ }> | Readonly<{
29
+ kind: 'manual';
30
+ }> | Readonly<{
31
+ kind: 'legacy-customized';
32
+ sourceKey: string | null;
33
+ }>;
34
+ export declare const sitePaletteOriginSchema: z.ZodType<SitePaletteOrigin>;
35
+ export type EditorSitePaletteOrigin = Extract<SitePaletteOrigin, {
36
+ kind: 'curated-fork';
37
+ }> | Extract<SitePaletteOrigin, {
38
+ kind: 'manual';
39
+ }>;
40
+ export type SitePalette = Readonly<{
41
+ id: SitePaletteId;
42
+ colors: PaletteColors;
43
+ mode: PaletteMode;
44
+ origin: SitePaletteOrigin;
45
+ version: SitePaletteVersion;
46
+ }>;
47
+ export declare const sitePaletteSchema: z.ZodType<SitePalette>;
48
+ export type PaletteCommand = Readonly<{
49
+ kind: 'preserve';
50
+ }> | Readonly<{
51
+ kind: 'select';
52
+ selection: PaletteSelection;
53
+ }> | Readonly<{
54
+ kind: 'create-site';
55
+ colors: PaletteColors;
56
+ mode: PaletteMode;
57
+ origin: EditorSitePaletteOrigin;
58
+ }> | Readonly<{
59
+ kind: 'update-site';
60
+ paletteId: SitePaletteId;
61
+ expectedVersion: SitePaletteVersion;
62
+ colors: PaletteColors;
63
+ mode: PaletteMode;
64
+ }>;
65
+ /** Server-only command shape for provisioning and legacy write-through. */
66
+ export type TrustedPaletteCommand = PaletteCommand | Readonly<{
67
+ kind: 'create-site';
68
+ colors: PaletteColors;
69
+ mode: PaletteMode;
70
+ origin: SitePaletteOrigin;
71
+ }>;
72
+ export declare const paletteCommandSchema: z.ZodType<PaletteCommand>;
@@ -0,0 +1,34 @@
1
+ import { type SitePalette } from './selection';
2
+ /** Structural persistence shape shared by every site-palette reader. */
3
+ export type SitePalettePersistenceRow = Readonly<{
4
+ id: string;
5
+ colors: unknown;
6
+ mode: string;
7
+ originKind: string;
8
+ originReference: string | null;
9
+ version: number;
10
+ }>;
11
+ export type SitePaletteParseError = Readonly<{
12
+ kind: 'invalid-site-palette-id';
13
+ value: string;
14
+ }> | Readonly<{
15
+ kind: 'invalid-site-palette-colors';
16
+ }> | Readonly<{
17
+ kind: 'invalid-site-palette-mode';
18
+ value: string;
19
+ }> | Readonly<{
20
+ kind: 'invalid-site-palette-origin';
21
+ originKind: string;
22
+ originReference: string | null;
23
+ }> | Readonly<{
24
+ kind: 'invalid-site-palette-version';
25
+ value: number;
26
+ }>;
27
+ export type SitePaletteParseResult = Readonly<{
28
+ ok: true;
29
+ palette: SitePalette;
30
+ }> | Readonly<{
31
+ ok: false;
32
+ error: SitePaletteParseError;
33
+ }>;
34
+ export declare function parseSitePalettePersistenceRow(row: SitePalettePersistenceRow): SitePaletteParseResult;
@@ -0,0 +1,58 @@
1
+ import { type PaletteTokenName } from '../tokens/themeColorTokens';
2
+ import { type PaletteColors, type PaletteMode } from './colors';
3
+ import type { PaletteOverrides } from './curated';
4
+ /**
5
+ * The persisted Theme palette boundary. It deliberately stays narrower than
6
+ * the full Theme schema so consumers do not need to depend on another package
7
+ * just to interpret old sparse palette entries.
8
+ */
9
+ export type ThemePaletteCompatibilityInput = Readonly<{
10
+ palette?: Readonly<{
11
+ colors: readonly Readonly<{
12
+ name: string;
13
+ hex: string;
14
+ }>[];
15
+ meta?: Readonly<{
16
+ mode?: unknown;
17
+ }> | null;
18
+ }> | null;
19
+ }>;
20
+ export type ThemePaletteCompatibilityError = Readonly<{
21
+ kind: 'missing-palette';
22
+ }> | Readonly<{
23
+ kind: 'invalid-mode';
24
+ }> | Readonly<{
25
+ kind: 'unknown-role';
26
+ role: string;
27
+ }> | Readonly<{
28
+ kind: 'duplicate-role';
29
+ role: PaletteTokenName;
30
+ }> | Readonly<{
31
+ kind: 'invalid-color';
32
+ role: PaletteTokenName;
33
+ value: string;
34
+ }> | Readonly<{
35
+ kind: 'invalid-complete-palette';
36
+ }>;
37
+ export type CompatibleThemePalette = Readonly<{
38
+ kind: 'complete';
39
+ colors: PaletteColors;
40
+ mode: PaletteMode;
41
+ }> | Readonly<{
42
+ kind: 'partial';
43
+ overrides: PaletteOverrides;
44
+ mode: PaletteMode;
45
+ }>;
46
+ export type ParseCompatibleThemePaletteResult = Readonly<{
47
+ ok: true;
48
+ palette: CompatibleThemePalette;
49
+ }> | Readonly<{
50
+ ok: false;
51
+ error: ThemePaletteCompatibilityError;
52
+ }>;
53
+ /**
54
+ * Parses both current complete Theme palettes and historical sparse palettes.
55
+ * Sparse entries remain sparse so callers can overlay them onto their own
56
+ * authoritative base without silently changing the persisted Theme shape.
57
+ */
58
+ export declare function parseCompatibleThemePalette(theme: ThemePaletteCompatibilityInput): ParseCompatibleThemePaletteResult;
@@ -2034,6 +2034,7 @@ export declare const headerSchema: z.ZodObject<{
2034
2034
  base: "base";
2035
2035
  sm: "sm";
2036
2036
  lg: "lg";
2037
+ xl: "xl";
2037
2038
  xs: "xs";
2038
2039
  }>>;
2039
2040
  container: z.ZodOptional<z.ZodObject<{
@@ -2152,6 +2153,7 @@ export declare const headerSchema: z.ZodObject<{
2152
2153
  base: "base";
2153
2154
  sm: "sm";
2154
2155
  lg: "lg";
2156
+ xl: "xl";
2155
2157
  xs: "xs";
2156
2158
  }>>;
2157
2159
  letterSpacing: z.ZodOptional<z.ZodEnum<{
@@ -2396,6 +2398,7 @@ export declare const footerSchema: z.ZodObject<{
2396
2398
  base: "base";
2397
2399
  sm: "sm";
2398
2400
  lg: "lg";
2401
+ xl: "xl";
2399
2402
  xs: "xs";
2400
2403
  }>>;
2401
2404
  letterSpacing: z.ZodOptional<z.ZodEnum<{
@@ -3548,6 +3551,7 @@ export declare const themeSchema: z.ZodObject<{
3548
3551
  base: "base";
3549
3552
  sm: "sm";
3550
3553
  lg: "lg";
3554
+ xl: "xl";
3551
3555
  xs: "xs";
3552
3556
  }>>;
3553
3557
  container: z.ZodOptional<z.ZodObject<{
@@ -3666,6 +3670,7 @@ export declare const themeSchema: z.ZodObject<{
3666
3670
  base: "base";
3667
3671
  sm: "sm";
3668
3672
  lg: "lg";
3673
+ xl: "xl";
3669
3674
  xs: "xs";
3670
3675
  }>>;
3671
3676
  letterSpacing: z.ZodOptional<z.ZodEnum<{
@@ -3895,6 +3900,7 @@ export declare const themeSchema: z.ZodObject<{
3895
3900
  base: "base";
3896
3901
  sm: "sm";
3897
3902
  lg: "lg";
3903
+ xl: "xl";
3898
3904
  xs: "xs";
3899
3905
  }>>;
3900
3906
  letterSpacing: z.ZodOptional<z.ZodEnum<{
@@ -5868,6 +5874,7 @@ export declare const themesTurnSchema: z.ZodObject<{
5868
5874
  base: "base";
5869
5875
  sm: "sm";
5870
5876
  lg: "lg";
5877
+ xl: "xl";
5871
5878
  xs: "xs";
5872
5879
  }>>;
5873
5880
  container: z.ZodOptional<z.ZodObject<{
@@ -5986,6 +5993,7 @@ export declare const themesTurnSchema: z.ZodObject<{
5986
5993
  base: "base";
5987
5994
  sm: "sm";
5988
5995
  lg: "lg";
5996
+ xl: "xl";
5989
5997
  xs: "xs";
5990
5998
  }>>;
5991
5999
  letterSpacing: z.ZodOptional<z.ZodEnum<{
@@ -6215,6 +6223,7 @@ export declare const themesTurnSchema: z.ZodObject<{
6215
6223
  base: "base";
6216
6224
  sm: "sm";
6217
6225
  lg: "lg";
6226
+ xl: "xl";
6218
6227
  xs: "xs";
6219
6228
  }>>;
6220
6229
  letterSpacing: z.ZodOptional<z.ZodEnum<{
@@ -1,5 +1,5 @@
1
1
  import { type ButtonPersonalityId, type KnownButtonPersonalityId } from '../buttons/personalities';
2
- import { type KnownPaletteVariantId, type PaletteVariantId } from '../palette/variants';
2
+ import { type KnownCuratedPaletteId, type CuratedPaletteId } from '../palette/curated';
3
3
  import type { Theme } from '../schema';
4
4
  import { type HeaderLayoutId, type HeaderLayoutIdValue, type HeaderLookId, type HeaderStyleId } from './headerLooks';
5
5
  import { type FooterLookId } from './footerLooks';
@@ -23,7 +23,7 @@ type CuratedSiteStyleCardOverrides = NonNullable<Theme['cards']>;
23
23
  type CuratedSiteStyleTestimonialQuoteOverrides = NonNullable<Theme['testimonialQuote']>;
24
24
  /**
25
25
  * Site-style-specific Theme overrides are applied after token recipes,
26
- * button personality, and palette variant selection have compiled the base
26
+ * button personality, and curated palette selection have compiled the base
27
27
  * Theme. Values here intentionally win; palette and button selections remain
28
28
  * independent Style configurator choices.
29
29
  */
@@ -50,7 +50,7 @@ export type CuratedSiteStyleThemeOverrides = Readonly<{
50
50
  testimonialQuote?: CuratedSiteStyleTestimonialQuoteOverrides;
51
51
  }>;
52
52
  export type ButtonPersonalityChoice = CuratedChoice<KnownButtonPersonalityId>;
53
- export type PaletteVariantChoice = CuratedChoice<KnownPaletteVariantId>;
53
+ export type CuratedPaletteRecommendation = CuratedChoice<KnownCuratedPaletteId>;
54
54
  export type HeaderLayoutChoice = CuratedChoice<HeaderLayoutId>;
55
55
  export type HeaderStyleChoice = CuratedChoice<HeaderStyleId>;
56
56
  export type HeaderLayoutStyleChoice = Readonly<{
@@ -113,12 +113,12 @@ export type CuratedSiteStyle = Readonly<{
113
113
  /** Authored picker choices. First item is the default/fallback. */
114
114
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
115
115
  /** Authored picker choices. First item is the default/fallback. */
116
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
116
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
117
117
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
118
118
  defaultTypographyPresetId: KnownTypographyPresetId;
119
119
  }>;
120
120
  export declare function defaultButtonPersonalityForSiteStyle(siteStyle: CuratedSiteStyle): ButtonPersonalityId;
121
- export declare function defaultPaletteVariantForSiteStyle(siteStyle: CuratedSiteStyle): PaletteVariantId;
121
+ export declare function defaultPaletteForSiteStyle(siteStyle: CuratedSiteStyle): CuratedPaletteId;
122
122
  export declare function defaultTypographyPresetForSiteStyle(siteStyle: CuratedSiteStyle): TypographyPresetId;
123
123
  /**
124
124
  * V1 generated site styles are curated product presets, not AI-authored design
@@ -157,7 +157,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
157
157
  /** Authored picker choices. First item is the default/fallback. */
158
158
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
159
159
  /** Authored picker choices. First item is the default/fallback. */
160
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
160
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
161
161
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
162
162
  defaultTypographyPresetId: KnownTypographyPresetId;
163
163
  }>, Readonly<{
@@ -192,7 +192,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
192
192
  /** Authored picker choices. First item is the default/fallback. */
193
193
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
194
194
  /** Authored picker choices. First item is the default/fallback. */
195
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
195
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
196
196
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
197
197
  defaultTypographyPresetId: KnownTypographyPresetId;
198
198
  }>, Readonly<{
@@ -227,7 +227,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
227
227
  /** Authored picker choices. First item is the default/fallback. */
228
228
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
229
229
  /** Authored picker choices. First item is the default/fallback. */
230
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
230
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
231
231
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
232
232
  defaultTypographyPresetId: KnownTypographyPresetId;
233
233
  }>, Readonly<{
@@ -262,7 +262,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
262
262
  /** Authored picker choices. First item is the default/fallback. */
263
263
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
264
264
  /** Authored picker choices. First item is the default/fallback. */
265
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
265
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
266
266
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
267
267
  defaultTypographyPresetId: KnownTypographyPresetId;
268
268
  }>, Readonly<{
@@ -297,7 +297,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
297
297
  /** Authored picker choices. First item is the default/fallback. */
298
298
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
299
299
  /** Authored picker choices. First item is the default/fallback. */
300
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
300
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
301
301
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
302
302
  defaultTypographyPresetId: KnownTypographyPresetId;
303
303
  }>, Readonly<{
@@ -332,7 +332,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
332
332
  /** Authored picker choices. First item is the default/fallback. */
333
333
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
334
334
  /** Authored picker choices. First item is the default/fallback. */
335
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
335
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
336
336
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
337
337
  defaultTypographyPresetId: KnownTypographyPresetId;
338
338
  }>, Readonly<{
@@ -367,7 +367,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
367
367
  /** Authored picker choices. First item is the default/fallback. */
368
368
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
369
369
  /** Authored picker choices. First item is the default/fallback. */
370
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
370
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
371
371
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
372
372
  defaultTypographyPresetId: KnownTypographyPresetId;
373
373
  }>, Readonly<{
@@ -402,7 +402,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
402
402
  /** Authored picker choices. First item is the default/fallback. */
403
403
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
404
404
  /** Authored picker choices. First item is the default/fallback. */
405
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
405
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
406
406
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
407
407
  defaultTypographyPresetId: KnownTypographyPresetId;
408
408
  }>, Readonly<{
@@ -437,7 +437,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
437
437
  /** Authored picker choices. First item is the default/fallback. */
438
438
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
439
439
  /** Authored picker choices. First item is the default/fallback. */
440
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
440
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
441
441
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
442
442
  defaultTypographyPresetId: KnownTypographyPresetId;
443
443
  }>, Readonly<{
@@ -472,7 +472,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
472
472
  /** Authored picker choices. First item is the default/fallback. */
473
473
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
474
474
  /** Authored picker choices. First item is the default/fallback. */
475
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
475
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
476
476
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
477
477
  defaultTypographyPresetId: KnownTypographyPresetId;
478
478
  }>, Readonly<{
@@ -507,7 +507,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
507
507
  /** Authored picker choices. First item is the default/fallback. */
508
508
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
509
509
  /** Authored picker choices. First item is the default/fallback. */
510
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
510
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
511
511
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
512
512
  defaultTypographyPresetId: KnownTypographyPresetId;
513
513
  }>, Readonly<{
@@ -542,7 +542,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
542
542
  /** Authored picker choices. First item is the default/fallback. */
543
543
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
544
544
  /** Authored picker choices. First item is the default/fallback. */
545
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
545
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
546
546
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
547
547
  defaultTypographyPresetId: KnownTypographyPresetId;
548
548
  }>, Readonly<{
@@ -577,7 +577,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
577
577
  /** Authored picker choices. First item is the default/fallback. */
578
578
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
579
579
  /** Authored picker choices. First item is the default/fallback. */
580
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
580
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
581
581
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
582
582
  defaultTypographyPresetId: KnownTypographyPresetId;
583
583
  }>, Readonly<{
@@ -612,7 +612,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
612
612
  /** Authored picker choices. First item is the default/fallback. */
613
613
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
614
614
  /** Authored picker choices. First item is the default/fallback. */
615
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
615
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
616
616
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
617
617
  defaultTypographyPresetId: KnownTypographyPresetId;
618
618
  }>, Readonly<{
@@ -647,7 +647,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
647
647
  /** Authored picker choices. First item is the default/fallback. */
648
648
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
649
649
  /** Authored picker choices. First item is the default/fallback. */
650
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
650
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
651
651
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
652
652
  defaultTypographyPresetId: KnownTypographyPresetId;
653
653
  }>, Readonly<{
@@ -682,7 +682,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
682
682
  /** Authored picker choices. First item is the default/fallback. */
683
683
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
684
684
  /** Authored picker choices. First item is the default/fallback. */
685
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
685
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
686
686
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
687
687
  defaultTypographyPresetId: KnownTypographyPresetId;
688
688
  }>];
@@ -718,7 +718,7 @@ export declare const curatedSiteStylesById: Map<SiteStyleId, Readonly<{
718
718
  /** Authored picker choices. First item is the default/fallback. */
719
719
  buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
720
720
  /** Authored picker choices. First item is the default/fallback. */
721
- paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
721
+ paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
722
722
  typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
723
723
  defaultTypographyPresetId: KnownTypographyPresetId;
724
724
  }>>;
@@ -35,4 +35,5 @@ export * from './sourceCatalogs';
35
35
  export * from './styleTags';
36
36
  export * from './tokenRecipes';
37
37
  export * from './typographyPresets';
38
+ export * from './themeParity';
38
39
  export * from './types';
@@ -1,7 +1,8 @@
1
1
  import type { PageDesignEditorReadModel } from './pageDesignEditorModel';
2
2
  import { type Theme } from '../schema';
3
3
  import { type ButtonPersonalityId } from '../buttons/personalities';
4
- import { type PaletteOverrides, type PaletteVariantId } from '../palette/variants';
4
+ import { type PaletteOverrides, type CuratedPaletteId } from '../palette/curated';
5
+ import type { PaletteSelection, ResolvedPaletteSelection } from '../palette';
5
6
  import { type CuratedSiteStyle } from './curatedSiteStyles';
6
7
  import { type CompiledTypographySelection, type KnownTypographyPresetId, type TypographyPresetId, type TypographyPresetResolutionWarning, type TypographySelection } from './typographyPresets';
7
8
  import { type FooterLookId, type FooterSelectionContext, type FooterSelectionResult } from './footerLooks';
@@ -25,7 +26,7 @@ export { repairDesignIssue, resolveBlockDesignPlan } from './resolver';
25
26
  export { cycleableOptionsFromResolved, deriveDesignCustomizationScope, recommendedDesignOption, type CycleableDesignOption, type CycleableOptions, type DesignCustomizationAuthority, type DesignCustomizationScope, type DesignCustomizationSurface, type DesignCustomizationUnsupportedReason, type DesignOptionIssue, type ResolvedDesignOption, } from './previewCustomization';
26
27
  export { compileBlockRuntimeFields, compileBoundaryRuntime, compilePageRuntimeFields, compileTokenRecipes, compileTransitionRuntime, compiledRuntimeStyleFieldNames, defaultComponentRuntimeRules, defaultDesignRuntimeRules, surfaceResolutionContextFromPalette, surfaceResolutionContextFromTheme, stripCompiledRuntimeStyleFields, type CompiledBlockRuntime, type CompiledBlockRuntimeFields, type CompiledBoundaryRuntime, type CompiledPageRuntime, type CompileBlockRuntimeInput, type ComponentRuntimeRules, type DesignRuntimeRules, type SemanticSpacing, type SurfaceResolutionContext, } from './runtimeCompiler';
27
28
  export { defaultCuratedChoice, requireEntriesForCuratedChoices, resolveCuratedChoice, type CuratedChoice, type CuratedChoiceResolution, } from './curatedChoices';
28
- export { curatedSiteStyles, defaultButtonPersonalityForSiteStyle, defaultPaletteVariantForSiteStyle, defaultTypographyPresetForSiteStyle, getCuratedSiteStyle, type CuratedSiteStyle, } from './curatedSiteStyles';
29
+ export { curatedSiteStyles, defaultButtonPersonalityForSiteStyle, defaultPaletteForSiteStyle, defaultTypographyPresetForSiteStyle, getCuratedSiteStyle, type CuratedSiteStyle, } from './curatedSiteStyles';
29
30
  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';
30
31
  export { asDesignBlockId, asSiteStyleId, makeBoundaryId, type AppearancePresetId, type BoundaryOptionId, type DesignBlockId, type DesignBoundaryId, type LayoutVariantKey, type NonEmptyReadonlyArray, type PageFlowPresetId, type ResolvedPageDesignPlan, type SiteStyleId, } from './types';
31
32
  export declare const previewCustomizePurpose: "preview-customize";
@@ -43,13 +44,11 @@ export type SelectionFallbackWarning = Readonly<{
43
44
  }> | Readonly<{
44
45
  kind: 'rejected-palette';
45
46
  requested: string;
46
- fellBackTo: PaletteVariantId;
47
+ fellBackTo: CuratedPaletteId;
47
48
  }> | TypographyPresetResolutionWarning;
48
- export type SiteThemeSelectionsInput = Readonly<{
49
+ type SiteThemeSelectionsCommonInput = Readonly<{
49
50
  siteStyle: CuratedSiteStyle;
50
51
  buttonPersonalityId: ButtonPersonalityId | null;
51
- paletteVariantId: PaletteVariantId | null;
52
- paletteOverrides: PaletteOverrides | null;
53
52
  typographyPresetId?: TypographyPresetId | null;
54
53
  typographyBodyFontOverride?: string | null;
55
54
  typographyHeadingFontOverride?: string | null;
@@ -61,6 +60,17 @@ export type SiteThemeSelectionsInput = Readonly<{
61
60
  headerSelectionContext?: Partial<HeaderSelectionContext>;
62
61
  footerSelectionContext?: Partial<FooterSelectionContext>;
63
62
  }>;
63
+ export type LegacySiteThemeSelectionsInput = SiteThemeSelectionsCommonInput & Readonly<{
64
+ resolvedPalette?: undefined;
65
+ paletteVariantId: CuratedPaletteId | null;
66
+ paletteOverrides: PaletteOverrides | null;
67
+ }>;
68
+ export type ExplicitPaletteSiteThemeSelectionsInput = SiteThemeSelectionsCommonInput & Readonly<{
69
+ resolvedPalette: ResolvedPaletteSelection;
70
+ paletteVariantId?: never;
71
+ paletteOverrides?: never;
72
+ }>;
73
+ export type SiteThemeSelectionsInput = LegacySiteThemeSelectionsInput | ExplicitPaletteSiteThemeSelectionsInput;
64
74
  export type SiteThemeSelectionsResult = Readonly<{
65
75
  theme: CuratedSiteStyleTheme;
66
76
  requestedSelections: Readonly<{
@@ -71,7 +81,11 @@ export type SiteThemeSelectionsResult = Readonly<{
71
81
  }>;
72
82
  resolvedSelections: Readonly<{
73
83
  buttonPersonalityId: ButtonPersonalityId;
74
- paletteVariantId: PaletteVariantId;
84
+ paletteVariantId: CuratedPaletteId;
85
+ paletteSelection: Readonly<{
86
+ kind: 'curated';
87
+ paletteId: CuratedPaletteId;
88
+ }>;
75
89
  typographySelection: CompiledTypographySelection['resolvedSelection'];
76
90
  typographyPresetId: KnownTypographyPresetId | null;
77
91
  typographyBodyFontOverride: string | null;
@@ -85,10 +99,16 @@ export type SiteThemeSelectionsResult = Readonly<{
85
99
  footerSelection: FooterSelectionResult;
86
100
  warnings: ReadonlyArray<SelectionFallbackWarning>;
87
101
  }>;
102
+ export type ExplicitPaletteSiteThemeSelectionsResult = Omit<SiteThemeSelectionsResult, 'resolvedSelections'> & Readonly<{
103
+ resolvedSelections: Omit<SiteThemeSelectionsResult['resolvedSelections'], 'paletteVariantId' | 'paletteSelection'> & Readonly<{
104
+ paletteVariantId: CuratedPaletteId | null;
105
+ paletteSelection: PaletteSelection;
106
+ }>;
107
+ }>;
88
108
  /**
89
109
  * High-level, site-style-aware compiler. Resolves the user's personality and
90
110
  * palette selections into theme tokens. Button personality still resolves
91
- * against the site style's authored choice list; palette variants are brand
111
+ * against the site style's authored choice list; curated palettes are brand
92
112
  * choices, so any known palette is preserved across site styles and the style's
93
113
  * first palette choice is only used when the request is absent or unknown.
94
114
  *
@@ -96,7 +116,9 @@ export type SiteThemeSelectionsResult = Readonly<{
96
116
  * any fallback warnings the UI can surface as "we changed your selection"
97
117
  * notices.
98
118
  */
99
- export declare function compileSiteThemeFromSelections(input: SiteThemeSelectionsInput): SiteThemeSelectionsResult;
119
+ export declare function compileSiteThemeFromSelections(input: LegacySiteThemeSelectionsInput): SiteThemeSelectionsResult;
120
+ export declare function compileSiteThemeFromSelections(input: ExplicitPaletteSiteThemeSelectionsInput): ExplicitPaletteSiteThemeSelectionsResult;
121
+ export declare function compileSiteThemeFromSelections(input: SiteThemeSelectionsInput): SiteThemeSelectionsResult | ExplicitPaletteSiteThemeSelectionsResult;
100
122
  export declare function siteStyleIdFromTheme(theme: Pick<Theme, 'siteStyleId'> | null | undefined): SiteStyleId | null;
101
123
  export type EditorModelRuntimeLookOverride<TBlockId extends DesignBlockId = DesignBlockId> = Readonly<{
102
124
  kind: 'pinned';
@@ -1,7 +1,8 @@
1
1
  import { type CardStylesOverride, type ContainerStylesOverride, type SectionStylesOverride, type Theme } from '../schema';
2
2
  import { type ExpandedPalette } from '../palette/expandPalette';
3
3
  import { type ButtonPersonalityId } from '../buttons/personalities';
4
- import { type PaletteOverrides, type PaletteVariantId } from '../palette/variants';
4
+ import { type PaletteOverrides, type CuratedPaletteId } from '../palette/curated';
5
+ import type { ResolvedPaletteSelection } from '../palette/resolveSelection';
5
6
  import { type RuntimeStyleWriteResultForFields, type StyleAuthority } from './designState';
6
7
  import { type ContentFrameIntent, type EyebrowTreatment, type FlushFrameTreatment, type DesignBoundaryId, type PanelFrameTreatment, type ResolvedBlockDesignPlan, type ResolvedPageDesignPlan, type SiteStyleItemSurfaceIntent, type SiteStyleSectionTransitionIntent, type SiteStyleSurfaceIntent, type ThemeTokenRecipes } from './types';
7
8
  import { type SectionBoundaryRuntimeMetrics } from './sectionTransitions';
@@ -311,30 +312,35 @@ export declare function compilePageRuntimeFields<TBlockId extends string, TPurpo
311
312
  sectionSpacing?: SemanticSpacing;
312
313
  terminalSectionAdjacency?: TerminalSectionAdjacency;
313
314
  }>): CompiledPageRuntime<TBlockId>;
314
- export type CompileTokenRecipesOptions = Readonly<{
315
- /** Resolved button personality ID. When provided, emits `theme.buttons`. */
316
- buttonPersonalityId?: ButtonPersonalityId;
317
- /**
318
- * Resolved palette variant ID. When provided, replaces the recipe-based
319
- * palette lookup; the recipe family is still consulted for the rest of the
320
- * theme (typography, spacing, etc.).
321
- */
322
- paletteVariantId?: PaletteVariantId;
315
+ type ResolvedPaletteCompileOptions = Readonly<{
316
+ /** A complete palette resolved from an explicit curated or site selection. */
317
+ resolvedPalette: ResolvedPaletteSelection;
318
+ paletteVariantId?: never;
319
+ paletteOverrides?: never;
320
+ }>;
321
+ type LegacyPaletteCompileOptions = Readonly<{
322
+ resolvedPalette?: undefined;
323
323
  /**
324
- * Sparse per-token hex overrides applied on top of the palette variant.
325
- * Tokens not in this map keep the variant's value.
324
+ * Legacy curated-palette selection retained while persisted Theme V2
325
+ * selections are migrated to the explicit palette-selection model.
326
326
  */
327
+ paletteVariantId?: CuratedPaletteId;
328
+ /** Legacy sparse overrides materialized into a site palette during migration. */
327
329
  paletteOverrides?: PaletteOverrides;
328
330
  }>;
331
+ export type CompileTokenRecipesOptions = Readonly<{
332
+ /** Resolved button personality ID. When provided, emits `theme.buttons`. */
333
+ buttonPersonalityId?: ButtonPersonalityId;
334
+ }> & (ResolvedPaletteCompileOptions | LegacyPaletteCompileOptions);
329
335
  /**
330
336
  * Compiles bounded token recipes to the current Theme schema. This is intentionally
331
337
  * pure and schema-validated so generated Theme V2 choices have a concrete legacy
332
338
  * Theme output before any persistence or Phase 5 integration consumes them.
333
339
  *
334
- * Optional `options` accept already-resolved button personality and palette
335
- * variant IDs (typically supplied by `compileSiteThemeFromSelections`). When
336
- * IDs are omitted, the function falls through to the legacy recipe-based
337
- * palette lookup and leaves `theme.buttons` as the mock-theme default.
340
+ * Optional `options` accept an already-resolved palette selection and button
341
+ * personality. During migration they also accept the legacy curated ID plus
342
+ * sparse overrides. When neither palette input is supplied, the function falls
343
+ * through to the recipe-based palette lookup.
338
344
  */
339
345
  export declare function compileTokenRecipes(recipes: ThemeTokenRecipes, options?: CompileTokenRecipesOptions): Theme;
340
346
  export {};