@hai3/uikit 0.1.0-alpha.5 → 0.1.0-alpha.8

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 DELETED
@@ -1,3399 +0,0 @@
1
- 'use strict';
2
-
3
- var AspectRatioPrimitive = require('@radix-ui/react-aspect-ratio');
4
- var jsxRuntime = require('react/jsx-runtime');
5
- var React18 = require('react');
6
- var AvatarPrimitive = require('@radix-ui/react-avatar');
7
- var clsx = require('clsx');
8
- var tailwindMerge = require('tailwind-merge');
9
- var reactSlot = require('@radix-ui/react-slot');
10
- var classVarianceAuthority = require('class-variance-authority');
11
- var uikitContracts = require('@hai3/uikit-contracts');
12
- var CheckboxPrimitive = require('@radix-ui/react-checkbox');
13
- var SwitchPrimitives = require('@radix-ui/react-switch');
14
- var lucideReact = require('lucide-react');
15
- var lodash = require('lodash');
16
- var SliderPrimitive = require('@radix-ui/react-slider');
17
- var ProgressPrimitive = require('@radix-ui/react-progress');
18
- var TooltipPrimitive = require('@radix-ui/react-tooltip');
19
- var PopoverPrimitive = require('@radix-ui/react-popover');
20
- var HoverCardPrimitive = require('@radix-ui/react-hover-card');
21
- var NavigationMenuPrimitive = require('@radix-ui/react-navigation-menu');
22
- var MenubarPrimitive = require('@radix-ui/react-menubar');
23
- var TabsPrimitive = require('@radix-ui/react-tabs');
24
- var SheetPrimitive = require('@radix-ui/react-dialog');
25
- var vaul = require('vaul');
26
- var ResizablePrimitive = require('react-resizable-panels');
27
- var ScrollAreaPrimitive = require('@radix-ui/react-scroll-area');
28
- var SeparatorPrimitive = require('@radix-ui/react-separator');
29
- var AccordionPrimitive = require('@radix-ui/react-accordion');
30
- var useEmblaCarousel = require('embla-carousel-react');
31
- var CollapsiblePrimitive = require('@radix-ui/react-collapsible');
32
- var recharts = require('recharts');
33
- var SelectPrimitive = require('@radix-ui/react-select');
34
- var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
35
- var ContextMenuPrimitive = require('@radix-ui/react-context-menu');
36
-
37
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
38
-
39
- function _interopNamespace(e) {
40
- if (e && e.__esModule) return e;
41
- var n = Object.create(null);
42
- if (e) {
43
- Object.keys(e).forEach(function (k) {
44
- if (k !== 'default') {
45
- var d = Object.getOwnPropertyDescriptor(e, k);
46
- Object.defineProperty(n, k, d.get ? d : {
47
- enumerable: true,
48
- get: function () { return e[k]; }
49
- });
50
- }
51
- });
52
- }
53
- n.default = e;
54
- return Object.freeze(n);
55
- }
56
-
57
- var AspectRatioPrimitive__namespace = /*#__PURE__*/_interopNamespace(AspectRatioPrimitive);
58
- var React18__namespace = /*#__PURE__*/_interopNamespace(React18);
59
- var AvatarPrimitive__namespace = /*#__PURE__*/_interopNamespace(AvatarPrimitive);
60
- var CheckboxPrimitive__namespace = /*#__PURE__*/_interopNamespace(CheckboxPrimitive);
61
- var SwitchPrimitives__namespace = /*#__PURE__*/_interopNamespace(SwitchPrimitives);
62
- var SliderPrimitive__namespace = /*#__PURE__*/_interopNamespace(SliderPrimitive);
63
- var ProgressPrimitive__namespace = /*#__PURE__*/_interopNamespace(ProgressPrimitive);
64
- var TooltipPrimitive__namespace = /*#__PURE__*/_interopNamespace(TooltipPrimitive);
65
- var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
66
- var HoverCardPrimitive__namespace = /*#__PURE__*/_interopNamespace(HoverCardPrimitive);
67
- var NavigationMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(NavigationMenuPrimitive);
68
- var MenubarPrimitive__namespace = /*#__PURE__*/_interopNamespace(MenubarPrimitive);
69
- var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespace(TabsPrimitive);
70
- var SheetPrimitive__namespace = /*#__PURE__*/_interopNamespace(SheetPrimitive);
71
- var ResizablePrimitive__namespace = /*#__PURE__*/_interopNamespace(ResizablePrimitive);
72
- var ScrollAreaPrimitive__namespace = /*#__PURE__*/_interopNamespace(ScrollAreaPrimitive);
73
- var SeparatorPrimitive__namespace = /*#__PURE__*/_interopNamespace(SeparatorPrimitive);
74
- var AccordionPrimitive__namespace = /*#__PURE__*/_interopNamespace(AccordionPrimitive);
75
- var useEmblaCarousel__default = /*#__PURE__*/_interopDefault(useEmblaCarousel);
76
- var CollapsiblePrimitive__namespace = /*#__PURE__*/_interopNamespace(CollapsiblePrimitive);
77
- var SelectPrimitive__namespace = /*#__PURE__*/_interopNamespace(SelectPrimitive);
78
- var DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(DropdownMenuPrimitive);
79
- var ContextMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(ContextMenuPrimitive);
80
-
81
- // src/base/aspect-ratio.tsx
82
- function AspectRatio({
83
- ...props
84
- }) {
85
- return /* @__PURE__ */ jsxRuntime.jsx(AspectRatioPrimitive__namespace.Root, { "data-slot": "aspect-ratio", ...props });
86
- }
87
- function cn(...inputs) {
88
- return tailwindMerge.twMerge(clsx.clsx(inputs));
89
- }
90
- var Avatar = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
91
- AvatarPrimitive__namespace.Root,
92
- {
93
- ref,
94
- className: cn(
95
- "relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",
96
- className
97
- ),
98
- ...props
99
- }
100
- ));
101
- Avatar.displayName = AvatarPrimitive__namespace.Root.displayName;
102
- var AvatarImage = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
103
- AvatarPrimitive__namespace.Image,
104
- {
105
- ref,
106
- className: cn("aspect-square h-full w-full", className),
107
- ...props
108
- }
109
- ));
110
- AvatarImage.displayName = AvatarPrimitive__namespace.Image.displayName;
111
- var AvatarFallback = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
112
- AvatarPrimitive__namespace.Fallback,
113
- {
114
- ref,
115
- className: cn(
116
- "flex h-full w-full items-center justify-center rounded-full bg-muted",
117
- className
118
- ),
119
- ...props
120
- }
121
- ));
122
- AvatarFallback.displayName = AvatarPrimitive__namespace.Fallback.displayName;
123
- var buttonVariants = classVarianceAuthority.cva(
124
- "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",
125
- {
126
- variants: {
127
- variant: {
128
- [uikitContracts.ButtonVariant.Default]: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
129
- [uikitContracts.ButtonVariant.Destructive]: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
130
- [uikitContracts.ButtonVariant.Outline]: "border border-input bg-background shadow-sm hover:bg-accent data-[state=open]:bg-accent",
131
- [uikitContracts.ButtonVariant.Secondary]: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
132
- [uikitContracts.ButtonVariant.Ghost]: "hover:bg-accent data-[state=open]:bg-accent",
133
- [uikitContracts.ButtonVariant.Link]: "text-primary underline-offset-4 hover:underline"
134
- },
135
- size: {
136
- [uikitContracts.ButtonSize.Default]: "h-9 px-4 py-2",
137
- [uikitContracts.ButtonSize.Sm]: "h-8 rounded-md px-3 text-xs",
138
- [uikitContracts.ButtonSize.Lg]: "h-10 rounded-md px-8",
139
- [uikitContracts.ButtonSize.Icon]: "h-9 w-9"
140
- }
141
- },
142
- defaultVariants: {
143
- variant: uikitContracts.ButtonVariant.Default,
144
- size: uikitContracts.ButtonSize.Default
145
- }
146
- }
147
- );
148
- var Button = React18__namespace.forwardRef(
149
- ({ className, variant, size, asChild = false, ...props }, ref) => {
150
- const Comp = asChild ? reactSlot.Slot : "button";
151
- return /* @__PURE__ */ jsxRuntime.jsx(
152
- Comp,
153
- {
154
- className: cn(buttonVariants({ variant, size, className })),
155
- ref,
156
- ...props
157
- }
158
- );
159
- }
160
- );
161
- Button.displayName = "Button";
162
- var badgeVariants = classVarianceAuthority.cva(
163
- "inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
164
- {
165
- variants: {
166
- variant: {
167
- default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
168
- secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
169
- destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
170
- outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
171
- }
172
- },
173
- defaultVariants: {
174
- variant: "default"
175
- }
176
- }
177
- );
178
- function Badge({
179
- className,
180
- variant,
181
- asChild = false,
182
- ...props
183
- }) {
184
- const Comp = asChild ? reactSlot.Slot : "span";
185
- return /* @__PURE__ */ jsxRuntime.jsx(
186
- Comp,
187
- {
188
- className: cn(badgeVariants({ variant }), className),
189
- ...props
190
- }
191
- );
192
- }
193
- var CheckIcon = ({ className = "" }) => {
194
- return /* @__PURE__ */ jsxRuntime.jsx(
195
- "svg",
196
- {
197
- className,
198
- width: "16",
199
- height: "16",
200
- viewBox: "0 0 24 24",
201
- fill: "none",
202
- stroke: "currentColor",
203
- strokeWidth: "2",
204
- strokeLinecap: "round",
205
- strokeLinejoin: "round",
206
- children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20 6 9 17l-5-5" })
207
- }
208
- );
209
- };
210
- function Checkbox({
211
- className,
212
- ...props
213
- }) {
214
- return /* @__PURE__ */ jsxRuntime.jsx(
215
- CheckboxPrimitive__namespace.Root,
216
- {
217
- "data-slot": "checkbox",
218
- className: cn(
219
- "peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
220
- className
221
- ),
222
- ...props,
223
- children: /* @__PURE__ */ jsxRuntime.jsx(
224
- CheckboxPrimitive__namespace.Indicator,
225
- {
226
- "data-slot": "checkbox-indicator",
227
- className: "grid place-content-center text-current transition-none",
228
- children: /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, { className: "size-3.5" })
229
- }
230
- )
231
- }
232
- );
233
- }
234
- var Input = React18__namespace.forwardRef(
235
- ({ className, type, ...props }, ref) => {
236
- return /* @__PURE__ */ jsxRuntime.jsx(
237
- "input",
238
- {
239
- type,
240
- className: cn(
241
- "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",
242
- className
243
- ),
244
- ref,
245
- ...props
246
- }
247
- );
248
- }
249
- );
250
- Input.displayName = "Input";
251
- var Textarea = React18__namespace.forwardRef(
252
- ({ className, autoResize = false, minHeight = 50, maxHeight = 350, size = "default", onChange, ...props }, ref) => {
253
- const internalRef = React18__namespace.useRef(null);
254
- React18__namespace.useImperativeHandle(ref, () => internalRef.current);
255
- const sizeClasses = {
256
- sm: "min-h-11 h-11",
257
- // 44px / 2.75rem - exact height
258
- default: "min-h-[60px]",
259
- // 60px / 3.75rem
260
- lg: "min-h-20"
261
- // 80px / 5rem
262
- };
263
- const paddingClasses = {
264
- sm: "py-3",
265
- // 12px top + 12px bottom + 20px line-height = 44px
266
- default: "py-2",
267
- // 8px top + 8px bottom (default)
268
- lg: "py-2"
269
- // 8px top + 8px bottom (default)
270
- };
271
- const handleResize = React18__namespace.useCallback(() => {
272
- if (autoResize && size !== "sm" && internalRef.current) {
273
- const textarea = internalRef.current;
274
- textarea.style.height = "auto";
275
- const scrollHeight = textarea.scrollHeight;
276
- textarea.style.height = `${Math.min(Math.max(scrollHeight, minHeight), maxHeight)}px`;
277
- }
278
- }, [autoResize, size, minHeight, maxHeight]);
279
- React18__namespace.useEffect(() => {
280
- handleResize();
281
- }, [handleResize, props.value]);
282
- const handleChange = React18__namespace.useCallback(
283
- (e) => {
284
- handleResize();
285
- onChange?.(e);
286
- },
287
- [onChange, handleResize]
288
- );
289
- return /* @__PURE__ */ jsxRuntime.jsx(
290
- "textarea",
291
- {
292
- className: cn(
293
- "flex w-full rounded-md border border-input bg-transparent px-3 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
294
- sizeClasses[size],
295
- paddingClasses[size],
296
- className
297
- ),
298
- ref: internalRef,
299
- onChange: handleChange,
300
- ...props
301
- }
302
- );
303
- }
304
- );
305
- Textarea.displayName = "Textarea";
306
- var Switch = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
307
- SwitchPrimitives__namespace.Root,
308
- {
309
- className: cn(
310
- "peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
311
- className
312
- ),
313
- ...props,
314
- ref,
315
- children: /* @__PURE__ */ jsxRuntime.jsx(
316
- SwitchPrimitives__namespace.Thumb,
317
- {
318
- className: cn(
319
- "pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform",
320
- "data-[state=checked]:ltr:translate-x-4 data-[state=checked]:rtl:-translate-x-4",
321
- "data-[state=unchecked]:translate-x-0"
322
- )
323
- }
324
- )
325
- }
326
- ));
327
- Switch.displayName = SwitchPrimitives__namespace.Root.displayName;
328
- function Skeleton({
329
- className,
330
- inheritColor = false,
331
- ...props
332
- }) {
333
- return /* @__PURE__ */ jsxRuntime.jsx(
334
- "div",
335
- {
336
- className: cn(
337
- "animate-pulse rounded-md",
338
- inheritColor ? "bg-current opacity-20" : "bg-muted",
339
- className
340
- ),
341
- ...props
342
- }
343
- );
344
- }
345
- var Spinner = React18__namespace.forwardRef(
346
- ({ className, icon: Icon2 = lucideReact.Loader2, size = "size-4", ...props }, ref) => {
347
- const textColorClasses = className?.match(/\btext-\S+/g)?.join(" ") || "";
348
- const wrapperClasses = lodash.trim(className?.replace(/\btext-\S+/g, "") || "");
349
- return /* @__PURE__ */ jsxRuntime.jsx(
350
- "div",
351
- {
352
- ref,
353
- className: cn("inline-flex items-center justify-center", wrapperClasses),
354
- ...props,
355
- children: /* @__PURE__ */ jsxRuntime.jsx(Icon2, { className: cn("animate-spin", size, textColorClasses) })
356
- }
357
- );
358
- }
359
- );
360
- Spinner.displayName = "Spinner";
361
- var Slider = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
362
- SliderPrimitive__namespace.Root,
363
- {
364
- ref,
365
- className: cn(
366
- "relative flex w-full touch-none select-none items-center",
367
- className
368
- ),
369
- ...props
370
- }
371
- ));
372
- Slider.displayName = SliderPrimitive__namespace.Root.displayName;
373
- var SliderTrack = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
374
- SliderPrimitive__namespace.Track,
375
- {
376
- ref,
377
- className: cn(
378
- "relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20",
379
- className
380
- ),
381
- ...props
382
- }
383
- ));
384
- SliderTrack.displayName = SliderPrimitive__namespace.Track.displayName;
385
- var SliderRange = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
386
- SliderPrimitive__namespace.Range,
387
- {
388
- ref,
389
- className: cn("absolute h-full bg-primary", className),
390
- ...props
391
- }
392
- ));
393
- SliderRange.displayName = SliderPrimitive__namespace.Range.displayName;
394
- var SliderThumb = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
395
- SliderPrimitive__namespace.Thumb,
396
- {
397
- ref,
398
- className: cn(
399
- "block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
400
- className
401
- ),
402
- ...props
403
- }
404
- ));
405
- SliderThumb.displayName = SliderPrimitive__namespace.Thumb.displayName;
406
- var Progress = React18__namespace.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
407
- ProgressPrimitive__namespace.Root,
408
- {
409
- ref,
410
- className: cn(
411
- "relative h-2 w-full overflow-hidden rounded-full bg-primary/20",
412
- className
413
- ),
414
- ...props,
415
- children: /* @__PURE__ */ jsxRuntime.jsx(
416
- ProgressPrimitive__namespace.Indicator,
417
- {
418
- className: "h-full w-full flex-1 bg-primary transition-all",
419
- style: { transform: `translateX(-${100 - (value || 0)}%)` }
420
- }
421
- )
422
- }
423
- ));
424
- Progress.displayName = ProgressPrimitive__namespace.Root.displayName;
425
- var TooltipProvider = ({
426
- delayDuration = 0,
427
- ...props
428
- }) => /* @__PURE__ */ jsxRuntime.jsx(
429
- TooltipPrimitive__namespace.Provider,
430
- {
431
- delayDuration,
432
- ...props
433
- }
434
- );
435
- TooltipProvider.displayName = TooltipPrimitive__namespace.Provider.displayName;
436
- var Tooltip = ({
437
- ...props
438
- }) => /* @__PURE__ */ jsxRuntime.jsx(TooltipProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Root, { ...props }) });
439
- Tooltip.displayName = TooltipPrimitive__namespace.Root.displayName;
440
- var TooltipTrigger = React18__namespace.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Trigger, { ref, ...props }));
441
- TooltipTrigger.displayName = TooltipPrimitive__namespace.Trigger.displayName;
442
- var TooltipContent = React18__namespace.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
443
- TooltipPrimitive__namespace.Content,
444
- {
445
- ref,
446
- sideOffset,
447
- className: cn(
448
- "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",
449
- className
450
- ),
451
- ...props
452
- }
453
- ) }));
454
- TooltipContent.displayName = TooltipPrimitive__namespace.Content.displayName;
455
- var Popover = PopoverPrimitive__namespace.Root;
456
- Popover.displayName = "Popover";
457
- var PopoverTrigger = React18__namespace.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
458
- PopoverPrimitive__namespace.Trigger,
459
- {
460
- ref,
461
- "data-slot": "popover-trigger",
462
- ...props
463
- }
464
- ));
465
- PopoverTrigger.displayName = "PopoverTrigger";
466
- var PopoverContent = React18__namespace.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
467
- PopoverPrimitive__namespace.Content,
468
- {
469
- ref,
470
- "data-slot": "popover-content",
471
- align,
472
- sideOffset,
473
- className: cn(
474
- "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden 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",
475
- className
476
- ),
477
- ...props
478
- }
479
- ) }));
480
- PopoverContent.displayName = "PopoverContent";
481
- var PopoverAnchor = React18__namespace.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
482
- PopoverPrimitive__namespace.Anchor,
483
- {
484
- ref,
485
- "data-slot": "popover-anchor",
486
- ...props
487
- }
488
- ));
489
- PopoverAnchor.displayName = "PopoverAnchor";
490
- var HoverCard = HoverCardPrimitive__namespace.Root;
491
- HoverCard.displayName = "HoverCard";
492
- var HoverCardTrigger = React18__namespace.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
493
- HoverCardPrimitive__namespace.Trigger,
494
- {
495
- ref,
496
- "data-slot": "hover-card-trigger",
497
- ...props
498
- }
499
- ));
500
- HoverCardTrigger.displayName = "HoverCardTrigger";
501
- var HoverCardContent = React18__namespace.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(HoverCardPrimitive__namespace.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsxRuntime.jsx(
502
- HoverCardPrimitive__namespace.Content,
503
- {
504
- ref,
505
- "data-slot": "hover-card-content",
506
- align,
507
- sideOffset,
508
- className: cn(
509
- "z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden 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",
510
- className
511
- ),
512
- ...props
513
- }
514
- ) }));
515
- HoverCardContent.displayName = "HoverCardContent";
516
- var Card = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
517
- "div",
518
- {
519
- ref,
520
- className: cn(
521
- "rounded-xl border bg-card text-card-foreground shadow",
522
- className
523
- ),
524
- ...props
525
- }
526
- ));
527
- Card.displayName = "Card";
528
- var CardHeader = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
529
- "div",
530
- {
531
- ref,
532
- className: cn("flex flex-col space-y-1.5 p-6", className),
533
- ...props
534
- }
535
- ));
536
- CardHeader.displayName = "CardHeader";
537
- var CardTitle = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
538
- "div",
539
- {
540
- ref,
541
- className: cn("font-semibold leading-none tracking-tight", className),
542
- ...props
543
- }
544
- ));
545
- CardTitle.displayName = "CardTitle";
546
- var CardDescription = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
547
- "div",
548
- {
549
- ref,
550
- className: cn("text-sm text-muted-foreground", className),
551
- ...props
552
- }
553
- ));
554
- CardDescription.displayName = "CardDescription";
555
- var CardContent = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("p-6 pt-0", className), ...props }));
556
- CardContent.displayName = "CardContent";
557
- var CardFooter = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
558
- "div",
559
- {
560
- ref,
561
- className: cn("flex items-center p-6 pt-0", className),
562
- ...props
563
- }
564
- ));
565
- CardFooter.displayName = "CardFooter";
566
- var Header = React18__namespace.default.forwardRef(
567
- ({ children, className }, ref) => {
568
- return /* @__PURE__ */ jsxRuntime.jsx(
569
- "header",
570
- {
571
- ref,
572
- className: cn(
573
- "flex items-center justify-end px-6 py-4 bg-background border-b border-border h-16 w-full",
574
- className
575
- ),
576
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-4", children })
577
- }
578
- );
579
- }
580
- );
581
- Header.displayName = "Header";
582
- var NavigationMenu = React18__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
583
- NavigationMenuPrimitive__namespace.Root,
584
- {
585
- ref,
586
- className: cn(
587
- "relative z-10 flex max-w-max flex-1 items-center justify-center",
588
- className
589
- ),
590
- ...props,
591
- children: [
592
- children,
593
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuViewport, {})
594
- ]
595
- }
596
- ));
597
- NavigationMenu.displayName = NavigationMenuPrimitive__namespace.Root.displayName;
598
- var NavigationMenuList = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
599
- NavigationMenuPrimitive__namespace.List,
600
- {
601
- ref,
602
- className: cn(
603
- "group flex flex-1 list-none items-center justify-center space-x-1",
604
- className
605
- ),
606
- ...props
607
- }
608
- ));
609
- NavigationMenuList.displayName = NavigationMenuPrimitive__namespace.List.displayName;
610
- var NavigationMenuItem = NavigationMenuPrimitive__namespace.Item;
611
- var navigationMenuTriggerStyle = classVarianceAuthority.cva(
612
- "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-accent-foreground data-[state=open]:bg-accent/50 data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent"
613
- );
614
- var NavigationMenuTrigger = React18__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
615
- NavigationMenuPrimitive__namespace.Trigger,
616
- {
617
- ref,
618
- className: cn(navigationMenuTriggerStyle(), "group", className),
619
- ...props,
620
- children: [
621
- children,
622
- " ",
623
- /* @__PURE__ */ jsxRuntime.jsx(
624
- lucideReact.ChevronDown,
625
- {
626
- className: "relative top-[1px] ml-1 h-3 w-3 transition duration-300 group-data-[state=open]:rotate-180",
627
- "aria-hidden": "true"
628
- }
629
- )
630
- ]
631
- }
632
- ));
633
- NavigationMenuTrigger.displayName = NavigationMenuPrimitive__namespace.Trigger.displayName;
634
- var NavigationMenuContent = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
635
- NavigationMenuPrimitive__namespace.Content,
636
- {
637
- ref,
638
- className: cn(
639
- "left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto ",
640
- className
641
- ),
642
- ...props
643
- }
644
- ));
645
- NavigationMenuContent.displayName = NavigationMenuPrimitive__namespace.Content.displayName;
646
- var NavigationMenuLink = NavigationMenuPrimitive__namespace.Link;
647
- var NavigationMenuViewport = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsxRuntime.jsx(
648
- NavigationMenuPrimitive__namespace.Viewport,
649
- {
650
- className: cn(
651
- "origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]",
652
- className
653
- ),
654
- ref,
655
- ...props
656
- }
657
- ) }));
658
- NavigationMenuViewport.displayName = NavigationMenuPrimitive__namespace.Viewport.displayName;
659
- var NavigationMenuIndicator = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
660
- NavigationMenuPrimitive__namespace.Indicator,
661
- {
662
- ref,
663
- className: cn(
664
- "top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",
665
- className
666
- ),
667
- ...props,
668
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
669
- }
670
- ));
671
- NavigationMenuIndicator.displayName = NavigationMenuPrimitive__namespace.Indicator.displayName;
672
- function Breadcrumb({ ...props }) {
673
- return /* @__PURE__ */ jsxRuntime.jsx("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
674
- }
675
- function BreadcrumbList({ className, ...props }) {
676
- return /* @__PURE__ */ jsxRuntime.jsx(
677
- "ol",
678
- {
679
- "data-slot": "breadcrumb-list",
680
- className: cn(
681
- "text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5",
682
- className
683
- ),
684
- ...props
685
- }
686
- );
687
- }
688
- function BreadcrumbItem({ className, ...props }) {
689
- return /* @__PURE__ */ jsxRuntime.jsx(
690
- "li",
691
- {
692
- "data-slot": "breadcrumb-item",
693
- className: cn("inline-flex items-center gap-1.5", className),
694
- ...props
695
- }
696
- );
697
- }
698
- function BreadcrumbLink({
699
- asChild,
700
- className,
701
- ...props
702
- }) {
703
- const Comp = asChild ? reactSlot.Slot : "a";
704
- return /* @__PURE__ */ jsxRuntime.jsx(
705
- Comp,
706
- {
707
- "data-slot": "breadcrumb-link",
708
- className: cn("hover:text-foreground transition-colors", className),
709
- ...props
710
- }
711
- );
712
- }
713
- function BreadcrumbPage({ className, ...props }) {
714
- return /* @__PURE__ */ jsxRuntime.jsx(
715
- "span",
716
- {
717
- "data-slot": "breadcrumb-page",
718
- role: "link",
719
- "aria-disabled": "true",
720
- "aria-current": "page",
721
- className: cn("text-foreground font-normal", className),
722
- ...props
723
- }
724
- );
725
- }
726
- function BreadcrumbSeparator({
727
- children,
728
- className,
729
- ...props
730
- }) {
731
- return /* @__PURE__ */ jsxRuntime.jsx(
732
- "li",
733
- {
734
- "data-slot": "breadcrumb-separator",
735
- role: "presentation",
736
- "aria-hidden": "true",
737
- className: cn("[&>svg]:size-3.5", className),
738
- ...props,
739
- children: children ?? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, {})
740
- }
741
- );
742
- }
743
- function BreadcrumbEllipsis({
744
- className,
745
- ...props
746
- }) {
747
- return /* @__PURE__ */ jsxRuntime.jsxs(
748
- "span",
749
- {
750
- "data-slot": "breadcrumb-ellipsis",
751
- role: "presentation",
752
- "aria-hidden": "true",
753
- className: cn("flex size-9 items-center justify-center", className),
754
- ...props,
755
- children: [
756
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreHorizontal, { className: "size-4" }),
757
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "More" })
758
- ]
759
- }
760
- );
761
- }
762
- var ChevronRightIcon = ({ className = "" }) => {
763
- return /* @__PURE__ */ jsxRuntime.jsx(
764
- "svg",
765
- {
766
- className,
767
- width: "16",
768
- height: "16",
769
- viewBox: "0 0 24 24",
770
- fill: "none",
771
- stroke: "currentColor",
772
- strokeWidth: "2",
773
- strokeLinecap: "round",
774
- strokeLinejoin: "round",
775
- children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m9 18 6-6-6-6" })
776
- }
777
- );
778
- };
779
- var CircleIcon = ({ className = "" }) => {
780
- return /* @__PURE__ */ jsxRuntime.jsx(
781
- "svg",
782
- {
783
- className,
784
- width: "16",
785
- height: "16",
786
- viewBox: "0 0 24 24",
787
- fill: "none",
788
- stroke: "currentColor",
789
- strokeWidth: "2",
790
- strokeLinecap: "round",
791
- strokeLinejoin: "round",
792
- children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" })
793
- }
794
- );
795
- };
796
- function Menubar({
797
- className,
798
- ...props
799
- }) {
800
- return /* @__PURE__ */ jsxRuntime.jsx(
801
- MenubarPrimitive__namespace.Root,
802
- {
803
- "data-slot": "menubar",
804
- className: cn(
805
- "bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs",
806
- className
807
- ),
808
- ...props
809
- }
810
- );
811
- }
812
- function MenubarMenu({
813
- ...props
814
- }) {
815
- return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Menu, { "data-slot": "menubar-menu", ...props });
816
- }
817
- function MenubarGroup({
818
- ...props
819
- }) {
820
- return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Group, { "data-slot": "menubar-group", ...props });
821
- }
822
- function MenubarPortal({
823
- ...props
824
- }) {
825
- return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Portal, { "data-slot": "menubar-portal", ...props });
826
- }
827
- function MenubarRadioGroup({
828
- ...props
829
- }) {
830
- return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.RadioGroup, { "data-slot": "menubar-radio-group", ...props });
831
- }
832
- function MenubarTrigger({
833
- className,
834
- ...props
835
- }) {
836
- return /* @__PURE__ */ jsxRuntime.jsx(
837
- MenubarPrimitive__namespace.Trigger,
838
- {
839
- "data-slot": "menubar-trigger",
840
- className: cn(
841
- "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none",
842
- className
843
- ),
844
- ...props
845
- }
846
- );
847
- }
848
- function MenubarContent({
849
- className,
850
- align = "start",
851
- alignOffset = -4,
852
- sideOffset = 8,
853
- ...props
854
- }) {
855
- return /* @__PURE__ */ jsxRuntime.jsx(MenubarPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(
856
- MenubarPrimitive__namespace.Content,
857
- {
858
- "data-slot": "menubar-content",
859
- align,
860
- alignOffset,
861
- sideOffset,
862
- className: cn(
863
- "bg-popover text-popover-foreground data-[state=open]:animate-in 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 z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-md",
864
- className
865
- ),
866
- ...props
867
- }
868
- ) });
869
- }
870
- function MenubarItem({
871
- className,
872
- inset,
873
- variant = "default",
874
- ...props
875
- }) {
876
- return /* @__PURE__ */ jsxRuntime.jsx(
877
- MenubarPrimitive__namespace.Item,
878
- {
879
- "data-slot": "menubar-item",
880
- "data-inset": inset,
881
- "data-variant": variant,
882
- className: cn(
883
- "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
884
- className
885
- ),
886
- ...props
887
- }
888
- );
889
- }
890
- function MenubarCheckboxItem({
891
- className,
892
- children,
893
- checked,
894
- ...props
895
- }) {
896
- return /* @__PURE__ */ jsxRuntime.jsxs(
897
- MenubarPrimitive__namespace.CheckboxItem,
898
- {
899
- "data-slot": "menubar-checkbox-item",
900
- className: cn(
901
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
902
- className
903
- ),
904
- checked,
905
- ...props,
906
- children: [
907
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, { className: "size-4" }) }) }),
908
- children
909
- ]
910
- }
911
- );
912
- }
913
- function MenubarRadioItem({
914
- className,
915
- children,
916
- ...props
917
- }) {
918
- return /* @__PURE__ */ jsxRuntime.jsxs(
919
- MenubarPrimitive__namespace.RadioItem,
920
- {
921
- "data-slot": "menubar-radio-item",
922
- className: cn(
923
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
924
- className
925
- ),
926
- ...props,
927
- children: [
928
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(CircleIcon, { className: "size-2 fill-current" }) }) }),
929
- children
930
- ]
931
- }
932
- );
933
- }
934
- function MenubarLabel({
935
- className,
936
- inset,
937
- ...props
938
- }) {
939
- return /* @__PURE__ */ jsxRuntime.jsx(
940
- MenubarPrimitive__namespace.Label,
941
- {
942
- "data-slot": "menubar-label",
943
- "data-inset": inset,
944
- className: cn(
945
- "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
946
- className
947
- ),
948
- ...props
949
- }
950
- );
951
- }
952
- function MenubarSeparator({
953
- className,
954
- ...props
955
- }) {
956
- return /* @__PURE__ */ jsxRuntime.jsx(
957
- MenubarPrimitive__namespace.Separator,
958
- {
959
- "data-slot": "menubar-separator",
960
- className: cn("bg-border -mx-1 my-1 h-px", className),
961
- ...props
962
- }
963
- );
964
- }
965
- function MenubarShortcut({
966
- className,
967
- ...props
968
- }) {
969
- return /* @__PURE__ */ jsxRuntime.jsx(
970
- "span",
971
- {
972
- "data-slot": "menubar-shortcut",
973
- className: cn(
974
- "text-muted-foreground ml-auto text-xs tracking-widest",
975
- className
976
- ),
977
- ...props
978
- }
979
- );
980
- }
981
- function MenubarSub({
982
- ...props
983
- }) {
984
- return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Sub, { "data-slot": "menubar-sub", ...props });
985
- }
986
- function MenubarSubTrigger({
987
- className,
988
- inset,
989
- children,
990
- ...props
991
- }) {
992
- return /* @__PURE__ */ jsxRuntime.jsxs(
993
- MenubarPrimitive__namespace.SubTrigger,
994
- {
995
- "data-slot": "menubar-sub-trigger",
996
- "data-inset": inset,
997
- className: cn(
998
- "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[inset]:pl-8",
999
- className
1000
- ),
1001
- ...props,
1002
- children: [
1003
- children,
1004
- /* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon, { className: "ml-auto h-4 w-4" })
1005
- ]
1006
- }
1007
- );
1008
- }
1009
- function MenubarSubContent({
1010
- className,
1011
- ...props
1012
- }) {
1013
- return /* @__PURE__ */ jsxRuntime.jsx(
1014
- MenubarPrimitive__namespace.SubContent,
1015
- {
1016
- "data-slot": "menubar-sub-content",
1017
- className: cn(
1018
- "bg-popover text-popover-foreground 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 z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
1019
- className
1020
- ),
1021
- ...props
1022
- }
1023
- );
1024
- }
1025
- var ChevronLeftIcon = ({ className = "" }) => {
1026
- return /* @__PURE__ */ jsxRuntime.jsx(
1027
- "svg",
1028
- {
1029
- className,
1030
- width: "16",
1031
- height: "16",
1032
- viewBox: "0 0 24 24",
1033
- fill: "none",
1034
- stroke: "currentColor",
1035
- strokeWidth: "2",
1036
- strokeLinecap: "round",
1037
- strokeLinejoin: "round",
1038
- children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m15 18-6-6 6-6" })
1039
- }
1040
- );
1041
- };
1042
- var MoreHorizontalIcon = ({ className = "" }) => {
1043
- return /* @__PURE__ */ jsxRuntime.jsxs(
1044
- "svg",
1045
- {
1046
- className,
1047
- width: "16",
1048
- height: "16",
1049
- viewBox: "0 0 24 24",
1050
- fill: "none",
1051
- stroke: "currentColor",
1052
- strokeWidth: "2",
1053
- strokeLinecap: "round",
1054
- strokeLinejoin: "round",
1055
- children: [
1056
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "1" }),
1057
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "19", cy: "12", r: "1" }),
1058
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "5", cy: "12", r: "1" })
1059
- ]
1060
- }
1061
- );
1062
- };
1063
- function Pagination({ className, ...props }) {
1064
- return /* @__PURE__ */ jsxRuntime.jsx(
1065
- "nav",
1066
- {
1067
- role: "navigation",
1068
- "aria-label": "pagination",
1069
- "data-slot": "pagination",
1070
- className: cn("mx-auto flex w-full justify-center", className),
1071
- ...props
1072
- }
1073
- );
1074
- }
1075
- function PaginationContent({
1076
- className,
1077
- ...props
1078
- }) {
1079
- return /* @__PURE__ */ jsxRuntime.jsx(
1080
- "ul",
1081
- {
1082
- "data-slot": "pagination-content",
1083
- className: cn("flex flex-row items-center gap-1", className),
1084
- ...props
1085
- }
1086
- );
1087
- }
1088
- function PaginationItem({ ...props }) {
1089
- return /* @__PURE__ */ jsxRuntime.jsx("li", { "data-slot": "pagination-item", ...props });
1090
- }
1091
- function PaginationLink({
1092
- className,
1093
- isActive,
1094
- size = uikitContracts.ButtonSize.Icon,
1095
- asChild,
1096
- ...props
1097
- }) {
1098
- const Comp = asChild ? reactSlot.Slot : "a";
1099
- return /* @__PURE__ */ jsxRuntime.jsx(
1100
- Comp,
1101
- {
1102
- "aria-current": isActive ? "page" : void 0,
1103
- "data-slot": "pagination-link",
1104
- "data-active": isActive,
1105
- className: cn(
1106
- buttonVariants({
1107
- variant: isActive ? uikitContracts.ButtonVariant.Outline : uikitContracts.ButtonVariant.Ghost,
1108
- size
1109
- }),
1110
- className
1111
- ),
1112
- ...props
1113
- }
1114
- );
1115
- }
1116
- function PaginationPrevious({
1117
- className,
1118
- children,
1119
- ...props
1120
- }) {
1121
- return /* @__PURE__ */ jsxRuntime.jsxs(
1122
- PaginationLink,
1123
- {
1124
- "aria-label": "Go to previous page",
1125
- size: uikitContracts.ButtonSize.Default,
1126
- className: cn("gap-1 px-2.5 sm:pl-2.5", className),
1127
- ...props,
1128
- children: [
1129
- /* @__PURE__ */ jsxRuntime.jsx(ChevronLeftIcon, { className: "h-4 w-4" }),
1130
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:block", children: children ?? "Previous" })
1131
- ]
1132
- }
1133
- );
1134
- }
1135
- function PaginationNext({
1136
- className,
1137
- children,
1138
- ...props
1139
- }) {
1140
- return /* @__PURE__ */ jsxRuntime.jsxs(
1141
- PaginationLink,
1142
- {
1143
- "aria-label": "Go to next page",
1144
- size: uikitContracts.ButtonSize.Default,
1145
- className: cn("gap-1 px-2.5 sm:pr-2.5", className),
1146
- ...props,
1147
- children: [
1148
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:block", children: children ?? "Next" }),
1149
- /* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon, { className: "h-4 w-4" })
1150
- ]
1151
- }
1152
- );
1153
- }
1154
- function PaginationEllipsis({
1155
- className,
1156
- ...props
1157
- }) {
1158
- return /* @__PURE__ */ jsxRuntime.jsxs(
1159
- "span",
1160
- {
1161
- "aria-hidden": true,
1162
- "data-slot": "pagination-ellipsis",
1163
- className: cn("flex size-9 items-center justify-center", className),
1164
- ...props,
1165
- children: [
1166
- /* @__PURE__ */ jsxRuntime.jsx(MoreHorizontalIcon, { className: "h-4 w-4" }),
1167
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "More pages" })
1168
- ]
1169
- }
1170
- );
1171
- }
1172
- function Tabs({
1173
- className,
1174
- ...props
1175
- }) {
1176
- return /* @__PURE__ */ jsxRuntime.jsx(
1177
- TabsPrimitive__namespace.Root,
1178
- {
1179
- "data-slot": "tabs",
1180
- className: cn("flex flex-col gap-2", className),
1181
- ...props
1182
- }
1183
- );
1184
- }
1185
- function TabsList({
1186
- className,
1187
- ...props
1188
- }) {
1189
- return /* @__PURE__ */ jsxRuntime.jsx(
1190
- TabsPrimitive__namespace.List,
1191
- {
1192
- "data-slot": "tabs-list",
1193
- className: cn(
1194
- "bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",
1195
- className
1196
- ),
1197
- ...props
1198
- }
1199
- );
1200
- }
1201
- function TabsTrigger({
1202
- className,
1203
- ...props
1204
- }) {
1205
- return /* @__PURE__ */ jsxRuntime.jsx(
1206
- TabsPrimitive__namespace.Trigger,
1207
- {
1208
- "data-slot": "tabs-trigger",
1209
- className: cn(
1210
- "data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground 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 transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1211
- className
1212
- ),
1213
- ...props
1214
- }
1215
- );
1216
- }
1217
- function TabsContent({
1218
- className,
1219
- ...props
1220
- }) {
1221
- return /* @__PURE__ */ jsxRuntime.jsx(
1222
- TabsPrimitive__namespace.Content,
1223
- {
1224
- "data-slot": "tabs-content",
1225
- className: cn("flex-1 outline-none", className),
1226
- ...props
1227
- }
1228
- );
1229
- }
1230
- var Sheet = SheetPrimitive__namespace.Root;
1231
- var SheetTrigger = SheetPrimitive__namespace.Trigger;
1232
- var SheetClose = SheetPrimitive__namespace.Close;
1233
- var SheetPortal = SheetPrimitive__namespace.Portal;
1234
- var SheetOverlay = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1235
- SheetPrimitive__namespace.Overlay,
1236
- {
1237
- className: cn(
1238
- "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",
1239
- className
1240
- ),
1241
- ...props,
1242
- ref
1243
- }
1244
- ));
1245
- SheetOverlay.displayName = SheetPrimitive__namespace.Overlay.displayName;
1246
- var sheetVariants = classVarianceAuthority.cva(
1247
- "fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",
1248
- {
1249
- variants: {
1250
- side: {
1251
- top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
1252
- bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
1253
- left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
1254
- 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"
1255
- }
1256
- },
1257
- defaultVariants: {
1258
- side: "right"
1259
- }
1260
- }
1261
- );
1262
- var SheetContent = React18__namespace.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(SheetPortal, { children: [
1263
- /* @__PURE__ */ jsxRuntime.jsx(SheetOverlay, {}),
1264
- /* @__PURE__ */ jsxRuntime.jsxs(
1265
- SheetPrimitive__namespace.Content,
1266
- {
1267
- ref,
1268
- className: cn(sheetVariants({ side }), className),
1269
- ...props,
1270
- children: [
1271
- /* @__PURE__ */ jsxRuntime.jsxs(SheetPrimitive__namespace.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
1272
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" }),
1273
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
1274
- ] }),
1275
- children
1276
- ]
1277
- }
1278
- )
1279
- ] }));
1280
- SheetContent.displayName = SheetPrimitive__namespace.Content.displayName;
1281
- var SheetHeader = ({
1282
- className,
1283
- ...props
1284
- }) => /* @__PURE__ */ jsxRuntime.jsx(
1285
- "div",
1286
- {
1287
- className: cn(
1288
- "flex flex-col space-y-2 text-center sm:text-left",
1289
- className
1290
- ),
1291
- ...props
1292
- }
1293
- );
1294
- SheetHeader.displayName = "SheetHeader";
1295
- var SheetFooter = ({
1296
- className,
1297
- ...props
1298
- }) => /* @__PURE__ */ jsxRuntime.jsx(
1299
- "div",
1300
- {
1301
- className: cn(
1302
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
1303
- className
1304
- ),
1305
- ...props
1306
- }
1307
- );
1308
- SheetFooter.displayName = "SheetFooter";
1309
- var SheetTitle = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1310
- SheetPrimitive__namespace.Title,
1311
- {
1312
- ref,
1313
- className: cn("text-lg font-semibold text-foreground", className),
1314
- ...props
1315
- }
1316
- ));
1317
- SheetTitle.displayName = SheetPrimitive__namespace.Title.displayName;
1318
- var SheetDescription = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1319
- SheetPrimitive__namespace.Description,
1320
- {
1321
- ref,
1322
- className: cn("text-sm text-muted-foreground", className),
1323
- ...props
1324
- }
1325
- ));
1326
- SheetDescription.displayName = SheetPrimitive__namespace.Description.displayName;
1327
- var Dialog = SheetPrimitive__namespace.Root;
1328
- var DialogTrigger = SheetPrimitive__namespace.Trigger;
1329
- var DialogPortal = SheetPrimitive__namespace.Portal;
1330
- var DialogClose = SheetPrimitive__namespace.Close;
1331
- var DialogOverlay = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1332
- SheetPrimitive__namespace.Overlay,
1333
- {
1334
- ref,
1335
- className: cn(
1336
- "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",
1337
- className
1338
- ),
1339
- ...props
1340
- }
1341
- ));
1342
- DialogOverlay.displayName = SheetPrimitive__namespace.Overlay.displayName;
1343
- var DialogContent = React18__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DialogPortal, { children: [
1344
- /* @__PURE__ */ jsxRuntime.jsx(DialogOverlay, {}),
1345
- /* @__PURE__ */ jsxRuntime.jsxs(
1346
- SheetPrimitive__namespace.Content,
1347
- {
1348
- ref,
1349
- className: cn(
1350
- "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
1351
- className
1352
- ),
1353
- ...props,
1354
- children: [
1355
- children,
1356
- /* @__PURE__ */ jsxRuntime.jsxs(SheetPrimitive__namespace.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
1357
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" }),
1358
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
1359
- ] })
1360
- ]
1361
- }
1362
- )
1363
- ] }));
1364
- DialogContent.displayName = SheetPrimitive__namespace.Content.displayName;
1365
- var DialogHeader = ({
1366
- className,
1367
- ...props
1368
- }) => /* @__PURE__ */ jsxRuntime.jsx(
1369
- "div",
1370
- {
1371
- className: cn(
1372
- "flex flex-col space-y-1.5 text-center sm:text-left",
1373
- className
1374
- ),
1375
- ...props
1376
- }
1377
- );
1378
- DialogHeader.displayName = "DialogHeader";
1379
- var DialogFooter = ({
1380
- className,
1381
- ...props
1382
- }) => /* @__PURE__ */ jsxRuntime.jsx(
1383
- "div",
1384
- {
1385
- className: cn(
1386
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
1387
- className
1388
- ),
1389
- ...props
1390
- }
1391
- );
1392
- DialogFooter.displayName = "DialogFooter";
1393
- var DialogTitle = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1394
- SheetPrimitive__namespace.Title,
1395
- {
1396
- ref,
1397
- className: cn(
1398
- "text-lg font-semibold leading-none tracking-tight",
1399
- className
1400
- ),
1401
- ...props
1402
- }
1403
- ));
1404
- DialogTitle.displayName = SheetPrimitive__namespace.Title.displayName;
1405
- var DialogDescription = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1406
- SheetPrimitive__namespace.Description,
1407
- {
1408
- ref,
1409
- className: cn("text-sm text-muted-foreground", className),
1410
- ...props
1411
- }
1412
- ));
1413
- DialogDescription.displayName = SheetPrimitive__namespace.Description.displayName;
1414
- function Drawer({
1415
- ...props
1416
- }) {
1417
- return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Root, { "data-slot": "drawer", ...props });
1418
- }
1419
- function DrawerTrigger({
1420
- ...props
1421
- }) {
1422
- return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Trigger, { "data-slot": "drawer-trigger", ...props });
1423
- }
1424
- function DrawerPortal({
1425
- ...props
1426
- }) {
1427
- return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Portal, { "data-slot": "drawer-portal", ...props });
1428
- }
1429
- function DrawerClose({
1430
- ...props
1431
- }) {
1432
- return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Close, { "data-slot": "drawer-close", ...props });
1433
- }
1434
- function DrawerOverlay({
1435
- className,
1436
- ...props
1437
- }) {
1438
- return /* @__PURE__ */ jsxRuntime.jsx(
1439
- vaul.Drawer.Overlay,
1440
- {
1441
- "data-slot": "drawer-overlay",
1442
- className: cn(
1443
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
1444
- className
1445
- ),
1446
- ...props
1447
- }
1448
- );
1449
- }
1450
- function DrawerContent({
1451
- className,
1452
- children,
1453
- ...props
1454
- }) {
1455
- return /* @__PURE__ */ jsxRuntime.jsxs(DrawerPortal, { "data-slot": "drawer-portal", children: [
1456
- /* @__PURE__ */ jsxRuntime.jsx(DrawerOverlay, {}),
1457
- /* @__PURE__ */ jsxRuntime.jsxs(
1458
- vaul.Drawer.Content,
1459
- {
1460
- "data-slot": "drawer-content",
1461
- className: cn(
1462
- "group/drawer-content bg-background fixed z-50 flex h-auto flex-col",
1463
- "data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b",
1464
- "data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t",
1465
- "data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm",
1466
- "data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm",
1467
- className
1468
- ),
1469
- ...props,
1470
- children: [
1471
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
1472
- children
1473
- ]
1474
- }
1475
- )
1476
- ] });
1477
- }
1478
- function DrawerHeader({ className, ...props }) {
1479
- return /* @__PURE__ */ jsxRuntime.jsx(
1480
- "div",
1481
- {
1482
- "data-slot": "drawer-header",
1483
- className: cn(
1484
- "flex flex-col gap-1.5 p-4 text-center sm:text-left",
1485
- className
1486
- ),
1487
- ...props
1488
- }
1489
- );
1490
- }
1491
- function DrawerFooter({ className, ...props }) {
1492
- return /* @__PURE__ */ jsxRuntime.jsx(
1493
- "div",
1494
- {
1495
- "data-slot": "drawer-footer",
1496
- className: cn("mt-auto flex flex-col gap-2 p-4", className),
1497
- ...props
1498
- }
1499
- );
1500
- }
1501
- function DrawerTitle({
1502
- className,
1503
- ...props
1504
- }) {
1505
- return /* @__PURE__ */ jsxRuntime.jsx(
1506
- vaul.Drawer.Title,
1507
- {
1508
- "data-slot": "drawer-title",
1509
- className: cn("text-lg font-semibold text-foreground", className),
1510
- ...props
1511
- }
1512
- );
1513
- }
1514
- function DrawerDescription({
1515
- className,
1516
- ...props
1517
- }) {
1518
- return /* @__PURE__ */ jsxRuntime.jsx(
1519
- vaul.Drawer.Description,
1520
- {
1521
- "data-slot": "drawer-description",
1522
- className: cn("text-sm text-muted-foreground", className),
1523
- ...props
1524
- }
1525
- );
1526
- }
1527
- function ResizablePanelGroup({
1528
- className,
1529
- ...props
1530
- }) {
1531
- return /* @__PURE__ */ jsxRuntime.jsx(
1532
- ResizablePrimitive__namespace.PanelGroup,
1533
- {
1534
- "data-slot": "resizable-panel-group",
1535
- className: cn(
1536
- "flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
1537
- className
1538
- ),
1539
- ...props
1540
- }
1541
- );
1542
- }
1543
- function ResizablePanel({
1544
- ...props
1545
- }) {
1546
- return /* @__PURE__ */ jsxRuntime.jsx(ResizablePrimitive__namespace.Panel, { "data-slot": "resizable-panel", ...props });
1547
- }
1548
- function ResizableHandle({
1549
- withHandle,
1550
- className,
1551
- ...props
1552
- }) {
1553
- return /* @__PURE__ */ jsxRuntime.jsx(
1554
- ResizablePrimitive__namespace.PanelResizeHandle,
1555
- {
1556
- "data-slot": "resizable-handle",
1557
- className: cn(
1558
- "bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden 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-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90",
1559
- className
1560
- ),
1561
- ...props,
1562
- children: withHandle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-sm border", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.GripVertical, { className: "size-2.5" }) })
1563
- }
1564
- );
1565
- }
1566
- function ScrollArea({
1567
- className,
1568
- children,
1569
- ...props
1570
- }) {
1571
- return /* @__PURE__ */ jsxRuntime.jsxs(
1572
- ScrollAreaPrimitive__namespace.Root,
1573
- {
1574
- "data-slot": "scroll-area",
1575
- className: cn("relative", className),
1576
- ...props,
1577
- children: [
1578
- /* @__PURE__ */ jsxRuntime.jsx(
1579
- ScrollAreaPrimitive__namespace.Viewport,
1580
- {
1581
- "data-slot": "scroll-area-viewport",
1582
- className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",
1583
- children
1584
- }
1585
- ),
1586
- /* @__PURE__ */ jsxRuntime.jsx(ScrollBar, {}),
1587
- /* @__PURE__ */ jsxRuntime.jsx(ScrollAreaPrimitive__namespace.Corner, {})
1588
- ]
1589
- }
1590
- );
1591
- }
1592
- function ScrollBar({
1593
- className,
1594
- orientation = "vertical",
1595
- ...props
1596
- }) {
1597
- return /* @__PURE__ */ jsxRuntime.jsx(
1598
- ScrollAreaPrimitive__namespace.ScrollAreaScrollbar,
1599
- {
1600
- "data-slot": "scroll-area-scrollbar",
1601
- orientation,
1602
- className: cn(
1603
- "flex touch-none p-px transition-colors select-none",
1604
- orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent",
1605
- orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent",
1606
- className
1607
- ),
1608
- ...props,
1609
- children: /* @__PURE__ */ jsxRuntime.jsx(
1610
- ScrollAreaPrimitive__namespace.ScrollAreaThumb,
1611
- {
1612
- "data-slot": "scroll-area-thumb",
1613
- className: "bg-border relative flex-1 rounded-full"
1614
- }
1615
- )
1616
- }
1617
- );
1618
- }
1619
- function Separator2({
1620
- className,
1621
- orientation = "horizontal",
1622
- decorative = true,
1623
- ...props
1624
- }) {
1625
- return /* @__PURE__ */ jsxRuntime.jsx(
1626
- SeparatorPrimitive__namespace.Root,
1627
- {
1628
- "data-slot": "separator",
1629
- decorative,
1630
- orientation,
1631
- className: cn(
1632
- "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
1633
- className
1634
- ),
1635
- ...props
1636
- }
1637
- );
1638
- }
1639
- var Accordion = React18__namespace.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1640
- AccordionPrimitive__namespace.Root,
1641
- {
1642
- ref,
1643
- "data-slot": "accordion",
1644
- ...props
1645
- }
1646
- ));
1647
- Accordion.displayName = "Accordion";
1648
- var AccordionItem = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1649
- AccordionPrimitive__namespace.Item,
1650
- {
1651
- ref,
1652
- "data-slot": "accordion-item",
1653
- className: cn("border-b last:border-b-0", className),
1654
- ...props
1655
- }
1656
- ));
1657
- AccordionItem.displayName = "AccordionItem";
1658
- var AccordionTrigger = React18__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AccordionPrimitive__namespace.Header, { className: "flex", children: /* @__PURE__ */ jsxRuntime.jsxs(
1659
- AccordionPrimitive__namespace.Trigger,
1660
- {
1661
- ref,
1662
- "data-slot": "accordion-trigger",
1663
- className: cn(
1664
- "flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] focus-visible:border-ring focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
1665
- className
1666
- ),
1667
- ...props,
1668
- children: [
1669
- children,
1670
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" })
1671
- ]
1672
- }
1673
- ) }));
1674
- AccordionTrigger.displayName = "AccordionTrigger";
1675
- var AccordionContent = React18__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1676
- AccordionPrimitive__namespace.Content,
1677
- {
1678
- ref,
1679
- "data-slot": "accordion-content",
1680
- className: "overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
1681
- ...props,
1682
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("pt-0 pb-4", className), children })
1683
- }
1684
- ));
1685
- AccordionContent.displayName = "AccordionContent";
1686
- var CarouselContext = React18__namespace.createContext(null);
1687
- function useCarousel() {
1688
- const context = React18__namespace.useContext(CarouselContext);
1689
- if (!context) {
1690
- throw new Error("useCarousel must be used within a <Carousel />");
1691
- }
1692
- return context;
1693
- }
1694
- var Carousel = React18__namespace.forwardRef(
1695
- ({
1696
- orientation = "horizontal",
1697
- opts,
1698
- setApi,
1699
- plugins,
1700
- className,
1701
- children,
1702
- ...props
1703
- }, ref) => {
1704
- const [carouselRef, api] = useEmblaCarousel__default.default(
1705
- {
1706
- ...opts,
1707
- axis: orientation === "horizontal" ? "x" : "y"
1708
- },
1709
- plugins
1710
- );
1711
- const [canScrollPrev, setCanScrollPrev] = React18__namespace.useState(false);
1712
- const [canScrollNext, setCanScrollNext] = React18__namespace.useState(false);
1713
- const onSelect = React18__namespace.useCallback((api2) => {
1714
- if (!api2) return;
1715
- setCanScrollPrev(api2.canScrollPrev());
1716
- setCanScrollNext(api2.canScrollNext());
1717
- }, []);
1718
- const scrollPrev = React18__namespace.useCallback(() => {
1719
- api?.scrollPrev();
1720
- }, [api]);
1721
- const scrollNext = React18__namespace.useCallback(() => {
1722
- api?.scrollNext();
1723
- }, [api]);
1724
- const handleKeyDown = React18__namespace.useCallback(
1725
- (event) => {
1726
- if (event.key === "ArrowLeft") {
1727
- event.preventDefault();
1728
- scrollPrev();
1729
- } else if (event.key === "ArrowRight") {
1730
- event.preventDefault();
1731
- scrollNext();
1732
- }
1733
- },
1734
- [scrollPrev, scrollNext]
1735
- );
1736
- React18__namespace.useEffect(() => {
1737
- if (!api || !setApi) return;
1738
- setApi(api);
1739
- }, [api, setApi]);
1740
- React18__namespace.useEffect(() => {
1741
- if (!api) return;
1742
- onSelect(api);
1743
- api.on("reInit", onSelect);
1744
- api.on("select", onSelect);
1745
- return () => {
1746
- api?.off("select", onSelect);
1747
- };
1748
- }, [api, onSelect]);
1749
- return /* @__PURE__ */ jsxRuntime.jsx(
1750
- CarouselContext.Provider,
1751
- {
1752
- value: {
1753
- carouselRef,
1754
- api,
1755
- opts,
1756
- orientation: orientation || (opts?.axis === "y" ? "vertical" : "horizontal"),
1757
- scrollPrev,
1758
- scrollNext,
1759
- canScrollPrev,
1760
- canScrollNext
1761
- },
1762
- children: /* @__PURE__ */ jsxRuntime.jsx(
1763
- "div",
1764
- {
1765
- ref,
1766
- onKeyDownCapture: handleKeyDown,
1767
- className: cn("relative", className),
1768
- role: "region",
1769
- "aria-roledescription": "carousel",
1770
- "data-slot": "carousel",
1771
- ...props,
1772
- children
1773
- }
1774
- )
1775
- }
1776
- );
1777
- }
1778
- );
1779
- Carousel.displayName = "Carousel";
1780
- var CarouselContent = React18__namespace.forwardRef(({ className, ...props }, ref) => {
1781
- const { carouselRef, orientation } = useCarousel();
1782
- return /* @__PURE__ */ jsxRuntime.jsx(
1783
- "div",
1784
- {
1785
- ref: carouselRef,
1786
- className: "overflow-hidden",
1787
- "data-slot": "carousel-content",
1788
- children: /* @__PURE__ */ jsxRuntime.jsx(
1789
- "div",
1790
- {
1791
- ref,
1792
- className: cn(
1793
- "flex",
1794
- orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
1795
- className
1796
- ),
1797
- ...props
1798
- }
1799
- )
1800
- }
1801
- );
1802
- });
1803
- CarouselContent.displayName = "CarouselContent";
1804
- var CarouselItem = React18__namespace.forwardRef(({ className, ...props }, ref) => {
1805
- const { orientation } = useCarousel();
1806
- return /* @__PURE__ */ jsxRuntime.jsx(
1807
- "div",
1808
- {
1809
- ref,
1810
- role: "group",
1811
- "aria-roledescription": "slide",
1812
- "data-slot": "carousel-item",
1813
- className: cn(
1814
- "min-w-0 shrink-0 grow-0 basis-full",
1815
- orientation === "horizontal" ? "pl-4" : "pt-4",
1816
- className
1817
- ),
1818
- ...props
1819
- }
1820
- );
1821
- });
1822
- CarouselItem.displayName = "CarouselItem";
1823
- var CarouselPrevious = React18__namespace.forwardRef(({ className, variant = uikitContracts.ButtonVariant.Outline, size = uikitContracts.ButtonSize.Icon, ...props }, ref) => {
1824
- const { orientation, scrollPrev, canScrollPrev } = useCarousel();
1825
- return /* @__PURE__ */ jsxRuntime.jsxs(
1826
- Button,
1827
- {
1828
- ref,
1829
- "data-slot": "carousel-previous",
1830
- variant,
1831
- size,
1832
- className: cn(
1833
- "absolute h-8 w-8 rounded-full",
1834
- orientation === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
1835
- className
1836
- ),
1837
- disabled: !canScrollPrev,
1838
- onClick: scrollPrev,
1839
- ...props,
1840
- children: [
1841
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowLeft, { className: "h-4 w-4" }),
1842
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Previous slide" })
1843
- ]
1844
- }
1845
- );
1846
- });
1847
- CarouselPrevious.displayName = "CarouselPrevious";
1848
- var CarouselNext = React18__namespace.forwardRef(({ className, variant = uikitContracts.ButtonVariant.Outline, size = uikitContracts.ButtonSize.Icon, ...props }, ref) => {
1849
- const { orientation, scrollNext, canScrollNext } = useCarousel();
1850
- return /* @__PURE__ */ jsxRuntime.jsxs(
1851
- Button,
1852
- {
1853
- ref,
1854
- "data-slot": "carousel-next",
1855
- variant,
1856
- size,
1857
- className: cn(
1858
- "absolute h-8 w-8 rounded-full",
1859
- orientation === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
1860
- className
1861
- ),
1862
- disabled: !canScrollNext,
1863
- onClick: scrollNext,
1864
- ...props,
1865
- children: [
1866
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRight, { className: "h-4 w-4" }),
1867
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Next slide" })
1868
- ]
1869
- }
1870
- );
1871
- });
1872
- CarouselNext.displayName = "CarouselNext";
1873
- var Collapsible = React18__namespace.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1874
- CollapsiblePrimitive__namespace.Root,
1875
- {
1876
- ref,
1877
- "data-slot": "collapsible",
1878
- ...props
1879
- }
1880
- ));
1881
- Collapsible.displayName = "Collapsible";
1882
- var CollapsibleTrigger2 = React18__namespace.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1883
- CollapsiblePrimitive__namespace.CollapsibleTrigger,
1884
- {
1885
- ref,
1886
- "data-slot": "collapsible-trigger",
1887
- ...props
1888
- }
1889
- ));
1890
- CollapsibleTrigger2.displayName = "CollapsibleTrigger";
1891
- var CollapsibleContent2 = React18__namespace.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1892
- CollapsiblePrimitive__namespace.CollapsibleContent,
1893
- {
1894
- ref,
1895
- "data-slot": "collapsible-content",
1896
- ...props
1897
- }
1898
- ));
1899
- CollapsibleContent2.displayName = "CollapsibleContent";
1900
- function ChartContainer({
1901
- className,
1902
- children,
1903
- width = "100%",
1904
- height = 350
1905
- }) {
1906
- return /* @__PURE__ */ jsxRuntime.jsx(
1907
- "div",
1908
- {
1909
- "data-slot": "chart-container",
1910
- className: cn("w-full", className),
1911
- style: { width, height: typeof height === "number" ? `${height}px` : height },
1912
- children
1913
- }
1914
- );
1915
- }
1916
- function ChartTooltipContent({
1917
- className,
1918
- label,
1919
- payload,
1920
- active
1921
- }) {
1922
- if (!active || !payload || payload.length === 0) {
1923
- return null;
1924
- }
1925
- return /* @__PURE__ */ jsxRuntime.jsxs(
1926
- "div",
1927
- {
1928
- "data-slot": "chart-tooltip-content",
1929
- className: cn(
1930
- "bg-background border-border text-foreground rounded-lg border p-2 shadow-md",
1931
- className
1932
- ),
1933
- children: [
1934
- label && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1 text-xs font-medium text-muted-foreground", children: label }),
1935
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-1", children: payload.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-xs", children: [
1936
- /* @__PURE__ */ jsxRuntime.jsx(
1937
- "div",
1938
- {
1939
- className: "h-2 w-2 rounded-full",
1940
- style: { backgroundColor: item.color }
1941
- }
1942
- ),
1943
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-medium", children: [
1944
- item.name,
1945
- ":"
1946
- ] }),
1947
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: item.value })
1948
- ] }, index)) })
1949
- ]
1950
- }
1951
- );
1952
- }
1953
- function ChartLegendContent({
1954
- className,
1955
- payload
1956
- }) {
1957
- if (!payload || payload.length === 0) {
1958
- return null;
1959
- }
1960
- return /* @__PURE__ */ jsxRuntime.jsx(
1961
- "div",
1962
- {
1963
- "data-slot": "chart-legend-content",
1964
- className: cn("flex items-center justify-center gap-4 text-sm pt-4", className),
1965
- children: payload.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
1966
- /* @__PURE__ */ jsxRuntime.jsx(
1967
- "div",
1968
- {
1969
- className: "h-3 w-3 rounded-sm",
1970
- style: { backgroundColor: item.color }
1971
- }
1972
- ),
1973
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: item.value })
1974
- ] }, index))
1975
- }
1976
- );
1977
- }
1978
- var Select = SelectPrimitive__namespace.Root;
1979
- var SelectGroup = SelectPrimitive__namespace.Group;
1980
- var SelectValue = SelectPrimitive__namespace.Value;
1981
- var SelectTrigger = React18__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
1982
- SelectPrimitive__namespace.Trigger,
1983
- {
1984
- ref,
1985
- className: cn(
1986
- // HAI3 customization: bg-background and hover states for consistency with Button Outline
1987
- "flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm ring-offset-background hover:bg-accent hover:text-bg-accent-foreground 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",
1988
- className
1989
- ),
1990
- ...props,
1991
- children: [
1992
- children,
1993
- /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-4 w-4 opacity-50" }) })
1994
- ]
1995
- }
1996
- ));
1997
- SelectTrigger.displayName = SelectPrimitive__namespace.Trigger.displayName;
1998
- var SelectScrollUpButton = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1999
- SelectPrimitive__namespace.ScrollUpButton,
2000
- {
2001
- ref,
2002
- className: cn(
2003
- "flex cursor-default items-center justify-center py-1",
2004
- className
2005
- ),
2006
- ...props,
2007
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUp, { className: "h-4 w-4" })
2008
- }
2009
- ));
2010
- SelectScrollUpButton.displayName = SelectPrimitive__namespace.ScrollUpButton.displayName;
2011
- var SelectScrollDownButton = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2012
- SelectPrimitive__namespace.ScrollDownButton,
2013
- {
2014
- ref,
2015
- className: cn(
2016
- "flex cursor-default items-center justify-center py-1",
2017
- className
2018
- ),
2019
- ...props,
2020
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-4 w-4" })
2021
- }
2022
- ));
2023
- SelectScrollDownButton.displayName = SelectPrimitive__namespace.ScrollDownButton.displayName;
2024
- var SelectContent = React18__namespace.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
2025
- SelectPrimitive__namespace.Content,
2026
- {
2027
- ref,
2028
- className: cn(
2029
- "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]",
2030
- 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",
2031
- className
2032
- ),
2033
- position,
2034
- ...props,
2035
- children: [
2036
- /* @__PURE__ */ jsxRuntime.jsx(SelectScrollUpButton, {}),
2037
- /* @__PURE__ */ jsxRuntime.jsx(
2038
- SelectPrimitive__namespace.Viewport,
2039
- {
2040
- className: cn(
2041
- "p-1",
2042
- position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
2043
- ),
2044
- children
2045
- }
2046
- ),
2047
- /* @__PURE__ */ jsxRuntime.jsx(SelectScrollDownButton, {})
2048
- ]
2049
- }
2050
- ) }));
2051
- SelectContent.displayName = SelectPrimitive__namespace.Content.displayName;
2052
- var SelectLabel = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2053
- SelectPrimitive__namespace.Label,
2054
- {
2055
- ref,
2056
- className: cn("px-2 py-1.5 text-sm font-semibold", className),
2057
- ...props
2058
- }
2059
- ));
2060
- SelectLabel.displayName = SelectPrimitive__namespace.Label.displayName;
2061
- var SelectItem = React18__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
2062
- SelectPrimitive__namespace.Item,
2063
- {
2064
- ref,
2065
- className: cn(
2066
- "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-bg-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
2067
- className
2068
- ),
2069
- ...props,
2070
- children: [
2071
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-4 w-4" }) }) }),
2072
- /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemText, { children })
2073
- ]
2074
- }
2075
- ));
2076
- SelectItem.displayName = SelectPrimitive__namespace.Item.displayName;
2077
- var SelectSeparator = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2078
- SelectPrimitive__namespace.Separator,
2079
- {
2080
- ref,
2081
- className: cn("-mx-1 my-1 h-px bg-muted", className),
2082
- ...props
2083
- }
2084
- ));
2085
- SelectSeparator.displayName = SelectPrimitive__namespace.Separator.displayName;
2086
- var DropdownMenu = ({ dir, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
2087
- DropdownMenuPrimitive__namespace.Root,
2088
- {
2089
- ...props,
2090
- dir
2091
- }
2092
- );
2093
- DropdownMenu.displayName = "DropdownMenu";
2094
- var DropdownMenuTrigger = DropdownMenuPrimitive__namespace.Trigger;
2095
- var DropdownMenuGroup = DropdownMenuPrimitive__namespace.Group;
2096
- var DropdownMenuPortal = DropdownMenuPrimitive__namespace.Portal;
2097
- var DropdownMenuSub = DropdownMenuPrimitive__namespace.Sub;
2098
- var DropdownMenuRadioGroup = DropdownMenuPrimitive__namespace.RadioGroup;
2099
- var DropdownMenuSubTrigger = React18__namespace.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
2100
- DropdownMenuPrimitive__namespace.SubTrigger,
2101
- {
2102
- ref,
2103
- className: cn(
2104
- "flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
2105
- inset && "pl-8",
2106
- className
2107
- ),
2108
- ...props,
2109
- children: [
2110
- children,
2111
- /* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon, { className: "ms-auto rtl:rotate-180" })
2112
- ]
2113
- }
2114
- ));
2115
- DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive__namespace.SubTrigger.displayName;
2116
- var DropdownMenuSubContent = React18__namespace.forwardRef(({ className, container, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { container: container ?? void 0, children: /* @__PURE__ */ jsxRuntime.jsx(
2117
- DropdownMenuPrimitive__namespace.SubContent,
2118
- {
2119
- ref,
2120
- className: cn(
2121
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]",
2122
- className
2123
- ),
2124
- ...props
2125
- }
2126
- ) }));
2127
- DropdownMenuSubContent.displayName = DropdownMenuPrimitive__namespace.SubContent.displayName;
2128
- var DropdownMenuContent = React18__namespace.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { container: container ?? void 0, children: /* @__PURE__ */ jsxRuntime.jsx(
2129
- DropdownMenuPrimitive__namespace.Content,
2130
- {
2131
- ref,
2132
- sideOffset,
2133
- className: cn(
2134
- "z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
2135
- "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]",
2136
- className
2137
- ),
2138
- ...props
2139
- }
2140
- ) }));
2141
- DropdownMenuContent.displayName = DropdownMenuPrimitive__namespace.Content.displayName;
2142
- var DropdownMenuItem = React18__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2143
- DropdownMenuPrimitive__namespace.Item,
2144
- {
2145
- ref,
2146
- className: cn(
2147
- "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",
2148
- inset && "pl-8",
2149
- className
2150
- ),
2151
- ...props
2152
- }
2153
- ));
2154
- DropdownMenuItem.displayName = DropdownMenuPrimitive__namespace.Item.displayName;
2155
- var DropdownMenuCheckboxItem = React18__namespace.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
2156
- DropdownMenuPrimitive__namespace.CheckboxItem,
2157
- {
2158
- ref,
2159
- className: cn(
2160
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
2161
- className
2162
- ),
2163
- checked,
2164
- ...props,
2165
- children: [
2166
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, { className: "h-4 w-4" }) }) }),
2167
- children
2168
- ]
2169
- }
2170
- ));
2171
- DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive__namespace.CheckboxItem.displayName;
2172
- var DropdownMenuRadioItem = React18__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
2173
- DropdownMenuPrimitive__namespace.RadioItem,
2174
- {
2175
- ref,
2176
- className: cn(
2177
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
2178
- className
2179
- ),
2180
- ...props,
2181
- children: [
2182
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(CircleIcon, { className: "h-2 w-2 fill-current" }) }) }),
2183
- children
2184
- ]
2185
- }
2186
- ));
2187
- DropdownMenuRadioItem.displayName = DropdownMenuPrimitive__namespace.RadioItem.displayName;
2188
- var DropdownMenuLabel = React18__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2189
- DropdownMenuPrimitive__namespace.Label,
2190
- {
2191
- ref,
2192
- className: cn(
2193
- "px-2 py-1.5 text-sm font-semibold",
2194
- inset && "pl-8",
2195
- className
2196
- ),
2197
- ...props
2198
- }
2199
- ));
2200
- DropdownMenuLabel.displayName = DropdownMenuPrimitive__namespace.Label.displayName;
2201
- var DropdownMenuSeparator = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2202
- DropdownMenuPrimitive__namespace.Separator,
2203
- {
2204
- ref,
2205
- className: cn("-mx-1 my-1 h-px bg-muted", className),
2206
- ...props
2207
- }
2208
- ));
2209
- DropdownMenuSeparator.displayName = DropdownMenuPrimitive__namespace.Separator.displayName;
2210
- var DropdownMenuShortcut = ({
2211
- className,
2212
- ...props
2213
- }) => {
2214
- return /* @__PURE__ */ jsxRuntime.jsx(
2215
- "span",
2216
- {
2217
- className: cn("ml-auto text-xs tracking-widest opacity-60", className),
2218
- ...props
2219
- }
2220
- );
2221
- };
2222
- DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
2223
- function ContextMenu({
2224
- ...props
2225
- }) {
2226
- return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Root, { "data-slot": "context-menu", ...props });
2227
- }
2228
- function ContextMenuTrigger({
2229
- ...props
2230
- }) {
2231
- return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Trigger, { "data-slot": "context-menu-trigger", ...props });
2232
- }
2233
- function ContextMenuGroup({
2234
- ...props
2235
- }) {
2236
- return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Group, { "data-slot": "context-menu-group", ...props });
2237
- }
2238
- function ContextMenuPortal({
2239
- ...props
2240
- }) {
2241
- return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Portal, { "data-slot": "context-menu-portal", ...props });
2242
- }
2243
- function ContextMenuSub({
2244
- ...props
2245
- }) {
2246
- return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Sub, { "data-slot": "context-menu-sub", ...props });
2247
- }
2248
- function ContextMenuRadioGroup({
2249
- ...props
2250
- }) {
2251
- return /* @__PURE__ */ jsxRuntime.jsx(
2252
- ContextMenuPrimitive__namespace.RadioGroup,
2253
- {
2254
- "data-slot": "context-menu-radio-group",
2255
- ...props
2256
- }
2257
- );
2258
- }
2259
- function ContextMenuSubTrigger({
2260
- className,
2261
- inset,
2262
- children,
2263
- ...props
2264
- }) {
2265
- return /* @__PURE__ */ jsxRuntime.jsxs(
2266
- ContextMenuPrimitive__namespace.SubTrigger,
2267
- {
2268
- "data-slot": "context-menu-sub-trigger",
2269
- "data-inset": inset,
2270
- className: cn(
2271
- "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2272
- className
2273
- ),
2274
- ...props,
2275
- children: [
2276
- children,
2277
- /* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon, { className: "ml-auto" })
2278
- ]
2279
- }
2280
- );
2281
- }
2282
- function ContextMenuSubContent({
2283
- className,
2284
- ...props
2285
- }) {
2286
- return /* @__PURE__ */ jsxRuntime.jsx(
2287
- ContextMenuPrimitive__namespace.SubContent,
2288
- {
2289
- "data-slot": "context-menu-sub-content",
2290
- className: cn(
2291
- "bg-popover text-popover-foreground 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 z-50 min-w-[8rem] origin-[var(--radix-context-menu-content-transform-origin)] overflow-hidden rounded-md border p-1 shadow-lg",
2292
- className
2293
- ),
2294
- ...props
2295
- }
2296
- );
2297
- }
2298
- function ContextMenuContent({
2299
- className,
2300
- ...props
2301
- }) {
2302
- return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
2303
- ContextMenuPrimitive__namespace.Content,
2304
- {
2305
- "data-slot": "context-menu-content",
2306
- className: cn(
2307
- "bg-popover text-popover-foreground 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 z-50 max-h-[var(--radix-context-menu-content-available-height)] min-w-[8rem] origin-[var(--radix-context-menu-content-transform-origin)] overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
2308
- className
2309
- ),
2310
- ...props
2311
- }
2312
- ) });
2313
- }
2314
- function ContextMenuItem({
2315
- className,
2316
- inset,
2317
- variant = "default",
2318
- ...props
2319
- }) {
2320
- return /* @__PURE__ */ jsxRuntime.jsx(
2321
- ContextMenuPrimitive__namespace.Item,
2322
- {
2323
- "data-slot": "context-menu-item",
2324
- "data-inset": inset,
2325
- "data-variant": variant,
2326
- className: cn(
2327
- "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2328
- className
2329
- ),
2330
- ...props
2331
- }
2332
- );
2333
- }
2334
- function ContextMenuCheckboxItem({
2335
- className,
2336
- children,
2337
- checked,
2338
- ...props
2339
- }) {
2340
- return /* @__PURE__ */ jsxRuntime.jsxs(
2341
- ContextMenuPrimitive__namespace.CheckboxItem,
2342
- {
2343
- "data-slot": "context-menu-checkbox-item",
2344
- className: cn(
2345
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2346
- className
2347
- ),
2348
- checked,
2349
- ...props,
2350
- children: [
2351
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, { className: "size-4" }) }) }),
2352
- children
2353
- ]
2354
- }
2355
- );
2356
- }
2357
- function ContextMenuRadioItem({
2358
- className,
2359
- children,
2360
- ...props
2361
- }) {
2362
- return /* @__PURE__ */ jsxRuntime.jsxs(
2363
- ContextMenuPrimitive__namespace.RadioItem,
2364
- {
2365
- "data-slot": "context-menu-radio-item",
2366
- className: cn(
2367
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2368
- className
2369
- ),
2370
- ...props,
2371
- children: [
2372
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(CircleIcon, { className: "size-2 fill-current" }) }) }),
2373
- children
2374
- ]
2375
- }
2376
- );
2377
- }
2378
- function ContextMenuLabel({
2379
- className,
2380
- inset,
2381
- ...props
2382
- }) {
2383
- return /* @__PURE__ */ jsxRuntime.jsx(
2384
- ContextMenuPrimitive__namespace.Label,
2385
- {
2386
- "data-slot": "context-menu-label",
2387
- "data-inset": inset,
2388
- className: cn(
2389
- "text-foreground px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
2390
- className
2391
- ),
2392
- ...props
2393
- }
2394
- );
2395
- }
2396
- function ContextMenuSeparator({
2397
- className,
2398
- ...props
2399
- }) {
2400
- return /* @__PURE__ */ jsxRuntime.jsx(
2401
- ContextMenuPrimitive__namespace.Separator,
2402
- {
2403
- "data-slot": "context-menu-separator",
2404
- className: cn("bg-border -mx-1 my-1 h-px", className),
2405
- ...props
2406
- }
2407
- );
2408
- }
2409
- function ContextMenuShortcut({
2410
- className,
2411
- ...props
2412
- }) {
2413
- return /* @__PURE__ */ jsxRuntime.jsx(
2414
- "span",
2415
- {
2416
- "data-slot": "context-menu-shortcut",
2417
- className: cn(
2418
- "text-muted-foreground ml-auto text-xs tracking-widest",
2419
- className
2420
- ),
2421
- ...props
2422
- }
2423
- );
2424
- }
2425
- var IconButton = React18__namespace.default.forwardRef(
2426
- ({ variant = uikitContracts.ButtonVariant.Ghost, size = uikitContracts.IconButtonSize.Default, className, ...props }, ref) => {
2427
- const sizeStyles = {
2428
- [uikitContracts.IconButtonSize.Small]: "h-8 w-8",
2429
- [uikitContracts.IconButtonSize.Default]: "h-9 w-9",
2430
- [uikitContracts.IconButtonSize.Large]: "h-11 w-11"
2431
- };
2432
- return /* @__PURE__ */ jsxRuntime.jsx(
2433
- Button,
2434
- {
2435
- ref,
2436
- variant,
2437
- size: uikitContracts.ButtonSize.Icon,
2438
- className: cn(sizeStyles[size], className),
2439
- ...props
2440
- }
2441
- );
2442
- }
2443
- );
2444
- IconButton.displayName = "IconButton";
2445
- var DropdownButton = React18__namespace.default.forwardRef(({ children, variant = uikitContracts.ButtonVariant.Outline, className, ...props }, ref) => {
2446
- return /* @__PURE__ */ jsxRuntime.jsxs(
2447
- Button,
2448
- {
2449
- ref,
2450
- variant,
2451
- className: cn("min-w-40 justify-between rtl:flex-row-reverse", className),
2452
- ...props,
2453
- children: [
2454
- /* @__PURE__ */ jsxRuntime.jsx("span", { children }),
2455
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-4 w-4" })
2456
- ]
2457
- }
2458
- );
2459
- });
2460
- DropdownButton.displayName = "DropdownButton";
2461
- var Sidebar = React18__namespace.forwardRef(({ collapsed = false, className, children, ...props }, ref) => {
2462
- return /* @__PURE__ */ jsxRuntime.jsx(
2463
- "aside",
2464
- {
2465
- ref,
2466
- "data-state": collapsed ? "collapsed" : "expanded",
2467
- "data-collapsible": collapsed ? "icon" : "",
2468
- className: cn(
2469
- "group flex flex-col border-r border-mainMenu-border transition-[width] duration-200 ease-linear",
2470
- "bg-mainMenu text-mainMenu-foreground",
2471
- collapsed ? "w-14" : "w-64",
2472
- className
2473
- ),
2474
- ...props,
2475
- children
2476
- }
2477
- );
2478
- });
2479
- Sidebar.displayName = "Sidebar";
2480
- var SidebarContent = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2481
- "div",
2482
- {
2483
- ref,
2484
- "data-sidebar": "content",
2485
- className: cn(
2486
- // HAI3 customization: gap and padding use rem-based spacing for theme scaling
2487
- "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden p-2",
2488
- className
2489
- ),
2490
- ...props
2491
- }
2492
- ));
2493
- SidebarContent.displayName = "SidebarContent";
2494
- var SidebarMenu = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2495
- "ul",
2496
- {
2497
- ref,
2498
- "data-sidebar": "menu",
2499
- className: cn("flex w-full min-w-0 flex-col gap-1", className),
2500
- ...props
2501
- }
2502
- ));
2503
- SidebarMenu.displayName = "SidebarMenu";
2504
- var SidebarMenuItem = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2505
- "li",
2506
- {
2507
- ref,
2508
- "data-sidebar": "menu-item",
2509
- className: cn("group/menu-item relative", className),
2510
- ...props
2511
- }
2512
- ));
2513
- SidebarMenuItem.displayName = "SidebarMenuItem";
2514
- var sidebarMenuButtonVariants = classVarianceAuthority.cva(
2515
- // HAI3 customization: All sizing uses rem-based Tailwind classes for theme responsiveness
2516
- "peer/menu-button flex w-full items-center gap-2 rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>span:last-child]:overflow-hidden [&>svg]:size-5 [&>svg]:shrink-0 text-mainMenu-foreground hover:bg-mainMenu-hover data-[active=true]:bg-mainMenu-selected data-[active=true]:text-white data-[active=true]:font-medium",
2517
- {
2518
- variants: {
2519
- variant: {
2520
- default: "",
2521
- outline: "bg-background shadow-[0_0_0_1px_hsl(var(--border))] hover:bg-mainMenu-hover"
2522
- },
2523
- size: {
2524
- // HAI3 customization: All heights use rem-based Tailwind classes (h-10=2.5rem, h-7=1.75rem, h-12=3rem)
2525
- default: "h-10 text-sm",
2526
- sm: "h-7 text-xs",
2527
- lg: "h-12 text-sm group-data-[collapsible=icon]:!p-0"
2528
- }
2529
- },
2530
- defaultVariants: {
2531
- variant: "default",
2532
- size: "default"
2533
- }
2534
- }
2535
- );
2536
- var SidebarMenuButton = React18__namespace.forwardRef(
2537
- ({
2538
- asChild = false,
2539
- isActive = false,
2540
- variant = "default",
2541
- size = "default",
2542
- tooltip,
2543
- className,
2544
- ...props
2545
- }, ref) => {
2546
- const Comp = asChild ? reactSlot.Slot : "button";
2547
- return /* @__PURE__ */ jsxRuntime.jsx(
2548
- Comp,
2549
- {
2550
- ref,
2551
- "data-sidebar": "menu-button",
2552
- "data-size": size,
2553
- "data-active": isActive,
2554
- title: tooltip,
2555
- className: cn(sidebarMenuButtonVariants({ variant, size }), className),
2556
- ...props
2557
- }
2558
- );
2559
- }
2560
- );
2561
- SidebarMenuButton.displayName = "SidebarMenuButton";
2562
- var SidebarMenuIcon = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2563
- "span",
2564
- {
2565
- ref,
2566
- className: cn("size-5 min-w-[1.5rem] flex-shrink-0 [&>svg]:w-full [&>svg]:h-full", className),
2567
- ...props
2568
- }
2569
- ));
2570
- SidebarMenuIcon.displayName = "SidebarMenuIcon";
2571
- var SidebarMenuLabel = React18__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2572
- "span",
2573
- {
2574
- ref,
2575
- className: cn(className),
2576
- ...props
2577
- }
2578
- ));
2579
- SidebarMenuLabel.displayName = "SidebarMenuLabel";
2580
- var SidebarHeader = React18__namespace.forwardRef(
2581
- ({ logo, logoText, collapsed = false, onClick, className, ...props }, ref) => {
2582
- return /* @__PURE__ */ jsxRuntime.jsxs(
2583
- "div",
2584
- {
2585
- ref,
2586
- className: cn(
2587
- "flex flex-col h-16",
2588
- className
2589
- ),
2590
- ...props,
2591
- children: [
2592
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center flex-1 px-2", children: /* @__PURE__ */ jsxRuntime.jsxs(SidebarMenuButton, { onClick, tooltip: collapsed ? "Expand menu" : "Collapse menu", children: [
2593
- logo && /* @__PURE__ */ jsxRuntime.jsx(SidebarMenuIcon, { children: logo }),
2594
- logoText && /* @__PURE__ */ jsxRuntime.jsx(SidebarMenuLabel, { className: "[&>svg]:h-5 [&>svg]:w-auto", children: logoText })
2595
- ] }) }),
2596
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-mainMenu-border mx-4" })
2597
- ]
2598
- }
2599
- );
2600
- }
2601
- );
2602
- SidebarHeader.displayName = "SidebarHeader";
2603
- var UserInfo = React18__namespace.default.forwardRef(
2604
- ({ displayName, email, avatarUrl, className, loading }, ref) => {
2605
- const getInitials = () => {
2606
- if (!displayName) return lodash.toUpper(email?.[0] || "") || "?";
2607
- const parts = lodash.trim(displayName).split(/\s+/);
2608
- if (parts.length >= 2) {
2609
- return lodash.toUpper(`${parts[0][0]}${parts[parts.length - 1][0]}`);
2610
- }
2611
- return lodash.toUpper(displayName.slice(0, 2));
2612
- };
2613
- const initials = getInitials();
2614
- const displayText = displayName || email || "User";
2615
- if (loading) {
2616
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: cn("flex items-center gap-2 text-sm", className), children: [
2617
- /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { className: "h-8 w-8 rounded-full" }),
2618
- /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { className: "h-4 w-24" })
2619
- ] });
2620
- }
2621
- return /* @__PURE__ */ jsxRuntime.jsxs(
2622
- "div",
2623
- {
2624
- ref,
2625
- className: cn(
2626
- "flex items-center gap-2 text-sm text-muted-foreground",
2627
- className
2628
- ),
2629
- children: [
2630
- /* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "h-8 w-8", children: [
2631
- avatarUrl && /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: avatarUrl, alt: displayText }),
2632
- /* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { children: initials })
2633
- ] }),
2634
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: displayText })
2635
- ]
2636
- }
2637
- );
2638
- }
2639
- );
2640
- UserInfo.displayName = "UserInfo";
2641
- var MessageType = /* @__PURE__ */ ((MessageType2) => {
2642
- MessageType2["User"] = "user";
2643
- MessageType2["Assistant"] = "assistant";
2644
- return MessageType2;
2645
- })(MessageType || {});
2646
- var MessageBubble = ({
2647
- type,
2648
- content,
2649
- className = "",
2650
- onCopy,
2651
- onEdit,
2652
- onDelete
2653
- }) => {
2654
- const isUser = type === "user" /* User */;
2655
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex gap-4 group ${className}`, children: [
2656
- /* @__PURE__ */ jsxRuntime.jsx(Avatar, { className: "h-8 w-8 flex-shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(
2657
- AvatarFallback,
2658
- {
2659
- className: isUser ? "bg-blue-500 text-white" : "bg-green-500 text-white",
2660
- children: isUser ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.User, { size: 16 }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Bot, { size: 16 })
2661
- }
2662
- ) }),
2663
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0", children: [
2664
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "prose prose-sm max-w-none", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "leading-relaxed whitespace-pre-wrap", children: content }) }),
2665
- (onCopy || onEdit || onDelete) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1 mt-2 opacity-0 group-hover:opacity-100 transition-opacity", children: [
2666
- onCopy && /* @__PURE__ */ jsxRuntime.jsx(
2667
- "button",
2668
- {
2669
- onClick: onCopy,
2670
- className: "p-1.5 hover:bg-muted rounded-lg transition-colors text-muted-foreground hover:text-foreground",
2671
- title: "Copy message",
2672
- children: /* @__PURE__ */ jsxRuntime.jsxs(
2673
- "svg",
2674
- {
2675
- width: "14",
2676
- height: "14",
2677
- viewBox: "0 0 24 24",
2678
- fill: "none",
2679
- stroke: "currentColor",
2680
- strokeWidth: "2",
2681
- strokeLinecap: "round",
2682
- strokeLinejoin: "round",
2683
- children: [
2684
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2", ry: "2" }),
2685
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })
2686
- ]
2687
- }
2688
- )
2689
- }
2690
- ),
2691
- onEdit && /* @__PURE__ */ jsxRuntime.jsx(
2692
- "button",
2693
- {
2694
- onClick: onEdit,
2695
- className: "p-1.5 hover:bg-muted rounded-lg transition-colors text-muted-foreground hover:text-foreground",
2696
- title: "Edit message",
2697
- children: /* @__PURE__ */ jsxRuntime.jsxs(
2698
- "svg",
2699
- {
2700
- width: "14",
2701
- height: "14",
2702
- viewBox: "0 0 24 24",
2703
- fill: "none",
2704
- stroke: "currentColor",
2705
- strokeWidth: "2",
2706
- strokeLinecap: "round",
2707
- strokeLinejoin: "round",
2708
- children: [
2709
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }),
2710
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" })
2711
- ]
2712
- }
2713
- )
2714
- }
2715
- ),
2716
- onDelete && /* @__PURE__ */ jsxRuntime.jsx(
2717
- "button",
2718
- {
2719
- onClick: onDelete,
2720
- className: "p-1.5 hover:bg-destructive/10 rounded-lg transition-colors text-muted-foreground hover:text-destructive",
2721
- title: "Delete message",
2722
- children: /* @__PURE__ */ jsxRuntime.jsxs(
2723
- "svg",
2724
- {
2725
- width: "14",
2726
- height: "14",
2727
- viewBox: "0 0 24 24",
2728
- fill: "none",
2729
- stroke: "currentColor",
2730
- strokeWidth: "2",
2731
- strokeLinecap: "round",
2732
- strokeLinejoin: "round",
2733
- children: [
2734
- /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "3 6 5 6 21 6" }),
2735
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" })
2736
- ]
2737
- }
2738
- )
2739
- }
2740
- )
2741
- ] })
2742
- ] })
2743
- ] });
2744
- };
2745
- var ChatInput = ({
2746
- value,
2747
- onChange,
2748
- onSend,
2749
- onAttachFile,
2750
- placeholder = "Type a message...",
2751
- disabled = false,
2752
- maxRows = 14,
2753
- className = ""
2754
- }) => {
2755
- const handleKeyDown = (e) => {
2756
- if (e.key === "Enter" && !e.shiftKey) {
2757
- e.preventDefault();
2758
- if (!disabled && lodash.trim(value)) {
2759
- onSend();
2760
- }
2761
- }
2762
- };
2763
- const rows = Math.min(
2764
- Math.max(value.split("\n").length, 1),
2765
- maxRows
2766
- );
2767
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex items-end gap-2 ${className}`, children: [
2768
- onAttachFile && /* @__PURE__ */ jsxRuntime.jsx(
2769
- Button,
2770
- {
2771
- variant: uikitContracts.ButtonVariant.Ghost,
2772
- size: uikitContracts.ButtonSize.Icon,
2773
- onClick: onAttachFile,
2774
- disabled,
2775
- className: "flex-shrink-0",
2776
- "aria-label": "Attach file",
2777
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Paperclip, { size: 20 })
2778
- }
2779
- ),
2780
- /* @__PURE__ */ jsxRuntime.jsx(
2781
- "textarea",
2782
- {
2783
- value,
2784
- onChange: (e) => onChange(e.target.value),
2785
- onKeyDown: handleKeyDown,
2786
- placeholder,
2787
- disabled,
2788
- rows,
2789
- className: "flex-1 resize-none rounded-lg border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"
2790
- }
2791
- ),
2792
- /* @__PURE__ */ jsxRuntime.jsx(
2793
- Button,
2794
- {
2795
- onClick: onSend,
2796
- disabled: disabled || !lodash.trim(value),
2797
- className: "flex-shrink-0",
2798
- "aria-label": "Send message",
2799
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Send, { size: 20 })
2800
- }
2801
- )
2802
- ] });
2803
- };
2804
- var ThreadList = ({
2805
- threads,
2806
- selectedThreadId,
2807
- onThreadSelect,
2808
- onNewThread,
2809
- onDeleteThread,
2810
- searchQuery = "",
2811
- onSearchChange,
2812
- loading = false,
2813
- className = ""
2814
- }) => {
2815
- if (loading) {
2816
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex flex-col h-full ${className}`, children: [
2817
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4 border-b", children: [
2818
- /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { className: "h-8 w-full mb-3" }),
2819
- /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { className: "h-10 w-full" })
2820
- ] }),
2821
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 overflow-y-auto p-2", children: [1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { className: "h-16 w-full mb-2" }, i)) })
2822
- ] });
2823
- }
2824
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex flex-col h-full ${className}`, children: [
2825
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4 border-b", children: [
2826
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between mb-3", children: [
2827
- /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-lg font-semibold", children: "Recent Chats" }),
2828
- /* @__PURE__ */ jsxRuntime.jsx(
2829
- Button,
2830
- {
2831
- variant: uikitContracts.ButtonVariant.Ghost,
2832
- size: uikitContracts.ButtonSize.Icon,
2833
- onClick: onNewThread,
2834
- "aria-label": "New chat",
2835
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { size: 16 })
2836
- }
2837
- )
2838
- ] }),
2839
- onSearchChange && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
2840
- /* @__PURE__ */ jsxRuntime.jsx(
2841
- lucideReact.Search,
2842
- {
2843
- size: 16,
2844
- className: "absolute left-3 top-1/2 transform -translate-y-1/2 text-muted-foreground"
2845
- }
2846
- ),
2847
- /* @__PURE__ */ jsxRuntime.jsx(
2848
- "input",
2849
- {
2850
- type: "text",
2851
- placeholder: "Search chats...",
2852
- value: searchQuery,
2853
- onChange: (e) => onSearchChange(e.target.value),
2854
- className: "w-full pl-9 pr-3 py-2 border border-input rounded-lg text-sm bg-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
2855
- }
2856
- )
2857
- ] })
2858
- ] }),
2859
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 overflow-y-auto", children: threads.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-4 text-center text-muted-foreground text-sm", children: "No chats yet. Start a new conversation!" }) : threads.map((thread) => /* @__PURE__ */ jsxRuntime.jsx(
2860
- "div",
2861
- {
2862
- onClick: () => onThreadSelect(thread.id),
2863
- className: `p-3 border-b cursor-pointer transition-colors hover:bg-muted/50 ${selectedThreadId === thread.id ? "bg-muted" : ""}`,
2864
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between gap-2", children: [
2865
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0", children: [
2866
- /* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "font-medium text-sm truncate mb-1", children: [
2867
- thread.title,
2868
- thread.isTemporary && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2 text-xs text-muted-foreground", children: "(Temporary)" })
2869
- ] }),
2870
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground truncate", children: thread.preview })
2871
- ] }),
2872
- onDeleteThread && /* @__PURE__ */ jsxRuntime.jsx(
2873
- "button",
2874
- {
2875
- onClick: (e) => {
2876
- e.stopPropagation();
2877
- onDeleteThread(thread.id);
2878
- },
2879
- className: "p-1 opacity-0 group-hover:opacity-100 hover:bg-destructive/10 rounded transition-opacity text-muted-foreground hover:text-destructive",
2880
- "aria-label": "Delete thread",
2881
- children: /* @__PURE__ */ jsxRuntime.jsxs(
2882
- "svg",
2883
- {
2884
- width: "14",
2885
- height: "14",
2886
- viewBox: "0 0 24 24",
2887
- fill: "none",
2888
- stroke: "currentColor",
2889
- strokeWidth: "2",
2890
- strokeLinecap: "round",
2891
- strokeLinejoin: "round",
2892
- children: [
2893
- /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "3 6 5 6 21 6" }),
2894
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" })
2895
- ]
2896
- }
2897
- )
2898
- }
2899
- )
2900
- ] })
2901
- },
2902
- thread.id
2903
- )) })
2904
- ] });
2905
- };
2906
- var MENU_ICON_ID = "menu";
2907
- var MenuIcon = ({ className = "" }) => {
2908
- return /* @__PURE__ */ jsxRuntime.jsxs(
2909
- "svg",
2910
- {
2911
- className,
2912
- width: "20",
2913
- height: "20",
2914
- viewBox: "0 0 24 24",
2915
- fill: "none",
2916
- stroke: "currentColor",
2917
- strokeWidth: "2",
2918
- strokeLinecap: "round",
2919
- strokeLinejoin: "round",
2920
- children: [
2921
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "3", y1: "12", x2: "21", y2: "12" }),
2922
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "3", y1: "6", x2: "21", y2: "6" }),
2923
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "3", y1: "18", x2: "21", y2: "18" })
2924
- ]
2925
- }
2926
- );
2927
- };
2928
- var CLOSE_ICON_ID = "close";
2929
- var CloseIcon = ({ className = "" }) => {
2930
- return /* @__PURE__ */ jsxRuntime.jsxs(
2931
- "svg",
2932
- {
2933
- className,
2934
- width: "20",
2935
- height: "20",
2936
- viewBox: "0 0 24 24",
2937
- fill: "none",
2938
- stroke: "currentColor",
2939
- strokeWidth: "2",
2940
- strokeLinecap: "round",
2941
- strokeLinejoin: "round",
2942
- children: [
2943
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
2944
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
2945
- ]
2946
- }
2947
- );
2948
- };
2949
-
2950
- // src/styles/applyTheme.ts
2951
- var hslToVar = (color) => {
2952
- if (color === "transparent") {
2953
- return "transparent";
2954
- }
2955
- if (color.startsWith("hsl(")) {
2956
- return color.replace("hsl(", "").replace(")", "");
2957
- }
2958
- return color;
2959
- };
2960
- var applyTheme = (theme, themeName) => {
2961
- const root = document.documentElement;
2962
- if (themeName) {
2963
- root.setAttribute("data-theme", themeName);
2964
- }
2965
- root.style.setProperty("--background", hslToVar(theme.colors.background));
2966
- root.style.setProperty("--foreground", hslToVar(theme.colors.foreground));
2967
- root.style.setProperty("--card", hslToVar(theme.colors.background));
2968
- root.style.setProperty("--card-foreground", hslToVar(theme.colors.foreground));
2969
- root.style.setProperty("--popover", hslToVar(theme.colors.background));
2970
- root.style.setProperty("--popover-foreground", hslToVar(theme.colors.foreground));
2971
- root.style.setProperty("--primary", hslToVar(theme.colors.primary));
2972
- root.style.setProperty("--primary-foreground", hslToVar(theme.colors.background));
2973
- root.style.setProperty("--secondary", hslToVar(theme.colors.secondary));
2974
- root.style.setProperty("--secondary-foreground", hslToVar(theme.colors.foreground));
2975
- root.style.setProperty("--muted", hslToVar(theme.colors.muted));
2976
- root.style.setProperty("--muted-foreground", hslToVar(theme.colors.foreground));
2977
- root.style.setProperty("--accent", hslToVar(theme.colors.accent));
2978
- root.style.setProperty("--accent-foreground", hslToVar(theme.colors.background));
2979
- root.style.setProperty("--destructive", hslToVar(theme.colors.error));
2980
- root.style.setProperty("--destructive-foreground", hslToVar(theme.colors.foreground));
2981
- root.style.setProperty("--border", hslToVar(theme.colors.border));
2982
- root.style.setProperty("--input", hslToVar(theme.colors.border));
2983
- root.style.setProperty("--ring", hslToVar(theme.colors.primary));
2984
- root.style.setProperty("--error", hslToVar(theme.colors.error));
2985
- root.style.setProperty("--warning", hslToVar(theme.colors.warning));
2986
- root.style.setProperty("--success", hslToVar(theme.colors.success));
2987
- root.style.setProperty("--info", hslToVar(theme.colors.info));
2988
- root.style.setProperty("--chart-1", theme.colors.chart[1]);
2989
- root.style.setProperty("--chart-2", theme.colors.chart[2]);
2990
- root.style.setProperty("--chart-3", theme.colors.chart[3]);
2991
- root.style.setProperty("--chart-4", theme.colors.chart[4]);
2992
- root.style.setProperty("--chart-5", theme.colors.chart[5]);
2993
- root.style.setProperty("--left-menu", hslToVar(theme.colors.mainMenu.DEFAULT));
2994
- root.style.setProperty("--left-menu-foreground", hslToVar(theme.colors.mainMenu.foreground));
2995
- root.style.setProperty("--left-menu-hover", hslToVar(theme.colors.mainMenu.hover));
2996
- root.style.setProperty("--left-menu-selected", hslToVar(theme.colors.mainMenu.selected));
2997
- root.style.setProperty("--left-menu-border", hslToVar(theme.colors.mainMenu.border));
2998
- Object.entries(theme.spacing).forEach(([key, value]) => {
2999
- root.style.setProperty(`--spacing-${key}`, value);
3000
- });
3001
- Object.entries(theme.borderRadius).forEach(([key, value]) => {
3002
- root.style.setProperty(`--radius-${key}`, value);
3003
- });
3004
- Object.entries(theme.shadows).forEach(([key, value]) => {
3005
- root.style.setProperty(`--shadow-${key}`, value);
3006
- });
3007
- Object.entries(theme.transitions).forEach(([key, value]) => {
3008
- root.style.setProperty(`--transition-${key}`, value);
3009
- });
3010
- if (themeName?.endsWith("-large")) {
3011
- root.style.fontSize = "125%";
3012
- } else {
3013
- root.style.fontSize = "";
3014
- }
3015
- };
3016
-
3017
- Object.defineProperty(exports, "ButtonSize", {
3018
- enumerable: true,
3019
- get: function () { return uikitContracts.ButtonSize; }
3020
- });
3021
- Object.defineProperty(exports, "ButtonVariant", {
3022
- enumerable: true,
3023
- get: function () { return uikitContracts.ButtonVariant; }
3024
- });
3025
- Object.defineProperty(exports, "IconButtonSize", {
3026
- enumerable: true,
3027
- get: function () { return uikitContracts.IconButtonSize; }
3028
- });
3029
- Object.defineProperty(exports, "Area", {
3030
- enumerable: true,
3031
- get: function () { return recharts.Area; }
3032
- });
3033
- Object.defineProperty(exports, "AreaChart", {
3034
- enumerable: true,
3035
- get: function () { return recharts.AreaChart; }
3036
- });
3037
- Object.defineProperty(exports, "Bar", {
3038
- enumerable: true,
3039
- get: function () { return recharts.Bar; }
3040
- });
3041
- Object.defineProperty(exports, "BarChart", {
3042
- enumerable: true,
3043
- get: function () { return recharts.BarChart; }
3044
- });
3045
- Object.defineProperty(exports, "Brush", {
3046
- enumerable: true,
3047
- get: function () { return recharts.Brush; }
3048
- });
3049
- Object.defineProperty(exports, "CartesianGrid", {
3050
- enumerable: true,
3051
- get: function () { return recharts.CartesianGrid; }
3052
- });
3053
- Object.defineProperty(exports, "Cell", {
3054
- enumerable: true,
3055
- get: function () { return recharts.Cell; }
3056
- });
3057
- Object.defineProperty(exports, "ChartLegend", {
3058
- enumerable: true,
3059
- get: function () { return recharts.Legend; }
3060
- });
3061
- Object.defineProperty(exports, "ChartTooltip", {
3062
- enumerable: true,
3063
- get: function () { return recharts.Tooltip; }
3064
- });
3065
- Object.defineProperty(exports, "ComposedChart", {
3066
- enumerable: true,
3067
- get: function () { return recharts.ComposedChart; }
3068
- });
3069
- Object.defineProperty(exports, "Cross", {
3070
- enumerable: true,
3071
- get: function () { return recharts.Cross; }
3072
- });
3073
- Object.defineProperty(exports, "Curve", {
3074
- enumerable: true,
3075
- get: function () { return recharts.Curve; }
3076
- });
3077
- Object.defineProperty(exports, "Customized", {
3078
- enumerable: true,
3079
- get: function () { return recharts.Customized; }
3080
- });
3081
- Object.defineProperty(exports, "Dot", {
3082
- enumerable: true,
3083
- get: function () { return recharts.Dot; }
3084
- });
3085
- Object.defineProperty(exports, "ErrorBar", {
3086
- enumerable: true,
3087
- get: function () { return recharts.ErrorBar; }
3088
- });
3089
- Object.defineProperty(exports, "Funnel", {
3090
- enumerable: true,
3091
- get: function () { return recharts.Funnel; }
3092
- });
3093
- Object.defineProperty(exports, "FunnelChart", {
3094
- enumerable: true,
3095
- get: function () { return recharts.FunnelChart; }
3096
- });
3097
- Object.defineProperty(exports, "Label", {
3098
- enumerable: true,
3099
- get: function () { return recharts.Label; }
3100
- });
3101
- Object.defineProperty(exports, "LabelList", {
3102
- enumerable: true,
3103
- get: function () { return recharts.LabelList; }
3104
- });
3105
- Object.defineProperty(exports, "Line", {
3106
- enumerable: true,
3107
- get: function () { return recharts.Line; }
3108
- });
3109
- Object.defineProperty(exports, "LineChart", {
3110
- enumerable: true,
3111
- get: function () { return recharts.LineChart; }
3112
- });
3113
- Object.defineProperty(exports, "Pie", {
3114
- enumerable: true,
3115
- get: function () { return recharts.Pie; }
3116
- });
3117
- Object.defineProperty(exports, "PieChart", {
3118
- enumerable: true,
3119
- get: function () { return recharts.PieChart; }
3120
- });
3121
- Object.defineProperty(exports, "PolarAngleAxis", {
3122
- enumerable: true,
3123
- get: function () { return recharts.PolarAngleAxis; }
3124
- });
3125
- Object.defineProperty(exports, "PolarGrid", {
3126
- enumerable: true,
3127
- get: function () { return recharts.PolarGrid; }
3128
- });
3129
- Object.defineProperty(exports, "PolarRadiusAxis", {
3130
- enumerable: true,
3131
- get: function () { return recharts.PolarRadiusAxis; }
3132
- });
3133
- Object.defineProperty(exports, "Polygon", {
3134
- enumerable: true,
3135
- get: function () { return recharts.Polygon; }
3136
- });
3137
- Object.defineProperty(exports, "Radar", {
3138
- enumerable: true,
3139
- get: function () { return recharts.Radar; }
3140
- });
3141
- Object.defineProperty(exports, "RadarChart", {
3142
- enumerable: true,
3143
- get: function () { return recharts.RadarChart; }
3144
- });
3145
- Object.defineProperty(exports, "RadialBar", {
3146
- enumerable: true,
3147
- get: function () { return recharts.RadialBar; }
3148
- });
3149
- Object.defineProperty(exports, "RadialBarChart", {
3150
- enumerable: true,
3151
- get: function () { return recharts.RadialBarChart; }
3152
- });
3153
- Object.defineProperty(exports, "Rectangle", {
3154
- enumerable: true,
3155
- get: function () { return recharts.Rectangle; }
3156
- });
3157
- Object.defineProperty(exports, "ReferenceArea", {
3158
- enumerable: true,
3159
- get: function () { return recharts.ReferenceArea; }
3160
- });
3161
- Object.defineProperty(exports, "ReferenceDot", {
3162
- enumerable: true,
3163
- get: function () { return recharts.ReferenceDot; }
3164
- });
3165
- Object.defineProperty(exports, "ReferenceLine", {
3166
- enumerable: true,
3167
- get: function () { return recharts.ReferenceLine; }
3168
- });
3169
- Object.defineProperty(exports, "ResponsiveContainer", {
3170
- enumerable: true,
3171
- get: function () { return recharts.ResponsiveContainer; }
3172
- });
3173
- Object.defineProperty(exports, "Sankey", {
3174
- enumerable: true,
3175
- get: function () { return recharts.Sankey; }
3176
- });
3177
- Object.defineProperty(exports, "Scatter", {
3178
- enumerable: true,
3179
- get: function () { return recharts.Scatter; }
3180
- });
3181
- Object.defineProperty(exports, "ScatterChart", {
3182
- enumerable: true,
3183
- get: function () { return recharts.ScatterChart; }
3184
- });
3185
- Object.defineProperty(exports, "Sector", {
3186
- enumerable: true,
3187
- get: function () { return recharts.Sector; }
3188
- });
3189
- Object.defineProperty(exports, "Text", {
3190
- enumerable: true,
3191
- get: function () { return recharts.Text; }
3192
- });
3193
- Object.defineProperty(exports, "Treemap", {
3194
- enumerable: true,
3195
- get: function () { return recharts.Treemap; }
3196
- });
3197
- Object.defineProperty(exports, "XAxis", {
3198
- enumerable: true,
3199
- get: function () { return recharts.XAxis; }
3200
- });
3201
- Object.defineProperty(exports, "YAxis", {
3202
- enumerable: true,
3203
- get: function () { return recharts.YAxis; }
3204
- });
3205
- Object.defineProperty(exports, "ZAxis", {
3206
- enumerable: true,
3207
- get: function () { return recharts.ZAxis; }
3208
- });
3209
- exports.Accordion = Accordion;
3210
- exports.AccordionContent = AccordionContent;
3211
- exports.AccordionItem = AccordionItem;
3212
- exports.AccordionTrigger = AccordionTrigger;
3213
- exports.AspectRatio = AspectRatio;
3214
- exports.Avatar = Avatar;
3215
- exports.AvatarFallback = AvatarFallback;
3216
- exports.AvatarImage = AvatarImage;
3217
- exports.Badge = Badge;
3218
- exports.Breadcrumb = Breadcrumb;
3219
- exports.BreadcrumbEllipsis = BreadcrumbEllipsis;
3220
- exports.BreadcrumbItem = BreadcrumbItem;
3221
- exports.BreadcrumbLink = BreadcrumbLink;
3222
- exports.BreadcrumbList = BreadcrumbList;
3223
- exports.BreadcrumbPage = BreadcrumbPage;
3224
- exports.BreadcrumbSeparator = BreadcrumbSeparator;
3225
- exports.Button = Button;
3226
- exports.CLOSE_ICON_ID = CLOSE_ICON_ID;
3227
- exports.Card = Card;
3228
- exports.CardContent = CardContent;
3229
- exports.CardDescription = CardDescription;
3230
- exports.CardFooter = CardFooter;
3231
- exports.CardHeader = CardHeader;
3232
- exports.CardTitle = CardTitle;
3233
- exports.Carousel = Carousel;
3234
- exports.CarouselContent = CarouselContent;
3235
- exports.CarouselItem = CarouselItem;
3236
- exports.CarouselNext = CarouselNext;
3237
- exports.CarouselPrevious = CarouselPrevious;
3238
- exports.ChartContainer = ChartContainer;
3239
- exports.ChartLegendContent = ChartLegendContent;
3240
- exports.ChartTooltipContent = ChartTooltipContent;
3241
- exports.ChatInput = ChatInput;
3242
- exports.Checkbox = Checkbox;
3243
- exports.CloseIcon = CloseIcon;
3244
- exports.Collapsible = Collapsible;
3245
- exports.CollapsibleContent = CollapsibleContent2;
3246
- exports.CollapsibleTrigger = CollapsibleTrigger2;
3247
- exports.ContextMenu = ContextMenu;
3248
- exports.ContextMenuCheckboxItem = ContextMenuCheckboxItem;
3249
- exports.ContextMenuContent = ContextMenuContent;
3250
- exports.ContextMenuGroup = ContextMenuGroup;
3251
- exports.ContextMenuItem = ContextMenuItem;
3252
- exports.ContextMenuLabel = ContextMenuLabel;
3253
- exports.ContextMenuPortal = ContextMenuPortal;
3254
- exports.ContextMenuRadioGroup = ContextMenuRadioGroup;
3255
- exports.ContextMenuRadioItem = ContextMenuRadioItem;
3256
- exports.ContextMenuSeparator = ContextMenuSeparator;
3257
- exports.ContextMenuShortcut = ContextMenuShortcut;
3258
- exports.ContextMenuSub = ContextMenuSub;
3259
- exports.ContextMenuSubContent = ContextMenuSubContent;
3260
- exports.ContextMenuSubTrigger = ContextMenuSubTrigger;
3261
- exports.ContextMenuTrigger = ContextMenuTrigger;
3262
- exports.Dialog = Dialog;
3263
- exports.DialogClose = DialogClose;
3264
- exports.DialogContent = DialogContent;
3265
- exports.DialogDescription = DialogDescription;
3266
- exports.DialogFooter = DialogFooter;
3267
- exports.DialogHeader = DialogHeader;
3268
- exports.DialogOverlay = DialogOverlay;
3269
- exports.DialogPortal = DialogPortal;
3270
- exports.DialogTitle = DialogTitle;
3271
- exports.DialogTrigger = DialogTrigger;
3272
- exports.Drawer = Drawer;
3273
- exports.DrawerClose = DrawerClose;
3274
- exports.DrawerContent = DrawerContent;
3275
- exports.DrawerDescription = DrawerDescription;
3276
- exports.DrawerFooter = DrawerFooter;
3277
- exports.DrawerHeader = DrawerHeader;
3278
- exports.DrawerOverlay = DrawerOverlay;
3279
- exports.DrawerPortal = DrawerPortal;
3280
- exports.DrawerTitle = DrawerTitle;
3281
- exports.DrawerTrigger = DrawerTrigger;
3282
- exports.DropdownButton = DropdownButton;
3283
- exports.DropdownMenu = DropdownMenu;
3284
- exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem;
3285
- exports.DropdownMenuContent = DropdownMenuContent;
3286
- exports.DropdownMenuGroup = DropdownMenuGroup;
3287
- exports.DropdownMenuItem = DropdownMenuItem;
3288
- exports.DropdownMenuLabel = DropdownMenuLabel;
3289
- exports.DropdownMenuPortal = DropdownMenuPortal;
3290
- exports.DropdownMenuRadioGroup = DropdownMenuRadioGroup;
3291
- exports.DropdownMenuRadioItem = DropdownMenuRadioItem;
3292
- exports.DropdownMenuSeparator = DropdownMenuSeparator;
3293
- exports.DropdownMenuShortcut = DropdownMenuShortcut;
3294
- exports.DropdownMenuSub = DropdownMenuSub;
3295
- exports.DropdownMenuSubContent = DropdownMenuSubContent;
3296
- exports.DropdownMenuSubTrigger = DropdownMenuSubTrigger;
3297
- exports.DropdownMenuTrigger = DropdownMenuTrigger;
3298
- exports.Header = Header;
3299
- exports.HoverCard = HoverCard;
3300
- exports.HoverCardContent = HoverCardContent;
3301
- exports.HoverCardTrigger = HoverCardTrigger;
3302
- exports.IconButton = IconButton;
3303
- exports.Input = Input;
3304
- exports.MENU_ICON_ID = MENU_ICON_ID;
3305
- exports.MenuIcon = MenuIcon;
3306
- exports.Menubar = Menubar;
3307
- exports.MenubarCheckboxItem = MenubarCheckboxItem;
3308
- exports.MenubarContent = MenubarContent;
3309
- exports.MenubarGroup = MenubarGroup;
3310
- exports.MenubarItem = MenubarItem;
3311
- exports.MenubarLabel = MenubarLabel;
3312
- exports.MenubarMenu = MenubarMenu;
3313
- exports.MenubarPortal = MenubarPortal;
3314
- exports.MenubarRadioGroup = MenubarRadioGroup;
3315
- exports.MenubarRadioItem = MenubarRadioItem;
3316
- exports.MenubarSeparator = MenubarSeparator;
3317
- exports.MenubarShortcut = MenubarShortcut;
3318
- exports.MenubarSub = MenubarSub;
3319
- exports.MenubarSubContent = MenubarSubContent;
3320
- exports.MenubarSubTrigger = MenubarSubTrigger;
3321
- exports.MenubarTrigger = MenubarTrigger;
3322
- exports.MessageBubble = MessageBubble;
3323
- exports.MessageType = MessageType;
3324
- exports.NavigationMenu = NavigationMenu;
3325
- exports.NavigationMenuContent = NavigationMenuContent;
3326
- exports.NavigationMenuIndicator = NavigationMenuIndicator;
3327
- exports.NavigationMenuItem = NavigationMenuItem;
3328
- exports.NavigationMenuLink = NavigationMenuLink;
3329
- exports.NavigationMenuList = NavigationMenuList;
3330
- exports.NavigationMenuTrigger = NavigationMenuTrigger;
3331
- exports.NavigationMenuViewport = NavigationMenuViewport;
3332
- exports.Pagination = Pagination;
3333
- exports.PaginationContent = PaginationContent;
3334
- exports.PaginationEllipsis = PaginationEllipsis;
3335
- exports.PaginationItem = PaginationItem;
3336
- exports.PaginationLink = PaginationLink;
3337
- exports.PaginationNext = PaginationNext;
3338
- exports.PaginationPrevious = PaginationPrevious;
3339
- exports.Popover = Popover;
3340
- exports.PopoverAnchor = PopoverAnchor;
3341
- exports.PopoverContent = PopoverContent;
3342
- exports.PopoverTrigger = PopoverTrigger;
3343
- exports.Progress = Progress;
3344
- exports.ResizableHandle = ResizableHandle;
3345
- exports.ResizablePanel = ResizablePanel;
3346
- exports.ResizablePanelGroup = ResizablePanelGroup;
3347
- exports.ScrollArea = ScrollArea;
3348
- exports.ScrollBar = ScrollBar;
3349
- exports.Select = Select;
3350
- exports.SelectContent = SelectContent;
3351
- exports.SelectGroup = SelectGroup;
3352
- exports.SelectItem = SelectItem;
3353
- exports.SelectLabel = SelectLabel;
3354
- exports.SelectScrollDownButton = SelectScrollDownButton;
3355
- exports.SelectScrollUpButton = SelectScrollUpButton;
3356
- exports.SelectSeparator = SelectSeparator;
3357
- exports.SelectTrigger = SelectTrigger;
3358
- exports.SelectValue = SelectValue;
3359
- exports.Separator = Separator2;
3360
- exports.Sheet = Sheet;
3361
- exports.SheetClose = SheetClose;
3362
- exports.SheetContent = SheetContent;
3363
- exports.SheetDescription = SheetDescription;
3364
- exports.SheetFooter = SheetFooter;
3365
- exports.SheetHeader = SheetHeader;
3366
- exports.SheetOverlay = SheetOverlay;
3367
- exports.SheetPortal = SheetPortal;
3368
- exports.SheetTitle = SheetTitle;
3369
- exports.SheetTrigger = SheetTrigger;
3370
- exports.Sidebar = Sidebar;
3371
- exports.SidebarContent = SidebarContent;
3372
- exports.SidebarHeader = SidebarHeader;
3373
- exports.SidebarMenu = SidebarMenu;
3374
- exports.SidebarMenuButton = SidebarMenuButton;
3375
- exports.SidebarMenuIcon = SidebarMenuIcon;
3376
- exports.SidebarMenuItem = SidebarMenuItem;
3377
- exports.SidebarMenuLabel = SidebarMenuLabel;
3378
- exports.Skeleton = Skeleton;
3379
- exports.Slider = Slider;
3380
- exports.SliderRange = SliderRange;
3381
- exports.SliderThumb = SliderThumb;
3382
- exports.SliderTrack = SliderTrack;
3383
- exports.Spinner = Spinner;
3384
- exports.Switch = Switch;
3385
- exports.Tabs = Tabs;
3386
- exports.TabsContent = TabsContent;
3387
- exports.TabsList = TabsList;
3388
- exports.TabsTrigger = TabsTrigger;
3389
- exports.Textarea = Textarea;
3390
- exports.ThreadList = ThreadList;
3391
- exports.Tooltip = Tooltip;
3392
- exports.TooltipContent = TooltipContent;
3393
- exports.TooltipProvider = TooltipProvider;
3394
- exports.TooltipTrigger = TooltipTrigger;
3395
- exports.UserInfo = UserInfo;
3396
- exports.applyTheme = applyTheme;
3397
- exports.badgeVariants = badgeVariants;
3398
- //# sourceMappingURL=index.cjs.map
3399
- //# sourceMappingURL=index.cjs.map