@motion-proto/live-tokens 0.9.0 → 0.11.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 (65) hide show
  1. package/README.md +50 -29
  2. package/dist-plugin/index.cjs +177 -125
  3. package/dist-plugin/index.d.cts +3 -2
  4. package/dist-plugin/index.d.ts +3 -2
  5. package/dist-plugin/index.js +177 -125
  6. package/package.json +4 -1
  7. package/src/editor/component-editor/BadgeEditor.svelte +44 -42
  8. package/src/editor/component-editor/ButtonEditor.svelte +224 -0
  9. package/src/editor/component-editor/CardEditor.svelte +2 -0
  10. package/src/editor/component-editor/CollapsibleSectionEditor.svelte +1 -7
  11. package/src/editor/component-editor/CornerBadgeEditor.svelte +44 -34
  12. package/src/editor/component-editor/ImageLightboxEditor.svelte +58 -0
  13. package/src/editor/component-editor/InputEditor.svelte +272 -0
  14. package/src/editor/component-editor/NotificationEditor.svelte +44 -65
  15. package/src/editor/component-editor/ProgressBarEditor.svelte +71 -87
  16. package/src/editor/component-editor/SegmentedControlEditor.svelte +98 -37
  17. package/src/editor/component-editor/SideNavigationEditor.svelte +342 -0
  18. package/src/editor/component-editor/registry.ts +35 -2
  19. package/src/editor/component-editor/scaffolding/ComponentFileManager.svelte +3 -2
  20. package/src/editor/component-editor/scaffolding/ShadowBackdrop.svelte +10 -1
  21. package/src/editor/component-editor/scaffolding/StateBlock.svelte +9 -10
  22. package/src/editor/component-editor/scaffolding/TokenLayout.svelte +60 -36
  23. package/src/editor/component-editor/scaffolding/VariantGroup.svelte +38 -1
  24. package/src/editor/component-editor/scaffolding/buildTypeGroupTokens.ts +1 -1
  25. package/src/editor/component-editor/scaffolding/siblings.ts +2 -2
  26. package/src/editor/component-editor/scaffolding/types.ts +2 -1
  27. package/src/editor/core/components/componentConfigService.ts +7 -6
  28. package/src/editor/core/manifests/manifestService.ts +5 -4
  29. package/src/editor/core/storage/apiBase.ts +15 -0
  30. package/src/editor/core/storage/files/versionedFileResourceClient.ts +1 -1
  31. package/src/editor/core/store/editorRenderer.ts +1 -4
  32. package/src/editor/core/store/editorStore.ts +5 -9
  33. package/src/editor/core/store/editorTypes.ts +6 -13
  34. package/src/editor/core/themes/migrations/2026-05-13-primary-to-brand.ts +2 -29
  35. package/src/editor/core/themes/migrations/2026-05-24-collapsiblesection-drop-active-state.ts +28 -0
  36. package/src/editor/core/themes/migrations/2026-05-24-progressbar-collapse-variants.ts +41 -0
  37. package/src/editor/core/themes/migrations/2026-05-24-promote-state-shared-tokens.ts +59 -0
  38. package/src/editor/core/themes/migrations/2026-05-24-segmentedcontrol-divider-inset.ts +29 -0
  39. package/src/editor/core/themes/migrations/2026-05-25-cornerbadge-flatten-variants.ts +46 -0
  40. package/src/editor/core/themes/migrations/2026-05-26-drop-overlay-extra-stops.ts +46 -0
  41. package/src/editor/core/themes/migrations/index.ts +16 -0
  42. package/src/editor/core/themes/slices/overlays.ts +44 -75
  43. package/src/editor/core/themes/themeInit.ts +3 -2
  44. package/src/editor/core/themes/themeService.ts +3 -2
  45. package/src/editor/ui/SurfacesTab.svelte +3 -7
  46. package/src/editor/ui/UIEasingSelector.svelte +240 -0
  47. package/src/editor/ui/UIPaddingSelector.svelte +2 -2
  48. package/src/editor/ui/UIPaletteSelector.svelte +151 -36
  49. package/src/editor/ui/{UIRelinkConfirmPopover.svelte → UIRelinkConfirmDialog.svelte} +107 -75
  50. package/src/editor/ui/UITokenSelector.svelte +15 -2
  51. package/src/editor/ui/sections/OverlaysSection.svelte +107 -540
  52. package/src/editor/ui/variantScales.ts +34 -0
  53. package/src/system/components/Button.svelte +34 -85
  54. package/src/system/components/Card.svelte +2 -1
  55. package/src/system/components/CollapsibleSection.svelte +1 -48
  56. package/src/system/components/CornerBadge.svelte +72 -138
  57. package/src/system/components/ImageLightbox.svelte +578 -0
  58. package/src/system/components/Input.svelte +387 -0
  59. package/src/system/components/ProgressBar.svelte +62 -258
  60. package/src/system/components/SegmentedControl.svelte +81 -15
  61. package/src/system/components/SideNavigation.svelte +777 -0
  62. package/src/system/components/TabBar.svelte +1 -1
  63. package/src/system/styles/tokens.css +48 -5
  64. package/src/system/styles/tokens.generated.css +33 -185
  65. package/src/editor/component-editor/StandardButtonsEditor.svelte +0 -190
