@adia-ai/web-components 0.7.3 → 0.7.5

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 (137) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/components/accordion/accordion.css +2 -2
  3. package/components/action-list/action-list.css +2 -2
  4. package/components/agent-artifact/agent-artifact.css +31 -31
  5. package/components/agent-feedback-bar/agent-feedback-bar.css +10 -10
  6. package/components/agent-questions/agent-questions.css +59 -57
  7. package/components/agent-reasoning/agent-reasoning.css +54 -54
  8. package/components/agent-suggestions/agent-suggestions.css +4 -4
  9. package/components/agent-trace/agent-trace.css +53 -53
  10. package/components/alert/alert.css +53 -53
  11. package/components/avatar/avatar.css +27 -27
  12. package/components/badge/badge.css +56 -53
  13. package/components/block/block.css +16 -16
  14. package/components/blockquote/blockquote.css +16 -16
  15. package/components/breadcrumb/breadcrumb.css +23 -23
  16. package/components/button/button.css +123 -101
  17. package/components/calendar-grid/calendar-grid.css +95 -92
  18. package/components/calendar-picker/calendar-picker.css +141 -139
  19. package/components/canvas/canvas.css +12 -12
  20. package/components/card/card.css +83 -83
  21. package/components/chart/chart.css +218 -218
  22. package/components/chart-legend/chart-legend.css +26 -26
  23. package/components/check/check.css +40 -40
  24. package/components/code/code.css +125 -125
  25. package/components/col/col.css +15 -15
  26. package/components/color-picker/color-picker.css +55 -55
  27. package/components/combobox/combobox.css +64 -62
  28. package/components/command/command.css +91 -91
  29. package/components/context-menu/context-menu.css +1 -1
  30. package/components/date-range-picker/date-range-picker.css +59 -59
  31. package/components/datetime-picker/datetime-picker.css +25 -25
  32. package/components/demo-toggle/demo-toggle.css +27 -27
  33. package/components/description-list/description-list.css +18 -18
  34. package/components/divider/divider.css +24 -24
  35. package/components/embed/embed.css +6 -6
  36. package/components/empty-state/empty-state.css +29 -29
  37. package/components/feed/feed.css +12 -12
  38. package/components/field/field.css +28 -28
  39. package/components/field/field.test.js +2 -2
  40. package/components/fields/fields.css +5 -5
  41. package/components/grid/grid.a2ui.json +10 -0
  42. package/components/grid/grid.css +23 -5
  43. package/components/grid/grid.d.ts +4 -0
  44. package/components/grid/grid.yaml +13 -0
  45. package/components/heatmap/heatmap.css +61 -61
  46. package/components/icon/icon.css +12 -12
  47. package/components/image/image.css +14 -14
  48. package/components/inline-edit/inline-edit.css +16 -16
  49. package/components/inline-message/inline-message.css +16 -16
  50. package/components/input/input.css +69 -66
  51. package/components/inspector/inspector.css +6 -6
  52. package/components/integration-card/integration-card.css +41 -41
  53. package/components/integration-card/integration-card.test.js +4 -4
  54. package/components/kbd/kbd.css +47 -40
  55. package/components/link/link.css +12 -12
  56. package/components/list/list.css +8 -8
  57. package/components/list-window/list-window.css +10 -10
  58. package/components/loading-overlay/loading-overlay.css +17 -18
  59. package/components/loading-overlay/loading-overlay.test.js +8 -8
  60. package/components/mark/mark.css +16 -16
  61. package/components/menu/menu.css +9 -9
  62. package/components/modal/modal.class.js +5 -9
  63. package/components/modal/modal.css +43 -43
  64. package/components/nav/nav.css +40 -40
  65. package/components/nav-group/nav-group.css +54 -54
  66. package/components/nav-item/nav-item.css +44 -44
  67. package/components/noodles/noodles.css +31 -31
  68. package/components/number-format/number-format.css +4 -4
  69. package/components/option-card/option-card.css +70 -70
  70. package/components/otp-input/otp-input.css +29 -29
  71. package/components/page/page.a2ui.json +1 -1
  72. package/components/page/page.css +27 -27
  73. package/components/page/page.d.ts +1 -1
  74. package/components/page/page.yaml +1 -1
  75. package/components/pagination/pagination.css +6 -6
  76. package/components/pane/pane.css +57 -57
  77. package/components/password-strength/password-strength.css +32 -32
  78. package/components/pipeline-status/pipeline-status.css +67 -67
  79. package/components/popover/popover.css +11 -11
  80. package/components/preview/preview.css +21 -21
  81. package/components/progress/progress.css +23 -23
  82. package/components/progress-row/progress-row.css +17 -17
  83. package/components/qr-code/qr-code.css +4 -4
  84. package/components/radio/radio.css +39 -39
  85. package/components/range/range.css +58 -55
  86. package/components/rating/rating.css +28 -28
  87. package/components/relative-time/relative-time.css +6 -6
  88. package/components/richtext/richtext.css +133 -133
  89. package/components/row/row.css +19 -19
  90. package/components/search/search.css +5 -5
  91. package/components/segment/segment.css +29 -24
  92. package/components/segmented/segmented.css +30 -25
  93. package/components/select/select.css +95 -93
  94. package/components/skeleton/skeleton.css +14 -14
  95. package/components/skip-nav/skip-nav.css +4 -4
  96. package/components/slider/slider.css +61 -61
  97. package/components/spinner/spinner.css +40 -40
  98. package/components/spinner/spinner.test.js +10 -12
  99. package/components/stack/stack.css +11 -11
  100. package/components/stat/stat.css +27 -27
  101. package/components/step-progress/step-progress.css +20 -20
  102. package/components/stepper/stepper.css +29 -29
  103. package/components/stream/stream.css +12 -12
  104. package/components/swatch/swatch.css +68 -68
  105. package/components/swiper/swiper.class.js +5 -12
  106. package/components/swiper/swiper.css +57 -57
  107. package/components/switch/switch.css +53 -53
  108. package/components/table/table.css +166 -163
  109. package/components/table-toolbar/table-toolbar.css +33 -33
  110. package/components/tabs/tabs.css +54 -51
  111. package/components/tag/tag.css +74 -71
  112. package/components/tag/tag.test.js +14 -14
  113. package/components/tags-input/tags-input.css +51 -49
  114. package/components/text/text.css +44 -44
  115. package/components/textarea/textarea.css +49 -46
  116. package/components/time-picker/time-picker.css +47 -47
  117. package/components/timeline/timeline.css +54 -54
  118. package/components/toast/toast.css +58 -58
  119. package/components/toc/toc.css +28 -28
  120. package/components/toggle-group/toggle-group.css +9 -6
  121. package/components/toggle-scheme/toggle-scheme.css +2 -2
  122. package/components/toolbar/toolbar.css +18 -18
  123. package/components/tooltip/tooltip.css +2 -2
  124. package/components/tour/tour.css +4 -4
  125. package/components/tree/tree.css +37 -37
  126. package/components/upload/upload.css +49 -49
  127. package/dist/host.min.css +1 -0
  128. package/dist/web-components.min.css +1 -1
  129. package/dist/web-components.min.js +2 -2
  130. package/package.json +1 -1
  131. package/styles/api/text.css +9 -2
  132. package/styles/foundation/space.css +19 -18
  133. package/styles/host.css +48 -0
  134. package/styles/prose.css +187 -173
  135. package/styles/type/scale.css +6 -0
  136. package/styles/typography.css +10 -5
  137. package/styles/verse.css +122 -0
