@motion-proto/live-tokens 0.68.1 → 0.70.0

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 (95) hide show
  1. package/.claude/skills/live-tokens-build-page/SKILL.md +16 -5
  2. package/.claude/skills/live-tokens-create-component/SKILL.md +55 -19
  3. package/.claude/skills/live-tokens-create-component/references/token-naming.md +30 -1
  4. package/.claude/skills/live-tokens-fix-findings/SKILL.md +133 -0
  5. package/.claude/skills/live-tokens-pick-component/SKILL.md +10 -1
  6. package/CHANGELOG.md +236 -0
  7. package/README.md +13 -4
  8. package/bin/check-component.mjs +367 -63
  9. package/bin/check-page.mjs +409 -0
  10. package/bin/cli.mjs +107 -9
  11. package/bin/lib/catalogue.mjs +123 -0
  12. package/bin/lib/cssValues.mjs +50 -0
  13. package/bin/lib/findings.mjs +106 -0
  14. package/bin/lib/tokenVocabulary.mjs +240 -0
  15. package/dist-plugin/adjust/index.cjs +174 -23
  16. package/dist-plugin/adjust/index.js +68 -23
  17. package/dist-plugin/{chunk-2UX6EVVA.js → chunk-2YNERPXY.js} +1 -1
  18. package/dist-plugin/{chunk-NE6N66EE.js → chunk-GPIBU44G.js} +107 -1
  19. package/dist-plugin/{chunk-ZHPX7ZYQ.js → chunk-RFVYPNRO.js} +39 -1
  20. package/dist-plugin/generateColorsAndType/index.cjs +107 -1
  21. package/dist-plugin/generateColorsAndType/index.js +1 -1
  22. package/dist-plugin/index.cjs +146 -2
  23. package/dist-plugin/index.js +3 -3
  24. package/dist-plugin/migrateData/index.cjs +107 -1
  25. package/dist-plugin/migrateData/index.js +2 -2
  26. package/dist-plugin/tokensCssMigrations/index.cjs +39 -1
  27. package/dist-plugin/tokensCssMigrations/index.js +1 -1
  28. package/package.json +3 -2
  29. package/src/app/site.css +4 -4
  30. package/src/editor/component-editor/ButtonEditor.svelte +71 -4
  31. package/src/editor/component-editor/CardEditor.svelte +6 -6
  32. package/src/editor/component-editor/DialogEditor.svelte +3 -3
  33. package/src/editor/component-editor/IconButtonEditor.svelte +68 -3
  34. package/src/editor/component-editor/ImageEditor.svelte +8 -8
  35. package/src/editor/component-editor/ImageLightboxEditor.svelte +12 -1
  36. package/src/editor/component-editor/MenuSelectEditor.svelte +63 -3
  37. package/src/editor/component-editor/SegmentedControlEditor.svelte +63 -3
  38. package/src/editor/component-editor/SideNavigationEditor.svelte +67 -3
  39. package/src/editor/component-editor/SliderEditor.svelte +186 -0
  40. package/src/editor/component-editor/TabBarEditor.svelte +63 -3
  41. package/src/editor/component-editor/registry.ts +10 -0
  42. package/src/editor/core/components/aliasKinds.ts +51 -28
  43. package/src/editor/core/sketch/sketchLayer.ts +16 -0
  44. package/src/editor/core/store/editorPersistence.ts +44 -1
  45. package/src/editor/core/store/editorRenderer.ts +2 -2
  46. package/src/editor/core/store/editorStore.ts +18 -18
  47. package/src/editor/core/store/editorTypes.ts +7 -6
  48. package/src/editor/core/themes/migrations/2026-09-01-gate-suffix-enabled.ts +31 -0
  49. package/src/editor/core/themes/migrations/2026-09-01-scrim-rename.ts +52 -0
  50. package/src/editor/core/themes/migrations/2026-09-01-tabbar-active-tint.ts +27 -0
  51. package/src/editor/core/themes/migrations/2026-09-01-tint-rename.ts +42 -0
  52. package/src/editor/core/themes/migrations/index.ts +16 -0
  53. package/src/editor/core/themes/slices/domainVars.ts +2 -2
  54. package/src/editor/core/themes/slices/washes.ts +107 -0
  55. package/src/editor/docs/content/editing-tokens.md +5 -3
  56. package/src/editor/docs/content.generated.ts +1 -1
  57. package/src/editor/index.ts +1 -1
  58. package/src/editor/pages/EditorShell.svelte +1 -1
  59. package/src/editor/ui/SurfacesTab.svelte +3 -3
  60. package/src/editor/ui/UITokenSelector.svelte +1 -0
  61. package/src/editor/ui/VariablesTab.svelte +2 -2
  62. package/src/editor/ui/sections/{OverlaysSection.svelte → WashesSection.svelte} +44 -43
  63. package/src/live-tokens/data/colors-and-type/autumn.json +6 -6
  64. package/src/live-tokens/data/colors-and-type/default.json +6 -6
  65. package/src/live-tokens/data/colors-and-type/halloween.json +6 -6
  66. package/src/live-tokens/data/colors-and-type/midnight-study.json +6 -6
  67. package/src/live-tokens/data/colors-and-type/ocean.json +6 -6
  68. package/src/live-tokens/data/colors-and-type/royal-velvet.json +6 -6
  69. package/src/live-tokens/data/colors-and-type/sketchy.json +6 -6
  70. package/src/live-tokens/data/colors-and-type/spring-meadow.json +6 -6
  71. package/src/live-tokens/data/colors-and-type/sunset.json +6 -6
  72. package/src/live-tokens/data/themes/autumn.json +81 -13
  73. package/src/live-tokens/data/themes/halloween.json +81 -13
  74. package/src/live-tokens/data/themes/midnight-study.json +81 -13
  75. package/src/live-tokens/data/themes/ocean.json +81 -13
  76. package/src/live-tokens/data/themes/royal-velvet.json +81 -13
  77. package/src/live-tokens/data/themes/sketchy.json +81 -13
  78. package/src/live-tokens/data/themes/spring-meadow.json +81 -13
  79. package/src/live-tokens/data/themes/sunset.json +81 -13
  80. package/src/live-tokens/data/tokens.generated.css +6 -6
  81. package/src/system/components/Button.svelte +28 -10
  82. package/src/system/components/Card.svelte +6 -6
  83. package/src/system/components/Dialog.svelte +3 -3
  84. package/src/system/components/IconButton.svelte +23 -7
  85. package/src/system/components/Image.svelte +6 -6
  86. package/src/system/components/MenuSelect.svelte +17 -1
  87. package/src/system/components/SegmentedControl.svelte +20 -2
  88. package/src/system/components/SideNavigation.svelte +22 -2
  89. package/src/system/components/Slider.svelte +348 -0
  90. package/src/system/components/TabBar.svelte +20 -2
  91. package/src/system/styles/CONVENTIONS.md +2 -2
  92. package/src/system/styles/tokens.css +12 -4
  93. package/template/package.json +3 -2
  94. package/template/src/pages/Home.svelte +1 -1
  95. package/src/editor/core/themes/slices/overlays.ts +0 -101
