@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
@@ -1101,6 +1101,411 @@ var componentMigration_2026_09_07_strokeRoleRenames = {
1101
1101
  }
1102
1102
  };
1103
1103
 
1104
+ // src/editor/core/themes/migrations/2026-09-13-selected-state.ts
1105
+ var RADIOBUTTON_SUFFIXES = [
1106
+ "dot-border-color",
1107
+ "dot-border-width",
1108
+ "dot-fill",
1109
+ "dot-size",
1110
+ "label",
1111
+ "label-font-family",
1112
+ "label-font-size",
1113
+ "label-font-weight",
1114
+ "label-line-height"
1115
+ ];
1116
+ var TABBAR_SUFFIXES = [
1117
+ "border",
1118
+ "icon-size",
1119
+ "indicator-width",
1120
+ "padding",
1121
+ "surface",
1122
+ "tab-border-color",
1123
+ "tab-border-width",
1124
+ "tab-bottom-radius",
1125
+ "tab-top-radius",
1126
+ "text",
1127
+ "text-font-family",
1128
+ "text-font-size",
1129
+ "text-font-weight",
1130
+ "text-line-height"
1131
+ ];
1132
+ var SIDENAVIGATION_SUFFIXES = {
1133
+ title: [
1134
+ "accent",
1135
+ "accent-width",
1136
+ "border",
1137
+ "border-width",
1138
+ "label",
1139
+ "label-font-family",
1140
+ "label-font-size",
1141
+ "label-font-weight",
1142
+ "label-line-height",
1143
+ "padding",
1144
+ "surface"
1145
+ ],
1146
+ section: [
1147
+ "accent",
1148
+ "accent-width",
1149
+ "surface",
1150
+ "text",
1151
+ "text-font-family",
1152
+ "text-font-size",
1153
+ "text-font-weight",
1154
+ "text-line-height"
1155
+ ],
1156
+ item: [
1157
+ "accent",
1158
+ "accent-width",
1159
+ "padding",
1160
+ "surface",
1161
+ "text",
1162
+ "text-font-family",
1163
+ "text-font-size",
1164
+ "text-font-weight",
1165
+ "text-line-height"
1166
+ ],
1167
+ footer: [
1168
+ "accent",
1169
+ "accent-width",
1170
+ "gap",
1171
+ "icon",
1172
+ "icon-size",
1173
+ "padding",
1174
+ "surface",
1175
+ "text",
1176
+ "text-font-family",
1177
+ "text-font-size",
1178
+ "text-font-weight",
1179
+ "text-line-height"
1180
+ ]
1181
+ };
1182
+ var RENAMES3 = {
1183
+ radiobutton: Object.fromEntries(
1184
+ RADIOBUTTON_SUFFIXES.map((s) => [`--radiobutton-active-${s}`, `--radiobutton-selected-${s}`])
1185
+ ),
1186
+ tabbar: Object.fromEntries(
1187
+ TABBAR_SUFFIXES.map((s) => [`--tabbar-active-${s}`, `--tabbar-selected-${s}`])
1188
+ ),
1189
+ sidenavigation: Object.fromEntries(
1190
+ Object.entries(SIDENAVIGATION_SUFFIXES).flatMap(
1191
+ ([part, suffixes]) => suffixes.map((s) => [
1192
+ `--sidenavigation-${part}-active-${s}`,
1193
+ `--sidenavigation-${part}-selected-${s}`
1194
+ ])
1195
+ )
1196
+ )
1197
+ };
1198
+ var componentMigration_2026_09_13_selectedState = {
1199
+ id: "2026-09-13-selected-state",
1200
+ fromVersion: 27,
1201
+ toVersion: 28,
1202
+ appliesTo: "component-config",
1203
+ apply(rawVars, meta) {
1204
+ const renames = meta.component ? RENAMES3[meta.component] : void 0;
1205
+ if (!renames) return { ...rawVars };
1206
+ const out = {};
1207
+ for (const [key, value] of Object.entries(rawVars)) {
1208
+ out[renames[key] ?? key] = value;
1209
+ }
1210
+ return out;
1211
+ }
1212
+ };
1213
+
1214
+ // src/editor/core/themes/migrations/2026-09-13-hairline.ts
1215
+ var COLLAPSIBLESECTION_SUFFIXES = [
1216
+ "surface",
1217
+ "hairline-color",
1218
+ "padding",
1219
+ "label",
1220
+ "label-font-family",
1221
+ "label-font-size",
1222
+ "label-font-weight",
1223
+ "label-line-height",
1224
+ "icon",
1225
+ "icon-size"
1226
+ ];
1227
+ var COLLAPSIBLESECTION_STATES = ["default", "hover"];
1228
+ var RENAMES4 = {
1229
+ dialog: {
1230
+ "--dialog-header-divider": "--dialog-header-hairline-color",
1231
+ "--dialog-header-divider-width": "--dialog-header-hairline-width",
1232
+ "--dialog-footer-divider": "--dialog-footer-hairline-color",
1233
+ "--dialog-footer-divider-width": "--dialog-footer-hairline-width"
1234
+ },
1235
+ table: {
1236
+ "--table-default-header-divider": "--table-default-header-hairline-color",
1237
+ "--table-default-header-divider-width": "--table-default-header-hairline-width",
1238
+ "--table-default-row-divider": "--table-default-row-hairline-color",
1239
+ "--table-default-row-divider-width": "--table-default-row-hairline-width",
1240
+ "--table-default-column-divider": "--table-default-column-hairline-color",
1241
+ "--table-default-column-divider-width": "--table-default-column-hairline-width"
1242
+ },
1243
+ tabbar: {
1244
+ "--tabbar-bar-divider": "--tabbar-bar-hairline-color",
1245
+ "--tabbar-bar-divider-thickness": "--tabbar-bar-hairline-width"
1246
+ },
1247
+ segmentedcontrol: {
1248
+ "--segmentedcontrol-divider-color": "--segmentedcontrol-hairline-color",
1249
+ "--segmentedcontrol-divider-thickness": "--segmentedcontrol-hairline-width",
1250
+ "--segmentedcontrol-divider-inset": "--segmentedcontrol-hairline-inset",
1251
+ "--segmentedcontrol-small-divider-thickness": "--segmentedcontrol-small-hairline-width",
1252
+ "--segmentedcontrol-small-divider-inset": "--segmentedcontrol-small-hairline-inset"
1253
+ },
1254
+ collapsiblesection: {
1255
+ ...Object.fromEntries(
1256
+ COLLAPSIBLESECTION_STATES.flatMap((state) => [
1257
+ ...COLLAPSIBLESECTION_SUFFIXES.map((s) => [
1258
+ `--collapsiblesection-divider-${state}-${s}`,
1259
+ `--collapsiblesection-hairline-${state}-${s}`
1260
+ ]),
1261
+ [
1262
+ `--collapsiblesection-divider-${state}-hairline-thickness`,
1263
+ `--collapsiblesection-hairline-${state}-hairline-width`
1264
+ ]
1265
+ ])
1266
+ ),
1267
+ "--collapsiblesection-divider-expanded-padding": "--collapsiblesection-hairline-expanded-padding"
1268
+ },
1269
+ sectiondivider: {
1270
+ "--sectiondivider-lg-hairline-thickness": "--sectiondivider-lg-hairline-width",
1271
+ "--sectiondivider-md-hairline-thickness": "--sectiondivider-md-hairline-width",
1272
+ "--sectiondivider-sm-hairline-thickness": "--sectiondivider-sm-hairline-width"
1273
+ }
1274
+ };
1275
+ var componentMigration_2026_09_13_hairline = {
1276
+ id: "2026-09-13-hairline",
1277
+ fromVersion: 28,
1278
+ toVersion: 29,
1279
+ appliesTo: "component-config",
1280
+ apply(rawVars, meta) {
1281
+ const renames = meta.component ? RENAMES4[meta.component] : void 0;
1282
+ if (!renames) return { ...rawVars };
1283
+ const out = {};
1284
+ for (const [key, value] of Object.entries(rawVars)) {
1285
+ out[renames[key] ?? key] = value;
1286
+ }
1287
+ return out;
1288
+ }
1289
+ };
1290
+
1291
+ // src/editor/core/themes/migrations/2026-09-13-indicator.ts
1292
+ var SIDENAVIGATION_PARTS = ["title", "section", "item", "footer"];
1293
+ var SIDENAVIGATION_STATES = ["default", "hover", "selected"];
1294
+ var CALLOUT_VARIANTS = ["info", "success", "warning", "danger"];
1295
+ var RENAMES5 = {
1296
+ sidenavigation: Object.fromEntries(
1297
+ SIDENAVIGATION_PARTS.flatMap(
1298
+ (part) => SIDENAVIGATION_STATES.flatMap((state) => [
1299
+ [
1300
+ `--sidenavigation-${part}-${state}-accent`,
1301
+ `--sidenavigation-${part}-${state}-indicator`
1302
+ ],
1303
+ [
1304
+ `--sidenavigation-${part}-${state}-accent-width`,
1305
+ `--sidenavigation-${part}-${state}-indicator-width`
1306
+ ]
1307
+ ])
1308
+ )
1309
+ ),
1310
+ callout: Object.fromEntries(
1311
+ CALLOUT_VARIANTS.map((v) => [
1312
+ `--callout-${v}-accent-width`,
1313
+ `--callout-${v}-indicator-width`
1314
+ ])
1315
+ )
1316
+ };
1317
+ var componentMigration_2026_09_13_indicator = {
1318
+ id: "2026-09-13-indicator",
1319
+ fromVersion: 29,
1320
+ toVersion: 30,
1321
+ appliesTo: "component-config",
1322
+ apply(rawVars, meta) {
1323
+ const renames = meta.component ? RENAMES5[meta.component] : void 0;
1324
+ if (!renames) return { ...rawVars };
1325
+ const out = {};
1326
+ for (const [key, value] of Object.entries(rawVars)) {
1327
+ out[renames[key] ?? key] = value;
1328
+ }
1329
+ return out;
1330
+ }
1331
+ };
1332
+
1333
+ // src/editor/core/themes/migrations/2026-09-13-sectiondivider-surface.ts
1334
+ var SECTIONDIVIDER_VARIANTS = ["lg", "md", "sm"];
1335
+ var RENAMES6 = {
1336
+ sectiondivider: Object.fromEntries(
1337
+ SECTIONDIVIDER_VARIANTS.map((v) => [
1338
+ `--sectiondivider-${v}-background`,
1339
+ `--sectiondivider-${v}-surface`
1340
+ ])
1341
+ )
1342
+ };
1343
+ var componentMigration_2026_09_13_sectiondividerSurface = {
1344
+ id: "2026-09-13-sectiondivider-surface",
1345
+ fromVersion: 30,
1346
+ toVersion: 31,
1347
+ appliesTo: "component-config",
1348
+ apply(rawVars, meta) {
1349
+ const renames = meta.component ? RENAMES6[meta.component] : void 0;
1350
+ if (!renames) return { ...rawVars };
1351
+ const out = {};
1352
+ for (const [key, value] of Object.entries(rawVars)) {
1353
+ out[renames[key] ?? key] = value;
1354
+ }
1355
+ return out;
1356
+ }
1357
+ };
1358
+
1359
+ // src/editor/core/themes/migrations/2026-09-13-cornerbadge-prefix.ts
1360
+ var RENAMES7 = {
1361
+ cornerbadge: {
1362
+ "--corner-badge-margin": "--cornerbadge-margin",
1363
+ "--corner-badge-outer-radius": "--cornerbadge-outer-radius",
1364
+ "--corner-badge-inner-radius": "--cornerbadge-inner-radius",
1365
+ "--corner-badge-h-axis-radius": "--cornerbadge-h-axis-radius",
1366
+ "--corner-badge-v-axis-radius": "--cornerbadge-v-axis-radius",
1367
+ "--corner-badge-padding": "--cornerbadge-padding",
1368
+ "--corner-badge-text-font-family": "--cornerbadge-text-font-family",
1369
+ "--corner-badge-text-font-size": "--cornerbadge-text-font-size",
1370
+ "--corner-badge-text-font-weight": "--cornerbadge-text-font-weight",
1371
+ "--corner-badge-text-line-height": "--cornerbadge-text-line-height",
1372
+ "--corner-badge-primary-surface": "--cornerbadge-primary-surface",
1373
+ "--corner-badge-primary-border": "--cornerbadge-primary-border",
1374
+ "--corner-badge-primary-text": "--cornerbadge-primary-text",
1375
+ "--corner-badge-accent-surface": "--cornerbadge-accent-surface",
1376
+ "--corner-badge-accent-border": "--cornerbadge-accent-border",
1377
+ "--corner-badge-accent-text": "--cornerbadge-accent-text",
1378
+ "--corner-badge-neutral-surface": "--cornerbadge-neutral-surface",
1379
+ "--corner-badge-neutral-border": "--cornerbadge-neutral-border",
1380
+ "--corner-badge-neutral-text": "--cornerbadge-neutral-text",
1381
+ "--corner-badge-alternate-surface": "--cornerbadge-alternate-surface",
1382
+ "--corner-badge-alternate-border": "--cornerbadge-alternate-border",
1383
+ "--corner-badge-alternate-text": "--cornerbadge-alternate-text",
1384
+ "--corner-badge-canvas-surface": "--cornerbadge-canvas-surface",
1385
+ "--corner-badge-canvas-border": "--cornerbadge-canvas-border",
1386
+ "--corner-badge-canvas-text": "--cornerbadge-canvas-text",
1387
+ "--corner-badge-special-surface": "--cornerbadge-special-surface",
1388
+ "--corner-badge-special-border": "--cornerbadge-special-border",
1389
+ "--corner-badge-special-text": "--cornerbadge-special-text",
1390
+ "--corner-badge-success-surface": "--cornerbadge-success-surface",
1391
+ "--corner-badge-success-border": "--cornerbadge-success-border",
1392
+ "--corner-badge-success-text": "--cornerbadge-success-text",
1393
+ "--corner-badge-warning-surface": "--cornerbadge-warning-surface",
1394
+ "--corner-badge-warning-border": "--cornerbadge-warning-border",
1395
+ "--corner-badge-warning-text": "--cornerbadge-warning-text",
1396
+ "--corner-badge-danger-surface": "--cornerbadge-danger-surface",
1397
+ "--corner-badge-danger-border": "--cornerbadge-danger-border",
1398
+ "--corner-badge-danger-text": "--cornerbadge-danger-text",
1399
+ "--corner-badge-info-surface": "--cornerbadge-info-surface",
1400
+ "--corner-badge-info-border": "--cornerbadge-info-border",
1401
+ "--corner-badge-info-text": "--cornerbadge-info-text"
1402
+ }
1403
+ };
1404
+ var componentMigration_2026_09_13_cornerbadgePrefix = {
1405
+ id: "2026-09-13-cornerbadge-prefix",
1406
+ fromVersion: 31,
1407
+ toVersion: 32,
1408
+ appliesTo: "component-config",
1409
+ apply(rawVars, meta) {
1410
+ const renames = meta.component ? RENAMES7[meta.component] : void 0;
1411
+ if (!renames) return { ...rawVars };
1412
+ const out = {};
1413
+ for (const [key, value] of Object.entries(rawVars)) {
1414
+ out[renames[key] ?? key] = value;
1415
+ }
1416
+ return out;
1417
+ }
1418
+ };
1419
+
1420
+ // src/editor/core/themes/migrations/2026-09-13-toggle-label.ts
1421
+ var RENAMES8 = {
1422
+ toggle: {
1423
+ "--toggle-label-text": "--toggle-label",
1424
+ "--toggle-disabled-label-text": "--toggle-disabled-label"
1425
+ }
1426
+ };
1427
+ var componentMigration_2026_09_13_toggleLabel = {
1428
+ id: "2026-09-13-toggle-label",
1429
+ fromVersion: 32,
1430
+ toVersion: 33,
1431
+ appliesTo: "component-config",
1432
+ apply(rawVars, meta) {
1433
+ const renames = meta.component ? RENAMES8[meta.component] : void 0;
1434
+ if (!renames) return { ...rawVars };
1435
+ const out = {};
1436
+ for (const [key, value] of Object.entries(rawVars)) {
1437
+ out[renames[key] ?? key] = value;
1438
+ }
1439
+ return out;
1440
+ }
1441
+ };
1442
+
1443
+ // src/editor/core/themes/migrations/2026-09-13-collapsiblesection-open.ts
1444
+ var RENAMES9 = {
1445
+ collapsiblesection: {
1446
+ "--collapsiblesection-chromeless-expanded-padding": "--collapsiblesection-chromeless-open-padding",
1447
+ "--collapsiblesection-hairline-expanded-padding": "--collapsiblesection-hairline-open-padding",
1448
+ "--collapsiblesection-container-expanded-surface": "--collapsiblesection-container-open-surface",
1449
+ "--collapsiblesection-container-expanded-padding": "--collapsiblesection-container-open-padding"
1450
+ }
1451
+ };
1452
+ var componentMigration_2026_09_13_collapsiblesectionOpen = {
1453
+ id: "2026-09-13-collapsiblesection-open",
1454
+ fromVersion: 33,
1455
+ toVersion: 34,
1456
+ appliesTo: "component-config",
1457
+ apply(rawVars, meta) {
1458
+ const renames = meta.component ? RENAMES9[meta.component] : void 0;
1459
+ if (!renames) return { ...rawVars };
1460
+ const out = {};
1461
+ for (const [key, value] of Object.entries(rawVars)) {
1462
+ out[renames[key] ?? key] = value;
1463
+ }
1464
+ return out;
1465
+ }
1466
+ };
1467
+
1468
+ // src/editor/core/themes/migrations/2026-09-13-badge-brand.ts
1469
+ var BADGE_SUFFIXES = [
1470
+ "surface",
1471
+ "text",
1472
+ "border",
1473
+ "text-font-family",
1474
+ "text-font-size",
1475
+ "text-font-weight",
1476
+ "text-line-height",
1477
+ "border-width",
1478
+ "radius",
1479
+ "padding",
1480
+ "shadow",
1481
+ "blur",
1482
+ "icon-size"
1483
+ ];
1484
+ var CORNERBADGE_SUFFIXES = ["surface", "border", "text"];
1485
+ var RENAMES10 = {
1486
+ badge: Object.fromEntries(
1487
+ BADGE_SUFFIXES.map((s) => [`--badge-primary-${s}`, `--badge-brand-${s}`])
1488
+ ),
1489
+ cornerbadge: Object.fromEntries(
1490
+ CORNERBADGE_SUFFIXES.map((s) => [`--cornerbadge-primary-${s}`, `--cornerbadge-brand-${s}`])
1491
+ )
1492
+ };
1493
+ var componentMigration_2026_09_13_badgeBrand = {
1494
+ id: "2026-09-13-badge-brand",
1495
+ fromVersion: 34,
1496
+ toVersion: 35,
1497
+ appliesTo: "component-config",
1498
+ apply(rawVars, meta) {
1499
+ const renames = meta.component ? RENAMES10[meta.component] : void 0;
1500
+ if (!renames) return { ...rawVars };
1501
+ const out = {};
1502
+ for (const [key, value] of Object.entries(rawVars)) {
1503
+ out[renames[key] ?? key] = value;
1504
+ }
1505
+ return out;
1506
+ }
1507
+ };
1508
+
1104
1509
  // src/editor/core/themes/migrations/index.ts
