@timbal-ai/timbal-react 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +11 -0
  3. package/dist/app.cjs +10 -4
  4. package/dist/app.d.cts +2 -2
  5. package/dist/app.d.ts +2 -2
  6. package/dist/app.esm.js +4 -4
  7. package/dist/{chart-artifact-bWUa-iSG.d.cts → chart-artifact-C2m891nx.d.cts} +1 -1
  8. package/dist/{chart-artifact-BFDz8Tf9.d.ts → chart-artifact-CqqhdSR9.d.ts} +1 -1
  9. package/dist/{chat-CWtQWDtJ.d.cts → chat-Bed4FQSl.d.cts} +10 -0
  10. package/dist/{chat-CWtQWDtJ.d.ts → chat-Bed4FQSl.d.ts} +10 -0
  11. package/dist/chat.cjs +5 -1
  12. package/dist/chat.d.cts +1 -1
  13. package/dist/chat.d.ts +1 -1
  14. package/dist/chat.esm.js +3 -3
  15. package/dist/{chunk-7O5VY3TP.esm.js → chunk-4AO3HCAR.esm.js} +4 -4
  16. package/dist/chunk-LSEUKTU5.esm.js +435 -0
  17. package/dist/{chunk-2XZ3S4OP.esm.js → chunk-QKO67F4V.esm.js} +39 -0
  18. package/dist/{chunk-TLUF2RUL.esm.js → chunk-VVTTLIGT.esm.js} +6 -2
  19. package/dist/{chunk-TDIJHV4I.esm.js → chunk-YNDXBN6C.esm.js} +1 -1
  20. package/dist/{chunk-533MK5EA.esm.js → chunk-ZEDE2TWQ.esm.js} +8 -6
  21. package/dist/{chunk-N3PYVTY5.esm.js → chunk-ZG5NBHOS.esm.js} +2 -2
  22. package/dist/index.cjs +509 -4
  23. package/dist/index.d.cts +5 -5
  24. package/dist/index.d.ts +5 -5
  25. package/dist/index.esm.js +70 -6
  26. package/dist/studio.cjs +5 -1
  27. package/dist/studio.d.cts +2 -2
  28. package/dist/studio.d.ts +2 -2
  29. package/dist/studio.esm.js +5 -5
  30. package/dist/styles.css +8 -4
  31. package/dist/ui.cjs +507 -8
  32. package/dist/ui.d.cts +45 -2
  33. package/dist/ui.d.ts +45 -2
  34. package/dist/ui.esm.js +66 -2
  35. package/dist/{welcome-C89Mgdaw.d.cts → welcome-COOb05a5.d.cts} +1 -1
  36. package/dist/{welcome-BBmB3tl7.d.ts → welcome-DE08m9ca.d.ts} +1 -1
  37. package/package.json +1 -1
