@motion-proto/live-tokens 0.78.0 → 0.80.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 (172) hide show
  1. package/.claude/skills/live-tokens-check-compliance/SKILL.md +49 -38
  2. package/.claude/skills/live-tokens-create-component/SKILL.md +23 -28
  3. package/.claude/skills/live-tokens-create-component/references/contract-tests.md +61 -0
  4. package/.claude/skills/live-tokens-create-component/references/sketch-mode.md +2 -2
  5. package/.claude/skills/live-tokens-create-component/references/token-naming.md +6 -15
  6. package/.claude/skills/live-tokens-create-page/SKILL.md +6 -4
  7. package/.claude/skills/live-tokens-create-theme/references/design-directions.md +1 -1
  8. package/.claude/skills/live-tokens-pick-component/SKILL.md +3 -3
  9. package/.claude/skills/live-tokens-set-colors/references/color-anchors.md +1 -1
  10. package/.claude/skills/live-tokens-set-geometry/SKILL.md +1 -1
  11. package/.claude/skills/live-tokens-set-geometry/references/geometry-anchors.md +1 -1
  12. package/CHANGELOG.md +271 -0
  13. package/README.md +10 -16
  14. package/bin/check-component.mjs +154 -551
  15. package/bin/check-page.mjs +57 -541
  16. package/bin/cli.mjs +93 -16
  17. package/bin/contractRunner.mjs +37 -91
  18. package/bin/lib/buildChecks.mjs +32 -0
  19. package/bin/lib/catalogue.mjs +161 -34
  20. package/bin/lib/componentSource.mjs +152 -0
  21. package/bin/lib/cssValues.mjs +9 -0
  22. package/bin/lib/dataDir.mjs +126 -0
  23. package/bin/lib/findings.mjs +103 -12
  24. package/bin/lib/fixers.mjs +64 -0
  25. package/bin/lib/geometry.mjs +92 -0
  26. package/bin/lib/pageSource.mjs +230 -0
  27. package/bin/lib/report.mjs +57 -59
  28. package/bin/lib/tokenVocabulary.mjs +104 -34
  29. package/bin/migrate-build-script.mjs +66 -0
  30. package/bin/migrate.mjs +5 -0
  31. package/bin/rules/componentStructure.mjs +344 -0
  32. package/bin/rules/componentUse.mjs +313 -0
  33. package/bin/rules/importsAndRoutes.mjs +136 -0
  34. package/bin/rules/testRuns.mjs +122 -0
  35. package/bin/rules/tokens.mjs +426 -0
  36. package/bin/setup-claude.mjs +1 -2
  37. package/dist-plugin/{chunk-PDNL4NC5.js → chunk-D4WRIKEZ.js} +7 -2
  38. package/dist-plugin/{chunk-SWXRVZKT.js → chunk-REBHE3ZM.js} +414 -1
  39. package/dist-plugin/index.cjs +470 -19
  40. package/dist-plugin/index.d.cts +1 -0
  41. package/dist-plugin/index.d.ts +1 -0
  42. package/dist-plugin/index.js +87 -55
  43. package/dist-plugin/migrateData/index.cjs +422 -4
  44. package/dist-plugin/migrateData/index.js +2 -2
  45. package/dist-plugin/setColors/index.cjs +414 -1
  46. package/dist-plugin/setColors/index.d.cts +1 -1
  47. package/dist-plugin/setColors/index.d.ts +1 -1
  48. package/dist-plugin/setColors/index.js +1 -1
  49. package/dist-plugin/setGeometry/index.cjs +423 -13
  50. package/dist-plugin/setGeometry/index.d.cts +3 -3
  51. package/dist-plugin/setGeometry/index.d.ts +3 -3
  52. package/dist-plugin/setGeometry/index.js +10 -13
  53. package/dist-plugin/setType/index.d.cts +1 -1
  54. package/dist-plugin/setType/index.d.ts +1 -1
  55. package/dist-plugin/{themeTypes-BxRtuN5V.d.cts → themeTypes-B8_Idrp4.d.cts} +2 -2
  56. package/dist-plugin/{themeTypes-BxRtuN5V.d.ts → themeTypes-B8_Idrp4.d.ts} +2 -2
  57. package/package.json +2 -2
  58. package/src/editor/component-editor/CalloutEditor.svelte +2 -2
  59. package/src/editor/component-editor/CollapsibleSectionEditor.svelte +14 -15
  60. package/src/editor/component-editor/CornerBadgeEditor.svelte +14 -14
  61. package/src/editor/component-editor/DialogEditor.svelte +5 -5
  62. package/src/editor/component-editor/InlineEditActionsEditor.svelte +2 -2
  63. package/src/editor/component-editor/RadioButtonEditor.svelte +21 -21
  64. package/src/editor/component-editor/SectionDividerEditor.svelte +7 -7
  65. package/src/editor/component-editor/SegmentedControlEditor.svelte +5 -5
  66. package/src/editor/component-editor/SideNavigationEditor.svelte +25 -25
  67. package/src/editor/component-editor/TabBarEditor.svelte +6 -6
  68. package/src/editor/component-editor/TableEditor.svelte +6 -6
  69. package/src/editor/component-editor/ToggleEditor.svelte +2 -2
  70. package/src/editor/component-editor/index.ts +3 -0
  71. package/src/editor/component-editor/registry.ts +57 -1
  72. package/src/editor/component-editor/scaffolding/TokenLayout.svelte +14 -14
  73. package/src/editor/component-editor/scaffolding/VariantGroup.svelte +3 -0
  74. package/src/editor/component-editor/scaffolding/types.ts +15 -0
  75. package/src/editor/core/components/adjustAliases.ts +4 -4
  76. package/src/editor/core/components/aliasKinds.ts +20 -19
  77. package/src/editor/core/sketch/sketchLayer.ts +3 -3
  78. package/src/editor/core/themes/migrateComponentConfig.ts +14 -6
  79. package/src/editor/core/themes/migrations/2026-09-13-badge-brand.ts +42 -0
  80. package/src/editor/core/themes/migrations/2026-09-13-collapsiblesection-open.ts +33 -0
  81. package/src/editor/core/themes/migrations/2026-09-13-cornerbadge-prefix.ts +70 -0
  82. package/src/editor/core/themes/migrations/2026-09-13-hairline.ts +92 -0
  83. package/src/editor/core/themes/migrations/2026-09-13-indicator.ts +54 -0
  84. package/src/editor/core/themes/migrations/2026-09-13-sectiondivider-surface.ts +36 -0
  85. package/src/editor/core/themes/migrations/2026-09-13-selected-state.ts +124 -0
  86. package/src/editor/core/themes/migrations/2026-09-13-toggle-label.ts +31 -0
  87. package/src/editor/core/themes/migrations/index.ts +16 -0
  88. package/src/editor/core/themes/themeService.ts +3 -3
  89. package/src/editor/core/themes/themeTypes.ts +13 -15
  90. package/src/editor/docs/Docs.svelte +1 -1
  91. package/src/editor/docs/content/light-and-dark.md +3 -3
  92. package/src/editor/docs/content.generated.ts +1 -1
  93. package/src/editor/index.ts +1 -0
  94. package/src/editor/overlay/LiveEditorOverlay.svelte +15 -0
  95. package/src/editor/skill-atlas/SkillAtlas.svelte +4 -4
  96. package/src/editor/skill-atlas/TreeNodeCard.svelte +4 -4
  97. package/src/editor/skill-atlas/skillSources.generated.ts +11 -14
  98. package/src/editor/skill-atlas/skillTrees.ts +1 -3
  99. package/src/editor/skill-atlas/trees/check-compliance.ts +37 -149
  100. package/src/editor/skill-atlas/trees/create-component.ts +62 -64
  101. package/src/editor/skill-atlas/trees/create-page.ts +38 -17
  102. package/src/editor/skill-atlas/trees/pick-component.ts +3 -3
  103. package/src/editor/skill-atlas/trees/set-geometry.ts +1 -1
  104. package/src/editor/ui/UIPaletteSelector.svelte +11 -15
  105. package/src/editor/ui/variantScales.ts +8 -8
  106. package/src/live-tokens/data/themes/autumn.json +188 -188
  107. package/src/live-tokens/data/themes/halloween.json +188 -188
  108. package/src/live-tokens/data/themes/midnight-study.json +245 -245
  109. package/src/live-tokens/data/themes/ocean.json +188 -188
  110. package/src/live-tokens/data/themes/royal-velvet.json +188 -188
  111. package/src/live-tokens/data/themes/sketchy.json +188 -188
  112. package/src/live-tokens/data/themes/spring-meadow.json +188 -188
  113. package/src/live-tokens/data/themes/sunset.json +188 -188
  114. package/src/system/components/Badge.svelte +27 -23
  115. package/src/system/components/Button.svelte +13 -7
  116. package/src/system/components/Callout.svelte +16 -11
  117. package/src/system/components/Card.svelte +22 -15
  118. package/src/system/components/CodeSnippet.svelte +10 -6
  119. package/src/system/components/CollapsibleSection.svelte +81 -76
  120. package/src/system/components/CornerBadge.svelte +78 -72
  121. package/src/system/components/Dialog.svelte +21 -18
  122. package/src/system/components/IconButton.svelte +13 -9
  123. package/src/system/components/Image.svelte +14 -8
  124. package/src/system/components/ImageLightbox.svelte +10 -6
  125. package/src/system/components/InlineEditActions.svelte +17 -14
  126. package/src/system/components/Input.svelte +13 -7
  127. package/src/system/components/MenuSelect.svelte +13 -7
  128. package/src/system/components/Notification.svelte +17 -11
  129. package/src/system/components/Panel.svelte +13 -6
  130. package/src/system/components/ProgressBar.svelte +10 -5
  131. package/src/system/components/RadioButton.svelte +33 -30
  132. package/src/system/components/SectionDivider.svelte +28 -21
  133. package/src/system/components/SegmentedControl.svelte +27 -23
  134. package/src/system/components/SideNavigation.svelte +175 -171
  135. package/src/system/components/Slider.svelte +11 -7
  136. package/src/system/components/TabBar.svelte +53 -49
  137. package/src/system/components/Table.svelte +20 -15
  138. package/src/system/components/Toggle.svelte +14 -10
  139. package/src/system/components/Tooltip.svelte +10 -6
  140. package/src/system/styles/CONVENTIONS.md +3 -4
  141. package/src/testing-js/chunk-3UKGXCDL.js +48 -0
  142. package/src/testing-js/chunk-3UKGXCDL.js.map +1 -0
  143. package/src/testing-js/{chunk-FAFOAWYL.js → chunk-Q3YIAAG3.js} +17 -3
  144. package/src/testing-js/chunk-Q3YIAAG3.js.map +1 -0
  145. package/src/testing-js/{chunk-GNIUPIU2.js → chunk-U7OJE5DU.js} +18 -18
  146. package/src/testing-js/chunk-U7OJE5DU.js.map +1 -0
  147. package/src/testing-js/{chunk-4JQX6WWL.js → chunk-ZMZQZ33J.js} +474 -166
  148. package/src/testing-js/chunk-ZMZQZ33J.js.map +1 -0
  149. package/src/testing-js/component-behavior.contract.js +155 -0
  150. package/src/testing-js/component-behavior.contract.js.map +1 -0
  151. package/src/testing-js/component-editor.contract.js +6 -4
  152. package/src/testing-js/component-editor.contract.js.map +1 -1
  153. package/src/testing-js/component-render.contract.js +14 -10
  154. package/src/testing-js/component-render.contract.js.map +1 -1
  155. package/src/testing-js/index.d.ts +44 -4
  156. package/src/testing-js/index.js +13 -7
  157. package/src/testing-js/index.js.map +1 -1
  158. package/src/testing-js/page-compliance.contract.js +48 -10
  159. package/src/testing-js/page-compliance.contract.js.map +1 -1
  160. package/src/testing-js/registry.contract.js +5 -3
  161. package/src/testing-js/registry.contract.js.map +1 -1
  162. package/src/testing-js/{vitest-C-wNWcoA.d.ts → vitest-BMLIbDs2.d.ts} +8 -2
  163. package/src/testing-js/vitest.d.ts +1 -1
  164. package/src/testing-js/vitest.js +2 -1
  165. package/template/package.json +1 -2
  166. package/template/vite.config.ts +3 -2
  167. package/.claude/skills/live-tokens-create-component/SKILL copy.md +0 -196
  168. package/.claude/skills/live-tokens-fix-findings/SKILL.md +0 -105
  169. package/src/editor/skill-atlas/trees/fix-findings.ts +0 -504
  170. package/src/testing-js/chunk-4JQX6WWL.js.map +0 -1
  171. package/src/testing-js/chunk-FAFOAWYL.js.map +0 -1
  172. package/src/testing-js/chunk-GNIUPIU2.js.map +0 -1
