@fluid-app/ui-primitives 0.1.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/dist/index.cjs +1802 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +251 -0
- package/dist/index.d.ts +251 -0
- package/dist/index.js +1664 -0
- package/dist/index.js.map +1 -0
- package/package.json +82 -0
- package/src/index.ts +148 -0
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,1802 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var clsx = require('clsx');
|
|
4
|
+
var tailwindMerge = require('tailwind-merge');
|
|
5
|
+
var zod = require('@hookform/resolvers/zod');
|
|
6
|
+
var reactHookForm = require('react-hook-form');
|
|
7
|
+
var React6 = require('react');
|
|
8
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
var AccordionPrimitive = require('@radix-ui/react-accordion');
|
|
10
|
+
var lucideReact = require('lucide-react');
|
|
11
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
12
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
13
|
+
var reactDayPicker = require('react-day-picker');
|
|
14
|
+
var RechartsPrimitive = require('recharts');
|
|
15
|
+
var CollapsiblePrimitive = require('@radix-ui/react-collapsible');
|
|
16
|
+
var SheetPrimitive = require('@radix-ui/react-dialog');
|
|
17
|
+
var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
|
|
18
|
+
var TogglePrimitive = require('@radix-ui/react-toggle');
|
|
19
|
+
var LabelPrimitive = require('@radix-ui/react-label');
|
|
20
|
+
var PopoverPrimitive = require('@radix-ui/react-popover');
|
|
21
|
+
var SelectPrimitive = require('@radix-ui/react-select');
|
|
22
|
+
var SeparatorPrimitive = require('@radix-ui/react-separator');
|
|
23
|
+
var SliderPrimitive = require('@radix-ui/react-slider');
|
|
24
|
+
var SwitchPrimitive = require('@radix-ui/react-switch');
|
|
25
|
+
var TabsPrimitive = require('@radix-ui/react-tabs');
|
|
26
|
+
var ToggleGroupPrimitive = require('@radix-ui/react-toggle-group');
|
|
27
|
+
var TooltipPrimitive = require('@radix-ui/react-tooltip');
|
|
28
|
+
|
|
29
|
+
function _interopNamespace(e) {
|
|
30
|
+
if (e && e.__esModule) return e;
|
|
31
|
+
var n = Object.create(null);
|
|
32
|
+
if (e) {
|
|
33
|
+
Object.keys(e).forEach(function (k) {
|
|
34
|
+
if (k !== 'default') {
|
|
35
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
36
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () { return e[k]; }
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
n.default = e;
|
|
44
|
+
return Object.freeze(n);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
var React6__namespace = /*#__PURE__*/_interopNamespace(React6);
|
|
48
|
+
var AccordionPrimitive__namespace = /*#__PURE__*/_interopNamespace(AccordionPrimitive);
|
|
49
|
+
var RechartsPrimitive__namespace = /*#__PURE__*/_interopNamespace(RechartsPrimitive);
|
|
50
|
+
var CollapsiblePrimitive__namespace = /*#__PURE__*/_interopNamespace(CollapsiblePrimitive);
|
|
51
|
+
var SheetPrimitive__namespace = /*#__PURE__*/_interopNamespace(SheetPrimitive);
|
|
52
|
+
var DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(DropdownMenuPrimitive);
|
|
53
|
+
var TogglePrimitive__namespace = /*#__PURE__*/_interopNamespace(TogglePrimitive);
|
|
54
|
+
var LabelPrimitive__namespace = /*#__PURE__*/_interopNamespace(LabelPrimitive);
|
|
55
|
+
var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
|
|
56
|
+
var SelectPrimitive__namespace = /*#__PURE__*/_interopNamespace(SelectPrimitive);
|
|
57
|
+
var SeparatorPrimitive__namespace = /*#__PURE__*/_interopNamespace(SeparatorPrimitive);
|
|
58
|
+
var SliderPrimitive__namespace = /*#__PURE__*/_interopNamespace(SliderPrimitive);
|
|
59
|
+
var SwitchPrimitive__namespace = /*#__PURE__*/_interopNamespace(SwitchPrimitive);
|
|
60
|
+
var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespace(TabsPrimitive);
|
|
61
|
+
var ToggleGroupPrimitive__namespace = /*#__PURE__*/_interopNamespace(ToggleGroupPrimitive);
|
|
62
|
+
var TooltipPrimitive__namespace = /*#__PURE__*/_interopNamespace(TooltipPrimitive);
|
|
63
|
+
|
|
64
|
+
// src/lib/utils.ts
|
|
65
|
+
function cn(...inputs) {
|
|
66
|
+
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
67
|
+
}
|
|
68
|
+
function useZodForm(schema, options) {
|
|
69
|
+
"use no memo";
|
|
70
|
+
const zodResolverFn = zod.zodResolver;
|
|
71
|
+
const resolver = zodResolverFn(schema);
|
|
72
|
+
return reactHookForm.useForm({ ...options, resolver });
|
|
73
|
+
}
|
|
74
|
+
var PortalContainerContext = React6.createContext(
|
|
75
|
+
void 0
|
|
76
|
+
);
|
|
77
|
+
function PortalContainerProvider({
|
|
78
|
+
children,
|
|
79
|
+
container
|
|
80
|
+
}) {
|
|
81
|
+
return /* @__PURE__ */ jsxRuntime.jsx(PortalContainerContext.Provider, { value: container ?? void 0, children });
|
|
82
|
+
}
|
|
83
|
+
function usePortalContainer() {
|
|
84
|
+
return React6.useContext(PortalContainerContext);
|
|
85
|
+
}
|
|
86
|
+
function Accordion({
|
|
87
|
+
className,
|
|
88
|
+
...props
|
|
89
|
+
}) {
|
|
90
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
91
|
+
AccordionPrimitive__namespace.Root,
|
|
92
|
+
{
|
|
93
|
+
"data-slot": "accordion",
|
|
94
|
+
className: cn("cn-accordion flex w-full flex-col", className),
|
|
95
|
+
...props
|
|
96
|
+
}
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
function AccordionItem({
|
|
100
|
+
className,
|
|
101
|
+
...props
|
|
102
|
+
}) {
|
|
103
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
104
|
+
AccordionPrimitive__namespace.Item,
|
|
105
|
+
{
|
|
106
|
+
"data-slot": "accordion-item",
|
|
107
|
+
className: cn("cn-accordion-item", className),
|
|
108
|
+
...props
|
|
109
|
+
}
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
function AccordionTrigger({
|
|
113
|
+
className,
|
|
114
|
+
children,
|
|
115
|
+
...props
|
|
116
|
+
}) {
|
|
117
|
+
return /* @__PURE__ */ jsxRuntime.jsx(AccordionPrimitive__namespace.Header, { className: "flex", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
118
|
+
AccordionPrimitive__namespace.Trigger,
|
|
119
|
+
{
|
|
120
|
+
"data-slot": "accordion-trigger",
|
|
121
|
+
className: cn(
|
|
122
|
+
"cn-accordion-trigger group/accordion-trigger relative flex flex-1 items-start justify-between border border-transparent transition-all outline-none disabled:pointer-events-none disabled:opacity-50",
|
|
123
|
+
className
|
|
124
|
+
),
|
|
125
|
+
...props,
|
|
126
|
+
children: [
|
|
127
|
+
children,
|
|
128
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "cn-accordion-trigger-icon pointer-events-none shrink-0 transition-transform duration-200 group-aria-expanded/accordion-trigger:rotate-180" })
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
) });
|
|
132
|
+
}
|
|
133
|
+
function AccordionContent({
|
|
134
|
+
className,
|
|
135
|
+
children,
|
|
136
|
+
...props
|
|
137
|
+
}) {
|
|
138
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
139
|
+
AccordionPrimitive__namespace.Content,
|
|
140
|
+
{
|
|
141
|
+
"data-slot": "accordion-content",
|
|
142
|
+
className: "cn-accordion-content overflow-hidden",
|
|
143
|
+
...props,
|
|
144
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
145
|
+
"div",
|
|
146
|
+
{
|
|
147
|
+
className: cn(
|
|
148
|
+
"cn-accordion-content-inner h-(--radix-accordion-content-height) [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",
|
|
149
|
+
className
|
|
150
|
+
),
|
|
151
|
+
children
|
|
152
|
+
}
|
|
153
|
+
)
|
|
154
|
+
}
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
var alertVariants = classVarianceAuthority.cva(
|
|
158
|
+
"relative grid h-full w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
|
|
159
|
+
{
|
|
160
|
+
variants: {
|
|
161
|
+
variant: {
|
|
162
|
+
default: "bg-card text-card-foreground",
|
|
163
|
+
destructive: "bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 [&>svg]:text-current"
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
defaultVariants: {
|
|
167
|
+
variant: "default"
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
);
|
|
171
|
+
function Alert({
|
|
172
|
+
className,
|
|
173
|
+
variant,
|
|
174
|
+
...props
|
|
175
|
+
}) {
|
|
176
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
177
|
+
"div",
|
|
178
|
+
{
|
|
179
|
+
"data-slot": "alert",
|
|
180
|
+
role: "alert",
|
|
181
|
+
className: cn(alertVariants({ variant }), className),
|
|
182
|
+
...props
|
|
183
|
+
}
|
|
184
|
+
);
|
|
185
|
+
}
|
|
186
|
+
function AlertTitle({ className, ...props }) {
|
|
187
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
188
|
+
"div",
|
|
189
|
+
{
|
|
190
|
+
"data-slot": "alert-title",
|
|
191
|
+
className: cn(
|
|
192
|
+
"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",
|
|
193
|
+
className
|
|
194
|
+
),
|
|
195
|
+
...props
|
|
196
|
+
}
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
function AlertDescription({
|
|
200
|
+
className,
|
|
201
|
+
...props
|
|
202
|
+
}) {
|
|
203
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
204
|
+
"div",
|
|
205
|
+
{
|
|
206
|
+
"data-slot": "alert-description",
|
|
207
|
+
className: cn(
|
|
208
|
+
"col-start-2 grid justify-items-start gap-1 text-sm text-muted-foreground [&_p]:leading-relaxed",
|
|
209
|
+
className
|
|
210
|
+
),
|
|
211
|
+
...props
|
|
212
|
+
}
|
|
213
|
+
);
|
|
214
|
+
}
|
|
215
|
+
var buttonVariants = classVarianceAuthority.cva(
|
|
216
|
+
"inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
217
|
+
{
|
|
218
|
+
variants: {
|
|
219
|
+
variant: {
|
|
220
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
221
|
+
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
|
|
222
|
+
outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
|
|
223
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
224
|
+
ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
|
|
225
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
226
|
+
},
|
|
227
|
+
size: {
|
|
228
|
+
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
229
|
+
sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
|
|
230
|
+
lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
|
|
231
|
+
xl: "h-11 rounded-md px-8 has-[>svg]:px-5",
|
|
232
|
+
icon: "size-9",
|
|
233
|
+
"icon-xs": "size-6",
|
|
234
|
+
"icon-sm": "size-8",
|
|
235
|
+
"icon-lg": "size-10"
|
|
236
|
+
}
|
|
237
|
+
},
|
|
238
|
+
defaultVariants: {
|
|
239
|
+
variant: "default",
|
|
240
|
+
size: "default"
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
);
|
|
244
|
+
function Button({
|
|
245
|
+
className,
|
|
246
|
+
variant,
|
|
247
|
+
size,
|
|
248
|
+
asChild = false,
|
|
249
|
+
...props
|
|
250
|
+
}) {
|
|
251
|
+
const Comp = asChild ? reactSlot.Slot : "button";
|
|
252
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
253
|
+
Comp,
|
|
254
|
+
{
|
|
255
|
+
"data-slot": "button",
|
|
256
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
257
|
+
...props
|
|
258
|
+
}
|
|
259
|
+
);
|
|
260
|
+
}
|
|
261
|
+
function Calendar({
|
|
262
|
+
className,
|
|
263
|
+
classNames,
|
|
264
|
+
showOutsideDays = true,
|
|
265
|
+
...props
|
|
266
|
+
}) {
|
|
267
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
268
|
+
reactDayPicker.DayPicker,
|
|
269
|
+
{
|
|
270
|
+
showOutsideDays,
|
|
271
|
+
className: cn("p-3", className),
|
|
272
|
+
classNames: {
|
|
273
|
+
months: "flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",
|
|
274
|
+
month: "space-y-4",
|
|
275
|
+
caption: "flex justify-center pt-1 relative items-center",
|
|
276
|
+
caption_label: "text-sm font-medium",
|
|
277
|
+
nav: "space-x-1 flex items-center",
|
|
278
|
+
nav_button: cn(
|
|
279
|
+
buttonVariants({ variant: "ghost" }),
|
|
280
|
+
"h-7 w-7 justify-center bg-transparent p-0 opacity-50 hover:opacity-100"
|
|
281
|
+
),
|
|
282
|
+
nav_button_previous: "absolute left-1",
|
|
283
|
+
nav_button_next: "absolute right-1",
|
|
284
|
+
table: "w-full border-collapse space-y-1",
|
|
285
|
+
head_row: "flex",
|
|
286
|
+
head_cell: "text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]",
|
|
287
|
+
row: "flex w-full mt-2",
|
|
288
|
+
cell: "h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20",
|
|
289
|
+
day: cn(
|
|
290
|
+
buttonVariants({ variant: "ghost" }),
|
|
291
|
+
"h-9 w-9 justify-center p-0 font-normal aria-selected:opacity-100"
|
|
292
|
+
),
|
|
293
|
+
day_range_end: "day-range-end",
|
|
294
|
+
day_selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",
|
|
295
|
+
day_today: "bg-accent text-accent-foreground",
|
|
296
|
+
day_outside: "day-outside text-muted-foreground aria-selected:bg-accent/50 aria-selected:text-muted-foreground",
|
|
297
|
+
day_disabled: "text-muted-foreground opacity-50",
|
|
298
|
+
day_range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
|
|
299
|
+
day_hidden: "invisible",
|
|
300
|
+
...classNames
|
|
301
|
+
},
|
|
302
|
+
components: {
|
|
303
|
+
IconLeft: ({ className: iconClassName, ...iconProps }) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
304
|
+
lucideReact.ChevronLeft,
|
|
305
|
+
{
|
|
306
|
+
className: cn("h-4 w-4", iconClassName),
|
|
307
|
+
...iconProps
|
|
308
|
+
}
|
|
309
|
+
),
|
|
310
|
+
IconRight: ({ className: iconClassName, ...iconProps }) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
311
|
+
lucideReact.ChevronRight,
|
|
312
|
+
{
|
|
313
|
+
className: cn("h-4 w-4", iconClassName),
|
|
314
|
+
...iconProps
|
|
315
|
+
}
|
|
316
|
+
)
|
|
317
|
+
},
|
|
318
|
+
...props
|
|
319
|
+
}
|
|
320
|
+
);
|
|
321
|
+
}
|
|
322
|
+
Calendar.displayName = "Calendar";
|
|
323
|
+
function Card({ className, ...props }) {
|
|
324
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
325
|
+
"div",
|
|
326
|
+
{
|
|
327
|
+
"data-slot": "card",
|
|
328
|
+
className: cn(
|
|
329
|
+
"flex h-full flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm",
|
|
330
|
+
className
|
|
331
|
+
),
|
|
332
|
+
...props
|
|
333
|
+
}
|
|
334
|
+
);
|
|
335
|
+
}
|
|
336
|
+
function CardHeader({ className, ...props }) {
|
|
337
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
338
|
+
"div",
|
|
339
|
+
{
|
|
340
|
+
"data-slot": "card-header",
|
|
341
|
+
className: cn(
|
|
342
|
+
"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
|
|
343
|
+
className
|
|
344
|
+
),
|
|
345
|
+
...props
|
|
346
|
+
}
|
|
347
|
+
);
|
|
348
|
+
}
|
|
349
|
+
function CardTitle({ className, ...props }) {
|
|
350
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
351
|
+
"div",
|
|
352
|
+
{
|
|
353
|
+
"data-slot": "card-title",
|
|
354
|
+
className: cn("leading-none font-semibold", className),
|
|
355
|
+
...props
|
|
356
|
+
}
|
|
357
|
+
);
|
|
358
|
+
}
|
|
359
|
+
function CardDescription({ className, ...props }) {
|
|
360
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
361
|
+
"div",
|
|
362
|
+
{
|
|
363
|
+
"data-slot": "card-description",
|
|
364
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
365
|
+
...props
|
|
366
|
+
}
|
|
367
|
+
);
|
|
368
|
+
}
|
|
369
|
+
function CardAction({ className, ...props }) {
|
|
370
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
371
|
+
"div",
|
|
372
|
+
{
|
|
373
|
+
"data-slot": "card-action",
|
|
374
|
+
className: cn(
|
|
375
|
+
"col-start-2 row-span-2 row-start-1 self-start justify-self-end",
|
|
376
|
+
className
|
|
377
|
+
),
|
|
378
|
+
...props
|
|
379
|
+
}
|
|
380
|
+
);
|
|
381
|
+
}
|
|
382
|
+
function CardContent({ className, ...props }) {
|
|
383
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
384
|
+
"div",
|
|
385
|
+
{
|
|
386
|
+
"data-slot": "card-content",
|
|
387
|
+
className: cn("px-6", className),
|
|
388
|
+
...props
|
|
389
|
+
}
|
|
390
|
+
);
|
|
391
|
+
}
|
|
392
|
+
function CardFooter({ className, ...props }) {
|
|
393
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
394
|
+
"div",
|
|
395
|
+
{
|
|
396
|
+
"data-slot": "card-footer",
|
|
397
|
+
className: cn("flex items-center px-6 [.border-t]:pt-6", className),
|
|
398
|
+
...props
|
|
399
|
+
}
|
|
400
|
+
);
|
|
401
|
+
}
|
|
402
|
+
var THEMES = { light: "", dark: ".dark" };
|
|
403
|
+
var ChartContext = React6__namespace.createContext(null);
|
|
404
|
+
function useChart() {
|
|
405
|
+
const context = React6__namespace.useContext(ChartContext);
|
|
406
|
+
if (!context) {
|
|
407
|
+
throw new Error("useChart must be used within a <ChartContainer />");
|
|
408
|
+
}
|
|
409
|
+
return context;
|
|
410
|
+
}
|
|
411
|
+
function ChartContainer({
|
|
412
|
+
id,
|
|
413
|
+
className,
|
|
414
|
+
children,
|
|
415
|
+
config,
|
|
416
|
+
...props
|
|
417
|
+
}) {
|
|
418
|
+
const uniqueId = React6__namespace.useId();
|
|
419
|
+
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
420
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
421
|
+
"div",
|
|
422
|
+
{
|
|
423
|
+
"data-slot": "chart",
|
|
424
|
+
"data-chart": chartId,
|
|
425
|
+
className: cn(
|
|
426
|
+
"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-hidden [&_.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]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
|
|
427
|
+
className
|
|
428
|
+
),
|
|
429
|
+
...props,
|
|
430
|
+
children: [
|
|
431
|
+
/* @__PURE__ */ jsxRuntime.jsx(ChartStyle, { id: chartId, config }),
|
|
432
|
+
/* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive__namespace.ResponsiveContainer, { children })
|
|
433
|
+
]
|
|
434
|
+
}
|
|
435
|
+
) });
|
|
436
|
+
}
|
|
437
|
+
var ChartStyle = ({ id, config }) => {
|
|
438
|
+
const colorConfig = Object.entries(config).filter(
|
|
439
|
+
([, cfg]) => cfg.theme || cfg.color
|
|
440
|
+
);
|
|
441
|
+
if (!colorConfig.length) {
|
|
442
|
+
return null;
|
|
443
|
+
}
|
|
444
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
445
|
+
"style",
|
|
446
|
+
{
|
|
447
|
+
dangerouslySetInnerHTML: {
|
|
448
|
+
__html: Object.entries(THEMES).map(
|
|
449
|
+
([theme, prefix]) => `
|
|
450
|
+
${prefix} [data-chart=${id}] {
|
|
451
|
+
${colorConfig.map(([key, itemConfig]) => {
|
|
452
|
+
const color = itemConfig.theme?.[theme] || itemConfig.color;
|
|
453
|
+
return color ? ` --color-${key}: ${color};` : null;
|
|
454
|
+
}).join("\n")}
|
|
455
|
+
}
|
|
456
|
+
`
|
|
457
|
+
).join("\n")
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
);
|
|
461
|
+
};
|
|
462
|
+
var ChartTooltip = RechartsPrimitive__namespace.Tooltip;
|
|
463
|
+
function ChartTooltipContent({
|
|
464
|
+
active,
|
|
465
|
+
payload,
|
|
466
|
+
className,
|
|
467
|
+
indicator = "dot",
|
|
468
|
+
hideLabel = false,
|
|
469
|
+
hideIndicator = false,
|
|
470
|
+
label,
|
|
471
|
+
labelFormatter,
|
|
472
|
+
labelClassName,
|
|
473
|
+
formatter,
|
|
474
|
+
color,
|
|
475
|
+
nameKey,
|
|
476
|
+
labelKey
|
|
477
|
+
}) {
|
|
478
|
+
const { config } = useChart();
|
|
479
|
+
const tooltipLabel = React6__namespace.useMemo(() => {
|
|
480
|
+
if (hideLabel || !payload?.length) {
|
|
481
|
+
return null;
|
|
482
|
+
}
|
|
483
|
+
const [item] = payload;
|
|
484
|
+
const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
|
|
485
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
486
|
+
const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
|
|
487
|
+
if (labelFormatter) {
|
|
488
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
|
|
489
|
+
}
|
|
490
|
+
if (!value) {
|
|
491
|
+
return null;
|
|
492
|
+
}
|
|
493
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("font-medium", labelClassName), children: value });
|
|
494
|
+
}, [
|
|
495
|
+
label,
|
|
496
|
+
labelFormatter,
|
|
497
|
+
payload,
|
|
498
|
+
hideLabel,
|
|
499
|
+
labelClassName,
|
|
500
|
+
config,
|
|
501
|
+
labelKey
|
|
502
|
+
]);
|
|
503
|
+
if (!active || !payload?.length) {
|
|
504
|
+
return null;
|
|
505
|
+
}
|
|
506
|
+
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
507
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
508
|
+
"div",
|
|
509
|
+
{
|
|
510
|
+
className: cn(
|
|
511
|
+
"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",
|
|
512
|
+
className
|
|
513
|
+
),
|
|
514
|
+
children: [
|
|
515
|
+
!nestLabel ? tooltipLabel : null,
|
|
516
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-1.5", children: payload.filter((item) => item.type !== "none").map((item, index) => {
|
|
517
|
+
const key = `${nameKey || item.name || item.dataKey || "value"}`;
|
|
518
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
519
|
+
const indicatorColor = color || item.payload.fill || item.color;
|
|
520
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
521
|
+
"div",
|
|
522
|
+
{
|
|
523
|
+
className: cn(
|
|
524
|
+
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
|
|
525
|
+
indicator === "dot" && "items-center"
|
|
526
|
+
),
|
|
527
|
+
children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
528
|
+
itemConfig?.icon ? /* @__PURE__ */ jsxRuntime.jsx(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsxRuntime.jsx(
|
|
529
|
+
"div",
|
|
530
|
+
{
|
|
531
|
+
className: cn(
|
|
532
|
+
"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
|
|
533
|
+
{
|
|
534
|
+
"h-2.5 w-2.5": indicator === "dot",
|
|
535
|
+
"w-1": indicator === "line",
|
|
536
|
+
"w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
|
|
537
|
+
"my-0.5": nestLabel && indicator === "dashed"
|
|
538
|
+
}
|
|
539
|
+
),
|
|
540
|
+
style: {
|
|
541
|
+
"--color-bg": indicatorColor,
|
|
542
|
+
"--color-border": indicatorColor
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
),
|
|
546
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
547
|
+
"div",
|
|
548
|
+
{
|
|
549
|
+
className: cn(
|
|
550
|
+
"flex flex-1 justify-between leading-none",
|
|
551
|
+
nestLabel ? "items-end" : "items-center"
|
|
552
|
+
),
|
|
553
|
+
children: [
|
|
554
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-1.5", children: [
|
|
555
|
+
nestLabel ? tooltipLabel : null,
|
|
556
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
|
|
557
|
+
] }),
|
|
558
|
+
item.value && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono font-medium text-foreground tabular-nums", children: item.value.toLocaleString() })
|
|
559
|
+
]
|
|
560
|
+
}
|
|
561
|
+
)
|
|
562
|
+
] })
|
|
563
|
+
},
|
|
564
|
+
item.dataKey
|
|
565
|
+
);
|
|
566
|
+
}) })
|
|
567
|
+
]
|
|
568
|
+
}
|
|
569
|
+
);
|
|
570
|
+
}
|
|
571
|
+
var ChartLegend = RechartsPrimitive__namespace.Legend;
|
|
572
|
+
function ChartLegendContent({
|
|
573
|
+
className,
|
|
574
|
+
hideIcon = false,
|
|
575
|
+
payload,
|
|
576
|
+
verticalAlign = "bottom",
|
|
577
|
+
nameKey
|
|
578
|
+
}) {
|
|
579
|
+
const { config } = useChart();
|
|
580
|
+
if (!payload?.length) {
|
|
581
|
+
return null;
|
|
582
|
+
}
|
|
583
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
584
|
+
"div",
|
|
585
|
+
{
|
|
586
|
+
className: cn(
|
|
587
|
+
"flex items-center justify-center gap-4",
|
|
588
|
+
verticalAlign === "top" ? "pb-3" : "pt-3",
|
|
589
|
+
className
|
|
590
|
+
),
|
|
591
|
+
children: payload.filter((item) => item.type !== "none").map((item) => {
|
|
592
|
+
const key = `${nameKey || item.dataKey || "value"}`;
|
|
593
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
594
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
595
|
+
"div",
|
|
596
|
+
{
|
|
597
|
+
className: cn(
|
|
598
|
+
"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"
|
|
599
|
+
),
|
|
600
|
+
children: [
|
|
601
|
+
itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsxRuntime.jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
602
|
+
"div",
|
|
603
|
+
{
|
|
604
|
+
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
605
|
+
style: { backgroundColor: item.color }
|
|
606
|
+
}
|
|
607
|
+
),
|
|
608
|
+
itemConfig?.label
|
|
609
|
+
]
|
|
610
|
+
},
|
|
611
|
+
item.value
|
|
612
|
+
);
|
|
613
|
+
})
|
|
614
|
+
}
|
|
615
|
+
);
|
|
616
|
+
}
|
|
617
|
+
function getPayloadConfigFromPayload(config, payload, key) {
|
|
618
|
+
if (typeof payload !== "object" || payload === null) {
|
|
619
|
+
return void 0;
|
|
620
|
+
}
|
|
621
|
+
const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
|
|
622
|
+
let configLabelKey = key;
|
|
623
|
+
if (key in payload && typeof payload[key] === "string") {
|
|
624
|
+
configLabelKey = payload[key];
|
|
625
|
+
} else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
|
|
626
|
+
configLabelKey = payloadPayload[key];
|
|
627
|
+
}
|
|
628
|
+
return configLabelKey in config ? config[configLabelKey] : config[key];
|
|
629
|
+
}
|
|
630
|
+
function Collapsible({
|
|
631
|
+
...props
|
|
632
|
+
}) {
|
|
633
|
+
return /* @__PURE__ */ jsxRuntime.jsx(CollapsiblePrimitive__namespace.Root, { "data-slot": "collapsible", ...props });
|
|
634
|
+
}
|
|
635
|
+
function CollapsibleTrigger2({
|
|
636
|
+
...props
|
|
637
|
+
}) {
|
|
638
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
639
|
+
CollapsiblePrimitive__namespace.CollapsibleTrigger,
|
|
640
|
+
{
|
|
641
|
+
"data-slot": "collapsible-trigger",
|
|
642
|
+
...props
|
|
643
|
+
}
|
|
644
|
+
);
|
|
645
|
+
}
|
|
646
|
+
function CollapsibleContent2({
|
|
647
|
+
...props
|
|
648
|
+
}) {
|
|
649
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
650
|
+
CollapsiblePrimitive__namespace.CollapsibleContent,
|
|
651
|
+
{
|
|
652
|
+
"data-slot": "collapsible-content",
|
|
653
|
+
...props
|
|
654
|
+
}
|
|
655
|
+
);
|
|
656
|
+
}
|
|
657
|
+
function Dialog({
|
|
658
|
+
...props
|
|
659
|
+
}) {
|
|
660
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SheetPrimitive__namespace.Root, { "data-slot": "dialog", ...props });
|
|
661
|
+
}
|
|
662
|
+
function DialogTrigger({
|
|
663
|
+
...props
|
|
664
|
+
}) {
|
|
665
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SheetPrimitive__namespace.Trigger, { "data-slot": "dialog-trigger", ...props });
|
|
666
|
+
}
|
|
667
|
+
function DialogPortal({
|
|
668
|
+
...props
|
|
669
|
+
}) {
|
|
670
|
+
const portalContainer = usePortalContainer();
|
|
671
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
672
|
+
SheetPrimitive__namespace.Portal,
|
|
673
|
+
{
|
|
674
|
+
"data-slot": "dialog-portal",
|
|
675
|
+
container: portalContainer,
|
|
676
|
+
...props
|
|
677
|
+
}
|
|
678
|
+
);
|
|
679
|
+
}
|
|
680
|
+
function DialogClose({
|
|
681
|
+
...props
|
|
682
|
+
}) {
|
|
683
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SheetPrimitive__namespace.Close, { "data-slot": "dialog-close", ...props });
|
|
684
|
+
}
|
|
685
|
+
function DialogOverlay({
|
|
686
|
+
className,
|
|
687
|
+
...props
|
|
688
|
+
}) {
|
|
689
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
690
|
+
SheetPrimitive__namespace.Overlay,
|
|
691
|
+
{
|
|
692
|
+
"data-slot": "dialog-overlay",
|
|
693
|
+
className: cn(
|
|
694
|
+
"fixed inset-0 z-50 bg-gray-900/70 backdrop-blur-sm data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
|
|
695
|
+
className
|
|
696
|
+
),
|
|
697
|
+
...props
|
|
698
|
+
}
|
|
699
|
+
);
|
|
700
|
+
}
|
|
701
|
+
function DialogContent({
|
|
702
|
+
className,
|
|
703
|
+
children,
|
|
704
|
+
showCloseButton = true,
|
|
705
|
+
overlayClassName,
|
|
706
|
+
...props
|
|
707
|
+
}) {
|
|
708
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [
|
|
709
|
+
/* @__PURE__ */ jsxRuntime.jsx(DialogOverlay, { className: overlayClassName }),
|
|
710
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
711
|
+
SheetPrimitive__namespace.Content,
|
|
712
|
+
{
|
|
713
|
+
"data-slot": "dialog-content",
|
|
714
|
+
className: cn(
|
|
715
|
+
"fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-6 rounded-lg border bg-background p-6 shadow-lg duration-200 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 sm:max-w-lg",
|
|
716
|
+
className
|
|
717
|
+
),
|
|
718
|
+
...props,
|
|
719
|
+
children: [
|
|
720
|
+
children,
|
|
721
|
+
showCloseButton && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
722
|
+
SheetPrimitive__namespace.Close,
|
|
723
|
+
{
|
|
724
|
+
"data-slot": "dialog-close",
|
|
725
|
+
className: "absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
726
|
+
children: [
|
|
727
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, {}),
|
|
728
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
729
|
+
]
|
|
730
|
+
}
|
|
731
|
+
)
|
|
732
|
+
]
|
|
733
|
+
}
|
|
734
|
+
)
|
|
735
|
+
] });
|
|
736
|
+
}
|
|
737
|
+
function DialogHeader({ className, ...props }) {
|
|
738
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
739
|
+
"div",
|
|
740
|
+
{
|
|
741
|
+
"data-slot": "dialog-header",
|
|
742
|
+
className: cn("flex flex-col gap-2 text-center sm:text-left", className),
|
|
743
|
+
...props
|
|
744
|
+
}
|
|
745
|
+
);
|
|
746
|
+
}
|
|
747
|
+
function DialogFooter({ className, ...props }) {
|
|
748
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
749
|
+
"div",
|
|
750
|
+
{
|
|
751
|
+
"data-slot": "dialog-footer",
|
|
752
|
+
className: cn(
|
|
753
|
+
"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
|
|
754
|
+
className
|
|
755
|
+
),
|
|
756
|
+
...props
|
|
757
|
+
}
|
|
758
|
+
);
|
|
759
|
+
}
|
|
760
|
+
function DialogTitle({
|
|
761
|
+
className,
|
|
762
|
+
...props
|
|
763
|
+
}) {
|
|
764
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
765
|
+
SheetPrimitive__namespace.Title,
|
|
766
|
+
{
|
|
767
|
+
"data-slot": "dialog-title",
|
|
768
|
+
className: cn("text-lg leading-none font-semibold", className),
|
|
769
|
+
...props
|
|
770
|
+
}
|
|
771
|
+
);
|
|
772
|
+
}
|
|
773
|
+
function DialogDescription({
|
|
774
|
+
className,
|
|
775
|
+
...props
|
|
776
|
+
}) {
|
|
777
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
778
|
+
SheetPrimitive__namespace.Description,
|
|
779
|
+
{
|
|
780
|
+
"data-slot": "dialog-description",
|
|
781
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
782
|
+
...props
|
|
783
|
+
}
|
|
784
|
+
);
|
|
785
|
+
}
|
|
786
|
+
function DropdownMenu({
|
|
787
|
+
...props
|
|
788
|
+
}) {
|
|
789
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Root, { "data-slot": "dropdown-menu", ...props });
|
|
790
|
+
}
|
|
791
|
+
function DropdownMenuPortal({
|
|
792
|
+
...props
|
|
793
|
+
}) {
|
|
794
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { "data-slot": "dropdown-menu-portal", ...props });
|
|
795
|
+
}
|
|
796
|
+
function DropdownMenuTrigger({
|
|
797
|
+
...props
|
|
798
|
+
}) {
|
|
799
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
800
|
+
DropdownMenuPrimitive__namespace.Trigger,
|
|
801
|
+
{
|
|
802
|
+
"data-slot": "dropdown-menu-trigger",
|
|
803
|
+
...props
|
|
804
|
+
}
|
|
805
|
+
);
|
|
806
|
+
}
|
|
807
|
+
function DropdownMenuContent({
|
|
808
|
+
className,
|
|
809
|
+
sideOffset = 4,
|
|
810
|
+
...props
|
|
811
|
+
}) {
|
|
812
|
+
const portalContainer = usePortalContainer();
|
|
813
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
814
|
+
DropdownMenuPrimitive__namespace.Content,
|
|
815
|
+
{
|
|
816
|
+
"data-slot": "dropdown-menu-content",
|
|
817
|
+
sideOffset,
|
|
818
|
+
className: cn(
|
|
819
|
+
"z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
820
|
+
className
|
|
821
|
+
),
|
|
822
|
+
...props
|
|
823
|
+
}
|
|
824
|
+
) });
|
|
825
|
+
}
|
|
826
|
+
function DropdownMenuGroup({
|
|
827
|
+
...props
|
|
828
|
+
}) {
|
|
829
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Group, { "data-slot": "dropdown-menu-group", ...props });
|
|
830
|
+
}
|
|
831
|
+
function DropdownMenuItem({
|
|
832
|
+
className,
|
|
833
|
+
inset,
|
|
834
|
+
variant = "default",
|
|
835
|
+
...props
|
|
836
|
+
}) {
|
|
837
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
838
|
+
DropdownMenuPrimitive__namespace.Item,
|
|
839
|
+
{
|
|
840
|
+
"data-slot": "dropdown-menu-item",
|
|
841
|
+
"data-inset": inset,
|
|
842
|
+
"data-variant": variant,
|
|
843
|
+
className: cn(
|
|
844
|
+
"relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:!text-destructive",
|
|
845
|
+
className
|
|
846
|
+
),
|
|
847
|
+
...props
|
|
848
|
+
}
|
|
849
|
+
);
|
|
850
|
+
}
|
|
851
|
+
function DropdownMenuCheckboxItem({
|
|
852
|
+
className,
|
|
853
|
+
children,
|
|
854
|
+
...props
|
|
855
|
+
}) {
|
|
856
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
857
|
+
DropdownMenuPrimitive__namespace.CheckboxItem,
|
|
858
|
+
{
|
|
859
|
+
"data-slot": "dropdown-menu-checkbox-item",
|
|
860
|
+
className: cn(
|
|
861
|
+
"relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
862
|
+
className
|
|
863
|
+
),
|
|
864
|
+
...props,
|
|
865
|
+
children: [
|
|
866
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "size-4" }) }) }),
|
|
867
|
+
children
|
|
868
|
+
]
|
|
869
|
+
}
|
|
870
|
+
);
|
|
871
|
+
}
|
|
872
|
+
function DropdownMenuRadioGroup({
|
|
873
|
+
...props
|
|
874
|
+
}) {
|
|
875
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
876
|
+
DropdownMenuPrimitive__namespace.RadioGroup,
|
|
877
|
+
{
|
|
878
|
+
"data-slot": "dropdown-menu-radio-group",
|
|
879
|
+
...props
|
|
880
|
+
}
|
|
881
|
+
);
|
|
882
|
+
}
|
|
883
|
+
function DropdownMenuRadioItem({
|
|
884
|
+
className,
|
|
885
|
+
children,
|
|
886
|
+
...props
|
|
887
|
+
}) {
|
|
888
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
889
|
+
DropdownMenuPrimitive__namespace.RadioItem,
|
|
890
|
+
{
|
|
891
|
+
"data-slot": "dropdown-menu-radio-item",
|
|
892
|
+
className: cn(
|
|
893
|
+
"relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
894
|
+
className
|
|
895
|
+
),
|
|
896
|
+
...props,
|
|
897
|
+
children: [
|
|
898
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Circle, { className: "size-2 fill-current" }) }) }),
|
|
899
|
+
children
|
|
900
|
+
]
|
|
901
|
+
}
|
|
902
|
+
);
|
|
903
|
+
}
|
|
904
|
+
function DropdownMenuLabel({
|
|
905
|
+
className,
|
|
906
|
+
inset,
|
|
907
|
+
...props
|
|
908
|
+
}) {
|
|
909
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
910
|
+
DropdownMenuPrimitive__namespace.Label,
|
|
911
|
+
{
|
|
912
|
+
"data-slot": "dropdown-menu-label",
|
|
913
|
+
"data-inset": inset,
|
|
914
|
+
className: cn(
|
|
915
|
+
"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
|
|
916
|
+
className
|
|
917
|
+
),
|
|
918
|
+
...props
|
|
919
|
+
}
|
|
920
|
+
);
|
|
921
|
+
}
|
|
922
|
+
function DropdownMenuSeparator({
|
|
923
|
+
className,
|
|
924
|
+
...props
|
|
925
|
+
}) {
|
|
926
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
927
|
+
DropdownMenuPrimitive__namespace.Separator,
|
|
928
|
+
{
|
|
929
|
+
"data-slot": "dropdown-menu-separator",
|
|
930
|
+
className: cn("-mx-1 my-1 h-px bg-border", className),
|
|
931
|
+
...props
|
|
932
|
+
}
|
|
933
|
+
);
|
|
934
|
+
}
|
|
935
|
+
function DropdownMenuShortcut({
|
|
936
|
+
className,
|
|
937
|
+
...props
|
|
938
|
+
}) {
|
|
939
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
940
|
+
"span",
|
|
941
|
+
{
|
|
942
|
+
"data-slot": "dropdown-menu-shortcut",
|
|
943
|
+
className: cn(
|
|
944
|
+
"ml-auto text-xs tracking-widest text-muted-foreground",
|
|
945
|
+
className
|
|
946
|
+
),
|
|
947
|
+
...props
|
|
948
|
+
}
|
|
949
|
+
);
|
|
950
|
+
}
|
|
951
|
+
function DropdownMenuSub({
|
|
952
|
+
...props
|
|
953
|
+
}) {
|
|
954
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Sub, { "data-slot": "dropdown-menu-sub", ...props });
|
|
955
|
+
}
|
|
956
|
+
function DropdownMenuSubTrigger({
|
|
957
|
+
className,
|
|
958
|
+
inset,
|
|
959
|
+
children,
|
|
960
|
+
...props
|
|
961
|
+
}) {
|
|
962
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
963
|
+
DropdownMenuPrimitive__namespace.SubTrigger,
|
|
964
|
+
{
|
|
965
|
+
"data-slot": "dropdown-menu-sub-trigger",
|
|
966
|
+
"data-inset": inset,
|
|
967
|
+
className: cn(
|
|
968
|
+
"flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[inset]:pl-8 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
|
|
969
|
+
className
|
|
970
|
+
),
|
|
971
|
+
...props,
|
|
972
|
+
children: [
|
|
973
|
+
children,
|
|
974
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "ml-auto size-4" })
|
|
975
|
+
]
|
|
976
|
+
}
|
|
977
|
+
);
|
|
978
|
+
}
|
|
979
|
+
function DropdownMenuSubContent({
|
|
980
|
+
className,
|
|
981
|
+
...props
|
|
982
|
+
}) {
|
|
983
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
984
|
+
DropdownMenuPrimitive__namespace.SubContent,
|
|
985
|
+
{
|
|
986
|
+
"data-slot": "dropdown-menu-sub-content",
|
|
987
|
+
className: cn(
|
|
988
|
+
"z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
989
|
+
className
|
|
990
|
+
),
|
|
991
|
+
...props
|
|
992
|
+
}
|
|
993
|
+
);
|
|
994
|
+
}
|
|
995
|
+
function IconButton({
|
|
996
|
+
icon: Icon2,
|
|
997
|
+
className,
|
|
998
|
+
variant = "ghost",
|
|
999
|
+
size = "icon",
|
|
1000
|
+
isActive,
|
|
1001
|
+
...props
|
|
1002
|
+
}) {
|
|
1003
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1004
|
+
Button,
|
|
1005
|
+
{
|
|
1006
|
+
variant,
|
|
1007
|
+
size,
|
|
1008
|
+
"data-active": isActive,
|
|
1009
|
+
className: cn(isActive && "bg-accent text-accent-foreground", className),
|
|
1010
|
+
...props,
|
|
1011
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icon2, {})
|
|
1012
|
+
}
|
|
1013
|
+
);
|
|
1014
|
+
}
|
|
1015
|
+
var toggleVariants = classVarianceAuthority.cva(
|
|
1016
|
+
"inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
1017
|
+
{
|
|
1018
|
+
variants: {
|
|
1019
|
+
variant: {
|
|
1020
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
1021
|
+
destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
|
|
1022
|
+
outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
|
|
1023
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
1024
|
+
ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
|
|
1025
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
1026
|
+
},
|
|
1027
|
+
size: {
|
|
1028
|
+
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
1029
|
+
sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
|
|
1030
|
+
lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
|
|
1031
|
+
icon: "size-9",
|
|
1032
|
+
"icon-xs": "size-6",
|
|
1033
|
+
"icon-sm": "size-8",
|
|
1034
|
+
"icon-lg": "size-10"
|
|
1035
|
+
}
|
|
1036
|
+
},
|
|
1037
|
+
defaultVariants: {
|
|
1038
|
+
variant: "default",
|
|
1039
|
+
size: "default"
|
|
1040
|
+
}
|
|
1041
|
+
}
|
|
1042
|
+
);
|
|
1043
|
+
function Toggle({
|
|
1044
|
+
className,
|
|
1045
|
+
variant = "default",
|
|
1046
|
+
size = "default",
|
|
1047
|
+
...props
|
|
1048
|
+
}) {
|
|
1049
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1050
|
+
TogglePrimitive__namespace.Root,
|
|
1051
|
+
{
|
|
1052
|
+
"data-slot": "toggle",
|
|
1053
|
+
className: cn(toggleVariants({ variant, size, className })),
|
|
1054
|
+
...props
|
|
1055
|
+
}
|
|
1056
|
+
);
|
|
1057
|
+
}
|
|
1058
|
+
function IconToggle({
|
|
1059
|
+
icon: Icon2,
|
|
1060
|
+
variant = "ghost",
|
|
1061
|
+
size = "icon",
|
|
1062
|
+
...props
|
|
1063
|
+
}) {
|
|
1064
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Toggle, { variant, size, ...props, children: /* @__PURE__ */ jsxRuntime.jsx(Icon2, {}) });
|
|
1065
|
+
}
|
|
1066
|
+
function Input({ className, type, ...props }) {
|
|
1067
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1068
|
+
"input",
|
|
1069
|
+
{
|
|
1070
|
+
type,
|
|
1071
|
+
"data-slot": "input",
|
|
1072
|
+
className: cn(
|
|
1073
|
+
"h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30",
|
|
1074
|
+
"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
|
|
1075
|
+
"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
|
|
1076
|
+
className
|
|
1077
|
+
),
|
|
1078
|
+
...props
|
|
1079
|
+
}
|
|
1080
|
+
);
|
|
1081
|
+
}
|
|
1082
|
+
function Label2({
|
|
1083
|
+
className,
|
|
1084
|
+
...props
|
|
1085
|
+
}) {
|
|
1086
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1087
|
+
LabelPrimitive__namespace.Root,
|
|
1088
|
+
{
|
|
1089
|
+
"data-slot": "label",
|
|
1090
|
+
className: cn(
|
|
1091
|
+
"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
|
|
1092
|
+
className
|
|
1093
|
+
),
|
|
1094
|
+
...props
|
|
1095
|
+
}
|
|
1096
|
+
);
|
|
1097
|
+
}
|
|
1098
|
+
function Popover({
|
|
1099
|
+
...props
|
|
1100
|
+
}) {
|
|
1101
|
+
return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Root, { "data-slot": "popover", ...props });
|
|
1102
|
+
}
|
|
1103
|
+
function PopoverTrigger({
|
|
1104
|
+
...props
|
|
1105
|
+
}) {
|
|
1106
|
+
return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Trigger, { "data-slot": "popover-trigger", ...props });
|
|
1107
|
+
}
|
|
1108
|
+
function PopoverContent({
|
|
1109
|
+
className,
|
|
1110
|
+
align = "center",
|
|
1111
|
+
sideOffset = 4,
|
|
1112
|
+
...props
|
|
1113
|
+
}) {
|
|
1114
|
+
const portalContainer = usePortalContainer();
|
|
1115
|
+
return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1116
|
+
PopoverPrimitive__namespace.Content,
|
|
1117
|
+
{
|
|
1118
|
+
"data-slot": "popover-content",
|
|
1119
|
+
align,
|
|
1120
|
+
sideOffset,
|
|
1121
|
+
className: cn(
|
|
1122
|
+
"cn-popover-content z-50 w-72 origin-(--radix-popover-content-transform-origin) outline-hidden",
|
|
1123
|
+
className
|
|
1124
|
+
),
|
|
1125
|
+
...props
|
|
1126
|
+
}
|
|
1127
|
+
) });
|
|
1128
|
+
}
|
|
1129
|
+
function PopoverAnchor({
|
|
1130
|
+
...props
|
|
1131
|
+
}) {
|
|
1132
|
+
return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Anchor, { "data-slot": "popover-anchor", ...props });
|
|
1133
|
+
}
|
|
1134
|
+
function PopoverHeader({ className, ...props }) {
|
|
1135
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1136
|
+
"div",
|
|
1137
|
+
{
|
|
1138
|
+
"data-slot": "popover-header",
|
|
1139
|
+
className: cn("cn-popover-header", className),
|
|
1140
|
+
...props
|
|
1141
|
+
}
|
|
1142
|
+
);
|
|
1143
|
+
}
|
|
1144
|
+
function PopoverTitle({ className, ...props }) {
|
|
1145
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1146
|
+
"div",
|
|
1147
|
+
{
|
|
1148
|
+
"data-slot": "popover-title",
|
|
1149
|
+
className: cn("cn-popover-title", className),
|
|
1150
|
+
...props
|
|
1151
|
+
}
|
|
1152
|
+
);
|
|
1153
|
+
}
|
|
1154
|
+
function PopoverDescription({
|
|
1155
|
+
className,
|
|
1156
|
+
...props
|
|
1157
|
+
}) {
|
|
1158
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1159
|
+
"p",
|
|
1160
|
+
{
|
|
1161
|
+
"data-slot": "popover-description",
|
|
1162
|
+
className: cn("cn-popover-description", className),
|
|
1163
|
+
...props
|
|
1164
|
+
}
|
|
1165
|
+
);
|
|
1166
|
+
}
|
|
1167
|
+
function Select({
|
|
1168
|
+
...props
|
|
1169
|
+
}) {
|
|
1170
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Root, { "data-slot": "select", ...props });
|
|
1171
|
+
}
|
|
1172
|
+
function SelectGroup({
|
|
1173
|
+
...props
|
|
1174
|
+
}) {
|
|
1175
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Group, { "data-slot": "select-group", ...props });
|
|
1176
|
+
}
|
|
1177
|
+
function SelectValue({
|
|
1178
|
+
...props
|
|
1179
|
+
}) {
|
|
1180
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Value, { "data-slot": "select-value", ...props });
|
|
1181
|
+
}
|
|
1182
|
+
function SelectTrigger({
|
|
1183
|
+
className,
|
|
1184
|
+
size = "default",
|
|
1185
|
+
children,
|
|
1186
|
+
...props
|
|
1187
|
+
}) {
|
|
1188
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1189
|
+
SelectPrimitive__namespace.Trigger,
|
|
1190
|
+
{
|
|
1191
|
+
"data-slot": "select-trigger",
|
|
1192
|
+
"data-size": size,
|
|
1193
|
+
className: cn(
|
|
1194
|
+
"flex w-fit items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
|
|
1195
|
+
className
|
|
1196
|
+
),
|
|
1197
|
+
...props,
|
|
1198
|
+
children: [
|
|
1199
|
+
children,
|
|
1200
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "size-4 opacity-50" }) })
|
|
1201
|
+
]
|
|
1202
|
+
}
|
|
1203
|
+
);
|
|
1204
|
+
}
|
|
1205
|
+
function SelectContent({
|
|
1206
|
+
className,
|
|
1207
|
+
children,
|
|
1208
|
+
position = "popper",
|
|
1209
|
+
align = "center",
|
|
1210
|
+
...props
|
|
1211
|
+
}) {
|
|
1212
|
+
const portalContainer = usePortalContainer();
|
|
1213
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1214
|
+
SelectPrimitive__namespace.Content,
|
|
1215
|
+
{
|
|
1216
|
+
"data-slot": "select-content",
|
|
1217
|
+
className: cn(
|
|
1218
|
+
"relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
1219
|
+
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",
|
|
1220
|
+
className
|
|
1221
|
+
),
|
|
1222
|
+
position,
|
|
1223
|
+
align,
|
|
1224
|
+
...props,
|
|
1225
|
+
children: [
|
|
1226
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectScrollUpButton, {}),
|
|
1227
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1228
|
+
SelectPrimitive__namespace.Viewport,
|
|
1229
|
+
{
|
|
1230
|
+
className: cn(
|
|
1231
|
+
"p-1",
|
|
1232
|
+
position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
|
|
1233
|
+
),
|
|
1234
|
+
children
|
|
1235
|
+
}
|
|
1236
|
+
),
|
|
1237
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectScrollDownButton, {})
|
|
1238
|
+
]
|
|
1239
|
+
}
|
|
1240
|
+
) });
|
|
1241
|
+
}
|
|
1242
|
+
function SelectLabel({
|
|
1243
|
+
className,
|
|
1244
|
+
...props
|
|
1245
|
+
}) {
|
|
1246
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1247
|
+
SelectPrimitive__namespace.Label,
|
|
1248
|
+
{
|
|
1249
|
+
"data-slot": "select-label",
|
|
1250
|
+
className: cn("px-2 py-1.5 text-xs text-muted-foreground", className),
|
|
1251
|
+
...props
|
|
1252
|
+
}
|
|
1253
|
+
);
|
|
1254
|
+
}
|
|
1255
|
+
function SelectItem({
|
|
1256
|
+
className,
|
|
1257
|
+
children,
|
|
1258
|
+
...props
|
|
1259
|
+
}) {
|
|
1260
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1261
|
+
SelectPrimitive__namespace.Item,
|
|
1262
|
+
{
|
|
1263
|
+
"data-slot": "select-item",
|
|
1264
|
+
className: cn(
|
|
1265
|
+
"relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
|
1266
|
+
className
|
|
1267
|
+
),
|
|
1268
|
+
...props,
|
|
1269
|
+
children: [
|
|
1270
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "size-4" }) }) }),
|
|
1271
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemText, { children })
|
|
1272
|
+
]
|
|
1273
|
+
}
|
|
1274
|
+
);
|
|
1275
|
+
}
|
|
1276
|
+
function SelectSeparator({
|
|
1277
|
+
className,
|
|
1278
|
+
...props
|
|
1279
|
+
}) {
|
|
1280
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1281
|
+
SelectPrimitive__namespace.Separator,
|
|
1282
|
+
{
|
|
1283
|
+
"data-slot": "select-separator",
|
|
1284
|
+
className: cn("pointer-events-none -mx-1 my-1 h-px bg-border", className),
|
|
1285
|
+
...props
|
|
1286
|
+
}
|
|
1287
|
+
);
|
|
1288
|
+
}
|
|
1289
|
+
function SelectScrollUpButton({
|
|
1290
|
+
className,
|
|
1291
|
+
...props
|
|
1292
|
+
}) {
|
|
1293
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1294
|
+
SelectPrimitive__namespace.ScrollUpButton,
|
|
1295
|
+
{
|
|
1296
|
+
"data-slot": "select-scroll-up-button",
|
|
1297
|
+
className: cn(
|
|
1298
|
+
"flex cursor-default items-center justify-center py-1",
|
|
1299
|
+
className
|
|
1300
|
+
),
|
|
1301
|
+
...props,
|
|
1302
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUp, { className: "size-4" })
|
|
1303
|
+
}
|
|
1304
|
+
);
|
|
1305
|
+
}
|
|
1306
|
+
function SelectScrollDownButton({
|
|
1307
|
+
className,
|
|
1308
|
+
...props
|
|
1309
|
+
}) {
|
|
1310
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1311
|
+
SelectPrimitive__namespace.ScrollDownButton,
|
|
1312
|
+
{
|
|
1313
|
+
"data-slot": "select-scroll-down-button",
|
|
1314
|
+
className: cn(
|
|
1315
|
+
"flex cursor-default items-center justify-center py-1",
|
|
1316
|
+
className
|
|
1317
|
+
),
|
|
1318
|
+
...props,
|
|
1319
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "size-4" })
|
|
1320
|
+
}
|
|
1321
|
+
);
|
|
1322
|
+
}
|
|
1323
|
+
var Separator3 = React6__namespace.forwardRef(
|
|
1324
|
+
({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1325
|
+
SeparatorPrimitive__namespace.Root,
|
|
1326
|
+
{
|
|
1327
|
+
ref,
|
|
1328
|
+
decorative,
|
|
1329
|
+
orientation,
|
|
1330
|
+
className: cn(
|
|
1331
|
+
"shrink-0 bg-gray-200",
|
|
1332
|
+
orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
|
|
1333
|
+
className
|
|
1334
|
+
),
|
|
1335
|
+
...props
|
|
1336
|
+
}
|
|
1337
|
+
)
|
|
1338
|
+
);
|
|
1339
|
+
Separator3.displayName = SeparatorPrimitive__namespace.Root.displayName;
|
|
1340
|
+
function Skeleton({
|
|
1341
|
+
className,
|
|
1342
|
+
...props
|
|
1343
|
+
}) {
|
|
1344
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1345
|
+
"div",
|
|
1346
|
+
{
|
|
1347
|
+
className: cn("animate-pulse rounded-md bg-muted", className),
|
|
1348
|
+
...props
|
|
1349
|
+
}
|
|
1350
|
+
);
|
|
1351
|
+
}
|
|
1352
|
+
var Slider = React6__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1353
|
+
SliderPrimitive__namespace.Root,
|
|
1354
|
+
{
|
|
1355
|
+
ref,
|
|
1356
|
+
className: cn(
|
|
1357
|
+
"relative flex w-full touch-none items-center select-none",
|
|
1358
|
+
className
|
|
1359
|
+
),
|
|
1360
|
+
...props,
|
|
1361
|
+
children: [
|
|
1362
|
+
/* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-gray-200", children: /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Range, { className: "absolute h-full bg-primary" }) }),
|
|
1363
|
+
/* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Thumb, { className: "block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50" })
|
|
1364
|
+
]
|
|
1365
|
+
}
|
|
1366
|
+
));
|
|
1367
|
+
Slider.displayName = SliderPrimitive__namespace.Root.displayName;
|
|
1368
|
+
var Sheet = SheetPrimitive__namespace.Root;
|
|
1369
|
+
var SheetTrigger = SheetPrimitive__namespace.Trigger;
|
|
1370
|
+
var SheetClose = SheetPrimitive__namespace.Close;
|
|
1371
|
+
function SheetPortal(props) {
|
|
1372
|
+
const portalContainer = usePortalContainer();
|
|
1373
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SheetPrimitive__namespace.Portal, { container: portalContainer, ...props });
|
|
1374
|
+
}
|
|
1375
|
+
var SheetOverlay = React6__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1376
|
+
SheetPrimitive__namespace.Overlay,
|
|
1377
|
+
{
|
|
1378
|
+
className: cn(
|
|
1379
|
+
"fixed inset-0 z-[1040] bg-black/80 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
|
|
1380
|
+
className
|
|
1381
|
+
),
|
|
1382
|
+
...props,
|
|
1383
|
+
ref
|
|
1384
|
+
}
|
|
1385
|
+
));
|
|
1386
|
+
SheetOverlay.displayName = SheetPrimitive__namespace.Overlay.displayName;
|
|
1387
|
+
var sheetVariants = classVarianceAuthority.cva(
|
|
1388
|
+
"fixed z-[1050] gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:animate-in data-[state=open]:duration-500",
|
|
1389
|
+
{
|
|
1390
|
+
variants: {
|
|
1391
|
+
side: {
|
|
1392
|
+
top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
|
|
1393
|
+
bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
|
|
1394
|
+
left: "inset-y-0 left-0 h-full w-full border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
|
|
1395
|
+
right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
|
|
1396
|
+
}
|
|
1397
|
+
},
|
|
1398
|
+
defaultVariants: {
|
|
1399
|
+
side: "right"
|
|
1400
|
+
}
|
|
1401
|
+
}
|
|
1402
|
+
);
|
|
1403
|
+
var SheetContent = React6__namespace.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(SheetPortal, { children: [
|
|
1404
|
+
/* @__PURE__ */ jsxRuntime.jsx(SheetOverlay, {}),
|
|
1405
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1406
|
+
SheetPrimitive__namespace.Content,
|
|
1407
|
+
{
|
|
1408
|
+
ref,
|
|
1409
|
+
className: cn(sheetVariants({ side }), className),
|
|
1410
|
+
...props,
|
|
1411
|
+
children: [
|
|
1412
|
+
/* @__PURE__ */ jsxRuntime.jsxs(SheetPrimitive__namespace.Close, { className: "absolute top-4 right-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-secondary [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", children: [
|
|
1413
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, {}),
|
|
1414
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
1415
|
+
] }),
|
|
1416
|
+
children
|
|
1417
|
+
]
|
|
1418
|
+
}
|
|
1419
|
+
)
|
|
1420
|
+
] }));
|
|
1421
|
+
SheetContent.displayName = SheetPrimitive__namespace.Content.displayName;
|
|
1422
|
+
function SheetHeader({ className, ...props }) {
|
|
1423
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1424
|
+
"div",
|
|
1425
|
+
{
|
|
1426
|
+
className: cn(
|
|
1427
|
+
"flex flex-col space-y-2 text-center sm:text-left",
|
|
1428
|
+
className
|
|
1429
|
+
),
|
|
1430
|
+
...props
|
|
1431
|
+
}
|
|
1432
|
+
);
|
|
1433
|
+
}
|
|
1434
|
+
function SheetFooter({ className, ...props }) {
|
|
1435
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1436
|
+
"div",
|
|
1437
|
+
{
|
|
1438
|
+
className: cn(
|
|
1439
|
+
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
1440
|
+
className
|
|
1441
|
+
),
|
|
1442
|
+
...props
|
|
1443
|
+
}
|
|
1444
|
+
);
|
|
1445
|
+
}
|
|
1446
|
+
var SheetTitle = React6__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1447
|
+
SheetPrimitive__namespace.Title,
|
|
1448
|
+
{
|
|
1449
|
+
ref,
|
|
1450
|
+
className: cn("text-lg font-semibold text-foreground", className),
|
|
1451
|
+
...props
|
|
1452
|
+
}
|
|
1453
|
+
));
|
|
1454
|
+
SheetTitle.displayName = SheetPrimitive__namespace.Title.displayName;
|
|
1455
|
+
var SheetDescription = React6__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1456
|
+
SheetPrimitive__namespace.Description,
|
|
1457
|
+
{
|
|
1458
|
+
ref,
|
|
1459
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
1460
|
+
...props
|
|
1461
|
+
}
|
|
1462
|
+
));
|
|
1463
|
+
SheetDescription.displayName = SheetPrimitive__namespace.Description.displayName;
|
|
1464
|
+
function SpinnerWithText({
|
|
1465
|
+
text = "Loading...",
|
|
1466
|
+
variant = "inline",
|
|
1467
|
+
className
|
|
1468
|
+
}) {
|
|
1469
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1470
|
+
"div",
|
|
1471
|
+
{
|
|
1472
|
+
className: cn(
|
|
1473
|
+
"flex items-center justify-center self-stretch py-10",
|
|
1474
|
+
variant === "page" && "h-[60vh]",
|
|
1475
|
+
className
|
|
1476
|
+
),
|
|
1477
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-start gap-4", children: [
|
|
1478
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-8 w-8", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1479
|
+
"svg",
|
|
1480
|
+
{
|
|
1481
|
+
width: "32",
|
|
1482
|
+
height: "33",
|
|
1483
|
+
viewBox: "0 0 32 33",
|
|
1484
|
+
fill: "none",
|
|
1485
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1486
|
+
className: "animate-spin",
|
|
1487
|
+
children: [
|
|
1488
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1489
|
+
"path",
|
|
1490
|
+
{
|
|
1491
|
+
d: "M30 16.5C30 18.3385 29.6379 20.159 28.9343 21.8576C28.2308 23.5561 27.1995 25.0995 25.8995 26.3995C24.5995 27.6995 23.0561 28.7307 21.3576 29.4343C19.659 30.1379 17.8385 30.5 16 30.5C14.1615 30.5 12.341 30.1379 10.6424 29.4343C8.94387 28.7307 7.40052 27.6995 6.1005 26.3995C4.80048 25.0995 3.76925 23.5561 3.06569 21.8576C2.36212 20.159 2 18.3385 2 16.5C2 14.6615 2.36212 12.841 3.06569 11.1424C3.76926 9.44387 4.80049 7.90052 6.10051 6.6005C7.40053 5.30048 8.94388 4.26925 10.6424 3.56568C12.341 2.86212 14.1615 2.5 16 2.5C17.8385 2.5 19.659 2.86212 21.3576 3.56569C23.0561 4.26925 24.5995 5.30049 25.8995 6.60051C27.1995 7.90053 28.2308 9.44388 28.9343 11.1424C29.6379 12.841 30 14.6615 30 16.5L30 16.5Z",
|
|
1492
|
+
stroke: "#F5F6F9",
|
|
1493
|
+
strokeWidth: "4",
|
|
1494
|
+
strokeLinecap: "round",
|
|
1495
|
+
strokeLinejoin: "round"
|
|
1496
|
+
}
|
|
1497
|
+
),
|
|
1498
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1499
|
+
"path",
|
|
1500
|
+
{
|
|
1501
|
+
d: "M16 2.5C17.8385 2.5 19.659 2.86212 21.3576 3.56569C23.0561 4.26925 24.5995 5.30049 25.8995 6.60051C27.1995 7.90053 28.2308 9.44388 28.9343 11.1424C29.6379 12.841 30 14.6615 30 16.5",
|
|
1502
|
+
stroke: "#155DFC",
|
|
1503
|
+
strokeWidth: "4",
|
|
1504
|
+
strokeLinecap: "round",
|
|
1505
|
+
strokeLinejoin: "round"
|
|
1506
|
+
}
|
|
1507
|
+
)
|
|
1508
|
+
]
|
|
1509
|
+
}
|
|
1510
|
+
) }),
|
|
1511
|
+
text && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-center text-sm leading-tight font-medium text-slate-700", children: text })
|
|
1512
|
+
] })
|
|
1513
|
+
}
|
|
1514
|
+
);
|
|
1515
|
+
}
|
|
1516
|
+
var Switch = React6__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1517
|
+
SwitchPrimitive__namespace.Root,
|
|
1518
|
+
{
|
|
1519
|
+
className: cn(
|
|
1520
|
+
"peer relative inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-gray-200",
|
|
1521
|
+
className
|
|
1522
|
+
),
|
|
1523
|
+
...props,
|
|
1524
|
+
ref,
|
|
1525
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1526
|
+
SwitchPrimitive__namespace.Thumb,
|
|
1527
|
+
{
|
|
1528
|
+
className: cn(
|
|
1529
|
+
"pointer-events-none absolute left-0 block h-5 w-5 rounded-full bg-white shadow-lg ring-0 transition-transform duration-200 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0"
|
|
1530
|
+
)
|
|
1531
|
+
}
|
|
1532
|
+
)
|
|
1533
|
+
}
|
|
1534
|
+
));
|
|
1535
|
+
Switch.displayName = SwitchPrimitive__namespace.Root.displayName;
|
|
1536
|
+
function Tabs({
|
|
1537
|
+
className,
|
|
1538
|
+
...props
|
|
1539
|
+
}) {
|
|
1540
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1541
|
+
TabsPrimitive__namespace.Root,
|
|
1542
|
+
{
|
|
1543
|
+
"data-slot": "tabs",
|
|
1544
|
+
className: cn("flex flex-col gap-2", className),
|
|
1545
|
+
...props
|
|
1546
|
+
}
|
|
1547
|
+
);
|
|
1548
|
+
}
|
|
1549
|
+
function TabsList({
|
|
1550
|
+
className,
|
|
1551
|
+
...props
|
|
1552
|
+
}) {
|
|
1553
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1554
|
+
TabsPrimitive__namespace.List,
|
|
1555
|
+
{
|
|
1556
|
+
"data-slot": "tabs-list",
|
|
1557
|
+
className: cn(
|
|
1558
|
+
"inline-flex h-9 w-fit items-center justify-center rounded-lg bg-muted p-[3px] text-muted-foreground",
|
|
1559
|
+
className
|
|
1560
|
+
),
|
|
1561
|
+
...props
|
|
1562
|
+
}
|
|
1563
|
+
);
|
|
1564
|
+
}
|
|
1565
|
+
function TabsTrigger({
|
|
1566
|
+
className,
|
|
1567
|
+
...props
|
|
1568
|
+
}) {
|
|
1569
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1570
|
+
TabsPrimitive__namespace.Trigger,
|
|
1571
|
+
{
|
|
1572
|
+
"data-slot": "tabs-trigger",
|
|
1573
|
+
className: cn(
|
|
1574
|
+
"inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:shadow-sm dark:text-muted-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
1575
|
+
className
|
|
1576
|
+
),
|
|
1577
|
+
...props
|
|
1578
|
+
}
|
|
1579
|
+
);
|
|
1580
|
+
}
|
|
1581
|
+
function TabsContent({
|
|
1582
|
+
className,
|
|
1583
|
+
...props
|
|
1584
|
+
}) {
|
|
1585
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1586
|
+
TabsPrimitive__namespace.Content,
|
|
1587
|
+
{
|
|
1588
|
+
"data-slot": "tabs-content",
|
|
1589
|
+
className: cn("flex-1 outline-none", className),
|
|
1590
|
+
...props
|
|
1591
|
+
}
|
|
1592
|
+
);
|
|
1593
|
+
}
|
|
1594
|
+
function Textarea({ className, ...props }) {
|
|
1595
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1596
|
+
"textarea",
|
|
1597
|
+
{
|
|
1598
|
+
"data-slot": "textarea",
|
|
1599
|
+
className: cn(
|
|
1600
|
+
"flex field-sizing-content min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",
|
|
1601
|
+
className
|
|
1602
|
+
),
|
|
1603
|
+
...props
|
|
1604
|
+
}
|
|
1605
|
+
);
|
|
1606
|
+
}
|
|
1607
|
+
var ToggleGroupContext = React6__namespace.createContext({
|
|
1608
|
+
size: "default",
|
|
1609
|
+
variant: "default",
|
|
1610
|
+
spacing: 0,
|
|
1611
|
+
orientation: "horizontal"
|
|
1612
|
+
});
|
|
1613
|
+
function ToggleGroup({
|
|
1614
|
+
className,
|
|
1615
|
+
variant,
|
|
1616
|
+
size,
|
|
1617
|
+
spacing = 0,
|
|
1618
|
+
orientation = "horizontal",
|
|
1619
|
+
children,
|
|
1620
|
+
...props
|
|
1621
|
+
}) {
|
|
1622
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1623
|
+
ToggleGroupPrimitive__namespace.Root,
|
|
1624
|
+
{
|
|
1625
|
+
"data-slot": "toggle-group",
|
|
1626
|
+
"data-variant": variant,
|
|
1627
|
+
"data-size": size,
|
|
1628
|
+
"data-spacing": spacing,
|
|
1629
|
+
"data-orientation": orientation,
|
|
1630
|
+
style: { "--gap": spacing },
|
|
1631
|
+
className: cn(
|
|
1632
|
+
"cn-toggle-group group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch",
|
|
1633
|
+
className
|
|
1634
|
+
),
|
|
1635
|
+
...props,
|
|
1636
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1637
|
+
ToggleGroupContext.Provider,
|
|
1638
|
+
{
|
|
1639
|
+
value: { variant, size, spacing, orientation },
|
|
1640
|
+
children
|
|
1641
|
+
}
|
|
1642
|
+
)
|
|
1643
|
+
}
|
|
1644
|
+
);
|
|
1645
|
+
}
|
|
1646
|
+
function ToggleGroupItem({
|
|
1647
|
+
className,
|
|
1648
|
+
children,
|
|
1649
|
+
variant = "default",
|
|
1650
|
+
size = "default",
|
|
1651
|
+
...props
|
|
1652
|
+
}) {
|
|
1653
|
+
const context = React6__namespace.useContext(ToggleGroupContext);
|
|
1654
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1655
|
+
ToggleGroupPrimitive__namespace.Item,
|
|
1656
|
+
{
|
|
1657
|
+
"data-slot": "toggle-group-item",
|
|
1658
|
+
"data-variant": context.variant || variant,
|
|
1659
|
+
"data-size": context.size || size,
|
|
1660
|
+
"data-spacing": context.spacing,
|
|
1661
|
+
className: cn(
|
|
1662
|
+
"cn-toggle-group-item shrink-0 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t",
|
|
1663
|
+
toggleVariants({
|
|
1664
|
+
variant: context.variant || variant,
|
|
1665
|
+
size: context.size || size
|
|
1666
|
+
}),
|
|
1667
|
+
className
|
|
1668
|
+
),
|
|
1669
|
+
...props,
|
|
1670
|
+
children
|
|
1671
|
+
}
|
|
1672
|
+
);
|
|
1673
|
+
}
|
|
1674
|
+
var TooltipProvider = TooltipPrimitive__namespace.Provider;
|
|
1675
|
+
function Tooltip2(props) {
|
|
1676
|
+
return /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Root, { ...props });
|
|
1677
|
+
}
|
|
1678
|
+
var TooltipTrigger = TooltipPrimitive__namespace.Trigger;
|
|
1679
|
+
function TooltipContent({
|
|
1680
|
+
className,
|
|
1681
|
+
sideOffset = 4,
|
|
1682
|
+
...props
|
|
1683
|
+
}) {
|
|
1684
|
+
const portalContainer = usePortalContainer();
|
|
1685
|
+
return /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1686
|
+
TooltipPrimitive__namespace.Content,
|
|
1687
|
+
{
|
|
1688
|
+
sideOffset,
|
|
1689
|
+
className: cn(
|
|
1690
|
+
"z-50 animate-in overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md fade-in-0 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
1691
|
+
className
|
|
1692
|
+
),
|
|
1693
|
+
...props
|
|
1694
|
+
}
|
|
1695
|
+
) });
|
|
1696
|
+
}
|
|
1697
|
+
|
|
1698
|
+
exports.Accordion = Accordion;
|
|
1699
|
+
exports.AccordionContent = AccordionContent;
|
|
1700
|
+
exports.AccordionItem = AccordionItem;
|
|
1701
|
+
exports.AccordionTrigger = AccordionTrigger;
|
|
1702
|
+
exports.Alert = Alert;
|
|
1703
|
+
exports.AlertDescription = AlertDescription;
|
|
1704
|
+
exports.AlertTitle = AlertTitle;
|
|
1705
|
+
exports.Button = Button;
|
|
1706
|
+
exports.Calendar = Calendar;
|
|
1707
|
+
exports.Card = Card;
|
|
1708
|
+
exports.CardAction = CardAction;
|
|
1709
|
+
exports.CardContent = CardContent;
|
|
1710
|
+
exports.CardDescription = CardDescription;
|
|
1711
|
+
exports.CardFooter = CardFooter;
|
|
1712
|
+
exports.CardHeader = CardHeader;
|
|
1713
|
+
exports.CardTitle = CardTitle;
|
|
1714
|
+
exports.ChartContainer = ChartContainer;
|
|
1715
|
+
exports.ChartLegend = ChartLegend;
|
|
1716
|
+
exports.ChartLegendContent = ChartLegendContent;
|
|
1717
|
+
exports.ChartStyle = ChartStyle;
|
|
1718
|
+
exports.ChartTooltip = ChartTooltip;
|
|
1719
|
+
exports.ChartTooltipContent = ChartTooltipContent;
|
|
1720
|
+
exports.Collapsible = Collapsible;
|
|
1721
|
+
exports.CollapsibleContent = CollapsibleContent2;
|
|
1722
|
+
exports.CollapsibleTrigger = CollapsibleTrigger2;
|
|
1723
|
+
exports.Dialog = Dialog;
|
|
1724
|
+
exports.DialogClose = DialogClose;
|
|
1725
|
+
exports.DialogContent = DialogContent;
|
|
1726
|
+
exports.DialogDescription = DialogDescription;
|
|
1727
|
+
exports.DialogFooter = DialogFooter;
|
|
1728
|
+
exports.DialogHeader = DialogHeader;
|
|
1729
|
+
exports.DialogOverlay = DialogOverlay;
|
|
1730
|
+
exports.DialogPortal = DialogPortal;
|
|
1731
|
+
exports.DialogTitle = DialogTitle;
|
|
1732
|
+
exports.DialogTrigger = DialogTrigger;
|
|
1733
|
+
exports.DropdownMenu = DropdownMenu;
|
|
1734
|
+
exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem;
|
|
1735
|
+
exports.DropdownMenuContent = DropdownMenuContent;
|
|
1736
|
+
exports.DropdownMenuGroup = DropdownMenuGroup;
|
|
1737
|
+
exports.DropdownMenuItem = DropdownMenuItem;
|
|
1738
|
+
exports.DropdownMenuLabel = DropdownMenuLabel;
|
|
1739
|
+
exports.DropdownMenuPortal = DropdownMenuPortal;
|
|
1740
|
+
exports.DropdownMenuRadioGroup = DropdownMenuRadioGroup;
|
|
1741
|
+
exports.DropdownMenuRadioItem = DropdownMenuRadioItem;
|
|
1742
|
+
exports.DropdownMenuSeparator = DropdownMenuSeparator;
|
|
1743
|
+
exports.DropdownMenuShortcut = DropdownMenuShortcut;
|
|
1744
|
+
exports.DropdownMenuSub = DropdownMenuSub;
|
|
1745
|
+
exports.DropdownMenuSubContent = DropdownMenuSubContent;
|
|
1746
|
+
exports.DropdownMenuSubTrigger = DropdownMenuSubTrigger;
|
|
1747
|
+
exports.DropdownMenuTrigger = DropdownMenuTrigger;
|
|
1748
|
+
exports.IconButton = IconButton;
|
|
1749
|
+
exports.IconToggle = IconToggle;
|
|
1750
|
+
exports.Input = Input;
|
|
1751
|
+
exports.Label = Label2;
|
|
1752
|
+
exports.Popover = Popover;
|
|
1753
|
+
exports.PopoverAnchor = PopoverAnchor;
|
|
1754
|
+
exports.PopoverContent = PopoverContent;
|
|
1755
|
+
exports.PopoverDescription = PopoverDescription;
|
|
1756
|
+
exports.PopoverHeader = PopoverHeader;
|
|
1757
|
+
exports.PopoverTitle = PopoverTitle;
|
|
1758
|
+
exports.PopoverTrigger = PopoverTrigger;
|
|
1759
|
+
exports.PortalContainerProvider = PortalContainerProvider;
|
|
1760
|
+
exports.Select = Select;
|
|
1761
|
+
exports.SelectContent = SelectContent;
|
|
1762
|
+
exports.SelectGroup = SelectGroup;
|
|
1763
|
+
exports.SelectItem = SelectItem;
|
|
1764
|
+
exports.SelectLabel = SelectLabel;
|
|
1765
|
+
exports.SelectScrollDownButton = SelectScrollDownButton;
|
|
1766
|
+
exports.SelectScrollUpButton = SelectScrollUpButton;
|
|
1767
|
+
exports.SelectSeparator = SelectSeparator;
|
|
1768
|
+
exports.SelectTrigger = SelectTrigger;
|
|
1769
|
+
exports.SelectValue = SelectValue;
|
|
1770
|
+
exports.Separator = Separator3;
|
|
1771
|
+
exports.Sheet = Sheet;
|
|
1772
|
+
exports.SheetClose = SheetClose;
|
|
1773
|
+
exports.SheetContent = SheetContent;
|
|
1774
|
+
exports.SheetDescription = SheetDescription;
|
|
1775
|
+
exports.SheetFooter = SheetFooter;
|
|
1776
|
+
exports.SheetHeader = SheetHeader;
|
|
1777
|
+
exports.SheetOverlay = SheetOverlay;
|
|
1778
|
+
exports.SheetPortal = SheetPortal;
|
|
1779
|
+
exports.SheetTitle = SheetTitle;
|
|
1780
|
+
exports.SheetTrigger = SheetTrigger;
|
|
1781
|
+
exports.Skeleton = Skeleton;
|
|
1782
|
+
exports.Slider = Slider;
|
|
1783
|
+
exports.SpinnerWithText = SpinnerWithText;
|
|
1784
|
+
exports.Switch = Switch;
|
|
1785
|
+
exports.Tabs = Tabs;
|
|
1786
|
+
exports.TabsContent = TabsContent;
|
|
1787
|
+
exports.TabsList = TabsList;
|
|
1788
|
+
exports.TabsTrigger = TabsTrigger;
|
|
1789
|
+
exports.Textarea = Textarea;
|
|
1790
|
+
exports.Toggle = Toggle;
|
|
1791
|
+
exports.ToggleGroup = ToggleGroup;
|
|
1792
|
+
exports.ToggleGroupItem = ToggleGroupItem;
|
|
1793
|
+
exports.Tooltip = Tooltip2;
|
|
1794
|
+
exports.TooltipContent = TooltipContent;
|
|
1795
|
+
exports.TooltipProvider = TooltipProvider;
|
|
1796
|
+
exports.TooltipTrigger = TooltipTrigger;
|
|
1797
|
+
exports.buttonVariants = buttonVariants;
|
|
1798
|
+
exports.cn = cn;
|
|
1799
|
+
exports.toggleVariants = toggleVariants;
|
|
1800
|
+
exports.useZodForm = useZodForm;
|
|
1801
|
+
//# sourceMappingURL=index.cjs.map
|
|
1802
|
+
//# sourceMappingURL=index.cjs.map
|