@spawn-llc/design-system 1.1.1 → 1.2.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 (188) hide show
  1. package/dist/chunk-227VGN2D.js +617 -0
  2. package/dist/chunk-2UK4FHS3.js +31 -0
  3. package/dist/chunk-36NOAJFW.js +53 -0
  4. package/dist/chunk-3EZ5FFYG.js +154 -0
  5. package/dist/chunk-3PN2XMRA.js +80 -0
  6. package/dist/chunk-3SLZRFKQ.js +107 -0
  7. package/dist/chunk-4ABNKOPC.js +18 -0
  8. package/dist/chunk-4IKPZU4X.js +34 -0
  9. package/dist/chunk-5YRMB7KW.js +31 -0
  10. package/dist/chunk-66R4755B.js +37 -0
  11. package/dist/chunk-ATBQXQM7.js +165 -0
  12. package/dist/chunk-AUWFUYJI.js +79 -0
  13. package/dist/chunk-BTGJV2P6.js +237 -0
  14. package/dist/chunk-BYJWYU66.js +95 -0
  15. package/dist/chunk-D6UXXTC6.js +18 -0
  16. package/dist/chunk-DFVSGTAN.js +24 -0
  17. package/dist/chunk-DQ52UWO2.js +28 -0
  18. package/dist/chunk-DXXFNPYR.js +20 -0
  19. package/dist/chunk-GBPD3QPO.js +60 -0
  20. package/dist/chunk-GHSVAEXO.js +227 -0
  21. package/dist/chunk-GQIUVLXP.js +42 -0
  22. package/dist/chunk-HG4AEMA5.js +74 -0
  23. package/dist/chunk-HK6P54FZ.js +139 -0
  24. package/dist/chunk-HSP43BHH.js +97 -0
  25. package/dist/chunk-HYBBZTLY.js +1 -0
  26. package/dist/chunk-IS2ZVRUW.js +186 -0
  27. package/dist/chunk-JSULEEYQ.js +9 -0
  28. package/dist/chunk-K46NYJUT.js +15 -0
  29. package/dist/chunk-L5SMHZJL.js +162 -0
  30. package/dist/chunk-LPPLLYOR.js +185 -0
  31. package/dist/chunk-LYDG55X2.js +194 -0
  32. package/dist/chunk-MLC45YHE.js +122 -0
  33. package/dist/chunk-MZEY2L46.js +186 -0
  34. package/dist/chunk-N34HFTEJ.js +22 -0
  35. package/dist/chunk-PPW4C342.js +232 -0
  36. package/dist/chunk-PZCXY6QZ.js +208 -0
  37. package/dist/chunk-Q3HD7YQZ.js +261 -0
  38. package/dist/chunk-QF7LZKLC.js +98 -0
  39. package/dist/chunk-QNUAUOJW.js +15 -0
  40. package/dist/chunk-QZSQXEOU.js +28 -0
  41. package/dist/chunk-RBTFEYGV.js +77 -0
  42. package/dist/chunk-SJMEO63M.js +116 -0
  43. package/dist/chunk-T6DWCVR3.js +73 -0
  44. package/dist/chunk-T7GS4AXQ.js +245 -0
  45. package/dist/chunk-TP35WWVP.js +46 -0
  46. package/dist/chunk-TQ6CJZMT.js +42 -0
  47. package/dist/chunk-U7N2A7A3.js +9 -0
  48. package/dist/chunk-V3NRC7QE.js +142 -0
  49. package/dist/chunk-VOHNOSMH.js +22 -0
  50. package/dist/chunk-W3PHWPYP.js +43 -0
  51. package/dist/chunk-WJ6DNG2Z.js +75 -0
  52. package/dist/chunk-WMXCMDSQ.js +126 -0
  53. package/dist/chunk-WSNSTJAR.js +58 -0
  54. package/dist/chunk-XG3HHC3U.js +79 -0
  55. package/dist/chunk-XOLQ37I2.js +118 -0
  56. package/dist/chunk-YFPY5SLS.js +19 -0
  57. package/dist/chunk-YFVERFQA.js +76 -0
  58. package/dist/chunk-YL4VCJKF.js +75 -0
  59. package/dist/chunk-ZMHTPZVQ.js +61 -0
  60. package/dist/chunk-ZO74KVH3.js +38 -0
  61. package/dist/components/ui/accordion.d.ts +9 -0
  62. package/dist/components/ui/accordion.js +3 -0
  63. package/dist/components/ui/alert-dialog.d.ts +24 -0
  64. package/dist/components/ui/alert-dialog.js +5 -0
  65. package/dist/components/ui/alert.d.ts +13 -0
  66. package/dist/components/ui/alert.js +3 -0
  67. package/dist/components/ui/aspect-ratio.d.ts +7 -0
  68. package/dist/components/ui/aspect-ratio.js +3 -0
  69. package/dist/components/ui/avatar.d.ts +13 -0
  70. package/dist/components/ui/avatar.js +3 -0
  71. package/dist/components/ui/badge.d.ts +11 -0
  72. package/dist/components/ui/badge.js +3 -0
  73. package/dist/components/ui/breadcrumb.d.ts +12 -0
  74. package/dist/components/ui/breadcrumb.js +3 -0
  75. package/dist/components/ui/button-group.d.ts +15 -0
  76. package/dist/components/ui/button-group.js +4 -0
  77. package/dist/components/ui/button.d.ts +9 -0
  78. package/dist/components/ui/button.js +4 -0
  79. package/dist/components/ui/calendar.d.ts +16 -0
  80. package/dist/components/ui/calendar.js +5 -0
  81. package/dist/components/ui/card.d.ts +13 -0
  82. package/dist/components/ui/card.js +3 -0
  83. package/dist/components/ui/carousel.d.ts +34 -0
  84. package/dist/components/ui/carousel.js +5 -0
  85. package/dist/components/ui/chart.d.ts +46 -0
  86. package/dist/components/ui/chart.js +3 -0
  87. package/dist/components/ui/checkbox.d.ts +6 -0
  88. package/dist/components/ui/checkbox.js +3 -0
  89. package/dist/components/ui/collapsible.d.ts +8 -0
  90. package/dist/components/ui/collapsible.js +2 -0
  91. package/dist/components/ui/combobox.d.ts +26 -0
  92. package/dist/components/ui/combobox.js +8 -0
  93. package/dist/components/ui/command.d.ts +22 -0
  94. package/dist/components/ui/command.js +9 -0
  95. package/dist/components/ui/context-menu.d.ts +31 -0
  96. package/dist/components/ui/context-menu.js +3 -0
  97. package/dist/components/ui/dialog.d.ts +19 -0
  98. package/dist/components/ui/dialog.js +5 -0
  99. package/dist/components/ui/direction.d.ts +1 -0
  100. package/dist/components/ui/direction.js +2 -0
  101. package/dist/components/ui/drawer.d.ts +15 -0
  102. package/dist/components/ui/drawer.js +3 -0
  103. package/dist/components/ui/dropdown-menu.d.ts +31 -0
  104. package/dist/components/ui/dropdown-menu.js +3 -0
  105. package/dist/components/ui/empty.d.ts +15 -0
  106. package/dist/components/ui/empty.js +3 -0
  107. package/dist/components/ui/field.d.ts +28 -0
  108. package/dist/components/ui/field.js +5 -0
  109. package/dist/components/ui/hover-card.d.ts +8 -0
  110. package/dist/components/ui/hover-card.js +3 -0
  111. package/dist/components/ui/input-group.d.ts +23 -0
  112. package/dist/components/ui/input-group.js +7 -0
  113. package/dist/components/ui/input-otp.d.ts +13 -0
  114. package/dist/components/ui/input-otp.js +3 -0
  115. package/dist/components/ui/input.d.ts +5 -0
  116. package/dist/components/ui/input.js +3 -0
  117. package/dist/components/ui/item.d.ts +26 -0
  118. package/dist/components/ui/item.js +4 -0
  119. package/dist/components/ui/kbd.d.ts +6 -0
  120. package/dist/components/ui/kbd.js +3 -0
  121. package/dist/components/ui/label.d.ts +5 -0
  122. package/dist/components/ui/label.js +3 -0
  123. package/dist/components/ui/logo.d.ts +17 -0
  124. package/dist/components/ui/logo.js +3 -0
  125. package/dist/components/ui/menubar.d.ts +31 -0
  126. package/dist/components/ui/menubar.js +4 -0
  127. package/dist/components/ui/native-select.d.ts +10 -0
  128. package/dist/components/ui/native-select.js +3 -0
  129. package/dist/components/ui/navigation-menu.d.ts +15 -0
  130. package/dist/components/ui/navigation-menu.js +3 -0
  131. package/dist/components/ui/pagination.d.ts +23 -0
  132. package/dist/components/ui/pagination.js +5 -0
  133. package/dist/components/ui/popover.d.ts +11 -0
  134. package/dist/components/ui/popover.js +3 -0
  135. package/dist/components/ui/progress.d.ts +10 -0
  136. package/dist/components/ui/progress.js +3 -0
  137. package/dist/components/ui/radio-group.d.ts +8 -0
  138. package/dist/components/ui/radio-group.js +3 -0
  139. package/dist/components/ui/resizable.d.ts +10 -0
  140. package/dist/components/ui/resizable.js +3 -0
  141. package/dist/components/ui/scroll-area.d.ts +7 -0
  142. package/dist/components/ui/scroll-area.js +3 -0
  143. package/dist/components/ui/select.d.ts +17 -0
  144. package/dist/components/ui/select.js +3 -0
  145. package/dist/components/ui/separator.d.ts +6 -0
  146. package/dist/components/ui/separator.js +3 -0
  147. package/dist/components/ui/sheet.d.ts +16 -0
  148. package/dist/components/ui/sheet.js +5 -0
  149. package/dist/components/ui/sidebar.d.ts +70 -0
  150. package/dist/components/ui/sidebar.js +11 -0
  151. package/dist/components/ui/skeleton.d.ts +5 -0
  152. package/dist/components/ui/skeleton.js +3 -0
  153. package/dist/components/ui/slider.d.ts +6 -0
  154. package/dist/components/ui/slider.js +3 -0
  155. package/dist/components/ui/sonner.d.ts +6 -0
  156. package/dist/components/ui/sonner.js +2 -0
  157. package/dist/components/ui/spinner.d.ts +5 -0
  158. package/dist/components/ui/spinner.js +3 -0
  159. package/dist/components/ui/switch.d.ts +8 -0
  160. package/dist/components/ui/switch.js +3 -0
  161. package/dist/components/ui/table.d.ts +12 -0
  162. package/dist/components/ui/table.js +3 -0
  163. package/dist/components/ui/tabs.d.ts +14 -0
  164. package/dist/components/ui/tabs.js +3 -0
  165. package/dist/components/ui/textarea.d.ts +5 -0
  166. package/dist/components/ui/textarea.js +3 -0
  167. package/dist/components/ui/toggle-group.d.ts +14 -0
  168. package/dist/components/ui/toggle-group.js +4 -0
  169. package/dist/components/ui/toggle.d.ts +12 -0
  170. package/dist/components/ui/toggle.js +3 -0
  171. package/dist/components/ui/tooltip.d.ts +9 -0
  172. package/dist/components/ui/tooltip.js +3 -0
  173. package/dist/hooks/use-mobile.d.ts +3 -0
  174. package/dist/hooks/use-mobile.js +2 -0
  175. package/dist/index.d.ts +98 -640
  176. package/dist/index.js +60 -5573
  177. package/dist/lib/button-variants.d.ts +17 -0
  178. package/dist/lib/button-variants.js +1 -0
  179. package/dist/lib/contrast.d.ts +9 -0
  180. package/dist/lib/contrast.js +1 -0
  181. package/dist/lib/utils.d.ts +5 -0
  182. package/dist/lib/utils.js +1 -0
  183. package/dist/styles.css +1 -1
  184. package/dist/variants.d.ts +3 -0
  185. package/dist/variants.js +1 -0
  186. package/package.json +13 -5
  187. /package/dist/{tokens.d.ts → tokens.generated.d.ts} +0 -0
  188. /package/dist/{tokens.js → tokens.generated.js} +0 -0
