@nextlyhq/ui 0.0.2-alpha.4 → 0.0.2-alpha.40
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/README.md +98 -23
- package/dist/index.cjs +1070 -1084
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +72 -250
- package/dist/index.d.ts +72 -250
- package/dist/index.mjs +830 -826
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +2 -0
- package/dist/styles.scoped.css +2 -0
- package/dist/tailwind-preset.cjs +98 -0
- package/dist/tailwind-preset.cjs.map +1 -0
- package/dist/tailwind-preset.d.cts +80 -0
- package/dist/tailwind-preset.d.ts +80 -0
- package/dist/tailwind-preset.mjs +93 -0
- package/dist/tailwind-preset.mjs.map +1 -0
- package/dist/theme.css +893 -0
- package/dist/utils.cjs +13 -0
- package/dist/utils.cjs.map +1 -0
- package/dist/utils.d.cts +17 -0
- package/dist/utils.d.ts +17 -0
- package/dist/utils.mjs +11 -0
- package/dist/utils.mjs.map +1 -0
- package/docs/plugin-ui-authoring.md +178 -0
- package/package.json +56 -15
package/dist/index.cjs
CHANGED
|
@@ -1,85 +1,223 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
var reactTabs = require('@radix-ui/react-tabs');
|
|
19
|
-
var reactTooltip = require('@radix-ui/react-tooltip');
|
|
20
|
-
var PopoverPrimitive = require('@radix-ui/react-popover');
|
|
21
|
-
var DialogPrimitive = require('@radix-ui/react-dialog');
|
|
22
|
-
var AlertDialogPrimitive = require('@radix-ui/react-alert-dialog');
|
|
23
|
-
var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
|
|
24
|
-
var SelectPrimitive = require('@radix-ui/react-select');
|
|
25
|
-
var cmdk = require('cmdk');
|
|
26
|
-
var sonner = require('sonner');
|
|
27
|
-
|
|
28
|
-
function _interopNamespace(e) {
|
|
29
|
-
if (e && e.__esModule) return e;
|
|
30
|
-
var n = Object.create(null);
|
|
31
|
-
if (e) {
|
|
32
|
-
Object.keys(e).forEach(function (k) {
|
|
33
|
-
if (k !== 'default') {
|
|
34
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
35
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
36
|
-
enumerable: true,
|
|
37
|
-
get: function () { return e[k]; }
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
});
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
41
18
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
45
30
|
|
|
46
|
-
|
|
47
|
-
var
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
31
|
+
// src/index.ts
|
|
32
|
+
var index_exports = {};
|
|
33
|
+
__export(index_exports, {
|
|
34
|
+
Accordion: () => Accordion,
|
|
35
|
+
AccordionContent: () => AccordionContent,
|
|
36
|
+
AccordionItem: () => AccordionItem,
|
|
37
|
+
AccordionTrigger: () => AccordionTrigger,
|
|
38
|
+
Alert: () => Alert,
|
|
39
|
+
AlertDescription: () => AlertDescription,
|
|
40
|
+
AlertDialog: () => AlertDialog,
|
|
41
|
+
AlertDialogAction: () => AlertDialogAction,
|
|
42
|
+
AlertDialogCancel: () => AlertDialogCancel,
|
|
43
|
+
AlertDialogContent: () => AlertDialogContent,
|
|
44
|
+
AlertDialogDescription: () => AlertDialogDescription,
|
|
45
|
+
AlertDialogFooter: () => AlertDialogFooter,
|
|
46
|
+
AlertDialogHeader: () => AlertDialogHeader,
|
|
47
|
+
AlertDialogOverlay: () => AlertDialogOverlay,
|
|
48
|
+
AlertDialogPortal: () => AlertDialogPortal,
|
|
49
|
+
AlertDialogTitle: () => AlertDialogTitle,
|
|
50
|
+
AlertDialogTrigger: () => AlertDialogTrigger,
|
|
51
|
+
AlertTitle: () => AlertTitle,
|
|
52
|
+
Avatar: () => Avatar,
|
|
53
|
+
AvatarFallback: () => AvatarFallback,
|
|
54
|
+
AvatarImage: () => AvatarImage,
|
|
55
|
+
Badge: () => Badge,
|
|
56
|
+
Button: () => Button,
|
|
57
|
+
Card: () => Card,
|
|
58
|
+
CardAction: () => CardAction,
|
|
59
|
+
CardContent: () => CardContent,
|
|
60
|
+
CardDescription: () => CardDescription,
|
|
61
|
+
CardFooter: () => CardFooter,
|
|
62
|
+
CardHeader: () => CardHeader,
|
|
63
|
+
CardTitle: () => CardTitle,
|
|
64
|
+
Checkbox: () => Checkbox,
|
|
65
|
+
Collapsible: () => Collapsible,
|
|
66
|
+
CollapsibleContent: () => CollapsibleContent2,
|
|
67
|
+
CollapsibleTrigger: () => CollapsibleTrigger2,
|
|
68
|
+
Command: () => Command,
|
|
69
|
+
CommandDialog: () => CommandDialog,
|
|
70
|
+
CommandEmpty: () => CommandEmpty,
|
|
71
|
+
CommandGroup: () => CommandGroup,
|
|
72
|
+
CommandInput: () => CommandInput,
|
|
73
|
+
CommandItem: () => CommandItem,
|
|
74
|
+
CommandList: () => CommandList,
|
|
75
|
+
CommandSeparator: () => CommandSeparator,
|
|
76
|
+
CommandShortcut: () => CommandShortcut,
|
|
77
|
+
Dialog: () => Dialog,
|
|
78
|
+
DialogClose: () => DialogClose,
|
|
79
|
+
DialogContent: () => DialogContent,
|
|
80
|
+
DialogDescription: () => DialogDescription,
|
|
81
|
+
DialogFooter: () => DialogFooter,
|
|
82
|
+
DialogHeader: () => DialogHeader,
|
|
83
|
+
DialogOverlay: () => DialogOverlay,
|
|
84
|
+
DialogPortal: () => DialogPortal,
|
|
85
|
+
DialogTitle: () => DialogTitle,
|
|
86
|
+
DialogTrigger: () => DialogTrigger,
|
|
87
|
+
DropdownMenu: () => DropdownMenu,
|
|
88
|
+
DropdownMenuCheckboxItem: () => DropdownMenuCheckboxItem,
|
|
89
|
+
DropdownMenuContent: () => DropdownMenuContent,
|
|
90
|
+
DropdownMenuGroup: () => DropdownMenuGroup,
|
|
91
|
+
DropdownMenuItem: () => DropdownMenuItem,
|
|
92
|
+
DropdownMenuLabel: () => DropdownMenuLabel,
|
|
93
|
+
DropdownMenuPortal: () => DropdownMenuPortal,
|
|
94
|
+
DropdownMenuRadioGroup: () => DropdownMenuRadioGroup,
|
|
95
|
+
DropdownMenuRadioItem: () => DropdownMenuRadioItem,
|
|
96
|
+
DropdownMenuSeparator: () => DropdownMenuSeparator,
|
|
97
|
+
DropdownMenuShortcut: () => DropdownMenuShortcut,
|
|
98
|
+
DropdownMenuSub: () => DropdownMenuSub,
|
|
99
|
+
DropdownMenuSubContent: () => DropdownMenuSubContent,
|
|
100
|
+
DropdownMenuSubTrigger: () => DropdownMenuSubTrigger,
|
|
101
|
+
DropdownMenuTrigger: () => DropdownMenuTrigger,
|
|
102
|
+
FormLabelWithTooltip: () => FormLabelWithTooltip,
|
|
103
|
+
Grid: () => Grid,
|
|
104
|
+
Input: () => Input,
|
|
105
|
+
Label: () => Label,
|
|
106
|
+
Popover: () => Popover,
|
|
107
|
+
PopoverAnchor: () => PopoverAnchor,
|
|
108
|
+
PopoverContent: () => PopoverContent,
|
|
109
|
+
PopoverTrigger: () => PopoverTrigger,
|
|
110
|
+
PortalProvider: () => PortalProvider,
|
|
111
|
+
Progress: () => Progress,
|
|
112
|
+
RadioGroup: () => RadioGroup,
|
|
113
|
+
RadioGroupItem: () => RadioGroupItem,
|
|
114
|
+
Select: () => Select,
|
|
115
|
+
SelectContent: () => SelectContent,
|
|
116
|
+
SelectGroup: () => SelectGroup,
|
|
117
|
+
SelectItem: () => SelectItem,
|
|
118
|
+
SelectLabel: () => SelectLabel,
|
|
119
|
+
SelectScrollDownButton: () => SelectScrollDownButton,
|
|
120
|
+
SelectScrollUpButton: () => SelectScrollUpButton,
|
|
121
|
+
SelectSeparator: () => SelectSeparator,
|
|
122
|
+
SelectTrigger: () => SelectTrigger,
|
|
123
|
+
SelectValue: () => SelectValue,
|
|
124
|
+
Separator: () => Separator,
|
|
125
|
+
Sheet: () => Sheet,
|
|
126
|
+
SheetClose: () => SheetClose,
|
|
127
|
+
SheetContent: () => SheetContent,
|
|
128
|
+
SheetDescription: () => SheetDescription,
|
|
129
|
+
SheetFooter: () => SheetFooter,
|
|
130
|
+
SheetHeader: () => SheetHeader,
|
|
131
|
+
SheetOverlay: () => SheetOverlay,
|
|
132
|
+
SheetPortal: () => SheetPortal,
|
|
133
|
+
SheetTitle: () => SheetTitle,
|
|
134
|
+
SheetTrigger: () => SheetTrigger,
|
|
135
|
+
Skeleton: () => Skeleton,
|
|
136
|
+
Spinner: () => Spinner,
|
|
137
|
+
Stack: () => Stack,
|
|
138
|
+
Stat: () => Stat,
|
|
139
|
+
Switch: () => Switch,
|
|
140
|
+
Table: () => Table,
|
|
141
|
+
TableBody: () => TableBody,
|
|
142
|
+
TableCaption: () => TableCaption,
|
|
143
|
+
TableCell: () => TableCell,
|
|
144
|
+
TableEmpty: () => TableEmpty,
|
|
145
|
+
TableError: () => TableError,
|
|
146
|
+
TableFooter: () => TableFooter,
|
|
147
|
+
TableHead: () => TableHead,
|
|
148
|
+
TableHeader: () => TableHeader,
|
|
149
|
+
TableLoading: () => TableLoading,
|
|
150
|
+
TableRow: () => TableRow,
|
|
151
|
+
TableSearch: () => TableSearch,
|
|
152
|
+
TableSkeleton: () => TableSkeleton,
|
|
153
|
+
Tabs: () => Tabs,
|
|
154
|
+
TabsContent: () => TabsContent,
|
|
155
|
+
TabsList: () => TabsList,
|
|
156
|
+
TabsTrigger: () => TabsTrigger,
|
|
157
|
+
Textarea: () => Textarea,
|
|
158
|
+
Toaster: () => Toaster,
|
|
159
|
+
Tooltip: () => Tooltip,
|
|
160
|
+
TooltipContent: () => TooltipContent,
|
|
161
|
+
TooltipProvider: () => TooltipProvider,
|
|
162
|
+
TooltipTrigger: () => TooltipTrigger,
|
|
163
|
+
alertVariants: () => alertVariants,
|
|
164
|
+
avatarVariants: () => avatarVariants,
|
|
165
|
+
badgeVariants: () => badgeVariants,
|
|
166
|
+
buttonVariants: () => buttonVariants,
|
|
167
|
+
cardVariants: () => cardVariants,
|
|
168
|
+
dialogContentVariants: () => dialogContentVariants,
|
|
169
|
+
inputVariants: () => inputVariants,
|
|
170
|
+
progressVariants: () => progressVariants,
|
|
171
|
+
selectTriggerVariants: () => selectTriggerVariants,
|
|
172
|
+
sheetVariants: () => sheetVariants,
|
|
173
|
+
spinnerVariants: () => spinnerVariants,
|
|
174
|
+
toast: () => import_sonner.toast,
|
|
175
|
+
usePortalContainer: () => usePortalContainer
|
|
176
|
+
});
|
|
177
|
+
module.exports = __toCommonJS(index_exports);
|
|
57
178
|
|
|
58
179
|
// src/components/button.tsx
|
|
180
|
+
var import_react_slot = require("@radix-ui/react-slot");
|
|
181
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
182
|
+
var React = __toESM(require("react"), 1);
|
|
183
|
+
var import_react = require("react");
|
|
184
|
+
|
|
185
|
+
// src/lib/utils.ts
|
|
186
|
+
var import_clsx = require("clsx");
|
|
187
|
+
var import_tailwind_merge = require("tailwind-merge");
|
|
59
188
|
function cn(...inputs) {
|
|
60
|
-
return
|
|
189
|
+
return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
|
|
61
190
|
}
|
|
62
|
-
|
|
191
|
+
|
|
192
|
+
// src/components/button.tsx
|
|
193
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
194
|
+
var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
63
195
|
"inline-flex items-center justify-center whitespace-nowrap rounded-none text-sm font-medium cursor-pointer transition-all duration-150 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-0 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed active:scale-[0.98] [&_svg]:text-current",
|
|
64
196
|
{
|
|
65
197
|
variants: {
|
|
66
198
|
variant: {
|
|
67
199
|
default: "bg-primary text-primary-foreground border border-transparent hover:opacity-90",
|
|
68
200
|
primary: "bg-primary text-primary-foreground border border-transparent hover:opacity-90",
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
201
|
+
// Solid fill uses the emphasis token so white on-color text stays AA in
|
|
202
|
+
// dark mode (the base token is the readable text color, too light here).
|
|
203
|
+
// Hover darkens to a deeper shade instead of opacity-90, which would
|
|
204
|
+
// composite the fill toward the page and drop white text under 4.5:1.
|
|
205
|
+
destructive: "bg-destructive-solid text-destructive-foreground border border-transparent hover:bg-destructive-700",
|
|
206
|
+
// border-border (not a faint primary alpha) so the outline is a visible
|
|
207
|
+
// boundary at the 3:1 UI minimum.
|
|
208
|
+
outline: "border border-border text-foreground hover-unified bg-background",
|
|
209
|
+
secondary: "bg-background border border-border text-foreground hover:bg-primary/5",
|
|
72
210
|
ghost: "text-foreground border border-transparent hover-unified",
|
|
73
211
|
link: "text-primary border border-transparent underline-offset-4 hover:underline"
|
|
74
212
|
},
|
|
75
213
|
size: {
|
|
76
|
-
default: "h-
|
|
77
|
-
sm: "h-
|
|
78
|
-
md: "h-
|
|
79
|
-
lg: "h-
|
|
80
|
-
icon: "h-
|
|
81
|
-
"icon-sm": "h-
|
|
82
|
-
"icon-lg": "h-
|
|
214
|
+
default: "h-[var(--nx-control-height)] px-6 py-2",
|
|
215
|
+
sm: "h-[var(--nx-control-height-md)] px-4 text-[13px]",
|
|
216
|
+
md: "h-[var(--nx-control-height)] px-6 text-sm",
|
|
217
|
+
lg: "h-[var(--nx-control-height-lg)] px-8 text-base",
|
|
218
|
+
icon: "h-[var(--nx-control-height)] w-[var(--nx-control-height)] p-0",
|
|
219
|
+
"icon-sm": "h-[var(--nx-control-height-md)] w-[var(--nx-control-height-md)] p-0",
|
|
220
|
+
"icon-lg": "h-[var(--nx-control-height-lg)] w-[var(--nx-control-height-lg)] p-0"
|
|
83
221
|
}
|
|
84
222
|
},
|
|
85
223
|
defaultVariants: {
|
|
@@ -88,7 +226,7 @@ var buttonVariants = classVarianceAuthority.cva(
|
|
|
88
226
|
}
|
|
89
227
|
}
|
|
90
228
|
);
|
|
91
|
-
var Button =
|
|
229
|
+
var Button = (0, import_react.forwardRef)(
|
|
92
230
|
({
|
|
93
231
|
className,
|
|
94
232
|
variant = "default",
|
|
@@ -97,9 +235,9 @@ var Button = React5.forwardRef(
|
|
|
97
235
|
children,
|
|
98
236
|
...props
|
|
99
237
|
}, ref) => {
|
|
100
|
-
const Comp = asChild ?
|
|
101
|
-
const hasMultipleChildren =
|
|
102
|
-
return /* @__PURE__ */
|
|
238
|
+
const Comp = asChild ? import_react_slot.Slot : "button";
|
|
239
|
+
const hasMultipleChildren = React.Children.count(children) > 1;
|
|
240
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
103
241
|
Comp,
|
|
104
242
|
{
|
|
105
243
|
"data-slot": `button.${variant}`,
|
|
@@ -115,14 +253,19 @@ var Button = React5.forwardRef(
|
|
|
115
253
|
}
|
|
116
254
|
);
|
|
117
255
|
Button.displayName = "Button";
|
|
118
|
-
|
|
119
|
-
|
|
256
|
+
|
|
257
|
+
// src/components/input.tsx
|
|
258
|
+
var import_class_variance_authority2 = require("class-variance-authority");
|
|
259
|
+
var import_react2 = require("react");
|
|
260
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
261
|
+
var inputVariants = (0, import_class_variance_authority2.cva)(
|
|
262
|
+
"file:text-foreground placeholder:text-muted-foreground placeholder:opacity-50 selection:bg-primary selection:text-primary-foreground w-full min-w-0 rounded-none border border-input bg-background text-sm transition-all duration-150 outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 focus:ring-0 focus:ring-offset-0 focus:outline-none focus:border-primary! focus-visible:border-primary! aria-invalid:border-destructive aria-invalid:focus:border-destructive! data-[invalid=true]:border-destructive data-[invalid=true]:focus:border-destructive!",
|
|
120
263
|
{
|
|
121
264
|
variants: {
|
|
122
265
|
size: {
|
|
123
|
-
sm: "h-
|
|
124
|
-
default: "h-
|
|
125
|
-
lg: "h-
|
|
266
|
+
sm: "h-[var(--nx-control-height-sm)] px-2.5 py-2 text-sm",
|
|
267
|
+
default: "h-[var(--nx-control-height)] px-3 py-2.5 text-sm",
|
|
268
|
+
lg: "h-[var(--nx-control-height-lg)] px-4 py-3 text-base"
|
|
126
269
|
}
|
|
127
270
|
},
|
|
128
271
|
defaultVariants: {
|
|
@@ -130,9 +273,9 @@ var inputVariants = classVarianceAuthority.cva(
|
|
|
130
273
|
}
|
|
131
274
|
}
|
|
132
275
|
);
|
|
133
|
-
var Input =
|
|
276
|
+
var Input = (0, import_react2.forwardRef)(
|
|
134
277
|
({ className, type, size, ...props }, ref) => {
|
|
135
|
-
return /* @__PURE__ */
|
|
278
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
136
279
|
"input",
|
|
137
280
|
{
|
|
138
281
|
type,
|
|
@@ -145,14 +288,20 @@ var Input = React5.forwardRef(
|
|
|
145
288
|
}
|
|
146
289
|
);
|
|
147
290
|
Input.displayName = "Input";
|
|
148
|
-
|
|
149
|
-
|
|
291
|
+
|
|
292
|
+
// src/components/textarea.tsx
|
|
293
|
+
var import_react3 = require("react");
|
|
294
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
295
|
+
var Textarea = (0, import_react3.forwardRef)(({ className, ...props }, ref) => {
|
|
296
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
150
297
|
"textarea",
|
|
151
298
|
{
|
|
152
299
|
"data-slot": "textarea",
|
|
153
300
|
className: cn(
|
|
154
|
-
|
|
155
|
-
|
|
301
|
+
// hover:border-primary (full strength) keeps the hover boundary more
|
|
302
|
+
// visible than the resting border-input, not a fainter alpha of it.
|
|
303
|
+
"flex min-h-[80px] w-full rounded-none border border-input bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground placeholder:opacity-50 transition-all duration-200 focus:border-primary! focus-visible:border-primary! focus:outline-none hover:border-primary disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-primary/5 resize-y",
|
|
304
|
+
"aria-invalid:border-destructive aria-invalid:focus:border-destructive!",
|
|
156
305
|
className
|
|
157
306
|
),
|
|
158
307
|
ref,
|
|
@@ -161,9 +310,13 @@ var Textarea = React5.forwardRef(({ className, ...props }, ref) => {
|
|
|
161
310
|
);
|
|
162
311
|
});
|
|
163
312
|
Textarea.displayName = "Textarea";
|
|
313
|
+
|
|
314
|
+
// src/components/label.tsx
|
|
315
|
+
var import_react_label = require("@radix-ui/react-label");
|
|
316
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
164
317
|
function Label({ className, ...props }) {
|
|
165
|
-
return /* @__PURE__ */
|
|
166
|
-
|
|
318
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
319
|
+
import_react_label.Root,
|
|
167
320
|
{
|
|
168
321
|
"data-slot": "label",
|
|
169
322
|
className: cn(
|
|
@@ -174,17 +327,121 @@ function Label({ className, ...props }) {
|
|
|
174
327
|
}
|
|
175
328
|
);
|
|
176
329
|
}
|
|
177
|
-
|
|
330
|
+
|
|
331
|
+
// src/components/form-label-with-tooltip.tsx
|
|
332
|
+
var import_lucide_react = require("lucide-react");
|
|
333
|
+
var React2 = __toESM(require("react"), 1);
|
|
334
|
+
|
|
335
|
+
// src/components/tooltip.tsx
|
|
336
|
+
var import_react_tooltip = require("@radix-ui/react-tooltip");
|
|
337
|
+
var import_react5 = require("react");
|
|
338
|
+
|
|
339
|
+
// src/providers/portal-provider.tsx
|
|
340
|
+
var import_react4 = require("react");
|
|
341
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
342
|
+
var PortalContext = (0, import_react4.createContext)({ container: null });
|
|
343
|
+
function PortalProvider({ container, children }) {
|
|
344
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(PortalContext.Provider, { value: { container }, children });
|
|
345
|
+
}
|
|
346
|
+
function usePortalContainer() {
|
|
347
|
+
const { container } = (0, import_react4.useContext)(PortalContext);
|
|
348
|
+
return container ?? void 0;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
// src/components/tooltip.tsx
|
|
352
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
353
|
+
var TooltipProvider = import_react_tooltip.Provider;
|
|
354
|
+
var Tooltip = import_react_tooltip.Root;
|
|
355
|
+
var TooltipTrigger = import_react_tooltip.Trigger;
|
|
356
|
+
var TooltipContent = (0, import_react5.forwardRef)(({ className, sideOffset = 4, ...props }, ref) => {
|
|
357
|
+
const portalContainer = usePortalContainer();
|
|
358
|
+
return (
|
|
359
|
+
// Portalled for the same reason as every other overlay here, plus one
|
|
360
|
+
// specific to the tooltip: the positioner measures against the nearest
|
|
361
|
+
// containing block, and it counts `container-type` as one while the
|
|
362
|
+
// browser does not. Left inline under a `@container` element, the content
|
|
363
|
+
// is offset by that element's own position. Portalling lifts it out of any
|
|
364
|
+
// such ancestor, so the two agree again.
|
|
365
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_tooltip.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
366
|
+
import_react_tooltip.Content,
|
|
367
|
+
{
|
|
368
|
+
ref,
|
|
369
|
+
sideOffset,
|
|
370
|
+
"data-slot": "tooltip-content",
|
|
371
|
+
className: cn(
|
|
372
|
+
"z-50 overflow-hidden rounded-none px-3 py-1.5 text-xs shadow-lg border border-border bg-popover text-popover-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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",
|
|
373
|
+
className
|
|
374
|
+
),
|
|
375
|
+
...props
|
|
376
|
+
}
|
|
377
|
+
) })
|
|
378
|
+
);
|
|
379
|
+
});
|
|
380
|
+
TooltipContent.displayName = import_react_tooltip.Content.displayName;
|
|
381
|
+
|
|
382
|
+
// src/components/form-label-with-tooltip.tsx
|
|
383
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
384
|
+
var FormLabelWithTooltip = React2.forwardRef(
|
|
385
|
+
({
|
|
386
|
+
className,
|
|
387
|
+
labelClassName,
|
|
388
|
+
tooltipClassName,
|
|
389
|
+
label,
|
|
390
|
+
description,
|
|
391
|
+
required,
|
|
392
|
+
...props
|
|
393
|
+
}, ref) => {
|
|
394
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: cn("flex items-center gap-2", className), children: [
|
|
395
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Label, { ref, className: labelClassName, ...props, children: [
|
|
396
|
+
label,
|
|
397
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "text-destructive ml-1", children: "*" })
|
|
398
|
+
] }),
|
|
399
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Tooltip, { delayDuration: 200, children: [
|
|
400
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
401
|
+
TooltipTrigger,
|
|
402
|
+
{
|
|
403
|
+
type: "button",
|
|
404
|
+
tabIndex: -1,
|
|
405
|
+
className: "shrink-0 text-muted-foreground hover:text-foreground focus:outline-none focus:text-foreground transition-colors cursor-help",
|
|
406
|
+
children: [
|
|
407
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_lucide_react.Info, { className: "h-3.5 w-3.5" }),
|
|
408
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "sr-only", children: "Toggle description" })
|
|
409
|
+
]
|
|
410
|
+
}
|
|
411
|
+
),
|
|
412
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
413
|
+
TooltipContent,
|
|
414
|
+
{
|
|
415
|
+
side: "right",
|
|
416
|
+
className: cn(
|
|
417
|
+
"max-w-[250px] text-[12px] break-words relative z-[100] shadow-md border border-border bg-primary text-primary-foreground px-3 py-2 rounded-none",
|
|
418
|
+
tooltipClassName
|
|
419
|
+
),
|
|
420
|
+
children: description
|
|
421
|
+
}
|
|
422
|
+
)
|
|
423
|
+
] }) })
|
|
424
|
+
] });
|
|
425
|
+
}
|
|
426
|
+
);
|
|
427
|
+
FormLabelWithTooltip.displayName = "FormLabelWithTooltip";
|
|
428
|
+
|
|
429
|
+
// src/components/badge.tsx
|
|
430
|
+
var import_class_variance_authority3 = require("class-variance-authority");
|
|
431
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
432
|
+
var badgeVariants = (0, import_class_variance_authority3.cva)(
|
|
178
433
|
"inline-flex items-center rounded-none px-2.5 py-0.5 h-[22px] text-xs font-medium transition-colors",
|
|
179
434
|
{
|
|
180
435
|
variants: {
|
|
181
436
|
variant: {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
437
|
+
// Clear, legible chip in both modes (was bg-primary/5 at ~5% opacity,
|
|
438
|
+
// which was nearly invisible on dark backgrounds).
|
|
439
|
+
default: "bg-muted text-foreground",
|
|
440
|
+
primary: "bg-primary/10 text-primary dark:bg-primary/20",
|
|
441
|
+
success: "bg-success-100 text-success-700 dark:bg-success-900 dark:text-success-100",
|
|
442
|
+
warning: "bg-warning-100 text-warning-700 dark:bg-warning-900 dark:text-warning-100",
|
|
443
|
+
destructive: "bg-destructive-100 text-destructive-700 dark:bg-destructive-900 dark:text-destructive-100",
|
|
444
|
+
outline: "border border-border! bg-transparent text-foreground dark:text-muted-foreground dark:border-border!"
|
|
188
445
|
}
|
|
189
446
|
},
|
|
190
447
|
defaultVariants: {
|
|
@@ -193,7 +450,7 @@ var badgeVariants = classVarianceAuthority.cva(
|
|
|
193
450
|
}
|
|
194
451
|
);
|
|
195
452
|
function Badge({ className, variant = "default", ...props }) {
|
|
196
|
-
return /* @__PURE__ */
|
|
453
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
197
454
|
"div",
|
|
198
455
|
{
|
|
199
456
|
"data-slot": `badge.${variant}`,
|
|
@@ -202,8 +459,13 @@ function Badge({ className, variant = "default", ...props }) {
|
|
|
202
459
|
}
|
|
203
460
|
);
|
|
204
461
|
}
|
|
205
|
-
|
|
206
|
-
|
|
462
|
+
|
|
463
|
+
// src/components/card.tsx
|
|
464
|
+
var import_class_variance_authority4 = require("class-variance-authority");
|
|
465
|
+
var import_react6 = require("react");
|
|
466
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
467
|
+
var cardVariants = (0, import_class_variance_authority4.cva)(
|
|
468
|
+
"bg-card text-foreground rounded-none border border-border transition-all duration-200",
|
|
207
469
|
{
|
|
208
470
|
variants: {
|
|
209
471
|
variant: {
|
|
@@ -217,9 +479,9 @@ var cardVariants = classVarianceAuthority.cva(
|
|
|
217
479
|
}
|
|
218
480
|
}
|
|
219
481
|
);
|
|
220
|
-
var Card =
|
|
482
|
+
var Card = (0, import_react6.forwardRef)(
|
|
221
483
|
({ className, variant, ...props }, ref) => {
|
|
222
|
-
return /* @__PURE__ */
|
|
484
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
223
485
|
"div",
|
|
224
486
|
{
|
|
225
487
|
ref,
|
|
@@ -231,16 +493,16 @@ var Card = React5.forwardRef(
|
|
|
231
493
|
}
|
|
232
494
|
);
|
|
233
495
|
Card.displayName = "Card";
|
|
234
|
-
var CardHeader =
|
|
496
|
+
var CardHeader = (0, import_react6.forwardRef)(
|
|
235
497
|
({ className, noBorder = false, ...props }, ref) => {
|
|
236
|
-
return /* @__PURE__ */
|
|
498
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
237
499
|
"div",
|
|
238
500
|
{
|
|
239
501
|
ref,
|
|
240
502
|
"data-slot": "card-header",
|
|
241
503
|
className: cn(
|
|
242
504
|
"flex flex-col p-4",
|
|
243
|
-
!noBorder && "border-b border-
|
|
505
|
+
!noBorder && "border-b border-border",
|
|
244
506
|
className
|
|
245
507
|
),
|
|
246
508
|
...props
|
|
@@ -249,9 +511,9 @@ var CardHeader = React5.forwardRef(
|
|
|
249
511
|
}
|
|
250
512
|
);
|
|
251
513
|
CardHeader.displayName = "CardHeader";
|
|
252
|
-
var CardTitle =
|
|
514
|
+
var CardTitle = (0, import_react6.forwardRef)(
|
|
253
515
|
({ className, ...props }, ref) => {
|
|
254
|
-
return /* @__PURE__ */
|
|
516
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
255
517
|
"h3",
|
|
256
518
|
{
|
|
257
519
|
ref,
|
|
@@ -263,9 +525,9 @@ var CardTitle = React5.forwardRef(
|
|
|
263
525
|
}
|
|
264
526
|
);
|
|
265
527
|
CardTitle.displayName = "CardTitle";
|
|
266
|
-
var CardDescription =
|
|
528
|
+
var CardDescription = (0, import_react6.forwardRef)(
|
|
267
529
|
({ className, ...props }, ref) => {
|
|
268
|
-
return /* @__PURE__ */
|
|
530
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
269
531
|
"p",
|
|
270
532
|
{
|
|
271
533
|
ref,
|
|
@@ -277,9 +539,9 @@ var CardDescription = React5.forwardRef(
|
|
|
277
539
|
}
|
|
278
540
|
);
|
|
279
541
|
CardDescription.displayName = "CardDescription";
|
|
280
|
-
var CardAction =
|
|
542
|
+
var CardAction = (0, import_react6.forwardRef)(
|
|
281
543
|
({ className, ...props }, ref) => {
|
|
282
|
-
return /* @__PURE__ */
|
|
544
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
283
545
|
"div",
|
|
284
546
|
{
|
|
285
547
|
ref,
|
|
@@ -291,9 +553,9 @@ var CardAction = React5.forwardRef(
|
|
|
291
553
|
}
|
|
292
554
|
);
|
|
293
555
|
CardAction.displayName = "CardAction";
|
|
294
|
-
var CardContent =
|
|
556
|
+
var CardContent = (0, import_react6.forwardRef)(
|
|
295
557
|
({ className, ...props }, ref) => {
|
|
296
|
-
return /* @__PURE__ */
|
|
558
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
297
559
|
"div",
|
|
298
560
|
{
|
|
299
561
|
ref,
|
|
@@ -305,15 +567,15 @@ var CardContent = React5.forwardRef(
|
|
|
305
567
|
}
|
|
306
568
|
);
|
|
307
569
|
CardContent.displayName = "CardContent";
|
|
308
|
-
var CardFooter =
|
|
570
|
+
var CardFooter = (0, import_react6.forwardRef)(
|
|
309
571
|
({ className, ...props }, ref) => {
|
|
310
|
-
return /* @__PURE__ */
|
|
572
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
311
573
|
"div",
|
|
312
574
|
{
|
|
313
575
|
ref,
|
|
314
576
|
"data-slot": "card-footer",
|
|
315
577
|
className: cn(
|
|
316
|
-
"flex items-center px-6 py-4 border-t border-
|
|
578
|
+
"flex items-center px-6 py-4 border-t border-border bg-primary/5",
|
|
317
579
|
className
|
|
318
580
|
),
|
|
319
581
|
...props
|
|
@@ -322,15 +584,80 @@ var CardFooter = React5.forwardRef(
|
|
|
322
584
|
}
|
|
323
585
|
);
|
|
324
586
|
CardFooter.displayName = "CardFooter";
|
|
325
|
-
|
|
326
|
-
|
|
587
|
+
|
|
588
|
+
// src/components/layout.tsx
|
|
589
|
+
var import_react7 = require("react");
|
|
590
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
591
|
+
var GAP = {
|
|
592
|
+
0: "gap-0",
|
|
593
|
+
1: "gap-1",
|
|
594
|
+
2: "gap-2",
|
|
595
|
+
3: "gap-3",
|
|
596
|
+
4: "gap-4",
|
|
597
|
+
6: "gap-6",
|
|
598
|
+
8: "gap-8"
|
|
599
|
+
};
|
|
600
|
+
var COLS = {
|
|
601
|
+
1: "grid-cols-1",
|
|
602
|
+
2: "grid-cols-2",
|
|
603
|
+
3: "grid-cols-3",
|
|
604
|
+
4: "grid-cols-4",
|
|
605
|
+
6: "grid-cols-6"
|
|
606
|
+
};
|
|
607
|
+
var Stack = (0, import_react7.forwardRef)(
|
|
608
|
+
({ direction = "col", gap = 4, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
609
|
+
"div",
|
|
610
|
+
{
|
|
611
|
+
ref,
|
|
612
|
+
className: cn(
|
|
613
|
+
"flex",
|
|
614
|
+
direction === "col" ? "flex-col" : "flex-row",
|
|
615
|
+
GAP[gap],
|
|
616
|
+
className
|
|
617
|
+
),
|
|
618
|
+
...props
|
|
619
|
+
}
|
|
620
|
+
)
|
|
621
|
+
);
|
|
622
|
+
Stack.displayName = "Stack";
|
|
623
|
+
var Grid = (0, import_react7.forwardRef)(
|
|
624
|
+
({ cols = 2, gap = 4, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
625
|
+
"div",
|
|
626
|
+
{
|
|
627
|
+
ref,
|
|
628
|
+
className: cn("grid", COLS[cols], GAP[gap], className),
|
|
629
|
+
...props
|
|
630
|
+
}
|
|
631
|
+
)
|
|
632
|
+
);
|
|
633
|
+
Grid.displayName = "Grid";
|
|
634
|
+
var Stat = (0, import_react7.forwardRef)(
|
|
635
|
+
({ label, value, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { ref, className: cn("flex flex-col gap-1", className), ...props, children: [
|
|
636
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "text-sm text-muted-foreground", children: label }),
|
|
637
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "text-2xl font-semibold text-foreground", children: value })
|
|
638
|
+
] })
|
|
639
|
+
);
|
|
640
|
+
Stat.displayName = "Stat";
|
|
641
|
+
|
|
642
|
+
// src/components/alert.tsx
|
|
643
|
+
var import_class_variance_authority5 = require("class-variance-authority");
|
|
644
|
+
var import_react8 = require("react");
|
|
645
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
646
|
+
var alertVariants = (0, import_class_variance_authority5.cva)(
|
|
647
|
+
"relative flex items-start gap-3 rounded-none border border-border p-4 text-sm transition-colors duration-150",
|
|
327
648
|
{
|
|
328
649
|
variants: {
|
|
329
650
|
variant: {
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
651
|
+
// text-primary is mode-correct (dark ink on light in light mode, light
|
|
652
|
+
// ink on dark in dark mode); the previous dark text override rendered
|
|
653
|
+
// dark slate on the dark tint at about 1:1.
|
|
654
|
+
info: "bg-primary/5 text-primary",
|
|
655
|
+
// dark:border-l-* re-asserts the strong base accent on the left after
|
|
656
|
+
// the dark:border-*-900 all-sides rule, so the meaningful accent stays
|
|
657
|
+
// visible in dark mode instead of collapsing to the faint -900 shade.
|
|
658
|
+
success: "border-success-200 bg-success-50 text-success-900 border-l-4 border-l-success dark:border-success-900 dark:border-l-success dark:bg-success-950 dark:text-success-100",
|
|
659
|
+
warning: "border-warning-200 bg-warning-50 text-warning-900 border-l-4 border-l-warning dark:border-warning-900 dark:border-l-warning dark:bg-warning-950 dark:text-warning-100",
|
|
660
|
+
destructive: "border-destructive-200 bg-destructive-50 text-destructive-900 border-l-4 border-l-destructive dark:border-destructive-900 dark:border-l-destructive dark:bg-destructive-950 dark:text-destructive-100"
|
|
334
661
|
}
|
|
335
662
|
},
|
|
336
663
|
defaultVariants: {
|
|
@@ -338,9 +665,9 @@ var alertVariants = classVarianceAuthority.cva(
|
|
|
338
665
|
}
|
|
339
666
|
}
|
|
340
667
|
);
|
|
341
|
-
var Alert =
|
|
668
|
+
var Alert = (0, import_react8.forwardRef)(
|
|
342
669
|
({ className, variant = "info", role = "alert", ...props }, ref) => {
|
|
343
|
-
return /* @__PURE__ */
|
|
670
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
344
671
|
"div",
|
|
345
672
|
{
|
|
346
673
|
ref,
|
|
@@ -353,9 +680,9 @@ var Alert = React5.forwardRef(
|
|
|
353
680
|
}
|
|
354
681
|
);
|
|
355
682
|
Alert.displayName = "Alert";
|
|
356
|
-
var AlertTitle =
|
|
683
|
+
var AlertTitle = (0, import_react8.forwardRef)(
|
|
357
684
|
({ className, ...props }, ref) => {
|
|
358
|
-
return /* @__PURE__ */
|
|
685
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
359
686
|
"h5",
|
|
360
687
|
{
|
|
361
688
|
ref,
|
|
@@ -370,9 +697,9 @@ var AlertTitle = React5.forwardRef(
|
|
|
370
697
|
}
|
|
371
698
|
);
|
|
372
699
|
AlertTitle.displayName = "AlertTitle";
|
|
373
|
-
var AlertDescription =
|
|
700
|
+
var AlertDescription = (0, import_react8.forwardRef)(
|
|
374
701
|
({ className, ...props }, ref) => {
|
|
375
|
-
return /* @__PURE__ */
|
|
702
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
376
703
|
"div",
|
|
377
704
|
{
|
|
378
705
|
ref,
|
|
@@ -384,14 +711,18 @@ var AlertDescription = React5.forwardRef(
|
|
|
384
711
|
}
|
|
385
712
|
);
|
|
386
713
|
AlertDescription.displayName = "AlertDescription";
|
|
714
|
+
|
|
715
|
+
// src/components/separator.tsx
|
|
716
|
+
var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"), 1);
|
|
717
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
387
718
|
function Separator({
|
|
388
719
|
className,
|
|
389
720
|
orientation = "horizontal",
|
|
390
721
|
decorative = true,
|
|
391
722
|
...props
|
|
392
723
|
}) {
|
|
393
|
-
return /* @__PURE__ */
|
|
394
|
-
|
|
724
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
725
|
+
SeparatorPrimitive.Root,
|
|
395
726
|
{
|
|
396
727
|
"data-slot": "separator",
|
|
397
728
|
decorative,
|
|
@@ -404,9 +735,13 @@ function Separator({
|
|
|
404
735
|
}
|
|
405
736
|
);
|
|
406
737
|
}
|
|
407
|
-
|
|
738
|
+
|
|
739
|
+
// src/components/skeleton.tsx
|
|
740
|
+
var React3 = __toESM(require("react"), 1);
|
|
741
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
742
|
+
var Skeleton = React3.forwardRef(
|
|
408
743
|
({ className, ...props }, ref) => {
|
|
409
|
-
return /* @__PURE__ */
|
|
744
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
410
745
|
"div",
|
|
411
746
|
{
|
|
412
747
|
ref,
|
|
@@ -422,11 +757,16 @@ var Skeleton = React5__namespace.forwardRef(
|
|
|
422
757
|
}
|
|
423
758
|
);
|
|
424
759
|
Skeleton.displayName = "Skeleton";
|
|
425
|
-
|
|
760
|
+
|
|
761
|
+
// src/components/progress.tsx
|
|
762
|
+
var import_class_variance_authority6 = require("class-variance-authority");
|
|
763
|
+
var React4 = __toESM(require("react"), 1);
|
|
764
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
765
|
+
var progressVariants = (0, import_class_variance_authority6.cva)("h-full rounded-none transition-all", {
|
|
426
766
|
variants: {
|
|
427
767
|
variant: {
|
|
428
768
|
default: "bg-primary-500",
|
|
429
|
-
success: "bg-
|
|
769
|
+
success: "bg-success-500",
|
|
430
770
|
error: "bg-destructive"
|
|
431
771
|
}
|
|
432
772
|
},
|
|
@@ -434,7 +774,7 @@ var progressVariants = classVarianceAuthority.cva("h-full rounded-none transitio
|
|
|
434
774
|
variant: "default"
|
|
435
775
|
}
|
|
436
776
|
});
|
|
437
|
-
var Progress =
|
|
777
|
+
var Progress = React4.forwardRef(
|
|
438
778
|
({
|
|
439
779
|
value,
|
|
440
780
|
max = 100,
|
|
@@ -445,7 +785,7 @@ var Progress = React5__namespace.forwardRef(
|
|
|
445
785
|
}, ref) => {
|
|
446
786
|
const clampedValue = Math.min(Math.max(0, value), max);
|
|
447
787
|
const percentage = clampedValue / max * 100;
|
|
448
|
-
return /* @__PURE__ */
|
|
788
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
449
789
|
"div",
|
|
450
790
|
{
|
|
451
791
|
ref,
|
|
@@ -459,7 +799,7 @@ var Progress = React5__namespace.forwardRef(
|
|
|
459
799
|
className
|
|
460
800
|
),
|
|
461
801
|
...props,
|
|
462
|
-
children: /* @__PURE__ */
|
|
802
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
463
803
|
"div",
|
|
464
804
|
{
|
|
465
805
|
className: cn(progressVariants({ variant })),
|
|
@@ -474,29 +814,42 @@ var Progress = React5__namespace.forwardRef(
|
|
|
474
814
|
}
|
|
475
815
|
);
|
|
476
816
|
Progress.displayName = "Progress";
|
|
477
|
-
|
|
478
|
-
|
|
817
|
+
|
|
818
|
+
// src/components/checkbox.tsx
|
|
819
|
+
var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"), 1);
|
|
820
|
+
var import_lucide_react2 = require("lucide-react");
|
|
821
|
+
var import_react9 = require("react");
|
|
822
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
823
|
+
var Checkbox = (0, import_react9.forwardRef)(({ className, indeterminate, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
824
|
+
CheckboxPrimitive.Root,
|
|
479
825
|
{
|
|
480
826
|
ref,
|
|
481
827
|
"data-slot": "checkbox",
|
|
482
828
|
className: cn(
|
|
483
|
-
|
|
829
|
+
// Resting border uses border-input (a visible 3:1 boundary); the checked
|
|
830
|
+
// state switches to border-primary below, keeping the two states distinct.
|
|
831
|
+
"peer relative h-4 w-4 shrink-0 rounded-none border border-input ring-offset-background before:absolute before:left-1/2 before:top-1/2 before:h-6 before:w-6 before:-translate-x-1/2 before:-translate-y-1/2 before:content-[''] focus:border-primary! focus-visible:border-primary! focus:outline-none focus-visible:outline-none aria-invalid:border-destructive aria-invalid:focus:border-destructive! aria-invalid:focus-visible:border-destructive! disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground data-[state=indeterminate]:border-primary transition-all duration-200",
|
|
484
832
|
className
|
|
485
833
|
),
|
|
486
834
|
...props,
|
|
487
|
-
children: /* @__PURE__ */
|
|
488
|
-
|
|
835
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
836
|
+
CheckboxPrimitive.Indicator,
|
|
489
837
|
{
|
|
490
838
|
className: cn("flex items-center justify-center text-current"),
|
|
491
|
-
children: indeterminate ? /* @__PURE__ */
|
|
839
|
+
children: indeterminate ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react2.Minus, { className: "h-3 w-3" }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react2.Check, { className: "h-3 w-3" })
|
|
492
840
|
}
|
|
493
841
|
)
|
|
494
842
|
}
|
|
495
843
|
));
|
|
496
844
|
Checkbox.displayName = "Checkbox";
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
845
|
+
|
|
846
|
+
// src/components/radio-group.tsx
|
|
847
|
+
var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
|
|
848
|
+
var import_react10 = require("react");
|
|
849
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
850
|
+
var RadioGroup = (0, import_react10.forwardRef)(({ className, ...props }, ref) => {
|
|
851
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
852
|
+
RadioGroupPrimitive.Root,
|
|
500
853
|
{
|
|
501
854
|
className: cn("grid gap-2", className),
|
|
502
855
|
...props,
|
|
@@ -506,36 +859,44 @@ var RadioGroup = React5.forwardRef(({ className, ...props }, ref) => {
|
|
|
506
859
|
);
|
|
507
860
|
});
|
|
508
861
|
RadioGroup.displayName = "RadioGroup";
|
|
509
|
-
var RadioGroupItem =
|
|
510
|
-
return /* @__PURE__ */
|
|
511
|
-
|
|
862
|
+
var RadioGroupItem = (0, import_react10.forwardRef)(({ className, ...props }, ref) => {
|
|
863
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
864
|
+
RadioGroupPrimitive.Item,
|
|
512
865
|
{
|
|
513
866
|
ref,
|
|
514
867
|
"data-slot": "radio-group-item",
|
|
515
868
|
className: cn(
|
|
516
|
-
|
|
869
|
+
// Unchecked outline uses primary/40 (clearly visible) instead of primary/5
|
|
870
|
+
// (~5% opacity, effectively invisible); hover strengthens above the resting state.
|
|
871
|
+
// Resting border uses border-input (a visible 3:1 boundary); the checked
|
|
872
|
+
// state switches to border-primary below, keeping the two states distinct.
|
|
873
|
+
"peer h-4 w-4 shrink-0 rounded-none border border-input bg-background cursor-pointer transition-all duration-150 focus:border-primary! focus-visible:border-primary! focus:outline-none focus-visible:outline-none aria-invalid:border-destructive aria-invalid:focus:border-destructive! aria-invalid:focus-visible:border-destructive! disabled:cursor-not-allowed disabled:opacity-50 hover:border-primary/70 data-[state=checked]:border-primary data-[state=checked]:border-[5px]",
|
|
517
874
|
className
|
|
518
875
|
),
|
|
519
876
|
...props,
|
|
520
|
-
children: /* @__PURE__ */
|
|
877
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(RadioGroupPrimitive.Indicator, {})
|
|
521
878
|
}
|
|
522
879
|
);
|
|
523
880
|
});
|
|
524
881
|
RadioGroupItem.displayName = "RadioGroupItem";
|
|
882
|
+
|
|
883
|
+
// src/components/switch.tsx
|
|
884
|
+
var import_react_switch = require("@radix-ui/react-switch");
|
|
885
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
525
886
|
function Switch({ className, ...props }) {
|
|
526
|
-
return /* @__PURE__ */
|
|
527
|
-
|
|
887
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
888
|
+
import_react_switch.Root,
|
|
528
889
|
{
|
|
529
890
|
"data-slot": "switch",
|
|
530
891
|
className: cn(
|
|
531
|
-
"peer inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-none border border-
|
|
532
|
-
"data-[state=checked]:bg-primary data-[state=checked]
|
|
533
|
-
"data-[state=unchecked]:bg-input data-[state=unchecked]:border-
|
|
892
|
+
"peer inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-none border border-border transition-all outline-none focus-visible:border-primary aria-invalid:border-destructive aria-invalid:focus-visible:border-destructive! disabled:cursor-not-allowed disabled:opacity-50",
|
|
893
|
+
"data-[state=checked]:bg-primary data-[state=checked]:border-primary!",
|
|
894
|
+
"data-[state=unchecked]:bg-input data-[state=unchecked]:border-border dark:data-[state=unchecked]:bg-input/80",
|
|
534
895
|
className
|
|
535
896
|
),
|
|
536
897
|
...props,
|
|
537
|
-
children: /* @__PURE__ */
|
|
538
|
-
|
|
898
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
899
|
+
import_react_switch.Thumb,
|
|
539
900
|
{
|
|
540
901
|
"data-slot": "switch-thumb",
|
|
541
902
|
className: cn(
|
|
@@ -546,13 +907,22 @@ function Switch({ className, ...props }) {
|
|
|
546
907
|
}
|
|
547
908
|
);
|
|
548
909
|
}
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
var
|
|
552
|
-
var
|
|
553
|
-
var
|
|
554
|
-
|
|
555
|
-
|
|
910
|
+
|
|
911
|
+
// src/components/collapsible.tsx
|
|
912
|
+
var CollapsiblePrimitive = __toESM(require("@radix-ui/react-collapsible"), 1);
|
|
913
|
+
var Collapsible = CollapsiblePrimitive.Root;
|
|
914
|
+
var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
|
|
915
|
+
var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
|
|
916
|
+
|
|
917
|
+
// src/components/accordion.tsx
|
|
918
|
+
var AccordionPrimitive = __toESM(require("@radix-ui/react-accordion"), 1);
|
|
919
|
+
var import_lucide_react3 = require("lucide-react");
|
|
920
|
+
var import_react11 = require("react");
|
|
921
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
922
|
+
var Accordion = AccordionPrimitive.Root;
|
|
923
|
+
var AccordionItem = (0, import_react11.forwardRef)(
|
|
924
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
925
|
+
AccordionPrimitive.Item,
|
|
556
926
|
{
|
|
557
927
|
ref,
|
|
558
928
|
"data-slot": "accordion-item",
|
|
@@ -562,9 +932,9 @@ var AccordionItem = React5.forwardRef(
|
|
|
562
932
|
)
|
|
563
933
|
);
|
|
564
934
|
AccordionItem.displayName = "AccordionItem";
|
|
565
|
-
var AccordionTrigger =
|
|
566
|
-
({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
567
|
-
|
|
935
|
+
var AccordionTrigger = (0, import_react11.forwardRef)(
|
|
936
|
+
({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AccordionPrimitive.Header, { className: "flex", "data-slot": "accordion-header", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
937
|
+
AccordionPrimitive.Trigger,
|
|
568
938
|
{
|
|
569
939
|
ref,
|
|
570
940
|
"data-slot": "accordion-trigger",
|
|
@@ -575,26 +945,32 @@ var AccordionTrigger = React5.forwardRef(
|
|
|
575
945
|
...props,
|
|
576
946
|
children: [
|
|
577
947
|
children,
|
|
578
|
-
/* @__PURE__ */
|
|
948
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react3.ChevronDown, { className: "h-4 w-4 shrink-0 transition-transform duration-150 will-change-transform" })
|
|
579
949
|
]
|
|
580
950
|
}
|
|
581
951
|
) })
|
|
582
952
|
);
|
|
583
|
-
AccordionTrigger.displayName =
|
|
584
|
-
var AccordionContent =
|
|
585
|
-
({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
586
|
-
|
|
953
|
+
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
|
|
954
|
+
var AccordionContent = (0, import_react11.forwardRef)(
|
|
955
|
+
({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
956
|
+
AccordionPrimitive.Content,
|
|
587
957
|
{
|
|
588
958
|
ref,
|
|
589
959
|
"data-slot": "accordion-content",
|
|
590
|
-
className: "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
|
|
960
|
+
className: "overflow-hidden text-sm transition-all will-change-[height] transform-[translateZ(0)] data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
|
|
591
961
|
...props,
|
|
592
|
-
children: /* @__PURE__ */
|
|
962
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: cn("pb-4 pt-0", className), children })
|
|
593
963
|
}
|
|
594
964
|
)
|
|
595
965
|
);
|
|
596
|
-
AccordionContent.displayName =
|
|
597
|
-
|
|
966
|
+
AccordionContent.displayName = AccordionPrimitive.Content.displayName;
|
|
967
|
+
|
|
968
|
+
// src/components/avatar.tsx
|
|
969
|
+
var import_react_avatar = require("@radix-ui/react-avatar");
|
|
970
|
+
var import_class_variance_authority7 = require("class-variance-authority");
|
|
971
|
+
var import_react12 = require("react");
|
|
972
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
973
|
+
var avatarVariants = (0, import_class_variance_authority7.cva)(
|
|
598
974
|
"relative inline-flex shrink-0 overflow-hidden rounded-none items-center justify-center bg-primary/5 text-muted-foreground",
|
|
599
975
|
{
|
|
600
976
|
variants: {
|
|
@@ -623,11 +999,11 @@ var fallbackTextSizeMap = {
|
|
|
623
999
|
"2xl": "text-2xl"
|
|
624
1000
|
// 24px for 80px avatar
|
|
625
1001
|
};
|
|
626
|
-
var AvatarSizeContext =
|
|
627
|
-
var Avatar =
|
|
1002
|
+
var AvatarSizeContext = (0, import_react12.createContext)("md");
|
|
1003
|
+
var Avatar = (0, import_react12.forwardRef)(
|
|
628
1004
|
({ className, size = "md", ...props }, ref) => {
|
|
629
|
-
return /* @__PURE__ */
|
|
630
|
-
|
|
1005
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(AvatarSizeContext.Provider, { value: size, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1006
|
+
import_react_avatar.Root,
|
|
631
1007
|
{
|
|
632
1008
|
ref,
|
|
633
1009
|
"data-slot": "avatar",
|
|
@@ -638,10 +1014,10 @@ var Avatar = React5.forwardRef(
|
|
|
638
1014
|
}
|
|
639
1015
|
);
|
|
640
1016
|
Avatar.displayName = "Avatar";
|
|
641
|
-
var AvatarImage =
|
|
1017
|
+
var AvatarImage = (0, import_react12.forwardRef)(
|
|
642
1018
|
({ className, ...props }, ref) => {
|
|
643
|
-
return /* @__PURE__ */
|
|
644
|
-
|
|
1019
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1020
|
+
import_react_avatar.Image,
|
|
645
1021
|
{
|
|
646
1022
|
ref,
|
|
647
1023
|
"data-slot": "avatar-image",
|
|
@@ -652,12 +1028,12 @@ var AvatarImage = React5.forwardRef(
|
|
|
652
1028
|
}
|
|
653
1029
|
);
|
|
654
1030
|
AvatarImage.displayName = "AvatarImage";
|
|
655
|
-
var AvatarFallback =
|
|
1031
|
+
var AvatarFallback = (0, import_react12.forwardRef)(
|
|
656
1032
|
({ className, children, ...props }, ref) => {
|
|
657
|
-
const size =
|
|
1033
|
+
const size = (0, import_react12.useContext)(AvatarSizeContext) || "md";
|
|
658
1034
|
const textSize = fallbackTextSizeMap[size];
|
|
659
|
-
return /* @__PURE__ */
|
|
660
|
-
|
|
1035
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1036
|
+
import_react_avatar.Fallback,
|
|
661
1037
|
{
|
|
662
1038
|
ref,
|
|
663
1039
|
"data-slot": "avatar-fallback",
|
|
@@ -673,10 +1049,15 @@ var AvatarFallback = React5.forwardRef(
|
|
|
673
1049
|
}
|
|
674
1050
|
);
|
|
675
1051
|
AvatarFallback.displayName = "AvatarFallback";
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
1052
|
+
|
|
1053
|
+
// src/components/tabs.tsx
|
|
1054
|
+
var import_react_tabs = require("@radix-ui/react-tabs");
|
|
1055
|
+
var import_react13 = require("react");
|
|
1056
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1057
|
+
var Tabs = import_react_tabs.Root;
|
|
1058
|
+
var TabsList = (0, import_react13.forwardRef)(
|
|
1059
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1060
|
+
import_react_tabs.List,
|
|
680
1061
|
{
|
|
681
1062
|
ref,
|
|
682
1063
|
"data-slot": "tabs-list",
|
|
@@ -688,89 +1069,76 @@ var TabsList = React5.forwardRef(
|
|
|
688
1069
|
}
|
|
689
1070
|
)
|
|
690
1071
|
);
|
|
691
|
-
TabsList.displayName =
|
|
692
|
-
var TabsTrigger =
|
|
693
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
694
|
-
|
|
1072
|
+
TabsList.displayName = import_react_tabs.List.displayName;
|
|
1073
|
+
var TabsTrigger = (0, import_react13.forwardRef)(
|
|
1074
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1075
|
+
import_react_tabs.Trigger,
|
|
695
1076
|
{
|
|
696
1077
|
ref,
|
|
697
1078
|
"data-slot": "tabs-trigger",
|
|
698
1079
|
className: cn(
|
|
699
|
-
"inline-flex items-center justify-center whitespace-nowrap rounded-none bg-transparent px-4 py-2 text-sm font-medium cursor-pointer transition-all duration-200 border-b-2 relative -mb-0.5 data-[state=active]
|
|
1080
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-none bg-transparent px-4 py-2 text-sm font-medium cursor-pointer transition-all duration-200 border-b-2 relative -mb-0.5 data-[state=active]:border-b-primary! data-[state=active]:text-primary data-[state=inactive]:border-transparent data-[state=inactive]:text-muted-foreground hover:text-primary hover:border-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed",
|
|
700
1081
|
className
|
|
701
1082
|
),
|
|
702
1083
|
...props
|
|
703
1084
|
}
|
|
704
1085
|
)
|
|
705
1086
|
);
|
|
706
|
-
TabsTrigger.displayName =
|
|
707
|
-
var TabsContent =
|
|
708
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
709
|
-
|
|
1087
|
+
TabsTrigger.displayName = import_react_tabs.Trigger.displayName;
|
|
1088
|
+
var TabsContent = (0, import_react13.forwardRef)(
|
|
1089
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1090
|
+
import_react_tabs.Content,
|
|
710
1091
|
{
|
|
711
1092
|
ref,
|
|
712
1093
|
"data-slot": "tabs-content",
|
|
713
1094
|
className: cn(
|
|
714
|
-
"mt-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring
|
|
1095
|
+
"mt-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
715
1096
|
className
|
|
716
1097
|
),
|
|
717
1098
|
...props
|
|
718
1099
|
}
|
|
719
1100
|
)
|
|
720
1101
|
);
|
|
721
|
-
TabsContent.displayName =
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
var
|
|
725
|
-
var
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
className: cn(
|
|
732
|
-
"z-50 overflow-hidden rounded-none px-3 py-1.5 text-xs shadow-lg border border-primary/5 bg-popover text-popover-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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",
|
|
733
|
-
className
|
|
734
|
-
),
|
|
735
|
-
...props
|
|
736
|
-
}
|
|
737
|
-
));
|
|
738
|
-
TooltipContent.displayName = reactTooltip.Content.displayName;
|
|
739
|
-
var PortalContext = React5.createContext({ container: null });
|
|
740
|
-
function PortalProvider({ container, children }) {
|
|
741
|
-
return /* @__PURE__ */ jsxRuntime.jsx(PortalContext.Provider, { value: { container }, children });
|
|
742
|
-
}
|
|
743
|
-
function usePortalContainer() {
|
|
744
|
-
const { container } = React5.useContext(PortalContext);
|
|
745
|
-
return container ?? void 0;
|
|
746
|
-
}
|
|
747
|
-
var Popover = PopoverPrimitive__namespace.Root;
|
|
748
|
-
var PopoverTrigger = PopoverPrimitive__namespace.Trigger;
|
|
749
|
-
var PopoverAnchor = PopoverPrimitive__namespace.Anchor;
|
|
750
|
-
var PopoverContent = React5__namespace.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => {
|
|
1102
|
+
TabsContent.displayName = import_react_tabs.Content.displayName;
|
|
1103
|
+
|
|
1104
|
+
// src/components/popover.tsx
|
|
1105
|
+
var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"), 1);
|
|
1106
|
+
var React5 = __toESM(require("react"), 1);
|
|
1107
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1108
|
+
var Popover = PopoverPrimitive.Root;
|
|
1109
|
+
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
1110
|
+
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
1111
|
+
var PopoverContent = React5.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => {
|
|
751
1112
|
const portalContainer = usePortalContainer();
|
|
752
|
-
return /* @__PURE__ */
|
|
753
|
-
|
|
1113
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1114
|
+
PopoverPrimitive.Content,
|
|
754
1115
|
{
|
|
755
1116
|
ref,
|
|
756
1117
|
align,
|
|
757
1118
|
sideOffset,
|
|
758
1119
|
"data-slot": "popover-content",
|
|
759
1120
|
className: cn(
|
|
760
|
-
"z-[100] w-72 rounded-none border border-
|
|
1121
|
+
"z-[100] w-72 rounded-none border border-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 origin-[--radix-popover-content-transform-origin]",
|
|
761
1122
|
className
|
|
762
1123
|
),
|
|
763
1124
|
...props
|
|
764
1125
|
}
|
|
765
1126
|
) });
|
|
766
1127
|
});
|
|
767
|
-
PopoverContent.displayName =
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
var
|
|
771
|
-
var
|
|
772
|
-
var
|
|
773
|
-
|
|
1128
|
+
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
1129
|
+
|
|
1130
|
+
// src/components/dialog.tsx
|
|
1131
|
+
var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
1132
|
+
var import_class_variance_authority8 = require("class-variance-authority");
|
|
1133
|
+
var import_lucide_react4 = require("lucide-react");
|
|
1134
|
+
var import_react14 = require("react");
|
|
1135
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
1136
|
+
var Dialog = DialogPrimitive.Root;
|
|
1137
|
+
var DialogTrigger = DialogPrimitive.Trigger;
|
|
1138
|
+
var DialogPortal = DialogPrimitive.Portal;
|
|
1139
|
+
var DialogClose = DialogPrimitive.Close;
|
|
1140
|
+
var DialogOverlay = (0, import_react14.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1141
|
+
DialogPrimitive.Overlay,
|
|
774
1142
|
{
|
|
775
1143
|
ref,
|
|
776
1144
|
"data-slot": "dialog-overlay",
|
|
@@ -781,8 +1149,8 @@ var DialogOverlay = React5.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
781
1149
|
...props
|
|
782
1150
|
}
|
|
783
1151
|
));
|
|
784
|
-
DialogOverlay.displayName =
|
|
785
|
-
var dialogContentVariants =
|
|
1152
|
+
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
1153
|
+
var dialogContentVariants = (0, import_class_variance_authority8.cva)("", {
|
|
786
1154
|
variants: {
|
|
787
1155
|
size: {
|
|
788
1156
|
sm: "max-w-sm",
|
|
@@ -796,31 +1164,31 @@ var dialogContentVariants = classVarianceAuthority.cva("", {
|
|
|
796
1164
|
size: "md"
|
|
797
1165
|
}
|
|
798
1166
|
});
|
|
799
|
-
var DialogContent =
|
|
1167
|
+
var DialogContent = (0, import_react14.forwardRef)(({ className, children, size, ...props }, ref) => {
|
|
800
1168
|
const portalContainer = usePortalContainer();
|
|
801
|
-
return /* @__PURE__ */
|
|
802
|
-
/* @__PURE__ */
|
|
803
|
-
/* @__PURE__ */
|
|
804
|
-
|
|
1169
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(DialogPortal, { container: portalContainer, children: [
|
|
1170
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DialogOverlay, {}),
|
|
1171
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
1172
|
+
DialogPrimitive.Content,
|
|
805
1173
|
{
|
|
806
1174
|
ref,
|
|
807
1175
|
"data-slot": "dialog-content",
|
|
808
1176
|
className: cn(
|
|
809
|
-
"fixed left-[50%] top-[50%] z-[51] grid w-full translate-x-[-50%] translate-y-[-50%] gap-4 border border-
|
|
1177
|
+
"fixed left-[50%] top-[50%] z-[51] grid w-full translate-x-[-50%] translate-y-[-50%] gap-4 border border-border bg-background p-6 shadow-xl rounded-none duration-150 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]",
|
|
810
1178
|
dialogContentVariants({ size }),
|
|
811
1179
|
className
|
|
812
1180
|
),
|
|
813
1181
|
...props,
|
|
814
1182
|
children: [
|
|
815
1183
|
children,
|
|
816
|
-
/* @__PURE__ */
|
|
817
|
-
|
|
1184
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
1185
|
+
DialogPrimitive.Close,
|
|
818
1186
|
{
|
|
819
1187
|
"data-slot": "dialog-close",
|
|
820
1188
|
className: "absolute right-4 top-4 rounded-none p-1 text-muted-foreground cursor-pointer transition-colors duration-150 hover-unified focus:outline-none focus:ring-2 focus:ring-ring disabled:pointer-events-none disabled:cursor-not-allowed",
|
|
821
1189
|
children: [
|
|
822
|
-
/* @__PURE__ */
|
|
823
|
-
/* @__PURE__ */
|
|
1190
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react4.X, { className: "h-4 w-4" }),
|
|
1191
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "sr-only", children: "Close" })
|
|
824
1192
|
]
|
|
825
1193
|
}
|
|
826
1194
|
)
|
|
@@ -829,9 +1197,9 @@ var DialogContent = React5.forwardRef(({ className, children, size, ...props },
|
|
|
829
1197
|
)
|
|
830
1198
|
] });
|
|
831
1199
|
});
|
|
832
|
-
DialogContent.displayName =
|
|
833
|
-
var DialogHeader =
|
|
834
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1200
|
+
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
1201
|
+
var DialogHeader = (0, import_react14.forwardRef)(
|
|
1202
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
835
1203
|
"div",
|
|
836
1204
|
{
|
|
837
1205
|
ref,
|
|
@@ -844,8 +1212,8 @@ var DialogHeader = React5.forwardRef(
|
|
|
844
1212
|
)
|
|
845
1213
|
);
|
|
846
1214
|
DialogHeader.displayName = "DialogHeader";
|
|
847
|
-
var DialogFooter =
|
|
848
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1215
|
+
var DialogFooter = (0, import_react14.forwardRef)(
|
|
1216
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
849
1217
|
"div",
|
|
850
1218
|
{
|
|
851
1219
|
ref,
|
|
@@ -858,8 +1226,8 @@ var DialogFooter = React5.forwardRef(
|
|
|
858
1226
|
)
|
|
859
1227
|
);
|
|
860
1228
|
DialogFooter.displayName = "DialogFooter";
|
|
861
|
-
var DialogTitle =
|
|
862
|
-
|
|
1229
|
+
var DialogTitle = (0, import_react14.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1230
|
+
DialogPrimitive.Title,
|
|
863
1231
|
{
|
|
864
1232
|
ref,
|
|
865
1233
|
className: cn(
|
|
@@ -869,21 +1237,26 @@ var DialogTitle = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
869
1237
|
...props
|
|
870
1238
|
}
|
|
871
1239
|
));
|
|
872
|
-
DialogTitle.displayName =
|
|
873
|
-
var DialogDescription =
|
|
874
|
-
|
|
1240
|
+
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
1241
|
+
var DialogDescription = (0, import_react14.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1242
|
+
DialogPrimitive.Description,
|
|
875
1243
|
{
|
|
876
1244
|
ref,
|
|
877
1245
|
className: cn("text-sm text-muted-foreground", className),
|
|
878
1246
|
...props
|
|
879
1247
|
}
|
|
880
1248
|
));
|
|
881
|
-
DialogDescription.displayName =
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
var
|
|
885
|
-
var
|
|
886
|
-
|
|
1249
|
+
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
1250
|
+
|
|
1251
|
+
// src/components/alert-dialog.tsx
|
|
1252
|
+
var AlertDialogPrimitive = __toESM(require("@radix-ui/react-alert-dialog"), 1);
|
|
1253
|
+
var import_react15 = require("react");
|
|
1254
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1255
|
+
var AlertDialog = AlertDialogPrimitive.Root;
|
|
1256
|
+
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
1257
|
+
var AlertDialogPortal = AlertDialogPrimitive.Portal;
|
|
1258
|
+
var AlertDialogOverlay = (0, import_react15.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1259
|
+
AlertDialogPrimitive.Overlay,
|
|
887
1260
|
{
|
|
888
1261
|
ref,
|
|
889
1262
|
className: cn(
|
|
@@ -893,17 +1266,17 @@ var AlertDialogOverlay = React5.forwardRef(({ className, ...props }, ref) => /*
|
|
|
893
1266
|
...props
|
|
894
1267
|
}
|
|
895
1268
|
));
|
|
896
|
-
AlertDialogOverlay.displayName =
|
|
897
|
-
var AlertDialogContent =
|
|
1269
|
+
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
1270
|
+
var AlertDialogContent = (0, import_react15.forwardRef)(({ className, ...props }, ref) => {
|
|
898
1271
|
const portalContainer = usePortalContainer();
|
|
899
|
-
return /* @__PURE__ */
|
|
900
|
-
/* @__PURE__ */
|
|
901
|
-
/* @__PURE__ */
|
|
902
|
-
|
|
1272
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(AlertDialogPortal, { container: portalContainer, children: [
|
|
1273
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(AlertDialogOverlay, {}),
|
|
1274
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1275
|
+
AlertDialogPrimitive.Content,
|
|
903
1276
|
{
|
|
904
1277
|
ref,
|
|
905
1278
|
className: cn(
|
|
906
|
-
"fixed left-[50%] top-[50%] z-[51] grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-
|
|
1279
|
+
"fixed left-[50%] top-[50%] z-[51] grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-border bg-background p-6 shadow-xl rounded-none duration-150 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]",
|
|
907
1280
|
className
|
|
908
1281
|
),
|
|
909
1282
|
...props
|
|
@@ -911,9 +1284,9 @@ var AlertDialogContent = React5.forwardRef(({ className, ...props }, ref) => {
|
|
|
911
1284
|
)
|
|
912
1285
|
] });
|
|
913
1286
|
});
|
|
914
|
-
AlertDialogContent.displayName =
|
|
915
|
-
var AlertDialogHeader =
|
|
916
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1287
|
+
AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
|
|
1288
|
+
var AlertDialogHeader = (0, import_react15.forwardRef)(
|
|
1289
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
917
1290
|
"div",
|
|
918
1291
|
{
|
|
919
1292
|
ref,
|
|
@@ -926,8 +1299,8 @@ var AlertDialogHeader = React5.forwardRef(
|
|
|
926
1299
|
)
|
|
927
1300
|
);
|
|
928
1301
|
AlertDialogHeader.displayName = "AlertDialogHeader";
|
|
929
|
-
var AlertDialogFooter =
|
|
930
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1302
|
+
var AlertDialogFooter = (0, import_react15.forwardRef)(
|
|
1303
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
931
1304
|
"div",
|
|
932
1305
|
{
|
|
933
1306
|
ref,
|
|
@@ -940,8 +1313,8 @@ var AlertDialogFooter = React5.forwardRef(
|
|
|
940
1313
|
)
|
|
941
1314
|
);
|
|
942
1315
|
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
943
|
-
var AlertDialogTitle =
|
|
944
|
-
|
|
1316
|
+
var AlertDialogTitle = (0, import_react15.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1317
|
+
AlertDialogPrimitive.Title,
|
|
945
1318
|
{
|
|
946
1319
|
ref,
|
|
947
1320
|
className: cn(
|
|
@@ -951,18 +1324,18 @@ var AlertDialogTitle = React5.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
951
1324
|
...props
|
|
952
1325
|
}
|
|
953
1326
|
));
|
|
954
|
-
AlertDialogTitle.displayName =
|
|
955
|
-
var AlertDialogDescription =
|
|
956
|
-
|
|
1327
|
+
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
1328
|
+
var AlertDialogDescription = (0, import_react15.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1329
|
+
AlertDialogPrimitive.Description,
|
|
957
1330
|
{
|
|
958
1331
|
ref,
|
|
959
1332
|
className: cn("text-sm text-muted-foreground", className),
|
|
960
1333
|
...props
|
|
961
1334
|
}
|
|
962
1335
|
));
|
|
963
|
-
AlertDialogDescription.displayName =
|
|
964
|
-
var AlertDialogAction =
|
|
965
|
-
|
|
1336
|
+
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
1337
|
+
var AlertDialogAction = (0, import_react15.forwardRef)(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1338
|
+
AlertDialogPrimitive.Action,
|
|
966
1339
|
{
|
|
967
1340
|
ref,
|
|
968
1341
|
className: cn(buttonVariants({ variant: "destructive" }), className),
|
|
@@ -970,9 +1343,9 @@ var AlertDialogAction = React5.forwardRef(({ className, children, ...props }, re
|
|
|
970
1343
|
children
|
|
971
1344
|
}
|
|
972
1345
|
));
|
|
973
|
-
AlertDialogAction.displayName =
|
|
974
|
-
var AlertDialogCancel =
|
|
975
|
-
|
|
1346
|
+
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
1347
|
+
var AlertDialogCancel = (0, import_react15.forwardRef)(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1348
|
+
AlertDialogPrimitive.Cancel,
|
|
976
1349
|
{
|
|
977
1350
|
ref,
|
|
978
1351
|
className: cn(
|
|
@@ -984,106 +1357,117 @@ var AlertDialogCancel = React5.forwardRef(({ className, children, ...props }, re
|
|
|
984
1357
|
children
|
|
985
1358
|
}
|
|
986
1359
|
));
|
|
987
|
-
AlertDialogCancel.displayName =
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
var
|
|
991
|
-
var
|
|
992
|
-
var
|
|
993
|
-
var
|
|
994
|
-
var
|
|
995
|
-
|
|
1360
|
+
AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
|
|
1361
|
+
|
|
1362
|
+
// src/components/dropdown-menu.tsx
|
|
1363
|
+
var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"), 1);
|
|
1364
|
+
var import_lucide_react5 = require("lucide-react");
|
|
1365
|
+
var React6 = __toESM(require("react"), 1);
|
|
1366
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1367
|
+
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
1368
|
+
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
1369
|
+
var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
1370
|
+
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
1371
|
+
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
1372
|
+
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
1373
|
+
var menuItemBase = "cursor-pointer transition-colors data-[highlighted]:bg-muted data-[highlighted]:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
1374
|
+
var DropdownMenuSubTrigger = React6.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1375
|
+
DropdownMenuPrimitive.SubTrigger,
|
|
996
1376
|
{
|
|
997
1377
|
ref,
|
|
998
1378
|
className: cn(
|
|
999
|
-
"flex
|
|
1379
|
+
"flex select-none items-center gap-2 rounded-none px-2 py-1.5 text-sm outline-none data-[state=open]:bg-muted data-[state=open]:text-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
1380
|
+
menuItemBase,
|
|
1000
1381
|
inset && "pl-8",
|
|
1001
1382
|
className
|
|
1002
1383
|
),
|
|
1003
1384
|
...props,
|
|
1004
1385
|
children: [
|
|
1005
1386
|
children,
|
|
1006
|
-
/* @__PURE__ */
|
|
1387
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react5.ChevronRight, { className: "ml-auto" })
|
|
1007
1388
|
]
|
|
1008
1389
|
}
|
|
1009
1390
|
));
|
|
1010
|
-
DropdownMenuSubTrigger.displayName =
|
|
1011
|
-
var DropdownMenuSubContent =
|
|
1012
|
-
|
|
1391
|
+
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
1392
|
+
var DropdownMenuSubContent = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1393
|
+
DropdownMenuPrimitive.SubContent,
|
|
1013
1394
|
{
|
|
1014
1395
|
ref,
|
|
1015
1396
|
className: cn(
|
|
1016
|
-
"z-50 min-w-[8rem] overflow-hidden rounded-none border border-
|
|
1397
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-none border border-border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-[--radix-dropdown-menu-content-transform-origin]",
|
|
1017
1398
|
className
|
|
1018
1399
|
),
|
|
1019
1400
|
...props
|
|
1020
1401
|
}
|
|
1021
1402
|
));
|
|
1022
|
-
DropdownMenuSubContent.displayName =
|
|
1023
|
-
var DropdownMenuContent =
|
|
1403
|
+
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
1404
|
+
var DropdownMenuContent = React6.forwardRef(({ className, sideOffset = 4, ...props }, ref) => {
|
|
1024
1405
|
const portalContainer = usePortalContainer();
|
|
1025
|
-
return /* @__PURE__ */
|
|
1026
|
-
|
|
1406
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(DropdownMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1407
|
+
DropdownMenuPrimitive.Content,
|
|
1027
1408
|
{
|
|
1028
1409
|
ref,
|
|
1029
1410
|
sideOffset,
|
|
1030
1411
|
className: cn(
|
|
1031
|
-
"z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-none border border-
|
|
1412
|
+
"z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-none border border-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 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 origin-[--radix-dropdown-menu-content-transform-origin]",
|
|
1032
1413
|
className
|
|
1033
1414
|
),
|
|
1034
1415
|
...props
|
|
1035
1416
|
}
|
|
1036
1417
|
) });
|
|
1037
1418
|
});
|
|
1038
|
-
DropdownMenuContent.displayName =
|
|
1039
|
-
var DropdownMenuItem =
|
|
1040
|
-
|
|
1419
|
+
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
1420
|
+
var DropdownMenuItem = React6.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1421
|
+
DropdownMenuPrimitive.Item,
|
|
1041
1422
|
{
|
|
1042
1423
|
ref,
|
|
1043
1424
|
className: cn(
|
|
1044
|
-
"relative flex
|
|
1425
|
+
"relative flex select-none items-center gap-2 rounded-none px-2 py-1.5 text-sm outline-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
1426
|
+
menuItemBase,
|
|
1045
1427
|
inset && "pl-8",
|
|
1046
1428
|
className
|
|
1047
1429
|
),
|
|
1048
1430
|
...props
|
|
1049
1431
|
}
|
|
1050
1432
|
));
|
|
1051
|
-
DropdownMenuItem.displayName =
|
|
1052
|
-
var DropdownMenuCheckboxItem =
|
|
1053
|
-
|
|
1433
|
+
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
1434
|
+
var DropdownMenuCheckboxItem = React6.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1435
|
+
DropdownMenuPrimitive.CheckboxItem,
|
|
1054
1436
|
{
|
|
1055
1437
|
ref,
|
|
1056
1438
|
className: cn(
|
|
1057
|
-
"relative flex
|
|
1439
|
+
"relative flex select-none items-center rounded-none py-1.5 pl-8 pr-2 text-sm outline-none",
|
|
1440
|
+
menuItemBase,
|
|
1058
1441
|
className
|
|
1059
1442
|
),
|
|
1060
1443
|
checked,
|
|
1061
1444
|
...props,
|
|
1062
1445
|
children: [
|
|
1063
|
-
/* @__PURE__ */
|
|
1446
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react5.Check, { className: "h-4 w-4" }) }) }),
|
|
1064
1447
|
children
|
|
1065
1448
|
]
|
|
1066
1449
|
}
|
|
1067
1450
|
));
|
|
1068
|
-
DropdownMenuCheckboxItem.displayName =
|
|
1069
|
-
var DropdownMenuRadioItem =
|
|
1070
|
-
|
|
1451
|
+
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
1452
|
+
var DropdownMenuRadioItem = React6.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1453
|
+
DropdownMenuPrimitive.RadioItem,
|
|
1071
1454
|
{
|
|
1072
1455
|
ref,
|
|
1073
1456
|
className: cn(
|
|
1074
|
-
"relative flex
|
|
1457
|
+
"relative flex select-none items-center rounded-none py-1.5 pl-8 pr-2 text-sm outline-none",
|
|
1458
|
+
menuItemBase,
|
|
1075
1459
|
className
|
|
1076
1460
|
),
|
|
1077
1461
|
...props,
|
|
1078
1462
|
children: [
|
|
1079
|
-
/* @__PURE__ */
|
|
1463
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react5.Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
1080
1464
|
children
|
|
1081
1465
|
]
|
|
1082
1466
|
}
|
|
1083
1467
|
));
|
|
1084
|
-
DropdownMenuRadioItem.displayName =
|
|
1085
|
-
var DropdownMenuLabel =
|
|
1086
|
-
|
|
1468
|
+
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
1469
|
+
var DropdownMenuLabel = React6.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1470
|
+
DropdownMenuPrimitive.Label,
|
|
1087
1471
|
{
|
|
1088
1472
|
ref,
|
|
1089
1473
|
className: cn(
|
|
@@ -1094,18 +1478,18 @@ var DropdownMenuLabel = React5__namespace.forwardRef(({ className, inset, ...pro
|
|
|
1094
1478
|
...props
|
|
1095
1479
|
}
|
|
1096
1480
|
));
|
|
1097
|
-
DropdownMenuLabel.displayName =
|
|
1098
|
-
var DropdownMenuSeparator =
|
|
1099
|
-
|
|
1481
|
+
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
1482
|
+
var DropdownMenuSeparator = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1483
|
+
DropdownMenuPrimitive.Separator,
|
|
1100
1484
|
{
|
|
1101
1485
|
ref,
|
|
1102
1486
|
className: cn("-mx-1 my-1 h-px bg-primary/5", className),
|
|
1103
1487
|
...props
|
|
1104
1488
|
}
|
|
1105
1489
|
));
|
|
1106
|
-
DropdownMenuSeparator.displayName =
|
|
1107
|
-
var DropdownMenuShortcut =
|
|
1108
|
-
return /* @__PURE__ */
|
|
1490
|
+
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
1491
|
+
var DropdownMenuShortcut = React6.forwardRef(({ className, ...props }, ref) => {
|
|
1492
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1109
1493
|
"span",
|
|
1110
1494
|
{
|
|
1111
1495
|
ref,
|
|
@@ -1115,27 +1499,36 @@ var DropdownMenuShortcut = React5__namespace.forwardRef(({ className, ...props }
|
|
|
1115
1499
|
);
|
|
1116
1500
|
});
|
|
1117
1501
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
1502
|
+
|
|
1503
|
+
// src/components/select.tsx
|
|
1504
|
+
var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
|
|
1505
|
+
var import_class_variance_authority9 = require("class-variance-authority");
|
|
1506
|
+
var import_lucide_react6 = require("lucide-react");
|
|
1507
|
+
var import_react16 = require("react");
|
|
1508
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1118
1509
|
function Select({ ...props }) {
|
|
1119
|
-
return /* @__PURE__ */
|
|
1510
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SelectPrimitive.Root, { "data-slot": "select", ...props });
|
|
1120
1511
|
}
|
|
1121
1512
|
function SelectGroup({
|
|
1122
1513
|
...props
|
|
1123
1514
|
}) {
|
|
1124
|
-
return /* @__PURE__ */
|
|
1515
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SelectPrimitive.Group, { "data-slot": "select-group", ...props });
|
|
1125
1516
|
}
|
|
1126
1517
|
function SelectValue({
|
|
1127
1518
|
...props
|
|
1128
1519
|
}) {
|
|
1129
|
-
return /* @__PURE__ */
|
|
1520
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
|
|
1130
1521
|
}
|
|
1131
|
-
var selectTriggerVariants =
|
|
1132
|
-
|
|
1522
|
+
var selectTriggerVariants = (0, import_class_variance_authority9.cva)(
|
|
1523
|
+
// hover:border-primary (full strength) keeps the hover boundary more visible
|
|
1524
|
+
// than the resting border-input, not a fainter alpha of it.
|
|
1525
|
+
"flex w-full items-center justify-between gap-2 rounded-none border border-input bg-background px-3 text-sm text-foreground cursor-pointer transition-all duration-150 focus:border-primary! focus-visible:border-primary! focus:outline-none hover:border-primary disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-primary/5 data-[placeholder]:text-muted-foreground aria-[invalid=true]:border-destructive aria-[invalid=true]:focus:border-destructive! [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:size-4",
|
|
1133
1526
|
{
|
|
1134
1527
|
variants: {
|
|
1135
1528
|
size: {
|
|
1136
|
-
sm: "h-
|
|
1137
|
-
default: "h-
|
|
1138
|
-
lg: "h-
|
|
1529
|
+
sm: "h-[var(--nx-control-height-sm)] text-sm",
|
|
1530
|
+
default: "h-[var(--nx-control-height)] text-sm",
|
|
1531
|
+
lg: "h-[var(--nx-control-height-lg)] text-base"
|
|
1139
1532
|
}
|
|
1140
1533
|
},
|
|
1141
1534
|
defaultVariants: {
|
|
@@ -1143,9 +1536,9 @@ var selectTriggerVariants = classVarianceAuthority.cva(
|
|
|
1143
1536
|
}
|
|
1144
1537
|
}
|
|
1145
1538
|
);
|
|
1146
|
-
var SelectTrigger =
|
|
1147
|
-
return /* @__PURE__ */
|
|
1148
|
-
|
|
1539
|
+
var SelectTrigger = (0, import_react16.forwardRef)(({ className, size, children, ...props }, ref) => {
|
|
1540
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
1541
|
+
SelectPrimitive.Trigger,
|
|
1149
1542
|
{
|
|
1150
1543
|
ref,
|
|
1151
1544
|
"data-slot": "select-trigger",
|
|
@@ -1153,7 +1546,7 @@ var SelectTrigger = React5.forwardRef(({ className, size, children, ...props },
|
|
|
1153
1546
|
...props,
|
|
1154
1547
|
children: [
|
|
1155
1548
|
children,
|
|
1156
|
-
/* @__PURE__ */
|
|
1549
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react6.ChevronDown, { className: "size-4 opacity-50" }) })
|
|
1157
1550
|
]
|
|
1158
1551
|
}
|
|
1159
1552
|
);
|
|
@@ -1166,21 +1559,21 @@ function SelectContent({
|
|
|
1166
1559
|
...props
|
|
1167
1560
|
}) {
|
|
1168
1561
|
const portalContainer = usePortalContainer();
|
|
1169
|
-
return /* @__PURE__ */
|
|
1170
|
-
|
|
1562
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
1563
|
+
SelectPrimitive.Content,
|
|
1171
1564
|
{
|
|
1172
1565
|
"data-slot": "select-content",
|
|
1173
1566
|
className: cn(
|
|
1174
|
-
"bg-popover text-popover-foreground border border-
|
|
1567
|
+
"bg-popover text-popover-foreground border border-border shadow-none rounded-none z-9999 max-h-(--radix-select-content-available-height) min-w-32 overflow-hidden data-[state=open]:animate-zoom-in-95 data-[state=closed]:animate-zoom-out-95 data-[side=bottom]:animate-slide-in-from-top-2 data-[side=left]:animate-slide-in-from-right-2 data-[side=right]:animate-slide-in-from-left-2 data-[side=top]:animate-slide-in-from-bottom-2",
|
|
1175
1568
|
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",
|
|
1176
1569
|
className
|
|
1177
1570
|
),
|
|
1178
1571
|
position,
|
|
1179
1572
|
...props,
|
|
1180
1573
|
children: [
|
|
1181
|
-
/* @__PURE__ */
|
|
1182
|
-
/* @__PURE__ */
|
|
1183
|
-
|
|
1574
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SelectScrollUpButton, {}),
|
|
1575
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1576
|
+
SelectPrimitive.Viewport,
|
|
1184
1577
|
{
|
|
1185
1578
|
className: cn(
|
|
1186
1579
|
"p-1",
|
|
@@ -1189,7 +1582,7 @@ function SelectContent({
|
|
|
1189
1582
|
children
|
|
1190
1583
|
}
|
|
1191
1584
|
),
|
|
1192
|
-
/* @__PURE__ */
|
|
1585
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SelectScrollDownButton, {})
|
|
1193
1586
|
]
|
|
1194
1587
|
}
|
|
1195
1588
|
) });
|
|
@@ -1198,8 +1591,8 @@ function SelectLabel({
|
|
|
1198
1591
|
className,
|
|
1199
1592
|
...props
|
|
1200
1593
|
}) {
|
|
1201
|
-
return /* @__PURE__ */
|
|
1202
|
-
|
|
1594
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1595
|
+
SelectPrimitive.Label,
|
|
1203
1596
|
{
|
|
1204
1597
|
"data-slot": "select-label",
|
|
1205
1598
|
className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
|
|
@@ -1212,8 +1605,8 @@ function SelectItem({
|
|
|
1212
1605
|
children,
|
|
1213
1606
|
...props
|
|
1214
1607
|
}) {
|
|
1215
|
-
return /* @__PURE__ */
|
|
1216
|
-
|
|
1608
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
1609
|
+
SelectPrimitive.Item,
|
|
1217
1610
|
{
|
|
1218
1611
|
"data-slot": "select-item",
|
|
1219
1612
|
className: cn(
|
|
@@ -1222,8 +1615,8 @@ function SelectItem({
|
|
|
1222
1615
|
),
|
|
1223
1616
|
...props,
|
|
1224
1617
|
children: [
|
|
1225
|
-
/* @__PURE__ */
|
|
1226
|
-
/* @__PURE__ */
|
|
1618
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react6.Check, { className: "size-4" }) }) }),
|
|
1619
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SelectPrimitive.ItemText, { children })
|
|
1227
1620
|
]
|
|
1228
1621
|
}
|
|
1229
1622
|
);
|
|
@@ -1232,8 +1625,8 @@ function SelectSeparator({
|
|
|
1232
1625
|
className,
|
|
1233
1626
|
...props
|
|
1234
1627
|
}) {
|
|
1235
|
-
return /* @__PURE__ */
|
|
1236
|
-
|
|
1628
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1629
|
+
SelectPrimitive.Separator,
|
|
1237
1630
|
{
|
|
1238
1631
|
"data-slot": "select-separator",
|
|
1239
1632
|
className: cn("bg-border pointer-events-none -mx-1 my-1 h-px", className),
|
|
@@ -1245,8 +1638,8 @@ function SelectScrollUpButton({
|
|
|
1245
1638
|
className,
|
|
1246
1639
|
...props
|
|
1247
1640
|
}) {
|
|
1248
|
-
return /* @__PURE__ */
|
|
1249
|
-
|
|
1641
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1642
|
+
SelectPrimitive.ScrollUpButton,
|
|
1250
1643
|
{
|
|
1251
1644
|
"data-slot": "select-scroll-up-button",
|
|
1252
1645
|
className: cn(
|
|
@@ -1254,7 +1647,7 @@ function SelectScrollUpButton({
|
|
|
1254
1647
|
className
|
|
1255
1648
|
),
|
|
1256
1649
|
...props,
|
|
1257
|
-
children: /* @__PURE__ */
|
|
1650
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react6.ChevronUp, { className: "size-4" })
|
|
1258
1651
|
}
|
|
1259
1652
|
);
|
|
1260
1653
|
}
|
|
@@ -1262,8 +1655,8 @@ function SelectScrollDownButton({
|
|
|
1262
1655
|
className,
|
|
1263
1656
|
...props
|
|
1264
1657
|
}) {
|
|
1265
|
-
return /* @__PURE__ */
|
|
1266
|
-
|
|
1658
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1659
|
+
SelectPrimitive.ScrollDownButton,
|
|
1267
1660
|
{
|
|
1268
1661
|
"data-slot": "select-scroll-down-button",
|
|
1269
1662
|
className: cn(
|
|
@@ -1271,16 +1664,22 @@ function SelectScrollDownButton({
|
|
|
1271
1664
|
className
|
|
1272
1665
|
),
|
|
1273
1666
|
...props,
|
|
1274
|
-
children: /* @__PURE__ */
|
|
1667
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react6.ChevronDown, { className: "size-4" })
|
|
1275
1668
|
}
|
|
1276
1669
|
);
|
|
1277
1670
|
}
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
var
|
|
1281
|
-
var
|
|
1282
|
-
var
|
|
1283
|
-
|
|
1671
|
+
|
|
1672
|
+
// src/components/sheet.tsx
|
|
1673
|
+
var DialogPrimitive2 = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
1674
|
+
var import_class_variance_authority10 = require("class-variance-authority");
|
|
1675
|
+
var React7 = __toESM(require("react"), 1);
|
|
1676
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1677
|
+
var Sheet = DialogPrimitive2.Root;
|
|
1678
|
+
var SheetTrigger = DialogPrimitive2.Trigger;
|
|
1679
|
+
var SheetClose = DialogPrimitive2.Close;
|
|
1680
|
+
var SheetPortal = DialogPrimitive2.Portal;
|
|
1681
|
+
var SheetOverlay = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1682
|
+
DialogPrimitive2.Overlay,
|
|
1284
1683
|
{
|
|
1285
1684
|
className: cn(
|
|
1286
1685
|
"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm",
|
|
@@ -1292,16 +1691,16 @@ var SheetOverlay = React5__namespace.forwardRef(({ className, ...props }, ref) =
|
|
|
1292
1691
|
ref
|
|
1293
1692
|
}
|
|
1294
1693
|
));
|
|
1295
|
-
SheetOverlay.displayName =
|
|
1296
|
-
var sheetVariants =
|
|
1694
|
+
SheetOverlay.displayName = DialogPrimitive2.Overlay.displayName;
|
|
1695
|
+
var sheetVariants = (0, import_class_variance_authority10.cva)(
|
|
1297
1696
|
"fixed z-50 gap-4 bg-background p-6 shadow-lg will-change-transform transition ease-in-out data-[state=closed]:duration-150 data-[state=open]:duration-150 data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
1298
1697
|
{
|
|
1299
1698
|
variants: {
|
|
1300
1699
|
side: {
|
|
1301
|
-
top: "inset-x-0 top-0 border-b border-
|
|
1302
|
-
bottom: "inset-x-0 bottom-0 border-t border-
|
|
1303
|
-
left: "inset-y-0 left-0 h-full w-3/4 border-r border-
|
|
1304
|
-
right: "inset-y-0 right-0 h-full w-3/4 border-l border-
|
|
1700
|
+
top: "inset-x-0 top-0 border-b border-border data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
|
|
1701
|
+
bottom: "inset-x-0 bottom-0 border-t border-border data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
|
|
1702
|
+
left: "inset-y-0 left-0 h-full w-3/4 border-r border-border data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
|
|
1703
|
+
right: "inset-y-0 right-0 h-full w-3/4 border-l border-border data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
|
|
1305
1704
|
}
|
|
1306
1705
|
},
|
|
1307
1706
|
defaultVariants: {
|
|
@@ -1309,12 +1708,12 @@ var sheetVariants = classVarianceAuthority.cva(
|
|
|
1309
1708
|
}
|
|
1310
1709
|
}
|
|
1311
1710
|
);
|
|
1312
|
-
var SheetContent =
|
|
1711
|
+
var SheetContent = React7.forwardRef(({ side = "right", className, children, ...props }, ref) => {
|
|
1313
1712
|
const portalContainer = usePortalContainer();
|
|
1314
|
-
return /* @__PURE__ */
|
|
1315
|
-
/* @__PURE__ */
|
|
1316
|
-
/* @__PURE__ */
|
|
1317
|
-
|
|
1713
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(SheetPortal, { container: portalContainer, children: [
|
|
1714
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SheetOverlay, {}),
|
|
1715
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1716
|
+
DialogPrimitive2.Content,
|
|
1318
1717
|
{
|
|
1319
1718
|
ref,
|
|
1320
1719
|
"data-slot": "sheet-content",
|
|
@@ -1325,11 +1724,11 @@ var SheetContent = React5__namespace.forwardRef(({ side = "right", className, ch
|
|
|
1325
1724
|
)
|
|
1326
1725
|
] });
|
|
1327
1726
|
});
|
|
1328
|
-
SheetContent.displayName =
|
|
1727
|
+
SheetContent.displayName = DialogPrimitive2.Content.displayName;
|
|
1329
1728
|
var SheetHeader = ({
|
|
1330
1729
|
className,
|
|
1331
1730
|
...props
|
|
1332
|
-
}) => /* @__PURE__ */
|
|
1731
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1333
1732
|
"div",
|
|
1334
1733
|
{
|
|
1335
1734
|
className: cn(
|
|
@@ -1343,7 +1742,7 @@ SheetHeader.displayName = "SheetHeader";
|
|
|
1343
1742
|
var SheetFooter = ({
|
|
1344
1743
|
className,
|
|
1345
1744
|
...props
|
|
1346
|
-
}) => /* @__PURE__ */
|
|
1745
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1347
1746
|
"div",
|
|
1348
1747
|
{
|
|
1349
1748
|
className: cn(
|
|
@@ -1354,27 +1753,34 @@ var SheetFooter = ({
|
|
|
1354
1753
|
}
|
|
1355
1754
|
);
|
|
1356
1755
|
SheetFooter.displayName = "SheetFooter";
|
|
1357
|
-
var SheetTitle =
|
|
1358
|
-
|
|
1756
|
+
var SheetTitle = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1757
|
+
DialogPrimitive2.Title,
|
|
1359
1758
|
{
|
|
1360
1759
|
ref,
|
|
1361
1760
|
className: cn("text-lg font-semibold text-foreground", className),
|
|
1362
1761
|
...props
|
|
1363
1762
|
}
|
|
1364
1763
|
));
|
|
1365
|
-
SheetTitle.displayName =
|
|
1366
|
-
var SheetDescription =
|
|
1367
|
-
|
|
1764
|
+
SheetTitle.displayName = DialogPrimitive2.Title.displayName;
|
|
1765
|
+
var SheetDescription = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1766
|
+
DialogPrimitive2.Description,
|
|
1368
1767
|
{
|
|
1369
1768
|
ref,
|
|
1370
1769
|
className: cn("text-sm text-muted-foreground", className),
|
|
1371
1770
|
...props
|
|
1372
1771
|
}
|
|
1373
1772
|
));
|
|
1374
|
-
SheetDescription.displayName =
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1773
|
+
SheetDescription.displayName = DialogPrimitive2.Description.displayName;
|
|
1774
|
+
|
|
1775
|
+
// src/components/command.tsx
|
|
1776
|
+
var DialogPrimitive3 = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
1777
|
+
var import_cmdk = require("cmdk");
|
|
1778
|
+
var import_lucide_react7 = require("lucide-react");
|
|
1779
|
+
var import_react17 = require("react");
|
|
1780
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1781
|
+
var Command = (0, import_react17.forwardRef)(
|
|
1782
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1783
|
+
import_cmdk.Command,
|
|
1378
1784
|
{
|
|
1379
1785
|
ref,
|
|
1380
1786
|
className: cn(
|
|
@@ -1386,8 +1792,8 @@ var Command = React5.forwardRef(
|
|
|
1386
1792
|
)
|
|
1387
1793
|
);
|
|
1388
1794
|
Command.displayName = "Command";
|
|
1389
|
-
var CommandDialogOverlay =
|
|
1390
|
-
|
|
1795
|
+
var CommandDialogOverlay = (0, import_react17.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1796
|
+
DialogPrimitive3.Overlay,
|
|
1391
1797
|
{
|
|
1392
1798
|
ref,
|
|
1393
1799
|
className: cn(
|
|
@@ -1403,10 +1809,10 @@ var CommandDialogOverlay = React5.forwardRef(({ className, ...props }, ref) => /
|
|
|
1403
1809
|
CommandDialogOverlay.displayName = "CommandDialogOverlay";
|
|
1404
1810
|
var CommandDialog = ({ children, ...props }) => {
|
|
1405
1811
|
const portalContainer = usePortalContainer();
|
|
1406
|
-
return /* @__PURE__ */
|
|
1407
|
-
/* @__PURE__ */
|
|
1408
|
-
/* @__PURE__ */
|
|
1409
|
-
|
|
1812
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(DialogPrimitive3.Root, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(DialogPrimitive3.Portal, { container: portalContainer, children: [
|
|
1813
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CommandDialogOverlay, {}),
|
|
1814
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1815
|
+
DialogPrimitive3.Content,
|
|
1410
1816
|
{
|
|
1411
1817
|
"data-slot": "command-content",
|
|
1412
1818
|
className: cn(
|
|
@@ -1425,7 +1831,7 @@ var CommandDialog = ({ children, ...props }) => {
|
|
|
1425
1831
|
"m-4 sm:m-0",
|
|
1426
1832
|
// 16px margin on mobile, no margin on desktop
|
|
1427
1833
|
// Visual
|
|
1428
|
-
"overflow-hidden rounded-none border border-
|
|
1834
|
+
"overflow-hidden rounded-none border border-border bg-background shadow-xl",
|
|
1429
1835
|
// Animation
|
|
1430
1836
|
"duration-200",
|
|
1431
1837
|
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
@@ -1433,20 +1839,20 @@ var CommandDialog = ({ children, ...props }) => {
|
|
|
1433
1839
|
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
1434
1840
|
"data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-top-[48%]"
|
|
1435
1841
|
),
|
|
1436
|
-
children: /* @__PURE__ */
|
|
1842
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Command, { className: "[&_[cmdk-group-heading]]:px-3 [&_[cmdk-group-heading]]:py-2 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-semibold [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:uppercase [&_[cmdk-group-heading]]:tracking-wide [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:mb-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-3 [&_[cmdk-item]]:py-2 [&_[cmdk-item]_svg]:h-4 [&_[cmdk-item]_svg]:w-4", children })
|
|
1437
1843
|
}
|
|
1438
1844
|
)
|
|
1439
1845
|
] }) });
|
|
1440
1846
|
};
|
|
1441
|
-
var CommandInput =
|
|
1847
|
+
var CommandInput = (0, import_react17.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
1442
1848
|
"div",
|
|
1443
1849
|
{
|
|
1444
|
-
className: "flex items-center border-b border-
|
|
1850
|
+
className: "flex items-center border-b border-border px-4",
|
|
1445
1851
|
"cmdk-input-wrapper": "",
|
|
1446
1852
|
children: [
|
|
1447
|
-
/* @__PURE__ */
|
|
1448
|
-
/* @__PURE__ */
|
|
1449
|
-
|
|
1853
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react7.Search, { className: "mr-3 h-5 w-5 shrink-0 text-muted-foreground" }),
|
|
1854
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1855
|
+
import_cmdk.Command.Input,
|
|
1450
1856
|
{
|
|
1451
1857
|
ref,
|
|
1452
1858
|
className: cn(
|
|
@@ -1470,8 +1876,8 @@ var CommandInput = React5.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1470
1876
|
}
|
|
1471
1877
|
));
|
|
1472
1878
|
CommandInput.displayName = "CommandInput";
|
|
1473
|
-
var CommandList =
|
|
1474
|
-
|
|
1879
|
+
var CommandList = (0, import_react17.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1880
|
+
import_cmdk.Command.List,
|
|
1475
1881
|
{
|
|
1476
1882
|
ref,
|
|
1477
1883
|
className: cn(
|
|
@@ -1485,8 +1891,8 @@ var CommandList = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
1485
1891
|
}
|
|
1486
1892
|
));
|
|
1487
1893
|
CommandList.displayName = "CommandList";
|
|
1488
|
-
var CommandEmpty =
|
|
1489
|
-
|
|
1894
|
+
var CommandEmpty = (0, import_react17.forwardRef)((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1895
|
+
import_cmdk.Command.Empty,
|
|
1490
1896
|
{
|
|
1491
1897
|
ref,
|
|
1492
1898
|
className: "py-8 px-4 text-center text-sm text-muted-foreground",
|
|
@@ -1494,8 +1900,8 @@ var CommandEmpty = React5.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.
|
|
|
1494
1900
|
}
|
|
1495
1901
|
));
|
|
1496
1902
|
CommandEmpty.displayName = "CommandEmpty";
|
|
1497
|
-
var CommandGroup =
|
|
1498
|
-
|
|
1903
|
+
var CommandGroup = (0, import_react17.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1904
|
+
import_cmdk.Command.Group,
|
|
1499
1905
|
{
|
|
1500
1906
|
ref,
|
|
1501
1907
|
className: cn(
|
|
@@ -1509,8 +1915,8 @@ var CommandGroup = React5.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1509
1915
|
}
|
|
1510
1916
|
));
|
|
1511
1917
|
CommandGroup.displayName = "CommandGroup";
|
|
1512
|
-
var CommandSeparator =
|
|
1513
|
-
|
|
1918
|
+
var CommandSeparator = (0, import_react17.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1919
|
+
import_cmdk.Command.Separator,
|
|
1514
1920
|
{
|
|
1515
1921
|
ref,
|
|
1516
1922
|
className: cn("h-px bg-border my-2", className),
|
|
@@ -1518,8 +1924,8 @@ var CommandSeparator = React5.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
1518
1924
|
}
|
|
1519
1925
|
));
|
|
1520
1926
|
CommandSeparator.displayName = "CommandSeparator";
|
|
1521
|
-
var CommandItem =
|
|
1522
|
-
|
|
1927
|
+
var CommandItem = (0, import_react17.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1928
|
+
import_cmdk.Command.Item,
|
|
1523
1929
|
{
|
|
1524
1930
|
ref,
|
|
1525
1931
|
className: cn(
|
|
@@ -1547,9 +1953,9 @@ var CommandItem = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
1547
1953
|
}
|
|
1548
1954
|
));
|
|
1549
1955
|
CommandItem.displayName = "CommandItem";
|
|
1550
|
-
var CommandShortcut =
|
|
1956
|
+
var CommandShortcut = (0, import_react17.forwardRef)(
|
|
1551
1957
|
({ className, ...props }, ref) => {
|
|
1552
|
-
return /* @__PURE__ */
|
|
1958
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1553
1959
|
"span",
|
|
1554
1960
|
{
|
|
1555
1961
|
ref,
|
|
@@ -1560,7 +1966,7 @@ var CommandShortcut = React5.forwardRef(
|
|
|
1560
1966
|
"text-xs font-mono",
|
|
1561
1967
|
// Visual
|
|
1562
1968
|
"text-muted-foreground bg-primary/5",
|
|
1563
|
-
"border border-
|
|
1969
|
+
"border border-border rounded-none",
|
|
1564
1970
|
// Spacing
|
|
1565
1971
|
"px-1.5 py-0.5",
|
|
1566
1972
|
className
|
|
@@ -1571,7 +1977,13 @@ var CommandShortcut = React5.forwardRef(
|
|
|
1571
1977
|
}
|
|
1572
1978
|
);
|
|
1573
1979
|
CommandShortcut.displayName = "CommandShortcut";
|
|
1574
|
-
|
|
1980
|
+
|
|
1981
|
+
// src/components/spinner.tsx
|
|
1982
|
+
var import_class_variance_authority11 = require("class-variance-authority");
|
|
1983
|
+
var import_lucide_react8 = require("lucide-react");
|
|
1984
|
+
var import_react18 = require("react");
|
|
1985
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
1986
|
+
var spinnerVariants = (0, import_class_variance_authority11.cva)("animate-spin motion-reduce:animate-none", {
|
|
1575
1987
|
variants: {
|
|
1576
1988
|
size: {
|
|
1577
1989
|
sm: "h-4 w-4",
|
|
@@ -1583,10 +1995,10 @@ var spinnerVariants = classVarianceAuthority.cva("animate-spin motion-reduce:ani
|
|
|
1583
1995
|
size: "md"
|
|
1584
1996
|
}
|
|
1585
1997
|
});
|
|
1586
|
-
var Spinner =
|
|
1998
|
+
var Spinner = (0, import_react18.forwardRef)(
|
|
1587
1999
|
({ size = "md", className, "aria-label": ariaLabel = "Loading", ...props }, ref) => {
|
|
1588
|
-
return /* @__PURE__ */
|
|
1589
|
-
|
|
2000
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
2001
|
+
import_lucide_react8.Loader2,
|
|
1590
2002
|
{
|
|
1591
2003
|
ref,
|
|
1592
2004
|
role: "status",
|
|
@@ -1598,12 +2010,17 @@ var Spinner = React5.forwardRef(
|
|
|
1598
2010
|
}
|
|
1599
2011
|
);
|
|
1600
2012
|
Spinner.displayName = "Spinner";
|
|
2013
|
+
|
|
2014
|
+
// src/components/toaster.tsx
|
|
2015
|
+
var import_lucide_react9 = require("lucide-react");
|
|
2016
|
+
var import_sonner = require("sonner");
|
|
2017
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
1601
2018
|
function Toaster({ theme = "system", ...props }) {
|
|
1602
|
-
return /* @__PURE__ */
|
|
1603
|
-
|
|
2019
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
2020
|
+
import_sonner.Toaster,
|
|
1604
2021
|
{
|
|
1605
2022
|
theme,
|
|
1606
|
-
className: "toaster group
|
|
2023
|
+
className: "toaster group bg-transparent! overflow-visible! z-[9999]!",
|
|
1607
2024
|
"data-slot": "toaster",
|
|
1608
2025
|
toastOptions: {
|
|
1609
2026
|
classNames: {
|
|
@@ -1611,23 +2028,27 @@ function Toaster({ theme = "system", ...props }) {
|
|
|
1611
2028
|
}
|
|
1612
2029
|
},
|
|
1613
2030
|
icons: {
|
|
1614
|
-
success: /* @__PURE__ */
|
|
1615
|
-
info: /* @__PURE__ */
|
|
1616
|
-
warning: /* @__PURE__ */
|
|
1617
|
-
error: /* @__PURE__ */
|
|
1618
|
-
loading: /* @__PURE__ */
|
|
2031
|
+
success: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react9.CheckCircle2, { className: "h-4 w-4" }),
|
|
2032
|
+
info: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react9.AlertCircle, { className: "h-4 w-4" }),
|
|
2033
|
+
warning: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react9.AlertTriangle, { className: "h-4 w-4" }),
|
|
2034
|
+
error: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react9.XCircle, { className: "h-4 w-4" }),
|
|
2035
|
+
loading: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react9.Loader2, { className: "h-4 w-4 animate-spin" })
|
|
1619
2036
|
},
|
|
1620
2037
|
style: {
|
|
1621
|
-
"--normal-bg": "
|
|
1622
|
-
"--normal-text": "
|
|
1623
|
-
"--normal-border": "
|
|
2038
|
+
"--normal-bg": "var(--nx-popover)",
|
|
2039
|
+
"--normal-text": "var(--nx-popover-foreground)",
|
|
2040
|
+
"--normal-border": "var(--nx-border)",
|
|
1624
2041
|
"--border-radius": "0px"
|
|
1625
2042
|
},
|
|
1626
2043
|
...props
|
|
1627
2044
|
}
|
|
1628
2045
|
);
|
|
1629
2046
|
}
|
|
1630
|
-
|
|
2047
|
+
|
|
2048
|
+
// src/components/table.tsx
|
|
2049
|
+
var React8 = __toESM(require("react"), 1);
|
|
2050
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
2051
|
+
var Table = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1631
2052
|
"table",
|
|
1632
2053
|
{
|
|
1633
2054
|
ref,
|
|
@@ -1636,9 +2057,16 @@ var Table = React5__namespace.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
1636
2057
|
}
|
|
1637
2058
|
) }));
|
|
1638
2059
|
Table.displayName = "Table";
|
|
1639
|
-
var TableHeader =
|
|
2060
|
+
var TableHeader = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
2061
|
+
"thead",
|
|
2062
|
+
{
|
|
2063
|
+
ref,
|
|
2064
|
+
className: cn("[&_tr]:border-b border-border", className),
|
|
2065
|
+
...props
|
|
2066
|
+
}
|
|
2067
|
+
));
|
|
1640
2068
|
TableHeader.displayName = "TableHeader";
|
|
1641
|
-
var TableBody =
|
|
2069
|
+
var TableBody = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1642
2070
|
"tbody",
|
|
1643
2071
|
{
|
|
1644
2072
|
ref,
|
|
@@ -1647,28 +2075,31 @@ var TableBody = React5__namespace.forwardRef(({ className, ...props }, ref) => /
|
|
|
1647
2075
|
}
|
|
1648
2076
|
));
|
|
1649
2077
|
TableBody.displayName = "TableBody";
|
|
1650
|
-
var TableFooter =
|
|
2078
|
+
var TableFooter = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1651
2079
|
"tfoot",
|
|
1652
2080
|
{
|
|
1653
2081
|
ref,
|
|
1654
|
-
className: cn(
|
|
2082
|
+
className: cn(
|
|
2083
|
+
"border-t border-border font-medium [&>tr]:last:border-b-0",
|
|
2084
|
+
className
|
|
2085
|
+
),
|
|
1655
2086
|
...props
|
|
1656
2087
|
}
|
|
1657
2088
|
));
|
|
1658
2089
|
TableFooter.displayName = "TableFooter";
|
|
1659
|
-
var TableRow =
|
|
2090
|
+
var TableRow = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1660
2091
|
"tr",
|
|
1661
2092
|
{
|
|
1662
2093
|
ref,
|
|
1663
2094
|
className: cn(
|
|
1664
|
-
"border-b border-
|
|
2095
|
+
"border-b border-border transition-colors data-[state=selected]:bg-primary/5",
|
|
1665
2096
|
className
|
|
1666
2097
|
),
|
|
1667
2098
|
...props
|
|
1668
2099
|
}
|
|
1669
2100
|
));
|
|
1670
2101
|
TableRow.displayName = "TableRow";
|
|
1671
|
-
var TableHead =
|
|
2102
|
+
var TableHead = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1672
2103
|
"th",
|
|
1673
2104
|
{
|
|
1674
2105
|
ref,
|
|
@@ -1680,7 +2111,7 @@ var TableHead = React5__namespace.forwardRef(({ className, ...props }, ref) => /
|
|
|
1680
2111
|
}
|
|
1681
2112
|
));
|
|
1682
2113
|
TableHead.displayName = "TableHead";
|
|
1683
|
-
var TableCell =
|
|
2114
|
+
var TableCell = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1684
2115
|
"td",
|
|
1685
2116
|
{
|
|
1686
2117
|
ref,
|
|
@@ -1692,7 +2123,7 @@ var TableCell = React5__namespace.forwardRef(({ className, ...props }, ref) => /
|
|
|
1692
2123
|
}
|
|
1693
2124
|
));
|
|
1694
2125
|
TableCell.displayName = "TableCell";
|
|
1695
|
-
var TableCaption =
|
|
2126
|
+
var TableCaption = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1696
2127
|
"caption",
|
|
1697
2128
|
{
|
|
1698
2129
|
ref,
|
|
@@ -1701,6 +2132,10 @@ var TableCaption = React5__namespace.forwardRef(({ className, ...props }, ref) =
|
|
|
1701
2132
|
}
|
|
1702
2133
|
));
|
|
1703
2134
|
TableCaption.displayName = "TableCaption";
|
|
2135
|
+
|
|
2136
|
+
// src/components/table-search.tsx
|
|
2137
|
+
var import_lucide_react10 = require("lucide-react");
|
|
2138
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
1704
2139
|
function TableSearch({
|
|
1705
2140
|
value,
|
|
1706
2141
|
onChange,
|
|
@@ -1709,9 +2144,9 @@ function TableSearch({
|
|
|
1709
2144
|
isLoading = false,
|
|
1710
2145
|
inputRef
|
|
1711
2146
|
}) {
|
|
1712
|
-
return /* @__PURE__ */
|
|
1713
|
-
/* @__PURE__ */
|
|
1714
|
-
/* @__PURE__ */
|
|
2147
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "relative w-full max-w-lg", children: [
|
|
2148
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_lucide_react10.Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }),
|
|
2149
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
1715
2150
|
"input",
|
|
1716
2151
|
{
|
|
1717
2152
|
ref: inputRef,
|
|
@@ -1720,685 +2155,236 @@ function TableSearch({
|
|
|
1720
2155
|
value,
|
|
1721
2156
|
onChange: (e) => onChange(e.target.value),
|
|
1722
2157
|
"aria-busy": isLoading,
|
|
1723
|
-
className: "h-10 w-full rounded-none border border-
|
|
2158
|
+
className: "h-10 w-full rounded-none border border-border bg-background pl-10 pr-10 text-sm ring-offset-background 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 transition-all"
|
|
1724
2159
|
}
|
|
1725
2160
|
),
|
|
1726
|
-
(value || isLoading) && /* @__PURE__ */
|
|
1727
|
-
isLoading && /* @__PURE__ */
|
|
1728
|
-
value && /* @__PURE__ */
|
|
2161
|
+
(value || isLoading) && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "absolute right-3 top-1/2 -translate-y-1/2 flex items-center gap-2", children: [
|
|
2162
|
+
isLoading && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_lucide_react10.Loader2, { className: "w-3.5 h-3.5 text-primary animate-spin" }),
|
|
2163
|
+
value && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
1729
2164
|
"button",
|
|
1730
2165
|
{
|
|
1731
2166
|
type: "button",
|
|
1732
2167
|
onClick: onClear,
|
|
1733
|
-
className: "text-muted-foreground
|
|
2168
|
+
className: "text-muted-foreground hover:text-foreground transition-colors p-0.5 rounded-none hover:bg-primary/5",
|
|
1734
2169
|
"aria-label": "Clear search",
|
|
1735
|
-
children: /* @__PURE__ */
|
|
2170
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_lucide_react10.X, { className: "w-3.5 h-3.5" })
|
|
1736
2171
|
}
|
|
1737
2172
|
)
|
|
1738
2173
|
] })
|
|
1739
2174
|
] });
|
|
1740
2175
|
}
|
|
2176
|
+
|
|
2177
|
+
// src/components/table-states.tsx
|
|
2178
|
+
var import_lucide_react11 = require("lucide-react");
|
|
2179
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
1741
2180
|
function TableError({
|
|
1742
2181
|
message = "An error occurred. Please try again."
|
|
1743
2182
|
}) {
|
|
1744
|
-
return /* @__PURE__ */
|
|
1745
|
-
/* @__PURE__ */
|
|
1746
|
-
/* @__PURE__ */
|
|
2183
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
2184
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_lucide_react11.AlertCircle, { className: "w-4 h-4 shrink-0" }),
|
|
2185
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { children: message })
|
|
1747
2186
|
] });
|
|
1748
2187
|
}
|
|
1749
2188
|
function TableLoading() {
|
|
1750
|
-
return /* @__PURE__ */
|
|
1751
|
-
/* @__PURE__ */
|
|
1752
|
-
/* @__PURE__ */
|
|
2189
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "flex flex-col items-center justify-center gap-4 p-12 text-muted-foreground", children: [
|
|
2190
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_lucide_react11.Loader2, { className: "w-8 h-8 animate-spin text-primary/80" }),
|
|
2191
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "text-sm font-medium", children: "Loading data..." })
|
|
1753
2192
|
] });
|
|
1754
2193
|
}
|
|
1755
2194
|
function TableEmpty({ message = "No records found" }) {
|
|
1756
|
-
return /* @__PURE__ */
|
|
1757
|
-
/* @__PURE__ */
|
|
1758
|
-
/* @__PURE__ */
|
|
1759
|
-
] });
|
|
1760
|
-
}
|
|
1761
|
-
function renderPageNumbers(currentPage, totalPages, maxVisiblePages, onPageChange) {
|
|
1762
|
-
const getBtnClass = (active) => `flex h-8 w-8 items-center justify-center border-y border-primary/5 border-r border-primary/5 text-xs z-10 -ml-px transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring ${active ? "!bg-primary !text-primary-foreground !border-primary z-20" : "!bg-background !border-primary/5 hover-muted disabled:opacity-50"}`;
|
|
1763
|
-
if (totalPages <= maxVisiblePages) {
|
|
1764
|
-
return Array.from({ length: totalPages }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1765
|
-
"button",
|
|
1766
|
-
{
|
|
1767
|
-
onClick: () => onPageChange(i),
|
|
1768
|
-
"aria-label": `Go to page ${i + 1}`,
|
|
1769
|
-
"aria-current": currentPage === i ? "page" : void 0,
|
|
1770
|
-
className: getBtnClass(currentPage === i),
|
|
1771
|
-
children: i + 1
|
|
1772
|
-
},
|
|
1773
|
-
`page-${i}`
|
|
1774
|
-
));
|
|
1775
|
-
}
|
|
1776
|
-
const pages = [];
|
|
1777
|
-
const startPage = Math.max(0, currentPage - Math.floor(maxVisiblePages / 2));
|
|
1778
|
-
const endPage = Math.min(totalPages - 1, startPage + maxVisiblePages - 1);
|
|
1779
|
-
if (startPage > 0) {
|
|
1780
|
-
pages.push(
|
|
1781
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1782
|
-
"button",
|
|
1783
|
-
{
|
|
1784
|
-
onClick: () => onPageChange(0),
|
|
1785
|
-
"aria-label": "Go to page 1",
|
|
1786
|
-
className: getBtnClass(currentPage === 0),
|
|
1787
|
-
children: "1"
|
|
1788
|
-
},
|
|
1789
|
-
"page-0"
|
|
1790
|
-
)
|
|
1791
|
-
);
|
|
1792
|
-
if (startPage > 1) {
|
|
1793
|
-
pages.push(
|
|
1794
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1795
|
-
"span",
|
|
1796
|
-
{
|
|
1797
|
-
className: "flex h-8 w-8 items-center justify-center border-y border-primary/5 border-r border-primary/5 !border-primary/5 !bg-background text-muted-foreground text-xs -ml-px",
|
|
1798
|
-
"aria-hidden": "true",
|
|
1799
|
-
children: "..."
|
|
1800
|
-
},
|
|
1801
|
-
"ellipsis-start"
|
|
1802
|
-
)
|
|
1803
|
-
);
|
|
1804
|
-
}
|
|
1805
|
-
}
|
|
1806
|
-
for (let i = startPage; i <= endPage; i++) {
|
|
1807
|
-
pages.push(
|
|
1808
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1809
|
-
"button",
|
|
1810
|
-
{
|
|
1811
|
-
onClick: () => onPageChange(i),
|
|
1812
|
-
"aria-label": `Go to page ${i + 1}`,
|
|
1813
|
-
"aria-current": currentPage === i ? "page" : void 0,
|
|
1814
|
-
className: getBtnClass(currentPage === i),
|
|
1815
|
-
children: i + 1
|
|
1816
|
-
},
|
|
1817
|
-
i
|
|
1818
|
-
)
|
|
1819
|
-
);
|
|
1820
|
-
}
|
|
1821
|
-
if (endPage < totalPages - 1) {
|
|
1822
|
-
if (endPage < totalPages - 2) {
|
|
1823
|
-
pages.push(
|
|
1824
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1825
|
-
"span",
|
|
1826
|
-
{
|
|
1827
|
-
className: "flex h-8 w-8 items-center justify-center border-y border-primary/5 border-r border-primary/5 !border-primary/5 !bg-background text-muted-foreground text-xs -ml-px",
|
|
1828
|
-
"aria-hidden": "true",
|
|
1829
|
-
children: "..."
|
|
1830
|
-
},
|
|
1831
|
-
"ellipsis-end"
|
|
1832
|
-
)
|
|
1833
|
-
);
|
|
1834
|
-
}
|
|
1835
|
-
pages.push(
|
|
1836
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1837
|
-
"button",
|
|
1838
|
-
{
|
|
1839
|
-
onClick: () => onPageChange(totalPages - 1),
|
|
1840
|
-
"aria-label": `Go to page ${totalPages}`,
|
|
1841
|
-
className: getBtnClass(currentPage === totalPages - 1),
|
|
1842
|
-
children: totalPages
|
|
1843
|
-
},
|
|
1844
|
-
totalPages - 1
|
|
1845
|
-
)
|
|
1846
|
-
);
|
|
1847
|
-
}
|
|
1848
|
-
return pages;
|
|
1849
|
-
}
|
|
1850
|
-
function TablePagination({
|
|
1851
|
-
meta,
|
|
1852
|
-
onPageChange,
|
|
1853
|
-
onPageSizeChange,
|
|
1854
|
-
config,
|
|
1855
|
-
isLoading = false
|
|
1856
|
-
}) {
|
|
1857
|
-
const {
|
|
1858
|
-
showPageSizeSelector = true,
|
|
1859
|
-
pageSizeOptions = [10, 20, 30, 50],
|
|
1860
|
-
maxVisiblePages = 5
|
|
1861
|
-
} = config || {};
|
|
1862
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col sm:flex-row w-full items-center justify-between gap-4 text-xs sm:text-sm text-muted-foreground p-4 border-t border-primary/5", children: [
|
|
1863
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "whitespace-nowrap order-2 sm:order-1", children: [
|
|
1864
|
-
"Showing ",
|
|
1865
|
-
(meta.page - 1) * meta.limit + 1,
|
|
1866
|
-
"-",
|
|
1867
|
-
Math.min(meta.page * meta.limit, meta.total),
|
|
1868
|
-
" of ",
|
|
1869
|
-
meta.total,
|
|
1870
|
-
" entries"
|
|
1871
|
-
] }),
|
|
1872
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-center gap-4 sm:gap-6 lg:gap-8 order-1 sm:order-2", children: [
|
|
1873
|
-
showPageSizeSelector && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
|
|
1874
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "whitespace-nowrap hidden sm:inline-block", children: "Rows per page" }),
|
|
1875
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
1876
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1877
|
-
"select",
|
|
1878
|
-
{
|
|
1879
|
-
id: "pageSize",
|
|
1880
|
-
value: meta.limit,
|
|
1881
|
-
onChange: (e) => {
|
|
1882
|
-
const newPageSize = Number(e.target.value);
|
|
1883
|
-
onPageSizeChange(newPageSize);
|
|
1884
|
-
},
|
|
1885
|
-
className: "h-8 w-[70px] appearance-none rounded-none border border-primary/5 bg-background px-2 py-1 text-sm font-medium focus-visible:outline-none focus:ring-1 focus:ring-ring disabled:opacity-50 hover-muted cursor-pointer",
|
|
1886
|
-
disabled: isLoading,
|
|
1887
|
-
children: pageSizeOptions.map((size) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: size, children: size }, size))
|
|
1888
|
-
}
|
|
1889
|
-
),
|
|
1890
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-y-0 right-0 flex items-center px-2 text-muted-foreground", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1891
|
-
"svg",
|
|
1892
|
-
{
|
|
1893
|
-
className: "h-3 w-3",
|
|
1894
|
-
fill: "none",
|
|
1895
|
-
viewBox: "0 0 24 24",
|
|
1896
|
-
stroke: "currentColor",
|
|
1897
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1898
|
-
"path",
|
|
1899
|
-
{
|
|
1900
|
-
strokeLinecap: "round",
|
|
1901
|
-
strokeLinejoin: "round",
|
|
1902
|
-
strokeWidth: 2,
|
|
1903
|
-
d: "M19 9l-7 7-7-7"
|
|
1904
|
-
}
|
|
1905
|
-
)
|
|
1906
|
-
}
|
|
1907
|
-
) })
|
|
1908
|
-
] })
|
|
1909
|
-
] }),
|
|
1910
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center -space-x-px", children: [
|
|
1911
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1912
|
-
"button",
|
|
1913
|
-
{
|
|
1914
|
-
onClick: () => onPageChange(0),
|
|
1915
|
-
disabled: meta.page === 0 || isLoading,
|
|
1916
|
-
className: "hidden sm:flex h-8 w-8 items-center justify-center rounded-none border border-primary/5 bg-background hover-muted disabled:opacity-50 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring z-10",
|
|
1917
|
-
"aria-label": "First page",
|
|
1918
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronsLeft, { className: "h-4 w-4" })
|
|
1919
|
-
}
|
|
1920
|
-
),
|
|
1921
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1922
|
-
"button",
|
|
1923
|
-
{
|
|
1924
|
-
onClick: () => onPageChange(meta.page - 1),
|
|
1925
|
-
disabled: meta.page === 0 || isLoading,
|
|
1926
|
-
className: "flex h-8 w-8 items-center justify-center rounded-none sm:rounded-none border border-primary/5 bg-background hover-muted disabled:opacity-50 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring z-10",
|
|
1927
|
-
"aria-label": "Previous page",
|
|
1928
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { className: "h-4 w-4" })
|
|
1929
|
-
}
|
|
1930
|
-
),
|
|
1931
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex", children: renderPageNumbers(
|
|
1932
|
-
meta.page,
|
|
1933
|
-
meta.totalPages,
|
|
1934
|
-
maxVisiblePages,
|
|
1935
|
-
onPageChange
|
|
1936
|
-
) }),
|
|
1937
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1938
|
-
"button",
|
|
1939
|
-
{
|
|
1940
|
-
onClick: () => onPageChange(meta.page + 1),
|
|
1941
|
-
disabled: meta.page >= meta.totalPages - 1 || isLoading,
|
|
1942
|
-
className: "flex h-8 w-8 items-center justify-center rounded-none sm:rounded-none border-y border-primary/5 border-x border-primary/5 sm :border-r border-primary/5 bg-background hover-muted disabled:opacity-50 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring z-10",
|
|
1943
|
-
"aria-label": "Next page",
|
|
1944
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-4 w-4" })
|
|
1945
|
-
}
|
|
1946
|
-
),
|
|
1947
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1948
|
-
"button",
|
|
1949
|
-
{
|
|
1950
|
-
onClick: () => onPageChange(meta.totalPages - 1),
|
|
1951
|
-
disabled: meta.page >= meta.totalPages - 1 || isLoading,
|
|
1952
|
-
className: "hidden sm:flex h-8 w-8 items-center justify-center rounded-none border border-primary/5 bg-background hover-muted disabled:opacity-50 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring z-10",
|
|
1953
|
-
"aria-label": "Last page",
|
|
1954
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronsRight, { className: "h-4 w-4" })
|
|
1955
|
-
}
|
|
1956
|
-
)
|
|
1957
|
-
] }),
|
|
1958
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "whitespace-nowrap hidden sm:block", children: [
|
|
1959
|
-
"Page ",
|
|
1960
|
-
meta.page + 1,
|
|
1961
|
-
" of ",
|
|
1962
|
-
meta.totalPages
|
|
1963
|
-
] })
|
|
1964
|
-
] })
|
|
2195
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "flex flex-col items-center justify-center gap-4 p-16 text-center text-muted-foreground", children: [
|
|
2196
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "flex h-12 w-12 items-center justify-center rounded-none bg-primary/5", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_lucide_react11.FileQuestion, { className: "h-6 w-6" }) }),
|
|
2197
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "text-sm font-medium", children: message })
|
|
1965
2198
|
] });
|
|
1966
2199
|
}
|
|
1967
|
-
|
|
2200
|
+
|
|
2201
|
+
// src/components/table-skeleton.tsx
|
|
2202
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
2203
|
+
var GrayBar = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Skeleton, { className });
|
|
1968
2204
|
var TableSkeleton = ({
|
|
1969
2205
|
columns = 5,
|
|
1970
2206
|
rowCount = 8,
|
|
1971
2207
|
hideWrapper = false,
|
|
1972
2208
|
hideFooter = false
|
|
1973
2209
|
}) => {
|
|
1974
|
-
const content = /* @__PURE__ */
|
|
1975
|
-
/* @__PURE__ */
|
|
1976
|
-
/* @__PURE__ */
|
|
1977
|
-
/* @__PURE__ */
|
|
1978
|
-
/* @__PURE__ */
|
|
1979
|
-
/* @__PURE__ */
|
|
1980
|
-
/* @__PURE__ */
|
|
1981
|
-
/* @__PURE__ */
|
|
2210
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_jsx_runtime33.Fragment, { children: [
|
|
2211
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "border-0 rounded-none shadow-none", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Table, { children: [
|
|
2212
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(TableHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(TableRow, { children: Array.from({ length: columns }).map((_, colIdx) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(TableHead, { className: "py-3", children: colIdx === 0 ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GrayBar, { className: "h-4 w-4" }) : colIdx === columns - 1 ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Skeleton, { className: "h-4 w-4 rounded-none" }) }) : colIdx === 1 ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GrayBar, { className: "h-4 w-[70%] max-w-[180px]" }) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GrayBar, { className: "h-4 w-[60%] max-w-[120px]" }) }, `skeleton-header-${colIdx}`)) }) }),
|
|
2213
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(TableBody, { children: Array.from({ length: rowCount }).map((_, rowIdx) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(TableRow, { className: "border-b border-border", children: Array.from({ length: columns }).map((_2, colIdx) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(TableCell, { className: "py-3", children: colIdx === 0 ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GrayBar, { className: "h-4 w-4" }) : colIdx === columns - 1 ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Skeleton, { className: "h-8 w-8 rounded-none" }) }) : colIdx === 1 ? /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
2214
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Skeleton, { className: "w-9 rounded-none shrink-0" }),
|
|
2215
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "space-y-1.5 flex-1", children: [
|
|
2216
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Skeleton, { className: "h-4 w-[120px]" }),
|
|
2217
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Skeleton, { className: "h-3 w-[80px]" })
|
|
1982
2218
|
] })
|
|
1983
|
-
] }) : /* @__PURE__ */
|
|
2219
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GrayBar, { className: "h-4 w-[60%] max-w-[120px]" }) }, colIdx)) }, rowIdx)) })
|
|
1984
2220
|
] }) }),
|
|
1985
|
-
!hideFooter && /* @__PURE__ */
|
|
1986
|
-
/* @__PURE__ */
|
|
1987
|
-
/* @__PURE__ */
|
|
1988
|
-
/* @__PURE__ */
|
|
1989
|
-
/* @__PURE__ */
|
|
1990
|
-
/* @__PURE__ */
|
|
2221
|
+
!hideFooter && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "table-footer border-t border-border", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex items-center justify-between px-2 py-4 p-4", children: [
|
|
2222
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "flex items-center gap-2 text-sm", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GrayBar, { className: "h-4 w-[120px]" }) }),
|
|
2223
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex items-center gap-6", children: [
|
|
2224
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
2225
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GrayBar, { className: "h-4 w-20" }),
|
|
2226
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GrayBar, { className: "h-8 w-[70px]" })
|
|
1991
2227
|
] }),
|
|
1992
|
-
/* @__PURE__ */
|
|
1993
|
-
/* @__PURE__ */
|
|
1994
|
-
/* @__PURE__ */
|
|
1995
|
-
/* @__PURE__ */
|
|
1996
|
-
/* @__PURE__ */
|
|
1997
|
-
/* @__PURE__ */
|
|
2228
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
2229
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GrayBar, { className: "h-8 w-8" }),
|
|
2230
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GrayBar, { className: "h-8 w-8" }),
|
|
2231
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GrayBar, { className: "h-8 w-8" }),
|
|
2232
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GrayBar, { className: "h-8 w-8" }),
|
|
2233
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GrayBar, { className: "h-8 w-8" })
|
|
1998
2234
|
] }),
|
|
1999
|
-
/* @__PURE__ */
|
|
2235
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GrayBar, { className: "h-4 w-[120px]" })
|
|
2000
2236
|
] })
|
|
2001
2237
|
] }) })
|
|
2002
2238
|
] });
|
|
2003
2239
|
if (hideWrapper) {
|
|
2004
2240
|
return content;
|
|
2005
2241
|
}
|
|
2006
|
-
return /* @__PURE__ */
|
|
2242
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "table-wrapper rounded-none border border-border bg-card overflow-hidden", children: content });
|
|
2007
2243
|
};
|
|
2008
2244
|
TableSkeleton.displayName = "TableSkeleton";
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
/* @__PURE__ */ jsxRuntime.jsx(TableBody, { children: data.map((item) => {
|
|
2154
|
-
const primaryValue = primaryColumn ? String(item[primaryColumn.key]) : String(item.id);
|
|
2155
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2156
|
-
TableRow,
|
|
2157
|
-
{
|
|
2158
|
-
className: cn(
|
|
2159
|
-
"hover-unified-table-row",
|
|
2160
|
-
onRowClick && "cursor-pointer"
|
|
2161
|
-
),
|
|
2162
|
-
onClick: (e) => handleItemClick(item, e),
|
|
2163
|
-
role: onRowClick ? "button" : void 0,
|
|
2164
|
-
tabIndex: onRowClick ? 0 : void 0,
|
|
2165
|
-
onKeyDown: onRowClick ? handleCardKeyDown(item) : void 0,
|
|
2166
|
-
"aria-label": onRowClick ? `View details for ${primaryValue}` : void 0,
|
|
2167
|
-
children: columns.map((column) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2168
|
-
TableCell,
|
|
2169
|
-
{
|
|
2170
|
-
className: column.cellClassName,
|
|
2171
|
-
children: column.render ? column.render(item[column.key], item) : String(item[column.key])
|
|
2172
|
-
},
|
|
2173
|
-
String(column.key)
|
|
2174
|
-
))
|
|
2175
|
-
},
|
|
2176
|
-
item.id
|
|
2177
|
-
);
|
|
2178
|
-
}) })
|
|
2179
|
-
] })
|
|
2180
|
-
}
|
|
2181
|
-
),
|
|
2182
|
-
footer && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "table-footer border-t border-primary/5 bg-[hsl(var(--table-header-bg))]", children: footer })
|
|
2183
|
-
] });
|
|
2184
|
-
}
|
|
2185
|
-
var ResponsiveTable = React5__namespace.forwardRef(ResponsiveTableInner);
|
|
2186
|
-
|
|
2187
|
-
// src/tailwind-preset.ts
|
|
2188
|
-
var uiPreset = {
|
|
2189
|
-
theme: {
|
|
2190
|
-
extend: {
|
|
2191
|
-
colors: {
|
|
2192
|
-
border: "hsl(var(--border))",
|
|
2193
|
-
input: "hsl(var(--input))",
|
|
2194
|
-
ring: "hsl(var(--ring))",
|
|
2195
|
-
background: "hsl(var(--background))",
|
|
2196
|
-
foreground: "hsl(var(--foreground))",
|
|
2197
|
-
primary: {
|
|
2198
|
-
DEFAULT: "hsl(var(--primary))",
|
|
2199
|
-
foreground: "hsl(var(--primary-foreground))"
|
|
2200
|
-
},
|
|
2201
|
-
secondary: {
|
|
2202
|
-
DEFAULT: "hsl(var(--secondary))",
|
|
2203
|
-
foreground: "hsl(var(--secondary-foreground))"
|
|
2204
|
-
},
|
|
2205
|
-
destructive: {
|
|
2206
|
-
DEFAULT: "hsl(var(--destructive))",
|
|
2207
|
-
foreground: "hsl(var(--destructive-foreground))"
|
|
2208
|
-
},
|
|
2209
|
-
success: {
|
|
2210
|
-
DEFAULT: "hsl(var(--success))",
|
|
2211
|
-
foreground: "hsl(var(--success-foreground))"
|
|
2212
|
-
},
|
|
2213
|
-
warning: {
|
|
2214
|
-
DEFAULT: "hsl(var(--warning))",
|
|
2215
|
-
foreground: "hsl(var(--warning-foreground))"
|
|
2216
|
-
},
|
|
2217
|
-
muted: {
|
|
2218
|
-
DEFAULT: "hsl(var(--muted))",
|
|
2219
|
-
foreground: "hsl(var(--muted-foreground))"
|
|
2220
|
-
},
|
|
2221
|
-
accent: {
|
|
2222
|
-
DEFAULT: "hsl(var(--accent))",
|
|
2223
|
-
foreground: "hsl(var(--accent-foreground))"
|
|
2224
|
-
},
|
|
2225
|
-
popover: {
|
|
2226
|
-
DEFAULT: "hsl(var(--popover))",
|
|
2227
|
-
foreground: "hsl(var(--popover-foreground))"
|
|
2228
|
-
},
|
|
2229
|
-
card: {
|
|
2230
|
-
DEFAULT: "hsl(var(--card))",
|
|
2231
|
-
foreground: "hsl(var(--card-foreground))"
|
|
2232
|
-
}
|
|
2233
|
-
},
|
|
2234
|
-
borderRadius: {
|
|
2235
|
-
lg: "var(--radius)",
|
|
2236
|
-
md: "calc(var(--radius) - 2px)",
|
|
2237
|
-
sm: "calc(var(--radius) - 4px)"
|
|
2238
|
-
},
|
|
2239
|
-
keyframes: {
|
|
2240
|
-
"accordion-down": {
|
|
2241
|
-
from: { height: "0" },
|
|
2242
|
-
to: { height: "var(--radix-accordion-content-height)" }
|
|
2243
|
-
},
|
|
2244
|
-
"accordion-up": {
|
|
2245
|
-
from: { height: "var(--radix-accordion-content-height)" },
|
|
2246
|
-
to: { height: "0" }
|
|
2247
|
-
}
|
|
2248
|
-
},
|
|
2249
|
-
animation: {
|
|
2250
|
-
"accordion-down": "accordion-down 0.3s cubic-bezier(0.87, 0, 0.13, 1)",
|
|
2251
|
-
"accordion-up": "accordion-up 0.3s cubic-bezier(0.87, 0, 0.13, 1)"
|
|
2252
|
-
}
|
|
2253
|
-
}
|
|
2254
|
-
}
|
|
2255
|
-
};
|
|
2256
|
-
var tailwind_preset_default = uiPreset;
|
|
2257
|
-
|
|
2258
|
-
Object.defineProperty(exports, "toast", {
|
|
2259
|
-
enumerable: true,
|
|
2260
|
-
get: function () { return sonner.toast; }
|
|
2245
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
2246
|
+
0 && (module.exports = {
|
|
2247
|
+
Accordion,
|
|
2248
|
+
AccordionContent,
|
|
2249
|
+
AccordionItem,
|
|
2250
|
+
AccordionTrigger,
|
|
2251
|
+
Alert,
|
|
2252
|
+
AlertDescription,
|
|
2253
|
+
AlertDialog,
|
|
2254
|
+
AlertDialogAction,
|
|
2255
|
+
AlertDialogCancel,
|
|
2256
|
+
AlertDialogContent,
|
|
2257
|
+
AlertDialogDescription,
|
|
2258
|
+
AlertDialogFooter,
|
|
2259
|
+
AlertDialogHeader,
|
|
2260
|
+
AlertDialogOverlay,
|
|
2261
|
+
AlertDialogPortal,
|
|
2262
|
+
AlertDialogTitle,
|
|
2263
|
+
AlertDialogTrigger,
|
|
2264
|
+
AlertTitle,
|
|
2265
|
+
Avatar,
|
|
2266
|
+
AvatarFallback,
|
|
2267
|
+
AvatarImage,
|
|
2268
|
+
Badge,
|
|
2269
|
+
Button,
|
|
2270
|
+
Card,
|
|
2271
|
+
CardAction,
|
|
2272
|
+
CardContent,
|
|
2273
|
+
CardDescription,
|
|
2274
|
+
CardFooter,
|
|
2275
|
+
CardHeader,
|
|
2276
|
+
CardTitle,
|
|
2277
|
+
Checkbox,
|
|
2278
|
+
Collapsible,
|
|
2279
|
+
CollapsibleContent,
|
|
2280
|
+
CollapsibleTrigger,
|
|
2281
|
+
Command,
|
|
2282
|
+
CommandDialog,
|
|
2283
|
+
CommandEmpty,
|
|
2284
|
+
CommandGroup,
|
|
2285
|
+
CommandInput,
|
|
2286
|
+
CommandItem,
|
|
2287
|
+
CommandList,
|
|
2288
|
+
CommandSeparator,
|
|
2289
|
+
CommandShortcut,
|
|
2290
|
+
Dialog,
|
|
2291
|
+
DialogClose,
|
|
2292
|
+
DialogContent,
|
|
2293
|
+
DialogDescription,
|
|
2294
|
+
DialogFooter,
|
|
2295
|
+
DialogHeader,
|
|
2296
|
+
DialogOverlay,
|
|
2297
|
+
DialogPortal,
|
|
2298
|
+
DialogTitle,
|
|
2299
|
+
DialogTrigger,
|
|
2300
|
+
DropdownMenu,
|
|
2301
|
+
DropdownMenuCheckboxItem,
|
|
2302
|
+
DropdownMenuContent,
|
|
2303
|
+
DropdownMenuGroup,
|
|
2304
|
+
DropdownMenuItem,
|
|
2305
|
+
DropdownMenuLabel,
|
|
2306
|
+
DropdownMenuPortal,
|
|
2307
|
+
DropdownMenuRadioGroup,
|
|
2308
|
+
DropdownMenuRadioItem,
|
|
2309
|
+
DropdownMenuSeparator,
|
|
2310
|
+
DropdownMenuShortcut,
|
|
2311
|
+
DropdownMenuSub,
|
|
2312
|
+
DropdownMenuSubContent,
|
|
2313
|
+
DropdownMenuSubTrigger,
|
|
2314
|
+
DropdownMenuTrigger,
|
|
2315
|
+
FormLabelWithTooltip,
|
|
2316
|
+
Grid,
|
|
2317
|
+
Input,
|
|
2318
|
+
Label,
|
|
2319
|
+
Popover,
|
|
2320
|
+
PopoverAnchor,
|
|
2321
|
+
PopoverContent,
|
|
2322
|
+
PopoverTrigger,
|
|
2323
|
+
PortalProvider,
|
|
2324
|
+
Progress,
|
|
2325
|
+
RadioGroup,
|
|
2326
|
+
RadioGroupItem,
|
|
2327
|
+
Select,
|
|
2328
|
+
SelectContent,
|
|
2329
|
+
SelectGroup,
|
|
2330
|
+
SelectItem,
|
|
2331
|
+
SelectLabel,
|
|
2332
|
+
SelectScrollDownButton,
|
|
2333
|
+
SelectScrollUpButton,
|
|
2334
|
+
SelectSeparator,
|
|
2335
|
+
SelectTrigger,
|
|
2336
|
+
SelectValue,
|
|
2337
|
+
Separator,
|
|
2338
|
+
Sheet,
|
|
2339
|
+
SheetClose,
|
|
2340
|
+
SheetContent,
|
|
2341
|
+
SheetDescription,
|
|
2342
|
+
SheetFooter,
|
|
2343
|
+
SheetHeader,
|
|
2344
|
+
SheetOverlay,
|
|
2345
|
+
SheetPortal,
|
|
2346
|
+
SheetTitle,
|
|
2347
|
+
SheetTrigger,
|
|
2348
|
+
Skeleton,
|
|
2349
|
+
Spinner,
|
|
2350
|
+
Stack,
|
|
2351
|
+
Stat,
|
|
2352
|
+
Switch,
|
|
2353
|
+
Table,
|
|
2354
|
+
TableBody,
|
|
2355
|
+
TableCaption,
|
|
2356
|
+
TableCell,
|
|
2357
|
+
TableEmpty,
|
|
2358
|
+
TableError,
|
|
2359
|
+
TableFooter,
|
|
2360
|
+
TableHead,
|
|
2361
|
+
TableHeader,
|
|
2362
|
+
TableLoading,
|
|
2363
|
+
TableRow,
|
|
2364
|
+
TableSearch,
|
|
2365
|
+
TableSkeleton,
|
|
2366
|
+
Tabs,
|
|
2367
|
+
TabsContent,
|
|
2368
|
+
TabsList,
|
|
2369
|
+
TabsTrigger,
|
|
2370
|
+
Textarea,
|
|
2371
|
+
Toaster,
|
|
2372
|
+
Tooltip,
|
|
2373
|
+
TooltipContent,
|
|
2374
|
+
TooltipProvider,
|
|
2375
|
+
TooltipTrigger,
|
|
2376
|
+
alertVariants,
|
|
2377
|
+
avatarVariants,
|
|
2378
|
+
badgeVariants,
|
|
2379
|
+
buttonVariants,
|
|
2380
|
+
cardVariants,
|
|
2381
|
+
dialogContentVariants,
|
|
2382
|
+
inputVariants,
|
|
2383
|
+
progressVariants,
|
|
2384
|
+
selectTriggerVariants,
|
|
2385
|
+
sheetVariants,
|
|
2386
|
+
spinnerVariants,
|
|
2387
|
+
toast,
|
|
2388
|
+
usePortalContainer
|
|
2261
2389
|
});
|
|
2262
|
-
exports.Accordion = Accordion;
|
|
2263
|
-
exports.AccordionContent = AccordionContent;
|
|
2264
|
-
exports.AccordionItem = AccordionItem;
|
|
2265
|
-
exports.AccordionTrigger = AccordionTrigger;
|
|
2266
|
-
exports.Alert = Alert;
|
|
2267
|
-
exports.AlertDescription = AlertDescription;
|
|
2268
|
-
exports.AlertDialog = AlertDialog;
|
|
2269
|
-
exports.AlertDialogAction = AlertDialogAction;
|
|
2270
|
-
exports.AlertDialogCancel = AlertDialogCancel;
|
|
2271
|
-
exports.AlertDialogContent = AlertDialogContent;
|
|
2272
|
-
exports.AlertDialogDescription = AlertDialogDescription;
|
|
2273
|
-
exports.AlertDialogFooter = AlertDialogFooter;
|
|
2274
|
-
exports.AlertDialogHeader = AlertDialogHeader;
|
|
2275
|
-
exports.AlertDialogOverlay = AlertDialogOverlay;
|
|
2276
|
-
exports.AlertDialogPortal = AlertDialogPortal;
|
|
2277
|
-
exports.AlertDialogTitle = AlertDialogTitle;
|
|
2278
|
-
exports.AlertDialogTrigger = AlertDialogTrigger;
|
|
2279
|
-
exports.AlertTitle = AlertTitle;
|
|
2280
|
-
exports.Avatar = Avatar;
|
|
2281
|
-
exports.AvatarFallback = AvatarFallback;
|
|
2282
|
-
exports.AvatarImage = AvatarImage;
|
|
2283
|
-
exports.Badge = Badge;
|
|
2284
|
-
exports.Button = Button;
|
|
2285
|
-
exports.Card = Card;
|
|
2286
|
-
exports.CardAction = CardAction;
|
|
2287
|
-
exports.CardContent = CardContent;
|
|
2288
|
-
exports.CardDescription = CardDescription;
|
|
2289
|
-
exports.CardFooter = CardFooter;
|
|
2290
|
-
exports.CardHeader = CardHeader;
|
|
2291
|
-
exports.CardTitle = CardTitle;
|
|
2292
|
-
exports.Checkbox = Checkbox;
|
|
2293
|
-
exports.Collapsible = Collapsible;
|
|
2294
|
-
exports.CollapsibleContent = CollapsibleContent2;
|
|
2295
|
-
exports.CollapsibleTrigger = CollapsibleTrigger2;
|
|
2296
|
-
exports.Command = Command;
|
|
2297
|
-
exports.CommandDialog = CommandDialog;
|
|
2298
|
-
exports.CommandEmpty = CommandEmpty;
|
|
2299
|
-
exports.CommandGroup = CommandGroup;
|
|
2300
|
-
exports.CommandInput = CommandInput;
|
|
2301
|
-
exports.CommandItem = CommandItem;
|
|
2302
|
-
exports.CommandList = CommandList;
|
|
2303
|
-
exports.CommandSeparator = CommandSeparator;
|
|
2304
|
-
exports.CommandShortcut = CommandShortcut;
|
|
2305
|
-
exports.Dialog = Dialog;
|
|
2306
|
-
exports.DialogClose = DialogClose;
|
|
2307
|
-
exports.DialogContent = DialogContent;
|
|
2308
|
-
exports.DialogDescription = DialogDescription;
|
|
2309
|
-
exports.DialogFooter = DialogFooter;
|
|
2310
|
-
exports.DialogHeader = DialogHeader;
|
|
2311
|
-
exports.DialogOverlay = DialogOverlay;
|
|
2312
|
-
exports.DialogPortal = DialogPortal;
|
|
2313
|
-
exports.DialogTitle = DialogTitle;
|
|
2314
|
-
exports.DialogTrigger = DialogTrigger;
|
|
2315
|
-
exports.DropdownMenu = DropdownMenu;
|
|
2316
|
-
exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem;
|
|
2317
|
-
exports.DropdownMenuContent = DropdownMenuContent;
|
|
2318
|
-
exports.DropdownMenuGroup = DropdownMenuGroup;
|
|
2319
|
-
exports.DropdownMenuItem = DropdownMenuItem;
|
|
2320
|
-
exports.DropdownMenuLabel = DropdownMenuLabel;
|
|
2321
|
-
exports.DropdownMenuPortal = DropdownMenuPortal;
|
|
2322
|
-
exports.DropdownMenuRadioGroup = DropdownMenuRadioGroup;
|
|
2323
|
-
exports.DropdownMenuRadioItem = DropdownMenuRadioItem;
|
|
2324
|
-
exports.DropdownMenuSeparator = DropdownMenuSeparator;
|
|
2325
|
-
exports.DropdownMenuShortcut = DropdownMenuShortcut;
|
|
2326
|
-
exports.DropdownMenuSub = DropdownMenuSub;
|
|
2327
|
-
exports.DropdownMenuSubContent = DropdownMenuSubContent;
|
|
2328
|
-
exports.DropdownMenuSubTrigger = DropdownMenuSubTrigger;
|
|
2329
|
-
exports.DropdownMenuTrigger = DropdownMenuTrigger;
|
|
2330
|
-
exports.Input = Input;
|
|
2331
|
-
exports.Label = Label;
|
|
2332
|
-
exports.Popover = Popover;
|
|
2333
|
-
exports.PopoverAnchor = PopoverAnchor;
|
|
2334
|
-
exports.PopoverContent = PopoverContent;
|
|
2335
|
-
exports.PopoverTrigger = PopoverTrigger;
|
|
2336
|
-
exports.PortalProvider = PortalProvider;
|
|
2337
|
-
exports.Progress = Progress;
|
|
2338
|
-
exports.RadioGroup = RadioGroup;
|
|
2339
|
-
exports.RadioGroupItem = RadioGroupItem;
|
|
2340
|
-
exports.ResponsiveTable = ResponsiveTable;
|
|
2341
|
-
exports.Select = Select;
|
|
2342
|
-
exports.SelectContent = SelectContent;
|
|
2343
|
-
exports.SelectGroup = SelectGroup;
|
|
2344
|
-
exports.SelectItem = SelectItem;
|
|
2345
|
-
exports.SelectLabel = SelectLabel;
|
|
2346
|
-
exports.SelectScrollDownButton = SelectScrollDownButton;
|
|
2347
|
-
exports.SelectScrollUpButton = SelectScrollUpButton;
|
|
2348
|
-
exports.SelectSeparator = SelectSeparator;
|
|
2349
|
-
exports.SelectTrigger = SelectTrigger;
|
|
2350
|
-
exports.SelectValue = SelectValue;
|
|
2351
|
-
exports.Separator = Separator;
|
|
2352
|
-
exports.Sheet = Sheet;
|
|
2353
|
-
exports.SheetClose = SheetClose;
|
|
2354
|
-
exports.SheetContent = SheetContent;
|
|
2355
|
-
exports.SheetDescription = SheetDescription;
|
|
2356
|
-
exports.SheetFooter = SheetFooter;
|
|
2357
|
-
exports.SheetHeader = SheetHeader;
|
|
2358
|
-
exports.SheetOverlay = SheetOverlay;
|
|
2359
|
-
exports.SheetPortal = SheetPortal;
|
|
2360
|
-
exports.SheetTitle = SheetTitle;
|
|
2361
|
-
exports.SheetTrigger = SheetTrigger;
|
|
2362
|
-
exports.Skeleton = Skeleton;
|
|
2363
|
-
exports.Spinner = Spinner;
|
|
2364
|
-
exports.Switch = Switch;
|
|
2365
|
-
exports.Table = Table;
|
|
2366
|
-
exports.TableBody = TableBody;
|
|
2367
|
-
exports.TableCaption = TableCaption;
|
|
2368
|
-
exports.TableCell = TableCell;
|
|
2369
|
-
exports.TableEmpty = TableEmpty;
|
|
2370
|
-
exports.TableError = TableError;
|
|
2371
|
-
exports.TableFooter = TableFooter;
|
|
2372
|
-
exports.TableHead = TableHead;
|
|
2373
|
-
exports.TableHeader = TableHeader;
|
|
2374
|
-
exports.TableLoading = TableLoading;
|
|
2375
|
-
exports.TablePagination = TablePagination;
|
|
2376
|
-
exports.TableRow = TableRow;
|
|
2377
|
-
exports.TableSearch = TableSearch;
|
|
2378
|
-
exports.TableSkeleton = TableSkeleton;
|
|
2379
|
-
exports.Tabs = Tabs;
|
|
2380
|
-
exports.TabsContent = TabsContent;
|
|
2381
|
-
exports.TabsList = TabsList;
|
|
2382
|
-
exports.TabsTrigger = TabsTrigger;
|
|
2383
|
-
exports.Textarea = Textarea;
|
|
2384
|
-
exports.Toaster = Toaster;
|
|
2385
|
-
exports.Tooltip = Tooltip;
|
|
2386
|
-
exports.TooltipContent = TooltipContent;
|
|
2387
|
-
exports.TooltipProvider = TooltipProvider;
|
|
2388
|
-
exports.TooltipTrigger = TooltipTrigger;
|
|
2389
|
-
exports.alertVariants = alertVariants;
|
|
2390
|
-
exports.avatarVariants = avatarVariants;
|
|
2391
|
-
exports.badgeVariants = badgeVariants;
|
|
2392
|
-
exports.buttonVariants = buttonVariants;
|
|
2393
|
-
exports.cardVariants = cardVariants;
|
|
2394
|
-
exports.cn = cn;
|
|
2395
|
-
exports.dialogContentVariants = dialogContentVariants;
|
|
2396
|
-
exports.inputVariants = inputVariants;
|
|
2397
|
-
exports.progressVariants = progressVariants;
|
|
2398
|
-
exports.selectTriggerVariants = selectTriggerVariants;
|
|
2399
|
-
exports.sheetVariants = sheetVariants;
|
|
2400
|
-
exports.spinnerVariants = spinnerVariants;
|
|
2401
|
-
exports.uiPreset = tailwind_preset_default;
|
|
2402
|
-
exports.usePortalContainer = usePortalContainer;
|
|
2403
|
-
//# sourceMappingURL=index.cjs.map
|
|
2404
2390
|
//# sourceMappingURL=index.cjs.map
|