@plexui/styles 0.0.0-stage → 0.1.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 (83) 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 +386 -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 +338 -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/variables-components.css +626 -0
  67. package/dist/es/styles/variables-primitive.css +327 -0
  68. package/dist/es/styles/variables-semantic.css +629 -0
  69. package/dist/es/styles/variables-tailwind-theme.css +34 -0
  70. package/dist/es/styles/variables-tokens-root.css +40 -0
  71. package/dist/es/types.js +4 -0
  72. package/dist/es/types.js.map +1 -0
  73. package/dist/es/vite/index.js +54 -0
  74. package/dist/es/vite/index.js.map +1 -0
  75. package/dist/types/types.d.ts +15 -0
  76. package/dist/types/vite/index.d.ts +55 -0
  77. package/package.json +109 -4
  78. package/postcss/functions.mjs +23 -0
  79. package/postcss/injectBreakpoints.mjs +47 -0
  80. package/postcss/mixins.mjs +100 -0
  81. package/postcss/parseLightDark.mjs +174 -0
  82. package/postcss/wrapModulesInLayer.mjs +21 -0
  83. package/postcss.config.mjs +52 -0
@@ -0,0 +1,863 @@
1
+ @layer components {.Button {
2
+ position: relative;
3
+ display: inline-block;
4
+ gap: var(--button-gap);
5
+ /* Propagates down to .ButtonInner */
6
+ flex-shrink: 0;
7
+ height: var(--button-size);
8
+ padding: 0 var(--button-gutter);
9
+ border-radius: var(--button-radius);
10
+ cursor: pointer;
11
+ font-size: var(--button-font-size);
12
+ font-weight: var(--button-font-weight);
13
+ line-height: 1;
14
+ transition-duration: var(--transition-duration-basic);
15
+ transition-property: opacity, color;
16
+ transition-timing-function: var(--transition-ease-basic);
17
+ -webkit-user-select: none;
18
+ -moz-user-select: none;
19
+ user-select: none;
20
+ white-space: nowrap;
21
+
22
+ /* =============================================
23
+ Disabled
24
+ ============================================= */
25
+ }
26
+
27
+ /* Background / shape of the button */
28
+ .Button::before {
29
+ position: absolute;
30
+ inset: 0;
31
+ display: block;
32
+ border-radius: inherit;
33
+ content: "";
34
+ transition-duration: var(--transition-duration-basic);
35
+ transition-property: opacity, background-color, transform, box-shadow, border-color;
36
+ transition-timing-function: var(--transition-ease-basic);
37
+ /* Composite layer seems required in some cases to avoid visual artifacts. */
38
+ will-change: transform;
39
+ }
40
+
41
+ /* Focus ring */
42
+ .Button::after {
43
+ position: absolute;
44
+ inset: 0;
45
+ display: block;
46
+ border-radius: inherit;
47
+ content: "";
48
+ pointer-events: none;
49
+ transition-duration: var(--transition-duration-basic);
50
+ transition-property: transform;
51
+ transition-timing-function: var(--transition-ease-basic);
52
+ /* Composite layer seems required in some cases to avoid visual artifacts. */
53
+ will-change: transform;
54
+ }
55
+
56
+ .Button:focus {
57
+ outline: none;
58
+ }
59
+ .Button:focus-visible::after {
60
+ outline: 2px solid var(--button-ring-color, var(--color-ring));
61
+ outline-offset: var(--button-ring-offset, 2px);
62
+ }
63
+
64
+ .Button svg:where(:not([data-no-autosize])) {
65
+ display: block;
66
+ /* Ensure it's not inline (overriding some resets) */
67
+ width: var(--button-icon-size);
68
+ height: var(--button-icon-size);
69
+ flex-shrink: 0;
70
+ }
71
+
72
+ :where(.Button svg:where(:not([data-no-autosize])):first-child:not(:only-child)) {
73
+ margin-left: var(--button-icon-offset, -1px);
74
+ }
75
+
76
+ :where(.Button svg:where(:not([data-no-autosize])):last-child:not(:only-child)) {
77
+ margin-right: var(--button-icon-offset, -1px);
78
+ }
79
+
80
+ /* =============================================
81
+ Optical alignment
82
+ ============================================= */
83
+ .Button:where([data-optically-align="start"]) {
84
+ margin-inline-start: calc(var(--button-gutter) * -1);
85
+ }
86
+
87
+ .Button:where([data-optically-align="start"])[data-pill] {
88
+ margin-inline-start: calc(var(--button-gutter) * var(--control-gutter-pill-scaling) * -1);
89
+ }
90
+
91
+ .Button:where([data-optically-align="end"]) {
92
+ margin-inline-end: calc(var(--button-gutter) * -1);
93
+ }
94
+
95
+ .Button:where([data-optically-align="end"])[data-pill] {
96
+ margin-inline-end: calc(var(--button-gutter) * var(--control-gutter-pill-scaling) * -1);
97
+ }
98
+
99
+ /* Uniform buttons zero-out button-gutter, requiring custom calcs */
100
+ .Button:where([data-optically-align="start"][data-uniform]) {
101
+ margin-inline-start: calc(((var(--button-size) - var(--button-icon-size)) / 2) * -1);
102
+ }
103
+
104
+ .Button:where([data-optically-align="end"][data-uniform]) {
105
+ margin-inline-end: calc(((var(--button-size) - var(--button-icon-size)) / 2) * -1);
106
+ }
107
+
108
+ /* =============================================
109
+ Sizes
110
+ ============================================= */
111
+ .Button:where([data-size="3xs"]) {
112
+ --button-size: var(--control-size-3xs);
113
+ --button-gutter: var(--control-gutter-2xs);
114
+ --button-font-size: var(--control-font-size-sm);
115
+ --button-icon-size: var(--control-icon-size-xs);
116
+ --button-gap: var(--button-gap-sm);
117
+ --button-radius: var(--control-radius-sm);
118
+ --button-icon-offset: -1px;
119
+ --indicator-size: 11px;
120
+ --circular-progress-size: 11px;
121
+ }
122
+
123
+ .Button:where([data-size="2xs"]) {
124
+ --button-size: var(--control-size-2xs);
125
+ --button-gutter: var(--control-gutter-xs);
126
+ --button-font-size: var(--control-font-size-sm);
127
+ --button-icon-size: var(--control-icon-size-sm);
128
+ --button-gap: var(--button-gap-md);
129
+ --button-radius: var(--control-radius-sm);
130
+ --button-icon-offset: -1px;
131
+ --indicator-size: 12px;
132
+ --circular-progress-size: 12px;
133
+ }
134
+
135
+ .Button:where([data-size="xs"]) {
136
+ --button-size: var(--control-size-xs);
137
+ --button-gutter: var(--control-gutter-xs);
138
+ --button-font-size: var(--control-font-size-md);
139
+ --button-icon-size: var(--control-icon-size-sm);
140
+ --button-gap: var(--button-gap-md);
141
+ --button-radius: var(--control-radius-sm);
142
+ --button-icon-offset: -1px;
143
+ --indicator-size: 13px;
144
+ --circular-progress-size: 14px;
145
+ }
146
+
147
+ .Button:where([data-size="sm"]) {
148
+ --button-size: var(--control-size-sm);
149
+ --button-gutter: var(--control-gutter-sm);
150
+ --button-font-size: var(--control-font-size-md);
151
+ --button-icon-size: var(--control-icon-size-md);
152
+ --button-gap: var(--button-gap-md);
153
+ --button-radius: var(--control-radius-sm);
154
+ --button-icon-offset: -1px;
155
+ --indicator-size: 15px;
156
+ --circular-progress-size: 15px;
157
+ }
158
+
159
+ .Button:where([data-size="md"]) {
160
+ --button-size: var(--control-size-md);
161
+ --button-gutter: var(--control-gutter-md);
162
+ --button-font-size: var(--control-font-size-md);
163
+ --button-icon-size: var(--control-icon-size-md);
164
+ --button-gap: var(--button-gap-lg);
165
+ --button-radius: var(--control-radius-md);
166
+ --button-icon-offset: -1px;
167
+ --indicator-size: 16px;
168
+ --circular-progress-size: 16px;
169
+ }
170
+
171
+ .Button:where([data-size="lg"]) {
172
+ --button-size: var(--control-size-lg);
173
+ --button-gutter: var(--control-gutter-md);
174
+ --button-font-size: var(--control-font-size-md);
175
+ --button-icon-size: var(--control-icon-size-md);
176
+ --button-gap: var(--button-gap-lg);
177
+ --button-radius: var(--control-radius-lg);
178
+ --button-icon-offset: -1px;
179
+ --indicator-size: 16px;
180
+ --circular-progress-size: 16px;
181
+ }
182
+
183
+ .Button:where([data-size="xl"]) {
184
+ --button-size: var(--control-size-xl);
185
+ --button-gutter: var(--control-gutter-lg);
186
+ --button-font-size: var(--control-font-size-md);
187
+ --button-icon-size: var(--control-icon-size-md);
188
+ --button-gap: var(--button-gap-lg);
189
+ --button-radius: var(--control-radius-xl);
190
+ --button-icon-offset: -1px;
191
+ --indicator-size: 18px;
192
+ --circular-progress-size: 18px;
193
+ }
194
+
195
+ .Button:where([data-size="2xl"]) {
196
+ --button-size: var(--control-size-2xl);
197
+ --button-gutter: var(--control-gutter-lg);
198
+ --button-font-size: var(--control-font-size-lg);
199
+ --button-icon-size: var(--control-icon-size-lg);
200
+ --button-gap: var(--button-gap-lg);
201
+ --button-radius: var(--control-radius-xl);
202
+ --button-icon-offset: -2px;
203
+ --indicator-size: 18px;
204
+ --circular-progress-size: 18px;
205
+ }
206
+
207
+ .Button:where([data-size="3xl"]) {
208
+ --button-size: var(--control-size-3xl);
209
+ --button-gutter: var(--control-gutter-xl);
210
+ --button-font-size: var(--control-font-size-lg);
211
+ --button-icon-size: var(--control-icon-size-lg);
212
+ --button-gap: var(--button-gap-lg);
213
+ --button-radius: var(--control-radius-xl);
214
+ --button-icon-offset: -2px;
215
+ --indicator-size: 20px;
216
+ --circular-progress-size: 20px;
217
+ }
218
+
219
+ /* =============================================
220
+ Gutter sizes
221
+ ============================================= */
222
+ .Button:where([data-gutter-size="3xs"]) {
223
+ --button-gutter: 0.25rem; /* 4px, below the smallest control gutter */
224
+ }
225
+
226
+ .Button:where([data-gutter-size="2xs"]) {
227
+ --button-gutter: var(--control-gutter-2xs);
228
+ }
229
+
230
+ .Button:where([data-gutter-size="xs"]) {
231
+ --button-gutter: var(--control-gutter-xs);
232
+ }
233
+
234
+ .Button:where([data-gutter-size="sm"]) {
235
+ --button-gutter: var(--control-gutter-sm);
236
+ }
237
+
238
+ .Button:where([data-gutter-size="md"]) {
239
+ --button-gutter: var(--control-gutter-md);
240
+ }
241
+
242
+ .Button:where([data-gutter-size="lg"]) {
243
+ --button-gutter: var(--control-gutter-lg);
244
+ }
245
+
246
+ .Button:where([data-gutter-size="xl"]) {
247
+ --button-gutter: var(--control-gutter-xl);
248
+ }
249
+
250
+ /* =============================================
251
+ Icon sizes
252
+ ============================================= */
253
+ .Button:where([data-icon-size="sm"]) {
254
+ --button-icon-size: var(--control-icon-size-sm);
255
+ }
256
+
257
+ .Button:where([data-icon-size="md"]) {
258
+ --button-icon-size: var(--control-icon-size-md);
259
+ }
260
+
261
+ .Button:where([data-icon-size="lg"]) {
262
+ --button-icon-size: var(--control-icon-size-lg);
263
+ }
264
+
265
+ .Button:where([data-icon-size="xl"]) {
266
+ --button-icon-size: var(--control-icon-size-xl);
267
+ }
268
+
269
+ .Button:where([data-icon-size="2xl"]) {
270
+ --button-icon-size: var(--control-icon-size-2xl);
271
+ }
272
+
273
+ /* =============================================
274
+ Pill
275
+ ============================================= */
276
+ .Button:where([data-pill]) {
277
+ --button-radius: var(--radius-full);
278
+
279
+ padding: 0 calc(var(--button-gutter) * var(--control-gutter-pill-scaling));
280
+ }
281
+
282
+ /* =============================================
283
+ Block
284
+ ============================================= */
285
+ .Button:where([data-block]) {
286
+ width: 100%;
287
+ }
288
+
289
+ /* =============================================
290
+ Uniform
291
+ ============================================= */
292
+ .Button[data-uniform] {
293
+ --button-gutter: 0;
294
+
295
+ width: var(--button-size);
296
+ }
297
+
298
+ /* =============================================
299
+ Ghost variant
300
+ ============================================= */
301
+ .Button[data-variant="ghost"] {
302
+ --button-ring-offset: -1px;
303
+
304
+ color: var(--button-text-color);
305
+ }
306
+
307
+ .Button[data-variant="ghost"]::before {
308
+ background-color: var(--button-background-color);
309
+ opacity: 0;
310
+ transform: scale(var(--scale));
311
+ }
312
+
313
+ .Button[data-variant="ghost"][aria-expanded="true"],
314
+ .Button[data-variant="ghost"][data-state="open"] {
315
+ color: var(--button-text-color-hover);
316
+ }
317
+
318
+ .Button[data-variant="ghost"][aria-expanded="true"]::before, .Button[data-variant="ghost"][data-state="open"]::before {
319
+ /* Slightly deemphasize */
320
+ opacity: 0.6;
321
+ transform: scale(1);
322
+ }
323
+
324
+ .Button[data-variant="ghost"][data-selected] {
325
+ color: var(--button-text-color-hover);
326
+ }
327
+
328
+ .Button[data-variant="ghost"][data-selected]::before {
329
+ opacity: 1;
330
+ transform: scale(1);
331
+ }
332
+ @media (hover: hover) and (pointer: fine) {.Button[data-variant="ghost"]:where(:not([data-disabled])):hover {
333
+ color: var(--button-text-color-hover);
334
+ }
335
+
336
+ .Button[data-variant="ghost"]:where(:not([data-disabled])):hover::before {
337
+ opacity: 1;
338
+ transform: scale(1);
339
+ }
340
+ }
341
+ .Button[data-variant="ghost"]:where(:not([data-disabled])):active::before {
342
+ background-color: var(--button-background-color-active);
343
+ opacity: 1;
344
+ transform: scale(var(--scale));
345
+ }
346
+
347
+ .Button[data-variant="ghost"]:where(:not([data-disabled])):active::after {
348
+ transform: scale(var(--scale));
349
+ }
350
+
351
+ .Button[data-variant="ghost"]:where([data-color="primary"]) {
352
+ --button-background-color: var(--color-background-primary-ghost-hover);
353
+ --button-background-color-active: var(--color-background-primary-ghost-active);
354
+ --button-text-color: var(--color-text-primary-ghost);
355
+ --button-text-color-hover: var(--color-text-primary-ghost-hover);
356
+ --button-ring-color: var(--color-ring-primary-ghost);
357
+ }
358
+
359
+ .Button[data-variant="ghost"]:where([data-color="secondary"]) {
360
+ --button-background-color: var(--color-background-secondary-ghost-hover);
361
+ --button-background-color-active: var(--color-background-secondary-ghost-active);
362
+ --button-text-color: var(--color-text-secondary-ghost);
363
+ --button-text-color-hover: var(--color-text-secondary-ghost-hover);
364
+ --button-ring-color: var(--color-ring-secondary-ghost);
365
+ }
366
+
367
+ .Button[data-variant="ghost"]:where([data-color="danger"]) {
368
+ --button-background-color: var(--color-background-danger-ghost-hover);
369
+ --button-background-color-active: var(--color-background-danger-ghost-active);
370
+ --button-text-color: var(--color-text-danger-ghost);
371
+ --button-text-color-hover: var(--color-text-danger-ghost-hover);
372
+ --button-ring-color: var(--color-ring-danger-ghost);
373
+ }
374
+
375
+ .Button[data-variant="ghost"]:where([data-color="success"]) {
376
+ --button-background-color: var(--color-background-success-ghost-hover);
377
+ --button-background-color-active: var(--color-background-success-ghost-active);
378
+ --button-text-color: var(--color-text-success-ghost);
379
+ --button-text-color-hover: var(--color-text-success-ghost-hover);
380
+ --button-ring-color: var(--color-ring-success-ghost);
381
+ }
382
+
383
+ .Button[data-variant="ghost"]:where([data-color="warning"]) {
384
+ --button-background-color: var(--color-background-warning-ghost-hover);
385
+ --button-background-color-active: var(--color-background-warning-ghost-active);
386
+ --button-text-color: var(--color-text-warning-ghost);
387
+ --button-text-color-hover: var(--color-text-warning-ghost-hover);
388
+ --button-ring-color: var(--color-ring-warning-ghost);
389
+ }
390
+
391
+ .Button[data-variant="ghost"]:where([data-color="caution"]) {
392
+ --button-background-color: var(--color-background-caution-ghost-hover);
393
+ --button-background-color-active: var(--color-background-caution-ghost-active);
394
+ --button-text-color: var(--color-text-caution-ghost);
395
+ --button-text-color-hover: var(--color-text-caution-ghost-hover);
396
+ --button-ring-color: var(--color-ring-caution-ghost);
397
+ }
398
+
399
+ .Button[data-variant="ghost"]:where([data-color="info"]) {
400
+ --button-background-color: var(--color-background-info-ghost-hover);
401
+ --button-background-color-active: var(--color-background-info-ghost-active);
402
+ --button-text-color: var(--color-text-info-ghost);
403
+ --button-text-color-hover: var(--color-text-info-ghost-hover);
404
+ --button-ring-color: var(--color-ring-info-ghost);
405
+ }
406
+
407
+ .Button[data-variant="ghost"]:where([data-color="discovery"]) {
408
+ --button-background-color: var(--color-background-discovery-ghost-hover);
409
+ --button-background-color-active: var(--color-background-discovery-ghost-active);
410
+ --button-text-color: var(--color-text-discovery-ghost);
411
+ --button-text-color-hover: var(--color-text-discovery-ghost-hover);
412
+ --button-ring-color: var(--color-ring-discovery-ghost);
413
+ }
414
+
415
+ /* =============================================
416
+ Solid variant
417
+ ============================================= */
418
+ .Button[data-variant="solid"] {
419
+ color: var(--button-text-color);
420
+ }
421
+
422
+ .Button[data-variant="solid"]::before {
423
+ background-color: var(--button-background-color);
424
+ }
425
+ .Button[data-variant="solid"][aria-expanded="true"]::before, .Button[data-variant="solid"][data-state="open"]::before, .Button[data-variant="solid"][data-selected]::before {
426
+ background-color: var(--button-background-color-hover);
427
+ }
428
+ @media (hover: hover) and (pointer: fine) {
429
+ .Button[data-variant="solid"]:where(:not([data-disabled])):hover::before {
430
+ background-color: var(--button-background-color-hover);
431
+ }
432
+ }
433
+ .Button[data-variant="solid"]:where(:not([data-disabled])):active::before {
434
+ background-color: var(--button-background-color-active);
435
+ }
436
+
437
+ .Button[data-variant="solid"]:where(:not([data-disabled])):active::before,
438
+ .Button[data-variant="solid"]:where(:not([data-disabled])):active::after {
439
+ transform: scale(var(--scale));
440
+ }
441
+
442
+ .Button[data-variant="solid"]:where([data-color="primary"]) {
443
+ --button-background-color: var(--color-background-primary-solid);
444
+ --button-background-color-hover: var(--color-background-primary-solid-hover);
445
+ --button-background-color-active: var(--color-background-primary-solid-active);
446
+ --button-text-color: var(--color-text-primary-solid);
447
+ --button-ring-color: var(--color-ring-primary-solid);
448
+ }
449
+
450
+ .Button[data-variant="solid"]:where([data-color="secondary"]) {
451
+ --button-background-color: var(--color-background-secondary-solid);
452
+ --button-background-color-hover: var(--color-background-secondary-solid-hover);
453
+ --button-background-color-active: var(--color-background-secondary-solid-active);
454
+ --button-text-color: var(--color-text-secondary-solid);
455
+ --button-ring-color: var(--color-ring-secondary-solid);
456
+ }
457
+
458
+ .Button[data-variant="solid"]:where([data-color="success"]) {
459
+ --button-background-color: var(--color-background-success-solid);
460
+ --button-background-color-hover: var(--color-background-success-solid-hover);
461
+ --button-background-color-active: var(--color-background-success-solid-active);
462
+ --button-text-color: var(--color-text-success-solid);
463
+ --button-ring-color: var(--color-ring-success-solid);
464
+ }
465
+
466
+ .Button[data-variant="solid"]:where([data-color="danger"]) {
467
+ --button-background-color: var(--color-background-danger-solid);
468
+ --button-background-color-hover: var(--color-background-danger-solid-hover);
469
+ --button-background-color-active: var(--color-background-danger-solid-active);
470
+ --button-text-color: var(--color-text-danger-solid);
471
+ --button-ring-color: var(--color-ring-danger-solid);
472
+ }
473
+
474
+ .Button[data-variant="solid"]:where([data-color="warning"]) {
475
+ --button-background-color: var(--color-background-warning-solid);
476
+ --button-background-color-hover: var(--color-background-warning-solid-hover);
477
+ --button-background-color-active: var(--color-background-warning-solid-active);
478
+ --button-text-color: var(--color-text-warning-solid);
479
+ --button-ring-color: var(--color-ring-warning-solid);
480
+ }
481
+
482
+ .Button[data-variant="solid"]:where([data-color="caution"]) {
483
+ --button-background-color: var(--color-background-caution-solid);
484
+ --button-background-color-hover: var(--color-background-caution-solid-hover);
485
+ --button-background-color-active: var(--color-background-caution-solid-active);
486
+ --button-text-color: var(--color-text-caution-solid);
487
+ --button-ring-color: var(--color-ring-caution-solid);
488
+ }
489
+
490
+ .Button[data-variant="solid"]:where([data-color="info"]) {
491
+ --button-background-color: var(--color-background-info-solid);
492
+ --button-background-color-hover: var(--color-background-info-solid-hover);
493
+ --button-background-color-active: var(--color-background-info-solid-active);
494
+ --button-text-color: var(--color-text-info-solid);
495
+ --button-ring-color: var(--color-ring-info-solid);
496
+ }
497
+
498
+ .Button[data-variant="solid"]:where([data-color="discovery"]) {
499
+ --button-background-color: var(--color-background-discovery-solid);
500
+ --button-background-color-hover: var(--color-background-discovery-solid-hover);
501
+ --button-background-color-active: var(--color-background-discovery-solid-active);
502
+ --button-text-color: var(--color-text-discovery-solid);
503
+ --button-ring-color: var(--color-ring-discovery-solid);
504
+ }
505
+
506
+ /* =============================================
507
+ Soft variant
508
+ ============================================= */
509
+ .Button[data-variant="soft"] {
510
+ color: var(--button-text-color);
511
+ }
512
+
513
+ .Button[data-variant="soft"]::before {
514
+ background-color: var(--button-background-color);
515
+ }
516
+ .Button[data-variant="soft"][aria-expanded="true"]::before, .Button[data-variant="soft"][data-state="open"]::before, .Button[data-variant="soft"][data-selected]::before {
517
+ background-color: var(--button-background-color-hover);
518
+ }
519
+ @media (hover: hover) and (pointer: fine) {
520
+ .Button[data-variant="soft"]:where(:not([data-disabled])):hover::before {
521
+ background-color: var(--button-background-color-hover);
522
+ }
523
+ }
524
+ .Button[data-variant="soft"]:where(:not([data-disabled])):active::before {
525
+ background-color: var(--button-background-color-active);
526
+ }
527
+
528
+ .Button[data-variant="soft"]:where(:not([data-disabled])):active::before,
529
+ .Button[data-variant="soft"]:where(:not([data-disabled])):active::after {
530
+ transform: scale(var(--scale));
531
+ }
532
+
533
+ .Button[data-variant="soft"]:where([data-color="primary"]) {
534
+ --button-background-color: var(--color-background-primary-soft-alpha);
535
+ --button-background-color-hover: var(--color-background-primary-soft-alpha-hover);
536
+ --button-background-color-active: var(--color-background-primary-soft-alpha-active);
537
+ --button-text-color: var(--color-text-primary-soft);
538
+ --button-ring-color: var(--color-ring-primary-soft);
539
+ }
540
+
541
+ .Button[data-variant="soft"]:where([data-color="secondary"]) {
542
+ --button-background-color: var(--color-background-secondary-soft-alpha);
543
+ --button-background-color-hover: var(--color-background-secondary-soft-alpha-hover);
544
+ --button-background-color-active: var(--color-background-secondary-soft-alpha-active);
545
+ --button-text-color: var(--color-text-secondary-soft);
546
+ --button-ring-color: var(--color-ring-secondary-soft);
547
+ }
548
+
549
+ .Button[data-variant="soft"]:where([data-color="success"]) {
550
+ --button-background-color: var(--color-background-success-soft-alpha);
551
+ --button-background-color-hover: var(--color-background-success-soft-alpha-hover);
552
+ --button-background-color-active: var(--color-background-success-soft-alpha-active);
553
+ --button-text-color: var(--color-text-success-soft);
554
+ --button-ring-color: var(--color-ring-success-soft);
555
+ }
556
+
557
+ .Button[data-variant="soft"]:where([data-color="danger"]) {
558
+ --button-background-color: var(--color-background-danger-soft-alpha);
559
+ --button-background-color-hover: var(--color-background-danger-soft-alpha-hover);
560
+ --button-background-color-active: var(--color-background-danger-soft-alpha-active);
561
+ --button-text-color: var(--color-text-danger-soft);
562
+ --button-ring-color: var(--color-ring-danger-soft);
563
+ }
564
+
565
+ .Button[data-variant="soft"]:where([data-color="warning"]) {
566
+ --button-background-color: var(--color-background-warning-soft-alpha);
567
+ --button-background-color-hover: var(--color-background-warning-soft-alpha-hover);
568
+ --button-background-color-active: var(--color-background-warning-soft-alpha-active);
569
+ --button-text-color: var(--color-text-warning-soft);
570
+ --button-ring-color: var(--color-ring-warning-soft);
571
+ }
572
+
573
+ .Button[data-variant="soft"]:where([data-color="caution"]) {
574
+ --button-background-color: var(--color-background-caution-soft-alpha);
575
+ --button-background-color-hover: var(--color-background-caution-soft-alpha-hover);
576
+ --button-background-color-active: var(--color-background-caution-soft-alpha-active);
577
+ --button-text-color: var(--color-text-caution-soft);
578
+ --button-ring-color: var(--color-ring-caution-soft);
579
+ }
580
+
581
+ .Button[data-variant="soft"]:where([data-color="info"]) {
582
+ --button-background-color: var(--color-background-info-soft-alpha);
583
+ --button-background-color-hover: var(--color-background-info-soft-alpha-hover);
584
+ --button-background-color-active: var(--color-background-info-soft-alpha-active);
585
+ --button-text-color: var(--color-text-info-soft);
586
+ --button-ring-color: var(--color-ring-info-soft);
587
+ }
588
+
589
+ .Button[data-variant="soft"]:where([data-color="discovery"]) {
590
+ --button-background-color: var(--color-background-discovery-soft-alpha);
591
+ --button-background-color-hover: var(--color-background-discovery-soft-alpha-hover);
592
+ --button-background-color-active: var(--color-background-discovery-soft-alpha-active);
593
+ --button-text-color: var(--color-text-discovery-soft);
594
+ --button-ring-color: var(--color-ring-discovery-soft);
595
+ }
596
+
597
+ /* =============================================
598
+ Outline variant
599
+ ============================================= */
600
+ .Button[data-variant="outline"] {
601
+ --button-ring-offset: -1px;
602
+
603
+ color: var(--button-text-color);
604
+ }
605
+
606
+ .Button[data-variant="outline"]::before {
607
+ background-color: transparent;
608
+ box-shadow:
609
+ 0 0 0 1px var(--button-border-color) inset,
610
+ var(--button-shadow-custom, 0 0 #00000000);
611
+ }
612
+
613
+ .Button[data-variant="outline"][aria-expanded="true"],
614
+ .Button[data-variant="outline"][data-state="open"],
615
+ .Button[data-variant="outline"][data-selected] {
616
+ color: var(--button-text-color-hover);
617
+ }
618
+
619
+ .Button[data-variant="outline"][aria-expanded="true"]::before, .Button[data-variant="outline"][data-state="open"]::before, .Button[data-variant="outline"][data-selected]::before {
620
+ background-color: var(--button-background-color-hover);
621
+ box-shadow:
622
+ 0 0 0 1px var(--button-border-color-hover) inset,
623
+ var(--button-shadow-custom, 0 0 #00000000);
624
+ }
625
+ @media (hover: hover) and (pointer: fine) {.Button[data-variant="outline"]:where(:not([data-disabled])):hover {
626
+ color: var(--button-text-color-hover);
627
+ }
628
+
629
+ .Button[data-variant="outline"]:where(:not([data-disabled])):hover::before {
630
+ background-color: var(--button-background-color-hover);
631
+ box-shadow:
632
+ 0 0 0 1px var(--button-border-color-hover) inset,
633
+ var(--button-shadow-custom, 0 0 #00000000);
634
+ }
635
+ }
636
+ .Button[data-variant="outline"]:where(:not([data-disabled])):active::before {
637
+ background-color: var(--button-background-color-active);
638
+ transform: scale(var(--scale));
639
+ }
640
+
641
+ .Button[data-variant="outline"]:where(:not([data-disabled])):active::after {
642
+ transform: scale(var(--scale));
643
+ }
644
+
645
+ .Button[data-variant="outline"]:where([data-color="primary"]) {
646
+ --button-background-color-hover: var(--color-background-primary-outline-hover);
647
+ --button-background-color-active: var(--color-background-primary-outline-active);
648
+ --button-border-color: var(--color-border-primary-outline);
649
+ --button-border-color-hover: var(--color-border-primary-outline-hover);
650
+ --button-text-color: var(--color-text-primary-outline);
651
+ --button-text-color-hover: var(--color-text-primary-outline-hover);
652
+ --button-ring-color: var(--color-ring-primary-outline);
653
+ }
654
+
655
+ .Button[data-variant="outline"]:where([data-color="secondary"]) {
656
+ --button-background-color-hover: var(--color-background-secondary-outline-hover);
657
+ --button-background-color-active: var(--color-background-secondary-outline-active);
658
+ --button-border-color: var(--color-border-secondary-outline);
659
+ --button-border-color-hover: var(--color-border-secondary-outline-hover);
660
+ --button-text-color: var(--color-text-secondary-outline);
661
+ --button-text-color-hover: var(--color-text-secondary-outline-hover);
662
+ --button-ring-color: var(--color-ring-secondary-outline);
663
+ }
664
+
665
+ .Button[data-variant="outline"]:where([data-color="danger"]) {
666
+ --button-background-color-hover: var(--color-background-danger-outline-hover);
667
+ --button-background-color-active: var(--color-background-danger-outline-active);
668
+ --button-border-color: var(--color-border-danger-outline);
669
+ --button-border-color-hover: var(--color-border-danger-outline-hover);
670
+ --button-text-color: var(--color-text-danger-outline);
671
+ --button-text-color-hover: var(--color-text-danger-outline-hover);
672
+ --button-ring-color: var(--color-ring-danger-outline);
673
+ }
674
+
675
+ .Button[data-variant="outline"]:where([data-color="success"]) {
676
+ --button-background-color-hover: var(--color-background-success-outline-hover);
677
+ --button-background-color-active: var(--color-background-success-outline-active);
678
+ --button-border-color: var(--color-border-success-outline);
679
+ --button-border-color-hover: var(--color-border-success-outline-hover);
680
+ --button-text-color: var(--color-text-success-outline);
681
+ --button-text-color-hover: var(--color-text-success-outline-hover);
682
+ --button-ring-color: var(--color-ring-success-outline);
683
+ }
684
+
685
+ .Button[data-variant="outline"]:where([data-color="warning"]) {
686
+ --button-background-color-hover: var(--color-background-warning-outline-hover);
687
+ --button-background-color-active: var(--color-background-warning-outline-active);
688
+ --button-border-color: var(--color-border-warning-outline);
689
+ --button-border-color-hover: var(--color-border-warning-outline-hover);
690
+ --button-text-color: var(--color-text-warning-outline);
691
+ --button-text-color-hover: var(--color-text-warning-outline-hover);
692
+ --button-ring-color: var(--color-ring-warning-outline);
693
+ }
694
+
695
+ .Button[data-variant="outline"]:where([data-color="caution"]) {
696
+ --button-background-color-hover: var(--color-background-caution-outline-hover);
697
+ --button-background-color-active: var(--color-background-caution-outline-active);
698
+ --button-border-color: var(--color-border-caution-outline);
699
+ --button-border-color-hover: var(--color-border-caution-outline-hover);
700
+ --button-text-color: var(--color-text-caution-outline);
701
+ --button-text-color-hover: var(--color-text-caution-outline-hover);
702
+ --button-ring-color: var(--color-ring-caution-outline);
703
+ }
704
+
705
+ .Button[data-variant="outline"]:where([data-color="info"]) {
706
+ --button-background-color-hover: var(--color-background-info-outline-hover);
707
+ --button-background-color-active: var(--color-background-info-outline-active);
708
+ --button-border-color: var(--color-border-info-outline);
709
+ --button-border-color-hover: var(--color-border-info-outline-hover);
710
+ --button-text-color: var(--color-text-info-outline);
711
+ --button-text-color-hover: var(--color-text-info-outline-hover);
712
+ --button-ring-color: var(--color-ring-info-outline);
713
+ }
714
+
715
+ .Button[data-variant="outline"]:where([data-color="discovery"]) {
716
+ --button-background-color-hover: var(--color-background-discovery-outline-hover);
717
+ --button-background-color-active: var(--color-background-discovery-outline-active);
718
+ --button-border-color: var(--color-border-discovery-outline);
719
+ --button-border-color-hover: var(--color-border-discovery-outline-hover);
720
+ --button-text-color: var(--color-text-discovery-outline);
721
+ --button-text-color-hover: var(--color-text-discovery-outline-hover);
722
+ --button-ring-color: var(--color-ring-discovery-outline);
723
+ }
724
+ /* Non-visual disablement, akin to `inert` */
725
+ .Button[disabled] {
726
+ pointer-events: none;
727
+ }
728
+
729
+ /* Visual disablement */
730
+ .Button[data-disabled][data-variant] {
731
+ --button-background-color: var(--color-background-disabled);
732
+ --button-border-color: var(--color-border-disabled);
733
+ --button-text-color: var(--color-text-disabled);
734
+
735
+ cursor: not-allowed;
736
+ pointer-events: auto;
737
+ }
738
+
739
+ /* Don't press while disabled */
740
+ .Button[data-disabled][data-variant]:active::before {
741
+ transform: scale(1);
742
+ }
743
+
744
+ /* Relaxed disabled tone: keep disabled visuals, soften cursor */
745
+ .Button[data-disabled][data-variant][data-disabled-tone="relaxed"] {
746
+ cursor: default;
747
+ }.ButtonInner {
748
+ position: relative;
749
+ display: flex;
750
+ /* Allows overrides through className on .Button */
751
+ flex-direction: row;
752
+ align-items: center;
753
+ justify-content: center;
754
+ /* Allows overrides through className on .Button */
755
+ gap: inherit;
756
+ width: 100%;
757
+ /* Prevent padding-bottom from creating excess height (flexbox) */
758
+ height: 100%;
759
+ transition: opacity 0.15s ease 0.1s;
760
+ }
761
+
762
+ [data-loading] .ButtonInner {
763
+ opacity: 0;
764
+ transition: opacity 0.3s ease;
765
+ }
766
+
767
+ /* MDX sometimes wraps children in a <p> tag; we bypass it to keep flex layout */
768
+ .ButtonInner> :global(p) {
769
+ display: contents;
770
+ }/* `.Button > .ButtonLoader` (specificity 0,2,0) beats `.TransitionGroupChild`
771
+ * (0,1,0). TransitionGroup applies both classes to the same <span>, and
772
+ * TransitionGroup.module.css loads after Button.module.css — without the
773
+ * specificity bump, `display: block` wins and the spinner pins to top-left
774
+ * instead of centring. */.Button > .ButtonLoader {
775
+ position: absolute;
776
+ inset: 0;
777
+ z-index: 3;
778
+ display: flex;
779
+ align-items: center;
780
+ justify-content: center;
781
+ pointer-events: none;
782
+ }
783
+
784
+ .Button > .ButtonLoader[data-entering] {
785
+ opacity: 0;
786
+ }
787
+
788
+ .Button > .ButtonLoader[data-exiting] {
789
+ opacity: 1;
790
+ }
791
+
792
+ .Button > .ButtonLoader[data-entering-active],
793
+ .Button > .ButtonLoader[data-entering][data-interrupted] {
794
+ opacity: 1;
795
+ transition: opacity 0.15s ease 0.1s;
796
+ }
797
+
798
+ .Button > .ButtonLoader[data-exiting-active],
799
+ .Button > .ButtonLoader[data-exiting][data-interrupted] {
800
+ opacity: 0;
801
+ transition: opacity 0.15s ease;
802
+ }/* .Kbd {
803
+ display: none;
804
+
805
+ @mixin breakpoint md {
806
+ display: block;
807
+ padding: 1px 3px;
808
+ border: 1px solid var(--kbd-border-color, transparent);
809
+ border-radius: 4px;
810
+ margin: 0 -2px 0 4px;
811
+ background: var(--kbd-bg, var(--alpha-10));
812
+ color: var(--kbd-color, inherit);
813
+ font-family:
814
+ system-ui,
815
+ -apple-system,
816
+ BlinkMacSystemFont,
817
+ "Segoe UI",
818
+ Roboto,
819
+ Oxygen,
820
+ Ubuntu,
821
+ Cantarell,
822
+ "Open Sans",
823
+ "Helvetica Neue",
824
+ sans-serif;
825
+ font-size: 13px;
826
+ font-style: normal;
827
+ font-weight: 600;
828
+ letter-spacing: var(--tracking-wide);
829
+ transition:
830
+ border-color 0.15s ease,
831
+ background-color 0.15s ease,
832
+ color 0.15s ease;
833
+
834
+ [data-size="2xs"] & {
835
+ margin-right: 0;
836
+ margin-left: 3px;
837
+ font-size: 12px;
838
+ }
839
+
840
+ [data-size="xs"] & {
841
+ font-size: 12px;
842
+ }
843
+
844
+ [data-size="sm"] & {
845
+ margin-right: -1px;
846
+ }
847
+
848
+ [data-size="xl"] & {
849
+ padding: 2px 3px;
850
+ font-size: 14px;
851
+ }
852
+
853
+ [data-pill] & {
854
+ border-radius: 8px;
855
+ margin-right: -5px;
856
+ }
857
+
858
+ [data-size="2xs"][data-pill] & {
859
+ margin-right: -4px;
860
+ }
861
+ }
862
+ } */
863
+ }