@@ -37,155 +37,89 @@
37
37
 
38
38
  $variants: primary, accent, neutral, alternate, canvas, special, success, warning, danger, info;
39
39
 
40
- // Flat per-variant blocks (no @each) so extractGlobalRootBody can parse them verbatim.
41
- // Role-based radii follow badge geometry regardless of anchor:
42
- // outer = flush corner, inner = diagonal, h-axis/v-axis = edges shared with outer.
43
- // Padding + font are corner-badge-specific; defaults match Badge so unconfigured looks identical.
40
+ // Shape, offset, and type are uniform across variants one flat token set
41
+ // owns them. Colors are per-variant so authors can tune CornerBadge to read
42
+ // distinct from the inner Badge (e.g. lower contrast inside the corner).
43
+ // Defaults mirror Badge's per-variant base values; the editor's `colors` tab
44
+ // re-targets the previewed variant so authors only see 3 color rows at a
45
+ // time, scoped to whatever variant they're previewing.
44
46
  :global(:root) {
45
- /* Primary */
46
- --corner-badge-primary-margin: var(--space-0);
47
- --corner-badge-primary-outer-radius: var(--radius-none);
48
- --corner-badge-primary-inner-radius: var(--radius-none);
49
- --corner-badge-primary-h-axis-radius: var(--radius-none);
50
- --corner-badge-primary-v-axis-radius: var(--radius-none);
51
- --corner-badge-primary-padding: var(--space-6);
52
- --corner-badge-primary-text-font-family: var(--font-sans);
53
- --corner-badge-primary-text-font-size: var(--font-size-sm);
54
- --corner-badge-primary-text-font-weight: var(--font-weight-light);
55
- --corner-badge-primary-text-line-height: var(--line-height-xs);
56
-
57
- /* Accent */
58
- --corner-badge-accent-margin: var(--space-0);
59
- --corner-badge-accent-outer-radius: var(--radius-none);
60
- --corner-badge-accent-inner-radius: var(--radius-none);
61
- --corner-badge-accent-h-axis-radius: var(--radius-none);
62
- --corner-badge-accent-v-axis-radius: var(--radius-none);
63
- --corner-badge-accent-padding: var(--space-6);
64
- --corner-badge-accent-text-font-family: var(--font-sans);
65
- --corner-badge-accent-text-font-size: var(--font-size-sm);
66
- --corner-badge-accent-text-font-weight: var(--font-weight-light);
67
- --corner-badge-accent-text-line-height: var(--line-height-xs);
68
-
69
- /* Neutral */
70
- --corner-badge-neutral-margin: var(--space-0);
71
- --corner-badge-neutral-outer-radius: var(--radius-none);
72
- --corner-badge-neutral-inner-radius: var(--radius-none);
73
- --corner-badge-neutral-h-axis-radius: var(--radius-none);
74
- --corner-badge-neutral-v-axis-radius: var(--radius-none);
75
- --corner-badge-neutral-padding: var(--space-6);
76
- --corner-badge-neutral-text-font-family: var(--font-sans);
77
- --corner-badge-neutral-text-font-size: var(--font-size-sm);
78
- --corner-badge-neutral-text-font-weight: var(--font-weight-light);
79
- --corner-badge-neutral-text-line-height: var(--line-height-xs);
80
-
81
- /* Alternate */
82
- --corner-badge-alternate-margin: var(--space-0);
83
- --corner-badge-alternate-outer-radius: var(--radius-none);
84
- --corner-badge-alternate-inner-radius: var(--radius-none);
85
- --corner-badge-alternate-h-axis-radius: var(--radius-none);
86
- --corner-badge-alternate-v-axis-radius: var(--radius-none);
87
- --corner-badge-alternate-padding: var(--space-6);
88
- --corner-badge-alternate-text-font-family: var(--font-sans);
89
- --corner-badge-alternate-text-font-size: var(--font-size-sm);
90
- --corner-badge-alternate-text-font-weight: var(--font-weight-light);
91
- --corner-badge-alternate-text-line-height: var(--line-height-xs);
92
-
93
- /* Canvas */
94
- --corner-badge-canvas-margin: var(--space-0);
95
- --corner-badge-canvas-outer-radius: var(--radius-none);
96
- --corner-badge-canvas-inner-radius: var(--radius-none);
97
- --corner-badge-canvas-h-axis-radius: var(--radius-none);
98
- --corner-badge-canvas-v-axis-radius: var(--radius-none);
99
- --corner-badge-canvas-padding: var(--space-6);
100
- --corner-badge-canvas-text-font-family: var(--font-sans);
101
- --corner-badge-canvas-text-font-size: var(--font-size-sm);
102
- --corner-badge-canvas-text-font-weight: var(--font-weight-light);
103
- --corner-badge-canvas-text-line-height: var(--line-height-xs);
104
-
105
- /* Special */
106
- --corner-badge-special-margin: var(--space-0);
107
- --corner-badge-special-outer-radius: var(--radius-none);
108
- --corner-badge-special-inner-radius: var(--radius-none);
109
- --corner-badge-special-h-axis-radius: var(--radius-none);
110
- --corner-badge-special-v-axis-radius: var(--radius-none);
111
- --corner-badge-special-padding: var(--space-6);
112
- --corner-badge-special-text-font-family: var(--font-sans);
113
- --corner-badge-special-text-font-size: var(--font-size-sm);
114
- --corner-badge-special-text-font-weight: var(--font-weight-light);
115
- --corner-badge-special-text-line-height: var(--line-height-xs);
116
-
117
- /* Success */
118
- --corner-badge-success-margin: var(--space-0);
119
- --corner-badge-success-outer-radius: var(--radius-none);
120
- --corner-badge-success-inner-radius: var(--radius-none);
121
- --corner-badge-success-h-axis-radius: var(--radius-none);
122
- --corner-badge-success-v-axis-radius: var(--radius-none);
123
- --corner-badge-success-padding: var(--space-6);
124
- --corner-badge-success-text-font-family: var(--font-sans);
125
- --corner-badge-success-text-font-size: var(--font-size-sm);
126
- --corner-badge-success-text-font-weight: var(--font-weight-light);
127
- --corner-badge-success-text-line-height: var(--line-height-xs);
128
-
129
- /* Warning */
130
- --corner-badge-warning-margin: var(--space-0);
131
- --corner-badge-warning-outer-radius: var(--radius-none);
132
- --corner-badge-warning-inner-radius: var(--radius-none);
133
- --corner-badge-warning-h-axis-radius: var(--radius-none);
134
- --corner-badge-warning-v-axis-radius: var(--radius-none);
135
- --corner-badge-warning-padding: var(--space-6);
136
- --corner-badge-warning-text-font-family: var(--font-sans);
137
- --corner-badge-warning-text-font-size: var(--font-size-sm);
138
- --corner-badge-warning-text-font-weight: var(--font-weight-light);
139
- --corner-badge-warning-text-line-height: var(--line-height-xs);
140
-
141
- /* Danger */
142
- --corner-badge-danger-margin: var(--space-0);
143
- --corner-badge-danger-outer-radius: var(--radius-none);
144
- --corner-badge-danger-inner-radius: var(--radius-none);
145
- --corner-badge-danger-h-axis-radius: var(--radius-none);
146
- --corner-badge-danger-v-axis-radius: var(--radius-none);
147
- --corner-badge-danger-padding: var(--space-6);
148
- --corner-badge-danger-text-font-family: var(--font-sans);
149
- --corner-badge-danger-text-font-size: var(--font-size-sm);
150
- --corner-badge-danger-text-font-weight: var(--font-weight-light);
151
- --corner-badge-danger-text-line-height: var(--line-height-xs);
152
-
153
- /* Info */
154
- --corner-badge-info-margin: var(--space-0);
155
- --corner-badge-info-outer-radius: var(--radius-none);
156
- --corner-badge-info-inner-radius: var(--radius-none);
157
- --corner-badge-info-h-axis-radius: var(--radius-none);
158
- --corner-badge-info-v-axis-radius: var(--radius-none);
159
- --corner-badge-info-padding: var(--space-6);
160
- --corner-badge-info-text-font-family: var(--font-sans);
161
- --corner-badge-info-text-font-size: var(--font-size-sm);
162
- --corner-badge-info-text-font-weight: var(--font-weight-light);
163
- --corner-badge-info-text-line-height: var(--line-height-xs);
47
+ --corner-badge-margin: var(--space-0);
48
+ --corner-badge-outer-radius: var(--radius-none);
49
+ --corner-badge-inner-radius: var(--radius-none);
50
+ --corner-badge-h-axis-radius: var(--radius-none);
51
+ --corner-badge-v-axis-radius: var(--radius-none);
52
+ --corner-badge-padding: var(--space-6);
53
+ --corner-badge-text-font-family: var(--font-sans);
54
+ --corner-badge-text-font-size: var(--font-size-sm);
55
+ --corner-badge-text-font-weight: var(--font-weight-light);
56
+ --corner-badge-text-line-height: var(--line-height-xs);
57
+
58
+ /* Per-variant color overrides. Default = inherit the same family/level the
59
+ inner Badge uses; author can swap to a different level (e.g. -low) to
60
+ reduce contrast against the host surface. */
61
+ --corner-badge-primary-surface: var(--surface-brand);
62
+ --corner-badge-primary-border: var(--border-brand);
63
+ --corner-badge-primary-text: var(--text-brand);
64
+ --corner-badge-accent-surface: var(--surface-accent);
65
+ --corner-badge-accent-border: var(--border-accent);
66
+ --corner-badge-accent-text: var(--text-accent);
67
+ --corner-badge-neutral-surface: var(--surface-neutral);
68
+ --corner-badge-neutral-border: var(--border-neutral);
69
+ --corner-badge-neutral-text: var(--text-primary);
70
+ --corner-badge-alternate-surface: var(--surface-alternate);
71
+ --corner-badge-alternate-border: var(--border-alternate);
72
+ --corner-badge-alternate-text: var(--text-alternate);
73
+ --corner-badge-canvas-surface: var(--surface-canvas);
74
+ --corner-badge-canvas-border: var(--border-canvas);
75
+ --corner-badge-canvas-text: var(--text-canvas);
76
+ --corner-badge-special-surface: var(--surface-special);
77
+ --corner-badge-special-border: var(--border-special);
78
+ --corner-badge-special-text: var(--text-special);
79
+ --corner-badge-success-surface: var(--surface-success);
80
+ --corner-badge-success-border: var(--border-success);
81
+ --corner-badge-success-text: var(--text-success);
82
+ --corner-badge-warning-surface: var(--surface-warning);
83
+ --corner-badge-warning-border: var(--border-warning);
84
+ --corner-badge-warning-text: var(--text-warning);
85
+ --corner-badge-danger-surface: var(--surface-danger);
86
+ --corner-badge-danger-border: var(--border-danger);
87
+ --corner-badge-danger-text: var(--text-danger);
88
+ --corner-badge-info-surface: var(--surface-info);
89
+ --corner-badge-info-border: var(--border-info);
90
+ --corner-badge-info-text: var(--text-info);
164
91
  }
