@motion-proto/live-tokens 0.7.1 → 0.9.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 (96) hide show
  1. package/.claude/skills/live-tokens-add-component/SKILL.md +488 -0
  2. package/README.md +34 -0
  3. package/dist-plugin/index.cjs +707 -90
  4. package/dist-plugin/index.d.cts +1 -0
  5. package/dist-plugin/index.d.ts +1 -0
  6. package/dist-plugin/index.js +707 -90
  7. package/package.json +6 -2
  8. package/src/app/site.css +1 -1
  9. package/src/editor/component-editor/CollapsibleSectionEditor.svelte +34 -27
  10. package/src/editor/component-editor/DialogEditor.svelte +4 -4
  11. package/src/editor/component-editor/NotificationEditor.svelte +3 -1
  12. package/src/editor/component-editor/SectionDividerEditor.svelte +439 -112
  13. package/src/editor/component-editor/StandardButtonsEditor.svelte +13 -1
  14. package/src/editor/component-editor/editors.d.ts +10 -0
  15. package/src/editor/component-editor/index.ts +16 -1
  16. package/src/editor/component-editor/registry.ts +103 -26
  17. package/src/editor/component-editor/scaffolding/AngleDial.svelte +52 -13
  18. package/src/editor/component-editor/scaffolding/ComponentFileManager.svelte +10 -11
  19. package/src/editor/component-editor/scaffolding/ComponentsTab.svelte +2 -2
  20. package/src/editor/component-editor/scaffolding/LinkedBlock.svelte +0 -1
  21. package/src/editor/component-editor/scaffolding/RadialShapePad.svelte +483 -0
  22. package/src/editor/component-editor/scaffolding/ShadowBackdrop.svelte +15 -2
  23. package/src/editor/component-editor/scaffolding/StateBlock.svelte +103 -15
  24. package/src/editor/component-editor/scaffolding/TokenLayout.svelte +9 -6
  25. package/src/editor/component-editor/scaffolding/TypeEditor.svelte +13 -1
  26. package/src/editor/component-editor/scaffolding/VariantGroup.svelte +239 -25
  27. package/src/editor/component-editor/scaffolding/buildTypeGroupTokens.ts +1 -0
  28. package/src/editor/component-editor/scaffolding/componentSources.ts +3 -3
  29. package/src/editor/component-editor/scaffolding/defaultSections.ts +15 -10
  30. package/src/editor/component-editor/scaffolding/types.ts +11 -0
  31. package/src/editor/core/components/componentConfigKeys.ts +22 -3
  32. package/src/editor/core/components/componentConfigService.ts +2 -2
  33. package/src/editor/core/components/componentPersist.ts +7 -5
  34. package/src/editor/core/manifests/manifestService.ts +58 -3
  35. package/src/editor/core/palettes/familySwap.ts +99 -0
  36. package/src/editor/core/palettes/paletteDerivation.ts +69 -0
  37. package/src/editor/core/palettes/tokenRegistry.ts +4 -1
  38. package/src/editor/core/store/editorStore.ts +206 -12
  39. package/src/editor/core/store/editorTypes.ts +55 -12
  40. package/src/editor/core/store/gradientSource.ts +192 -0
  41. package/src/editor/core/themes/migrations/2026-05-19-collapsiblesection-drop-frame-surface.ts +28 -0
  42. package/src/editor/core/themes/migrations/2026-05-19-sectiondivider-rich-gradient.ts +35 -0
  43. package/src/editor/core/themes/migrations/2026-05-20-sectiondivider-slim-variants.ts +82 -0
  44. package/src/editor/core/themes/migrations/2026-05-21-sectiondivider-spacing-to-padding.ts +24 -0
  45. package/src/editor/core/themes/migrations/2026-05-22-sectiondivider-intrinsics-to-css.ts +81 -0
  46. package/src/editor/core/themes/migrations/index.ts +10 -0
  47. package/src/editor/core/themes/slices/components.ts +27 -4
  48. package/src/editor/core/themes/slices/gradients.ts +88 -13
  49. package/src/editor/core/themes/themeInit.ts +2 -2
  50. package/src/editor/core/themes/themeTypes.ts +56 -1
  51. package/src/editor/index.ts +10 -1
  52. package/src/editor/overlay/ColumnsOverlay.svelte +0 -1
  53. package/src/editor/overlay/LiveEditorOverlay.svelte +1 -4
  54. package/src/editor/pages/ComponentEditorPage.svelte +53 -3
  55. package/src/editor/pages/EditorShell.svelte +53 -3
  56. package/src/editor/styles/ui-editor.css +1 -0
  57. package/src/editor/styles/ui-form-controls.css +19 -20
  58. package/src/editor/ui/BezierCurveEditor.svelte +114 -63
  59. package/src/editor/ui/EditorViewSwitcher.svelte +0 -1
  60. package/src/editor/ui/FileLoadList.svelte +22 -5
  61. package/src/editor/ui/FontStackEditor.svelte +214 -76
  62. package/src/editor/ui/GradientEditor.svelte +435 -215
  63. package/src/editor/ui/GradientStopPicker.svelte +11 -3
  64. package/src/editor/ui/ManifestFileManager.svelte +71 -4
  65. package/src/editor/ui/PaletteEditor.svelte +52 -79
  66. package/src/editor/ui/ProjectFontsSection.svelte +328 -293
  67. package/src/editor/ui/ThemeFileManager.svelte +0 -4
  68. package/src/editor/ui/UIFontFamilySelector.svelte +0 -1
  69. package/src/editor/ui/UIFontSizeSelector.svelte +3 -0
  70. package/src/editor/ui/UIInfoPopover.svelte +0 -1
  71. package/src/editor/ui/UILetterSpacingSelector.svelte +65 -0
  72. package/src/editor/ui/UIPaletteSelector.svelte +31 -4
  73. package/src/editor/ui/UIPillButton.svelte +33 -3
  74. package/src/editor/ui/UISegmentedControl.svelte +114 -0
  75. package/src/editor/ui/UITokenSelector.svelte +4 -1
  76. package/src/editor/ui/VariablesTab.svelte +41 -35
  77. package/src/editor/ui/palette/OverridesPanel.svelte +14 -37
  78. package/src/editor/ui/palette/PaletteBase.svelte +3 -3
  79. package/src/editor/ui/sections/ColumnsSection.svelte +1 -2
  80. package/src/editor/ui/sections/GradientsSection.svelte +1 -1
  81. package/src/editor/ui/sections/OverlaysSection.svelte +1 -1
  82. package/src/editor/ui/sections/ShadowsSection.svelte +1 -1
  83. package/src/system/components/Button.svelte +2 -2
  84. package/src/system/components/Card.svelte +29 -1
  85. package/src/system/components/CollapsibleSection.svelte +25 -2
  86. package/src/system/components/Dialog.svelte +24 -4
  87. package/src/system/components/FloatingTokenTags.css +43 -24
  88. package/src/system/components/FloatingTokenTags.svelte +88 -137
  89. package/src/system/components/Notification.svelte +8 -1
  90. package/src/system/components/SectionDivider.svelte +532 -381
  91. package/src/system/styles/CONVENTIONS.md +1 -1
  92. package/src/system/styles/fonts.css +3 -16
  93. package/src/system/styles/tokens.css +356 -1199
  94. package/src/system/styles/tokens.generated.css +544 -0
  95. package/src/editor/component-editor/scaffolding/DividerEditor.svelte +0 -94
  96. package/src/editor/component-editor/scaffolding/GradientCard.svelte +0 -296