@@ -1,35 +1,80 @@
1
1
  import {
2
2
  CURRENT_COMPONENT_SCHEMA_VERSION
3
- } from "../chunk-NE6N66EE.js";
3
+ } from "../chunk-GPIBU44G.js";
4
4
  import {
5
5
  readLiveTokensConfig,
6
6
  resolveDataDirs
7
7
  } from "../chunk-RVE3MNKM.js";
8
8
 
9
9
  // src/editor/core/components/aliasKinds.ts
10
- var KIND_PATTERNS = [
11
- { kind: "font-family", matches: (v) => v.endsWith("-font-family") },
12
- { kind: "font-weight", matches: (v) => v.endsWith("-font-weight") },
13
- { kind: "font-size", matches: (v) => v.endsWith("-font-size") || v.endsWith("-icon-size") || v.endsWith("-thumb-size") },
14
- { kind: "line-height", matches: (v) => v.endsWith("-line-height") },
15
- { kind: "letter-spacing", matches: (v) => v.endsWith("-letter-spacing") },
16
- { kind: "text-color", matches: (v) => v.endsWith("-text") || v.startsWith("--text-") },
17
- { kind: "radius", matches: (v) => v.endsWith("-radius") || v.startsWith("--radius-") },
18
- { kind: "divider-width", matches: (v) => v.endsWith("-divider-width") || v.endsWith("-divider-thickness") },
19
- { kind: "divider-height", matches: (v) => v.endsWith("-divider-height") || v.endsWith("-track-height") },
20
- { kind: "divider-inset", matches: (v) => v.endsWith("-divider-inset") },
21
- { kind: "dot-size", matches: (v) => v.endsWith("-dot-size") },
22
- { kind: "blur", matches: (v) => v.endsWith("-blur") || v.startsWith("--blur-") },
23
- { kind: "scale", matches: (v) => v.endsWith("-scale") || v.startsWith("--scale-") },
24
- { kind: "shadow", matches: (v) => v.endsWith("-shadow") || v.startsWith("--shadow-") },
25
- { kind: "padding", matches: (v) => v.endsWith("-padding") || v.endsWith("-margin") },
26
- { kind: "gap", matches: (v) => v.endsWith("-gap") },
27
- { kind: "duration", matches: (v) => v.endsWith("-duration") || v.startsWith("--duration-") },
28
- { kind: "easing", matches: (v) => v.endsWith("-easing") || v.startsWith("--ease-") },
29
- { kind: "border-width", matches: (v) => v.endsWith("-border-width") || v.endsWith("-accent-width") || v.endsWith("-hairline-thickness") || v.startsWith("--border-width-") },
30
- { kind: "border", matches: (v) => v.endsWith("-border") || v.startsWith("--border-") },
31
- { kind: "surface", matches: (v) => v.endsWith("-surface") || v.startsWith("--surface-") }
10
+ var KIND_RULES = [
11
+ { kind: "font-family", suffix: ["-font-family"] },
12
+ { kind: "font-weight", suffix: ["-font-weight"] },
13
+ { kind: "font-size", suffix: ["-font-size", "-icon-size", "-thumb-size"] },
14
+ { kind: "line-height", suffix: ["-line-height"] },
15
+ { kind: "letter-spacing", suffix: ["-letter-spacing"] },
16
+ // Element-named colour roles: the property *is* the element it paints.
17
+ {
18
+ kind: "text-color",
19
+ suffix: [
20
+ "-text",
21
+ "-label",
22
+ "-icon",
23
+ "-title",
24
+ "-body",
25
+ "-eyebrow",
26
+ "-description",
27
+ "-hint",
28
+ "-error",
29
+ "-placeholder",
30
+ "-value"
31
+ ],
32
+ prefix: ["--text-"]
33
+ },
34
+ { kind: "radius", suffix: ["-radius"], prefix: ["--radius-"] },
35
+ { kind: "divider-width", suffix: ["-divider-width", "-divider-thickness"] },
36
+ { kind: "divider-height", suffix: ["-divider-height", "-track-height"] },
37
+ { kind: "divider-inset", suffix: ["-divider-inset", "-inset"] },
38
+ { kind: "dot-size", suffix: ["-dot-size"] },
39
+ { kind: "blur", suffix: ["-blur"], prefix: ["--blur-"] },
40
+ { kind: "scale", suffix: ["-scale"], prefix: ["--scale-"] },
41
+ { kind: "shadow", suffix: ["-shadow"], prefix: ["--shadow-"] },
42
+ { kind: "padding", suffix: ["-padding", "-margin"] },
43
+ { kind: "gap", suffix: ["-gap"] },
44
+ { kind: "duration", suffix: ["-duration"], prefix: ["--duration-"] },
45
+ { kind: "easing", suffix: ["-easing"], prefix: ["--ease-"] },
46
+ {
47
+ kind: "border-width",
48
+ suffix: ["-border-width", "-accent-width", "-hairline-thickness", "-thickness"],
49
+ prefix: ["--border-width-"]
50
+ },
51
+ { kind: "border", suffix: ["-border"], prefix: ["--border-"] },
52
+ // Fills. A tint is a wash over a surface, so it takes the surface picker: the
53
+ // full palette with an alpha, not just the tint stops it defaults to.
54
+ {
55
+ kind: "surface",
56
+ suffix: [
57
+ "-surface",
58
+ "-fill",
59
+ "-divider",
60
+ "-background",
61
+ "-indicator",
62
+ "-thumb",
63
+ "-accent",
64
+ "-color",
65
+ "-tint",
66
+ "-opacity",
67
+ "-width",
68
+ "-height",
69
+ "-size"
70
+ ],
71
+ prefix: ["--surface-", "--tint", "--color-"]
72
+ }
32
73
  ];
74
+ var KIND_PATTERNS = KIND_RULES.map(({ kind, suffix = [], prefix = [] }) => ({
75
+ kind,
76
+ matches: (v) => suffix.some((s) => v.endsWith(s)) || prefix.some((p) => v.startsWith(p))
77
+ }));
33
78
  var MATCHER_BY_KIND = Object.fromEntries(
34
79
  KIND_PATTERNS.map((p) => [p.kind, p.matches])
35
80
  );
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CURRENT_COMPONENT_SCHEMA_VERSION,
3
3
  runMigrations
4
- } from "./chunk-NE6N66EE.js";
4
+ } from "./chunk-GPIBU44G.js";
5
5
 
6
6
  // vite-plugin/files/versionedFileResourceServer.ts
7
7
  import fs from "fs";
@@ -703,6 +703,106 @@ var componentMigration_2026_08_15_lineHeightScaleRename = {
703
703
  apply: renameValues
704
704
  };
705
705
 
706
+ // src/editor/core/themes/migrations/2026-09-01-scrim-rename.ts
707
+ var RENAMED2 = {
708
+ "--overlay-low": "--scrim-low",
709
+ "--overlay": "--scrim",
710
+ "--overlay-high": "--scrim-high"
711
+ };
712
+ var RENAMED_COMPONENT_KEYS = {
713
+ "--dialog-overlay-surface": "--dialog-scrim-surface"
714
+ };
715
+ var colorsAndTypeMigration_2026_09_01_scrimRename = {
716
+ id: "2026-09-01-scrim-rename-theme",
717
+ fromVersion: 5,
718
+ toVersion: 6,
719
+ appliesTo: "colors-and-type",
720
+ apply(rawVars) {
721
+ const out = {};
722
+ for (const [key, value] of Object.entries(rawVars)) {
723
+ out[RENAMED2[key] ?? key] = value;
724
+ }
725
+ return out;
726
+ }
727
+ };
728
+ var componentMigration_2026_09_01_scrimRename = {
729
+ id: "2026-09-01-scrim-rename-component",
730
+ fromVersion: 21,
731
+ toVersion: 22,
732
+ appliesTo: "component-config",
733
+ apply(rawVars) {
734
+ const out = {};
735
+ for (const [key, value] of Object.entries(rawVars)) {
736
+ out[RENAMED_COMPONENT_KEYS[key] ?? key] = RENAMED2[value] ?? value;
737
+ }
738
+ return out;
739
+ }
740
+ };
741
+
742
+ // src/editor/core/themes/migrations/2026-09-01-tint-rename.ts
743
+ var RENAMED3 = {
744
+ "--hover-low": "--tint-low",
745
+ "--hover": "--tint",
746
+ "--hover-high": "--tint-high"
747
+ };
748
+ var colorsAndTypeMigration_2026_09_01_tintRename = {
749
+ id: "2026-09-01-tint-rename-theme",
750
+ fromVersion: 6,
751
+ toVersion: 7,
752
+ appliesTo: "colors-and-type",
753
+ apply(rawVars) {
754
+ const out = {};
755
+ for (const [key, value] of Object.entries(rawVars)) out[RENAMED3[key] ?? key] = value;
756
+ return out;
757
+ }
758
+ };
759
+ var componentMigration_2026_09_01_tintRename = {
760
+ id: "2026-09-01-tint-rename-component",
761
+ fromVersion: 22,
762
+ toVersion: 23,
763
+ appliesTo: "component-config",
764
+ apply(rawVars) {
765
+ const out = {};
766
+ for (const [key, value] of Object.entries(rawVars)) out[key] = RENAMED3[value] ?? value;
767
+ return out;
768
+ }
769
+ };
770
+
771
+ // src/editor/core/themes/migrations/2026-09-01-tabbar-active-tint.ts
772
+ var componentMigration_2026_09_01_tabbarActiveTint = {
773
+ id: "2026-09-01-tabbar-active-tint",
774
+ fromVersion: 23,
775
+ toVersion: 24,
776
+ appliesTo: "component-config",
777
+ apply(rawVars, meta) {
778
+ if (meta.component !== "tabbar") return { ...rawVars };
779
+ const out = { ...rawVars };
780
+ if (out["--tabbar-active-surface"] === "--scrim-low") {
781
+ out["--tabbar-active-surface"] = "--tint-low";
782
+ }
783
+ return out;
784
+ }
785
+ };
786
+
787
+ // src/editor/core/themes/migrations/2026-09-01-gate-suffix-enabled.ts
788
+ var RENAMED4 = {
789
+ "--card-hover-border-active": "--card-hover-border-enabled",
790
+ "--card-hover-shadow-active": "--card-hover-shadow-enabled",
791
+ "--image-zoom-hover": "--image-zoom-enabled",
792
+ "--image-grow-hover": "--image-grow-enabled"
793
+ };
794
+ var componentMigration_2026_09_01_gateSuffixEnabled = {
795
+ id: "2026-09-01-gate-suffix-enabled",
796
+ fromVersion: 24,
797
+ toVersion: 25,
798
+ appliesTo: "component-config",
799
+ apply(rawVars) {
800
+ const out = {};
801
+ for (const [key, value] of Object.entries(rawVars)) out[RENAMED4[key] ?? key] = value;
802
+ return out;
803
+ }
804
+ };
805
+
706
806
  // src/editor/core/themes/migrations/index.ts
