rs-base-ui 0.3.1

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/index.cjs ADDED
@@ -0,0 +1,849 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/index.js
30
+ var index_exports = {};
31
+ __export(index_exports, {
32
+ Alert: () => Alert,
33
+ AlertDescription: () => AlertDescription,
34
+ AlertDialog: () => AlertDialog,
35
+ AlertDialogAction: () => AlertDialogAction,
36
+ AlertDialogCancel: () => AlertDialogCancel,
37
+ AlertDialogContent: () => AlertDialogContent,
38
+ AlertDialogDescription: () => AlertDialogDescription,
39
+ AlertDialogFooter: () => AlertDialogFooter,
40
+ AlertDialogHeader: () => AlertDialogHeader,
41
+ AlertDialogTitle: () => AlertDialogTitle,
42
+ AlertDialogTrigger: () => AlertDialogTrigger,
43
+ AlertTitle: () => AlertTitle,
44
+ Badge: () => Badge,
45
+ Breadcrumb: () => Breadcrumb,
46
+ BreadcrumbItem: () => BreadcrumbItem,
47
+ BreadcrumbLink: () => BreadcrumbLink,
48
+ BreadcrumbList: () => BreadcrumbList,
49
+ BreadcrumbPage: () => BreadcrumbPage,
50
+ BreadcrumbSeparator: () => BreadcrumbSeparator,
51
+ Button: () => Button,
52
+ Checkbox: () => Checkbox,
53
+ Dialog: () => Dialog,
54
+ DialogClose: () => DialogClose,
55
+ DialogContent: () => DialogContent,
56
+ DialogDescription: () => DialogDescription,
57
+ DialogFooter: () => DialogFooter,
58
+ DialogHeader: () => DialogHeader,
59
+ DialogOverlay: () => DialogOverlay,
60
+ DialogPortal: () => DialogPortal,
61
+ DialogTitle: () => DialogTitle,
62
+ DialogTrigger: () => DialogTrigger,
63
+ DropdownMenu: () => DropdownMenu,
64
+ DropdownMenuCheckboxItem: () => DropdownMenuCheckboxItem,
65
+ DropdownMenuContent: () => DropdownMenuContent,
66
+ DropdownMenuGroup: () => DropdownMenuGroup,
67
+ DropdownMenuItem: () => DropdownMenuItem,
68
+ DropdownMenuLabel: () => DropdownMenuLabel,
69
+ DropdownMenuPortal: () => DropdownMenuPortal,
70
+ DropdownMenuRadioGroup: () => DropdownMenuRadioGroup,
71
+ DropdownMenuRadioItem: () => DropdownMenuRadioItem,
72
+ DropdownMenuSeparator: () => DropdownMenuSeparator,
73
+ DropdownMenuSub: () => DropdownMenuSub,
74
+ DropdownMenuTrigger: () => DropdownMenuTrigger,
75
+ Input: () => Input,
76
+ Label: () => Label,
77
+ Pagination: () => Pagination,
78
+ PaginationContent: () => PaginationContent,
79
+ PaginationItem: () => PaginationItem,
80
+ PaginationNext: () => PaginationNext,
81
+ PaginationPrevious: () => PaginationPrevious,
82
+ Popover: () => Popover,
83
+ PopoverAnchor: () => PopoverAnchor,
84
+ PopoverContent: () => PopoverContent,
85
+ PopoverTrigger: () => PopoverTrigger,
86
+ Progress: () => Progress,
87
+ RadioGroup: () => RadioGroup,
88
+ RadioGroupItem: () => RadioGroupItem,
89
+ Select: () => Select,
90
+ SelectContent: () => SelectContent,
91
+ SelectGroup: () => SelectGroup,
92
+ SelectItem: () => SelectItem,
93
+ SelectLabel: () => SelectLabel,
94
+ SelectScrollDownButton: () => SelectScrollDownButton,
95
+ SelectScrollUpButton: () => SelectScrollUpButton,
96
+ SelectSeparator: () => SelectSeparator,
97
+ SelectTrigger: () => SelectTrigger,
98
+ SelectValue: () => SelectValue,
99
+ Table: () => Table,
100
+ TableBody: () => TableBody,
101
+ TableCell: () => TableCell,
102
+ TableHead: () => TableHead,
103
+ TableHeader: () => TableHeader,
104
+ TableRow: () => TableRow,
105
+ Tabs: () => Tabs,
106
+ TabsContent: () => TabsContent,
107
+ TabsList: () => TabsList,
108
+ TabsTrigger: () => TabsTrigger,
109
+ Textarea: () => Textarea,
110
+ Tooltip: () => Tooltip,
111
+ TooltipContent: () => TooltipContent,
112
+ TooltipProvider: () => TooltipProvider,
113
+ TooltipTrigger: () => TooltipTrigger,
114
+ alertVariants: () => alertVariants,
115
+ badgeVariants: () => badgeVariants,
116
+ buttonVariants: () => buttonVariants,
117
+ cn: () => cn
118
+ });
119
+ module.exports = __toCommonJS(index_exports);
120
+
121
+ // src/components/button.jsx
122
+ var React = __toESM(require("react"), 1);
123
+ var import_react_slot = require("@radix-ui/react-slot");
124
+ var import_class_variance_authority = require("class-variance-authority");
125
+
126
+ // src/lib/utils.js
127
+ var import_clsx = require("clsx");
128
+ var import_tailwind_merge = require("tailwind-merge");
129
+ function cn(...inputs) {
130
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
131
+ }
132
+
133
+ // src/components/button.jsx
134
+ var import_jsx_runtime = require("react/jsx-runtime");
135
+ var buttonVariants = (0, import_class_variance_authority.cva)(
136
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 outline-none focus-visible:ring-2 focus-visible:ring-ring",
137
+ {
138
+ variants: {
139
+ variant: {
140
+ default: "bg-primary text-primary-foreground shadow-sm hover:bg-primary/90",
141
+ destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
142
+ success: "bg-success text-success-foreground shadow-sm hover:bg-success/90",
143
+ outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
144
+ secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
145
+ ghost: "hover:bg-accent hover:text-accent-foreground",
146
+ link: "text-primary underline-offset-4 hover:underline"
147
+ },
148
+ size: {
149
+ default: "h-9 px-4 py-2",
150
+ sm: "h-8 rounded-md px-3 text-xs",
151
+ lg: "h-10 rounded-md px-8",
152
+ icon: "h-9 w-9"
153
+ }
154
+ },
155
+ defaultVariants: {
156
+ variant: "default",
157
+ size: "default"
158
+ }
159
+ }
160
+ );
161
+ var Button = React.forwardRef(({ className, variant, size, asChild = false, ...props }, ref) => {
162
+ const Comp = asChild ? import_react_slot.Slot : "button";
163
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Comp, { className: cn(buttonVariants({ variant, size, className })), ref, ...props });
164
+ });
165
+ Button.displayName = "Button";
166
+
167
+ // src/components/input.jsx
168
+ var React2 = __toESM(require("react"), 1);
169
+ var import_jsx_runtime2 = require("react/jsx-runtime");
170
+ var Input = React2.forwardRef(({ className, type, ...props }, ref) => {
171
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
172
+ "input",
173
+ {
174
+ type,
175
+ className: cn(
176
+ "flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
177
+ className
178
+ ),
179
+ ref,
180
+ ...props
181
+ }
182
+ );
183
+ });
184
+ Input.displayName = "Input";
185
+
186
+ // src/components/label.jsx
187
+ var React3 = __toESM(require("react"), 1);
188
+ var LabelPrimitive = __toESM(require("@radix-ui/react-label"), 1);
189
+ var import_jsx_runtime3 = require("react/jsx-runtime");
190
+ var Label = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
191
+ LabelPrimitive.Root,
192
+ {
193
+ ref,
194
+ "data-slot": "label",
195
+ className: cn(
196
+ "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
197
+ className
198
+ ),
199
+ ...props
200
+ }
201
+ ));
202
+ Label.displayName = LabelPrimitive.Root.displayName;
203
+
204
+ // src/components/textarea.jsx
205
+ var React4 = __toESM(require("react"), 1);
206
+ var import_jsx_runtime4 = require("react/jsx-runtime");
207
+ var Textarea = React4.forwardRef(({ className, ...props }, ref) => {
208
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
209
+ "textarea",
210
+ {
211
+ className: cn(
212
+ "flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
213
+ className
214
+ ),
215
+ ref,
216
+ ...props
217
+ }
218
+ );
219
+ });
220
+ Textarea.displayName = "Textarea";
221
+
222
+ // src/components/checkbox.jsx
223
+ var React5 = __toESM(require("react"), 1);
224
+ var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"), 1);
225
+ var import_lucide_react = require("lucide-react");
226
+ var import_jsx_runtime5 = require("react/jsx-runtime");
227
+ var Checkbox = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
228
+ CheckboxPrimitive.Root,
229
+ {
230
+ ref,
231
+ className: cn(
232
+ "peer h-4 w-4 shrink-0 rounded-sm border border-input shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
233
+ className
234
+ ),
235
+ ...props,
236
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(CheckboxPrimitive.Indicator, { className: cn("flex items-center justify-center text-current"), children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react.Check, { className: "h-3.5 w-3.5" }) })
237
+ }
238
+ ));
239
+ Checkbox.displayName = CheckboxPrimitive.Root.displayName;
240
+
241
+ // src/components/radio-group.jsx
242
+ var React6 = __toESM(require("react"), 1);
243
+ var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
244
+ var import_lucide_react2 = require("lucide-react");
245
+ var import_jsx_runtime6 = require("react/jsx-runtime");
246
+ var RadioGroup = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(RadioGroupPrimitive.Root, { ref, className: cn("grid gap-2", className), ...props }));
247
+ RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
248
+ var RadioGroupItem = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
249
+ RadioGroupPrimitive.Item,
250
+ {
251
+ ref,
252
+ className: cn(
253
+ "aspect-square h-4 w-4 rounded-full border border-input text-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
254
+ className
255
+ ),
256
+ ...props,
257
+ children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react2.Circle, { className: "h-2.5 w-2.5 fill-primary" }) })
258
+ }
259
+ ));
260
+ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
261
+
262
+ // src/components/select.jsx
263
+ var React7 = __toESM(require("react"), 1);
264
+ var import_lucide_react3 = require("lucide-react");
265
+ var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
266
+ var import_jsx_runtime7 = require("react/jsx-runtime");
267
+ function Select({ ...props }) {
268
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectPrimitive.Root, { "data-slot": "select", ...props });
269
+ }
270
+ function SelectGroup({ ...props }) {
271
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectPrimitive.Group, { "data-slot": "select-group", ...props });
272
+ }
273
+ function SelectValue({ ...props }) {
274
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
275
+ }
276
+ function SelectTrigger({ className, size = "default", children, ...props }) {
277
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
278
+ SelectPrimitive.Trigger,
279
+ {
280
+ "data-slot": "select-trigger",
281
+ "data-size": size,
282
+ className: cn(
283
+ "flex w-fit items-center justify-between gap-2 rounded-md 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-[3px] focus-visible:ring-ring/50 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]:line-clamp-1 *: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",
284
+ className
285
+ ),
286
+ ...props,
287
+ children: [
288
+ children,
289
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.ChevronDownIcon, { className: "size-4 opacity-50" }) })
290
+ ]
291
+ }
292
+ );
293
+ }
294
+ function SelectContent({ className, children, position = "item-aligned", align = "center", ...props }) {
295
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
296
+ SelectPrimitive.Content,
297
+ {
298
+ "data-slot": "select-content",
299
+ className: cn(
300
+ "relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
301
+ 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",
302
+ className
303
+ ),
304
+ position,
305
+ align,
306
+ ...props,
307
+ children: [
308
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectScrollUpButton, {}),
309
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
310
+ SelectPrimitive.Viewport,
311
+ {
312
+ className: cn(
313
+ "p-1",
314
+ position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
315
+ ),
316
+ children
317
+ }
318
+ ),
319
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectScrollDownButton, {})
320
+ ]
321
+ }
322
+ ) });
323
+ }
324
+ function SelectLabel({ className, ...props }) {
325
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectPrimitive.Label, { "data-slot": "select-label", className: cn("px-2 py-1.5 text-xs text-muted-foreground", className), ...props });
326
+ }
327
+ function SelectItem({ className, children, ...props }) {
328
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
329
+ SelectPrimitive.Item,
330
+ {
331
+ "data-slot": "select-item",
332
+ className: cn(
333
+ "relative flex w-full cursor-default items-center gap-2 rounded-sm 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 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
334
+ className
335
+ ),
336
+ ...props,
337
+ children: [
338
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { "data-slot": "select-item-indicator", className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.CheckIcon, { className: "size-4" }) }) }),
339
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectPrimitive.ItemText, { children })
340
+ ]
341
+ }
342
+ );
343
+ }
344
+ function SelectSeparator({ className, ...props }) {
345
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectPrimitive.Separator, { "data-slot": "select-separator", className: cn("pointer-events-none -mx-1 my-1 h-px bg-border", className), ...props });
346
+ }
347
+ function SelectScrollUpButton({ className, ...props }) {
348
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectPrimitive.ScrollUpButton, { "data-slot": "select-scroll-up-button", className: cn("flex cursor-default items-center justify-center py-1", className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.ChevronUpIcon, { className: "size-4" }) });
349
+ }
350
+ function SelectScrollDownButton({ className, ...props }) {
351
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectPrimitive.ScrollDownButton, { "data-slot": "select-scroll-down-button", className: cn("flex cursor-default items-center justify-center py-1", className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react3.ChevronDownIcon, { className: "size-4" }) });
352
+ }
353
+
354
+ // src/components/dialog.jsx
355
+ var React8 = __toESM(require("react"), 1);
356
+ var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
357
+ var import_lucide_react4 = require("lucide-react");
358
+ var import_jsx_runtime8 = require("react/jsx-runtime");
359
+ var Dialog = DialogPrimitive.Root;
360
+ var DialogTrigger = DialogPrimitive.Trigger;
361
+ var DialogPortal = DialogPrimitive.Portal;
362
+ var DialogClose = DialogPrimitive.Close;
363
+ var DialogOverlay = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
364
+ DialogPrimitive.Overlay,
365
+ {
366
+ ref,
367
+ className: cn(
368
+ "fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
369
+ className
370
+ ),
371
+ ...props
372
+ }
373
+ ));
374
+ DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
375
+ var DialogContent = React8.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(DialogPortal, { children: [
376
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(DialogOverlay, {}),
377
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
378
+ DialogPrimitive.Content,
379
+ {
380
+ ref,
381
+ className: cn(
382
+ "fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-6 shadow-lg duration-200 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 sm:rounded-lg max-h-[85vh] overflow-y-auto",
383
+ className
384
+ ),
385
+ ...props,
386
+ children: [
387
+ children,
388
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none", children: [
389
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_lucide_react4.X, { className: "h-4 w-4" }),
390
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "sr-only", children: "Close" })
391
+ ] })
392
+ ]
393
+ }
394
+ )
395
+ ] }));
396
+ DialogContent.displayName = DialogPrimitive.Content.displayName;
397
+ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
398
+ DialogHeader.displayName = "DialogHeader";
399
+ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
400
+ DialogFooter.displayName = "DialogFooter";
401
+ var DialogTitle = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(DialogPrimitive.Title, { ref, className: cn("text-lg font-semibold leading-none tracking-tight", className), ...props }));
402
+ DialogTitle.displayName = DialogPrimitive.Title.displayName;
403
+ var DialogDescription = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(DialogPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
404
+ DialogDescription.displayName = DialogPrimitive.Description.displayName;
405
+
406
+ // src/components/alert-dialog.jsx
407
+ var React9 = __toESM(require("react"), 1);
408
+ var AlertDialogPrimitive = __toESM(require("@radix-ui/react-alert-dialog"), 1);
409
+ var import_jsx_runtime9 = require("react/jsx-runtime");
410
+ var AlertDialog = AlertDialogPrimitive.Root;
411
+ var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
412
+ var AlertDialogPortal = AlertDialogPrimitive.Portal;
413
+ var AlertDialogOverlay = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
414
+ AlertDialogPrimitive.Overlay,
415
+ {
416
+ className: cn("fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", className),
417
+ ...props,
418
+ ref
419
+ }
420
+ ));
421
+ AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
422
+ var AlertDialogContent = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(AlertDialogPortal, { children: [
423
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(AlertDialogOverlay, {}),
424
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
425
+ AlertDialogPrimitive.Content,
426
+ {
427
+ ref,
428
+ className: cn(
429
+ "fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-6 shadow-lg duration-200 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 sm:rounded-lg",
430
+ className
431
+ ),
432
+ ...props
433
+ }
434
+ )
435
+ ] }));
436
+ AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
437
+ var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
438
+ AlertDialogHeader.displayName = "AlertDialogHeader";
439
+ var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
440
+ AlertDialogFooter.displayName = "AlertDialogFooter";
441
+ var AlertDialogTitle = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(AlertDialogPrimitive.Title, { ref, className: cn("text-lg font-semibold", className), ...props }));
442
+ AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
443
+ var AlertDialogDescription = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(AlertDialogPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
444
+ AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
445
+ var AlertDialogAction = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(AlertDialogPrimitive.Action, { ref, className: cn(buttonVariants(), className), ...props }));
446
+ AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
447
+ var AlertDialogCancel = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(AlertDialogPrimitive.Cancel, { ref, className: cn(buttonVariants({ variant: "outline" }), "mt-2 sm:mt-0", className), ...props }));
448
+ AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
449
+
450
+ // src/components/dropdown-menu.jsx
451
+ var React10 = __toESM(require("react"), 1);
452
+ var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"), 1);
453
+ var import_lucide_react5 = require("lucide-react");
454
+ var import_jsx_runtime10 = require("react/jsx-runtime");
455
+ var DropdownMenu = DropdownMenuPrimitive.Root;
456
+ var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
457
+ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
458
+ var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
459
+ var DropdownMenuSub = DropdownMenuPrimitive.Sub;
460
+ var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
461
+ var DropdownMenuContent = React10.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
462
+ DropdownMenuPrimitive.Content,
463
+ {
464
+ ref,
465
+ sideOffset,
466
+ className: cn(
467
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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",
468
+ className
469
+ ),
470
+ ...props
471
+ }
472
+ ) }));
473
+ DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
474
+ var DropdownMenuItem = React10.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
475
+ DropdownMenuPrimitive.Item,
476
+ {
477
+ ref,
478
+ className: cn(
479
+ "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
480
+ inset && "pl-8",
481
+ className
482
+ ),
483
+ ...props
484
+ }
485
+ ));
486
+ DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
487
+ var DropdownMenuCheckboxItem = React10.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
488
+ DropdownMenuPrimitive.CheckboxItem,
489
+ {
490
+ ref,
491
+ className: cn(
492
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
493
+ className
494
+ ),
495
+ checked,
496
+ ...props,
497
+ children: [
498
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lucide_react5.Check, { className: "h-4 w-4" }) }) }),
499
+ children
500
+ ]
501
+ }
502
+ ));
503
+ DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
504
+ var DropdownMenuRadioItem = React10.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
505
+ DropdownMenuPrimitive.RadioItem,
506
+ {
507
+ ref,
508
+ className: cn(
509
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
510
+ className
511
+ ),
512
+ ...props,
513
+ children: [
514
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lucide_react5.Circle, { className: "h-2 w-2 fill-current" }) }) }),
515
+ children
516
+ ]
517
+ }
518
+ ));
519
+ DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
520
+ var DropdownMenuLabel = React10.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
521
+ DropdownMenuPrimitive.Label,
522
+ {
523
+ ref,
524
+ className: cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className),
525
+ ...props
526
+ }
527
+ ));
528
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
529
+ var DropdownMenuSeparator = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(DropdownMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
530
+ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
531
+
532
+ // src/components/table.jsx
533
+ var React11 = __toESM(require("react"), 1);
534
+ var import_jsx_runtime11 = require("react/jsx-runtime");
535
+ var Table = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("table", { ref, className: cn("w-full caption-bottom text-sm", className), ...props }) }));
536
+ Table.displayName = "Table";
537
+ var TableHeader = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
538
+ TableHeader.displayName = "TableHeader";
539
+ var TableBody = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props }));
540
+ TableBody.displayName = "TableBody";
541
+ var TableRow = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
542
+ "tr",
543
+ {
544
+ ref,
545
+ className: cn("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", className),
546
+ ...props
547
+ }
548
+ ));
549
+ TableRow.displayName = "TableRow";
550
+ var TableHead = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
551
+ "th",
552
+ {
553
+ ref,
554
+ className: cn(
555
+ "h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",
556
+ className
557
+ ),
558
+ ...props
559
+ }
560
+ ));
561
+ TableHead.displayName = "TableHead";
562
+ var TableCell = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("td", { ref, className: cn("p-2 align-middle [&:has([role=checkbox])]:pr-0", className), ...props }));
563
+ TableCell.displayName = "TableCell";
564
+
565
+ // src/components/badge.jsx
566
+ var React12 = __toESM(require("react"), 1);
567
+ var import_class_variance_authority2 = require("class-variance-authority");
568
+ var import_react_slot2 = require("@radix-ui/react-slot");
569
+ var import_jsx_runtime12 = require("react/jsx-runtime");
570
+ var badgeVariants = (0, import_class_variance_authority2.cva)(
571
+ "inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [&>svg]:pointer-events-none [&>svg]:size-3",
572
+ {
573
+ variants: {
574
+ variant: {
575
+ default: "bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
576
+ secondary: "bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
577
+ destructive: "bg-destructive text-destructive-foreground [a&]:hover:bg-destructive/90",
578
+ success: "bg-success text-success-foreground [a&]:hover:bg-success/90",
579
+ warning: "bg-warning text-warning-foreground [a&]:hover:bg-warning/90",
580
+ info: "bg-info text-info-foreground [a&]:hover:bg-info/90",
581
+ outline: "border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
582
+ }
583
+ },
584
+ defaultVariants: {
585
+ variant: "default"
586
+ }
587
+ }
588
+ );
589
+ function Badge({ className, variant = "default", asChild = false, ...props }) {
590
+ const Comp = asChild ? import_react_slot2.Slot : "span";
591
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Comp, { "data-slot": "badge", className: cn(badgeVariants({ variant }), className), ...props });
592
+ }
593
+
594
+ // src/components/alert.jsx
595
+ var React13 = __toESM(require("react"), 1);
596
+ var import_class_variance_authority3 = require("class-variance-authority");
597
+ var import_jsx_runtime13 = require("react/jsx-runtime");
598
+ var alertVariants = (0, import_class_variance_authority3.cva)(
599
+ "relative w-full rounded-lg border px-4 py-3 text-sm grid grid-cols-[0_1fr] has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
600
+ {
601
+ variants: {
602
+ variant: {
603
+ default: "bg-card text-card-foreground border-border",
604
+ success: "bg-success/10 text-success border-success/30 [&>svg]:text-success",
605
+ warning: "bg-warning/10 text-warning border-warning/30 [&>svg]:text-warning",
606
+ info: "bg-info/10 text-info border-info/30 [&>svg]:text-info",
607
+ destructive: "bg-destructive/10 text-destructive border-destructive/30 [&>svg]:text-destructive"
608
+ }
609
+ },
610
+ defaultVariants: {
611
+ variant: "default"
612
+ }
613
+ }
614
+ );
615
+ var Alert = React13.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { ref, role: "alert", className: cn(alertVariants({ variant }), className), ...props }));
616
+ Alert.displayName = "Alert";
617
+ var AlertTitle = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("h5", { ref, className: cn("col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight", className), ...props }));
618
+ AlertTitle.displayName = "AlertTitle";
619
+ var AlertDescription = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { ref, className: cn("col-start-2 grid justify-items-start gap-1 text-sm text-muted-foreground [&_p]:leading-relaxed", className), ...props }));
620
+ AlertDescription.displayName = "AlertDescription";
621
+
622
+ // src/components/breadcrumb.jsx
623
+ var React14 = __toESM(require("react"), 1);
624
+ var import_react_slot3 = require("@radix-ui/react-slot");
625
+ var import_lucide_react6 = require("lucide-react");
626
+ var import_jsx_runtime14 = require("react/jsx-runtime");
627
+ var Breadcrumb = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("nav", { ref, "aria-label": "breadcrumb", className: cn("text-sm", className), ...props }));
628
+ Breadcrumb.displayName = "Breadcrumb";
629
+ var BreadcrumbList = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("ol", { ref, className: cn("flex flex-wrap items-center gap-1.5 break-words text-muted-foreground", className), ...props }));
630
+ BreadcrumbList.displayName = "BreadcrumbList";
631
+ var BreadcrumbItem = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("li", { ref, className: cn("inline-flex items-center gap-1.5", className), ...props }));
632
+ BreadcrumbItem.displayName = "BreadcrumbItem";
633
+ var BreadcrumbLink = React14.forwardRef(({ className, asChild, ...props }, ref) => {
634
+ const Comp = asChild ? import_react_slot3.Slot : "a";
635
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Comp, { ref, className: cn("transition-colors hover:text-foreground", className), ...props });
636
+ });
637
+ BreadcrumbLink.displayName = "BreadcrumbLink";
638
+ var BreadcrumbPage = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { ref, role: "link", "aria-disabled": "true", "aria-current": "page", className: cn("font-medium text-foreground", className), ...props }));
639
+ BreadcrumbPage.displayName = "BreadcrumbPage";
640
+ var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("li", { role: "presentation", "aria-hidden": "true", className: cn("[&>svg]:size-3.5", className), ...props, children: children ?? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react6.ChevronRight, {}) });
641
+ BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
642
+
643
+ // src/components/pagination.jsx
644
+ var React15 = __toESM(require("react"), 1);
645
+ var import_lucide_react7 = require("lucide-react");
646
+ var import_jsx_runtime15 = require("react/jsx-runtime");
647
+ var Pagination = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("nav", { ref, "aria-label": "pagination", className: cn("flex items-center gap-2", className), ...props }));
648
+ Pagination.displayName = "Pagination";
649
+ var PaginationContent = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("ul", { ref, className: cn("flex flex-row items-center gap-1", className), ...props }));
650
+ PaginationContent.displayName = "PaginationContent";
651
+ var PaginationItem = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("li", { ref, className: cn(className), ...props }));
652
+ PaginationItem.displayName = "PaginationItem";
653
+ var PaginationPrevious = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Button, { variant: "outline", size: "icon", "aria-label": "Go to previous page", className: cn(className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react7.ChevronLeft, { className: "h-4 w-4" }) });
654
+ PaginationPrevious.displayName = "PaginationPrevious";
655
+ var PaginationNext = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Button, { variant: "outline", size: "icon", "aria-label": "Go to next page", className: cn(className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react7.ChevronRight, { className: "h-4 w-4" }) });
656
+ PaginationNext.displayName = "PaginationNext";
657
+
658
+ // src/components/tooltip.jsx
659
+ var React16 = __toESM(require("react"), 1);
660
+ var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"), 1);
661
+ var import_jsx_runtime16 = require("react/jsx-runtime");
662
+ var TooltipProvider = TooltipPrimitive.Provider;
663
+ var Tooltip = TooltipPrimitive.Root;
664
+ var TooltipTrigger = TooltipPrimitive.Trigger;
665
+ var TooltipContent = React16.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(TooltipPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
666
+ TooltipPrimitive.Content,
667
+ {
668
+ ref,
669
+ sideOffset,
670
+ className: cn(
671
+ "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-xs text-popover-foreground shadow-md data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
672
+ className
673
+ ),
674
+ ...props
675
+ }
676
+ ) }));
677
+ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
678
+
679
+ // src/components/progress.jsx
680
+ var React17 = __toESM(require("react"), 1);
681
+ var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"), 1);
682
+ var import_jsx_runtime17 = require("react/jsx-runtime");
683
+ var Progress = React17.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
684
+ ProgressPrimitive.Root,
685
+ {
686
+ ref,
687
+ className: cn("relative h-2 w-full overflow-hidden rounded-full bg-secondary", className),
688
+ ...props,
689
+ children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
690
+ ProgressPrimitive.Indicator,
691
+ {
692
+ className: "h-full w-full flex-1 bg-primary transition-transform",
693
+ style: { transform: `translateX(-${100 - (value || 0)}%)` }
694
+ }
695
+ )
696
+ }
697
+ ));
698
+ Progress.displayName = ProgressPrimitive.Root.displayName;
699
+
700
+ // src/components/tabs.jsx
701
+ var React18 = __toESM(require("react"), 1);
702
+ var TabsPrimitive = __toESM(require("@radix-ui/react-tabs"), 1);
703
+ var import_jsx_runtime18 = require("react/jsx-runtime");
704
+ var Tabs = TabsPrimitive.Root;
705
+ var TabsList = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
706
+ TabsPrimitive.List,
707
+ {
708
+ ref,
709
+ className: cn(
710
+ "inline-flex h-9 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",
711
+ className
712
+ ),
713
+ ...props
714
+ }
715
+ ));
716
+ TabsList.displayName = TabsPrimitive.List.displayName;
717
+ var TabsTrigger = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
718
+ TabsPrimitive.Trigger,
719
+ {
720
+ ref,
721
+ className: cn(
722
+ "inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",
723
+ className
724
+ ),
725
+ ...props
726
+ }
727
+ ));
728
+ TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
729
+ var TabsContent = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
730
+ TabsPrimitive.Content,
731
+ {
732
+ ref,
733
+ className: cn("mt-2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", className),
734
+ ...props
735
+ }
736
+ ));
737
+ TabsContent.displayName = TabsPrimitive.Content.displayName;
738
+
739
+ // src/components/popover.jsx
740
+ var React19 = __toESM(require("react"), 1);
741
+ var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"), 1);
742
+ var import_jsx_runtime19 = require("react/jsx-runtime");
743
+ var Popover = PopoverPrimitive.Root;
744
+ var PopoverTrigger = PopoverPrimitive.Trigger;
745
+ var PopoverAnchor = PopoverPrimitive.Anchor;
746
+ var PopoverContent = React19.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
747
+ PopoverPrimitive.Content,
748
+ {
749
+ ref,
750
+ align,
751
+ sideOffset,
752
+ className: cn(
753
+ "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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",
754
+ className
755
+ ),
756
+ ...props
757
+ }
758
+ ) }));
759
+ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
760
+ // Annotate the CommonJS export names for ESM import in node:
761
+ 0 && (module.exports = {
762
+ Alert,
763
+ AlertDescription,
764
+ AlertDialog,
765
+ AlertDialogAction,
766
+ AlertDialogCancel,
767
+ AlertDialogContent,
768
+ AlertDialogDescription,
769
+ AlertDialogFooter,
770
+ AlertDialogHeader,
771
+ AlertDialogTitle,
772
+ AlertDialogTrigger,
773
+ AlertTitle,
774
+ Badge,
775
+ Breadcrumb,
776
+ BreadcrumbItem,
777
+ BreadcrumbLink,
778
+ BreadcrumbList,
779
+ BreadcrumbPage,
780
+ BreadcrumbSeparator,
781
+ Button,
782
+ Checkbox,
783
+ Dialog,
784
+ DialogClose,
785
+ DialogContent,
786
+ DialogDescription,
787
+ DialogFooter,
788
+ DialogHeader,
789
+ DialogOverlay,
790
+ DialogPortal,
791
+ DialogTitle,
792
+ DialogTrigger,
793
+ DropdownMenu,
794
+ DropdownMenuCheckboxItem,
795
+ DropdownMenuContent,
796
+ DropdownMenuGroup,
797
+ DropdownMenuItem,
798
+ DropdownMenuLabel,
799
+ DropdownMenuPortal,
800
+ DropdownMenuRadioGroup,
801
+ DropdownMenuRadioItem,
802
+ DropdownMenuSeparator,
803
+ DropdownMenuSub,
804
+ DropdownMenuTrigger,
805
+ Input,
806
+ Label,
807
+ Pagination,
808
+ PaginationContent,
809
+ PaginationItem,
810
+ PaginationNext,
811
+ PaginationPrevious,
812
+ Popover,
813
+ PopoverAnchor,
814
+ PopoverContent,
815
+ PopoverTrigger,
816
+ Progress,
817
+ RadioGroup,
818
+ RadioGroupItem,
819
+ Select,
820
+ SelectContent,
821
+ SelectGroup,
822
+ SelectItem,
823
+ SelectLabel,
824
+ SelectScrollDownButton,
825
+ SelectScrollUpButton,
826
+ SelectSeparator,
827
+ SelectTrigger,
828
+ SelectValue,
829
+ Table,
830
+ TableBody,
831
+ TableCell,
832
+ TableHead,
833
+ TableHeader,
834
+ TableRow,
835
+ Tabs,
836
+ TabsContent,
837
+ TabsList,
838
+ TabsTrigger,
839
+ Textarea,
840
+ Tooltip,
841
+ TooltipContent,
842
+ TooltipProvider,
843
+ TooltipTrigger,
844
+ alertVariants,
845
+ badgeVariants,
846
+ buttonVariants,
847
+ cn
848
+ });
849
+ //# sourceMappingURL=index.cjs.map