@plexui/styles 0.0.0-stage → 0.1.1

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 (84) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +28 -2
  3. package/dist/es/components/Accordion/Accordion.module.css +89 -0
  4. package/dist/es/components/Alert/Alert.module.css +210 -0
  5. package/dist/es/components/Avatar/Avatar.module.css +168 -0
  6. package/dist/es/components/Avatar/AvatarGroup.module.css +26 -0
  7. package/dist/es/components/Badge/Badge.module.css +196 -0
  8. package/dist/es/components/Breadcrumb/Breadcrumb.module.css +59 -0
  9. package/dist/es/components/Button/Button.module.css +863 -0
  10. package/dist/es/components/ButtonGroup/ButtonGroup.module.css +158 -0
  11. package/dist/es/components/Card/Card.module.css +125 -0
  12. package/dist/es/components/Checkbox/Checkbox.module.css +225 -0
  13. package/dist/es/components/CodeBlock/CodeBlock.module.css +139 -0
  14. package/dist/es/components/DataTable/DataTable.module.css +117 -0
  15. package/dist/es/components/DatePicker/Calendar.module.css +271 -0
  16. package/dist/es/components/DateRangePicker/Calendar.module.css +295 -0
  17. package/dist/es/components/DateRangePicker/Trigger.module.css +25 -0
  18. package/dist/es/components/Dialog/Dialog.module.css +240 -0
  19. package/dist/es/components/EmptyMessage/EmptyMessage.module.css +116 -0
  20. package/dist/es/components/Field/Field.module.css +152 -0
  21. package/dist/es/components/FieldError/FieldError.module.css +28 -0
  22. package/dist/es/components/FileUpload/FileUpload.module.css +133 -0
  23. package/dist/es/components/FloatingLabelInput/FloatingLabelInput.module.css +220 -0
  24. package/dist/es/components/FloatingLabelSelect/FloatingLabelSelect.module.css +152 -0
  25. package/dist/es/components/Image/Image.module.css +9 -0
  26. package/dist/es/components/Indicator/CircularProgress.module.css +28 -0
  27. package/dist/es/components/Indicator/LoadingDots.module.css +35 -0
  28. package/dist/es/components/Indicator/LoadingIndicator.module.css +41 -0
  29. package/dist/es/components/Input/Input.module.css +519 -0
  30. package/dist/es/components/InputGroup/InputGroup.module.css +309 -0
  31. package/dist/es/components/Kbd/Kbd.module.css +47 -0
  32. package/dist/es/components/Label/Label.module.css +16 -0
  33. package/dist/es/components/Markdown/Markdown.module.css +233 -0
  34. package/dist/es/components/MarkdownEditor/MarkdownEditor.module.css +297 -0
  35. package/dist/es/components/Menu/Menu.module.css +389 -0
  36. package/dist/es/components/OTPInput/OTPInput.module.css +70 -0
  37. package/dist/es/components/Popover/Popover.module.css +82 -0
  38. package/dist/es/components/Progress/Progress.module.css +34 -0
  39. package/dist/es/components/ProgressSteps/ProgressSteps.module.css +246 -0
  40. package/dist/es/components/RadioGroup/RadioGroup.module.css +159 -0
  41. package/dist/es/components/Select/Select.module.css +341 -0
  42. package/dist/es/components/SelectControl/SelectControl.module.css +558 -0
  43. package/dist/es/components/Separator/Separator.module.css +16 -0
  44. package/dist/es/components/ShimmerText/ShimmerText.module.css +43 -0
  45. package/dist/es/components/Sidebar/Sidebar.module.css +913 -0
  46. package/dist/es/components/Skeleton/Skeleton.module.css +17 -0
  47. package/dist/es/components/Slider/Slider.module.css +199 -0
  48. package/dist/es/components/StatCard/StatCard.module.css +234 -0
  49. package/dist/es/components/Switch/Switch.module.css +121 -0
  50. package/dist/es/components/Table/Table.module.css +56 -0
  51. package/dist/es/components/Tabs/Tabs.module.css +688 -0
  52. package/dist/es/components/TagInput/TagInput.module.css +320 -0
  53. package/dist/es/components/TextLink/TextLink.module.css +50 -0
  54. package/dist/es/components/Textarea/Textarea.module.css +272 -0
  55. package/dist/es/components/Toast/Toast.module.css +99 -0
  56. package/dist/es/components/Tooltip/Tooltip.module.css +91 -0
  57. package/dist/es/components/Transition/Animate.module.css +54 -0
  58. package/dist/es/components/Transition/AnimateLayout.module.css +101 -0
  59. package/dist/es/components/Transition/AnimateLayoutGroup.module.css +88 -0
  60. package/dist/es/components/Transition/TransitionGroup.module.css +4 -0
  61. package/dist/es/styles/base.css +102 -0
  62. package/dist/es/styles/globals.css +50 -0
  63. package/dist/es/styles/index.css +22 -0
  64. package/dist/es/styles/katex.min.css +1296 -0
  65. package/dist/es/styles/tailwind-utilities.css +1316 -0
  66. package/dist/es/styles/touch.css +71 -0
  67. package/dist/es/styles/variables-components.css +626 -0
  68. package/dist/es/styles/variables-primitive.css +327 -0
  69. package/dist/es/styles/variables-semantic.css +629 -0
  70. package/dist/es/styles/variables-tailwind-theme.css +34 -0
  71. package/dist/es/styles/variables-tokens-root.css +40 -0
  72. package/dist/es/types.js +4 -0
  73. package/dist/es/types.js.map +1 -0
  74. package/dist/es/vite/index.js +54 -0
  75. package/dist/es/vite/index.js.map +1 -0
  76. package/dist/types/types.d.ts +15 -0
  77. package/dist/types/vite/index.d.ts +55 -0
  78. package/package.json +109 -4
  79. package/postcss/functions.mjs +23 -0
  80. package/postcss/injectBreakpoints.mjs +47 -0
  81. package/postcss/mixins.mjs +100 -0
  82. package/postcss/parseLightDark.mjs +174 -0
  83. package/postcss/wrapModulesInLayer.mjs +21 -0
  84. package/postcss.config.mjs +52 -0
@@ -0,0 +1,558 @@
1
+ @layer components {.SelectControl {
2
+ position: relative;
3
+ display: inline-flex;
4
+ align-items: center;
5
+ justify-content: space-between;
6
+ gap: var(--select-control-gap);
7
+ flex-shrink: 0;
8
+ height: var(--select-control-size);
9
+ padding: 0 var(--select-control-gutter);
10
+ border-radius: var(--select-control-radius);
11
+ color: var(--input-text-color);
12
+ cursor: pointer;
13
+ font-size: var(--select-control-font-size);
14
+ font-weight: var(--select-control-font-weight);
15
+ line-height: var(--font-text-md-line-height);
16
+ text-align: left;
17
+ transition-duration: var(--transition-duration-basic);
18
+ transition-property: color;
19
+ transition-timing-function: var(--transition-ease-basic);
20
+ -webkit-user-select: none;
21
+ -moz-user-select: none;
22
+ user-select: none;
23
+ white-space: nowrap;
24
+ }
25
+
26
+ .SelectControl:where([data-optically-align="start"]) {
27
+ margin-inline-start: calc(var(--select-control-gutter) * -1);
28
+ }
29
+
30
+ .SelectControl:where([data-optically-align="start"])[data-pill] {
31
+ margin-inline-start: calc(
32
+ var(--select-control-gutter) * var(--control-gutter-pill-scaling) * -1
33
+ );
34
+ }
35
+
36
+ .SelectControl:where([data-optically-align="end"]) {
37
+ margin-inline-end: calc(var(--select-control-gutter) * -1);
38
+ }
39
+
40
+ .SelectControl:where([data-optically-align="end"])[data-pill] {
41
+ margin-inline-end: calc(
42
+ var(--select-control-gutter) * var(--control-gutter-pill-scaling) * -1
43
+ );
44
+ }
45
+
46
+ /* Background / shape of the button */
47
+ .SelectControl::before {
48
+ position: absolute;
49
+ inset: 0;
50
+ display: block;
51
+ border-radius: inherit;
52
+ content: "";
53
+ transition-duration: var(--transition-duration-basic);
54
+ transition-property: opacity, background-color, transform, box-shadow, border-color;
55
+ transition-timing-function: var(--transition-ease-basic);
56
+ /* Composite layer seems required in some cases to avoid visual artifacts. */
57
+ will-change: transform;
58
+ }
59
+
60
+ /* Focus ring */
61
+ .SelectControl::after {
62
+ position: absolute;
63
+ inset: 0;
64
+ display: block;
65
+ border-radius: inherit;
66
+ content: "";
67
+ pointer-events: none;
68
+ transition-duration: var(--transition-duration-basic);
69
+ transition-property: transform;
70
+ transition-timing-function: var(--transition-ease-basic);
71
+ /* Composite layer seems required in some cases to avoid visual artifacts. */
72
+ will-change: transform;
73
+ }
74
+
75
+ .SelectControl:focus {
76
+ outline: none;
77
+ }
78
+ .SelectControl:focus-visible::after {
79
+ outline: 2px solid var(--button-ring-color, var(--color-ring));
80
+ outline-offset: var(--select-control-ring-offset, 2px);
81
+ }
82
+
83
+ /* =============================================
84
+ Sizes
85
+ ============================================= */
86
+ .SelectControl:where([data-size="3xs"]) {
87
+ --select-control-size: var(--control-size-3xs);
88
+ --select-control-gutter: var(--control-gutter-2xs);
89
+ --select-control-font-size: var(--control-font-size-sm);
90
+ --select-control-gap: 4px;
91
+ --select-control-radius: var(--control-radius-sm);
92
+ --start-icon-size: var(--control-icon-size-xs);
93
+ --start-icon-offset: 0;
94
+ --start-icon-pill-offset: 0;
95
+ --clear-size: 14px;
96
+ --clear-icon-size: 13px;
97
+ --clear-iso-size: 12px;
98
+ --clear-iso-icon-size: 10px;
99
+ --clear-iso-offset: -1px;
100
+ --clear-iso-pill-offset: -2px;
101
+ --dropdown-icon-offset: 0;
102
+ --dropdown-icon-pill-offset: 0;
103
+ --dropdown-icon-width: 6px;
104
+ --dropdown-icon-height: 9px;
105
+ --dropdown-chevron-icon-width: 8px;
106
+ --dropdown-chevron-icon-height: 5px;
107
+ --indicator-wrapper-gap: calc(var(--spacing) * 1);
108
+ --indicator-wrapper-gutter: 0;
109
+ }
110
+
111
+ .SelectControl:where([data-size="2xs"]) {
112
+ --select-control-size: var(--control-size-2xs);
113
+ --select-control-gutter: var(--control-gutter-xs);
114
+ --select-control-font-size: var(--control-font-size-sm);
115
+ --select-control-gap: 6px;
116
+ --select-control-radius: var(--control-radius-sm);
117
+ --start-icon-size: var(--control-icon-size-sm);
118
+ --start-icon-offset: 0;
119
+ --start-icon-pill-offset: -1px;
120
+ --clear-size: 16px;
121
+ --clear-icon-size: 13px;
122
+ --clear-iso-size: 14px;
123
+ --clear-iso-icon-size: 12px;
124
+ --clear-iso-offset: -2px;
125
+ --clear-iso-pill-offset: -4px;
126
+ --dropdown-icon-offset: 0;
127
+ --dropdown-icon-pill-offset: 0;
128
+ --dropdown-icon-width: 6px;
129
+ --dropdown-icon-height: 9px;
130
+ --dropdown-chevron-icon-width: 8px;
131
+ --dropdown-chevron-icon-height: 5px;
132
+ --indicator-wrapper-gap: calc(var(--spacing) * 1);
133
+ --indicator-wrapper-gutter: 0;
134
+ }
135
+
136
+ .SelectControl:where([data-size="xs"]) {
137
+ --select-control-size: var(--control-size-xs);
138
+ --select-control-gutter: var(--control-gutter-xs);
139
+ --select-control-font-size: var(--control-font-size-md);
140
+ --select-control-gap: 6px;
141
+ --select-control-radius: var(--control-radius-sm);
142
+ --start-icon-size: var(--control-icon-size-sm);
143
+ --start-icon-offset: -1px;
144
+ --start-icon-pill-offset: -1px;
145
+ --clear-size: 18px;
146
+ --clear-icon-size: 14px;
147
+ --clear-iso-size: 16px;
148
+ --clear-iso-icon-size: 12px;
149
+ --clear-iso-offset: -2px;
150
+ --clear-iso-pill-offset: -4px;
151
+ --dropdown-icon-offset: 0;
152
+ --dropdown-icon-pill-offset: 0;
153
+ --dropdown-icon-width: 7px;
154
+ --dropdown-icon-height: 11px;
155
+ --dropdown-chevron-icon-width: 9px;
156
+ --dropdown-chevron-icon-height: 5px;
157
+ --indicator-wrapper-gap: calc(var(--spacing) * 1);
158
+ --indicator-wrapper-gutter: 0;
159
+ }
160
+
161
+ .SelectControl:where([data-size="sm"]) {
162
+ --select-control-size: var(--control-size-sm);
163
+ --select-control-gutter: var(--control-gutter-sm);
164
+ --select-control-font-size: var(--control-font-size-md);
165
+ --select-control-gap: 8px;
166
+ --select-control-radius: var(--control-radius-sm);
167
+ --start-icon-size: var(--control-icon-size-sm);
168
+ --start-icon-offset: -1px;
169
+ --start-icon-pill-offset: -2px;
170
+ --clear-size: 18px;
171
+ --clear-icon-size: 14px;
172
+ --clear-iso-size: 16px;
173
+ --clear-iso-icon-size: 12px;
174
+ --clear-iso-offset: -3px;
175
+ --clear-iso-pill-offset: -6px;
176
+ --dropdown-icon-offset: 0;
177
+ --dropdown-icon-pill-offset: -2px;
178
+ --dropdown-icon-width: 7px;
179
+ --dropdown-icon-height: 11px;
180
+ --dropdown-chevron-icon-width: 9px;
181
+ --dropdown-chevron-icon-height: 5px;
182
+ --indicator-wrapper-gap: calc(var(--spacing) * 1);
183
+ --indicator-wrapper-gutter: 0;
184
+ }
185
+
186
+ .SelectControl:where([data-size="md"]) {
187
+ --select-control-size: var(--control-size-md);
188
+ --select-control-gutter: var(--control-gutter-md);
189
+ --select-control-font-size: var(--control-font-size-md);
190
+ --select-control-gap: 8px;
191
+ --select-control-radius: var(--control-radius-md);
192
+ --start-icon-size: var(--control-icon-size-md);
193
+ --start-icon-offset: -1px;
194
+ --start-icon-pill-offset: -4px;
195
+ --clear-size: 22px;
196
+ --clear-icon-size: 15px;
197
+ --clear-iso-size: 18px;
198
+ --clear-iso-icon-size: 14px;
199
+ --clear-iso-offset: -4px;
200
+ --clear-iso-pill-offset: -7px;
201
+ --dropdown-icon-offset: 0;
202
+ --dropdown-icon-pill-offset: -2px;
203
+ --dropdown-icon-width: 8px;
204
+ --dropdown-icon-height: 12px;
205
+ --dropdown-chevron-icon-width: 11px;
206
+ --dropdown-chevron-icon-height: 6px;
207
+ --indicator-wrapper-gap: calc(var(--spacing) * 1);
208
+ --indicator-wrapper-gutter: calc(var(--spacing) * 0);
209
+ }
210
+
211
+ .SelectControl:where([data-size="lg"]) {
212
+ --select-control-size: var(--control-size-lg);
213
+ --select-control-gutter: var(--control-gutter-md);
214
+ --select-control-font-size: var(--control-font-size-md);
215
+ --select-control-gap: 8px;
216
+ --select-control-radius: var(--control-radius-lg);
217
+ --start-icon-size: var(--control-icon-size-md);
218
+ --start-icon-offset: -2px;
219
+ --start-icon-pill-offset: -4px;
220
+ --clear-size: 22px;
221
+ --clear-icon-size: 15px;
222
+ --clear-iso-size: 18px;
223
+ --clear-iso-icon-size: 14px;
224
+ --clear-iso-offset: -2px;
225
+ --clear-iso-pill-offset: -6px;
226
+ --dropdown-icon-offset: 0;
227
+ --dropdown-icon-pill-offset: -2px;
228
+ --dropdown-icon-width: 8px;
229
+ --dropdown-icon-height: 12px;
230
+ --dropdown-chevron-icon-width: 11px;
231
+ --dropdown-chevron-icon-height: 6px;
232
+ --indicator-wrapper-gap: calc(var(--spacing) * 1.5);
233
+ --indicator-wrapper-gutter: calc(var(--spacing) * 0);
234
+ }
235
+
236
+ .SelectControl:where([data-size="xl"]) {
237
+ --select-control-size: var(--control-size-xl);
238
+ --select-control-gutter: var(--control-gutter-lg);
239
+ --select-control-font-size: var(--control-font-size-md);
240
+ --select-control-gap: 8px;
241
+ --select-control-radius: var(--control-radius-xl);
242
+ --start-icon-size: var(--control-icon-size-md);
243
+ --start-icon-offset: -2px;
244
+ --start-icon-pill-offset: -4px;
245
+ --clear-size: 24px;
246
+ --clear-icon-size: 16px;
247
+ --clear-iso-size: 18px;
248
+ --clear-iso-icon-size: 14px;
249
+ --clear-iso-offset: -2px;
250
+ --clear-iso-pill-offset: -7px;
251
+ --dropdown-icon-offset: 0;
252
+ --dropdown-icon-pill-offset: -2px;
253
+ --dropdown-icon-width: 8px;
254
+ --dropdown-icon-height: 12px;
255
+ --dropdown-chevron-icon-width: 11px;
256
+ --dropdown-chevron-icon-height: 6px;
257
+ --indicator-wrapper-gap: calc(var(--spacing) * 1);
258
+ --indicator-wrapper-gutter: calc(var(--spacing) * 0.5);
259
+ }
260
+
261
+ .SelectControl:where([data-size="2xl"]) {
262
+ --select-control-size: var(--control-size-2xl);
263
+ --select-control-gutter: var(--control-gutter-lg);
264
+ --select-control-font-size: var(--control-font-size-lg);
265
+ --select-control-gap: 10px;
266
+ --select-control-radius: var(--control-radius-xl);
267
+ --start-icon-size: var(--control-icon-size-lg);
268
+ --start-icon-offset: -2px;
269
+ --start-icon-pill-offset: -4px;
270
+ --clear-size: 24px;
271
+ --clear-icon-size: 16px;
272
+ --clear-iso-size: 20px;
273
+ --clear-iso-icon-size: 15px;
274
+ --clear-iso-offset: -2px;
275
+ --clear-iso-pill-offset: -7px;
276
+ --dropdown-icon-offset: 0;
277
+ --dropdown-icon-pill-offset: -2px;
278
+ --dropdown-icon-width: 8px;
279
+ --dropdown-icon-height: 12px;
280
+ --dropdown-chevron-icon-width: 11px;
281
+ --dropdown-chevron-icon-height: 6px;
282
+ --indicator-wrapper-gap: calc(var(--spacing) * 1.5);
283
+ --indicator-wrapper-gutter: calc(var(--spacing) * 1);
284
+ }
285
+
286
+ .SelectControl:where([data-size="3xl"]) {
287
+ --select-control-size: var(--control-size-3xl);
288
+ --select-control-gutter: var(--control-gutter-xl);
289
+ --select-control-font-size: var(--control-font-size-lg);
290
+ --select-control-gap: 10px;
291
+ --select-control-radius: var(--control-radius-xl);
292
+ --start-icon-size: var(--control-icon-size-lg);
293
+ --start-icon-offset: -2px;
294
+ --start-icon-pill-offset: -4px;
295
+ --clear-size: 24px;
296
+ --clear-icon-size: 16px;
297
+ --clear-iso-size: 20px;
298
+ --clear-iso-icon-size: 15px;
299
+ --clear-iso-offset: -2px;
300
+ --clear-iso-pill-offset: -7px;
301
+ --dropdown-icon-offset: 0;
302
+ --dropdown-icon-pill-offset: -3px;
303
+ --dropdown-icon-width: 9px;
304
+ --dropdown-icon-height: 13px;
305
+ --dropdown-chevron-icon-width: 12px;
306
+ --dropdown-chevron-icon-height: 7px;
307
+ --indicator-wrapper-gap: calc(var(--spacing) * 1.5);
308
+ --indicator-wrapper-gutter: calc(var(--spacing) * 1);
309
+ }
310
+
311
+ /* =============================================
312
+ Pill
313
+ ============================================= */
314
+ .SelectControl:where([data-pill]) {
315
+ --select-control-radius: var(--radius-full);
316
+
317
+ padding: 0 calc(var(--select-control-gutter) * var(--control-gutter-pill-scaling));
318
+ }
319
+
320
+ /* =============================================
321
+ Block
322
+ ============================================= */
323
+ .SelectControl:where([data-block]) {
324
+ width: 100%;
325
+ }
326
+
327
+ /* =============================================
328
+ Ghost variant
329
+ ============================================= */
330
+ .SelectControl[data-variant="ghost"] {
331
+ --select-control-background-color: var(--color-background-primary-ghost-hover);
332
+ --select-control-ring-offset: -1px;
333
+ }
334
+
335
+ .SelectControl[data-variant="ghost"]::before {
336
+ background-color: var(--select-control-background-color);
337
+ opacity: 0;
338
+ transform: scale(var(--scale));
339
+ }
340
+ .SelectControl[data-variant="ghost"][aria-expanded="true"]::before, .SelectControl[data-variant="ghost"][data-state="open"]::before {
341
+ opacity: 0.6;
342
+ transform: scale(1);
343
+ }
344
+ @media (hover: hover) and (pointer: fine) {
345
+ .SelectControl[data-variant="ghost"]:where(:not([data-disabled])):hover::before {
346
+ opacity: 1;
347
+ transform: scale(1);
348
+ }
349
+ }
350
+ .SelectControl[data-variant="ghost"]:where(:not([data-disabled])):not(:has(button:active)):active::before {
351
+ --select-control-background-color: var(--color-background-primary-ghost-active);
352
+
353
+ opacity: 1;
354
+ transform: scale(var(--scale));
355
+ }
356
+
357
+ .SelectControl[data-variant="ghost"]:where(:not([data-disabled])):not(:has(button:active)):active::after {
358
+ transform: scale(var(--scale));
359
+ }
360
+ .SelectControl[data-variant="ghost"]:where(:not([data-disabled]))[data-invalid]::before {
361
+ --select-control-background-color: transparent;
362
+
363
+ box-shadow: 0 0 0 1px var(--input-border-color-invalid) inset;
364
+ opacity: 1;
365
+ transform: scale(1);
366
+ }
367
+
368
+ @media (hover: hover) and (pointer: fine) {
369
+ .SelectControl[data-variant="ghost"]:where(:not([data-disabled]))[data-invalid]:hover::before {
370
+ --select-control-background-color: var(--color-background-primary-ghost-hover);
371
+ }
372
+ }
373
+
374
+ /* =============================================
375
+ Soft variant
376
+ ============================================= */
377
+ .SelectControl[data-variant="soft"] {
378
+ --select-control-background-color: var(--color-background-primary-soft-alpha);
379
+ }
380
+
381
+ .SelectControl[data-variant="soft"]::before {
382
+ background-color: var(--select-control-background-color);
383
+ }
384
+ .SelectControl[data-variant="soft"][aria-expanded="true"]::before, .SelectControl[data-variant="soft"][data-state="open"]::before {
385
+ --select-control-background-color: var(--color-background-primary-soft-alpha-hover);
386
+ }
387
+ @media (hover: hover) and (pointer: fine) {
388
+ .SelectControl[data-variant="soft"]:where(:not([data-disabled])):hover::before {
389
+ --select-control-background-color: var(--color-background-primary-soft-alpha-hover);
390
+ }
391
+ }
392
+ .SelectControl[data-variant="soft"]:where(:not([data-disabled])):not(:has(button:active)):active::before {
393
+ --select-control-background-color: var(--color-background-primary-soft-alpha-active);
394
+ }
395
+
396
+ .SelectControl[data-variant="soft"]:where(:not([data-disabled])):not(:has(button:active)):active::before,
397
+ .SelectControl[data-variant="soft"]:where(:not([data-disabled])):not(:has(button:active)):active::after {
398
+ transform: scale(var(--scale));
399
+ }
400
+
401
+ .SelectControl[data-variant="soft"]:where(:not([data-disabled]))[data-invalid]::before {
402
+ box-shadow: 0 0 0 1px var(--input-border-color-invalid) inset;
403
+ }
404
+
405
+ /* =============================================
406
+ Outline variant
407
+ ============================================= */
408
+ .SelectControl[data-variant="outline"] {
409
+ --select-control-border-color: var(--input-outline-border-color);
410
+ --select-control-ring-offset: -1px;
411
+ }
412
+
413
+ .SelectControl[data-variant="outline"]::before {
414
+ background-color: transparent;
415
+ box-shadow: 0 0 0 1px var(--select-control-border-color) inset;
416
+ }
417
+
418
+ .SelectControl[data-variant="outline"][aria-expanded="true"],
419
+ .SelectControl[data-variant="outline"][data-state="open"] {
420
+ --select-control-border-color: var(--input-outline-border-color-hover);
421
+ }
422
+ @media (hover: hover) and (pointer: fine) {.SelectControl[data-variant="outline"]:where(:not([data-disabled])):hover {
423
+ --select-control-border-color: var(--input-outline-border-color-hover);
424
+ }
425
+ }
426
+ .SelectControl[data-variant="outline"]:where(:not([data-disabled])):not(:has(button:active)):active::before {
427
+ transform: scale(var(--scale));
428
+ }
429
+
430
+ .SelectControl[data-variant="outline"]:where(:not([data-disabled])):not(:has(button:active)):active::after {
431
+ transform: scale(var(--scale));
432
+ }
433
+
434
+ .SelectControl[data-variant="outline"]:where(:not([data-disabled]))[data-invalid]::before {
435
+ --select-control-border-color: var(--input-border-color-invalid);
436
+ }
437
+
438
+ /* =============================================
439
+ Invalid
440
+ ============================================= */
441
+ .SelectControl:where([data-invalid]) {
442
+ --button-ring-color: var(--color-ring-danger);
443
+ }
444
+
445
+ /* =============================================
446
+ Hover
447
+ ============================================= */
448
+ @media (hover: hover) and (pointer: fine) {
449
+ .SelectControl:not([data-disabled]):hover .Clear,
450
+ .SelectControl:not([data-disabled]):hover .DropdownIcon {
451
+ opacity: 1;
452
+ }
453
+ }
454
+
455
+ /* =============================================
456
+ Placeholder (e.g., "not `selected`")
457
+ ============================================= */
458
+ .SelectControl[data-selected="false"] {
459
+ color: var(--input-placeholder-text-color);
460
+ font-weight: var(--font-weight-normal);
461
+ }
462
+
463
+ /* =============================================
464
+ Disabled
465
+ ============================================= */
466
+ .SelectControl[data-disabled][data-variant] {
467
+ /* Matches disabled styling of Buttons, which is nice. */
468
+ --select-control-background-color: var(--color-background-disabled);
469
+ --select-control-border-color: var(--color-border-disabled);
470
+
471
+ color: var(--color-text-disabled);
472
+ cursor: not-allowed;
473
+ }
474
+
475
+ .SelectControl[data-disabled][data-variant] .DropdownIcon {
476
+ color: var(--color-text-disabled);
477
+ }
478
+
479
+ /* Don't press while disabled */
480
+ .SelectControl[data-disabled][data-variant]:active::before {
481
+ transform: scale(1);
482
+ }.TriggerText {
483
+ position: relative;
484
+ overflow: hidden;
485
+ flex: 1;
486
+ max-width: 100%;
487
+ color: inherit;
488
+ text-overflow: ellipsis;
489
+ white-space: nowrap;
490
+ }.IndicatorWrapper {
491
+ position: relative;
492
+ display: flex;
493
+ align-items: center;
494
+ gap: var(--indicator-wrapper-gap);
495
+ padding-left: var(--indicator-wrapper-gutter);
496
+ }.StartIcon {
497
+ position: relative;
498
+ width: var(--start-icon-size);
499
+ height: var(--start-icon-size);
500
+ margin-left: var(--start-icon-offset);
501
+ }
502
+
503
+ :where(.SelectControl[data-pill]) .StartIcon {
504
+ margin-left: var(--start-icon-pill-offset);
505
+ }.Clear {
506
+ --button-size: var(--clear-size);
507
+ --button-icon-size: var(--clear-icon-size);
508
+
509
+ position: relative;
510
+ opacity: 0.75;
511
+ }
512
+
513
+ .Clear[data-variant="solid"] {
514
+ --button-size: var(--clear-iso-size);
515
+ --button-icon-size: var(--clear-iso-icon-size);
516
+ }
517
+
518
+ [data-state="open"] .Clear,
519
+ .Clear:focus-visible {
520
+ opacity: 1;
521
+ }
522
+
523
+ .Clear[data-only-child] {
524
+ margin-right: var(--clear-iso-offset);
525
+ }
526
+
527
+ :where(.SelectControl[data-pill]) .Clear[data-only-child] {
528
+ margin-right: var(--clear-iso-pill-offset);
529
+ }.DropdownIcon {
530
+ position: relative;
531
+ width: var(--dropdown-icon-width, 8px);
532
+ height: var(--dropdown-icon-height, 12px);
533
+ margin-right: var(--dropdown-icon-offset);
534
+ color: var(--color-text-secondary);
535
+ opacity: 0.75;
536
+ transition-duration: var(--transition-duration-basic);
537
+ transition-property: opacity;
538
+ transition-timing-function: var(--transition-ease-basic);
539
+ will-change: opacity;
540
+ }
541
+
542
+ :where(.SelectControl[data-pill]) .DropdownIcon {
543
+ margin-right: var(--dropdown-icon-pill-offset);
544
+ }
545
+
546
+ [data-state="open"] .DropdownIcon {
547
+ opacity: 1;
548
+ }.DropdownIconChevron {
549
+ width: var(--dropdown-chevron-icon-width, 11px);
550
+ height: var(--dropdown-chevron-icon-height, 6px);
551
+ }/* Shares margin offset with dropdown indicator */.LoadingIndicator {
552
+ margin-right: var(--dropdown-icon-offset);
553
+ }
554
+
555
+ :where(.SelectControl[data-pill]) .LoadingIndicator {
556
+ margin-right: var(--dropdown-icon-pill-offset);
557
+ }
558
+ }
@@ -0,0 +1,16 @@
1
+ @layer components {.Separator {
2
+ flex-shrink: 0;
3
+ background: var(--separator-color);
4
+ }
5
+
6
+ .Separator[data-orientation="horizontal"] {
7
+ width: 100%;
8
+ height: var(--separator-thickness);
9
+ }
10
+
11
+ .Separator[data-orientation="vertical"] {
12
+ width: var(--separator-thickness);
13
+ height: 100%;
14
+ min-height: 1em;
15
+ }
16
+ }
@@ -0,0 +1,43 @@
1
+ @layer components {.Shimmer {
2
+
3
+ display: inline-block;
4
+ animation-delay: 0.6s;
5
+ animation-duration: 3s;
6
+ animation-iteration-count: infinite;
7
+ animation-name: shimmer;
8
+ background: currentcolor
9
+ linear-gradient(to left, currentcolor, var(--shimmer-highlight) 50%, currentcolor);
10
+ -webkit-background-clip: text;
11
+ background-clip: text;
12
+ background-position: -100% top;
13
+ background-repeat: no-repeat;
14
+ background-size: 50% 200%;
15
+ -webkit-text-fill-color: transparent;
16
+ }.Shimmer, :where([data-theme="light"]) .Shimmer {
17
+
18
+ --shimmer-highlight: var(--gray-200);
19
+ }:where([data-theme="dark"]) .Shimmer {
20
+
21
+ --shimmer-highlight: var(--gray-900);
22
+ }
23
+
24
+ /* Preference: disable animations entirely, rather than leaving potentially *many* animations paused in the DOM. */
25
+ .Shimmer[data-idle] {
26
+ animation: none;
27
+ background: none;
28
+ background-clip: unset;
29
+ -webkit-text-fill-color: unset;
30
+ }@keyframes shimmer {
31
+ 0% {
32
+ background-position: -100% top;
33
+ }
34
+
35
+ 70% {
36
+ background-position: 250% top;
37
+ }
38
+
39
+ 100% {
40
+ background-position: 250% top;
41
+ }
42
+ }
43
+ }