@@ -29,8 +29,7 @@ const SAMPLE_PROMPTS = {
29
29
  'live-tokens-set-colors': 'give me a cooler palette, same fonts',
30
30
  'live-tokens-set-type': 'pair some fonts for this theme',
31
31
  'live-tokens-set-geometry': 'make the buttons pill shaped',
32
- 'live-tokens-fix-findings': 'make check:design pass',
33
- 'live-tokens-check-compliance': 'check this project against the design system',
32
+ 'live-tokens-check-compliance': 'check this project against the design system and fix it',
34
33
  };
35
34
 
36
35
  function directoriesIn(dir) {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CURRENT_COMPONENT_SCHEMA_VERSION,
3
3
  runMigrations
4
- } from "./chunk-SWXRVZKT.js";
4
+ } from "./chunk-REBHE3ZM.js";
5
5
 
6
6
  // vite-plugin/files/versionedFileResourceServer.ts
7
7
  import fs from "fs";
@@ -192,11 +192,16 @@ function renameSectionDividerObjectSlots(objectPart) {
192
192
  }
193
193
  }
194
194
  if (isFamilyGradient) continue;
195
+ const backgroundVariant = SIZE_VARIANTS.find((v) => key === `--sectiondivider-${v}-background`);
196
+ if (backgroundVariant) {
197
+ out[`--sectiondivider-${backgroundVariant}-surface`] = value;
198
+ continue;
199
+ }
195
200
  out[key] = value;
