@j3m-quantum/ui 0.7.10 → 0.7.12

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,4 +1,4 @@
1
- import * as React8 from 'react';
1
+ import * as React7 from 'react';
2
2
  import { useMemo } from 'react';
3
3
  import { Slot } from '@radix-ui/react-slot';
4
4
  import { cva } from 'class-variance-authority';
@@ -7,14 +7,13 @@ import { twMerge } from 'tailwind-merge';
7
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
8
  import * as SeparatorPrimitive from '@radix-ui/react-separator';
9
9
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
10
- import { CheckIcon, CircleIcon, ChevronDownIcon, ChevronUpIcon, MinusIcon, ChevronLeftIcon, ChevronRightIcon, ArrowLeft, ArrowRight, Loader2Icon, OctagonXIcon, TriangleAlertIcon, InfoIcon, CircleCheckIcon, ChevronRight, MoreHorizontal, MoreHorizontalIcon, XIcon, SearchIcon, GripVerticalIcon, PanelLeftIcon } from 'lucide-react';
10
+ import { CheckIcon, CircleIcon, ChevronDownIcon, ChevronUpIcon, ChevronLeftIcon, ChevronRightIcon, ArrowLeft, ArrowRight, Loader2Icon, OctagonXIcon, TriangleAlertIcon, InfoIcon, CircleCheckIcon, ChevronRight, MoreHorizontal, MoreHorizontalIcon, XIcon, SearchIcon, GripVerticalIcon, PanelLeftIcon } from 'lucide-react';
11
11
  import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
12
12
  import * as SwitchPrimitive from '@radix-ui/react-switch';
13
13
  import * as SliderPrimitive from '@radix-ui/react-slider';
14
14
  import * as SelectPrimitive from '@radix-ui/react-select';
15
15
  import * as TogglePrimitive from '@radix-ui/react-toggle';
16
16
  import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
17
- import { OTPInput, OTPInputContext } from 'input-otp';
18
17
  import { FormProvider, Controller, useFormContext, useFormState } from 'react-hook-form';
19
18
  import * as LabelPrimitive from '@radix-ui/react-label';
20
19
  import * as AvatarPrimitive from '@radix-ui/react-avatar';
@@ -44,8 +43,8 @@ import * as ResizablePrimitive from 'react-resizable-panels';
44
43
  // src/hooks/use-mobile.ts
45
44
  var MOBILE_BREAKPOINT = 768;