165
92
 
166
93
  .corner-badge {
167
94
  position: absolute;
168
95
  z-index: 1;
169
96
  pointer-events: none;
97
+ // Pull public tokens into private vars so anchor mappings below stay generic.
98
+ --_margin: var(--corner-badge-margin);
99
+ --_outer-radius: var(--corner-badge-outer-radius);
100
+ --_inner-radius: var(--corner-badge-inner-radius);
101
+ --_h-axis-radius: var(--corner-badge-h-axis-radius);
102
+ --_v-axis-radius: var(--corner-badge-v-axis-radius);
103
+
104
+ // Forward padding + font onto the inner Badge to override Badge's own
105
+ // `.badge-#{$v}` rule. Specificity (0,2,0) beats Badge's (0,1,0).
106
+ :global(.badge) {
107
+ @include themed-padding(--corner-badge-padding, $h: 2);
108
+ font-family: var(--corner-badge-text-font-family);
109
+ font-size: var(--corner-badge-text-font-size);
110
+ font-weight: var(--corner-badge-text-font-weight);
111
+ line-height: var(--corner-badge-text-line-height);
112
+ }
170
113
  }
171
114
 
172
- // Pull public tokens into private vars so anchor mappings below stay generic (avoids 4×10 rules).
173
- // Padding + font forwarded onto inner Badge to override Badge's own `.badge-#{$v}` rule.
115
+ // Per-variant color overrides: rebind Badge's per-variant CSS vars inside
116
+ // the corner-badge scope so the inner Badge picks up CornerBadge's color
117
+ // tokens without CornerBadge having to re-implement the painting rules.
174
118
  @each $v in $variants {
175
119
  .corner-badge-#{$v} {
176
- --_margin: var(--corner-badge-#{$v}-margin);
177
- --_outer-radius: var(--corner-badge-#{$v}-outer-radius);
178
- --_inner-radius: var(--corner-badge-#{$v}-inner-radius);
179
- --_h-axis-radius: var(--corner-badge-#{$v}-h-axis-radius);
180
- --_v-axis-radius: var(--corner-badge-#{$v}-v-axis-radius);
181
-
182
- :global(.badge-#{$v}) {
183
- @include themed-padding(--corner-badge-#{$v}-padding, $h: 2);
184
- font-family: var(--corner-badge-#{$v}-text-font-family);
185
- font-size: var(--corner-badge-#{$v}-text-font-size);
186
- font-weight: var(--corner-badge-#{$v}-text-font-weight);
187
- line-height: var(--corner-badge-#{$v}-text-line-height);
188
- }
120
+ --badge-#{$v}-surface: var(--corner-badge-#{$v}-surface);
121
+ --badge-#{$v}-border: var(--corner-badge-#{$v}-border);
122
+ --badge-#{$v}-text: var(--corner-badge-#{$v}-text);
189
123
  }
190
124
  }
191
125