@windrun-huaiin/base-ui 3.3.0 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/index.d.mts +2 -38
  2. package/dist/index.d.ts +2 -38
  3. package/dist/index.js +187 -4263
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +184 -4037
  6. package/dist/index.mjs.map +1 -1
  7. package/dist/ui/index.d.mts +37 -711
  8. package/dist/ui/index.d.ts +37 -711
  9. package/dist/ui/index.js +172 -4248
  10. package/dist/ui/index.js.map +1 -1
  11. package/dist/ui/index.mjs +171 -4024
  12. package/dist/ui/index.mjs.map +1 -1
  13. package/package.json +2 -36
  14. package/src/ui/index.ts +2 -48
  15. package/src/ui/accordion.tsx +0 -58
  16. package/src/ui/alert.tsx +0 -59
  17. package/src/ui/aspect-ratio.tsx +0 -7
  18. package/src/ui/avatar.tsx +0 -50
  19. package/src/ui/badge.tsx +0 -36
  20. package/src/ui/breadcrumb.tsx +0 -115
  21. package/src/ui/calendar.tsx +0 -66
  22. package/src/ui/card.tsx +0 -79
  23. package/src/ui/carousel.tsx +0 -262
  24. package/src/ui/chart.tsx +0 -365
  25. package/src/ui/checkbox.tsx +0 -30
  26. package/src/ui/collapsible.tsx +0 -11
  27. package/src/ui/command.tsx +0 -153
  28. package/src/ui/context-menu.tsx +0 -200
  29. package/src/ui/dialog.tsx +0 -122
  30. package/src/ui/drawer.tsx +0 -118
  31. package/src/ui/form.tsx +0 -178
  32. package/src/ui/hover-card.tsx +0 -29
  33. package/src/ui/input-otp.tsx +0 -71
  34. package/src/ui/input.tsx +0 -22
  35. package/src/ui/menubar.tsx +0 -236
  36. package/src/ui/navigation-menu.tsx +0 -128
  37. package/src/ui/pagination.tsx +0 -117
  38. package/src/ui/popover.tsx +0 -31
  39. package/src/ui/progress.tsx +0 -28
  40. package/src/ui/radio-group.tsx +0 -44
  41. package/src/ui/resizable.tsx +0 -45
  42. package/src/ui/scroll-area.tsx +0 -48
  43. package/src/ui/select.tsx +0 -160
  44. package/src/ui/separator.tsx +0 -31
  45. package/src/ui/sheet.tsx +0 -140
  46. package/src/ui/sidebar.tsx +0 -763
  47. package/src/ui/skeleton.tsx +0 -15
  48. package/src/ui/slider.tsx +0 -28
  49. package/src/ui/sonner.tsx +0 -31
  50. package/src/ui/switch.tsx +0 -29
  51. package/src/ui/table.tsx +0 -117
  52. package/src/ui/tabs.tsx +0 -55
  53. package/src/ui/textarea.tsx +0 -22
  54. package/src/ui/toast.tsx +0 -129
  55. package/src/ui/toaster.tsx +0 -35
  56. package/src/ui/toggle-group.tsx +0 -61
  57. package/src/ui/toggle.tsx +0 -45
  58. package/src/ui/tooltip.tsx +0 -30
  59. package/src/ui/use-mobile.tsx +0 -19
  60. package/src/ui/use-toast.ts +0 -194
package/dist/index.mjs CHANGED
@@ -34,9 +34,21 @@ var __export = (target, all) => {
34
34
  __defProp(target, name, { get: all[name], enumerable: true });
35
35
  };
36
36
 
37
- // src/ui/accordion.tsx
37
+ // src/ui/alert-dialog.tsx
38
+ import * as React31 from "react";
39
+ import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
40
+
41
+ // ../lib/src/utils.ts
42
+ import { clsx } from "clsx";
43
+ import { twMerge } from "tailwind-merge";
44
+ function cn(...inputs) {
45
+ return twMerge(clsx(inputs));
46
+ }
47
+
48
+ // src/ui/button.tsx
38
49
  import * as React30 from "react";
39
- import * as AccordionPrimitive from "@radix-ui/react-accordion";
50
+ import { Slot } from "@radix-ui/react-slot";
51
+ import { cva } from "class-variance-authority";
40
52
 
41
53
  // src/assets/github.tsx
42
54
  import React from "react";
@@ -1311,8 +1323,8 @@ function getGlobalIcon(iconKey, createElement) {
1311
1323
  }
1312
1324
  return globalLucideIcons[DEFAULT_FALLBACK_ICON];
1313
1325
  }