1105
1510
  var MIGRATIONS = [
1106
1511
  colorsAndTypeMigration_2026_04_24_legacyKeysAndBgToCanvas,
@@ -1137,7 +1542,15 @@ var MIGRATIONS = [
1137
1542
  componentMigration_2026_09_01_gateSuffixEnabled,
1138
1543
  componentMigration_2026_09_02_sectiondividerDropTitleOutline,
1139
1544
  colorsAndTypeMigration_2026_09_03_dropLegacyComponentKeys,
1140
- componentMigration_2026_09_07_strokeRoleRenames
1545
+ componentMigration_2026_09_07_strokeRoleRenames,
1546
+ componentMigration_2026_09_13_selectedState,
1547
+ componentMigration_2026_09_13_hairline,
1548
+ componentMigration_2026_09_13_indicator,
1549
+ componentMigration_2026_09_13_sectiondividerSurface,
1550
+ componentMigration_2026_09_13_cornerbadgePrefix,
1551
+ componentMigration_2026_09_13_toggleLabel,
1552
+ componentMigration_2026_09_13_collapsiblesectionOpen,
1553
+ componentMigration_2026_09_13_badgeBrand
1141
1554
  ];
1142
1555
  function countFor(kind) {
1143
1556
  return MIGRATIONS.filter((m) => m.appliesTo === kind).length;
@@ -1201,16 +1614,21 @@ function renameSectionDividerObjectSlots(objectPart) {
1201
1614
  }
1202
1615
  }
1203
1616
  if (isFamilyGradient) continue;
1617
+ const backgroundVariant = SIZE_VARIANTS.find((v) => key === `--sectiondivider-${v}-background`);
1618
+ if (backgroundVariant) {
1619
+ out[`--sectiondivider-${backgroundVariant}-surface`] = value;
1620
+ continue;
1621
+ }
1204
1622
  out[key] = value;
1205
1623
  }
