@riverbankcms/sdk 0.104.1 → 0.104.3

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 (120) hide show
  1. package/dist/{PreviewEditorSidebar-CmaPXdKu.mjs → PreviewEditorSidebar-CBMhU9p_.mjs} +3 -3
  2. package/dist/{PreviewEditorUI-C5xRTh2b.mjs → PreviewEditorUI-C5KEw4M8.mjs} +2 -2
  3. package/dist/{SdkPreviewModeRuntime-Eks51NcN.mjs → SdkPreviewModeRuntime-Iq12HjL7.mjs} +1142 -177
  4. package/dist/{SiteChromeCustomizeContext-Bt8zb3qu.mjs → SiteChromeCustomizeContext-Cx0NMdyv.mjs} +1640 -877
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +10 -0
  6. package/dist/_dts/blocks/src/primitives/layout/Grid.d.ts +12 -8
  7. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +3 -0
  8. package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +11 -1
  9. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +7 -1
  10. package/dist/_dts/blocks/src/system/constants/events.d.ts +1 -1
  11. package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +12 -0
  12. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +2 -2
  13. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +14 -0
  14. package/dist/_dts/blocks/src/system/runtime/nodes/buttonAffordance.d.ts +33 -0
  15. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +28 -0
  16. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +32 -0
  17. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +1 -0
  18. package/dist/_dts/blocks/src/system/runtime/nodes/svg.d.ts +77 -0
  19. package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +2 -0
  20. package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +3 -40
  21. package/dist/_dts/blocks/src/system/transforms/registry/formatting.d.ts +14 -0
  22. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +11 -0
  23. package/dist/_dts/core/src/branded.d.ts +5 -0
  24. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +18 -0
  25. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +2 -2
  26. package/dist/_dts/sdk/src/version.d.ts +1 -1
  27. package/dist/_dts/theme-core/src/ThemeScope.d.ts +1 -1
  28. package/dist/_dts/theme-core/src/buttons/affordanceIcons.d.ts +29 -0
  29. package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +6 -0
  30. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
  31. package/dist/_dts/theme-core/src/buttons/personalities/flat-ink.d.ts +20 -0
  32. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  33. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +4 -0
  34. package/dist/_dts/theme-core/src/buttons/types.d.ts +34 -0
  35. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  36. package/dist/_dts/theme-core/src/gradients/types.d.ts +27 -3
  37. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +51 -15
  38. package/dist/_dts/theme-core/src/palette/curated/brand-led.d.ts +13 -0
  39. package/dist/_dts/theme-core/src/palette/curated/index.d.ts +12 -0
  40. package/dist/_dts/theme-core/src/palette/historicalThemePalette.d.ts +44 -0
  41. package/dist/_dts/theme-core/src/palette/index.d.ts +1 -0
  42. package/dist/_dts/theme-core/src/palette/legacySelection.d.ts +13 -2
  43. package/dist/_dts/theme-core/src/palette/persistenceReadSource.d.ts +17 -2
  44. package/dist/_dts/theme-core/src/palette/themePaletteCompatibility.d.ts +3 -4
  45. package/dist/_dts/theme-core/src/runtime/themeCssVarNames.d.ts +1 -0
  46. package/dist/_dts/theme-core/src/schema.d.ts +108 -26
  47. package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +2 -1
  48. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +50 -1
  49. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
  50. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
  51. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +56 -1
  52. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +16 -1
  53. package/dist/_dts/theme-core/src/status/index.d.ts +0 -1
  54. package/dist/_dts/theme-core/src/surfaces/foregroundContract.d.ts +19 -0
  55. package/dist/_dts/theme-core/src/surfaces/foregroundRoles.d.ts +9 -0
  56. package/dist/_dts/theme-core/src/surfaces/index.d.ts +2 -0
  57. package/dist/_dts/ui/src/button.d.ts +1 -1
  58. package/dist/cli/index.mjs +1558 -468
  59. package/dist/client/{DiscountCodeDisclosure-Dit2aItR.mjs → DiscountCodeDisclosure-BXM73_E5.mjs} +1 -1
  60. package/dist/client/{EventCombined.client-BnREyCjf.mjs → EventCombined.client-DT5elP7j.mjs} +4 -4
  61. package/dist/client/{EventListing.client-0uHld51x.mjs → EventListing.client-pTYGfV9C.mjs} +2 -2
  62. package/dist/client/{LeafletStaticMap-DJcvSfmj.mjs → LeafletStaticMap-dQrhlUe3.mjs} +1 -1
  63. package/dist/client/{MagicLinkForm-EAsIktfw.mjs → MagicLinkForm-u6Dul4j5.mjs} +2 -2
  64. package/dist/client/{StepIndicator-CRR17tYI.mjs → StepIndicator-nWqineJ2.mjs} +2 -2
  65. package/dist/client/{accordion-B47HIuuH.mjs → accordion-CSJcTUyH.mjs} +1 -1
  66. package/dist/client/{bookingForm-I1E-8F9P.mjs → bookingForm-C73wOuVa.mjs} +6 -6
  67. package/dist/client/bookings.mjs +137 -1
  68. package/dist/client/{buttons-BbPn8OKA.mjs → buttons-DfYyqt8C.mjs} +138 -2
  69. package/dist/client/{carousel-OlM7SyBs.mjs → carousel-fMBb0JSc.mjs} +1 -1
  70. package/dist/client/{cart-BKpG5jz6.mjs → cart-BtaCwT3S.mjs} +3 -3
  71. package/dist/client/{checkout-Dmmr6qoU.mjs → checkout-DkTwZSnh.mjs} +3 -3
  72. package/dist/client/client.mjs +2327 -542
  73. package/dist/client/{colorStyles-DuW4Fjqd.mjs → colorStyles-Wyl6JujD.mjs} +45 -4
  74. package/dist/client/{courseRegistration-CflZiqGk.mjs → courseRegistration-DnLmapJu.mjs} +7 -7
  75. package/dist/client/{eventCalendar-BvoLWcp-.mjs → eventCalendar-BvLOc9KY.mjs} +165 -5
  76. package/dist/client/{eventCombined-DsrO8t_t.mjs → eventCombined-kShgJPQr.mjs} +2 -2
  77. package/dist/client/{eventDetails-C3hxgcJm.mjs → eventDetails-C5NTM0Vo.mjs} +3 -3
  78. package/dist/client/{eventListing-C-hb237X.mjs → eventListing-B82ZdKP6.mjs} +2 -2
  79. package/dist/client/{eventRegistration-B0gyzDGi.mjs → eventRegistration-qJVFqBWo.mjs} +7 -7
  80. package/dist/client/{form-C_RUi6oJ.mjs → form-BvAcKiuu.mjs} +2 -2
  81. package/dist/client/{headerSection-IKQiD2U0.mjs → headerSection-NvAiEHAg.mjs} +3 -3
  82. package/dist/client/hooks.mjs +1034 -356
  83. package/dist/client/{locationMap-8ZBrMzRJ.mjs → locationMap-D0j52xfI.mjs} +3 -3
  84. package/dist/client/{media-CZJKL7fi.mjs → media-BCW_g2cQ.mjs} +1 -1
  85. package/dist/client/{newsletterForm-CYk3ucwj.mjs → newsletterForm-B8_i93qH.mjs} +2 -2
  86. package/dist/client/{pricing-B5GmvfIH.mjs → pricing-DIYnyHOk.mjs} +1 -1
  87. package/dist/client/{productDetail-BjS2Dqzo.mjs → productDetail-w0eAHkuQ.mjs} +3 -3
  88. package/dist/client/{productList-BOHvC8My.mjs → productList-Vsguq5Xt.mjs} +3 -3
  89. package/dist/client/{propsDecoder-WS6UEJwZ.mjs → propsDecoder-CD2pJ1WB.mjs} +37 -2
  90. package/dist/client/rendering/client.mjs +1722 -760
  91. package/dist/client/rendering/islands.mjs +19 -19
  92. package/dist/client/rendering.mjs +2303 -518
  93. package/dist/client/{shop-CON03-wN.mjs → shop-Dgxs-Q8F.mjs} +6 -6
  94. package/dist/client/{shop-commerce-DlqrFgH8.mjs → shop-commerce-DJAhsTaT.mjs} +6 -6
  95. package/dist/client/{shop-commerce-store-l74-Kne6.mjs → shop-commerce-store-CfCXltXW.mjs} +1 -1
  96. package/dist/client/{shopShared-CQheEXSg.mjs → shopShared-CmDcPXUt.mjs} +2 -2
  97. package/dist/client/{useDiscountCodeUi-v6OluyWl.mjs → useDiscountCodeUi-CirrT2bM.mjs} +1 -1
  98. package/dist/client/{useEventFilters-BqSTcNOf.mjs → useEventFilters-CNZxlCcO.mjs} +5 -5
  99. package/dist/client/{usePolling-DMfADjIF.mjs → usePolling-Baks_iBI.mjs} +2 -2
  100. package/dist/preview-next/client/runtime.mjs +3 -3
  101. package/dist/{sdk-runtime-BUmJ0DaT.mjs → sdk-runtime-BfNiFeNJ.mjs} +1 -1
  102. package/dist/{separator-Dd-JYok7.mjs → separator-BhAR_Xmf.mjs} +1 -1
  103. package/dist/server/components.mjs +2293 -531
  104. package/dist/server/config-validation.mjs +1040 -357
  105. package/dist/server/config.mjs +1040 -357
  106. package/dist/server/data.mjs +1034 -356
  107. package/dist/server/index.mjs +1 -1
  108. package/dist/server/next.mjs +2296 -534
  109. package/dist/server/page-converter.mjs +1018 -324
  110. package/dist/server/prebuild.mjs +1 -1
  111. package/dist/server/rendering/server.mjs +2278 -521
  112. package/dist/server/rendering.mjs +2293 -531
  113. package/dist/server/routing.mjs +1092 -338
  114. package/dist/server/server.mjs +1016 -338
  115. package/dist/server/theme-bridge.mjs +1240 -77
  116. package/dist/server/theme.mjs +165 -5
  117. package/dist/styles/index.css +617 -34
  118. package/package.json +1 -1
  119. package/dist/_dts/blocks/src/system/transforms/registry/_utils/sectionForegroundStyles.d.ts +0 -2
  120. package/dist/_dts/theme-core/src/status/contextualColors.d.ts +0 -6