package/dist/ui.cjs CHANGED
@@ -37,12 +37,43 @@ __export(ui_exports, {
37
37
  Dialog: () => Dialog,
38
38
  DialogClose: () => DialogClose,
39
39
  DialogContent: () => DialogContent,
40
+ DialogDescription: () => DialogDescription,
41
+ DialogFooter: () => DialogFooter,
42
+ DialogHeader: () => DialogHeader,
40
43
  DialogOverlay: () => DialogOverlay,
41
44
  DialogPortal: () => DialogPortal,
42
45
  DialogTitle: () => DialogTitle,
43
46
  DialogTrigger: () => DialogTrigger,
47
+ DropdownMenu: () => DropdownMenu,
48
+ DropdownMenuCheckboxItem: () => DropdownMenuCheckboxItem,
49
+ DropdownMenuContent: () => DropdownMenuContent,
50
+ DropdownMenuGroup: () => DropdownMenuGroup,
51
+ DropdownMenuItem: () => DropdownMenuItem,
52
+ DropdownMenuLabel: () => DropdownMenuLabel,
53
+ DropdownMenuRadioGroup: () => DropdownMenuRadioGroup,
54
+ DropdownMenuRadioItem: () => DropdownMenuRadioItem,
55
+ DropdownMenuSeparator: () => DropdownMenuSeparator,
56
+ DropdownMenuShortcut: () => DropdownMenuShortcut,
57
+ DropdownMenuSub: () => DropdownMenuSub,
58
+ DropdownMenuSubContent: () => DropdownMenuSubContent,
59
+ DropdownMenuSubTrigger: () => DropdownMenuSubTrigger,
60
+ DropdownMenuTrigger: () => DropdownMenuTrigger,
44
61
  MemoPillSegmentedTabs: () => MemoPillSegmentedTabs,
45
62
  PillSegmentedTabs: () => PillSegmentedTabs,
63
+ Popover: () => Popover,
64
+ PopoverAnchor: () => PopoverAnchor,
65
+ PopoverContent: () => PopoverContent,
66
+ PopoverTrigger: () => PopoverTrigger,
67
+ Select: () => Select,
68
+ SelectContent: () => SelectContent,
69
+ SelectGroup: () => SelectGroup,
70
+ SelectItem: () => SelectItem,
71
+ SelectLabel: () => SelectLabel,
72
+ SelectScrollDownButton: () => SelectScrollDownButton,
73
+ SelectScrollUpButton: () => SelectScrollUpButton,
74
+ SelectSeparator: () => SelectSeparator,
75
+ SelectTrigger: () => SelectTrigger,
76
+ SelectValue: () => SelectValue,
46
77
  Shimmer: () => Shimmer,
47
78
  TimbalV2Button: () => TimbalV2Button,
48
79
  Tooltip: () => Tooltip,
@@ -555,11 +586,448 @@ function DialogTitle({
555
586
  }
556
587
  );
557
588
  }
589
+ function DialogDescription({
590
+ className,
591
+ ...props
592
+ }) {
593
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
594
+ import_radix_ui4.Dialog.Description,
595
+ {
596
+ "data-slot": "dialog-description",
597
+ className: cn("text-sm text-muted-foreground", className),
598
+ ...props
599
+ }
600
+ );
601
+ }
602
+ function DialogHeader({ className, ...props }) {
603
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
604
+ "div",
605
+ {
606
+ "data-slot": "dialog-header",
607
+ className: cn("flex flex-col gap-1.5 text-center sm:text-left", className),
608
+ ...props
609
+ }
610
+ );
611
+ }
612
+ function DialogFooter({ className, ...props }) {
613
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
614
+ "div",
615
+ {
616
+ "data-slot": "dialog-footer",
617
+ className: cn(
618
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
619
+ className
620
+ ),
621
+ ...props
622
+ }
623
+ );
624
+ }
625
+
626
+ // src/ui/dropdown-menu.tsx
627
+ var import_radix_ui5 = require("radix-ui");
628
+ var import_lucide_react2 = require("lucide-react");
629
+ var import_jsx_runtime6 = require("react/jsx-runtime");
630
+ function DropdownMenu({
631
+ ...props
632
+ }) {
633
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_radix_ui5.DropdownMenu.Root, { "data-slot": "dropdown-menu", ...props });
634
+ }
635
+ function DropdownMenuTrigger({
636
+ ...props
637
+ }) {
638
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
639
+ import_radix_ui5.DropdownMenu.Trigger,
640
+ {
641
+ "data-slot": "dropdown-menu-trigger",
642
+ ...props
643
+ }
644
+ );
645
+ }
646
+ function DropdownMenuGroup({
647
+ ...props
648
+ }) {
649
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_radix_ui5.DropdownMenu.Group, { "data-slot": "dropdown-menu-group", ...props });
650
+ }
651
+ function DropdownMenuContent({
652
+ className,
653
+ sideOffset = 4,
654
+ ...props
655
+ }) {
656
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_radix_ui5.DropdownMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
657
+ import_radix_ui5.DropdownMenu.Content,
658
+ {
659
+ "data-slot": "dropdown-menu-content",
660
+ sideOffset,
661
+ className: cn(
662
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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 z-[80] max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] origin-[var(--radix-dropdown-menu-content-transform-origin)] overflow-x-hidden overflow-y-auto rounded-lg border border-border p-1 shadow-card",
663
+ className
664
+ ),
665
+ ...props
666
+ }
667
+ ) });
668
+ }
669
+ function DropdownMenuItem({
670
+ className,
671
+ inset,
672
+ variant = "default",
673
+ ...props
674
+ }) {
675
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
676
+ import_radix_ui5.DropdownMenu.Item,
677
+ {
678
+ "data-slot": "dropdown-menu-item",
679
+ "data-inset": inset,
680
+ "data-variant": variant,
681
+ className: cn(
682
+ "relative flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
683
+ className
684
+ ),
685
+ ...props
686
+ }
687
+ );
688
+ }
689
+ function DropdownMenuCheckboxItem({
690
+ className,
691
+ children,
692
+ checked,
693
+ ...props
694
+ }) {
695
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
696
+ import_radix_ui5.DropdownMenu.CheckboxItem,
697
+ {
698
+ "data-slot": "dropdown-menu-checkbox-item",
699
+ className: cn(
700
+ "relative flex cursor-default items-center gap-2 rounded-md py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus: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",
701
+ className
702
+ ),
703
+ checked,
704
+ ...props,
705
+ children: [
706
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_radix_ui5.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.CheckIcon, { className: "size-4" }) }) }),
707
+ children
708
+ ]
709
+ }
710
+ );
711
+ }
712
+ function DropdownMenuRadioGroup({
713
+ ...props
714
+ }) {
715
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
716
+ import_radix_ui5.DropdownMenu.RadioGroup,
717
+ {
718
+ "data-slot": "dropdown-menu-radio-group",
719
+ ...props
720
+ }
721
+ );
722
+ }
723
+ function DropdownMenuRadioItem({
724
+ className,
725
+ children,
726
+ ...props
727
+ }) {
728
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
729
+ import_radix_ui5.DropdownMenu.RadioItem,
730
+ {
731
+ "data-slot": "dropdown-menu-radio-item",
732
+ className: cn(
733
+ "relative flex cursor-default items-center gap-2 rounded-md py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus: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",
734
+ className
735
+ ),
736
+ ...props,
737
+ children: [
738
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_radix_ui5.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.CircleIcon, { className: "size-2 fill-current" }) }) }),
739
+ children
740
+ ]
741
+ }
742
+ );
743
+ }
744
+ function DropdownMenuLabel({
745
+ className,
746
+ inset,
747
+ ...props
748
+ }) {
749
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
750
+ import_radix_ui5.DropdownMenu.Label,
751
+ {
752
+ "data-slot": "dropdown-menu-label",
753
+ "data-inset": inset,
754
+ className: cn(
755
+ "px-2 py-1.5 text-xs font-medium text-muted-foreground data-[inset]:pl-8",
756
+ className
757
+ ),
758
+ ...props
759
+ }
760
+ );
761
+ }
762
+ function DropdownMenuSeparator({
763
+ className,
764
+ ...props
765
+ }) {
766
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
767
+ import_radix_ui5.DropdownMenu.Separator,
768
+ {
769
+ "data-slot": "dropdown-menu-separator",
770
+ className: cn("-mx-1 my-1 h-px bg-border", className),
771
+ ...props
772
+ }
773
+ );
774
+ }
775
+ function DropdownMenuShortcut({
776
+ className,
777
+ ...props
778
+ }) {
779
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
780
+ "span",
781
+ {
782
+ "data-slot": "dropdown-menu-shortcut",
783
+ className: cn(
784
+ "ml-auto text-xs tracking-widest text-muted-foreground",
785
+ className
786
+ ),
787
+ ...props
788
+ }
789
+ );
790
+ }
791
+ function DropdownMenuSub({
792
+ ...props
793
+ }) {
794
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_radix_ui5.DropdownMenu.Sub, { "data-slot": "dropdown-menu-sub", ...props });
795
+ }
796
+ function DropdownMenuSubTrigger({
797
+ className,
798
+ inset,
799
+ children,
800
+ ...props
801
+ }) {
802
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
803
+ import_radix_ui5.DropdownMenu.SubTrigger,
804
+ {
805
+ "data-slot": "dropdown-menu-sub-trigger",
806
+ "data-inset": inset,
807
+ className: cn(
808
+ "flex cursor-default items-center rounded-md px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground data-[inset]:pl-8",
809
+ className
810
+ ),
811
+ ...props,
812
+ children: [
813
+ children,
814
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.ChevronRightIcon, { className: "ml-auto size-4" })
815
+ ]
816
+ }
817
+ );
818
+ }
819
+ function DropdownMenuSubContent({
820
+ className,
821
+ ...props
822
+ }) {
823
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
824
+ import_radix_ui5.DropdownMenu.SubContent,
825
+ {
826
+ "data-slot": "dropdown-menu-sub-content",
827
+ className: cn(
828
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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 z-[80] min-w-[8rem] origin-[var(--radix-dropdown-menu-content-transform-origin)] overflow-hidden rounded-lg border border-border p-1 shadow-card",
829
+ className
830
+ ),
831
+ ...props
832
+ }
833
+ );
834
+ }
835
+
836
+ // src/ui/popover.tsx
837
+ var import_radix_ui6 = require("radix-ui");
838
+ var import_jsx_runtime7 = require("react/jsx-runtime");
839
+ function Popover({
840
+ ...props
841
+ }) {
842
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_radix_ui6.Popover.Root, { "data-slot": "popover", ...props });
843
+ }
844
+ function PopoverTrigger({
845
+ ...props
846
+ }) {
847
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_radix_ui6.Popover.Trigger, { "data-slot": "popover-trigger", ...props });
848
+ }
849
+ function PopoverAnchor({
850
+ ...props
851
+ }) {
852
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_radix_ui6.Popover.Anchor, { "data-slot": "popover-anchor", ...props });
853
+ }
854
+ function PopoverContent({
855
+ className,
856
+ align = "center",
857
+ sideOffset = 4,
858
+ ...props
859
+ }) {
860
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_radix_ui6.Popover.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
861
+ import_radix_ui6.Popover.Content,
862
+ {
863
+ "data-slot": "popover-content",
864
+ align,
865
+ sideOffset,
866
+ className: cn(
867
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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 z-[80] w-72 origin-[var(--radix-popover-content-transform-origin)] rounded-xl border border-border p-4 shadow-card outline-hidden",
868
+ className
869
+ ),
870
+ ...props
871
+ }
872
+ ) });
873
+ }
874
+
875
+ // src/ui/select.tsx
876
+ var import_radix_ui7 = require("radix-ui");
877
+ var import_lucide_react3 = require("lucide-react");
878
+ var import_jsx_runtime8 = require("react/jsx-runtime");
879
+ function Select({
880
+ ...props
881
+ }) {
882
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_radix_ui7.Select.Root, { "data-slot": "select", ...props });
883
+ }
884
+ function SelectGroup({
885
+ ...props
886
+ }) {
887
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_radix_ui7.Select.Group, { "data-slot": "select-group", ...props });
888
+ }
889
+ function SelectValue({
890
+ ...props
891
+ }) {
892
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_radix_ui7.Select.Value, { "data-slot": "select-value", ...props });
893
+ }
894
+ function SelectTrigger({
895
+ className,
896
+ size = "default",
897
+ children,
898
+ ...props
899
+ }) {
900
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
901
+ import_radix_ui7.Select.Trigger,
902
+ {
903
+ "data-slot": "select-trigger",
904
+ "data-size": size,
905
+ className: cn(
906
+ "flex w-fit items-center justify-between gap-2 rounded-lg border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/40 disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
907
+ className
908
+ ),
909
+ ...props,
910
+ children: [
911
+ children,
912
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_radix_ui7.Select.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_lucide_react3.ChevronDownIcon, { className: "size-4 opacity-50" }) })
913
+ ]
914
+ }
915
+ );
916
+ }
917
+ function SelectContent({
918
+ className,
919
+ children,
920
+ position = "popper",
921
+ ...props
922
+ }) {
923
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_radix_ui7.Select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
924
+ import_radix_ui7.Select.Content,
925
+ {
926
+ "data-slot": "select-content",
927
+ className: cn(
928
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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 relative z-[80] max-h-[var(--radix-select-content-available-height)] min-w-[8rem] origin-[var(--radix-select-content-transform-origin)] overflow-x-hidden overflow-y-auto rounded-lg border border-border shadow-card",
929
+ position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
930
+ className
931
+ ),
932
+ position,
933
+ ...props,
934
+ children: [
935
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SelectScrollUpButton, {}),
936
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
937
+ import_radix_ui7.Select.Viewport,
938
+ {
939
+ className: cn(
940
+ "p-1",
941
+ position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
942
+ ),
943
+ children
944
+ }
945
+ ),
946
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SelectScrollDownButton, {})
947
+ ]
948
+ }
949
+ ) });
950
+ }
951
+ function SelectLabel({
952
+ className,
953
+ ...props
954
+ }) {
955
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
956
+ import_radix_ui7.Select.Label,
957
+ {
958
+ "data-slot": "select-label",
959
+ className: cn("px-2 py-1.5 text-xs font-medium text-muted-foreground", className),
960
+ ...props
961
+ }
962
+ );
963
+ }
964
+ function SelectItem({
965
+ className,
966
+ children,
967
+ ...props
968
+ }) {
969
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
970
+ import_radix_ui7.Select.Item,
971
+ {
972
+ "data-slot": "select-item",
973
+ className: cn(
974
+ "relative flex w-full cursor-default items-center gap-2 rounded-md py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
975
+ className
976
+ ),
977
+ ...props,
978
+ children: [
979
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_radix_ui7.Select.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_lucide_react3.CheckIcon, { className: "size-4" }) }) }),
980
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_radix_ui7.Select.ItemText, { children })
981
+ ]
982
+ }
983
+ );
984
+ }
985
+ function SelectSeparator({
986
+ className,
987
+ ...props
988
+ }) {
989
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
990
+ import_radix_ui7.Select.Separator,
991
+ {
992
+ "data-slot": "select-separator",
993
+ className: cn("-mx-1 my-1 h-px bg-border", className),
994
+ ...props
995
+ }
996
+ );
997
+ }
998
+ function SelectScrollUpButton({
999
+ className,
1000
+ ...props
1001
+ }) {
1002
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1003
+ import_radix_ui7.Select.ScrollUpButton,
1004
+ {
1005
+ "data-slot": "select-scroll-up-button",
1006
+ className: cn("flex cursor-default items-center justify-center py-1", className),
1007
+ ...props,
1008
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_lucide_react3.ChevronUpIcon, { className: "size-4" })
1009
+ }
1010
+ );
1011
+ }
1012
+ function SelectScrollDownButton({
1013
+ className,
1014
+ ...props
1015
+ }) {
1016
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1017
+ import_radix_ui7.Select.ScrollDownButton,
1018
+ {
1019
+ "data-slot": "select-scroll-down-button",
1020
+ className: cn("flex cursor-default items-center justify-center py-1", className),
1021
+ ...props,
1022
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_lucide_react3.ChevronDownIcon, { className: "size-4" })
1023
+ }
1024
+ );
1025
+ }
558
1026
 