@@ -10,18 +10,18 @@ toggle-option-ui:not([disabled]):hover {
10
10
  @scope (toggle-group-ui) {
11
11
  :where(:scope) {
12
12
  /* ── Tokens ── */
13
- --toggle-group-border-width-default: 1px;
14
- --toggle-group-border-color-default: var(--a-ui-border);
15
- --toggle-group-radius-default: var(--a-radius);
16
- --toggle-group-height-default: var(--a-size);
13
+ --toggle-group-border-width: 1px;
14
+ --toggle-group-border-color: var(--a-ui-border);
15
+ --toggle-group-radius: var(--a-radius);
16
+ --toggle-group-height: var(--a-size);
17
17
  text-align: start; /* §text-align-reset — blocks inheritance from centered ancestors */
18
18
  }
19
19
 
20
20
  :scope {
21
21
  box-sizing: border-box;
22
22
  display: flex;
23
- border: var(--toggle-group-border-width, var(--toggle-group-border-width-default)) solid var(--toggle-group-border-color, var(--toggle-group-border-color-default));
24
- border-radius: var(--toggle-group-radius, var(--toggle-group-radius-default));
23
+ border: var(--toggle-group-border-width) solid var(--toggle-group-border-color);
24
+ border-radius: var(--toggle-group-radius);
25
25
  overflow: hidden;
26
26
  }
27
27
 
@@ -70,6 +70,9 @@ toggle-option-ui:not([disabled]):hover {
70
70
  background: var(--toggle-option-bg);
71
71
  color: var(--toggle-option-fg);
72
72
  font: inherit;
73
+ /* font-family floor — see segment.css rationale (inline default; this
74
+ scope's tokens don't use the -default suffix). */
75
+ font-family: var(--toggle-option-font-family, var(--a-font-family-ui));
73
76
  font-size: var(--toggle-option-font-size);
74
77
  cursor: pointer;
75
78
  transition:
@@ -1,6 +1,6 @@
1
1
  @scope (toggle-scheme-ui) {
2
2
  :where(:scope) {
3
- --toggle-scheme-icon-transition-default: var(--a-duration-fast) var(--a-easing);
3
+ --toggle-scheme-icon-transition: var(--a-duration-fast) var(--a-easing);
4
4
  }
5
5
 
6
6
  :scope {
@@ -18,6 +18,6 @@
18
18
  }
19
19
 
20
20
  :scope > [part="button"] {
21
- transition: color var(--toggle-scheme-icon-transition, var(--toggle-scheme-icon-transition-default));
21
+ transition: color var(--toggle-scheme-icon-transition);
22
22
  }
23
23
  }
@@ -1,15 +1,15 @@
1
1
  @scope (toolbar-ui) {
2
2
  :where(:scope) {
3
3
  /* ── Layout ── */
4
- --toolbar-gap-default: var(--a-space-1);
5
- --toolbar-radius-default: var(--a-radius-md);
6
- --toolbar-px-default: var(--a-space-1);
7
- --toolbar-py-default: var(--a-space-1);
4
+ --toolbar-gap: var(--a-space-1);
5
+ --toolbar-radius: var(--a-radius-md);
6
+ --toolbar-px: var(--a-space-1);
7
+ --toolbar-py: var(--a-space-1);
8
8
 
9
9
  /* ── Colors ── */
10
- --toolbar-bg-default: transparent;
11
- --toolbar-fg-default: var(--a-fg);
12
- --toolbar-border-default: var(--a-border-subtle);
10
+ --toolbar-bg: transparent;
11
+ --toolbar-fg: var(--a-fg);
12
+ --toolbar-border: var(--a-border-subtle);
13
13
  }
14
14
 
15
15
  /* ── Base ── */
@@ -18,10 +18,10 @@
18
18
  display: flex;
19
19
  flex-direction: row;
20
20
  align-items: center;
21
- gap: var(--toolbar-gap, var(--toolbar-gap-default));
22
- padding: var(--toolbar-py, var(--toolbar-py-default)) var(--toolbar-px, var(--toolbar-px-default));
23
- border-radius: var(--toolbar-radius, var(--toolbar-radius-default));
24
- color: var(--toolbar-fg, var(--toolbar-fg-default));
21
+ gap: var(--toolbar-gap);
22
+ padding: var(--toolbar-py) var(--toolbar-px);
23
+ border-radius: var(--toolbar-radius);
24
+ color: var(--toolbar-fg);
25
25
  min-width: 0; /* allow shrinking within flex/grid parents */
26
26
  overflow: hidden; /* prevent pre-measurement flash before reflow */
27
27
  }
@@ -34,14 +34,14 @@
34
34
 
35
35
  /* ── Bordered ── */
36
36
  :scope[bordered] {
37
- border: 1px solid var(--toolbar-border, var(--toolbar-border-default));
38
- background: var(--toolbar-bg, var(--toolbar-bg-default));
37
+ border: 1px solid var(--toolbar-border);
38
+ background: var(--toolbar-bg);
39
39
  }
40
40
 
41
41
  /* ── Gap variants ── */
42
- :scope[gap="sm"] { --toolbar-gap-default: var(--a-space-1); }
43
- :scope[gap="md"] { --toolbar-gap-default: var(--a-space-2); }
44
- :scope[gap="lg"] { --toolbar-gap-default: var(--a-space-3); }
42
+ :scope[gap="sm"] { --toolbar-gap: var(--a-space-1); }
43
+ :scope[gap="md"] { --toolbar-gap: var(--a-space-2); }
44
+ :scope[gap="lg"] { --toolbar-gap: var(--a-space-3); }
45
45
 
46
46
  /* ── Align ── */
47
47
  :scope[align="start"] { justify-content: flex-start; }
@@ -102,9 +102,9 @@ toolbar-ui [data-toolbar-spillover-menu]:popover-open {
102
102
  background: var(--a-bg-subtle);
103
103
  box-shadow: var(--a-shadow-lg);
104
104
  min-width: 10rem;
105
- font-family: inherit;
105
+ font-family: var(--toolbar-font-family, var(--a-font-family-ui));
106
106
  font-size: var(--a-ui-size);
107
- color: var(--toolbar-fg, var(--toolbar-fg-default));
107
+ color: var(--toolbar-fg);
108
108
  /* Stack overflow items as rows (each row can be a group with its own gap). */
109
109
  display: flex;
110
110
  flex-direction: column;
@@ -3,12 +3,12 @@
3
3
  /* Host (anchor) tokens. The popover itself escapes to top-layer and
4
4
  cannot inherit these — top-layer rules below reference --a-*
5
5
  directly per documented exception. */
6
- --tooltip-host-display-default: inline-flex;
6
+ --tooltip-host-display: inline-flex;
7
7
  }
8
8
  :scope {
9
9
  /* ── Base ── */
10
10
  box-sizing: border-box;
11
- display: var(--tooltip-host-display, var(--tooltip-host-display-default));
11
+ display: var(--tooltip-host-display);
12
12
  position: relative;
13
13
  }
14
14
  }
@@ -1,8 +1,8 @@
1
1
  @scope (tour-ui) {
2
2
  :where(:scope) {
3
- --tour-scrim-default: var(--a-scrim-dialog);
4
- --tour-spotlight-padding-default: var(--a-space-2);
5
- --tour-spotlight-radius-default: var(--a-radius-md);
3
+ --tour-scrim: var(--a-scrim-dialog);
4
+ --tour-spotlight-padding: var(--a-space-2);
5
+ --tour-spotlight-radius: var(--a-radius-md);
6
6
  }
7
7
 
8
8
  :scope {
@@ -67,7 +67,7 @@
67
67
  box-shadow: var(--tour-popover-shadow, var(--a-shadow-lg));
68
68
  min-width: var(--tour-popover-min-width, 18rem);
69
69
  max-width: var(--tour-popover-max-width, 22rem);
70
- font-family: inherit;
70
+ font-family: var(--tour-font-family, var(--a-font-family-ui));
71
71
  font-size: var(--a-ui-size);
72
72
  color: var(--a-fg);
73
73
  /* Above the spotlight (1000) so the user can read + click it */
@@ -1,30 +1,30 @@
1
1
  @scope (tree-ui) {
2
2
  :where(:scope) {
3
3
  /* ── Layout ── */
4
- --tree-row-height-default: var(--a-size);
5
- --tree-row-radius-default: var(--a-radius-sm);
6
- --tree-row-px-default: var(--a-space-1);
7
- --tree-row-gap-default: var(--a-space-1);
8
- --tree-actions-gap-default: var(--a-space-0-5);
9
- --tree-indent-default: var(--a-space-4);
10
- --tree-caret-size-default: var(--a-space-2);
11
- --tree-icon-size-default: var(--a-space-3);
4
+ --tree-row-height: var(--a-size);
5
+ --tree-row-radius: var(--a-radius-sm);
6
+ --tree-row-px: var(--a-space-1);
7
+ --tree-row-gap: var(--a-space-1);
8
+ --tree-actions-gap: var(--a-space-0-5);
9
+ --tree-indent: var(--a-space-4);
10
+ --tree-caret-size: var(--a-space-2);
11
+ --tree-icon-size: var(--a-space-3);
12
12
 
13
13
  /* ── Typography ── */
14
- --tree-font-size-default: var(--a-ui-size);
14
+ --tree-font-size: var(--a-ui-size);
15
15
 
16
16
  /* ── Colors ── */
17
- --tree-fg-default: var(--a-fg);
18
- --tree-fg-muted-default: var(--a-fg-muted);
19
- --tree-bg-hover-default: var(--a-bg-muted);
20
- --tree-bg-selected-default: var(--a-bg-hover);
17
+ --tree-fg: var(--a-fg);
18
+ --tree-fg-muted: var(--a-fg-muted);
19
+ --tree-bg-hover: var(--a-bg-muted);
20
+ --tree-bg-selected: var(--a-bg-hover);
21
21
 
22
22
  /* ── Transition ── */
23
- --tree-duration-default: var(--a-duration-fast);
24
- --tree-easing-default: var(--a-easing);
23
+ --tree-duration: var(--a-duration-fast);
24
+ --tree-easing: var(--a-easing);
25
25
 
26
26
  /* ── State ── */
27
- --tree-focus-ring-default: var(--a-focus-ring);
27
+ --tree-focus-ring: var(--a-focus-ring);
28
28
  }
29
29
 
30
30
  :scope {
@@ -32,8 +32,8 @@
32
32
  box-sizing: border-box;
33
33
  display: flex;
34
34
  flex-direction: column;
35
- font-size: var(--tree-font-size, var(--tree-font-size-default));
36
- color: var(--tree-fg, var(--tree-fg-default));
35
+ font-size: var(--tree-font-size);
36
+ color: var(--tree-fg);
37
37
  }
38
38
  }
39
39
 
@@ -69,35 +69,35 @@
69
69
  [slot="row"] {
70
70
  display: flex;
71
71
  align-items: center;
72
- gap: var(--tree-row-gap, var(--tree-row-gap-default));
73
- height: var(--tree-row-height, var(--tree-row-height-default));
74
- padding-inline-end: var(--tree-row-px, var(--tree-row-px-default));
75
- border-radius: var(--tree-row-radius, var(--tree-row-radius-default));
72
+ gap: var(--tree-row-gap);
73
+ height: var(--tree-row-height);
74
+ padding-inline-end: var(--tree-row-px);
75
+ border-radius: var(--tree-row-radius);
76
76
  cursor: pointer;
77
77
  user-select: none;
78
78
  white-space: nowrap;
79
79
  transition:
80
- background var(--tree-duration, var(--tree-duration-default)) var(--tree-easing, var(--tree-easing-default)),
81
- color var(--tree-duration, var(--tree-duration-default)) var(--tree-easing, var(--tree-easing-default));
80
+ background var(--tree-duration) var(--tree-easing),
81
+ color var(--tree-duration) var(--tree-easing);
82
82
  outline: none;
83
83
  }
84
84
 
85
85
  [slot="row"]:hover {
86
- background: var(--tree-bg-hover, var(--tree-bg-hover-default));
86
+ background: var(--tree-bg-hover);
87
87
  }
88
88
 
89
89
  [slot="row"]:focus-visible {
90
- box-shadow: var(--tree-focus-ring, var(--tree-focus-ring-default));
90
+ box-shadow: var(--tree-focus-ring);
91
91
  }
92
92
 
93
93
  /* :scope[selected] rules moved outside @scope — see tree-ui Safari note at end of file. */
94
94
 
95
95
  /* ── Caret ── */
96
96
  [slot="caret"] {
97
- --a-icon-size: var(--tree-caret-size, var(--tree-caret-size-default));
97
+ --a-icon-size: var(--tree-caret-size);
98
98
  flex-shrink: 0;
99
- color: var(--tree-fg-muted, var(--tree-fg-muted-default));
100
- transition: transform var(--tree-duration, var(--tree-duration-default)) var(--tree-easing, var(--tree-easing-default));
99
+ color: var(--tree-fg-muted);
100
+ transition: transform var(--tree-duration) var(--tree-easing);
101
101
  transform: rotate(90deg);
102
102
  }
103
103
 
@@ -112,8 +112,8 @@
112
112
 
113
113
  /* ── Icon ── */
114
114
  [slot="icon"] {
115
- --a-icon-size: var(--tree-icon-size, var(--tree-icon-size-default));
116
- color: var(--tree-fg-muted, var(--tree-fg-muted-default));
115
+ --a-icon-size: var(--tree-icon-size);
116
+ color: var(--tree-fg-muted);
117
117
  flex-shrink: 0;
118
118
  }
119
119
 
@@ -134,7 +134,7 @@
134
134
  [slot="badge"] {
135
135
  flex-shrink: 0;
136
136
  font-size: var(--tree-badge-size, var(--a-ui-xs));
137
- color: var(--tree-badge-fg, var(--tree-fg-muted, var(--tree-fg-muted-default)));
137
+ color: var(--tree-badge-fg, var(--tree-fg-muted));
138
138
  background: var(--tree-badge-bg, transparent);
139
139
  padding: 0 var(--tree-badge-px, var(--a-space-1));
140
140
  border-radius: var(--tree-badge-radius, var(--a-radius-sm));
@@ -149,10 +149,10 @@
149
149
  [slot="actions"] {
150
150
  display: flex;
151
151
  align-items: center;
152
- gap: var(--tree-actions-gap, var(--tree-actions-gap-default));
152
+ gap: var(--tree-actions-gap);
153
153
  margin-inline-start: auto;
154
154
  opacity: 0;
155
- transition: opacity var(--tree-duration, var(--tree-duration-default)) var(--tree-easing, var(--tree-easing-default));
155
+ transition: opacity var(--tree-duration) var(--tree-easing);
156
156
  }
157
157
 
158
158
  [slot="row"]:hover [slot="actions"] {
@@ -173,11 +173,11 @@
173
173
  `:where(:scope)` still resolve via inheritance. See
174
174
  docs/BROWSER-COMPAT.md §3a. */
175
175
  tree-ui[selected] > [slot="row"] {
176
- background: var(--tree-bg-selected, var(--tree-bg-selected-default));
177
- color: var(--tree-fg, var(--tree-fg-default));
176
+ background: var(--tree-bg-selected);
177
+ color: var(--tree-fg);
178
178
  }
179
179
  tree-ui[selected] > [slot="row"] [slot="icon"] {
180
- color: var(--tree-fg, var(--tree-fg-default));
180
+ color: var(--tree-fg);
181
181
  }
182
182
  tree-ui[selected] > [slot="row"] [slot="actions"] {
183
183
  opacity: 1;
@@ -1,48 +1,48 @@
1
1
  @scope (upload-ui) {
2
2
  :where(:scope) {
3
3
  /* ── Tokens ── */
4
- --upload-gap-default: var(--a-space-2);
5
- --upload-radius-default: var(--a-radius-md);
6
- --upload-font-default: var(--a-ui-size);
7
- --upload-border-default: var(--a-border-subtle);
8
- --upload-border-hover-default: var(--a-accent);
9
- --upload-border-dragover-default: var(--a-accent-bg);
10
- --upload-bg-dragover-default: var(--a-accent-muted);
11
- --upload-fg-default: var(--a-fg-subtle);
12
- --upload-fg-hover-default: var(--a-accent);
13
- --upload-label-fg-default: var(--a-fg);
14
- --upload-label-weight-default: var(--a-weight-medium);
15
- --upload-label-size-default: var(--a-label-size);
16
- --upload-hint-fg-default: var(--a-fg-muted);
17
- --upload-hint-size-default: var(--a-ui-sm);
18
- --upload-bg-disabled-default: var(--a-ui-bg-disabled);
19
- --upload-fg-disabled-default: var(--a-ui-text-disabled);
20
- --upload-border-disabled-default: var(--a-ui-border-disabled);
21
- --upload-focus-ring-default: var(--a-focus-ring);
22
- --upload-focus-ring-invalid-default: var(--a-focus-ring-invalid);
4
+ --upload-gap: var(--a-space-2);
5
+ --upload-radius: var(--a-radius-md);
6
+ --upload-font: var(--a-ui-size);
7
+ --upload-border: var(--a-border-subtle);
8
+ --upload-border-hover: var(--a-accent);
9
+ --upload-border-dragover: var(--a-accent-bg);
10
+ --upload-bg-dragover: var(--a-accent-muted);
11
+ --upload-fg: var(--a-fg-subtle);
12
+ --upload-fg-hover: var(--a-accent);
13
+ --upload-label-fg: var(--a-fg);
14
+ --upload-label-weight: var(--a-weight-medium);
15
+ --upload-label-size: var(--a-label-size);
16
+ --upload-hint-fg: var(--a-fg-muted);
17
+ --upload-hint-size: var(--a-ui-sm);
18
+ --upload-bg-disabled: var(--a-ui-bg-disabled);
19
+ --upload-fg-disabled: var(--a-ui-text-disabled);
20
+ --upload-border-disabled: var(--a-ui-border-disabled);
21
+ --upload-focus-ring: var(--a-focus-ring);
22
+ --upload-focus-ring-invalid: var(--a-focus-ring-invalid);
23
23
 
24
24
  /* ── Spacing ── */
25
- --upload-dropzone-pad-default: var(--a-space-6);
25
+ --upload-dropzone-pad: var(--a-space-6);
26
26
 
27
27
  /* ── Transitions ── */
28
- --upload-duration-default: var(--a-duration-fast);
29
- --upload-easing-default: var(--a-easing);
28
+ --upload-duration: var(--a-duration-fast);
29
+ --upload-easing: var(--a-easing);
30
30
  }
31
31
 
32
32
  :scope {
33
33
  box-sizing: border-box;
34
34
  display: flex;
35
35
  flex-direction: column;
36
- gap: var(--upload-gap, var(--upload-gap-default));
37
- font-size: var(--upload-font, var(--upload-font-default));
36
+ gap: var(--upload-gap);
37
+ font-size: var(--upload-font);
38
38
  }
39
39
 
40
40
  /* Label via ::before */
41
41
  :scope::before {
42
42
  content: attr(label);
43
- font-size: var(--upload-label-size, var(--upload-label-size-default));
44
- font-weight: var(--upload-label-weight, var(--upload-label-weight-default));
45
- color: var(--upload-label-fg, var(--upload-label-fg-default));
43
+ font-size: var(--upload-label-size);
44
+ font-weight: var(--upload-label-weight);
45
+ color: var(--upload-label-fg);
46
46
  }
47
47
  :scope:not([label])::before,
48
48
  :scope[label=""]::before {
@@ -54,38 +54,38 @@
54
54
  display: flex;
55
55
  align-items: center;
56
56
  justify-content: center;
57
- padding: var(--upload-dropzone-pad, var(--upload-dropzone-pad-default));
58
- border: 2px dashed var(--upload-border, var(--upload-border-default));
59
- border-radius: var(--upload-radius, var(--upload-radius-default));
60
- color: var(--upload-fg, var(--upload-fg-default));
61
- font-size: var(--upload-font, var(--upload-font-default));
57
+ padding: var(--upload-dropzone-pad);
58
+ border: 2px dashed var(--upload-border);
59
+ border-radius: var(--upload-radius);
60
+ color: var(--upload-fg);
61
+ font-size: var(--upload-font);
62
62
  text-align: center;
63
63
  cursor: pointer;
64
64
  transition:
65
- border-color var(--upload-duration, var(--upload-duration-default)) var(--upload-easing, var(--upload-easing-default)),
66
- background var(--upload-duration, var(--upload-duration-default)) var(--upload-easing, var(--upload-easing-default)),
67
- color var(--upload-duration, var(--upload-duration-default)) var(--upload-easing, var(--upload-easing-default)),
68
- box-shadow var(--upload-duration, var(--upload-duration-default)) var(--upload-easing, var(--upload-easing-default));
65
+ border-color var(--upload-duration) var(--upload-easing),
66
+ background var(--upload-duration) var(--upload-easing),
67
+ color var(--upload-duration) var(--upload-easing),
68
+ box-shadow var(--upload-duration) var(--upload-easing);
69
69
  }
70
70
  [data-dropzone]:hover {
71
- border-color: var(--upload-border-hover, var(--upload-border-hover-default));
72
- color: var(--upload-fg-hover, var(--upload-fg-hover-default));
71
+ border-color: var(--upload-border-hover);
72
+ color: var(--upload-fg-hover);
73
73
  }
74
74
  [data-dropzone]:focus-visible {
75
75
  /* Canonical ring via L3 token (see semantics.css FOCUS block). */
76
76
  outline: none;
77
- box-shadow: var(--upload-focus-ring, var(--upload-focus-ring-default));
77
+ box-shadow: var(--upload-focus-ring);
78
78
  }
79
79
  [data-dropzone][data-dragover] {
80
- border-color: var(--upload-border-dragover, var(--upload-border-dragover-default));
81
- background: var(--upload-bg-dragover, var(--upload-bg-dragover-default));
80
+ border-color: var(--upload-border-dragover);
81
+ background: var(--upload-bg-dragover);
82
82
  }
83
83
 
84
84
  /* Hint via ::after on span */
85
85
  span[hint]::after {
86
86
  content: attr(hint);
87
- font-size: var(--upload-hint-size, var(--upload-hint-size-default));
88
- color: var(--upload-hint-fg, var(--upload-hint-fg-default));
87
+ font-size: var(--upload-hint-size);
88
+ color: var(--upload-hint-fg);
89
89
  }
90
90
  span[hint=""]::after {
91
91
  display: none;
@@ -98,8 +98,8 @@
98
98
  [data-filelist] {
99
99
  display: flex;
100
100
  flex-direction: column;
101
- gap: var(--upload-gap, var(--upload-gap-default));
102
- font-size: var(--upload-font, var(--upload-font-default));
101
+ gap: var(--upload-gap);
102
+ font-size: var(--upload-font);
103
103
  }
104
104
  [data-filelist]:empty {
105
105
  display: none;
@@ -108,12 +108,12 @@
108
108
  /* Disabled */
109
109
  :scope[disabled] {
110
110
  pointer-events: none;
111
- color: var(--upload-fg-disabled, var(--upload-fg-disabled-default));
111
+ color: var(--upload-fg-disabled);
112
112
  }
113
113
  :scope[disabled] [data-dropzone] {
114
- background: var(--upload-bg-disabled, var(--upload-bg-disabled-default));
115
- border-color: var(--upload-border-disabled, var(--upload-border-disabled-default));
116
- color: var(--upload-fg-disabled, var(--upload-fg-disabled-default));
114
+ background: var(--upload-bg-disabled);
115
+ border-color: var(--upload-border-disabled);
116
+ color: var(--upload-fg-disabled);
117
117
  cursor: not-allowed;
118
118
  }
119
119
  }