@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
@@ -2115,6 +2115,411 @@ var componentMigration_2026_09_07_strokeRoleRenames = {
2115
2115
  }
2116
2116
  };
2117
2117
 
2118
+ // src/editor/core/themes/migrations/2026-09-13-selected-state.ts
2119
+ var RADIOBUTTON_SUFFIXES = [
2120
+ "dot-border-color",
2121
+ "dot-border-width",
2122
+ "dot-fill",
2123
+ "dot-size",
2124
+ "label",
2125
+ "label-font-family",
2126
+ "label-font-size",
2127
+ "label-font-weight",
2128
+ "label-line-height"
2129
+ ];
2130
+ var TABBAR_SUFFIXES = [
2131
+ "border",
2132
+ "icon-size",
2133
+ "indicator-width",
2134
+ "padding",
2135
+ "surface",
2136
+ "tab-border-color",
2137
+ "tab-border-width",
2138
+ "tab-bottom-radius",
2139
+ "tab-top-radius",
2140
+ "text",
2141
+ "text-font-family",
2142
+ "text-font-size",
2143
+ "text-font-weight",
2144
+ "text-line-height"
2145
+ ];
2146
+ var SIDENAVIGATION_SUFFIXES = {
2147
+ title: [
2148
+ "accent",
2149
+ "accent-width",
2150
+ "border",
2151
+ "border-width",
2152
+ "label",
2153
+ "label-font-family",
2154
+ "label-font-size",
2155
+ "label-font-weight",
2156
+ "label-line-height",
2157
+ "padding",
2158
+ "surface"
2159
+ ],
2160
+ section: [
2161
+ "accent",
2162
+ "accent-width",
2163
+ "surface",
2164
+ "text",
2165
+ "text-font-family",
2166
+ "text-font-size",
2167
+ "text-font-weight",
2168
+ "text-line-height"
2169
+ ],
2170
+ item: [
2171
+ "accent",
2172
+ "accent-width",
2173
+ "padding",
2174
+ "surface",
2175
+ "text",
2176
+ "text-font-family",
2177
+ "text-font-size",
2178
+ "text-font-weight",
2179
+ "text-line-height"
2180
+ ],
2181
+ footer: [
2182
+ "accent",
2183
+ "accent-width",
2184
+ "gap",
2185
+ "icon",
2186
+ "icon-size",
2187
+ "padding",
2188
+ "surface",
2189
+ "text",
2190
+ "text-font-family",
2191
+ "text-font-size",
2192
+ "text-font-weight",
2193
+ "text-line-height"
2194
+ ]
2195
+ };
2196
+ var RENAMES3 = {
2197
+ radiobutton: Object.fromEntries(
2198
+ RADIOBUTTON_SUFFIXES.map((s) => [`--radiobutton-active-${s}`, `--radiobutton-selected-${s}`])
2199
+ ),
2200
+ tabbar: Object.fromEntries(
2201
+ TABBAR_SUFFIXES.map((s) => [`--tabbar-active-${s}`, `--tabbar-selected-${s}`])
2202
+ ),
2203
+ sidenavigation: Object.fromEntries(
2204
+ Object.entries(SIDENAVIGATION_SUFFIXES).flatMap(
2205
+ ([part, suffixes]) => suffixes.map((s) => [
2206
+ `--sidenavigation-${part}-active-${s}`,
2207
+ `--sidenavigation-${part}-selected-${s}`
2208
+ ])
2209
+ )
2210
+ )
2211
+ };
2212
+ var componentMigration_2026_09_13_selectedState = {
2213
+ id: "2026-09-13-selected-state",
2214
+ fromVersion: 27,
2215
+ toVersion: 28,
2216
+ appliesTo: "component-config",
2217
+ apply(rawVars, meta) {
2218
+ const renames = meta.component ? RENAMES3[meta.component] : void 0;
2219
+ if (!renames) return { ...rawVars };
2220
+ const out = {};
2221
+ for (const [key, value] of Object.entries(rawVars)) {
2222
+ out[renames[key] ?? key] = value;
2223
+ }
2224
+ return out;
2225
+ }
2226
+ };
2227
+
2228
+ // src/editor/core/themes/migrations/2026-09-13-hairline.ts
2229
+ var COLLAPSIBLESECTION_SUFFIXES = [
2230
+ "surface",
2231
+ "hairline-color",
2232
+ "padding",
2233
+ "label",
2234
+ "label-font-family",
2235
+ "label-font-size",
2236
+ "label-font-weight",
2237
+ "label-line-height",
2238
+ "icon",
2239
+ "icon-size"
2240
+ ];
2241
+ var COLLAPSIBLESECTION_STATES = ["default", "hover"];
2242
+ var RENAMES4 = {
2243
+ dialog: {
2244
+ "--dialog-header-divider": "--dialog-header-hairline-color",
2245
+ "--dialog-header-divider-width": "--dialog-header-hairline-width",
2246
+ "--dialog-footer-divider": "--dialog-footer-hairline-color",
2247
+ "--dialog-footer-divider-width": "--dialog-footer-hairline-width"
2248
+ },
2249
+ table: {
2250
+ "--table-default-header-divider": "--table-default-header-hairline-color",
2251
+ "--table-default-header-divider-width": "--table-default-header-hairline-width",
2252
+ "--table-default-row-divider": "--table-default-row-hairline-color",
2253
+ "--table-default-row-divider-width": "--table-default-row-hairline-width",
2254
+ "--table-default-column-divider": "--table-default-column-hairline-color",
2255
+ "--table-default-column-divider-width": "--table-default-column-hairline-width"
2256
+ },
2257
+ tabbar: {
2258
+ "--tabbar-bar-divider": "--tabbar-bar-hairline-color",
2259
+ "--tabbar-bar-divider-thickness": "--tabbar-bar-hairline-width"
2260
+ },
2261
+ segmentedcontrol: {
2262
+ "--segmentedcontrol-divider-color": "--segmentedcontrol-hairline-color",
2263
+ "--segmentedcontrol-divider-thickness": "--segmentedcontrol-hairline-width",
2264
+ "--segmentedcontrol-divider-inset": "--segmentedcontrol-hairline-inset",
2265
+ "--segmentedcontrol-small-divider-thickness": "--segmentedcontrol-small-hairline-width",
2266
+ "--segmentedcontrol-small-divider-inset": "--segmentedcontrol-small-hairline-inset"
2267
+ },
2268
+ collapsiblesection: {
2269
+ ...Object.fromEntries(
2270
+ COLLAPSIBLESECTION_STATES.flatMap((state) => [
2271
+ ...COLLAPSIBLESECTION_SUFFIXES.map((s) => [
2272
+ `--collapsiblesection-divider-${state}-${s}`,
2273
+ `--collapsiblesection-hairline-${state}-${s}`
2274
+ ]),
2275
+ [
2276
+ `--collapsiblesection-divider-${state}-hairline-thickness`,
2277
+ `--collapsiblesection-hairline-${state}-hairline-width`
2278
+ ]
2279
+ ])
2280
+ ),
2281
+ "--collapsiblesection-divider-expanded-padding": "--collapsiblesection-hairline-expanded-padding"
2282
+ },
2283
+ sectiondivider: {
2284
+ "--sectiondivider-lg-hairline-thickness": "--sectiondivider-lg-hairline-width",
2285
+ "--sectiondivider-md-hairline-thickness": "--sectiondivider-md-hairline-width",
2286
+ "--sectiondivider-sm-hairline-thickness": "--sectiondivider-sm-hairline-width"
2287
+ }
2288
+ };
2289
+ var componentMigration_2026_09_13_hairline = {
2290
+ id: "2026-09-13-hairline",
2291
+ fromVersion: 28,
2292
+ toVersion: 29,
2293
+ appliesTo: "component-config",
2294
+ apply(rawVars, meta) {
2295
+ const renames = meta.component ? RENAMES4[meta.component] : void 0;
2296
+ if (!renames) return { ...rawVars };
2297
+ const out = {};
2298
+ for (const [key, value] of Object.entries(rawVars)) {
2299
+ out[renames[key] ?? key] = value;
2300
+ }
2301
+ return out;
2302
+ }
2303
+ };
2304
+
2305
+ // src/editor/core/themes/migrations/2026-09-13-indicator.ts
2306
+ var SIDENAVIGATION_PARTS = ["title", "section", "item", "footer"];
2307
+ var SIDENAVIGATION_STATES = ["default", "hover", "selected"];
2308
+ var CALLOUT_VARIANTS = ["info", "success", "warning", "danger"];
2309
+ var RENAMES5 = {
2310
+ sidenavigation: Object.fromEntries(
2311
+ SIDENAVIGATION_PARTS.flatMap(
2312
+ (part) => SIDENAVIGATION_STATES.flatMap((state) => [
2313
+ [
2314
+ `--sidenavigation-${part}-${state}-accent`,
2315
+ `--sidenavigation-${part}-${state}-indicator`
2316
+ ],
2317
+ [
2318
+ `--sidenavigation-${part}-${state}-accent-width`,
2319
+ `--sidenavigation-${part}-${state}-indicator-width`
2320
+ ]
2321
+ ])
2322
+ )
2323
+ ),
2324
+ callout: Object.fromEntries(
2325
+ CALLOUT_VARIANTS.map((v) => [
2326
+ `--callout-${v}-accent-width`,
2327
+ `--callout-${v}-indicator-width`
2328
+ ])
2329
+ )
2330
+ };
2331
+ var componentMigration_2026_09_13_indicator = {
2332
+ id: "2026-09-13-indicator",
2333
+ fromVersion: 29,
2334
+ toVersion: 30,
2335
+ appliesTo: "component-config",
2336
+ apply(rawVars, meta) {
2337
+ const renames = meta.component ? RENAMES5[meta.component] : void 0;
2338
+ if (!renames) return { ...rawVars };
2339
+ const out = {};
2340
+ for (const [key, value] of Object.entries(rawVars)) {
2341
+ out[renames[key] ?? key] = value;
2342
+ }
2343
+ return out;
2344
+ }
2345
+ };
2346
+
2347
+ // src/editor/core/themes/migrations/2026-09-13-sectiondivider-surface.ts
2348
+ var SECTIONDIVIDER_VARIANTS = ["lg", "md", "sm"];
2349
+ var RENAMES6 = {
2350
+ sectiondivider: Object.fromEntries(
2351
+ SECTIONDIVIDER_VARIANTS.map((v) => [
2352
+ `--sectiondivider-${v}-background`,
2353
+ `--sectiondivider-${v}-surface`
2354
+ ])
2355
+ )
2356
+ };
2357
+ var componentMigration_2026_09_13_sectiondividerSurface = {
2358
+ id: "2026-09-13-sectiondivider-surface",
2359
+ fromVersion: 30,
2360
+ toVersion: 31,
2361
+ appliesTo: "component-config",
2362
+ apply(rawVars, meta) {
2363
+ const renames = meta.component ? RENAMES6[meta.component] : void 0;
2364
+ if (!renames) return { ...rawVars };
2365
+ const out = {};
2366
+ for (const [key, value] of Object.entries(rawVars)) {
2367
+ out[renames[key] ?? key] = value;
2368
+ }
2369
+ return out;
2370
+ }
2371
+ };
2372
+
2373
+ // src/editor/core/themes/migrations/2026-09-13-cornerbadge-prefix.ts
2374
+ var RENAMES7 = {
2375
+ cornerbadge: {
2376
+ "--corner-badge-margin": "--cornerbadge-margin",
2377
+ "--corner-badge-outer-radius": "--cornerbadge-outer-radius",
2378
+ "--corner-badge-inner-radius": "--cornerbadge-inner-radius",
2379
+ "--corner-badge-h-axis-radius": "--cornerbadge-h-axis-radius",
2380
+ "--corner-badge-v-axis-radius": "--cornerbadge-v-axis-radius",
2381
+ "--corner-badge-padding": "--cornerbadge-padding",
2382
+ "--corner-badge-text-font-family": "--cornerbadge-text-font-family",
2383
+ "--corner-badge-text-font-size": "--cornerbadge-text-font-size",
2384
+ "--corner-badge-text-font-weight": "--cornerbadge-text-font-weight",
2385
+ "--corner-badge-text-line-height": "--cornerbadge-text-line-height",
2386
+ "--corner-badge-primary-surface": "--cornerbadge-primary-surface",
2387
+ "--corner-badge-primary-border": "--cornerbadge-primary-border",
2388
+ "--corner-badge-primary-text": "--cornerbadge-primary-text",
2389
+ "--corner-badge-accent-surface": "--cornerbadge-accent-surface",
2390
+ "--corner-badge-accent-border": "--cornerbadge-accent-border",
2391
+ "--corner-badge-accent-text": "--cornerbadge-accent-text",
2392
+ "--corner-badge-neutral-surface": "--cornerbadge-neutral-surface",
2393
+ "--corner-badge-neutral-border": "--cornerbadge-neutral-border",
2394
+ "--corner-badge-neutral-text": "--cornerbadge-neutral-text",
2395
+ "--corner-badge-alternate-surface": "--cornerbadge-alternate-surface",
2396
+ "--corner-badge-alternate-border": "--cornerbadge-alternate-border",
2397
+ "--corner-badge-alternate-text": "--cornerbadge-alternate-text",
2398
+ "--corner-badge-canvas-surface": "--cornerbadge-canvas-surface",
2399
+ "--corner-badge-canvas-border": "--cornerbadge-canvas-border",
2400
+ "--corner-badge-canvas-text": "--cornerbadge-canvas-text",
2401
+ "--corner-badge-special-surface": "--cornerbadge-special-surface",
2402
+ "--corner-badge-special-border": "--cornerbadge-special-border",
2403
+ "--corner-badge-special-text": "--cornerbadge-special-text",
2404
+ "--corner-badge-success-surface": "--cornerbadge-success-surface",
2405
+ "--corner-badge-success-border": "--cornerbadge-success-border",
2406
+ "--corner-badge-success-text": "--cornerbadge-success-text",
2407
+ "--corner-badge-warning-surface": "--cornerbadge-warning-surface",
2408
+ "--corner-badge-warning-border": "--cornerbadge-warning-border",
2409
+ "--corner-badge-warning-text": "--cornerbadge-warning-text",
2410
+ "--corner-badge-danger-surface": "--cornerbadge-danger-surface",
2411
+ "--corner-badge-danger-border": "--cornerbadge-danger-border",
2412
+ "--corner-badge-danger-text": "--cornerbadge-danger-text",
2413
+ "--corner-badge-info-surface": "--cornerbadge-info-surface",
2414
+ "--corner-badge-info-border": "--cornerbadge-info-border",
2415
+ "--corner-badge-info-text": "--cornerbadge-info-text"
2416
+ }
2417
+ };
2418
+ var componentMigration_2026_09_13_cornerbadgePrefix = {
2419
+ id: "2026-09-13-cornerbadge-prefix",
2420
+ fromVersion: 31,
2421
+ toVersion: 32,
2422
+ appliesTo: "component-config",
2423
+ apply(rawVars, meta) {
2424
+ const renames = meta.component ? RENAMES7[meta.component] : void 0;
2425
+ if (!renames) return { ...rawVars };
2426
+ const out = {};
2427
+ for (const [key, value] of Object.entries(rawVars)) {
2428
+ out[renames[key] ?? key] = value;
2429
+ }
2430
+ return out;
2431
+ }
2432
+ };
2433
+
2434
+ // src/editor/core/themes/migrations/2026-09-13-toggle-label.ts
2435
+ var RENAMES8 = {
2436
+ toggle: {
2437
+ "--toggle-label-text": "--toggle-label",
2438
+ "--toggle-disabled-label-text": "--toggle-disabled-label"
2439
+ }
2440
+ };
2441
+ var componentMigration_2026_09_13_toggleLabel = {
2442
+ id: "2026-09-13-toggle-label",
2443
+ fromVersion: 32,
2444
+ toVersion: 33,
2445
+ appliesTo: "component-config",
2446
+ apply(rawVars, meta) {
2447
+ const renames = meta.component ? RENAMES8[meta.component] : void 0;
2448
+ if (!renames) return { ...rawVars };
2449
+ const out = {};
2450
+ for (const [key, value] of Object.entries(rawVars)) {
2451
+ out[renames[key] ?? key] = value;
2452
+ }
2453
+ return out;
2454
+ }
2455
+ };
2456
+
2457
+ // src/editor/core/themes/migrations/2026-09-13-collapsiblesection-open.ts
2458
+ var RENAMES9 = {
2459
+ collapsiblesection: {
2460
+ "--collapsiblesection-chromeless-expanded-padding": "--collapsiblesection-chromeless-open-padding",
2461
+ "--collapsiblesection-hairline-expanded-padding": "--collapsiblesection-hairline-open-padding",
2462
+ "--collapsiblesection-container-expanded-surface": "--collapsiblesection-container-open-surface",
2463
+ "--collapsiblesection-container-expanded-padding": "--collapsiblesection-container-open-padding"
2464
+ }
2465
+ };
2466
+ var componentMigration_2026_09_13_collapsiblesectionOpen = {
2467
+ id: "2026-09-13-collapsiblesection-open",
2468
+ fromVersion: 33,
2469
+ toVersion: 34,
2470
+ appliesTo: "component-config",
2471
+ apply(rawVars, meta) {
2472
+ const renames = meta.component ? RENAMES9[meta.component] : void 0;
2473
+ if (!renames) return { ...rawVars };
2474
+ const out = {};
2475
+ for (const [key, value] of Object.entries(rawVars)) {
2476
+ out[renames[key] ?? key] = value;
2477
+ }
2478
+ return out;
2479
+ }
2480
+ };
2481
+
2482
+ // src/editor/core/themes/migrations/2026-09-13-badge-brand.ts
2483
+ var BADGE_SUFFIXES = [
2484
+ "surface",
2485
+ "text",
2486
+ "border",
2487
+ "text-font-family",
2488
+ "text-font-size",
2489
+ "text-font-weight",
2490
+ "text-line-height",
2491
+ "border-width",
2492
+ "radius",
2493
+ "padding",
2494
+ "shadow",
2495
+ "blur",
2496
+ "icon-size"
2497
+ ];
2498
+ var CORNERBADGE_SUFFIXES = ["surface", "border", "text"];
2499
+ var RENAMES10 = {
2500
+ badge: Object.fromEntries(
2501
+ BADGE_SUFFIXES.map((s) => [`--badge-primary-${s}`, `--badge-brand-${s}`])
2502
+ ),
2503
+ cornerbadge: Object.fromEntries(
2504
+ CORNERBADGE_SUFFIXES.map((s) => [`--cornerbadge-primary-${s}`, `--cornerbadge-brand-${s}`])
2505
+ )
2506
+ };
2507
+ var componentMigration_2026_09_13_badgeBrand = {
2508
+ id: "2026-09-13-badge-brand",
2509
+ fromVersion: 34,
2510
+ toVersion: 35,
2511
+ appliesTo: "component-config",
2512
+ apply(rawVars, meta) {
2513
+ const renames = meta.component ? RENAMES10[meta.component] : void 0;
2514
+ if (!renames) return { ...rawVars };
2515
+ const out = {};
2516
+ for (const [key, value] of Object.entries(rawVars)) {
2517
+ out[renames[key] ?? key] = value;
2518
+ }
2519
+ return out;
2520
+ }
2521
+ };
2522
+
2118
2523
  // src/editor/core/themes/migrations/index.ts