@@ -0,0 +1,46 @@
1
+ import { cn } from './chunk-U7N2A7A3.js';
2
+ import { mergeProps } from '@base-ui/react/merge-props';
3
+ import { useRender } from '@base-ui/react/use-render';
4
+ import { cva } from 'class-variance-authority';
5
+
6
+ var badgeVariants = cva(
7
+ "group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",
8
+ {
9
+ variants: {
10
+ variant: {
11
+ default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
12
+ secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",
13
+ destructive: "bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",
14
+ outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",
15
+ ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
16
+ link: "text-primary underline-offset-4 hover:underline"
17
+ }
18
+ },
19
+ defaultVariants: {
20
+ variant: "default"
21
+ }
22
+ }
23
+ );
24
+ function Badge({
25
+ className,
26
+ variant = "default",
27
+ render,
28
+ ...props
29
+ }) {
30
+ return useRender({
31
+ defaultTagName: "span",
32
+ props: mergeProps(
33
+ {
34
+ className: cn(badgeVariants({ variant }), className)
35
+ },
36
+ props
37
+ ),
38
+ render,
39
+ state: {
40
+ slot: "badge",
41
+ variant
42
+ }
43
+ });
44
+ }
45
+
46
+ export { Badge, badgeVariants };
@@ -0,0 +1,42 @@
1
+ import { cn } from './chunk-U7N2A7A3.js';
2
+ import { PreviewCard } from '@base-ui/react/preview-card';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ function HoverCard({ ...props }) {
6
+ return /* @__PURE__ */ jsx(PreviewCard.Root, { "data-slot": "hover-card", ...props });
7
+ }
8
+ function HoverCardTrigger({ ...props }) {
9
+ return /* @__PURE__ */ jsx(PreviewCard.Trigger, { "data-slot": "hover-card-trigger", ...props });
10
+ }
11
+ function HoverCardContent({
12
+ className,
13
+ side = "bottom",
14
+ sideOffset = 4,
15
+ align = "center",
16
+ alignOffset = 4,
17
+ ...props
18
+ }) {
19
+ return /* @__PURE__ */ jsx(PreviewCard.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx(
20
+ PreviewCard.Positioner,
21
+ {
22
+ align,
23
+ alignOffset,
24
+ side,
25
+ sideOffset,
26
+ className: "isolate z-50",
27
+ children: /* @__PURE__ */ jsx(
28
+ PreviewCard.Popup,
29
+ {
30
+ "data-slot": "hover-card-content",
31
+ className: cn(
32
+ "z-50 w-64 origin-(--transform-origin) rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 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-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",
33
+ className
34
+ ),
35
+ ...props
36
+ }
37
+ )
38
+ }
39
+ ) });
40
+ }
41
+
42
+ export { HoverCard, HoverCardContent, HoverCardTrigger };
@@ -0,0 +1,9 @@
1
+ import { clsx } from 'clsx';
2
+ import { twMerge } from 'tailwind-merge';
3
+
4
+ // src/lib/utils.ts
5
+ function cn(...inputs) {
6
+ return twMerge(clsx(inputs));
7
+ }
8
+
9
+ export { cn };
@@ -0,0 +1,142 @@
1
+ import { Button } from './chunk-N34HFTEJ.js';
2
+ import { cn } from './chunk-U7N2A7A3.js';
3
+ import { Dialog as Dialog$1 } from '@base-ui/react/dialog';
4
+ import { XIcon } from 'lucide-react';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ function Dialog({ ...props }) {
8
+ return /* @__PURE__ */ jsx(Dialog$1.Root, { "data-slot": "dialog", ...props });
9
+ }
10
+ function DialogTrigger({ ...props }) {
11
+ return /* @__PURE__ */ jsx(Dialog$1.Trigger, { "data-slot": "dialog-trigger", ...props });
12
+ }
13
+ function DialogPortal({ ...props }) {
14
+ return /* @__PURE__ */ jsx(Dialog$1.Portal, { "data-slot": "dialog-portal", ...props });
15
+ }
16
+ function DialogClose({ ...props }) {
17
+ return /* @__PURE__ */ jsx(Dialog$1.Close, { "data-slot": "dialog-close", ...props });
18
+ }
19
+ function DialogOverlay({
20
+ className,
21
+ ...props
22
+ }) {
23
+ return /* @__PURE__ */ jsx(
24
+ Dialog$1.Backdrop,
25
+ {
26
+ "data-slot": "dialog-overlay",
27
+ className: cn(
28
+ "fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
29
+ className
30
+ ),
31
+ ...props
32
+ }
33
+ );
34
+ }
35
+ function DialogContent({
36
+ className,
37
+ children,
38
+ showCloseButton = true,
39
+ ...props
40
+ }) {
41
+ return /* @__PURE__ */ jsxs(DialogPortal, { children: [
42
+ /* @__PURE__ */ jsx(DialogOverlay, {}),
43
+ /* @__PURE__ */ jsxs(
44
+ Dialog$1.Popup,
45
+ {
46
+ "data-slot": "dialog-content",
47
+ className: cn(
48
+ "fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm 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",
49
+ className
50
+ ),
51
+ ...props,
52
+ children: [
53
+ children,
54
+ showCloseButton && /* @__PURE__ */ jsxs(
55
+ Dialog$1.Close,
56
+ {
57
+ "data-slot": "dialog-close",
58
+ render: /* @__PURE__ */ jsx(
59
+ Button,
60
+ {
61
+ variant: "ghost",
62
+ className: "absolute top-2 right-2",
63
+ size: "icon-sm"
64
+ }
65
+ ),
66
+ children: [
67
+ /* @__PURE__ */ jsx(
68
+ XIcon,
69
+ {}
70
+ ),
71
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
72
+ ]
73
+ }
74
+ )
75
+ ]
76
+ }
77
+ )
78
+ ] });
79
+ }
80
+ function DialogHeader({ className, ...props }) {
81
+ return /* @__PURE__ */ jsx(
82
+ "div",
83
+ {
84
+ "data-slot": "dialog-header",
85
+ className: cn("flex flex-col gap-2", className),
86
+ ...props
87
+ }
88
+ );
89
+ }
90
+ function DialogFooter({
91
+ className,
92
+ showCloseButton = false,
93
+ children,
94
+ ...props
95
+ }) {
96
+ return /* @__PURE__ */ jsxs(
97
+ "div",
98
+ {
99
+ "data-slot": "dialog-footer",
100
+ className: cn(
101
+ "-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end",
102
+ className
103
+ ),
104
+ ...props,
105
+ children: [
106
+ children,
107
+ showCloseButton && /* @__PURE__ */ jsx(Dialog$1.Close, { render: /* @__PURE__ */ jsx(Button, { variant: "outline" }), children: "Close" })
108
+ ]
109
+ }
110
+ );
111
+ }
112
+ function DialogTitle({ className, ...props }) {
113
+ return /* @__PURE__ */ jsx(
114
+ Dialog$1.Title,
115
+ {
116
+ "data-slot": "dialog-title",
117
+ className: cn(
118
+ "text-base leading-none font-medium",
119
+ className
120
+ ),
121
+ ...props
122
+ }
123
+ );
124
+ }
125
+ function DialogDescription({
126
+ className,
127
+ ...props
128
+ }) {
129
+ return /* @__PURE__ */ jsx(
130
+ Dialog$1.Description,
131
+ {
132
+ "data-slot": "dialog-description",
133
+ className: cn(
134
+ "text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",
135
+ className
136
+ ),
137
+ ...props
138
+ }
139
+ );
140
+ }
141
+
142
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
@@ -0,0 +1,22 @@
1
+ import { cn } from './chunk-U7N2A7A3.js';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ function AspectRatio({
5
+ ratio,
6
+ className,
7
+ ...props
8
+ }) {
9
+ return /* @__PURE__ */ jsx(
10
+ "div",
11
+ {
12
+ "data-slot": "aspect-ratio",
13
+ style: {
14
+ "--ratio": ratio
15
+ },
16
+ className: cn("relative aspect-(--ratio)", className),
17
+ ...props
18
+ }
19
+ );
20
+ }
21
+
22
+ export { AspectRatio };
@@ -0,0 +1,43 @@
1
+ import { cn } from './chunk-U7N2A7A3.js';
2
+ import * as ResizablePrimitive from 'react-resizable-panels';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ function ResizablePanelGroup({
6
+ className,
7
+ ...props
8
+ }) {
9
+ return /* @__PURE__ */ jsx(
10
+ ResizablePrimitive.Group,
11
+ {
12
+ "data-slot": "resizable-panel-group",
13
+ className: cn(
14
+ "flex h-full w-full aria-[orientation=vertical]:flex-col",
15
+ className
16
+ ),
17
+ ...props
18
+ }
19
+ );
20
+ }
21
+ function ResizablePanel({ ...props }) {
22
+ return /* @__PURE__ */ jsx(ResizablePrimitive.Panel, { "data-slot": "resizable-panel", ...props });
23
+ }
24
+ function ResizableHandle({
25
+ withHandle,
26
+ className,
27
+ ...props
28
+ }) {
29
+ return /* @__PURE__ */ jsx(
30
+ ResizablePrimitive.Separator,
31
+ {
32
+ "data-slot": "resizable-handle",
33
+ className: cn(
34
+ "relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90",
35
+ className
36
+ ),
37
+ ...props,
38
+ children: withHandle && /* @__PURE__ */ jsx("div", { className: "z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border" })
39
+ }
40
+ );
41
+ }
42
+
43
+ export { ResizableHandle, ResizablePanel, ResizablePanelGroup };
@@ -0,0 +1,75 @@
1
+ import { cn } from './chunk-U7N2A7A3.js';
2
+ import { Progress as Progress$1 } from '@base-ui/react/progress';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
+
5
+ function Progress({
6
+ className,
7
+ children,
8
+ value,
9
+ ...props
10
+ }) {
11
+ return /* @__PURE__ */ jsxs(
12
+ Progress$1.Root,
13
+ {
14
+ value,
15
+ "data-slot": "progress",
16
+ className: cn("flex flex-wrap gap-3", className),
17
+ ...props,
18
+ children: [
19
+ children,
20
+ /* @__PURE__ */ jsx(ProgressTrack, { children: /* @__PURE__ */ jsx(ProgressIndicator, {}) })
21
+ ]
22
+ }
23
+ );
24
+ }
25
+ function ProgressTrack({ className, ...props }) {
26
+ return /* @__PURE__ */ jsx(
27
+ Progress$1.Track,
28
+ {
29
+ className: cn(
30
+ "relative flex h-1 w-full items-center overflow-x-hidden rounded-full bg-muted",
31
+ className
32
+ ),
33
+ "data-slot": "progress-track",
34
+ ...props
35
+ }
36
+ );
37
+ }
38
+ function ProgressIndicator({
39
+ className,
40
+ ...props
41
+ }) {
42
+ return /* @__PURE__ */ jsx(
43
+ Progress$1.Indicator,
44
+ {
45
+ "data-slot": "progress-indicator",
46
+ className: cn("h-full bg-primary transition-all", className),
47
+ ...props
48
+ }
49
+ );
50
+ }
51
+ function ProgressLabel({ className, ...props }) {
52
+ return /* @__PURE__ */ jsx(
53
+ Progress$1.Label,
54
+ {
55
+ className: cn("text-sm font-medium", className),
56
+ "data-slot": "progress-label",
57
+ ...props
58
+ }
59
+ );
60
+ }
61
+ function ProgressValue({ className, ...props }) {
62
+ return /* @__PURE__ */ jsx(
63
+ Progress$1.Value,
64
+ {
65
+ className: cn(
66
+ "ml-auto text-sm text-muted-foreground tabular-nums",
67
+ className
68
+ ),
69
+ "data-slot": "progress-value",
70
+ ...props
71
+ }
72
+ );
73
+ }
74
+
75
+ export { Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue };
@@ -0,0 +1,126 @@
1
+ import { Button } from './chunk-N34HFTEJ.js';
2
+ import { cn } from './chunk-U7N2A7A3.js';
3
+ import { Dialog } from '@base-ui/react/dialog';
4
+ import { XIcon } from 'lucide-react';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ function Sheet({ ...props }) {
8
+ return /* @__PURE__ */ jsx(Dialog.Root, { "data-slot": "sheet", ...props });
9
+ }
10
+ function SheetTrigger({ ...props }) {
11
+ return /* @__PURE__ */ jsx(Dialog.Trigger, { "data-slot": "sheet-trigger", ...props });
12
+ }
13
+ function SheetClose({ ...props }) {
14
+ return /* @__PURE__ */ jsx(Dialog.Close, { "data-slot": "sheet-close", ...props });
15
+ }
16
+ function SheetPortal({ ...props }) {
17
+ return /* @__PURE__ */ jsx(Dialog.Portal, { "data-slot": "sheet-portal", ...props });
18
+ }
19
+ function SheetOverlay({ className, ...props }) {
20
+ return /* @__PURE__ */ jsx(
21
+ Dialog.Backdrop,
22
+ {
23
+ "data-slot": "sheet-overlay",
24
+ className: cn(
25
+ "fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs",
26
+ className
27
+ ),
28
+ ...props
29
+ }
30
+ );
31
+ }
32
+ function SheetContent({
33
+ className,
34
+ children,
35
+ side = "right",
36
+ showCloseButton = true,
37
+ ...props
38
+ }) {
39
+ return /* @__PURE__ */ jsxs(SheetPortal, { children: [
40
+ /* @__PURE__ */ jsx(SheetOverlay, {}),
41
+ /* @__PURE__ */ jsxs(
42
+ Dialog.Popup,
43
+ {
44
+ "data-slot": "sheet-content",
45
+ "data-side": side,
46
+ className: cn(
47
+ "fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",
48
+ className
49
+ ),
50
+ ...props,
51
+ children: [
52
+ children,
53
+ showCloseButton && /* @__PURE__ */ jsxs(
54
+ Dialog.Close,
55
+ {
56
+ "data-slot": "sheet-close",
57
+ render: /* @__PURE__ */ jsx(
58
+ Button,
59
+ {
60
+ variant: "ghost",
61
+ className: "absolute top-3 right-3",
62
+ size: "icon-sm"
63
+ }
64
+ ),
65
+ children: [
66
+ /* @__PURE__ */ jsx(
67
+ XIcon,
68
+ {}
69
+ ),
70
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
71
+ ]
72
+ }
73
+ )
74
+ ]
75
+ }
76
+ )
77
+ ] });
78
+ }
79
+ function SheetHeader({ className, ...props }) {
80
+ return /* @__PURE__ */ jsx(
81
+ "div",
82
+ {
83
+ "data-slot": "sheet-header",
84
+ className: cn("flex flex-col gap-0.5 p-4", className),
85
+ ...props
86
+ }
87
+ );
88
+ }
89
+ function SheetFooter({ className, ...props }) {
90
+ return /* @__PURE__ */ jsx(
91
+ "div",
92
+ {
93
+ "data-slot": "sheet-footer",
94
+ className: cn("mt-auto flex flex-col gap-2 p-4", className),
95
+ ...props
96
+ }
97
+ );
98
+ }
99
+ function SheetTitle({ className, ...props }) {
100
+ return /* @__PURE__ */ jsx(
101
+ Dialog.Title,
102
+ {
103
+ "data-slot": "sheet-title",
104
+ className: cn(
105
+ "text-base font-medium text-foreground",
106
+ className
107
+ ),
108
+ ...props
109
+ }
110
+ );
111
+ }
112
+ function SheetDescription({
113
+ className,
114
+ ...props
115
+ }) {
116
+ return /* @__PURE__ */ jsx(
117
+ Dialog.Description,
118
+ {
119
+ "data-slot": "sheet-description",
120
+ className: cn("text-sm text-muted-foreground", className),
121
+ ...props
122
+ }
123
+ );
124
+ }
125
+
126
+ export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger };
@@ -0,0 +1,58 @@
1
+ import { cn } from './chunk-U7N2A7A3.js';
2
+ import { ScrollArea as ScrollArea$1 } from '@base-ui/react/scroll-area';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
+
5
+ function ScrollArea({
6
+ className,
7
+ children,
8
+ ...props
9
+ }) {
10
+ return /* @__PURE__ */ jsxs(
11
+ ScrollArea$1.Root,
12
+ {
13
+ "data-slot": "scroll-area",
14
+ className: cn("relative", className),
15
+ ...props,
16
+ children: [
17
+ /* @__PURE__ */ jsx(
18
+ ScrollArea$1.Viewport,
19
+ {
20
+ "data-slot": "scroll-area-viewport",
21
+ className: "size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1",
22
+ children
23
+ }
24
+ ),
25
+ /* @__PURE__ */ jsx(ScrollBar, {}),
26
+ /* @__PURE__ */ jsx(ScrollArea$1.Corner, {})
27
+ ]
28
+ }
29
+ );
30
+ }
31
+ function ScrollBar({
32
+ className,
33
+ orientation = "vertical",
34
+ ...props
35
+ }) {
36
+ return /* @__PURE__ */ jsx(
37
+ ScrollArea$1.Scrollbar,
38
+ {
39
+ "data-slot": "scroll-area-scrollbar",
40
+ "data-orientation": orientation,
41
+ orientation,
42
+ className: cn(
43
+ "flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent",
44
+ className
45
+ ),
46
+ ...props,
47
+ children: /* @__PURE__ */ jsx(
48
+ ScrollArea$1.Thumb,
49
+ {
50
+ "data-slot": "scroll-area-thumb",
51
+ className: "relative flex-1 rounded-full bg-border"
52
+ }
53
+ )
54
+ }
55
+ );
56
+ }
57
+
58
+ export { ScrollArea, ScrollBar };
@@ -0,0 +1,79 @@
1
+ import { Separator } from './chunk-DFVSGTAN.js';
2
+ import { cn } from './chunk-U7N2A7A3.js';
3
+ import { mergeProps } from '@base-ui/react/merge-props';
4
+ import { useRender } from '@base-ui/react/use-render';
5
+ import { cva } from 'class-variance-authority';
6
+ import { jsx } from 'react/jsx-runtime';
7
+
8
+ var buttonGroupVariants = cva(
9
+ "flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",
10
+ {
11
+ variants: {
12
+ orientation: {
13
+ horizontal: "*:data-slot:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg! [&>[data-slot]~[data-slot]]:rounded-l-none [&>[data-slot]~[data-slot]]:border-l-0",
14
+ vertical: "flex-col *:data-slot:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg! [&>[data-slot]~[data-slot]]:rounded-t-none [&>[data-slot]~[data-slot]]:border-t-0"
15
+ }
16
+ },
17
+ defaultVariants: {
18
+ orientation: "horizontal"
19
+ }
20
+ }
21
+ );
22
+ function ButtonGroup({
23
+ className,
24
+ orientation,
25
+ ...props
26
+ }) {
27
+ return /* @__PURE__ */ jsx(
28
+ "div",
29
+ {
30
+ role: "group",
31
+ "data-slot": "button-group",
32
+ "data-orientation": orientation,
33
+ className: cn(buttonGroupVariants({ orientation }), className),
34
+ ...props
35
+ }
36
+ );
37
+ }
38
+ function ButtonGroupText({
39
+ className,
40
+ render,
41
+ ...props
42
+ }) {
43
+ return useRender({
44
+ defaultTagName: "div",
45
+ props: mergeProps(
46
+ {
47
+ className: cn(
48
+ "flex items-center gap-2 rounded-lg border bg-muted px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
49
+ className
50
+ )
51
+ },
52
+ props
53
+ ),
54
+ render,
55
+ state: {
56
+ slot: "button-group-text"
57
+ }
58
+ });
59
+ }
60
+ function ButtonGroupSeparator({
61
+ className,
62
+ orientation = "vertical",
63
+ ...props
64
+ }) {
65
+ return /* @__PURE__ */ jsx(
66
+ Separator,
67
+ {
68
+ "data-slot": "button-group-separator",
69
+ orientation,
70
+ className: cn(
71
+ "relative self-stretch bg-input data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto",
72
+ className
73
+ ),
74
+ ...props
75
+ }
76
+ );
77
+ }
78
+
79
+ export { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants };