@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.js CHANGED
@@ -1,25 +1,27 @@
1
1
  import { clsx } from 'clsx';
2
2
  import { twMerge } from 'tailwind-merge';
3
3
  import { zodResolver } from '@hookform/resolvers/zod';
4
- import { useForm } from 'react-hook-form';
5
- import * as React6 from 'react';
4
+ import { FormProvider, useForm, Controller, useFormContext, useFormState } from 'react-hook-form';
5
+ import * as React15 from 'react';
6
6
  import { createContext, useContext } from 'react';
7
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
8
  import * as AccordionPrimitive from '@radix-ui/react-accordion';
9
- import { X, ChevronDown, ChevronRight, ChevronLeft, Check, Circle, ChevronUp } from 'lucide-react';
9
+ import { X, ChevronDown, ChevronRight, ChevronLeft, CalendarIcon, Check, Circle, ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon, CircleIcon, ChevronUp, Loader2Icon, OctagonXIcon, TriangleAlertIcon, InfoIcon, CircleCheckIcon } from 'lucide-react';
10
10
  import { cva } from 'class-variance-authority';
11
+ import { AlertDialog as AlertDialog$1, Avatar as Avatar$1, Slot as Slot$1, RadioGroup } from 'radix-ui';
11
12
  import { Slot } from '@radix-ui/react-slot';
12
13
  import { DayPicker } from 'react-day-picker';
13
14
  import * as RechartsPrimitive from 'recharts';
14
15
  import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
16
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
15
17
  import * as SheetPrimitive from '@radix-ui/react-dialog';
16
18
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
17
- import * as TogglePrimitive from '@radix-ui/react-toggle';
18
19
  import * as LabelPrimitive from '@radix-ui/react-label';
19
- import * as PopoverPrimitive from '@radix-ui/react-popover';
20
+ import * as TogglePrimitive from '@radix-ui/react-toggle';
20
21
  import * as SelectPrimitive from '@radix-ui/react-select';
21
22
  import * as SeparatorPrimitive from '@radix-ui/react-separator';
22
23
  import * as SliderPrimitive from '@radix-ui/react-slider';
24
+ import { Toaster as Toaster$1 } from 'sonner';
23
25
  import * as SwitchPrimitive from '@radix-ui/react-switch';
24
26
  import * as TabsPrimitive from '@radix-ui/react-tabs';
25
27
  import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
@@ -222,6 +224,300 @@ function Button({
222
224
  }
223
225
  );
224
226
  }
