@motion-proto/live-tokens 0.67.1 → 0.69.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 (138) hide show
  1. package/.claude/skills/live-tokens-build-page/SKILL.md +16 -5
  2. package/.claude/skills/live-tokens-create-component/SKILL.md +43 -8
  3. package/.claude/skills/live-tokens-create-component/references/token-naming.md +30 -1
  4. package/.claude/skills/live-tokens-fix-findings/SKILL.md +131 -0
  5. package/.claude/skills/live-tokens-pick-component/SKILL.md +2 -1
  6. package/CHANGELOG.md +239 -0
  7. package/README.md +11 -4
  8. package/bin/check-component.mjs +367 -63
  9. package/bin/check-page.mjs +409 -0
  10. package/bin/cli.mjs +57 -8
  11. package/bin/generate-theme.mjs +5 -4
  12. package/bin/lib/cssValues.mjs +50 -0
  13. package/bin/lib/findings.mjs +106 -0
  14. package/bin/lib/tokenVocabulary.mjs +213 -0
  15. package/dist-plugin/adjust/index.cjs +174 -23
  16. package/dist-plugin/adjust/index.d.cts +1 -1
  17. package/dist-plugin/adjust/index.d.ts +1 -1
  18. package/dist-plugin/adjust/index.js +68 -23
  19. package/dist-plugin/{chunk-J2JT4UEA.js → chunk-2YNERPXY.js} +26 -26
  20. package/dist-plugin/{chunk-NE6N66EE.js → chunk-GPIBU44G.js} +107 -1
  21. package/dist-plugin/{chunk-ZHPX7ZYQ.js → chunk-RFVYPNRO.js} +39 -1
  22. package/dist-plugin/{dataPaths-DZUzVv8H.d.ts → dataPaths-bJTCEO4H.d.cts} +1 -1
  23. package/dist-plugin/{dataPaths-DZUzVv8H.d.cts → dataPaths-bJTCEO4H.d.ts} +1 -1
  24. package/dist-plugin/fontPairing/index.d.cts +1 -1
  25. package/dist-plugin/fontPairing/index.d.ts +1 -1
  26. package/dist-plugin/generateColorsAndType/index.cjs +107 -1
  27. package/dist-plugin/generateColorsAndType/index.d.cts +1 -1
  28. package/dist-plugin/generateColorsAndType/index.d.ts +1 -1
  29. package/dist-plugin/generateColorsAndType/index.js +1 -1
  30. package/dist-plugin/index.cjs +173 -29
  31. package/dist-plugin/index.d.cts +1 -1
  32. package/dist-plugin/index.d.ts +1 -1
  33. package/dist-plugin/index.js +7 -7
  34. package/dist-plugin/migrateData/index.cjs +132 -26
  35. package/dist-plugin/migrateData/index.d.cts +1 -1
  36. package/dist-plugin/migrateData/index.d.ts +1 -1
  37. package/dist-plugin/migrateData/index.js +2 -2
  38. package/dist-plugin/tokensCssMigrations/index.cjs +39 -1
  39. package/dist-plugin/tokensCssMigrations/index.d.cts +1 -1
  40. package/dist-plugin/tokensCssMigrations/index.d.ts +1 -1
  41. package/dist-plugin/tokensCssMigrations/index.js +1 -1
  42. package/package.json +6 -5
  43. package/src/app/site.css +4 -4
  44. package/src/editor/bootstrap.ts +6 -6
  45. package/src/editor/component-editor/ButtonEditor.svelte +71 -4
  46. package/src/editor/component-editor/CardEditor.svelte +6 -6
  47. package/src/editor/component-editor/DialogEditor.svelte +3 -3
  48. package/src/editor/component-editor/IconButtonEditor.svelte +68 -3
  49. package/src/editor/component-editor/ImageEditor.svelte +8 -8
  50. package/src/editor/component-editor/ImageLightboxEditor.svelte +13 -2
  51. package/src/editor/component-editor/MenuSelectEditor.svelte +63 -3
  52. package/src/editor/component-editor/SegmentedControlEditor.svelte +63 -3
  53. package/src/editor/component-editor/SideNavigationEditor.svelte +67 -3
  54. package/src/editor/component-editor/SliderEditor.svelte +186 -0
  55. package/src/editor/component-editor/TabBarEditor.svelte +63 -3
  56. package/src/editor/component-editor/registry.ts +10 -0
  57. package/src/editor/component-editor/scaffolding/ComponentFileManager.svelte +4 -4
  58. package/src/editor/core/components/aliasKinds.ts +51 -28
  59. package/src/editor/core/fonts/fontLoader.ts +2 -2
  60. package/src/editor/core/preview/{lookPreview.ts → themePreview.ts} +27 -27
  61. package/src/editor/core/productionPulse.ts +3 -3
  62. package/src/editor/core/sketch/index.ts +52 -44
  63. package/src/editor/core/sketch/maskField.ts +9 -9
  64. package/src/editor/core/sketch/sketchLayer.ts +25 -9
  65. package/src/editor/core/sketch/sketchRegistry.ts +34 -34
  66. package/src/editor/core/sketch/sketchStore.ts +98 -83
  67. package/src/editor/core/sketch/sketchStyleService.ts +4 -4
  68. package/src/editor/core/sketch/sketchStyles.ts +28 -28
  69. package/src/editor/core/store/editorPersistence.ts +44 -1
  70. package/src/editor/core/store/editorRenderer.ts +2 -2
  71. package/src/editor/core/store/editorStore.ts +18 -18
  72. package/src/editor/core/store/editorTypes.ts +7 -6
  73. package/src/editor/core/themes/colorsAndTypeService.ts +1 -1
  74. package/src/editor/core/themes/loadRows.ts +8 -8
  75. package/src/editor/core/themes/migrations/2026-09-01-gate-suffix-enabled.ts +31 -0
  76. package/src/editor/core/themes/migrations/2026-09-01-scrim-rename.ts +52 -0
  77. package/src/editor/core/themes/migrations/2026-09-01-tabbar-active-tint.ts +27 -0
  78. package/src/editor/core/themes/migrations/2026-09-01-tint-rename.ts +42 -0
  79. package/src/editor/core/themes/migrations/index.ts +16 -0
  80. package/src/editor/core/themes/slices/domainVars.ts +2 -2
  81. package/src/editor/core/themes/slices/washes.ts +107 -0
  82. package/src/editor/core/themes/themeDocumentSync.ts +2 -2
  83. package/src/editor/core/themes/themeInit.ts +2 -2
  84. package/src/editor/core/themes/themeService.ts +17 -17
  85. package/src/editor/core/themes/{lookSummary.ts → themeSummary.ts} +9 -9
  86. package/src/editor/core/themes/themeTypes.ts +10 -6
  87. package/src/editor/docs/content/editing-tokens.md +5 -3
  88. package/src/editor/docs/content/getting-started.md +1 -1
  89. package/src/editor/docs/content/sketch-mode.md +22 -17
  90. package/src/editor/docs/content/themes-workflow.md +11 -11
  91. package/src/editor/docs/content/where-themes-live.md +6 -6
  92. package/src/editor/docs/content.generated.ts +5 -5
  93. package/src/editor/index.ts +2 -2
  94. package/src/editor/pages/EditorShell.svelte +1 -1
  95. package/src/editor/ui/SurfacesTab.svelte +3 -3
  96. package/src/editor/ui/ThemePanel.svelte +52 -52
  97. package/src/editor/ui/UITokenSelector.svelte +1 -0
  98. package/src/editor/ui/VariablesTab.svelte +2 -2
  99. package/src/editor/ui/sections/{OverlaysSection.svelte → WashesSection.svelte} +44 -43
  100. package/src/editor/ui/sketch/SketchPreview.svelte +2 -2
  101. package/src/editor/ui/sketch/SketchTab.svelte +64 -38
  102. package/src/live-tokens/data/colors-and-type/autumn.json +6 -6
  103. package/src/live-tokens/data/colors-and-type/default.json +6 -6
  104. package/src/live-tokens/data/colors-and-type/halloween.json +6 -6
  105. package/src/live-tokens/data/colors-and-type/midnight-study.json +6 -6
  106. package/src/live-tokens/data/colors-and-type/ocean.json +6 -6
  107. package/src/live-tokens/data/colors-and-type/royal-velvet.json +6 -6
  108. package/src/live-tokens/data/colors-and-type/sketchy.json +6 -6
  109. package/src/live-tokens/data/colors-and-type/spring-meadow.json +6 -6
  110. package/src/live-tokens/data/colors-and-type/sunset.json +6 -6
  111. package/src/live-tokens/data/sketch-styles/dry.json +5 -5
  112. package/src/live-tokens/data/sketch-styles/hatched.json +9 -9
  113. package/src/live-tokens/data/themes/autumn.json +82 -14
  114. package/src/live-tokens/data/themes/halloween.json +82 -14
  115. package/src/live-tokens/data/themes/midnight-study.json +82 -14
  116. package/src/live-tokens/data/themes/ocean.json +82 -14
  117. package/src/live-tokens/data/themes/royal-velvet.json +82 -14
  118. package/src/live-tokens/data/themes/sketchy.json +82 -14
  119. package/src/live-tokens/data/themes/spring-meadow.json +82 -14
  120. package/src/live-tokens/data/themes/sunset.json +82 -14
  121. package/src/live-tokens/data/tokens.generated.css +6 -6
  122. package/src/system/backdrop/backdrop.ts +1 -1
  123. package/src/system/components/Button.svelte +28 -10
  124. package/src/system/components/Card.svelte +6 -6
  125. package/src/system/components/Dialog.svelte +3 -3
  126. package/src/system/components/IconButton.svelte +23 -7
  127. package/src/system/components/Image.svelte +6 -6
  128. package/src/system/components/MenuSelect.svelte +17 -1
  129. package/src/system/components/SectionDivider.svelte +1 -1
  130. package/src/system/components/SegmentedControl.svelte +20 -2
  131. package/src/system/components/SideNavigation.svelte +22 -2
  132. package/src/system/components/Slider.svelte +348 -0
  133. package/src/system/components/TabBar.svelte +20 -2
  134. package/src/system/styles/CONVENTIONS.md +2 -2
  135. package/src/system/styles/tokens.css +12 -4
  136. package/template/package.json +3 -2
  137. package/template/src/pages/Home.svelte +1 -1
  138. package/src/editor/core/themes/slices/overlays.ts +0 -101