559
1027
  // src/ui/shimmer.tsx
560
1028
  var import_react = require("motion/react");
561
1029
  var import_react2 = require("react");
562
- var import_jsx_runtime6 = require("react/jsx-runtime");
1030
+ var import_jsx_runtime9 = require("react/jsx-runtime");
563
1031
  var ShimmerComponent = ({
564
1032
  children,
565
1033
  as: Component = "p",
@@ -574,7 +1042,7 @@ var ShimmerComponent = ({
574
1042
  () => (children?.length ?? 0) * spread,
575
1043
  [children, spread]
576
1044
  );
577
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
1045
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
578
1046
  MotionComponent,
579
1047
  {
580
1048
  animate: { backgroundPosition: "0% center" },
@@ -634,7 +1102,7 @@ var pillSegmentedActiveIndicatorClass = cn(
634
1102
  );
635
1103
 
636
1104
  // src/ui/pill-segmented-tabs.tsx
637
- var import_jsx_runtime7 = require("react/jsx-runtime");
1105
+ var import_jsx_runtime10 = require("react/jsx-runtime");
638
1106
  var PillTab = ({
639
1107
  tabKey,
640
1108
  label,
@@ -648,7 +1116,7 @@ var PillTab = ({
648
1116
  const handlePress = (0, import_react3.useCallback)(() => {
649
1117
  if (!disabled) onSelect(tabKey);
650
1118
  }, [disabled, onSelect, tabKey]);
651
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1119
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
652
1120
  "button",
653
1121
  {
654
1122
  type: "button",
@@ -661,15 +1129,15 @@ var PillTab = ({
661
1129
  !disabled && (isActive ? "text-foreground" : "text-muted-foreground hover:text-foreground")
662
1130
  ),
663
1131
  children: [
664
- isActive && animateIndicator ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1132
+ isActive && animateIndicator ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
665
1133
  import_react4.motion.div,
666
1134
  {
667
1135
  layoutId,
668
1136
  className: pillSegmentedActiveIndicatorClass,
669
1137
  transition: { type: "spring", duration: 0.3, bounce: 0.15 }
670
1138
  }
671
- ) : isActive ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: pillSegmentedActiveIndicatorClass, "aria-hidden": true }) : null,
672
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "relative z-10 whitespace-nowrap", children: label })
1139
+ ) : isActive ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: pillSegmentedActiveIndicatorClass, "aria-hidden": true }) : null,
1140
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "relative z-10 whitespace-nowrap", children: label })
673
1141
  ]