196
201
  }
197
202
  if (canvasGradient !== void 0) {
198
203
  for (const v of SIZE_VARIANTS) {
199
- out[`--sectiondivider-${v}-background`] = canvasGradient;
204
+ out[`--sectiondivider-${v}-surface`] = canvasGradient;
200
205
  }
201
206
  }
202
207
  return out;
@@ -921,6 +921,411 @@ var componentMigration_2026_09_07_strokeRoleRenames = {
921
921
  }
922
922
  };
923
923
 
924
+ // src/editor/core/themes/migrations/2026-09-13-selected-state.ts
925
+ var RADIOBUTTON_SUFFIXES = [
926
+ "dot-border-color",
927
+ "dot-border-width",
928
+ "dot-fill",
929
+ "dot-size",
930
+ "label",
931
+ "label-font-family",
932
+ "label-font-size",
933
+ "label-font-weight",
934
+ "label-line-height"
935
+ ];
936
+ var TABBAR_SUFFIXES = [
937
+ "border",
938
+ "icon-size",
939
+ "indicator-width",
940
+ "padding",
941
+ "surface",
942
+ "tab-border-color",
943
+ "tab-border-width",
944
+ "tab-bottom-radius",
945
+ "tab-top-radius",
946
+ "text",
947
+ "text-font-family",
948
+ "text-font-size",
949
+ "text-font-weight",
950
+ "text-line-height"
951
+ ];
952
+ var SIDENAVIGATION_SUFFIXES = {
953
+ title: [
954
+ "accent",
955
+ "accent-width",
956
+ "border",
957
+ "border-width",
958
+ "label",
959
+ "label-font-family",
960
+ "label-font-size",
961
+ "label-font-weight",
962
+ "label-line-height",
963
+ "padding",
964
+ "surface"
965
+ ],
966
+ section: [
967
+ "accent",
968
+ "accent-width",
969
+ "surface",
970
+ "text",
971
+ "text-font-family",
972
+ "text-font-size",
973
+ "text-font-weight",
974
+ "text-line-height"
975
+ ],
976
+ item: [
977
+ "accent",
978
+ "accent-width",
979
+ "padding",
980
+ "surface",
981
+ "text",
982
+ "text-font-family",
983
+ "text-font-size",
984
+ "text-font-weight",
985
+ "text-line-height"
986
+ ],
987
+ footer: [
988
+ "accent",
989
+ "accent-width",
990
+ "gap",
991
+ "icon",
992
+ "icon-size",
993
+ "padding",
994
+ "surface",
995
+ "text",
996
+ "text-font-family",
997
+ "text-font-size",
998
+ "text-font-weight",
999
+ "text-line-height"
1000
+ ]
1001
+ };
1002
+ var RENAMES3 = {
1003
+ radiobutton: Object.fromEntries(
1004
+ RADIOBUTTON_SUFFIXES.map((s) => [`--radiobutton-active-${s}`, `--radiobutton-selected-${s}`])
1005
+ ),
1006
+ tabbar: Object.fromEntries(
1007
+ TABBAR_SUFFIXES.map((s) => [`--tabbar-active-${s}`, `--tabbar-selected-${s}`])
1008
+ ),
1009
+ sidenavigation: Object.fromEntries(
1010
+ Object.entries(SIDENAVIGATION_SUFFIXES).flatMap(
1011
+ ([part, suffixes]) => suffixes.map((s) => [
1012
+ `--sidenavigation-${part}-active-${s}`,
1013
+ `--sidenavigation-${part}-selected-${s}`
1014
+ ])
1015
+ )
1016
+ )
1017
+ };
1018
+ var componentMigration_2026_09_13_selectedState = {
1019
+ id: "2026-09-13-selected-state",
1020
+ fromVersion: 27,
1021
+ toVersion: 28,
1022
+ appliesTo: "component-config",
1023
+ apply(rawVars, meta) {
1024
+ const renames = meta.component ? RENAMES3[meta.component] : void 0;
1025
+ if (!renames) return { ...rawVars };
1026
+ const out = {};
1027
+ for (const [key, value] of Object.entries(rawVars)) {
1028
+ out[renames[key] ?? key] = value;
1029
+ }
1030
+ return out;
1031
+ }
1032
+ };
1033
+
1034
+ // src/editor/core/themes/migrations/2026-09-13-hairline.ts
1035
+ var COLLAPSIBLESECTION_SUFFIXES = [
1036
+ "surface",
1037
+ "hairline-color",
1038
+ "padding",
1039
+ "label",
1040
+ "label-font-family",
1041
+ "label-font-size",
1042
+ "label-font-weight",
1043
+ "label-line-height",
1044
+ "icon",
1045
+ "icon-size"
1046
+ ];
1047
+ var COLLAPSIBLESECTION_STATES = ["default", "hover"];
1048
+ var RENAMES4 = {
1049
+ dialog: {
1050
+ "--dialog-header-divider": "--dialog-header-hairline-color",
1051
+ "--dialog-header-divider-width": "--dialog-header-hairline-width",
1052
+ "--dialog-footer-divider": "--dialog-footer-hairline-color",
1053
+ "--dialog-footer-divider-width": "--dialog-footer-hairline-width"
1054
+ },
1055
+ table: {
1056
+ "--table-default-header-divider": "--table-default-header-hairline-color",
1057
+ "--table-default-header-divider-width": "--table-default-header-hairline-width",
1058
+ "--table-default-row-divider": "--table-default-row-hairline-color",
1059
+ "--table-default-row-divider-width": "--table-default-row-hairline-width",
1060
+ "--table-default-column-divider": "--table-default-column-hairline-color",
1061
+ "--table-default-column-divider-width": "--table-default-column-hairline-width"
1062
+ },
1063
+ tabbar: {
1064
+ "--tabbar-bar-divider": "--tabbar-bar-hairline-color",
1065
+ "--tabbar-bar-divider-thickness": "--tabbar-bar-hairline-width"
1066
+ },
1067
+ segmentedcontrol: {
1068
+ "--segmentedcontrol-divider-color": "--segmentedcontrol-hairline-color",
1069
+ "--segmentedcontrol-divider-thickness": "--segmentedcontrol-hairline-width",
1070
+ "--segmentedcontrol-divider-inset": "--segmentedcontrol-hairline-inset",
1071
+ "--segmentedcontrol-small-divider-thickness": "--segmentedcontrol-small-hairline-width",
1072
+ "--segmentedcontrol-small-divider-inset": "--segmentedcontrol-small-hairline-inset"
1073
+ },
1074
+ collapsiblesection: {
1075
+ ...Object.fromEntries(
1076
+ COLLAPSIBLESECTION_STATES.flatMap((state) => [
1077
+ ...COLLAPSIBLESECTION_SUFFIXES.map((s) => [
1078
+ `--collapsiblesection-divider-${state}-${s}`,
1079
+ `--collapsiblesection-hairline-${state}-${s}`
1080
+ ]),
1081
+ [
1082
+ `--collapsiblesection-divider-${state}-hairline-thickness`,
1083
+ `--collapsiblesection-hairline-${state}-hairline-width`
1084
+ ]
1085
+ ])
1086
+ ),
1087
+ "--collapsiblesection-divider-expanded-padding": "--collapsiblesection-hairline-expanded-padding"
1088
+ },
1089
+ sectiondivider: {
1090
+ "--sectiondivider-lg-hairline-thickness": "--sectiondivider-lg-hairline-width",
1091
+ "--sectiondivider-md-hairline-thickness": "--sectiondivider-md-hairline-width",
1092
+ "--sectiondivider-sm-hairline-thickness": "--sectiondivider-sm-hairline-width"
1093
+ }
1094
+ };
1095
+ var componentMigration_2026_09_13_hairline = {
1096
+ id: "2026-09-13-hairline",
1097
+ fromVersion: 28,
1098
+ toVersion: 29,
1099
+ appliesTo: "component-config",
1100
+ apply(rawVars, meta) {
1101
+ const renames = meta.component ? RENAMES4[meta.component] : void 0;
1102
+ if (!renames) return { ...rawVars };
1103
+ const out = {};
1104
+ for (const [key, value] of Object.entries(rawVars)) {
1105
+ out[renames[key] ?? key] = value;
1106
+ }
1107
+ return out;
1108
+ }
1109
+ };
1110
+
1111
+ // src/editor/core/themes/migrations/2026-09-13-indicator.ts
1112
+ var SIDENAVIGATION_PARTS = ["title", "section", "item", "footer"];
1113
+ var SIDENAVIGATION_STATES = ["default", "hover", "selected"];
1114
+ var CALLOUT_VARIANTS = ["info", "success", "warning", "danger"];
1115
+ var RENAMES5 = {
1116
+ sidenavigation: Object.fromEntries(
1117
+ SIDENAVIGATION_PARTS.flatMap(
1118
+ (part) => SIDENAVIGATION_STATES.flatMap((state) => [
1119
+ [
1120
+ `--sidenavigation-${part}-${state}-accent`,
1121
+ `--sidenavigation-${part}-${state}-indicator`
1122
+ ],
1123
+ [
1124
+ `--sidenavigation-${part}-${state}-accent-width`,
1125
+ `--sidenavigation-${part}-${state}-indicator-width`
1126
+ ]
1127
+ ])
1128
+ )
1129
+ ),
1130
+ callout: Object.fromEntries(
1131
+ CALLOUT_VARIANTS.map((v) => [
1132
+ `--callout-${v}-accent-width`,
1133
+ `--callout-${v}-indicator-width`
1134
+ ])
1135
+ )
1136
+ };
1137
+ var componentMigration_2026_09_13_indicator = {
1138
+ id: "2026-09-13-indicator",
1139
+ fromVersion: 29,
1140
+ toVersion: 30,
1141
+ appliesTo: "component-config",
1142
+ apply(rawVars, meta) {
1143
+ const renames = meta.component ? RENAMES5[meta.component] : void 0;
1144
+ if (!renames) return { ...rawVars };
1145
+ const out = {};
1146
+ for (const [key, value] of Object.entries(rawVars)) {
1147
+ out[renames[key] ?? key] = value;
1148
+ }
1149
+ return out;
1150
+ }
1151
+ };
1152
+
1153
+ // src/editor/core/themes/migrations/2026-09-13-sectiondivider-surface.ts
1154
+ var SECTIONDIVIDER_VARIANTS = ["lg", "md", "sm"];
1155
+ var RENAMES6 = {
1156
+ sectiondivider: Object.fromEntries(
1157
+ SECTIONDIVIDER_VARIANTS.map((v) => [
1158
+ `--sectiondivider-${v}-background`,
1159
+ `--sectiondivider-${v}-surface`
1160
+ ])
1161
+ )
1162
+ };
1163
+ var componentMigration_2026_09_13_sectiondividerSurface = {
1164
+ id: "2026-09-13-sectiondivider-surface",
1165
+ fromVersion: 30,
1166
+ toVersion: 31,
1167
+ appliesTo: "component-config",
1168
+ apply(rawVars, meta) {
1169
+ const renames = meta.component ? RENAMES6[meta.component] : void 0;
1170
+ if (!renames) return { ...rawVars };
1171
+ const out = {};
1172
+ for (const [key, value] of Object.entries(rawVars)) {
1173
+ out[renames[key] ?? key] = value;
1174
+ }
1175
+ return out;
1176
+ }
1177
+ };
1178
+
1179
+ // src/editor/core/themes/migrations/2026-09-13-cornerbadge-prefix.ts
1180
+ var RENAMES7 = {
1181
+ cornerbadge: {
1182
+ "--corner-badge-margin": "--cornerbadge-margin",
1183
+ "--corner-badge-outer-radius": "--cornerbadge-outer-radius",
1184
+ "--corner-badge-inner-radius": "--cornerbadge-inner-radius",
1185
+ "--corner-badge-h-axis-radius": "--cornerbadge-h-axis-radius",
1186
+ "--corner-badge-v-axis-radius": "--cornerbadge-v-axis-radius",
1187
+ "--corner-badge-padding": "--cornerbadge-padding",
1188
+ "--corner-badge-text-font-family": "--cornerbadge-text-font-family",
1189
+ "--corner-badge-text-font-size": "--cornerbadge-text-font-size",
1190
+ "--corner-badge-text-font-weight": "--cornerbadge-text-font-weight",
1191
+ "--corner-badge-text-line-height": "--cornerbadge-text-line-height",
1192
+ "--corner-badge-primary-surface": "--cornerbadge-primary-surface",
1193
+ "--corner-badge-primary-border": "--cornerbadge-primary-border",
1194
+ "--corner-badge-primary-text": "--cornerbadge-primary-text",
1195
+ "--corner-badge-accent-surface": "--cornerbadge-accent-surface",
1196
+ "--corner-badge-accent-border": "--cornerbadge-accent-border",
1197
+ "--corner-badge-accent-text": "--cornerbadge-accent-text",
1198
+ "--corner-badge-neutral-surface": "--cornerbadge-neutral-surface",
1199
+ "--corner-badge-neutral-border": "--cornerbadge-neutral-border",
1200
+ "--corner-badge-neutral-text": "--cornerbadge-neutral-text",
1201
+ "--corner-badge-alternate-surface": "--cornerbadge-alternate-surface",
1202
+ "--corner-badge-alternate-border": "--cornerbadge-alternate-border",
1203
+ "--corner-badge-alternate-text": "--cornerbadge-alternate-text",
1204
+ "--corner-badge-canvas-surface": "--cornerbadge-canvas-surface",
1205
+ "--corner-badge-canvas-border": "--cornerbadge-canvas-border",
1206
+ "--corner-badge-canvas-text": "--cornerbadge-canvas-text",
1207
+ "--corner-badge-special-surface": "--cornerbadge-special-surface",
1208
+ "--corner-badge-special-border": "--cornerbadge-special-border",
1209
+ "--corner-badge-special-text": "--cornerbadge-special-text",
1210
+ "--corner-badge-success-surface": "--cornerbadge-success-surface",
1211
+ "--corner-badge-success-border": "--cornerbadge-success-border",
1212
+ "--corner-badge-success-text": "--cornerbadge-success-text",
1213
+ "--corner-badge-warning-surface": "--cornerbadge-warning-surface",
1214
+ "--corner-badge-warning-border": "--cornerbadge-warning-border",
1215
+ "--corner-badge-warning-text": "--cornerbadge-warning-text",
1216
+ "--corner-badge-danger-surface": "--cornerbadge-danger-surface",
1217
+ "--corner-badge-danger-border": "--cornerbadge-danger-border",
1218
+ "--corner-badge-danger-text": "--cornerbadge-danger-text",
1219
+ "--corner-badge-info-surface": "--cornerbadge-info-surface",
1220
+ "--corner-badge-info-border": "--cornerbadge-info-border",
1221
+ "--corner-badge-info-text": "--cornerbadge-info-text"
1222
+ }
1223
+ };
1224
+ var componentMigration_2026_09_13_cornerbadgePrefix = {
1225
+ id: "2026-09-13-cornerbadge-prefix",
1226
+ fromVersion: 31,
1227
+ toVersion: 32,
1228
+ appliesTo: "component-config",
1229
+ apply(rawVars, meta) {
1230
+ const renames = meta.component ? RENAMES7[meta.component] : void 0;
1231
+ if (!renames) return { ...rawVars };
1232
+ const out = {};
1233
+ for (const [key, value] of Object.entries(rawVars)) {
1234
+ out[renames[key] ?? key] = value;
1235
+ }
1236
+ return out;
1237
+ }
1238
+ };
1239
+
1240
+ // src/editor/core/themes/migrations/2026-09-13-toggle-label.ts
1241
+ var RENAMES8 = {
1242
+ toggle: {
1243
+ "--toggle-label-text": "--toggle-label",
1244
+ "--toggle-disabled-label-text": "--toggle-disabled-label"
1245
+ }
1246
+ };
1247
+ var componentMigration_2026_09_13_toggleLabel = {
1248
+ id: "2026-09-13-toggle-label",
1249
+ fromVersion: 32,
1250
+ toVersion: 33,
1251
+ appliesTo: "component-config",
1252
+ apply(rawVars, meta) {
1253
+ const renames = meta.component ? RENAMES8[meta.component] : void 0;
1254
+ if (!renames) return { ...rawVars };
1255
+ const out = {};
1256
+ for (const [key, value] of Object.entries(rawVars)) {
1257
+ out[renames[key] ?? key] = value;
1258
+ }
1259
+ return out;
1260
+ }
1261
+ };
1262
+
1263
+ // src/editor/core/themes/migrations/2026-09-13-collapsiblesection-open.ts
1264
+ var RENAMES9 = {
1265
+ collapsiblesection: {
1266
+ "--collapsiblesection-chromeless-expanded-padding": "--collapsiblesection-chromeless-open-padding",
1267
+ "--collapsiblesection-hairline-expanded-padding": "--collapsiblesection-hairline-open-padding",
1268
+ "--collapsiblesection-container-expanded-surface": "--collapsiblesection-container-open-surface",
1269
+ "--collapsiblesection-container-expanded-padding": "--collapsiblesection-container-open-padding"
1270
+ }
1271
+ };
1272
+ var componentMigration_2026_09_13_collapsiblesectionOpen = {
1273
+ id: "2026-09-13-collapsiblesection-open",
1274
+ fromVersion: 33,
1275
+ toVersion: 34,
1276
+ appliesTo: "component-config",
1277
+ apply(rawVars, meta) {
1278
+ const renames = meta.component ? RENAMES9[meta.component] : void 0;
1279
+ if (!renames) return { ...rawVars };
1280
+ const out = {};
1281
+ for (const [key, value] of Object.entries(rawVars)) {
1282
+ out[renames[key] ?? key] = value;
1283
+ }
1284
+ return out;
1285
+ }
1286
+ };
1287
+
1288
+ // src/editor/core/themes/migrations/2026-09-13-badge-brand.ts
1289
+ var BADGE_SUFFIXES = [
1290
+ "surface",
1291
+ "text",
1292
+ "border",
1293
+ "text-font-family",
1294
+ "text-font-size",
1295
+ "text-font-weight",
1296
+ "text-line-height",
1297
+ "border-width",
1298
+ "radius",
1299
+ "padding",
1300
+ "shadow",
1301
+ "blur",
1302
+ "icon-size"
1303
+ ];
1304
+ var CORNERBADGE_SUFFIXES = ["surface", "border", "text"];
1305
+ var RENAMES10 = {
1306
+ badge: Object.fromEntries(
1307
+ BADGE_SUFFIXES.map((s) => [`--badge-primary-${s}`, `--badge-brand-${s}`])
1308
+ ),
1309
+ cornerbadge: Object.fromEntries(
1310
+ CORNERBADGE_SUFFIXES.map((s) => [`--cornerbadge-primary-${s}`, `--cornerbadge-brand-${s}`])
1311
+ )
1312
+ };
1313
+ var componentMigration_2026_09_13_badgeBrand = {
1314
+ id: "2026-09-13-badge-brand",
1315
+ fromVersion: 34,
1316
+ toVersion: 35,
1317
+ appliesTo: "component-config",
1318
+ apply(rawVars, meta) {
1319
+ const renames = meta.component ? RENAMES10[meta.component] : void 0;
1320
+ if (!renames) return { ...rawVars };
1321
+ const out = {};
1322
+ for (const [key, value] of Object.entries(rawVars)) {
1323
+ out[renames[key] ?? key] = value;
1324
+ }
1325
+ return out;
1326
+ }
1327
+ };
1328
+
924
1329
  // src/editor/core/themes/migrations/index.ts