@@ -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";
@@ -135,7 +135,7 @@ function versionedFileResourceServer(opts) {
135
135
  }
136
136
 
137
137
  // src/editor/core/themes/themeTypes.ts
138
- var THEME_SCHEMA_VERSION = 4;
138
+ var THEME_SCHEMA_VERSION = 5;
139
139
 
140
140
  // src/editor/core/themes/migrateComponentConfig.ts
141
141
  function migrateComponentConfig(component, aliasesIn, rawConfig, fileVersion) {
@@ -438,15 +438,15 @@ var hatched_default = {
438
438
  pressureMod: 0.45,
439
439
  pooling: 0.8,
440
440
  strokeInk: 1,
441
- maskOn: false,
442
- maskBlobX: 100,
443
- maskBlobY: 100,
444
- maskBlobLinked: true,
445
- maskAngle: 0,
446
- maskOutputMin: 0.45,
441
+ maskOn: true,
442
+ maskBlobX: 10,
443
+ maskBlobY: 600,
444
+ maskBlobLinked: false,
445
+ maskAngle: 150,
446
+ maskOutputMin: 0.35,
447
447
  maskOutputMax: 1,
448
448
  maskOctaves: 2,
449
- maskGrain: "fractal",
449
+ maskGrain: "turbulence",
450
450
  maskPosterize: 1,
451
451
  maskSoftness: 1.5,
452
452
  jitterX: 1.5,
@@ -460,7 +460,7 @@ var hatched_default = {
460
460
  iconMaskOn: false,
461
461
  iconMaskScale: 1
462
462
  },
463
- updatedAt: "2026-08-28T15:47:36.934Z",
463
+ updatedAt: "2026-08-28T21:17:18.232Z",
464
464
  createdAt: "2026-08-28T15:47:36.934Z"
465
465
  };
466
466
 
@@ -586,11 +586,11 @@ var dry_default = {
586
586
  pooling: 1.5,
587
587
  strokeInk: 0.4,
588
588
  maskOn: true,
589
- maskBlobX: 150,
590
- maskBlobY: 150,
589
+ maskBlobX: 170,
590
+ maskBlobY: 170,
591
591
  maskBlobLinked: true,
592
592
  maskAngle: 0,
593
- maskOutputMin: 0.24,
593
+ maskOutputMin: 0.57,
594
594
  maskOutputMax: 0.91,
595
595
  maskOctaves: 2,
596
596
  maskGrain: "fractal",
@@ -607,18 +607,18 @@ var dry_default = {
607
607
  iconMaskOn: true,
608
608
  iconMaskScale: 3.8
609
609
  },
610
- updatedAt: "2026-08-28T15:47:36.934Z",
610
+ updatedAt: "2026-08-28T21:19:51.383Z",
611
611
  createdAt: "2026-08-28T15:47:36.934Z"
612
612
  };
613
613
 
614
614
  // src/editor/core/sketch/sketchStyles.ts
615
615
  var SHIPPED_FILES = { pencil: pencil_default, marker: marker_default, whiteboard: whiteboard_default, hatched: hatched_default, dashed: dashed_default, napkin: napkin_default, dry: dry_default };
616
- var SKETCH_STYLES = Object.fromEntries(
616
+ var SHIPPED_SKETCH_SETTINGS = Object.fromEntries(
617
617
  Object.entries(SHIPPED_FILES).map(([id, file]) => [id, file.settings])
618
618
  );
619
619
  var DEFAULT_SKETCH_STYLE = "marker";
620
- function hydrateSketchStyle(raw) {
621
- const base = SKETCH_STYLES[DEFAULT_SKETCH_STYLE];
620
+ function hydrateSketchSettings(raw) {
621
+ const base = SHIPPED_SKETCH_SETTINGS[DEFAULT_SKETCH_STYLE];
622
622
  const stored = raw ?? {};
623
623
  const out = { ...base };
624
624
  for (const key of Object.keys(base)) {
@@ -782,10 +782,10 @@ function normalizeTheme(raw, resolvers) {
782
782
  }
783
783
  const componentConfigs = {};
784
784
  for (const [comp, value] of Object.entries(asObject(src.componentConfigs) ?? {})) {
785
- const embedded = asObject(value);
785
+ const embedded2 = asObject(value);
786
786
  let resolvedConfig;
787
- if (embedded) {
788
- resolvedConfig = stripFileMarker(embedded);
787
+ if (embedded2) {
788
+ resolvedConfig = stripFileMarker(embedded2);
789
789
  } else {
790
790
  const configName = asString(value, "default");
791
791
  const resolved = asObject(resolvers.readComponentConfig(comp, configName));
@@ -820,8 +820,8 @@ function normalizeTheme(raw, resolvers) {
820
820
  if (!(key in baseAliases)) filled.orphans++;
821
821
  }
822
822
  }
823
- const embeddedSketchStyle = asObject(src.sketchStyle);
824
- const sketchStyle = embeddedSketchStyle ? hydrateSketchStyle(embeddedSketchStyle) : void 0;
823
+ const embedded = asObject(src.sketchSettings) ?? asObject(src.sketchStyle);
824
+ const sketchSettings = embedded ? hydrateSketchSettings(embedded) : void 0;
825
825
  return {
826
826
  theme: {
827
827
  name: asString(src.name, "Untitled"),
@@ -831,7 +831,7 @@ function normalizeTheme(raw, resolvers) {
831
831
  colorsAndType,
832
832
  componentConfigs,
833
833
  componentSchemaVersion: CURRENT_COMPONENT_SCHEMA_VERSION,
834
- ...sketchStyle ? { sketchStyle } : {}
834
+ ...sketchSettings ? { sketchSettings } : {}
835
835
  },
836
836
  dropped,
837
837
  migrated,
@@ -886,7 +886,7 @@ function detectLegacyLayout(input) {
886
886
  const manifestsDir = input.configuredManifestsDir ?? path2.join(input.dataDir, "manifests");
887
887
  const themesHoldAThemeFile = holdsATheme(input.themesDir);
888
888
  if (isDirectory(manifestsDir) && !themesHoldAThemeFile) {
889
- return { manifestsDir, evidence: `${manifestsDir} is the pre-0.48 whole-look directory` };
889
+ return { manifestsDir, evidence: `${manifestsDir} is the pre-0.48 whole-theme directory` };
890
890
  }
891
891
  if (jsonFiles(input.colorsAndTypeDir).length > 0) return null;
892
892
  for (const file of jsonFiles(input.themesDir)) {
@@ -909,12 +909,12 @@ function planLegacyRenames(layout, input) {
909
909
  const defaultThemes = path2.join(input.dataDir, "themes");
910
910
  if (input.configuredManifestsDir && path2.resolve(input.configuredManifestsDir) !== path2.join(input.dataDir, "manifests")) {
911
911
  throw new Error(
912
- `This project uses the pre-0.48 data layout (${layout.evidence}), and live-tokens.config.json sets the retired "manifestsDir" key to ${input.configuredManifestsDir}. That directory holds the whole looks, which now belong in ${input.themesDir}. Move it there by hand, drop the "manifestsDir" key, then run the migration again.`
912
+ `This project uses the pre-0.48 data layout (${layout.evidence}), and live-tokens.config.json sets the retired "manifestsDir" key to ${input.configuredManifestsDir}. That directory holds the whole themes, which now belong in ${input.themesDir}. Move it there by hand, drop the "manifestsDir" key, then run the migration again.`
913
913
  );
914
914
  }
915
915
  if (path2.resolve(input.colorsAndTypeDir) !== path2.resolve(defaultColorsAndType) || path2.resolve(input.themesDir) !== path2.resolve(defaultThemes)) {
916
916
  throw new Error(
917
- `This project uses the pre-0.48 data layout (${layout.evidence}), and its data directories are configured to custom paths (colorsAndTypeDir=${input.colorsAndTypeDir}, themesDir=${input.themesDir}). The migration cannot tell which directory holds what. Move the old colors-and-type directory to ${input.colorsAndTypeDir} and the old whole-look directory to ${input.themesDir} by hand, then run the migration again.`
917
+ `This project uses the pre-0.48 data layout (${layout.evidence}), and its data directories are configured to custom paths (colorsAndTypeDir=${input.colorsAndTypeDir}, themesDir=${input.themesDir}). The migration cannot tell which directory holds what. Move the old colors-and-type directory to ${input.colorsAndTypeDir} and the old whole-theme directory to ${input.themesDir} by hand, then run the migration again.`
918
918
  );
919
919
  }
920
920
  const renames = [];
@@ -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);
@@ -6,7 +6,7 @@ interface LiveTokensFileConfig {
6
6
  /**
7
7
  * Retired in 0.48, where `themesDir` took over the meaning. Still recognised
8
8
  * so an unmigrated project is not told its key is a typo, and so the
9
- * migration can find (or refuse to guess at) a whole-look directory the
9
+ * migration can find (or refuse to guess at) a whole-theme directory the
10
10
  * consumer moved.
11
11
  */
12
12
  manifestsDir?: string;
@@ -6,7 +6,7 @@ interface LiveTokensFileConfig {
6
6
  /**
7
7
  * Retired in 0.48, where `themesDir` took over the meaning. Still recognised
8
8
  * so an unmigrated project is not told its key is a typo, and so the
9
- * migration can find (or refuse to guess at) a whole-look directory the
9
+ * migration can find (or refuse to guess at) a whole-theme directory the
10
10
  * consumer moved.
11
11
  */
12
12
  manifestsDir?: string;
@@ -1,5 +1,5 @@
1
1
  import { c as FontStackVariable, C as ColorsAndType, b as FontStack, F as FontSource } from '../themeTypes-DSV3Zisf.cjs';
2
- export { r as readLiveTokensConfig, a as resolveDataDirs } from '../dataPaths-DZUzVv8H.cjs';
2
+ export { r as readLiveTokensConfig, a as resolveDataDirs } from '../dataPaths-bJTCEO4H.cjs';
3
3
 
4
4
  type PairingSlot = 'display' | 'body' | 'serif' | 'mono' | 'editorial';
5
5
  interface PairingFace {
@@ -1,5 +1,5 @@
1
1
  import { c as FontStackVariable, C as ColorsAndType, b as FontStack, F as FontSource } from '../themeTypes-DSV3Zisf.js';
2
- export { r as readLiveTokensConfig, a as resolveDataDirs } from '../dataPaths-DZUzVv8H.js';
2
+ export { r as readLiveTokensConfig, a as resolveDataDirs } from '../dataPaths-bJTCEO4H.js';
3
3
 
4
4
  type PairingSlot = 'display' | 'body' | 'serif' | 'mono' | 'editorial';
5
5
  interface PairingFace {
@@ -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;
@@ -1,5 +1,5 @@
1
1
  import { F as FontSource, b as FontStack, G as GradientDiskToken, O as Oklch, H as HarmonyMode, C as ColorsAndType } from '../themeTypes-DSV3Zisf.cjs';
2
- export { r as readLiveTokensConfig, a as resolveDataDirs } from '../dataPaths-DZUzVv8H.cjs';
2
+ export { r as readLiveTokensConfig, a as resolveDataDirs } from '../dataPaths-bJTCEO4H.cjs';
3
3
  export { C as CURRENT_COMPONENT_SCHEMA_VERSION } from '../index-4N-Orzzi.cjs';
4
4
 
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  import { F as FontSource, b as FontStack, G as GradientDiskToken, O as Oklch, H as HarmonyMode, C as ColorsAndType } from '../themeTypes-DSV3Zisf.js';
2
- export { r as readLiveTokensConfig, a as resolveDataDirs } from '../dataPaths-DZUzVv8H.js';
2
+ export { r as readLiveTokensConfig, a as resolveDataDirs } from '../dataPaths-bJTCEO4H.js';
3
3
  export { C as CURRENT_COMPONENT_SCHEMA_VERSION } from '../index-4N-Orzzi.js';
4
4
 
5
5
  /**
@@ -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,