@typlog/ui 0.10.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 (36) hide show
  1. package/dist/addons.css +113 -0
  2. package/dist/addons.d.ts +48 -0
  3. package/dist/addons.js +442 -0
  4. package/dist/components/accordion.css +149 -0
  5. package/dist/components/avatar.css +131 -0
  6. package/dist/components/badge.css +75 -0
  7. package/dist/{base.css → components/base.css} +726 -832
  8. package/dist/components/button.css +317 -0
  9. package/dist/components/card.css +86 -0
  10. package/dist/components/checkbox.css +90 -0
  11. package/dist/components/collapsible.css +27 -0
  12. package/dist/components/combobox.css +388 -0
  13. package/dist/components/dialog.css +488 -0
  14. package/dist/components/dropdown.css +204 -0
  15. package/dist/components/editable.css +34 -0
  16. package/dist/components/icon.css +109 -0
  17. package/dist/components/inputs.css +570 -0
  18. package/dist/components/inset.css +73 -0
  19. package/dist/components/pagination.css +299 -0
  20. package/dist/components/popover.css +69 -0
  21. package/dist/components/quota.css +14 -0
  22. package/dist/components/radio.css +211 -0
  23. package/dist/components/scrollarea.css +107 -0
  24. package/dist/components/select.css +308 -0
  25. package/dist/components/separator.css +26 -0
  26. package/dist/components/spinner.css +36 -0
  27. package/dist/components/switch.css +176 -0
  28. package/dist/components/table.css +198 -0
  29. package/dist/components/tabs.css +122 -0
  30. package/dist/components/toggle.css +188 -0
  31. package/dist/components/tooltip.css +37 -0
  32. package/dist/components.css +3548 -0
  33. package/dist/{index.d.ts → components.d.ts} +131 -107
  34. package/dist/{index.js → components.js} +323 -681
  35. package/package.json +28 -14
  36. package/dist/style.css +0 -10463
@@ -0,0 +1,73 @@
1
+
2
+ .ui-Inset {
3
+ box-sizing: border-box;
4
+ --margin-top: 0px;
5
+ --margin-right: 0px;
6
+ --margin-bottom: 0px;
7
+ --margin-left: 0px;
8
+ overflow: hidden;
9
+ margin-top: var(--margin-top-override);
10
+ margin-right: var(--margin-right-override);
11
+ margin-bottom: var(--margin-bottom-override);
12
+ margin-left: var(--margin-left-override);
13
+ }
14
+ .ui-Inset > * {
15
+ --margin-top-override: initial;
16
+ --margin-right-override: initial;
17
+ --margin-bottom-override: initial;
18
+ --margin-left-override: initial;
19
+ }
20
+ .ui-Inset:where(.r-clip-border-box) {
21
+ --inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));
22
+ --inset-padding-top-calc: var(--inset-padding-top, 0px);
23
+ --inset-padding-right-calc: var(--inset-padding-right, 0px);
24
+ --inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);
25
+ --inset-padding-left-calc: var(--inset-padding-left, 0px);
26
+ }
27
+ .ui-Inset:where(.r-clip-padding-box) {
28
+ --inset-border-radius-calc: var(--inset-border-radius, 0px);
29
+ --inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));
30
+ --inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));
31
+ --inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));
32
+ --inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px));
33
+ }
34
+ .ui-Inset:where(.inset-top) {
35
+ --margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));
36
+ --margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));
37
+ --margin-bottom-override: var(--margin-bottom);
38
+ --margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));
39
+ border-top-left-radius: var(--inset-border-radius-calc);
40
+ border-top-right-radius: var(--inset-border-radius-calc);
41
+ border-bottom-left-radius: 0px;
42
+ border-bottom-right-radius: 0px;
43
+ }
44
+ .ui-Inset:where(.inset-bottom) {
45
+ --margin-top-override: var(--margin-top);
46
+ --margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));
47
+ --margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));
48
+ --margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));
49
+ border-top-left-radius: 0px;
50
+ border-top-right-radius: 0px;
51
+ border-bottom-left-radius: var(--inset-border-radius-calc);
52
+ border-bottom-right-radius: var(--inset-border-radius-calc);
53
+ }
54
+ .ui-Inset:where(.inset-left) {
55
+ --margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));
56
+ --margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));
57
+ --margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));
58
+ --margin-right-override: var(--margin-right);
59
+ border-top-left-radius: var(--inset-border-radius-calc);
60
+ border-top-right-radius: 0px;
61
+ border-bottom-left-radius: var(--inset-border-radius-calc);
62
+ border-bottom-right-radius: 0px;
63
+ }
64
+ .ui-Inset:where(.inset-right) {
65
+ --margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));
66
+ --margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));
67
+ --margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));
68
+ --margin-left-override: var(--margin-left);
69
+ border-top-left-radius: 0px;
70
+ border-top-right-radius: var(--inset-border-radius-calc);
71
+ border-bottom-left-radius: 0px;
72
+ border-bottom-right-radius: var(--inset-border-radius-calc);
73
+ }
@@ -0,0 +1,299 @@
1
+
2
+ .ui-Button {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ flex-shrink: 0;
7
+ -webkit-user-select: none;
8
+ -moz-user-select: none;
9
+ user-select: none;
10
+ vertical-align: top;
11
+ font-style: normal;
12
+ font-weight: var(--button-font-weight);
13
+ text-align: center;
14
+ white-space: nowrap;
15
+ height: var(--button-height);
16
+ padding-left: var(--button-padding-x);
17
+ padding-right: var(--button-padding-x);
18
+ }
19
+ .ui-Button:where(.r-variant-ghost) {
20
+ --button-font-weight: var(--font-weight-regular);
21
+ }
22
+ .ui-Button:where(:not(.r-variant-ghost)) {
23
+ --button-font-weight: var(--font-weight-medium);
24
+ }
25
+ .ui-Button:where([data-disabled]) {
26
+ cursor: not-allowed;
27
+ }
28
+ .ui-Button:where(.r-size-1) {
29
+ gap: var(--space-1);
30
+ font-size: var(--font-size-1);
31
+ line-height: var(--line-height-1);
32
+ letter-spacing: var(--letter-spacing-1);
33
+ border-radius: max(var(--radius-1), var(--radius-full));
34
+ --button-height: var(--space-5);
35
+ --button-padding-x: var(--space-2);
36
+ }
37
+ .ui-Button:where(.r-size-1):where(.r-variant-ghost) {
38
+ --button-ghost-padding-y: var(--space-1);
39
+ }
40
+ .ui-Button:where(.r-size-2) {
41
+ gap: var(--space-2);
42
+ font-size: var(--font-size-2);
43
+ line-height: var(--line-height-2);
44
+ letter-spacing: var(--letter-spacing-2);
45
+ border-radius: max(var(--radius-2), var(--radius-full));
46
+ --button-height: var(--space-6);
47
+ --button-padding-x: var(--space-3);
48
+ }
49
+ .ui-Button:where(.r-size-2):where(.r-variant-ghost) {
50
+ gap: var(--space-1);
51
+ --button-padding-x: var(--space-2);
52
+ --button-ghost-padding-y: var(--space-1);
53
+ }
54
+ .ui-Button:where(.r-size-3) {
55
+ gap: var(--space-3);
56
+ font-size: var(--font-size-3);
57
+ line-height: var(--line-height-3);
58
+ letter-spacing: var(--letter-spacing-3);
59
+ border-radius: max(var(--radius-3), var(--radius-full));
60
+ --button-height: var(--space-7);
61
+ --button-padding-x: var(--space-4);
62
+ }
63
+ .ui-Button:where(.r-size-3):where(.r-variant-ghost) {
64
+ gap: var(--space-2);
65
+ --button-padding-x: var(--space-3);
66
+ --button-ghost-padding-y: calc(var(--space-1) * 1.5);
67
+ }
68
+ .ui-Button:where(.r-size-4) {
69
+ gap: var(--space-3);
70
+ font-size: var(--font-size-4);
71
+ line-height: var(--line-height-4);
72
+ letter-spacing: var(--letter-spacing-4);
73
+ border-radius: max(var(--radius-4), var(--radius-full));
74
+ --button-height: var(--space-8);
75
+ --button-padding-x: var(--space-5);
76
+ }
77
+ .ui-Button:where(.r-size-4):where(.r-variant-ghost) {
78
+ gap: var(--space-2);
79
+ --button-padding-x: var(--space-4);
80
+ --button-ghost-padding-y: var(--space-2);
81
+ }
82
+
83
+ /* solid */
84
+ .ui-root {
85
+ --button-solid-active-filter: brightness(0.92) saturate(1.1);
86
+ --button-solid-high-contrast-hover-filter: contrast(0.88) saturate(1.1) brightness(1.1);
87
+ }
88
+ :is(.dark, .dark-theme) .ui-root {
89
+ --button-solid-active-filter: brightness(1.08);
90
+ --button-solid-high-contrast-hover-filter: contrast(0.88) saturate(1.3) brightness(1.18);
91
+ }
92
+ .ui-Button:where(.r-variant-solid) {
93
+ background-color: var(--accent-9);
94
+ color: var(--accent-contrast);
95
+ }
96
+ @media (hover: hover) {
97
+ .ui-Button:where(.r-variant-solid):where(:hover) {
98
+ background-color: var(--accent-10);
99
+ }
100
+ }
101
+ .ui-Button:where(.r-variant-solid):where(:focus-visible) {
102
+ outline: 2px solid var(--focus-8);
103
+ outline-offset: 2px;
104
+ }
105
+ .ui-Button:where(.r-variant-solid):where(:active) {
106
+ background-color: var(--accent-10);
107
+ filter: var(--button-solid-active-filter);
108
+ }
109
+ .ui-Button:where(.r-variant-solid):where(.r-high-contrast) {
110
+ background-color: var(--accent-12);
111
+ color: var(--gray-1);
112
+ }
113
+ @media (hover: hover) {
114
+ .ui-Button:where(.r-variant-solid):where(.r-high-contrast:hover) {
115
+ background-color: var(--accent-12);
116
+ filter: var(--button-solid-high-contrast-hover-filter);
117
+ }
118
+ }
119
+ .ui-Button:where(.r-variant-solid):where([data-disabled]) {
120
+ color: var(--gray-a8);
121
+ background-color: var(--gray-a3);
122
+ outline: none;
123
+ filter: none;
124
+ }
125
+
126
+ /* soft / ghost */
127
+ .ui-Button:where(.r-variant-soft, .r-variant-ghost) {
128
+ color: var(--accent-a11);
129
+ }
130
+ .ui-Button:where(.r-variant-soft, .r-variant-ghost):where(.r-high-contrast) {
131
+ color: var(--accent-12);
132
+ }
133
+ .ui-Button:where(.r-variant-soft):where([data-disabled]) {
134
+ color: var(--gray-a8);
135
+ background-color: var(--gray-a3);
136
+ }
137
+ .ui-Button:where(.r-variant-soft) {
138
+ background-color: var(--accent-a3);
139
+ }
140
+ @media (hover: hover) {
141
+ .ui-Button:where(.r-variant-soft):where(:hover) {
142
+ background-color: var(--accent-a4);
143
+ }
144
+ }
145
+ .ui-Button:where(.r-variant-soft):where(:focus-visible) {
146
+ outline: 2px solid var(--accent-8);
147
+ outline-offset: -1px;
148
+ }
149
+ .ui-Button:where(.r-variant-soft):where(:active) {
150
+ background-color: var(--accent-a5);
151
+ }
152
+ .ui-Button:where(.r-variant-soft):where([data-disabled]) {
153
+ color: var(--gray-a8);
154
+ background-color: var(--gray-a3);
155
+ }
156
+ .ui-Button:where(.r-variant-ghost) {
157
+ padding: var(--button-ghost-padding-y) var(--button-ghost-padding-x);
158
+ }
159
+ @media (hover: hover) {
160
+ .ui-Button:where(.r-variant-ghost):where(:hover) {
161
+ background-color: var(--accent-a3);
162
+ }
163
+ }
164
+ .ui-Button:where(.r-variant-ghost):where(:focus-visible) {
165
+ outline: 2px solid var(--focus-8);
166
+ outline-offset: -1px;
167
+ }
168
+ .ui-Button:where(.r-variant-ghost):where(:active) {
169
+ background-color: var(--accent-a4);
170
+ }
171
+ .ui-Button:where(.r-variant-ghost):where([data-disabled]) {
172
+ color: var(--gray-a8);
173
+ background-color: transparent;
174
+ }
175
+
176
+ /* classic */
177
+ .ui-Button:where(.r-variant-classic) {
178
+ box-shadow: var(--shadow-2);
179
+ background-color: var(--color-background);
180
+ }
181
+ .ui-Button:where(.r-variant-classic):where(.r-high-contrast) {
182
+ color: var(--gray-12);
183
+ box-shadow: 0 0 0 1px var(--gray-a6), 0 1px 1px 0 var(--black-a4), 0 2px 1px -1px var(--black-a2), 0 1px 3px 0 var(--black-a1);
184
+ }
185
+ @media (hover: hover) {
186
+ .ui-Button:where(.r-variant-classic):where(:hover) {
187
+ color: var(--accent-a11);
188
+ background-color: var(--gray-a2);
189
+ }
190
+ .ui-Button:where(.r-variant-classic):where(.r-high-contrast):where(:hover) {
191
+ color: var(--accent-12);
192
+ }
193
+ }
194
+ .ui-Button:where(.r-variant-classic):where(:focus-visible) {
195
+ outline: 2px solid var(--focus-8);
196
+ outline-offset: 2px;
197
+ }
198
+ .ui-Button:where(.r-variant-classic):where(:active:not([data-disabled])) {
199
+ box-shadow: var(--shadow-1);
200
+ }
201
+ .ui-Button:where(.r-variant-classic):where([data-disabled]) {
202
+ color: var(--gray-a10);
203
+ background-color: var(--gray-a2);
204
+ }
205
+
206
+ /* outline */
207
+ .ui-Button:where(.r-variant-outline) {
208
+ box-shadow: inset 0 0 0 1px var(--accent-a8);
209
+ color: var(--accent-a11);
210
+ }
211
+ @media (hover: hover) {
212
+ .ui-Button:where(.r-variant-outline):where(:hover) {
213
+ background-color: var(--accent-a2);
214
+ }
215
+ }
216
+ .ui-Button:where(.r-variant-outline):where(:focus-visible) {
217
+ outline: 2px solid var(--focus-8);
218
+ outline-offset: -1px;
219
+ }
220
+ .ui-Button:where(.r-variant-outline):where(.r-high-contrast) {
221
+ box-shadow: inset 0 0 0 1px var(--accent-a7), inset 0 0 0 1px var(--gray-a11);
222
+ color: var(--accent-12);
223
+ }
224
+ .ui-Button:where(.r-variant-outline):where(:active) {
225
+ background-color: var(--accent-a4);
226
+ }
227
+ .ui-Button:where(.r-variant-outline):where([data-disabled]) {
228
+ color: var(--gray-a8);
229
+ box-shadow: inset 0 0 0 1px var(--gray-a7);
230
+ background-color: transparent;
231
+ }
232
+
233
+ /* surface */
234
+ .ui-Button:where(.r-variant-surface) {
235
+ background-color: var(--accent-surface);
236
+ box-shadow: inset 0 0 0 1px var(--accent-a7);
237
+ color: var(--accent-a11);
238
+ }
239
+ @media (hover: hover) {
240
+ .ui-Button:where(.r-variant-surface):where(:hover) {
241
+ box-shadow: inset 0 0 0 1px var(--accent-a8);
242
+ }
243
+ }
244
+ .ui-Button:where(.r-variant-surface):where(:focus-visible) {
245
+ outline: 2px solid var(--focus-8);
246
+ outline-offset: -1px;
247
+ }
248
+ .ui-Button:where(.r-variant-surface):where(.r-high-contrast) {
249
+ color: var(--accent-12);
250
+ }
251
+ .ui-Button:where(.r-variant-surface):where(:active) {
252
+ background-color: var(--accent-a4);
253
+ }
254
+ .ui-Button:where(.r-variant-surface):where([data-disabled]) {
255
+ color: var(--gray-a8);
256
+ box-shadow: inset 0 0 0 1px var(--gray-a6);
257
+ background-color: var(--gray-a2);
258
+ }
259
+
260
+ .ui-Button.ui-IconButton:where(:not(.r-variant-ghost)) {
261
+ height: var(--button-height);
262
+ width: var(--button-height);
263
+ padding: 0;
264
+ }
265
+ .ui-IconButton:where(.r-variant-ghost) {
266
+ padding: var(--icon-button-ghost-padding);
267
+ }
268
+ .ui-IconButton:where(.r-size-1) {
269
+ --icon-button-ghost-padding: var(--space-1);
270
+ }
271
+ .ui-IconButton:where(.r-size-2) {
272
+ --icon-button-ghost-padding: calc(var(--space-1) * 1.5);
273
+ }
274
+ .ui-IconButton:where(.r-size-3) {
275
+ --icon-button-ghost-padding: var(--space-2);
276
+ }
277
+ .ui-IconButton:where(.r-size-4) {
278
+ --icon-button-ghost-padding: var(--space-3);
279
+ }
280
+
281
+ .ui-Pagination {
282
+ display: flex;
283
+ align-items: center;
284
+ }
285
+ .ui-Pagination:where(.r-size-1) {
286
+ gap: var(--space-1);
287
+ }
288
+ .ui-Pagination:where(.r-size-2) {
289
+ gap: var(--space-2);
290
+ }
291
+ .ui-Pagination:where(.r-size-3) {
292
+ gap: var(--space-3);
293
+ }
294
+ .ui-Pagination:where(.r-size-4) {
295
+ gap: var(--space-4);
296
+ }
297
+ .ui-Pagination:where(.r-variant-ghost) {
298
+ gap: 0;
299
+ }
@@ -0,0 +1,69 @@
1
+
2
+ .ui-PopoverContent {
3
+ --inset-padding-top: var(--popover-content-padding);
4
+ --inset-padding-right: var(--popover-content-padding);
5
+ --inset-padding-bottom: var(--popover-content-padding);
6
+ --inset-padding-left: var(--popover-content-padding);
7
+
8
+ background-color: var(--color-panel-solid);
9
+ box-shadow: var(--shadow-5);
10
+ min-width: var(--reka-popover-trigger-width);
11
+ max-width: var(--reka-popover-content-available-width);
12
+ outline: 0;
13
+ overflow: auto;
14
+ position: relative;
15
+ padding: var(--popover-content-padding);
16
+ box-sizing: border-box;
17
+ transform-origin: var(--reka-popover-content-transform-origin);
18
+ }
19
+ .ui-PopoverContent:where([data-size="1"]) {
20
+ --popover-content-padding: var(--space-3);
21
+ border-radius: var(--radius-4);
22
+ }
23
+ .ui-PopoverContent:where([data-size="2"]) {
24
+ --popover-content-padding: var(--space-4);
25
+ border-radius: var(--radius-4);
26
+ }
27
+ .ui-PopoverContent:where([data-size="3"]) {
28
+ --popover-content-padding: var(--space-5);
29
+ border-radius: var(--radius-5);
30
+ }
31
+ .ui-PopoverContent:where([data-size="4"]) {
32
+ --popover-content-padding: var(--space-6);
33
+ border-radius: var(--radius-5);
34
+ }
35
+ @media (prefers-reduced-motion: no-preference) {
36
+ .ui-PopperContent {
37
+ animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
38
+ }
39
+ .ui-PopperContent:where([data-state='open']) {
40
+ animation-duration: 160ms;
41
+ }
42
+ .ui-PopperContent:where([data-state='open']):where([data-side='top']) {
43
+ animation-name: ui-slide-from-top, ui-fade-in;
44
+ }
45
+ .ui-PopperContent:where([data-state='open']):where([data-side='bottom']) {
46
+ animation-name: ui-slide-from-bottom, ui-fade-in;
47
+ }
48
+ .ui-PopperContent:where([data-state='open']):where([data-side='left']) {
49
+ animation-name: ui-slide-from-left, ui-fade-in;
50
+ }
51
+ .ui-PopperContent:where([data-state='open']):where([data-side='right']) {
52
+ animation-name: ui-slide-from-right, ui-fade-in;
53
+ }
54
+ .ui-PopperContent:where([data-state='closed']) {
55
+ animation-duration: 100ms;
56
+ }
57
+ .ui-PopperContent:where([data-state='closed']):where([data-side='top']) {
58
+ animation-name: ui-slide-from-top, ui-fade-out;
59
+ }
60
+ .ui-PopperContent:where([data-state='closed']):where([data-side='bottom']) {
61
+ animation-name: ui-slide-from-bottom, ui-fade-out;
62
+ }
63
+ .ui-PopperContent:where([data-state='closed']):where([data-side='left']) {
64
+ animation-name: ui-slide-from-left, ui-fade-out;
65
+ }
66
+ .ui-PopperContent:where([data-state='closed']):where([data-side='right']) {
67
+ animation-name: ui-slide-from-right, ui-fade-out;
68
+ }
69
+ }
@@ -0,0 +1,14 @@
1
+
2
+ .ui-Quota {
3
+ position: relative;
4
+ overflow: hidden;
5
+ border-radius: var(--radius-full);
6
+ width: 100%;
7
+ height: var(--space-2);
8
+ background-color: var(--slate-4);
9
+ }
10
+ .ui-QuotaValue {
11
+ border-radius: var(--radius-full);
12
+ width: 100%;
13
+ height: 100%;
14
+ }
@@ -0,0 +1,211 @@
1
+
2
+ .ui-Radio {
3
+ position: relative;
4
+ display: inline-flex;
5
+ align-items: center;
6
+ justify-content: center;
7
+ vertical-align: top;
8
+ flex-shrink: 0;
9
+ cursor: default;
10
+ width: var(--radio-size);
11
+ height: var(--radio-size);
12
+ border: none;
13
+ box-shadow: none;
14
+ }
15
+ .ui-Radio:checked {
16
+ /* reset for tailwind */
17
+ background-image: none;
18
+ }
19
+ .ui-Radio:focus {
20
+ /* reset for tailwind */
21
+ box-shadow: none;
22
+ }
23
+ .ui-Radio:where(:disabled, [data-disabled]) {
24
+ cursor: not-allowed;
25
+ }
26
+ .ui-Radio::before {
27
+ content: '';
28
+ display: block;
29
+ height: var(--radio-size);
30
+ width: var(--radio-size);
31
+ border-radius: 100%;
32
+ }
33
+ .ui-Radio::after {
34
+ pointer-events: none;
35
+ position: absolute;
36
+ height: var(--radio-size);
37
+ width: var(--radio-size);
38
+ border-radius: 100%;
39
+ /* Scale via transform to achieve perfect sub-pixel positioning */
40
+ transform: scale(0.4);
41
+ }
42
+ .ui-Radio:where(:checked, [data-state='checked'])::after {
43
+ content: '';
44
+ }
45
+ .ui-Radio:where(:focus-visible)::before {
46
+ outline: 2px solid var(--focus-8);
47
+ outline-offset: 2px;
48
+ }
49
+ .ui-Radio:where(.r-size-1) {
50
+ --radio-size: calc(var(--space-4) * 0.875);
51
+ }
52
+ .ui-Radio:where(.r-size-2) {
53
+ --radio-size: var(--space-4);
54
+ }
55
+ .ui-Radio:where(.r-size-3) {
56
+ --radio-size: calc(var(--space-4) * 1.25);
57
+ }
58
+ .ui-Radio:where(.r-variant-surface):where(:not(:checked), [data-state='unchecked'])::before {
59
+ background-color: var(--color-surface);
60
+ box-shadow: inset 0 0 0 1px var(--gray-a7);
61
+ }
62
+ .ui-Radio:where(.r-variant-surface):where(:checked, [data-state='checked'])::before {
63
+ background-color: var(--accent-indicator);
64
+ }
65
+ .ui-Radio:where(.r-variant-surface)::after {
66
+ background-color: var(--accent-contrast);
67
+ }
68
+ .ui-Radio:where(.r-variant-surface):where(.r-high-contrast):where(:checked, [data-state='checked'])::before {
69
+ background-color: var(--accent-12);
70
+ }
71
+ .ui-Radio:where(.r-variant-surface):where(.r-high-contrast)::after {
72
+ background-color: var(--accent-1);
73
+ }
74
+ .ui-Radio:where(.r-variant-surface):where(:disabled, [data-disabled])::before {
75
+ box-shadow: inset 0 0 0 1px var(--gray-a6);
76
+ background-color: var(--gray-a3);
77
+ }
78
+ .ui-Radio:where(.r-variant-surface):where(:disabled, [data-disabled])::after {
79
+ background-color: var(--gray-a8);
80
+ }
81
+ .ui-Radio:where(.r-variant-soft)::before {
82
+ background-color: var(--accent-a4);
83
+ }
84
+ .ui-Radio:where(.r-variant-soft)::after {
85
+ background-color: var(--accent-a11);
86
+ }
87
+ .ui-Radio:where(.r-variant-soft):where(.r-high-contrast)::after {
88
+ background-color: var(--accent-12);
89
+ }
90
+ .ui-Radio:where(.r-variant-soft):where(:focus-visible)::before {
91
+ outline-color: var(--accent-a8);
92
+ }
93
+ .ui-Radio:where(.r-variant-soft):where(:disabled, [data-disabled])::before {
94
+ background-color: var(--gray-a3);
95
+ }
96
+ .ui-Radio:where(.r-variant-soft):where(:disabled, [data-disabled])::after {
97
+ background-color: var(--gray-a8);
98
+ }
99
+
100
+ .ui-RadioGroupItem {
101
+ display: flex;
102
+ align-items: center;
103
+ gap: .5em;
104
+ width: -moz-fit-content;
105
+ width: fit-content;
106
+ }
107
+
108
+ .ui-Card {
109
+ display: block;
110
+ position: relative;
111
+ overflow: hidden;
112
+ font-style: normal;
113
+ text-align: start;
114
+ box-sizing: border-box;
115
+ border-radius: var(--card-border-radius);
116
+ padding: var(--card-padding);
117
+ border-color: var(--card-border-color, var(--gray-a5));
118
+ border-width: var(--card-border-width, 1px);
119
+ border-style: solid;
120
+ --inset-padding-top: var(--card-padding);
121
+ --inset-padding-right: var(--card-padding);
122
+ --inset-padding-bottom: var(--card-padding);
123
+ --inset-padding-left: var(--card-padding);
124
+ }
125
+ .ui-Card:where(:-moz-any-link, button, label):where(:hover) {
126
+ --card-border-color: var(--gray-a7);
127
+ }
128
+ .ui-Card:where(:any-link, button, label):where(:hover) {
129
+ --card-border-color: var(--gray-a7);
130
+ }
131
+ .ui-Card:where(:-moz-any-link, button, label):where(:focus-visible) {
132
+ --card-border-color: var(--focus-8);
133
+ box-shadow: 0 0 0 2px var(--accent-4), 0 1px 2px 0 rgb(0 0 0 / 0.05);
134
+ }
135
+ .ui-Card:where(:any-link, button, label):where(:focus-visible) {
136
+ --card-border-color: var(--focus-8);
137
+ box-shadow: 0 0 0 2px var(--accent-4), 0 1px 2px 0 rgb(0 0 0 / 0.05);
138
+ }
139
+ .ui-Card:where(.r-size-1) {
140
+ --card-padding: var(--space-3);
141
+ --card-border-radius: max(var(--radius-4), var(--radius-full));
142
+ }
143
+ .ui-Card:where(.r-size-2) {
144
+ --card-padding: var(--space-4);
145
+ --card-border-radius: max(var(--radius-4), var(--radius-full));
146
+ }
147
+ .ui-Card:where(.r-size-3) {
148
+ --card-padding: var(--space-5);
149
+ --card-border-radius: max(var(--radius-5), var(--radius-full));
150
+ }
151
+ .ui-Card:where(.r-size-4) {
152
+ --card-padding: var(--space-6);
153
+ --card-border-radius: max(var(--radius-5), var(--radius-full));
154
+ }
155
+ .ui-Card:where(.r-size-5) {
156
+ --card-padding: var(--space-8);
157
+ --card-border-radius: max(var(--radius-6), var(--radius-full));
158
+ }
159
+ .ui-Card:where(.r-variant-soft) {
160
+ border-color: var(--gray-2);
161
+ background-color: var(--gray-2);
162
+ }
163
+ .ui-Card:where(.r-variant-soft):where(:-moz-any-link, button, label):where(:hover) {
164
+ border-color: var(--gray-a5);
165
+ }
166
+ .ui-Card:where(.r-variant-soft):where(:any-link, button, label):where(:hover) {
167
+ border-color: var(--gray-a5);
168
+ }
169
+
170
+ .ui-RadioCardsItem .ui-Card {
171
+ width: 100%;
172
+ height: 100%;
173
+ }
174
+ .ui-RadioCardsItem:where([data-state="checked"]) .ui-Card {
175
+ --card-border-color: var(--accent-10);
176
+ box-shadow: 0 0 0 1px var(--accent-10);
177
+ }
178
+
179
+ .ui-RadioTabsList {
180
+ display: flex;
181
+ align-items: center;
182
+ box-sizing: border-box;
183
+ background-color: var(--gray-a3);
184
+ padding: var(--radio-tabs-list-padding);
185
+ border-radius: var(--radio-tabs-list-radius);
186
+ }
187
+ .ui-RadioTabsList:where(.r-size-1) {
188
+ --radio-tabs-list-padding: var(--space-1);
189
+ --radio-tabs-list-radius: var(--radius-2);
190
+ --radio-tabs-item-padding: 3px 6px;
191
+ --radio-tabs-item-radius: var(--radius-1);
192
+ }
193
+ .ui-RadioTabsList:where(.r-size-2) {
194
+ --radio-tabs-list-padding: var(--space-1);
195
+ --radio-tabs-list-radius: var(--radius-4);
196
+ --radio-tabs-item-padding: 4px 8px;
197
+ --radio-tabs-item-radius: var(--radius-2);
198
+ }
199
+ .ui-RadioTabsList [role="radio"] {
200
+ display: flex;
201
+ flex-grow: 1;
202
+ justify-content: center;
203
+ align-items: center;
204
+ padding: var(--radio-tabs-item-padding);
205
+ border-radius: var(--radio-tabs-item-radius);
206
+ }
207
+ .ui-RadioTabsList [data-state="checked"] {
208
+ color: var(--gray-12);
209
+ background-color: var(--color-background);
210
+ box-shadow: var(--shadow-2);
211
+ }