674
1142
  }
675
1143
  );
@@ -689,7 +1157,7 @@ var PillSegmentedTabs = ({
689
1157
  const isFlush = trackVariant === "flush";
690
1158
  const trackClass = isFlush ? pillSegmentedTrackFlushClass : pillSegmentedTrackClass;
691
1159
  const segmentClassName = isFlush ? pillSegmentedFlushSegmentClass : pillSegmentedSegmentClass;
692
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { role: "group", "aria-label": ariaLabel, className: cn(trackClass, className), children: tabs.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1160
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { role: "group", "aria-label": ariaLabel, className: cn(trackClass, className), children: tabs.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
693
1161
  PillTab,
694
1162
  {
695
1163
  tabKey: tab.key,
@@ -714,12 +1182,43 @@ var MemoPillSegmentedTabs = (0, import_react3.memo)(PillSegmentedTabs);
714
1182
  Dialog,
715
1183
  DialogClose,
716
1184
  DialogContent,
1185
+ DialogDescription,
1186
+ DialogFooter,
1187
+ DialogHeader,
717
1188
  DialogOverlay,
718
1189
  DialogPortal,
719
1190
  DialogTitle,
720
1191
  DialogTrigger,
1192
+ DropdownMenu,
1193
+ DropdownMenuCheckboxItem,
1194
+ DropdownMenuContent,
1195
+ DropdownMenuGroup,
1196
+ DropdownMenuItem,
1197
+ DropdownMenuLabel,
1198
+ DropdownMenuRadioGroup,
1199
+ DropdownMenuRadioItem,
1200
+ DropdownMenuSeparator,
1201
+ DropdownMenuShortcut,
1202
+ DropdownMenuSub,
1203
+ DropdownMenuSubContent,
1204
+ DropdownMenuSubTrigger,
1205
+ DropdownMenuTrigger,
721
1206
  MemoPillSegmentedTabs,
722
1207
  PillSegmentedTabs,
1208
+ Popover,
1209
+ PopoverAnchor,
1210
+ PopoverContent,
1211
+ PopoverTrigger,
1212
+ Select,
1213
+ SelectContent,
1214
+ SelectGroup,
1215
+ SelectItem,
1216
+ SelectLabel,
1217
+ SelectScrollDownButton,
1218
+ SelectScrollUpButton,
1219
+ SelectSeparator,
1220
+ SelectTrigger,
1221
+ SelectValue,
723
1222
  Shimmer,
724
1223
  TimbalV2Button,
725
1224
  Tooltip,
package/dist/ui.d.cts CHANGED
@@ -2,7 +2,7 @@ export { B as Button } from './button-CIKzUrJI.cjs';
2
2
  import * as react_jsx_runtime from 'react/jsx-runtime';
3
3
  import * as React from 'react';
4
4
  import { ElementType, ReactNode, FC } from 'react';
5
- import { Tooltip as Tooltip$1, Avatar as Avatar$1, Dialog as Dialog$1 } from 'radix-ui';
5
+ import { Tooltip as Tooltip$1, Avatar as Avatar$1, Dialog as Dialog$1, DropdownMenu as DropdownMenu$1, Popover as Popover$1, Select as Select$1 } from 'radix-ui';
6
6
  export { a as TimbalV2Button } from './timbal-v2-button-CNfdwGq4.cjs';
7
7
  import 'class-variance-authority/types';
8
8
  import 'class-variance-authority';
@@ -27,6 +27,49 @@ declare function DialogContent({ className, children, showCloseButton, ...props
27
27
  showCloseButton?: boolean;
28
28
  }): react_jsx_runtime.JSX.Element;
29
29
  declare function DialogTitle({ className, ...props }: React.ComponentProps<typeof Dialog$1.Title>): react_jsx_runtime.JSX.Element;
30
+ declare function DialogDescription({ className, ...props }: React.ComponentProps<typeof Dialog$1.Description>): react_jsx_runtime.JSX.Element;
31
+ declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
32
+ declare function DialogFooter({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
33
+
34
+ declare function DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenu$1.Root>): react_jsx_runtime.JSX.Element;
35
+ declare function DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenu$1.Trigger>): react_jsx_runtime.JSX.Element;
36
+ declare function DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenu$1.Group>): react_jsx_runtime.JSX.Element;
37
+ declare function DropdownMenuContent({ className, sideOffset, ...props }: React.ComponentProps<typeof DropdownMenu$1.Content>): react_jsx_runtime.JSX.Element;
38
+ declare function DropdownMenuItem({ className, inset, variant, ...props }: React.ComponentProps<typeof DropdownMenu$1.Item> & {
39
+ inset?: boolean;
40
+ variant?: "default" | "destructive";
41
+ }): react_jsx_runtime.JSX.Element;
42
+ declare function DropdownMenuCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof DropdownMenu$1.CheckboxItem>): react_jsx_runtime.JSX.Element;
43
+ declare function DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenu$1.RadioGroup>): react_jsx_runtime.JSX.Element;
44
+ declare function DropdownMenuRadioItem({ className, children, ...props }: React.ComponentProps<typeof DropdownMenu$1.RadioItem>): react_jsx_runtime.JSX.Element;
45
+ declare function DropdownMenuLabel({ className, inset, ...props }: React.ComponentProps<typeof DropdownMenu$1.Label> & {
46
+ inset?: boolean;
47
+ }): react_jsx_runtime.JSX.Element;
48
+ declare function DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenu$1.Separator>): react_jsx_runtime.JSX.Element;
49
+ declare function DropdownMenuShortcut({ className, ...props }: React.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
50
+ declare function DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenu$1.Sub>): react_jsx_runtime.JSX.Element;
51
+ declare function DropdownMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof DropdownMenu$1.SubTrigger> & {
52
+ inset?: boolean;
53
+ }): react_jsx_runtime.JSX.Element;
54
+ declare function DropdownMenuSubContent({ className, ...props }: React.ComponentProps<typeof DropdownMenu$1.SubContent>): react_jsx_runtime.JSX.Element;
55
+
56
+ declare function Popover({ ...props }: React.ComponentProps<typeof Popover$1.Root>): react_jsx_runtime.JSX.Element;
57
+ declare function PopoverTrigger({ ...props }: React.ComponentProps<typeof Popover$1.Trigger>): react_jsx_runtime.JSX.Element;
58
+ declare function PopoverAnchor({ ...props }: React.ComponentProps<typeof Popover$1.Anchor>): react_jsx_runtime.JSX.Element;
59
+ declare function PopoverContent({ className, align, sideOffset, ...props }: React.ComponentProps<typeof Popover$1.Content>): react_jsx_runtime.JSX.Element;
60
+
61
+ declare function Select({ ...props }: React.ComponentProps<typeof Select$1.Root>): react_jsx_runtime.JSX.Element;
62
+ declare function SelectGroup({ ...props }: React.ComponentProps<typeof Select$1.Group>): react_jsx_runtime.JSX.Element;
63
+ declare function SelectValue({ ...props }: React.ComponentProps<typeof Select$1.Value>): react_jsx_runtime.JSX.Element;
64
+ declare function SelectTrigger({ className, size, children, ...props }: React.ComponentProps<typeof Select$1.Trigger> & {
65
+ size?: "sm" | "default";
66
+ }): react_jsx_runtime.JSX.Element;
67
+ declare function SelectContent({ className, children, position, ...props }: React.ComponentProps<typeof Select$1.Content>): react_jsx_runtime.JSX.Element;
68
+ declare function SelectLabel({ className, ...props }: React.ComponentProps<typeof Select$1.Label>): react_jsx_runtime.JSX.Element;
69
+ declare function SelectItem({ className, children, ...props }: React.ComponentProps<typeof Select$1.Item>): react_jsx_runtime.JSX.Element;
70
+ declare function SelectSeparator({ className, ...props }: React.ComponentProps<typeof Select$1.Separator>): react_jsx_runtime.JSX.Element;
71
+ declare function SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof Select$1.ScrollUpButton>): react_jsx_runtime.JSX.Element;
72
+ declare function SelectScrollDownButton({ className, ...props }: React.ComponentProps<typeof Select$1.ScrollDownButton>): react_jsx_runtime.JSX.Element;
30
73
 
31
74
  interface TextShimmerProps {
32
75
  children: string;
@@ -60,4 +103,4 @@ interface PillSegmentedTabsProps {
60
103
  declare const PillSegmentedTabs: FC<PillSegmentedTabsProps>;
61
104
  declare const MemoPillSegmentedTabs: React.NamedExoticComponent<PillSegmentedTabsProps>;
62
105
 
63
- export { Avatar, AvatarFallback, AvatarImage, Dialog, DialogClose, DialogContent, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, MemoPillSegmentedTabs, type PillSegmentedTab, PillSegmentedTabs, type PillSegmentedTabsProps, Shimmer, type TextShimmerProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
106
+ export { Avatar, AvatarFallback, AvatarImage, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, MemoPillSegmentedTabs, type PillSegmentedTab, PillSegmentedTabs, type PillSegmentedTabsProps, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Shimmer, type TextShimmerProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };