@akira-io/ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,786 @@
1
+ import { cn, panelSurface, focusRing, elevatedSurface, nestedSurfaceReset, fieldSurface, modalSurface, buttonVariants, Button, menuSurface } from './chunk-POE7OYET.js';
2
+ import { XIcon, ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon, SearchIcon, SearchXIcon, CheckIcon, ChevronUpIcon } from 'lucide-react';
3
+ import { Popover as Popover$1, Dialog as Dialog$1 } from 'radix-ui';
4
+ import { jsx, jsxs } from 'react/jsx-runtime';
5
+ import * as React4 from 'react';
6
+ import { getDefaultClassNames, DayPicker } from 'react-day-picker';
7
+ import { Command as Command$1 } from 'cmdk';
8
+ import * as SelectPrimitive from '@radix-ui/react-select';
9
+ import * as LabelPrimitive from '@radix-ui/react-label';
10
+ import * as SwitchPrimitives from '@radix-ui/react-switch';
11
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
12
+
13
+ function Dialog({
14
+ ...props
15
+ }) {
16
+ return /* @__PURE__ */ jsx(Dialog$1.Root, { "data-slot": "dialog", ...props });
17
+ }
18
+ function DialogTrigger({
19
+ ...props
20
+ }) {
21
+ return /* @__PURE__ */ jsx(Dialog$1.Trigger, { "data-slot": "dialog-trigger", ...props });
22
+ }
23
+ function DialogPortal({
24
+ ...props
25
+ }) {
26
+ return /* @__PURE__ */ jsx(Dialog$1.Portal, { "data-slot": "dialog-portal", ...props });
27
+ }
28
+ function DialogClose({
29
+ ...props
30
+ }) {
31
+ return /* @__PURE__ */ jsx(Dialog$1.Close, { "data-slot": "dialog-close", ...props });
32
+ }
33
+ function DialogOverlay({
34
+ className,
35
+ ...props
36
+ }) {
37
+ return /* @__PURE__ */ jsx(
38
+ Dialog$1.Overlay,
39
+ {
40
+ "data-slot": "dialog-overlay",
41
+ className: cn(
42
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 inset-0 bg-black/60 backdrop-blur-sm fixed z-50",
43
+ className
44
+ ),
45
+ ...props
46
+ }
47
+ );
48
+ }
49
+ function DialogContent({
50
+ className,
51
+ children,
52
+ hideCloseButton = false,
53
+ ...props
54
+ }) {
55
+ return /* @__PURE__ */ jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [
56
+ /* @__PURE__ */ jsx(DialogOverlay, {}),
57
+ /* @__PURE__ */ jsxs(
58
+ Dialog$1.Content,
59
+ {
60
+ "data-slot": "dialog-content",
61
+ className: cn(
62
+ `${modalSurface} 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 gap-6 p-6 sm:w-full sm:max-w-lg fixed top-[50%] left-[50%] z-50 grid w-[calc(100%-2rem)] max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] overflow-hidden duration-200`,
63
+ className
64
+ ),
65
+ ...props,
66
+ children: [
67
+ children,
68
+ !hideCloseButton && /* @__PURE__ */ jsxs(Dialog$1.Close, { className: "top-6 right-6 h-10 w-10 shadow-xs absolute z-50 flex items-center justify-center rounded-full border border-border bg-muted text-muted-foreground transition-colors hover:bg-accent hover:text-foreground", children: [
69
+ /* @__PURE__ */ jsx(XIcon, { className: "h-5 w-5" }),
70
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
71
+ ] })
72
+ ]
73
+ }
74
+ )
75
+ ] });
76
+ }
77
+ function DialogHeader({ className, ...props }) {
78
+ return /* @__PURE__ */ jsx(
79
+ "div",
80
+ {
81
+ "data-slot": "dialog-header",
82
+ className: cn(
83
+ "gap-2 p-6 md:p-8 flex flex-col text-center",
84
+ className
85
+ ),
86
+ ...props
87
+ }
88
+ );
89
+ }
90
+ function DialogFooter({ className, ...props }) {
91
+ return /* @__PURE__ */ jsx(
92
+ "div",
93
+ {
94
+ "data-slot": "dialog-footer",
95
+ className: cn(
96
+ "gap-3 p-6 md:p-8 sm:flex-row sm:justify-end flex flex-col-reverse border-t border-border",
97
+ className
98
+ ),
99
+ ...props
100
+ }
101
+ );
102
+ }
103
+ function DialogTitle({
104
+ className,
105
+ ...props
106
+ }) {
107
+ return /* @__PURE__ */ jsx(
108
+ Dialog$1.Title,
109
+ {
110
+ "data-slot": "dialog-title",
111
+ className: cn(
112
+ "text-2xl font-bold tracking-tight md:text-3xl text-foreground",
113
+ className
114
+ ),
115
+ ...props
116
+ }
117
+ );
118
+ }
119
+ function DialogDescription({
120
+ className,
121
+ ...props
122
+ }) {
123
+ return /* @__PURE__ */ jsx(
124
+ Dialog$1.Description,
125
+ {
126
+ "data-slot": "dialog-description",
127
+ className: cn(
128
+ "text-base font-medium leading-relaxed text-muted-foreground",
129
+ className
130
+ ),
131
+ ...props
132
+ }
133
+ );
134
+ }
135
+ function Calendar({
136
+ className,
137
+ classNames,
138
+ showOutsideDays = true,
139
+ captionLayout = "label",
140
+ buttonVariant = "ghost",
141
+ formatters,
142
+ components,
143
+ ...props
144
+ }) {
145
+ const defaultClassNames = getDefaultClassNames();
146
+ return /* @__PURE__ */ jsx(
147
+ DayPicker,
148
+ {
149
+ showOutsideDays,
150
+ className: cn(
151
+ elevatedSurface,
152
+ nestedSurfaceReset,
153
+ "group/calendar p-4 [--cell-size:--spacing(8)] bg-card",
154
+ String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
155
+ String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
156
+ className
157
+ ),
158
+ captionLayout,
159
+ formatters: {
160
+ formatMonthDropdown: (date) => date.toLocaleString("default", { month: "short" }),
161
+ ...formatters
162
+ },
163
+ classNames: {
164
+ root: cn("w-fit", defaultClassNames.root),
165
+ months: cn(
166
+ "gap-4 md:flex-row relative flex flex-col",
167
+ defaultClassNames.months
168
+ ),
169
+ month: cn(
170
+ "gap-4 flex w-full flex-col",
171
+ defaultClassNames.month
172
+ ),
173
+ nav: cn(
174
+ "inset-x-0 top-0 gap-1 absolute flex w-full items-center justify-between",
175
+ defaultClassNames.nav
176
+ ),
177
+ button_previous: cn(
178
+ buttonVariants({ variant: buttonVariant }),
179
+ "p-0 size-(--cell-size) select-none aria-disabled:opacity-50",
180
+ defaultClassNames.button_previous
181
+ ),
182
+ button_next: cn(
183
+ buttonVariants({ variant: buttonVariant }),
184
+ "p-0 size-(--cell-size) select-none aria-disabled:opacity-50",
185
+ defaultClassNames.button_next
186
+ ),
187
+ month_caption: cn(
188
+ "flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)",
189
+ defaultClassNames.month_caption
190
+ ),
191
+ dropdowns: cn(
192
+ "gap-1.5 text-sm font-medium flex h-(--cell-size) w-full items-center justify-center",
193
+ defaultClassNames.dropdowns
194
+ ),
195
+ dropdown_root: cn(
196
+ "shadow-xs rounded-xl relative border border-border has-focus:border-ring has-focus:ring-[3px] has-focus:ring-ring/50",
197
+ defaultClassNames.dropdown_root
198
+ ),
199
+ dropdown: cn(
200
+ "inset-0 absolute bg-popover opacity-0",
201
+ defaultClassNames.dropdown
202
+ ),
203
+ caption_label: cn(
204
+ "font-medium select-none",
205
+ captionLayout === "label" ? "text-sm" : "h-8 gap-1 pr-1 pl-2 text-sm [&>svg]:size-3.5 rounded-xl flex items-center [&>svg]:text-muted-foreground",
206
+ defaultClassNames.caption_label
207
+ ),
208
+ month_grid: cn(
209
+ "w-full border-collapse",
210
+ defaultClassNames.month_grid
211
+ ),
212
+ weekdays: cn("flex", defaultClassNames.weekdays),
213
+ weekday: cn(
214
+ "font-normal rounded-xl flex-1 text-[0.8rem] text-muted-foreground select-none",
215
+ defaultClassNames.weekday
216
+ ),
217
+ week: cn("mt-2 flex w-full", defaultClassNames.week),
218
+ week_number_header: cn(
219
+ "w-(--cell-size) select-none",
220
+ defaultClassNames.week_number_header
221
+ ),
222
+ week_number: cn(
223
+ "text-[0.8rem] text-muted-foreground select-none",
224
+ defaultClassNames.week_number
225
+ ),
226
+ day: cn(
227
+ "group/day p-0 [&:last-child[data-selected=true]_button]:rounded-r-xl relative aspect-square h-full w-full text-center select-none",
228
+ props.showWeekNumber ? "[&:nth-child(2)[data-selected=true]_button]:rounded-l-xl" : "[&:first-child[data-selected=true]_button]:rounded-l-xl",
229
+ defaultClassNames.day
230
+ ),
231
+ range_start: cn(
232
+ "rounded-l-xl bg-accent",
233
+ defaultClassNames.range_start
234
+ ),
235
+ range_middle: cn(
236
+ "rounded-none",
237
+ defaultClassNames.range_middle
238
+ ),
239
+ range_end: cn(
240
+ "rounded-r-xl bg-accent",
241
+ defaultClassNames.range_end
242
+ ),
243
+ today: cn(
244
+ "rounded-xl bg-accent text-accent-foreground data-[selected=true]:rounded-none",
245
+ defaultClassNames.today
246
+ ),
247
+ outside: cn(
248
+ "text-muted-foreground aria-selected:text-muted-foreground",
249
+ defaultClassNames.outside
250
+ ),
251
+ disabled: cn(
252
+ "text-muted-foreground opacity-50",
253
+ defaultClassNames.disabled
254
+ ),
255
+ hidden: cn("invisible", defaultClassNames.hidden),
256
+ ...classNames
257
+ },
258
+ components: {
259
+ Root: ({ className: className2, rootRef, ...props2 }) => {
260
+ return /* @__PURE__ */ jsx(
261
+ "div",
262
+ {
263
+ "data-slot": "calendar",
264
+ ref: rootRef,
265
+ className: cn(className2),
266
+ ...props2
267
+ }
268
+ );
269
+ },
270
+ Chevron: ({ className: className2, orientation, ...props2 }) => {
271
+ if (orientation === "left") {
272
+ return /* @__PURE__ */ jsx(
273
+ ChevronLeftIcon,
274
+ {
275
+ className: cn("size-4", className2),
276
+ ...props2
277
+ }
278
+ );
279
+ }
280
+ if (orientation === "right") {
281
+ return /* @__PURE__ */ jsx(
282
+ ChevronRightIcon,
283
+ {
284
+ className: cn("size-4", className2),
285
+ ...props2
286
+ }
287
+ );
288
+ }
289
+ return /* @__PURE__ */ jsx(
290
+ ChevronDownIcon,
291
+ {
292
+ className: cn("size-4", className2),
293
+ ...props2
294
+ }
295
+ );
296
+ },
297
+ DayButton: CalendarDayButton,
298
+ WeekNumber: ({ children, ...props2 }) => {
299
+ return /* @__PURE__ */ jsx("td", { ...props2, children: /* @__PURE__ */ jsx("div", { className: "flex size-(--cell-size) items-center justify-center text-center", children }) });
300
+ },
301
+ ...components
302
+ },
303
+ ...props
304
+ }
305
+ );
306
+ }
307
+ function CalendarDayButton({
308
+ className,
309
+ day,
310
+ modifiers,
311
+ ...props
312
+ }) {
313
+ const defaultClassNames = getDefaultClassNames();
314
+ const ref = React4.useRef(null);
315
+ React4.useEffect(() => {
316
+ if (modifiers.focused) ref.current?.focus();
317
+ }, [modifiers.focused]);
318
+ return /* @__PURE__ */ jsx(
319
+ Button,
320
+ {
321
+ ref,
322
+ variant: "ghost",
323
+ size: "icon",
324
+ "data-day": day.date.toLocaleDateString(),
325
+ "data-selected-single": modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle,
326
+ "data-range-start": modifiers.range_start,
327
+ "data-range-end": modifiers.range_end,
328
+ "data-range-middle": modifiers.range_middle,
329
+ className: cn(
330
+ "gap-1 font-normal [&>span]:text-xs data-[range-end=true]:rounded-xl data-[range-end=true]:rounded-r-xl data-[range-start=true]:rounded-xl data-[range-start=true]:rounded-l-xl flex aspect-square size-auto w-full min-w-(--cell-size) flex-col leading-none group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:text-accent-foreground [&>span]:opacity-70",
331
+ defaultClassNames.day,
332
+ className
333
+ ),
334
+ ...props
335
+ }
336
+ );
337
+ }
338
+ function Command({
339
+ className,
340
+ ...props
341
+ }) {
342
+ return /* @__PURE__ */ jsx(
343
+ Command$1,
344
+ {
345
+ "data-slot": "command",
346
+ className: cn(
347
+ elevatedSurface,
348
+ nestedSurfaceReset,
349
+ "flex h-full w-full flex-col overflow-hidden bg-card text-card-foreground",
350
+ className
351
+ ),
352
+ ...props
353
+ }
354
+ );
355
+ }
356
+ function CommandDialog({
357
+ title = "Command Palette",
358
+ description = "Search for a command to run...",
359
+ children,
360
+ className,
361
+ hideCloseButton = true,
362
+ ...props
363
+ }) {
364
+ return /* @__PURE__ */ jsxs(Dialog, { ...props, children: [
365
+ /* @__PURE__ */ jsxs(DialogHeader, { className: "sr-only", children: [
366
+ /* @__PURE__ */ jsx(DialogTitle, { children: title }),
367
+ /* @__PURE__ */ jsx(DialogDescription, { children: description })
368
+ ] }),
369
+ /* @__PURE__ */ jsx(
370
+ DialogContent,
371
+ {
372
+ className: cn(
373
+ `${modalSurface} gap-0 p-0 overflow-hidden`,
374
+ className
375
+ ),
376
+ hideCloseButton,
377
+ children: /* @__PURE__ */ jsx(Command, { className: "[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-item]]:py-2.5 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children })
378
+ }
379
+ )
380
+ ] });
381
+ }
382
+ function CommandInput({
383
+ className,
384
+ ...props
385
+ }) {
386
+ return /* @__PURE__ */ jsx("div", { className: "shrink-0 border-b border-border", children: /* @__PURE__ */ jsxs(
387
+ "div",
388
+ {
389
+ "data-slot": "command-input-wrapper",
390
+ className: cn(
391
+ fieldSurface,
392
+ "h-11 gap-3 px-4 m-3 flex items-center"
393
+ ),
394
+ children: [
395
+ /* @__PURE__ */ jsx(SearchIcon, { className: "size-4 shrink-0 opacity-50" }),
396
+ /* @__PURE__ */ jsx(
397
+ Command$1.Input,
398
+ {
399
+ "data-slot": "command-input",
400
+ className: cn(
401
+ "h-11 text-sm font-medium flex w-full bg-transparent outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
402
+ className
403
+ ),
404
+ ...props
405
+ }
406
+ )
407
+ ]
408
+ }
409
+ ) });
410
+ }
411
+ function CommandList({
412
+ className,
413
+ ...props
414
+ }) {
415
+ return /* @__PURE__ */ jsx(
416
+ Command$1.List,
417
+ {
418
+ "data-slot": "command-list",
419
+ className: cn(
420
+ "scroll-py-1 max-h-[300px] overflow-x-hidden overflow-y-auto",
421
+ className
422
+ ),
423
+ ...props
424
+ }
425
+ );
426
+ }
427
+ function CommandEmpty({
428
+ className,
429
+ children,
430
+ ...props
431
+ }) {
432
+ return /* @__PURE__ */ jsxs(
433
+ Command$1.Empty,
434
+ {
435
+ "data-slot": "command-empty",
436
+ className: cn(
437
+ "gap-3 px-6 py-10 flex flex-col items-center justify-center text-center",
438
+ className
439
+ ),
440
+ ...props,
441
+ children: [
442
+ /* @__PURE__ */ jsx("span", { className: "size-10 flex items-center justify-center rounded-full bg-surface-recessed text-muted-foreground", children: /* @__PURE__ */ jsx(SearchXIcon, { className: "size-5" }) }),
443
+ /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children })
444
+ ]
445
+ }
446
+ );
447
+ }
448
+ function CommandGroup({
449
+ className,
450
+ ...props
451
+ }) {
452
+ return /* @__PURE__ */ jsx(
453
+ Command$1.Group,
454
+ {
455
+ "data-slot": "command-group",
456
+ className: cn(
457
+ "p-3 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium overflow-hidden text-foreground [&_[cmdk-group-heading]]:text-muted-foreground",
458
+ className
459
+ ),
460
+ ...props
461
+ }
462
+ );
463
+ }
464
+ function CommandSeparator({
465
+ className,
466
+ ...props
467
+ }) {
468
+ return /* @__PURE__ */ jsx(
469
+ Command$1.Separator,
470
+ {
471
+ "data-slot": "command-separator",
472
+ className: cn("mx-3 h-px bg-border", className),
473
+ ...props
474
+ }
475
+ );
476
+ }
477
+ function CommandItem({
478
+ className,
479
+ ...props
480
+ }) {
481
+ return /* @__PURE__ */ jsx(
482
+ Command$1.Item,
483
+ {
484
+ "data-slot": "command-item",
485
+ className: cn(
486
+ "gap-2 px-2 py-1.5 text-sm [&_svg:not([class*='size-'])]:size-4 rounded-xl relative flex cursor-default items-center outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground",
487
+ className
488
+ ),
489
+ ...props
490
+ }
491
+ );
492
+ }
493
+ function CommandShortcut({
494
+ className,
495
+ ...props
496
+ }) {
497
+ return /* @__PURE__ */ jsx(
498
+ "span",
499
+ {
500
+ "data-slot": "command-shortcut",
501
+ className: cn(
502
+ "text-xs tracking-widest ml-auto text-muted-foreground",
503
+ className
504
+ ),
505
+ ...props
506
+ }
507
+ );
508
+ }
509
+ var Popover = Popover$1.Root;
510
+ var PopoverTrigger = Popover$1.Trigger;
511
+ var PopoverAnchor = Popover$1.Anchor;
512
+ var PopoverContent = React4.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(Popover$1.Portal, { children: /* @__PURE__ */ jsx(
513
+ Popover$1.Content,
514
+ {
515
+ "data-slot": "popover-content",
516
+ ref,
517
+ align,
518
+ sideOffset,
519
+ className: cn(
520
+ `${panelSurface} p-4 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 w-full origin-[--radix-popover-content-transform-origin] bg-popover/90 outline-none`,
521
+ className
522
+ ),
523
+ ...props
524
+ }
525
+ ) }));
526
+ PopoverContent.displayName = Popover$1.Content.displayName;
527
+ function Select({
528
+ ...props
529
+ }) {
530
+ return /* @__PURE__ */ jsx(SelectPrimitive.Root, { "data-slot": "select", ...props });
531
+ }
532
+ function SelectGroup({
533
+ ...props
534
+ }) {
535
+ return /* @__PURE__ */ jsx(SelectPrimitive.Group, { "data-slot": "select-group", ...props });
536
+ }
537
+ function SelectValue({
538
+ ...props
539
+ }) {
540
+ return /* @__PURE__ */ jsx(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
541
+ }
542
+ function SelectTrigger({
543
+ className,
544
+ children,
545
+ ...props
546
+ }) {
547
+ return /* @__PURE__ */ jsxs(
548
+ SelectPrimitive.Trigger,
549
+ {
550
+ "data-slot": "select-trigger",
551
+ className: cn(
552
+ `${fieldSurface} h-11 px-4 text-sm font-medium *:data-[slot=select-value]:gap-2 [&_svg:not([class*='size-'])]:size-4 flex w-full items-center justify-between transition-[color,box-shadow] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0 [&>span]:line-clamp-1 ${focusRing}`,
553
+ className
554
+ ),
555
+ ...props,
556
+ children: [
557
+ children,
558
+ /* @__PURE__ */ jsx(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "size-4 opacity-50" }) })
559
+ ]
560
+ }
561
+ );
562
+ }
563
+ function SelectContent({
564
+ className,
565
+ children,
566
+ position = "popper",
567
+ ...props
568
+ }) {
569
+ return /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
570
+ SelectPrimitive.Content,
571
+ {
572
+ "data-slot": "select-content",
573
+ className: cn(
574
+ `${menuSurface} max-h-96 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 relative z-50 min-w-[8rem] overflow-hidden bg-popover/95`,
575
+ 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",
576
+ className
577
+ ),
578
+ position,
579
+ ...props,
580
+ children: [
581
+ /* @__PURE__ */ jsx(SelectScrollUpButton, {}),
582
+ /* @__PURE__ */ jsx(
583
+ SelectPrimitive.Viewport,
584
+ {
585
+ className: cn(
586
+ "p-1",
587
+ position === "popper" && "scroll-my-1 h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
588
+ ),
589
+ children
590
+ }
591
+ ),
592
+ /* @__PURE__ */ jsx(SelectScrollDownButton, {})
593
+ ]
594
+ }
595
+ ) });
596
+ }
597
+ function SelectLabel({
598
+ className,
599
+ ...props
600
+ }) {
601
+ return /* @__PURE__ */ jsx(
602
+ SelectPrimitive.Label,
603
+ {
604
+ "data-slot": "select-label",
605
+ className: cn(
606
+ "px-2 py-1.5 text-xs font-medium tracking-wider text-muted-foreground uppercase",
607
+ className
608
+ ),
609
+ ...props
610
+ }
611
+ );
612
+ }
613
+ function SelectItem({
614
+ className,
615
+ children,
616
+ ...props
617
+ }) {
618
+ return /* @__PURE__ */ jsxs(
619
+ SelectPrimitive.Item,
620
+ {
621
+ "data-slot": "select-item",
622
+ className: cn(
623
+ "gap-2 rounded-xl py-1.5 pr-8 pl-2 text-sm [&_svg:not([class*='size-'])]:size-4 *:[span]:last:gap-2 focus:font-semibold relative flex w-full cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center",
624
+ className
625
+ ),
626
+ ...props,
627
+ children: [
628
+ /* @__PURE__ */ jsx("span", { className: "right-2 size-3.5 absolute flex items-center justify-center", children: /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) }) }),
629
+ /* @__PURE__ */ jsx(SelectPrimitive.ItemText, { children })
630
+ ]
631
+ }
632
+ );
633
+ }
634
+ function SelectSeparator({
635
+ className,
636
+ ...props
637
+ }) {
638
+ return /* @__PURE__ */ jsx(
639
+ SelectPrimitive.Separator,
640
+ {
641
+ "data-slot": "select-separator",
642
+ className: cn(
643
+ "-mx-1 my-1 pointer-events-none h-px bg-border",
644
+ className
645
+ ),
646
+ ...props
647
+ }
648
+ );
649
+ }
650
+ function SelectScrollUpButton({
651
+ className,
652
+ ...props
653
+ }) {
654
+ return /* @__PURE__ */ jsx(
655
+ SelectPrimitive.ScrollUpButton,
656
+ {
657
+ "data-slot": "select-scroll-up-button",
658
+ className: cn(
659
+ "py-1 flex cursor-default items-center justify-center",
660
+ className
661
+ ),
662
+ ...props,
663
+ children: /* @__PURE__ */ jsx(ChevronUpIcon, { className: "size-4" })
664
+ }
665
+ );
666
+ }
667
+ function SelectScrollDownButton({
668
+ className,
669
+ ...props
670
+ }) {
671
+ return /* @__PURE__ */ jsx(
672
+ SelectPrimitive.ScrollDownButton,
673
+ {
674
+ "data-slot": "select-scroll-down-button",
675
+ className: cn(
676
+ "py-1 flex cursor-default items-center justify-center",
677
+ className
678
+ ),
679
+ ...props,
680
+ children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "size-4" })
681
+ }
682
+ );
683
+ }
684
+ function Label2({
685
+ className,
686
+ ...props
687
+ }) {
688
+ return /* @__PURE__ */ jsx(
689
+ LabelPrimitive.Root,
690
+ {
691
+ "data-slot": "label",
692
+ className: cn(
693
+ "text-sm font-medium text-foreground select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
694
+ className
695
+ ),
696
+ ...props
697
+ }
698
+ );
699
+ }
700
+ var Switch = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
701
+ SwitchPrimitives.Root,
702
+ {
703
+ "data-slot": "switch",
704
+ className: cn(
705
+ `peer h-6 w-11 shadow-sm inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent transition-colors disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input ${focusRing}`,
706
+ className
707
+ ),
708
+ ...props,
709
+ ref,
710
+ children: /* @__PURE__ */ jsx(
711
+ SwitchPrimitives.Thumb,
712
+ {
713
+ "data-slot": "switch-thumb",
714
+ className: cn(
715
+ "size-5 shadow-lg data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0 pointer-events-none block rounded-full bg-background ring-0 transition-transform"
716
+ )
717
+ }
718
+ )
719
+ }
720
+ ));
721
+ Switch.displayName = SwitchPrimitives.Root.displayName;
722
+ var Tabs = React4.forwardRef((props, ref) => /* @__PURE__ */ jsx(TabsPrimitive.Root, { "data-slot": "tabs", ref, ...props }));
723
+ Tabs.displayName = TabsPrimitive.Root.displayName;
724
+ var TabsList = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
725
+ TabsPrimitive.List,
726
+ {
727
+ "data-slot": "tabs-list",
728
+ ref,
729
+ className: cn(
730
+ "h-11 p-1.5 rounded-2xl inline-flex items-center justify-center bg-muted text-muted-foreground",
731
+ className
732
+ ),
733
+ ...props
734
+ }
735
+ ));
736
+ TabsList.displayName = TabsPrimitive.List.displayName;
737
+ var TabsTrigger = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
738
+ TabsPrimitive.Trigger,
739
+ {
740
+ "data-slot": "tabs-trigger",
741
+ ref,
742
+ className: cn(
743
+ `px-4 text-sm font-medium data-[state=active]:shadow-sm h-8 rounded-xl data-[state=active]:font-semibold inline-flex items-center justify-center whitespace-nowrap transition-all disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground ${focusRing}`,
744
+ className
745
+ ),
746
+ ...props
747
+ }
748
+ ));
749
+ TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
750
+ var TabsContent = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
751
+ TabsPrimitive.Content,
752
+ {
753
+ "data-slot": "tabs-content",
754
+ ref,
755
+ className: cn(
756
+ elevatedSurface,
757
+ nestedSurfaceReset,
758
+ `mt-2 p-5 bg-card ${focusRing}`,
759
+ className
760
+ ),
761
+ ...props
762
+ }
763
+ ));
764
+ TabsContent.displayName = TabsPrimitive.Content.displayName;
765
+ var Textarea = React4.forwardRef(({ className, ...props }, ref) => {
766
+ return /* @__PURE__ */ jsx(
767
+ "textarea",
768
+ {
769
+ "data-slot": "textarea",
770
+ className: cn(
771
+ fieldSurface,
772
+ "px-4 py-3 text-sm font-medium min-h-24 flex w-full resize-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
773
+ focusRing,
774
+ "aria-invalid:border-destructive aria-invalid:ring-destructive/20",
775
+ className
776
+ ),
777
+ ref,
778
+ ...props
779
+ }
780
+ );
781
+ });
782
+ Textarea.displayName = "Textarea";
783
+
784
+ export { Calendar, CalendarDayButton, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Label2 as Label, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea };
785
+ //# sourceMappingURL=chunk-42BJBH56.js.map
786
+ //# sourceMappingURL=chunk-42BJBH56.js.map