@aircall/ds 0.9.0 → 0.10.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.
- package/dist/globals.css +1 -1
- package/dist/index.d.ts +390 -294
- package/dist/index.js +549 -97
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -15,6 +15,7 @@ import { Separator as Separator$1 } from "@base-ui/react/separator";
|
|
|
15
15
|
import { DayPicker, getDefaultClassNames } from "react-day-picker";
|
|
16
16
|
import useEmblaCarousel from "embla-carousel-react";
|
|
17
17
|
import { Checkbox as Checkbox$1 } from "@base-ui/react/checkbox";
|
|
18
|
+
import { ScrollArea as ScrollAreaPrimitive } from "@base-ui/react/scroll-area";
|
|
18
19
|
import { Collapsible as Collapsible$1 } from "@base-ui/react/collapsible";
|
|
19
20
|
import { Combobox as Combobox$1 } from "@base-ui/react";
|
|
20
21
|
import { Command as Command$1 } from "cmdk";
|
|
@@ -23,7 +24,6 @@ import { flexRender, getCoreRowModel, useReactTable } from "@tanstack/react-tabl
|
|
|
23
24
|
import { Drawer as DrawerPrimitive } from "@base-ui/react/drawer";
|
|
24
25
|
import { Radio } from "@base-ui/react/radio";
|
|
25
26
|
import { RadioGroup as RadioGroup$1 } from "@base-ui/react/radio-group";
|
|
26
|
-
import { ScrollArea as ScrollAreaPrimitive } from "@base-ui/react/scroll-area";
|
|
27
27
|
import { Menu } from "@base-ui/react/menu";
|
|
28
28
|
import EmojiReactPicker, { Categories, EmojiStyle, SuggestionMode, Theme } from "emoji-picker-react";
|
|
29
29
|
import { Popover as Popover$1 } from "@base-ui/react/popover";
|
|
@@ -151,7 +151,7 @@ function AccordionContent({ className, children, ...props }) {
|
|
|
151
151
|
|
|
152
152
|
//#endregion
|
|
153
153
|
//#region src/components/button.tsx
|
|
154
|
-
const buttonVariants = cva("group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px active:not-aria-[haspopup]:opacity-60 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
|
|
154
|
+
const buttonVariants = cva("group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px active:not-aria-[haspopup]:opacity-60 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
|
|
155
155
|
variants: {
|
|
156
156
|
variant: {
|
|
157
157
|
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
@@ -177,9 +177,10 @@ const buttonVariants = cva("group/button inline-flex shrink-0 items-center justi
|
|
|
177
177
|
block: false
|
|
178
178
|
}
|
|
179
179
|
});
|
|
180
|
-
const Button = React$1.forwardRef((
|
|
180
|
+
const Button = React$1.forwardRef((componentProps, forwardRef) => {
|
|
181
|
+
const { className, variant = "default", size = "default", block = false, ...props } = componentProps;
|
|
181
182
|
return /* @__PURE__ */ jsx(Button$1, {
|
|
182
|
-
ref,
|
|
183
|
+
ref: forwardRef,
|
|
183
184
|
"data-slot": "button",
|
|
184
185
|
"data-variant": variant,
|
|
185
186
|
className: cn(buttonVariants({
|
|
@@ -346,7 +347,7 @@ function AvatarImage({ className, ...props }) {
|
|
|
346
347
|
function AvatarFallback({ className, ...props }) {
|
|
347
348
|
return /* @__PURE__ */ jsx(Avatar$1.Fallback, {
|
|
348
349
|
"data-slot": "avatar-fallback",
|
|
349
|
-
className: cn("flex size-full items-center justify-center rounded-full bg-
|
|
350
|
+
className: cn("flex size-full items-center justify-center rounded-full bg-background text-sm text-foreground group-data-[size=xs]/avatar:text-xs group-data-[size=sm]/avatar:text-xs group-data-[size=xl]/avatar:text-base", className),
|
|
350
351
|
...props
|
|
351
352
|
});
|
|
352
353
|
}
|
|
@@ -400,56 +401,305 @@ CounterBadge.displayName = "CounterBadge";
|
|
|
400
401
|
|
|
401
402
|
//#endregion
|
|
402
403
|
//#region src/components/badge.tsx
|
|
403
|
-
const
|
|
404
|
+
const COLOR_OVERLAY = "bg-[linear-gradient(0deg,var(--badge-color-overlay)_0%,var(--badge-color-overlay)_100%)]";
|
|
405
|
+
const badgeVariants = cva("group/badge inline-flex w-fit max-w-36 shrink-0 items-center justify-center gap-1 overflow-hidden rounded-md border border-transparent font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:shrink-0 [&>svg]:pointer-events-none", {
|
|
404
406
|
variants: {
|
|
405
|
-
variant: {
|
|
406
|
-
default: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",
|
|
407
|
-
secondary: "bg-charcoal-500/30 text-foreground [a]:hover:bg-charcoal-500/20",
|
|
408
|
-
outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground"
|
|
409
|
-
},
|
|
410
407
|
size: {
|
|
411
|
-
|
|
412
|
-
lg: "h-
|
|
408
|
+
default: "h-5 px-2 py-0.5 text-xs [&>svg]:size-3!",
|
|
409
|
+
lg: "h-6 px-2 text-xs [&>svg]:size-4!"
|
|
410
|
+
},
|
|
411
|
+
color: {
|
|
412
|
+
charcoal: COLOR_OVERLAY,
|
|
413
|
+
red: COLOR_OVERLAY,
|
|
414
|
+
green: COLOR_OVERLAY,
|
|
415
|
+
blue: COLOR_OVERLAY,
|
|
416
|
+
purple: COLOR_OVERLAY,
|
|
417
|
+
yellow: COLOR_OVERLAY,
|
|
418
|
+
pink: COLOR_OVERLAY
|
|
419
|
+
},
|
|
420
|
+
tone: {
|
|
421
|
+
dark: "",
|
|
422
|
+
"medium-dark": "",
|
|
423
|
+
"medium-light": "",
|
|
424
|
+
light: ""
|
|
413
425
|
}
|
|
414
426
|
},
|
|
427
|
+
compoundVariants: [
|
|
428
|
+
{
|
|
429
|
+
color: "charcoal",
|
|
430
|
+
tone: "dark",
|
|
431
|
+
class: "bg-charcoal-900 text-charcoal-50"
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
color: "charcoal",
|
|
435
|
+
tone: "medium-dark",
|
|
436
|
+
class: "bg-charcoal-600 text-white"
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
color: "charcoal",
|
|
440
|
+
tone: "medium-light",
|
|
441
|
+
class: "bg-charcoal-300 text-charcoal-950"
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
color: "charcoal",
|
|
445
|
+
tone: "light",
|
|
446
|
+
class: "bg-charcoal-200 text-charcoal-950"
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
color: "red",
|
|
450
|
+
tone: "dark",
|
|
451
|
+
class: "bg-red-700 text-red-50"
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
color: "red",
|
|
455
|
+
tone: "medium-dark",
|
|
456
|
+
class: "bg-red-400 text-red-950"
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
color: "red",
|
|
460
|
+
tone: "medium-light",
|
|
461
|
+
class: "bg-red-300 text-red-950"
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
color: "red",
|
|
465
|
+
tone: "light",
|
|
466
|
+
class: "bg-red-200 text-red-800"
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
color: "green",
|
|
470
|
+
tone: "dark",
|
|
471
|
+
class: "bg-green-800 text-green-50"
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
color: "green",
|
|
475
|
+
tone: "medium-dark",
|
|
476
|
+
class: "bg-green-600 text-white"
|
|
477
|
+
},
|
|
478
|
+
{
|
|
479
|
+
color: "green",
|
|
480
|
+
tone: "medium-light",
|
|
481
|
+
class: "bg-green-300 text-green-950"
|
|
482
|
+
},
|
|
483
|
+
{
|
|
484
|
+
color: "green",
|
|
485
|
+
tone: "light",
|
|
486
|
+
class: "bg-green-200 text-green-950"
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
color: "blue",
|
|
490
|
+
tone: "dark",
|
|
491
|
+
class: "bg-blue-800 text-blue-50"
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
color: "blue",
|
|
495
|
+
tone: "medium-dark",
|
|
496
|
+
class: "bg-blue-600 text-white"
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
color: "blue",
|
|
500
|
+
tone: "medium-light",
|
|
501
|
+
class: "bg-blue-300 text-blue-950"
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
color: "blue",
|
|
505
|
+
tone: "light",
|
|
506
|
+
class: "bg-blue-200 text-blue-900"
|
|
507
|
+
},
|
|
508
|
+
{
|
|
509
|
+
color: "purple",
|
|
510
|
+
tone: "dark",
|
|
511
|
+
class: "bg-purple-800 text-purple-50"
|
|
512
|
+
},
|
|
513
|
+
{
|
|
514
|
+
color: "purple",
|
|
515
|
+
tone: "medium-dark",
|
|
516
|
+
class: "bg-purple-600 text-white"
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
color: "purple",
|
|
520
|
+
tone: "medium-light",
|
|
521
|
+
class: "bg-purple-300 text-purple-950"
|
|
522
|
+
},
|
|
523
|
+
{
|
|
524
|
+
color: "purple",
|
|
525
|
+
tone: "light",
|
|
526
|
+
class: "bg-purple-200 text-purple-900"
|
|
527
|
+
},
|
|
528
|
+
{
|
|
529
|
+
color: "yellow",
|
|
530
|
+
tone: "dark",
|
|
531
|
+
class: "bg-yellow-500 text-yellow-950"
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
color: "yellow",
|
|
535
|
+
tone: "medium-dark",
|
|
536
|
+
class: "bg-yellow-400 text-yellow-950"
|
|
537
|
+
},
|
|
538
|
+
{
|
|
539
|
+
color: "yellow",
|
|
540
|
+
tone: "medium-light",
|
|
541
|
+
class: "bg-yellow-300 text-black"
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
color: "yellow",
|
|
545
|
+
tone: "light",
|
|
546
|
+
class: "bg-yellow-200 text-yellow-900"
|
|
547
|
+
},
|
|
548
|
+
{
|
|
549
|
+
color: "pink",
|
|
550
|
+
tone: "dark",
|
|
551
|
+
class: "bg-pink-700 text-pink-50"
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
color: "pink",
|
|
555
|
+
tone: "medium-dark",
|
|
556
|
+
class: "bg-pink-500 text-pink-950"
|
|
557
|
+
},
|
|
558
|
+
{
|
|
559
|
+
color: "pink",
|
|
560
|
+
tone: "medium-light",
|
|
561
|
+
class: "bg-pink-300 text-pink-950"
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
color: "pink",
|
|
565
|
+
tone: "light",
|
|
566
|
+
class: "bg-pink-200 text-pink-900"
|
|
567
|
+
}
|
|
568
|
+
],
|
|
415
569
|
defaultVariants: {
|
|
416
|
-
|
|
417
|
-
|
|
570
|
+
size: "default",
|
|
571
|
+
color: "charcoal",
|
|
572
|
+
tone: "light"
|
|
418
573
|
}
|
|
419
574
|
});
|
|
420
|
-
|
|
575
|
+
/**
|
|
576
|
+
* A standalone label badge. Read-only by default; render it as an anchor or
|
|
577
|
+
* button via `render` to make it hoverable / navigable. Never removable — for a
|
|
578
|
+
* removable token inside an input/combobox, use `Chip`.
|
|
579
|
+
*
|
|
580
|
+
* Pick a constrained DS `color` + `tone` (no freeform hex) — defaults to
|
|
581
|
+
* `charcoal` / `light` — or pass a stored hex via `legacyColor`. Icons are
|
|
582
|
+
* composed as children (auto-sized per `size`).
|
|
583
|
+
*/
|
|
584
|
+
const Badge = React$1.forwardRef((componentProps, forwardRef) => {
|
|
585
|
+
const { className, size = "default", color, tone, legacyColor, render, children, ...props } = componentProps;
|
|
586
|
+
const resolved = legacyColor ? resolveTagColor(legacyColor) : {
|
|
587
|
+
color,
|
|
588
|
+
tone
|
|
589
|
+
};
|
|
590
|
+
const content = React$1.Children.map(children, (child) => typeof child === "string" || typeof child === "number" ? /* @__PURE__ */ jsx("span", {
|
|
591
|
+
className: "min-w-0 truncate",
|
|
592
|
+
children: child
|
|
593
|
+
}) : child);
|
|
421
594
|
return useRender({
|
|
422
595
|
defaultTagName: "span",
|
|
423
596
|
props: mergeProps({
|
|
424
597
|
className: cn(badgeVariants({
|
|
425
|
-
|
|
426
|
-
|
|
598
|
+
size,
|
|
599
|
+
color: resolved.color,
|
|
600
|
+
tone: resolved.tone
|
|
427
601
|
}), className),
|
|
428
|
-
ref
|
|
602
|
+
ref: forwardRef,
|
|
603
|
+
children: content
|
|
429
604
|
}, props),
|
|
430
605
|
render,
|
|
431
606
|
state: {
|
|
432
607
|
slot: "badge",
|
|
433
|
-
variant,
|
|
434
608
|
size
|
|
435
609
|
}
|
|
436
610
|
});
|
|
437
611
|
});
|
|
438
612
|
Badge.displayName = "Badge";
|
|
439
|
-
|
|
613
|
+
const BadgeGroup = React$1.forwardRef((componentProps, forwardRef) => {
|
|
614
|
+
const { className, ...props } = componentProps;
|
|
440
615
|
return /* @__PURE__ */ jsx("div", {
|
|
616
|
+
ref: forwardRef,
|
|
441
617
|
"data-slot": "badge-group",
|
|
442
618
|
className: cn("flex flex-wrap items-center gap-2", className),
|
|
443
619
|
...props
|
|
444
620
|
});
|
|
445
|
-
}
|
|
446
|
-
|
|
621
|
+
});
|
|
622
|
+
BadgeGroup.displayName = "BadgeGroup";
|
|
623
|
+
const badgeGroupCountVariants = cva("rounded-md", {
|
|
624
|
+
variants: { size: {
|
|
625
|
+
default: "h-5 w-5",
|
|
626
|
+
lg: "h-6 w-6"
|
|
627
|
+
} },
|
|
628
|
+
defaultVariants: { size: "default" }
|
|
629
|
+
});
|
|
630
|
+
const BadgeGroupCount = React$1.forwardRef((componentProps, forwardRef) => {
|
|
631
|
+
const { className, size = "default", ...props } = componentProps;
|
|
447
632
|
return /* @__PURE__ */ jsx(CounterBadge, {
|
|
633
|
+
ref: forwardRef,
|
|
448
634
|
"data-slot": "badge-group-count",
|
|
449
635
|
variant: "ghost",
|
|
450
|
-
className,
|
|
636
|
+
className: cn(badgeGroupCountVariants({ size }), className),
|
|
451
637
|
...props
|
|
452
638
|
});
|
|
639
|
+
});
|
|
640
|
+
BadgeGroupCount.displayName = "BadgeGroupCount";
|
|
641
|
+
const LEGACY_TAG_COLOR_MAP = {
|
|
642
|
+
"#003d4b": {
|
|
643
|
+
color: "charcoal",
|
|
644
|
+
tone: "dark"
|
|
645
|
+
},
|
|
646
|
+
"#bb2001": {
|
|
647
|
+
color: "red",
|
|
648
|
+
tone: "dark"
|
|
649
|
+
},
|
|
650
|
+
"#f92c00": {
|
|
651
|
+
color: "red",
|
|
652
|
+
tone: "medium-dark"
|
|
653
|
+
},
|
|
654
|
+
"#0761b5": {
|
|
655
|
+
color: "blue",
|
|
656
|
+
tone: "dark"
|
|
657
|
+
},
|
|
658
|
+
"#008f6c": {
|
|
659
|
+
color: "green",
|
|
660
|
+
tone: "medium-dark"
|
|
661
|
+
},
|
|
662
|
+
"#b285d1": {
|
|
663
|
+
color: "purple",
|
|
664
|
+
tone: "medium-light"
|
|
665
|
+
},
|
|
666
|
+
"#fcbb26": {
|
|
667
|
+
color: "yellow",
|
|
668
|
+
tone: "medium-light"
|
|
669
|
+
},
|
|
670
|
+
"#fe9d88": {
|
|
671
|
+
color: "red",
|
|
672
|
+
tone: "light"
|
|
673
|
+
},
|
|
674
|
+
"#ff844c": {
|
|
675
|
+
color: "red",
|
|
676
|
+
tone: "medium-light"
|
|
677
|
+
},
|
|
678
|
+
"#abccf2": {
|
|
679
|
+
color: "blue",
|
|
680
|
+
tone: "light"
|
|
681
|
+
},
|
|
682
|
+
"#49a0ff": {
|
|
683
|
+
color: "blue",
|
|
684
|
+
tone: "medium-light"
|
|
685
|
+
},
|
|
686
|
+
"#66d188": {
|
|
687
|
+
color: "green",
|
|
688
|
+
tone: "medium-light"
|
|
689
|
+
},
|
|
690
|
+
"#2ac8ff": {
|
|
691
|
+
color: "blue",
|
|
692
|
+
tone: "medium-dark"
|
|
693
|
+
}
|
|
694
|
+
};
|
|
695
|
+
/** Charcoal/dark — used when a stored hex is outside the known legacy palette. */
|
|
696
|
+
const FALLBACK_TAG_COLOR = {
|
|
697
|
+
color: "charcoal",
|
|
698
|
+
tone: "dark"
|
|
699
|
+
};
|
|
700
|
+
/** Resolve a legacy hard-coded tag hex to `color` + `tone`; unknown → charcoal/dark. */
|
|
701
|
+
function resolveTagColor(hex) {
|
|
702
|
+
return LEGACY_TAG_COLOR_MAP[hex.trim().toLowerCase()] ?? FALLBACK_TAG_COLOR;
|
|
453
703
|
}
|
|
454
704
|
|
|
455
705
|
//#endregion
|
|
@@ -982,6 +1232,211 @@ const Checkbox = React$1.forwardRef(({ className, ...props }, ref) => {
|
|
|
982
1232
|
});
|
|
983
1233
|
Checkbox.displayName = "Checkbox";
|
|
984
1234
|
|
|
1235
|
+
//#endregion
|
|
1236
|
+
//#region src/components/chip.tsx
|
|
1237
|
+
const chipGlowVariants = cva("", {
|
|
1238
|
+
variants: {
|
|
1239
|
+
color: {
|
|
1240
|
+
charcoal: "",
|
|
1241
|
+
red: "",
|
|
1242
|
+
green: "",
|
|
1243
|
+
blue: "",
|
|
1244
|
+
purple: "",
|
|
1245
|
+
yellow: "",
|
|
1246
|
+
pink: ""
|
|
1247
|
+
},
|
|
1248
|
+
glow: {
|
|
1249
|
+
true: "drop-shadow-[0px_0px_3px_var(--badge-glow)] animate-badge-glow motion-reduce:animate-none",
|
|
1250
|
+
false: ""
|
|
1251
|
+
}
|
|
1252
|
+
},
|
|
1253
|
+
compoundVariants: [
|
|
1254
|
+
{
|
|
1255
|
+
color: "charcoal",
|
|
1256
|
+
glow: true,
|
|
1257
|
+
class: "border-charcoal-600 [--badge-glow:var(--color-charcoal-600)]"
|
|
1258
|
+
},
|
|
1259
|
+
{
|
|
1260
|
+
color: "red",
|
|
1261
|
+
glow: true,
|
|
1262
|
+
class: "border-red-500 [--badge-glow:var(--color-red-500)]"
|
|
1263
|
+
},
|
|
1264
|
+
{
|
|
1265
|
+
color: "green",
|
|
1266
|
+
glow: true,
|
|
1267
|
+
class: "border-green-600 [--badge-glow:var(--color-green-600)]"
|
|
1268
|
+
},
|
|
1269
|
+
{
|
|
1270
|
+
color: "blue",
|
|
1271
|
+
glow: true,
|
|
1272
|
+
class: "border-blue-600 [--badge-glow:var(--color-blue-600)]"
|
|
1273
|
+
},
|
|
1274
|
+
{
|
|
1275
|
+
color: "purple",
|
|
1276
|
+
glow: true,
|
|
1277
|
+
class: "border-purple-600 [--badge-glow:var(--color-purple-600)]"
|
|
1278
|
+
},
|
|
1279
|
+
{
|
|
1280
|
+
color: "yellow",
|
|
1281
|
+
glow: true,
|
|
1282
|
+
class: "border-yellow-400 [--badge-glow:var(--color-yellow-400)]"
|
|
1283
|
+
},
|
|
1284
|
+
{
|
|
1285
|
+
color: "pink",
|
|
1286
|
+
glow: true,
|
|
1287
|
+
class: "border-pink-600 [--badge-glow:var(--color-pink-600)]"
|
|
1288
|
+
}
|
|
1289
|
+
],
|
|
1290
|
+
defaultVariants: {
|
|
1291
|
+
color: "charcoal",
|
|
1292
|
+
glow: false
|
|
1293
|
+
}
|
|
1294
|
+
});
|
|
1295
|
+
/**
|
|
1296
|
+
* The trailing remove affordance for a `Chip` — a ghost icon button that
|
|
1297
|
+
* inherits the chip's text color and brightens on hover. Exported so the
|
|
1298
|
+
* combobox can reuse the exact treatment for its Base-UI-bound chips.
|
|
1299
|
+
*/
|
|
1300
|
+
const ChipRemove = React$1.forwardRef((componentProps, forwardRef) => {
|
|
1301
|
+
const { className, children, ...props } = componentProps;
|
|
1302
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
1303
|
+
ref: forwardRef,
|
|
1304
|
+
type: "button",
|
|
1305
|
+
variant: "ghost",
|
|
1306
|
+
size: "icon-sm",
|
|
1307
|
+
"data-slot": "chip-remove",
|
|
1308
|
+
className: cn("-ml-1 bg-transparent hover:bg-transparent dark:hover:bg-transparent text-inherit hover:text-inherit opacity-50 hover:opacity-100", className),
|
|
1309
|
+
...props,
|
|
1310
|
+
children: children ?? /* @__PURE__ */ jsx(XIcon, { className: "pointer-events-none size-3.5" })
|
|
1311
|
+
});
|
|
1312
|
+
});
|
|
1313
|
+
ChipRemove.displayName = "ChipRemove";
|
|
1314
|
+
/**
|
|
1315
|
+
* A selected-value token for inputs / comboboxes. Composes `Badge` at the
|
|
1316
|
+
* fixed 24px size with a forced trailing remove (X) button. The chip body is
|
|
1317
|
+
* non-interactive — only the X reacts to hover. For combobox-bound chips that
|
|
1318
|
+
* must drive Base UI's selection state, see `ComboboxChip`.
|
|
1319
|
+
*/
|
|
1320
|
+
const Chip = React$1.forwardRef((componentProps, forwardRef) => {
|
|
1321
|
+
const { className, children, color, tone, legacyColor, glow, ...props } = componentProps;
|
|
1322
|
+
const glowColor = legacyColor ? resolveTagColor(legacyColor).color : color;
|
|
1323
|
+
return /* @__PURE__ */ jsx(Badge, {
|
|
1324
|
+
ref: forwardRef,
|
|
1325
|
+
"data-slot": "chip",
|
|
1326
|
+
size: "lg",
|
|
1327
|
+
color,
|
|
1328
|
+
tone,
|
|
1329
|
+
legacyColor,
|
|
1330
|
+
className: cn("has-data-[slot=chip-remove]:pr-0 has-disabled:pointer-events-none has-disabled:opacity-50", chipGlowVariants({
|
|
1331
|
+
color: glowColor,
|
|
1332
|
+
glow
|
|
1333
|
+
}), className),
|
|
1334
|
+
...props,
|
|
1335
|
+
children
|
|
1336
|
+
});
|
|
1337
|
+
});
|
|
1338
|
+
Chip.displayName = "Chip";
|
|
1339
|
+
|
|
1340
|
+
//#endregion
|
|
1341
|
+
//#region src/components/scroll-area.tsx
|
|
1342
|
+
function ScrollArea({ className, children, scrollFade = false, scrollbarGutter = false, ...props }) {
|
|
1343
|
+
return /* @__PURE__ */ jsxs(ScrollAreaPrimitive.Root, {
|
|
1344
|
+
className: cn("size-full min-h-0", className),
|
|
1345
|
+
...props,
|
|
1346
|
+
children: [
|
|
1347
|
+
/* @__PURE__ */ jsx(ScrollAreaPrimitive.Viewport, {
|
|
1348
|
+
className: cn("h-full rounded-[inherit] outline-none transition-shadows focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background data-has-overflow-y:overscroll-y-contain data-has-overflow-x:overscroll-x-contain", scrollFade && "mask-t-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-start)))] mask-b-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-end)))] mask-l-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-start)))] mask-r-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-end)))] [--fade-size:1.5rem]", scrollbarGutter && "data-has-overflow-y:pe-2.5 data-has-overflow-x:pb-2.5"),
|
|
1349
|
+
"data-slot": "scroll-area-viewport",
|
|
1350
|
+
children
|
|
1351
|
+
}),
|
|
1352
|
+
/* @__PURE__ */ jsx(ScrollBar, { orientation: "vertical" }),
|
|
1353
|
+
/* @__PURE__ */ jsx(ScrollBar, { orientation: "horizontal" }),
|
|
1354
|
+
/* @__PURE__ */ jsx(ScrollAreaPrimitive.Corner, { "data-slot": "scroll-area-corner" })
|
|
1355
|
+
]
|
|
1356
|
+
});
|
|
1357
|
+
}
|
|
1358
|
+
function ScrollBar({ className, orientation = "vertical", ...props }) {
|
|
1359
|
+
return /* @__PURE__ */ jsx(ScrollAreaPrimitive.Scrollbar, {
|
|
1360
|
+
className: cn("m-1 flex opacity-0 transition-opacity delay-300 data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5 data-[orientation=horizontal]:flex-col data-hovering:opacity-100 data-scrolling:opacity-100 data-hovering:delay-0 data-scrolling:delay-0 data-hovering:duration-100 data-scrolling:duration-100", className),
|
|
1361
|
+
"data-slot": "scroll-area-scrollbar",
|
|
1362
|
+
orientation,
|
|
1363
|
+
...props,
|
|
1364
|
+
children: /* @__PURE__ */ jsx(ScrollAreaPrimitive.Thumb, {
|
|
1365
|
+
className: "relative flex-1 rounded-full bg-foreground/20",
|
|
1366
|
+
"data-slot": "scroll-area-thumb"
|
|
1367
|
+
})
|
|
1368
|
+
});
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1371
|
+
//#endregion
|
|
1372
|
+
//#region src/components/filter.tsx
|
|
1373
|
+
/**
|
|
1374
|
+
* A removable active-filter token for a filter bar / toolbar — a dark charcoal
|
|
1375
|
+
* `Chip` with a trailing remove (X). Shows each applied filter above a
|
|
1376
|
+
* searchable data view (table / list); clicking the X clears that filter
|
|
1377
|
+
* (`onRemove`). Long values truncate with an ellipsis, capped at the Badge
|
|
1378
|
+
* `max-w-36` (144px). Compose inside a `FilterGroup` with a trailing
|
|
1379
|
+
* `FilterClearAllButton` (see the FilterBar story).
|
|
1380
|
+
*/
|
|
1381
|
+
const Filter = React$1.forwardRef((componentProps, forwardRef) => {
|
|
1382
|
+
const { className, children, onRemove, removeLabel = "Remove filter" } = componentProps;
|
|
1383
|
+
return /* @__PURE__ */ jsxs(Chip, {
|
|
1384
|
+
ref: forwardRef,
|
|
1385
|
+
color: "charcoal",
|
|
1386
|
+
tone: "medium-dark",
|
|
1387
|
+
className,
|
|
1388
|
+
children: [children, /* @__PURE__ */ jsx(ChipRemove, {
|
|
1389
|
+
"aria-label": removeLabel,
|
|
1390
|
+
onClick: onRemove
|
|
1391
|
+
})]
|
|
1392
|
+
});
|
|
1393
|
+
});
|
|
1394
|
+
Filter.displayName = "Filter";
|
|
1395
|
+
/**
|
|
1396
|
+
* Layout container for a row of `Filter` chips (and a trailing
|
|
1397
|
+
* `FilterClearAllButton`). Always a single, non-wrapping row inside a
|
|
1398
|
+
* horizontal `ScrollArea` (inset scroll + edge fade) — it does not wrap onto
|
|
1399
|
+
* multiple lines.
|
|
1400
|
+
*/
|
|
1401
|
+
const FilterGroup = React$1.forwardRef((componentProps, forwardRef) => {
|
|
1402
|
+
const { className, children, ...props } = componentProps;
|
|
1403
|
+
return /* @__PURE__ */ jsx("div", {
|
|
1404
|
+
"data-slot": "filter-group",
|
|
1405
|
+
className,
|
|
1406
|
+
children: /* @__PURE__ */ jsx(ScrollArea, {
|
|
1407
|
+
"data-slot": "filter-group-scroll-area",
|
|
1408
|
+
scrollFade: true,
|
|
1409
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
1410
|
+
ref: forwardRef,
|
|
1411
|
+
"data-slot": "filter-group-container",
|
|
1412
|
+
className: "flex w-max items-center gap-2",
|
|
1413
|
+
...props,
|
|
1414
|
+
children
|
|
1415
|
+
})
|
|
1416
|
+
})
|
|
1417
|
+
});
|
|
1418
|
+
});
|
|
1419
|
+
FilterGroup.displayName = "FilterGroup";
|
|
1420
|
+
/**
|
|
1421
|
+
* The trailing "Clear all filters" action for a `FilterGroup` — a ghost,
|
|
1422
|
+
* small `Button` with the styling pinned. Provide `onClick`; the label
|
|
1423
|
+
* defaults to "Clear all filters" (pass translated `children` to override).
|
|
1424
|
+
*/
|
|
1425
|
+
const FilterClearAllButton = React$1.forwardRef((componentProps, forwardRef) => {
|
|
1426
|
+
const { className, children = "Clear all filters", ...props } = componentProps;
|
|
1427
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
1428
|
+
ref: forwardRef,
|
|
1429
|
+
type: "button",
|
|
1430
|
+
variant: "ghost",
|
|
1431
|
+
size: "sm",
|
|
1432
|
+
"data-slot": "filter-clear-all",
|
|
1433
|
+
className,
|
|
1434
|
+
...props,
|
|
1435
|
+
children
|
|
1436
|
+
});
|
|
1437
|
+
});
|
|
1438
|
+
FilterClearAllButton.displayName = "FilterClearAllButton";
|
|
1439
|
+
|
|
985
1440
|
//#endregion
|
|
986
1441
|
//#region src/components/collapsible.tsx
|
|
987
1442
|
function Collapsible({ ...props }) {
|
|
@@ -1097,15 +1552,16 @@ function InputGroupTextarea({ className, ...props }) {
|
|
|
1097
1552
|
//#endregion
|
|
1098
1553
|
//#region src/components/combobox.tsx
|
|
1099
1554
|
const Combobox = Combobox$1.Root;
|
|
1100
|
-
function ComboboxValue(
|
|
1555
|
+
function ComboboxValue(componentProps) {
|
|
1101
1556
|
return /* @__PURE__ */ jsx(Combobox$1.Value, {
|
|
1102
1557
|
"data-slot": "combobox-value",
|
|
1103
|
-
...
|
|
1558
|
+
...componentProps
|
|
1104
1559
|
});
|
|
1105
1560
|
}
|
|
1106
|
-
const ComboboxTrigger = React$1.forwardRef((
|
|
1561
|
+
const ComboboxTrigger = React$1.forwardRef((componentProps, forwardRef) => {
|
|
1562
|
+
const { className, children, ...props } = componentProps;
|
|
1107
1563
|
return /* @__PURE__ */ jsxs(Combobox$1.Trigger, {
|
|
1108
|
-
ref,
|
|
1564
|
+
ref: forwardRef,
|
|
1109
1565
|
"data-slot": "combobox-trigger",
|
|
1110
1566
|
className: cn("[&_svg:not([class*='size-'])]:size-4", className),
|
|
1111
1567
|
...props,
|
|
@@ -1113,8 +1569,10 @@ const ComboboxTrigger = React$1.forwardRef(({ className, children, ...props }, r
|
|
|
1113
1569
|
});
|
|
1114
1570
|
});
|
|
1115
1571
|
ComboboxTrigger.displayName = "ComboboxTrigger";
|
|
1116
|
-
|
|
1572
|
+
const ComboboxClear = React$1.forwardRef((componentProps, forwardRef) => {
|
|
1573
|
+
const { className, ...props } = componentProps;
|
|
1117
1574
|
return /* @__PURE__ */ jsx(Combobox$1.Clear, {
|
|
1575
|
+
ref: forwardRef,
|
|
1118
1576
|
"data-slot": "combobox-clear",
|
|
1119
1577
|
render: /* @__PURE__ */ jsx(InputGroupButton, {
|
|
1120
1578
|
variant: "ghost",
|
|
@@ -1124,10 +1582,12 @@ function ComboboxClear({ className, ...props }) {
|
|
|
1124
1582
|
...props,
|
|
1125
1583
|
children: /* @__PURE__ */ jsx(XIcon, { className: "pointer-events-none" })
|
|
1126
1584
|
});
|
|
1127
|
-
}
|
|
1128
|
-
|
|
1585
|
+
});
|
|
1586
|
+
ComboboxClear.displayName = "ComboboxClear";
|
|
1587
|
+
const ComboboxInput = React$1.forwardRef((componentProps, forwardRef) => {
|
|
1588
|
+
const { className, children, disabled = false, showTrigger = true, showClear = false, ...props } = componentProps;
|
|
1129
1589
|
return /* @__PURE__ */ jsxs(InputGroup, {
|
|
1130
|
-
ref,
|
|
1590
|
+
ref: forwardRef,
|
|
1131
1591
|
className: cn("w-auto", className),
|
|
1132
1592
|
children: [
|
|
1133
1593
|
/* @__PURE__ */ jsx(Combobox$1.Input, {
|
|
@@ -1150,7 +1610,8 @@ const ComboboxInput = React$1.forwardRef(({ className, children, disabled = fals
|
|
|
1150
1610
|
});
|
|
1151
1611
|
});
|
|
1152
1612
|
ComboboxInput.displayName = "ComboboxInput";
|
|
1153
|
-
|
|
1613
|
+
const ComboboxContent = React$1.forwardRef((componentProps, forwardRef) => {
|
|
1614
|
+
const { className, side = "bottom", sideOffset = 6, align = "start", alignOffset = 0, anchor, ...props } = componentProps;
|
|
1154
1615
|
return /* @__PURE__ */ jsx(Combobox$1.Portal, { children: /* @__PURE__ */ jsx(Combobox$1.Positioner, {
|
|
1155
1616
|
side,
|
|
1156
1617
|
sideOffset,
|
|
@@ -1159,22 +1620,29 @@ function ComboboxContent({ className, side = "bottom", sideOffset = 6, align = "
|
|
|
1159
1620
|
anchor,
|
|
1160
1621
|
className: "isolate z-50",
|
|
1161
1622
|
children: /* @__PURE__ */ jsx(Combobox$1.Popup, {
|
|
1623
|
+
ref: forwardRef,
|
|
1162
1624
|
"data-slot": "combobox-content",
|
|
1163
1625
|
"data-chips": !!anchor,
|
|
1164
1626
|
className: cn("group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
|
|
1165
1627
|
...props
|
|
1166
1628
|
})
|
|
1167
1629
|
}) });
|
|
1168
|
-
}
|
|
1169
|
-
|
|
1630
|
+
});
|
|
1631
|
+
ComboboxContent.displayName = "ComboboxContent";
|
|
1632
|
+
const ComboboxList = React$1.forwardRef((componentProps, forwardRef) => {
|
|
1633
|
+
const { className, ...props } = componentProps;
|
|
1170
1634
|
return /* @__PURE__ */ jsx(Combobox$1.List, {
|
|
1635
|
+
ref: forwardRef,
|
|
1171
1636
|
"data-slot": "combobox-list",
|
|
1172
1637
|
className: cn("no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 outline-hidden data-empty:p-0", className),
|
|
1173
1638
|
...props
|
|
1174
1639
|
});
|
|
1175
|
-
}
|
|
1176
|
-
|
|
1640
|
+
});
|
|
1641
|
+
ComboboxList.displayName = "ComboboxList";
|
|
1642
|
+
const ComboboxItem = React$1.forwardRef((componentProps, forwardRef) => {
|
|
1643
|
+
const { className, children, ...props } = componentProps;
|
|
1177
1644
|
return /* @__PURE__ */ jsxs(Combobox$1.Item, {
|
|
1645
|
+
ref: forwardRef,
|
|
1178
1646
|
"data-slot": "combobox-item",
|
|
1179
1647
|
className: cn("relative flex w-full cursor-default items-center gap-2 rounded-md p-2 pr-8 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
1180
1648
|
...props,
|
|
@@ -1184,73 +1652,88 @@ function ComboboxItem({ className, children, ...props }) {
|
|
|
1184
1652
|
children: /* @__PURE__ */ jsx(CheckIcon, { className: "pointer-events-none" })
|
|
1185
1653
|
})]
|
|
1186
1654
|
});
|
|
1187
|
-
}
|
|
1188
|
-
|
|
1655
|
+
});
|
|
1656
|
+
ComboboxItem.displayName = "ComboboxItem";
|
|
1657
|
+
const ComboboxGroup = React$1.forwardRef((componentProps, forwardRef) => {
|
|
1658
|
+
const { className, ...props } = componentProps;
|
|
1189
1659
|
return /* @__PURE__ */ jsx(Combobox$1.Group, {
|
|
1660
|
+
ref: forwardRef,
|
|
1190
1661
|
"data-slot": "combobox-group",
|
|
1191
1662
|
className: cn(className),
|
|
1192
1663
|
...props
|
|
1193
1664
|
});
|
|
1194
|
-
}
|
|
1195
|
-
|
|
1665
|
+
});
|
|
1666
|
+
ComboboxGroup.displayName = "ComboboxGroup";
|
|
1667
|
+
const ComboboxLabel = React$1.forwardRef((componentProps, forwardRef) => {
|
|
1668
|
+
const { className, ...props } = componentProps;
|
|
1196
1669
|
return /* @__PURE__ */ jsx(Combobox$1.GroupLabel, {
|
|
1670
|
+
ref: forwardRef,
|
|
1197
1671
|
"data-slot": "combobox-label",
|
|
1198
1672
|
className: cn("p-2 text-xs text-muted-foreground", className),
|
|
1199
1673
|
...props
|
|
1200
1674
|
});
|
|
1201
|
-
}
|
|
1202
|
-
|
|
1675
|
+
});
|
|
1676
|
+
ComboboxLabel.displayName = "ComboboxLabel";
|
|
1677
|
+
function ComboboxCollection(componentProps) {
|
|
1203
1678
|
return /* @__PURE__ */ jsx(Combobox$1.Collection, {
|
|
1204
1679
|
"data-slot": "combobox-collection",
|
|
1205
|
-
...
|
|
1680
|
+
...componentProps
|
|
1206
1681
|
});
|
|
1207
1682
|
}
|
|
1208
|
-
|
|
1683
|
+
const ComboboxEmpty = React$1.forwardRef((componentProps, forwardRef) => {
|
|
1684
|
+
const { className, ...props } = componentProps;
|
|
1209
1685
|
return /* @__PURE__ */ jsx(Combobox$1.Empty, {
|
|
1686
|
+
ref: forwardRef,
|
|
1210
1687
|
"data-slot": "combobox-empty",
|
|
1211
1688
|
className: cn("hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex", className),
|
|
1212
1689
|
...props
|
|
1213
1690
|
});
|
|
1214
|
-
}
|
|
1215
|
-
|
|
1691
|
+
});
|
|
1692
|
+
ComboboxEmpty.displayName = "ComboboxEmpty";
|
|
1693
|
+
const ComboboxSeparator = React$1.forwardRef((componentProps, forwardRef) => {
|
|
1694
|
+
const { className, ...props } = componentProps;
|
|
1216
1695
|
return /* @__PURE__ */ jsx(Combobox$1.Separator, {
|
|
1696
|
+
ref: forwardRef,
|
|
1217
1697
|
"data-slot": "combobox-separator",
|
|
1218
1698
|
className: cn("-mx-1 my-1 h-px bg-border", className),
|
|
1219
1699
|
...props
|
|
1220
1700
|
});
|
|
1221
|
-
}
|
|
1222
|
-
|
|
1701
|
+
});
|
|
1702
|
+
ComboboxSeparator.displayName = "ComboboxSeparator";
|
|
1703
|
+
const ComboboxChips = React$1.forwardRef((componentProps, forwardRef) => {
|
|
1704
|
+
const { className, ...props } = componentProps;
|
|
1223
1705
|
return /* @__PURE__ */ jsx(Combobox$1.Chips, {
|
|
1224
|
-
ref,
|
|
1706
|
+
ref: forwardRef,
|
|
1225
1707
|
"data-slot": "combobox-chips",
|
|
1226
1708
|
className: cn("flex min-h-10 flex-wrap items-center gap-1 rounded-md border border-input bg-transparent bg-clip-padding py-2 pl-3 pr-2 text-sm transition-colors focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40", className),
|
|
1227
1709
|
...props
|
|
1228
1710
|
});
|
|
1229
1711
|
});
|
|
1230
1712
|
ComboboxChips.displayName = "ComboboxChips";
|
|
1231
|
-
|
|
1713
|
+
const ComboboxChip = React$1.forwardRef(function ComboboxChip(componentProps, forwardRef) {
|
|
1714
|
+
const { className, children, showRemove = true, color, tone, legacyColor, ...props } = componentProps;
|
|
1232
1715
|
return /* @__PURE__ */ jsxs(Combobox$1.Chip, {
|
|
1233
|
-
|
|
1234
|
-
|
|
1716
|
+
ref: forwardRef,
|
|
1717
|
+
render: /* @__PURE__ */ jsx(Chip, {
|
|
1718
|
+
color,
|
|
1719
|
+
tone,
|
|
1720
|
+
legacyColor
|
|
1721
|
+
}),
|
|
1722
|
+
className,
|
|
1235
1723
|
...props,
|
|
1236
|
-
children: [children, showRemove && /* @__PURE__ */ jsx(Combobox$1.ChipRemove, {
|
|
1237
|
-
render: /* @__PURE__ */ jsx(Button, {
|
|
1238
|
-
variant: "ghost",
|
|
1239
|
-
size: "icon-sm"
|
|
1240
|
-
}),
|
|
1241
|
-
className: "-ml-1 opacity-50 hover:opacity-100",
|
|
1242
|
-
"data-slot": "combobox-chip-remove",
|
|
1243
|
-
children: /* @__PURE__ */ jsx(XIcon, { className: "pointer-events-none" })
|
|
1244
|
-
})]
|
|
1724
|
+
children: [children, showRemove && /* @__PURE__ */ jsx(Combobox$1.ChipRemove, { render: /* @__PURE__ */ jsx(ChipRemove, {}) })]
|
|
1245
1725
|
});
|
|
1246
|
-
}
|
|
1247
|
-
function ComboboxChipsInput(
|
|
1726
|
+
});
|
|
1727
|
+
const ComboboxChipsInput = React$1.forwardRef(function ComboboxChipsInput(componentProps, forwardRef) {
|
|
1728
|
+
const { className, ...props } = componentProps;
|
|
1248
1729
|
return /* @__PURE__ */ jsx(Combobox$1.Input, {
|
|
1730
|
+
ref: forwardRef,
|
|
1249
1731
|
"data-slot": "combobox-chip-input",
|
|
1250
1732
|
className: cn("min-w-16 flex-1 outline-none", className),
|
|
1251
1733
|
...props
|
|
1252
1734
|
});
|
|
1253
|
-
}
|
|
1735
|
+
});
|
|
1736
|
+
ComboboxChipsInput.displayName = "ComboboxChipsInput";
|
|
1254
1737
|
function useComboboxAnchor() {
|
|
1255
1738
|
return React$1.useRef(null);
|
|
1256
1739
|
}
|
|
@@ -1515,37 +1998,6 @@ function DataTable({ columns, data, tableOptions, noResultsMessage = "No results
|
|
|
1515
1998
|
}) }) })] });
|
|
1516
1999
|
}
|
|
1517
2000
|
|
|
1518
|
-
//#endregion
|
|
1519
|
-
//#region src/components/scroll-area.tsx
|
|
1520
|
-
function ScrollArea({ className, children, scrollFade = false, scrollbarGutter = false, ...props }) {
|
|
1521
|
-
return /* @__PURE__ */ jsxs(ScrollAreaPrimitive.Root, {
|
|
1522
|
-
className: cn("size-full min-h-0", className),
|
|
1523
|
-
...props,
|
|
1524
|
-
children: [
|
|
1525
|
-
/* @__PURE__ */ jsx(ScrollAreaPrimitive.Viewport, {
|
|
1526
|
-
className: cn("h-full rounded-[inherit] outline-none transition-shadows focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background data-has-overflow-y:overscroll-y-contain data-has-overflow-x:overscroll-x-contain", scrollFade && "mask-t-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-start)))] mask-b-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-end)))] mask-l-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-start)))] mask-r-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-end)))] [--fade-size:1.5rem]", scrollbarGutter && "data-has-overflow-y:pe-2.5 data-has-overflow-x:pb-2.5"),
|
|
1527
|
-
"data-slot": "scroll-area-viewport",
|
|
1528
|
-
children
|
|
1529
|
-
}),
|
|
1530
|
-
/* @__PURE__ */ jsx(ScrollBar, { orientation: "vertical" }),
|
|
1531
|
-
/* @__PURE__ */ jsx(ScrollBar, { orientation: "horizontal" }),
|
|
1532
|
-
/* @__PURE__ */ jsx(ScrollAreaPrimitive.Corner, { "data-slot": "scroll-area-corner" })
|
|
1533
|
-
]
|
|
1534
|
-
});
|
|
1535
|
-
}
|
|
1536
|
-
function ScrollBar({ className, orientation = "vertical", ...props }) {
|
|
1537
|
-
return /* @__PURE__ */ jsx(ScrollAreaPrimitive.Scrollbar, {
|
|
1538
|
-
className: cn("m-1 flex opacity-0 transition-opacity delay-300 data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5 data-[orientation=horizontal]:flex-col data-hovering:opacity-100 data-scrolling:opacity-100 data-hovering:delay-0 data-scrolling:delay-0 data-hovering:duration-100 data-scrolling:duration-100", className),
|
|
1539
|
-
"data-slot": "scroll-area-scrollbar",
|
|
1540
|
-
orientation,
|
|
1541
|
-
...props,
|
|
1542
|
-
children: /* @__PURE__ */ jsx(ScrollAreaPrimitive.Thumb, {
|
|
1543
|
-
className: "relative flex-1 rounded-full bg-foreground/20",
|
|
1544
|
-
"data-slot": "scroll-area-thumb"
|
|
1545
|
-
})
|
|
1546
|
-
});
|
|
1547
|
-
}
|
|
1548
|
-
|
|
1549
2001
|
//#endregion
|
|
1550
2002
|
//#region src/components/drawer.tsx
|
|
1551
2003
|
const DrawerContext = createContext({ position: "bottom" });
|
|
@@ -3903,4 +4355,4 @@ function useAudioGauge(options = {}) {
|
|
|
3903
4355
|
}
|
|
3904
4356
|
|
|
3905
4357
|
//#endregion
|
|
3906
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertAction as BannerAction, AlertDescription, AlertDescription as BannerDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AlertTitle as BannerTitle, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, BadgeGroup, BadgeGroupCount, Banner, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CounterBadge, CountryFlag, DataTable, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerBackdrop, DrawerBar, DrawerClose, DrawerContent, DrawerCreateHandle, DrawerDescription, DrawerFooter, DrawerHeader, DrawerMenu, DrawerMenuCheckboxItem, DrawerMenuGroup, DrawerMenuGroupLabel, DrawerMenuItem, DrawerMenuRadioGroup, DrawerMenuRadioItem, DrawerMenuSeparator, DrawerMenuTrigger, DrawerPanel, DrawerPopup, DrawerPortal, DrawerPrimitive, DrawerSwipeArea, DrawerTitle, DrawerTrigger, DrawerViewport, DropdownMenu, DropdownMenuAddon, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Dropzone, DropzoneActions, DropzoneContent, DropzoneDescription, DropzoneIcon, DropzoneTitle, DropzoneTrigger, EmojiPicker, EmojiPickerCategories, EmojiPickerContent, EmojiPickerTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, FAB, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Gauge, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Label, List, ListCol, ListRow, NotificationQueueProvider, NotificationSlot, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, RadioGroup, RadioGroupItem, ScrollArea, ScrollAreaPrimitive, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, ThemeProvider, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, alertVariants,
|
|
4358
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertAction as BannerAction, AlertDescription, AlertDescription as BannerDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AlertTitle as BannerTitle, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, BadgeGroup, BadgeGroupCount, Banner, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, Checkbox, Chip, ChipRemove, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CounterBadge, CountryFlag, DataTable, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerBackdrop, DrawerBar, DrawerClose, DrawerContent, DrawerCreateHandle, DrawerDescription, DrawerFooter, DrawerHeader, DrawerMenu, DrawerMenuCheckboxItem, DrawerMenuGroup, DrawerMenuGroupLabel, DrawerMenuItem, DrawerMenuRadioGroup, DrawerMenuRadioItem, DrawerMenuSeparator, DrawerMenuTrigger, DrawerPanel, DrawerPopup, DrawerPortal, DrawerPrimitive, DrawerSwipeArea, DrawerTitle, DrawerTrigger, DrawerViewport, DropdownMenu, DropdownMenuAddon, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Dropzone, DropzoneActions, DropzoneContent, DropzoneDescription, DropzoneIcon, DropzoneTitle, DropzoneTrigger, EmojiPicker, EmojiPickerCategories, EmojiPickerContent, EmojiPickerTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, FAB, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Filter, FilterClearAllButton, FilterGroup, Gauge, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Label, List, ListCol, ListRow, NotificationQueueProvider, NotificationSlot, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, RadioGroup, RadioGroupItem, ScrollArea, ScrollAreaPrimitive, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, ThemeProvider, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, alertVariants, bannerVariants, buttonGroupVariants, buttonVariants, cn, counterBadgeVariants, fabVariants, selectTriggerVariants, spinnerVariants, toast, toggleVariants, useAudioGauge, useComboboxAnchor, useNotification, useNotificationQueue, useSidebar, useTheme };
|