1314
- const Icon2 = globalLucideIcons[iconKey];
1315
- if (!Icon2) {
1326
+ const Icon = globalLucideIcons[iconKey];
1327
+ if (!Icon) {
1316
1328
  if (typeof process !== "undefined" && ((_a = process.env) == null ? void 0 : _a.NODE_ENV) !== "production") {
1317
1329
  console.warn(
1318
1330
  `[global-icon] iconKey "${iconKey}" is not defined in globalIcons, will use default "${String(DEFAULT_FALLBACK_ICON)}" icon, please check!`
@@ -1325,9 +1337,9 @@ function getGlobalIcon(iconKey, createElement) {
1325
1337
  return FallbackIcon;
1326
1338
  }
1327
1339
  if (createElement) {
1328
- return React29.createElement(Icon2);
1340
+ return React29.createElement(Icon);
1329
1341
  }
1330
- return Icon2;
1342
+ return Icon;
1331
1343
  }
1332
1344
  function getIconElement(icon) {
1333
1345
  return getGlobalIcon(icon, true);
@@ -1335,69 +1347,8 @@ function getIconElement(icon) {
1335
1347
  var DefaultSiteIcon = () => /* @__PURE__ */ jsx29(globalLucideIcons.Zap, { className: `h-8 w-8 rounded-full p-1 shadow-lg ring-0.5 border border-purple-500 ring-purple-500/20 ${themeIconColor}` });
1336
1348
  var NotFoundIcon = () => /* @__PURE__ */ jsx29(globalLucideIcons.SquareTerminal, { className: `h-8 w-8 rounded-full p-1 shadow-lg ring-0.5 border border-purple-500 ring-purple-500/20 ${themeIconColor}` });
1337
1349
 
1338
- // ../lib/src/utils.ts
1339
- import { clsx } from "clsx";
1340
- import { twMerge } from "tailwind-merge";
1341
- function cn(...inputs) {
1342
- return twMerge(clsx(inputs));
1343
- }
1344
-
1345
- // src/ui/accordion.tsx
1346
- import { jsx as jsx30, jsxs as jsxs7 } from "react/jsx-runtime";
1347
- var Accordion = AccordionPrimitive.Root;
1348
- var AccordionItem = React30.forwardRef((_a, ref) => {
1349
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1350
- return /* @__PURE__ */ jsx30(
1351
- AccordionPrimitive.Item,
1352
- __spreadValues({
1353
- ref,
1354
- className: cn("border-b", className)
1355
- }, props)
1356
- );
1357
- });
1358
- AccordionItem.displayName = "AccordionItem";
1359
- var AccordionTrigger = React30.forwardRef((_a, ref) => {
1360
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
1361
- return /* @__PURE__ */ jsx30(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs7(
1362
- AccordionPrimitive.Trigger,
1363
- __spreadProps(__spreadValues({
1364
- ref,
1365
- className: cn(
1366
- "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
1367
- className
1368
- )
1369
- }, props), {
1370
- children: [
1371
- children,
1372
- /* @__PURE__ */ jsx30(globalLucideIcons.ChevronDown, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
1373
- ]
1374
- })
1375
- ) });
1376
- });
1377
- AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
1378
- var AccordionContent = React30.forwardRef((_a, ref) => {
1379
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
1380
- return /* @__PURE__ */ jsx30(
1381
- AccordionPrimitive.Content,
1382
- __spreadProps(__spreadValues({
1383
- ref,
1384
- className: "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down"
1385
- }, props), {
1386
- children: /* @__PURE__ */ jsx30("div", { className: cn("pb-4 pt-0", className), children })
1387
- })
1388
- );
1389
- });
1390
- AccordionContent.displayName = AccordionPrimitive.Content.displayName;
1391
-
1392
- // src/ui/alert-dialog.tsx
1393
- import * as React32 from "react";
1394
- import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
1395
-
1396
1350
  // src/ui/button.tsx
1397
- import * as React31 from "react";
1398
- import { Slot } from "@radix-ui/react-slot";
1399
- import { cva } from "class-variance-authority";
1400
- import { jsx as jsx31, jsxs as jsxs8 } from "react/jsx-runtime";
1351
+ import { jsx as jsx30, jsxs as jsxs7 } from "react/jsx-runtime";
1401
1352
  var buttonVariants = cva(
1402
1353
  "inline-flex items-center gap-2 whitespace-nowrap rounded-md text-sm ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
1403
1354
  {
@@ -1423,12 +1374,12 @@ var buttonVariants = cva(
1423
1374
  }
1424
1375
  }
1425
1376
  );
1426
- var Button = React31.forwardRef(
1377
+ var Button = React30.forwardRef(
1427
1378
  (_a, ref) => {
1428
1379
  var _b = _a, { className, variant, size, asChild = false, loading = false, children } = _b, props = __objRest(_b, ["className", "variant", "size", "asChild", "loading", "children"]);
1429
1380
  const Comp = asChild ? Slot : "button";
1430
1381
  if (asChild) {
1431
- return /* @__PURE__ */ jsx31(
1382
+ return /* @__PURE__ */ jsx30(
1432
1383
  Comp,
1433
1384
  __spreadProps(__spreadValues({
1434
1385
  className: cn(buttonVariants({ variant, size, className })),
@@ -1439,7 +1390,7 @@ var Button = React31.forwardRef(
1439
1390
  })
1440
1391
  );
1441
1392
  }
1442
- return /* @__PURE__ */ jsxs8(
1393
+ return /* @__PURE__ */ jsxs7(
1443
1394
  Comp,
1444
1395
  __spreadProps(__spreadValues({
1445
1396
  className: cn(buttonVariants({ variant, size, className })),
@@ -1448,7 +1399,7 @@ var Button = React31.forwardRef(
1448
1399
  }, props), {
1449
1400
  children: [
1450
1401
  children,
1451
- loading && /* @__PURE__ */ jsx31(globalLucideIcons.Loader2, { className: "ml-2 h-4 w-4 animate-spin" })
1402
+ loading && /* @__PURE__ */ jsx30(globalLucideIcons.Loader2, { className: "ml-2 h-4 w-4 animate-spin" })
1452
1403
  ]
1453
1404
  })
1454
1405
  );
@@ -1457,13 +1408,13 @@ var Button = React31.forwardRef(
1457
1408
  Button.displayName = "Button";
1458
1409
 
1459
1410
  // src/ui/alert-dialog.tsx
1460
- import { jsx as jsx32, jsxs as jsxs9 } from "react/jsx-runtime";
1411
+ import { jsx as jsx31, jsxs as jsxs8 } from "react/jsx-runtime";
1461
1412
  var AlertDialog = AlertDialogPrimitive.Root;
1462
1413
  var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
1463
1414
  var AlertDialogPortal = AlertDialogPrimitive.Portal;
1464
- var AlertDialogOverlay = React32.forwardRef((_a, ref) => {
1415
+ var AlertDialogOverlay = React31.forwardRef((_a, ref) => {
1465
1416
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1466
- return /* @__PURE__ */ jsx32(
1417
+ return /* @__PURE__ */ jsx31(
1467
1418
  AlertDialogPrimitive.Overlay,
1468
1419
  __spreadProps(__spreadValues({
1469
1420
  className: cn(
@@ -1476,11 +1427,11 @@ var AlertDialogOverlay = React32.forwardRef((_a, ref) => {
1476
1427
  );
1477
1428
  });
1478
1429
  AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
1479
- var AlertDialogContent = React32.forwardRef((_a, ref) => {
1430
+ var AlertDialogContent = React31.forwardRef((_a, ref) => {
1480
1431
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1481
- return /* @__PURE__ */ jsxs9(AlertDialogPortal, { children: [
1482
- /* @__PURE__ */ jsx32(AlertDialogOverlay, {}),
1483
- /* @__PURE__ */ jsx32(
1432
+ return /* @__PURE__ */ jsxs8(AlertDialogPortal, { children: [
1433
+ /* @__PURE__ */ jsx31(AlertDialogOverlay, {}),
1434
+ /* @__PURE__ */ jsx31(
1484
1435
  AlertDialogPrimitive.Content,
1485
1436
  __spreadValues({
1486
1437
  ref,
@@ -1499,7 +1450,7 @@ var AlertDialogHeader = (_a) => {
1499
1450
  } = _b, props = __objRest(_b, [
1500
1451
  "className"
1501
1452
  ]);
1502
- return /* @__PURE__ */ jsx32(
1453
+ return /* @__PURE__ */ jsx31(
1503
1454
  "div",
1504
1455
  __spreadValues({
1505
1456
  className: cn(
@@ -1516,7 +1467,7 @@ var AlertDialogFooter = (_a) => {
1516
1467
  } = _b, props = __objRest(_b, [
1517
1468
  "className"
1518
1469
  ]);
1519
- return /* @__PURE__ */ jsx32(
1470
+ return /* @__PURE__ */ jsx31(
1520
1471
  "div",
1521
1472
  __spreadValues({
1522
1473
  className: cn(
@@ -1527,9 +1478,9 @@ var AlertDialogFooter = (_a) => {
1527
1478
  );
1528
1479
  };
1529
1480
  AlertDialogFooter.displayName = "AlertDialogFooter";
1530
- var AlertDialogTitle = React32.forwardRef((_a, ref) => {
1481
+ var AlertDialogTitle = React31.forwardRef((_a, ref) => {
1531
1482
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1532
- return /* @__PURE__ */ jsx32(
1483
+ return /* @__PURE__ */ jsx31(
1533
1484
  AlertDialogPrimitive.Title,
1534
1485
  __spreadValues({
1535
1486
  ref,
@@ -1538,9 +1489,9 @@ var AlertDialogTitle = React32.forwardRef((_a, ref) => {
1538
1489
  );
1539
1490
  });
1540
1491
  AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
1541
- var AlertDialogDescription = React32.forwardRef((_a, ref) => {
1492
+ var AlertDialogDescription = React31.forwardRef((_a, ref) => {
1542
1493
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1543
- return /* @__PURE__ */ jsx32(
1494
+ return /* @__PURE__ */ jsx31(
1544
1495
  AlertDialogPrimitive.Description,
1545
1496
  __spreadValues({
1546
1497
  ref,
@@ -1549,9 +1500,9 @@ var AlertDialogDescription = React32.forwardRef((_a, ref) => {
1549
1500
  );
1550
1501
  });
1551
1502
  AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
1552
- var AlertDialogAction = React32.forwardRef((_a, ref) => {
1503
+ var AlertDialogAction = React31.forwardRef((_a, ref) => {
1553
1504
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1554
- return /* @__PURE__ */ jsx32(
1505
+ return /* @__PURE__ */ jsx31(
1555
1506
  AlertDialogPrimitive.Action,
1556
1507
  __spreadValues({
1557
1508
  ref,
@@ -1560,9 +1511,9 @@ var AlertDialogAction = React32.forwardRef((_a, ref) => {
1560
1511
  );
1561
1512
  });
1562
1513
  AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
1563
- var AlertDialogCancel = React32.forwardRef((_a, ref) => {
1514
+ var AlertDialogCancel = React31.forwardRef((_a, ref) => {
1564
1515
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1565
- return /* @__PURE__ */ jsx32(
1516
+ return /* @__PURE__ */ jsx31(
1566
1517
  AlertDialogPrimitive.Cancel,
1567
1518
  __spreadValues({
1568
1519
  ref,
@@ -1576,3794 +1527,217 @@ var AlertDialogCancel = React32.forwardRef((_a, ref) => {
1576
1527
  });
1577
1528
  AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
1578
1529
 
1579
- // src/ui/alert.tsx
1580
- import * as React33 from "react";
1581
- import { cva as cva2 } from "class-variance-authority";
1582
- import { jsx as jsx33 } from "react/jsx-runtime";
1583
- var alertVariants = cva2(
1584
- "relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",
1585
- {
1586
- variants: {
1587
- variant: {
1588
- default: "bg-background text-foreground",
1589
- destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"
1590
- }
1591
- },
1592
- defaultVariants: {
1593
- variant: "default"
1594
- }
1595
- }
1596
- );
1597
- var Alert = React33.forwardRef((_a, ref) => {
1598
- var _b = _a, { className, variant } = _b, props = __objRest(_b, ["className", "variant"]);
1599
- return /* @__PURE__ */ jsx33(
1600
- "div",
1601
- __spreadValues({
1530
+ // src/ui/dropdown-menu.tsx
1531
+ import * as React32 from "react";
1532
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
1533
+ import { jsx as jsx32, jsxs as jsxs9 } from "react/jsx-runtime";
1534
+ var DropdownMenu = DropdownMenuPrimitive.Root;
1535
+ var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
1536
+ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
1537
+ var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
1538
+ var DropdownMenuSub = DropdownMenuPrimitive.Sub;
1539
+ var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
1540
+ var DropdownMenuSubTrigger = React32.forwardRef((_a, ref) => {
1541
+ var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
1542
+ return /* @__PURE__ */ jsxs9(
1543
+ DropdownMenuPrimitive.SubTrigger,
1544
+ __spreadProps(__spreadValues({
1602
1545
  ref,
1603
- role: "alert",
1604
- className: cn(alertVariants({ variant }), className)
1605
- }, props)
1546
+ className: cn(
1547
+ "flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
1548
+ inset && "pl-8",
1549
+ className
1550
+ )
1551
+ }, props), {
1552
+ children: [
1553
+ children,
1554
+ /* @__PURE__ */ jsx32(globalLucideIcons.ChevronRight, { className: "ml-auto" })
1555
+ ]
1556
+ })
1606
1557
  );
1607
1558
  });
1608
- Alert.displayName = "Alert";
1609
- var AlertTitle = React33.forwardRef((_a, ref) => {
1559
+ DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
1560
+ var DropdownMenuSubContent = React32.forwardRef((_a, ref) => {
1610
1561
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1611
- return /* @__PURE__ */ jsx33(
1612
- "h5",
1562
+ return /* @__PURE__ */ jsx32(
1563
+ DropdownMenuPrimitive.SubContent,
1613
1564
  __spreadValues({
1614
1565
  ref,
1615
- className: cn("mb-1 font-medium leading-none tracking-tight", className)
1566
+ className: cn(
1567
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
1568
+ className
1569
+ )
1616
1570
  }, props)
1617
1571
  );
1618
1572
  });
1619
- AlertTitle.displayName = "AlertTitle";
1620
- var AlertDescription = React33.forwardRef((_a, ref) => {
1621
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1622
- return /* @__PURE__ */ jsx33(
1623
- "div",
1573
+ DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
1574
+ var DropdownMenuContent = React32.forwardRef((_a, ref) => {
1575
+ var _b = _a, { className, sideOffset = 4 } = _b, props = __objRest(_b, ["className", "sideOffset"]);
1576
+ return /* @__PURE__ */ jsx32(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx32(
1577
+ DropdownMenuPrimitive.Content,
1624
1578
  __spreadValues({
1625
1579
  ref,
1626
- className: cn("text-sm [&_p]:leading-relaxed", className)
1580
+ sideOffset,
1581
+ className: cn(
1582
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
1583
+ className
1584
+ )
1627
1585
  }, props)
1628
- );
1586
+ ) });
1629
1587
  });
1630
- AlertDescription.displayName = "AlertDescription";
1631
-
1632
- // src/ui/aspect-ratio.tsx
1633
- import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
1634
- var AspectRatio = AspectRatioPrimitive.Root;
1635
-
1636
- // src/ui/avatar.tsx
1637
- import * as React34 from "react";
1638
- import * as AvatarPrimitive from "@radix-ui/react-avatar";
1639
- import { jsx as jsx34 } from "react/jsx-runtime";
1640
- var Avatar = React34.forwardRef((_a, ref) => {
1641
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1642
- return /* @__PURE__ */ jsx34(
1643
- AvatarPrimitive.Root,
1588
+ DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
1589
+ var DropdownMenuItem = React32.forwardRef((_a, ref) => {
1590
+ var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
1591
+ return /* @__PURE__ */ jsx32(
1592
+ DropdownMenuPrimitive.Item,
1644
1593
  __spreadValues({
1645
1594
  ref,
1646
1595
  className: cn(
1647
- "relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",
1596
+ "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
1597
+ inset && "pl-8",
1648
1598
  className
1649
1599
  )
1650
1600
  }, props)
1651
1601
  );
1652
1602
  });
1653
- Avatar.displayName = AvatarPrimitive.Root.displayName;
1654
- var AvatarImage = React34.forwardRef((_a, ref) => {
1655
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1656
- return /* @__PURE__ */ jsx34(
1657
- AvatarPrimitive.Image,
1658
- __spreadValues({
1603
+ DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
1604
+ var DropdownMenuCheckboxItem = React32.forwardRef((_a, ref) => {
1605
+ var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
1606
+ return /* @__PURE__ */ jsxs9(
1607
+ DropdownMenuPrimitive.CheckboxItem,
1608
+ __spreadProps(__spreadValues({
1659
1609
  ref,
1660
- className: cn("aspect-square h-full w-full", className)
1661
- }, props)
1610
+ className: cn(
1611
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
1612
+ className
1613
+ ),
1614
+ checked
1615
+ }, props), {
1616
+ children: [
1617
+ /* @__PURE__ */ jsx32("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx32(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx32(globalLucideIcons.Check, { className: "h-4 w-4" }) }) }),
1618
+ children
1619
+ ]
1620
+ })
1662
1621
  );
1663
1622
  });
1664
- AvatarImage.displayName = AvatarPrimitive.Image.displayName;
1665
- var AvatarFallback = React34.forwardRef((_a, ref) => {
1666
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1667
- return /* @__PURE__ */ jsx34(
1668
- AvatarPrimitive.Fallback,
1669
- __spreadValues({
1623
+ DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
1624
+ var DropdownMenuRadioItem = React32.forwardRef((_a, ref) => {
1625
+ var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
1626
+ return /* @__PURE__ */ jsxs9(
1627
+ DropdownMenuPrimitive.RadioItem,
1628
+ __spreadProps(__spreadValues({
1670
1629
  ref,
1671
1630
  className: cn(
1672
- "flex h-full w-full items-center justify-center rounded-full bg-muted",
1631
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
1673
1632
  className
1674
1633
  )
1675
- }, props)
1634
+ }, props), {
1635
+ children: [
1636
+ /* @__PURE__ */ jsx32("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx32(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx32(globalLucideIcons.Circle, { className: "h-2 w-2 fill-current" }) }) }),
1637
+ children
1638
+ ]
1639
+ })
1676
1640
  );
1677
1641
  });
1678
- AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
1679
-
1680
- // src/ui/badge.tsx
1681
- import { cva as cva3 } from "class-variance-authority";
1682
- import { jsx as jsx35 } from "react/jsx-runtime";
1683
- var badgeVariants = cva3(
1684
- "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2",
1685
- {
1686
- variants: {
1687
- variant: {
1688
- default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
1689
- secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
1690
- destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
1691
- outline: "text-foreground"
1692
- }
1693
- },
1694
- defaultVariants: {
1695
- variant: "default"
1696
- }
1697
- }
1698
- );
1699
- function Badge(_a) {
1700
- var _b = _a, { className, variant } = _b, props = __objRest(_b, ["className", "variant"]);
1701
- return /* @__PURE__ */ jsx35("div", __spreadValues({ className: cn(badgeVariants({ variant }), className) }, props));
1702
- }
1703
-
1704
- // src/ui/breadcrumb.tsx
1705
- import * as React35 from "react";
1706
- import { Slot as Slot2 } from "@radix-ui/react-slot";
1707
- import { jsx as jsx36, jsxs as jsxs10 } from "react/jsx-runtime";
1708
- var Breadcrumb = React35.forwardRef((_a, ref) => {
1709
- var props = __objRest(_a, []);
1710
- return /* @__PURE__ */ jsx36("nav", __spreadValues({ ref, "aria-label": "breadcrumb" }, props));
1711
- });
1712
- Breadcrumb.displayName = "Breadcrumb";
1713
- var BreadcrumbList = React35.forwardRef((_a, ref) => {
1714
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1715
- return /* @__PURE__ */ jsx36(
1716
- "ol",
1642
+ DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
1643
+ var DropdownMenuLabel = React32.forwardRef((_a, ref) => {
1644
+ var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
1645
+ return /* @__PURE__ */ jsx32(
1646
+ DropdownMenuPrimitive.Label,
1717
1647
  __spreadValues({
1718
1648
  ref,
1719
1649
  className: cn(
1720
- "flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",
1650
+ "px-2 py-1.5 text-sm font-semibold",
1651
+ inset && "pl-8",
1721
1652
  className
1722
1653
  )
1723
1654
  }, props)
1724
1655
  );
1725
1656
  });
1726
- BreadcrumbList.displayName = "BreadcrumbList";
1727
- var BreadcrumbItem = React35.forwardRef((_a, ref) => {
1728
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1729
- return /* @__PURE__ */ jsx36(
1730
- "li",
1731
- __spreadValues({
1732
- ref,
1733
- className: cn("inline-flex items-center gap-1.5", className)
1734
- }, props)
1735
- );
1736
- });
1737
- BreadcrumbItem.displayName = "BreadcrumbItem";
1738
- var BreadcrumbLink = React35.forwardRef((_a, ref) => {
1739
- var _b = _a, { asChild, className } = _b, props = __objRest(_b, ["asChild", "className"]);
1740
- const Comp = asChild ? Slot2 : "a";
1741
- return /* @__PURE__ */ jsx36(
1742
- Comp,
1743
- __spreadValues({
1744
- ref,
1745
- className: cn("transition-colors hover:text-foreground", className)
1746
- }, props)
1747
- );
1748
- });
1749
- BreadcrumbLink.displayName = "BreadcrumbLink";
1750
- var BreadcrumbPage = React35.forwardRef((_a, ref) => {
1657
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
1658
+ var DropdownMenuSeparator = React32.forwardRef((_a, ref) => {
1751
1659
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1752
- return /* @__PURE__ */ jsx36(
1753
- "span",
1660
+ return /* @__PURE__ */ jsx32(
1661
+ DropdownMenuPrimitive.Separator,
1754
1662
  __spreadValues({
1755
1663
  ref,
1756
- role: "link",
1757
- "aria-disabled": "true",
1758
- "aria-current": "page",
1759
- className: cn("font-normal text-foreground", className)
1664
+ className: cn("-mx-1 my-1 h-px bg-muted", className)
1760
1665
  }, props)
1761
1666
  );
1762
1667
  });
1763
- BreadcrumbPage.displayName = "BreadcrumbPage";
1764
- var BreadcrumbSeparator = (_a) => {
1765
- var _b = _a, {
1766
- children,
1767
- className
1768
- } = _b, props = __objRest(_b, [
1769
- "children",
1770
- "className"
1771
- ]);
1772
- return /* @__PURE__ */ jsx36(
1773
- "li",
1774
- __spreadProps(__spreadValues({
1775
- role: "presentation",
1776
- "aria-hidden": "true",
1777
- className: cn("[&>svg]:w-3.5 [&>svg]:h-3.5", className)
1778
- }, props), {
1779
- children: children != null ? children : /* @__PURE__ */ jsx36(globalLucideIcons.ChevronRight, {})
1780
- })
1781
- );
1782
- };
1783
- BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
1784
- var BreadcrumbEllipsis = (_a) => {
1668
+ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
1669
+ var DropdownMenuShortcut = (_a) => {
1785
1670
  var _b = _a, {
1786
1671
  className
1787
1672
  } = _b, props = __objRest(_b, [
1788
1673
  "className"
1789
1674
  ]);
1790
- return /* @__PURE__ */ jsxs10(
1675
+ return /* @__PURE__ */ jsx32(
1791
1676
  "span",
1792
- __spreadProps(__spreadValues({
1793
- role: "presentation",
1794
- "aria-hidden": "true",
1795
- className: cn("flex h-9 w-9 items-center justify-center", className)
1796
- }, props), {
1797
- children: [
1798
- /* @__PURE__ */ jsx36(globalLucideIcons.MoreHorizontal, { className: "h-4 w-4" }),
1799
- /* @__PURE__ */ jsx36("span", { className: "sr-only", children: "More" })
1800
- ]
1801
- })
1802
- );
1803
- };
1804
- BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
1805
-
1806
- // src/ui/calendar.tsx
1807
- import { DayPicker } from "react-day-picker";
1808
- import { jsx as jsx37 } from "react/jsx-runtime";
1809
- function Calendar(_a) {
1810
- var _b = _a, {
1811
- className,
1812
- classNames,
1813
- showOutsideDays = true
1814
- } = _b, props = __objRest(_b, [
1815
- "className",
1816
- "classNames",
1817
- "showOutsideDays"
1818
- ]);
1819
- return /* @__PURE__ */ jsx37(
1820
- DayPicker,
1821
1677
  __spreadValues({
1822
- showOutsideDays,
1823
- className: cn("p-3", className),
1824
- classNames: __spreadValues({
1825
- months: "flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",
1826
- month: "space-y-4",
1827
- caption: "flex justify-center pt-1 relative items-center",
1828
- caption_label: "text-sm font-medium",
1829
- nav: "space-x-1 flex items-center",
1830
- nav_button: cn(
1831
- buttonVariants({ variant: "outline" }),
1832
- "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
1833
- ),
1834
- nav_button_previous: "absolute left-1",
1835
- nav_button_next: "absolute right-1",
1836
- table: "w-full border-collapse space-y-1",
1837
- head_row: "flex",
1838
- head_cell: "text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]",
1839
- row: "flex w-full mt-2",
1840
- cell: "h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20",
1841
- day: cn(
1842
- buttonVariants({ variant: "ghost" }),
1843
- "h-9 w-9 p-0 font-normal aria-selected:opacity-100"
1844
- ),
1845
- day_range_end: "day-range-end",
1846
- day_selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",
1847
- day_today: "bg-accent text-accent-foreground",
1848
- day_outside: "day-outside text-muted-foreground aria-selected:bg-accent/50 aria-selected:text-muted-foreground",
1849
- day_disabled: "text-muted-foreground opacity-50",
1850
- day_range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
1851
- day_hidden: "invisible"
1852
- }, classNames),
1853
- components: {
1854
- IconLeft: (_a2) => {
1855
- var _props = __objRest(_a2, []);
1856
- return /* @__PURE__ */ jsx37(globalLucideIcons.ChevronLeft, { className: "h-4 w-4" });
1857
- },
1858
- IconRight: (_b2) => {
1859
- var _props = __objRest(_b2, []);
1860
- return /* @__PURE__ */ jsx37(globalLucideIcons.ChevronRight, { className: "h-4 w-4" });
1861
- }
1862
- }
1678
+ className: cn("ml-auto text-xs tracking-widest opacity-60", className)
1863
1679
  }, props)
1864
1680
  );
1865
- }
1866
- Calendar.displayName = "Calendar";
1681
+ };
1682
+ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
1867
1683
 
1868
- // src/ui/card.tsx
1869
- import * as React36 from "react";
1870
- import { jsx as jsx38 } from "react/jsx-runtime";
1871
- var Card = React36.forwardRef((_a, ref) => {
1684
+ // src/ui/label.tsx
1685
+ import * as React33 from "react";
1686
+ import * as LabelPrimitive from "@radix-ui/react-label";
1687
+ import { cva as cva2 } from "class-variance-authority";
1688
+ import { jsx as jsx33 } from "react/jsx-runtime";
1689
+ var labelVariants = cva2(
1690
+ "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
1691
+ );
1692
+ var Label2 = React33.forwardRef((_a, ref) => {
1872
1693
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1873
- return /* @__PURE__ */ jsx38(
1874
- "div",
1694
+ return /* @__PURE__ */ jsx33(
1695
+ LabelPrimitive.Root,
1875
1696
  __spreadValues({
1876
1697
  ref,
1877
- className: cn(
1878
- "rounded-lg border bg-card text-card-foreground shadow-xs",
1879
- className
1880
- )
1698
+ className: cn(labelVariants(), className)
1881
1699
  }, props)
1882
1700
  );
1883
1701
  });
1884
- Card.displayName = "Card";
1885
- var CardHeader = React36.forwardRef((_a, ref) => {
1886
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1887
- return /* @__PURE__ */ jsx38(
1888
- "div",
1889
- __spreadValues({
1890
- ref,
1891
- className: cn("flex flex-col space-y-1.5 p-6", className)
1892
- }, props)
1893
- );
1894
- });
1895
- CardHeader.displayName = "CardHeader";
1896
- var CardTitle = React36.forwardRef((_a, ref) => {
1897
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1898
- return /* @__PURE__ */ jsx38(
1899
- "div",
1900
- __spreadValues({
1901
- ref,
1902
- className: cn(
1903
- "text-2xl font-semibold leading-none tracking-tight",
1904
- className
1905
- )
1906
- }, props)
1907
- );
1908
- });
1909
- CardTitle.displayName = "CardTitle";
1910
- var CardDescription = React36.forwardRef((_a, ref) => {
1911
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1912
- return /* @__PURE__ */ jsx38(
1913
- "div",
1914
- __spreadValues({
1915
- ref,
1916
- className: cn("text-sm text-muted-foreground", className)
1917
- }, props)
1918
- );
1919
- });
1920
- CardDescription.displayName = "CardDescription";
1921
- var CardContent = React36.forwardRef((_a, ref) => {
1922
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1923
- return /* @__PURE__ */ jsx38("div", __spreadValues({ ref, className: cn("p-6 pt-0", className) }, props));
1924
- });
1925
- CardContent.displayName = "CardContent";
1926
- var CardFooter = React36.forwardRef((_a, ref) => {
1927
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1928
- return /* @__PURE__ */ jsx38(
1929
- "div",
1930
- __spreadValues({
1931
- ref,
1932
- className: cn("flex items-center p-6 pt-0", className)
1933
- }, props)
1934
- );
1935
- });
1936
- CardFooter.displayName = "CardFooter";
1702
+ Label2.displayName = LabelPrimitive.Root.displayName;
1937
1703
 
1938
- // src/ui/carousel.tsx
1939
- import * as React37 from "react";
1940
- import useEmblaCarousel from "embla-carousel-react";
1941
- import { jsx as jsx39, jsxs as jsxs11 } from "react/jsx-runtime";
1942
- var CarouselContext = React37.createContext(null);
1943
- function useCarousel() {
1944
- const context = React37.useContext(CarouselContext);
1945
- if (!context) {
1946
- throw new Error("useCarousel must be used within a <Carousel />");
1947
- }
1948
- return context;
1949
- }
1950
- var Carousel = React37.forwardRef(
1704
+ // src/ui/language-button.tsx
1705
+ import * as React34 from "react";
1706
+ import { jsx as jsx34 } from "react/jsx-runtime";
1707
+ var LanguageButton = React34.forwardRef(
1951
1708
  (_a, ref) => {
1952
- var _b = _a, {
1953
- orientation = "horizontal",
1954
- opts,
1955
- setApi,
1956
- plugins,
1957
- className,
1958
- children
1959
- } = _b, props = __objRest(_b, [
1960
- "orientation",
1961
- "opts",
1962
- "setApi",
1963
- "plugins",
1964
- "className",
1965
- "children"
1966
- ]);
1967
- const [carouselRef, api] = useEmblaCarousel(
1968
- __spreadProps(__spreadValues({}, opts), {
1969
- axis: orientation === "horizontal" ? "x" : "y"
1970
- }),
1971
- plugins
1972
- );
1973
- const [canScrollPrev, setCanScrollPrev] = React37.useState(false);
1974
- const [canScrollNext, setCanScrollNext] = React37.useState(false);
1975
- const onSelect = React37.useCallback((api2) => {
1976
- if (!api2) {
1977
- return;
1978
- }
1979
- setCanScrollPrev(api2.canScrollPrev());
1980
- setCanScrollNext(api2.canScrollNext());
1981
- }, []);
1982
- const scrollPrev = React37.useCallback(() => {
1983
- api == null ? void 0 : api.scrollPrev();
1984
- }, [api]);
1985
- const scrollNext = React37.useCallback(() => {
1986
- api == null ? void 0 : api.scrollNext();
1987
- }, [api]);
1988
- const handleKeyDown = React37.useCallback(
1989
- (event) => {
1990
- if (event.key === "ArrowLeft") {
1991
- event.preventDefault();
1992
- scrollPrev();
1993
- } else if (event.key === "ArrowRight") {
1994
- event.preventDefault();
1995
- scrollNext();
1996
- }
1997
- },
1998
- [scrollPrev, scrollNext]
1999
- );
2000
- React37.useEffect(() => {
2001
- if (!api || !setApi) {
2002
- return;
2003
- }
2004
- setApi(api);
2005
- }, [api, setApi]);
2006
- React37.useEffect(() => {
2007
- if (!api) {
2008
- return;
2009
- }
2010
- onSelect(api);
2011
- api.on("reInit", onSelect);
2012
- api.on("select", onSelect);
2013
- return () => {
2014
- api == null ? void 0 : api.off("select", onSelect);
2015
- };
2016
- }, [api, onSelect]);
2017
- return /* @__PURE__ */ jsx39(
2018
- CarouselContext.Provider,
2019
- {
2020
- value: {
2021
- carouselRef,
2022
- api,
2023
- opts,
2024
- orientation: orientation || ((opts == null ? void 0 : opts.axis) === "y" ? "vertical" : "horizontal"),
2025
- scrollPrev,
2026
- scrollNext,
2027
- canScrollPrev,
2028
- canScrollNext
2029
- },
2030
- children: /* @__PURE__ */ jsx39(
2031
- "div",
2032
- __spreadProps(__spreadValues({
2033
- ref,
2034
- onKeyDownCapture: handleKeyDown,
2035
- className: cn("relative", className),
2036
- role: "region",
2037
- "aria-roledescription": "carousel"
2038
- }, props), {
2039
- children
2040
- })
2041
- )
2042
- }
2043
- );
2044
- }
2045
- );
2046
- Carousel.displayName = "Carousel";
2047
- var CarouselContent = React37.forwardRef((_a, ref) => {
2048
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2049
- const { carouselRef, orientation } = useCarousel();
2050
- return /* @__PURE__ */ jsx39("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx39(
2051
- "div",
2052
- __spreadValues({
2053
- ref,
2054
- className: cn(
2055
- "flex",
2056
- orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
2057
- className
2058
- )
2059
- }, props)
2060
- ) });
2061
- });
2062
- CarouselContent.displayName = "CarouselContent";
2063
- var CarouselItem = React37.forwardRef((_a, ref) => {
2064
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2065
- const { orientation } = useCarousel();
2066
- return /* @__PURE__ */ jsx39(
2067
- "div",
2068
- __spreadValues({
2069
- ref,
2070
- role: "group",
2071
- "aria-roledescription": "slide",
2072
- className: cn(
2073
- "min-w-0 shrink-0 grow-0 basis-full",
2074
- orientation === "horizontal" ? "pl-4" : "pt-4",
2075
- className
2076
- )
2077
- }, props)
2078
- );
2079
- });
2080
- CarouselItem.displayName = "CarouselItem";
2081
- var CarouselPrevious = React37.forwardRef((_a, ref) => {
2082
- var _b = _a, { className, variant = "outline", size = "icon" } = _b, props = __objRest(_b, ["className", "variant", "size"]);
2083
- const { orientation, scrollPrev, canScrollPrev } = useCarousel();
2084
- return /* @__PURE__ */ jsxs11(
2085
- Button,
2086
- __spreadProps(__spreadValues({
2087
- ref,
2088
- variant,
2089
- size,
2090
- className: cn(
2091
- "absolute h-8 w-8 rounded-full",
2092
- orientation === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
2093
- className
2094
- ),
2095
- disabled: !canScrollPrev,
2096
- onClick: scrollPrev
2097
- }, props), {
2098
- children: [
2099
- /* @__PURE__ */ jsx39(globalLucideIcons.ArrowLeft, { className: "h-4 w-4" }),
2100
- /* @__PURE__ */ jsx39("span", { className: "sr-only", children: "Previous slide" })
2101
- ]
2102
- })
2103
- );
2104
- });
2105
- CarouselPrevious.displayName = "CarouselPrevious";
2106
- var CarouselNext = React37.forwardRef((_a, ref) => {
2107
- var _b = _a, { className, variant = "outline", size = "icon" } = _b, props = __objRest(_b, ["className", "variant", "size"]);
2108
- const { orientation, scrollNext, canScrollNext } = useCarousel();
2109
- return /* @__PURE__ */ jsxs11(
2110
- Button,
2111
- __spreadProps(__spreadValues({
2112
- ref,
2113
- variant,
2114
- size,
2115
- className: cn(
2116
- "absolute h-8 w-8 rounded-full",
2117
- orientation === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
2118
- className
2119
- ),
2120
- disabled: !canScrollNext,
2121
- onClick: scrollNext
2122
- }, props), {
2123
- children: [
2124
- /* @__PURE__ */ jsx39(globalLucideIcons.ArrowRight, { className: "h-4 w-4" }),
2125
- /* @__PURE__ */ jsx39("span", { className: "sr-only", children: "Next slide" })
2126
- ]
2127
- })
2128
- );
2129
- });
2130
- CarouselNext.displayName = "CarouselNext";
2131
-
2132
- // src/ui/chart.tsx
2133
- import * as React38 from "react";
2134
- import * as RechartsPrimitive from "recharts";
2135
- import { Fragment, jsx as jsx40, jsxs as jsxs12 } from "react/jsx-runtime";
2136
- var THEMES = { light: "", dark: ".dark" };
2137
- var ChartContext = React38.createContext(null);
2138
- function useChart() {
2139
- const context = React38.useContext(ChartContext);
2140
- if (!context) {
2141
- throw new Error("useChart must be used within a <ChartContainer />");
2142
- }
2143
- return context;
2144
- }
2145
- var ChartContainer = React38.forwardRef((_a, ref) => {
2146
- var _b = _a, { id, className, children, config } = _b, props = __objRest(_b, ["id", "className", "children", "config"]);
2147
- const uniqueId = React38.useId();
2148
- const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
2149
- return /* @__PURE__ */ jsx40(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs12(
2150
- "div",
2151
- __spreadProps(__spreadValues({
2152
- "data-chart": chartId,
2153
- ref,
2154
- className: cn(
2155
- "flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-hidden [&_.recharts-surface]:outline-hidden",
2156
- className
2157
- )
2158
- }, props), {
2159
- children: [
2160
- /* @__PURE__ */ jsx40(ChartStyle, { id: chartId, config }),
2161
- /* @__PURE__ */ jsx40(RechartsPrimitive.ResponsiveContainer, { children })
2162
- ]
2163
- })
2164
- ) });
2165
- });
2166
- ChartContainer.displayName = "Chart";
2167
- var ChartStyle = ({ id, config }) => {
2168
- const colorConfig = Object.entries(config).filter(
2169
- ([_, config2]) => config2.theme || config2.color
2170
- );
2171
- if (!colorConfig.length) {
2172
- return null;
2173
- }
2174
- return /* @__PURE__ */ jsx40(
2175
- "style",
2176
- {
2177
- dangerouslySetInnerHTML: {
2178
- __html: Object.entries(THEMES).map(
2179
- ([theme, prefix]) => `
2180
- ${prefix} [data-chart=${id}] {
2181
- ${colorConfig.map(([key, itemConfig]) => {
2182
- var _a;
2183
- const color = ((_a = itemConfig.theme) == null ? void 0 : _a[theme]) || itemConfig.color;
2184
- return color ? ` --color-${key}: ${color};` : null;
2185
- }).join("\n")}
2186
- }
2187
- `
2188
- ).join("\n")
2189
- }
2190
- }
2191
- );
2192
- };
2193
- var ChartTooltip = RechartsPrimitive.Tooltip;
2194
- var ChartTooltipContent = React38.forwardRef(
2195
- ({
2196
- active,
2197
- payload,
2198
- className,
2199
- indicator = "dot",
2200
- hideLabel = false,
2201
- hideIndicator = false,
2202
- label,
2203
- labelFormatter,
2204
- labelClassName,
2205
- formatter,
2206
- color,
2207
- nameKey,
2208
- labelKey
2209
- }, ref) => {
2210
- const { config } = useChart();
2211
- const tooltipLabel = React38.useMemo(() => {
2212
- var _a;
2213
- if (hideLabel || !(payload == null ? void 0 : payload.length)) {
2214
- return null;
2215
- }
2216
- const [item] = payload;
2217
- const key = `${labelKey || item.dataKey || item.name || "value"}`;
2218
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
2219
- const value = !labelKey && typeof label === "string" ? ((_a = config[label]) == null ? void 0 : _a.label) || label : itemConfig == null ? void 0 : itemConfig.label;
2220
- if (labelFormatter) {
2221
- return /* @__PURE__ */ jsx40("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
2222
- }
2223
- if (!value) {
2224
- return null;
2225
- }
2226
- return /* @__PURE__ */ jsx40("div", { className: cn("font-medium", labelClassName), children: value });
2227
- }, [
2228
- label,
2229
- labelFormatter,
2230
- payload,
2231
- hideLabel,
2232
- labelClassName,
2233
- config,
2234
- labelKey
2235
- ]);
2236
- if (!active || !(payload == null ? void 0 : payload.length)) {
2237
- return null;
2238
- }
2239
- const nestLabel = payload.length === 1 && indicator !== "dot";
2240
- return /* @__PURE__ */ jsxs12(
2241
- "div",
2242
- {
2243
- ref,
2244
- className: cn(
2245
- "grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
2246
- className
2247
- ),
2248
- children: [
2249
- !nestLabel ? tooltipLabel : null,
2250
- /* @__PURE__ */ jsx40("div", { className: "grid gap-1.5", children: payload.map((item, index) => {
2251
- const key = `${nameKey || item.name || item.dataKey || "value"}`;
2252
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
2253
- const indicatorColor = color || item.payload.fill || item.color;
2254
- return /* @__PURE__ */ jsx40(
2255
- "div",
2256
- {
2257
- className: cn(
2258
- "flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
2259
- indicator === "dot" && "items-center"
2260
- ),
2261
- children: formatter && (item == null ? void 0 : item.value) !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs12(Fragment, { children: [
2262
- (itemConfig == null ? void 0 : itemConfig.icon) ? /* @__PURE__ */ jsx40(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx40(
2263
- "div",
2264
- {
2265
- className: cn(
2266
- "shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
2267
- {
2268
- "h-2.5 w-2.5": indicator === "dot",
2269
- "w-1": indicator === "line",
2270
- "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
2271
- "my-0.5": nestLabel && indicator === "dashed"
2272
- }
2273
- ),
2274
- style: {
2275
- "--color-bg": indicatorColor,
2276
- "--color-border": indicatorColor
2277
- }
2278
- }
2279
- ),
2280
- /* @__PURE__ */ jsxs12(
2281
- "div",
2282
- {
2283
- className: cn(
2284
- "flex flex-1 justify-between leading-none",
2285
- nestLabel ? "items-end" : "items-center"
2286
- ),
2287
- children: [
2288
- /* @__PURE__ */ jsxs12("div", { className: "grid gap-1.5", children: [
2289
- nestLabel ? tooltipLabel : null,
2290
- /* @__PURE__ */ jsx40("span", { className: "text-muted-foreground", children: (itemConfig == null ? void 0 : itemConfig.label) || item.name })
2291
- ] }),
2292
- item.value && /* @__PURE__ */ jsx40("span", { className: "font-mono font-medium tabular-nums text-foreground", children: item.value.toLocaleString() })
2293
- ]
2294
- }
2295
- )
2296
- ] })
2297
- },
2298
- item.dataKey
2299
- );
2300
- }) })
2301
- ]
2302
- }
2303
- );
2304
- }
2305
- );
2306
- ChartTooltipContent.displayName = "ChartTooltip";
2307
- var ChartLegend = RechartsPrimitive.Legend;
2308
- var ChartLegendContent = React38.forwardRef(
2309
- ({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, ref) => {
2310
- const { config } = useChart();
2311
- if (!(payload == null ? void 0 : payload.length)) {
2312
- return null;
2313
- }
2314
- return /* @__PURE__ */ jsx40(
2315
- "div",
2316
- {
2317
- ref,
1709
+ var _b = _a, { className, variant = "default", size = "default" } = _b, props = __objRest(_b, ["className", "variant", "size"]);
1710
+ return /* @__PURE__ */ jsx34(
1711
+ "button",
1712
+ __spreadValues({
2318
1713
  className: cn(
2319
- "flex items-center justify-center gap-4",
2320
- verticalAlign === "top" ? "pb-3" : "pt-3",
1714
+ "inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background",
1715
+ {
1716
+ "bg-primary text-primary-foreground hover:bg-primary/90": variant === "default",
1717
+ "hover:bg-accent hover:text-accent-foreground": variant === "ghost",
1718
+ "h-10 px-4 py-2": size === "default",
1719
+ "h-9 px-3": size === "sm",
1720
+ "h-11 px-8": size === "lg",
1721
+ "h-10 w-10": size === "icon"
1722
+ },
2321
1723
  className
2322
1724
  ),
2323
- children: payload.map((item) => {
2324
- const key = `${nameKey || item.dataKey || "value"}`;
2325
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
2326
- return /* @__PURE__ */ jsxs12(
2327
- "div",
2328
- {
2329
- className: cn(
2330
- "flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"
2331
- ),
2332
- children: [
2333
- (itemConfig == null ? void 0 : itemConfig.icon) && !hideIcon ? /* @__PURE__ */ jsx40(itemConfig.icon, {}) : /* @__PURE__ */ jsx40(
2334
- "div",
2335
- {
2336
- className: "h-2 w-2 shrink-0 rounded-[2px]",
2337
- style: {
2338
- backgroundColor: item.color
2339
- }
2340
- }
2341
- ),
2342
- itemConfig == null ? void 0 : itemConfig.label
2343
- ]
2344
- },
2345
- item.value
2346
- );
2347
- })
2348
- }
1725
+ ref
1726
+ }, props)
2349
1727
  );
2350
1728
  }
2351
1729
  );
2352
- ChartLegendContent.displayName = "ChartLegend";
2353
- function getPayloadConfigFromPayload(config, payload, key) {
2354
- if (typeof payload !== "object" || payload === null) {
2355
- return void 0;
2356
- }
2357
- const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
2358
- let configLabelKey = key;
2359
- if (key in payload && typeof payload[key] === "string") {
2360
- configLabelKey = payload[key];
2361
- } else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
2362
- configLabelKey = payloadPayload[key];
2363
- }
2364
- return configLabelKey in config ? config[configLabelKey] : config[key];
2365
- }
2366
-
2367
- // src/ui/checkbox.tsx
2368
- import * as React39 from "react";
2369
- import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
2370
- import { jsx as jsx41 } from "react/jsx-runtime";
2371
- var Checkbox = React39.forwardRef((_a, ref) => {
2372
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2373
- return /* @__PURE__ */ jsx41(
2374
- CheckboxPrimitive.Root,
2375
- __spreadProps(__spreadValues({
2376
- ref,
2377
- className: cn(
2378
- "peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
2379
- className
2380
- )
2381
- }, props), {
2382
- children: /* @__PURE__ */ jsx41(
2383
- CheckboxPrimitive.Indicator,
2384
- {
2385
- className: cn("flex items-center justify-center text-current"),
2386
- children: /* @__PURE__ */ jsx41(globalLucideIcons.Check, { className: "h-4 w-4" })
2387
- }
2388
- )
2389
- })
2390
- );
2391
- });
2392
- Checkbox.displayName = CheckboxPrimitive.Root.displayName;
2393
-
2394
- // src/ui/collapsible.tsx
2395
- import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
2396
- var Collapsible = CollapsiblePrimitive.Root;
2397
- var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
2398
- var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
2399
-
2400
- // src/ui/command.tsx
2401
- import * as React41 from "react";
2402
- import { Command as CommandPrimitive } from "cmdk";
2403
-
2404
- // src/ui/dialog.tsx
2405
- import * as React40 from "react";
2406
- import * as DialogPrimitive from "@radix-ui/react-dialog";
2407
- import { jsx as jsx42, jsxs as jsxs13 } from "react/jsx-runtime";
2408
- var Dialog = DialogPrimitive.Root;
2409
- var DialogTrigger = DialogPrimitive.Trigger;
2410
- var DialogPortal = DialogPrimitive.Portal;
2411
- var DialogClose = DialogPrimitive.Close;
2412
- var DialogOverlay = React40.forwardRef((_a, ref) => {
2413
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2414
- return /* @__PURE__ */ jsx42(
2415
- DialogPrimitive.Overlay,
2416
- __spreadValues({
2417
- ref,
2418
- className: cn(
2419
- "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
2420
- className
2421
- )
2422
- }, props)
2423
- );
2424
- });
2425
- DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
2426
- var DialogContent = React40.forwardRef((_a, ref) => {
2427
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
2428
- return /* @__PURE__ */ jsxs13(DialogPortal, { children: [
2429
- /* @__PURE__ */ jsx42(DialogOverlay, {}),
2430
- /* @__PURE__ */ jsxs13(
2431
- DialogPrimitive.Content,
2432
- __spreadProps(__spreadValues({
2433
- ref,
2434
- className: cn(
2435
- "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
2436
- className
2437
- )
2438
- }, props), {
2439
- children: [
2440
- children,
2441
- /* @__PURE__ */ jsxs13(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
2442
- /* @__PURE__ */ jsx42(globalLucideIcons.X, { className: "h-4 w-4" }),
2443
- /* @__PURE__ */ jsx42("span", { className: "sr-only", children: "Close" })
2444
- ] })
2445
- ]
2446
- })
2447
- )
2448
- ] });
2449
- });
2450
- DialogContent.displayName = DialogPrimitive.Content.displayName;
2451
- var DialogHeader = (_a) => {
2452
- var _b = _a, {
2453
- className
2454
- } = _b, props = __objRest(_b, [
2455
- "className"
2456
- ]);
2457
- return /* @__PURE__ */ jsx42(
2458
- "div",
2459
- __spreadValues({
2460
- className: cn(
2461
- "flex flex-col space-y-1.5 text-center sm:text-left",
2462
- className
2463
- )
2464
- }, props)
2465
- );
2466
- };
2467
- DialogHeader.displayName = "DialogHeader";
2468
- var DialogFooter = (_a) => {
2469
- var _b = _a, {
2470
- className
2471
- } = _b, props = __objRest(_b, [
2472
- "className"
2473
- ]);
2474
- return /* @__PURE__ */ jsx42(
2475
- "div",
2476
- __spreadValues({
2477
- className: cn(
2478
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
2479
- className
2480
- )
2481
- }, props)
2482
- );
2483
- };
2484
- DialogFooter.displayName = "DialogFooter";
2485
- var DialogTitle = React40.forwardRef((_a, ref) => {
2486
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2487
- return /* @__PURE__ */ jsx42(
2488
- DialogPrimitive.Title,
2489
- __spreadValues({
2490
- ref,
2491
- className: cn(
2492
- "text-lg font-semibold leading-none tracking-tight",
2493
- className
2494
- )
2495
- }, props)
2496
- );
2497
- });
2498
- DialogTitle.displayName = DialogPrimitive.Title.displayName;
2499
- var DialogDescription = React40.forwardRef((_a, ref) => {
2500
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2501
- return /* @__PURE__ */ jsx42(
2502
- DialogPrimitive.Description,
2503
- __spreadValues({
2504
- ref,
2505
- className: cn("text-sm text-muted-foreground", className)
2506
- }, props)
2507
- );
2508
- });
2509
- DialogDescription.displayName = DialogPrimitive.Description.displayName;
2510
-
2511
- // src/ui/command.tsx
2512
- import { jsx as jsx43, jsxs as jsxs14 } from "react/jsx-runtime";
2513
- var Command = React41.forwardRef((_a, ref) => {
2514
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2515
- return /* @__PURE__ */ jsx43(
2516
- CommandPrimitive,
2517
- __spreadValues({
2518
- ref,
2519
- className: cn(
2520
- "flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
2521
- className
2522
- )
2523
- }, props)
2524
- );
2525
- });
2526
- Command.displayName = CommandPrimitive.displayName;
2527
- var CommandDialog = (_a) => {
2528
- var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
2529
- return /* @__PURE__ */ jsx43(Dialog, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsx43(DialogContent, { className: "overflow-hidden p-0 shadow-lg", children: /* @__PURE__ */ jsx43(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) }) }));
2530
- };
2531
- var CommandInput = React41.forwardRef((_a, ref) => {
2532
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2533
- return /* @__PURE__ */ jsxs14("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
2534
- /* @__PURE__ */ jsx43(globalLucideIcons.Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
2535
- /* @__PURE__ */ jsx43(
2536
- CommandPrimitive.Input,
2537
- __spreadValues({
2538
- ref,
2539
- className: cn(
2540
- "flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
2541
- className
2542
- )
2543
- }, props)
2544
- )
2545
- ] });
2546
- });
2547
- CommandInput.displayName = CommandPrimitive.Input.displayName;
2548
- var CommandList = React41.forwardRef((_a, ref) => {
2549
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2550
- return /* @__PURE__ */ jsx43(
2551
- CommandPrimitive.List,
2552
- __spreadValues({
2553
- ref,
2554
- className: cn("max-h-[300px] overflow-y-auto overflow-x-hidden", className)
2555
- }, props)
2556
- );
2557
- });
2558
- CommandList.displayName = CommandPrimitive.List.displayName;
2559
- var CommandEmpty = React41.forwardRef((props, ref) => /* @__PURE__ */ jsx43(
2560
- CommandPrimitive.Empty,
2561
- __spreadValues({
2562
- ref,
2563
- className: "py-6 text-center text-sm"
2564
- }, props)
2565
- ));
2566
- CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
2567
- var CommandGroup = React41.forwardRef((_a, ref) => {
2568
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2569
- return /* @__PURE__ */ jsx43(
2570
- CommandPrimitive.Group,
2571
- __spreadValues({
2572
- ref,
2573
- className: cn(
2574
- "overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
2575
- className
2576
- )
2577
- }, props)
2578
- );
2579
- });
2580
- CommandGroup.displayName = CommandPrimitive.Group.displayName;
2581
- var CommandSeparator = React41.forwardRef((_a, ref) => {
2582
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2583
- return /* @__PURE__ */ jsx43(
2584
- CommandPrimitive.Separator,
2585
- __spreadValues({
2586
- ref,
2587
- className: cn("-mx-1 h-px bg-border", className)
2588
- }, props)
2589
- );
2590
- });
2591
- CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
2592
- var CommandItem = React41.forwardRef((_a, ref) => {
2593
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2594
- return /* @__PURE__ */ jsx43(
2595
- CommandPrimitive.Item,
2596
- __spreadValues({
2597
- ref,
2598
- className: cn(
2599
- "relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
2600
- className
2601
- )
2602
- }, props)
2603
- );
2604
- });
2605
- CommandItem.displayName = CommandPrimitive.Item.displayName;
2606
- var CommandShortcut = (_a) => {
2607
- var _b = _a, {
2608
- className
2609
- } = _b, props = __objRest(_b, [
2610
- "className"
2611
- ]);
2612
- return /* @__PURE__ */ jsx43(
2613
- "span",
2614
- __spreadValues({
2615
- className: cn(
2616
- "ml-auto text-xs tracking-widest text-muted-foreground",
2617
- className
2618
- )
2619
- }, props)
2620
- );
2621
- };
2622
- CommandShortcut.displayName = "CommandShortcut";
2623
-
2624
- // src/ui/context-menu.tsx
2625
- import * as React42 from "react";
2626
- import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
2627
- import { jsx as jsx44, jsxs as jsxs15 } from "react/jsx-runtime";
2628
- var ContextMenu = ContextMenuPrimitive.Root;
2629
- var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
2630
- var ContextMenuGroup = ContextMenuPrimitive.Group;
2631
- var ContextMenuPortal = ContextMenuPrimitive.Portal;
2632
- var ContextMenuSub = ContextMenuPrimitive.Sub;
2633
- var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
2634
- var ContextMenuSubTrigger = React42.forwardRef((_a, ref) => {
2635
- var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
2636
- return /* @__PURE__ */ jsxs15(
2637
- ContextMenuPrimitive.SubTrigger,
2638
- __spreadProps(__spreadValues({
2639
- ref,
2640
- className: cn(
2641
- "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
2642
- inset && "pl-8",
2643
- className
2644
- )
2645
- }, props), {
2646
- children: [
2647
- children,
2648
- /* @__PURE__ */ jsx44(globalLucideIcons.ChevronRight, { className: "ml-auto h-4 w-4" })
2649
- ]
2650
- })
2651
- );
2652
- });
2653
- ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
2654
- var ContextMenuSubContent = React42.forwardRef((_a, ref) => {
2655
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2656
- return /* @__PURE__ */ jsx44(
2657
- ContextMenuPrimitive.SubContent,
2658
- __spreadValues({
2659
- ref,
2660
- className: cn(
2661
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
2662
- className
2663
- )
2664
- }, props)
2665
- );
2666
- });
2667
- ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
2668
- var ContextMenuContent = React42.forwardRef((_a, ref) => {
2669
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2670
- return /* @__PURE__ */ jsx44(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx44(
2671
- ContextMenuPrimitive.Content,
2672
- __spreadValues({
2673
- ref,
2674
- className: cn(
2675
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
2676
- className
2677
- )
2678
- }, props)
2679
- ) });
2680
- });
2681
- ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
2682
- var ContextMenuItem = React42.forwardRef((_a, ref) => {
2683
- var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
2684
- return /* @__PURE__ */ jsx44(
2685
- ContextMenuPrimitive.Item,
2686
- __spreadValues({
2687
- ref,
2688
- className: cn(
2689
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2690
- inset && "pl-8",
2691
- className
2692
- )
2693
- }, props)
2694
- );
2695
- });
2696
- ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
2697
- var ContextMenuCheckboxItem = React42.forwardRef((_a, ref) => {
2698
- var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
2699
- return /* @__PURE__ */ jsxs15(
2700
- ContextMenuPrimitive.CheckboxItem,
2701
- __spreadProps(__spreadValues({
2702
- ref,
2703
- className: cn(
2704
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2705
- className
2706
- ),
2707
- checked
2708
- }, props), {
2709
- children: [
2710
- /* @__PURE__ */ jsx44("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx44(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx44(globalLucideIcons.Check, { className: "h-4 w-4" }) }) }),
2711
- children
2712
- ]
2713
- })
2714
- );
2715
- });
2716
- ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
2717
- var ContextMenuRadioItem = React42.forwardRef((_a, ref) => {
2718
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
2719
- return /* @__PURE__ */ jsxs15(
2720
- ContextMenuPrimitive.RadioItem,
2721
- __spreadProps(__spreadValues({
2722
- ref,
2723
- className: cn(
2724
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2725
- className
2726
- )
2727
- }, props), {
2728
- children: [
2729
- /* @__PURE__ */ jsx44("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx44(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx44(globalLucideIcons.Circle, { className: "h-2 w-2 fill-current" }) }) }),
2730
- children
2731
- ]
2732
- })
2733
- );
2734
- });
2735
- ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
2736
- var ContextMenuLabel = React42.forwardRef((_a, ref) => {
2737
- var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
2738
- return /* @__PURE__ */ jsx44(
2739
- ContextMenuPrimitive.Label,
2740
- __spreadValues({
2741
- ref,
2742
- className: cn(
2743
- "px-2 py-1.5 text-sm font-semibold text-foreground",
2744
- inset && "pl-8",
2745
- className
2746
- )
2747
- }, props)
2748
- );
2749
- });
2750
- ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
2751
- var ContextMenuSeparator = React42.forwardRef((_a, ref) => {
2752
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2753
- return /* @__PURE__ */ jsx44(
2754
- ContextMenuPrimitive.Separator,
2755
- __spreadValues({
2756
- ref,
2757
- className: cn("-mx-1 my-1 h-px bg-border", className)
2758
- }, props)
2759
- );
2760
- });
2761
- ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
2762
- var ContextMenuShortcut = (_a) => {
2763
- var _b = _a, {
2764
- className
2765
- } = _b, props = __objRest(_b, [
2766
- "className"
2767
- ]);
2768
- return /* @__PURE__ */ jsx44(
2769
- "span",
2770
- __spreadValues({
2771
- className: cn(
2772
- "ml-auto text-xs tracking-widest text-muted-foreground",
2773
- className
2774
- )
2775
- }, props)
2776
- );
2777
- };
2778
- ContextMenuShortcut.displayName = "ContextMenuShortcut";
2779
-
2780
- // src/ui/drawer.tsx
2781
- import * as React43 from "react";
2782
- import { Drawer as DrawerPrimitive } from "vaul";
2783
- import { jsx as jsx45, jsxs as jsxs16 } from "react/jsx-runtime";
2784
- var Drawer = (_a) => {
2785
- var _b = _a, {
2786
- shouldScaleBackground = true
2787
- } = _b, props = __objRest(_b, [
2788
- "shouldScaleBackground"
2789
- ]);
2790
- return /* @__PURE__ */ jsx45(
2791
- DrawerPrimitive.Root,
2792
- __spreadValues({
2793
- shouldScaleBackground
2794
- }, props)
2795
- );
2796
- };
2797
- Drawer.displayName = "Drawer";
2798
- var DrawerTrigger = DrawerPrimitive.Trigger;
2799
- var DrawerPortal = DrawerPrimitive.Portal;
2800
- var DrawerClose = DrawerPrimitive.Close;
2801
- var DrawerOverlay = React43.forwardRef((_a, ref) => {
2802
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2803
- return /* @__PURE__ */ jsx45(
2804
- DrawerPrimitive.Overlay,
2805
- __spreadValues({
2806
- ref,
2807
- className: cn("fixed inset-0 z-50 bg-black/80", className)
2808
- }, props)
2809
- );
2810
- });
2811
- DrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;
2812
- var DrawerContent = React43.forwardRef((_a, ref) => {
2813
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
2814
- return /* @__PURE__ */ jsxs16(DrawerPortal, { children: [
2815
- /* @__PURE__ */ jsx45(DrawerOverlay, {}),
2816
- /* @__PURE__ */ jsxs16(
2817
- DrawerPrimitive.Content,
2818
- __spreadProps(__spreadValues({
2819
- ref,
2820
- className: cn(
2821
- "fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background",
2822
- className
2823
- )
2824
- }, props), {
2825
- children: [
2826
- /* @__PURE__ */ jsx45("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted" }),
2827
- children
2828
- ]
2829
- })
2830
- )
2831
- ] });
2832
- });
2833
- DrawerContent.displayName = "DrawerContent";
2834
- var DrawerHeader = (_a) => {
2835
- var _b = _a, {
2836
- className
2837
- } = _b, props = __objRest(_b, [
2838
- "className"
2839
- ]);
2840
- return /* @__PURE__ */ jsx45(
2841
- "div",
2842
- __spreadValues({
2843
- className: cn("grid gap-1.5 p-4 text-center sm:text-left", className)
2844
- }, props)
2845
- );
2846
- };
2847
- DrawerHeader.displayName = "DrawerHeader";
2848
- var DrawerFooter = (_a) => {
2849
- var _b = _a, {
2850
- className
2851
- } = _b, props = __objRest(_b, [
2852
- "className"
2853
- ]);
2854
- return /* @__PURE__ */ jsx45(
2855
- "div",
2856
- __spreadValues({
2857
- className: cn("mt-auto flex flex-col gap-2 p-4", className)
2858
- }, props)
2859
- );
2860
- };
2861
- DrawerFooter.displayName = "DrawerFooter";
2862
- var DrawerTitle = React43.forwardRef((_a, ref) => {
2863
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2864
- return /* @__PURE__ */ jsx45(
2865
- DrawerPrimitive.Title,
2866
- __spreadValues({
2867
- ref,
2868
- className: cn(
2869
- "text-lg font-semibold leading-none tracking-tight",
2870
- className
2871
- )
2872
- }, props)
2873
- );
2874
- });
2875
- DrawerTitle.displayName = DrawerPrimitive.Title.displayName;
2876
- var DrawerDescription = React43.forwardRef((_a, ref) => {
2877
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2878
- return /* @__PURE__ */ jsx45(
2879
- DrawerPrimitive.Description,
2880
- __spreadValues({
2881
- ref,
2882
- className: cn("text-sm text-muted-foreground", className)
2883
- }, props)
2884
- );
2885
- });
2886
- DrawerDescription.displayName = DrawerPrimitive.Description.displayName;
2887
-
2888
- // src/ui/dropdown-menu.tsx
2889
- import * as React44 from "react";
2890
- import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
2891
- import { jsx as jsx46, jsxs as jsxs17 } from "react/jsx-runtime";
2892
- var DropdownMenu = DropdownMenuPrimitive.Root;
2893
- var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
2894
- var DropdownMenuGroup = DropdownMenuPrimitive.Group;
2895
- var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
2896
- var DropdownMenuSub = DropdownMenuPrimitive.Sub;
2897
- var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
2898
- var DropdownMenuSubTrigger = React44.forwardRef((_a, ref) => {
2899
- var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
2900
- return /* @__PURE__ */ jsxs17(
2901
- DropdownMenuPrimitive.SubTrigger,
2902
- __spreadProps(__spreadValues({
2903
- ref,
2904
- className: cn(
2905
- "flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
2906
- inset && "pl-8",
2907
- className
2908
- )
2909
- }, props), {
2910
- children: [
2911
- children,
2912
- /* @__PURE__ */ jsx46(globalLucideIcons.ChevronRight, { className: "ml-auto" })
2913
- ]
2914
- })
2915
- );
2916
- });
2917
- DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
2918
- var DropdownMenuSubContent = React44.forwardRef((_a, ref) => {
2919
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2920
- return /* @__PURE__ */ jsx46(
2921
- DropdownMenuPrimitive.SubContent,
2922
- __spreadValues({
2923
- ref,
2924
- className: cn(
2925
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
2926
- className
2927
- )
2928
- }, props)
2929
- );
2930
- });
2931
- DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
2932
- var DropdownMenuContent = React44.forwardRef((_a, ref) => {
2933
- var _b = _a, { className, sideOffset = 4 } = _b, props = __objRest(_b, ["className", "sideOffset"]);
2934
- return /* @__PURE__ */ jsx46(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx46(
2935
- DropdownMenuPrimitive.Content,
2936
- __spreadValues({
2937
- ref,
2938
- sideOffset,
2939
- className: cn(
2940
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
2941
- className
2942
- )
2943
- }, props)
2944
- ) });
2945
- });
2946
- DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
2947
- var DropdownMenuItem = React44.forwardRef((_a, ref) => {
2948
- var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
2949
- return /* @__PURE__ */ jsx46(
2950
- DropdownMenuPrimitive.Item,
2951
- __spreadValues({
2952
- ref,
2953
- className: cn(
2954
- "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
2955
- inset && "pl-8",
2956
- className
2957
- )
2958
- }, props)
2959
- );
2960
- });
2961
- DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
2962
- var DropdownMenuCheckboxItem = React44.forwardRef((_a, ref) => {
2963
- var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
2964
- return /* @__PURE__ */ jsxs17(
2965
- DropdownMenuPrimitive.CheckboxItem,
2966
- __spreadProps(__spreadValues({
2967
- ref,
2968
- className: cn(
2969
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2970
- className
2971
- ),
2972
- checked
2973
- }, props), {
2974
- children: [
2975
- /* @__PURE__ */ jsx46("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx46(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx46(globalLucideIcons.Check, { className: "h-4 w-4" }) }) }),
2976
- children
2977
- ]
2978
- })
2979
- );
2980
- });
2981
- DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
2982
- var DropdownMenuRadioItem = React44.forwardRef((_a, ref) => {
2983
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
2984
- return /* @__PURE__ */ jsxs17(
2985
- DropdownMenuPrimitive.RadioItem,
2986
- __spreadProps(__spreadValues({
2987
- ref,
2988
- className: cn(
2989
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2990
- className
2991
- )
2992
- }, props), {
2993
- children: [
2994
- /* @__PURE__ */ jsx46("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx46(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx46(globalLucideIcons.Circle, { className: "h-2 w-2 fill-current" }) }) }),
2995
- children
2996
- ]
2997
- })
2998
- );
2999
- });
3000
- DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
3001
- var DropdownMenuLabel = React44.forwardRef((_a, ref) => {
3002
- var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
3003
- return /* @__PURE__ */ jsx46(
3004
- DropdownMenuPrimitive.Label,
3005
- __spreadValues({
3006
- ref,
3007
- className: cn(
3008
- "px-2 py-1.5 text-sm font-semibold",
3009
- inset && "pl-8",
3010
- className
3011
- )
3012
- }, props)
3013
- );
3014
- });
3015
- DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
3016
- var DropdownMenuSeparator = React44.forwardRef((_a, ref) => {
3017
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3018
- return /* @__PURE__ */ jsx46(
3019
- DropdownMenuPrimitive.Separator,
3020
- __spreadValues({
3021
- ref,
3022
- className: cn("-mx-1 my-1 h-px bg-muted", className)
3023
- }, props)
3024
- );
3025
- });
3026
- DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
3027
- var DropdownMenuShortcut = (_a) => {
3028
- var _b = _a, {
3029
- className
3030
- } = _b, props = __objRest(_b, [
3031
- "className"
3032
- ]);
3033
- return /* @__PURE__ */ jsx46(
3034
- "span",
3035
- __spreadValues({
3036
- className: cn("ml-auto text-xs tracking-widest opacity-60", className)
3037
- }, props)
3038
- );
3039
- };
3040
- DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
3041
-
3042
- // src/ui/form.tsx
3043
- import * as React46 from "react";
3044
- import { Slot as Slot3 } from "@radix-ui/react-slot";
3045
- import {
3046
- Controller,
3047
- FormProvider,
3048
- useFormContext
3049
- } from "react-hook-form";
3050
-
3051
- // src/ui/label.tsx
3052
- import * as React45 from "react";
3053
- import * as LabelPrimitive from "@radix-ui/react-label";
3054
- import { cva as cva4 } from "class-variance-authority";
3055
- import { jsx as jsx47 } from "react/jsx-runtime";
3056
- var labelVariants = cva4(
3057
- "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
3058
- );
3059
- var Label3 = React45.forwardRef((_a, ref) => {
3060
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3061
- return /* @__PURE__ */ jsx47(
3062
- LabelPrimitive.Root,
3063
- __spreadValues({
3064
- ref,
3065
- className: cn(labelVariants(), className)
3066
- }, props)
3067
- );
3068
- });
3069
- Label3.displayName = LabelPrimitive.Root.displayName;
3070
-
3071
- // src/ui/form.tsx
3072
- import { jsx as jsx48 } from "react/jsx-runtime";
3073
- var Form = FormProvider;
3074
- var FormFieldContext = React46.createContext(
3075
- {}
3076
- );
3077
- var FormField = (_a) => {
3078
- var props = __objRest(_a, []);
3079
- return /* @__PURE__ */ jsx48(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx48(Controller, __spreadValues({}, props)) });
3080
- };
3081
- var useFormField = () => {
3082
- const fieldContext = React46.useContext(FormFieldContext);
3083
- const itemContext = React46.useContext(FormItemContext);
3084
- const { getFieldState, formState } = useFormContext();
3085
- const fieldState = getFieldState(fieldContext.name, formState);
3086
- if (!fieldContext) {
3087
- throw new Error("useFormField should be used within <FormField>");
3088
- }
3089
- const { id } = itemContext;
3090
- return __spreadValues({
3091
- id,
3092
- name: fieldContext.name,
3093
- formItemId: `${id}-form-item`,
3094
- formDescriptionId: `${id}-form-item-description`,
3095
- formMessageId: `${id}-form-item-message`
3096
- }, fieldState);
3097
- };
3098
- var FormItemContext = React46.createContext(
3099
- {}
3100
- );
3101
- var FormItem = React46.forwardRef((_a, ref) => {
3102
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3103
- const id = React46.useId();
3104
- return /* @__PURE__ */ jsx48(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx48("div", __spreadValues({ ref, className: cn("space-y-2", className) }, props)) });
3105
- });
3106
- FormItem.displayName = "FormItem";
3107
- var FormLabel = React46.forwardRef((_a, ref) => {
3108
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3109
- const { error, formItemId } = useFormField();
3110
- return /* @__PURE__ */ jsx48(
3111
- Label3,
3112
- __spreadValues({
3113
- ref,
3114
- className: cn(error && "text-destructive", className),
3115
- htmlFor: formItemId
3116
- }, props)
3117
- );
3118
- });
3119
- FormLabel.displayName = "FormLabel";
3120
- var FormControl = React46.forwardRef((_a, ref) => {
3121
- var props = __objRest(_a, []);
3122
- const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
3123
- return /* @__PURE__ */ jsx48(
3124
- Slot3,
3125
- __spreadValues({
3126
- ref,
3127
- id: formItemId,
3128
- "aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
3129
- "aria-invalid": !!error
3130
- }, props)
3131
- );
3132
- });
3133
- FormControl.displayName = "FormControl";
3134
- var FormDescription = React46.forwardRef((_a, ref) => {
3135
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3136
- const { formDescriptionId } = useFormField();
3137
- return /* @__PURE__ */ jsx48(
3138
- "p",
3139
- __spreadValues({
3140
- ref,
3141
- id: formDescriptionId,
3142
- className: cn("text-sm text-muted-foreground", className)
3143
- }, props)
3144
- );
3145
- });
3146
- FormDescription.displayName = "FormDescription";
3147
- var FormMessage = React46.forwardRef((_a, ref) => {
3148
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
3149
- const { error, formMessageId } = useFormField();
3150
- const body = error ? String(error == null ? void 0 : error.message) : children;
3151
- if (!body) {
3152
- return null;
3153
- }
3154
- return /* @__PURE__ */ jsx48(
3155
- "p",
3156
- __spreadProps(__spreadValues({
3157
- ref,
3158
- id: formMessageId,
3159
- className: cn("text-sm font-medium text-destructive", className)
3160
- }, props), {
3161
- children: body
3162
- })
3163
- );
3164
- });
3165
- FormMessage.displayName = "FormMessage";
3166
-
3167
- // src/ui/hover-card.tsx
3168
- import * as React47 from "react";
3169
- import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
3170
- import { jsx as jsx49 } from "react/jsx-runtime";
3171
- var HoverCard = HoverCardPrimitive.Root;
3172
- var HoverCardTrigger = HoverCardPrimitive.Trigger;
3173
- var HoverCardContent = React47.forwardRef((_a, ref) => {
3174
- var _b = _a, { className, align = "center", sideOffset = 4 } = _b, props = __objRest(_b, ["className", "align", "sideOffset"]);
3175
- return /* @__PURE__ */ jsx49(
3176
- HoverCardPrimitive.Content,
3177
- __spreadValues({
3178
- ref,
3179
- align,
3180
- sideOffset,
3181
- className: cn(
3182
- "z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
3183
- className
3184
- )
3185
- }, props)
3186
- );
3187
- });
3188
- HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
3189
-
3190
- // src/ui/input-otp.tsx
3191
- import * as React48 from "react";
3192
- import { OTPInput, OTPInputContext } from "input-otp";
3193
- import { jsx as jsx50, jsxs as jsxs18 } from "react/jsx-runtime";
3194
- var InputOTP = React48.forwardRef((_a, ref) => {
3195
- var _b = _a, { className, containerClassName } = _b, props = __objRest(_b, ["className", "containerClassName"]);
3196
- return /* @__PURE__ */ jsx50(
3197
- OTPInput,
3198
- __spreadValues({
3199
- ref,
3200
- containerClassName: cn(
3201
- "flex items-center gap-2 has-disabled:opacity-50",
3202
- containerClassName
3203
- ),
3204
- className: cn("disabled:cursor-not-allowed", className)
3205
- }, props)
3206
- );
3207
- });
3208
- InputOTP.displayName = "InputOTP";
3209
- var InputOTPGroup = React48.forwardRef((_a, ref) => {
3210
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3211
- return /* @__PURE__ */ jsx50("div", __spreadValues({ ref, className: cn("flex items-center", className) }, props));
3212
- });
3213
- InputOTPGroup.displayName = "InputOTPGroup";
3214
- var InputOTPSlot = React48.forwardRef((_a, ref) => {
3215
- var _b = _a, { index, className } = _b, props = __objRest(_b, ["index", "className"]);
3216
- const inputOTPContext = React48.useContext(OTPInputContext);
3217
- const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
3218
- return /* @__PURE__ */ jsxs18(
3219
- "div",
3220
- __spreadProps(__spreadValues({
3221
- ref,
3222
- className: cn(
3223
- "relative flex h-10 w-10 items-center justify-center border-y border-r border-input text-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md",
3224
- isActive && "z-10 ring-2 ring-ring ring-offset-background",
3225
- className
3226
- )
3227
- }, props), {
3228
- children: [
3229
- char,
3230
- hasFakeCaret && /* @__PURE__ */ jsx50("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx50("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) })
3231
- ]
3232
- })
3233
- );
3234
- });
3235
- InputOTPSlot.displayName = "InputOTPSlot";
3236
- var InputOTPSeparator = React48.forwardRef((_a, ref) => {
3237
- var props = __objRest(_a, []);
3238
- return /* @__PURE__ */ jsx50("div", __spreadProps(__spreadValues({ ref, role: "separator" }, props), { children: /* @__PURE__ */ jsx50(globalLucideIcons.Dot, {}) }));
3239
- });
3240
- InputOTPSeparator.displayName = "InputOTPSeparator";
3241
-
3242
- // src/ui/input.tsx
3243
- import * as React49 from "react";
3244
- import { jsx as jsx51 } from "react/jsx-runtime";
3245
- var Input = React49.forwardRef(
3246
- (_a, ref) => {
3247
- var _b = _a, { className, type } = _b, props = __objRest(_b, ["className", "type"]);
3248
- return /* @__PURE__ */ jsx51(
3249
- "input",
3250
- __spreadValues({
3251
- type,
3252
- className: cn(
3253
- "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
3254
- className
3255
- ),
3256
- ref
3257
- }, props)
3258
- );
3259
- }
3260
- );
3261
- Input.displayName = "Input";
3262
-
3263
- // src/ui/language-button.tsx
3264
- import * as React50 from "react";
3265
- import { jsx as jsx52 } from "react/jsx-runtime";
3266
- var LanguageButton = React50.forwardRef(
3267
- (_a, ref) => {
3268
- var _b = _a, { className, variant = "default", size = "default" } = _b, props = __objRest(_b, ["className", "variant", "size"]);
3269
- return /* @__PURE__ */ jsx52(
3270
- "button",
3271
- __spreadValues({
3272
- className: cn(
3273
- "inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background",
3274
- {
3275
- "bg-primary text-primary-foreground hover:bg-primary/90": variant === "default",
3276
- "hover:bg-accent hover:text-accent-foreground": variant === "ghost",
3277
- "h-10 px-4 py-2": size === "default",
3278
- "h-9 px-3": size === "sm",
3279
- "h-11 px-8": size === "lg",
3280
- "h-10 w-10": size === "icon"
3281
- },
3282
- className
3283
- ),
3284
- ref
3285
- }, props)
3286
- );
3287
- }
3288
- );
3289
- LanguageButton.displayName = "Button";
3290
-
3291
- // src/ui/menubar.tsx
3292
- import * as React51 from "react";
3293
- import * as MenubarPrimitive from "@radix-ui/react-menubar";
3294
- import { jsx as jsx53, jsxs as jsxs19 } from "react/jsx-runtime";
3295
- var MenubarMenu = MenubarPrimitive.Menu;
3296
- var MenubarGroup = MenubarPrimitive.Group;
3297
- var MenubarPortal = MenubarPrimitive.Portal;
3298
- var MenubarSub = MenubarPrimitive.Sub;
3299
- var MenubarRadioGroup = MenubarPrimitive.RadioGroup;
3300
- var Menubar = React51.forwardRef((_a, ref) => {
3301
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3302
- return /* @__PURE__ */ jsx53(
3303
- MenubarPrimitive.Root,
3304
- __spreadValues({
3305
- ref,
3306
- className: cn(
3307
- "flex h-10 items-center space-x-1 rounded-md border bg-background p-1",
3308
- className
3309
- )
3310
- }, props)
3311
- );
3312
- });
3313
- Menubar.displayName = MenubarPrimitive.Root.displayName;
3314
- var MenubarTrigger = React51.forwardRef((_a, ref) => {
3315
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3316
- return /* @__PURE__ */ jsx53(
3317
- MenubarPrimitive.Trigger,
3318
- __spreadValues({
3319
- ref,
3320
- className: cn(
3321
- "flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-hidden focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
3322
- className
3323
- )
3324
- }, props)
3325
- );
3326
- });
3327
- MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
3328
- var MenubarSubTrigger = React51.forwardRef((_a, ref) => {
3329
- var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
3330
- return /* @__PURE__ */ jsxs19(
3331
- MenubarPrimitive.SubTrigger,
3332
- __spreadProps(__spreadValues({
3333
- ref,
3334
- className: cn(
3335
- "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
3336
- inset && "pl-8",
3337
- className
3338
- )
3339
- }, props), {
3340
- children: [
3341
- children,
3342
- /* @__PURE__ */ jsx53(globalLucideIcons.ChevronRight, { className: "ml-auto h-4 w-4" })
3343
- ]
3344
- })
3345
- );
3346
- });
3347
- MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
3348
- var MenubarSubContent = React51.forwardRef((_a, ref) => {
3349
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3350
- return /* @__PURE__ */ jsx53(
3351
- MenubarPrimitive.SubContent,
3352
- __spreadValues({
3353
- ref,
3354
- className: cn(
3355
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
3356
- className
3357
- )
3358
- }, props)
3359
- );
3360
- });
3361
- MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
3362
- var MenubarContent = React51.forwardRef(
3363
- (_a, ref) => {
3364
- var _b = _a, { className, align = "start", alignOffset = -4, sideOffset = 8 } = _b, props = __objRest(_b, ["className", "align", "alignOffset", "sideOffset"]);
3365
- return /* @__PURE__ */ jsx53(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx53(
3366
- MenubarPrimitive.Content,
3367
- __spreadValues({
3368
- ref,
3369
- align,
3370
- alignOffset,
3371
- sideOffset,
3372
- className: cn(
3373
- "z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
3374
- className
3375
- )
3376
- }, props)
3377
- ) });
3378
- }
3379
- );
3380
- MenubarContent.displayName = MenubarPrimitive.Content.displayName;
3381
- var MenubarItem = React51.forwardRef((_a, ref) => {
3382
- var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
3383
- return /* @__PURE__ */ jsx53(
3384
- MenubarPrimitive.Item,
3385
- __spreadValues({
3386
- ref,
3387
- className: cn(
3388
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
3389
- inset && "pl-8",
3390
- className
3391
- )
3392
- }, props)
3393
- );
3394
- });
3395
- MenubarItem.displayName = MenubarPrimitive.Item.displayName;
3396
- var MenubarCheckboxItem = React51.forwardRef((_a, ref) => {
3397
- var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
3398
- return /* @__PURE__ */ jsxs19(
3399
- MenubarPrimitive.CheckboxItem,
3400
- __spreadProps(__spreadValues({
3401
- ref,
3402
- className: cn(
3403
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
3404
- className
3405
- ),
3406
- checked
3407
- }, props), {
3408
- children: [
3409
- /* @__PURE__ */ jsx53("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx53(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx53(globalLucideIcons.Check, { className: "h-4 w-4" }) }) }),
3410
- children
3411
- ]
3412
- })
3413
- );
3414
- });
3415
- MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
3416
- var MenubarRadioItem = React51.forwardRef((_a, ref) => {
3417
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
3418
- return /* @__PURE__ */ jsxs19(
3419
- MenubarPrimitive.RadioItem,
3420
- __spreadProps(__spreadValues({
3421
- ref,
3422
- className: cn(
3423
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
3424
- className
3425
- )
3426
- }, props), {
3427
- children: [
3428
- /* @__PURE__ */ jsx53("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx53(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx53(globalLucideIcons.Circle, { className: "h-2 w-2 fill-current" }) }) }),
3429
- children
3430
- ]
3431
- })
3432
- );
3433
- });
3434
- MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
3435
- var MenubarLabel = React51.forwardRef((_a, ref) => {
3436
- var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
3437
- return /* @__PURE__ */ jsx53(
3438
- MenubarPrimitive.Label,
3439
- __spreadValues({
3440
- ref,
3441
- className: cn(
3442
- "px-2 py-1.5 text-sm font-semibold",
3443
- inset && "pl-8",
3444
- className
3445
- )
3446
- }, props)
3447
- );
3448
- });
3449
- MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
3450
- var MenubarSeparator = React51.forwardRef((_a, ref) => {
3451
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3452
- return /* @__PURE__ */ jsx53(
3453
- MenubarPrimitive.Separator,
3454
- __spreadValues({
3455
- ref,
3456
- className: cn("-mx-1 my-1 h-px bg-muted", className)
3457
- }, props)
3458
- );
3459
- });
3460
- MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
3461
- var MenubarShortcut = (_a) => {
3462
- var _b = _a, {
3463
- className
3464
- } = _b, props = __objRest(_b, [
3465
- "className"
3466
- ]);
3467
- return /* @__PURE__ */ jsx53(
3468
- "span",
3469
- __spreadValues({
3470
- className: cn(
3471
- "ml-auto text-xs tracking-widest text-muted-foreground",
3472
- className
3473
- )
3474
- }, props)
3475
- );
3476
- };
3477
- MenubarShortcut.displayName = "MenubarShortcut";
3478
-
3479
- // src/ui/navigation-menu.tsx
3480
- import * as React52 from "react";
3481
- import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
3482
- import { cva as cva5 } from "class-variance-authority";
3483
- import { jsx as jsx54, jsxs as jsxs20 } from "react/jsx-runtime";
3484
- var NavigationMenu = React52.forwardRef((_a, ref) => {
3485
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
3486
- return /* @__PURE__ */ jsxs20(
3487
- NavigationMenuPrimitive.Root,
3488
- __spreadProps(__spreadValues({
3489
- ref,
3490
- className: cn(
3491
- "relative z-10 flex max-w-max flex-1 items-center justify-center",
3492
- className
3493
- )
3494
- }, props), {
3495
- children: [
3496
- children,
3497
- /* @__PURE__ */ jsx54(NavigationMenuViewport, {})
3498
- ]
3499
- })
3500
- );
3501
- });
3502
- NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
3503
- var NavigationMenuList = React52.forwardRef((_a, ref) => {
3504
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3505
- return /* @__PURE__ */ jsx54(
3506
- NavigationMenuPrimitive.List,
3507
- __spreadValues({
3508
- ref,
3509
- className: cn(
3510
- "group flex flex-1 list-none items-center justify-center space-x-1",
3511
- className
3512
- )
3513
- }, props)
3514
- );
3515
- });
3516
- NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
3517
- var NavigationMenuItem = NavigationMenuPrimitive.Item;
3518
- var navigationMenuTriggerStyle = cva5(
3519
- "group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-hidden disabled:pointer-events-none disabled:opacity-50 data-active:bg-accent/50 data-[state=open]:bg-accent/50"
3520
- );
3521
- var NavigationMenuTrigger = React52.forwardRef((_a, ref) => {
3522
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
3523
- return /* @__PURE__ */ jsxs20(
3524
- NavigationMenuPrimitive.Trigger,
3525
- __spreadProps(__spreadValues({
3526
- ref,
3527
- className: cn(navigationMenuTriggerStyle(), "group", className)
3528
- }, props), {
3529
- children: [
3530
- children,
3531
- " ",
3532
- /* @__PURE__ */ jsx54(
3533
- globalLucideIcons.ChevronDown,
3534
- {
3535
- className: "relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180",
3536
- "aria-hidden": "true"
3537
- }
3538
- )
3539
- ]
3540
- })
3541
- );
3542
- });
3543
- NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
3544
- var NavigationMenuContent = React52.forwardRef((_a, ref) => {
3545
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3546
- return /* @__PURE__ */ jsx54(
3547
- NavigationMenuPrimitive.Content,
3548
- __spreadValues({
3549
- ref,
3550
- className: cn(
3551
- "left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto ",
3552
- className
3553
- )
3554
- }, props)
3555
- );
3556
- });
3557
- NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
3558
- var NavigationMenuLink = NavigationMenuPrimitive.Link;
3559
- var NavigationMenuViewport = React52.forwardRef((_a, ref) => {
3560
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3561
- return /* @__PURE__ */ jsx54("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx54(
3562
- NavigationMenuPrimitive.Viewport,
3563
- __spreadValues({
3564
- className: cn(
3565
- "origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]",
3566
- className
3567
- ),
3568
- ref
3569
- }, props)
3570
- ) });
3571
- });
3572
- NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
3573
- var NavigationMenuIndicator = React52.forwardRef((_a, ref) => {
3574
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3575
- return /* @__PURE__ */ jsx54(
3576
- NavigationMenuPrimitive.Indicator,
3577
- __spreadProps(__spreadValues({
3578
- ref,
3579
- className: cn(
3580
- "top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",
3581
- className
3582
- )
3583
- }, props), {
3584
- children: /* @__PURE__ */ jsx54("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
3585
- })
3586
- );
3587
- });
3588
- NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
3589
-
3590
- // src/ui/pagination.tsx
3591
- import * as React53 from "react";
3592
- import { jsx as jsx55, jsxs as jsxs21 } from "react/jsx-runtime";
3593
- var Pagination = (_a) => {
3594
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3595
- return /* @__PURE__ */ jsx55(
3596
- "nav",
3597
- __spreadValues({
3598
- role: "navigation",
3599
- "aria-label": "pagination",
3600
- className: cn("mx-auto flex w-full justify-center", className)
3601
- }, props)
3602
- );
3603
- };
3604
- Pagination.displayName = "Pagination";
3605
- var PaginationContent = React53.forwardRef((_a, ref) => {
3606
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3607
- return /* @__PURE__ */ jsx55(
3608
- "ul",
3609
- __spreadValues({
3610
- ref,
3611
- className: cn("flex flex-row items-center gap-1", className)
3612
- }, props)
3613
- );
3614
- });
3615
- PaginationContent.displayName = "PaginationContent";
3616
- var PaginationItem = React53.forwardRef((_a, ref) => {
3617
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3618
- return /* @__PURE__ */ jsx55("li", __spreadValues({ ref, className: cn("", className) }, props));
3619
- });
3620
- PaginationItem.displayName = "PaginationItem";
3621
- var PaginationLink = (_a) => {
3622
- var _b = _a, {
3623
- className,
3624
- isActive,
3625
- size = "icon"
3626
- } = _b, props = __objRest(_b, [
3627
- "className",
3628
- "isActive",
3629
- "size"
3630
- ]);
3631
- return /* @__PURE__ */ jsx55(
3632
- "a",
3633
- __spreadValues({
3634
- "aria-current": isActive ? "page" : void 0,
3635
- className: cn(
3636
- buttonVariants({
3637
- variant: isActive ? "outline" : "ghost",
3638
- size
3639
- }),
3640
- className
3641
- )
3642
- }, props)
3643
- );
3644
- };
3645
- PaginationLink.displayName = "PaginationLink";
3646
- var PaginationPrevious = (_a) => {
3647
- var _b = _a, {
3648
- className
3649
- } = _b, props = __objRest(_b, [
3650
- "className"
3651
- ]);
3652
- return /* @__PURE__ */ jsxs21(
3653
- PaginationLink,
3654
- __spreadProps(__spreadValues({
3655
- "aria-label": "Go to previous page",
3656
- size: "default",
3657
- className: cn("gap-1 pl-2.5", className)
3658
- }, props), {
3659
- children: [
3660
- /* @__PURE__ */ jsx55(globalLucideIcons.ChevronLeft, { className: "h-4 w-4" }),
3661
- /* @__PURE__ */ jsx55("span", { children: "Previous" })
3662
- ]
3663
- })
3664
- );
3665
- };
3666
- PaginationPrevious.displayName = "PaginationPrevious";
3667
- var PaginationNext = (_a) => {
3668
- var _b = _a, {
3669
- className
3670
- } = _b, props = __objRest(_b, [
3671
- "className"
3672
- ]);
3673
- return /* @__PURE__ */ jsxs21(
3674
- PaginationLink,
3675
- __spreadProps(__spreadValues({
3676
- "aria-label": "Go to next page",
3677
- size: "default",
3678
- className: cn("gap-1 pr-2.5", className)
3679
- }, props), {
3680
- children: [
3681
- /* @__PURE__ */ jsx55("span", { children: "Next" }),
3682
- /* @__PURE__ */ jsx55(globalLucideIcons.ChevronRight, { className: "h-4 w-4" })
3683
- ]
3684
- })
3685
- );
3686
- };
3687
- PaginationNext.displayName = "PaginationNext";
3688
- var PaginationEllipsis = (_a) => {
3689
- var _b = _a, {
3690
- className
3691
- } = _b, props = __objRest(_b, [
3692
- "className"
3693
- ]);
3694
- return /* @__PURE__ */ jsxs21(
3695
- "span",
3696
- __spreadProps(__spreadValues({
3697
- "aria-hidden": true,
3698
- className: cn("flex h-9 w-9 items-center justify-center", className)
3699
- }, props), {
3700
- children: [
3701
- /* @__PURE__ */ jsx55(globalLucideIcons.MoreHorizontal, { className: "h-4 w-4" }),
3702
- /* @__PURE__ */ jsx55("span", { className: "sr-only", children: "More pages" })
3703
- ]
3704
- })
3705
- );
3706
- };
3707
- PaginationEllipsis.displayName = "PaginationEllipsis";
3708
-
3709
- // src/ui/popover.tsx
3710
- import * as React54 from "react";
3711
- import * as PopoverPrimitive from "@radix-ui/react-popover";
3712
- import { jsx as jsx56 } from "react/jsx-runtime";
3713
- var Popover = PopoverPrimitive.Root;
3714
- var PopoverTrigger = PopoverPrimitive.Trigger;
3715
- var PopoverContent = React54.forwardRef((_a, ref) => {
3716
- var _b = _a, { className, align = "center", sideOffset = 4 } = _b, props = __objRest(_b, ["className", "align", "sideOffset"]);
3717
- return /* @__PURE__ */ jsx56(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx56(
3718
- PopoverPrimitive.Content,
3719
- __spreadValues({
3720
- ref,
3721
- align,
3722
- sideOffset,
3723
- className: cn(
3724
- "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
3725
- className
3726
- )
3727
- }, props)
3728
- ) });
3729
- });
3730
- PopoverContent.displayName = PopoverPrimitive.Content.displayName;
3731
-
3732
- // src/ui/progress.tsx
3733
- import * as React55 from "react";
3734
- import * as ProgressPrimitive from "@radix-ui/react-progress";
3735
- import { jsx as jsx57 } from "react/jsx-runtime";
3736
- var Progress = React55.forwardRef((_a, ref) => {
3737
- var _b = _a, { className, value } = _b, props = __objRest(_b, ["className", "value"]);
3738
- return /* @__PURE__ */ jsx57(
3739
- ProgressPrimitive.Root,
3740
- __spreadProps(__spreadValues({
3741
- ref,
3742
- className: cn(
3743
- "relative h-4 w-full overflow-hidden rounded-full bg-secondary",
3744
- className
3745
- )
3746
- }, props), {
3747
- children: /* @__PURE__ */ jsx57(
3748
- ProgressPrimitive.Indicator,
3749
- {
3750
- className: "h-full w-full flex-1 bg-primary transition-all",
3751
- style: { transform: `translateX(-${100 - (value || 0)}%)` }
3752
- }
3753
- )
3754
- })
3755
- );
3756
- });
3757
- Progress.displayName = ProgressPrimitive.Root.displayName;
3758
-
3759
- // src/ui/radio-group.tsx
3760
- import * as React56 from "react";
3761
- import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
3762
- import { jsx as jsx58 } from "react/jsx-runtime";
3763
- var RadioGroup4 = React56.forwardRef((_a, ref) => {
3764
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3765
- return /* @__PURE__ */ jsx58(
3766
- RadioGroupPrimitive.Root,
3767
- __spreadProps(__spreadValues({
3768
- className: cn("grid gap-2", className)
3769
- }, props), {
3770
- ref
3771
- })
3772
- );
3773
- });
3774
- RadioGroup4.displayName = RadioGroupPrimitive.Root.displayName;
3775
- var RadioGroupItem = React56.forwardRef((_a, ref) => {
3776
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3777
- return /* @__PURE__ */ jsx58(
3778
- RadioGroupPrimitive.Item,
3779
- __spreadProps(__spreadValues({
3780
- ref,
3781
- className: cn(
3782
- "aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
3783
- className
3784
- )
3785
- }, props), {
3786
- children: /* @__PURE__ */ jsx58(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx58(globalLucideIcons.Circle, { className: "h-2.5 w-2.5 fill-current text-current" }) })
3787
- })
3788
- );
3789
- });
3790
- RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
3791
-
3792
- // src/ui/resizable.tsx
3793
- import * as ResizablePrimitive from "react-resizable-panels";
3794
- import { jsx as jsx59 } from "react/jsx-runtime";
3795
- var ResizablePanelGroup = (_a) => {
3796
- var _b = _a, {
3797
- className
3798
- } = _b, props = __objRest(_b, [
3799
- "className"
3800
- ]);
3801
- return /* @__PURE__ */ jsx59(
3802
- ResizablePrimitive.PanelGroup,
3803
- __spreadValues({
3804
- className: cn(
3805
- "flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
3806
- className
3807
- )
3808
- }, props)
3809
- );
3810
- };
3811
- var ResizablePanel = ResizablePrimitive.Panel;
3812
- var ResizableHandle = (_a) => {
3813
- var _b = _a, {
3814
- withHandle,
3815
- className
3816
- } = _b, props = __objRest(_b, [
3817
- "withHandle",
3818
- "className"
3819
- ]);
3820
- return /* @__PURE__ */ jsx59(
3821
- ResizablePrimitive.PanelResizeHandle,
3822
- __spreadProps(__spreadValues({
3823
- className: cn(
3824
- "relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
3825
- className
3826
- )
3827
- }, props), {
3828
- children: withHandle && /* @__PURE__ */ jsx59("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsx59(globalLucideIcons.GripVertical, { className: "h-2.5 w-2.5" }) })
3829
- })
3830
- );
3831
- };
3832
-
3833
- // src/ui/scroll-area.tsx
3834
- import * as React57 from "react";
3835
- import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
3836
- import { jsx as jsx60, jsxs as jsxs22 } from "react/jsx-runtime";
3837
- var ScrollArea = React57.forwardRef((_a, ref) => {
3838
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
3839
- return /* @__PURE__ */ jsxs22(
3840
- ScrollAreaPrimitive.Root,
3841
- __spreadProps(__spreadValues({
3842
- ref,
3843
- className: cn("relative overflow-hidden", className)
3844
- }, props), {
3845
- children: [
3846
- /* @__PURE__ */ jsx60(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
3847
- /* @__PURE__ */ jsx60(ScrollBar, {}),
3848
- /* @__PURE__ */ jsx60(ScrollAreaPrimitive.Corner, {})
3849
- ]
3850
- })
3851
- );
3852
- });
3853
- ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
3854
- var ScrollBar = React57.forwardRef((_a, ref) => {
3855
- var _b = _a, { className, orientation = "vertical" } = _b, props = __objRest(_b, ["className", "orientation"]);
3856
- return /* @__PURE__ */ jsx60(
3857
- ScrollAreaPrimitive.ScrollAreaScrollbar,
3858
- __spreadProps(__spreadValues({
3859
- ref,
3860
- orientation,
3861
- className: cn(
3862
- "flex touch-none select-none transition-colors",
3863
- orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-[1px]",
3864
- orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-[1px]",
3865
- className
3866
- )
3867
- }, props), {
3868
- children: /* @__PURE__ */ jsx60(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
3869
- })
3870
- );
3871
- });
3872
- ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
3873
-
3874
- // src/ui/select.tsx
3875
- import * as React58 from "react";
3876
- import * as SelectPrimitive from "@radix-ui/react-select";
3877
- import { jsx as jsx61, jsxs as jsxs23 } from "react/jsx-runtime";
3878
- var Select = SelectPrimitive.Root;
3879
- var SelectGroup = SelectPrimitive.Group;
3880
- var SelectValue = SelectPrimitive.Value;
3881
- var SelectTrigger = React58.forwardRef((_a, ref) => {
3882
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
3883
- return /* @__PURE__ */ jsxs23(
3884
- SelectPrimitive.Trigger,
3885
- __spreadProps(__spreadValues({
3886
- ref,
3887
- className: cn(
3888
- "flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
3889
- className
3890
- )
3891
- }, props), {
3892
- children: [
3893
- children,
3894
- /* @__PURE__ */ jsx61(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx61(globalLucideIcons.ChevronDown, { className: "h-4 w-4 opacity-50" }) })
3895
- ]
3896
- })
3897
- );
3898
- });
3899
- SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
3900
- var SelectScrollUpButton = React58.forwardRef((_a, ref) => {
3901
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3902
- return /* @__PURE__ */ jsx61(
3903
- SelectPrimitive.ScrollUpButton,
3904
- __spreadProps(__spreadValues({
3905
- ref,
3906
- className: cn(
3907
- "flex cursor-default items-center justify-center py-1",
3908
- className
3909
- )
3910
- }, props), {
3911
- children: /* @__PURE__ */ jsx61(globalLucideIcons.ChevronUp, { className: "h-4 w-4" })
3912
- })
3913
- );
3914
- });
3915
- SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
3916
- var SelectScrollDownButton = React58.forwardRef((_a, ref) => {
3917
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3918
- return /* @__PURE__ */ jsx61(
3919
- SelectPrimitive.ScrollDownButton,
3920
- __spreadProps(__spreadValues({
3921
- ref,
3922
- className: cn(
3923
- "flex cursor-default items-center justify-center py-1",
3924
- className
3925
- )
3926
- }, props), {
3927
- children: /* @__PURE__ */ jsx61(globalLucideIcons.ChevronDown, { className: "h-4 w-4" })
3928
- })
3929
- );
3930
- });
3931
- SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
3932
- var SelectContent = React58.forwardRef((_a, ref) => {
3933
- var _b = _a, { className, children, position = "popper" } = _b, props = __objRest(_b, ["className", "children", "position"]);
3934
- return /* @__PURE__ */ jsx61(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs23(
3935
- SelectPrimitive.Content,
3936
- __spreadProps(__spreadValues({
3937
- ref,
3938
- className: cn(
3939
- "relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
3940
- position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
3941
- className
3942
- ),
3943
- position
3944
- }, props), {
3945
- children: [
3946
- /* @__PURE__ */ jsx61(SelectScrollUpButton, {}),
3947
- /* @__PURE__ */ jsx61(
3948
- SelectPrimitive.Viewport,
3949
- {
3950
- className: cn(
3951
- "p-1",
3952
- position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
3953
- ),
3954
- children
3955
- }
3956
- ),
3957
- /* @__PURE__ */ jsx61(SelectScrollDownButton, {})
3958
- ]
3959
- })
3960
- ) });
3961
- });
3962
- SelectContent.displayName = SelectPrimitive.Content.displayName;
3963
- var SelectLabel = React58.forwardRef((_a, ref) => {
3964
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3965
- return /* @__PURE__ */ jsx61(
3966
- SelectPrimitive.Label,
3967
- __spreadValues({
3968
- ref,
3969
- className: cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className)
3970
- }, props)
3971
- );
3972
- });
3973
- SelectLabel.displayName = SelectPrimitive.Label.displayName;
3974
- var SelectItem = React58.forwardRef((_a, ref) => {
3975
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
3976
- return /* @__PURE__ */ jsxs23(
3977
- SelectPrimitive.Item,
3978
- __spreadProps(__spreadValues({
3979
- ref,
3980
- className: cn(
3981
- "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
3982
- className
3983
- )
3984
- }, props), {
3985
- children: [
3986
- /* @__PURE__ */ jsx61("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx61(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx61(globalLucideIcons.Check, { className: "h-4 w-4" }) }) }),
3987
- /* @__PURE__ */ jsx61(SelectPrimitive.ItemText, { children })
3988
- ]
3989
- })
3990
- );
3991
- });
3992
- SelectItem.displayName = SelectPrimitive.Item.displayName;
3993
- var SelectSeparator = React58.forwardRef((_a, ref) => {
3994
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3995
- return /* @__PURE__ */ jsx61(
3996
- SelectPrimitive.Separator,
3997
- __spreadValues({
3998
- ref,
3999
- className: cn("-mx-1 my-1 h-px bg-muted", className)
4000
- }, props)
4001
- );
4002
- });
4003
- SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
4004
-
4005
- // src/ui/separator.tsx
4006
- import * as React59 from "react";
4007
- import * as SeparatorPrimitive from "@radix-ui/react-separator";
4008
- import { jsx as jsx62 } from "react/jsx-runtime";
4009
- var Separator5 = React59.forwardRef(
4010
- (_a, ref) => {
4011
- var _b = _a, { className, orientation = "horizontal", decorative = true } = _b, props = __objRest(_b, ["className", "orientation", "decorative"]);
4012
- return /* @__PURE__ */ jsx62(
4013
- SeparatorPrimitive.Root,
4014
- __spreadValues({
4015
- ref,
4016
- decorative,
4017
- orientation,
4018
- className: cn(
4019
- "shrink-0 bg-border",
4020
- orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
4021
- className
4022
- )
4023
- }, props)
4024
- );
4025
- }
4026
- );
4027
- Separator5.displayName = SeparatorPrimitive.Root.displayName;
4028
-
4029
- // src/ui/sheet.tsx
4030
- import * as React60 from "react";
4031
- import * as SheetPrimitive from "@radix-ui/react-dialog";
4032
- import { cva as cva6 } from "class-variance-authority";
4033
- import { jsx as jsx63, jsxs as jsxs24 } from "react/jsx-runtime";
4034
- var Sheet = SheetPrimitive.Root;
4035
- var SheetTrigger = SheetPrimitive.Trigger;
4036
- var SheetClose = SheetPrimitive.Close;
4037
- var SheetPortal = SheetPrimitive.Portal;
4038
- var SheetOverlay = React60.forwardRef((_a, ref) => {
4039
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4040
- return /* @__PURE__ */ jsx63(
4041
- SheetPrimitive.Overlay,
4042
- __spreadProps(__spreadValues({
4043
- className: cn(
4044
- "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
4045
- className
4046
- )
4047
- }, props), {
4048
- ref
4049
- })
4050
- );
4051
- });
4052
- SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
4053
- var sheetVariants = cva6(
4054
- "fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
4055
- {
4056
- variants: {
4057
- side: {
4058
- top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
4059
- bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
4060
- left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
4061
- right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
4062
- }
4063
- },
4064
- defaultVariants: {
4065
- side: "right"
4066
- }
4067
- }
4068
- );
4069
- var SheetContent = React60.forwardRef((_a, ref) => {
4070
- var _b = _a, { side = "right", className, children } = _b, props = __objRest(_b, ["side", "className", "children"]);
4071
- return /* @__PURE__ */ jsxs24(SheetPortal, { children: [
4072
- /* @__PURE__ */ jsx63(SheetOverlay, {}),
4073
- /* @__PURE__ */ jsxs24(
4074
- SheetPrimitive.Content,
4075
- __spreadProps(__spreadValues({
4076
- ref,
4077
- className: cn(sheetVariants({ side }), className)
4078
- }, props), {
4079
- children: [
4080
- children,
4081
- /* @__PURE__ */ jsxs24(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
4082
- /* @__PURE__ */ jsx63(globalLucideIcons.X, { className: "h-4 w-4" }),
4083
- /* @__PURE__ */ jsx63("span", { className: "sr-only", children: "Close" })
4084
- ] })
4085
- ]
4086
- })
4087
- )
4088
- ] });
4089
- });
4090
- SheetContent.displayName = SheetPrimitive.Content.displayName;
4091
- var SheetHeader = (_a) => {
4092
- var _b = _a, {
4093
- className
4094
- } = _b, props = __objRest(_b, [
4095
- "className"
4096
- ]);
4097
- return /* @__PURE__ */ jsx63(
4098
- "div",
4099
- __spreadValues({
4100
- className: cn(
4101
- "flex flex-col space-y-2 text-center sm:text-left",
4102
- className
4103
- )
4104
- }, props)
4105
- );
4106
- };
4107
- SheetHeader.displayName = "SheetHeader";
4108
- var SheetFooter = (_a) => {
4109
- var _b = _a, {
4110
- className
4111
- } = _b, props = __objRest(_b, [
4112
- "className"
4113
- ]);
4114
- return /* @__PURE__ */ jsx63(
4115
- "div",
4116
- __spreadValues({
4117
- className: cn(
4118
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
4119
- className
4120
- )
4121
- }, props)
4122
- );
4123
- };
4124
- SheetFooter.displayName = "SheetFooter";
4125
- var SheetTitle = React60.forwardRef((_a, ref) => {
4126
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4127
- return /* @__PURE__ */ jsx63(
4128
- SheetPrimitive.Title,
4129
- __spreadValues({
4130
- ref,
4131
- className: cn("text-lg font-semibold text-foreground", className)
4132
- }, props)
4133
- );
4134
- });
4135
- SheetTitle.displayName = SheetPrimitive.Title.displayName;
4136
- var SheetDescription = React60.forwardRef((_a, ref) => {
4137
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4138
- return /* @__PURE__ */ jsx63(
4139
- SheetPrimitive.Description,
4140
- __spreadValues({
4141
- ref,
4142
- className: cn("text-sm text-muted-foreground", className)
4143
- }, props)
4144
- );
4145
- });
4146
- SheetDescription.displayName = SheetPrimitive.Description.displayName;
4147
-
4148
- // src/ui/sidebar.tsx
4149
- import * as React63 from "react";
4150
- import { Slot as Slot4 } from "@radix-ui/react-slot";
4151
- import { cva as cva7 } from "class-variance-authority";
4152
-
4153
- // src/ui/use-mobile.tsx
4154
- import * as React61 from "react";
4155
- var MOBILE_BREAKPOINT = 768;
4156
- function useIsMobile() {
4157
- const [isMobile, setIsMobile] = React61.useState(void 0);
4158
- React61.useEffect(() => {
4159
- const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
4160
- const onChange = () => {
4161
- setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
4162
- };
4163
- mql.addEventListener("change", onChange);
4164
- setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
4165
- return () => mql.removeEventListener("change", onChange);
4166
- }, []);
4167
- return !!isMobile;
4168
- }
4169
-
4170
- // src/ui/skeleton.tsx
4171
- import { jsx as jsx64 } from "react/jsx-runtime";
4172
- function Skeleton(_a) {
4173
- var _b = _a, {
4174
- className
4175
- } = _b, props = __objRest(_b, [
4176
- "className"
4177
- ]);
4178
- return /* @__PURE__ */ jsx64(
4179
- "div",
4180
- __spreadValues({
4181
- className: cn("animate-pulse rounded-md bg-muted", className)
4182
- }, props)
4183
- );
4184
- }
4185
-
4186
- // src/ui/tooltip.tsx
4187
- import * as React62 from "react";
4188
- import * as TooltipPrimitive from "@radix-ui/react-tooltip";
4189
- import { jsx as jsx65 } from "react/jsx-runtime";
4190
- var TooltipProvider = TooltipPrimitive.Provider;
4191
- var Tooltip2 = TooltipPrimitive.Root;
4192
- var TooltipTrigger = TooltipPrimitive.Trigger;
4193
- var TooltipContent = React62.forwardRef((_a, ref) => {
4194
- var _b = _a, { className, sideOffset = 4 } = _b, props = __objRest(_b, ["className", "sideOffset"]);
4195
- return /* @__PURE__ */ jsx65(
4196
- TooltipPrimitive.Content,
4197
- __spreadValues({
4198
- ref,
4199
- sideOffset,
4200
- className: cn(
4201
- "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
4202
- className
4203
- )
4204
- }, props)
4205
- );
4206
- });
4207
- TooltipContent.displayName = TooltipPrimitive.Content.displayName;
4208
-
4209
- // src/ui/sidebar.tsx
4210
- import { jsx as jsx66, jsxs as jsxs25 } from "react/jsx-runtime";
4211
- var SIDEBAR_COOKIE_NAME = "sidebar:state";
4212
- var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
4213
- var SIDEBAR_WIDTH = "16rem";
4214
- var SIDEBAR_WIDTH_MOBILE = "18rem";
4215
- var SIDEBAR_WIDTH_ICON = "3rem";
4216
- var SIDEBAR_KEYBOARD_SHORTCUT = "b";
4217
- var SidebarContext = React63.createContext(null);
4218
- function useSidebar() {
4219
- const context = React63.useContext(SidebarContext);
4220
- if (!context) {
4221
- throw new Error("useSidebar must be used within a SidebarProvider.");
4222
- }
4223
- return context;
4224
- }
4225
- var SidebarProvider = React63.forwardRef(
4226
- (_a, ref) => {
4227
- var _b = _a, {
4228
- defaultOpen = true,
4229
- open: openProp,
4230
- onOpenChange: setOpenProp,
4231
- className,
4232
- style,
4233
- children
4234
- } = _b, props = __objRest(_b, [
4235
- "defaultOpen",
4236
- "open",
4237
- "onOpenChange",
4238
- "className",
4239
- "style",
4240
- "children"
4241
- ]);
4242
- const isMobile = useIsMobile();
4243
- const [openMobile, setOpenMobile] = React63.useState(false);
4244
- const [_open, _setOpen] = React63.useState(defaultOpen);
4245
- const open = openProp != null ? openProp : _open;
4246
- const setOpen = React63.useCallback(
4247
- (value) => {
4248
- const openState = typeof value === "function" ? value(open) : value;
4249
- if (setOpenProp) {
4250
- setOpenProp(openState);
4251
- } else {
4252
- _setOpen(openState);
4253
- }
4254
- document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
4255
- },
4256
- [setOpenProp, open]
4257
- );
4258
- const toggleSidebar = React63.useCallback(() => {
4259
- return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
4260
- }, [isMobile, setOpen, setOpenMobile]);
4261
- React63.useEffect(() => {
4262
- const handleKeyDown = (event) => {
4263
- if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
4264
- event.preventDefault();
4265
- toggleSidebar();
4266
- }
4267
- };
4268
- window.addEventListener("keydown", handleKeyDown);
4269
- return () => window.removeEventListener("keydown", handleKeyDown);
4270
- }, [toggleSidebar]);
4271
- const state = open ? "expanded" : "collapsed";
4272
- const contextValue = React63.useMemo(
4273
- () => ({
4274
- state,
4275
- open,
4276
- setOpen,
4277
- isMobile,
4278
- openMobile,
4279
- setOpenMobile,
4280
- toggleSidebar
4281
- }),
4282
- [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
4283
- );
4284
- return /* @__PURE__ */ jsx66(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx66(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx66(
4285
- "div",
4286
- __spreadProps(__spreadValues({
4287
- style: __spreadValues({
4288
- "--sidebar-width": SIDEBAR_WIDTH,
4289
- "--sidebar-width-icon": SIDEBAR_WIDTH_ICON
4290
- }, style),
4291
- className: cn(
4292
- "group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",
4293
- className
4294
- ),
4295
- ref
4296
- }, props), {
4297
- children
4298
- })
4299
- ) }) });
4300
- }
4301
- );
4302
- SidebarProvider.displayName = "SidebarProvider";
4303
- var Sidebar = React63.forwardRef(
4304
- (_a, ref) => {
4305
- var _b = _a, {
4306
- side = "left",
4307
- variant = "sidebar",
4308
- collapsible = "offcanvas",
4309
- className,
4310
- children
4311
- } = _b, props = __objRest(_b, [
4312
- "side",
4313
- "variant",
4314
- "collapsible",
4315
- "className",
4316
- "children"
4317
- ]);
4318
- const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
4319
- if (collapsible === "none") {
4320
- return /* @__PURE__ */ jsx66(
4321
- "div",
4322
- __spreadProps(__spreadValues({
4323
- className: cn(
4324
- "flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",
4325
- className
4326
- ),
4327
- ref
4328
- }, props), {
4329
- children
4330
- })
4331
- );
4332
- }
4333
- if (isMobile) {
4334
- return /* @__PURE__ */ jsx66(Sheet, __spreadProps(__spreadValues({ open: openMobile, onOpenChange: setOpenMobile }, props), { children: /* @__PURE__ */ jsx66(
4335
- SheetContent,
4336
- {
4337
- "data-sidebar": "sidebar",
4338
- "data-mobile": "true",
4339
- className: "w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",
4340
- style: {
4341
- "--sidebar-width": SIDEBAR_WIDTH_MOBILE
4342
- },
4343
- side,
4344
- children: /* @__PURE__ */ jsx66("div", { className: "flex h-full w-full flex-col", children })
4345
- }
4346
- ) }));
4347
- }
4348
- return /* @__PURE__ */ jsxs25(
4349
- "div",
4350
- {
4351
- ref,
4352
- className: "group peer hidden md:block text-sidebar-foreground",
4353
- "data-state": state,
4354
- "data-collapsible": state === "collapsed" ? collapsible : "",
4355
- "data-variant": variant,
4356
- "data-side": side,
4357
- children: [
4358
- /* @__PURE__ */ jsx66(
4359
- "div",
4360
- {
4361
- className: cn(
4362
- "duration-200 relative h-svh w-(--sidebar-width) bg-transparent transition-[width] ease-linear",
4363
- "group-data-[collapsible=offcanvas]:w-0",
4364
- "group-data-[side=right]:rotate-180",
4365
- variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
4366
- )
4367
- }
4368
- ),
4369
- /* @__PURE__ */ jsx66(
4370
- "div",
4371
- __spreadProps(__spreadValues({
4372
- className: cn(
4373
- "duration-200 fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] ease-linear md:flex",
4374
- side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
4375
- // Adjust the padding for floating and inset variants.
4376
- variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
4377
- className
4378
- )
4379
- }, props), {
4380
- children: /* @__PURE__ */ jsx66(
4381
- "div",
4382
- {
4383
- "data-sidebar": "sidebar",
4384
- className: "flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm",
4385
- children
4386
- }
4387
- )
4388
- })
4389
- )
4390
- ]
4391
- }
4392
- );
4393
- }
4394
- );
4395
- Sidebar.displayName = "Sidebar";
4396
- var SidebarTrigger = React63.forwardRef((_a, ref) => {
4397
- var _b = _a, { className, onClick } = _b, props = __objRest(_b, ["className", "onClick"]);
4398
- const { toggleSidebar } = useSidebar();
4399
- return /* @__PURE__ */ jsxs25(
4400
- Button,
4401
- __spreadProps(__spreadValues({
4402
- ref,
4403
- "data-sidebar": "trigger",
4404
- variant: "ghost",
4405
- size: "icon",
4406
- className: cn("h-7 w-7", className),
4407
- onClick: (event) => {
4408
- onClick == null ? void 0 : onClick(event);
4409
- toggleSidebar();
4410
- }
4411
- }, props), {
4412
- children: [
4413
- /* @__PURE__ */ jsx66(globalLucideIcons.PanelLeft, {}),
4414
- /* @__PURE__ */ jsx66("span", { className: "sr-only", children: "Toggle Sidebar" })
4415
- ]
4416
- })
4417
- );
4418
- });
4419
- SidebarTrigger.displayName = "SidebarTrigger";
4420
- var SidebarRail = React63.forwardRef((_a, ref) => {
4421
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4422
- const { toggleSidebar } = useSidebar();
4423
- return /* @__PURE__ */ jsx66(
4424
- "button",
4425
- __spreadValues({
4426
- ref,
4427
- "data-sidebar": "rail",
4428
- "aria-label": "Toggle Sidebar",
4429
- tabIndex: -1,
4430
- onClick: toggleSidebar,
4431
- title: "Toggle Sidebar",
4432
- className: cn(
4433
- "absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex",
4434
- "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize",
4435
- "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
4436
- "group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar",
4437
- "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
4438
- "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
4439
- className
4440
- )
4441
- }, props)
4442
- );
4443
- });
4444
- SidebarRail.displayName = "SidebarRail";
4445
- var SidebarInset = React63.forwardRef((_a, ref) => {
4446
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4447
- return /* @__PURE__ */ jsx66(
4448
- "main",
4449
- __spreadValues({
4450
- ref,
4451
- className: cn(
4452
- "relative flex min-h-svh flex-1 flex-col bg-background",
4453
- "peer-data-[variant=inset]:min-h-[calc(100svh-(--spacing(4)))] md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm",
4454
- className
4455
- )
4456
- }, props)
4457
- );
4458
- });
4459
- SidebarInset.displayName = "SidebarInset";
4460
- var SidebarInput = React63.forwardRef((_a, ref) => {
4461
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4462
- return /* @__PURE__ */ jsx66(
4463
- Input,
4464
- __spreadValues({
4465
- ref,
4466
- "data-sidebar": "input",
4467
- className: cn(
4468
- "h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",
4469
- className
4470
- )
4471
- }, props)
4472
- );
4473
- });
4474
- SidebarInput.displayName = "SidebarInput";
4475
- var SidebarHeader = React63.forwardRef((_a, ref) => {
4476
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4477
- return /* @__PURE__ */ jsx66(
4478
- "div",
4479
- __spreadValues({
4480
- ref,
4481
- "data-sidebar": "header",
4482
- className: cn("flex flex-col gap-2 p-2", className)
4483
- }, props)
4484
- );
4485
- });
4486
- SidebarHeader.displayName = "SidebarHeader";
4487
- var SidebarFooter = React63.forwardRef((_a, ref) => {
4488
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4489
- return /* @__PURE__ */ jsx66(
4490
- "div",
4491
- __spreadValues({
4492
- ref,
4493
- "data-sidebar": "footer",
4494
- className: cn("flex flex-col gap-2 p-2", className)
4495
- }, props)
4496
- );
4497
- });
4498
- SidebarFooter.displayName = "SidebarFooter";
4499
- var SidebarSeparator = React63.forwardRef((_a, ref) => {
4500
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4501
- return /* @__PURE__ */ jsx66(
4502
- Separator5,
4503
- __spreadValues({
4504
- ref,
4505
- "data-sidebar": "separator",
4506
- className: cn("mx-2 w-auto bg-sidebar-border", className)
4507
- }, props)
4508
- );
4509
- });
4510
- SidebarSeparator.displayName = "SidebarSeparator";
4511
- var SidebarContent = React63.forwardRef((_a, ref) => {
4512
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4513
- return /* @__PURE__ */ jsx66(
4514
- "div",
4515
- __spreadValues({
4516
- ref,
4517
- "data-sidebar": "content",
4518
- className: cn(
4519
- "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
4520
- className
4521
- )
4522
- }, props)
4523
- );
4524
- });
4525
- SidebarContent.displayName = "SidebarContent";
4526
- var SidebarGroup = React63.forwardRef((_a, ref) => {
4527
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4528
- return /* @__PURE__ */ jsx66(
4529
- "div",
4530
- __spreadValues({
4531
- ref,
4532
- "data-sidebar": "group",
4533
- className: cn("relative flex w-full min-w-0 flex-col p-2", className)
4534
- }, props)
4535
- );
4536
- });
4537
- SidebarGroup.displayName = "SidebarGroup";
4538
- var SidebarGroupLabel = React63.forwardRef((_a, ref) => {
4539
- var _b = _a, { className, asChild = false } = _b, props = __objRest(_b, ["className", "asChild"]);
4540
- const Comp = asChild ? Slot4 : "div";
4541
- return /* @__PURE__ */ jsx66(
4542
- Comp,
4543
- __spreadValues({
4544
- ref,
4545
- "data-sidebar": "group-label",
4546
- className: cn(
4547
- "duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-hidden ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
4548
- "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
4549
- className
4550
- )
4551
- }, props)
4552
- );
4553
- });
4554
- SidebarGroupLabel.displayName = "SidebarGroupLabel";
4555
- var SidebarGroupAction = React63.forwardRef((_a, ref) => {
4556
- var _b = _a, { className, asChild = false } = _b, props = __objRest(_b, ["className", "asChild"]);
4557
- const Comp = asChild ? Slot4 : "button";
4558
- return /* @__PURE__ */ jsx66(
4559
- Comp,
4560
- __spreadValues({
4561
- ref,
4562
- "data-sidebar": "group-action",
4563
- className: cn(
4564
- "absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
4565
- // Increases the hit area of the button on mobile.
4566
- "after:absolute after:-inset-2 md:after:hidden",
4567
- "group-data-[collapsible=icon]:hidden",
4568
- className
4569
- )
4570
- }, props)
4571
- );
4572
- });
4573
- SidebarGroupAction.displayName = "SidebarGroupAction";
4574
- var SidebarGroupContent = React63.forwardRef((_a, ref) => {
4575
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4576
- return /* @__PURE__ */ jsx66(
4577
- "div",
4578
- __spreadValues({
4579
- ref,
4580
- "data-sidebar": "group-content",
4581
- className: cn("w-full text-sm", className)
4582
- }, props)
4583
- );
4584
- });
4585
- SidebarGroupContent.displayName = "SidebarGroupContent";
4586
- var SidebarMenu = React63.forwardRef((_a, ref) => {
4587
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4588
- return /* @__PURE__ */ jsx66(
4589
- "ul",
4590
- __spreadValues({
4591
- ref,
4592
- "data-sidebar": "menu",
4593
- className: cn("flex w-full min-w-0 flex-col gap-1", className)
4594
- }, props)
4595
- );
4596
- });
4597
- SidebarMenu.displayName = "SidebarMenu";
4598
- var SidebarMenuItem = React63.forwardRef((_a, ref) => {
4599
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4600
- return /* @__PURE__ */ jsx66(
4601
- "li",
4602
- __spreadValues({
4603
- ref,
4604
- "data-sidebar": "menu-item",
4605
- className: cn("group/menu-item relative", className)
4606
- }, props)
4607
- );
4608
- });
4609
- SidebarMenuItem.displayName = "SidebarMenuItem";
4610
- var sidebarMenuButtonVariants = cva7(
4611
- "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
4612
- {
4613
- variants: {
4614
- variant: {
4615
- default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
4616
- outline: "bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"
4617
- },
4618
- size: {
4619
- default: "h-8 text-sm",
4620
- sm: "h-7 text-xs",
4621
- lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
4622
- }
4623
- },
4624
- defaultVariants: {
4625
- variant: "default",
4626
- size: "default"
4627
- }
4628
- }
4629
- );
4630
- var SidebarMenuButton = React63.forwardRef(
4631
- (_a, ref) => {
4632
- var _b = _a, {
4633
- asChild = false,
4634
- isActive = false,
4635
- variant = "default",
4636
- size = "default",
4637
- tooltip,
4638
- className
4639
- } = _b, props = __objRest(_b, [
4640
- "asChild",
4641
- "isActive",
4642
- "variant",
4643
- "size",
4644
- "tooltip",
4645
- "className"
4646
- ]);
4647
- const Comp = asChild ? Slot4 : "button";
4648
- const { isMobile, state } = useSidebar();
4649
- const button = /* @__PURE__ */ jsx66(
4650
- Comp,
4651
- __spreadValues({
4652
- ref,
4653
- "data-sidebar": "menu-button",
4654
- "data-size": size,
4655
- "data-active": isActive,
4656
- className: cn(sidebarMenuButtonVariants({ variant, size }), className)
4657
- }, props)
4658
- );
4659
- if (!tooltip) {
4660
- return button;
4661
- }
4662
- if (typeof tooltip === "string") {
4663
- tooltip = {
4664
- children: tooltip
4665
- };
4666
- }
4667
- return /* @__PURE__ */ jsxs25(Tooltip2, { children: [
4668
- /* @__PURE__ */ jsx66(TooltipTrigger, { asChild: true, children: button }),
4669
- /* @__PURE__ */ jsx66(
4670
- TooltipContent,
4671
- __spreadValues({
4672
- side: "right",
4673
- align: "center",
4674
- hidden: state !== "collapsed" || isMobile
4675
- }, tooltip)
4676
- )
4677
- ] });
4678
- }
4679
- );
4680
- SidebarMenuButton.displayName = "SidebarMenuButton";
4681
- var SidebarMenuAction = React63.forwardRef((_a, ref) => {
4682
- var _b = _a, { className, asChild = false, showOnHover = false } = _b, props = __objRest(_b, ["className", "asChild", "showOnHover"]);
4683
- const Comp = asChild ? Slot4 : "button";
4684
- return /* @__PURE__ */ jsx66(
4685
- Comp,
4686
- __spreadValues({
4687
- ref,
4688
- "data-sidebar": "menu-action",
4689
- className: cn(
4690
- "absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0",
4691
- // Increases the hit area of the button on mobile.
4692
- "after:absolute after:-inset-2 md:after:hidden",
4693
- "peer-data-[size=sm]/menu-button:top-1",
4694
- "peer-data-[size=default]/menu-button:top-1.5",
4695
- "peer-data-[size=lg]/menu-button:top-2.5",
4696
- "group-data-[collapsible=icon]:hidden",
4697
- showOnHover && "group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0",
4698
- className
4699
- )
4700
- }, props)
4701
- );
4702
- });
4703
- SidebarMenuAction.displayName = "SidebarMenuAction";
4704
- var SidebarMenuBadge = React63.forwardRef((_a, ref) => {
4705
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4706
- return /* @__PURE__ */ jsx66(
4707
- "div",
4708
- __spreadValues({
4709
- ref,
4710
- "data-sidebar": "menu-badge",
4711
- className: cn(
4712
- "absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground select-none pointer-events-none",
4713
- "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground",
4714
- "peer-data-[size=sm]/menu-button:top-1",
4715
- "peer-data-[size=default]/menu-button:top-1.5",
4716
- "peer-data-[size=lg]/menu-button:top-2.5",
4717
- "group-data-[collapsible=icon]:hidden",
4718
- className
4719
- )
4720
- }, props)
4721
- );
4722
- });
4723
- SidebarMenuBadge.displayName = "SidebarMenuBadge";
4724
- var SidebarMenuSkeleton = React63.forwardRef((_a, ref) => {
4725
- var _b = _a, { className, showIcon = false } = _b, props = __objRest(_b, ["className", "showIcon"]);
4726
- const width = React63.useMemo(() => {
4727
- return `${Math.floor(Math.random() * 40) + 50}%`;
4728
- }, []);
4729
- return /* @__PURE__ */ jsxs25(
4730
- "div",
4731
- __spreadProps(__spreadValues({
4732
- ref,
4733
- "data-sidebar": "menu-skeleton",
4734
- className: cn("rounded-md h-8 flex gap-2 px-2 items-center", className)
4735
- }, props), {
4736
- children: [
4737
- showIcon && /* @__PURE__ */ jsx66(
4738
- Skeleton,
4739
- {
4740
- className: "size-4 rounded-md",
4741
- "data-sidebar": "menu-skeleton-icon"
4742
- }
4743
- ),
4744
- /* @__PURE__ */ jsx66(
4745
- Skeleton,
4746
- {
4747
- className: "h-4 flex-1 max-w-(--skeleton-width)",
4748
- "data-sidebar": "menu-skeleton-text",
4749
- style: {
4750
- "--skeleton-width": width
4751
- }
4752
- }
4753
- )
4754
- ]
4755
- })
4756
- );
4757
- });
4758
- SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
4759
- var SidebarMenuSub = React63.forwardRef((_a, ref) => {
4760
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4761
- return /* @__PURE__ */ jsx66(
4762
- "ul",
4763
- __spreadValues({
4764
- ref,
4765
- "data-sidebar": "menu-sub",
4766
- className: cn(
4767
- "mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5",
4768
- "group-data-[collapsible=icon]:hidden",
4769
- className
4770
- )
4771
- }, props)
4772
- );
4773
- });
4774
- SidebarMenuSub.displayName = "SidebarMenuSub";
4775
- var SidebarMenuSubItem = React63.forwardRef((_a, ref) => {
4776
- var props = __objRest(_a, []);
4777
- return /* @__PURE__ */ jsx66("li", __spreadValues({ ref }, props));
4778
- });
4779
- SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
4780
- var SidebarMenuSubButton = React63.forwardRef((_a, ref) => {
4781
- var _b = _a, { asChild = false, size = "md", isActive, className } = _b, props = __objRest(_b, ["asChild", "size", "isActive", "className"]);
4782
- const Comp = asChild ? Slot4 : "a";
4783
- return /* @__PURE__ */ jsx66(
4784
- Comp,
4785
- __spreadValues({
4786
- ref,
4787
- "data-sidebar": "menu-sub-button",
4788
- "data-size": size,
4789
- "data-active": isActive,
4790
- className: cn(
4791
- "flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",
4792
- "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",
4793
- size === "sm" && "text-xs",
4794
- size === "md" && "text-sm",
4795
- "group-data-[collapsible=icon]:hidden",
4796
- className
4797
- )
4798
- }, props)
4799
- );
4800
- });
4801
- SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
4802
-
4803
- // src/ui/slider.tsx
4804
- import * as React64 from "react";
4805
- import * as SliderPrimitive from "@radix-ui/react-slider";
4806
- import { jsx as jsx67, jsxs as jsxs26 } from "react/jsx-runtime";
4807
- var Slider = React64.forwardRef((_a, ref) => {
4808
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4809
- return /* @__PURE__ */ jsxs26(
4810
- SliderPrimitive.Root,
4811
- __spreadProps(__spreadValues({
4812
- ref,
4813
- className: cn(
4814
- "relative flex w-full touch-none select-none items-center",
4815
- className
4816
- )
4817
- }, props), {
4818
- children: [
4819
- /* @__PURE__ */ jsx67(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-secondary", children: /* @__PURE__ */ jsx67(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
4820
- /* @__PURE__ */ jsx67(SliderPrimitive.Thumb, { className: "block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" })
4821
- ]
4822
- })
4823
- );
4824
- });
4825
- Slider.displayName = SliderPrimitive.Root.displayName;
4826
-
4827
- // src/ui/sonner.tsx
4828
- import { useTheme } from "next-themes";
4829
- import { Toaster as Sonner } from "sonner";
4830
- import { jsx as jsx68 } from "react/jsx-runtime";
4831
- var Toaster = (_a) => {
4832
- var props = __objRest(_a, []);
4833
- const { theme = "system" } = useTheme();
4834
- return /* @__PURE__ */ jsx68(
4835
- Sonner,
4836
- __spreadValues({
4837
- theme,
4838
- className: "toaster group",
4839
- toastOptions: {
4840
- classNames: {
4841
- toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
4842
- description: "group-[.toast]:text-muted-foreground",
4843
- actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
4844
- cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"
4845
- }
4846
- }
4847
- }, props)
4848
- );
4849
- };
4850
-
4851
- // src/ui/switch.tsx
4852
- import * as React65 from "react";
4853
- import * as SwitchPrimitives from "@radix-ui/react-switch";
4854
- import { jsx as jsx69 } from "react/jsx-runtime";
4855
- var Switch = React65.forwardRef((_a, ref) => {
4856
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4857
- return /* @__PURE__ */ jsx69(
4858
- SwitchPrimitives.Root,
4859
- __spreadProps(__spreadValues({
4860
- className: cn(
4861
- "peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
4862
- className
4863
- )
4864
- }, props), {
4865
- ref,
4866
- children: /* @__PURE__ */ jsx69(
4867
- SwitchPrimitives.Thumb,
4868
- {
4869
- className: cn(
4870
- "pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0"
4871
- )
4872
- }
4873
- )
4874
- })
4875
- );
4876
- });
4877
- Switch.displayName = SwitchPrimitives.Root.displayName;
4878
-
4879
- // src/ui/table.tsx
4880
- import * as React66 from "react";
4881
- import { jsx as jsx70 } from "react/jsx-runtime";
4882
- var Table = React66.forwardRef((_a, ref) => {
4883
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4884
- return /* @__PURE__ */ jsx70("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx70(
4885
- "table",
4886
- __spreadValues({
4887
- ref,
4888
- className: cn("w-full caption-bottom text-sm", className)
4889
- }, props)
4890
- ) });
4891
- });
4892
- Table.displayName = "Table";
4893
- var TableHeader = React66.forwardRef((_a, ref) => {
4894
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4895
- return /* @__PURE__ */ jsx70("thead", __spreadValues({ ref, className: cn("[&_tr]:border-b", className) }, props));
4896
- });
4897
- TableHeader.displayName = "TableHeader";
4898
- var TableBody = React66.forwardRef((_a, ref) => {
4899
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4900
- return /* @__PURE__ */ jsx70(
4901
- "tbody",
4902
- __spreadValues({
4903
- ref,
4904
- className: cn("[&_tr:last-child]:border-0", className)
4905
- }, props)
4906
- );
4907
- });
4908
- TableBody.displayName = "TableBody";
4909
- var TableFooter = React66.forwardRef((_a, ref) => {
4910
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4911
- return /* @__PURE__ */ jsx70(
4912
- "tfoot",
4913
- __spreadValues({
4914
- ref,
4915
- className: cn(
4916
- "border-t bg-muted/50 font-medium last:[&>tr]:border-b-0",
4917
- className
4918
- )
4919
- }, props)
4920
- );
4921
- });
4922
- TableFooter.displayName = "TableFooter";
4923
- var TableRow = React66.forwardRef((_a, ref) => {
4924
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4925
- return /* @__PURE__ */ jsx70(
4926
- "tr",
4927
- __spreadValues({
4928
- ref,
4929
- className: cn(
4930
- "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
4931
- className
4932
- )
4933
- }, props)
4934
- );
4935
- });
4936
- TableRow.displayName = "TableRow";
4937
- var TableHead = React66.forwardRef((_a, ref) => {
4938
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4939
- return /* @__PURE__ */ jsx70(
4940
- "th",
4941
- __spreadValues({
4942
- ref,
4943
- className: cn(
4944
- "h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",
4945
- className
4946
- )
4947
- }, props)
4948
- );
4949
- });
4950
- TableHead.displayName = "TableHead";
4951
- var TableCell = React66.forwardRef((_a, ref) => {
4952
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4953
- return /* @__PURE__ */ jsx70(
4954
- "td",
4955
- __spreadValues({
4956
- ref,
4957
- className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className)
4958
- }, props)
4959
- );
4960
- });
4961
- TableCell.displayName = "TableCell";
4962
- var TableCaption = React66.forwardRef((_a, ref) => {
4963
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4964
- return /* @__PURE__ */ jsx70(
4965
- "caption",
4966
- __spreadValues({
4967
- ref,
4968
- className: cn("mt-4 text-sm text-muted-foreground", className)
4969
- }, props)
4970
- );
4971
- });
4972
- TableCaption.displayName = "TableCaption";
4973
-
4974
- // src/ui/tabs.tsx
4975
- import * as React67 from "react";
4976
- import * as TabsPrimitive from "@radix-ui/react-tabs";
4977
- import { jsx as jsx71 } from "react/jsx-runtime";
4978
- var Tabs = TabsPrimitive.Root;
4979
- var TabsList = React67.forwardRef((_a, ref) => {
4980
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4981
- return /* @__PURE__ */ jsx71(
4982
- TabsPrimitive.List,
4983
- __spreadValues({
4984
- ref,
4985
- className: cn(
4986
- "inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",
4987
- className
4988
- )
4989
- }, props)
4990
- );
4991
- });
4992
- TabsList.displayName = TabsPrimitive.List.displayName;
4993
- var TabsTrigger = React67.forwardRef((_a, ref) => {
4994
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4995
- return /* @__PURE__ */ jsx71(
4996
- TabsPrimitive.Trigger,
4997
- __spreadValues({
4998
- ref,
4999
- className: cn(
5000
- "inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-xs",
5001
- className
5002
- )
5003
- }, props)
5004
- );
5005
- });
5006
- TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
5007
- var TabsContent = React67.forwardRef((_a, ref) => {
5008
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5009
- return /* @__PURE__ */ jsx71(
5010
- TabsPrimitive.Content,
5011
- __spreadValues({
5012
- ref,
5013
- className: cn(
5014
- "mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
5015
- className
5016
- )
5017
- }, props)
5018
- );
5019
- });
5020
- TabsContent.displayName = TabsPrimitive.Content.displayName;
5021
-
5022
- // src/ui/textarea.tsx
5023
- import * as React68 from "react";
5024
- import { jsx as jsx72 } from "react/jsx-runtime";
5025
- var Textarea = React68.forwardRef((_a, ref) => {
5026
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5027
- return /* @__PURE__ */ jsx72(
5028
- "textarea",
5029
- __spreadValues({
5030
- className: cn(
5031
- "flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
5032
- className
5033
- ),
5034
- ref
5035
- }, props)
5036
- );
5037
- });
5038
- Textarea.displayName = "Textarea";
5039
-
5040
- // src/ui/toast.tsx
5041
- import * as React69 from "react";
5042
- import * as ToastPrimitives from "@radix-ui/react-toast";
5043
- import { cva as cva8 } from "class-variance-authority";
5044
- import { jsx as jsx73 } from "react/jsx-runtime";
5045
- var ToastProvider = ToastPrimitives.Provider;
5046
- var ToastViewport = React69.forwardRef((_a, ref) => {
5047
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5048
- return /* @__PURE__ */ jsx73(
5049
- ToastPrimitives.Viewport,
5050
- __spreadValues({
5051
- ref,
5052
- className: cn(
5053
- "fixed top-0 z-100 flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",
5054
- className
5055
- )
5056
- }, props)
5057
- );
5058
- });
5059
- ToastViewport.displayName = ToastPrimitives.Viewport.displayName;
5060
- var toastVariants = cva8(
5061
- "group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full sm:data-[state=open]:slide-in-from-bottom-full",
5062
- {
5063
- variants: {
5064
- variant: {
5065
- default: "border bg-background text-foreground",
5066
- destructive: "destructive group border-destructive bg-destructive text-destructive-foreground"
5067
- }
5068
- },
5069
- defaultVariants: {
5070
- variant: "default"
5071
- }
5072
- }
5073
- );
5074
- var Toast = React69.forwardRef((_a, ref) => {
5075
- var _b = _a, { className, variant } = _b, props = __objRest(_b, ["className", "variant"]);
5076
- return /* @__PURE__ */ jsx73(
5077
- ToastPrimitives.Root,
5078
- __spreadValues({
5079
- ref,
5080
- className: cn(toastVariants({ variant }), className)
5081
- }, props)
5082
- );
5083
- });
5084
- Toast.displayName = ToastPrimitives.Root.displayName;
5085
- var ToastAction = React69.forwardRef((_a, ref) => {
5086
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5087
- return /* @__PURE__ */ jsx73(
5088
- ToastPrimitives.Action,
5089
- __spreadValues({
5090
- ref,
5091
- className: cn(
5092
- "inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 hover:group-[.destructive]:border-destructive/30 hover:group-[.destructive]:bg-destructive hover:group-[.destructive]:text-destructive-foreground focus:group-[.destructive]:ring-destructive",
5093
- className
5094
- )
5095
- }, props)
5096
- );
5097
- });
5098
- ToastAction.displayName = ToastPrimitives.Action.displayName;
5099
- var ToastClose = React69.forwardRef((_a, ref) => {
5100
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5101
- return /* @__PURE__ */ jsx73(
5102
- ToastPrimitives.Close,
5103
- __spreadProps(__spreadValues({
5104
- ref,
5105
- className: cn(
5106
- "absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-hidden focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 hover:group-[.destructive]:text-red-50 focus:group-[.destructive]:ring-red-400 focus:group-[.destructive]:ring-offset-red-600",
5107
- className
5108
- ),
5109
- "toast-close": ""
5110
- }, props), {
5111
- children: /* @__PURE__ */ jsx73(globalLucideIcons.X, { className: "h-4 w-4" })
5112
- })
5113
- );
5114
- });
5115
- ToastClose.displayName = ToastPrimitives.Close.displayName;
5116
- var ToastTitle = React69.forwardRef((_a, ref) => {
5117
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5118
- return /* @__PURE__ */ jsx73(
5119
- ToastPrimitives.Title,
5120
- __spreadValues({
5121
- ref,
5122
- className: cn("text-sm font-semibold", className)
5123
- }, props)
5124
- );
5125
- });
5126
- ToastTitle.displayName = ToastPrimitives.Title.displayName;
5127
- var ToastDescription = React69.forwardRef((_a, ref) => {
5128
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5129
- return /* @__PURE__ */ jsx73(
5130
- ToastPrimitives.Description,
5131
- __spreadValues({
5132
- ref,
5133
- className: cn("text-sm opacity-90", className)
5134
- }, props)
5135
- );
5136
- });
5137
- ToastDescription.displayName = ToastPrimitives.Description.displayName;
5138
-
5139
- // src/ui/use-toast.ts
5140
- import * as React70 from "react";
5141
- var TOAST_LIMIT = 1;
5142
- var TOAST_REMOVE_DELAY = 1e6;
5143
- var ACTIONS = {
5144
- ADD_TOAST: "ADD_TOAST",
5145
- UPDATE_TOAST: "UPDATE_TOAST",
5146
- DISMISS_TOAST: "DISMISS_TOAST",
5147
- REMOVE_TOAST: "REMOVE_TOAST"
5148
- };
5149
- var count = 0;
5150
- function genId() {
5151
- count = (count + 1) % Number.MAX_SAFE_INTEGER;
5152
- return count.toString();
5153
- }
5154
- var toastTimeouts = /* @__PURE__ */ new Map();
5155
- var addToRemoveQueue = (toastId) => {
5156
- if (toastTimeouts.has(toastId)) {
5157
- return;
5158
- }
5159
- const timeout = setTimeout(() => {
5160
- toastTimeouts.delete(toastId);
5161
- dispatch({
5162
- type: ACTIONS.REMOVE_TOAST,
5163
- toastId
5164
- });
5165
- }, TOAST_REMOVE_DELAY);
5166
- toastTimeouts.set(toastId, timeout);
5167
- };
5168
- var reducer = (state, action) => {
5169
- switch (action.type) {
5170
- case "ADD_TOAST":
5171
- return __spreadProps(__spreadValues({}, state), {
5172
- toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT)
5173
- });
5174
- case "UPDATE_TOAST":
5175
- return __spreadProps(__spreadValues({}, state), {
5176
- toasts: state.toasts.map(
5177
- (t) => t.id === action.toast.id ? __spreadValues(__spreadValues({}, t), action.toast) : t
5178
- )
5179
- });
5180
- case "DISMISS_TOAST": {
5181
- const { toastId } = action;
5182
- if (toastId) {
5183
- addToRemoveQueue(toastId);
5184
- } else {
5185
- state.toasts.forEach((toast2) => {
5186
- addToRemoveQueue(toast2.id);
5187
- });
5188
- }
5189
- return __spreadProps(__spreadValues({}, state), {
5190
- toasts: state.toasts.map(
5191
- (t) => t.id === toastId || toastId === void 0 ? __spreadProps(__spreadValues({}, t), {
5192
- open: false
5193
- }) : t
5194
- )
5195
- });
5196
- }
5197
- case "REMOVE_TOAST":
5198
- if (action.toastId === void 0) {
5199
- return __spreadProps(__spreadValues({}, state), {
5200
- toasts: []
5201
- });
5202
- }
5203
- return __spreadProps(__spreadValues({}, state), {
5204
- toasts: state.toasts.filter((t) => t.id !== action.toastId)
5205
- });
5206
- }
5207
- };
5208
- var listeners = [];
5209
- var memoryState = { toasts: [] };
5210
- function dispatch(action) {
5211
- memoryState = reducer(memoryState, action);
5212
- listeners.forEach((listener) => {
5213
- listener(memoryState);
5214
- });
5215
- }
5216
- function toast(_a) {
5217
- var props = __objRest(_a, []);
5218
- const id = genId();
5219
- const update = (props2) => dispatch({
5220
- type: "UPDATE_TOAST",
5221
- toast: __spreadProps(__spreadValues({}, props2), { id })
5222
- });
5223
- const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id });
5224
- dispatch({
5225
- type: "ADD_TOAST",
5226
- toast: __spreadProps(__spreadValues({}, props), {
5227
- id,
5228
- open: true,
5229
- onOpenChange: (open) => {
5230
- if (!open) dismiss();
5231
- }
5232
- })
5233
- });
5234
- return {
5235
- id,
5236
- dismiss,
5237
- update
5238
- };
5239
- }
5240
- function useToast() {
5241
- const [state, setState] = React70.useState(memoryState);
5242
- React70.useEffect(() => {
5243
- listeners.push(setState);
5244
- return () => {
5245
- const index = listeners.indexOf(setState);
5246
- if (index > -1) {
5247
- listeners.splice(index, 1);
5248
- }
5249
- };
5250
- }, [state]);
5251
- return __spreadProps(__spreadValues({}, state), {
5252
- toast,
5253
- dismiss: (toastId) => dispatch({ type: "DISMISS_TOAST", toastId })
5254
- });
5255
- }
5256
-
5257
- // src/ui/toaster.tsx
5258
- import { jsx as jsx74, jsxs as jsxs27 } from "react/jsx-runtime";
5259
- function Toaster2() {
5260
- const { toasts } = useToast();
5261
- return /* @__PURE__ */ jsxs27(ToastProvider, { children: [
5262
- toasts.map(function(_a) {
5263
- var _b = _a, { id, title, description, action } = _b, props = __objRest(_b, ["id", "title", "description", "action"]);
5264
- return /* @__PURE__ */ jsxs27(Toast, __spreadProps(__spreadValues({}, props), { children: [
5265
- /* @__PURE__ */ jsxs27("div", { className: "grid gap-1", children: [
5266
- title && /* @__PURE__ */ jsx74(ToastTitle, { children: title }),
5267
- description && /* @__PURE__ */ jsx74(ToastDescription, { children: description })
5268
- ] }),
5269
- action,
5270
- /* @__PURE__ */ jsx74(ToastClose, {})
5271
- ] }), id);
5272
- }),
5273
- /* @__PURE__ */ jsx74(ToastViewport, {})
5274
- ] });
5275
- }
5276
-
5277
- // src/ui/toggle-group.tsx
5278
- import * as React72 from "react";
5279
- import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
5280
-
5281
- // src/ui/toggle.tsx
5282
- import * as React71 from "react";
5283
- import * as TogglePrimitive from "@radix-ui/react-toggle";
5284
- import { cva as cva9 } from "class-variance-authority";
5285
- import { jsx as jsx75 } from "react/jsx-runtime";
5286
- var toggleVariants = cva9(
5287
- "inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2",
5288
- {
5289
- variants: {
5290
- variant: {
5291
- default: "bg-transparent",
5292
- outline: "border border-input bg-transparent hover:bg-accent hover:text-accent-foreground"
5293
- },
5294
- size: {
5295
- default: "h-10 px-3 min-w-10",
5296
- sm: "h-9 px-2.5 min-w-9",
5297
- lg: "h-11 px-5 min-w-11"
5298
- }
5299
- },
5300
- defaultVariants: {
5301
- variant: "default",
5302
- size: "default"
5303
- }
5304
- }
5305
- );
5306
- var Toggle = React71.forwardRef((_a, ref) => {
5307
- var _b = _a, { className, variant, size } = _b, props = __objRest(_b, ["className", "variant", "size"]);
5308
- return /* @__PURE__ */ jsx75(
5309
- TogglePrimitive.Root,
5310
- __spreadValues({
5311
- ref,
5312
- className: cn(toggleVariants({ variant, size, className }))
5313
- }, props)
5314
- );
5315
- });
5316
- Toggle.displayName = TogglePrimitive.Root.displayName;
5317
-
5318
- // src/ui/toggle-group.tsx
5319
- import { jsx as jsx76 } from "react/jsx-runtime";
5320
- var ToggleGroupContext = React72.createContext({
5321
- size: "default",
5322
- variant: "default"
5323
- });
5324
- var ToggleGroup = React72.forwardRef((_a, ref) => {
5325
- var _b = _a, { className, variant, size, children } = _b, props = __objRest(_b, ["className", "variant", "size", "children"]);
5326
- return /* @__PURE__ */ jsx76(
5327
- ToggleGroupPrimitive.Root,
5328
- __spreadProps(__spreadValues({
5329
- ref,
5330
- className: cn("flex items-center justify-center gap-1", className)
5331
- }, props), {
5332
- children: /* @__PURE__ */ jsx76(ToggleGroupContext.Provider, { value: { variant, size }, children })
5333
- })
5334
- );
5335
- });
5336
- ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
5337
- var ToggleGroupItem = React72.forwardRef((_a, ref) => {
5338
- var _b = _a, { className, children, variant, size } = _b, props = __objRest(_b, ["className", "children", "variant", "size"]);
5339
- const context = React72.useContext(ToggleGroupContext);
5340
- return /* @__PURE__ */ jsx76(
5341
- ToggleGroupPrimitive.Item,
5342
- __spreadProps(__spreadValues({
5343
- ref,
5344
- className: cn(
5345
- toggleVariants({
5346
- variant: context.variant || variant,
5347
- size: context.size || size
5348
- }),
5349
- className
5350
- )
5351
- }, props), {
5352
- children
5353
- })
5354
- );
5355
- });
5356
- ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
1730
+ LanguageButton.displayName = "Button";
5357
1731
 
5358
1732
  // src/lib/icon-context.tsx
5359
- import { createContext as createContext6, useContext as useContext7 } from "react";
5360
- import { jsx as jsx77 } from "react/jsx-runtime";
5361
- var IconConfigContext = createContext6(null);
1733
+ import { createContext, useContext } from "react";
1734
+ import { jsx as jsx35 } from "react/jsx-runtime";
1735
+ var IconConfigContext = createContext(null);
5362
1736
  function IconConfigProvider({ config, children }) {
5363
- return /* @__PURE__ */ jsx77(IconConfigContext.Provider, { value: config, children });
1737
+ return /* @__PURE__ */ jsx35(IconConfigContext.Provider, { value: config, children });
5364
1738
  }
5365
1739
  function useIconConfig() {
5366
- const config = useContext7(IconConfigContext);
1740
+ const config = useContext(IconConfigContext);
5367
1741
  if (config === null) {
5368
1742
  throw new Error(
5369
1743
  '[SiteIcon] IconConfigProvider not found. Please wrap your app with <IconConfigProvider config={{ siteIcon: "YourIcon" }}>.'
@@ -5381,7 +1755,7 @@ function useIconConfigSafe(iconKey) {
5381
1755
  }
5382
1756
 
5383
1757
  // src/lib/site-icon.tsx
5384
- import { jsx as jsx78 } from "react/jsx-runtime";
1758
+ import { jsx as jsx36 } from "react/jsx-runtime";
5385
1759
  function SiteIcon(_a) {
5386
1760
  var _b = _a, {
5387
1761
  size = 24,
@@ -5399,27 +1773,21 @@ function SiteIcon(_a) {
5399
1773
  if (typeof configuredIcon === "string") {
5400
1774
  if (configuredIcon === "") {
5401
1775
  const DefaultIcon = globalLucideIcons["Download"];
5402
- return /* @__PURE__ */ jsx78(DefaultIcon, __spreadValues({ size, className: cn(themeIconColor, className) }, props));
1776
+ return /* @__PURE__ */ jsx36(DefaultIcon, __spreadValues({ size, className: cn(themeIconColor, className) }, props));
5403
1777
  }
5404
1778
  const IconComponent = globalLucideIcons[configuredIcon];
5405
1779
  if (!IconComponent) {
5406
1780
  throw new Error(`[SiteIcon] Icon key "${configuredIcon}" not found in globalLucideIcons.`);
5407
1781
  }
5408
- return /* @__PURE__ */ jsx78(IconComponent, __spreadValues({ size, className: cn(themeIconColor, className) }, props));
1782
+ return /* @__PURE__ */ jsx36(IconComponent, __spreadValues({ size, className: cn(themeIconColor, className) }, props));
5409
1783
  } else {
5410
1784
  const CustomIcon = configuredIcon;
5411
1785
  const hasColorClass = className && /text-\w+/.test(className);
5412
1786
  const finalClassName = hasColorClass ? className : cn(themeIconColor, className);
5413
- return /* @__PURE__ */ jsx78(CustomIcon, __spreadValues({ size, className: finalClassName }, props));
1787
+ return /* @__PURE__ */ jsx36(CustomIcon, __spreadValues({ size, className: finalClassName }, props));
5414
1788
  }
5415
1789
  }
5416
1790
  export {
5417
- Accordion,
5418
- AccordionContent,
5419
- AccordionItem,
5420
- AccordionTrigger,
5421
- Alert,
5422
- AlertDescription,
5423
1791
  AlertDialog,
5424
1792
  AlertDialogAction,
5425
1793
  AlertDialogCancel,
@@ -5431,87 +1799,8 @@ export {
5431
1799
  AlertDialogPortal,
5432
1800
  AlertDialogTitle,
5433
1801
  AlertDialogTrigger,
5434
- AlertTitle,
5435
- AspectRatio,
5436
- Avatar,
5437
- AvatarFallback,
5438
- AvatarImage,
5439
- Badge,
5440
- Breadcrumb,
5441
- BreadcrumbEllipsis,
5442
- BreadcrumbItem,
5443
- BreadcrumbLink,
5444
- BreadcrumbList,
5445
- BreadcrumbPage,
5446
- BreadcrumbSeparator,
5447
1802
  Button,
5448
- Calendar,
5449
- Card,
5450
- CardContent,
5451
- CardDescription,
5452
- CardFooter,
5453
- CardHeader,
5454
- CardTitle,
5455
- Carousel,
5456
- CarouselContent,
5457
- CarouselItem,
5458
- CarouselNext,
5459
- CarouselPrevious,
5460
- ChartContainer,
5461
- ChartLegend,
5462
- ChartLegendContent,
5463
- ChartStyle,
5464
- ChartTooltip,
5465
- ChartTooltipContent,
5466
- Checkbox,
5467
- Collapsible,
5468
- CollapsibleContent2 as CollapsibleContent,
5469
- CollapsibleTrigger2 as CollapsibleTrigger,
5470
- Command,
5471
- CommandDialog,
5472
- CommandEmpty,
5473
- CommandGroup,
5474
- CommandInput,
5475
- CommandItem,
5476
- CommandList,
5477
- CommandSeparator,
5478
- CommandShortcut,
5479
- ContextMenu,
5480
- ContextMenuCheckboxItem,
5481
- ContextMenuContent,
5482
- ContextMenuGroup,
5483
- ContextMenuItem,
5484
- ContextMenuLabel,
5485
- ContextMenuPortal,
5486
- ContextMenuRadioGroup,
5487
- ContextMenuRadioItem,
5488
- ContextMenuSeparator,
5489
- ContextMenuShortcut,
5490
- ContextMenuSub,
5491
- ContextMenuSubContent,
5492
- ContextMenuSubTrigger,
5493
- ContextMenuTrigger,
5494
1803
  DefaultSiteIcon,
5495
- Dialog,
5496
- DialogClose,
5497
- DialogContent,
5498
- DialogDescription,
5499
- DialogFooter,
5500
- DialogHeader,
5501
- DialogOverlay,
5502
- DialogPortal,
5503
- DialogTitle,
5504
- DialogTrigger,
5505
- Drawer,
5506
- DrawerClose,
5507
- DrawerContent,
5508
- DrawerDescription,
5509
- DrawerFooter,
5510
- DrawerHeader,
5511
- DrawerOverlay,
5512
- DrawerPortal,
5513
- DrawerTitle,
5514
- DrawerTrigger,
5515
1804
  DropdownMenu,
5516
1805
  DropdownMenuCheckboxItem,
5517
1806
  DropdownMenuContent,
@@ -5527,157 +1816,15 @@ export {
5527
1816
  DropdownMenuSubContent,
5528
1817
  DropdownMenuSubTrigger,
5529
1818
  DropdownMenuTrigger,
5530
- Form,
5531
- FormControl,
5532
- FormDescription,
5533
- FormField,
5534
- FormItem,
5535
- FormLabel,
5536
- FormMessage,
5537
- HoverCard,
5538
- HoverCardContent,
5539
- HoverCardTrigger,
5540
1819
  IconConfigProvider,
5541
- Input,
5542
- InputOTP,
5543
- InputOTPGroup,
5544
- InputOTPSeparator,
5545
- InputOTPSlot,
5546
- Label3 as Label,
1820
+ Label2 as Label,
5547
1821
  LanguageButton,
5548
- Menubar,
5549
- MenubarCheckboxItem,
5550
- MenubarContent,
5551
- MenubarGroup,
5552
- MenubarItem,
5553
- MenubarLabel,
5554
- MenubarMenu,
5555
- MenubarPortal,
5556
- MenubarRadioGroup,
5557
- MenubarRadioItem,
5558
- MenubarSeparator,
5559
- MenubarShortcut,
5560
- MenubarSub,
5561
- MenubarSubContent,
5562
- MenubarSubTrigger,
5563
- MenubarTrigger,
5564
- NavigationMenu,
5565
- NavigationMenuContent,
5566
- NavigationMenuIndicator,
5567
- NavigationMenuItem,
5568
- NavigationMenuLink,
5569
- NavigationMenuList,
5570
- NavigationMenuTrigger,
5571
- NavigationMenuViewport,
5572
1822
  NotFoundIcon,
5573
- Pagination,
5574
- PaginationContent,
5575
- PaginationEllipsis,
5576
- PaginationItem,
5577
- PaginationLink,
5578
- PaginationNext,
5579
- PaginationPrevious,
5580
- Popover,
5581
- PopoverContent,
5582
- PopoverTrigger,
5583
- Progress,
5584
- RadioGroup4 as RadioGroup,
5585
- RadioGroupItem,
5586
- ResizableHandle,
5587
- ResizablePanel,
5588
- ResizablePanelGroup,
5589
- ScrollArea,
5590
- ScrollBar,
5591
- Select,
5592
- SelectContent,
5593
- SelectGroup,
5594
- SelectItem,
5595
- SelectLabel,
5596
- SelectScrollDownButton,
5597
- SelectScrollUpButton,
5598
- SelectSeparator,
5599
- SelectTrigger,
5600
- SelectValue,
5601
- Separator5 as Separator,
5602
- Sheet,
5603
- SheetClose,
5604
- SheetContent,
5605
- SheetDescription,
5606
- SheetFooter,
5607
- SheetHeader,
5608
- SheetOverlay,
5609
- SheetPortal,
5610
- SheetTitle,
5611
- SheetTrigger,
5612
- Sidebar,
5613
- SidebarContent,
5614
- SidebarFooter,
5615
- SidebarGroup,
5616
- SidebarGroupAction,
5617
- SidebarGroupContent,
5618
- SidebarGroupLabel,
5619
- SidebarHeader,
5620
- SidebarInput,
5621
- SidebarInset,
5622
- SidebarMenu,
5623
- SidebarMenuAction,
5624
- SidebarMenuBadge,
5625
- SidebarMenuButton,
5626
- SidebarMenuItem,
5627
- SidebarMenuSkeleton,
5628
- SidebarMenuSub,
5629
- SidebarMenuSubButton,
5630
- SidebarMenuSubItem,
5631
- SidebarProvider,
5632
- SidebarRail,
5633
- SidebarSeparator,
5634
- SidebarTrigger,
5635
1823
  SiteIcon,
5636
- Skeleton,
5637
- Slider,
5638
- Toaster as SonnerToaster,
5639
- Switch,
5640
- Table,
5641
- TableBody,
5642
- TableCaption,
5643
- TableCell,
5644
- TableFooter,
5645
- TableHead,
5646
- TableHeader,
5647
- TableRow,
5648
- Tabs,
5649
- TabsContent,
5650
- TabsList,
5651
- TabsTrigger,
5652
- Textarea,
5653
- Toast,
5654
- ToastAction,
5655
- ToastClose,
5656
- ToastDescription,
5657
- ToastProvider,
5658
- ToastTitle,
5659
- Toaster2 as ToastToaster,
5660
- ToastViewport,
5661
- Toggle,
5662
- ToggleGroup,
5663
- ToggleGroupItem,
5664
- Tooltip2 as Tooltip,
5665
- TooltipContent,
5666
- TooltipProvider,
5667
- TooltipTrigger,
5668
- badgeVariants,
5669
1824
  buttonVariants,
5670
1825
  getGlobalIcon,
5671
1826
  getIconElement,
5672
- globalLucideIcons,
5673
- navigationMenuTriggerStyle,
5674
- reducer,
5675
- toast,
5676
- toggleVariants,
5677
- useFormField,
5678
- useIsMobile,
5679
- useSidebar,
5680
- useToast
1827
+ globalLucideIcons
5681
1828
  };
5682
1829
  /**
5683
1830
  * @license