1206
1624
  if (canvasGradient !== void 0) {
1207
1625
  for (const v of SIZE_VARIANTS) {
1208
- out[`--sectiondivider-${v}-background`] = canvasGradient;
1626
+ out[`--sectiondivider-${v}-surface`] = canvasGradient;
1209
1627
  }
1210
1628
  }
1211
1629
  return out;
1212
1630
  }
1213
- var SECTIONDIVIDER_VARIANTS = ["canvas", "neutral", "alternate", "primary", "accent", "special"];
1631
+ var SECTIONDIVIDER_VARIANTS2 = ["canvas", "neutral", "alternate", "primary", "accent", "special"];
1214
1632
  function synthesizeSectionDividerGradients(stringPart, objectPart) {
1215
1633
  const GRADIENT_ANGLE_TOKENS = {
1216
1634
  "--gradient-angle-horizontal": 90,
@@ -1242,7 +1660,7 @@ function synthesizeSectionDividerGradients(stringPart, objectPart) {
1242
1660
  if (mix) return { color: mix[1], opacity: parseFloat(mix[2]) };
1243
1661
  return null;
1244
1662
  };
1245
- for (const v of SECTIONDIVIDER_VARIANTS) {
1663
+ for (const v of SECTIONDIVIDER_VARIANTS2) {
1246
1664
  const slot = `--sectiondivider-${v}-gradient`;
1247
1665
  if (slot in objectPart) continue;
1248
1666
  const angleKey = `${slot}-angle`;
@@ -7,10 +7,10 @@ import {
7
7
  normalizeTheme,
8
8
  planLegacyRenames,
9
9
  versionedFileResourceServer
10
- } from "../chunk-PDNL4NC5.js";
10
+ } from "../chunk-D4WRIKEZ.js";
11
11
  import {
12
12
  CURRENT_COMPONENT_SCHEMA_VERSION
13
- } from "../chunk-SWXRVZKT.js";
13
+ } from "../chunk-REBHE3ZM.js";
14
14
  import {
15
15
  readLiveTokensConfig,
16
16
  resolveDataDirs