@@ -0,0 +1,544 @@
1
+ /* Generated by themeFileApi from the production theme and component configs. Do not edit. */
2
+ /* tokens.css holds developer-authored defaults; this file holds editor overrides. */
3
+
4
+ /* Production theme: my-theme */
5
+ :root:root {
6
+ --gradient-1: linear-gradient(90deg, var(--color-brand-500) 0%, var(--color-accent-500) 100%);
7
+ --gradient-2: linear-gradient(135deg, var(--color-brand-500) 0%, var(--color-special-500) 100%);
8
+ --gradient-3: linear-gradient(90deg, var(--color-success-500) 0%, var(--color-info-500) 100%);
9
+ --gradient-4: linear-gradient(45deg, var(--color-danger-500) 0%, var(--color-warning-500) 100%);
10
+ --badge-trait-surface: var(--surface-brand);
11
+ --badge-trait-text: var(--text-brand);
12
+ --badge-trait-text-font-family: var(--font-sans);
13
+ --badge-trait-text-font-size: var(--font-size-sm);
14
+ --badge-trait-text-font-weight: var(--font-weight-light);
15
+ --badge-trait-text-line-height: var(--line-height-xs);
16
+ --badge-trait-border: var(--border-brand-medium);
17
+ --badge-trait-border-width: var(--border-width-1);
18
+ --badge-trait-radius: var(--radius-full);
19
+ --badge-trait-padding: var(--space-6);
20
+ --badge-trait-shadow: transparent;
21
+ --sectiondivider-padding: var(--space-16);
22
+ --sectiondivider-title: var(--text-primary);
23
+ --sectiondivider-title-font-family: var(--font-display);
24
+ --sectiondivider-title-font-size: var(--font-size-5xl);
25
+ --sectiondivider-title-font-weight: var(--font-weight-normal);
26
+ --sectiondivider-title-line-height: var(--line-height-xs);
27
+ --sectiondivider-title-border-width: var(--border-width-4);
28
+ --sectiondivider-title-stroke-color: var(--surface-canvas-lowest);
29
+ --sectiondivider-description: var(--text-secondary);
30
+ --sectiondivider-description-font-family: var(--font-sans);
31
+ --sectiondivider-description-font-size: var(--font-size-md);
32
+ --sectiondivider-description-font-weight: var(--font-weight-normal);
33
+ --sectiondivider-description-line-height: var(--line-height-md);
34
+ --dialog-primary-default-surface: var(--surface-neutral-high);
35
+ --dialog-primary-default-text: var(--text-primary);
36
+ --dialog-primary-default-border: var(--border-neutral-medium);
37
+ --dialog-primary-default-border-width: var(--border-width-1);
38
+ --dialog-primary-default-radius: var(--radius-md);
39
+ --dialog-primary-default-padding: var(--space-8);
40
+ --dialog-primary-hover-surface: var(--surface-neutral-higher);
41
+ --dialog-primary-hover-text: var(--text-primary);
42
+ --dialog-primary-hover-border: var(--border-neutral-strong);
43
+ --dialog-primary-hover-border-width: var(--border-width-1);
44
+ --dialog-primary-hover-radius: var(--radius-md);
45
+ --dialog-primary-hover-padding: var(--space-8);
46
+ --dialog-secondary-default-text: var(--text-primary);
47
+ --dialog-secondary-default-border: var(--border-neutral-medium);
48
+ --dialog-secondary-default-border-width: var(--border-width-1);
49
+ --dialog-secondary-default-radius: var(--radius-md);
50
+ --dialog-secondary-default-padding: var(--space-8);
51
+ --dialog-secondary-hover-surface: var(--surface-neutral-lower);
52
+ --dialog-secondary-hover-text: var(--text-primary);
53
+ --dialog-secondary-hover-border: var(--border-neutral-strong);
54
+ --dialog-secondary-hover-border-width: var(--border-width-1);
55
+ --dialog-secondary-hover-radius: var(--radius-md);
56
+ --dialog-secondary-hover-padding: var(--space-8);
57
+ --overlay-lowest: rgba(20, 3, 0, 0.12);
58
+ --overlay-lower: rgba(20, 3, 0, 0.25);
59
+ --overlay-low: rgba(20, 3, 0, 0.38);
60
+ --overlay: rgba(20, 3, 0, 0.51);
61
+ --overlay-high: rgba(20, 3, 0, 0.64);
62
+ --overlay-higher: rgba(20, 3, 0, 0.77);
63
+ --overlay-highest: rgba(20, 3, 0, 0.9);
64
+ --hover-low: rgba(255, 255, 255, 0.05);
65
+ --hover: rgba(255, 255, 255, 0.1);
66
+ --hover-high: rgba(255, 255, 255, 0.15);
67
+ --shadow-sm: 1px 1px 2px 0px hsla(237, 18%, 3%, 0.9);
68
+ --shadow-md: 3px 3px 6px 0px hsla(237, 18%, 3%, 0.9);
69
+ --shadow-lg: 5px 5px 9px 0px hsla(237, 18%, 3%, 0.9);
70
+ --shadow-xl: 6px 7px 13px 0px hsla(237, 18%, 3%, 0.9);
71
+ --shadow-2xl: 8px 9px 16px 0px hsla(237, 18%, 3%, 0.9);
72
+ --color-neutral-100: #dde6ec;
73
+ --color-neutral-200: #c4cdd3;
74
+ --color-neutral-300: #a8b1b7;
75
+ --color-neutral-400: #8b949a;
76
+ --color-neutral-500: #70787e;
77
+ --color-neutral-600: #555e63;
78
+ --color-neutral-700: #3c4449;
79
+ --color-neutral-800: #252c31;
80
+ --color-neutral-850: #0f161a;
81
+ --color-neutral-900: #020407;
82
+ --color-neutral-950: #000000;
83
+ --surface-neutral-lowest: #040c13;
84
+ --surface-neutral-lower: #162027;
85
+ --surface-neutral-low: #2c353c;
86
+ --surface-neutral: #434c52;
87
+ --surface-neutral-high: #5c6369;
88
+ --surface-neutral-higher: #767c81;
89
+ --surface-neutral-highest: #91969a;
90
+ --border-neutral-faint: #1c2327;
91
+ --border-neutral-subtle: #3a4146;
92
+ --border-neutral: #5a6267;
93
+ --border-neutral-medium: #7c848b;
94
+ --border-neutral-strong: #a0a9af;
95
+ --text-primary: #ffffff;
96
+ --text-secondary: #c2cacf;
97
+ --text-tertiary: #7e8285;
98
+ --text-muted: #4e4f50;
99
+ --text-disabled: #383838;
100
+ --color-alternate-100: #e9e3e0;
101
+ --color-alternate-200: #d2ccc8;
102
+ --color-alternate-300: #b7b1ad;
103
+ --color-alternate-400: #9b9693;
104
+ --color-alternate-500: #817b78;
105
+ --color-alternate-600: #67625f;
106
+ --color-alternate-700: #4f4a47;
107
+ --color-alternate-800: #373330;
108
+ --color-alternate-850: #221d1b;
109
+ --color-alternate-900: #0e0b08;
110
+ --color-alternate-950: #030101;
111
+ --surface-alternate-lowest: #100907;
112
+ --surface-alternate-lower: #231d19;
113
+ --surface-alternate-low: #39322f;
114
+ --surface-alternate: #4f4946;
115
+ --surface-alternate-high: #66615e;
116
+ --surface-alternate-higher: #7f7a78;
117
+ --surface-alternate-highest: #989492;
118
+ --border-alternate-faint: #25201e;
119
+ --border-alternate-subtle: #443e3c;
120
+ --border-alternate: #655f5c;
121
+ --border-alternate-medium: #88827f;
122
+ --border-alternate-strong: #aca6a3;
123
+ --text-alternate: #ffffff;
124
+ --text-alternate-secondary: #d6d0ce;
125
+ --text-alternate-tertiary: #8a8786;
126
+ --text-alternate-muted: #545352;
127
+ --text-alternate-disabled: #3b3b3b;
128
+ --color-canvas-100: #cecfe5;
129
+ --color-canvas-200: #abacc2;
130
+ --color-canvas-300: #8d8da4;
131
+ --color-canvas-400: #727289;
132
+ --color-canvas-500: #5a5a72;
133
+ --color-canvas-600: #45455c;
134
+ --color-canvas-700: #33324a;
135
+ --color-canvas-800: #232239;
136
+ --color-canvas-850: #15142b;
137
+ --color-canvas-900: #0b081f;
138
+ --color-canvas-950: #040215;
139
+ --surface-canvas-lowest: #0a0523;
140
+ --surface-canvas-lower: #1c1a37;
141
+ --surface-canvas-low: #31304c;
142
+ --surface-canvas: #474761;
143
+ --surface-canvas-high: #5f6077;
144
+ --surface-canvas-higher: #79798e;
145
+ --surface-canvas-highest: #9393a5;
146
+ --border-canvas-faint: #1f1f34;
147
+ --border-canvas-subtle: #3d3d54;
148
+ --border-canvas: #5d5e76;
149
+ --border-canvas-medium: #80809b;
150
+ --border-canvas-strong: #a4a5c0;
151
+ --text-canvas: #9595c6;
152
+ --text-canvas-secondary: #6b6b89;
153
+ --text-canvas-tertiary: #4e4f5e;
154
+ --text-canvas-muted: #3c3c41;
155
+ --text-canvas-disabled: #343435;
156
+ --page-bg: #15142b;
157
+ --page-bg-attachment: scroll;
158
+ --color-brand-100: #ffbad3;
159
+ --color-brand-200: #ff7bb3;
160
+ --color-brand-300: #ec4495;
161
+ --color-brand-400: #cf0b7a;
162
+ --color-brand-500: #a80062;
163
+ --color-brand-600: #84004b;
164
+ --color-brand-700: #640038;
165
+ --color-brand-800: #490027;
166
+ --color-brand-850: #320019;
167
+ --color-brand-900: #1f000d;
168
+ --color-brand-950: #100005;
169
+ --surface-brand-lowest: #1d000c;
170
+ --surface-brand-lower: #3e0020;
171
+ --surface-brand-low: #620037;
172
+ --surface-brand: #89004e;
173
+ --surface-brand-high: #b10067;
174
+ --surface-brand-higher: #cf3480;
175
+ --surface-brand-highest: #e0649a;
176
+ --border-brand-faint: #430024;
177
+ --border-brand-subtle: #760043;
178
+ --border-brand: #ae0065;
179
+ --border-brand-medium: #e9008a;
180
+ --border-brand-strong: #ff6cad;
181
+ --text-brand: #ff75b1;
182
+ --text-brand-secondary: #df2d88;
183
+ --text-brand-tertiary: #953b63;
184
+ --text-brand-muted: #5c3846;
185
+ --text-brand-disabled: #403337;
186
+ --color-accent-100: #98e1dd;
187
+ --color-accent-200: #70beba;
188
+ --color-accent-300: #4ba09c;
189
+ --color-accent-400: #248582;
190
+ --color-accent-500: #006b69;
191
+ --color-accent-600: #005351;
192
+ --color-accent-700: #003e3d;
193
+ --color-accent-800: #002c2b;
194
+ --color-accent-850: #001d1c;
195
+ --color-accent-900: #00100f;
196
+ --color-accent-950: #000606;
197
+ --surface-accent-lowest: #000f0e;
198
+ --surface-accent-lower: #002423;
199
+ --surface-accent-low: #003c3b;
200
+ --surface-accent: #005654;
201
+ --surface-accent-high: #00716f;
202
+ --surface-accent-higher: #3b8a87;
203
+ --surface-accent-highest: #66a29f;
204
+ --border-accent-faint: #002827;
205
+ --border-accent-subtle: #004a48;
206
+ --border-accent: #006f6d;
207
+ --border-accent-medium: #259592;
208
+ --border-accent-strong: #54bbb7;
209
+ --text-accent: #009d9a;
210
+ --text-accent-secondary: #1f7673;
211
+ --text-accent-tertiary: #2d5351;
212
+ --text-accent-muted: #2c3837;
213
+ --text-accent-disabled: #292a2a;
214
+ --color-special-100: #d2c8ff;
215
+ --color-special-200: #b19cff;
216
+ --color-special-300: #9673f5;
217
+ --color-special-400: #7d54db;
218
+ --color-special-500: #6634c4;
219
+ --color-special-600: #5407af;
220
+ --color-special-700: #3f0088;
221
+ --color-special-800: #2d0064;
222
+ --color-special-850: #1d0046;
223
+ --color-special-900: #10002d;
224
+ --color-special-950: #060019;
225
+ --surface-special-lowest: #0f002b;
226
+ --surface-special-lower: #250055;
227
+ --surface-special-low: #3d0084;
228
+ --surface-special: #5700b7;
229
+ --surface-special-high: #6c3bcb;
230
+ --surface-special-higher: #8161d8;
231
+ --surface-special-highest: #9983e4;
232
+ --border-special-faint: #29005c;
233
+ --border-special-subtle: #4b009f;
234
+ --border-special: #6b34ce;
235
+ --border-special-medium: #8c5df8;
236
+ --border-special-strong: #ac93ff;
237
+ --text-special: #baa9ff;
238
+ --text-special-secondary: #8665e0;
239
+ --text-special-tertiary: #5c4e8b;
240
+ --text-special-muted: #3e3a4f;
241
+ --text-special-disabled: #303032;
242
+ --color-info-100: #b4d4ff;
243
+ --color-info-200: #76b0ff;
244
+ --color-info-300: #398efa;
245
+ --color-info-400: #0571e0;
246
+ --color-info-500: #0059b6;
247
+ --color-info-600: #00458f;
248
+ --color-info-700: #00336d;
249
+ --color-info-800: #002350;
250
+ --color-info-850: #001637;
251
+ --color-info-900: #000b23;
252
+ --color-info-950: #000413;
253
+ --surface-info-lowest: #000a21;
254
+ --surface-info-lower: #001d44;
255
+ --surface-info-low: #00316b;
256
+ --surface-info: #004894;
257
+ --surface-info-high: #36639f;
258
+ --surface-info-higher: #5d7da8;
259
+ --surface-info-highest: #8497b1;
260
+ --border-info-faint: #00204a;
261
+ --border-info-subtle: #003d81;
262
+ --border-info: #005dbd;
263
+ --border-info-medium: #007efc;
264
+ --border-info-strong: #69a9ff;
265
+ --text-info: #8fbeff;
266
+ --text-info-secondary: #2f81e8;
267
+ --text-info-tertiary: #365d90;
268
+ --text-info-muted: #344051;
269
+ --text-info-disabled: #303133;
270
+ --color-success-100: #92e9a3;
271
+ --color-success-200: #69c67e;
272
+ --color-success-300: #42a75d;
273
+ --color-success-400: #0e8c3f;
274
+ --color-success-500: #007030;
275
+ --color-success-600: #005723;
276
+ --color-success-700: #004119;
277
+ --color-success-800: #002f0f;
278
+ --color-success-850: #001e08;
279
+ --color-success-900: #001103;
280
+ --color-success-950: #000701;
281
+ --surface-success-lowest: #001003;
282
+ --surface-success-lower: #00270b;
283
+ --surface-success-low: #004018;
284
+ --surface-success: #005a25;
285
+ --surface-success-high: #007733;
286
+ --surface-success-higher: #32914d;
287
+ --surface-success-highest: #61a870;
288
+ --border-success-faint: #002a0d;
289
+ --border-success-subtle: #004e1f;
290
+ --border-success: #007532;
291
+ --border-success-medium: #069e46;
292
+ --border-success-strong: #47c46b;
293
+ --text-success: #88f2a0;
294
+ --text-success-secondary: #2f974e;
295
+ --text-success-tertiary: #31673e;
296
+ --text-success-muted: #2c4530;
297
+ --text-success-disabled: #263429;
298
+ --color-warning-100: #ffc673;
299
+ --color-warning-200: #dfa13f;
300
+ --color-warning-300: #c08100;
301
+ --color-warning-400: #9c6900;
302
+ --color-warning-500: #7d5300;
303
+ --color-warning-600: #624000;
304
+ --color-warning-700: #4a2f00;
305
+ --color-warning-800: #352000;
306
+ --color-warning-850: #231400;
307
+ --color-warning-900: #140a00;
308
+ --color-warning-950: #090300;
309
+ --surface-warning-lowest: #130900;
310
+ --surface-warning-lower: #372200;
311
+ --surface-warning-low: #613f00;
312
+ --surface-warning: #8d5e00;
313
+ --surface-warning-high: #bc7f00;
314
+ --surface-warning-higher: #eea200;
315
+ --surface-warning-highest: #ffd395;
316
+ --border-warning-faint: #301d00;
317
+ --border-warning-subtle: #573900;
318
+ --border-warning: #825600;
319
+ --border-warning-medium: #af7600;
320
+ --border-warning-strong: #df9700;
321
+ --text-warning: #ffecd2;
322
+ --text-warning-secondary: #eba633;
323
+ --text-warning-tertiary: #a17e4c;
324
+ --text-warning-muted: #685d4d;
325
+ --text-warning-disabled: #4d4b4a;
326
+ --color-danger-100: #ffbeb8;
327
+ --color-danger-200: #ff847d;
328
+ --color-danger-300: #ec5552;
329
+ --color-danger-400: #d02d33;
330
+ --color-danger-500: #b0001c;
331
+ --color-danger-600: #8a0013;
332
+ --color-danger-700: #6a000c;
333
+ --color-danger-800: #4d0006;
334
+ --color-danger-850: #350003;
335
+ --color-danger-900: #210001;
336
+ --color-danger-950: #110000;
337
+ --surface-danger-lowest: #1f0001;
338
+ --surface-danger-lower: #410004;
339
+ --surface-danger-low: #67000b;
340
+ --surface-danger: #8f0014;
341
+ --surface-danger-high: #ba001e;
342
+ --surface-danger-higher: #cf4443;
343
+ --surface-danger-highest: #df6e68;
344
+ --border-danger-faint: #470005;
345
+ --border-danger-subtle: #7c0010;
346
+ --border-danger: #b6001d;
347
+ --border-danger-medium: #ea3039;
348
+ --border-danger-strong: #ff7872;
349
+ --text-danger: #ff635f;
350
+ --text-danger-secondary: #bb292f;
351
+ --text-danger-tertiary: #813b37;
352
+ --text-danger-muted: #543b39;
353
+ --text-danger-disabled: #3c3939;
354
+ --font-display: "Arvo", serif;
355
+ --font-sans: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, sans-serif;
356
+ --font-serif: "GFS Didot", serif;
357
+ --font-mono: "fira-code", ui-monospace, "SF Mono", Menlo, Consolas, monospace, monospace;
358
+ }
359
+
360
+ /* Component aliases (production configs differing from defaults) */
361
+ :root:root {
362
+ /* badge (my-badge) */
363
+ --badge-primary-text-font-size: var(--font-size-md);
364
+ --badge-primary-text-font-weight: var(--font-weight-normal);
365
+ --badge-accent-text-font-size: var(--font-size-md);
366
+ --badge-accent-text-font-weight: var(--font-weight-normal);
367
+ --badge-neutral-text-font-size: var(--font-size-md);
368
+ --badge-neutral-text-font-weight: var(--font-weight-normal);
369
+ --badge-alternate-text-font-size: var(--font-size-md);
370
+ --badge-alternate-text-font-weight: var(--font-weight-normal);
371
+ --badge-canvas-text-font-size: var(--font-size-md);
372
+ --badge-canvas-text-font-weight: var(--font-weight-normal);
373
+ --badge-special-text-font-size: var(--font-size-md);
374
+ --badge-special-text-font-weight: var(--font-weight-normal);
375
+ --badge-success-text-font-size: var(--font-size-md);
376
+ --badge-success-text-font-weight: var(--font-weight-normal);
377
+ --badge-warning-text-font-size: var(--font-size-md);
378
+ --badge-warning-text-font-weight: var(--font-weight-normal);
379
+ --badge-danger-text-font-size: var(--font-size-md);
380
+ --badge-danger-text-font-weight: var(--font-weight-normal);
381
+ --badge-info-text-font-size: var(--font-size-md);
382
+ --badge-info-text-font-weight: var(--font-weight-normal);
383
+ --badge-primary-padding-top: var(--space-6);
384
+ --badge-accent-padding-top: var(--space-6);
385
+ --badge-neutral-padding-top: var(--space-6);
386
+ --badge-alternate-padding-top: var(--space-6);
387
+ --badge-canvas-padding-top: var(--space-6);
388
+ --badge-special-padding-top: var(--space-6);
389
+ --badge-success-padding-top: var(--space-6);
390
+ --badge-warning-padding-top: var(--space-6);
391
+ --badge-danger-padding-top: var(--space-6);
392
+ --badge-info-padding-top: var(--space-6);
393
+ --badge-primary-padding-right: var(--space-10);
394
+ --badge-accent-padding-right: var(--space-10);
395
+ --badge-neutral-padding-right: var(--space-10);
396
+ --badge-alternate-padding-right: var(--space-10);
397
+ --badge-canvas-padding-right: var(--space-10);
398
+ --badge-special-padding-right: var(--space-10);
399
+ --badge-success-padding-right: var(--space-10);
400
+ --badge-warning-padding-right: var(--space-10);
401
+ --badge-danger-padding-right: var(--space-10);
402
+ --badge-info-padding-right: var(--space-10);
403
+ --badge-primary-padding-bottom: var(--space-6);
404
+ --badge-accent-padding-bottom: var(--space-6);
405
+ --badge-neutral-padding-bottom: var(--space-6);
406
+ --badge-alternate-padding-bottom: var(--space-6);
407
+ --badge-canvas-padding-bottom: var(--space-6);
408
+ --badge-special-padding-bottom: var(--space-6);
409
+ --badge-success-padding-bottom: var(--space-6);
410
+ --badge-warning-padding-bottom: var(--space-6);
411
+ --badge-danger-padding-bottom: var(--space-6);
412
+ --badge-info-padding-bottom: var(--space-6);
413
+ --badge-primary-padding-left: var(--space-10);
414
+ --badge-accent-padding-left: var(--space-10);
415
+ --badge-neutral-padding-left: var(--space-10);
416
+ --badge-alternate-padding-left: var(--space-10);
417
+ --badge-canvas-padding-left: var(--space-10);
418
+ --badge-special-padding-left: var(--space-10);
419
+ --badge-success-padding-left: var(--space-10);
420
+ --badge-warning-padding-left: var(--space-10);
421
+ --badge-danger-padding-left: var(--space-10);
422
+ --badge-info-padding-left: var(--space-10);
423
+
424
+ /* button (my-button) */
425
+ --button-primary-text-font-size: var(--font-size-md);
426
+ --button-primary-text-font-weight: var(--font-weight-semibold);
427
+ --button-primary-radius: var(--radius-xl);
428
+ --button-primary-hover-radius: var(--radius-xl);
429
+ --button-primary-disabled-radius: var(--radius-xl);
430
+ --button-secondary-text-font-size: var(--font-size-md);
431
+ --button-secondary-text-font-weight: var(--font-weight-semibold);
432
+ --button-secondary-radius: var(--radius-xl);
433
+ --button-secondary-hover-radius: var(--radius-xl);
434
+ --button-secondary-disabled-radius: var(--radius-xl);
435
+ --button-outline-text-font-size: var(--font-size-md);
436
+ --button-outline-text-font-weight: var(--font-weight-semibold);
437
+ --button-outline-radius: var(--radius-xl);
438
+ --button-outline-hover-radius: var(--radius-xl);
439
+ --button-outline-disabled-radius: var(--radius-xl);
440
+ --button-success-text-font-size: var(--font-size-md);
441
+ --button-success-text-font-weight: var(--font-weight-semibold);
442
+ --button-success-radius: var(--radius-xl);
443
+ --button-success-hover-radius: var(--radius-xl);
444
+ --button-success-disabled-radius: var(--radius-xl);
445
+ --button-danger-text-font-size: var(--font-size-md);
446
+ --button-danger-text-font-weight: var(--font-weight-semibold);
447
+ --button-danger-radius: var(--radius-xl);
448
+ --button-danger-hover-radius: var(--radius-xl);
449
+ --button-danger-disabled-radius: var(--radius-xl);
450
+ --button-warning-text-font-size: var(--font-size-md);
451
+ --button-warning-text-font-weight: var(--font-weight-semibold);
452
+ --button-warning-radius: var(--radius-xl);
453
+ --button-warning-hover-radius: var(--radius-xl);
454
+ --button-warning-disabled-radius: var(--radius-xl);
455
+
456
+ /* sectiondivider (my-section-divider) */
457
+ --sectiondivider-lg-padding: var(--space-4);
458
+ --sectiondivider-md-padding: var(--space-4);
459
+ --sectiondivider-sm-padding: var(--space-4);
460
+ --sectiondivider-sm-title-font-size: var(--font-size-2xl);
461
+ --sectiondivider-lg-title-font-weight: var(--font-weight-bold);
462
+ --sectiondivider-md-title-font-weight: var(--font-weight-bold);
463
+ --sectiondivider-sm-title-font-weight: var(--font-weight-bold);
464
+ --sectiondivider-lg-title-line-height: var(--line-height-md);
465
+ --sectiondivider-md-title-line-height: var(--line-height-md);
466
+ --sectiondivider-sm-title-line-height: var(--line-height-md);
467
+ --sectiondivider-lg-title-letter-padding: var(--letter-spacing-normal);
468
+ --sectiondivider-md-title-letter-padding: var(--letter-spacing-normal);
469
+ --sectiondivider-sm-title-letter-padding: var(--letter-spacing-normal);
470
+ --sectiondivider-md-title-outline-width: var(--border-width-4);
471
+ --sectiondivider-sm-title-outline-width: var(--border-width-4);
472
+ --sectiondivider-md-title-outline-color: var(--surface-accent-lowest);
473
+ --sectiondivider-lg-description: var(--text-alternate);
474
+ --sectiondivider-md-description-font-size: var(--font-size-lg);
475
+ --sectiondivider-sm-description-font-size: var(--font-size-5xl);
476
+ --sectiondivider-lg-description-font-weight: var(--font-weight-medium);
477
+ --sectiondivider-md-description-font-weight: var(--font-weight-medium);
478
+ --sectiondivider-sm-description-font-weight: var(--font-weight-medium);
479
+ --sectiondivider-md-radius: var(--radius-lg);
480
+ --sectiondivider-sm-radius: var(--radius-lg);
481
+ --sectiondivider-lg-border: transparent;
482
+ --sectiondivider-md-border: transparent;
483
+ --sectiondivider-sm-border: transparent;
484
+ --sectiondivider-lg-border-width: var(--border-width-1);
485
+ --sectiondivider-md-border-width: var(--border-width-1);
486
+ --sectiondivider-sm-border-width: var(--border-width-1);
487
+ --sectiondivider-sm-hairline-color: var(--border-brand-medium);
488
+ --sectiondivider-lg-hairline-color: var(--border-brand-medium);
489
+ --sectiondivider-md-hairline-color: var(--border-brand-medium);
490
+ --sectiondivider-lg-padding-top: var(--space-8);
491
+ --sectiondivider-md-padding-top: var(--space-8);
492
+ --sectiondivider-sm-padding-top: var(--space-8);
493
+ --sectiondivider-lg-padding-right: var(--space-4);
494
+ --sectiondivider-md-padding-right: var(--space-4);
495
+ --sectiondivider-sm-padding-right: var(--space-4);
496
+ --sectiondivider-lg-padding-bottom: var(--space-8);
497
+ --sectiondivider-md-padding-bottom: var(--space-8);
498
+ --sectiondivider-sm-padding-bottom: var(--space-8);
499
+ --sectiondivider-lg-padding-left: var(--space-0);
500
+ --sectiondivider-md-padding-left: var(--space-0);
501
+ --sectiondivider-sm-padding-left: var(--space-0);
502
+ --sectiondivider-lg-description-padding-top: var(--space-0);
503
+ --sectiondivider-md-description-padding-top: var(--space-0);
504
+ --sectiondivider-sm-description-padding-top: var(--space-0);
505
+ --sectiondivider-lg-description-padding-right: var(--space-0);
506
+ --sectiondivider-md-description-padding-right: var(--space-0);
507
+ --sectiondivider-sm-description-padding-right: var(--space-0);
508
+ --sectiondivider-lg-description-padding-bottom: var(--space-10);
509
+ --sectiondivider-md-description-padding-bottom: var(--space-10);
510
+ --sectiondivider-sm-description-padding-bottom: var(--space-10);
511
+ --sectiondivider-lg-description-padding-left: var(--space-0);
512
+ --sectiondivider-md-description-padding-left: var(--space-0);
513
+ --sectiondivider-sm-description-padding-left: var(--space-0);
514
+ --sectiondivider-lg-eyebrow: var(--text-brand);
515
+ --sectiondivider-lg-align: start;
516
+ --sectiondivider-sm-align: start;
517
+ --sectiondivider-md-align: start;
518
+ --sectiondivider-lg-eyebrow-display: block;
519
+ --sectiondivider-lg-description-display: flex;
520
+ --sectiondivider-lg-hairline: below-description;
521
+ --sectiondivider-lg-eyebrow-text-transform: none;
522
+ --sectiondivider-md-description-display: none;
523
+ --sectiondivider-sm-description-display: none;
524
+ --sectiondivider-sm-hairline: below-label;
525
+ --sectiondivider-lg-background: transparent;
526
+ --sectiondivider-md-background: transparent;
527
+ --sectiondivider-sm-background: transparent;
528
+ --sectiondivider-md-hairline: below-label;
529
+ --sectiondivider-lg-title-padding: var(--space-2);
530
+ --sectiondivider-md-title-padding: var(--space-2);
531
+ --sectiondivider-sm-title-padding: var(--space-2);
532
+ --sectiondivider-lg-title-padding-top: var(--space-2);
533
+ --sectiondivider-md-title-padding-top: var(--space-2);
534
+ --sectiondivider-sm-title-padding-top: var(--space-2);
535
+ --sectiondivider-lg-title-padding-right: var(--space-2);
536
+ --sectiondivider-md-title-padding-right: var(--space-2);
537
+ --sectiondivider-sm-title-padding-right: var(--space-2);
538
+ --sectiondivider-lg-title-padding-bottom: var(--space-2);
539
+ --sectiondivider-md-title-padding-bottom: var(--space-2);
540
+ --sectiondivider-sm-title-padding-bottom: var(--space-2);
541
+ --sectiondivider-lg-title-padding-left: var(--space-2);
542
+ --sectiondivider-md-title-padding-left: var(--space-0);
543
+ --sectiondivider-sm-title-padding-left: var(--space-2);
544
+ }
@@ -1,94 +0,0 @@
1
- <script lang="ts">
2
- import { onMount, onDestroy } from 'svelte';
3
- import { CSS_VAR_CHANGE_EVENT } from '../../core/cssVarSync';
4
- import UIPaletteSelector from '../../ui/UIPaletteSelector.svelte';
5
- import UIVariantSelector from '../../ui/UIVariantSelector.svelte';
6
- import { BORDER_WIDTH, DIVIDER_HEIGHT } from '../../ui/variantScales';
7
- import FieldsetWrapper from './FieldsetWrapper.svelte';
8
-
9
-
10
- interface Props {
11
- colorVariable?: string | undefined;
12
- colorLabel?: string | undefined;
13
- widthVariable?: string | undefined;
14
- widthLabel?: string | undefined;
15
- heightVariable?: string | undefined;
16
- heightLabel?: string | undefined;
17
- /** When set, writes persist through the editor store under this component. */
18
- component?: string | undefined;
19
- }
20
-
21
- let {
22
- colorVariable = undefined,
23
- colorLabel = undefined,
24
- widthVariable = undefined,
25
- widthLabel = undefined,
26
- heightVariable = undefined,
27
- heightLabel = undefined,
28
- component = undefined
29
- }: Props = $props();
30
-
31
- let heightResolved = $state('');
32
-
33
- function readHeight() {
34
- if (!heightVariable) {
35
- heightResolved = '';
36
- return;
37
- }
38
- heightResolved = getComputedStyle(document.documentElement)
39
- .getPropertyValue(heightVariable)
40
- .trim();
41
- }
42
-
43
- function handleVarChange(e: Event) {
44
- const detail = (e as CustomEvent<{ name: string }>).detail;
45
- if (detail?.name === heightVariable) readHeight();
46
- }
47
-
48
- onMount(() => {
49
- readHeight();
50
- document.addEventListener(CSS_VAR_CHANGE_EVENT, handleVarChange);
51
- });
52
-
53
- onDestroy(() => {
54
- document.removeEventListener(CSS_VAR_CHANGE_EVENT, handleVarChange);
55
- });
56
-
57
- let heightIsZero = $derived(/^0+(?:\.0+)?(px|rem|em|%)?$/.test(heightResolved));
58
- let siblingDisabled = $derived(heightIsZero);
59
- </script>
60
-
61
- <FieldsetWrapper legend="divider">
62
- {#if colorVariable}
63
- <div class="entry">
64
- <UIPaletteSelector variable={colorVariable} {component} disabled={siblingDisabled} onchange={readHeight} />
65
- <span class="label">{colorLabel ?? ''}</span>
66
- </div>
67
- {/if}
68
- {#if widthVariable}
69
- <div class="entry">
70
- <UIVariantSelector variable={widthVariable} {component} disabled={siblingDisabled} {...BORDER_WIDTH} onchange={readHeight} />
71
- <span class="label">{widthLabel ?? ''}</span>
72
- </div>
73
- {/if}
74
- {#if heightVariable}
75
- <div class="entry">
76
- <UIVariantSelector variable={heightVariable} {component} {...DIVIDER_HEIGHT} onchange={readHeight} />
77
- <span class="label">{heightLabel ?? ''}</span>
78
- </div>
79
- {/if}
80
- </FieldsetWrapper>
81
-
82
- <style>
83
- .entry {
84
- display: flex;
85
- flex-direction: column;
86
- gap: var(--ui-space-2);
87
- }
88
-
89
- .label {
90
- font-size: var(--ui-font-size-sm);
91
- color: var(--ui-text-secondary);
92
- padding-left: var(--ui-space-2);
93
- }
94
- </style>