@fluid-app/ui-primitives 0.1.0 → 0.1.2

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 CHANGED
@@ -4,23 +4,25 @@ var clsx = require('clsx');
4
4
  var tailwindMerge = require('tailwind-merge');
5
5
  var zod = require('@hookform/resolvers/zod');
6
6
  var reactHookForm = require('react-hook-form');
7
- var React6 = require('react');
7
+ var React15 = require('react');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
  var AccordionPrimitive = require('@radix-ui/react-accordion');
10
10
  var lucideReact = require('lucide-react');
11
11
  var classVarianceAuthority = require('class-variance-authority');
12
+ var radixUi = require('radix-ui');
12
13
  var reactSlot = require('@radix-ui/react-slot');
13
14
  var reactDayPicker = require('react-day-picker');
14
15
  var RechartsPrimitive = require('recharts');
15
16
  var CollapsiblePrimitive = require('@radix-ui/react-collapsible');
17
+ var PopoverPrimitive = require('@radix-ui/react-popover');
16
18
  var SheetPrimitive = require('@radix-ui/react-dialog');
17
19
  var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
18
- var TogglePrimitive = require('@radix-ui/react-toggle');
19
20
  var LabelPrimitive = require('@radix-ui/react-label');
20
- var PopoverPrimitive = require('@radix-ui/react-popover');
21
+ var TogglePrimitive = require('@radix-ui/react-toggle');
21
22
  var SelectPrimitive = require('@radix-ui/react-select');
22
23
  var SeparatorPrimitive = require('@radix-ui/react-separator');
23
24
  var SliderPrimitive = require('@radix-ui/react-slider');
25
+ var sonner = require('sonner');
24
26
  var SwitchPrimitive = require('@radix-ui/react-switch');
25
27
  var TabsPrimitive = require('@radix-ui/react-tabs');
26
28
  var ToggleGroupPrimitive = require('@radix-ui/react-toggle-group');
@@ -44,15 +46,15 @@ function _interopNamespace(e) {
44
46
  return Object.freeze(n);
45
47
  }
46
48
 
47
- var React6__namespace = /*#__PURE__*/_interopNamespace(React6);
49
+ var React15__namespace = /*#__PURE__*/_interopNamespace(React15);
48
50
  var AccordionPrimitive__namespace = /*#__PURE__*/_interopNamespace(AccordionPrimitive);
49
51
  var RechartsPrimitive__namespace = /*#__PURE__*/_interopNamespace(RechartsPrimitive);
50
52
  var CollapsiblePrimitive__namespace = /*#__PURE__*/_interopNamespace(CollapsiblePrimitive);
53
+ var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
51
54
  var SheetPrimitive__namespace = /*#__PURE__*/_interopNamespace(SheetPrimitive);
52
55
  var DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(DropdownMenuPrimitive);
53
- var TogglePrimitive__namespace = /*#__PURE__*/_interopNamespace(TogglePrimitive);
54
56
  var LabelPrimitive__namespace = /*#__PURE__*/_interopNamespace(LabelPrimitive);
55
- var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
57
+ var TogglePrimitive__namespace = /*#__PURE__*/_interopNamespace(TogglePrimitive);
56
58
  var SelectPrimitive__namespace = /*#__PURE__*/_interopNamespace(SelectPrimitive);
57
59
  var SeparatorPrimitive__namespace = /*#__PURE__*/_interopNamespace(SeparatorPrimitive);
58
60
  var SliderPrimitive__namespace = /*#__PURE__*/_interopNamespace(SliderPrimitive);
@@ -71,7 +73,7 @@ function useZodForm(schema, options) {
71
73
  const resolver = zodResolverFn(schema);
72
74
  return reactHookForm.useForm({ ...options, resolver });
73
75
  }