707
807
  var MIGRATIONS = [
708
808
  colorsAndTypeMigration_2026_04_24_legacyKeysAndBgToCanvas,
@@ -730,7 +830,13 @@ var MIGRATIONS = [
730
830
  componentMigration_2026_05_29_toggleDeriveTrackFromThumb,
731
831
  colorsAndTypeMigration_2026_08_13_dropLegacyShapeSpaceKeys,
732
832
  colorsAndTypeMigration_2026_08_15_lineHeightScaleRename,
733
- componentMigration_2026_08_15_lineHeightScaleRename
833
+ componentMigration_2026_08_15_lineHeightScaleRename,
834
+ colorsAndTypeMigration_2026_09_01_scrimRename,
835
+ componentMigration_2026_09_01_scrimRename,
836
+ colorsAndTypeMigration_2026_09_01_tintRename,
837
+ componentMigration_2026_09_01_tintRename,
838
+ componentMigration_2026_09_01_tabbarActiveTint,
839
+ componentMigration_2026_09_01_gateSuffixEnabled
734
840
  ];
735
841
  function countFor(kind) {
736
842
  return MIGRATIONS.filter((m) => m.appliesTo === kind).length;
@@ -516,6 +516,42 @@ var tokensCssMigration_2026_08_27_editorialLargeSteps = {
516
516
  }
517
517
  };
518
518
 
519
+ // vite-plugin/tokensCssMigrations/migrations/2026-09-01-scrim-rename.ts
520
+ var RENAMES2 = [
521
+ ["--overlay-low", "--scrim-low"],
522
+ ["--overlay-high", "--scrim-high"],
523
+ ["--overlay", "--scrim"]
524
+ ];
525
+ var tokensCssMigration_2026_09_01_scrimRename = {
526
+ id: "2026-09-01-scrim-rename",
527
+ kind: "breaking",
528
+ description: "Rename --overlay-{low,base,high} to --scrim-*; a scrim dims what is behind it",
529
+ apply(css) {
530
+ let out = css;
531
+ for (const [oldName, newName] of RENAMES2) out = renameToken(out, oldName, newName);
532
+ return out;
533
+ }
534
+ };
535
+
536
+ // vite-plugin/tokensCssMigrations/migrations/2026-09-01-tint-scale.ts
537
+ var ENTRIES = [
538
+ { name: "--tint-low", value: "rgba(255, 255, 255, 0.05)" },
539
+ { name: "--tint", value: "rgba(255, 255, 255, 0.1)" },
540
+ { name: "--tint-high", value: "rgba(255, 255, 255, 0.15)" }
541
+ ];
542
+ var tokensCssMigration_2026_09_01_tintScale = {
543
+ id: "2026-09-01-tint-scale",
544
+ kind: "additive",
545
+ description: "Add the --tint-* scale; a tint shades the surface it sits on",
546
+ apply(css) {
547
+ return ensureScale(css, {
548
+ entries: ENTRIES,
549
+ sectionComment: "Tints \u2014 translucent washes that shade the surface they sit on",
550
+ anchorPrefixes: ["--scrim", "--overlay"]
551
+ });
552
+ }
553
+ };
554
+
519
555
  // vite-plugin/tokensCssMigrations/index.ts
520
556
  var TOKENS_CSS_MIGRATIONS = [
521
557
  tokensCssMigration_2026_05_29_typographyScaleAdditions,
@@ -530,7 +566,9 @@ var TOKENS_CSS_MIGRATIONS = [
530
566
  tokensCssMigration_2026_08_26_gradientStops,
531
567
  tokensCssMigration_2026_08_27_backdropPolarity,
532
568
  tokensCssMigration_2026_08_27_editorialSizeSteps,
533
- tokensCssMigration_2026_08_27_editorialLargeSteps
569
+ tokensCssMigration_2026_08_27_editorialLargeSteps,
570
+ tokensCssMigration_2026_09_01_scrimRename,
571
+ tokensCssMigration_2026_09_01_tintScale
534
572
  ];
535
573
  function runTokensCssMigrations(css) {
536
574
  return foldMigrations(css, () => true);
@@ -1551,6 +1551,106 @@ var componentMigration_2026_08_15_lineHeightScaleRename = {
1551
1551
  apply: renameValues
1552
1552
  };
1553
1553
 
1554
+ // src/editor/core/themes/migrations/2026-09-01-scrim-rename.ts
1555
+ var RENAMED2 = {
1556
+ "--overlay-low": "--scrim-low",
1557
+ "--overlay": "--scrim",
1558
+ "--overlay-high": "--scrim-high"
1559
+ };
1560
+ var RENAMED_COMPONENT_KEYS = {
1561
+ "--dialog-overlay-surface": "--dialog-scrim-surface"
1562
+ };
1563
+ var colorsAndTypeMigration_2026_09_01_scrimRename = {
1564
+ id: "2026-09-01-scrim-rename-theme",
1565
+ fromVersion: 5,
1566
+ toVersion: 6,
1567
+ appliesTo: "colors-and-type",
1568
+ apply(rawVars) {
1569
+ const out = {};
1570
+ for (const [key, value] of Object.entries(rawVars)) {
1571
+ out[RENAMED2[key] ?? key] = value;
1572
+ }
1573
+ return out;
1574
+ }
1575
+ };
1576
+ var componentMigration_2026_09_01_scrimRename = {
1577
+ id: "2026-09-01-scrim-rename-component",
1578
+ fromVersion: 21,
1579
+ toVersion: 22,
1580
+ appliesTo: "component-config",
1581
+ apply(rawVars) {
1582
+ const out = {};
1583
+ for (const [key, value] of Object.entries(rawVars)) {
1584
+ out[RENAMED_COMPONENT_KEYS[key] ?? key] = RENAMED2[value] ?? value;
1585
+ }
1586
+ return out;
1587
+ }
1588
+ };
1589
+
1590
+ // src/editor/core/themes/migrations/2026-09-01-tint-rename.ts
1591
+ var RENAMED3 = {
1592
+ "--hover-low": "--tint-low",
1593
+ "--hover": "--tint",
1594
+ "--hover-high": "--tint-high"
1595
+ };
1596
+ var colorsAndTypeMigration_2026_09_01_tintRename = {
1597
+ id: "2026-09-01-tint-rename-theme",
1598
+ fromVersion: 6,
1599
+ toVersion: 7,
1600
+ appliesTo: "colors-and-type",
1601
+ apply(rawVars) {
1602
+ const out = {};
1603
+ for (const [key, value] of Object.entries(rawVars)) out[RENAMED3[key] ?? key] = value;
1604
+ return out;
1605
+ }
1606
+ };
1607
+ var componentMigration_2026_09_01_tintRename = {
1608
+ id: "2026-09-01-tint-rename-component",
1609
+ fromVersion: 22,
1610
+ toVersion: 23,
1611
+ appliesTo: "component-config",
1612
+ apply(rawVars) {
1613
+ const out = {};
1614
+ for (const [key, value] of Object.entries(rawVars)) out[key] = RENAMED3[value] ?? value;
1615
+ return out;
1616
+ }
1617
+ };
1618
+
1619
+ // src/editor/core/themes/migrations/2026-09-01-tabbar-active-tint.ts
1620
+ var componentMigration_2026_09_01_tabbarActiveTint = {
1621
+ id: "2026-09-01-tabbar-active-tint",
1622
+ fromVersion: 23,
1623
+ toVersion: 24,
1624
+ appliesTo: "component-config",
1625
+ apply(rawVars, meta) {
1626
+ if (meta.component !== "tabbar") return { ...rawVars };
1627
+ const out = { ...rawVars };
1628
+ if (out["--tabbar-active-surface"] === "--scrim-low") {
1629
+ out["--tabbar-active-surface"] = "--tint-low";
1630
+ }
1631
+ return out;
1632
+ }
1633
+ };
1634
+
1635
+ // src/editor/core/themes/migrations/2026-09-01-gate-suffix-enabled.ts
1636
+ var RENAMED4 = {
1637
+ "--card-hover-border-active": "--card-hover-border-enabled",
1638
+ "--card-hover-shadow-active": "--card-hover-shadow-enabled",
1639
+ "--image-zoom-hover": "--image-zoom-enabled",
1640
+ "--image-grow-hover": "--image-grow-enabled"
1641
+ };
1642
+ var componentMigration_2026_09_01_gateSuffixEnabled = {
1643
+ id: "2026-09-01-gate-suffix-enabled",
1644
+ fromVersion: 24,
1645
+ toVersion: 25,
1646
+ appliesTo: "component-config",
1647
+ apply(rawVars) {
1648
+ const out = {};
1649
+ for (const [key, value] of Object.entries(rawVars)) out[RENAMED4[key] ?? key] = value;
1650
+ return out;
1651
+ }
1652
+ };
1653
+
1554
1654
  // src/editor/core/themes/migrations/index.ts
1555
1655
  var MIGRATIONS = [
1556
1656
  colorsAndTypeMigration_2026_04_24_legacyKeysAndBgToCanvas,
@@ -1578,7 +1678,13 @@ var MIGRATIONS = [
1578
1678
  componentMigration_2026_05_29_toggleDeriveTrackFromThumb,
1579
1679
  colorsAndTypeMigration_2026_08_13_dropLegacyShapeSpaceKeys,
1580
1680
  colorsAndTypeMigration_2026_08_15_lineHeightScaleRename,
1581
- componentMigration_2026_08_15_lineHeightScaleRename
1681
+ componentMigration_2026_08_15_lineHeightScaleRename,
1682
+ colorsAndTypeMigration_2026_09_01_scrimRename,
1683
+ componentMigration_2026_09_01_scrimRename,
1684
+ colorsAndTypeMigration_2026_09_01_tintRename,
1685
+ componentMigration_2026_09_01_tintRename,
1686
+ componentMigration_2026_09_01_tabbarActiveTint,
1687
+ componentMigration_2026_09_01_gateSuffixEnabled
1582
1688
  ];
1583
1689
  function countFor(kind) {
1584
1690
  return MIGRATIONS.filter((m) => m.appliesTo === kind).length;
@@ -19,7 +19,7 @@ import {
19
19
  import {
20
20
  CURRENT_COLORS_AND_TYPE_SCHEMA_VERSION,
21
21
  CURRENT_COMPONENT_SCHEMA_VERSION
22
- } from "../chunk-NE6N66EE.js";
22
+ } from "../chunk-GPIBU44G.js";
23
23
  import {
24
24
  cssColorToOklch,
25
25
  gamutClamp,
@@ -1487,6 +1487,106 @@ var componentMigration_2026_08_15_lineHeightScaleRename = {
1487
1487
  apply: renameValues
1488
1488
  };
1489
1489
 
1490
+ // src/editor/core/themes/migrations/2026-09-01-scrim-rename.ts
1491
+ var RENAMED2 = {
1492
+ "--overlay-low": "--scrim-low",
1493
+ "--overlay": "--scrim",
1494
+ "--overlay-high": "--scrim-high"
1495
+ };
1496
+ var RENAMED_COMPONENT_KEYS = {
1497
+ "--dialog-overlay-surface": "--dialog-scrim-surface"
1498
+ };
1499
+ var colorsAndTypeMigration_2026_09_01_scrimRename = {
1500
+ id: "2026-09-01-scrim-rename-theme",
1501
+ fromVersion: 5,
1502
+ toVersion: 6,
1503
+ appliesTo: "colors-and-type",
1504
+ apply(rawVars) {
1505
+ const out = {};
1506
+ for (const [key, value] of Object.entries(rawVars)) {
1507
+ out[RENAMED2[key] ?? key] = value;
1508
+ }
1509
+ return out;
1510
+ }
1511
+ };
1512
+ var componentMigration_2026_09_01_scrimRename = {
1513
+ id: "2026-09-01-scrim-rename-component",
1514
+ fromVersion: 21,
1515
+ toVersion: 22,
1516
+ appliesTo: "component-config",
1517
+ apply(rawVars) {
1518
+ const out = {};
1519
+ for (const [key, value] of Object.entries(rawVars)) {
1520
+ out[RENAMED_COMPONENT_KEYS[key] ?? key] = RENAMED2[value] ?? value;
1521
+ }
1522
+ return out;
1523
+ }
1524
+ };
1525
+
1526
+ // src/editor/core/themes/migrations/2026-09-01-tint-rename.ts
1527
+ var RENAMED3 = {
1528
+ "--hover-low": "--tint-low",
1529
+ "--hover": "--tint",
1530
+ "--hover-high": "--tint-high"
1531
+ };
1532
+ var colorsAndTypeMigration_2026_09_01_tintRename = {
1533
+ id: "2026-09-01-tint-rename-theme",
1534
+ fromVersion: 6,
1535
+ toVersion: 7,
1536
+ appliesTo: "colors-and-type",
1537
+ apply(rawVars) {
1538
+ const out = {};
1539
+ for (const [key, value] of Object.entries(rawVars)) out[RENAMED3[key] ?? key] = value;
1540
+ return out;
1541
+ }
1542
+ };
1543
+ var componentMigration_2026_09_01_tintRename = {
1544
+ id: "2026-09-01-tint-rename-component",
1545
+ fromVersion: 22,
1546
+ toVersion: 23,
1547
+ appliesTo: "component-config",
1548
+ apply(rawVars) {
1549
+ const out = {};
1550
+ for (const [key, value] of Object.entries(rawVars)) out[key] = RENAMED3[value] ?? value;
1551
+ return out;
1552
+ }
1553
+ };
1554
+
1555
+ // src/editor/core/themes/migrations/2026-09-01-tabbar-active-tint.ts
1556
+ var componentMigration_2026_09_01_tabbarActiveTint = {
1557
+ id: "2026-09-01-tabbar-active-tint",
1558
+ fromVersion: 23,
1559
+ toVersion: 24,
1560
+ appliesTo: "component-config",
1561
+ apply(rawVars, meta) {
1562
+ if (meta.component !== "tabbar") return { ...rawVars };
1563
+ const out = { ...rawVars };
1564
+ if (out["--tabbar-active-surface"] === "--scrim-low") {
1565
+ out["--tabbar-active-surface"] = "--tint-low";
1566
+ }
1567
+ return out;
1568
+ }
1569
+ };
1570
+
1571
+ // src/editor/core/themes/migrations/2026-09-01-gate-suffix-enabled.ts
1572
+ var RENAMED4 = {
1573
+ "--card-hover-border-active": "--card-hover-border-enabled",
1574
+ "--card-hover-shadow-active": "--card-hover-shadow-enabled",
1575
+ "--image-zoom-hover": "--image-zoom-enabled",
1576
+ "--image-grow-hover": "--image-grow-enabled"
1577
+ };
1578
+ var componentMigration_2026_09_01_gateSuffixEnabled = {
1579
+ id: "2026-09-01-gate-suffix-enabled",
1580
+ fromVersion: 24,
1581
+ toVersion: 25,
1582
+ appliesTo: "component-config",
1583
+ apply(rawVars) {
1584
+ const out = {};
1585
+ for (const [key, value] of Object.entries(rawVars)) out[RENAMED4[key] ?? key] = value;
1586
+ return out;
1587
+ }
1588
+ };
1589
+
1490
1590
  // src/editor/core/themes/migrations/index.ts
1491
1591
  var MIGRATIONS = [
1492
1592
  colorsAndTypeMigration_2026_04_24_legacyKeysAndBgToCanvas,
@@ -1514,7 +1614,13 @@ var MIGRATIONS = [
1514
1614
  componentMigration_2026_05_29_toggleDeriveTrackFromThumb,
1515
1615
  colorsAndTypeMigration_2026_08_13_dropLegacyShapeSpaceKeys,
1516
1616
  colorsAndTypeMigration_2026_08_15_lineHeightScaleRename,
1517
- componentMigration_2026_08_15_lineHeightScaleRename
1617
+ componentMigration_2026_08_15_lineHeightScaleRename,
1618
+ colorsAndTypeMigration_2026_09_01_scrimRename,
1619
+ componentMigration_2026_09_01_scrimRename,
1620
+ colorsAndTypeMigration_2026_09_01_tintRename,
1621
+ componentMigration_2026_09_01_tintRename,
1622
+ componentMigration_2026_09_01_tabbarActiveTint,
1623
+ componentMigration_2026_09_01_gateSuffixEnabled
1518
1624
  ];
1519
1625
  function countFor(kind) {
1520
1626
  return MIGRATIONS.filter((m) => m.appliesTo === kind).length;
@@ -3092,6 +3198,42 @@ var tokensCssMigration_2026_08_27_editorialLargeSteps = {
3092
3198
  }
3093
3199
  };
3094
3200
 
3201
+ // vite-plugin/tokensCssMigrations/migrations/2026-09-01-scrim-rename.ts
3202
+ var RENAMES3 = [
3203
+ ["--overlay-low", "--scrim-low"],
3204
+ ["--overlay-high", "--scrim-high"],
3205
+ ["--overlay", "--scrim"]
3206
+ ];
3207
+ var tokensCssMigration_2026_09_01_scrimRename = {
3208
+ id: "2026-09-01-scrim-rename",
3209
+ kind: "breaking",
3210
+ description: "Rename --overlay-{low,base,high} to --scrim-*; a scrim dims what is behind it",
3211
+ apply(css) {
3212
+ let out = css;
3213
+ for (const [oldName, newName] of RENAMES3) out = renameToken2(out, oldName, newName);
3214
+ return out;
3215
+ }
3216
+ };
3217
+
3218
+ // vite-plugin/tokensCssMigrations/migrations/2026-09-01-tint-scale.ts
3219
+ var ENTRIES = [
3220
+ { name: "--tint-low", value: "rgba(255, 255, 255, 0.05)" },
3221
+ { name: "--tint", value: "rgba(255, 255, 255, 0.1)" },
3222
+ { name: "--tint-high", value: "rgba(255, 255, 255, 0.15)" }
3223
+ ];
3224
+ var tokensCssMigration_2026_09_01_tintScale = {
3225
+ id: "2026-09-01-tint-scale",
3226
+ kind: "additive",
3227
+ description: "Add the --tint-* scale; a tint shades the surface it sits on",
3228
+ apply(css) {
3229
+ return ensureScale(css, {
3230
+ entries: ENTRIES,
3231
+ sectionComment: "Tints \u2014 translucent washes that shade the surface they sit on",
3232
+ anchorPrefixes: ["--scrim", "--overlay"]
3233
+ });
3234
+ }
3235
+ };
3236
+
3095
3237
  // vite-plugin/tokensCssMigrations/index.ts
3096
3238
  var TOKENS_CSS_MIGRATIONS = [
3097
3239
  tokensCssMigration_2026_05_29_typographyScaleAdditions,
@@ -3106,7 +3248,9 @@ var TOKENS_CSS_MIGRATIONS = [
3106
3248
  tokensCssMigration_2026_08_26_gradientStops,
3107
3249
  tokensCssMigration_2026_08_27_backdropPolarity,
3108
3250
  tokensCssMigration_2026_08_27_editorialSizeSteps,
3109
- tokensCssMigration_2026_08_27_editorialLargeSteps
3251
+ tokensCssMigration_2026_08_27_editorialLargeSteps,
3252
+ tokensCssMigration_2026_09_01_scrimRename,
3253
+ tokensCssMigration_2026_09_01_tintScale
3110
3254
  ];
3111
3255
  function runTokensCssMigrations(css) {
3112
3256
  return foldMigrations(css, () => true);
@@ -13,17 +13,17 @@ import {
13
13
  nextAvailableName,
14
14
  normalizeTheme,
15
15
  versionedFileResourceServer
16
- } from "./chunk-2UX6EVVA.js";
16
+ } from "./chunk-2YNERPXY.js";
17
17
  import {
18
18
  CURRENT_COMPONENT_SCHEMA_VERSION
19
- } from "./chunk-NE6N66EE.js";
19
+ } from "./chunk-GPIBU44G.js";
20
20
  import {
21
21
  TOKENS_CSS_MIGRATIONS,
22
22
  extractGlobalRootBody,
23
23
  runAdditiveTokensCssMigrations,
24
24
  runTokensCssMigrations,
25
25
  validateTokensCss
26
- } from "./chunk-ZHPX7ZYQ.js";
26
+ } from "./chunk-RFVYPNRO.js";
27
27
  import {
28
28
  hexToOklch,
29
29
  oklchToRgb255,