@mastra/playground-ui 40.0.0-alpha.3 → 40.0.0-alpha.4
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.
- package/CHANGELOG.md +43 -0
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/MessageScroller.cjs.js +538 -0
- package/dist/components/MessageScroller.cjs.js.map +1 -0
- package/dist/components/MessageScroller.d.ts +2 -0
- package/dist/components/MessageScroller.es.js +505 -0
- package/dist/components/MessageScroller.es.js.map +1 -0
- package/dist/components/Tabs.cjs.js +1 -1
- package/dist/components/Tabs.es.js +1 -1
- package/dist/components/ThreadRail.cjs.js +432 -0
- package/dist/components/ThreadRail.cjs.js.map +1 -0
- package/dist/components/ThreadRail.d.ts +2 -0
- package/dist/components/ThreadRail.es.js +407 -0
- package/dist/components/ThreadRail.es.js.map +1 -0
- package/dist/components/Tree.cjs.js +2 -2
- package/dist/components/Tree.cjs.js.map +1 -1
- package/dist/components/Tree.es.js +1 -1
- package/dist/components/Tree.es.js.map +1 -1
- package/dist/domains/metrics/components/latency-card-view.cjs.js +64 -42
- package/dist/domains/metrics/components/latency-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/latency-card-view.es.js +65 -43
- package/dist/domains/metrics/components/latency-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/memory-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/memory-card-view.es.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.es.js +1 -1
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +1 -1
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +1 -1
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.es.js +1 -1
- package/dist/ee/signals/components/signal-details-page.cjs.js +1 -1
- package/dist/ee/signals/components/signal-details-page.es.js +1 -1
- package/dist/hooks/use-isomorphic-layout-effect.cjs.js +29 -0
- package/dist/hooks/use-isomorphic-layout-effect.cjs.js.map +1 -0
- package/dist/hooks/use-isomorphic-layout-effect.d.ts +2 -0
- package/dist/hooks/use-isomorphic-layout-effect.es.js +6 -0
- package/dist/hooks/use-isomorphic-layout-effect.es.js.map +1 -0
- package/dist/hooks/use-measured-auto-height.cjs.js +75 -0
- package/dist/hooks/use-measured-auto-height.cjs.js.map +1 -0
- package/dist/hooks/use-measured-auto-height.d.ts +2 -0
- package/dist/hooks/use-measured-auto-height.es.js +52 -0
- package/dist/hooks/use-measured-auto-height.es.js.map +1 -0
- package/dist/message-scroller-hooks-CdsHnth6.js +62 -0
- package/dist/message-scroller-hooks-CdsHnth6.js.map +1 -0
- package/dist/message-scroller-hooks-DdXqrmC2.cjs +98 -0
- package/dist/message-scroller-hooks-DdXqrmC2.cjs.map +1 -0
- package/dist/src/ds/components/MessageScroller/index.d.ts +2 -0
- package/dist/src/ds/components/MessageScroller/message-scroller-context.d.ts +38 -0
- package/dist/src/ds/components/MessageScroller/message-scroller-hooks.d.ts +26 -0
- package/dist/src/ds/components/MessageScroller/message-scroller.d.ts +44 -0
- package/dist/src/ds/components/Tabs/tabs-tab.d.ts +2 -1
- package/dist/src/ds/components/ThreadRail/index.d.ts +2 -0
- package/dist/src/ds/components/ThreadRail/thread-rail-turns.d.ts +11 -0
- package/dist/src/ds/components/ThreadRail/thread-rail.d.ts +12 -0
- package/dist/src/hooks/use-isomorphic-layout-effect.d.ts +2 -0
- package/dist/src/hooks/use-measured-auto-height.d.ts +8 -0
- package/dist/style.css +249 -5
- package/dist/{tabs-tab-CaZnZdY8.js → tabs-tab-1KGOybMG.js} +27 -17
- package/dist/tabs-tab-1KGOybMG.js.map +1 -0
- package/dist/{tabs-tab-BeUPTvaP.cjs → tabs-tab-DkeS2Iv0.cjs} +27 -17
- package/dist/tabs-tab-DkeS2Iv0.cjs.map +1 -0
- package/package.json +7 -7
- package/dist/tabs-tab-BeUPTvaP.cjs.map +0 -1
- package/dist/tabs-tab-CaZnZdY8.js.map +0 -1
package/dist/style.css
CHANGED
|
@@ -708,6 +708,10 @@
|
|
|
708
708
|
inset-block: var(--spacing-0_5);
|
|
709
709
|
}
|
|
710
710
|
|
|
711
|
+
.inset-s-1\/2 {
|
|
712
|
+
inset-inline-start: 50%;
|
|
713
|
+
}
|
|
714
|
+
|
|
711
715
|
.top-0 {
|
|
712
716
|
top: var(--spacing-0);
|
|
713
717
|
}
|
|
@@ -812,6 +816,10 @@
|
|
|
812
816
|
left: 50%;
|
|
813
817
|
}
|
|
814
818
|
|
|
819
|
+
.left-full {
|
|
820
|
+
left: 100%;
|
|
821
|
+
}
|
|
822
|
+
|
|
815
823
|
.isolate {
|
|
816
824
|
isolation: isolate;
|
|
817
825
|
}
|
|
@@ -828,6 +836,10 @@
|
|
|
828
836
|
z-index: 20;
|
|
829
837
|
}
|
|
830
838
|
|
|
839
|
+
.z-30 {
|
|
840
|
+
z-index: 30;
|
|
841
|
+
}
|
|
842
|
+
|
|
831
843
|
.z-50 {
|
|
832
844
|
z-index: 50;
|
|
833
845
|
}
|
|
@@ -868,6 +880,14 @@
|
|
|
868
880
|
grid-column: 1 / -1;
|
|
869
881
|
}
|
|
870
882
|
|
|
883
|
+
.col-start-1 {
|
|
884
|
+
grid-column-start: 1;
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
.row-start-1 {
|
|
888
|
+
grid-row-start: 1;
|
|
889
|
+
}
|
|
890
|
+
|
|
871
891
|
.container {
|
|
872
892
|
width: 100%;
|
|
873
893
|
}
|
|
@@ -1179,6 +1199,13 @@
|
|
|
1179
1199
|
overflow: hidden;
|
|
1180
1200
|
}
|
|
1181
1201
|
|
|
1202
|
+
.line-clamp-3 {
|
|
1203
|
+
-webkit-line-clamp: 3;
|
|
1204
|
+
-webkit-box-orient: vertical;
|
|
1205
|
+
display: -webkit-box;
|
|
1206
|
+
overflow: hidden;
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1182
1209
|
.block {
|
|
1183
1210
|
display: block;
|
|
1184
1211
|
}
|
|
@@ -1274,6 +1301,11 @@
|
|
|
1274
1301
|
height: var(--spacing-10);
|
|
1275
1302
|
}
|
|
1276
1303
|
|
|
1304
|
+
.size-full {
|
|
1305
|
+
width: 100%;
|
|
1306
|
+
height: 100%;
|
|
1307
|
+
}
|
|
1308
|
+
|
|
1277
1309
|
.h-0\.5 {
|
|
1278
1310
|
height: var(--spacing-0_5);
|
|
1279
1311
|
}
|
|
@@ -1522,6 +1554,10 @@
|
|
|
1522
1554
|
height: var(--height-header-default);
|
|
1523
1555
|
}
|
|
1524
1556
|
|
|
1557
|
+
.h-max {
|
|
1558
|
+
height: max-content;
|
|
1559
|
+
}
|
|
1560
|
+
|
|
1525
1561
|
.h-px {
|
|
1526
1562
|
height: 1px;
|
|
1527
1563
|
height: var(--spacing-px);
|
|
@@ -2068,6 +2104,10 @@
|
|
|
2068
2104
|
max-width: var(--spacing-24);
|
|
2069
2105
|
}
|
|
2070
2106
|
|
|
2107
|
+
.max-w-44 {
|
|
2108
|
+
max-width: var(--spacing-44);
|
|
2109
|
+
}
|
|
2110
|
+
|
|
2071
2111
|
.max-w-60 {
|
|
2072
2112
|
max-width: var(--spacing-60);
|
|
2073
2113
|
}
|
|
@@ -2272,6 +2312,10 @@
|
|
|
2272
2312
|
transform-origin: var(--transform-origin);
|
|
2273
2313
|
}
|
|
2274
2314
|
|
|
2315
|
+
.origin-left {
|
|
2316
|
+
transform-origin: 0;
|
|
2317
|
+
}
|
|
2318
|
+
|
|
2275
2319
|
.-translate-x-1 {
|
|
2276
2320
|
--tw-translate-x: calc(var(--spacing-1) * -1);
|
|
2277
2321
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
@@ -2334,6 +2378,13 @@
|
|
|
2334
2378
|
scale: var(--tw-scale-x) var(--tw-scale-y);
|
|
2335
2379
|
}
|
|
2336
2380
|
|
|
2381
|
+
.scale-100 {
|
|
2382
|
+
--tw-scale-x: 100%;
|
|
2383
|
+
--tw-scale-y: 100%;
|
|
2384
|
+
--tw-scale-z: 100%;
|
|
2385
|
+
scale: var(--tw-scale-x) var(--tw-scale-y);
|
|
2386
|
+
}
|
|
2387
|
+
|
|
2337
2388
|
.scale-110 {
|
|
2338
2389
|
--tw-scale-x: 110%;
|
|
2339
2390
|
--tw-scale-y: 110%;
|
|
@@ -3549,11 +3600,17 @@
|
|
|
3549
3600
|
background-color: var(--color-neutral2);
|
|
3550
3601
|
}
|
|
3551
3602
|
|
|
3552
|
-
.bg-neutral3 {
|
|
3603
|
+
.bg-neutral3, .bg-neutral3\/60 {
|
|
3553
3604
|
background-color: var(--color-neutral3);
|
|
3554
3605
|
}
|
|
3555
3606
|
|
|
3556
|
-
|
|
3607
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
3608
|
+
.bg-neutral3\/60 {
|
|
3609
|
+
background-color: color-mix(in oklab, var(--color-neutral3) 60%, transparent);
|
|
3610
|
+
}
|
|
3611
|
+
}
|
|
3612
|
+
|
|
3613
|
+
.bg-neutral4, .bg-neutral4\/30 {
|
|
3557
3614
|
background-color: var(--color-neutral4);
|
|
3558
3615
|
}
|
|
3559
3616
|
|
|
@@ -3563,6 +3620,10 @@
|
|
|
3563
3620
|
}
|
|
3564
3621
|
}
|
|
3565
3622
|
|
|
3623
|
+
.bg-neutral5 {
|
|
3624
|
+
background-color: var(--color-neutral5);
|
|
3625
|
+
}
|
|
3626
|
+
|
|
3566
3627
|
.bg-neutral6, .bg-neutral6\/5 {
|
|
3567
3628
|
background-color: var(--color-neutral6);
|
|
3568
3629
|
}
|
|
@@ -4034,6 +4095,10 @@
|
|
|
4034
4095
|
padding: var(--spacing-3);
|
|
4035
4096
|
}
|
|
4036
4097
|
|
|
4098
|
+
.p-3\.5 {
|
|
4099
|
+
padding: var(--spacing-3_5);
|
|
4100
|
+
}
|
|
4101
|
+
|
|
4037
4102
|
.p-4 {
|
|
4038
4103
|
padding: var(--spacing-4);
|
|
4039
4104
|
}
|
|
@@ -4215,6 +4280,10 @@
|
|
|
4215
4280
|
padding-top: var(--spacing-2);
|
|
4216
4281
|
}
|
|
4217
4282
|
|
|
4283
|
+
.pt-2\.5 {
|
|
4284
|
+
padding-top: var(--spacing-2_5);
|
|
4285
|
+
}
|
|
4286
|
+
|
|
4218
4287
|
.pt-3 {
|
|
4219
4288
|
padding-top: var(--spacing-3);
|
|
4220
4289
|
}
|
|
@@ -5084,6 +5153,16 @@
|
|
|
5084
5153
|
filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
|
|
5085
5154
|
}
|
|
5086
5155
|
|
|
5156
|
+
.blur-none {
|
|
5157
|
+
--tw-blur: ;
|
|
5158
|
+
filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
|
|
5159
|
+
}
|
|
5160
|
+
|
|
5161
|
+
.blur-xs {
|
|
5162
|
+
--tw-blur: blur(var(--blur-xs));
|
|
5163
|
+
filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
|
|
5164
|
+
}
|
|
5165
|
+
|
|
5087
5166
|
.drop-shadow {
|
|
5088
5167
|
--tw-drop-shadow-size: drop-shadow(0 1px 2px var(--tw-drop-shadow-color, #0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color, #0000000f));
|
|
5089
5168
|
--tw-drop-shadow: drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);
|
|
@@ -5148,12 +5227,24 @@
|
|
|
5148
5227
|
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
5149
5228
|
}
|
|
5150
5229
|
|
|
5230
|
+
.transition-\[height\,translate\,opacity\] {
|
|
5231
|
+
transition-property: height, translate, opacity;
|
|
5232
|
+
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
5233
|
+
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
5234
|
+
}
|
|
5235
|
+
|
|
5151
5236
|
.transition-\[height\] {
|
|
5152
5237
|
transition-property: height;
|
|
5153
5238
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
5154
5239
|
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
5155
5240
|
}
|
|
5156
5241
|
|
|
5242
|
+
.transition-\[opacity\,filter\,scale\] {
|
|
5243
|
+
transition-property: opacity, filter, scale;
|
|
5244
|
+
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
5245
|
+
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
5246
|
+
}
|
|
5247
|
+
|
|
5157
5248
|
.transition-\[opacity\,scale\] {
|
|
5158
5249
|
transition-property: opacity, scale;
|
|
5159
5250
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
@@ -5190,6 +5281,18 @@
|
|
|
5190
5281
|
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
5191
5282
|
}
|
|
5192
5283
|
|
|
5284
|
+
.transition-\[translate\,scale\,opacity\] {
|
|
5285
|
+
transition-property: translate, scale, opacity;
|
|
5286
|
+
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
5287
|
+
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
5288
|
+
}
|
|
5289
|
+
|
|
5290
|
+
.transition-\[width\,background-color\] {
|
|
5291
|
+
transition-property: width, background-color;
|
|
5292
|
+
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
5293
|
+
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
5294
|
+
}
|
|
5295
|
+
|
|
5193
5296
|
.transition-\[width\] {
|
|
5194
5297
|
transition-property: width;
|
|
5195
5298
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
@@ -5250,6 +5353,11 @@
|
|
|
5250
5353
|
transition-duration: .3s;
|
|
5251
5354
|
}
|
|
5252
5355
|
|
|
5356
|
+
.duration-360 {
|
|
5357
|
+
--tw-duration: .36s;
|
|
5358
|
+
transition-duration: .36s;
|
|
5359
|
+
}
|
|
5360
|
+
|
|
5253
5361
|
.duration-1000, .duration-\[1s\] {
|
|
5254
5362
|
--tw-duration: 1s;
|
|
5255
5363
|
transition-duration: 1s;
|
|
@@ -5275,6 +5383,14 @@
|
|
|
5275
5383
|
transition-timing-function: var(--ease-out-custom);
|
|
5276
5384
|
}
|
|
5277
5385
|
|
|
5386
|
+
.will-change-\[height\,translate\,opacity\] {
|
|
5387
|
+
will-change: height,translate,opacity;
|
|
5388
|
+
}
|
|
5389
|
+
|
|
5390
|
+
.will-change-\[opacity\,filter\,scale\] {
|
|
5391
|
+
will-change: opacity,filter,scale;
|
|
5392
|
+
}
|
|
5393
|
+
|
|
5278
5394
|
.will-change-transform {
|
|
5279
5395
|
will-change: transform;
|
|
5280
5396
|
}
|
|
@@ -5306,6 +5422,14 @@
|
|
|
5306
5422
|
--studio-frame-radius: 1.5rem;
|
|
5307
5423
|
}
|
|
5308
5424
|
|
|
5425
|
+
.\[contain-intrinsic-size\:auto_10rem\] {
|
|
5426
|
+
contain-intrinsic-size: auto 10rem;
|
|
5427
|
+
}
|
|
5428
|
+
|
|
5429
|
+
.\[content-visibility\:auto\] {
|
|
5430
|
+
content-visibility: auto;
|
|
5431
|
+
}
|
|
5432
|
+
|
|
5309
5433
|
.\[scrollbar-width\:none\] {
|
|
5310
5434
|
scrollbar-width: none;
|
|
5311
5435
|
}
|
|
@@ -5679,6 +5803,11 @@
|
|
|
5679
5803
|
inset-inline: var(--spacing-0);
|
|
5680
5804
|
}
|
|
5681
5805
|
|
|
5806
|
+
.before\:-inset-y-1:before {
|
|
5807
|
+
content: var(--tw-content);
|
|
5808
|
+
inset-block: calc(var(--spacing-1) * -1);
|
|
5809
|
+
}
|
|
5810
|
+
|
|
5682
5811
|
.before\:inset-y-1:before {
|
|
5683
5812
|
content: var(--tw-content);
|
|
5684
5813
|
inset-block: var(--spacing-1);
|
|
@@ -5790,7 +5919,7 @@
|
|
|
5790
5919
|
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
|
|
5791
5920
|
}
|
|
5792
5921
|
|
|
5793
|
-
.before\:content-\[\"\"\]:before {
|
|
5922
|
+
.before\:content-\[\"\"\]:before, .before\:content-\[\'\'\]:before {
|
|
5794
5923
|
--tw-content: "";
|
|
5795
5924
|
content: var(--tw-content);
|
|
5796
5925
|
}
|
|
@@ -6390,10 +6519,16 @@
|
|
|
6390
6519
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
6391
6520
|
}
|
|
6392
6521
|
|
|
6393
|
-
.focus-visible\:ring-accent1:focus-visible {
|
|
6522
|
+
.focus-visible\:ring-accent1:focus-visible, .focus-visible\:ring-accent1\/40:focus-visible {
|
|
6394
6523
|
--tw-ring-color: var(--color-accent1);
|
|
6395
6524
|
}
|
|
6396
6525
|
|
|
6526
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
6527
|
+
.focus-visible\:ring-accent1\/40:focus-visible {
|
|
6528
|
+
--tw-ring-color: color-mix(in oklab, var(--color-accent1) 40%, transparent);
|
|
6529
|
+
}
|
|
6530
|
+
}
|
|
6531
|
+
|
|
6397
6532
|
.focus-visible\:outline-hidden:focus-visible {
|
|
6398
6533
|
--tw-outline-style: none;
|
|
6399
6534
|
outline-style: none;
|
|
@@ -6531,6 +6666,12 @@
|
|
|
6531
6666
|
opacity: .5;
|
|
6532
6667
|
}
|
|
6533
6668
|
|
|
6669
|
+
@media (hover: hover) {
|
|
6670
|
+
.disabled\:hover\:text-neutral3:disabled:hover {
|
|
6671
|
+
color: var(--color-neutral3);
|
|
6672
|
+
}
|
|
6673
|
+
}
|
|
6674
|
+
|
|
6534
6675
|
:where([data-sidebar-gesture="active"]) .in-data-\[sidebar-gesture\=active\]\:via-neutral6\/45 {
|
|
6535
6676
|
--tw-gradient-via: var(--color-neutral6);
|
|
6536
6677
|
}
|
|
@@ -6633,7 +6774,25 @@
|
|
|
6633
6774
|
padding-left: var(--spacing-1);
|
|
6634
6775
|
}
|
|
6635
6776
|
|
|
6636
|
-
.aria-checked\:bg-surface3[aria-checked="true"]
|
|
6777
|
+
.aria-checked\:bg-surface3[aria-checked="true"] {
|
|
6778
|
+
background-color: var(--color-surface3);
|
|
6779
|
+
}
|
|
6780
|
+
|
|
6781
|
+
.aria-disabled\:cursor-not-allowed[aria-disabled="true"] {
|
|
6782
|
+
cursor: not-allowed;
|
|
6783
|
+
}
|
|
6784
|
+
|
|
6785
|
+
.aria-disabled\:opacity-50[aria-disabled="true"] {
|
|
6786
|
+
opacity: .5;
|
|
6787
|
+
}
|
|
6788
|
+
|
|
6789
|
+
@media (hover: hover) {
|
|
6790
|
+
.aria-disabled\:hover\:text-neutral3[aria-disabled="true"]:hover {
|
|
6791
|
+
color: var(--color-neutral3);
|
|
6792
|
+
}
|
|
6793
|
+
}
|
|
6794
|
+
|
|
6795
|
+
.aria-pressed\:bg-surface3[aria-pressed="true"] {
|
|
6637
6796
|
background-color: var(--color-surface3);
|
|
6638
6797
|
}
|
|
6639
6798
|
|
|
@@ -6727,6 +6886,52 @@
|
|
|
6727
6886
|
color: var(--color-neutral5);
|
|
6728
6887
|
}
|
|
6729
6888
|
|
|
6889
|
+
.data-\[active\=false\]\:pointer-events-none[data-active="false"] {
|
|
6890
|
+
pointer-events: none;
|
|
6891
|
+
}
|
|
6892
|
+
|
|
6893
|
+
.data-\[active\=false\]\:scale-95[data-active="false"] {
|
|
6894
|
+
--tw-scale-x: 95%;
|
|
6895
|
+
--tw-scale-y: 95%;
|
|
6896
|
+
--tw-scale-z: 95%;
|
|
6897
|
+
scale: var(--tw-scale-x) var(--tw-scale-y);
|
|
6898
|
+
}
|
|
6899
|
+
|
|
6900
|
+
.data-\[active\=false\]\:opacity-0[data-active="false"] {
|
|
6901
|
+
opacity: 0;
|
|
6902
|
+
}
|
|
6903
|
+
|
|
6904
|
+
.data-\[active\=false\]\:duration-400[data-active="false"] {
|
|
6905
|
+
--tw-duration: .4s;
|
|
6906
|
+
transition-duration: .4s;
|
|
6907
|
+
}
|
|
6908
|
+
|
|
6909
|
+
.data-\[active\=false\]\:ease-\[cubic-bezier\(0\.7\,0\,0\.84\,0\)\][data-active="false"] {
|
|
6910
|
+
--tw-ease: cubic-bezier(.7,0,.84,0);
|
|
6911
|
+
transition-timing-function: cubic-bezier(.7, 0, .84, 0);
|
|
6912
|
+
}
|
|
6913
|
+
|
|
6914
|
+
.data-\[active\=true\]\:translate-y-0[data-active="true"] {
|
|
6915
|
+
--tw-translate-y: var(--spacing-0);
|
|
6916
|
+
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
6917
|
+
}
|
|
6918
|
+
|
|
6919
|
+
.data-\[active\=true\]\:scale-100[data-active="true"] {
|
|
6920
|
+
--tw-scale-x: 100%;
|
|
6921
|
+
--tw-scale-y: 100%;
|
|
6922
|
+
--tw-scale-z: 100%;
|
|
6923
|
+
scale: var(--tw-scale-x) var(--tw-scale-y);
|
|
6924
|
+
}
|
|
6925
|
+
|
|
6926
|
+
.data-\[active\=true\]\:opacity-100[data-active="true"] {
|
|
6927
|
+
opacity: 1;
|
|
6928
|
+
}
|
|
6929
|
+
|
|
6930
|
+
.data-\[active\=true\]\:ease-\[cubic-bezier\(0\.23\,1\,0\.32\,1\)\][data-active="true"] {
|
|
6931
|
+
--tw-ease: cubic-bezier(.23,1,.32,1);
|
|
6932
|
+
transition-timing-function: cubic-bezier(.23, 1, .32, 1);
|
|
6933
|
+
}
|
|
6934
|
+
|
|
6730
6935
|
.data-\[checked\]\:translate-x-3[data-checked] {
|
|
6731
6936
|
--tw-translate-x: var(--spacing-3);
|
|
6732
6937
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
@@ -6808,6 +7013,15 @@
|
|
|
6808
7013
|
--tw-exit-scale: .95;
|
|
6809
7014
|
}
|
|
6810
7015
|
|
|
7016
|
+
.data-\[direction\=end\]\:bottom-4[data-direction="end"] {
|
|
7017
|
+
bottom: var(--spacing-4);
|
|
7018
|
+
}
|
|
7019
|
+
|
|
7020
|
+
.data-\[direction\=end\]\:data-\[active\=false\]\:translate-y-full[data-direction="end"][data-active="false"] {
|
|
7021
|
+
--tw-translate-y: 100%;
|
|
7022
|
+
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
7023
|
+
}
|
|
7024
|
+
|
|
6811
7025
|
.data-\[direction\=left\]\:left-0[data-direction="left"] {
|
|
6812
7026
|
left: var(--spacing-0);
|
|
6813
7027
|
}
|
|
@@ -6816,6 +7030,15 @@
|
|
|
6816
7030
|
right: var(--spacing-0);
|
|
6817
7031
|
}
|
|
6818
7032
|
|
|
7033
|
+
.data-\[direction\=start\]\:top-4[data-direction="start"] {
|
|
7034
|
+
top: var(--spacing-4);
|
|
7035
|
+
}
|
|
7036
|
+
|
|
7037
|
+
.data-\[direction\=start\]\:data-\[active\=false\]\:-translate-y-full[data-direction="start"][data-active="false"] {
|
|
7038
|
+
--tw-translate-y: -100%;
|
|
7039
|
+
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
7040
|
+
}
|
|
7041
|
+
|
|
6819
7042
|
.data-\[disabled\]\:pointer-events-none[data-disabled] {
|
|
6820
7043
|
pointer-events: none;
|
|
6821
7044
|
}
|
|
@@ -7406,6 +7629,18 @@
|
|
|
7406
7629
|
}
|
|
7407
7630
|
|
|
7408
7631
|
@media (prefers-reduced-motion: reduce) {
|
|
7632
|
+
.motion-reduce\:scale-100 {
|
|
7633
|
+
--tw-scale-x: 100%;
|
|
7634
|
+
--tw-scale-y: 100%;
|
|
7635
|
+
--tw-scale-z: 100%;
|
|
7636
|
+
scale: var(--tw-scale-x) var(--tw-scale-y);
|
|
7637
|
+
}
|
|
7638
|
+
|
|
7639
|
+
.motion-reduce\:blur-none {
|
|
7640
|
+
--tw-blur: ;
|
|
7641
|
+
filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
|
|
7642
|
+
}
|
|
7643
|
+
|
|
7409
7644
|
.motion-reduce\:transition-none {
|
|
7410
7645
|
transition-property: none;
|
|
7411
7646
|
}
|
|
@@ -7704,6 +7939,11 @@
|
|
|
7704
7939
|
}
|
|
7705
7940
|
}
|
|
7706
7941
|
|
|
7942
|
+
.rtl\:translate-x-1\/2:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
|
|
7943
|
+
--tw-translate-x: calc(1 / 2 * 100%);
|
|
7944
|
+
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
7945
|
+
}
|
|
7946
|
+
|
|
7707
7947
|
.dark\:border-transparent:is(.dark *) {
|
|
7708
7948
|
border-color: #0000;
|
|
7709
7949
|
}
|
|
@@ -8130,6 +8370,10 @@
|
|
|
8130
8370
|
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
8131
8371
|
}
|
|
8132
8372
|
|
|
8373
|
+
.data-\[direction\=start\]\:\[\&_svg\]\:rotate-180[data-direction="start"] svg {
|
|
8374
|
+
rotate: 180deg;
|
|
8375
|
+
}
|
|
8376
|
+
|
|
8133
8377
|
.data-\[selected\=true\]\:\[\&_svg\]\:text-neutral6[data-selected="true"] svg {
|
|
8134
8378
|
color: var(--color-neutral6);
|
|
8135
8379
|
}
|
|
@@ -1,23 +1,11 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { Tabs as Tabs$1 } from '@base-ui/react/tabs';
|
|
3
|
-
import { c as cn } from './cn-BakJzhuv.js';
|
|
4
3
|
import { c as cva } from './index-CSm06eOE.js';
|
|
4
|
+
import { c as cn } from './cn-BakJzhuv.js';
|
|
5
5
|
import { X } from 'lucide-react';
|
|
6
|
+
import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from './tooltip-CjjqIvhJ.js';
|
|
6
7
|
import { transitions, focusRing } from './primitives/transitions.es.js';
|
|
7
8
|
|
|
8
|
-
const Tabs = ({ children, defaultTab, value, onValueChange, className }) => {
|
|
9
|
-
return /* @__PURE__ */ jsx(
|
|
10
|
-
Tabs$1.Root,
|
|
11
|
-
{
|
|
12
|
-
defaultValue: defaultTab,
|
|
13
|
-
value,
|
|
14
|
-
onValueChange: onValueChange ? (next) => onValueChange(next) : void 0,
|
|
15
|
-
className: cn("overflow-y-auto", className),
|
|
16
|
-
children
|
|
17
|
-
}
|
|
18
|
-
);
|
|
19
|
-
};
|
|
20
|
-
|
|
21
9
|
const tabListVariants = cva("flex items-center relative text-ui-lg", {
|
|
22
10
|
variants: {
|
|
23
11
|
variant: {
|
|
@@ -67,8 +55,21 @@ const TabList = ({ children, className, variant, sticky, style }) => {
|
|
|
67
55
|
) });
|
|
68
56
|
};
|
|
69
57
|
|
|
70
|
-
const
|
|
71
|
-
return /* @__PURE__ */
|
|
58
|
+
const Tabs = ({ children, defaultTab, value, onValueChange, className }) => {
|
|
59
|
+
return /* @__PURE__ */ jsx(
|
|
60
|
+
Tabs$1.Root,
|
|
61
|
+
{
|
|
62
|
+
defaultValue: defaultTab,
|
|
63
|
+
value,
|
|
64
|
+
onValueChange: onValueChange ? (next) => onValueChange(next) : void 0,
|
|
65
|
+
className: cn("overflow-y-auto", className),
|
|
66
|
+
children
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const Tab = ({ children, value, onClick, onClose, disabled, disabledTooltip, className }) => {
|
|
72
|
+
const tab = /* @__PURE__ */ jsxs(
|
|
72
73
|
Tabs$1.Tab,
|
|
73
74
|
{
|
|
74
75
|
value,
|
|
@@ -80,6 +81,8 @@ const Tab = ({ children, value, onClick, onClose, disabled, className }) => {
|
|
|
80
81
|
focusRing.visible,
|
|
81
82
|
"hover:text-neutral4",
|
|
82
83
|
"data-[active]:text-neutral5",
|
|
84
|
+
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:text-neutral3",
|
|
85
|
+
"aria-disabled:cursor-not-allowed aria-disabled:opacity-50 aria-disabled:hover:text-neutral3",
|
|
83
86
|
"data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[disabled]:hover:text-neutral3",
|
|
84
87
|
// Line variant legacy fallback — active state drawn by <Tabs.Indicator> in TabList
|
|
85
88
|
"group-data-[variant=line]/tabs-list:py-2 group-data-[variant=line]/tabs-list:px-5",
|
|
@@ -113,7 +116,14 @@ const Tab = ({ children, value, onClick, onClose, disabled, className }) => {
|
|
|
113
116
|
]
|
|
114
117
|
}
|
|
115
118
|
);
|
|
119
|
+
if (disabled && disabledTooltip) {
|
|
120
|
+
return /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
121
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: tab }),
|
|
122
|
+
/* @__PURE__ */ jsx(TooltipContent, { children: disabledTooltip })
|
|
123
|
+
] });
|
|
124
|
+
}
|
|
125
|
+
return tab;
|
|
116
126
|
};
|
|
117
127
|
|
|
118
128
|
export { Tab as T, TabList as a, Tabs as b };
|
|
119
|
-
//# sourceMappingURL=tabs-tab-
|
|
129
|
+
//# sourceMappingURL=tabs-tab-1KGOybMG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs-tab-1KGOybMG.js","sources":["../src/ds/components/Tabs/tabs-list.tsx","../src/ds/components/Tabs/tabs-root.tsx","../src/ds/components/Tabs/tabs-tab.tsx"],"sourcesContent":["import { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\n\nconst tabListVariants = cva('flex items-center relative text-ui-lg', {\n variants: {\n variant: {\n line: 'w-max min-w-full border-b border-border1',\n pill: 'w-fit gap-1 rounded-full bg-surface2 p-1',\n 'pill-ghost': 'w-fit gap-1 rounded-full p-1',\n },\n },\n defaultVariants: {\n variant: 'line',\n },\n});\n\ntype TabListVariantsProps = VariantProps<typeof tabListVariants>;\ntype TabListVariantValue = NonNullable<TabListVariantsProps['variant']>;\n\n/**\n * @deprecated `line` remains the omitted fallback for backward compatibility.\n * Pass `variant=\"pill\"` or `variant=\"pill-ghost\"` for new tabs.\n */\nexport type DeprecatedLineTabListVariant = Extract<TabListVariantValue, 'line'>;\n\nexport type TabListVariant = DeprecatedLineTabListVariant | Exclude<TabListVariantValue, DeprecatedLineTabListVariant>;\n\nexport type TabListProps = Omit<TabListVariantsProps, 'variant'> & {\n children: React.ReactNode;\n className?: string;\n sticky?: boolean;\n /**\n * Visual treatment for the tab list.\n *\n * Defaults to `line` only for backward compatibility. New tabs should pass\n * `variant=\"pill\"` or `variant=\"pill-ghost\"` explicitly.\n */\n variant?: TabListVariant | null;\n /**\n * Optional inline styles applied to the underlying tab list element.\n * To override the active tab indicator color, set the `--tab-indicator-color`\n * CSS variable, e.g. `style={{ '--tab-indicator-color': 'var(--accent5)' } as React.CSSProperties}`.\n */\n style?: React.CSSProperties;\n};\n\nexport const TabList = ({ children, className, variant, sticky, style }: TabListProps) => {\n const resolvedVariant = variant ?? 'line';\n\n return (\n <div className={cn('w-full overflow-x-auto', sticky && 'sticky top-0 z-10 bg-surface2')}>\n <BaseTabs.List\n data-variant={resolvedVariant}\n className={cn('group/tabs-list', tabListVariants({ variant: resolvedVariant }), className)}\n style={style}\n >\n {children}\n {resolvedVariant === 'line' && (\n <BaseTabs.Indicator\n className={cn(\n 'absolute bottom-0 left-0 bg-[var(--tab-indicator-color,var(--neutral3))]',\n 'w-[var(--active-tab-width)] h-0.5',\n 'transition-all duration-200 ease-in-out',\n )}\n style={{ transform: 'translateX(var(--active-tab-left))' }}\n />\n )}\n {(resolvedVariant === 'pill' || resolvedVariant === 'pill-ghost') && (\n <BaseTabs.Indicator\n className={cn(\n 'absolute top-1/2 left-0 z-0 rounded-full bg-[var(--tab-indicator-color,var(--surface4))]',\n 'w-[var(--active-tab-width)] h-[calc(100%-0.5rem)]',\n 'transition-all duration-200 ease-in-out',\n )}\n style={{ transform: 'translateY(-50%) translateX(var(--active-tab-left))' }}\n />\n )}\n </BaseTabs.List>\n </div>\n );\n};\n","import { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport { cn } from '@/lib/utils';\n\nexport type TabsRootProps<T extends string> = {\n children: React.ReactNode;\n defaultTab: T;\n value?: T;\n onValueChange?: (value: T) => void;\n className?: string;\n};\n\nexport const Tabs = <T extends string>({ children, defaultTab, value, onValueChange, className }: TabsRootProps<T>) => {\n return (\n <BaseTabs.Root\n defaultValue={defaultTab}\n value={value}\n onValueChange={onValueChange ? next => onValueChange(next as T) : undefined}\n className={cn('overflow-y-auto', className)}\n >\n {children}\n </BaseTabs.Root>\n );\n};\n","import { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport { X } from 'lucide-react';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../Tooltip/tooltip';\nimport { transitions, focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type TabProps = {\n children: React.ReactNode;\n value: string;\n onClick?: () => void;\n onClose?: () => void;\n disabled?: boolean;\n disabledTooltip?: React.ReactNode;\n className?: string;\n};\n\nexport const Tab = ({ children, value, onClick, onClose, disabled, disabledTooltip, className }: TabProps) => {\n const tab = (\n <BaseTabs.Tab\n value={value}\n disabled={disabled}\n className={cn(\n 'text-ui-md font-normal text-neutral3',\n 'whitespace-nowrap shrink-0 flex items-center justify-center gap-1.5 outline-none cursor-pointer',\n transitions.colors,\n focusRing.visible,\n 'hover:text-neutral4',\n 'data-[active]:text-neutral5',\n 'disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:text-neutral3',\n 'aria-disabled:cursor-not-allowed aria-disabled:opacity-50 aria-disabled:hover:text-neutral3',\n 'data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[disabled]:hover:text-neutral3',\n // Line variant legacy fallback — active state drawn by <Tabs.Indicator> in TabList\n 'group-data-[variant=line]/tabs-list:py-2 group-data-[variant=line]/tabs-list:px-5',\n 'group-data-[variant=line]/tabs-list:border-b-2 group-data-[variant=line]/tabs-list:border-transparent',\n // Pill variant\n 'group-data-[variant=pill]/tabs-list:relative group-data-[variant=pill]/tabs-list:z-10',\n 'group-data-[variant=pill]/tabs-list:py-1 group-data-[variant=pill]/tabs-list:px-3',\n 'group-data-[variant=pill]/tabs-list:rounded-full',\n // Pill-ghost variant (pill without list background)\n 'group-data-[variant=pill-ghost]/tabs-list:relative group-data-[variant=pill-ghost]/tabs-list:z-10',\n 'group-data-[variant=pill-ghost]/tabs-list:py-1 group-data-[variant=pill-ghost]/tabs-list:px-3',\n 'group-data-[variant=pill-ghost]/tabs-list:rounded-full',\n className,\n )}\n onClick={onClick}\n >\n {children}\n {onClose && (\n <button\n type=\"button\"\n onClick={e => {\n e.stopPropagation();\n onClose();\n }}\n className={cn('p-0.5 hover:bg-surface4 rounded', transitions.colors, 'hover:text-neutral5')}\n aria-label=\"Close tab\"\n >\n <X className=\"w-3 h-3\" />\n </button>\n )}\n </BaseTabs.Tab>\n );\n\n if (disabled && disabledTooltip) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>{tab}</TooltipTrigger>\n <TooltipContent>{disabledTooltip}</TooltipContent>\n </Tooltip>\n );\n }\n\n return tab;\n};\n"],"names":["BaseTabs"],"mappings":"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"}
|
|
@@ -2,24 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
const jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
const tabs = require('@base-ui/react/tabs');
|
|
5
|
-
const utils_cn = require('./cn-vA5sWo9W.cjs');
|
|
6
5
|
const index = require('./index-C-Lt4Bx_.cjs');
|
|
6
|
+
const utils_cn = require('./cn-vA5sWo9W.cjs');
|
|
7
7
|
const lucideReact = require('lucide-react');
|
|
8
|
+
const tooltip = require('./tooltip-fTKN3FCp.cjs');
|
|
8
9
|
const primitives_transitions = require('./primitives/transitions.cjs.js');
|
|
9
10
|
|
|
10
|
-
const Tabs = ({ children, defaultTab, value, onValueChange, className }) => {
|
|
11
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12
|
-
tabs.Tabs.Root,
|
|
13
|
-
{
|
|
14
|
-
defaultValue: defaultTab,
|
|
15
|
-
value,
|
|
16
|
-
onValueChange: onValueChange ? (next) => onValueChange(next) : void 0,
|
|
17
|
-
className: utils_cn.cn("overflow-y-auto", className),
|
|
18
|
-
children
|
|
19
|
-
}
|
|
20
|
-
);
|
|
21
|
-
};
|
|
22
|
-
|
|
23
11
|
const tabListVariants = index.cva("flex items-center relative text-ui-lg", {
|
|
24
12
|
variants: {
|
|
25
13
|
variant: {
|
|
@@ -69,8 +57,21 @@ const TabList = ({ children, className, variant, sticky, style }) => {
|
|
|
69
57
|
) });
|
|
70
58
|
};
|
|
71
59
|
|
|
72
|
-
const
|
|
73
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
60
|
+
const Tabs = ({ children, defaultTab, value, onValueChange, className }) => {
|
|
61
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
62
|
+
tabs.Tabs.Root,
|
|
63
|
+
{
|
|
64
|
+
defaultValue: defaultTab,
|
|
65
|
+
value,
|
|
66
|
+
onValueChange: onValueChange ? (next) => onValueChange(next) : void 0,
|
|
67
|
+
className: utils_cn.cn("overflow-y-auto", className),
|
|
68
|
+
children
|
|
69
|
+
}
|
|
70
|
+
);
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const Tab = ({ children, value, onClick, onClose, disabled, disabledTooltip, className }) => {
|
|
74
|
+
const tab = /* @__PURE__ */ jsxRuntime.jsxs(
|
|
74
75
|
tabs.Tabs.Tab,
|
|
75
76
|
{
|
|
76
77
|
value,
|
|
@@ -82,6 +83,8 @@ const Tab = ({ children, value, onClick, onClose, disabled, className }) => {
|
|
|
82
83
|
primitives_transitions.focusRing.visible,
|
|
83
84
|
"hover:text-neutral4",
|
|
84
85
|
"data-[active]:text-neutral5",
|
|
86
|
+
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:text-neutral3",
|
|
87
|
+
"aria-disabled:cursor-not-allowed aria-disabled:opacity-50 aria-disabled:hover:text-neutral3",
|
|
85
88
|
"data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[disabled]:hover:text-neutral3",
|
|
86
89
|
// Line variant legacy fallback — active state drawn by <Tabs.Indicator> in TabList
|
|
87
90
|
"group-data-[variant=line]/tabs-list:py-2 group-data-[variant=line]/tabs-list:px-5",
|
|
@@ -115,9 +118,16 @@ const Tab = ({ children, value, onClick, onClose, disabled, className }) => {
|
|
|
115
118
|
]
|
|
116
119
|
}
|
|
117
120
|
);
|
|
121
|
+
if (disabled && disabledTooltip) {
|
|
122
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip, { children: [
|
|
123
|
+
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: tab }),
|
|
124
|
+
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { children: disabledTooltip })
|
|
125
|
+
] });
|
|
126
|
+
}
|
|
127
|
+
return tab;
|
|
118
128
|
};
|
|
119
129
|
|
|
120
130
|
exports.Tab = Tab;
|
|
121
131
|
exports.TabList = TabList;
|
|
122
132
|
exports.Tabs = Tabs;
|
|
123
|
-
//# sourceMappingURL=tabs-tab-
|
|
133
|
+
//# sourceMappingURL=tabs-tab-DkeS2Iv0.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs-tab-DkeS2Iv0.cjs","sources":["../src/ds/components/Tabs/tabs-list.tsx","../src/ds/components/Tabs/tabs-root.tsx","../src/ds/components/Tabs/tabs-tab.tsx"],"sourcesContent":["import { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\n\nconst tabListVariants = cva('flex items-center relative text-ui-lg', {\n variants: {\n variant: {\n line: 'w-max min-w-full border-b border-border1',\n pill: 'w-fit gap-1 rounded-full bg-surface2 p-1',\n 'pill-ghost': 'w-fit gap-1 rounded-full p-1',\n },\n },\n defaultVariants: {\n variant: 'line',\n },\n});\n\ntype TabListVariantsProps = VariantProps<typeof tabListVariants>;\ntype TabListVariantValue = NonNullable<TabListVariantsProps['variant']>;\n\n/**\n * @deprecated `line` remains the omitted fallback for backward compatibility.\n * Pass `variant=\"pill\"` or `variant=\"pill-ghost\"` for new tabs.\n */\nexport type DeprecatedLineTabListVariant = Extract<TabListVariantValue, 'line'>;\n\nexport type TabListVariant = DeprecatedLineTabListVariant | Exclude<TabListVariantValue, DeprecatedLineTabListVariant>;\n\nexport type TabListProps = Omit<TabListVariantsProps, 'variant'> & {\n children: React.ReactNode;\n className?: string;\n sticky?: boolean;\n /**\n * Visual treatment for the tab list.\n *\n * Defaults to `line` only for backward compatibility. New tabs should pass\n * `variant=\"pill\"` or `variant=\"pill-ghost\"` explicitly.\n */\n variant?: TabListVariant | null;\n /**\n * Optional inline styles applied to the underlying tab list element.\n * To override the active tab indicator color, set the `--tab-indicator-color`\n * CSS variable, e.g. `style={{ '--tab-indicator-color': 'var(--accent5)' } as React.CSSProperties}`.\n */\n style?: React.CSSProperties;\n};\n\nexport const TabList = ({ children, className, variant, sticky, style }: TabListProps) => {\n const resolvedVariant = variant ?? 'line';\n\n return (\n <div className={cn('w-full overflow-x-auto', sticky && 'sticky top-0 z-10 bg-surface2')}>\n <BaseTabs.List\n data-variant={resolvedVariant}\n className={cn('group/tabs-list', tabListVariants({ variant: resolvedVariant }), className)}\n style={style}\n >\n {children}\n {resolvedVariant === 'line' && (\n <BaseTabs.Indicator\n className={cn(\n 'absolute bottom-0 left-0 bg-[var(--tab-indicator-color,var(--neutral3))]',\n 'w-[var(--active-tab-width)] h-0.5',\n 'transition-all duration-200 ease-in-out',\n )}\n style={{ transform: 'translateX(var(--active-tab-left))' }}\n />\n )}\n {(resolvedVariant === 'pill' || resolvedVariant === 'pill-ghost') && (\n <BaseTabs.Indicator\n className={cn(\n 'absolute top-1/2 left-0 z-0 rounded-full bg-[var(--tab-indicator-color,var(--surface4))]',\n 'w-[var(--active-tab-width)] h-[calc(100%-0.5rem)]',\n 'transition-all duration-200 ease-in-out',\n )}\n style={{ transform: 'translateY(-50%) translateX(var(--active-tab-left))' }}\n />\n )}\n </BaseTabs.List>\n </div>\n );\n};\n","import { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport { cn } from '@/lib/utils';\n\nexport type TabsRootProps<T extends string> = {\n children: React.ReactNode;\n defaultTab: T;\n value?: T;\n onValueChange?: (value: T) => void;\n className?: string;\n};\n\nexport const Tabs = <T extends string>({ children, defaultTab, value, onValueChange, className }: TabsRootProps<T>) => {\n return (\n <BaseTabs.Root\n defaultValue={defaultTab}\n value={value}\n onValueChange={onValueChange ? next => onValueChange(next as T) : undefined}\n className={cn('overflow-y-auto', className)}\n >\n {children}\n </BaseTabs.Root>\n );\n};\n","import { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport { X } from 'lucide-react';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../Tooltip/tooltip';\nimport { transitions, focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type TabProps = {\n children: React.ReactNode;\n value: string;\n onClick?: () => void;\n onClose?: () => void;\n disabled?: boolean;\n disabledTooltip?: React.ReactNode;\n className?: string;\n};\n\nexport const Tab = ({ children, value, onClick, onClose, disabled, disabledTooltip, className }: TabProps) => {\n const tab = (\n <BaseTabs.Tab\n value={value}\n disabled={disabled}\n className={cn(\n 'text-ui-md font-normal text-neutral3',\n 'whitespace-nowrap shrink-0 flex items-center justify-center gap-1.5 outline-none cursor-pointer',\n transitions.colors,\n focusRing.visible,\n 'hover:text-neutral4',\n 'data-[active]:text-neutral5',\n 'disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:text-neutral3',\n 'aria-disabled:cursor-not-allowed aria-disabled:opacity-50 aria-disabled:hover:text-neutral3',\n 'data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[disabled]:hover:text-neutral3',\n // Line variant legacy fallback — active state drawn by <Tabs.Indicator> in TabList\n 'group-data-[variant=line]/tabs-list:py-2 group-data-[variant=line]/tabs-list:px-5',\n 'group-data-[variant=line]/tabs-list:border-b-2 group-data-[variant=line]/tabs-list:border-transparent',\n // Pill variant\n 'group-data-[variant=pill]/tabs-list:relative group-data-[variant=pill]/tabs-list:z-10',\n 'group-data-[variant=pill]/tabs-list:py-1 group-data-[variant=pill]/tabs-list:px-3',\n 'group-data-[variant=pill]/tabs-list:rounded-full',\n // Pill-ghost variant (pill without list background)\n 'group-data-[variant=pill-ghost]/tabs-list:relative group-data-[variant=pill-ghost]/tabs-list:z-10',\n 'group-data-[variant=pill-ghost]/tabs-list:py-1 group-data-[variant=pill-ghost]/tabs-list:px-3',\n 'group-data-[variant=pill-ghost]/tabs-list:rounded-full',\n className,\n )}\n onClick={onClick}\n >\n {children}\n {onClose && (\n <button\n type=\"button\"\n onClick={e => {\n e.stopPropagation();\n onClose();\n }}\n className={cn('p-0.5 hover:bg-surface4 rounded', transitions.colors, 'hover:text-neutral5')}\n aria-label=\"Close tab\"\n >\n <X className=\"w-3 h-3\" />\n </button>\n )}\n </BaseTabs.Tab>\n );\n\n if (disabled && disabledTooltip) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>{tab}</TooltipTrigger>\n <TooltipContent>{disabledTooltip}</TooltipContent>\n </Tooltip>\n );\n }\n\n return tab;\n};\n"],"names":["cva","cn","jsxs","BaseTabs","jsx","transitions","focusRing","X","Tooltip","TooltipTrigger","TooltipContent"],"mappings":"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"}
|