227
+ function AlertDialog({
228
+ ...props
229
+ }) {
230
+ return /* @__PURE__ */ jsx(AlertDialog$1.Root, { "data-slot": "alert-dialog", ...props });
231
+ }
232
+ function AlertDialogTrigger({
233
+ ...props
234
+ }) {
235
+ return /* @__PURE__ */ jsx(AlertDialog$1.Trigger, { "data-slot": "alert-dialog-trigger", ...props });
236
+ }
237
+ function AlertDialogPortal({
238
+ ...props
239
+ }) {
240
+ const portalContainer = usePortalContainer();
241
+ return /* @__PURE__ */ jsx(
242
+ AlertDialog$1.Portal,
243
+ {
244
+ "data-slot": "alert-dialog-portal",
245
+ container: portalContainer,
246
+ ...props
247
+ }
248
+ );
249
+ }
250
+ function AlertDialogOverlay({
251
+ className,
252
+ ...props
253
+ }) {
254
+ return /* @__PURE__ */ jsx(
255
+ AlertDialog$1.Overlay,
256
+ {
257
+ "data-slot": "alert-dialog-overlay",
258
+ className: cn(
259
+ "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",
260
+ className
261
+ ),
262
+ ...props
263
+ }
264
+ );
265
+ }
266
+ function AlertDialogContent({
267
+ className,
268
+ size = "default",
269
+ ...props
270
+ }) {
271
+ return /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
272
+ /* @__PURE__ */ jsx(AlertDialogOverlay, {}),
273
+ /* @__PURE__ */ jsx(
274
+ AlertDialog$1.Content,
275
+ {
276
+ "data-slot": "alert-dialog-content",
277
+ "data-size": size,
278
+ className: cn(
279
+ "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",
280
+ className
281
+ ),
282
+ ...props
283
+ }
284
+ )
285
+ ] });
286
+ }
287
+ function AlertDialogHeader({
288
+ className,
289
+ ...props
290
+ }) {
291
+ return /* @__PURE__ */ jsx(
292
+ "div",
293
+ {
294
+ "data-slot": "alert-dialog-header",
295
+ className: cn(
296
+ "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]",
297
+ className
298
+ ),
299
+ ...props
300
+ }
301
+ );
302
+ }
303
+ function AlertDialogFooter({
304
+ className,
305
+ ...props
306
+ }) {
307
+ return /* @__PURE__ */ jsx(
308
+ "div",
309
+ {
310
+ "data-slot": "alert-dialog-footer",
311
+ className: cn(
312
+ "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",
313
+ className
314
+ ),
315
+ ...props
316
+ }
317
+ );
318
+ }
319
+ function AlertDialogTitle({
320
+ className,
321
+ ...props
322
+ }) {
323
+ return /* @__PURE__ */ jsx(
324
+ AlertDialog$1.Title,
325
+ {
326
+ "data-slot": "alert-dialog-title",
327
+ className: cn(
328
+ "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",
329
+ className
330
+ ),
331
+ ...props
332
+ }
333
+ );
334
+ }
335
+ function AlertDialogDescription({
336
+ className,
337
+ ...props
338
+ }) {
339
+ return /* @__PURE__ */ jsx(
340
+ AlertDialog$1.Description,
341
+ {
342
+ "data-slot": "alert-dialog-description",
343
+ className: cn("text-sm text-muted-foreground", className),
344
+ ...props
345
+ }
346
+ );
347
+ }
348
+ function AlertDialogMedia({
349
+ className,
350
+ ...props
351
+ }) {
352
+ return /* @__PURE__ */ jsx(
353
+ "div",
354
+ {
355
+ "data-slot": "alert-dialog-media",
356
+ className: cn(
357
+ "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",
358
+ className
359
+ ),
360
+ ...props
361
+ }
362
+ );
363
+ }
364
+ function AlertDialogAction({
365
+ className,
366
+ variant = "default",
367
+ size = "default",
368
+ ...props
369
+ }) {
370
+ return /* @__PURE__ */ jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx(
371
+ AlertDialog$1.Action,
372
+ {
373
+ "data-slot": "alert-dialog-action",
374
+ className: cn(className),
375
+ ...props
376
+ }
377
+ ) });
378
+ }
379
+ function AlertDialogCancel({
380
+ className,
381
+ variant = "outline",
382
+ size = "default",
383
+ ...props
384
+ }) {
385
+ return /* @__PURE__ */ jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx(
386
+ AlertDialog$1.Cancel,
387
+ {
388
+ "data-slot": "alert-dialog-cancel",
389
+ className: cn(className),
390
+ ...props
391
+ }
392
+ ) });
393
+ }
394
+ function Avatar({
395
+ className,
396
+ size = "default",
397
+ ...props
398
+ }) {
399
+ return /* @__PURE__ */ jsx(
400
+ Avatar$1.Root,
401
+ {
402
+ "data-slot": "avatar",
403
+ "data-size": size,
404
+ className: cn(
405
+ "group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6",
406
+ className
407
+ ),
408
+ ...props
409
+ }
410
+ );
411
+ }
412
+ function AvatarImage({
413
+ className,
414
+ ...props
415
+ }) {
416
+ return /* @__PURE__ */ jsx(
417
+ Avatar$1.Image,
418
+ {
419
+ "data-slot": "avatar-image",
420
+ className: cn("aspect-square size-full", className),
421
+ ...props
422
+ }
423
+ );
424
+ }
425
+ function AvatarFallback({
426
+ className,
427
+ ...props
428
+ }) {
429
+ return /* @__PURE__ */ jsx(
430
+ Avatar$1.Fallback,
431
+ {
432
+ "data-slot": "avatar-fallback",
433
+ className: cn(
434
+ "flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs",
435
+ className
436
+ ),
437
+ ...props
438
+ }
439
+ );
440
+ }
441
+ function AvatarBadge({ className, ...props }) {
442
+ return /* @__PURE__ */ jsx(
443
+ "span",
444
+ {
445
+ "data-slot": "avatar-badge",
446
+ className: cn(
447
+ "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",
448
+ "group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden",
449
+ "group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2",
450
+ "group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2",
451
+ className
452
+ ),
453
+ ...props
454
+ }
455
+ );
456
+ }
457
+ function AvatarGroup({ className, ...props }) {
458
+ return /* @__PURE__ */ jsx(
459
+ "div",
460
+ {
461
+ "data-slot": "avatar-group",
462
+ className: cn(
463
+ "group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background",
464
+ className
465
+ ),
466
+ ...props
467
+ }
468
+ );
469
+ }
470
+ function AvatarGroupCount({
471
+ className,
472
+ ...props
473
+ }) {
474
+ return /* @__PURE__ */ jsx(
475
+ "div",
476
+ {
477
+ "data-slot": "avatar-group-count",
478
+ className: cn(
479
+ "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",
480
+ className
481
+ ),
482
+ ...props
483
+ }
484
+ );
485
+ }
486
+ var badgeVariants = cva(
487
+ "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",
488
+ {
489
+ variants: {
490
+ variant: {
491
+ default: "bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
492
+ secondary: "bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
493
+ 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",
494
+ outline: "border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
495
+ ghost: "[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
496
+ link: "text-primary underline-offset-4 [a&]:hover:underline"
497
+ }
498
+ },
499
+ defaultVariants: {
500
+ variant: "default"
501
+ }
502
+ }
503
+ );
504
+ function Badge({
505
+ className,
506
+ variant = "default",
507
+ asChild = false,
508
+ ...props
509
+ }) {
510
+ const Comp = asChild ? Slot$1.Root : "span";
511
+ return /* @__PURE__ */ jsx(
512
+ Comp,
513
+ {
514
+ "data-slot": "badge",
515
+ "data-variant": variant,
516
+ className: cn(badgeVariants({ variant }), className),
517
+ ...props
518
+ }
519
+ );
520
+ }
225
521
  function Calendar({
226
522
  className,
227
523
  classNames,
@@ -364,9 +660,9 @@ function CardFooter({ className, ...props }) {
364
660
  );
365
661
  }
366
662
  var THEMES = { light: "", dark: ".dark" };
367
- var ChartContext = React6.createContext(null);
663
+ var ChartContext = React15.createContext(null);
368
664
  function useChart() {
369
- const context = React6.useContext(ChartContext);
665
+ const context = React15.useContext(ChartContext);
370
666
  if (!context) {
371
667
  throw new Error("useChart must be used within a <ChartContainer />");
372
668
  }
@@ -379,7 +675,7 @@ function ChartContainer({
379
675
  config,
380
676
  ...props
381
677
  }) {
382
- const uniqueId = React6.useId();
678
+ const uniqueId = React15.useId();
383
679
  const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
384
680
  return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
385
681
  "div",
@@ -440,7 +736,7 @@ function ChartTooltipContent({
440
736
  labelKey
441
737
  }) {
442
738
  const { config } = useChart();
443
- const tooltipLabel = React6.useMemo(() => {
739
+ const tooltipLabel = React15.useMemo(() => {
444
740
  if (hideLabel || !payload?.length) {
445
741
  return null;
446
742
  }
@@ -618,43 +914,160 @@ function CollapsibleContent2({
618
914
  }
619
915
  );
620
916
  }
621
- function Dialog({
917
+ function Popover({
622
918
  ...props
623
919
  }) {
624
- return /* @__PURE__ */ jsx(SheetPrimitive.Root, { "data-slot": "dialog", ...props });
920
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
625
921
  }
626
- function DialogTrigger({
922
+ function PopoverTrigger({
627
923
  ...props
628
924
  }) {
629
- return /* @__PURE__ */ jsx(SheetPrimitive.Trigger, { "data-slot": "dialog-trigger", ...props });
925
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
630
926
  }
631
- function DialogPortal({
927
+ function PopoverContent({
928
+ className,
929
+ align = "center",
930
+ sideOffset = 4,
632
931
  ...props
633
932
  }) {
634
933
  const portalContainer = usePortalContainer();
635
- return /* @__PURE__ */ jsx(
636
- SheetPrimitive.Portal,
934
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx(
935
+ PopoverPrimitive.Content,
637
936
  {
638
- "data-slot": "dialog-portal",
639
- container: portalContainer,
937
+ "data-slot": "popover-content",
938
+ align,
939
+ sideOffset,
940
+ className: cn(
941
+ "cn-popover-content z-50 w-72 origin-(--radix-popover-content-transform-origin) outline-hidden",
942
+ className
943
+ ),
640
944
  ...props
641
945
  }
642
- );
946
+ ) });
643
947
  }
644
- function DialogClose({
948
+ function PopoverAnchor({
645
949
  ...props
646
950
  }) {
647
- return /* @__PURE__ */ jsx(SheetPrimitive.Close, { "data-slot": "dialog-close", ...props });
951
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Anchor, { "data-slot": "popover-anchor", ...props });
648
952
  }
649
- function DialogOverlay({
650
- className,
651
- ...props
652
- }) {
953
+ function PopoverHeader({ className, ...props }) {
653
954
  return /* @__PURE__ */ jsx(
654
- SheetPrimitive.Overlay,
955
+ "div",
655
956
  {
656
- "data-slot": "dialog-overlay",
657
- className: cn(
957
+ "data-slot": "popover-header",
958
+ className: cn("cn-popover-header", className),
959
+ ...props
960
+ }
961
+ );
962
+ }
963
+ function PopoverTitle({ className, ...props }) {
964
+ return /* @__PURE__ */ jsx(
965
+ "div",
966
+ {
967
+ "data-slot": "popover-title",
968
+ className: cn("cn-popover-title", className),
969
+ ...props
970
+ }
971
+ );
972
+ }
973
+ function PopoverDescription({
974
+ className,
975
+ ...props
976
+ }) {
977
+ return /* @__PURE__ */ jsx(
978
+ "p",
979
+ {
980
+ "data-slot": "popover-description",
981
+ className: cn("cn-popover-description", className),
982
+ ...props
983
+ }
984
+ );
985
+ }
986
+ var defaultFormatDate = (date) => new Intl.DateTimeFormat(void 0, {
987
+ month: "long",
988
+ day: "numeric",
989
+ year: "numeric"
990
+ }).format(date);
991
+ function DatePicker({
992
+ value,
993
+ onChange,
994
+ placeholder = "Pick a date",
995
+ formatDate = defaultFormatDate,
996
+ disabled,
997
+ className,
998
+ calendarProps
999
+ }) {
1000
+ const [open, setOpen] = React15.useState(false);
1001
+ return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
1002
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
1003
+ Button,
1004
+ {
1005
+ "data-slot": "date-picker",
1006
+ variant: "outline",
1007
+ disabled,
1008
+ className: cn(
1009
+ "w-full justify-start text-left font-normal",
1010
+ !value && "text-muted-foreground",
1011
+ className
1012
+ ),
1013
+ children: [
1014
+ /* @__PURE__ */ jsx(CalendarIcon, { className: "mr-2 size-4" }),
1015
+ value ? formatDate(value) : /* @__PURE__ */ jsx("span", { children: placeholder })
1016
+ ]
1017
+ }
1018
+ ) }),
1019
+ /* @__PURE__ */ jsx(PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ jsx(
1020
+ Calendar,
1021
+ {
1022
+ mode: "single",
1023
+ selected: value,
1024
+ onSelect: (date) => {
1025
+ onChange?.(date);
1026
+ setOpen(false);
1027
+ },
1028
+ initialFocus: true,
1029
+ ...calendarProps
1030
+ }
1031
+ ) })
1032
+ ] });
1033
+ }
1034
+ function Dialog({
1035
+ ...props
1036
+ }) {
1037
+ return /* @__PURE__ */ jsx(SheetPrimitive.Root, { "data-slot": "dialog", ...props });
1038
+ }
1039
+ function DialogTrigger({
1040
+ ...props
1041
+ }) {
1042
+ return /* @__PURE__ */ jsx(SheetPrimitive.Trigger, { "data-slot": "dialog-trigger", ...props });
1043
+ }
1044
+ function DialogPortal({
1045
+ ...props
1046
+ }) {
1047
+ const portalContainer = usePortalContainer();
1048
+ return /* @__PURE__ */ jsx(
1049
+ SheetPrimitive.Portal,
1050
+ {
1051
+ "data-slot": "dialog-portal",
1052
+ container: portalContainer,
1053
+ ...props
1054
+ }
1055
+ );
1056
+ }
1057
+ function DialogClose({
1058
+ ...props
1059
+ }) {
1060
+ return /* @__PURE__ */ jsx(SheetPrimitive.Close, { "data-slot": "dialog-close", ...props });
1061
+ }
1062
+ function DialogOverlay({
1063
+ className,
1064
+ ...props
1065
+ }) {
1066
+ return /* @__PURE__ */ jsx(
1067
+ SheetPrimitive.Overlay,
1068
+ {
1069
+ "data-slot": "dialog-overlay",
1070
+ className: cn(
658
1071
  "fixed inset-0 z-50 bg-gray-900/70 backdrop-blur-sm data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
659
1072
  className
660
1073
  ),
@@ -956,6 +1369,125 @@ function DropdownMenuSubContent({
956
1369
  }
957
1370
  );
958
1371
  }
1372
+ function Label2({
1373
+ className,
1374
+ ...props
1375
+ }) {
1376
+ return /* @__PURE__ */ jsx(
1377
+ LabelPrimitive.Root,
1378
+ {
1379
+ "data-slot": "label",
1380
+ className: cn(
1381
+ "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",
1382
+ className
1383
+ ),
1384
+ ...props
1385
+ }
1386
+ );
1387
+ }
1388
+ var Form = FormProvider;
1389
+ var FormFieldContext = React15.createContext(
1390
+ {}
1391
+ );
1392
+ var FormField = ({
1393
+ ...props
1394
+ }) => {
1395
+ return /* @__PURE__ */ jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx(Controller, { ...props }) });
1396
+ };
1397
+ var useFormField = () => {
1398
+ const fieldContext = React15.useContext(FormFieldContext);
1399
+ const itemContext = React15.useContext(FormItemContext);
1400
+ const { getFieldState } = useFormContext();
1401
+ const formState = useFormState({ name: fieldContext.name });
1402
+ const fieldState = getFieldState(fieldContext.name, formState);
1403
+ if (!fieldContext.name) {
1404
+ throw new Error("useFormField should be used within <FormField>");
1405
+ }
1406
+ const { id } = itemContext;
1407
+ if (!id) {
1408
+ throw new Error("useFormField should be used within <FormItem>");
1409
+ }
1410
+ return {
1411
+ id,
1412
+ name: fieldContext.name,
1413
+ formItemId: `${id}-form-item`,
1414
+ formDescriptionId: `${id}-form-item-description`,
1415
+ formMessageId: `${id}-form-item-message`,
1416
+ ...fieldState
1417
+ };
1418
+ };
1419
+ var FormItemContext = React15.createContext(
1420
+ {}
1421
+ );
1422
+ function FormItem({ className, ...props }) {
1423
+ const id = React15.useId();
1424
+ return /* @__PURE__ */ jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx(
1425
+ "div",
1426
+ {
1427
+ "data-slot": "form-item",
1428
+ className: cn("grid gap-2", className),
1429
+ ...props
1430
+ }
1431
+ ) });
1432
+ }
1433
+ function FormLabel({
1434
+ className,
1435
+ ...props
1436
+ }) {
1437
+ const { error, formItemId } = useFormField();
1438
+ return /* @__PURE__ */ jsx(
1439
+ Label2,
1440
+ {
1441
+ "data-slot": "form-label",
1442
+ "data-error": !!error,
1443
+ className: cn("data-[error=true]:text-destructive", className),
1444
+ htmlFor: formItemId,
1445
+ ...props
1446
+ }
1447
+ );
1448
+ }
1449
+ function FormControl({ ...props }) {
1450
+ const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
1451
+ return /* @__PURE__ */ jsx(
1452
+ Slot$1.Root,
1453
+ {
1454
+ "data-slot": "form-control",
1455
+ id: formItemId,
1456
+ "aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
1457
+ "aria-invalid": !!error,
1458
+ ...props
1459
+ }
1460
+ );
1461
+ }
1462
+ function FormDescription({ className, ...props }) {
1463
+ const { formDescriptionId } = useFormField();
1464
+ return /* @__PURE__ */ jsx(
1465
+ "p",
1466
+ {
1467
+ "data-slot": "form-description",
1468
+ id: formDescriptionId,
1469
+ className: cn("text-sm text-muted-foreground", className),
1470
+ ...props
1471
+ }
1472
+ );
1473
+ }
1474
+ function FormMessage({ className, ...props }) {
1475
+ const { error, formMessageId } = useFormField();
1476
+ const body = error ? String(error?.message ?? "") : props.children;
1477
+ if (!body) {
1478
+ return null;
1479
+ }
1480
+ return /* @__PURE__ */ jsx(
1481
+ "p",
1482
+ {
1483
+ "data-slot": "form-message",
1484
+ id: formMessageId,
1485
+ className: cn("text-sm text-destructive", className),
1486
+ ...props,
1487
+ children: body
1488
+ }
1489
+ );
1490
+ }
959
1491
  function IconButton({
960
1492
  icon: Icon2,
961
1493
  className,
@@ -1043,88 +1575,144 @@ function Input({ className, type, ...props }) {
1043
1575
  }
1044
1576
  );
1045
1577
  }
1046
- function Label2({
1578
+ function Pagination({ className, ...props }) {
1579
+ return /* @__PURE__ */ jsx(
1580
+ "nav",
1581
+ {
1582
+ "aria-label": "pagination",
1583
+ "data-slot": "pagination",
1584
+ className: cn("mx-auto flex w-full justify-center", className),
1585
+ ...props
1586
+ }
1587
+ );
1588
+ }
1589
+ function PaginationContent({
1047
1590
  className,
1048
1591
  ...props
1049
1592
  }) {
1050
1593
  return /* @__PURE__ */ jsx(
1051
- LabelPrimitive.Root,
1594
+ "ul",
1052
1595
  {
1053
- "data-slot": "label",
1054
- className: cn(
1055
- "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",
1056
- className
1057
- ),
1596
+ "data-slot": "pagination-content",
1597
+ className: cn("flex flex-row items-center gap-1", className),
1058
1598
  ...props
1059
1599
  }
1060
1600
  );
1061
1601
  }
1062
- function Popover({
1063
- ...props
1064
- }) {
1065
- return /* @__PURE__ */ jsx(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
1602
+ function PaginationItem({ ...props }) {
1603
+ return /* @__PURE__ */ jsx("li", { "data-slot": "pagination-item", ...props });
1066
1604
  }
1067
- function PopoverTrigger({
1068
- ...props
1069
- }) {
1070
- return /* @__PURE__ */ jsx(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
1071
- }
1072
- function PopoverContent({
1605
+ function PaginationLink({
1073
1606
  className,
1074
- align = "center",
1075
- sideOffset = 4,
1607
+ isActive,
1608
+ size = "icon",
1076
1609
  ...props
1077
1610
  }) {
1078
- const portalContainer = usePortalContainer();
1079
- return /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx(
1080
- PopoverPrimitive.Content,
1611
+ return /* @__PURE__ */ jsx(
1612
+ "a",
1081
1613
  {
1082
- "data-slot": "popover-content",
1083
- align,
1084
- sideOffset,
1614
+ "aria-current": isActive ? "page" : void 0,
1615
+ "data-slot": "pagination-link",
1616
+ "data-active": isActive,
1085
1617
  className: cn(
1086
- "cn-popover-content z-50 w-72 origin-(--radix-popover-content-transform-origin) outline-hidden",
1618
+ buttonVariants({
1619
+ variant: isActive ? "outline" : "ghost",
1620
+ size
1621
+ }),
1087
1622
  className
1088
1623
  ),
1089
1624
  ...props
1090
1625
  }
1091
- ) });
1626
+ );
1092
1627
  }
1093
- function PopoverAnchor({
1628
+ function PaginationPrevious({
1629
+ className,
1094
1630
  ...props
1095
1631
  }) {
1096
- return /* @__PURE__ */ jsx(PopoverPrimitive.Anchor, { "data-slot": "popover-anchor", ...props });
1632
+ return /* @__PURE__ */ jsxs(
1633
+ PaginationLink,
1634
+ {
1635
+ "aria-label": "Go to previous page",
1636
+ size: "default",
1637
+ className: cn("gap-1 px-2.5 sm:pl-2.5", className),
1638
+ ...props,
1639
+ children: [
1640
+ /* @__PURE__ */ jsx(ChevronLeftIcon, {}),
1641
+ /* @__PURE__ */ jsx("span", { className: "hidden sm:block", children: "Previous" })
1642
+ ]
1643
+ }
1644
+ );
1097
1645
  }
1098
- function PopoverHeader({ className, ...props }) {
1099
- return /* @__PURE__ */ jsx(
1100
- "div",
1646
+ function PaginationNext({
1647
+ className,
1648
+ ...props
1649
+ }) {
1650
+ return /* @__PURE__ */ jsxs(
1651
+ PaginationLink,
1101
1652
  {
1102
- "data-slot": "popover-header",
1103
- className: cn("cn-popover-header", className),
1104
- ...props
1653
+ "aria-label": "Go to next page",
1654
+ size: "default",
1655
+ className: cn("gap-1 px-2.5 sm:pr-2.5", className),
1656
+ ...props,
1657
+ children: [
1658
+ /* @__PURE__ */ jsx("span", { className: "hidden sm:block", children: "Next" }),
1659
+ /* @__PURE__ */ jsx(ChevronRightIcon, {})
1660
+ ]
1105
1661
  }
1106
1662
  );
1107
1663
  }
1108
- function PopoverTitle({ className, ...props }) {
1664
+ function PaginationEllipsis({
1665
+ className,
1666
+ ...props
1667
+ }) {
1668
+ return /* @__PURE__ */ jsxs(
1669
+ "span",
1670
+ {
1671
+ "aria-hidden": true,
1672
+ "data-slot": "pagination-ellipsis",
1673
+ className: cn("flex size-9 items-center justify-center", className),
1674
+ ...props,
1675
+ children: [
1676
+ /* @__PURE__ */ jsx(MoreHorizontalIcon, { className: "size-4" }),
1677
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More pages" })
1678
+ ]
1679
+ }
1680
+ );
1681
+ }
1682
+ function RadioGroup2({
1683
+ className,
1684
+ ...props
1685
+ }) {
1109
1686
  return /* @__PURE__ */ jsx(
1110
- "div",
1687
+ RadioGroup.Root,
1111
1688
  {
1112
- "data-slot": "popover-title",
1113
- className: cn("cn-popover-title", className),
1689
+ "data-slot": "radio-group",
1690
+ className: cn("grid gap-3", className),
1114
1691
  ...props
1115
1692
  }
1116
1693
  );
1117
1694
  }
1118
- function PopoverDescription({
1695
+ function RadioGroupItem({
1119
1696
  className,
1120
1697
  ...props
1121
1698
  }) {
1122
1699
  return /* @__PURE__ */ jsx(
1123
- "p",
1700
+ RadioGroup.Item,
1124
1701
  {
1125
- "data-slot": "popover-description",
1126
- className: cn("cn-popover-description", className),
1127
- ...props
1702
+ "data-slot": "radio-group-item",
1703
+ className: cn(
1704
+ "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",
1705
+ className
1706
+ ),
1707
+ ...props,
1708
+ children: /* @__PURE__ */ jsx(
1709
+ RadioGroup.Indicator,
1710
+ {
1711
+ "data-slot": "radio-group-indicator",
1712
+ className: "relative flex items-center justify-center",
1713
+ children: /* @__PURE__ */ jsx(CircleIcon, { className: "absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 fill-primary" })
1714
+ }
1715
+ )
1128
1716
  }
1129
1717
  );
1130
1718
  }
@@ -1284,7 +1872,7 @@ function SelectScrollDownButton({
1284
1872
  }
1285
1873
  );
1286
1874
  }
1287
- var Separator3 = React6.forwardRef(
1875
+ var Separator3 = React15.forwardRef(
1288
1876
  ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx(
1289
1877
  SeparatorPrimitive.Root,
1290
1878
  {
@@ -1301,34 +1889,6 @@ var Separator3 = React6.forwardRef(
1301
1889
  )
1302
1890
  );
1303
1891
  Separator3.displayName = SeparatorPrimitive.Root.displayName;
1304
- function Skeleton({
1305
- className,
1306
- ...props
1307
- }) {
1308
- return /* @__PURE__ */ jsx(
1309
- "div",
1310
- {
1311
- className: cn("animate-pulse rounded-md bg-muted", className),
1312
- ...props
1313
- }
1314
- );
1315
- }
1316
- var Slider = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(
1317
- SliderPrimitive.Root,
1318
- {
1319
- ref,
1320
- className: cn(
1321
- "relative flex w-full touch-none items-center select-none",
1322
- className
1323
- ),
1324
- ...props,
1325
- children: [
1326
- /* @__PURE__ */ jsx(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-gray-200", children: /* @__PURE__ */ jsx(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
1327
- /* @__PURE__ */ jsx(SliderPrimitive.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" })
1328
- ]
1329
- }
1330
- ));
1331
- Slider.displayName = SliderPrimitive.Root.displayName;
1332
1892
  var Sheet = SheetPrimitive.Root;
1333
1893
  var SheetTrigger = SheetPrimitive.Trigger;
1334
1894
  var SheetClose = SheetPrimitive.Close;
@@ -1336,7 +1896,7 @@ function SheetPortal(props) {
1336
1896
  const portalContainer = usePortalContainer();
1337
1897
  return /* @__PURE__ */ jsx(SheetPrimitive.Portal, { container: portalContainer, ...props });
1338
1898
  }
1339
- var SheetOverlay = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1899
+ var SheetOverlay = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1340
1900
  SheetPrimitive.Overlay,
1341
1901
  {
1342
1902
  className: cn(
@@ -1364,7 +1924,7 @@ var sheetVariants = cva(
1364
1924
  }
1365
1925
  }
1366
1926
  );
1367
- var SheetContent = React6.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(SheetPortal, { children: [
1927
+ var SheetContent = React15.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(SheetPortal, { children: [
1368
1928
  /* @__PURE__ */ jsx(SheetOverlay, {}),
1369
1929
  /* @__PURE__ */ jsxs(
1370
1930
  SheetPrimitive.Content,
@@ -1407,7 +1967,7 @@ function SheetFooter({ className, ...props }) {
1407
1967
  }
1408
1968
  );
1409
1969
  }
1410
- var SheetTitle = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1970
+ var SheetTitle = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1411
1971
  SheetPrimitive.Title,
1412
1972
  {
1413
1973
  ref,
@@ -1416,7 +1976,7 @@ var SheetTitle = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE_
1416
1976
  }
1417
1977
  ));
1418
1978
  SheetTitle.displayName = SheetPrimitive.Title.displayName;
1419
- var SheetDescription = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1979
+ var SheetDescription = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1420
1980
  SheetPrimitive.Description,
1421
1981
  {
1422
1982
  ref,
@@ -1425,6 +1985,69 @@ var SheetDescription = React6.forwardRef(({ className, ...props }, ref) => /* @_
1425
1985
  }
1426
1986
  ));
1427
1987
  SheetDescription.displayName = SheetPrimitive.Description.displayName;
1988
+ function Skeleton({
1989
+ className,
1990
+ ...props
1991
+ }) {
1992
+ return /* @__PURE__ */ jsx(
1993
+ "div",
1994
+ {
1995
+ className: cn("animate-pulse rounded-md bg-muted", className),
1996
+ ...props
1997
+ }
1998
+ );
1999
+ }
2000
+ var Slider = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(
2001
+ SliderPrimitive.Root,
2002
+ {
2003
+ ref,
2004
+ className: cn(
2005
+ "relative flex w-full touch-none items-center select-none",
2006
+ className
2007
+ ),
2008
+ ...props,
2009
+ children: [
2010
+ /* @__PURE__ */ jsx(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-gray-200", children: /* @__PURE__ */ jsx(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
2011
+ /* @__PURE__ */ jsx(SliderPrimitive.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" })
2012
+ ]
2013
+ }
2014
+ ));
2015
+ Slider.displayName = SliderPrimitive.Root.displayName;
2016
+ function Toaster({ theme = "system", ...props }) {
2017
+ return /* @__PURE__ */ jsx(
2018
+ Toaster$1,
2019
+ {
2020
+ theme,
2021
+ className: "toaster group",
2022
+ icons: {
2023
+ success: /* @__PURE__ */ jsx(CircleCheckIcon, { className: "size-4" }),
2024
+ info: /* @__PURE__ */ jsx(InfoIcon, { className: "size-4" }),
2025
+ warning: /* @__PURE__ */ jsx(TriangleAlertIcon, { className: "size-4" }),
2026
+ error: /* @__PURE__ */ jsx(OctagonXIcon, { className: "size-4" }),
2027
+ loading: /* @__PURE__ */ jsx(Loader2Icon, { className: "size-4 animate-spin" })
2028
+ },
2029
+ style: {
2030
+ "--normal-bg": "var(--popover)",
2031
+ "--normal-text": "var(--popover-foreground)",
2032
+ "--normal-border": "var(--border)",
2033
+ "--success-bg": "var(--popover)",
2034
+ "--success-text": "var(--popover-foreground)",
2035
+ "--success-border": "var(--border)",
2036
+ "--error-bg": "var(--popover)",
2037
+ "--error-text": "var(--popover-foreground)",
2038
+ "--error-border": "var(--border)",
2039
+ "--warning-bg": "var(--popover)",
2040
+ "--warning-text": "var(--popover-foreground)",
2041
+ "--warning-border": "var(--border)",
2042
+ "--info-bg": "var(--popover)",
2043
+ "--info-text": "var(--popover-foreground)",
2044
+ "--info-border": "var(--border)",
2045
+ "--border-radius": "var(--radius)"
2046
+ },
2047
+ ...props
2048
+ }
2049
+ );
2050
+ }
1428
2051
  function SpinnerWithText({
1429
2052
  text = "Loading...",
1430
2053
  variant = "inline",
@@ -1477,7 +2100,7 @@ function SpinnerWithText({
1477
2100
  }
1478
2101
  );
1479
2102
  }
1480
- var Switch = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2103
+ var Switch = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1481
2104
  SwitchPrimitive.Root,
1482
2105
  {
1483
2106
  className: cn(
@@ -1497,6 +2120,108 @@ var Switch = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
1497
2120
  }
1498
2121
  ));
1499
2122
  Switch.displayName = SwitchPrimitive.Root.displayName;
2123
+ function Table({ className, ...props }) {
2124
+ return /* @__PURE__ */ jsx(
2125
+ "div",
2126
+ {
2127
+ "data-slot": "table-container",
2128
+ className: "relative w-full overflow-x-auto",
2129
+ children: /* @__PURE__ */ jsx(
2130
+ "table",
2131
+ {
2132
+ "data-slot": "table",
2133
+ className: cn("w-full caption-bottom text-sm", className),
2134
+ ...props
2135
+ }
2136
+ )
2137
+ }
2138
+ );
2139
+ }
2140
+ function TableHeader({ className, ...props }) {
2141
+ return /* @__PURE__ */ jsx(
2142
+ "thead",
2143
+ {
2144
+ "data-slot": "table-header",
2145
+ className: cn("[&_tr]:border-b", className),
2146
+ ...props
2147
+ }
2148
+ );
2149
+ }
2150
+ function TableBody({ className, ...props }) {
2151
+ return /* @__PURE__ */ jsx(
2152
+ "tbody",
2153
+ {
2154
+ "data-slot": "table-body",
2155
+ className: cn("[&_tr:last-child]:border-0", className),
2156
+ ...props
2157
+ }
2158
+ );
2159
+ }
2160
+ function TableFooter({ className, ...props }) {
2161
+ return /* @__PURE__ */ jsx(
2162
+ "tfoot",
2163
+ {
2164
+ "data-slot": "table-footer",
2165
+ className: cn(
2166
+ "border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",
2167
+ className
2168
+ ),
2169
+ ...props
2170
+ }
2171
+ );
2172
+ }
2173
+ function TableRow({ className, ...props }) {
2174
+ return /* @__PURE__ */ jsx(
2175
+ "tr",
2176
+ {
2177
+ "data-slot": "table-row",
2178
+ className: cn(
2179
+ "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
2180
+ className
2181
+ ),
2182
+ ...props
2183
+ }
2184
+ );
2185
+ }
2186
+ function TableHead({ className, ...props }) {
2187
+ return /* @__PURE__ */ jsx(
2188
+ "th",
2189
+ {
2190
+ "data-slot": "table-head",
2191
+ className: cn(
2192
+ "h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
2193
+ className
2194
+ ),
2195
+ ...props
2196
+ }
2197
+ );
2198
+ }
2199
+ function TableCell({ className, ...props }) {
2200
+ return /* @__PURE__ */ jsx(
2201
+ "td",
2202
+ {
2203
+ "data-slot": "table-cell",
2204
+ className: cn(
2205
+ "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
2206
+ className
2207
+ ),
2208
+ ...props
2209
+ }
2210
+ );
2211
+ }
2212
+ function TableCaption({
2213
+ className,
2214
+ ...props
2215
+ }) {
2216
+ return /* @__PURE__ */ jsx(
2217
+ "caption",
2218
+ {
2219
+ "data-slot": "table-caption",
2220
+ className: cn("mt-4 text-sm text-muted-foreground", className),
2221
+ ...props
2222
+ }
2223
+ );
2224
+ }
1500
2225
  function Tabs({
1501
2226
  className,
1502
2227
  ...props
@@ -1568,7 +2293,7 @@ function Textarea({ className, ...props }) {
1568
2293
  }
1569
2294
  );
1570
2295
  }
1571
- var ToggleGroupContext = React6.createContext({
2296
+ var ToggleGroupContext = React15.createContext({
1572
2297
  size: "default",
1573
2298
  variant: "default",
1574
2299
  spacing: 0,
@@ -1614,7 +2339,7 @@ function ToggleGroupItem({
1614
2339
  size = "default",
1615
2340
  ...props
1616
2341
  }) {
1617
- const context = React6.useContext(ToggleGroupContext);
2342
+ const context = React15.useContext(ToggleGroupContext);
1618
2343
  return /* @__PURE__ */ jsx(
1619
2344
  ToggleGroupPrimitive.Item,
1620
2345
  {
@@ -1659,6 +2384,6 @@ function TooltipContent({
1659
2384
  ) });
1660
2385
  }
1661
2386
 
1662
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, Button, Calendar, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, IconButton, IconToggle, Input, Label2 as Label, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, PortalContainerProvider, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator3 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Slider, SpinnerWithText, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toggle, ToggleGroup, ToggleGroupItem, Tooltip2 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, buttonVariants, cn, toggleVariants, useZodForm };
2387
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Button, Calendar, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, DatePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, IconButton, IconToggle, Input, Label2 as Label, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, PortalContainerProvider, RadioGroup2 as RadioGroup, RadioGroupItem, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator3 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Slider, SpinnerWithText, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip2 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, toggleVariants, useFormField, useZodForm };
1663
2388
  //# sourceMappingURL=index.js.map
1664
2389
  //# sourceMappingURL=index.js.map