openchad-react 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/dist/chunk-VZ7VQBAB.mjs +1525 -0
- package/dist/chunk-VZ7VQBAB.mjs.map +1 -0
- package/dist/iframe-mirror-debug-PCZ5HSWW.mjs +128 -0
- package/dist/iframe-mirror-debug-PCZ5HSWW.mjs.map +1 -0
- package/dist/index.d.mts +246 -0
- package/dist/index.d.ts +246 -0
- package/dist/index.js +11992 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +10530 -0
- package/dist/index.mjs.map +1 -0
- package/dist/ui/index.d.mts +358 -0
- package/dist/ui/index.d.ts +358 -0
- package/dist/ui/index.js +1752 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/index.mjs +80 -0
- package/dist/ui/index.mjs.map +1 -0
- package/package.json +99 -0
|
@@ -0,0 +1,1525 @@
|
|
|
1
|
+
import * as React2 from 'react';
|
|
2
|
+
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
3
|
+
import { X, Check, Circle, Search, ChevronRight, ChevronDown, ChevronUp, ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon, GripVertical, Loader2Icon } from 'lucide-react';
|
|
4
|
+
import { clsx } from 'clsx';
|
|
5
|
+
import { twMerge } from 'tailwind-merge';
|
|
6
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
7
|
+
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
8
|
+
import { Command as Command$1 } from 'cmdk';
|
|
9
|
+
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
10
|
+
import { cva } from 'class-variance-authority';
|
|
11
|
+
import { Slot } from '@radix-ui/react-slot';
|
|
12
|
+
import { getDefaultClassNames, DayPicker } from 'react-day-picker';
|
|
13
|
+
import * as RechartsPrimitive from 'recharts';
|
|
14
|
+
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
15
|
+
import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
|
|
16
|
+
import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
|
|
17
|
+
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
18
|
+
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
19
|
+
import * as ProgressPrimitive from '@radix-ui/react-progress';
|
|
20
|
+
import * as ResizablePrimitive from 'react-resizable-panels';
|
|
21
|
+
import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
|
|
22
|
+
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
23
|
+
import * as SliderPrimitive from '@radix-ui/react-slider';
|
|
24
|
+
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
25
|
+
import { Switch as Switch$1 } from 'radix-ui';
|
|
26
|
+
|
|
27
|
+
// components/ui/dialog.tsx
|
|
28
|
+
function cn(...inputs) {
|
|
29
|
+
return twMerge(clsx(inputs));
|
|
30
|
+
}
|
|
31
|
+
var Dialog = DialogPrimitive.Root;
|
|
32
|
+
var DialogTrigger = DialogPrimitive.Trigger;
|
|
33
|
+
var DialogPortal = DialogPrimitive.Portal;
|
|
34
|
+
var DialogClose = DialogPrimitive.Close;
|
|
35
|
+
var DialogOverlay = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
36
|
+
DialogPrimitive.Overlay,
|
|
37
|
+
{
|
|
38
|
+
ref,
|
|
39
|
+
className: cn(
|
|
40
|
+
"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
41
|
+
className
|
|
42
|
+
),
|
|
43
|
+
...props
|
|
44
|
+
}
|
|
45
|
+
));
|
|
46
|
+
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
47
|
+
var DialogContent = React2.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
|
|
48
|
+
/* @__PURE__ */ jsx(DialogOverlay, {}),
|
|
49
|
+
/* @__PURE__ */ jsxs(
|
|
50
|
+
DialogPrimitive.Content,
|
|
51
|
+
{
|
|
52
|
+
ref,
|
|
53
|
+
className: cn(
|
|
54
|
+
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-card px-6 pt-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-lg",
|
|
55
|
+
className
|
|
56
|
+
),
|
|
57
|
+
...props,
|
|
58
|
+
children: [
|
|
59
|
+
children,
|
|
60
|
+
/* @__PURE__ */ jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
|
|
61
|
+
/* @__PURE__ */ jsx(X, { className: "h-4 w-4" }),
|
|
62
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
63
|
+
] })
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
)
|
|
67
|
+
] }));
|
|
68
|
+
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
69
|
+
var DialogHeader = ({
|
|
70
|
+
className,
|
|
71
|
+
...props
|
|
72
|
+
}) => /* @__PURE__ */ jsx(
|
|
73
|
+
"div",
|
|
74
|
+
{
|
|
75
|
+
className: cn(
|
|
76
|
+
"flex flex-col space-y-1.5 text-center sm:text-left",
|
|
77
|
+
className
|
|
78
|
+
),
|
|
79
|
+
...props
|
|
80
|
+
}
|
|
81
|
+
);
|
|
82
|
+
DialogHeader.displayName = "DialogHeader";
|
|
83
|
+
var DialogFooter = ({
|
|
84
|
+
className,
|
|
85
|
+
...props
|
|
86
|
+
}) => /* @__PURE__ */ jsx(
|
|
87
|
+
"div",
|
|
88
|
+
{
|
|
89
|
+
className: cn(
|
|
90
|
+
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
91
|
+
className
|
|
92
|
+
),
|
|
93
|
+
...props
|
|
94
|
+
}
|
|
95
|
+
);
|
|
96
|
+
DialogFooter.displayName = "DialogFooter";
|
|
97
|
+
var DialogTitle = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
98
|
+
DialogPrimitive.Title,
|
|
99
|
+
{
|
|
100
|
+
ref,
|
|
101
|
+
className: cn(
|
|
102
|
+
"text-lg font-semibold leading-none tracking-tight",
|
|
103
|
+
className
|
|
104
|
+
),
|
|
105
|
+
...props
|
|
106
|
+
}
|
|
107
|
+
));
|
|
108
|
+
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
109
|
+
var DialogDescription = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
110
|
+
DialogPrimitive.Description,
|
|
111
|
+
{
|
|
112
|
+
ref,
|
|
113
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
114
|
+
...props
|
|
115
|
+
}
|
|
116
|
+
));
|
|
117
|
+
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
118
|
+
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
119
|
+
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
120
|
+
var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
121
|
+
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
122
|
+
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
123
|
+
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
124
|
+
var DropdownMenuSubTrigger = React2.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
125
|
+
DropdownMenuPrimitive.SubTrigger,
|
|
126
|
+
{
|
|
127
|
+
ref,
|
|
128
|
+
className: cn(
|
|
129
|
+
"flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-[hsl(var(--hoverfloat))] data-[state=open]:bg-[hsl(var(--hoverfloat))] [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
130
|
+
inset && "pl-8",
|
|
131
|
+
className
|
|
132
|
+
),
|
|
133
|
+
...props,
|
|
134
|
+
children
|
|
135
|
+
}
|
|
136
|
+
));
|
|
137
|
+
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
138
|
+
var DropdownMenuSubContent = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
139
|
+
DropdownMenuPrimitive.SubContent,
|
|
140
|
+
{
|
|
141
|
+
ref,
|
|
142
|
+
className: cn(
|
|
143
|
+
"border-[hsl(var(--accent))]/10 shadow-lg z-50 min-w-[8rem] overflow-hidden rounded-md border bg-[hsl(var(--float))] 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]",
|
|
144
|
+
className
|
|
145
|
+
),
|
|
146
|
+
...props
|
|
147
|
+
}
|
|
148
|
+
));
|
|
149
|
+
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
150
|
+
var DropdownMenuContent = React2.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
151
|
+
DropdownMenuPrimitive.Content,
|
|
152
|
+
{
|
|
153
|
+
ref,
|
|
154
|
+
sideOffset,
|
|
155
|
+
className: cn(
|
|
156
|
+
"border border-solid border-[hsl(var(--accent))]/10 z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-[hsl(var(--float))] p-1 text-popover-foreground shadow-md",
|
|
157
|
+
"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]",
|
|
158
|
+
className
|
|
159
|
+
),
|
|
160
|
+
...props
|
|
161
|
+
}
|
|
162
|
+
) }));
|
|
163
|
+
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
164
|
+
var DropdownMenuItem = React2.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
165
|
+
DropdownMenuPrimitive.Item,
|
|
166
|
+
{
|
|
167
|
+
ref,
|
|
168
|
+
className: cn(
|
|
169
|
+
"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-[hsl(var(--hoverfloat))] focus:text-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
170
|
+
inset && "pl-8",
|
|
171
|
+
className
|
|
172
|
+
),
|
|
173
|
+
...props
|
|
174
|
+
}
|
|
175
|
+
));
|
|
176
|
+
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
177
|
+
var DropdownMenuCheckboxItem = React2.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
178
|
+
DropdownMenuPrimitive.CheckboxItem,
|
|
179
|
+
{
|
|
180
|
+
ref,
|
|
181
|
+
className: cn(
|
|
182
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-[hsl(var(--hoverfloat))] focus:text-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
183
|
+
className
|
|
184
|
+
),
|
|
185
|
+
checked,
|
|
186
|
+
...props,
|
|
187
|
+
children: [
|
|
188
|
+
/* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
|
|
189
|
+
children
|
|
190
|
+
]
|
|
191
|
+
}
|
|
192
|
+
));
|
|
193
|
+
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
194
|
+
var DropdownMenuRadioItem = React2.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
195
|
+
DropdownMenuPrimitive.RadioItem,
|
|
196
|
+
{
|
|
197
|
+
ref,
|
|
198
|
+
className: cn(
|
|
199
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-[hsl(var(--hoverfloat))] focus:text-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
200
|
+
className
|
|
201
|
+
),
|
|
202
|
+
...props,
|
|
203
|
+
children: [
|
|
204
|
+
/* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
205
|
+
children
|
|
206
|
+
]
|
|
207
|
+
}
|
|
208
|
+
));
|
|
209
|
+
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
210
|
+
var DropdownMenuLabel = React2.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
211
|
+
DropdownMenuPrimitive.Label,
|
|
212
|
+
{
|
|
213
|
+
ref,
|
|
214
|
+
className: cn(
|
|
215
|
+
"px-2 py-1.5 text-sm font-semibold",
|
|
216
|
+
inset && "pl-8",
|
|
217
|
+
className
|
|
218
|
+
),
|
|
219
|
+
...props
|
|
220
|
+
}
|
|
221
|
+
));
|
|
222
|
+
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
223
|
+
var DropdownMenuSeparator = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
224
|
+
DropdownMenuPrimitive.Separator,
|
|
225
|
+
{
|
|
226
|
+
ref,
|
|
227
|
+
className: cn("-mx-1 my-1 h-px bg-accent/10", className),
|
|
228
|
+
...props
|
|
229
|
+
}
|
|
230
|
+
));
|
|
231
|
+
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
232
|
+
var DropdownMenuShortcut = ({
|
|
233
|
+
className,
|
|
234
|
+
...props
|
|
235
|
+
}) => {
|
|
236
|
+
return /* @__PURE__ */ jsx(
|
|
237
|
+
"span",
|
|
238
|
+
{
|
|
239
|
+
className: cn("ml-auto text-xs tracking-widest opacity-60", className),
|
|
240
|
+
...props
|
|
241
|
+
}
|
|
242
|
+
);
|
|
243
|
+
};
|
|
244
|
+
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
245
|
+
var Command = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
246
|
+
Command$1,
|
|
247
|
+
{
|
|
248
|
+
ref,
|
|
249
|
+
className: cn(
|
|
250
|
+
"flex h-full w-full flex-col overflow-hidden rounded-md bg-card text-popover-foreground",
|
|
251
|
+
className
|
|
252
|
+
),
|
|
253
|
+
...props
|
|
254
|
+
}
|
|
255
|
+
));
|
|
256
|
+
Command.displayName = Command$1.displayName;
|
|
257
|
+
var CommandDialog = ({ children, ...props }) => {
|
|
258
|
+
return /* @__PURE__ */ jsx(Dialog, { ...props, children: /* @__PURE__ */ jsx(DialogContent, { className: "overflow-hidden p-0", children: /* @__PURE__ */ jsx(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) }) });
|
|
259
|
+
};
|
|
260
|
+
var CommandInput = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
261
|
+
/* @__PURE__ */ jsx(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
262
|
+
/* @__PURE__ */ jsx(
|
|
263
|
+
Command$1.Input,
|
|
264
|
+
{
|
|
265
|
+
ref,
|
|
266
|
+
className: cn(
|
|
267
|
+
"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
|
|
268
|
+
className
|
|
269
|
+
),
|
|
270
|
+
...props
|
|
271
|
+
}
|
|
272
|
+
)
|
|
273
|
+
] }));
|
|
274
|
+
CommandInput.displayName = Command$1.Input.displayName;
|
|
275
|
+
var CommandList = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
276
|
+
Command$1.List,
|
|
277
|
+
{
|
|
278
|
+
ref,
|
|
279
|
+
className: cn("max-h-[300px] overflow-y-auto overflow-x-hidden", className),
|
|
280
|
+
...props
|
|
281
|
+
}
|
|
282
|
+
));
|
|
283
|
+
CommandList.displayName = Command$1.List.displayName;
|
|
284
|
+
var CommandEmpty = React2.forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
285
|
+
Command$1.Empty,
|
|
286
|
+
{
|
|
287
|
+
ref,
|
|
288
|
+
className: "py-6 text-center text-sm",
|
|
289
|
+
...props
|
|
290
|
+
}
|
|
291
|
+
));
|
|
292
|
+
CommandEmpty.displayName = Command$1.Empty.displayName;
|
|
293
|
+
var CommandGroup = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
294
|
+
Command$1.Group,
|
|
295
|
+
{
|
|
296
|
+
ref,
|
|
297
|
+
className: cn(
|
|
298
|
+
"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
|
|
299
|
+
className
|
|
300
|
+
),
|
|
301
|
+
...props
|
|
302
|
+
}
|
|
303
|
+
));
|
|
304
|
+
CommandGroup.displayName = Command$1.Group.displayName;
|
|
305
|
+
var CommandSeparator = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
306
|
+
Command$1.Separator,
|
|
307
|
+
{
|
|
308
|
+
ref,
|
|
309
|
+
className: cn("-mx-1 h-px bg-border", className),
|
|
310
|
+
...props
|
|
311
|
+
}
|
|
312
|
+
));
|
|
313
|
+
CommandSeparator.displayName = Command$1.Separator.displayName;
|
|
314
|
+
var CommandItem = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
315
|
+
Command$1.Item,
|
|
316
|
+
{
|
|
317
|
+
ref,
|
|
318
|
+
className: cn(
|
|
319
|
+
"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-[hsl(var(--hover))] data-[selected=true]:text-accent data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
320
|
+
className
|
|
321
|
+
),
|
|
322
|
+
...props
|
|
323
|
+
}
|
|
324
|
+
));
|
|
325
|
+
CommandItem.displayName = Command$1.Item.displayName;
|
|
326
|
+
var CommandShortcut = ({
|
|
327
|
+
className,
|
|
328
|
+
...props
|
|
329
|
+
}) => {
|
|
330
|
+
return /* @__PURE__ */ jsx(
|
|
331
|
+
"span",
|
|
332
|
+
{
|
|
333
|
+
className: cn(
|
|
334
|
+
"ml-auto text-xs tracking-widest text-muted-foreground",
|
|
335
|
+
className
|
|
336
|
+
),
|
|
337
|
+
...props
|
|
338
|
+
}
|
|
339
|
+
);
|
|
340
|
+
};
|
|
341
|
+
CommandShortcut.displayName = "CommandShortcut";
|
|
342
|
+
var Avatar = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
343
|
+
AvatarPrimitive.Root,
|
|
344
|
+
{
|
|
345
|
+
ref,
|
|
346
|
+
className: cn(
|
|
347
|
+
"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",
|
|
348
|
+
className
|
|
349
|
+
),
|
|
350
|
+
...props
|
|
351
|
+
}
|
|
352
|
+
));
|
|
353
|
+
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
354
|
+
var AvatarImage = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
355
|
+
AvatarPrimitive.Image,
|
|
356
|
+
{
|
|
357
|
+
ref,
|
|
358
|
+
className: cn("aspect-square h-full w-full", className),
|
|
359
|
+
...props
|
|
360
|
+
}
|
|
361
|
+
));
|
|
362
|
+
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
363
|
+
var AvatarFallback = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
364
|
+
AvatarPrimitive.Fallback,
|
|
365
|
+
{
|
|
366
|
+
ref,
|
|
367
|
+
className: cn(
|
|
368
|
+
"flex h-full w-full items-center justify-center rounded-full bg-muted",
|
|
369
|
+
className
|
|
370
|
+
),
|
|
371
|
+
...props
|
|
372
|
+
}
|
|
373
|
+
));
|
|
374
|
+
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
375
|
+
var badgeVariants = cva(
|
|
376
|
+
"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
377
|
+
{
|
|
378
|
+
variants: {
|
|
379
|
+
variant: {
|
|
380
|
+
default: "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",
|
|
381
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
382
|
+
destructive: "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",
|
|
383
|
+
outline: "text-foreground"
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
defaultVariants: {
|
|
387
|
+
variant: "default"
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
);
|
|
391
|
+
function Badge({ className, variant, ...props }) {
|
|
392
|
+
return /* @__PURE__ */ jsx("div", { className: cn(badgeVariants({ variant }), className), ...props });
|
|
393
|
+
}
|
|
394
|
+
var buttonVariants = cva(
|
|
395
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
396
|
+
{
|
|
397
|
+
variants: {
|
|
398
|
+
variant: {
|
|
399
|
+
default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
|
400
|
+
destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
|
|
401
|
+
outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
|
|
402
|
+
secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
|
|
403
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
404
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
405
|
+
},
|
|
406
|
+
size: {
|
|
407
|
+
default: "h-9 px-4 py-2",
|
|
408
|
+
sm: "h-8 rounded-md px-3 text-xs",
|
|
409
|
+
lg: "h-10 rounded-md px-8",
|
|
410
|
+
icon: "h-9 w-9"
|
|
411
|
+
}
|
|
412
|
+
},
|
|
413
|
+
defaultVariants: {
|
|
414
|
+
variant: "default",
|
|
415
|
+
size: "default"
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
);
|
|
419
|
+
var Button = React2.forwardRef(
|
|
420
|
+
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
421
|
+
const Comp = asChild ? Slot : "button";
|
|
422
|
+
return /* @__PURE__ */ jsx(
|
|
423
|
+
Comp,
|
|
424
|
+
{
|
|
425
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
426
|
+
ref,
|
|
427
|
+
...props
|
|
428
|
+
}
|
|
429
|
+
);
|
|
430
|
+
}
|
|
431
|
+
);
|
|
432
|
+
Button.displayName = "Button";
|
|
433
|
+
function Calendar({
|
|
434
|
+
className,
|
|
435
|
+
classNames,
|
|
436
|
+
showOutsideDays = true,
|
|
437
|
+
captionLayout = "label",
|
|
438
|
+
buttonVariant = "ghost",
|
|
439
|
+
formatters,
|
|
440
|
+
components,
|
|
441
|
+
...props
|
|
442
|
+
}) {
|
|
443
|
+
const defaultClassNames = getDefaultClassNames();
|
|
444
|
+
return /* @__PURE__ */ jsx(
|
|
445
|
+
DayPicker,
|
|
446
|
+
{
|
|
447
|
+
showOutsideDays,
|
|
448
|
+
className: cn(
|
|
449
|
+
"bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",
|
|
450
|
+
String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
|
|
451
|
+
String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
|
|
452
|
+
className
|
|
453
|
+
),
|
|
454
|
+
captionLayout,
|
|
455
|
+
formatters: {
|
|
456
|
+
formatMonthDropdown: (date) => date.toLocaleString("default", { month: "short" }),
|
|
457
|
+
...formatters
|
|
458
|
+
},
|
|
459
|
+
classNames: {
|
|
460
|
+
root: cn("w-fit", defaultClassNames.root),
|
|
461
|
+
months: cn(
|
|
462
|
+
"relative flex flex-col gap-4 md:flex-row",
|
|
463
|
+
defaultClassNames.months
|
|
464
|
+
),
|
|
465
|
+
month: cn("flex w-full flex-col gap-4", defaultClassNames.month),
|
|
466
|
+
nav: cn(
|
|
467
|
+
"absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",
|
|
468
|
+
defaultClassNames.nav
|
|
469
|
+
),
|
|
470
|
+
button_previous: cn(
|
|
471
|
+
buttonVariants({ variant: buttonVariant }),
|
|
472
|
+
"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",
|
|
473
|
+
defaultClassNames.button_previous
|
|
474
|
+
),
|
|
475
|
+
button_next: cn(
|
|
476
|
+
buttonVariants({ variant: buttonVariant }),
|
|
477
|
+
"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",
|
|
478
|
+
defaultClassNames.button_next
|
|
479
|
+
),
|
|
480
|
+
month_caption: cn(
|
|
481
|
+
"flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",
|
|
482
|
+
defaultClassNames.month_caption
|
|
483
|
+
),
|
|
484
|
+
dropdowns: cn(
|
|
485
|
+
"flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",
|
|
486
|
+
defaultClassNames.dropdowns
|
|
487
|
+
),
|
|
488
|
+
dropdown_root: cn(
|
|
489
|
+
"has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",
|
|
490
|
+
defaultClassNames.dropdown_root
|
|
491
|
+
),
|
|
492
|
+
dropdown: cn(
|
|
493
|
+
"bg-popover absolute inset-0 opacity-0",
|
|
494
|
+
defaultClassNames.dropdown
|
|
495
|
+
),
|
|
496
|
+
caption_label: cn(
|
|
497
|
+
"select-none font-medium",
|
|
498
|
+
captionLayout === "label" ? "text-sm" : "[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",
|
|
499
|
+
defaultClassNames.caption_label
|
|
500
|
+
),
|
|
501
|
+
table: "w-full border-collapse",
|
|
502
|
+
weekdays: cn("flex", defaultClassNames.weekdays),
|
|
503
|
+
weekday: cn(
|
|
504
|
+
"text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",
|
|
505
|
+
defaultClassNames.weekday
|
|
506
|
+
),
|
|
507
|
+
week: cn("mt-2 flex w-full", defaultClassNames.week),
|
|
508
|
+
week_number_header: cn(
|
|
509
|
+
"w-[--cell-size] select-none",
|
|
510
|
+
defaultClassNames.week_number_header
|
|
511
|
+
),
|
|
512
|
+
week_number: cn(
|
|
513
|
+
"text-muted-foreground select-none text-[0.8rem]",
|
|
514
|
+
defaultClassNames.week_number
|
|
515
|
+
),
|
|
516
|
+
day: cn(
|
|
517
|
+
"group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",
|
|
518
|
+
defaultClassNames.day
|
|
519
|
+
),
|
|
520
|
+
range_start: cn(
|
|
521
|
+
"bg-accent rounded-l-md",
|
|
522
|
+
defaultClassNames.range_start
|
|
523
|
+
),
|
|
524
|
+
range_middle: cn("rounded-none", defaultClassNames.range_middle),
|
|
525
|
+
range_end: cn("bg-accent rounded-r-md", defaultClassNames.range_end),
|
|
526
|
+
today: cn(
|
|
527
|
+
"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",
|
|
528
|
+
defaultClassNames.today
|
|
529
|
+
),
|
|
530
|
+
outside: cn(
|
|
531
|
+
"text-muted-foreground aria-selected:text-muted-foreground",
|
|
532
|
+
defaultClassNames.outside
|
|
533
|
+
),
|
|
534
|
+
disabled: cn(
|
|
535
|
+
"text-muted-foreground opacity-50",
|
|
536
|
+
defaultClassNames.disabled
|
|
537
|
+
),
|
|
538
|
+
hidden: cn("invisible", defaultClassNames.hidden),
|
|
539
|
+
...classNames
|
|
540
|
+
},
|
|
541
|
+
components: {
|
|
542
|
+
Root: ({ className: className2, rootRef, ...props2 }) => {
|
|
543
|
+
return /* @__PURE__ */ jsx(
|
|
544
|
+
"div",
|
|
545
|
+
{
|
|
546
|
+
"data-slot": "calendar",
|
|
547
|
+
ref: rootRef,
|
|
548
|
+
className: cn(className2),
|
|
549
|
+
...props2
|
|
550
|
+
}
|
|
551
|
+
);
|
|
552
|
+
},
|
|
553
|
+
Chevron: ({ className: className2, orientation, ...props2 }) => {
|
|
554
|
+
if (orientation === "left") {
|
|
555
|
+
return /* @__PURE__ */ jsx(ChevronLeftIcon, { className: cn("size-4", className2), ...props2 });
|
|
556
|
+
}
|
|
557
|
+
if (orientation === "right") {
|
|
558
|
+
return /* @__PURE__ */ jsx(
|
|
559
|
+
ChevronRightIcon,
|
|
560
|
+
{
|
|
561
|
+
className: cn("size-4", className2),
|
|
562
|
+
...props2
|
|
563
|
+
}
|
|
564
|
+
);
|
|
565
|
+
}
|
|
566
|
+
return /* @__PURE__ */ jsx(ChevronDownIcon, { className: cn("size-4", className2), ...props2 });
|
|
567
|
+
},
|
|
568
|
+
DayButton: CalendarDayButton,
|
|
569
|
+
WeekNumber: ({ children, ...props2 }) => {
|
|
570
|
+
return /* @__PURE__ */ jsx("td", { ...props2, children: /* @__PURE__ */ jsx("div", { className: "flex size-[--cell-size] items-center justify-center text-center", children }) });
|
|
571
|
+
},
|
|
572
|
+
...components
|
|
573
|
+
},
|
|
574
|
+
...props
|
|
575
|
+
}
|
|
576
|
+
);
|
|
577
|
+
}
|
|
578
|
+
function CalendarDayButton({
|
|
579
|
+
className,
|
|
580
|
+
day,
|
|
581
|
+
modifiers,
|
|
582
|
+
...props
|
|
583
|
+
}) {
|
|
584
|
+
const defaultClassNames = getDefaultClassNames();
|
|
585
|
+
const ref = React2.useRef(null);
|
|
586
|
+
React2.useEffect(() => {
|
|
587
|
+
if (modifiers.focused) ref.current?.focus();
|
|
588
|
+
}, [modifiers.focused]);
|
|
589
|
+
return /* @__PURE__ */ jsx(
|
|
590
|
+
Button,
|
|
591
|
+
{
|
|
592
|
+
ref,
|
|
593
|
+
variant: "ghost",
|
|
594
|
+
size: "icon",
|
|
595
|
+
"data-day": day.date.toLocaleDateString(),
|
|
596
|
+
"data-selected-single": modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle,
|
|
597
|
+
"data-range-start": modifiers.range_start,
|
|
598
|
+
"data-range-end": modifiers.range_end,
|
|
599
|
+
"data-range-middle": modifiers.range_middle,
|
|
600
|
+
className: cn(
|
|
601
|
+
"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",
|
|
602
|
+
defaultClassNames.day,
|
|
603
|
+
className
|
|
604
|
+
),
|
|
605
|
+
...props
|
|
606
|
+
}
|
|
607
|
+
);
|
|
608
|
+
}
|
|
609
|
+
var Card = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
610
|
+
"div",
|
|
611
|
+
{
|
|
612
|
+
ref,
|
|
613
|
+
className: cn(
|
|
614
|
+
"rounded-xl border bg-card text-card-foreground shadow",
|
|
615
|
+
className
|
|
616
|
+
),
|
|
617
|
+
...props
|
|
618
|
+
}
|
|
619
|
+
));
|
|
620
|
+
Card.displayName = "Card";
|
|
621
|
+
var CardHeader = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
622
|
+
"div",
|
|
623
|
+
{
|
|
624
|
+
ref,
|
|
625
|
+
className: cn("flex flex-col space-y-1.5 p-6", className),
|
|
626
|
+
...props
|
|
627
|
+
}
|
|
628
|
+
));
|
|
629
|
+
CardHeader.displayName = "CardHeader";
|
|
630
|
+
var CardTitle = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
631
|
+
"div",
|
|
632
|
+
{
|
|
633
|
+
ref,
|
|
634
|
+
className: cn("font-semibold leading-none tracking-tight", className),
|
|
635
|
+
...props
|
|
636
|
+
}
|
|
637
|
+
));
|
|
638
|
+
CardTitle.displayName = "CardTitle";
|
|
639
|
+
var CardDescription = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
640
|
+
"div",
|
|
641
|
+
{
|
|
642
|
+
ref,
|
|
643
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
644
|
+
...props
|
|
645
|
+
}
|
|
646
|
+
));
|
|
647
|
+
CardDescription.displayName = "CardDescription";
|
|
648
|
+
var CardContent = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-6 pt-0", className), ...props }));
|
|
649
|
+
CardContent.displayName = "CardContent";
|
|
650
|
+
var CardFooter = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
651
|
+
"div",
|
|
652
|
+
{
|
|
653
|
+
ref,
|
|
654
|
+
className: cn("flex items-center p-6 pt-0", className),
|
|
655
|
+
...props
|
|
656
|
+
}
|
|
657
|
+
));
|
|
658
|
+
CardFooter.displayName = "CardFooter";
|
|
659
|
+
var THEMES = { light: "", dark: ".dark" };
|
|
660
|
+
var ChartContext = React2.createContext(null);
|
|
661
|
+
function useChart() {
|
|
662
|
+
const context = React2.useContext(ChartContext);
|
|
663
|
+
if (!context) {
|
|
664
|
+
throw new Error("useChart must be used within a <ChartContainer />");
|
|
665
|
+
}
|
|
666
|
+
return context;
|
|
667
|
+
}
|
|
668
|
+
var ChartContainer = React2.forwardRef(({ id, className, children, config, ...props }, ref) => {
|
|
669
|
+
const uniqueId = React2.useId();
|
|
670
|
+
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
671
|
+
return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
|
|
672
|
+
"div",
|
|
673
|
+
{
|
|
674
|
+
"data-chart": chartId,
|
|
675
|
+
ref,
|
|
676
|
+
className: cn(
|
|
677
|
+
"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",
|
|
678
|
+
className
|
|
679
|
+
),
|
|
680
|
+
...props,
|
|
681
|
+
children: [
|
|
682
|
+
/* @__PURE__ */ jsx(ChartStyle, { id: chartId, config }),
|
|
683
|
+
/* @__PURE__ */ jsx(RechartsPrimitive.ResponsiveContainer, { children })
|
|
684
|
+
]
|
|
685
|
+
}
|
|
686
|
+
) });
|
|
687
|
+
});
|
|
688
|
+
ChartContainer.displayName = "Chart";
|
|
689
|
+
var ChartStyle = ({ id, config }) => {
|
|
690
|
+
const colorConfig = Object.entries(config).filter(
|
|
691
|
+
([, config2]) => config2.theme || config2.color
|
|
692
|
+
);
|
|
693
|
+
if (!colorConfig.length) {
|
|
694
|
+
return null;
|
|
695
|
+
}
|
|
696
|
+
return /* @__PURE__ */ jsx(
|
|
697
|
+
"style",
|
|
698
|
+
{
|
|
699
|
+
dangerouslySetInnerHTML: {
|
|
700
|
+
__html: Object.entries(THEMES).map(
|
|
701
|
+
([theme, prefix]) => `
|
|
702
|
+
${prefix} [data-chart=${id}] {
|
|
703
|
+
${colorConfig.map(([key, itemConfig]) => {
|
|
704
|
+
const color = itemConfig.theme?.[theme] || itemConfig.color;
|
|
705
|
+
return color ? ` --color-${key}: ${color};` : null;
|
|
706
|
+
}).join("\n")}
|
|
707
|
+
}
|
|
708
|
+
`
|
|
709
|
+
).join("\n")
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
);
|
|
713
|
+
};
|
|
714
|
+
var ChartTooltip = RechartsPrimitive.Tooltip;
|
|
715
|
+
var ChartTooltipContent = React2.forwardRef(
|
|
716
|
+
({
|
|
717
|
+
active,
|
|
718
|
+
payload,
|
|
719
|
+
className,
|
|
720
|
+
indicator = "dot",
|
|
721
|
+
hideLabel = false,
|
|
722
|
+
hideIndicator = false,
|
|
723
|
+
label,
|
|
724
|
+
labelFormatter,
|
|
725
|
+
labelClassName,
|
|
726
|
+
formatter,
|
|
727
|
+
color,
|
|
728
|
+
nameKey,
|
|
729
|
+
labelKey
|
|
730
|
+
}, ref) => {
|
|
731
|
+
const { config } = useChart();
|
|
732
|
+
const tooltipLabel = React2.useMemo(() => {
|
|
733
|
+
if (hideLabel || !payload?.length) {
|
|
734
|
+
return null;
|
|
735
|
+
}
|
|
736
|
+
const [item] = payload;
|
|
737
|
+
const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
|
|
738
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
739
|
+
const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
|
|
740
|
+
if (labelFormatter) {
|
|
741
|
+
return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
|
|
742
|
+
}
|
|
743
|
+
if (!value) {
|
|
744
|
+
return null;
|
|
745
|
+
}
|
|
746
|
+
return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: value });
|
|
747
|
+
}, [
|
|
748
|
+
label,
|
|
749
|
+
labelFormatter,
|
|
750
|
+
payload,
|
|
751
|
+
hideLabel,
|
|
752
|
+
labelClassName,
|
|
753
|
+
config,
|
|
754
|
+
labelKey
|
|
755
|
+
]);
|
|
756
|
+
if (!active || !payload?.length) {
|
|
757
|
+
return null;
|
|
758
|
+
}
|
|
759
|
+
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
760
|
+
return /* @__PURE__ */ jsxs(
|
|
761
|
+
"div",
|
|
762
|
+
{
|
|
763
|
+
ref,
|
|
764
|
+
className: cn(
|
|
765
|
+
"grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
|
|
766
|
+
className
|
|
767
|
+
),
|
|
768
|
+
children: [
|
|
769
|
+
!nestLabel ? tooltipLabel : null,
|
|
770
|
+
/* @__PURE__ */ jsx("div", { className: "grid gap-1.5", children: payload.filter((item) => item.type !== "none").map((item, index) => {
|
|
771
|
+
const key = `${nameKey || item.name || item.dataKey || "value"}`;
|
|
772
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
773
|
+
const indicatorColor = color || item.payload.fill || item.color;
|
|
774
|
+
return /* @__PURE__ */ jsx(
|
|
775
|
+
"div",
|
|
776
|
+
{
|
|
777
|
+
className: cn(
|
|
778
|
+
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
|
|
779
|
+
indicator === "dot" && "items-center"
|
|
780
|
+
),
|
|
781
|
+
children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
782
|
+
itemConfig?.icon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx(
|
|
783
|
+
"div",
|
|
784
|
+
{
|
|
785
|
+
className: cn(
|
|
786
|
+
"shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",
|
|
787
|
+
{
|
|
788
|
+
"h-2.5 w-2.5": indicator === "dot",
|
|
789
|
+
"w-1": indicator === "line",
|
|
790
|
+
"w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
|
|
791
|
+
"my-0.5": nestLabel && indicator === "dashed"
|
|
792
|
+
}
|
|
793
|
+
),
|
|
794
|
+
style: {
|
|
795
|
+
"--color-bg": indicatorColor,
|
|
796
|
+
"--color-border": indicatorColor
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
),
|
|
800
|
+
/* @__PURE__ */ jsxs(
|
|
801
|
+
"div",
|
|
802
|
+
{
|
|
803
|
+
className: cn(
|
|
804
|
+
"flex flex-1 justify-between leading-none",
|
|
805
|
+
nestLabel ? "items-end" : "items-center"
|
|
806
|
+
),
|
|
807
|
+
children: [
|
|
808
|
+
/* @__PURE__ */ jsxs("div", { className: "grid gap-1.5", children: [
|
|
809
|
+
nestLabel ? tooltipLabel : null,
|
|
810
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
|
|
811
|
+
] }),
|
|
812
|
+
item.value && /* @__PURE__ */ jsx("span", { className: "font-mono font-medium tabular-nums text-foreground", children: item.value.toLocaleString() })
|
|
813
|
+
]
|
|
814
|
+
}
|
|
815
|
+
)
|
|
816
|
+
] })
|
|
817
|
+
},
|
|
818
|
+
item.dataKey
|
|
819
|
+
);
|
|
820
|
+
}) })
|
|
821
|
+
]
|
|
822
|
+
}
|
|
823
|
+
);
|
|
824
|
+
}
|
|
825
|
+
);
|
|
826
|
+
ChartTooltipContent.displayName = "ChartTooltip";
|
|
827
|
+
var ChartLegend = RechartsPrimitive.Legend;
|
|
828
|
+
var ChartLegendContent = React2.forwardRef(
|
|
829
|
+
({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, ref) => {
|
|
830
|
+
const { config } = useChart();
|
|
831
|
+
if (!payload?.length) {
|
|
832
|
+
return null;
|
|
833
|
+
}
|
|
834
|
+
return /* @__PURE__ */ jsx(
|
|
835
|
+
"div",
|
|
836
|
+
{
|
|
837
|
+
ref,
|
|
838
|
+
className: cn(
|
|
839
|
+
"flex items-center justify-center gap-4",
|
|
840
|
+
verticalAlign === "top" ? "pb-3" : "pt-3",
|
|
841
|
+
className
|
|
842
|
+
),
|
|
843
|
+
children: payload.filter((item) => item.type !== "none").map((item) => {
|
|
844
|
+
const key = `${nameKey || item.dataKey || "value"}`;
|
|
845
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
846
|
+
return /* @__PURE__ */ jsxs(
|
|
847
|
+
"div",
|
|
848
|
+
{
|
|
849
|
+
className: cn(
|
|
850
|
+
"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"
|
|
851
|
+
),
|
|
852
|
+
children: [
|
|
853
|
+
itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsx(
|
|
854
|
+
"div",
|
|
855
|
+
{
|
|
856
|
+
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
857
|
+
style: {
|
|
858
|
+
backgroundColor: item.color
|
|
859
|
+
}
|
|
860
|
+
}
|
|
861
|
+
),
|
|
862
|
+
itemConfig?.label
|
|
863
|
+
]
|
|
864
|
+
},
|
|
865
|
+
item.value
|
|
866
|
+
);
|
|
867
|
+
})
|
|
868
|
+
}
|
|
869
|
+
);
|
|
870
|
+
}
|
|
871
|
+
);
|
|
872
|
+
ChartLegendContent.displayName = "ChartLegend";
|
|
873
|
+
function getPayloadConfigFromPayload(config, payload, key) {
|
|
874
|
+
if (typeof payload !== "object" || payload === null) {
|
|
875
|
+
return void 0;
|
|
876
|
+
}
|
|
877
|
+
const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
|
|
878
|
+
let configLabelKey = key;
|
|
879
|
+
if (key in payload && typeof payload[key] === "string") {
|
|
880
|
+
configLabelKey = payload[key];
|
|
881
|
+
} else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
|
|
882
|
+
configLabelKey = payloadPayload[key];
|
|
883
|
+
}
|
|
884
|
+
return configLabelKey in config ? config[configLabelKey] : config[key];
|
|
885
|
+
}
|
|
886
|
+
var Checkbox = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
887
|
+
CheckboxPrimitive.Root,
|
|
888
|
+
{
|
|
889
|
+
ref,
|
|
890
|
+
className: cn(
|
|
891
|
+
"peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
|
|
892
|
+
className
|
|
893
|
+
),
|
|
894
|
+
...props,
|
|
895
|
+
children: /* @__PURE__ */ jsx(
|
|
896
|
+
CheckboxPrimitive.Indicator,
|
|
897
|
+
{
|
|
898
|
+
className: cn("flex items-center justify-center text-current", className?.includes("rounded-full") && className),
|
|
899
|
+
children: !className?.includes("rounded-full") && /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" })
|
|
900
|
+
}
|
|
901
|
+
)
|
|
902
|
+
}
|
|
903
|
+
));
|
|
904
|
+
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
905
|
+
var ContextMenu = ContextMenuPrimitive.Root;
|
|
906
|
+
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
907
|
+
var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
908
|
+
var ContextMenuPortal = ContextMenuPrimitive.Portal;
|
|
909
|
+
var ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
910
|
+
var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
911
|
+
var ContextMenuSubTrigger = React2.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
912
|
+
ContextMenuPrimitive.SubTrigger,
|
|
913
|
+
{
|
|
914
|
+
ref,
|
|
915
|
+
className: cn(
|
|
916
|
+
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-[hsl(var(--hover))] focus:text-accent data-[state=open]:bg-card data-[state=open]:text-accent",
|
|
917
|
+
inset && "pl-8",
|
|
918
|
+
className
|
|
919
|
+
),
|
|
920
|
+
...props,
|
|
921
|
+
children: [
|
|
922
|
+
children,
|
|
923
|
+
/* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
924
|
+
]
|
|
925
|
+
}
|
|
926
|
+
));
|
|
927
|
+
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
928
|
+
var ContextMenuSubContent = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
929
|
+
ContextMenuPrimitive.SubContent,
|
|
930
|
+
{
|
|
931
|
+
ref,
|
|
932
|
+
className: cn(
|
|
933
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-card p-1 text-accent 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-context-menu-content-transform-origin]",
|
|
934
|
+
className
|
|
935
|
+
),
|
|
936
|
+
...props
|
|
937
|
+
}
|
|
938
|
+
));
|
|
939
|
+
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
940
|
+
var ContextMenuContent = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
941
|
+
ContextMenuPrimitive.Content,
|
|
942
|
+
{
|
|
943
|
+
ref,
|
|
944
|
+
onContextMenu: (e) => {
|
|
945
|
+
e.preventDefault();
|
|
946
|
+
},
|
|
947
|
+
className: cn(
|
|
948
|
+
"z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-card p-1 text-accent 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-context-menu-content-transform-origin]",
|
|
949
|
+
className
|
|
950
|
+
),
|
|
951
|
+
...props
|
|
952
|
+
}
|
|
953
|
+
) }));
|
|
954
|
+
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
955
|
+
var ContextMenuItem = React2.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
956
|
+
ContextMenuPrimitive.Item,
|
|
957
|
+
{
|
|
958
|
+
ref,
|
|
959
|
+
className: cn(
|
|
960
|
+
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-[hsl(var(--hover))] focus:text-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
961
|
+
inset && "pl-8",
|
|
962
|
+
className
|
|
963
|
+
),
|
|
964
|
+
...props
|
|
965
|
+
}
|
|
966
|
+
));
|
|
967
|
+
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
968
|
+
var ContextMenuCheckboxItem = React2.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
969
|
+
ContextMenuPrimitive.CheckboxItem,
|
|
970
|
+
{
|
|
971
|
+
ref,
|
|
972
|
+
className: cn(
|
|
973
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
974
|
+
className
|
|
975
|
+
),
|
|
976
|
+
checked,
|
|
977
|
+
...props,
|
|
978
|
+
children: [
|
|
979
|
+
/* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
|
|
980
|
+
children
|
|
981
|
+
]
|
|
982
|
+
}
|
|
983
|
+
));
|
|
984
|
+
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
985
|
+
var ContextMenuRadioItem = React2.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
986
|
+
ContextMenuPrimitive.RadioItem,
|
|
987
|
+
{
|
|
988
|
+
ref,
|
|
989
|
+
className: cn(
|
|
990
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
991
|
+
className
|
|
992
|
+
),
|
|
993
|
+
...props,
|
|
994
|
+
children: [
|
|
995
|
+
/* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-4 w-4 fill-current" }) }) }),
|
|
996
|
+
children
|
|
997
|
+
]
|
|
998
|
+
}
|
|
999
|
+
));
|
|
1000
|
+
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
1001
|
+
var ContextMenuLabel = React2.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1002
|
+
ContextMenuPrimitive.Label,
|
|
1003
|
+
{
|
|
1004
|
+
ref,
|
|
1005
|
+
className: cn(
|
|
1006
|
+
"px-2 py-1.5 text-sm font-semibold text-foreground",
|
|
1007
|
+
inset && "pl-8",
|
|
1008
|
+
className
|
|
1009
|
+
),
|
|
1010
|
+
...props
|
|
1011
|
+
}
|
|
1012
|
+
));
|
|
1013
|
+
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
1014
|
+
var ContextMenuSeparator = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1015
|
+
ContextMenuPrimitive.Separator,
|
|
1016
|
+
{
|
|
1017
|
+
ref,
|
|
1018
|
+
className: cn("-mx-1 my-1 h-px bg-border", className),
|
|
1019
|
+
...props
|
|
1020
|
+
}
|
|
1021
|
+
));
|
|
1022
|
+
ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
1023
|
+
var ContextMenuShortcut = ({
|
|
1024
|
+
className,
|
|
1025
|
+
...props
|
|
1026
|
+
}) => {
|
|
1027
|
+
return /* @__PURE__ */ jsx(
|
|
1028
|
+
"span",
|
|
1029
|
+
{
|
|
1030
|
+
className: cn(
|
|
1031
|
+
"ml-auto text-xs tracking-widest text-muted-foreground",
|
|
1032
|
+
className
|
|
1033
|
+
),
|
|
1034
|
+
...props
|
|
1035
|
+
}
|
|
1036
|
+
);
|
|
1037
|
+
};
|
|
1038
|
+
ContextMenuShortcut.displayName = "ContextMenuShortcut";
|
|
1039
|
+
function Empty({ className, ...props }) {
|
|
1040
|
+
return /* @__PURE__ */ jsx(
|
|
1041
|
+
"div",
|
|
1042
|
+
{
|
|
1043
|
+
"data-slot": "empty",
|
|
1044
|
+
className: cn(
|
|
1045
|
+
"flex min-w-0 flex-1 flex-col items-center justify-center gap-6 text-balance rounded-lg border-dashed p-6 text-center md:p-12",
|
|
1046
|
+
className
|
|
1047
|
+
),
|
|
1048
|
+
...props
|
|
1049
|
+
}
|
|
1050
|
+
);
|
|
1051
|
+
}
|
|
1052
|
+
function EmptyHeader({ className, ...props }) {
|
|
1053
|
+
return /* @__PURE__ */ jsx(
|
|
1054
|
+
"div",
|
|
1055
|
+
{
|
|
1056
|
+
"data-slot": "empty-header",
|
|
1057
|
+
className: cn(
|
|
1058
|
+
"flex max-w-sm flex-col items-center gap-2 text-center",
|
|
1059
|
+
className
|
|
1060
|
+
),
|
|
1061
|
+
...props
|
|
1062
|
+
}
|
|
1063
|
+
);
|
|
1064
|
+
}
|
|
1065
|
+
var emptyMediaVariants = cva(
|
|
1066
|
+
"mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
1067
|
+
{
|
|
1068
|
+
variants: {
|
|
1069
|
+
variant: {
|
|
1070
|
+
default: "bg-transparent",
|
|
1071
|
+
icon: "bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6"
|
|
1072
|
+
}
|
|
1073
|
+
},
|
|
1074
|
+
defaultVariants: {
|
|
1075
|
+
variant: "default"
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
);
|
|
1079
|
+
function EmptyMedia({
|
|
1080
|
+
className,
|
|
1081
|
+
variant = "default",
|
|
1082
|
+
...props
|
|
1083
|
+
}) {
|
|
1084
|
+
return /* @__PURE__ */ jsx(
|
|
1085
|
+
"div",
|
|
1086
|
+
{
|
|
1087
|
+
"data-slot": "empty-icon",
|
|
1088
|
+
"data-variant": variant,
|
|
1089
|
+
className: cn(emptyMediaVariants({ variant, className })),
|
|
1090
|
+
...props
|
|
1091
|
+
}
|
|
1092
|
+
);
|
|
1093
|
+
}
|
|
1094
|
+
function EmptyTitle({ className, ...props }) {
|
|
1095
|
+
return /* @__PURE__ */ jsx(
|
|
1096
|
+
"div",
|
|
1097
|
+
{
|
|
1098
|
+
"data-slot": "empty-title",
|
|
1099
|
+
className: cn("text-lg font-medium tracking-tight", className),
|
|
1100
|
+
...props
|
|
1101
|
+
}
|
|
1102
|
+
);
|
|
1103
|
+
}
|
|
1104
|
+
function EmptyDescription({ className, ...props }) {
|
|
1105
|
+
return /* @__PURE__ */ jsx(
|
|
1106
|
+
"div",
|
|
1107
|
+
{
|
|
1108
|
+
"data-slot": "empty-description",
|
|
1109
|
+
className: cn(
|
|
1110
|
+
"text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4",
|
|
1111
|
+
className
|
|
1112
|
+
),
|
|
1113
|
+
...props
|
|
1114
|
+
}
|
|
1115
|
+
);
|
|
1116
|
+
}
|
|
1117
|
+
function EmptyContent({ className, ...props }) {
|
|
1118
|
+
return /* @__PURE__ */ jsx(
|
|
1119
|
+
"div",
|
|
1120
|
+
{
|
|
1121
|
+
"data-slot": "empty-content",
|
|
1122
|
+
className: cn(
|
|
1123
|
+
"flex w-full min-w-0 max-w-sm flex-col items-center gap-4 text-balance text-sm",
|
|
1124
|
+
className
|
|
1125
|
+
),
|
|
1126
|
+
...props
|
|
1127
|
+
}
|
|
1128
|
+
);
|
|
1129
|
+
}
|
|
1130
|
+
var HoverCard = HoverCardPrimitive.Root;
|
|
1131
|
+
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
1132
|
+
var HoverCardContent = React2.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1133
|
+
HoverCardPrimitive.Content,
|
|
1134
|
+
{
|
|
1135
|
+
ref,
|
|
1136
|
+
align,
|
|
1137
|
+
sideOffset,
|
|
1138
|
+
className: cn(
|
|
1139
|
+
"z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-hover-card-content-transform-origin]",
|
|
1140
|
+
className
|
|
1141
|
+
),
|
|
1142
|
+
...props
|
|
1143
|
+
}
|
|
1144
|
+
));
|
|
1145
|
+
HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
1146
|
+
var Input = React2.forwardRef(
|
|
1147
|
+
({ className, type, ...props }, ref) => {
|
|
1148
|
+
return /* @__PURE__ */ jsx(
|
|
1149
|
+
"input",
|
|
1150
|
+
{
|
|
1151
|
+
type,
|
|
1152
|
+
className: cn(
|
|
1153
|
+
"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
1154
|
+
className
|
|
1155
|
+
),
|
|
1156
|
+
ref,
|
|
1157
|
+
...props
|
|
1158
|
+
}
|
|
1159
|
+
);
|
|
1160
|
+
}
|
|
1161
|
+
);
|
|
1162
|
+
Input.displayName = "Input";
|
|
1163
|
+
var labelVariants = cva(
|
|
1164
|
+
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
1165
|
+
);
|
|
1166
|
+
var Label3 = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1167
|
+
LabelPrimitive.Root,
|
|
1168
|
+
{
|
|
1169
|
+
ref,
|
|
1170
|
+
className: cn(labelVariants(), className),
|
|
1171
|
+
...props
|
|
1172
|
+
}
|
|
1173
|
+
));
|
|
1174
|
+
Label3.displayName = LabelPrimitive.Root.displayName;
|
|
1175
|
+
var Popover = PopoverPrimitive.Root;
|
|
1176
|
+
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
1177
|
+
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
1178
|
+
var PopoverContent = React2.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
1179
|
+
PopoverPrimitive.Content,
|
|
1180
|
+
{
|
|
1181
|
+
ref,
|
|
1182
|
+
align,
|
|
1183
|
+
sideOffset,
|
|
1184
|
+
className: cn(
|
|
1185
|
+
"z-50 w-72 rounded-md border bg-card 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]",
|
|
1186
|
+
className
|
|
1187
|
+
),
|
|
1188
|
+
...props
|
|
1189
|
+
}
|
|
1190
|
+
) }));
|
|
1191
|
+
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
1192
|
+
var Progress = React2.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1193
|
+
ProgressPrimitive.Root,
|
|
1194
|
+
{
|
|
1195
|
+
ref,
|
|
1196
|
+
className: cn(
|
|
1197
|
+
"relative h-2 w-full overflow-hidden rounded-full bg-primary/20",
|
|
1198
|
+
className
|
|
1199
|
+
),
|
|
1200
|
+
...props,
|
|
1201
|
+
children: /* @__PURE__ */ jsx(
|
|
1202
|
+
ProgressPrimitive.Indicator,
|
|
1203
|
+
{
|
|
1204
|
+
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
1205
|
+
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
1206
|
+
}
|
|
1207
|
+
)
|
|
1208
|
+
}
|
|
1209
|
+
));
|
|
1210
|
+
Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
1211
|
+
var ResizablePanelGroup = ({
|
|
1212
|
+
className,
|
|
1213
|
+
...props
|
|
1214
|
+
}) => /* @__PURE__ */ jsx(
|
|
1215
|
+
ResizablePrimitive.PanelGroup,
|
|
1216
|
+
{
|
|
1217
|
+
className: cn(
|
|
1218
|
+
"flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
|
|
1219
|
+
className
|
|
1220
|
+
),
|
|
1221
|
+
...props
|
|
1222
|
+
}
|
|
1223
|
+
);
|
|
1224
|
+
var ResizablePanel = ResizablePrimitive.Panel;
|
|
1225
|
+
var ResizableHandle = ({
|
|
1226
|
+
withHandle,
|
|
1227
|
+
className,
|
|
1228
|
+
...props
|
|
1229
|
+
}) => /* @__PURE__ */ jsx(
|
|
1230
|
+
ResizablePrimitive.PanelResizeHandle,
|
|
1231
|
+
{
|
|
1232
|
+
className: cn(
|
|
1233
|
+
"relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
|
|
1234
|
+
className
|
|
1235
|
+
),
|
|
1236
|
+
...props,
|
|
1237
|
+
children: withHandle && /* @__PURE__ */ jsx("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsx(GripVertical, { className: "h-2.5 w-2.5" }) })
|
|
1238
|
+
}
|
|
1239
|
+
);
|
|
1240
|
+
var ScrollArea = React2.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
1241
|
+
ScrollAreaPrimitive.Root,
|
|
1242
|
+
{
|
|
1243
|
+
ref,
|
|
1244
|
+
className: cn("relative overflow-hidden", className),
|
|
1245
|
+
...props,
|
|
1246
|
+
children: [
|
|
1247
|
+
/* @__PURE__ */ jsx(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
|
|
1248
|
+
/* @__PURE__ */ jsx(ScrollBar, {}),
|
|
1249
|
+
/* @__PURE__ */ jsx(ScrollAreaPrimitive.Corner, {})
|
|
1250
|
+
]
|
|
1251
|
+
}
|
|
1252
|
+
));
|
|
1253
|
+
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
1254
|
+
var ScrollBar = React2.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1255
|
+
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
1256
|
+
{
|
|
1257
|
+
ref,
|
|
1258
|
+
orientation,
|
|
1259
|
+
className: cn(
|
|
1260
|
+
"flex touch-none select-none transition-colors",
|
|
1261
|
+
orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-[1px]",
|
|
1262
|
+
orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-[1px]",
|
|
1263
|
+
className
|
|
1264
|
+
),
|
|
1265
|
+
...props,
|
|
1266
|
+
children: /* @__PURE__ */ jsx(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
|
|
1267
|
+
}
|
|
1268
|
+
));
|
|
1269
|
+
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
1270
|
+
var Select = SelectPrimitive.Root;
|
|
1271
|
+
var SelectGroup = SelectPrimitive.Group;
|
|
1272
|
+
var SelectValue = SelectPrimitive.Value;
|
|
1273
|
+
var SelectTrigger = React2.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
1274
|
+
SelectPrimitive.Trigger,
|
|
1275
|
+
{
|
|
1276
|
+
ref,
|
|
1277
|
+
className: cn(
|
|
1278
|
+
"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
|
|
1279
|
+
className
|
|
1280
|
+
),
|
|
1281
|
+
...props,
|
|
1282
|
+
children: [
|
|
1283
|
+
children,
|
|
1284
|
+
/* @__PURE__ */ jsx(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4 opacity-50" }) })
|
|
1285
|
+
]
|
|
1286
|
+
}
|
|
1287
|
+
));
|
|
1288
|
+
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
1289
|
+
var SelectScrollUpButton = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1290
|
+
SelectPrimitive.ScrollUpButton,
|
|
1291
|
+
{
|
|
1292
|
+
ref,
|
|
1293
|
+
className: cn(
|
|
1294
|
+
"flex cursor-default items-center justify-center py-1",
|
|
1295
|
+
className
|
|
1296
|
+
),
|
|
1297
|
+
...props,
|
|
1298
|
+
children: /* @__PURE__ */ jsx(ChevronUp, { className: "h-4 w-4" })
|
|
1299
|
+
}
|
|
1300
|
+
));
|
|
1301
|
+
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
1302
|
+
var SelectScrollDownButton = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1303
|
+
SelectPrimitive.ScrollDownButton,
|
|
1304
|
+
{
|
|
1305
|
+
ref,
|
|
1306
|
+
className: cn(
|
|
1307
|
+
"flex cursor-default items-center justify-center py-1",
|
|
1308
|
+
className
|
|
1309
|
+
),
|
|
1310
|
+
...props,
|
|
1311
|
+
children: /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4" })
|
|
1312
|
+
}
|
|
1313
|
+
));
|
|
1314
|
+
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
1315
|
+
var SelectContent = React2.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
|
|
1316
|
+
SelectPrimitive.Content,
|
|
1317
|
+
{
|
|
1318
|
+
ref,
|
|
1319
|
+
className: cn(
|
|
1320
|
+
"relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover 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-select-content-transform-origin]",
|
|
1321
|
+
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",
|
|
1322
|
+
className
|
|
1323
|
+
),
|
|
1324
|
+
position,
|
|
1325
|
+
...props,
|
|
1326
|
+
children: [
|
|
1327
|
+
/* @__PURE__ */ jsx(SelectScrollUpButton, {}),
|
|
1328
|
+
/* @__PURE__ */ jsx(
|
|
1329
|
+
SelectPrimitive.Viewport,
|
|
1330
|
+
{
|
|
1331
|
+
className: cn(
|
|
1332
|
+
"p-1",
|
|
1333
|
+
position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
|
|
1334
|
+
),
|
|
1335
|
+
children
|
|
1336
|
+
}
|
|
1337
|
+
),
|
|
1338
|
+
/* @__PURE__ */ jsx(SelectScrollDownButton, {})
|
|
1339
|
+
]
|
|
1340
|
+
}
|
|
1341
|
+
) }));
|
|
1342
|
+
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
1343
|
+
var SelectLabel = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1344
|
+
SelectPrimitive.Label,
|
|
1345
|
+
{
|
|
1346
|
+
ref,
|
|
1347
|
+
className: cn("px-2 py-1.5 text-sm font-semibold", className),
|
|
1348
|
+
...props
|
|
1349
|
+
}
|
|
1350
|
+
));
|
|
1351
|
+
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
1352
|
+
var SelectItem = React2.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
1353
|
+
SelectPrimitive.Item,
|
|
1354
|
+
{
|
|
1355
|
+
ref,
|
|
1356
|
+
className: cn(
|
|
1357
|
+
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
1358
|
+
className
|
|
1359
|
+
),
|
|
1360
|
+
...props,
|
|
1361
|
+
children: [
|
|
1362
|
+
/* @__PURE__ */ jsx("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
|
|
1363
|
+
/* @__PURE__ */ jsx(SelectPrimitive.ItemText, { children })
|
|
1364
|
+
]
|
|
1365
|
+
}
|
|
1366
|
+
));
|
|
1367
|
+
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
1368
|
+
var SelectSeparator = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1369
|
+
SelectPrimitive.Separator,
|
|
1370
|
+
{
|
|
1371
|
+
ref,
|
|
1372
|
+
className: cn("-mx-1 my-1 h-px bg-muted", className),
|
|
1373
|
+
...props
|
|
1374
|
+
}
|
|
1375
|
+
));
|
|
1376
|
+
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
1377
|
+
var Slider = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
1378
|
+
SliderPrimitive.Root,
|
|
1379
|
+
{
|
|
1380
|
+
ref,
|
|
1381
|
+
className: cn(
|
|
1382
|
+
"relative flex w-full touch-none select-none items-center",
|
|
1383
|
+
className
|
|
1384
|
+
),
|
|
1385
|
+
...props,
|
|
1386
|
+
children: [
|
|
1387
|
+
/* @__PURE__ */ jsx(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20", children: /* @__PURE__ */ jsx(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
|
|
1388
|
+
/* @__PURE__ */ jsx(SliderPrimitive.Thumb, { className: "block h-4 w-4 rounded-full border border-primary/50 bg-card shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50" })
|
|
1389
|
+
]
|
|
1390
|
+
}
|
|
1391
|
+
));
|
|
1392
|
+
Slider.displayName = SliderPrimitive.Root.displayName;
|
|
1393
|
+
function Spinner({ className, ...props }) {
|
|
1394
|
+
return /* @__PURE__ */ jsx(
|
|
1395
|
+
Loader2Icon,
|
|
1396
|
+
{
|
|
1397
|
+
role: "status",
|
|
1398
|
+
"aria-label": "Loading",
|
|
1399
|
+
className: cn("size-4 animate-spin", className),
|
|
1400
|
+
...props
|
|
1401
|
+
}
|
|
1402
|
+
);
|
|
1403
|
+
}
|
|
1404
|
+
var Table = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx(
|
|
1405
|
+
"table",
|
|
1406
|
+
{
|
|
1407
|
+
ref,
|
|
1408
|
+
className: cn("w-full caption-bottom text-sm", className),
|
|
1409
|
+
...props
|
|
1410
|
+
}
|
|
1411
|
+
) }));
|
|
1412
|
+
Table.displayName = "Table";
|
|
1413
|
+
var TableHeader = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
|
|
1414
|
+
TableHeader.displayName = "TableHeader";
|
|
1415
|
+
var TableBody = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1416
|
+
"tbody",
|
|
1417
|
+
{
|
|
1418
|
+
ref,
|
|
1419
|
+
className: cn("[&_tr:last-child]:border-0", className),
|
|
1420
|
+
...props
|
|
1421
|
+
}
|
|
1422
|
+
));
|
|
1423
|
+
TableBody.displayName = "TableBody";
|
|
1424
|
+
var TableFooter = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1425
|
+
"tfoot",
|
|
1426
|
+
{
|
|
1427
|
+
ref,
|
|
1428
|
+
className: cn(
|
|
1429
|
+
"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",
|
|
1430
|
+
className
|
|
1431
|
+
),
|
|
1432
|
+
...props
|
|
1433
|
+
}
|
|
1434
|
+
));
|
|
1435
|
+
TableFooter.displayName = "TableFooter";
|
|
1436
|
+
var TableRow = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1437
|
+
"tr",
|
|
1438
|
+
{
|
|
1439
|
+
ref,
|
|
1440
|
+
className: cn(
|
|
1441
|
+
"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
|
|
1442
|
+
className
|
|
1443
|
+
),
|
|
1444
|
+
...props
|
|
1445
|
+
}
|
|
1446
|
+
));
|
|
1447
|
+
TableRow.displayName = "TableRow";
|
|
1448
|
+
var TableHead = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1449
|
+
"th",
|
|
1450
|
+
{
|
|
1451
|
+
ref,
|
|
1452
|
+
className: cn(
|
|
1453
|
+
"h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
|
|
1454
|
+
className
|
|
1455
|
+
),
|
|
1456
|
+
...props
|
|
1457
|
+
}
|
|
1458
|
+
));
|
|
1459
|
+
TableHead.displayName = "TableHead";
|
|
1460
|
+
var TableCell = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1461
|
+
"td",
|
|
1462
|
+
{
|
|
1463
|
+
ref,
|
|
1464
|
+
className: cn(
|
|
1465
|
+
"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
|
|
1466
|
+
className
|
|
1467
|
+
),
|
|
1468
|
+
...props
|
|
1469
|
+
}
|
|
1470
|
+
));
|
|
1471
|
+
TableCell.displayName = "TableCell";
|
|
1472
|
+
var TableCaption = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1473
|
+
"caption",
|
|
1474
|
+
{
|
|
1475
|
+
ref,
|
|
1476
|
+
className: cn("mt-4 text-sm text-muted-foreground", className),
|
|
1477
|
+
...props
|
|
1478
|
+
}
|
|
1479
|
+
));
|
|
1480
|
+
TableCaption.displayName = "TableCaption";
|
|
1481
|
+
var TooltipProvider = TooltipPrimitive.Provider;
|
|
1482
|
+
var Tooltip2 = TooltipPrimitive.Root;
|
|
1483
|
+
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
1484
|
+
var TooltipContent = React2.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
1485
|
+
TooltipPrimitive.Content,
|
|
1486
|
+
{
|
|
1487
|
+
ref,
|
|
1488
|
+
sideOffset,
|
|
1489
|
+
className: cn(
|
|
1490
|
+
"z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-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 origin-[--radix-tooltip-content-transform-origin]",
|
|
1491
|
+
className
|
|
1492
|
+
),
|
|
1493
|
+
...props
|
|
1494
|
+
}
|
|
1495
|
+
) }));
|
|
1496
|
+
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
1497
|
+
function Switch({
|
|
1498
|
+
className,
|
|
1499
|
+
size = "default",
|
|
1500
|
+
...props
|
|
1501
|
+
}) {
|
|
1502
|
+
return /* @__PURE__ */ jsx(
|
|
1503
|
+
Switch$1.Root,
|
|
1504
|
+
{
|
|
1505
|
+
"data-slot": "switch",
|
|
1506
|
+
"data-size": size,
|
|
1507
|
+
className: cn(
|
|
1508
|
+
"peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-[hsl(var(--chat-border)))] transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-black data-disabled:cursor-not-allowed data-disabled:opacity-50",
|
|
1509
|
+
className
|
|
1510
|
+
),
|
|
1511
|
+
...props,
|
|
1512
|
+
children: /* @__PURE__ */ jsx(
|
|
1513
|
+
Switch$1.Thumb,
|
|
1514
|
+
{
|
|
1515
|
+
"data-slot": "switch-thumb",
|
|
1516
|
+
className: "pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-[state=checked]:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-[state=checked]:translate-x-[calc(100%-2px)] dark:data-[state=checked]:bg-primary-foreground group-data-[size=default]/switch:data-[state=unchecked]:translate-x-0 group-data-[size=sm]/switch:data-[state=unchecked]:translate-x-0 dark:data-[state=unchecked]:bg-foreground"
|
|
1517
|
+
}
|
|
1518
|
+
)
|
|
1519
|
+
}
|
|
1520
|
+
);
|
|
1521
|
+
}
|
|
1522
|
+
|
|
1523
|
+
export { Avatar, AvatarFallback, AvatarImage, Badge, Button, Calendar, CalendarDayButton, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, HoverCard, HoverCardContent, HoverCardTrigger, Input, Label3 as Label, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Slider, Spinner, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tooltip2 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn };
|
|
1524
|
+
//# sourceMappingURL=chunk-VZ7VQBAB.mjs.map
|
|
1525
|
+
//# sourceMappingURL=chunk-VZ7VQBAB.mjs.map
|