@plexui/ui 0.2.1 → 0.4.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.
@@ -1,47 +1,100 @@
1
- @layer components {.SegmentedControl {
2
- --segmented-control-option-radius: calc(
3
- var(--segmented-control-radius) - var(--segmented-control-gutter)
4
- );
5
-
1
+ @layer components {.Tabs {
6
2
  position: relative;
7
- overflow: auto;
8
3
  display: inline-flex;
9
4
  flex-wrap: nowrap;
10
5
  gap: var(--segmented-control-gap);
11
- height: var(--segmented-control-size);
12
- padding: var(--segmented-control-gutter);
13
- border-radius: var(--segmented-control-radius);
14
- background: var(--segmented-control-background);
15
6
  font-size: var(--segmented-control-font-size);
16
7
  font-weight: var(--segmented-control-font-weight);
17
8
  -ms-overflow-style: none;
18
9
  scrollbar-width: none;
19
- /* Remove inline-flex baseline gap */
20
10
  vertical-align: middle;
21
11
  white-space: nowrap;
22
12
  }
23
13
 
24
- .SegmentedControl::-webkit-scrollbar {
14
+ .Tabs::-webkit-scrollbar {
25
15
  width: 0;
26
16
  height: 0;
27
17
  }
28
18
 
29
- .SegmentedControl::-webkit-scrollbar-track,
30
- .SegmentedControl::-webkit-scrollbar-thumb {
19
+ .Tabs::-webkit-scrollbar-track,
20
+ .Tabs::-webkit-scrollbar-thumb {
31
21
  background: transparent;
32
22
  }
33
23
 
34
- .SegmentedControl:where([data-block]) {
24
+ /* =============================================
25
+ Variant: Segmented (default — existing behavior)
26
+ ============================================= */
27
+ .Tabs:where([data-variant="segmented"]) {
28
+ overflow: auto;
29
+ height: var(--segmented-control-size);
30
+ padding: var(--segmented-control-gutter);
31
+ border-radius: var(--segmented-control-radius);
32
+ background: var(--segmented-control-background);
33
+ }
34
+
35
+ .Tabs:where([data-variant="segmented"][data-block]) {
35
36
  overflow: hidden;
36
37
  display: flex;
37
38
  width: 100%;
38
39
  white-space: normal;
39
40
  }
40
41
 
42
+ .Tabs:where([data-variant="segmented"][data-pill]) {
43
+ --segmented-control-radius: var(--radius-full);
44
+ --segmented-control-option-radius: var(--radius-full);
45
+ }
46
+
47
+ /* =============================================
48
+ Variant: Underline
49
+ ============================================= */
50
+ .Tabs:where([data-variant="underline"]) {
51
+ overflow: auto;
52
+ height: var(--segmented-control-size);
53
+ padding: 0;
54
+ border-radius: 0;
55
+ background: transparent;
56
+ gap: 0;
57
+ border-bottom: 1px solid var(--tabs-underline-border-color);
58
+ }
59
+
60
+ .Tabs:where([data-variant="underline"][data-block]) {
61
+ overflow: hidden;
62
+ display: flex;
63
+ width: 100%;
64
+ white-space: normal;
65
+ }
66
+
67
+ /* =============================================
68
+ Vertical orientation
69
+ ============================================= */
70
+ .Tabs:where([data-orientation="vertical"]) {
71
+ flex-direction: column;
72
+ height: auto;
73
+ width: -moz-fit-content;
74
+ width: fit-content;
75
+ white-space: nowrap;
76
+ }
77
+
78
+ .Tabs:where([data-orientation="vertical"][data-variant="segmented"]) {
79
+ overflow-y: auto;
80
+ overflow-x: hidden;
81
+ }
82
+
83
+ .Tabs:where([data-orientation="vertical"][data-variant="underline"]) {
84
+ overflow-y: auto;
85
+ overflow-x: hidden;
86
+ border-bottom: none;
87
+ border-left: 1px solid var(--tabs-underline-border-color);
88
+ }
89
+
90
+ .Tabs:where([data-orientation="vertical"][data-block]) {
91
+ width: 100%;
92
+ }
93
+
41
94
  /* =============================================
42
95
  Sizes
43
96
  ============================================= */
44
- .SegmentedControl:where([data-size="3xs"]) {
97
+ .Tabs:where([data-size="3xs"]) {
45
98
  --segmented-control-size: var(--control-size-3xs);
46
99
  --segmented-control-font-size: var(--control-font-size-sm);
47
100
  --segmented-control-radius: var(--control-radius-sm);
@@ -60,7 +113,7 @@
60
113
  --option-badge-radius: var(--badge-radius-2xs);
61
114
  }
62
115
 
63
- .SegmentedControl:where([data-size="2xs"]) {
116
+ .Tabs:where([data-size="2xs"]) {
64
117
  --segmented-control-size: var(--control-size-2xs);
65
118
  --segmented-control-font-size: var(--control-font-size-sm);
66
119
  --segmented-control-radius: var(--control-radius-sm);
@@ -79,7 +132,7 @@
79
132
  --option-badge-radius: var(--badge-radius-2xs);
80
133
  }
81
134
 
82
- .SegmentedControl:where([data-size="xs"]) {
135
+ .Tabs:where([data-size="xs"]) {
83
136
  --segmented-control-size: var(--control-size-xs);
84
137
  --segmented-control-font-size: var(--control-font-size-md);
85
138
  --segmented-control-radius: var(--control-radius-sm);
@@ -98,7 +151,7 @@
98
151
  --option-badge-radius: var(--badge-radius-xs);
99
152
  }
100
153
 
101
- .SegmentedControl:where([data-size="sm"]) {
154
+ .Tabs:where([data-size="sm"]) {
102
155
  --segmented-control-size: var(--control-size-sm);
103
156
  --segmented-control-font-size: var(--control-font-size-md);
104
157
  --segmented-control-radius: var(--control-radius-md);
@@ -117,7 +170,7 @@
117
170
  --option-badge-radius: var(--badge-radius-sm);
118
171
  }
119
172
 
120
- .SegmentedControl:where([data-size="md"]) {
173
+ .Tabs:where([data-size="md"]) {
121
174
  --segmented-control-size: var(--control-size-md);
122
175
  --segmented-control-font-size: var(--control-font-size-md);
123
176
  --segmented-control-radius: var(--control-radius-md);
@@ -136,7 +189,7 @@
136
189
  --option-badge-radius: var(--badge-radius-md);
137
190
  }
138
191
 
139
- .SegmentedControl:where([data-size="lg"]) {
192
+ .Tabs:where([data-size="lg"]) {
140
193
  --segmented-control-size: var(--control-size-lg);
141
194
  --segmented-control-font-size: var(--control-font-size-md);
142
195
  --segmented-control-radius: var(--control-radius-md);
@@ -155,7 +208,7 @@
155
208
  --option-badge-radius: var(--badge-radius-md);
156
209
  }
157
210
 
158
- .SegmentedControl:where([data-size="xl"]) {
211
+ .Tabs:where([data-size="xl"]) {
159
212
  --segmented-control-size: var(--control-size-xl);
160
213
  --segmented-control-font-size: var(--control-font-size-md);
161
214
  --segmented-control-radius: var(--control-radius-lg);
@@ -174,7 +227,7 @@
174
227
  --option-badge-radius: var(--badge-radius-md);
175
228
  }
176
229
 
177
- .SegmentedControl:where([data-size="2xl"]) {
230
+ .Tabs:where([data-size="2xl"]) {
178
231
  --segmented-control-size: var(--control-size-2xl);
179
232
  --segmented-control-font-size: var(--control-font-size-lg);
180
233
  --segmented-control-radius: var(--control-radius-xl);
@@ -193,7 +246,7 @@
193
246
  --option-badge-radius: var(--badge-radius-lg);
194
247
  }
195
248
 
196
- .SegmentedControl:where([data-size="3xl"]) {
249
+ .Tabs:where([data-size="3xl"]) {
197
250
  --segmented-control-size: var(--control-size-3xl);
198
251
  --segmented-control-font-size: var(--control-font-size-lg);
199
252
  --segmented-control-radius: var(--control-radius-xl);
@@ -213,42 +266,43 @@
213
266
  }
214
267
 
215
268
  /* =============================================
216
- Gutter sizes
269
+ Gutter sizes (segmented variant only)
217
270
  ============================================= */
218
- .SegmentedControl:where([data-gutter-size="2xs"]) {
271
+ .Tabs:where([data-gutter-size="2xs"]) {
219
272
  --segmented-control-option-gutter: var(--control-gutter-2xs);
220
273
  }
221
274
 
222
- .SegmentedControl:where([data-gutter-size="xs"]) {
275
+ .Tabs:where([data-gutter-size="xs"]) {
223
276
  --segmented-control-option-gutter: var(--control-gutter-xs);
224
277
  }
225
278
 
226
- .SegmentedControl:where([data-gutter-size="sm"]) {
279
+ .Tabs:where([data-gutter-size="sm"]) {
227
280
  --segmented-control-option-gutter: var(--control-gutter-sm);
228
281
  }
229
282
 
230
- .SegmentedControl:where([data-gutter-size="md"]) {
283
+ .Tabs:where([data-gutter-size="md"]) {
231
284
  --segmented-control-option-gutter: var(--control-gutter-md);
232
285
  }
233
286
 
234
- .SegmentedControl:where([data-gutter-size="lg"]) {
287
+ .Tabs:where([data-gutter-size="lg"]) {
235
288
  --segmented-control-option-gutter: var(--control-gutter-lg);
236
289
  }
237
290
 
238
- .SegmentedControl:where([data-gutter-size="xl"]) {
291
+ .Tabs:where([data-gutter-size="xl"]) {
239
292
  --segmented-control-option-gutter: var(--control-gutter-xl);
240
- }
241
-
242
- /* =============================================
243
- Pill
244
- ============================================= */
245
- .SegmentedControl:where([data-pill]) {
246
- --segmented-control-radius: var(--radius-full);
247
- --segmented-control-option-radius: var(--radius-full);
248
- }.SegmentedControlOption {
293
+ }/* =============================================
294
+ Option radius (computed from parent for segmented)
295
+ ============================================= */.Tabs:where([data-variant="segmented"]) {
296
+ --segmented-control-option-radius: calc(
297
+ var(--segmented-control-radius) - var(--segmented-control-gutter)
298
+ );
299
+ }.Tabs:where([data-variant="underline"]) {
300
+ --segmented-control-option-radius: 0;
301
+ }/* =============================================
302
+ Tab (trigger item)
303
+ ============================================= */.Tab {
249
304
  position: relative;
250
305
  padding: 0 var(--segmented-control-option-gutter);
251
- border-radius: var(--segmented-control-option-radius);
252
306
  color: var(--color-text-secondary);
253
307
  cursor: pointer;
254
308
  line-height: 1;
@@ -261,24 +315,28 @@
261
315
  transition-timing-function: var(--transition-ease-basic);
262
316
  }
263
317
 
264
- .SegmentedControlOption:focus {
318
+ .Tab:focus {
265
319
  outline: 0;
266
320
  }
267
321
 
268
- :where(.SegmentedControl[data-block]) .SegmentedControlOption {
322
+ /* =============================================
323
+ Segmented variant — Tab styles
324
+ ============================================= */
325
+ :where(.Tabs[data-variant="segmented"]) .Tab {
326
+ border-radius: var(--segmented-control-option-radius);
327
+ }
328
+
329
+ :where(.Tabs[data-variant="segmented"][data-block]) .Tab {
269
330
  flex: 1;
270
331
  }
271
332
 
272
- :where(.SegmentedControl[data-pill]) .SegmentedControlOption {
333
+ :where(.Tabs[data-variant="segmented"][data-pill]) .Tab {
273
334
  min-width: calc(var(--segmented-control-size) - 2 * var(--segmented-control-gutter));
274
335
  padding: 0 calc(var(--segmented-control-option-gutter) * var(--control-gutter-pill-scaling));
275
336
  }
276
337
 
277
- .SegmentedControlOption[data-state="on"]:focus-visible {
278
- outline: 2px solid var(--color-ring);
279
- }
280
-
281
- .SegmentedControlOption::before {
338
+ /* Hover highlight pseudo-element (segmented only) */
339
+ :where(.Tabs[data-variant="segmented"]) .Tab::before {
282
340
  position: absolute;
283
341
  inset: var(--segmented-control-option-highlight-gutter);
284
342
  border-radius: var(--segmented-control-option-radius);
@@ -293,55 +351,131 @@
293
351
  will-change: transform;
294
352
  }
295
353
 
296
- .SegmentedControlOption:active::before {
354
+ :where(.Tabs[data-variant="segmented"]) .Tab:active::before {
297
355
  transform: scale(var(--scale), 0.97);
298
356
  }
299
-
300
- .SegmentedControlOption svg {
301
- display: block;
302
- }
303
- @media (hover: hover) and (pointer: fine) {.SegmentedControlOption[data-state="off"]:where(:not([disabled])):hover {
357
+ @media (hover: hover) and (pointer: fine) {:where(.Tabs[data-variant="segmented"]) .Tab[data-state="off"]:where(:not([disabled])):hover {
304
358
  color: var(--color-text);
305
359
  }
306
360
 
307
- .SegmentedControlOption[data-state="off"]:where(:not([disabled])):hover::before {
361
+ :where(.Tabs[data-variant="segmented"]) .Tab[data-state="off"]:where(:not([disabled])):hover::before {
308
362
  opacity: 0.5;
309
363
  }
310
364
  }
311
365
 
312
- .SegmentedControlOption[data-state="off"]:where(:not([disabled])):focus-visible {
366
+ :where(.Tabs[data-variant="segmented"]) .Tab[data-state="off"]:where(:not([disabled])):focus-visible {
313
367
  color: var(--color-text);
314
368
  outline: 2px solid var(--color-ring);
315
369
  }
316
370
 
317
- .SegmentedControlOption[data-state="off"]:where(:not([disabled])):active::before {
371
+ :where(.Tabs[data-variant="segmented"]) .Tab[data-state="off"]:where(:not([disabled])):active::before {
318
372
  opacity: 0.75;
319
373
  }
320
374
 
321
- .SegmentedControlOption[data-state="on"] {
375
+ /* =============================================
376
+ Underline variant — Tab styles
377
+ ============================================= */
378
+ :where(.Tabs[data-variant="underline"]) .Tab {
379
+ border-radius: 0;
380
+ }
381
+
382
+ :where(.Tabs[data-variant="underline"][data-block]) .Tab {
383
+ flex: 1;
384
+ }
385
+ @media (hover: hover) and (pointer: fine) {:where(.Tabs[data-variant="underline"]) .Tab[data-state="off"]:where(:not([disabled])):hover {
386
+ color: var(--color-text);
387
+ }
388
+ }
389
+
390
+ :where(.Tabs[data-variant="underline"]) .Tab[data-state="off"]:where(:not([disabled])):focus-visible {
391
+ color: var(--color-text);
392
+ outline: 2px solid var(--color-ring);
393
+ outline-offset: -2px;
394
+ }
395
+
396
+ /* =============================================
397
+ Vertical orientation — Tab styles
398
+ ============================================= */
399
+ :where(.Tabs[data-orientation="vertical"]) .Tab {
400
+ justify-content: flex-start;
401
+ width: 100%;
402
+ }
403
+
404
+ :where(.Tabs[data-orientation="vertical"][data-block]) .Tab {
405
+ flex: none;
406
+ }
407
+
408
+ /* =============================================
409
+ Shared states
410
+ ============================================= */
411
+ .Tab[data-state="on"] {
322
412
  color: var(--color-text);
323
413
  }
324
414
 
325
- .SegmentedControlOption[data-disabled] {
415
+ .Tab[data-state="on"]:focus-visible {
416
+ outline: 2px solid var(--color-ring);
417
+ }
418
+
419
+ .Tab[data-disabled] {
326
420
  cursor: not-allowed;
327
421
  opacity: 0.5;
328
422
  }
329
423
 
330
- .SegmentedControlOption[data-disabled]::before {
424
+ .Tab[data-disabled]::before {
331
425
  opacity: 0 !important;
332
- }.SegmentedControlThumb {
426
+ }
427
+
428
+ .Tab svg {
429
+ display: block;
430
+ }/* =============================================
431
+ Thumb (animated indicator)
432
+ ============================================= */.TabsThumb {
333
433
  position: absolute;
334
- top: var(--segmented-control-gutter);
335
- bottom: var(--segmented-control-gutter);
336
- left: 0;
337
- border-radius: var(--segmented-control-option-radius);
338
- background: var(--segmented-control-thumb-background);
339
- box-shadow: var(--segmented-control-thumb-shadow);
340
434
  pointer-events: none;
341
435
  will-change: transform;
342
- }/* =============================================
343
- Option Content (icon + text + badge layout)
344
- ============================================= */.SegmentedControlOptionContent {
436
+ }
437
+
438
+ /* Segmented horizontal: background highlight */
439
+ :where(.Tabs[data-variant="segmented"][data-orientation="horizontal"]) .TabsThumb {
440
+ top: var(--segmented-control-gutter);
441
+ bottom: var(--segmented-control-gutter);
442
+ left: 0;
443
+ border-radius: var(--segmented-control-option-radius);
444
+ background: var(--segmented-control-thumb-background);
445
+ box-shadow: var(--segmented-control-thumb-shadow);
446
+ }
447
+
448
+ /* Segmented vertical: background highlight */
449
+ :where(.Tabs[data-variant="segmented"][data-orientation="vertical"]) .TabsThumb {
450
+ left: var(--segmented-control-gutter);
451
+ right: var(--segmented-control-gutter);
452
+ top: 0;
453
+ border-radius: var(--segmented-control-option-radius);
454
+ background: var(--segmented-control-thumb-background);
455
+ box-shadow: var(--segmented-control-thumb-shadow);
456
+ }
457
+
458
+ /* Underline horizontal: thin line at the bottom */
459
+ :where(.Tabs[data-variant="underline"][data-orientation="horizontal"]) .TabsThumb {
460
+ bottom: 0;
461
+ left: 0;
462
+ height: var(--tabs-underline-indicator-height);
463
+ border-radius: calc(var(--tabs-underline-indicator-height) / 2) calc(var(--tabs-underline-indicator-height) / 2) 0 0;
464
+ background: var(--tabs-underline-indicator-color);
465
+ box-shadow: none;
466
+ }
467
+
468
+ /* Underline vertical: thin line on the left */
469
+ :where(.Tabs[data-variant="underline"][data-orientation="vertical"]) .TabsThumb {
470
+ left: 0;
471
+ top: 0;
472
+ width: var(--tabs-underline-indicator-height);
473
+ border-radius: 0 calc(var(--tabs-underline-indicator-height) / 2) calc(var(--tabs-underline-indicator-height) / 2) 0;
474
+ background: var(--tabs-underline-indicator-color);
475
+ box-shadow: none;
476
+ }/* =============================================
477
+ Tab Content (icon + text + badge layout)
478
+ ============================================= */.TabContent {
345
479
  position: relative;
346
480
  display: flex;
347
481
  align-items: center;
@@ -349,17 +483,17 @@
349
483
  }
350
484
 
351
485
  /* Icon auto-sizing (same as Button) */
352
- .SegmentedControlOptionContent svg:where(:not([data-no-autosize])) {
486
+ .TabContent svg:where(:not([data-no-autosize])) {
353
487
  width: var(--segmented-control-icon-size);
354
488
  height: var(--segmented-control-icon-size);
355
489
  }
356
490
 
357
491
  /* Negative margin for icon when followed by text */
358
- .SegmentedControlOptionContent svg:where(:first-child:not(:only-child)) {
492
+ .TabContent svg:where(:first-child:not(:only-child)) {
359
493
  margin-left: var(--segmented-control-icon-offset);
360
494
  }/* =============================================
361
- Option Badge (CSS-only, no Badge component)
362
- ============================================= */.OptionBadge {
495
+ Tab Badge (CSS-only, no Badge component)
496
+ ============================================= */.TabBadge {
363
497
  display: inline-flex;
364
498
  align-items: center;
365
499
  height: var(--option-badge-size);
@@ -377,37 +511,37 @@
377
511
  /* =============================================
378
512
  Soft variant (default)
379
513
  ============================================= */
380
- .OptionBadge[data-variant="soft"]:where([data-color="secondary"]) {
514
+ .TabBadge[data-variant="soft"]:where([data-color="secondary"]) {
381
515
  --option-badge-bg: var(--color-background-secondary-soft-alpha);
382
516
  --option-badge-color: var(--color-text-secondary-soft);
383
517
  }
384
518
 
385
- .OptionBadge[data-variant="soft"]:where([data-color="success"]) {
519
+ .TabBadge[data-variant="soft"]:where([data-color="success"]) {
386
520
  --option-badge-bg: var(--color-background-success-soft-alpha);
387
521
  --option-badge-color: var(--color-text-success-soft);
388
522
  }
389
523
 
390
- .OptionBadge[data-variant="soft"]:where([data-color="warning"]) {
524
+ .TabBadge[data-variant="soft"]:where([data-color="warning"]) {
391
525
  --option-badge-bg: var(--color-background-warning-soft-alpha);
392
526
  --option-badge-color: var(--color-text-warning-soft);
393
527
  }
394
528
 
395
- .OptionBadge[data-variant="soft"]:where([data-color="danger"]) {
529
+ .TabBadge[data-variant="soft"]:where([data-color="danger"]) {
396
530
  --option-badge-bg: var(--color-background-danger-soft-alpha);
397
531
  --option-badge-color: var(--color-text-danger-soft);
398
532
  }
399
533
 
400
- .OptionBadge[data-variant="soft"]:where([data-color="info"]) {
534
+ .TabBadge[data-variant="soft"]:where([data-color="info"]) {
401
535
  --option-badge-bg: var(--color-background-info-soft-alpha);
402
536
  --option-badge-color: var(--color-text-info-soft);
403
537
  }
404
538
 
405
- .OptionBadge[data-variant="soft"]:where([data-color="discovery"]) {
539
+ .TabBadge[data-variant="soft"]:where([data-color="discovery"]) {
406
540
  --option-badge-bg: var(--color-background-discovery-soft-alpha);
407
541
  --option-badge-color: var(--color-text-discovery-soft);
408
542
  }
409
543
 
410
- .OptionBadge[data-variant="soft"]:where([data-color="caution"]) {
544
+ .TabBadge[data-variant="soft"]:where([data-color="caution"]) {
411
545
  --option-badge-bg: var(--color-background-caution-soft-alpha);
412
546
  --option-badge-color: var(--color-text-caution-soft);
413
547
  }
@@ -415,37 +549,37 @@
415
549
  /* =============================================
416
550
  Solid variant
417
551
  ============================================= */
418
- .OptionBadge[data-variant="solid"]:where([data-color="secondary"]) {
552
+ .TabBadge[data-variant="solid"]:where([data-color="secondary"]) {
419
553
  --option-badge-bg: var(--color-background-secondary-solid);
420
554
  --option-badge-color: var(--color-text-secondary-solid);
421
555
  }
422
556
 
423
- .OptionBadge[data-variant="solid"]:where([data-color="success"]) {
557
+ .TabBadge[data-variant="solid"]:where([data-color="success"]) {
424
558
  --option-badge-bg: var(--color-background-success-solid);
425
559
  --option-badge-color: var(--color-text-success-solid);
426
560
  }
427
561
 
428
- .OptionBadge[data-variant="solid"]:where([data-color="warning"]) {
562
+ .TabBadge[data-variant="solid"]:where([data-color="warning"]) {
429
563
  --option-badge-bg: var(--color-background-warning-solid);
430
564
  --option-badge-color: var(--color-text-warning-solid);
431
565
  }
432
566
 
433
- .OptionBadge[data-variant="solid"]:where([data-color="danger"]) {
567
+ .TabBadge[data-variant="solid"]:where([data-color="danger"]) {
434
568
  --option-badge-bg: var(--color-background-danger-solid);
435
569
  --option-badge-color: var(--color-text-danger-solid);
436
570
  }
437
571
 
438
- .OptionBadge[data-variant="solid"]:where([data-color="info"]) {
572
+ .TabBadge[data-variant="solid"]:where([data-color="info"]) {
439
573
  --option-badge-bg: var(--color-background-info-solid);
440
574
  --option-badge-color: var(--color-text-info-solid);
441
575
  }
442
576
 
443
- .OptionBadge[data-variant="solid"]:where([data-color="discovery"]) {
577
+ .TabBadge[data-variant="solid"]:where([data-color="discovery"]) {
444
578
  --option-badge-bg: var(--color-background-discovery-solid);
445
579
  --option-badge-color: var(--color-text-discovery-solid);
446
580
  }
447
581
 
448
- .OptionBadge[data-variant="solid"]:where([data-color="caution"]) {
582
+ .TabBadge[data-variant="solid"]:where([data-color="caution"]) {
449
583
  --option-badge-bg: var(--color-background-caution-solid);
450
584
  --option-badge-color: var(--color-text-caution-solid);
451
585
  }
@@ -453,42 +587,42 @@
453
587
  /* =============================================
454
588
  Outline variant
455
589
  ============================================= */
456
- .OptionBadge[data-variant="outline"] {
590
+ .TabBadge[data-variant="outline"] {
457
591
  background-color: transparent;
458
592
  box-shadow: 0 0 0 1px var(--option-badge-border) inset;
459
593
  }
460
594
 
461
- .OptionBadge[data-variant="outline"]:where([data-color="secondary"]) {
595
+ .TabBadge[data-variant="outline"]:where([data-color="secondary"]) {
462
596
  --option-badge-border: var(--color-border-secondary-outline);
463
597
  --option-badge-color: var(--color-text-secondary-outline);
464
598
  }
465
599
 
466
- .OptionBadge[data-variant="outline"]:where([data-color="success"]) {
600
+ .TabBadge[data-variant="outline"]:where([data-color="success"]) {
467
601
  --option-badge-border: var(--color-border-success-outline);
468
602
  --option-badge-color: var(--color-text-success-outline);
469
603
  }
470
604
 
471
- .OptionBadge[data-variant="outline"]:where([data-color="warning"]) {
605
+ .TabBadge[data-variant="outline"]:where([data-color="warning"]) {
472
606
  --option-badge-border: var(--color-border-warning-outline);
473
607
  --option-badge-color: var(--color-text-warning-outline);
474
608
  }
475
609
 
476
- .OptionBadge[data-variant="outline"]:where([data-color="danger"]) {
610
+ .TabBadge[data-variant="outline"]:where([data-color="danger"]) {
477
611
  --option-badge-border: var(--color-border-danger-outline);
478
612
  --option-badge-color: var(--color-text-danger-outline);
479
613
  }
480
614
 
481
- .OptionBadge[data-variant="outline"]:where([data-color="info"]) {
615
+ .TabBadge[data-variant="outline"]:where([data-color="info"]) {
482
616
  --option-badge-border: var(--color-border-info-outline);
483
617
  --option-badge-color: var(--color-text-info-outline);
484
618
  }
485
619
 
486
- .OptionBadge[data-variant="outline"]:where([data-color="discovery"]) {
620
+ .TabBadge[data-variant="outline"]:where([data-color="discovery"]) {
487
621
  --option-badge-border: var(--color-border-discovery-outline);
488
622
  --option-badge-color: var(--color-text-discovery-outline);
489
623
  }
490
624
 
491
- .OptionBadge[data-variant="outline"]:where([data-color="caution"]) {
625
+ .TabBadge[data-variant="outline"]:where([data-color="caution"]) {
492
626
  --option-badge-border: var(--color-border-caution-outline);
493
627
  --option-badge-color: var(--color-text-caution-outline);
494
628
  }
@@ -496,7 +630,7 @@
496
630
  /* =============================================
497
631
  Pill
498
632
  ============================================= */
499
- .OptionBadge[data-pill] {
633
+ .TabBadge[data-pill] {
500
634
  border-radius: var(--radius-full);
501
635
  padding: 0 calc(var(--option-badge-gutter) * var(--control-gutter-pill-scaling));
502
636
  }
@@ -0,0 +1,2 @@
1
+ export { Tabs } from "./Tabs";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Tabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA","sourcesContent":["export { Tabs } from \"./Tabs\"\nexport type {\n TabsBadgeProp,\n TabsOrientation,\n TabsProps,\n TabsVariant,\n TabProps,\n SizeVariant,\n} from \"./Tabs\"\n"]}
@@ -111,6 +111,11 @@
111
111
  --field-error-margin-bottom: calc(var(--spacing) * 3);
112
112
  --field-error-padding-inline: 0;
113
113
 
114
+ /* =============================================
115
+ Field
116
+ ============================================= */
117
+ --field-label-horizontal-min-width: 120px;
118
+
114
119
  /* =============================================
115
120
  FloatingLabelInput
116
121
  ============================================= */
@@ -211,6 +216,13 @@
211
216
  --segmented-control-thumb-shadow: 0 1px 4px -1px rgb(0 0 0 / 20%);
212
217
  --segmented-control-option-highlight-gutter: 1px;
213
218
 
219
+ /* =============================================
220
+ Tabs — Underline variant
221
+ ============================================= */
222
+ --tabs-underline-indicator-height: 2px;
223
+ --tabs-underline-indicator-color: var(--color-background-primary-solid);
224
+ --tabs-underline-border-color: var(--color-border);
225
+
214
226
  /* =============================================
215
227
  SelectControl
216
228
  ============================================= */