925
1330
  var MIGRATIONS = [
926
1331
  colorsAndTypeMigration_2026_04_24_legacyKeysAndBgToCanvas,
@@ -957,7 +1362,15 @@ var MIGRATIONS = [
957
1362
  componentMigration_2026_09_01_gateSuffixEnabled,
958
1363
  componentMigration_2026_09_02_sectiondividerDropTitleOutline,
959
1364
  colorsAndTypeMigration_2026_09_03_dropLegacyComponentKeys,
960
- componentMigration_2026_09_07_strokeRoleRenames
1365
+ componentMigration_2026_09_07_strokeRoleRenames,
1366
+ componentMigration_2026_09_13_selectedState,
1367
+ componentMigration_2026_09_13_hairline,
1368
+ componentMigration_2026_09_13_indicator,
1369
+ componentMigration_2026_09_13_sectiondividerSurface,
1370
+ componentMigration_2026_09_13_cornerbadgePrefix,
1371
+ componentMigration_2026_09_13_toggleLabel,
1372
+ componentMigration_2026_09_13_collapsiblesectionOpen,
1373
+ componentMigration_2026_09_13_badgeBrand
961
1374
  ];
962
1375
  function countFor(kind) {
963
1376
  return MIGRATIONS.filter((m) => m.appliesTo === kind).length;