@j3m-quantum/ui 0.4.0 → 0.7.1

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 React10 from 'react';
1
+ import * as React8 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,7 +7,7 @@ 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 { X, CheckIcon, CircleIcon, ChevronDownIcon, ChevronUpIcon, MinusIcon, ChevronLeftIcon, ChevronRightIcon, ArrowLeft, ArrowRight, Loader2Icon, OctagonXIcon, TriangleAlertIcon, InfoIcon, CircleCheckIcon, ChevronRight, MoreHorizontal, MoreHorizontalIcon, SearchIcon, XIcon, GripVerticalIcon, PanelLeftIcon } from 'lucide-react';
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';
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';
@@ -44,8 +44,8 @@ import * as ResizablePrimitive from 'react-resizable-panels';
44
44
  // src/hooks/use-mobile.ts
45
45
  var MOBILE_BREAKPOINT = 768;
46
46
  function useIsMobile() {
47
- const [isMobile, setIsMobile] = React10.useState(void 0);
48
- React10.useEffect(() => {
47
+ const [isMobile, setIsMobile] = React8.useState(void 0);
48
+ React8.useEffect(() => {
49
49
  const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
50
50
  const onChange = () => {
51
51
  setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
@@ -60,73 +60,24 @@ function cn(...inputs) {
60
60
  return twMerge(clsx(inputs));
61
61
  }
62
62
  var buttonVariants = cva(
63
- // Base styles - shared across all variants
64
- "inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
63
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
65
64
  {
66
65
  variants: {
67
66
  variant: {
68
- // Primary CTA - J3M Orange
69
- default: [
70
- "text-[var(--color-text-on-accent)]",
71
- "bg-[var(--j3m-primary-300)]",
72
- "hover:bg-[var(--j3m-primary-400)]",
73
- "active:bg-[var(--j3m-primary-500)]",
74
- "focus-visible:ring-[var(--j3m-primary-300)]",
75
- "rounded-[var(--j3m-radius-2xs)]",
76
- "shadow-sm"
77
- ].join(" "),
78
- // Secondary - Neutral surface
79
- secondary: [
80
- "text-[var(--color-text-main)]",
81
- "bg-[var(--j3m-neutral-200)]",
82
- "hover:bg-[var(--j3m-neutral-300)]",
83
- "active:bg-[var(--j3m-neutral-400)]",
84
- "focus-visible:ring-[var(--j3m-neutral-400)]",
85
- "rounded-[var(--j3m-radius-2xs)]"
86
- ].join(" "),
87
- // Outline - Border only
88
- outline: [
89
- "text-[var(--color-text-main)]",
90
- "bg-transparent",
91
- "border border-[var(--color-border-strong)]",
92
- "hover:bg-[var(--j3m-neutral-200)]",
93
- "active:bg-[var(--j3m-neutral-300)]",
94
- "focus-visible:ring-[var(--j3m-neutral-400)]",
95
- "rounded-[var(--j3m-radius-2xs)]"
96
- ].join(" "),
97
- // Ghost - Minimal
98
- ghost: [
99
- "text-[var(--color-text-muted)]",
100
- "bg-transparent",
101
- "hover:bg-[var(--j3m-neutral-200)]",
102
- "hover:text-[var(--color-text-main)]",
103
- "active:bg-[var(--j3m-neutral-300)]",
104
- "focus-visible:ring-[var(--j3m-neutral-400)]",
105
- "rounded-[var(--j3m-radius-2xs)]"
106
- ].join(" "),
107
- // Destructive - Error/danger actions
108
- destructive: [
109
- "text-[var(--color-text-on-accent)]",
110
- "bg-[var(--j3m-red-100)]",
111
- "hover:bg-[var(--j3m-red-200)]",
112
- "active:bg-[var(--j3m-red-200)]",
113
- "focus-visible:ring-[var(--j3m-red-100)]",
114
- "rounded-[var(--j3m-radius-2xs)]",
115
- "shadow-sm"
116
- ].join(" "),
117
- // Link - Text only
118
- link: [
119
- "text-[var(--j3m-primary-300)]",
120
- "underline-offset-4",
121
- "hover:underline",
122
- "hover:text-[var(--j3m-primary-400)]"
123
- ].join(" ")
67
+ default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
68
+ destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
69
+ outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
70
+ secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
71
+ ghost: "hover:bg-accent hover:text-accent-foreground",
72
+ link: "text-primary underline-offset-4 hover:underline"
124
73
  },
125
74
  size: {
126
- sm: "h-8 px-[var(--j3m-spacing-s)] text-xs",
127
- default: "h-10 px-[var(--j3m-spacing-m)] py-[var(--j3m-spacing-xs)] text-sm",
128
- lg: "h-12 px-[var(--j3m-spacing-xl)] text-base",
129
- icon: "h-10 w-10"
75
+ default: "h-9 px-4 py-2",
76
+ sm: "h-8 rounded-md px-3 text-xs",
77
+ lg: "h-10 rounded-md px-8",
78
+ icon: "h-9 w-9",
79
+ "icon-sm": "h-8 w-8",
80
+ "icon-lg": "h-10 w-10"
130
81
  }
131
82
  },
132
83
  defaultVariants: {
@@ -135,7 +86,7 @@ var buttonVariants = cva(
135
86
  }
136
87
  }
137
88
  );
138
- var Button = React10.forwardRef(
89
+ var Button = React8.forwardRef(
139
90
  ({ className, variant, size, asChild = false, ...props }, ref) => {
140
91
  const Comp = asChild ? Slot : "button";
141
92
  return /* @__PURE__ */ jsx(
@@ -234,59 +185,22 @@ function ButtonGroupSeparator({
234
185
  }
235
186
  );
236
187
  }
237
- var Input = React10.forwardRef(
238
- ({ className, type, ...props }, ref) => {
239
- return /* @__PURE__ */ jsx(
240
- "input",
241
- {
242
- type,
243
- "data-slot": "input",
244
- className: cn(
245
- // Base
246
- "flex h-10 w-full min-w-0 text-sm",
247
- "px-[var(--j3m-spacing-s)] py-[var(--j3m-spacing-xs)]",
248
- "rounded-[var(--j3m-radius-2xs)]",
249
- // Colors
250
- "bg-[var(--color-bg-surface)]",
251
- "text-[var(--color-text-main)]",
252
- "border border-[var(--color-border-subtle)]",
253
- // Placeholder
254
- "placeholder:text-[var(--color-text-soft)]",
255
- // Focus state
256
- "focus-visible:outline-none",
257
- "focus-visible:ring-2",
258
- "focus-visible:ring-[var(--j3m-primary-300)]",
259
- "focus-visible:ring-offset-1",
260
- "focus-visible:border-[var(--j3m-primary-300)]",
261
- // Hover state
262
- "hover:border-[var(--color-border-strong)]",
263
- // Disabled state
264
- "disabled:cursor-not-allowed",
265
- "disabled:opacity-50",
266
- "disabled:bg-[var(--color-bg-subtle)]",
267
- // Error state (via aria-invalid)
268
- "aria-invalid:border-[var(--j3m-red-100)]",
269
- "aria-invalid:focus-visible:ring-[var(--j3m-red-100)]",
270
- // File input
271
- "file:border-0",
272
- "file:bg-transparent",
273
- "file:text-sm",
274
- "file:font-medium",
275
- "file:text-[var(--color-text-main)]",
276
- // Selection
277
- "selection:bg-[var(--j3m-primary-100)]",
278
- "selection:text-[var(--color-text-main)]",
279
- // Transition
280
- "transition-colors duration-150",
281
- className
282
- ),
283
- ref,
284
- ...props
285
- }
286
- );
287
- }
288
- );
289
- Input.displayName = "Input";
188
+ function Input({ className, type, ...props }) {
189
+ return /* @__PURE__ */ jsx(
190
+ "input",
191
+ {
192
+ type,
193
+ "data-slot": "input",
194
+ className: cn(
195
+ "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
196
+ "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
197
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
198
+ className
199
+ ),
200
+ ...props
201
+ }
202
+ );
203
+ }
290
204
  function Textarea({ className, ...props }) {
291
205
  return /* @__PURE__ */ jsx(
292
206
  "textarea",
@@ -534,7 +448,7 @@ function Slider({
534
448
  max = 100,
535
449
  ...props
536
450
  }) {
537
- const _values = React10.useMemo(
451
+ const _values = React8.useMemo(
538
452
  () => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
539
453
  [value, defaultValue, min, max]
540
454
  );
@@ -820,7 +734,7 @@ function Toggle({
820
734
  }
821
735
  );
822
736
  }
823
- var ToggleGroupContext = React10.createContext({
737
+ var ToggleGroupContext = React8.createContext({
824
738
  size: "default",
825
739
  variant: "default",
826
740
  spacing: 0
@@ -857,7 +771,7 @@ function ToggleGroupItem({
857
771
  size,
858
772
  ...props
859
773
  }) {
860
- const context = React10.useContext(ToggleGroupContext);
774
+ const context = React8.useContext(ToggleGroupContext);
861
775
  return /* @__PURE__ */ jsx(
862
776
  ToggleGroupPrimitive.Item,
863
777
  {
@@ -912,7 +826,7 @@ function InputOTPSlot({
912
826
  className,
913
827
  ...props
914
828
  }) {
915
- const inputOTPContext = React10.useContext(OTPInputContext);
829
+ const inputOTPContext = React8.useContext(OTPInputContext);
916
830
  const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
917
831
  return /* @__PURE__ */ jsxs(
918
832
  "div",
@@ -951,7 +865,7 @@ function Label2({
951
865
  );
952
866
  }
953
867
  var Form = FormProvider;
954
- var FormFieldContext = React10.createContext(
868
+ var FormFieldContext = React8.createContext(
955
869
  {}
956
870
  );
957
871
  var FormField = ({
@@ -960,8 +874,8 @@ var FormField = ({
960
874
  return /* @__PURE__ */ jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx(Controller, { ...props }) });
961
875
  };
962
876
  var useFormField = () => {
963
- const fieldContext = React10.useContext(FormFieldContext);
964
- const itemContext = React10.useContext(FormItemContext);
877
+ const fieldContext = React8.useContext(FormFieldContext);
878
+ const itemContext = React8.useContext(FormItemContext);
965
879
  const { getFieldState } = useFormContext();
966
880
  const formState = useFormState({ name: fieldContext.name });
967
881
  const fieldState = getFieldState(fieldContext.name, formState);
@@ -978,11 +892,11 @@ var useFormField = () => {
978
892
  ...fieldState
979
893
  };
980
894
  };
981
- var FormItemContext = React10.createContext(
895
+ var FormItemContext = React8.createContext(
982
896
  {}
983
897
  );
984
898
  function FormItem({ className, ...props }) {
985
- const id = React10.useId();
899
+ const id = React8.useId();
986
900
  return /* @__PURE__ */ jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx(
987
901
  "div",
988
902
  {
@@ -1261,148 +1175,69 @@ function FieldError({
1261
1175
  }
1262
1176
  );
1263
1177
  }
1264
- var cardVariants = cva(
1265
- // Base styles
1266
- "flex flex-col rounded-[var(--j3m-radius-2xs)]",
1267
- {
1268
- variants: {
1269
- variant: {
1270
- // Default solid card
1271
- default: [
1272
- "bg-[var(--color-bg-surface)]",
1273
- "border border-[var(--color-border-subtle)]",
1274
- "text-[var(--color-text-main)]",
1275
- "shadow-sm"
1276
- ].join(" "),
1277
- // Glass Light - for light backgrounds or over images
1278
- "glass-light": [
1279
- "bg-[var(--j3m-glass-light)]",
1280
- "backdrop-blur-[var(--j3m-blur-md)]",
1281
- "border border-[var(--j3m-glass-border-light)]",
1282
- "text-[var(--color-text-main)]",
1283
- "shadow-[var(--j3m-glass-shadow-md)]"
1284
- ].join(" "),
1285
- // Glass Dark - for light backgrounds, dark card
1286
- "glass-dark": [
1287
- "bg-[var(--j3m-glass-dark)]",
1288
- "backdrop-blur-[var(--j3m-blur-md)]",
1289
- "border border-[var(--j3m-glass-border-dark)]",
1290
- "text-white",
1291
- "shadow-[var(--j3m-glass-shadow-lg)]"
1292
- ].join(" "),
1293
- // Glass Neutral - subtle frosted effect
1294
- "glass-neutral": [
1295
- "bg-[var(--j3m-glass-neutral)]",
1296
- "backdrop-blur-[var(--j3m-blur-lg)]",
1297
- "border border-[var(--j3m-glass-border-subtle)]",
1298
- "text-[var(--color-text-main)]",
1299
- "shadow-[var(--j3m-glass-shadow-sm)]"
1300
- ].join(" "),
1301
- // Glass Primary - with orange tint
1302
- "glass-primary": [
1303
- "bg-[var(--j3m-glass-primary)]",
1304
- "backdrop-blur-[var(--j3m-blur-lg)]",
1305
- "border border-[var(--j3m-glass-border-light)]",
1306
- "text-[var(--color-text-main)]",
1307
- "shadow-[var(--j3m-glass-shadow-glow)]"
1308
- ].join(" ")
1309
- }
1310
- },
1311
- defaultVariants: {
1312
- variant: "default"
1313
- }
1314
- }
1315
- );
1316
- var Card = React10.forwardRef(
1317
- ({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
1178
+ function Card({ className, ...props }) {
1179
+ return /* @__PURE__ */ jsx(
1318
1180
  "div",
1319
1181
  {
1320
- ref,
1321
1182
  "data-slot": "card",
1322
- className: cn(cardVariants({ variant, className })),
1183
+ className: cn(
1184
+ "bg-card text-card-foreground rounded-xl border shadow",
1185
+ className
1186
+ ),
1323
1187
  ...props
1324
1188
  }
1325
- )
1326
- );
1327
- Card.displayName = "Card";
1328
- var CardHeader = React10.forwardRef(
1329
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1189
+ );
1190
+ }
1191
+ function CardHeader({ className, ...props }) {
1192
+ return /* @__PURE__ */ jsx(
1330
1193
  "div",
1331
1194
  {
1332
- ref,
1333
1195
  "data-slot": "card-header",
1334
- className: cn(
1335
- "flex flex-col gap-[var(--j3m-spacing-2xs)]",
1336
- "px-[var(--j3m-spacing-l)] py-[var(--j3m-spacing-m)]",
1337
- className
1338
- ),
1196
+ className: cn("flex flex-col gap-1.5 p-6", className),
1339
1197
  ...props
1340
1198
  }
1341
- )
1342
- );
1343
- CardHeader.displayName = "CardHeader";
1344
- var CardTitle = React10.forwardRef(
1345
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1346
- "h3",
1199
+ );
1200
+ }
1201
+ function CardTitle({ className, ...props }) {
1202
+ return /* @__PURE__ */ jsx(
1203
+ "div",
1347
1204
  {
1348
- ref,
1349
1205
  "data-slot": "card-title",
1350
- className: cn(
1351
- "text-lg font-semibold leading-none tracking-tight",
1352
- className
1353
- ),
1206
+ className: cn("leading-none font-semibold tracking-tight", className),
1354
1207
  ...props
1355
1208
  }
1356
- )
1357
- );
1358
- CardTitle.displayName = "CardTitle";
1359
- var CardDescription = React10.forwardRef(
1360
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1361
- "p",
1209
+ );
1210
+ }
1211
+ function CardDescription({ className, ...props }) {
1212
+ return /* @__PURE__ */ jsx(
1213
+ "div",
1362
1214
  {
1363
- ref,
1364
1215
  "data-slot": "card-description",
1365
- className: cn(
1366
- "text-sm opacity-80",
1367
- className
1368
- ),
1216
+ className: cn("text-muted-foreground text-sm", className),
1369
1217
  ...props
1370
1218
  }
1371
- )
1372
- );
1373
- CardDescription.displayName = "CardDescription";
1374
- var CardContent = React10.forwardRef(
1375
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1219
+ );
1220
+ }
1221
+ function CardContent({ className, ...props }) {
1222
+ return /* @__PURE__ */ jsx(
1376
1223
  "div",
1377
1224
  {
1378
- ref,
1379
1225
  "data-slot": "card-content",
1380
- className: cn(
1381
- "px-[var(--j3m-spacing-l)] pb-[var(--j3m-spacing-m)]",
1382
- className
1383
- ),
1226
+ className: cn("p-6 pt-0", className),
1384
1227
  ...props
1385
1228
  }
1386
- )
1387
- );
1388
- CardContent.displayName = "CardContent";
1389
- var CardFooter = React10.forwardRef(
1390
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1229
+ );
1230
+ }
1231
+ function CardFooter({ className, ...props }) {
1232
+ return /* @__PURE__ */ jsx(
1391
1233
  "div",
1392
1234
  {
1393
- ref,
1394
1235
  "data-slot": "card-footer",
1395
- className: cn(
1396
- "flex items-center",
1397
- "px-[var(--j3m-spacing-l)] py-[var(--j3m-spacing-m)]",
1398
- "border-t border-[inherit]",
1399
- className
1400
- ),
1236
+ className: cn("flex items-center p-6 pt-0", className),
1401
1237
  ...props
1402
1238
  }
1403
- )
1404
- );
1405
- CardFooter.displayName = "CardFooter";
1239
+ );
1240
+ }
1406
1241
  function Table({ className, ...props }) {
1407
1242
  return /* @__PURE__ */ jsx(
1408
1243
  "div",
@@ -1857,8 +1692,8 @@ function CalendarDayButton({
1857
1692
  ...props
1858
1693
  }) {
1859
1694
  const defaultClassNames = getDefaultClassNames();
1860
- const ref = React10.useRef(null);
1861
- React10.useEffect(() => {
1695
+ const ref = React8.useRef(null);
1696
+ React8.useEffect(() => {
1862
1697
  if (modifiers.focused) ref.current?.focus();
1863
1698
  }, [modifiers.focused]);
1864
1699
  return /* @__PURE__ */ jsx(
@@ -1881,9 +1716,9 @@ function CalendarDayButton({
1881
1716
  }
1882
1717
  );
1883
1718
  }
1884
- var CarouselContext = React10.createContext(null);
1719
+ var CarouselContext = React8.createContext(null);
1885
1720
  function useCarousel() {
1886
- const context = React10.useContext(CarouselContext);
1721
+ const context = React8.useContext(CarouselContext);
1887
1722
  if (!context) {
1888
1723
  throw new Error("useCarousel must be used within a <Carousel />");
1889
1724
  }
@@ -1905,20 +1740,20 @@ function Carousel({
1905
1740
  },
1906
1741
  plugins
1907
1742
  );
1908
- const [canScrollPrev, setCanScrollPrev] = React10.useState(false);
1909
- const [canScrollNext, setCanScrollNext] = React10.useState(false);
1910
- const onSelect = React10.useCallback((api2) => {
1743
+ const [canScrollPrev, setCanScrollPrev] = React8.useState(false);
1744
+ const [canScrollNext, setCanScrollNext] = React8.useState(false);
1745
+ const onSelect = React8.useCallback((api2) => {
1911
1746
  if (!api2) return;
1912
1747
  setCanScrollPrev(api2.canScrollPrev());
1913
1748
  setCanScrollNext(api2.canScrollNext());
1914
1749
  }, []);
1915
- const scrollPrev = React10.useCallback(() => {
1750
+ const scrollPrev = React8.useCallback(() => {
1916
1751
  api?.scrollPrev();
1917
1752
  }, [api]);
1918
- const scrollNext = React10.useCallback(() => {
1753
+ const scrollNext = React8.useCallback(() => {
1919
1754
  api?.scrollNext();
1920
1755
  }, [api]);
1921
- const handleKeyDown = React10.useCallback(
1756
+ const handleKeyDown = React8.useCallback(
1922
1757
  (event) => {
1923
1758
  if (event.key === "ArrowLeft") {
1924
1759
  event.preventDefault();
@@ -1930,11 +1765,11 @@ function Carousel({
1930
1765
  },
1931
1766
  [scrollPrev, scrollNext]
1932
1767
  );
1933
- React10.useEffect(() => {
1768
+ React8.useEffect(() => {
1934
1769
  if (!api || !setApi) return;
1935
1770
  setApi(api);
1936
1771
  }, [api, setApi]);
1937
- React10.useEffect(() => {
1772
+ React8.useEffect(() => {
1938
1773
  if (!api) return;
1939
1774
  onSelect(api);
1940
1775
  api.on("reInit", onSelect);
@@ -2067,9 +1902,9 @@ function CarouselNext({
2067
1902
  );
2068
1903
  }
2069
1904
  var THEMES = { light: "", dark: ".dark" };
2070
- var ChartContext = React10.createContext(null);
1905
+ var ChartContext = React8.createContext(null);
2071
1906
  function useChart() {
2072
- const context = React10.useContext(ChartContext);
1907
+ const context = React8.useContext(ChartContext);
2073
1908
  if (!context) {
2074
1909
  throw new Error("useChart must be used within a <ChartContainer />");
2075
1910
  }
@@ -2082,7 +1917,7 @@ function ChartContainer({
2082
1917
  config,
2083
1918
  ...props
2084
1919
  }) {
2085
- const uniqueId = React10.useId();
1920
+ const uniqueId = React8.useId();
2086
1921
  const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
2087
1922
  return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
2088
1923
  "div",
@@ -2143,7 +1978,7 @@ function ChartTooltipContent({
2143
1978
  labelKey
2144
1979
  }) {
2145
1980
  const { config } = useChart();
2146
- const tooltipLabel = React10.useMemo(() => {
1981
+ const tooltipLabel = React8.useMemo(() => {
2147
1982
  if (hideLabel || !payload?.length) {
2148
1983
  return null;
2149
1984
  }
@@ -2866,16 +2701,16 @@ var M = (e, i, s, u, m, a, l, h) => {
2866
2701
  } catch (n) {
2867
2702
  }
2868
2703
  };
2869
- var x = React10.createContext(void 0);
2704
+ var x = React8.createContext(void 0);
2870
2705
  var U = { setTheme: (e) => {
2871
2706
  }, themes: [] };
2872
2707
  var z = () => {
2873
2708
  var e;
2874
- return (e = React10.useContext(x)) != null ? e : U;
2709
+ return (e = React8.useContext(x)) != null ? e : U;
2875
2710
  };
2876
- React10.memo(({ forcedTheme: e, storageKey: i, attribute: s, enableSystem: u, enableColorScheme: m, defaultTheme: a, value: l, themes: h, nonce: d, scriptProps: w }) => {
2711
+ React8.memo(({ forcedTheme: e, storageKey: i, attribute: s, enableSystem: u, enableColorScheme: m, defaultTheme: a, value: l, themes: h, nonce: d, scriptProps: w }) => {
2877
2712
  let p = JSON.stringify([s, i, a, e, h, l, u, m]).slice(1, -1);
2878
- return React10.createElement("script", { ...w, suppressHydrationWarning: true, nonce: typeof window == "undefined" ? d : "", dangerouslySetInnerHTML: { __html: `(${M.toString()})(${p})` } });
2713
+ return React8.createElement("script", { ...w, suppressHydrationWarning: true, nonce: typeof window == "undefined" ? d : "", dangerouslySetInnerHTML: { __html: `(${M.toString()})(${p})` } });
2879
2714
  });
2880
2715
  var Toaster = ({ ...props }) => {
2881
2716
  const { theme = "system" } = z();
@@ -3107,153 +2942,126 @@ function PaginationEllipsis({
3107
2942
  }
3108
2943
  );
3109
2944
  }
3110
- var Dialog = DialogPrimitive.Root;
3111
- var DialogTrigger = DialogPrimitive.Trigger;
3112
- var DialogPortal = DialogPrimitive.Portal;
3113
- var DialogClose = DialogPrimitive.Close;
3114
- var DialogOverlay = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3115
- DialogPrimitive.Overlay,
3116
- {
3117
- ref,
3118
- className: cn(
3119
- "fixed inset-0 z-50",
3120
- "bg-[var(--j3m-neutral-1000)]/50",
3121
- "backdrop-blur-sm",
3122
- // Animations
3123
- "data-[state=open]:animate-in",
3124
- "data-[state=closed]:animate-out",
3125
- "data-[state=closed]:fade-out-0",
3126
- "data-[state=open]:fade-in-0",
3127
- className
3128
- ),
3129
- ...props
3130
- }
3131
- ));
3132
- DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
3133
- var DialogContent = React10.forwardRef(({ className, children, showCloseButton = true, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
3134
- /* @__PURE__ */ jsx(DialogOverlay, {}),
3135
- /* @__PURE__ */ jsxs(
3136
- DialogPrimitive.Content,
2945
+ function Dialog({
2946
+ ...props
2947
+ }) {
2948
+ return /* @__PURE__ */ jsx(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
2949
+ }
2950
+ function DialogTrigger({
2951
+ ...props
2952
+ }) {
2953
+ return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { "data-slot": "dialog-trigger", ...props });
2954
+ }
2955
+ function DialogPortal({
2956
+ ...props
2957
+ }) {
2958
+ return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
2959
+ }
2960
+ function DialogClose({
2961
+ ...props
2962
+ }) {
2963
+ return /* @__PURE__ */ jsx(DialogPrimitive.Close, { "data-slot": "dialog-close", ...props });
2964
+ }
2965
+ function DialogOverlay({
2966
+ className,
2967
+ ...props
2968
+ }) {
2969
+ return /* @__PURE__ */ jsx(
2970
+ DialogPrimitive.Overlay,
3137
2971
  {
3138
- ref,
2972
+ "data-slot": "dialog-overlay",
3139
2973
  className: cn(
3140
- // Positioning
3141
- "fixed left-[50%] top-[50%] z-50",
3142
- "translate-x-[-50%] translate-y-[-50%]",
3143
- "w-full max-w-lg",
3144
- "max-h-[90vh] overflow-y-auto",
3145
- // Card-like styling
3146
- "rounded-[var(--j3m-radius-2xs)]",
3147
- "border border-[var(--color-border-subtle)]",
3148
- "bg-[var(--color-bg-surface)]",
3149
- "shadow-lg",
3150
- // Padding
3151
- "p-[var(--j3m-spacing-l)]",
3152
- // Animations
3153
- "duration-200",
3154
- "data-[state=open]:animate-in",
3155
- "data-[state=closed]:animate-out",
3156
- "data-[state=closed]:fade-out-0",
3157
- "data-[state=open]:fade-in-0",
3158
- "data-[state=closed]:zoom-out-95",
3159
- "data-[state=open]:zoom-in-95",
3160
- "data-[state=closed]:slide-out-to-left-1/2",
3161
- "data-[state=closed]:slide-out-to-top-[48%]",
3162
- "data-[state=open]:slide-in-from-left-1/2",
3163
- "data-[state=open]:slide-in-from-top-[48%]",
2974
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
3164
2975
  className
3165
2976
  ),
3166
- ...props,
3167
- children: [
3168
- children,
3169
- showCloseButton && /* @__PURE__ */ jsxs(
3170
- DialogPrimitive.Close,
3171
- {
3172
- className: cn(
3173
- "absolute right-[var(--j3m-spacing-m)] top-[var(--j3m-spacing-m)]",
3174
- "rounded-[var(--j3m-radius-2xs)]",
3175
- "p-1",
3176
- "text-[var(--color-text-muted)]",
3177
- "opacity-70",
3178
- "ring-offset-background",
3179
- "transition-opacity",
3180
- "hover:opacity-100",
3181
- "hover:bg-[var(--j3m-neutral-200)]",
3182
- "focus:outline-none",
3183
- "focus:ring-2",
3184
- "focus:ring-[var(--j3m-primary-300)]",
3185
- "focus:ring-offset-2",
3186
- "disabled:pointer-events-none"
3187
- ),
3188
- children: [
3189
- /* @__PURE__ */ jsx(X, { className: "h-4 w-4" }),
3190
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
3191
- ]
3192
- }
3193
- )
3194
- ]
2977
+ ...props
3195
2978
  }
3196
- )
3197
- ] }));
3198
- DialogContent.displayName = DialogPrimitive.Content.displayName;
3199
- var DialogHeader = ({
2979
+ );
2980
+ }
2981
+ function DialogContent({
3200
2982
  className,
2983
+ children,
2984
+ showCloseButton = true,
3201
2985
  ...props
3202
- }) => /* @__PURE__ */ jsx(
3203
- "div",
3204
- {
3205
- className: cn(
3206
- "flex flex-col gap-[var(--j3m-spacing-2xs)]",
3207
- "mb-[var(--j3m-spacing-m)]",
3208
- "text-center sm:text-left",
3209
- className
3210
- ),
3211
- ...props
3212
- }
3213
- );
3214
- DialogHeader.displayName = "DialogHeader";
3215
- var DialogFooter = ({
2986
+ }) {
2987
+ return /* @__PURE__ */ jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [
2988
+ /* @__PURE__ */ jsx(DialogOverlay, {}),
2989
+ /* @__PURE__ */ jsxs(
2990
+ DialogPrimitive.Content,
2991
+ {
2992
+ "data-slot": "dialog-content",
2993
+ className: cn(
2994
+ "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 p-6 shadow-lg duration-200 sm:max-w-lg",
2995
+ className
2996
+ ),
2997
+ ...props,
2998
+ children: [
2999
+ children,
3000
+ showCloseButton && /* @__PURE__ */ jsxs(
3001
+ DialogPrimitive.Close,
3002
+ {
3003
+ "data-slot": "dialog-close",
3004
+ className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
3005
+ children: [
3006
+ /* @__PURE__ */ jsx(XIcon, {}),
3007
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
3008
+ ]
3009
+ }
3010
+ )
3011
+ ]
3012
+ }
3013
+ )
3014
+ ] });
3015
+ }
3016
+ function DialogHeader({ className, ...props }) {
3017
+ return /* @__PURE__ */ jsx(
3018
+ "div",
3019
+ {
3020
+ "data-slot": "dialog-header",
3021
+ className: cn("flex flex-col gap-2 text-center sm:text-left", className),
3022
+ ...props
3023
+ }
3024
+ );
3025
+ }
3026
+ function DialogFooter({ className, ...props }) {
3027
+ return /* @__PURE__ */ jsx(
3028
+ "div",
3029
+ {
3030
+ "data-slot": "dialog-footer",
3031
+ className: cn(
3032
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
3033
+ className
3034
+ ),
3035
+ ...props
3036
+ }
3037
+ );
3038
+ }
3039
+ function DialogTitle({
3216
3040
  className,
3217
3041
  ...props
3218
- }) => /* @__PURE__ */ jsx(
3219
- "div",
3220
- {
3221
- className: cn(
3222
- "flex flex-col-reverse sm:flex-row sm:justify-end",
3223
- "gap-[var(--j3m-spacing-s)]",
3224
- "mt-[var(--j3m-spacing-l)]",
3225
- className
3226
- ),
3227
- ...props
3228
- }
3229
- );
3230
- DialogFooter.displayName = "DialogFooter";
3231
- var DialogTitle = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3232
- DialogPrimitive.Title,
3233
- {
3234
- ref,
3235
- className: cn(
3236
- "text-lg font-semibold leading-none tracking-tight",
3237
- "text-[var(--color-text-main)]",
3238
- className
3239
- ),
3240
- ...props
3241
- }
3242
- ));
3243
- DialogTitle.displayName = DialogPrimitive.Title.displayName;
3244
- var DialogDescription = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3245
- DialogPrimitive.Description,
3246
- {
3247
- ref,
3248
- className: cn(
3249
- "text-sm",
3250
- "text-[var(--color-text-muted)]",
3251
- className
3252
- ),
3253
- ...props
3254
- }
3255
- ));
3256
- DialogDescription.displayName = DialogPrimitive.Description.displayName;
3042
+ }) {
3043
+ return /* @__PURE__ */ jsx(
3044
+ DialogPrimitive.Title,
3045
+ {
3046
+ "data-slot": "dialog-title",
3047
+ className: cn("text-lg leading-none font-semibold", className),
3048
+ ...props
3049
+ }
3050
+ );
3051
+ }
3052
+ function DialogDescription({
3053
+ className,
3054
+ ...props
3055
+ }) {
3056
+ return /* @__PURE__ */ jsx(
3057
+ DialogPrimitive.Description,
3058
+ {
3059
+ "data-slot": "dialog-description",
3060
+ className: cn("text-muted-foreground text-sm", className),
3061
+ ...props
3062
+ }
3063
+ );
3064
+ }
3257
3065
  function Command({
3258
3066
  className,
3259
3067
  ...props
@@ -4563,12 +4371,17 @@ function CollapsibleTrigger2({
4563
4371
  );
4564
4372
  }
4565
4373
  function CollapsibleContent2({
4374
+ className,
4566
4375
  ...props
4567
4376
  }) {
4568
4377
  return /* @__PURE__ */ jsx(
4569
4378
  CollapsiblePrimitive.CollapsibleContent,
4570
4379
  {
4571
4380
  "data-slot": "collapsible-content",
4381
+ className: cn(
4382
+ "data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down overflow-hidden",
4383
+ className
4384
+ ),
4572
4385
  ...props
4573
4386
  }
4574
4387
  );
@@ -4618,9 +4431,9 @@ var SIDEBAR_WIDTH = "16rem";
4618
4431
  var SIDEBAR_WIDTH_MOBILE = "18rem";
4619
4432
  var SIDEBAR_WIDTH_ICON = "3rem";
4620
4433
  var SIDEBAR_KEYBOARD_SHORTCUT = "b";
4621
- var SidebarContext = React10.createContext(null);
4434
+ var SidebarContext = React8.createContext(null);
4622
4435
  function useSidebar() {
4623
- const context = React10.useContext(SidebarContext);
4436
+ const context = React8.useContext(SidebarContext);
4624
4437
  if (!context) {
4625
4438
  throw new Error("useSidebar must be used within a SidebarProvider.");
4626
4439
  }
@@ -4636,10 +4449,10 @@ function SidebarProvider({
4636
4449
  ...props
4637
4450
  }) {
4638
4451
  const isMobile = useIsMobile();
4639
- const [openMobile, setOpenMobile] = React10.useState(false);
4640
- const [_open, _setOpen] = React10.useState(defaultOpen);
4452
+ const [openMobile, setOpenMobile] = React8.useState(false);
4453
+ const [_open, _setOpen] = React8.useState(defaultOpen);
4641
4454
  const open = openProp ?? _open;
4642
- const setOpen = React10.useCallback(
4455
+ const setOpen = React8.useCallback(
4643
4456
  (value) => {
4644
4457
  const openState = typeof value === "function" ? value(open) : value;
4645
4458
  if (setOpenProp) {
@@ -4651,10 +4464,10 @@ function SidebarProvider({
4651
4464
  },
4652
4465
  [setOpenProp, open]
4653
4466
  );
4654
- const toggleSidebar = React10.useCallback(() => {
4467
+ const toggleSidebar = React8.useCallback(() => {
4655
4468
  return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
4656
4469
  }, [isMobile, setOpen, setOpenMobile]);
4657
- React10.useEffect(() => {
4470
+ React8.useEffect(() => {
4658
4471
  const handleKeyDown = (event) => {
4659
4472
  if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
4660
4473
  event.preventDefault();
@@ -4665,7 +4478,7 @@ function SidebarProvider({
4665
4478
  return () => window.removeEventListener("keydown", handleKeyDown);
4666
4479
  }, [toggleSidebar]);
4667
4480
  const state = open ? "expanded" : "collapsed";
4668
- const contextValue = React10.useMemo(
4481
+ const contextValue = React8.useMemo(
4669
4482
  () => ({
4670
4483
  state,
4671
4484
  open,
@@ -5123,7 +4936,7 @@ function SidebarMenuSkeleton({
5123
4936
  showIcon = false,
5124
4937
  ...props
5125
4938
  }) {
5126
- const width = React10.useMemo(() => {
4939
+ const width = React8.useMemo(() => {
5127
4940
  return `${Math.floor(Math.random() * 40) + 50}%`;
5128
4941
  }, []);
5129
4942
  return /* @__PURE__ */ jsxs(
@@ -5266,7 +5079,7 @@ var sectionVariants = cva(
5266
5079
  }
5267
5080
  );
5268
5081
  var isGlassVariant = (variant) => variant?.startsWith("glass-") ?? false;
5269
- var Section = React10.forwardRef(
5082
+ var Section = React8.forwardRef(
5270
5083
  ({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
5271
5084
  "section",
5272
5085
  {
@@ -5278,7 +5091,7 @@ var Section = React10.forwardRef(
5278
5091
  )
5279
5092
  );
5280
5093
  Section.displayName = "Section";
5281
- var SectionHeader = React10.forwardRef(
5094
+ var SectionHeader = React8.forwardRef(
5282
5095
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5283
5096
  "div",
5284
5097
  {
@@ -5293,7 +5106,7 @@ var SectionHeader = React10.forwardRef(
5293
5106
  )
5294
5107
  );
5295
5108
  SectionHeader.displayName = "SectionHeader";
5296
- var SectionTitle = React10.forwardRef(
5109
+ var SectionTitle = React8.forwardRef(
5297
5110
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5298
5111
  "h2",
5299
5112
  {
@@ -5307,7 +5120,7 @@ var SectionTitle = React10.forwardRef(
5307
5120
  )
5308
5121
  );
5309
5122
  SectionTitle.displayName = "SectionTitle";
5310
- var SectionDescription = React10.forwardRef(
5123
+ var SectionDescription = React8.forwardRef(
5311
5124
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5312
5125
  "p",
5313
5126
  {
@@ -5321,7 +5134,7 @@ var SectionDescription = React10.forwardRef(
5321
5134
  )
5322
5135
  );
5323
5136
  SectionDescription.displayName = "SectionDescription";
5324
- var SectionContent = React10.forwardRef(
5137
+ var SectionContent = React8.forwardRef(
5325
5138
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5326
5139
  "div",
5327
5140
  {
@@ -5335,7 +5148,7 @@ var SectionContent = React10.forwardRef(
5335
5148
  )
5336
5149
  );
5337
5150
  SectionContent.displayName = "SectionContent";
5338
- var SectionFooter = React10.forwardRef(
5151
+ var SectionFooter = React8.forwardRef(
5339
5152
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5340
5153
  "div",
5341
5154
  {
@@ -5352,6 +5165,6 @@ var SectionFooter = React10.forwardRef(
5352
5165
  );
5353
5166
  SectionFooter.displayName = "SectionFooter";
5354
5167
 
5355
- 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 };
5168
+ 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, navigationMenuTriggerStyle, sectionVariants, toggleVariants, useFormField, useIsMobile, useSidebar };
5356
5169
  //# sourceMappingURL=index.js.map
5357
5170
  //# sourceMappingURL=index.js.map