2119
2524
  var MIGRATIONS = [
2120
2525
  colorsAndTypeMigration_2026_04_24_legacyKeysAndBgToCanvas,
@@ -2151,7 +2556,15 @@ var MIGRATIONS = [
2151
2556
  componentMigration_2026_09_01_gateSuffixEnabled,
2152
2557
  componentMigration_2026_09_02_sectiondividerDropTitleOutline,
2153
2558
  colorsAndTypeMigration_2026_09_03_dropLegacyComponentKeys,
2154
- componentMigration_2026_09_07_strokeRoleRenames
2559
+ componentMigration_2026_09_07_strokeRoleRenames,
2560
+ componentMigration_2026_09_13_selectedState,
2561
+ componentMigration_2026_09_13_hairline,
2562
+ componentMigration_2026_09_13_indicator,
2563
+ componentMigration_2026_09_13_sectiondividerSurface,
2564
+ componentMigration_2026_09_13_cornerbadgePrefix,
2565
+ componentMigration_2026_09_13_toggleLabel,
2566
+ componentMigration_2026_09_13_collapsiblesectionOpen,
2567
+ componentMigration_2026_09_13_badgeBrand
2155
2568
  ];
2156
2569
  function countFor(kind) {
2157
2570
  return MIGRATIONS.filter((m) => m.appliesTo === kind).length;
@@ -1,4 +1,4 @@
1
- import { P as PaletteConfig, H as HarmonyAxis, G as GradientDiskToken, O as Oklch, d as HarmonyMode } from '../themeTypes-BxRtuN5V.cjs';
1
+ import { P as PaletteConfig, H as HarmonyAxis, G as GradientDiskToken, O as Oklch, d as HarmonyMode } from '../themeTypes-B8_Idrp4.cjs';
2
2
  export { r as readLiveTokensConfig, a as resolveDataDirs } from '../dataPaths-BpIK_Obx.cjs';
3
3
  export { C as CURRENT_COMPONENT_SCHEMA_VERSION } from '../index-4N-Orzzi.cjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { P as PaletteConfig, H as HarmonyAxis, G as GradientDiskToken, O as Oklch, d as HarmonyMode } from '../themeTypes-BxRtuN5V.js';
1
+ import { P as PaletteConfig, H as HarmonyAxis, G as GradientDiskToken, O as Oklch, d as HarmonyMode } from '../themeTypes-B8_Idrp4.js';
2
2
  export { r as readLiveTokensConfig, a as resolveDataDirs } from '../dataPaths-BpIK_Obx.js';
3
3
  export { C as CURRENT_COMPONENT_SCHEMA_VERSION } from '../index-4N-Orzzi.js';
4
4
 
@@ -18,7 +18,7 @@ import {
18
18
  } from "../chunk-O6GQ6GBH.js";
19
19
  import {
20
20
  CURRENT_COMPONENT_SCHEMA_VERSION
21
- } from "../chunk-SWXRVZKT.js";
21
+ } from "../chunk-REBHE3ZM.js";
22
22
  import {
23
23
  cssColorToOklch,
24
24
  gamutClamp,