@@ -11,14 +11,38 @@ export declare const gradientStopSchema: z.ZodObject<{
11
11
  }, z.core.$strip>;
12
12
  export type GradientStop = z.infer<typeof gradientStopSchema>;
13
13
  /**
14
- * Gradient configuration
14
+ * Radial gradient shape. Optional; defaults to `circle` (the historical shape)
15
+ * so existing radial gradients are byte-identical.
16
+ *
17
+ * Named `RadialGradientShape` to avoid clashing with `styles/gradients.ts`'s
18
+ * `GradientShape` (which names the gradient *kind*: linear/radial/conic).
19
+ */
20
+ export declare const radialGradientShapeSchema: z.ZodEnum<{
21
+ circle: "circle";
22
+ ellipse: "ellipse";
23
+ }>;
24
+ export type RadialGradientShape = z.infer<typeof radialGradientShapeSchema>;
25
+ /**
26
+ * Gradient configuration.
27
+ *
28
+ * `type` is optional and defaults to `'linear'` so gradients persisted without a
29
+ * type (or with an explicit `'linear'`) render exactly as before. `'radial'` and
30
+ * `'conic'` are additive kinds:
31
+ * - linear: `angle` (degrees)
32
+ * - radial: optional `shape` (circle/ellipse) + `position`
33
+ * - conic: optional `angle` (from-angle, degrees) + `position`
15
34
  */