74
- var PortalContainerContext = React6.createContext(
76
+ var PortalContainerContext = React15.createContext(
75
77
  void 0
76
78
  );
77
79
  function PortalContainerProvider({
@@ -81,7 +83,7 @@ function PortalContainerProvider({
81
83
  return /* @__PURE__ */ jsxRuntime.jsx(PortalContainerContext.Provider, { value: container ?? void 0, children });
82
84
  }
83
85
  function usePortalContainer() {
84
- return React6.useContext(PortalContainerContext);
86
+ return React15.useContext(PortalContainerContext);
85
87
  }
86
88
  function Accordion({
87
89
  className,
@@ -258,6 +260,300 @@ function Button({
258
260
  }
259
261
  );
260
262
  }
263
+ function AlertDialog({
264
+ ...props
265
+ }) {
266
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.AlertDialog.Root, { "data-slot": "alert-dialog", ...props });
267
+ }
268
+ function AlertDialogTrigger({
269
+ ...props
270
+ }) {
271
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.AlertDialog.Trigger, { "data-slot": "alert-dialog-trigger", ...props });
272
+ }
273
+ function AlertDialogPortal({
274
+ ...props
275
+ }) {
276
+ const portalContainer = usePortalContainer();
277
+ return /* @__PURE__ */ jsxRuntime.jsx(
278
+ radixUi.AlertDialog.Portal,
279
+ {
280
+ "data-slot": "alert-dialog-portal",
281
+ container: portalContainer,
282
+ ...props
283
+ }
284
+ );
285
+ }
286
+ function AlertDialogOverlay({
287
+ className,
288
+ ...props
289
+ }) {
290
+ return /* @__PURE__ */ jsxRuntime.jsx(
291
+ radixUi.AlertDialog.Overlay,
292
+ {
293
+ "data-slot": "alert-dialog-overlay",
294
+ className: cn(
295
+ "fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
296
+ className
297
+ ),
298
+ ...props
299
+ }
300
+ );
301
+ }
302
+ function AlertDialogContent({
303
+ className,
304
+ size = "default",
305
+ ...props
306
+ }) {
307
+ return /* @__PURE__ */ jsxRuntime.jsxs(AlertDialogPortal, { children: [
308
+ /* @__PURE__ */ jsxRuntime.jsx(AlertDialogOverlay, {}),
309
+ /* @__PURE__ */ jsxRuntime.jsx(
310
+ radixUi.AlertDialog.Content,
311
+ {
312
+ "data-slot": "alert-dialog-content",
313
+ "data-size": size,
314
+ className: cn(
315
+ "group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 data-[size=sm]:max-w-xs 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 data-[size=default]:sm:max-w-lg",
316
+ className
317
+ ),
318
+ ...props
319
+ }
320
+ )
321
+ ] });
322
+ }
323
+ function AlertDialogHeader({
324
+ className,
325
+ ...props
326
+ }) {
327
+ return /* @__PURE__ */ jsxRuntime.jsx(
328
+ "div",
329
+ {
330
+ "data-slot": "alert-dialog-header",
331
+ className: cn(
332
+ "grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",
333
+ className
334
+ ),
335
+ ...props
336
+ }
337
+ );
338
+ }
339
+ function AlertDialogFooter({
340
+ className,
341
+ ...props
342
+ }) {
343
+ return /* @__PURE__ */ jsxRuntime.jsx(
344
+ "div",
345
+ {
346
+ "data-slot": "alert-dialog-footer",
347
+ className: cn(
348
+ "flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",
349
+ className
350
+ ),
351
+ ...props
352
+ }
353
+ );
354
+ }
355
+ function AlertDialogTitle({
356
+ className,
357
+ ...props
358
+ }) {
359
+ return /* @__PURE__ */ jsxRuntime.jsx(
360
+ radixUi.AlertDialog.Title,
361
+ {
362
+ "data-slot": "alert-dialog-title",
363
+ className: cn(
364
+ "text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",
365
+ className
366
+ ),
367
+ ...props
368
+ }
369
+ );
370
+ }
371
+ function AlertDialogDescription({
372
+ className,
373
+ ...props
374
+ }) {
375
+ return /* @__PURE__ */ jsxRuntime.jsx(
376
+ radixUi.AlertDialog.Description,
377
+ {
378
+ "data-slot": "alert-dialog-description",
379
+ className: cn("text-sm text-muted-foreground", className),
380
+ ...props
381
+ }
382
+ );
383
+ }
384
+ function AlertDialogMedia({
385
+ className,
386
+ ...props
387
+ }) {
388
+ return /* @__PURE__ */ jsxRuntime.jsx(
389
+ "div",
390
+ {
391
+ "data-slot": "alert-dialog-media",
392
+ className: cn(
393
+ "mb-2 inline-flex size-16 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8",
394
+ className
395
+ ),
396
+ ...props
397
+ }
398
+ );
399
+ }
400
+ function AlertDialogAction({
401
+ className,
402
+ variant = "default",
403
+ size = "default",
404
+ ...props
405
+ }) {
406
+ return /* @__PURE__ */ jsxRuntime.jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
407
+ radixUi.AlertDialog.Action,
408
+ {
409
+ "data-slot": "alert-dialog-action",
410
+ className: cn(className),
411
+ ...props
412
+ }
413
+ ) });
414
+ }
415
+ function AlertDialogCancel({
416
+ className,
417
+ variant = "outline",
418
+ size = "default",
419
+ ...props
420
+ }) {
421
+ return /* @__PURE__ */ jsxRuntime.jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
422
+ radixUi.AlertDialog.Cancel,
423
+ {
424
+ "data-slot": "alert-dialog-cancel",
425
+ className: cn(className),
426
+ ...props
427
+ }
428
+ ) });
429
+ }
430
+ function Avatar({
431
+ className,
432
+ size = "default",
433
+ ...props
434
+ }) {
435
+ return /* @__PURE__ */ jsxRuntime.jsx(
436
+ radixUi.Avatar.Root,
437
+ {
438
+ "data-slot": "avatar",
439
+ "data-size": size,
440
+ className: cn(
441
+ "group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6",
442
+ className
443
+ ),
444
+ ...props
445
+ }
446
+ );
447
+ }
448
+ function AvatarImage({
449
+ className,
450
+ ...props
451
+ }) {
452
+ return /* @__PURE__ */ jsxRuntime.jsx(
453
+ radixUi.Avatar.Image,
454
+ {
455
+ "data-slot": "avatar-image",
456
+ className: cn("aspect-square size-full", className),
457
+ ...props
458
+ }
459
+ );
460
+ }
461
+ function AvatarFallback({
462
+ className,
463
+ ...props
464
+ }) {
465
+ return /* @__PURE__ */ jsxRuntime.jsx(
466
+ radixUi.Avatar.Fallback,
467
+ {
468
+ "data-slot": "avatar-fallback",
469
+ className: cn(
470
+ "flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs",
471
+ className
472
+ ),
473
+ ...props
474
+ }
475
+ );
476
+ }
477
+ function AvatarBadge({ className, ...props }) {
478
+ return /* @__PURE__ */ jsxRuntime.jsx(
479
+ "span",
480
+ {
481
+ "data-slot": "avatar-badge",
482
+ className: cn(
483
+ "absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground ring-2 ring-background select-none",
484
+ "group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden",
485
+ "group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2",
486
+ "group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2",
487
+ className
488
+ ),
489
+ ...props
490
+ }
491
+ );
492
+ }
493
+ function AvatarGroup({ className, ...props }) {
494
+ return /* @__PURE__ */ jsxRuntime.jsx(
495
+ "div",
496
+ {
497
+ "data-slot": "avatar-group",
498
+ className: cn(
499
+ "group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background",
500
+ className
501
+ ),
502
+ ...props
503
+ }
504
+ );
505
+ }
506
+ function AvatarGroupCount({
507
+ className,
508
+ ...props
509
+ }) {
510
+ return /* @__PURE__ */ jsxRuntime.jsx(
511
+ "div",
512
+ {
513
+ "data-slot": "avatar-group-count",
514
+ className: cn(
515
+ "relative flex size-8 shrink-0 items-center justify-center rounded-full bg-muted text-sm text-muted-foreground ring-2 ring-background group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3",
516
+ className
517
+ ),
518
+ ...props
519
+ }
520
+ );
521
+ }
522
+ var badgeVariants = classVarianceAuthority.cva(
523
+ "inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",
524
+ {
525
+ variants: {
526
+ variant: {
527
+ default: "bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
528
+ secondary: "bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
529
+ destructive: "bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",
530
+ outline: "border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
531
+ ghost: "[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
532
+ link: "text-primary underline-offset-4 [a&]:hover:underline"
533
+ }
534
+ },
535
+ defaultVariants: {
536
+ variant: "default"
537
+ }
538
+ }
539
+ );
540
+ function Badge({
541
+ className,
542
+ variant = "default",
543
+ asChild = false,
544
+ ...props
545
+ }) {
546
+ const Comp = asChild ? radixUi.Slot.Root : "span";
547
+ return /* @__PURE__ */ jsxRuntime.jsx(
548
+ Comp,
549
+ {
550
+ "data-slot": "badge",
551
+ "data-variant": variant,
552
+ className: cn(badgeVariants({ variant }), className),
553
+ ...props
554
+ }
555
+ );
556
+ }
261
557
  function Calendar({
262
558
  className,
263
559
  classNames,
@@ -400,9 +696,9 @@ function CardFooter({ className, ...props }) {
400
696
  );
401
697
  }
402
698
  var THEMES = { light: "", dark: ".dark" };
403
- var ChartContext = React6__namespace.createContext(null);
699
+ var ChartContext = React15__namespace.createContext(null);
404
700
  function useChart() {
405
- const context = React6__namespace.useContext(ChartContext);
701
+ const context = React15__namespace.useContext(ChartContext);
406
702
  if (!context) {
407
703
  throw new Error("useChart must be used within a <ChartContainer />");
408
704
  }
@@ -415,7 +711,7 @@ function ChartContainer({
415
711
  config,
416
712
  ...props
417
713
  }) {
418
- const uniqueId = React6__namespace.useId();
714
+ const uniqueId = React15__namespace.useId();
419
715
  const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
420
716
  return /* @__PURE__ */ jsxRuntime.jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxRuntime.jsxs(
421
717
  "div",
@@ -476,7 +772,7 @@ function ChartTooltipContent({
476
772
  labelKey
477
773
  }) {
478
774
  const { config } = useChart();
479
- const tooltipLabel = React6__namespace.useMemo(() => {
775
+ const tooltipLabel = React15__namespace.useMemo(() => {
480
776
  if (hideLabel || !payload?.length) {
481
777
  return null;
482
778
  }
@@ -654,38 +950,155 @@ function CollapsibleContent2({
654
950
  }
655
951
  );
656
952
  }
657
- function Dialog({
953
+ function Popover({
658
954
  ...props
659
955
  }) {
660
- return /* @__PURE__ */ jsxRuntime.jsx(SheetPrimitive__namespace.Root, { "data-slot": "dialog", ...props });
956
+ return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Root, { "data-slot": "popover", ...props });
661
957
  }
662
- function DialogTrigger({
958
+ function PopoverTrigger({
663
959
  ...props
664
960
  }) {
665
- return /* @__PURE__ */ jsxRuntime.jsx(SheetPrimitive__namespace.Trigger, { "data-slot": "dialog-trigger", ...props });
961
+ return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Trigger, { "data-slot": "popover-trigger", ...props });
666
962
  }
667
- function DialogPortal({
963
+ function PopoverContent({
964
+ className,
965
+ align = "center",
966
+ sideOffset = 4,
668
967
  ...props
669
968
  }) {
670
969
  const portalContainer = usePortalContainer();
671
- return /* @__PURE__ */ jsxRuntime.jsx(
672
- SheetPrimitive__namespace.Portal,
970
+ return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxRuntime.jsx(
971
+ PopoverPrimitive__namespace.Content,
673
972
  {
674
- "data-slot": "dialog-portal",
675
- container: portalContainer,
973
+ "data-slot": "popover-content",
974
+ align,
975
+ sideOffset,
976
+ className: cn(
977
+ "cn-popover-content z-50 w-72 origin-(--radix-popover-content-transform-origin) outline-hidden",
978
+ className
979
+ ),
676
980
  ...props
677
981
  }
678
- );
982
+ ) });
679
983
  }
680
- function DialogClose({
984
+ function PopoverAnchor({
681
985
  ...props
682
986
  }) {
683
- return /* @__PURE__ */ jsxRuntime.jsx(SheetPrimitive__namespace.Close, { "data-slot": "dialog-close", ...props });
987
+ return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Anchor, { "data-slot": "popover-anchor", ...props });
684
988
  }
685
- function DialogOverlay({
686
- className,
687
- ...props
688
- }) {
989
+ function PopoverHeader({ className, ...props }) {
990
+ return /* @__PURE__ */ jsxRuntime.jsx(
991
+ "div",
992
+ {
993
+ "data-slot": "popover-header",
994
+ className: cn("cn-popover-header", className),
995
+ ...props
996
+ }
997
+ );
998
+ }
999
+ function PopoverTitle({ className, ...props }) {
1000
+ return /* @__PURE__ */ jsxRuntime.jsx(
1001
+ "div",
1002
+ {
1003
+ "data-slot": "popover-title",
1004
+ className: cn("cn-popover-title", className),
1005
+ ...props
1006
+ }
1007
+ );
1008
+ }
1009
+ function PopoverDescription({
1010
+ className,
1011
+ ...props
1012
+ }) {
1013
+ return /* @__PURE__ */ jsxRuntime.jsx(
1014
+ "p",
1015
+ {
1016
+ "data-slot": "popover-description",
1017
+ className: cn("cn-popover-description", className),
1018
+ ...props
1019
+ }
1020
+ );
1021
+ }
1022
+ var defaultFormatDate = (date) => new Intl.DateTimeFormat(void 0, {
1023
+ month: "long",
1024
+ day: "numeric",
1025
+ year: "numeric"
1026
+ }).format(date);
1027
+ function DatePicker({
1028
+ value,
1029
+ onChange,
1030
+ placeholder = "Pick a date",
1031
+ formatDate = defaultFormatDate,
1032
+ disabled,
1033
+ className,
1034
+ calendarProps
1035
+ }) {
1036
+ const [open, setOpen] = React15__namespace.useState(false);
1037
+ return /* @__PURE__ */ jsxRuntime.jsxs(Popover, { open, onOpenChange: setOpen, children: [
1038
+ /* @__PURE__ */ jsxRuntime.jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
1039
+ Button,
1040
+ {
1041
+ "data-slot": "date-picker",
1042
+ variant: "outline",
1043
+ disabled,
1044
+ className: cn(
1045
+ "w-full justify-start text-left font-normal",
1046
+ !value && "text-muted-foreground",
1047
+ className
1048
+ ),
1049
+ children: [
1050
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CalendarIcon, { className: "mr-2 size-4" }),
1051
+ value ? formatDate(value) : /* @__PURE__ */ jsxRuntime.jsx("span", { children: placeholder })
1052
+ ]
1053
+ }
1054
+ ) }),
1055
+ /* @__PURE__ */ jsxRuntime.jsx(PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ jsxRuntime.jsx(
1056
+ Calendar,
1057
+ {
1058
+ mode: "single",
1059
+ selected: value,
1060
+ onSelect: (date) => {
1061
+ onChange?.(date);
1062
+ setOpen(false);
1063
+ },
1064
+ initialFocus: true,
1065
+ ...calendarProps
1066
+ }
1067
+ ) })
1068
+ ] });
1069
+ }
1070
+ function Dialog({
1071
+ ...props
1072
+ }) {
1073
+ return /* @__PURE__ */ jsxRuntime.jsx(SheetPrimitive__namespace.Root, { "data-slot": "dialog", ...props });
1074
+ }
1075
+ function DialogTrigger({
1076
+ ...props
1077
+ }) {
1078
+ return /* @__PURE__ */ jsxRuntime.jsx(SheetPrimitive__namespace.Trigger, { "data-slot": "dialog-trigger", ...props });
1079
+ }
1080
+ function DialogPortal({
1081
+ ...props
1082
+ }) {
1083
+ const portalContainer = usePortalContainer();
1084
+ return /* @__PURE__ */ jsxRuntime.jsx(
1085
+ SheetPrimitive__namespace.Portal,
1086
+ {
1087
+ "data-slot": "dialog-portal",
1088
+ container: portalContainer,
1089
+ ...props
1090
+ }
1091
+ );
1092
+ }
1093
+ function DialogClose({
1094
+ ...props
1095
+ }) {
1096
+ return /* @__PURE__ */ jsxRuntime.jsx(SheetPrimitive__namespace.Close, { "data-slot": "dialog-close", ...props });
1097
+ }
1098
+ function DialogOverlay({
1099
+ className,
1100
+ ...props
1101
+ }) {
689
1102
  return /* @__PURE__ */ jsxRuntime.jsx(
690
1103
  SheetPrimitive__namespace.Overlay,
691
1104
  {
@@ -992,6 +1405,125 @@ function DropdownMenuSubContent({
992
1405
  }
993
1406
  );
994
1407
  }
1408
+ function Label2({
1409
+ className,
1410
+ ...props
1411
+ }) {
1412
+ return /* @__PURE__ */ jsxRuntime.jsx(
1413
+ LabelPrimitive__namespace.Root,
1414
+ {
1415
+ "data-slot": "label",
1416
+ className: cn(
1417
+ "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
1418
+ className
1419
+ ),
1420
+ ...props
1421
+ }
1422
+ );
1423
+ }
1424
+ var Form = reactHookForm.FormProvider;
1425
+ var FormFieldContext = React15__namespace.createContext(
1426
+ {}
1427
+ );
1428
+ var FormField = ({
1429
+ ...props
1430
+ }) => {
1431
+ return /* @__PURE__ */ jsxRuntime.jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsxRuntime.jsx(reactHookForm.Controller, { ...props }) });
1432
+ };
1433
+ var useFormField = () => {
1434
+ const fieldContext = React15__namespace.useContext(FormFieldContext);
1435
+ const itemContext = React15__namespace.useContext(FormItemContext);
1436
+ const { getFieldState } = reactHookForm.useFormContext();
1437
+ const formState = reactHookForm.useFormState({ name: fieldContext.name });
1438
+ const fieldState = getFieldState(fieldContext.name, formState);
1439
+ if (!fieldContext.name) {
1440
+ throw new Error("useFormField should be used within <FormField>");
1441
+ }
1442
+ const { id } = itemContext;
1443
+ if (!id) {
1444
+ throw new Error("useFormField should be used within <FormItem>");
1445
+ }
1446
+ return {
1447
+ id,
1448
+ name: fieldContext.name,
1449
+ formItemId: `${id}-form-item`,
1450
+ formDescriptionId: `${id}-form-item-description`,
1451
+ formMessageId: `${id}-form-item-message`,
1452
+ ...fieldState
1453
+ };
1454
+ };
1455
+ var FormItemContext = React15__namespace.createContext(
1456
+ {}
1457
+ );
1458
+ function FormItem({ className, ...props }) {
1459
+ const id = React15__namespace.useId();
1460
+ return /* @__PURE__ */ jsxRuntime.jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsxRuntime.jsx(
1461
+ "div",
1462
+ {
1463
+ "data-slot": "form-item",
1464
+ className: cn("grid gap-2", className),
1465
+ ...props
1466
+ }
1467
+ ) });
1468
+ }
1469
+ function FormLabel({
1470
+ className,
1471
+ ...props
1472
+ }) {
1473
+ const { error, formItemId } = useFormField();
1474
+ return /* @__PURE__ */ jsxRuntime.jsx(
1475
+ Label2,
1476
+ {
1477
+ "data-slot": "form-label",
1478
+ "data-error": !!error,
1479
+ className: cn("data-[error=true]:text-destructive", className),
1480
+ htmlFor: formItemId,
1481
+ ...props
1482
+ }
1483
+ );
1484
+ }
1485
+ function FormControl({ ...props }) {
1486
+ const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
1487
+ return /* @__PURE__ */ jsxRuntime.jsx(
1488
+ radixUi.Slot.Root,
1489
+ {
1490
+ "data-slot": "form-control",
1491
+ id: formItemId,
1492
+ "aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
1493
+ "aria-invalid": !!error,
1494
+ ...props
1495
+ }
1496
+ );
1497
+ }
1498
+ function FormDescription({ className, ...props }) {
1499
+ const { formDescriptionId } = useFormField();
1500
+ return /* @__PURE__ */ jsxRuntime.jsx(
1501
+ "p",
1502
+ {
1503
+ "data-slot": "form-description",
1504
+ id: formDescriptionId,
1505
+ className: cn("text-sm text-muted-foreground", className),
1506
+ ...props
1507
+ }
1508
+ );
1509
+ }
1510
+ function FormMessage({ className, ...props }) {
1511
+ const { error, formMessageId } = useFormField();
1512
+ const body = error ? String(error?.message ?? "") : props.children;
1513
+ if (!body) {
1514
+ return null;
1515
+ }
1516
+ return /* @__PURE__ */ jsxRuntime.jsx(
1517
+ "p",
1518
+ {
1519
+ "data-slot": "form-message",
1520
+ id: formMessageId,
1521
+ className: cn("text-sm text-destructive", className),
1522
+ ...props,
1523
+ children: body
1524
+ }
1525
+ );
1526
+ }
995
1527
  function IconButton({
996
1528
  icon: Icon2,
997
1529
  className,
@@ -1079,88 +1611,144 @@ function Input({ className, type, ...props }) {
1079
1611
  }
1080
1612
  );
1081
1613
  }
1082
- function Label2({
1614
+ function Pagination({ className, ...props }) {
1615
+ return /* @__PURE__ */ jsxRuntime.jsx(
1616
+ "nav",
1617
+ {
1618
+ "aria-label": "pagination",
1619
+ "data-slot": "pagination",
1620
+ className: cn("mx-auto flex w-full justify-center", className),
1621
+ ...props
1622
+ }
1623
+ );
1624
+ }
1625
+ function PaginationContent({
1083
1626
  className,
1084
1627
  ...props
1085
1628
  }) {
1086
1629
  return /* @__PURE__ */ jsxRuntime.jsx(
1087
- LabelPrimitive__namespace.Root,
1630
+ "ul",
1088
1631
  {
1089
- "data-slot": "label",
1090
- className: cn(
1091
- "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
1092
- className
1093
- ),
1632
+ "data-slot": "pagination-content",
1633
+ className: cn("flex flex-row items-center gap-1", className),
1094
1634
  ...props
1095
1635
  }
1096
1636
  );
1097
1637
  }
1098
- function Popover({
1099
- ...props
1100
- }) {
1101
- return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Root, { "data-slot": "popover", ...props });
1638
+ function PaginationItem({ ...props }) {
1639
+ return /* @__PURE__ */ jsxRuntime.jsx("li", { "data-slot": "pagination-item", ...props });
1102
1640
  }
1103
- function PopoverTrigger({
1104
- ...props
1105
- }) {
1106
- return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Trigger, { "data-slot": "popover-trigger", ...props });
1107
- }
1108
- function PopoverContent({
1641
+ function PaginationLink({
1109
1642
  className,
1110
- align = "center",
1111
- sideOffset = 4,
1643
+ isActive,
1644
+ size = "icon",
1112
1645
  ...props
1113
1646
  }) {
1114
- const portalContainer = usePortalContainer();
1115
- return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxRuntime.jsx(
1116
- PopoverPrimitive__namespace.Content,
1647
+ return /* @__PURE__ */ jsxRuntime.jsx(
1648
+ "a",
1117
1649
  {
1118
- "data-slot": "popover-content",
1119
- align,
1120
- sideOffset,
1650
+ "aria-current": isActive ? "page" : void 0,
1651
+ "data-slot": "pagination-link",
1652
+ "data-active": isActive,
1121
1653
  className: cn(
1122
- "cn-popover-content z-50 w-72 origin-(--radix-popover-content-transform-origin) outline-hidden",
1654
+ buttonVariants({
1655
+ variant: isActive ? "outline" : "ghost",
1656
+ size
1657
+ }),
1123
1658
  className
1124
1659
  ),
1125
1660
  ...props
1126
1661
  }
1127
- ) });
1662
+ );
1128
1663
  }
1129
- function PopoverAnchor({
1664
+ function PaginationPrevious({
1665
+ className,
1130
1666
  ...props
1131
1667
  }) {
1132
- return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Anchor, { "data-slot": "popover-anchor", ...props });
1668
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1669
+ PaginationLink,
1670
+ {
1671
+ "aria-label": "Go to previous page",
1672
+ size: "default",
1673
+ className: cn("gap-1 px-2.5 sm:pl-2.5", className),
1674
+ ...props,
1675
+ children: [
1676
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeftIcon, {}),
1677
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:block", children: "Previous" })
1678
+ ]
1679
+ }
1680
+ );
1133
1681
  }
1134
- function PopoverHeader({ className, ...props }) {
1135
- return /* @__PURE__ */ jsxRuntime.jsx(
1136
- "div",
1682
+ function PaginationNext({
1683
+ className,
1684
+ ...props
1685
+ }) {
1686
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1687
+ PaginationLink,
1137
1688
  {
1138
- "data-slot": "popover-header",
1139
- className: cn("cn-popover-header", className),
1140
- ...props
1689
+ "aria-label": "Go to next page",
1690
+ size: "default",
1691
+ className: cn("gap-1 px-2.5 sm:pr-2.5", className),
1692
+ ...props,
1693
+ children: [
1694
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:block", children: "Next" }),
1695
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, {})
1696
+ ]
1141
1697
  }
1142
1698
  );
1143
1699
  }
1144
- function PopoverTitle({ className, ...props }) {
1700
+ function PaginationEllipsis({
1701
+ className,
1702
+ ...props
1703
+ }) {
1704
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1705
+ "span",
1706
+ {
1707
+ "aria-hidden": true,
1708
+ "data-slot": "pagination-ellipsis",
1709
+ className: cn("flex size-9 items-center justify-center", className),
1710
+ ...props,
1711
+ children: [
1712
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreHorizontalIcon, { className: "size-4" }),
1713
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "More pages" })
1714
+ ]
1715
+ }
1716
+ );
1717
+ }
1718
+ function RadioGroup2({
1719
+ className,
1720
+ ...props
1721
+ }) {
1145
1722
  return /* @__PURE__ */ jsxRuntime.jsx(
1146
- "div",
1723
+ radixUi.RadioGroup.Root,
1147
1724
  {
1148
- "data-slot": "popover-title",
1149
- className: cn("cn-popover-title", className),
1725
+ "data-slot": "radio-group",
1726
+ className: cn("grid gap-3", className),
1150
1727
  ...props
1151
1728
  }
1152
1729
  );
1153
1730
  }
1154
- function PopoverDescription({
1731
+ function RadioGroupItem({
1155
1732
  className,
1156
1733
  ...props
1157
1734
  }) {
1158
1735
  return /* @__PURE__ */ jsxRuntime.jsx(
1159
- "p",
1736
+ radixUi.RadioGroup.Item,
1160
1737
  {
1161
- "data-slot": "popover-description",
1162
- className: cn("cn-popover-description", className),
1163
- ...props
1738
+ "data-slot": "radio-group-item",
1739
+ className: cn(
1740
+ "aspect-square size-4 shrink-0 rounded-full border border-input text-primary shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:bg-input/30 dark:aria-invalid:ring-destructive/40",
1741
+ className
1742
+ ),
1743
+ ...props,
1744
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1745
+ radixUi.RadioGroup.Indicator,
1746
+ {
1747
+ "data-slot": "radio-group-indicator",
1748
+ className: "relative flex items-center justify-center",
1749
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 fill-primary" })
1750
+ }
1751
+ )
1164
1752
  }
1165
1753
  );
1166
1754
  }
@@ -1320,7 +1908,7 @@ function SelectScrollDownButton({
1320
1908
  }
1321
1909
  );
1322
1910
  }
1323
- var Separator3 = React6__namespace.forwardRef(
1911
+ var Separator3 = React15__namespace.forwardRef(
1324
1912
  ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1325
1913
  SeparatorPrimitive__namespace.Root,
1326
1914
  {
@@ -1337,34 +1925,6 @@ var Separator3 = React6__namespace.forwardRef(
1337
1925
  )
1338
1926
  );
1339
1927
  Separator3.displayName = SeparatorPrimitive__namespace.Root.displayName;
1340
- function Skeleton({
1341
- className,
1342
- ...props
1343
- }) {
1344
- return /* @__PURE__ */ jsxRuntime.jsx(
1345
- "div",
1346
- {
1347
- className: cn("animate-pulse rounded-md bg-muted", className),
1348
- ...props
1349
- }
1350
- );
1351
- }
1352
- var Slider = React6__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
1353
- SliderPrimitive__namespace.Root,
1354
- {
1355
- ref,
1356
- className: cn(
1357
- "relative flex w-full touch-none items-center select-none",
1358
- className
1359
- ),
1360
- ...props,
1361
- children: [
1362
- /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-gray-200", children: /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Range, { className: "absolute h-full bg-primary" }) }),
1363
- /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Thumb, { className: "block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50" })
1364
- ]
1365
- }
1366
- ));
1367
- Slider.displayName = SliderPrimitive__namespace.Root.displayName;
1368
1928
  var Sheet = SheetPrimitive__namespace.Root;
1369
1929
  var SheetTrigger = SheetPrimitive__namespace.Trigger;
1370
1930
  var SheetClose = SheetPrimitive__namespace.Close;
@@ -1372,7 +1932,7 @@ function SheetPortal(props) {
1372
1932
  const portalContainer = usePortalContainer();
1373
1933
  return /* @__PURE__ */ jsxRuntime.jsx(SheetPrimitive__namespace.Portal, { container: portalContainer, ...props });
1374
1934
  }
1375
- var SheetOverlay = React6__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1935
+ var SheetOverlay = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1376
1936
  SheetPrimitive__namespace.Overlay,
1377
1937
  {
1378
1938
  className: cn(
@@ -1400,7 +1960,7 @@ var sheetVariants = classVarianceAuthority.cva(
1400
1960
  }
1401
1961
  }
1402
1962
  );
1403
- var SheetContent = React6__namespace.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(SheetPortal, { children: [
1963
+ var SheetContent = React15__namespace.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(SheetPortal, { children: [
1404
1964
  /* @__PURE__ */ jsxRuntime.jsx(SheetOverlay, {}),
1405
1965
  /* @__PURE__ */ jsxRuntime.jsxs(
1406
1966
  SheetPrimitive__namespace.Content,
@@ -1443,7 +2003,7 @@ function SheetFooter({ className, ...props }) {
1443
2003
  }
1444
2004
  );
1445
2005
  }
1446
- var SheetTitle = React6__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2006
+ var SheetTitle = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1447
2007
  SheetPrimitive__namespace.Title,
1448
2008
  {
1449
2009
  ref,
@@ -1452,7 +2012,7 @@ var SheetTitle = React6__namespace.forwardRef(({ className, ...props }, ref) =>
1452
2012
  }
1453
2013
  ));
1454
2014
  SheetTitle.displayName = SheetPrimitive__namespace.Title.displayName;
1455
- var SheetDescription = React6__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2015
+ var SheetDescription = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1456
2016
  SheetPrimitive__namespace.Description,
1457
2017
  {
1458
2018
  ref,
@@ -1461,6 +2021,69 @@ var SheetDescription = React6__namespace.forwardRef(({ className, ...props }, re
1461
2021
  }
1462
2022
  ));
1463
2023
  SheetDescription.displayName = SheetPrimitive__namespace.Description.displayName;
2024
+ function Skeleton({
2025
+ className,
2026
+ ...props
2027
+ }) {
2028
+ return /* @__PURE__ */ jsxRuntime.jsx(
2029
+ "div",
2030
+ {
2031
+ className: cn("animate-pulse rounded-md bg-muted", className),
2032
+ ...props
2033
+ }
2034
+ );
2035
+ }
2036
+ var Slider = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
2037
+ SliderPrimitive__namespace.Root,
2038
+ {
2039
+ ref,
2040
+ className: cn(
2041
+ "relative flex w-full touch-none items-center select-none",
2042
+ className
2043
+ ),
2044
+ ...props,
2045
+ children: [
2046
+ /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-gray-200", children: /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Range, { className: "absolute h-full bg-primary" }) }),
2047
+ /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Thumb, { className: "block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50" })
2048
+ ]
2049
+ }
2050
+ ));
2051
+ Slider.displayName = SliderPrimitive__namespace.Root.displayName;
2052
+ function Toaster({ theme = "system", ...props }) {
2053
+ return /* @__PURE__ */ jsxRuntime.jsx(
2054
+ sonner.Toaster,
2055
+ {
2056
+ theme,
2057
+ className: "toaster group",
2058
+ icons: {
2059
+ success: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleCheckIcon, { className: "size-4" }),
2060
+ info: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.InfoIcon, { className: "size-4" }),
2061
+ warning: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.TriangleAlertIcon, { className: "size-4" }),
2062
+ error: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.OctagonXIcon, { className: "size-4" }),
2063
+ loading: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2Icon, { className: "size-4 animate-spin" })
2064
+ },
2065
+ style: {
2066
+ "--normal-bg": "var(--popover)",
2067
+ "--normal-text": "var(--popover-foreground)",
2068
+ "--normal-border": "var(--border)",
2069
+ "--success-bg": "var(--popover)",
2070
+ "--success-text": "var(--popover-foreground)",
2071
+ "--success-border": "var(--border)",
2072
+ "--error-bg": "var(--popover)",
2073
+ "--error-text": "var(--popover-foreground)",
2074
+ "--error-border": "var(--border)",
2075
+ "--warning-bg": "var(--popover)",
2076
+ "--warning-text": "var(--popover-foreground)",
2077
+ "--warning-border": "var(--border)",
2078
+ "--info-bg": "var(--popover)",
2079
+ "--info-text": "var(--popover-foreground)",
2080
+ "--info-border": "var(--border)",
2081
+ "--border-radius": "var(--radius)"
2082
+ },
2083
+ ...props
2084
+ }
2085
+ );
2086
+ }
1464
2087
  function SpinnerWithText({
1465
2088
  text = "Loading...",
1466
2089
  variant = "inline",
@@ -1513,7 +2136,7 @@ function SpinnerWithText({
1513
2136
  }
1514
2137
  );
1515
2138
  }
1516
- var Switch = React6__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2139
+ var Switch = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1517
2140
  SwitchPrimitive__namespace.Root,
1518
2141
  {
1519
2142
  className: cn(
@@ -1533,6 +2156,108 @@ var Switch = React6__namespace.forwardRef(({ className, ...props }, ref) => /* @
1533
2156
  }
1534
2157
  ));
1535
2158
  Switch.displayName = SwitchPrimitive__namespace.Root.displayName;
2159
+ function Table({ className, ...props }) {
2160
+ return /* @__PURE__ */ jsxRuntime.jsx(
2161
+ "div",
2162
+ {
2163
+ "data-slot": "table-container",
2164
+ className: "relative w-full overflow-x-auto",
2165
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2166
+ "table",
2167
+ {
2168
+ "data-slot": "table",
2169
+ className: cn("w-full caption-bottom text-sm", className),
2170
+ ...props
2171
+ }
2172
+ )
2173
+ }
2174
+ );
2175
+ }
2176
+ function TableHeader({ className, ...props }) {
2177
+ return /* @__PURE__ */ jsxRuntime.jsx(
2178
+ "thead",
2179
+ {
2180
+ "data-slot": "table-header",
2181
+ className: cn("[&_tr]:border-b", className),
2182
+ ...props
2183
+ }
2184
+ );
2185
+ }
2186
+ function TableBody({ className, ...props }) {
2187
+ return /* @__PURE__ */ jsxRuntime.jsx(
2188
+ "tbody",
2189
+ {
2190
+ "data-slot": "table-body",
2191
+ className: cn("[&_tr:last-child]:border-0", className),
2192
+ ...props
2193
+ }
2194
+ );
2195
+ }
2196
+ function TableFooter({ className, ...props }) {
2197
+ return /* @__PURE__ */ jsxRuntime.jsx(
2198
+ "tfoot",
2199
+ {
2200
+ "data-slot": "table-footer",
2201
+ className: cn(
2202
+ "border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",
2203
+ className
2204
+ ),
2205
+ ...props
2206
+ }
2207
+ );
2208
+ }
2209
+ function TableRow({ className, ...props }) {
2210
+ return /* @__PURE__ */ jsxRuntime.jsx(
2211
+ "tr",
2212
+ {
2213
+ "data-slot": "table-row",
2214
+ className: cn(
2215
+ "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
2216
+ className
2217
+ ),
2218
+ ...props
2219
+ }
2220
+ );
2221
+ }
2222
+ function TableHead({ className, ...props }) {
2223
+ return /* @__PURE__ */ jsxRuntime.jsx(
2224
+ "th",
2225
+ {
2226
+ "data-slot": "table-head",
2227
+ className: cn(
2228
+ "h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
2229
+ className
2230
+ ),
2231
+ ...props
2232
+ }
2233
+ );
2234
+ }
2235
+ function TableCell({ className, ...props }) {
2236
+ return /* @__PURE__ */ jsxRuntime.jsx(
2237
+ "td",
2238
+ {
2239
+ "data-slot": "table-cell",
2240
+ className: cn(
2241
+ "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
2242
+ className
2243
+ ),
2244
+ ...props
2245
+ }
2246
+ );
2247
+ }
2248
+ function TableCaption({
2249
+ className,
2250
+ ...props
2251
+ }) {
2252
+ return /* @__PURE__ */ jsxRuntime.jsx(
2253
+ "caption",
2254
+ {
2255
+ "data-slot": "table-caption",
2256
+ className: cn("mt-4 text-sm text-muted-foreground", className),
2257
+ ...props
2258
+ }
2259
+ );
2260
+ }
1536
2261
  function Tabs({
1537
2262
  className,
1538
2263
  ...props
@@ -1604,7 +2329,7 @@ function Textarea({ className, ...props }) {
1604
2329
  }
1605
2330
  );
1606
2331
  }
1607
- var ToggleGroupContext = React6__namespace.createContext({
2332
+ var ToggleGroupContext = React15__namespace.createContext({
1608
2333
  size: "default",
1609
2334
  variant: "default",
1610
2335
  spacing: 0,
@@ -1650,7 +2375,7 @@ function ToggleGroupItem({
1650
2375
  size = "default",
1651
2376
  ...props
1652
2377
  }) {
1653
- const context = React6__namespace.useContext(ToggleGroupContext);
2378
+ const context = React15__namespace.useContext(ToggleGroupContext);
1654
2379
  return /* @__PURE__ */ jsxRuntime.jsx(
1655
2380
  ToggleGroupPrimitive__namespace.Item,
1656
2381
  {
@@ -1701,7 +2426,26 @@ exports.AccordionItem = AccordionItem;
1701
2426
  exports.AccordionTrigger = AccordionTrigger;
1702
2427
  exports.Alert = Alert;
1703
2428
  exports.AlertDescription = AlertDescription;
2429
+ exports.AlertDialog = AlertDialog;
2430
+ exports.AlertDialogAction = AlertDialogAction;
2431
+ exports.AlertDialogCancel = AlertDialogCancel;
2432
+ exports.AlertDialogContent = AlertDialogContent;
2433
+ exports.AlertDialogDescription = AlertDialogDescription;
2434
+ exports.AlertDialogFooter = AlertDialogFooter;
2435
+ exports.AlertDialogHeader = AlertDialogHeader;
2436
+ exports.AlertDialogMedia = AlertDialogMedia;
2437
+ exports.AlertDialogOverlay = AlertDialogOverlay;
2438
+ exports.AlertDialogPortal = AlertDialogPortal;
2439
+ exports.AlertDialogTitle = AlertDialogTitle;
2440
+ exports.AlertDialogTrigger = AlertDialogTrigger;
1704
2441
  exports.AlertTitle = AlertTitle;
2442
+ exports.Avatar = Avatar;
2443
+ exports.AvatarBadge = AvatarBadge;
2444
+ exports.AvatarFallback = AvatarFallback;
2445
+ exports.AvatarGroup = AvatarGroup;
2446
+ exports.AvatarGroupCount = AvatarGroupCount;
2447
+ exports.AvatarImage = AvatarImage;
2448
+ exports.Badge = Badge;
1705
2449
  exports.Button = Button;
1706
2450
  exports.Calendar = Calendar;
1707
2451
  exports.Card = Card;
@@ -1720,6 +2464,7 @@ exports.ChartTooltipContent = ChartTooltipContent;
1720
2464
  exports.Collapsible = Collapsible;
1721
2465
  exports.CollapsibleContent = CollapsibleContent2;
1722
2466
  exports.CollapsibleTrigger = CollapsibleTrigger2;
2467
+ exports.DatePicker = DatePicker;
1723
2468
  exports.Dialog = Dialog;
1724
2469
  exports.DialogClose = DialogClose;
1725
2470
  exports.DialogContent = DialogContent;
@@ -1745,10 +2490,24 @@ exports.DropdownMenuSub = DropdownMenuSub;
1745
2490
  exports.DropdownMenuSubContent = DropdownMenuSubContent;
1746
2491
  exports.DropdownMenuSubTrigger = DropdownMenuSubTrigger;
1747
2492
  exports.DropdownMenuTrigger = DropdownMenuTrigger;
2493
+ exports.Form = Form;
2494
+ exports.FormControl = FormControl;
2495
+ exports.FormDescription = FormDescription;
2496
+ exports.FormField = FormField;
2497
+ exports.FormItem = FormItem;
2498
+ exports.FormLabel = FormLabel;
2499
+ exports.FormMessage = FormMessage;
1748
2500
  exports.IconButton = IconButton;
1749
2501
  exports.IconToggle = IconToggle;
1750
2502
  exports.Input = Input;
1751
2503
  exports.Label = Label2;
2504
+ exports.Pagination = Pagination;
2505
+ exports.PaginationContent = PaginationContent;
2506
+ exports.PaginationEllipsis = PaginationEllipsis;
2507
+ exports.PaginationItem = PaginationItem;
2508
+ exports.PaginationLink = PaginationLink;
2509
+ exports.PaginationNext = PaginationNext;
2510
+ exports.PaginationPrevious = PaginationPrevious;
1752
2511
  exports.Popover = Popover;
1753
2512
  exports.PopoverAnchor = PopoverAnchor;
1754
2513
  exports.PopoverContent = PopoverContent;
@@ -1757,6 +2516,8 @@ exports.PopoverHeader = PopoverHeader;
1757
2516
  exports.PopoverTitle = PopoverTitle;
1758
2517
  exports.PopoverTrigger = PopoverTrigger;
1759
2518
  exports.PortalContainerProvider = PortalContainerProvider;
2519
+ exports.RadioGroup = RadioGroup2;
2520
+ exports.RadioGroupItem = RadioGroupItem;
1760
2521
  exports.Select = Select;
1761
2522
  exports.SelectContent = SelectContent;
1762
2523
  exports.SelectGroup = SelectGroup;
@@ -1782,11 +2543,20 @@ exports.Skeleton = Skeleton;
1782
2543
  exports.Slider = Slider;
1783
2544
  exports.SpinnerWithText = SpinnerWithText;
1784
2545
  exports.Switch = Switch;
2546
+ exports.Table = Table;
2547
+ exports.TableBody = TableBody;
2548
+ exports.TableCaption = TableCaption;
2549
+ exports.TableCell = TableCell;
2550
+ exports.TableFooter = TableFooter;
2551
+ exports.TableHead = TableHead;
2552
+ exports.TableHeader = TableHeader;
2553
+ exports.TableRow = TableRow;
1785
2554
  exports.Tabs = Tabs;
1786
2555
  exports.TabsContent = TabsContent;
1787
2556
  exports.TabsList = TabsList;
1788
2557
  exports.TabsTrigger = TabsTrigger;
1789
2558
  exports.Textarea = Textarea;
2559
+ exports.Toaster = Toaster;
1790
2560
  exports.Toggle = Toggle;
1791
2561
  exports.ToggleGroup = ToggleGroup;
1792
2562
  exports.ToggleGroupItem = ToggleGroupItem;
@@ -1794,9 +2564,11 @@ exports.Tooltip = Tooltip2;
1794
2564
  exports.TooltipContent = TooltipContent;
1795
2565
  exports.TooltipProvider = TooltipProvider;
1796
2566
  exports.TooltipTrigger = TooltipTrigger;
2567
+ exports.badgeVariants = badgeVariants;
1797
2568
  exports.buttonVariants = buttonVariants;
1798
2569
  exports.cn = cn;
1799
2570
  exports.toggleVariants = toggleVariants;
2571
+ exports.useFormField = useFormField;
1800
2572
  exports.useZodForm = useZodForm;
1801
2573
  //# sourceMappingURL=index.cjs.map
1802
2574
  //# sourceMappingURL=index.cjs.map