46
45
  function useIsMobile() {
47
- const [isMobile, setIsMobile] = React8.useState(void 0);
48
- React8.useEffect(() => {
46
+ const [isMobile, setIsMobile] = React7.useState(void 0);
47
+ React7.useEffect(() => {
49
48
  const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
50
49
  const onChange = () => {
51
50
  setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
@@ -86,7 +85,7 @@ var buttonVariants = cva(
86
85
  }
87
86
  }
88
87
  );
89
- var Button = React8.forwardRef(
88
+ var Button = React7.forwardRef(
90
89
  ({ className, variant, size, asChild = false, ...props }, ref) => {
91
90
  const Comp = asChild ? Slot : "button";
92
91
  return /* @__PURE__ */ jsx(
@@ -450,7 +449,7 @@ function Slider({
450
449
  max = 100,
451
450
  ...props
452
451
  }) {
453
- const _values = React8.useMemo(
452
+ const _values = React7.useMemo(
454
453
  () => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
455
454
  [value, defaultValue, min, max]
456
455
  );
@@ -665,7 +664,7 @@ function NativeSelect({ className, ...props }) {
665
664
  {
666
665
  "data-slot": "native-select",
667
666
  className: cn(
668
- "border-input placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 dark:hover:bg-input/50 h-9 w-full min-w-0 appearance-none rounded-md border bg-transparent px-3 py-2 pr-9 text-sm shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed",
667
+ "border-input placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground bg-background dark:bg-input/30 dark:hover:bg-input/50 h-9 w-full min-w-0 appearance-none rounded-full border pl-4 py-2 pr-8 text-sm shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed",
669
668
  "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
670
669
  "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
671
670
  className
@@ -676,7 +675,7 @@ function NativeSelect({ className, ...props }) {
676
675
  /* @__PURE__ */ jsx(
677
676
  ChevronDownIcon,
678
677
  {
679
- className: "text-muted-foreground pointer-events-none absolute top-1/2 right-3.5 size-4 -translate-y-1/2 opacity-50 select-none",
678
+ className: "text-muted-foreground pointer-events-none absolute top-1/2 right-2.5 size-4 -translate-y-1/2 opacity-50 select-none",
680
679
  "aria-hidden": "true",
681
680
  "data-slot": "native-select-icon"
682
681
  }
@@ -702,7 +701,7 @@ function NativeSelectOptGroup({
702
701
  );
703
702
  }
704
703
  var toggleVariants = cva(
705
- "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap",
704
+ "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary data-[state=on]:text-primary-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap",
706
705
  {
707
706
  variants: {
708
707
  variant: {
@@ -736,7 +735,7 @@ function Toggle({
736
735
  }
737
736
  );
738
737
  }
739
- var ToggleGroupContext = React8.createContext({
738
+ var ToggleGroupContext = React7.createContext({
740
739
  size: "default",
741
740
  variant: "default",
742
741
  spacing: 0
@@ -773,7 +772,7 @@ function ToggleGroupItem({
773
772
  size,
774
773
  ...props
775
774
  }) {
776
- const context = React8.useContext(ToggleGroupContext);
775
+ const context = React7.useContext(ToggleGroupContext);
777
776
  return /* @__PURE__ */ jsx(
778
777
  ToggleGroupPrimitive.Item,
779
778
  {
@@ -795,61 +794,6 @@ function ToggleGroupItem({
795
794
  }
796
795
  );
797
796
  }
798
- function InputOTP({
799
- className,
800
- containerClassName,
801
- ...props
802
- }) {
803
- return /* @__PURE__ */ jsx(
804
- OTPInput,
805
- {
806
- "data-slot": "input-otp",
807
- containerClassName: cn(
808
- "flex items-center gap-2 has-disabled:opacity-50",
809
- containerClassName
810
- ),
811
- className: cn("disabled:cursor-not-allowed", className),
812
- ...props
813
- }
814
- );
815
- }
816
- function InputOTPGroup({ className, ...props }) {
817
- return /* @__PURE__ */ jsx(
818
- "div",
819
- {
820
- "data-slot": "input-otp-group",
821
- className: cn("flex items-center", className),
822
- ...props
823
- }
824
- );
825
- }
826
- function InputOTPSlot({
827
- index,
828
- className,
829
- ...props
830
- }) {
831
- const inputOTPContext = React8.useContext(OTPInputContext);
832
- const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
833
- return /* @__PURE__ */ jsxs(
834
- "div",
835
- {
836
- "data-slot": "input-otp-slot",
837
- "data-active": isActive,
838
- className: cn(
839
- "data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]",
840
- className
841
- ),
842
- ...props,
843
- children: [
844
- char,
845
- hasFakeCaret && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "animate-caret-blink bg-foreground h-4 w-px duration-1000" }) })
846
- ]
847
- }
848
- );
849
- }
850
- function InputOTPSeparator({ ...props }) {
851
- return /* @__PURE__ */ jsx("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ jsx(MinusIcon, {}) });
852
- }
853
797
  function Label2({
854
798
  className,
855
799
  ...props
@@ -867,7 +811,7 @@ function Label2({
867
811
  );
868
812
  }
869
813
  var Form = FormProvider;
870
- var FormFieldContext = React8.createContext(
814
+ var FormFieldContext = React7.createContext(
871
815
  {}
872
816
  );
873
817
  var FormField = ({
@@ -876,8 +820,8 @@ var FormField = ({
876
820
  return /* @__PURE__ */ jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx(Controller, { ...props }) });
877
821
  };
878
822
  var useFormField = () => {
879
- const fieldContext = React8.useContext(FormFieldContext);
880
- const itemContext = React8.useContext(FormItemContext);
823
+ const fieldContext = React7.useContext(FormFieldContext);
824
+ const itemContext = React7.useContext(FormItemContext);
881
825
  const { getFieldState } = useFormContext();
882
826
  const formState = useFormState({ name: fieldContext.name });
883
827
  const fieldState = getFieldState(fieldContext.name, formState);
@@ -894,11 +838,11 @@ var useFormField = () => {
894
838
  ...fieldState
895
839
  };
896
840
  };
897
- var FormItemContext = React8.createContext(
841
+ var FormItemContext = React7.createContext(
898
842
  {}
899
843
  );
900
844
  function FormItem({ className, ...props }) {
901
- const id = React8.useId();
845
+ const id = React7.useId();
902
846
  return /* @__PURE__ */ jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx(
903
847
  "div",
904
848
  {
@@ -1368,7 +1312,7 @@ var badgeVariants = cva(
1368
1312
  default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
1369
1313
  secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
1370
1314
  destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
1371
- outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
1315
+ outline: "bg-background text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
1372
1316
  }
1373
1317
  },
1374
1318
  defaultVariants: {
@@ -1564,7 +1508,6 @@ function Calendar({
1564
1508
  classNames,
1565
1509
  showOutsideDays = true,
1566
1510
  captionLayout = "label",
1567
- buttonVariant = "ghost",
1568
1511
  formatters,
1569
1512
  components,
1570
1513
  ...props
@@ -1575,7 +1518,7 @@ function Calendar({
1575
1518
  {
1576
1519
  showOutsideDays,
1577
1520
  className: cn(
1578
- "bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",
1521
+ "bg-card group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent",
1579
1522
  String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
1580
1523
  String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
1581
1524
  className
@@ -1597,13 +1540,11 @@ function Calendar({
1597
1540
  defaultClassNames.nav
1598
1541
  ),
1599
1542
  button_previous: cn(
1600
- buttonVariants({ variant: buttonVariant }),
1601
- "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
1543
+ "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none inline-flex items-center justify-center rounded-full hover:bg-muted/50 transition-colors",
1602
1544
  defaultClassNames.button_previous
1603
1545
  ),
1604
1546
  button_next: cn(
1605
- buttonVariants({ variant: buttonVariant }),
1606
- "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
1547
+ "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none inline-flex items-center justify-center rounded-full hover:bg-muted/50 transition-colors",
1607
1548
  defaultClassNames.button_next
1608
1549
  ),
1609
1550
  month_caption: cn(
@@ -1654,7 +1595,7 @@ function Calendar({
1654
1595
  range_middle: cn("rounded-none", defaultClassNames.range_middle),
1655
1596
  range_end: cn("rounded-r-md bg-accent", defaultClassNames.range_end),
1656
1597
  today: cn(
1657
- "bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",
1598
+ "rounded-full [&_button]:ring-2 [&_button]:ring-primary/50",
1658
1599
  defaultClassNames.today
1659
1600
  ),
1660
1601
  outside: cn(
@@ -1711,34 +1652,31 @@ function CalendarDayButton({
1711
1652
  modifiers,
1712
1653
  ...props
1713
1654
  }) {
1714
- const defaultClassNames = getDefaultClassNames();
1715
- const ref = React8.useRef(null);
1716
- React8.useEffect(() => {
1655
+ const ref = React7.useRef(null);
1656
+ React7.useEffect(() => {
1717
1657
  if (modifiers.focused) ref.current?.focus();
1718
1658
  }, [modifiers.focused]);
1719
1659
  return /* @__PURE__ */ jsx(
1720
- Button,
1660
+ "button",
1721
1661
  {
1722
1662
  ref,
1723
- variant: "ghost",
1724
- size: "icon",
1663
+ type: "button",
1725
1664
  "data-day": day.date.toLocaleDateString(),
1726
1665
  "data-selected-single": modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle,
1727
1666
  "data-range-start": modifiers.range_start,
1728
1667
  "data-range-end": modifiers.range_end,
1729
1668
  "data-range-middle": modifiers.range_middle,
1730
1669
  className: cn(
1731
- "data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground 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-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70",
1732
- defaultClassNames.day,
1670
+ "rounded-full hover:bg-muted/50 transition-colors data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent/50 data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:ring-ring/50 flex aspect-square size-auto w-full min-w-(--cell-size) items-center justify-center leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",
1733
1671
  className
1734
1672
  ),
1735
1673
  ...props
1736
1674
  }
1737
1675
  );
1738
1676
  }
1739
- var CarouselContext = React8.createContext(null);
1677
+ var CarouselContext = React7.createContext(null);
1740
1678
  function useCarousel() {
1741
- const context = React8.useContext(CarouselContext);
1679
+ const context = React7.useContext(CarouselContext);
1742
1680
  if (!context) {
1743
1681
  throw new Error("useCarousel must be used within a <Carousel />");
1744
1682
  }
@@ -1760,20 +1698,20 @@ function Carousel({
1760
1698
  },
1761
1699
  plugins
1762
1700
  );
1763
- const [canScrollPrev, setCanScrollPrev] = React8.useState(false);
1764
- const [canScrollNext, setCanScrollNext] = React8.useState(false);
1765
- const onSelect = React8.useCallback((api2) => {
1701
+ const [canScrollPrev, setCanScrollPrev] = React7.useState(false);
1702
+ const [canScrollNext, setCanScrollNext] = React7.useState(false);
1703
+ const onSelect = React7.useCallback((api2) => {
1766
1704
  if (!api2) return;
1767
1705
  setCanScrollPrev(api2.canScrollPrev());
1768
1706
  setCanScrollNext(api2.canScrollNext());
1769
1707
  }, []);
1770
- const scrollPrev = React8.useCallback(() => {
1708
+ const scrollPrev = React7.useCallback(() => {
1771
1709
  api?.scrollPrev();
1772
1710
  }, [api]);
1773
- const scrollNext = React8.useCallback(() => {
1711
+ const scrollNext = React7.useCallback(() => {
1774
1712
  api?.scrollNext();
1775
1713
  }, [api]);
1776
- const handleKeyDown = React8.useCallback(
1714
+ const handleKeyDown = React7.useCallback(
1777
1715
  (event) => {
1778
1716
  if (event.key === "ArrowLeft") {
1779
1717
  event.preventDefault();
@@ -1785,11 +1723,11 @@ function Carousel({
1785
1723
  },
1786
1724
  [scrollPrev, scrollNext]
1787
1725
  );
1788
- React8.useEffect(() => {
1726
+ React7.useEffect(() => {
1789
1727
  if (!api || !setApi) return;
1790
1728
  setApi(api);
1791
1729
  }, [api, setApi]);
1792
- React8.useEffect(() => {
1730
+ React7.useEffect(() => {
1793
1731
  if (!api) return;
1794
1732
  onSelect(api);
1795
1733
  api.on("reInit", onSelect);
@@ -1922,9 +1860,9 @@ function CarouselNext({
1922
1860
  );
1923
1861
  }
1924
1862
  var THEMES = { light: "", dark: ".dark" };
1925
- var ChartContext = React8.createContext(null);
1863
+ var ChartContext = React7.createContext(null);
1926
1864
  function useChart() {
1927
- const context = React8.useContext(ChartContext);
1865
+ const context = React7.useContext(ChartContext);
1928
1866
  if (!context) {
1929
1867
  throw new Error("useChart must be used within a <ChartContainer />");
1930
1868
  }
@@ -1937,7 +1875,7 @@ function ChartContainer({
1937
1875
  config,
1938
1876
  ...props
1939
1877
  }) {
1940
- const uniqueId = React8.useId();
1878
+ const uniqueId = React7.useId();
1941
1879
  const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
1942
1880
  return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
1943
1881
  "div",
@@ -1998,7 +1936,7 @@ function ChartTooltipContent({
1998
1936
  labelKey
1999
1937
  }) {
2000
1938
  const { config } = useChart();
2001
- const tooltipLabel = React8.useMemo(() => {
1939
+ const tooltipLabel = React7.useMemo(() => {
2002
1940
  if (hideLabel || !payload?.length) {
2003
1941
  return null;
2004
1942
  }
@@ -2721,16 +2659,16 @@ var M = (e, i, s, u, m, a, l, h) => {
2721
2659
  } catch (n) {
2722
2660
  }
2723
2661
  };
2724
- var x = React8.createContext(void 0);
2662
+ var x = React7.createContext(void 0);
2725
2663
  var U = { setTheme: (e) => {
2726
2664
  }, themes: [] };
2727
2665
  var z = () => {
2728
2666
  var e;
2729
- return (e = React8.useContext(x)) != null ? e : U;
2667
+ return (e = React7.useContext(x)) != null ? e : U;
2730
2668
  };
2731
- React8.memo(({ forcedTheme: e, storageKey: i, attribute: s, enableSystem: u, enableColorScheme: m, defaultTheme: a, value: l, themes: h, nonce: d, scriptProps: w }) => {
2669
+ React7.memo(({ forcedTheme: e, storageKey: i, attribute: s, enableSystem: u, enableColorScheme: m, defaultTheme: a, value: l, themes: h, nonce: d, scriptProps: w }) => {
2732
2670
  let p = JSON.stringify([s, i, a, e, h, l, u, m]).slice(1, -1);
2733
- return React8.createElement("script", { ...w, suppressHydrationWarning: true, nonce: typeof window == "undefined" ? d : "", dangerouslySetInnerHTML: { __html: `(${M.toString()})(${p})` } });
2671
+ return React7.createElement("script", { ...w, suppressHydrationWarning: true, nonce: typeof window == "undefined" ? d : "", dangerouslySetInnerHTML: { __html: `(${M.toString()})(${p})` } });
2734
2672
  });
2735
2673
  var Toaster = ({ ...props }) => {
2736
2674
  const { theme = "system" } = z();
@@ -4215,7 +4153,7 @@ function SheetHeader({ className, ...props }) {
4215
4153
  "div",
4216
4154
  {
4217
4155
  "data-slot": "sheet-header",
4218
- className: cn("flex flex-col gap-1.5 p-4", className),
4156
+ className: cn("flex flex-col gap-1.5 px-6 py-4", className),
4219
4157
  ...props
4220
4158
  }
4221
4159
  );
@@ -4225,7 +4163,7 @@ function SheetFooter({ className, ...props }) {
4225
4163
  "div",
4226
4164
  {
4227
4165
  "data-slot": "sheet-footer",
4228
- className: cn("mt-auto flex flex-col gap-2 p-4", className),
4166
+ className: cn("mt-auto flex flex-col gap-2 px-6 py-4", className),
4229
4167
  ...props
4230
4168
  }
4231
4169
  );
@@ -4256,6 +4194,16 @@ function SheetDescription({
4256
4194
  }
4257
4195
  );
4258
4196
  }
4197
+ function SheetBody({ className, ...props }) {
4198
+ return /* @__PURE__ */ jsx(
4199
+ "div",
4200
+ {
4201
+ "data-slot": "sheet-body",
4202
+ className: cn("flex-1 px-6 py-4", className),
4203
+ ...props
4204
+ }
4205
+ );
4206
+ }
4259
4207
  function Popover({
4260
4208
  ...props
4261
4209
  }) {
@@ -4380,12 +4328,14 @@ function Collapsible({
4380
4328
  return /* @__PURE__ */ jsx(CollapsiblePrimitive.Root, { "data-slot": "collapsible", ...props });
4381
4329
  }
4382
4330
  function CollapsibleTrigger2({
4331
+ className,
4383
4332
  ...props
4384
4333
  }) {
4385
4334
  return /* @__PURE__ */ jsx(
4386
4335
  CollapsiblePrimitive.CollapsibleTrigger,
4387
4336
  {
4388
4337
  "data-slot": "collapsible-trigger",
4338
+ className: cn(className),
4389
4339
  ...props
4390
4340
  }
4391
4341
  );
@@ -4451,9 +4401,9 @@ var SIDEBAR_WIDTH = "16rem";
4451
4401
  var SIDEBAR_WIDTH_MOBILE = "18rem";
4452
4402
  var SIDEBAR_WIDTH_ICON = "3rem";
4453
4403
  var SIDEBAR_KEYBOARD_SHORTCUT = "b";
4454
- var SidebarContext = React8.createContext(null);
4404
+ var SidebarContext = React7.createContext(null);
4455
4405
  function useSidebar() {
4456
- const context = React8.useContext(SidebarContext);
4406
+ const context = React7.useContext(SidebarContext);
4457
4407
  if (!context) {
4458
4408
  throw new Error("useSidebar must be used within a SidebarProvider.");
4459
4409
  }
@@ -4469,10 +4419,10 @@ function SidebarProvider({
4469
4419
  ...props
4470
4420
  }) {
4471
4421
  const isMobile = useIsMobile();
4472
- const [openMobile, setOpenMobile] = React8.useState(false);
4473
- const [_open, _setOpen] = React8.useState(defaultOpen);
4422
+ const [openMobile, setOpenMobile] = React7.useState(false);
4423
+ const [_open, _setOpen] = React7.useState(defaultOpen);
4474
4424
  const open = openProp ?? _open;
4475
- const setOpen = React8.useCallback(
4425
+ const setOpen = React7.useCallback(
4476
4426
  (value) => {
4477
4427
  const openState = typeof value === "function" ? value(open) : value;
4478
4428
  if (setOpenProp) {
@@ -4484,10 +4434,10 @@ function SidebarProvider({
4484
4434
  },
4485
4435
  [setOpenProp, open]
4486
4436
  );
4487
- const toggleSidebar = React8.useCallback(() => {
4437
+ const toggleSidebar = React7.useCallback(() => {
4488
4438
  return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
4489
4439
  }, [isMobile, setOpen, setOpenMobile]);
4490
- React8.useEffect(() => {
4440
+ React7.useEffect(() => {
4491
4441
  const handleKeyDown = (event) => {
4492
4442
  if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
4493
4443
  event.preventDefault();
@@ -4498,7 +4448,7 @@ function SidebarProvider({
4498
4448
  return () => window.removeEventListener("keydown", handleKeyDown);
4499
4449
  }, [toggleSidebar]);
4500
4450
  const state = open ? "expanded" : "collapsed";
4501
- const contextValue = React8.useMemo(
4451
+ const contextValue = React7.useMemo(
4502
4452
  () => ({
4503
4453
  state,
4504
4454
  open,
@@ -4956,7 +4906,7 @@ function SidebarMenuSkeleton({
4956
4906
  showIcon = false,
4957
4907
  ...props
4958
4908
  }) {
4959
- const width = React8.useMemo(() => {
4909
+ const width = React7.useMemo(() => {
4960
4910
  return `${Math.floor(Math.random() * 40) + 50}%`;
4961
4911
  }, []);
4962
4912
  return /* @__PURE__ */ jsxs(
@@ -5100,7 +5050,7 @@ var sectionVariants = cva(
5100
5050
  }
5101
5051
  );
5102
5052
  var isGlassVariant = (variant) => variant?.startsWith("glass-") ?? false;
5103
- var Section = React8.forwardRef(
5053
+ var Section = React7.forwardRef(
5104
5054
  ({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
5105
5055
  "section",
5106
5056
  {
@@ -5112,7 +5062,7 @@ var Section = React8.forwardRef(
5112
5062
  )
5113
5063
  );
5114
5064
  Section.displayName = "Section";
5115
- var SectionHeader = React8.forwardRef(
5065
+ var SectionHeader = React7.forwardRef(
5116
5066
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5117
5067
  "div",
5118
5068
  {
@@ -5127,7 +5077,7 @@ var SectionHeader = React8.forwardRef(
5127
5077
  )
5128
5078
  );
5129
5079
  SectionHeader.displayName = "SectionHeader";
5130
- var SectionTitle = React8.forwardRef(
5080
+ var SectionTitle = React7.forwardRef(
5131
5081
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5132
5082
  "h2",
5133
5083
  {
@@ -5141,7 +5091,7 @@ var SectionTitle = React8.forwardRef(
5141
5091
  )
5142
5092
  );
5143
5093
  SectionTitle.displayName = "SectionTitle";
5144
- var SectionDescription = React8.forwardRef(
5094
+ var SectionDescription = React7.forwardRef(
5145
5095
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5146
5096
  "p",
5147
5097
  {
@@ -5155,7 +5105,7 @@ var SectionDescription = React8.forwardRef(
5155
5105
  )
5156
5106
  );
5157
5107
  SectionDescription.displayName = "SectionDescription";
5158
- var SectionContent = React8.forwardRef(
5108
+ var SectionContent = React7.forwardRef(
5159
5109
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5160
5110
  "div",
5161
5111
  {
@@ -5169,7 +5119,7 @@ var SectionContent = React8.forwardRef(
5169
5119
  )
5170
5120
  );
5171
5121
  SectionContent.displayName = "SectionContent";
5172
- var SectionFooter = React8.forwardRef(
5122
+ var SectionFooter = React7.forwardRef(
5173
5123
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5174
5124
  "div",
5175
5125
  {
@@ -5186,6 +5136,6 @@ var SectionFooter = React8.forwardRef(
5186
5136
  );
5187
5137
  SectionFooter.displayName = "SectionFooter";
5188
5138
 
5189
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item5 as Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label2 as Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Section, SectionContent, SectionDescription, SectionFooter, SectionHeader, SectionTitle, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, 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, buttonGroupVariants, buttonVariants, cardVariants, navigationMenuTriggerStyle, sectionVariants, toggleVariants, useFormField, useIsMobile, useSidebar };
5139
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Item5 as Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label2 as Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Section, SectionContent, SectionDescription, SectionFooter, SectionHeader, SectionTitle, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Spinner, 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, buttonGroupVariants, buttonVariants, cardVariants, navigationMenuTriggerStyle, sectionVariants, toggleVariants, useFormField, useIsMobile, useSidebar };
5190
5140
  //# sourceMappingURL=index.js.map
5191
5141
  //# sourceMappingURL=index.js.map