@tensor_1/tokens 2.31.0 → 2.32.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 (38) hide show
  1. package/README.md +3 -1
  2. package/build/css/components.css +1 -1
  3. package/build/css/styles.css +1 -1
  4. package/build/css/tokens.css +66 -40
  5. package/build/tailwind/preset.cjs +15 -0
  6. package/build/tailwind/theme.css +15 -0
  7. package/build/ts/tokens.d.ts +1 -1
  8. package/build/ts/tokens.js +82 -40
  9. package/package.json +1 -1
  10. package/styles/components/alert.css +13 -2
  11. package/styles/components/calendar.css +28 -6
  12. package/styles/components/card.css +15 -1
  13. package/styles/components/combobox.css +26 -2
  14. package/styles/components/dashboard-grid.css +87 -0
  15. package/styles/components/date-range-picker.css +36 -4
  16. package/styles/components/file-upload.css +11 -4
  17. package/styles/components/labels.css +2 -1
  18. package/styles/components/list.css +2 -2
  19. package/styles/components/menu.css +7 -0
  20. package/styles/components/meter.css +5 -0
  21. package/styles/components/pipeline.css +2 -2
  22. package/styles/components/rule-builder.css +2 -0
  23. package/styles/components/scheduling-calendar.css +148 -22
  24. package/styles/components/segmented.css +2 -1
  25. package/styles/components/select.css +88 -1
  26. package/styles/components/sla.css +1 -1
  27. package/styles/components/spinner.css +2 -0
  28. package/styles/components/stat-tile.css +1 -1
  29. package/styles/components/status-pill.css +10 -2
  30. package/styles/components/steps.css +12 -0
  31. package/styles/components/table-toolbar.css +14 -7
  32. package/styles/components/tag-input.css +14 -5
  33. package/styles/components/text-diff.css +50 -0
  34. package/styles/components/toast.css +2 -2
  35. package/styles/components/view-menu.css +7 -2
  36. package/tokens/base/color.json +23 -8
  37. package/tokens/base/size.json +1 -0
  38. package/tokens/dark/color.json +43 -32
@@ -29,6 +29,7 @@
29
29
  --uix-success: #047857;
30
30
  --uix-success-fg: #FFFFFF;
31
31
  --uix-success-bg: #D0FAE5;
32
+ --uix-success-text: var(--uix-success);
32
33
  --uix-warning: #F99C00;
33
34
  --uix-warning-fg: #1A1A1A;
34
35
  --uix-warning-bg: #FEF3D6;
@@ -64,15 +65,28 @@
64
65
  --uix-warning-solid: #F59E0B;
65
66
  --uix-info-solid: #2563EB;
66
67
  --uix-danger-solid: #EF4444;
67
- --uix-chart-1: #2563EB;
68
- --uix-chart-2: #0891B2;
69
- --uix-chart-3: #16A34A;
70
- --uix-chart-4: #F59E0B;
71
- --uix-chart-5: #EA580C;
72
- --uix-chart-6: #E11D48;
73
- --uix-chart-7: #7C3AED;
74
- --uix-chart-8: #DB2777;
68
+ --uix-neutral-solid: #8A8A8A;
69
+ --uix-neutral-text: var(--uix-text-hushed);
70
+ --uix-neutral-bg: var(--uix-bg-active);
71
+ --uix-neutral-border: var(--uix-border-strong);
72
+ --uix-chart-1: #0455E6;
73
+ --uix-chart-2: #249BC8;
74
+ --uix-chart-3: #06A543;
75
+ --uix-chart-4: #905709;
76
+ --uix-chart-5: #F25C1B;
77
+ --uix-chart-6: #B00825;
78
+ --uix-chart-7: #8143E6;
79
+ --uix-chart-8: #DB2579;
75
80
  --uix-chart-neutral: #64748B;
81
+ --uix-chart-grid: #EDEDED;
82
+ --uix-chart-axis: #D4D4D4;
83
+ --uix-chart-reference: #525252;
84
+ --uix-chart-zone-warning: rgba(217,119,6,.10);
85
+ --uix-chart-zone-danger: rgba(228,0,20,.07);
86
+ --uix-chart-forecast-band: rgba(10,10,10,.06);
87
+ --uix-chart-event: #737373;
88
+ --uix-chart-partial: rgba(10,10,10,.10);
89
+ --uix-chart-comparison: #B8B8B8;
76
90
  --uix-row: #FFFFFF;
77
91
  --uix-row-alt: #FAFAFA;
78
92
  --uix-row-pinned-bg: #F4F7FF;
@@ -107,6 +121,7 @@
107
121
  --uix-radius-sm: 8px;
108
122
  --uix-radius-md: 12px;
109
123
  --uix-radius-lg: 16px;
124
+ --uix-radius-xl: 24px;
110
125
  --uix-radius-pill: 999px;
111
126
  --uix-row-h: 56px;
112
127
  --uix-row-h-compact: 44px;
@@ -179,47 +194,58 @@
179
194
  --uix-accent-text: color-mix(in srgb, var(--uix-accent) 70%, #FFFFFF);
180
195
  --uix-ring: var(--uix-brand,#3080FF);
181
196
  --uix-brand-muted: color-mix(in srgb, var(--uix-accent) 16%, transparent);
182
- --uix-success: #00D294;
197
+ --uix-success: #49AF7E;
183
198
  --uix-success-fg: #002C22;
184
- --uix-success-bg: rgba(0,210,148,.15);
185
- --uix-warning: #FCBB00;
199
+ --uix-success-bg: rgba(73,175,126,.12);
200
+ --uix-success-text: #7CC79F;
201
+ --uix-warning: #D7B672;
186
202
  --uix-warning-fg: #1A1A1A;
187
- --uix-warning-bg: rgba(249,156,0,.16);
203
+ --uix-warning-bg: rgba(217,164,64,.12);
188
204
  --uix-warning-border: #CA8A04;
189
- --uix-warning-text: var(--uix-warning,#FCBB00);
205
+ --uix-warning-text: var(--uix-warning,#D7B672);
190
206
  --uix-info: #2563EB;
191
207
  --uix-info-fg: #FFFFFF;
192
- --uix-info-bg: rgba(48,128,255,.16);
193
- --uix-info-text: #60A5FA;
194
- --uix-danger: #DC2626;
208
+ --uix-info-bg: rgba(98,147,219,.12);
209
+ --uix-info-text: #8DB4E7;
210
+ --uix-danger: #BE3A41;
195
211
  --uix-danger-fg: #FFFFFF;
196
- --uix-danger-bg: rgba(220,38,38,.20);
197
- --uix-danger-border: #DC2626;
198
- --uix-danger-text: #F87171;
212
+ --uix-danger-bg: rgba(218,108,108,.12);
213
+ --uix-danger-border: #DA6C6C;
214
+ --uix-danger-text: #E69593;
199
215
  --uix-amber: #E6B25C;
200
- --uix-amber-text: #E6B25C;
216
+ --uix-amber-text: #DDB370;
201
217
  --uix-amber-bg: rgba(201,138,30,.14);
202
- --uix-attention: #FB923C;
203
- --uix-attention-bg: rgba(234,88,12,.16);
204
- --uix-attention-text: #FDBA74;
205
- --uix-attention-solid: #F97316;
206
- --uix-overdue: #F87171;
207
- --uix-overdue-bg: rgba(220,38,38,.18);
208
- --uix-overdue-text: #FCA5A5;
209
- --uix-overdue-solid: #F87171;
210
- --uix-success-solid: #34D399;
211
- --uix-warning-solid: #FBBF24;
212
- --uix-info-solid: #3B82F6;
213
- --uix-danger-solid: #F87171;
214
- --uix-chart-1: #3080FF;
215
- --uix-chart-2: #00C2B0;
216
- --uix-chart-3: #00D294;
217
- --uix-chart-4: #FCBB00;
218
- --uix-chart-5: #FF8B1A;
219
- --uix-chart-6: #FF6568;
220
- --uix-chart-7: #A685FF;
221
- --uix-chart-8: #FF667F;
218
+ --uix-attention: #DD854C;
219
+ --uix-attention-bg: rgba(221,133,76,.12);
220
+ --uix-attention-text: #DFA779;
221
+ --uix-attention-solid: #DD854C;
222
+ --uix-overdue: #DA6C6C;
223
+ --uix-overdue-bg: rgba(218,108,108,.12);
224
+ --uix-overdue-text: #E89D9F;
225
+ --uix-overdue-solid: #DA6C6C;
226
+ --uix-success-solid: #49AF7E;
227
+ --uix-warning-solid: #D9A440;
228
+ --uix-info-solid: #6293DB;
229
+ --uix-danger-solid: #DA6C6C;
230
+ --uix-neutral-solid: #868686;
231
+ --uix-chart-1: #3280FC;
232
+ --uix-chart-2: #15A7A4;
233
+ --uix-chart-3: #127A3D;
234
+ --uix-chart-4: #AB9017;
235
+ --uix-chart-5: #8F530C;
236
+ --uix-chart-6: #CD766F;
237
+ --uix-chart-7: #9A77F4;
238
+ --uix-chart-8: #FB416A;
222
239
  --uix-chart-neutral: #A1A1A1;
240
+ --uix-chart-grid: #232323;
241
+ --uix-chart-axis: #3A3A3A;
242
+ --uix-chart-reference: #B3B3B3;
243
+ --uix-chart-zone-warning: rgba(217,164,64,.10);
244
+ --uix-chart-zone-danger: rgba(218,108,108,.10);
245
+ --uix-chart-forecast-band: rgba(250,250,250,.06);
246
+ --uix-chart-event: #8C8C8C;
247
+ --uix-chart-partial: rgba(250,250,250,.12);
248
+ --uix-chart-comparison: #5C5C5C;
223
249
  --uix-row: #111111;
224
250
  --uix-row-alt: #161616;
225
251
  --uix-row-pinned-bg: rgba(48,128,255,.08);
@@ -30,6 +30,7 @@ module.exports = {
30
30
  "uix-success": "var(--uix-success)",
31
31
  "uix-success-fg": "var(--uix-success-fg)",
32
32
  "uix-success-bg": "var(--uix-success-bg)",
33
+ "uix-success-text": "var(--uix-success-text)",
33
34
  "uix-warning": "var(--uix-warning)",
34
35
  "uix-warning-fg": "var(--uix-warning-fg)",
35
36
  "uix-warning-bg": "var(--uix-warning-bg)",
@@ -65,6 +66,10 @@ module.exports = {
65
66
  "uix-warning-solid": "var(--uix-warning-solid)",
66
67
  "uix-info-solid": "var(--uix-info-solid)",
67
68
  "uix-danger-solid": "var(--uix-danger-solid)",
69
+ "uix-neutral-solid": "var(--uix-neutral-solid)",
70
+ "uix-neutral-text": "var(--uix-neutral-text)",
71
+ "uix-neutral-bg": "var(--uix-neutral-bg)",
72
+ "uix-neutral-border": "var(--uix-neutral-border)",
68
73
  "uix-chart-1": "var(--uix-chart-1)",
69
74
  "uix-chart-2": "var(--uix-chart-2)",
70
75
  "uix-chart-3": "var(--uix-chart-3)",
@@ -74,6 +79,15 @@ module.exports = {
74
79
  "uix-chart-7": "var(--uix-chart-7)",
75
80
  "uix-chart-8": "var(--uix-chart-8)",
76
81
  "uix-chart-neutral": "var(--uix-chart-neutral)",
82
+ "uix-chart-grid": "var(--uix-chart-grid)",
83
+ "uix-chart-axis": "var(--uix-chart-axis)",
84
+ "uix-chart-reference": "var(--uix-chart-reference)",
85
+ "uix-chart-zone-warning": "var(--uix-chart-zone-warning)",
86
+ "uix-chart-zone-danger": "var(--uix-chart-zone-danger)",
87
+ "uix-chart-forecast-band": "var(--uix-chart-forecast-band)",
88
+ "uix-chart-event": "var(--uix-chart-event)",
89
+ "uix-chart-partial": "var(--uix-chart-partial)",
90
+ "uix-chart-comparison": "var(--uix-chart-comparison)",
77
91
  "uix-row": "var(--uix-row)",
78
92
  "uix-row-alt": "var(--uix-row-alt)",
79
93
  "uix-row-pinned-bg": "var(--uix-row-pinned-bg)",
@@ -89,6 +103,7 @@ module.exports = {
89
103
  "uix-sm": "var(--uix-radius-sm)",
90
104
  "uix-md": "var(--uix-radius-md)",
91
105
  "uix-lg": "var(--uix-radius-lg)",
106
+ "uix-xl": "var(--uix-radius-xl)",
92
107
  "uix-pill": "var(--uix-radius-pill)",
93
108
  },
94
109
  fontFamily: {
@@ -27,6 +27,7 @@
27
27
  --color-uix-success: var(--uix-success);
28
28
  --color-uix-success-fg: var(--uix-success-fg);
29
29
  --color-uix-success-bg: var(--uix-success-bg);
30
+ --color-uix-success-text: var(--uix-success-text);
30
31
  --color-uix-warning: var(--uix-warning);
31
32
  --color-uix-warning-fg: var(--uix-warning-fg);
32
33
  --color-uix-warning-bg: var(--uix-warning-bg);
@@ -62,6 +63,10 @@
62
63
  --color-uix-warning-solid: var(--uix-warning-solid);
63
64
  --color-uix-info-solid: var(--uix-info-solid);
64
65
  --color-uix-danger-solid: var(--uix-danger-solid);
66
+ --color-uix-neutral-solid: var(--uix-neutral-solid);
67
+ --color-uix-neutral-text: var(--uix-neutral-text);
68
+ --color-uix-neutral-bg: var(--uix-neutral-bg);
69
+ --color-uix-neutral-border: var(--uix-neutral-border);
65
70
  --color-uix-chart-1: var(--uix-chart-1);
66
71
  --color-uix-chart-2: var(--uix-chart-2);
67
72
  --color-uix-chart-3: var(--uix-chart-3);
@@ -71,6 +76,15 @@
71
76
  --color-uix-chart-7: var(--uix-chart-7);
72
77
  --color-uix-chart-8: var(--uix-chart-8);
73
78
  --color-uix-chart-neutral: var(--uix-chart-neutral);
79
+ --color-uix-chart-grid: var(--uix-chart-grid);
80
+ --color-uix-chart-axis: var(--uix-chart-axis);
81
+ --color-uix-chart-reference: var(--uix-chart-reference);
82
+ --color-uix-chart-zone-warning: var(--uix-chart-zone-warning);
83
+ --color-uix-chart-zone-danger: var(--uix-chart-zone-danger);
84
+ --color-uix-chart-forecast-band: var(--uix-chart-forecast-band);
85
+ --color-uix-chart-event: var(--uix-chart-event);
86
+ --color-uix-chart-partial: var(--uix-chart-partial);
87
+ --color-uix-chart-comparison: var(--uix-chart-comparison);
74
88
  --color-uix-row: var(--uix-row);
75
89
  --color-uix-row-alt: var(--uix-row-alt);
76
90
  --color-uix-row-pinned-bg: var(--uix-row-pinned-bg);
@@ -85,6 +99,7 @@
85
99
  --radius-uix-sm: var(--uix-radius-sm);
86
100
  --radius-uix-md: var(--uix-radius-md);
87
101
  --radius-uix-lg: var(--uix-radius-lg);
102
+ --radius-uix-xl: var(--uix-radius-xl);
88
103
  --radius-uix-pill: var(--uix-radius-pill);
89
104
 
90
105
  --font-uix-sans: var(--uix-font-sans);
@@ -1,5 +1,5 @@
1
1
  /* GENERATED — do not edit. */
2
- export type UixTokenName = "bg-app" | "bg-subtle" | "bg-hover" | "bg-active" | "surface" | "surface-2" | "surface-3" | "border" | "border-strong" | "text" | "text-hushed" | "text-muted" | "text-reverse" | "text-hushed-reverse" | "accent" | "accent-dark" | "accent-light" | "accent-hover" | "accent-fg" | "link" | "accent-text" | "ring" | "brand-muted" | "success" | "success-fg" | "success-bg" | "warning" | "warning-fg" | "warning-bg" | "warning-text" | "warning-border" | "info" | "info-fg" | "info-bg" | "info-text" | "danger" | "danger-fg" | "danger-bg" | "danger-border" | "danger-text" | "amber" | "amber-text" | "amber-bg" | "attention" | "attention-bg" | "attention-text" | "attention-solid" | "overdue" | "overdue-bg" | "overdue-text" | "overdue-solid" | "sev-4" | "sev-4-bg" | "sev-4-text" | "sev-5" | "sev-5-bg" | "sev-5-text" | "success-solid" | "warning-solid" | "info-solid" | "danger-solid" | "chart-1" | "chart-2" | "chart-3" | "chart-4" | "chart-5" | "chart-6" | "chart-7" | "chart-8" | "chart-neutral" | "row" | "row-alt" | "row-pinned-bg" | "row-selected-bg" | "scrollbar-thumb" | "scrollbar-thumb-hover" | "scrollbar-track" | "scrim" | "scrim-strong" | "shadow-sm" | "shadow-md" | "shadow-popover" | "shadow-overlay" | "highlight-top" | "ease-out" | "ease-out-strong" | "ease-in" | "ease-in-out" | "ease-spring" | "dur-fast" | "dur" | "dur-slow" | "dur-slower" | "lift" | "z-raised" | "z-sticky" | "z-dropdown" | "z-overlay" | "z-tooltip" | "z-toast" | "radius-xs" | "radius-sm" | "radius-md" | "radius-lg" | "radius-pill" | "row-h" | "row-h-compact" | "row-h-comfortable" | "control-h" | "sidebar-w" | "sidebar-w-rail" | "topbar-h" | "scrollbar-size" | "icon-sm" | "icon-md" | "icon-lg" | "peek-w" | "col-w-xs" | "col-w-sm" | "col-w-md" | "col-w-lg" | "col-w-xl" | "col-title-min" | "space-0" | "space-1" | "space-2" | "space-3" | "space-4" | "space-5" | "space-6" | "space-7" | "space-8" | "space-9" | "space-10" | "space-11" | "space-12" | "font-sans" | "font-heading" | "font-mono" | "text-display" | "leading-display" | "text-data-hero" | "leading-data-hero" | "text-h2" | "leading-h2" | "text-h3" | "leading-h3" | "text-body" | "leading-body" | "text-meta" | "leading-meta" | "text-eyebrow" | "leading-eyebrow" | "tracking-tight" | "tracking-eyebrow";
2
+ export type UixTokenName = "bg-app" | "bg-subtle" | "bg-hover" | "bg-active" | "surface" | "surface-2" | "surface-3" | "border" | "border-strong" | "text" | "text-hushed" | "text-muted" | "text-reverse" | "text-hushed-reverse" | "accent" | "accent-dark" | "accent-light" | "accent-hover" | "accent-fg" | "link" | "accent-text" | "ring" | "brand-muted" | "success" | "success-fg" | "success-bg" | "success-text" | "warning" | "warning-fg" | "warning-bg" | "warning-text" | "warning-border" | "info" | "info-fg" | "info-bg" | "info-text" | "danger" | "danger-fg" | "danger-bg" | "danger-border" | "danger-text" | "amber" | "amber-text" | "amber-bg" | "attention" | "attention-bg" | "attention-text" | "attention-solid" | "overdue" | "overdue-bg" | "overdue-text" | "overdue-solid" | "sev-4" | "sev-4-bg" | "sev-4-text" | "sev-5" | "sev-5-bg" | "sev-5-text" | "success-solid" | "warning-solid" | "info-solid" | "danger-solid" | "neutral-solid" | "neutral-text" | "neutral-bg" | "neutral-border" | "chart-1" | "chart-2" | "chart-3" | "chart-4" | "chart-5" | "chart-6" | "chart-7" | "chart-8" | "chart-neutral" | "chart-grid" | "chart-axis" | "chart-reference" | "chart-zone-warning" | "chart-zone-danger" | "chart-forecast-band" | "chart-event" | "chart-partial" | "chart-comparison" | "row" | "row-alt" | "row-pinned-bg" | "row-selected-bg" | "scrollbar-thumb" | "scrollbar-thumb-hover" | "scrollbar-track" | "scrim" | "scrim-strong" | "shadow-sm" | "shadow-md" | "shadow-popover" | "shadow-overlay" | "highlight-top" | "ease-out" | "ease-out-strong" | "ease-in" | "ease-in-out" | "ease-spring" | "dur-fast" | "dur" | "dur-slow" | "dur-slower" | "lift" | "z-raised" | "z-sticky" | "z-dropdown" | "z-overlay" | "z-tooltip" | "z-toast" | "radius-xs" | "radius-sm" | "radius-md" | "radius-lg" | "radius-xl" | "radius-pill" | "row-h" | "row-h-compact" | "row-h-comfortable" | "control-h" | "sidebar-w" | "sidebar-w-rail" | "topbar-h" | "scrollbar-size" | "icon-sm" | "icon-md" | "icon-lg" | "peek-w" | "col-w-xs" | "col-w-sm" | "col-w-md" | "col-w-lg" | "col-w-xl" | "col-title-min" | "space-0" | "space-1" | "space-2" | "space-3" | "space-4" | "space-5" | "space-6" | "space-7" | "space-8" | "space-9" | "space-10" | "space-11" | "space-12" | "font-sans" | "font-heading" | "font-mono" | "text-display" | "leading-display" | "text-data-hero" | "leading-data-hero" | "text-h2" | "leading-h2" | "text-h3" | "leading-h3" | "text-body" | "leading-body" | "text-meta" | "leading-meta" | "text-eyebrow" | "leading-eyebrow" | "tracking-tight" | "tracking-eyebrow";
3
3
  export declare const cssVar: Record<UixTokenName, string>;
4
4
  export declare const light: Record<UixTokenName, string>;
5
5
  export declare const dark: Partial<Record<UixTokenName, string>>;
@@ -30,6 +30,7 @@ export const cssVar = {
30
30
  "success": "var(--uix-success)",
31
31
  "success-fg": "var(--uix-success-fg)",
32
32
  "success-bg": "var(--uix-success-bg)",
33
+ "success-text": "var(--uix-success-text)",
33
34
  "warning": "var(--uix-warning)",
34
35
  "warning-fg": "var(--uix-warning-fg)",
35
36
  "warning-bg": "var(--uix-warning-bg)",
@@ -65,6 +66,10 @@ export const cssVar = {
65
66
  "warning-solid": "var(--uix-warning-solid)",
66
67
  "info-solid": "var(--uix-info-solid)",
67
68
  "danger-solid": "var(--uix-danger-solid)",
69
+ "neutral-solid": "var(--uix-neutral-solid)",
70
+ "neutral-text": "var(--uix-neutral-text)",
71
+ "neutral-bg": "var(--uix-neutral-bg)",
72
+ "neutral-border": "var(--uix-neutral-border)",
68
73
  "chart-1": "var(--uix-chart-1)",
69
74
  "chart-2": "var(--uix-chart-2)",
70
75
  "chart-3": "var(--uix-chart-3)",
@@ -74,6 +79,15 @@ export const cssVar = {
74
79
  "chart-7": "var(--uix-chart-7)",
75
80
  "chart-8": "var(--uix-chart-8)",
76
81
  "chart-neutral": "var(--uix-chart-neutral)",
82
+ "chart-grid": "var(--uix-chart-grid)",
83
+ "chart-axis": "var(--uix-chart-axis)",
84
+ "chart-reference": "var(--uix-chart-reference)",
85
+ "chart-zone-warning": "var(--uix-chart-zone-warning)",
86
+ "chart-zone-danger": "var(--uix-chart-zone-danger)",
87
+ "chart-forecast-band": "var(--uix-chart-forecast-band)",
88
+ "chart-event": "var(--uix-chart-event)",
89
+ "chart-partial": "var(--uix-chart-partial)",
90
+ "chart-comparison": "var(--uix-chart-comparison)",
77
91
  "row": "var(--uix-row)",
78
92
  "row-alt": "var(--uix-row-alt)",
79
93
  "row-pinned-bg": "var(--uix-row-pinned-bg)",
@@ -108,6 +122,7 @@ export const cssVar = {
108
122
  "radius-sm": "var(--uix-radius-sm)",
109
123
  "radius-md": "var(--uix-radius-md)",
110
124
  "radius-lg": "var(--uix-radius-lg)",
125
+ "radius-xl": "var(--uix-radius-xl)",
111
126
  "radius-pill": "var(--uix-radius-pill)",
112
127
  "row-h": "var(--uix-row-h)",
113
128
  "row-h-compact": "var(--uix-row-h-compact)",
@@ -188,6 +203,7 @@ export const light = {
188
203
  "success": "#047857",
189
204
  "success-fg": "#FFFFFF",
190
205
  "success-bg": "#D0FAE5",
206
+ "success-text": "var(--uix-success)",
191
207
  "warning": "#F99C00",
192
208
  "warning-fg": "#1A1A1A",
193
209
  "warning-bg": "#FEF3D6",
@@ -223,15 +239,28 @@ export const light = {
223
239
  "warning-solid": "#F59E0B",
224
240
  "info-solid": "#2563EB",
225
241
  "danger-solid": "#EF4444",
226
- "chart-1": "#2563EB",
227
- "chart-2": "#0891B2",
228
- "chart-3": "#16A34A",
229
- "chart-4": "#F59E0B",
230
- "chart-5": "#EA580C",
231
- "chart-6": "#E11D48",
232
- "chart-7": "#7C3AED",
233
- "chart-8": "#DB2777",
242
+ "neutral-solid": "#8A8A8A",
243
+ "neutral-text": "var(--uix-text-hushed)",
244
+ "neutral-bg": "var(--uix-bg-active)",
245
+ "neutral-border": "var(--uix-border-strong)",
246
+ "chart-1": "#0455E6",
247
+ "chart-2": "#249BC8",
248
+ "chart-3": "#06A543",
249
+ "chart-4": "#905709",
250
+ "chart-5": "#F25C1B",
251
+ "chart-6": "#B00825",
252
+ "chart-7": "#8143E6",
253
+ "chart-8": "#DB2579",
234
254
  "chart-neutral": "#64748B",
255
+ "chart-grid": "#EDEDED",
256
+ "chart-axis": "#D4D4D4",
257
+ "chart-reference": "#525252",
258
+ "chart-zone-warning": "rgba(217,119,6,.10)",
259
+ "chart-zone-danger": "rgba(228,0,20,.07)",
260
+ "chart-forecast-band": "rgba(10,10,10,.06)",
261
+ "chart-event": "#737373",
262
+ "chart-partial": "rgba(10,10,10,.10)",
263
+ "chart-comparison": "#B8B8B8",
235
264
  "row": "#FFFFFF",
236
265
  "row-alt": "#FAFAFA",
237
266
  "row-pinned-bg": "#F4F7FF",
@@ -266,6 +295,7 @@ export const light = {
266
295
  "radius-sm": "8px",
267
296
  "radius-md": "12px",
268
297
  "radius-lg": "16px",
298
+ "radius-xl": "24px",
269
299
  "radius-pill": "999px",
270
300
  "row-h": "56px",
271
301
  "row-h-compact": "44px",
@@ -338,47 +368,58 @@ export const dark = {
338
368
  "accent-text": "color-mix(in srgb, var(--uix-accent) 70%, #FFFFFF)",
339
369
  "ring": "#3080FF",
340
370
  "brand-muted": "color-mix(in srgb, var(--uix-accent) 16%, transparent)",
341
- "success": "#00D294",
371
+ "success": "#49AF7E",
342
372
  "success-fg": "#002C22",
343
- "success-bg": "rgba(0,210,148,.15)",
344
- "warning": "#FCBB00",
373
+ "success-bg": "rgba(73,175,126,.12)",
374
+ "success-text": "#7CC79F",
375
+ "warning": "#D7B672",
345
376
  "warning-fg": "#1A1A1A",
346
- "warning-bg": "rgba(249,156,0,.16)",
377
+ "warning-bg": "rgba(217,164,64,.12)",
347
378
  "warning-border": "#CA8A04",
348
- "warning-text": "#FCBB00",
379
+ "warning-text": "#D7B672",
349
380
  "info": "#2563EB",
350
381
  "info-fg": "#FFFFFF",
351
- "info-bg": "rgba(48,128,255,.16)",
352
- "info-text": "#60A5FA",
353
- "danger": "#DC2626",
382
+ "info-bg": "rgba(98,147,219,.12)",
383
+ "info-text": "#8DB4E7",
384
+ "danger": "#BE3A41",
354
385
  "danger-fg": "#FFFFFF",
355
- "danger-bg": "rgba(220,38,38,.20)",
356
- "danger-border": "#DC2626",
357
- "danger-text": "#F87171",
386
+ "danger-bg": "rgba(218,108,108,.12)",
387
+ "danger-border": "#DA6C6C",
388
+ "danger-text": "#E69593",
358
389
  "amber": "#E6B25C",
359
- "amber-text": "#E6B25C",
390
+ "amber-text": "#DDB370",
360
391
  "amber-bg": "rgba(201,138,30,.14)",
361
- "attention": "#FB923C",
362
- "attention-bg": "rgba(234,88,12,.16)",
363
- "attention-text": "#FDBA74",
364
- "attention-solid": "#F97316",
365
- "overdue": "#F87171",
366
- "overdue-bg": "rgba(220,38,38,.18)",
367
- "overdue-text": "#FCA5A5",
368
- "overdue-solid": "#F87171",
369
- "success-solid": "#34D399",
370
- "warning-solid": "#FBBF24",
371
- "info-solid": "#3B82F6",
372
- "danger-solid": "#F87171",
373
- "chart-1": "#3080FF",
374
- "chart-2": "#00C2B0",
375
- "chart-3": "#00D294",
376
- "chart-4": "#FCBB00",
377
- "chart-5": "#FF8B1A",
378
- "chart-6": "#FF6568",
379
- "chart-7": "#A685FF",
380
- "chart-8": "#FF667F",
392
+ "attention": "#DD854C",
393
+ "attention-bg": "rgba(221,133,76,.12)",
394
+ "attention-text": "#DFA779",
395
+ "attention-solid": "#DD854C",
396
+ "overdue": "#DA6C6C",
397
+ "overdue-bg": "rgba(218,108,108,.12)",
398
+ "overdue-text": "#E89D9F",
399
+ "overdue-solid": "#DA6C6C",
400
+ "success-solid": "#49AF7E",
401
+ "warning-solid": "#D9A440",
402
+ "info-solid": "#6293DB",
403
+ "danger-solid": "#DA6C6C",
404
+ "neutral-solid": "#868686",
405
+ "chart-1": "#3280FC",
406
+ "chart-2": "#15A7A4",
407
+ "chart-3": "#127A3D",
408
+ "chart-4": "#AB9017",
409
+ "chart-5": "#8F530C",
410
+ "chart-6": "#CD766F",
411
+ "chart-7": "#9A77F4",
412
+ "chart-8": "#FB416A",
381
413
  "chart-neutral": "#A1A1A1",
414
+ "chart-grid": "#232323",
415
+ "chart-axis": "#3A3A3A",
416
+ "chart-reference": "#B3B3B3",
417
+ "chart-zone-warning": "rgba(217,164,64,.10)",
418
+ "chart-zone-danger": "rgba(218,108,108,.10)",
419
+ "chart-forecast-band": "rgba(250,250,250,.06)",
420
+ "chart-event": "#8C8C8C",
421
+ "chart-partial": "rgba(250,250,250,.12)",
422
+ "chart-comparison": "#5C5C5C",
382
423
  "row": "#111111",
383
424
  "row-alt": "#161616",
384
425
  "row-pinned-bg": "rgba(48,128,255,.08)",
@@ -398,6 +439,7 @@ export const num = {
398
439
  "radius-sm": 8,
399
440
  "radius-md": 12,
400
441
  "radius-lg": 16,
442
+ "radius-xl": 24,
401
443
  "radius-pill": 999,
402
444
  "row-h": 56,
403
445
  "row-h-compact": 44,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tensor_1/tokens",
3
- "version": "2.31.0",
3
+ "version": "2.32.0",
4
4
  "description": "UIx v2 design tokens — the --uix-* contract for house products (Tensor, POSx, SHOPx). One DTCG source -> CSS variables, Tailwind theme, and typed TS constants.",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -10,7 +10,18 @@
10
10
  .uix-alert__title { font-weight: 600; margin-bottom: var(--uix-space-1); }
11
11
  .uix-alert__body { font-size: var(--uix-text-meta); color: var(--uix-text-hushed); }
12
12
  .uix-alert--info { --tone-bg: var(--uix-info-bg); --tone-border: color-mix(in srgb, var(--uix-info) 30%, transparent); --tone-fg: var(--uix-info-text); }
13
- .uix-alert--success { --tone-bg: var(--uix-success-bg); --tone-border: color-mix(in srgb, var(--uix-success) 30%, transparent); --tone-fg: var(--uix-success); }
14
- .uix-alert--warning { --tone-bg: var(--uix-warning-bg); --tone-border: color-mix(in srgb, var(--uix-warning) 40%, transparent); --tone-fg: var(--uix-warning); }
13
+ .uix-alert--success { --tone-bg: var(--uix-success-bg); --tone-border: color-mix(in srgb, var(--uix-success) 30%, transparent); --tone-fg: var(--uix-success-text); }
14
+ .uix-alert--warning { --tone-bg: var(--uix-warning-bg); --tone-border: color-mix(in srgb, var(--uix-warning) 40%, transparent); --tone-fg: var(--uix-warning-text); }
15
15
  .uix-alert--danger { --tone-bg: var(--uix-danger-bg); --tone-border: color-mix(in srgb, var(--uix-danger) 30%, transparent); --tone-fg: var(--uix-danger-text); }
16
16
  }
17
+
18
+ /* HAR-1614: the text column takes the free width and may shrink below its longest word, so a
19
+ long title wraps at 320 px instead of pushing the row wide; actions and the dismiss button
20
+ keep their size at the end. */
21
+ @layer uix.components {
22
+ /* anywhere, not break-word: only `anywhere` lowers the min-content width, and with a grid or flex
23
+ parent that is what decides whether one long word (a file name, a URL) widens the whole alert. */
24
+ .uix-alert__content { flex: 1 1 0; min-width: 0; overflow-wrap: anywhere; }
25
+ .uix-alert__actions { display: flex; flex: none; flex-wrap: wrap; align-items: flex-start; gap: var(--uix-space-2); }
26
+ .uix-alert__dismiss { flex: none; align-self: flex-start; margin-block: calc(-1 * var(--uix-space-1) / 2); margin-inline-end: calc(-1 * var(--uix-space-1)); color: var(--uix-text-hushed); }
27
+ }
@@ -2,12 +2,34 @@
2
2
  @layer uix.components {
3
3
  .uix-calendar { width: 280px; border: 1px solid var(--uix-border); border-radius: var(--uix-radius-lg); background: var(--uix-surface); padding: var(--uix-space-3); }
4
4
  .uix-calendar__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--uix-space-2); font-weight: 600; font-size: var(--uix-text-body); }
5
- .uix-calendar__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: var(--uix-space-1); }
5
+ .uix-calendar__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: var(--uix-space-1) 0; }
6
6
  .uix-calendar__dow { text-align: center; font-size: var(--uix-text-eyebrow); color: var(--uix-text-muted); padding: var(--uix-space-1) 0; }
7
- .uix-calendar__day { aspect-ratio: 1; display: grid; place-items: center; border-radius: var(--uix-radius-sm); font-size: var(--uix-text-meta); color: var(--uix-text); cursor: pointer; border: 0; background: transparent; }
8
- .uix-calendar__day:hover { background: var(--uix-bg-hover); }
7
+ /* Day states share DateRangePicker's shape language (HAR-1570): ::after is the circle
8
+ (hover, selected, today, focus), ::before the range band at the circle's height. Columns
9
+ have no gap, so neighbouring bands meet; a selected day draws half a band toward an
10
+ in-range neighbour (logical insets mirror for RTL). */
11
+ .uix-calendar__day { position: relative; isolation: isolate; aspect-ratio: 1; display: grid; place-items: center; border-radius: 0; font-size: var(--uix-text-meta); color: var(--uix-text); cursor: pointer; border: 0; background: transparent; }
12
+ .uix-calendar__day::before,
13
+ .uix-calendar__day::after { content: ""; position: absolute; z-index: calc(-1 * var(--uix-z-raised)); pointer-events: none; }
14
+ .uix-calendar__day::before { inset: 3px 0; }
15
+ .uix-calendar__day::after { inset: 3px; border-radius: 50%; }
16
+ .uix-calendar__day:hover::after { background: var(--uix-bg-hover); }
9
17
  .uix-calendar__day[data-muted] { color: var(--uix-text-muted); opacity: .45; }
10
- .uix-calendar__day[data-today] { box-shadow: inset 0 0 0 1px var(--uix-border-strong); }
11
- .uix-calendar__day[data-range] { background: var(--uix-brand-muted); border-radius: 0; }
12
- .uix-calendar__day[aria-selected="true"] { background: var(--uix-accent); color: var(--uix-accent-fg); }
18
+ .uix-calendar__day:is([data-today], [aria-current="date"])::after { box-shadow: inset 0 0 0 1px var(--uix-text-muted); }
19
+ .uix-calendar__day[data-range]::before { background: var(--uix-brand-muted); }
20
+ .uix-calendar__day[data-range]:hover::after { background: color-mix(in srgb, var(--uix-accent) 18%, transparent); }
21
+ .uix-calendar__day:is([aria-selected="true"], [aria-pressed="true"]) { color: var(--uix-accent-fg); }
22
+ .uix-calendar__day:is([aria-selected="true"], [aria-pressed="true"])::after { background: var(--uix-accent); }
23
+ .uix-calendar__day:is([aria-selected="true"], [aria-pressed="true"]):has(+ [data-range])::before { inset-inline-start: 50%; background: var(--uix-brand-muted); }
24
+ .uix-calendar__day[data-range] + .uix-calendar__day:is([aria-selected="true"], [aria-pressed="true"])::before { inset-inline-end: 50%; background: var(--uix-brand-muted); }
25
+ .uix-calendar__day:focus-visible { z-index: var(--uix-z-raised); outline: none; }
26
+ .uix-calendar__day:focus-visible::after { box-shadow: 0 0 0 2px var(--uix-surface), 0 0 0 4px var(--uix-ring); }
27
+ .uix-calendar__day:is([data-today], [aria-current="date"]):focus-visible::after { box-shadow: inset 0 0 0 1px var(--uix-text-muted), 0 0 0 2px var(--uix-surface), 0 0 0 4px var(--uix-ring); }
28
+ @media (forced-colors: active) {
29
+ .uix-calendar__day:is([aria-selected="true"], [aria-pressed="true"]) { forced-color-adjust: none; color: HighlightText; }
30
+ .uix-calendar__day:is([aria-selected="true"], [aria-pressed="true"])::after { forced-color-adjust: none; background: Highlight; }
31
+ .uix-calendar__day[data-range] { text-decoration-line: underline; text-decoration-thickness: .15em; text-underline-offset: .2em; }
32
+ .uix-calendar__day:is([data-today], [aria-current="date"])::after { outline: 1px solid CanvasText; outline-offset: -1px; }
33
+ .uix-calendar__day:focus-visible::after { outline: 2px solid CanvasText; outline-offset: 2px; }
34
+ }
13
35
  }
@@ -16,7 +16,21 @@
16
16
  .uix-collapsible__summary::-webkit-details-marker { display: none; }
17
17
  .uix-collapsible__title { color: var(--uix-text); font-weight: 600; }
18
18
  .uix-collapsible__meta { margin-left: var(--uix-space-2); color: var(--uix-text-muted); font-size: var(--uix-text-meta); }
19
- .uix-collapsible__chevron { transition: transform var(--uix-dur-fast) var(--uix-ease-out); }
19
+ /* HAR-1571: icon-sm box on the first (title) line; only rotates, never moves. space-1 = fallback for no `lh` unit. */
20
+ .uix-collapsible__chevron { display: inline-grid; place-items: center; flex: none; align-self: flex-start; margin-block: var(--uix-space-1); margin-block: calc((1lh - var(--uix-icon-sm)) / 2); inline-size: var(--uix-icon-sm); block-size: var(--uix-icon-sm); color: var(--uix-text-muted); transition: transform var(--uix-dur-fast) var(--uix-ease-out), color var(--uix-dur-fast) var(--uix-ease-out); }
21
+ .uix-collapsible__chevron > svg { inline-size: 100%; block-size: 100%; }
22
+ .uix-collapsible__summary:hover .uix-collapsible__chevron { color: var(--uix-text); }
20
23
  .uix-collapsible[open] .uix-collapsible__chevron { transform: rotate(180deg); }
21
24
  .uix-collapsible__body { padding: 0 var(--uix-space-5) var(--uix-space-5); }
22
25
  }
26
+
27
+ /* CollapsibleSection `headingLevel` and `compact` (HAR-1628). The heading only adds the outline
28
+ entry: it looks like the plain title. Compact is a quiet row inside a card: the card draws the
29
+ box, the row only a rule between itself and the compact row before it. */
30
+ @layer uix.components {
31
+ .uix-collapsible__heading { margin: 0; font: inherit; color: inherit; }
32
+ .uix-collapsible--compact { border: 0; border-radius: 0; background: transparent; }
33
+ .uix-collapsible--compact + .uix-collapsible--compact { border-top: 1px solid var(--uix-border); }
34
+ .uix-collapsible--compact > .uix-collapsible__summary { padding: var(--uix-space-2) 0; border-radius: var(--uix-radius-sm); }
35
+ .uix-collapsible--compact > .uix-collapsible__body { padding: 0 0 var(--uix-space-3); }
36
+ }
@@ -12,8 +12,32 @@
12
12
  padding: var(--uix-space-2) var(--uix-space-3); border-radius: var(--uix-radius-sm); font-size: var(--uix-text-body); color: var(--uix-text);
13
13
  cursor: pointer; display: flex; align-items: center; gap: var(--uix-space-2);
14
14
  }
15
- .uix-listbox__option:hover, .uix-listbox__option[aria-selected="true"], .uix-listbox__option[data-active] { background: var(--uix-bg-hover); }
15
+ /* hover / the keyboard's active option get the row tint; the chosen value is told apart by colour,
16
+ weight and a check mark, never by the same tint (HAR-1572) */
17
+ .uix-listbox__option:hover, .uix-listbox__option[data-active] { background: var(--uix-bg-hover); }
16
18
  .uix-listbox__option[aria-disabled="true"] { cursor: not-allowed; opacity: .55; }
17
- .uix-listbox__option[aria-selected="true"] { color: var(--uix-link); }
19
+ .uix-listbox__option[aria-disabled="true"]:hover { background: transparent; }
20
+ .uix-listbox__option[aria-selected="true"] { color: var(--uix-link); font-weight: 500; }
18
21
  .uix-listbox__empty { padding: var(--uix-space-3); text-align: center; color: var(--uix-text-muted); font-size: var(--uix-text-meta); }
22
+
23
+ /* option parts (React Select) */
24
+ .uix-listbox__icon { display: inline-flex; flex: none; color: var(--uix-text-muted); }
25
+ .uix-listbox__icon svg { width: var(--uix-icon-md); height: var(--uix-icon-md); }
26
+ .uix-listbox__text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: var(--uix-space-1); overflow-wrap: anywhere; }
27
+ .uix-listbox__label { line-height: 1.35; }
28
+ .uix-listbox__desc { color: var(--uix-text-muted); font-size: var(--uix-text-meta); font-weight: 400; line-height: 1.4; }
29
+ .uix-listbox__check { display: inline-flex; flex: none; width: var(--uix-icon-sm); height: var(--uix-icon-sm); margin-inline-start: auto; color: var(--uix-link); }
30
+ .uix-listbox__check svg { width: 100%; height: 100%; }
31
+ /* groups are ruled off from what comes before and after them */
32
+ .uix-listbox__group + .uix-listbox__group, .uix-listbox__option + .uix-listbox__group { margin-top: var(--uix-space-1); padding-top: var(--uix-space-1); border-top: 1px solid var(--uix-border); }
33
+ .uix-listbox__group:has(+ .uix-listbox__option) { margin-bottom: var(--uix-space-1); padding-bottom: var(--uix-space-1); border-bottom: 1px solid var(--uix-border); }
34
+ .uix-listbox__group-label {
35
+ padding: var(--uix-space-2) var(--uix-space-3) var(--uix-space-1); font-size: var(--uix-text-eyebrow); font-weight: 500;
36
+ letter-spacing: var(--uix-tracking-eyebrow); text-transform: uppercase; color: var(--uix-text-muted); cursor: default;
37
+ }
38
+ .uix-listbox__group[aria-disabled="true"] .uix-listbox__group-label { opacity: .55; }
39
+
40
+ @media (forced-colors: active) {
41
+ .uix-listbox__option[data-active] { outline: 2px solid Highlight; outline-offset: -2px; }
42
+ }
19
43
  }