16
35
  export declare const gradientConfigSchema: z.ZodObject<{
17
- type: z.ZodEnum<{
36
+ type: z.ZodDefault<z.ZodEnum<{
18
37
  linear: "linear";
19
38
  radial: "radial";
20
- }>;
39
+ conic: "conic";
40
+ }>>;
21
41
  angle: z.ZodOptional<z.ZodNumber>;
42
+ shape: z.ZodOptional<z.ZodEnum<{
43
+ circle: "circle";
44
+ ellipse: "ellipse";
45
+ }>>;
22
46
  position: z.ZodOptional<z.ZodString>;
23
47
  stops: z.ZodArray<z.ZodObject<{
24
48
  color: z.ZodString;
@@ -100,6 +100,9 @@ export declare const mockThemes: {
100
100
  underlineThickness?: "auto" | "medium" | "fromFont" | "thin" | "thick" | undefined;
101
101
  underlineOffset?: "auto" | "tight" | "normal" | "loose" | undefined;
102
102
  } | undefined;
103
+ eyebrow?: {
104
+ family: string;
105
+ } | undefined;
103
106
  };
104
107
  space: "standard" | "comfortable" | "dense";
105
108
  border: {
@@ -110,6 +113,7 @@ export declare const mockThemes: {
110
113
  elevation: "medium" | "none" | "high" | "low";
111
114
  softness: "crisp" | "soft" | "hard" | null;
112
115
  position: "bottom" | "bottom-right";
116
+ colorToken?: string | undefined;
113
117
  };
114
118
  motion: {
115
119
  level: "medium" | "high" | "low" | "off";
@@ -126,12 +130,13 @@ export declare const mockThemes: {
126
130
  contentOwner?: "site-chrome-editor" | undefined;
127
131
  color?: string | null | undefined;
128
132
  gradient?: {
129
- type: "linear" | "radial";
133
+ type: "linear" | "radial" | "conic";
130
134
  stops: {
131
135
  color: string;
132
136
  position: number;
133
137
  }[];
134
138
  angle?: number | undefined;
139
+ shape?: "circle" | "ellipse" | undefined;
135
140
  position?: string | undefined;
136
141
  } | null | undefined;
137
142
  image?: {
@@ -215,6 +220,7 @@ export declare const mockThemes: {
215
220
  navColor?: string | null | undefined;
216
221
  navTypography?: "body" | "heading" | undefined;
217
222
  navTextSize?: "base" | "sm" | "lg" | "xl" | "xs" | undefined;
223
+ navPlacement?: "center" | "end" | undefined;
218
224
  container?: {
219
225
  rounded: "none" | "sm" | "md" | "lg" | "xl" | "2xl";
220
226
  border: boolean;
@@ -309,12 +315,13 @@ export declare const mockThemes: {
309
315
  contentOwner?: "site-chrome-editor" | undefined;
310
316
  color?: string | null | undefined;
311
317
  gradient?: {
312
- type: "linear" | "radial";
318
+ type: "linear" | "radial" | "conic";
313
319
  stops: {
314
320
  color: string;
315
321
  position: number;
316
322
  }[];
317
323
  angle?: number | undefined;
324
+ shape?: "circle" | "ellipse" | undefined;
318
325
  position?: string | undefined;
319
326
  } | null | undefined;
320
327
  image?: {
@@ -399,7 +406,7 @@ export declare const mockThemes: {
399
406
  } | undefined;
400
407
  navLayout?: {
401
408
  layout?: "inline" | "stack" | "inline-wrap" | undefined;
402
- align?: "center" | "start" | "end" | "space-between" | undefined;
409
+ align?: "center" | "end" | "start" | "space-between" | undefined;
403
410
  gapX?: "default" | "none" | "compact" | "spacious" | "tight" | "relaxed" | undefined;
404
411
  gapY?: "default" | "none" | "compact" | "spacious" | "tight" | "relaxed" | undefined;
405
412
  columns?: number | undefined;
@@ -410,7 +417,7 @@ export declare const mockThemes: {
410
417
  placement?: "left" | "right" | "above" | "below" | undefined;
411
418
  size?: "sm" | "md" | "lg" | "xl" | undefined;
412
419
  maxHeight?: "sm" | "md" | "lg" | "xl" | undefined;
413
- align?: "center" | "start" | "end" | undefined;
420
+ align?: "center" | "end" | "start" | undefined;
414
421
  } | undefined;
415
422
  bottomBar?: {
416
423
  enabled?: boolean | undefined;
@@ -420,12 +427,13 @@ export declare const mockThemes: {
420
427
  contentOwner?: "site-chrome-editor" | undefined;
421
428
  color?: string | null | undefined;
422
429
  gradient?: {
423
- type: "linear" | "radial";
430
+ type: "linear" | "radial" | "conic";
424
431
  stops: {
425
432
  color: string;
426
433
  position: number;
427
434
  }[];
428
435
  angle?: number | undefined;
436
+ shape?: "circle" | "ellipse" | undefined;
429
437
  position?: string | undefined;
430
438
  } | null | undefined;
431
439
  image?: {
@@ -603,6 +611,10 @@ export declare const mockThemes: {
603
611
  fontSize?: string | undefined;
604
612
  } | undefined;
605
613
  } | undefined;
614
+ affordance?: {
615
+ iconId: string;
616
+ colorToken?: string | undefined;
617
+ } | undefined;
606
618
  }[];
607
619
  sizes?: {
608
620
  sm: {
@@ -1148,6 +1160,9 @@ export declare const mockThemes: {
1148
1160
  underlineThickness?: "auto" | "medium" | "fromFont" | "thin" | "thick" | undefined;
1149
1161
  underlineOffset?: "auto" | "tight" | "normal" | "loose" | undefined;
1150
1162
  } | undefined;
1163
+ eyebrow?: {
1164
+ family: string;
1165
+ } | undefined;
1151
1166
  };
1152
1167
  space: "standard" | "comfortable" | "dense";
1153
1168
  border: {
@@ -1158,6 +1173,7 @@ export declare const mockThemes: {
1158
1173
  elevation: "medium" | "none" | "high" | "low";
1159
1174
  softness: "crisp" | "soft" | "hard" | null;
1160
1175
  position: "bottom" | "bottom-right";
1176
+ colorToken?: string | undefined;
1161
1177
  };
1162
1178
  motion: {
1163
1179
  level: "medium" | "high" | "low" | "off";
@@ -1174,12 +1190,13 @@ export declare const mockThemes: {
1174
1190
  contentOwner?: "site-chrome-editor" | undefined;
1175
1191
  color?: string | null | undefined;
1176
1192
  gradient?: {
1177
- type: "linear" | "radial";
1193
+ type: "linear" | "radial" | "conic";
1178
1194
  stops: {
1179
1195
  color: string;
1180
1196
  position: number;
1181
1197
  }[];
1182
1198
  angle?: number | undefined;
1199
+ shape?: "circle" | "ellipse" | undefined;
1183
1200
  position?: string | undefined;
1184
1201
  } | null | undefined;
1185
1202
  image?: {
@@ -1263,6 +1280,7 @@ export declare const mockThemes: {
1263
1280
  navColor?: string | null | undefined;
1264
1281
  navTypography?: "body" | "heading" | undefined;
1265
1282
  navTextSize?: "base" | "sm" | "lg" | "xl" | "xs" | undefined;
1283
+ navPlacement?: "center" | "end" | undefined;
1266
1284
  container?: {
1267
1285
  rounded: "none" | "sm" | "md" | "lg" | "xl" | "2xl";
1268
1286
  border: boolean;
@@ -1357,12 +1375,13 @@ export declare const mockThemes: {
1357
1375
  contentOwner?: "site-chrome-editor" | undefined;
1358
1376
  color?: string | null | undefined;
1359
1377
  gradient?: {
1360
- type: "linear" | "radial";
1378
+ type: "linear" | "radial" | "conic";
1361
1379
  stops: {
1362
1380
  color: string;
1363
1381
  position: number;
1364
1382
  }[];
1365
1383
  angle?: number | undefined;
1384
+ shape?: "circle" | "ellipse" | undefined;
1366
1385
  position?: string | undefined;
1367
1386
  } | null | undefined;
1368
1387
  image?: {
@@ -1447,7 +1466,7 @@ export declare const mockThemes: {
1447
1466
  } | undefined;
1448
1467
  navLayout?: {
1449
1468
  layout?: "inline" | "stack" | "inline-wrap" | undefined;
1450
- align?: "center" | "start" | "end" | "space-between" | undefined;
1469
+ align?: "center" | "end" | "start" | "space-between" | undefined;
1451
1470
  gapX?: "default" | "none" | "compact" | "spacious" | "tight" | "relaxed" | undefined;
1452
1471
  gapY?: "default" | "none" | "compact" | "spacious" | "tight" | "relaxed" | undefined;
1453
1472
  columns?: number | undefined;
@@ -1458,7 +1477,7 @@ export declare const mockThemes: {
1458
1477
  placement?: "left" | "right" | "above" | "below" | undefined;
1459
1478
  size?: "sm" | "md" | "lg" | "xl" | undefined;
1460
1479
  maxHeight?: "sm" | "md" | "lg" | "xl" | undefined;
1461
- align?: "center" | "start" | "end" | undefined;
1480
+ align?: "center" | "end" | "start" | undefined;
1462
1481
  } | undefined;
1463
1482
  bottomBar?: {
1464
1483
  enabled?: boolean | undefined;
@@ -1468,12 +1487,13 @@ export declare const mockThemes: {
1468
1487
  contentOwner?: "site-chrome-editor" | undefined;
1469
1488
  color?: string | null | undefined;
1470
1489
  gradient?: {
1471
- type: "linear" | "radial";
1490
+ type: "linear" | "radial" | "conic";
1472
1491
  stops: {
1473
1492
  color: string;
1474
1493
  position: number;
1475
1494
  }[];
1476
1495
  angle?: number | undefined;
1496
+ shape?: "circle" | "ellipse" | undefined;
1477
1497
  position?: string | undefined;
1478
1498
  } | null | undefined;
1479
1499
  image?: {
@@ -1651,6 +1671,10 @@ export declare const mockThemes: {
1651
1671
  fontSize?: string | undefined;
1652
1672
  } | undefined;
1653
1673
  } | undefined;
1674
+ affordance?: {
1675
+ iconId: string;
1676
+ colorToken?: string | undefined;
1677
+ } | undefined;
1654
1678
  }[];
1655
1679
  sizes?: {
1656
1680
  sm: {
@@ -2196,6 +2220,9 @@ export declare const mockThemes: {
2196
2220
  underlineThickness?: "auto" | "medium" | "fromFont" | "thin" | "thick" | undefined;
2197
2221
  underlineOffset?: "auto" | "tight" | "normal" | "loose" | undefined;
2198
2222
  } | undefined;
2223
+ eyebrow?: {
2224
+ family: string;
2225
+ } | undefined;
2199
2226
  };
2200
2227
  space: "standard" | "comfortable" | "dense";
2201
2228
  border: {
@@ -2206,6 +2233,7 @@ export declare const mockThemes: {
2206
2233
  elevation: "medium" | "none" | "high" | "low";
2207
2234
  softness: "crisp" | "soft" | "hard" | null;
2208
2235
  position: "bottom" | "bottom-right";
2236
+ colorToken?: string | undefined;
2209
2237
  };
2210
2238
  motion: {
2211
2239
  level: "medium" | "high" | "low" | "off";
@@ -2222,12 +2250,13 @@ export declare const mockThemes: {
2222
2250
  contentOwner?: "site-chrome-editor" | undefined;
2223
2251
  color?: string | null | undefined;
2224
2252
  gradient?: {
2225
- type: "linear" | "radial";
2253
+ type: "linear" | "radial" | "conic";
2226
2254
  stops: {
2227
2255
  color: string;
2228
2256
  position: number;
2229
2257
  }[];
2230
2258
  angle?: number | undefined;
2259
+ shape?: "circle" | "ellipse" | undefined;
2231
2260
  position?: string | undefined;
2232
2261
  } | null | undefined;
2233
2262
  image?: {
@@ -2311,6 +2340,7 @@ export declare const mockThemes: {
2311
2340
  navColor?: string | null | undefined;
2312
2341
  navTypography?: "body" | "heading" | undefined;
2313
2342
  navTextSize?: "base" | "sm" | "lg" | "xl" | "xs" | undefined;
2343
+ navPlacement?: "center" | "end" | undefined;
2314
2344
  container?: {
2315
2345
  rounded: "none" | "sm" | "md" | "lg" | "xl" | "2xl";
2316
2346
  border: boolean;
@@ -2405,12 +2435,13 @@ export declare const mockThemes: {
2405
2435
  contentOwner?: "site-chrome-editor" | undefined;
2406
2436
  color?: string | null | undefined;
2407
2437
  gradient?: {
2408
- type: "linear" | "radial";
2438
+ type: "linear" | "radial" | "conic";
2409
2439
  stops: {
2410
2440
  color: string;
2411
2441
  position: number;
2412
2442
  }[];
2413
2443
  angle?: number | undefined;
2444
+ shape?: "circle" | "ellipse" | undefined;
2414
2445
  position?: string | undefined;
2415
2446
  } | null | undefined;
2416
2447
  image?: {
@@ -2495,7 +2526,7 @@ export declare const mockThemes: {
2495
2526
  } | undefined;
2496
2527
  navLayout?: {
2497
2528
  layout?: "inline" | "stack" | "inline-wrap" | undefined;
2498
- align?: "center" | "start" | "end" | "space-between" | undefined;
2529
+ align?: "center" | "end" | "start" | "space-between" | undefined;
2499
2530
  gapX?: "default" | "none" | "compact" | "spacious" | "tight" | "relaxed" | undefined;
2500
2531
  gapY?: "default" | "none" | "compact" | "spacious" | "tight" | "relaxed" | undefined;
2501
2532
  columns?: number | undefined;
@@ -2506,7 +2537,7 @@ export declare const mockThemes: {
2506
2537
  placement?: "left" | "right" | "above" | "below" | undefined;
2507
2538
  size?: "sm" | "md" | "lg" | "xl" | undefined;
2508
2539
  maxHeight?: "sm" | "md" | "lg" | "xl" | undefined;
2509
- align?: "center" | "start" | "end" | undefined;
2540
+ align?: "center" | "end" | "start" | undefined;
2510
2541
  } | undefined;
2511
2542
  bottomBar?: {
2512
2543
  enabled?: boolean | undefined;
@@ -2516,12 +2547,13 @@ export declare const mockThemes: {
2516
2547
  contentOwner?: "site-chrome-editor" | undefined;
2517
2548
  color?: string | null | undefined;
2518
2549
  gradient?: {
2519
- type: "linear" | "radial";
2550
+ type: "linear" | "radial" | "conic";
2520
2551
  stops: {
2521
2552
  color: string;
2522
2553
  position: number;
2523
2554
  }[];
2524
2555
  angle?: number | undefined;
2556
+ shape?: "circle" | "ellipse" | undefined;
2525
2557
  position?: string | undefined;
2526
2558
  } | null | undefined;
2527
2559
  image?: {
@@ -2699,6 +2731,10 @@ export declare const mockThemes: {
2699
2731
  fontSize?: string | undefined;
2700
2732
  } | undefined;
2701
2733
  } | undefined;
2734
+ affordance?: {
2735
+ iconId: string;
2736
+ colorToken?: string | undefined;
2737
+ } | undefined;
2702
2738
  }[];
2703
2739
  sizes?: {
2704
2740
  sm: {
@@ -41,6 +41,19 @@ export declare const brandLedJewel: Readonly<{
41
41
  mode: import("../../../../blocks/src/index").PaletteMode;
42
42
  colors: import("../../../../blocks/src/index").PaletteColors;
43
43
  }>;
44
+ export declare const brandLedSpruce: Readonly<{
45
+ id: import("../../../../blocks/src/index").CuratedPaletteId<"brand-led-spruce">;
46
+ name: string;
47
+ description: string;
48
+ tags: Readonly<Partial<Readonly<{
49
+ tone: import("../../../../blocks/src/index").StyleTone;
50
+ energy: import("../../../../blocks/src/index").StyleEnergy;
51
+ motion: import("../../../../blocks/src/index").StyleMotion;
52
+ era: import("../../../../blocks/src/index").StyleEra;
53
+ }>>>;
54
+ mode: import("../../../../blocks/src/index").PaletteMode;
55
+ colors: import("../../../../blocks/src/index").PaletteColors;
56
+ }>;
44
57
  export declare const brandLedBurgundyGold: Readonly<{
45
58
  id: import("../../../../blocks/src/index").CuratedPaletteId<"brand-led-burgundy-gold">;
46
59
  name: string;
@@ -60,6 +60,18 @@ export declare const curatedPalettes: readonly [Readonly<{
60
60
  }>>>;
61
61
  mode: import("../../../../blocks/src/index").PaletteMode;
62
62
  colors: import("../../../../blocks/src/index").PaletteColors;
63
+ }>, Readonly<{
64
+ id: CuratedPaletteId<"brand-led-spruce">;
65
+ name: string;
66
+ description: string;
67
+ tags: Readonly<Partial<Readonly<{
68
+ tone: import("../../../../blocks/src/index").StyleTone;
69
+ energy: import("../../../../blocks/src/index").StyleEnergy;
70
+ motion: import("../../../../blocks/src/index").StyleMotion;
71
+ era: import("../../../../blocks/src/index").StyleEra;
72
+ }>>>;
73
+ mode: import("../../../../blocks/src/index").PaletteMode;
74
+ colors: import("../../../../blocks/src/index").PaletteColors;
63
75
  }>, Readonly<{
64
76
  id: CuratedPaletteId<"warm-neutral-clay">;
65
77
  name: string;
@@ -0,0 +1,44 @@
1
+ import { type PaletteColors, type PaletteMode } from './colors';
2
+ import type { PaletteOverrides } from './curated';
3
+ import type { ThemePaletteCompatibilityError } from './themePaletteCompatibility';
4
+ export type HistoricalThemePaletteEvidence = HistoricalArrayThemePaletteEvidence<'current-complete-array'> | HistoricalArrayThemePaletteEvidence<'legacy-danger-array'> | HistoricalArrayThemePaletteEvidence<'legacy-seven-role-array'> | HistoricalArrayThemePaletteEvidence<'legacy-destructive-white-array'> | HistoricalObjectMapThemePaletteEvidence;
5
+ type HistoricalArrayThemePaletteEvidence<Kind extends string> = Readonly<{
6
+ kind: Kind;
7
+ persistedColors: PaletteOverrides;
8
+ mode: Readonly<{
9
+ kind: 'explicit';
10
+ value: PaletteMode;
11
+ }>;
12
+ }>;
13
+ type HistoricalObjectMapThemePaletteEvidence = Readonly<{
14
+ kind: 'legacy-object-map';
15
+ persistedColors: PaletteOverrides;
16
+ mode: Readonly<{
17
+ kind: 'inferred';
18
+ value: PaletteMode;
19
+ }>;
20
+ }>;
21
+ export type HistoricalThemePaletteMaterialization = Readonly<{
22
+ colors: PaletteColors;
23
+ mode: PaletteMode;
24
+ }>;
25
+ export type ParseHistoricalThemePaletteEvidenceResult = Readonly<{
26
+ ok: true;
27
+ evidence: HistoricalThemePaletteEvidence;
28
+ }> | Readonly<{
29
+ ok: false;
30
+ error: ThemePaletteCompatibilityError;
31
+ }>;
32
+ /**
33
+ * Parses only the five production historical palette layouts that the backfill
34
+ * knows how to complete. Other sparse shapes remain generic editor input and
35
+ * are intentionally not migration evidence.
36
+ */
37
+ export declare function parseHistoricalThemePaletteEvidence(input: unknown): ParseHistoricalThemePaletteEvidenceResult;
38
+ /**
39
+ * Deterministically reconstructs a complete palette from closed historical
40
+ * evidence. Persisted semantic roles are never replaced; only absent modern
41
+ * roles and seven-role status values use documented historical defaults.
42
+ */
43
+ export declare function materializeHistoricalThemePalette(evidence: HistoricalThemePaletteEvidence, completionBase?: PaletteColors): HistoricalThemePaletteMaterialization;
44
+ export {};
@@ -3,6 +3,7 @@ export * from './classifyColor';
3
3
  export * from './expandPalette';
4
4
  export * from './generateCssVars';
5
5
  export * from './generateShades';
6
+ export * from './historicalThemePalette';
6
7
  export * from './neutralScale';
7
8
  export * from './types';
8
9
  export * from './utils';
@@ -1,8 +1,8 @@
1
- import type { Theme } from '../schema';
2
1
  import { type PaletteTokenName } from '../tokens/themeColorTokens';
3
2
  import { type HexColor, type PaletteColors, type PaletteMode } from './colors';
4
3
  import type { CuratedPalette, CuratedPaletteId, PaletteOverrides } from './curated/types';
5
4
  import type { SitePaletteOrigin } from './selection';
5
+ import { type HistoricalThemePaletteEvidence } from './historicalThemePalette';
6
6
  export type LegacyPaletteClassification = Readonly<{
7
7
  kind: 'curated';
8
8
  paletteId: CuratedPaletteId;
@@ -28,7 +28,18 @@ export type LegacyOnboardingPaletteEvidence = Readonly<{
28
28
  export declare function classifyLegacyPaletteSelection(input: Readonly<{
29
29
  basePalette: CuratedPalette | null;
30
30
  overrides: PaletteOverrides | null;
31
- savedThemePalette: Theme['palette'] | null;
31
+ savedThemePalette: unknown;
32
+ fallbackPaletteId: CuratedPaletteId | null;
33
+ onboardingEvidence: LegacyOnboardingPaletteEvidence;
34
+ }>): LegacyPaletteClassification;
35
+ /**
36
+ * Migration-only classifier entry. The caller owns the unknown boundary and
37
+ * passes closed historical evidence, so saved palette JSON is parsed once.
38
+ */
39
+ export declare function classifyLegacyPaletteSelectionFromHistoricalEvidence(input: Readonly<{
40
+ basePalette: CuratedPalette | null;
41
+ overrides: PaletteOverrides | null;
42
+ savedThemePalette: HistoricalThemePaletteEvidence | null;
32
43
  fallbackPaletteId: CuratedPaletteId | null;
33
44
  onboardingEvidence: LegacyOnboardingPaletteEvidence;
34
45
  }>): LegacyPaletteClassification;
@@ -1,7 +1,7 @@
1
1
  import { type CuratedPaletteId, type PaletteOverrides } from './curated';
2
- import type { Theme } from '../schema';
3
2
  import type { PaletteSelection } from './selection';
4
3
  import { type SitePalette } from './selection';
4
+ import { type HistoricalThemePaletteEvidence } from './historicalThemePalette';
5
5
  import { resolvedCuratedPaletteSelection, resolvedSitePaletteSelection, type ResolvedPaletteSelection } from './resolveSelection';
6
6
  import type { SitePaletteParseError } from './sitePalettePersistence';
7
7
  export type PalettePersistenceReadSource = Readonly<{
@@ -101,9 +101,24 @@ export type RuntimePaletteResolution = Readonly<{
101
101
  export declare function resolveMigratedRuntimePaletteState(state: Extract<RuntimePaletteState, {
102
102
  kind: 'migrated';
103
103
  }>): RuntimePaletteResolution;
104
+ export type RuntimePaletteStateFromHistoricalEvidenceInput = Readonly<{
105
+ parsed: PalettePersistenceReadResult;
106
+ savedThemePalette: HistoricalThemePaletteEvidence | null;
107
+ activeSitePaletteAuthority: ActiveSitePaletteAuthority;
108
+ }>;
109
+ /**
110
+ * Uses already-parsed historical evidence for the legacy branch. Migrated
111
+ * authority never reads saved Theme data, so callers can omit it entirely by
112
+ * passing null.
113
+ */
114
+ export declare function runtimePaletteStateFromHistoricalEvidence(input: RuntimePaletteStateFromHistoricalEvidenceInput): RuntimePaletteState;
115
+ /**
116
+ * Raw persistence boundary for existing runtime callers. It parses saved Theme
117
+ * palette JSON only for legacy selections, then delegates to the typed entry.
118
+ */
104
119
  export declare function runtimePaletteStateFromPersisted(input: Readonly<{
105
120
  parsed: PalettePersistenceReadResult;
106
- savedThemePalette: Theme['palette'];
121
+ savedThemePalette?: unknown;
107
122
  activeSitePaletteAuthority: ActiveSitePaletteAuthority;
108
123
  }>): RuntimePaletteState;
109
124
  /**
@@ -4,7 +4,7 @@ import type { PaletteOverrides } from './curated';
4
4
  /**
5
5
  * The persisted Theme palette boundary. It deliberately stays narrower than
6
6
  * the full Theme schema so consumers do not need to depend on another package
7
- * just to interpret old sparse palette entries.
7
+ * just to interpret current sparse palette entries.
8
8
  */
9
9
  export type ThemePaletteCompatibilityInput = Readonly<{
10
10
  palette?: Readonly<{
@@ -51,8 +51,7 @@ export type ParseCompatibleThemePaletteResult = Readonly<{
51
51
  error: ThemePaletteCompatibilityError;
52
52
  }>;
53
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.
54
+ * Parses current complete Theme palettes and sparse editor payloads. Historical
55
+ * migration-only completion lives in historicalThemePalette.ts.
57
56
  */
58
57
  export declare function parseCompatibleThemePalette(theme: ThemePaletteCompatibilityInput): ParseCompatibleThemePaletteResult;
@@ -2,6 +2,7 @@ export declare const THEME_RADIUS_CSS_VARS: {
2
2
  readonly block: "--rb-block-radius";
3
3
  readonly button: "--rb-button-radius";
4
4
  readonly input: "--rb-input-radius";
5
+ readonly panel: "--rb-panel-radius";
5
6
  readonly legacyCard: "--radius-card";
6
7
  readonly legacyControl: "--radius-control";
7
8
  };