@marcoschwartz/lite-ui 0.4.1 → 0.7.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.
package/dist/index.js CHANGED
@@ -1,8 +1,10 @@
1
1
  "use client";
2
2
  "use strict";
3
+ var __create = Object.create;
3
4
  var __defProp = Object.defineProperty;
4
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
6
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
9
  var __export = (target, all) => {
8
10
  for (var name in all)
@@ -16,6 +18,14 @@ var __copyProps = (to, from, except, desc) => {
16
18
  }
17
19
  return to;
18
20
  };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
19
29
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
30
 
21
31
  // src/index.ts
@@ -23,7 +33,9 @@ var index_exports = {};
23
33
  __export(index_exports, {
24
34
  ActionMenu: () => ActionMenu,
25
35
  Alert: () => Alert,
36
+ AppShell: () => AppShell,
26
37
  AppleIcon: () => AppleIcon,
38
+ Avatar: () => Avatar,
27
39
  Badge: () => Badge,
28
40
  BellIcon: () => BellIcon,
29
41
  Button: () => Button,
@@ -37,10 +49,12 @@ __export(index_exports, {
37
49
  CloseIcon: () => CloseIcon,
38
50
  DatePicker: () => DatePicker,
39
51
  DateTimePicker: () => DateTimePicker,
52
+ Divider: () => Divider,
40
53
  DownloadIcon: () => DownloadIcon,
41
54
  Drawer: () => Drawer,
42
55
  EditIcon: () => EditIcon,
43
56
  FacebookIcon: () => FacebookIcon,
57
+ FileUpload: () => FileUpload,
44
58
  GitHubIcon: () => GitHubIcon,
45
59
  GoogleIcon: () => GoogleIcon,
46
60
  HeartIcon: () => HeartIcon,
@@ -53,19 +67,25 @@ __export(index_exports, {
53
67
  Navbar: () => Navbar,
54
68
  Pagination: () => Pagination,
55
69
  PlusIcon: () => PlusIcon,
70
+ ProgressBar: () => ProgressBar,
71
+ Radio: () => Radio,
56
72
  SearchIcon: () => SearchIcon,
57
73
  Select: () => Select,
58
74
  SettingsIcon: () => SettingsIcon,
59
75
  Sidebar: () => Sidebar,
60
76
  SidebarProvider: () => SidebarProvider,
61
77
  SlackIcon: () => SlackIcon,
78
+ Slider: () => Slider,
62
79
  Spinner: () => Spinner,
63
80
  StarIcon: () => StarIcon,
81
+ Stepper: () => Stepper,
64
82
  Table: () => Table,
65
83
  Tabs: () => Tabs,
66
84
  TextInput: () => TextInput,
85
+ Textarea: () => Textarea,
67
86
  ThemeProvider: () => ThemeProvider,
68
87
  TimePicker: () => TimePicker,
88
+ ToastProvider: () => ToastProvider,
69
89
  Toggle: () => Toggle,
70
90
  TrashIcon: () => TrashIcon,
71
91
  TwitterIcon: () => TwitterIcon,
@@ -75,8 +95,10 @@ __export(index_exports, {
75
95
  getThemeScript: () => getThemeScript,
76
96
  themeScript: () => themeScript,
77
97
  themes: () => themes,
98
+ toast: () => toast,
78
99
  useSidebar: () => useSidebar,
79
- useTheme: () => useTheme
100
+ useTheme: () => useTheme,
101
+ useToast: () => useToast
80
102
  });
81
103
  module.exports = __toCommonJS(index_exports);
82
104
 
@@ -470,10 +492,11 @@ var Sidebar = ({
470
492
  }) => {
471
493
  const { theme } = useTheme();
472
494
  const widthClass = widthClasses[width];
495
+ const borderClass = position === "left" ? "border-r" : "border-l";
473
496
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
474
497
  "aside",
475
498
  {
476
- className: `${widthClass} bg-white dark:bg-gray-800 border-${position === "left" ? "r" : "l"} border-gray-200 dark:border-gray-700 h-full overflow-y-auto ${className}`,
499
+ className: `${widthClass} bg-white dark:bg-gray-800 ${borderClass} border-gray-200 dark:border-gray-700 h-full overflow-y-auto ${className}`,
477
500
  children
478
501
  }
479
502
  );
@@ -510,10 +533,357 @@ var useSidebar = () => {
510
533
  return context;
511
534
  };
512
535
 
513
- // src/components/Drawer.tsx
536
+ // src/components/AppShell.tsx
514
537
  var import_react5 = require("react");
538
+
539
+ // src/icons/icon-utils.tsx
515
540
  var import_jsx_runtime8 = require("react/jsx-runtime");
516
541
  var sizeClasses2 = {
542
+ xs: "w-3 h-3",
543
+ sm: "w-4 h-4",
544
+ md: "w-5 h-5",
545
+ lg: "w-6 h-6",
546
+ xl: "w-8 h-8"
547
+ };
548
+ var createIcon = (displayName, path, filled = false) => {
549
+ const Icon = ({ size = "md", className = "", color = "currentColor" }) => {
550
+ const sizeClass = sizeClasses2[size];
551
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
552
+ "svg",
553
+ {
554
+ className: `${sizeClass} ${className}`,
555
+ fill: filled ? color : "none",
556
+ viewBox: "0 0 24 24",
557
+ stroke: filled ? "none" : color,
558
+ "aria-hidden": "true",
559
+ children: path
560
+ }
561
+ );
562
+ };
563
+ Icon.displayName = displayName;
564
+ return Icon;
565
+ };
566
+
567
+ // src/icons/HomeIcon.tsx
568
+ var import_jsx_runtime9 = require("react/jsx-runtime");
569
+ var HomeIcon = createIcon(
570
+ "HomeIcon",
571
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" })
572
+ );
573
+
574
+ // src/icons/UserIcon.tsx
575
+ var import_jsx_runtime10 = require("react/jsx-runtime");
576
+ var UserIcon = createIcon(
577
+ "UserIcon",
578
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" })
579
+ );
580
+
581
+ // src/icons/SearchIcon.tsx
582
+ var import_jsx_runtime11 = require("react/jsx-runtime");
583
+ var SearchIcon = createIcon(
584
+ "SearchIcon",
585
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" })
586
+ );
587
+
588
+ // src/icons/BellIcon.tsx
589
+ var import_jsx_runtime12 = require("react/jsx-runtime");
590
+ var BellIcon = createIcon(
591
+ "BellIcon",
592
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9" })
593
+ );
594
+
595
+ // src/icons/SettingsIcon.tsx
596
+ var import_jsx_runtime13 = require("react/jsx-runtime");
597
+ var SettingsIcon = createIcon(
598
+ "SettingsIcon",
599
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
600
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" }),
601
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z" })
602
+ ] })
603
+ );
604
+
605
+ // src/icons/MenuIcon.tsx
606
+ var import_jsx_runtime14 = require("react/jsx-runtime");
607
+ var MenuIcon = createIcon(
608
+ "MenuIcon",
609
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" })
610
+ );
611
+
612
+ // src/icons/CloseIcon.tsx
613
+ var import_jsx_runtime15 = require("react/jsx-runtime");
614
+ var CloseIcon = createIcon(
615
+ "CloseIcon",
616
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" })
617
+ );
618
+
619
+ // src/icons/ChevronDownIcon.tsx
620
+ var import_jsx_runtime16 = require("react/jsx-runtime");
621
+ var ChevronDownIcon = createIcon(
622
+ "ChevronDownIcon",
623
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" })
624
+ );
625
+
626
+ // src/icons/ChevronRightIcon.tsx
627
+ var import_jsx_runtime17 = require("react/jsx-runtime");
628
+ var ChevronRightIcon = createIcon(
629
+ "ChevronRightIcon",
630
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" })
631
+ );
632
+
633
+ // src/icons/CheckIcon.tsx
634
+ var import_jsx_runtime18 = require("react/jsx-runtime");
635
+ var CheckIcon = createIcon(
636
+ "CheckIcon",
637
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" })
638
+ );
639
+
640
+ // src/icons/PlusIcon.tsx
641
+ var import_jsx_runtime19 = require("react/jsx-runtime");
642
+ var PlusIcon = createIcon(
643
+ "PlusIcon",
644
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 4v16m8-8H4" })
645
+ );
646
+
647
+ // src/icons/TrashIcon.tsx
648
+ var import_jsx_runtime20 = require("react/jsx-runtime");
649
+ var TrashIcon = createIcon(
650
+ "TrashIcon",
651
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" })
652
+ );
653
+
654
+ // src/icons/EditIcon.tsx
655
+ var import_jsx_runtime21 = require("react/jsx-runtime");
656
+ var EditIcon = createIcon(
657
+ "EditIcon",
658
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z" })
659
+ );
660
+
661
+ // src/icons/MailIcon.tsx
662
+ var import_jsx_runtime22 = require("react/jsx-runtime");
663
+ var MailIcon = createIcon(
664
+ "MailIcon",
665
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" })
666
+ );
667
+
668
+ // src/icons/StarIcon.tsx
669
+ var import_jsx_runtime23 = require("react/jsx-runtime");
670
+ var StarIcon = createIcon(
671
+ "StarIcon",
672
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z" })
673
+ );
674
+
675
+ // src/icons/HeartIcon.tsx
676
+ var import_jsx_runtime24 = require("react/jsx-runtime");
677
+ var HeartIcon = createIcon(
678
+ "HeartIcon",
679
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z" })
680
+ );
681
+
682
+ // src/icons/DownloadIcon.tsx
683
+ var import_jsx_runtime25 = require("react/jsx-runtime");
684
+ var DownloadIcon = createIcon(
685
+ "DownloadIcon",
686
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" })
687
+ );
688
+
689
+ // src/icons/UploadIcon.tsx
690
+ var import_jsx_runtime26 = require("react/jsx-runtime");
691
+ var UploadIcon = createIcon(
692
+ "UploadIcon",
693
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12" })
694
+ );
695
+
696
+ // src/icons/CameraIcon.tsx
697
+ var import_jsx_runtime27 = require("react/jsx-runtime");
698
+ var CameraIcon = createIcon(
699
+ "CameraIcon",
700
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_jsx_runtime27.Fragment, { children: [
701
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z" }),
702
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 13a3 3 0 11-6 0 3 3 0 016 0z" })
703
+ ] })
704
+ );
705
+
706
+ // src/icons/LockIcon.tsx
707
+ var import_jsx_runtime28 = require("react/jsx-runtime");
708
+ var LockIcon = createIcon(
709
+ "LockIcon",
710
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z" })
711
+ );
712
+
713
+ // src/icons/CalendarIcon.tsx
714
+ var import_jsx_runtime29 = require("react/jsx-runtime");
715
+ var CalendarIcon = createIcon(
716
+ "CalendarIcon",
717
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })
718
+ );
719
+
720
+ // src/icons/GoogleIcon.tsx
721
+ var import_jsx_runtime30 = require("react/jsx-runtime");
722
+ var GoogleIcon = createIcon(
723
+ "GoogleIcon",
724
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("path", { d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z" }),
725
+ true
726
+ );
727
+
728
+ // src/icons/GitHubIcon.tsx
729
+ var import_jsx_runtime31 = require("react/jsx-runtime");
730
+ var GitHubIcon = createIcon(
731
+ "GitHubIcon",
732
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("path", { d: "M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" }),
733
+ true
734
+ );
735
+
736
+ // src/icons/TwitterIcon.tsx
737
+ var import_jsx_runtime32 = require("react/jsx-runtime");
738
+ var TwitterIcon = createIcon(
739
+ "TwitterIcon",
740
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("path", { d: "M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z" }),
741
+ true
742
+ );
743
+
744
+ // src/icons/FacebookIcon.tsx
745
+ var import_jsx_runtime33 = require("react/jsx-runtime");
746
+ var FacebookIcon = createIcon(
747
+ "FacebookIcon",
748
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("path", { d: "M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z" }),
749
+ true
750
+ );
751
+
752
+ // src/icons/AppleIcon.tsx
753
+ var import_jsx_runtime34 = require("react/jsx-runtime");
754
+ var AppleIcon = createIcon(
755
+ "AppleIcon",
756
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("path", { d: "M17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z" }),
757
+ true
758
+ );
759
+
760
+ // src/icons/LinkedInIcon.tsx
761
+ var import_jsx_runtime35 = require("react/jsx-runtime");
762
+ var LinkedInIcon = createIcon(
763
+ "LinkedInIcon",
764
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("path", { d: "M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" }),
765
+ true
766
+ );
767
+
768
+ // src/icons/YouTubeIcon.tsx
769
+ var import_jsx_runtime36 = require("react/jsx-runtime");
770
+ var YouTubeIcon = createIcon(
771
+ "YouTubeIcon",
772
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("path", { d: "M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z" }),
773
+ true
774
+ );
775
+
776
+ // src/icons/SlackIcon.tsx
777
+ var import_jsx_runtime37 = require("react/jsx-runtime");
778
+ var SlackIcon = createIcon(
779
+ "SlackIcon",
780
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: "M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.268a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z" }),
781
+ true
782
+ );
783
+
784
+ // src/components/AppShell.tsx
785
+ var import_jsx_runtime38 = require("react/jsx-runtime");
786
+ var widthClasses2 = {
787
+ sm: "w-48",
788
+ md: "w-64",
789
+ lg: "w-80"
790
+ };
791
+ var breakpointClasses = {
792
+ sm: "sm",
793
+ md: "md",
794
+ lg: "lg",
795
+ xl: "xl"
796
+ };
797
+ var AppShell = ({
798
+ children,
799
+ navbar,
800
+ header,
801
+ navbarTitle,
802
+ navbarLogo,
803
+ defaultNavbarOpen = false,
804
+ responsive = true,
805
+ className = ""
806
+ }) => {
807
+ const { theme } = useTheme();
808
+ const [isMobileNavbarOpen, setIsMobileNavbarOpen] = (0, import_react5.useState)(defaultNavbarOpen);
809
+ const navbarWidth = navbar?.width || "md";
810
+ const navbarBreakpoint = navbar?.breakpoint || "md";
811
+ const widthClass = widthClasses2[navbarWidth];
812
+ const breakpoint = breakpointClasses[navbarBreakpoint];
813
+ if (!responsive && navbar) {
814
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: `min-h-screen flex flex-col ${className}`, children: [
815
+ header && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "w-full", children: header }),
816
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-1", children: [
817
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("aside", { className: `${widthClass} bg-white dark:bg-gray-800 border-r border-gray-200 dark:border-gray-700 h-full overflow-y-auto`, children: navbar.content }),
818
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("main", { className: "flex-1 overflow-y-auto", children })
819
+ ] })
820
+ ] });
821
+ }
822
+ if (!responsive) {
823
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: `min-h-screen flex flex-col ${className}`, children: [
824
+ header && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "w-full", children: header }),
825
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("main", { className: "flex-1 overflow-y-auto", children })
826
+ ] });
827
+ }
828
+ if (navbar) {
829
+ const mobileHeaderClass = navbarBreakpoint === "sm" ? "sm:hidden" : navbarBreakpoint === "md" ? "md:hidden" : navbarBreakpoint === "lg" ? "lg:hidden" : "xl:hidden";
830
+ const desktopNavbarClass = navbarBreakpoint === "sm" ? "sm:block" : navbarBreakpoint === "md" ? "md:block" : navbarBreakpoint === "lg" ? "lg:block" : "xl:block";
831
+ const mobileDrawerClass = navbarBreakpoint === "sm" ? "sm:hidden" : navbarBreakpoint === "md" ? "md:hidden" : navbarBreakpoint === "lg" ? "lg:hidden" : "xl:hidden";
832
+ const sidebarWidthClass = navbarWidth === "sm" ? "w-48" : navbarWidth === "lg" ? "w-80" : "w-64";
833
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: `min-h-screen flex flex-col bg-gray-50 dark:bg-gray-900 ${className}`, children: [
834
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: `${mobileHeaderClass} sticky top-0 z-30 bg-white dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700 px-4 py-3 flex items-center justify-between`, children: [
835
+ navbarLogo ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { children: navbarLogo }) : navbarTitle ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "text-xl font-bold text-gray-900 dark:text-gray-100", children: navbarTitle }) : null,
836
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
837
+ "button",
838
+ {
839
+ className: "p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",
840
+ onClick: () => setIsMobileNavbarOpen(!isMobileNavbarOpen),
841
+ "aria-label": "Toggle menu",
842
+ children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(MenuIcon, { size: "md" })
843
+ }
844
+ )
845
+ ] }),
846
+ header && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "w-full", children: header }),
847
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-1 min-h-0", children: [
848
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("aside", { className: `hidden ${desktopNavbarClass} ${sidebarWidthClass} bg-white dark:bg-gray-800 border-r border-gray-200 dark:border-gray-700 overflow-y-auto shrink-0`, children: navbar.content }),
849
+ isMobileNavbarOpen && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
850
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
851
+ "div",
852
+ {
853
+ className: `${mobileDrawerClass} fixed inset-0 z-40 bg-black/60 backdrop-blur-sm animate-in fade-in duration-200`,
854
+ onClick: () => setIsMobileNavbarOpen(false)
855
+ }
856
+ ),
857
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: `${mobileDrawerClass} fixed left-0 top-0 bottom-0 z-50 w-64 bg-white dark:bg-gray-800 shadow-2xl animate-in slide-in-from-left duration-300`, children: [
858
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "p-4 border-b border-gray-200 dark:border-gray-700 flex items-center justify-between", children: [
859
+ navbarLogo ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { children: navbarLogo }) : navbarTitle ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "text-xl font-bold text-gray-900 dark:text-gray-100", children: navbarTitle }) : null,
860
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
861
+ "button",
862
+ {
863
+ className: "p-1 rounded hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",
864
+ onClick: () => setIsMobileNavbarOpen(false),
865
+ "aria-label": "Close menu",
866
+ children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
867
+ }
868
+ )
869
+ ] }),
870
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "overflow-y-auto h-[calc(100vh-73px)]", children: navbar.content })
871
+ ] })
872
+ ] }),
873
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("main", { className: "flex-1 overflow-y-auto min-h-screen", children })
874
+ ] })
875
+ ] });
876
+ }
877
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: `min-h-screen flex flex-col ${className}`, children: [
878
+ header && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "w-full", children: header }),
879
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("main", { className: "flex-1 overflow-y-auto", children })
880
+ ] });
881
+ };
882
+
883
+ // src/components/Drawer.tsx
884
+ var import_react6 = require("react");
885
+ var import_jsx_runtime39 = require("react/jsx-runtime");
886
+ var sizeClasses3 = {
517
887
  left: {
518
888
  sm: "w-64",
519
889
  md: "w-80",
@@ -557,7 +927,7 @@ var Drawer = ({
557
927
  showCloseButton = true
558
928
  }) => {
559
929
  const { theme } = useTheme();
560
- (0, import_react5.useEffect)(() => {
930
+ (0, import_react6.useEffect)(() => {
561
931
  const handleEscape = (e) => {
562
932
  if (e.key === "Escape" && isOpen) {
563
933
  onClose();
@@ -573,34 +943,34 @@ var Drawer = ({
573
943
  };
574
944
  }, [isOpen, onClose]);
575
945
  if (!isOpen) return null;
576
- const sizeClass = sizeClasses2[position][size];
946
+ const sizeClass = sizeClasses3[position][size];
577
947
  const positionClass = positionClasses[position];
578
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
579
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
948
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
949
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
580
950
  "div",
581
951
  {
582
952
  className: "fixed inset-0 z-40 bg-black/60 backdrop-blur-sm transition-all duration-200",
583
953
  onClick: onClose
584
954
  }
585
955
  ),
586
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
956
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
587
957
  "div",
588
958
  {
589
959
  className: `fixed z-50 ${positionClass} ${sizeClass} bg-white dark:bg-gray-800 shadow-2xl overflow-hidden flex flex-col ${slideClasses[position]}`,
590
960
  children: [
591
- (title || showCloseButton) && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700", children: [
592
- title && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h3", { className: "text-xl font-semibold text-gray-900 dark:text-gray-100", children: title }),
593
- showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
961
+ (title || showCloseButton) && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700", children: [
962
+ title && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("h3", { className: "text-xl font-semibold text-gray-900 dark:text-gray-100", children: title }),
963
+ showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
594
964
  "button",
595
965
  {
596
966
  onClick: onClose,
597
967
  className: "ml-auto text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors",
598
968
  "aria-label": "Close drawer",
599
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("svg", { className: "w-6 h-6", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
969
+ children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("svg", { className: "w-6 h-6", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
600
970
  }
601
971
  )
602
972
  ] }),
603
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "flex-1 p-6 overflow-y-auto", children })
973
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "flex-1 p-6 overflow-y-auto", children })
604
974
  ]
605
975
  }
606
976
  )
@@ -608,14 +978,14 @@ var Drawer = ({
608
978
  };
609
979
 
610
980
  // src/components/TextInput.tsx
611
- var import_react6 = require("react");
612
- var import_jsx_runtime9 = require("react/jsx-runtime");
613
- var sizeClasses3 = {
981
+ var import_react7 = require("react");
982
+ var import_jsx_runtime40 = require("react/jsx-runtime");
983
+ var sizeClasses4 = {
614
984
  sm: "px-3 py-1.5 text-sm",
615
985
  md: "px-4 py-2.5 text-base",
616
986
  lg: "px-4 py-3 text-lg"
617
987
  };
618
- var TextInput = (0, import_react6.forwardRef)(
988
+ var TextInput = (0, import_react7.forwardRef)(
619
989
  ({
620
990
  label,
621
991
  error,
@@ -630,16 +1000,16 @@ var TextInput = (0, import_react6.forwardRef)(
630
1000
  }, ref) => {
631
1001
  const { theme, themeName } = useTheme();
632
1002
  const baseStyles = theme.select?.base || "w-full appearance-none rounded-lg border border-gray-300 bg-white text-gray-900 transition-all duration-150 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent shadow-sm hover:border-gray-400 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-100 dark:hover:border-gray-500";
633
- const sizeStyle = sizeClasses3[size];
1003
+ const sizeStyle = sizeClasses4[size];
634
1004
  const errorStyles = error ? "border-red-500 focus:ring-red-500 dark:border-red-500" : "";
635
1005
  const disabledStyles = disabled ? "opacity-50 cursor-not-allowed bg-gray-50 dark:bg-gray-900" : "";
636
1006
  const widthStyle = fullWidth ? "w-full" : "";
637
1007
  const paddingWithIcon = leftIcon ? "pl-10" : rightIcon ? "pr-10" : "";
638
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: `${widthStyle} ${className}`, children: [
639
- label && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
640
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "relative", children: [
641
- leftIcon && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 dark:text-gray-500", children: leftIcon }),
642
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1008
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: `${widthStyle} ${className}`, children: [
1009
+ label && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1010
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "relative", children: [
1011
+ leftIcon && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 dark:text-gray-500", children: leftIcon }),
1012
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
643
1013
  "input",
644
1014
  {
645
1015
  ref,
@@ -648,27 +1018,27 @@ var TextInput = (0, import_react6.forwardRef)(
648
1018
  ...props
649
1019
  }
650
1020
  ),
651
- rightIcon && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 dark:text-gray-500", children: rightIcon })
1021
+ rightIcon && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 dark:text-gray-500", children: rightIcon })
652
1022
  ] }),
653
- error && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
654
- helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1023
+ error && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1024
+ helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
655
1025
  ] });
656
1026
  }
657
1027
  );
658
1028
  TextInput.displayName = "TextInput";
659
1029
 
660
1030
  // src/components/ActionMenu.tsx
661
- var import_react7 = require("react");
662
- var import_jsx_runtime10 = require("react/jsx-runtime");
1031
+ var import_react8 = require("react");
1032
+ var import_jsx_runtime41 = require("react/jsx-runtime");
663
1033
  var ActionMenu = ({
664
1034
  items,
665
1035
  trigger,
666
1036
  position = "right"
667
1037
  }) => {
668
1038
  const { themeName } = useTheme();
669
- const [isOpen, setIsOpen] = (0, import_react7.useState)(false);
670
- const menuRef = (0, import_react7.useRef)(null);
671
- (0, import_react7.useEffect)(() => {
1039
+ const [isOpen, setIsOpen] = (0, import_react8.useState)(false);
1040
+ const menuRef = (0, import_react8.useRef)(null);
1041
+ (0, import_react8.useEffect)(() => {
672
1042
  const handleClickOutside = (event) => {
673
1043
  if (menuRef.current && !menuRef.current.contains(event.target)) {
674
1044
  setIsOpen(false);
@@ -685,33 +1055,33 @@ var ActionMenu = ({
685
1055
  setIsOpen(false);
686
1056
  }
687
1057
  };
688
- const defaultTrigger = /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1058
+ const defaultTrigger = /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
689
1059
  "button",
690
1060
  {
691
1061
  className: "p-2 rounded-md hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",
692
1062
  "aria-label": "Open menu",
693
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("svg", { className: "w-5 h-5 text-gray-600 dark:text-gray-400", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 5v.01M12 12v.01M12 19v.01M12 6a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2z" }) })
1063
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("svg", { className: "w-5 h-5 text-gray-600 dark:text-gray-400", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 5v.01M12 12v.01M12 19v.01M12 6a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2z" }) })
694
1064
  }
695
1065
  );
696
1066
  const menuBaseStyles = themeName === "minimalistic" ? "bg-black border-2 border-white" : "bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 shadow-lg";
697
1067
  const itemBaseStyles = themeName === "minimalistic" ? "text-white hover:bg-white hover:text-black transition-colors duration-200" : "text-gray-700 dark:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors";
698
1068
  const positionClass = position === "left" ? "left-0" : "right-0";
699
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "relative inline-block", ref: menuRef, children: [
700
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { onClick: () => setIsOpen(!isOpen), children: trigger || defaultTrigger }),
701
- isOpen && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1069
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "relative inline-block", ref: menuRef, children: [
1070
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { onClick: () => setIsOpen(!isOpen), children: trigger || defaultTrigger }),
1071
+ isOpen && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
702
1072
  "div",
703
1073
  {
704
1074
  className: `absolute ${positionClass} mt-2 w-56 rounded-lg ${menuBaseStyles} z-50 overflow-hidden`,
705
1075
  style: { minWidth: "14rem" },
706
- children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
1076
+ children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
707
1077
  "button",
708
1078
  {
709
1079
  onClick: () => handleItemClick(item),
710
1080
  disabled: item.disabled,
711
1081
  className: `w-full text-left px-4 py-3 flex items-center gap-3 ${itemBaseStyles} ${item.disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"} ${item.variant === "danger" ? "text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/20" : ""}`,
712
1082
  children: [
713
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "flex-shrink-0", children: item.icon }),
714
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "flex-1", children: item.label })
1083
+ item.icon && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "flex-shrink-0", children: item.icon }),
1084
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "flex-1", children: item.label })
715
1085
  ]
716
1086
  },
717
1087
  index
@@ -722,7 +1092,7 @@ var ActionMenu = ({
722
1092
  };
723
1093
 
724
1094
  // src/components/Card.tsx
725
- var import_jsx_runtime11 = require("react/jsx-runtime");
1095
+ var import_jsx_runtime42 = require("react/jsx-runtime");
726
1096
  var paddingClasses = {
727
1097
  none: "",
728
1098
  sm: "p-4",
@@ -738,7 +1108,7 @@ var Card = ({
738
1108
  const { theme } = useTheme();
739
1109
  const paddingClass = paddingClasses[padding];
740
1110
  const hoverClass = hover ? "hover:shadow-lg transition-shadow duration-200" : "";
741
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1111
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
742
1112
  "div",
743
1113
  {
744
1114
  className: `bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 ${paddingClass} ${hoverClass} ${className}`,
@@ -748,7 +1118,7 @@ var Card = ({
748
1118
  };
749
1119
 
750
1120
  // src/components/Alert.tsx
751
- var import_jsx_runtime12 = require("react/jsx-runtime");
1121
+ var import_jsx_runtime43 = require("react/jsx-runtime");
752
1122
  var variantStyles = {
753
1123
  info: "bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-800 text-blue-900 dark:text-blue-100",
754
1124
  success: "bg-green-50 dark:bg-green-900/20 border-green-200 dark:border-green-800 text-green-900 dark:text-green-100",
@@ -771,38 +1141,38 @@ var Alert = ({
771
1141
  const { theme } = useTheme();
772
1142
  const variantClass = variantStyles[variant];
773
1143
  const iconClass = iconStyles[variant];
774
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: `rounded-lg border p-4 ${variantClass} ${className}`, role: "alert", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-start gap-3", children: [
775
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: `flex-shrink-0 ${iconClass}`, children: [
776
- variant === "info" && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { fillRule: "evenodd", d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z", clipRule: "evenodd" }) }),
777
- variant === "success" && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z", clipRule: "evenodd" }) }),
778
- variant === "warning" && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { fillRule: "evenodd", d: "M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z", clipRule: "evenodd" }) }),
779
- variant === "error" && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z", clipRule: "evenodd" }) })
1144
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: `rounded-lg border p-4 ${variantClass} ${className}`, role: "alert", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex items-start gap-3", children: [
1145
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: `flex-shrink-0 ${iconClass}`, children: [
1146
+ variant === "info" && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("path", { fillRule: "evenodd", d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z", clipRule: "evenodd" }) }),
1147
+ variant === "success" && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z", clipRule: "evenodd" }) }),
1148
+ variant === "warning" && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("path", { fillRule: "evenodd", d: "M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z", clipRule: "evenodd" }) }),
1149
+ variant === "error" && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z", clipRule: "evenodd" }) })
780
1150
  ] }),
781
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex-1", children: [
782
- title && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h3", { className: "font-semibold mb-1", children: title }),
783
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "text-sm", children })
1151
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex-1", children: [
1152
+ title && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("h3", { className: "font-semibold mb-1", children: title }),
1153
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "text-sm", children })
784
1154
  ] }),
785
- onClose && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1155
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
786
1156
  "button",
787
1157
  {
788
1158
  onClick: onClose,
789
1159
  className: `flex-shrink-0 ${iconClass} hover:opacity-70 transition-opacity`,
790
1160
  "aria-label": "Close alert",
791
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
1161
+ children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
792
1162
  }
793
1163
  )
794
1164
  ] }) });
795
1165
  };
796
1166
 
797
1167
  // src/components/Checkbox.tsx
798
- var import_react8 = require("react");
799
- var import_jsx_runtime13 = require("react/jsx-runtime");
800
- var Checkbox = (0, import_react8.forwardRef)(
1168
+ var import_react9 = require("react");
1169
+ var import_jsx_runtime44 = require("react/jsx-runtime");
1170
+ var Checkbox = (0, import_react9.forwardRef)(
801
1171
  ({ label, error, className = "", disabled, ...props }, ref) => {
802
1172
  const { theme } = useTheme();
803
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className, children: [
804
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("label", { className: "flex items-center gap-2 cursor-pointer group", children: [
805
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1173
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className, children: [
1174
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("label", { className: "flex items-center gap-2 cursor-pointer group", children: [
1175
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
806
1176
  "input",
807
1177
  {
808
1178
  ref,
@@ -812,18 +1182,18 @@ var Checkbox = (0, import_react8.forwardRef)(
812
1182
  ...props
813
1183
  }
814
1184
  ),
815
- label && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: `text-sm text-gray-700 dark:text-gray-300 ${disabled ? "opacity-50 cursor-not-allowed" : "group-hover:text-gray-900 dark:group-hover:text-gray-100"}`, children: label })
1185
+ label && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: `text-sm text-gray-700 dark:text-gray-300 ${disabled ? "opacity-50 cursor-not-allowed" : "group-hover:text-gray-900 dark:group-hover:text-gray-100"}`, children: label })
816
1186
  ] }),
817
- error && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error })
1187
+ error && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error })
818
1188
  ] });
819
1189
  }
820
1190
  );
821
1191
  Checkbox.displayName = "Checkbox";
822
1192
 
823
1193
  // src/components/Toggle.tsx
824
- var import_react9 = require("react");
825
- var import_jsx_runtime14 = require("react/jsx-runtime");
826
- var Toggle = (0, import_react9.forwardRef)(
1194
+ var import_react10 = require("react");
1195
+ var import_jsx_runtime45 = require("react/jsx-runtime");
1196
+ var Toggle = (0, import_react10.forwardRef)(
827
1197
  ({ label, size = "md", className = "", disabled, checked, ...props }, ref) => {
828
1198
  const { theme } = useTheme();
829
1199
  const toggleClasses = {
@@ -841,9 +1211,9 @@ var Toggle = (0, import_react9.forwardRef)(
841
1211
  }
842
1212
  };
843
1213
  const currentSize = toggleClasses[size];
844
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("label", { className: `inline-flex items-center gap-3 cursor-pointer ${disabled ? "opacity-50 cursor-not-allowed" : ""} ${className}`, children: [
845
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "relative", children: [
846
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1214
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("label", { className: `inline-flex items-center gap-3 cursor-pointer ${disabled ? "opacity-50 cursor-not-allowed" : ""} ${className}`, children: [
1215
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "relative", children: [
1216
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
847
1217
  "input",
848
1218
  {
849
1219
  ref,
@@ -854,27 +1224,27 @@ var Toggle = (0, import_react9.forwardRef)(
854
1224
  ...props
855
1225
  }
856
1226
  ),
857
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1227
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
858
1228
  "div",
859
1229
  {
860
1230
  className: `${currentSize.switch} bg-gray-300 dark:bg-gray-700 peer-focus:ring-2 peer-focus:ring-blue-500 rounded-full peer peer-checked:bg-blue-600 dark:peer-checked:bg-blue-500 transition-colors`
861
1231
  }
862
1232
  ),
863
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1233
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
864
1234
  "div",
865
1235
  {
866
1236
  className: `${currentSize.thumb} bg-white rounded-full shadow-md absolute top-0.5 left-0.5 transition-transform`
867
1237
  }
868
1238
  )
869
1239
  ] }),
870
- label && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label })
1240
+ label && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label })
871
1241
  ] });
872
1242
  }
873
1243
  );
874
1244
  Toggle.displayName = "Toggle";
875
1245
 
876
1246
  // src/components/Badge.tsx
877
- var import_jsx_runtime15 = require("react/jsx-runtime");
1247
+ var import_jsx_runtime46 = require("react/jsx-runtime");
878
1248
  var variantStyles2 = {
879
1249
  default: "bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-200",
880
1250
  primary: "bg-blue-100 dark:bg-blue-900/30 text-blue-800 dark:text-blue-200",
@@ -897,12 +1267,12 @@ var Badge = ({
897
1267
  const { theme } = useTheme();
898
1268
  const variantClass = variantStyles2[variant];
899
1269
  const sizeClass = sizeStyles[size];
900
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: `inline-flex items-center font-medium rounded-full ${variantClass} ${sizeClass} ${className}`, children });
1270
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: `inline-flex items-center font-medium rounded-full ${variantClass} ${sizeClass} ${className}`, children });
901
1271
  };
902
1272
 
903
1273
  // src/components/Spinner.tsx
904
- var import_jsx_runtime16 = require("react/jsx-runtime");
905
- var sizeClasses4 = {
1274
+ var import_jsx_runtime47 = require("react/jsx-runtime");
1275
+ var sizeClasses5 = {
906
1276
  sm: "w-4 h-4 border-2",
907
1277
  md: "w-8 h-8 border-2",
908
1278
  lg: "w-12 h-12 border-3",
@@ -919,22 +1289,22 @@ var Spinner = ({
919
1289
  className = ""
920
1290
  }) => {
921
1291
  const { theme } = useTheme();
922
- const sizeClass = sizeClasses4[size];
1292
+ const sizeClass = sizeClasses5[size];
923
1293
  const colorClass = colorClasses[color];
924
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1294
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
925
1295
  "div",
926
1296
  {
927
1297
  className: `inline-block rounded-full animate-spin ${sizeClass} ${colorClass} ${className}`,
928
1298
  role: "status",
929
1299
  "aria-label": "Loading",
930
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "sr-only", children: "Loading..." })
1300
+ children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "sr-only", children: "Loading..." })
931
1301
  }
932
1302
  );
933
1303
  };
934
1304
 
935
1305
  // src/components/Tabs.tsx
936
- var import_react10 = require("react");
937
- var import_jsx_runtime17 = require("react/jsx-runtime");
1306
+ var import_react11 = require("react");
1307
+ var import_jsx_runtime48 = require("react/jsx-runtime");
938
1308
  var Tabs = ({
939
1309
  tabs,
940
1310
  defaultIndex = 0,
@@ -942,14 +1312,14 @@ var Tabs = ({
942
1312
  className = ""
943
1313
  }) => {
944
1314
  const { theme } = useTheme();
945
- const [activeIndex, setActiveIndex] = (0, import_react10.useState)(defaultIndex);
1315
+ const [activeIndex, setActiveIndex] = (0, import_react11.useState)(defaultIndex);
946
1316
  const handleTabClick = (index) => {
947
1317
  if (tabs[index].disabled) return;
948
1318
  setActiveIndex(index);
949
1319
  onChange?.(index);
950
1320
  };
951
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className, children: [
952
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("nav", { className: "flex gap-8 px-6", "aria-label": "Tabs", children: tabs.map((tab, index) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1321
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className, children: [
1322
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("nav", { className: "flex gap-8 px-6", "aria-label": "Tabs", children: tabs.map((tab, index) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
953
1323
  "button",
954
1324
  {
955
1325
  onClick: () => handleTabClick(index),
@@ -960,12 +1330,12 @@ var Tabs = ({
960
1330
  },
961
1331
  index
962
1332
  )) }) }),
963
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { children: tabs[activeIndex]?.content })
1333
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { children: tabs[activeIndex]?.content })
964
1334
  ] });
965
1335
  };
966
1336
 
967
1337
  // src/components/Table.tsx
968
- var import_jsx_runtime18 = require("react/jsx-runtime");
1338
+ var import_jsx_runtime49 = require("react/jsx-runtime");
969
1339
  function Table({
970
1340
  columns,
971
1341
  data,
@@ -975,9 +1345,9 @@ function Table({
975
1345
  className = ""
976
1346
  }) {
977
1347
  const { theme } = useTheme();
978
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: `overflow-x-auto ${className}`, children: [
979
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("table", { className: "w-full text-left", children: [
980
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("thead", { className: "bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("tr", { children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1348
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: `overflow-x-auto ${className}`, children: [
1349
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("table", { className: "w-full text-left", children: [
1350
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("thead", { className: "bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("tr", { children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
981
1351
  "th",
982
1352
  {
983
1353
  className: "px-6 py-3 text-xs font-medium text-gray-700 dark:text-gray-300 uppercase tracking-wider",
@@ -986,14 +1356,14 @@ function Table({
986
1356
  },
987
1357
  column.key
988
1358
  )) }) }),
989
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("tbody", { className: "bg-white dark:bg-gray-900 divide-y divide-gray-200 dark:divide-gray-700", children: data.map((row, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1359
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("tbody", { className: "bg-white dark:bg-gray-900 divide-y divide-gray-200 dark:divide-gray-700", children: data.map((row, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
990
1360
  "tr",
991
1361
  {
992
1362
  className: `
993
1363
  ${striped && rowIndex % 2 === 1 ? "bg-gray-50 dark:bg-gray-800/50" : ""}
994
1364
  ${hoverable ? "hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors" : ""}
995
1365
  `,
996
- children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1366
+ children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
997
1367
  "td",
998
1368
  {
999
1369
  className: "px-6 py-4 text-sm text-gray-900 dark:text-gray-100",
@@ -1005,12 +1375,12 @@ function Table({
1005
1375
  row[keyField] || rowIndex
1006
1376
  )) })
1007
1377
  ] }),
1008
- data.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "text-center py-8 text-gray-500 dark:text-gray-400", children: "No data available" })
1378
+ data.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "text-center py-8 text-gray-500 dark:text-gray-400", children: "No data available" })
1009
1379
  ] });
1010
1380
  }
1011
1381
 
1012
1382
  // src/components/Pagination.tsx
1013
- var import_jsx_runtime19 = require("react/jsx-runtime");
1383
+ var import_jsx_runtime50 = require("react/jsx-runtime");
1014
1384
  var Pagination = ({
1015
1385
  currentPage,
1016
1386
  totalPages,
@@ -1051,8 +1421,8 @@ var Pagination = ({
1051
1421
  return range(1, totalPages);
1052
1422
  };
1053
1423
  const pages = paginationRange();
1054
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("nav", { className: `flex items-center gap-1 ${className}`, "aria-label": "Pagination", children: [
1055
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1424
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("nav", { className: `flex items-center gap-1 ${className}`, "aria-label": "Pagination", children: [
1425
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
1056
1426
  "button",
1057
1427
  {
1058
1428
  onClick: () => onPageChange(currentPage - 1),
@@ -1064,7 +1434,7 @@ var Pagination = ({
1064
1434
  ),
1065
1435
  pages.map((page, index) => {
1066
1436
  if (page === "...") {
1067
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1437
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
1068
1438
  "span",
1069
1439
  {
1070
1440
  className: "px-3 py-2 text-gray-700 dark:text-gray-300",
@@ -1073,7 +1443,7 @@ var Pagination = ({
1073
1443
  `dots-${index}`
1074
1444
  );
1075
1445
  }
1076
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1446
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
1077
1447
  "button",
1078
1448
  {
1079
1449
  onClick: () => onPageChange(page),
@@ -1085,7 +1455,7 @@ var Pagination = ({
1085
1455
  page
1086
1456
  );
1087
1457
  }),
1088
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1458
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
1089
1459
  "button",
1090
1460
  {
1091
1461
  onClick: () => onPageChange(currentPage + 1),
@@ -1099,17 +1469,17 @@ var Pagination = ({
1099
1469
  };
1100
1470
 
1101
1471
  // src/components/DatePicker.tsx
1102
- var import_react11 = require("react");
1103
- var import_jsx_runtime20 = require("react/jsx-runtime");
1104
- var DatePicker = (0, import_react11.forwardRef)(
1472
+ var import_react12 = require("react");
1473
+ var import_jsx_runtime51 = require("react/jsx-runtime");
1474
+ var DatePicker = (0, import_react12.forwardRef)(
1105
1475
  ({ label, error, helperText, className = "", disabled, ...props }, ref) => {
1106
1476
  const { theme } = useTheme();
1107
1477
  const baseStyles = "w-full appearance-none rounded-lg border border-gray-300 bg-white text-gray-900 px-4 py-2.5 text-base transition-all duration-150 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent shadow-sm hover:border-gray-400 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-100 dark:hover:border-gray-500";
1108
1478
  const errorStyles = error ? "border-red-500 focus:ring-red-500 dark:border-red-500" : "";
1109
1479
  const disabledStyles = disabled ? "opacity-50 cursor-not-allowed bg-gray-50 dark:bg-gray-900" : "";
1110
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className, children: [
1111
- label && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1112
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1480
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className, children: [
1481
+ label && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1482
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
1113
1483
  "input",
1114
1484
  {
1115
1485
  ref,
@@ -1119,25 +1489,25 @@ var DatePicker = (0, import_react11.forwardRef)(
1119
1489
  ...props
1120
1490
  }
1121
1491
  ),
1122
- error && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1123
- helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1492
+ error && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1493
+ helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1124
1494
  ] });
1125
1495
  }
1126
1496
  );
1127
1497
  DatePicker.displayName = "DatePicker";
1128
1498
 
1129
1499
  // src/components/TimePicker.tsx
1130
- var import_react12 = require("react");
1131
- var import_jsx_runtime21 = require("react/jsx-runtime");
1132
- var TimePicker = (0, import_react12.forwardRef)(
1500
+ var import_react13 = require("react");
1501
+ var import_jsx_runtime52 = require("react/jsx-runtime");
1502
+ var TimePicker = (0, import_react13.forwardRef)(
1133
1503
  ({ label, error, helperText, className = "", disabled, ...props }, ref) => {
1134
1504
  const { theme } = useTheme();
1135
1505
  const baseStyles = "w-full appearance-none rounded-lg border border-gray-300 bg-white text-gray-900 px-4 py-2.5 text-base transition-all duration-150 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent shadow-sm hover:border-gray-400 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-100 dark:hover:border-gray-500";
1136
1506
  const errorStyles = error ? "border-red-500 focus:ring-red-500 dark:border-red-500" : "";
1137
1507
  const disabledStyles = disabled ? "opacity-50 cursor-not-allowed bg-gray-50 dark:bg-gray-900" : "";
1138
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className, children: [
1139
- label && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1140
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1508
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className, children: [
1509
+ label && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1510
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
1141
1511
  "input",
1142
1512
  {
1143
1513
  ref,
@@ -1147,25 +1517,25 @@ var TimePicker = (0, import_react12.forwardRef)(
1147
1517
  ...props
1148
1518
  }
1149
1519
  ),
1150
- error && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1151
- helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1520
+ error && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1521
+ helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1152
1522
  ] });
1153
1523
  }
1154
1524
  );
1155
1525
  TimePicker.displayName = "TimePicker";
1156
1526
 
1157
1527
  // src/components/DateTimePicker.tsx
1158
- var import_react13 = require("react");
1159
- var import_jsx_runtime22 = require("react/jsx-runtime");
1160
- var DateTimePicker = (0, import_react13.forwardRef)(
1528
+ var import_react14 = require("react");
1529
+ var import_jsx_runtime53 = require("react/jsx-runtime");
1530
+ var DateTimePicker = (0, import_react14.forwardRef)(
1161
1531
  ({ label, error, helperText, className = "", disabled, ...props }, ref) => {
1162
1532
  const { theme } = useTheme();
1163
1533
  const baseStyles = "w-full appearance-none rounded-lg border border-gray-300 bg-white text-gray-900 px-4 py-2.5 text-base transition-all duration-150 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent shadow-sm hover:border-gray-400 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-100 dark:hover:border-gray-500";
1164
1534
  const errorStyles = error ? "border-red-500 focus:ring-red-500 dark:border-red-500" : "";
1165
1535
  const disabledStyles = disabled ? "opacity-50 cursor-not-allowed bg-gray-50 dark:bg-gray-900" : "";
1166
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className, children: [
1167
- label && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1168
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1536
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className, children: [
1537
+ label && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1538
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
1169
1539
  "input",
1170
1540
  {
1171
1541
  ref,
@@ -1175,35 +1545,629 @@ var DateTimePicker = (0, import_react13.forwardRef)(
1175
1545
  ...props
1176
1546
  }
1177
1547
  ),
1178
- error && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1179
- helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1548
+ error && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1549
+ helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1180
1550
  ] });
1181
1551
  }
1182
1552
  );
1183
1553
  DateTimePicker.displayName = "DateTimePicker";
1184
1554
 
1185
- // src/utils/theme-script.ts
1186
- var themeScript = `
1187
- (function() {
1188
- try {
1189
- // Get stored preferences
1190
- const storedTheme = localStorage.getItem('lite-ui-theme') || 'default';
1191
- const storedColorMode = localStorage.getItem('lite-ui-color-mode');
1192
-
1193
- // Determine color mode (system, light, or dark)
1194
- let colorMode = storedColorMode;
1195
- if (!colorMode || colorMode === 'system') {
1196
- colorMode = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
1197
- }
1198
-
1199
- // Set attributes before render
1200
- document.documentElement.setAttribute('data-theme', storedTheme);
1201
- document.documentElement.setAttribute('data-color-mode', colorMode);
1202
-
1203
- // Add dark class for Tailwind
1204
- if (colorMode === 'dark') {
1205
- document.documentElement.classList.add('dark');
1206
- } else {
1555
+ // src/components/Radio.tsx
1556
+ var import_react15 = __toESM(require("react"));
1557
+ var import_jsx_runtime54 = require("react/jsx-runtime");
1558
+ var Radio = ({
1559
+ name,
1560
+ options,
1561
+ value: controlledValue,
1562
+ defaultValue,
1563
+ onChange,
1564
+ disabled = false,
1565
+ orientation = "vertical",
1566
+ className = ""
1567
+ }) => {
1568
+ const [internalValue, setInternalValue] = import_react15.default.useState(defaultValue || "");
1569
+ const value = controlledValue !== void 0 ? controlledValue : internalValue;
1570
+ const handleChange = (optionValue) => {
1571
+ if (disabled) return;
1572
+ setInternalValue(optionValue);
1573
+ onChange?.(optionValue);
1574
+ };
1575
+ const containerClass = orientation === "horizontal" ? "flex flex-wrap gap-4" : "flex flex-col gap-2";
1576
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: `${containerClass} ${className}`, role: "radiogroup", children: options.map((option) => {
1577
+ const isDisabled = disabled || option.disabled;
1578
+ const isChecked = value === option.value;
1579
+ const id = `${name}-${option.value}`;
1580
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
1581
+ "label",
1582
+ {
1583
+ htmlFor: id,
1584
+ className: `flex items-center gap-2 cursor-pointer ${isDisabled ? "opacity-50 cursor-not-allowed" : ""}`,
1585
+ children: [
1586
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
1587
+ "input",
1588
+ {
1589
+ type: "radio",
1590
+ id,
1591
+ name,
1592
+ value: option.value,
1593
+ checked: isChecked,
1594
+ onChange: () => handleChange(option.value),
1595
+ disabled: isDisabled,
1596
+ className: "w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600 cursor-pointer disabled:cursor-not-allowed"
1597
+ }
1598
+ ),
1599
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "text-sm font-medium text-gray-900 dark:text-gray-300", children: option.label })
1600
+ ]
1601
+ },
1602
+ option.value
1603
+ );
1604
+ }) });
1605
+ };
1606
+
1607
+ // src/components/ProgressBar.tsx
1608
+ var import_jsx_runtime55 = require("react/jsx-runtime");
1609
+ var ProgressBar = ({
1610
+ value,
1611
+ max = 100,
1612
+ size = "md",
1613
+ variant = "default",
1614
+ showLabel = false,
1615
+ label,
1616
+ className = ""
1617
+ }) => {
1618
+ const percentage = Math.min(Math.max(value / max * 100, 0), 100);
1619
+ const sizeClasses6 = {
1620
+ sm: "h-1",
1621
+ md: "h-2",
1622
+ lg: "h-3"
1623
+ };
1624
+ const variantClasses = {
1625
+ default: "bg-blue-600 dark:bg-blue-500",
1626
+ success: "bg-green-600 dark:bg-green-500",
1627
+ warning: "bg-yellow-500 dark:bg-yellow-400",
1628
+ danger: "bg-red-600 dark:bg-red-500"
1629
+ };
1630
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: `w-full ${className}`, children: [
1631
+ (showLabel || label) && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex justify-between items-center mb-1", children: [
1632
+ label && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label }),
1633
+ showLabel && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: [
1634
+ Math.round(percentage),
1635
+ "%"
1636
+ ] })
1637
+ ] }),
1638
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1639
+ "div",
1640
+ {
1641
+ className: `w-full bg-gray-200 dark:bg-gray-700 rounded-full overflow-hidden ${sizeClasses6[size]}`,
1642
+ role: "progressbar",
1643
+ "aria-valuenow": value,
1644
+ "aria-valuemin": 0,
1645
+ "aria-valuemax": max,
1646
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1647
+ "div",
1648
+ {
1649
+ className: `${sizeClasses6[size]} ${variantClasses[variant]} rounded-full transition-all duration-300 ease-out`,
1650
+ style: { width: `${percentage}%` }
1651
+ }
1652
+ )
1653
+ }
1654
+ )
1655
+ ] });
1656
+ };
1657
+
1658
+ // src/components/Slider.tsx
1659
+ var import_react16 = __toESM(require("react"));
1660
+ var import_jsx_runtime56 = require("react/jsx-runtime");
1661
+ var Slider = ({
1662
+ value: controlledValue,
1663
+ defaultValue = 50,
1664
+ min = 0,
1665
+ max = 100,
1666
+ step = 1,
1667
+ onChange,
1668
+ disabled = false,
1669
+ showValue = false,
1670
+ label,
1671
+ className = ""
1672
+ }) => {
1673
+ const [internalValue, setInternalValue] = import_react16.default.useState(defaultValue);
1674
+ const value = controlledValue !== void 0 ? controlledValue : internalValue;
1675
+ const handleChange = (e) => {
1676
+ const newValue = Number(e.target.value);
1677
+ setInternalValue(newValue);
1678
+ onChange?.(newValue);
1679
+ };
1680
+ const percentage = (value - min) / (max - min) * 100;
1681
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: `w-full ${className}`, children: [
1682
+ (label || showValue) && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex justify-between items-center mb-2", children: [
1683
+ label && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label }),
1684
+ showValue && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: value })
1685
+ ] }),
1686
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "relative", children: [
1687
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "absolute inset-0 h-2 bg-gray-200 dark:bg-gray-700 rounded-full top-1/2 -translate-y-1/2" }),
1688
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
1689
+ "div",
1690
+ {
1691
+ className: "absolute h-2 bg-blue-600 dark:bg-blue-500 rounded-full top-1/2 -translate-y-1/2 pointer-events-none",
1692
+ style: { width: `${percentage}%` }
1693
+ }
1694
+ ),
1695
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
1696
+ "input",
1697
+ {
1698
+ type: "range",
1699
+ min,
1700
+ max,
1701
+ step,
1702
+ value,
1703
+ onChange: handleChange,
1704
+ disabled,
1705
+ className: "relative w-full h-2 bg-transparent appearance-none cursor-pointer disabled:cursor-not-allowed disabled:opacity-50\n [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:h-4\n [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-blue-600 [&::-webkit-slider-thumb]:cursor-pointer\n [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-white [&::-webkit-slider-thumb]:shadow-md\n [&::-webkit-slider-thumb]:hover:bg-blue-700 [&::-webkit-slider-thumb]:active:scale-110 [&::-webkit-slider-thumb]:transition-all\n [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:rounded-full\n [&::-moz-range-thumb]:bg-blue-600 [&::-moz-range-thumb]:cursor-pointer [&::-moz-range-thumb]:border-2\n [&::-moz-range-thumb]:border-white [&::-moz-range-thumb]:shadow-md [&::-moz-range-thumb]:hover:bg-blue-700\n [&::-moz-range-thumb]:active:scale-110 [&::-moz-range-thumb]:transition-all [&::-moz-range-thumb]:border-none",
1706
+ "aria-label": label,
1707
+ "aria-valuemin": min,
1708
+ "aria-valuemax": max,
1709
+ "aria-valuenow": value
1710
+ }
1711
+ )
1712
+ ] })
1713
+ ] });
1714
+ };
1715
+
1716
+ // src/components/Avatar.tsx
1717
+ var import_react17 = __toESM(require("react"));
1718
+ var import_jsx_runtime57 = require("react/jsx-runtime");
1719
+ var Avatar = ({
1720
+ src,
1721
+ alt,
1722
+ name,
1723
+ size = "md",
1724
+ shape = "circle",
1725
+ className = "",
1726
+ fallbackColor = "bg-blue-600"
1727
+ }) => {
1728
+ const [imageError, setImageError] = import_react17.default.useState(false);
1729
+ const sizeClasses6 = {
1730
+ xs: "w-6 h-6 text-xs",
1731
+ sm: "w-8 h-8 text-sm",
1732
+ md: "w-10 h-10 text-base",
1733
+ lg: "w-12 h-12 text-lg",
1734
+ xl: "w-16 h-16 text-2xl"
1735
+ };
1736
+ const shapeClass = shape === "circle" ? "rounded-full" : "rounded-md";
1737
+ const getInitials = (name2) => {
1738
+ const parts = name2.trim().split(" ");
1739
+ if (parts.length >= 2) {
1740
+ return `${parts[0][0]}${parts[parts.length - 1][0]}`.toUpperCase();
1741
+ }
1742
+ return name2.slice(0, 2).toUpperCase();
1743
+ };
1744
+ const showImage = src && !imageError;
1745
+ const showInitials = !showImage && name;
1746
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
1747
+ "div",
1748
+ {
1749
+ className: `${sizeClasses6[size]} ${shapeClass} flex items-center justify-center overflow-hidden ${showImage ? "bg-gray-200 dark:bg-gray-700" : `${fallbackColor} text-white`} ${className}`,
1750
+ children: showImage ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
1751
+ "img",
1752
+ {
1753
+ src,
1754
+ alt: alt || name || "Avatar",
1755
+ className: "w-full h-full object-cover",
1756
+ onError: () => setImageError(true)
1757
+ }
1758
+ ) : showInitials ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "font-semibold select-none", children: getInitials(name) }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
1759
+ "svg",
1760
+ {
1761
+ className: "w-full h-full text-gray-400 dark:text-gray-600",
1762
+ fill: "currentColor",
1763
+ viewBox: "0 0 24 24",
1764
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("path", { d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z" })
1765
+ }
1766
+ )
1767
+ }
1768
+ );
1769
+ };
1770
+
1771
+ // src/components/Textarea.tsx
1772
+ var import_jsx_runtime58 = require("react/jsx-runtime");
1773
+ var Textarea = ({
1774
+ label,
1775
+ error,
1776
+ helperText,
1777
+ size = "md",
1778
+ resize = "vertical",
1779
+ className = "",
1780
+ disabled,
1781
+ ...props
1782
+ }) => {
1783
+ const sizeClasses6 = {
1784
+ sm: "px-3 py-1.5 text-sm min-h-[80px]",
1785
+ md: "px-4 py-2 text-base min-h-[100px]",
1786
+ lg: "px-4 py-3 text-lg min-h-[120px]"
1787
+ };
1788
+ const resizeClasses = {
1789
+ none: "resize-none",
1790
+ vertical: "resize-y",
1791
+ horizontal: "resize-x",
1792
+ both: "resize"
1793
+ };
1794
+ const baseClasses = `w-full rounded-lg border transition-colors duration-150 focus:outline-none focus:ring-2
1795
+ ${error ? "border-red-500 focus:ring-red-500 focus:border-red-500 dark:border-red-400 dark:focus:ring-red-400" : "border-gray-300 focus:ring-blue-500 focus:border-blue-500 dark:border-gray-600 dark:focus:ring-blue-400"}
1796
+ bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100
1797
+ placeholder:text-gray-500 dark:placeholder:text-gray-400
1798
+ disabled:opacity-50 disabled:cursor-not-allowed disabled:bg-gray-50 dark:disabled:bg-gray-900`;
1799
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: `w-full ${className}`, children: [
1800
+ label && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1801
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
1802
+ "textarea",
1803
+ {
1804
+ className: `${baseClasses} ${sizeClasses6[size]} ${resizeClasses[resize]}`,
1805
+ disabled,
1806
+ ...props
1807
+ }
1808
+ ),
1809
+ error && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1810
+ helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1811
+ ] });
1812
+ };
1813
+
1814
+ // src/components/Toast.tsx
1815
+ var import_react18 = require("react");
1816
+ var import_jsx_runtime59 = require("react/jsx-runtime");
1817
+ var ToastContext = (0, import_react18.createContext)(void 0);
1818
+ var useToast = () => {
1819
+ const context = (0, import_react18.useContext)(ToastContext);
1820
+ if (!context) {
1821
+ throw new Error("useToast must be used within a ToastProvider");
1822
+ }
1823
+ return context;
1824
+ };
1825
+ var ToastProvider = ({ children, position = "top-right" }) => {
1826
+ const [toasts, setToasts] = (0, import_react18.useState)([]);
1827
+ const addToast = (0, import_react18.useCallback)((toast2) => {
1828
+ const id = Math.random().toString(36).substring(7);
1829
+ const newToast = { ...toast2, id };
1830
+ setToasts((prev) => [...prev, newToast]);
1831
+ const duration = toast2.duration || 5e3;
1832
+ setTimeout(() => {
1833
+ removeToast(id);
1834
+ }, duration);
1835
+ }, []);
1836
+ const removeToast = (0, import_react18.useCallback)((id) => {
1837
+ setToasts((prev) => prev.filter((toast2) => toast2.id !== id));
1838
+ }, []);
1839
+ const positionClasses2 = {
1840
+ "top-right": "top-4 right-4",
1841
+ "top-left": "top-4 left-4",
1842
+ "bottom-right": "bottom-4 right-4",
1843
+ "bottom-left": "bottom-4 left-4",
1844
+ "top-center": "top-4 left-1/2 -translate-x-1/2",
1845
+ "bottom-center": "bottom-4 left-1/2 -translate-x-1/2"
1846
+ };
1847
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(ToastContext.Provider, { value: { toasts, addToast, removeToast }, children: [
1848
+ children,
1849
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: `fixed ${positionClasses2[position]} z-50 flex flex-col gap-2 max-w-md`, children: toasts.map((toast2) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ToastItem, { toast: toast2, onClose: () => removeToast(toast2.id) }, toast2.id)) })
1850
+ ] });
1851
+ };
1852
+ var ToastItem = ({ toast: toast2, onClose }) => {
1853
+ const typeStyles = {
1854
+ success: "bg-green-50 dark:bg-green-900/30 border-green-500 text-green-800 dark:text-green-200",
1855
+ error: "bg-red-50 dark:bg-red-900/30 border-red-500 text-red-800 dark:text-red-200",
1856
+ warning: "bg-yellow-50 dark:bg-yellow-900/30 border-yellow-500 text-yellow-800 dark:text-yellow-200",
1857
+ info: "bg-blue-50 dark:bg-blue-900/30 border-blue-500 text-blue-800 dark:text-blue-200"
1858
+ };
1859
+ const typeIcons = {
1860
+ success: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(CheckIcon, { size: "sm", className: "text-green-600 dark:text-green-400" }),
1861
+ error: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(CloseIcon, { size: "sm", className: "text-red-600 dark:text-red-400" }),
1862
+ warning: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("svg", { className: "w-4 h-4 text-yellow-600 dark:text-yellow-400", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("path", { fillRule: "evenodd", d: "M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z", clipRule: "evenodd" }) }),
1863
+ info: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("svg", { className: "w-4 h-4 text-blue-600 dark:text-blue-400", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("path", { fillRule: "evenodd", d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z", clipRule: "evenodd" }) })
1864
+ };
1865
+ const type = toast2.type || "info";
1866
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
1867
+ "div",
1868
+ {
1869
+ className: `flex items-start gap-3 p-4 rounded-lg border-l-4 shadow-lg backdrop-blur-sm ${typeStyles[type]} animate-slide-in`,
1870
+ role: "alert",
1871
+ children: [
1872
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "flex-shrink-0 mt-0.5", children: typeIcons[type] }),
1873
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { className: "flex-1 text-sm font-medium", children: toast2.message }),
1874
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
1875
+ "button",
1876
+ {
1877
+ onClick: onClose,
1878
+ className: "flex-shrink-0 text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 transition-colors",
1879
+ "aria-label": "Close",
1880
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(CloseIcon, { size: "sm" })
1881
+ }
1882
+ )
1883
+ ]
1884
+ }
1885
+ );
1886
+ };
1887
+ var toast = {
1888
+ success: (message, duration) => ({
1889
+ message,
1890
+ type: "success",
1891
+ duration
1892
+ }),
1893
+ error: (message, duration) => ({
1894
+ message,
1895
+ type: "error",
1896
+ duration
1897
+ }),
1898
+ warning: (message, duration) => ({
1899
+ message,
1900
+ type: "warning",
1901
+ duration
1902
+ }),
1903
+ info: (message, duration) => ({
1904
+ message,
1905
+ type: "info",
1906
+ duration
1907
+ })
1908
+ };
1909
+
1910
+ // src/components/Stepper.tsx
1911
+ var import_react19 = __toESM(require("react"));
1912
+ var import_jsx_runtime60 = require("react/jsx-runtime");
1913
+ var Stepper = ({
1914
+ steps,
1915
+ currentStep,
1916
+ orientation = "horizontal",
1917
+ className = ""
1918
+ }) => {
1919
+ const isHorizontal = orientation === "horizontal";
1920
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: `${isHorizontal ? "flex items-center" : "flex flex-col"} ${className}`, children: steps.map((step, index) => {
1921
+ const stepNumber = index + 1;
1922
+ const isActive = stepNumber === currentStep;
1923
+ const isCompleted = stepNumber < currentStep;
1924
+ const isLast = index === steps.length - 1;
1925
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_react19.default.Fragment, { children: [
1926
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: `flex ${isHorizontal ? "flex-col items-center" : "flex-row items-start"} ${isHorizontal ? "" : "flex-1"}`, children: [
1927
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
1928
+ "div",
1929
+ {
1930
+ className: `flex items-center justify-center w-10 h-10 rounded-full border-2 transition-all ${isCompleted ? "bg-blue-600 border-blue-600 dark:bg-blue-500 dark:border-blue-500" : isActive ? "border-blue-600 bg-white dark:border-blue-500 dark:bg-gray-800" : "border-gray-300 bg-white dark:border-gray-600 dark:bg-gray-800"}`,
1931
+ children: isCompleted ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(CheckIcon, { size: "sm", className: "text-white" }) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
1932
+ "span",
1933
+ {
1934
+ className: `text-sm font-semibold ${isActive ? "text-blue-600 dark:text-blue-400" : "text-gray-500 dark:text-gray-400"}`,
1935
+ children: stepNumber
1936
+ }
1937
+ )
1938
+ }
1939
+ ) }),
1940
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: `${isHorizontal ? "mt-2 text-center" : "ml-4 pb-8"} ${isLast && !isHorizontal ? "pb-0" : ""}`, children: [
1941
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
1942
+ "p",
1943
+ {
1944
+ className: `text-sm font-medium ${isActive || isCompleted ? "text-gray-900 dark:text-gray-100" : "text-gray-500 dark:text-gray-400"}`,
1945
+ children: step.label
1946
+ }
1947
+ ),
1948
+ step.description && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "text-xs text-gray-500 dark:text-gray-400 mt-1", children: step.description })
1949
+ ] })
1950
+ ] }),
1951
+ !isLast && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
1952
+ "div",
1953
+ {
1954
+ className: `${isHorizontal ? "flex-1 h-0.5 mx-4" : "w-0.5 h-full ml-5 -mt-8"} ${isCompleted || isActive && stepNumber < currentStep ? "bg-blue-600 dark:bg-blue-500" : "bg-gray-300 dark:bg-gray-600"}`
1955
+ }
1956
+ )
1957
+ ] }, index);
1958
+ }) });
1959
+ };
1960
+
1961
+ // src/components/Divider.tsx
1962
+ var import_jsx_runtime61 = require("react/jsx-runtime");
1963
+ var Divider = ({
1964
+ orientation = "horizontal",
1965
+ variant = "solid",
1966
+ className = "",
1967
+ label,
1968
+ labelPosition = "center"
1969
+ }) => {
1970
+ const variantClasses = {
1971
+ solid: "border-solid",
1972
+ dashed: "border-dashed",
1973
+ dotted: "border-dotted"
1974
+ };
1975
+ if (label && orientation === "horizontal") {
1976
+ const alignmentClasses = {
1977
+ left: "justify-start",
1978
+ center: "justify-center",
1979
+ right: "justify-end"
1980
+ };
1981
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: `flex items-center ${alignmentClasses[labelPosition]} ${className}`, role: "separator", children: [
1982
+ labelPosition !== "left" && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: `flex-1 border-t ${variantClasses[variant]} border-gray-300 dark:border-gray-600` }),
1983
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "px-4 text-sm text-gray-500 dark:text-gray-400", children: label }),
1984
+ labelPosition !== "right" && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: `flex-1 border-t ${variantClasses[variant]} border-gray-300 dark:border-gray-600` })
1985
+ ] });
1986
+ }
1987
+ if (orientation === "vertical") {
1988
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
1989
+ "div",
1990
+ {
1991
+ className: `inline-block h-full border-l ${variantClasses[variant]} border-gray-300 dark:border-gray-600 ${className}`,
1992
+ role: "separator",
1993
+ "aria-orientation": "vertical"
1994
+ }
1995
+ );
1996
+ }
1997
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
1998
+ "hr",
1999
+ {
2000
+ className: `border-t ${variantClasses[variant]} border-gray-300 dark:border-gray-600 ${className}`,
2001
+ role: "separator"
2002
+ }
2003
+ );
2004
+ };
2005
+
2006
+ // src/components/FileUpload.tsx
2007
+ var import_react20 = require("react");
2008
+ var import_jsx_runtime62 = require("react/jsx-runtime");
2009
+ var FileUpload = ({
2010
+ accept,
2011
+ multiple = false,
2012
+ maxSize,
2013
+ maxFiles = 10,
2014
+ disabled = false,
2015
+ onChange,
2016
+ onError,
2017
+ className = "",
2018
+ label,
2019
+ helperText
2020
+ }) => {
2021
+ const [files, setFiles] = (0, import_react20.useState)([]);
2022
+ const [isDragging, setIsDragging] = (0, import_react20.useState)(false);
2023
+ const fileInputRef = (0, import_react20.useRef)(null);
2024
+ const formatFileSize = (bytes) => {
2025
+ if (bytes === 0) return "0 Bytes";
2026
+ const k = 1024;
2027
+ const sizes = ["Bytes", "KB", "MB", "GB"];
2028
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
2029
+ return Math.round(bytes / Math.pow(k, i) * 100) / 100 + " " + sizes[i];
2030
+ };
2031
+ const validateFiles = (fileList) => {
2032
+ const validFiles = [];
2033
+ const filesArray = Array.from(fileList);
2034
+ if (filesArray.length + files.length > maxFiles) {
2035
+ onError?.(`Maximum ${maxFiles} files allowed`);
2036
+ return validFiles;
2037
+ }
2038
+ for (const file of filesArray) {
2039
+ if (maxSize && file.size > maxSize) {
2040
+ onError?.(`File ${file.name} exceeds maximum size of ${formatFileSize(maxSize)}`);
2041
+ continue;
2042
+ }
2043
+ validFiles.push(file);
2044
+ }
2045
+ return validFiles;
2046
+ };
2047
+ const handleFiles = (fileList) => {
2048
+ if (!fileList || disabled) return;
2049
+ const validFiles = validateFiles(fileList);
2050
+ if (validFiles.length > 0) {
2051
+ const newFiles = multiple ? [...files, ...validFiles] : validFiles;
2052
+ setFiles(newFiles);
2053
+ onChange?.(newFiles);
2054
+ }
2055
+ };
2056
+ const handleDrop = (e) => {
2057
+ e.preventDefault();
2058
+ setIsDragging(false);
2059
+ handleFiles(e.dataTransfer.files);
2060
+ };
2061
+ const handleDragOver = (e) => {
2062
+ e.preventDefault();
2063
+ if (!disabled) {
2064
+ setIsDragging(true);
2065
+ }
2066
+ };
2067
+ const handleDragLeave = (e) => {
2068
+ e.preventDefault();
2069
+ setIsDragging(false);
2070
+ };
2071
+ const handleClick = () => {
2072
+ if (!disabled) {
2073
+ fileInputRef.current?.click();
2074
+ }
2075
+ };
2076
+ const handleRemoveFile = (index) => {
2077
+ const newFiles = files.filter((_, i) => i !== index);
2078
+ setFiles(newFiles);
2079
+ onChange?.(newFiles);
2080
+ };
2081
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: `w-full ${className}`, children: [
2082
+ label && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: label }),
2083
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
2084
+ "div",
2085
+ {
2086
+ onDrop: handleDrop,
2087
+ onDragOver: handleDragOver,
2088
+ onDragLeave: handleDragLeave,
2089
+ onClick: handleClick,
2090
+ className: `relative border-2 border-dashed rounded-lg p-8 text-center cursor-pointer transition-all ${isDragging ? "border-blue-500 bg-blue-50 dark:bg-blue-900/20" : "border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500"} ${disabled ? "opacity-50 cursor-not-allowed" : ""}`,
2091
+ children: [
2092
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2093
+ "input",
2094
+ {
2095
+ ref: fileInputRef,
2096
+ type: "file",
2097
+ accept,
2098
+ multiple,
2099
+ onChange: (e) => handleFiles(e.target.files),
2100
+ disabled,
2101
+ className: "hidden"
2102
+ }
2103
+ ),
2104
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex flex-col items-center gap-2", children: [
2105
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "w-12 h-12 rounded-full bg-gray-100 dark:bg-gray-800 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(UploadIcon, { size: "lg", className: "text-gray-400 dark:text-gray-500" }) }),
2106
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { children: [
2107
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("p", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: [
2108
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "text-blue-600 dark:text-blue-400", children: "Click to upload" }),
2109
+ " or drag and drop"
2110
+ ] }),
2111
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("p", { className: "text-xs text-gray-500 dark:text-gray-400 mt-1", children: [
2112
+ accept ? `Accepted: ${accept}` : "Any file type",
2113
+ maxSize && ` \u2022 Max size: ${formatFileSize(maxSize)}`
2114
+ ] })
2115
+ ] })
2116
+ ] })
2117
+ ]
2118
+ }
2119
+ ),
2120
+ helperText && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: helperText }),
2121
+ files.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "mt-4 space-y-2", children: files.map((file, index) => /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
2122
+ "div",
2123
+ {
2124
+ className: "flex items-center justify-between p-3 bg-gray-50 dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700",
2125
+ children: [
2126
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex-1 min-w-0", children: [
2127
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: "text-sm font-medium text-gray-900 dark:text-gray-100 truncate", children: file.name }),
2128
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: formatFileSize(file.size) })
2129
+ ] }),
2130
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2131
+ "button",
2132
+ {
2133
+ onClick: (e) => {
2134
+ e.stopPropagation();
2135
+ handleRemoveFile(index);
2136
+ },
2137
+ className: "ml-4 text-gray-400 hover:text-red-600 dark:hover:text-red-400 transition-colors",
2138
+ "aria-label": "Remove file",
2139
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(CloseIcon, { size: "sm" })
2140
+ }
2141
+ )
2142
+ ]
2143
+ },
2144
+ index
2145
+ )) })
2146
+ ] });
2147
+ };
2148
+
2149
+ // src/utils/theme-script.ts
2150
+ var themeScript = `
2151
+ (function() {
2152
+ try {
2153
+ // Get stored preferences
2154
+ const storedTheme = localStorage.getItem('lite-ui-theme') || 'default';
2155
+ const storedColorMode = localStorage.getItem('lite-ui-color-mode');
2156
+
2157
+ // Determine color mode (system, light, or dark)
2158
+ let colorMode = storedColorMode;
2159
+ if (!colorMode || colorMode === 'system') {
2160
+ colorMode = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
2161
+ }
2162
+
2163
+ // Set attributes before render
2164
+ document.documentElement.setAttribute('data-theme', storedTheme);
2165
+ document.documentElement.setAttribute('data-color-mode', colorMode);
2166
+
2167
+ // Add dark class for Tailwind
2168
+ if (colorMode === 'dark') {
2169
+ document.documentElement.classList.add('dark');
2170
+ } else {
1207
2171
  document.documentElement.classList.remove('dark');
1208
2172
  }
1209
2173
  } catch (e) {
@@ -1214,169 +2178,13 @@ var themeScript = `
1214
2178
  function getThemeScript() {
1215
2179
  return themeScript;
1216
2180
  }
1217
-
1218
- // src/icons/Icon.tsx
1219
- var import_jsx_runtime23 = require("react/jsx-runtime");
1220
- var sizeClasses5 = {
1221
- xs: "w-3 h-3",
1222
- sm: "w-4 h-4",
1223
- md: "w-5 h-5",
1224
- lg: "w-6 h-6",
1225
- xl: "w-8 h-8"
1226
- };
1227
- var createIcon = (displayName, path, filled = false) => {
1228
- const Icon = ({ size = "md", className = "", color = "currentColor" }) => {
1229
- const sizeClass = sizeClasses5[size];
1230
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1231
- "svg",
1232
- {
1233
- className: `${sizeClass} ${className}`,
1234
- fill: filled ? color : "none",
1235
- viewBox: "0 0 24 24",
1236
- stroke: filled ? "none" : color,
1237
- "aria-hidden": "true",
1238
- children: path
1239
- }
1240
- );
1241
- };
1242
- Icon.displayName = displayName;
1243
- return Icon;
1244
- };
1245
- var HomeIcon = createIcon(
1246
- "HomeIcon",
1247
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" })
1248
- );
1249
- var UserIcon = createIcon(
1250
- "UserIcon",
1251
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" })
1252
- );
1253
- var SearchIcon = createIcon(
1254
- "SearchIcon",
1255
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" })
1256
- );
1257
- var BellIcon = createIcon(
1258
- "BellIcon",
1259
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9" })
1260
- );
1261
- var SettingsIcon = createIcon(
1262
- "SettingsIcon",
1263
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
1264
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" }),
1265
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z" })
1266
- ] })
1267
- );
1268
- var MenuIcon = createIcon(
1269
- "MenuIcon",
1270
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" })
1271
- );
1272
- var CloseIcon = createIcon(
1273
- "CloseIcon",
1274
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" })
1275
- );
1276
- var ChevronDownIcon = createIcon(
1277
- "ChevronDownIcon",
1278
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" })
1279
- );
1280
- var ChevronRightIcon = createIcon(
1281
- "ChevronRightIcon",
1282
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" })
1283
- );
1284
- var CheckIcon = createIcon(
1285
- "CheckIcon",
1286
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" })
1287
- );
1288
- var PlusIcon = createIcon(
1289
- "PlusIcon",
1290
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 4v16m8-8H4" })
1291
- );
1292
- var TrashIcon = createIcon(
1293
- "TrashIcon",
1294
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" })
1295
- );
1296
- var EditIcon = createIcon(
1297
- "EditIcon",
1298
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z" })
1299
- );
1300
- var MailIcon = createIcon(
1301
- "MailIcon",
1302
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" })
1303
- );
1304
- var StarIcon = createIcon(
1305
- "StarIcon",
1306
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z" })
1307
- );
1308
- var HeartIcon = createIcon(
1309
- "HeartIcon",
1310
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z" })
1311
- );
1312
- var DownloadIcon = createIcon(
1313
- "DownloadIcon",
1314
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" })
1315
- );
1316
- var UploadIcon = createIcon(
1317
- "UploadIcon",
1318
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12" })
1319
- );
1320
- var CameraIcon = createIcon(
1321
- "CameraIcon",
1322
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
1323
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z" }),
1324
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 13a3 3 0 11-6 0 3 3 0 016 0z" })
1325
- ] })
1326
- );
1327
- var LockIcon = createIcon(
1328
- "LockIcon",
1329
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z" })
1330
- );
1331
- var CalendarIcon = createIcon(
1332
- "CalendarIcon",
1333
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })
1334
- );
1335
- var GoogleIcon = createIcon(
1336
- "GoogleIcon",
1337
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z" }),
1338
- true
1339
- );
1340
- var GitHubIcon = createIcon(
1341
- "GitHubIcon",
1342
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" }),
1343
- true
1344
- );
1345
- var TwitterIcon = createIcon(
1346
- "TwitterIcon",
1347
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z" }),
1348
- true
1349
- );
1350
- var FacebookIcon = createIcon(
1351
- "FacebookIcon",
1352
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z" }),
1353
- true
1354
- );
1355
- var AppleIcon = createIcon(
1356
- "AppleIcon",
1357
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z" }),
1358
- true
1359
- );
1360
- var LinkedInIcon = createIcon(
1361
- "LinkedInIcon",
1362
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" }),
1363
- true
1364
- );
1365
- var YouTubeIcon = createIcon(
1366
- "YouTubeIcon",
1367
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z" }),
1368
- true
1369
- );
1370
- var SlackIcon = createIcon(
1371
- "SlackIcon",
1372
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { d: "M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.268a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z" }),
1373
- true
1374
- );
1375
2181
  // Annotate the CommonJS export names for ESM import in node:
1376
2182
  0 && (module.exports = {
1377
2183
  ActionMenu,
1378
2184
  Alert,
2185
+ AppShell,
1379
2186
  AppleIcon,
2187
+ Avatar,
1380
2188
  Badge,
1381
2189
  BellIcon,
1382
2190
  Button,
@@ -1390,10 +2198,12 @@ var SlackIcon = createIcon(
1390
2198
  CloseIcon,
1391
2199
  DatePicker,
1392
2200
  DateTimePicker,
2201
+ Divider,
1393
2202
  DownloadIcon,
1394
2203
  Drawer,
1395
2204
  EditIcon,
1396
2205
  FacebookIcon,
2206
+ FileUpload,
1397
2207
  GitHubIcon,
1398
2208
  GoogleIcon,
1399
2209
  HeartIcon,
@@ -1406,19 +2216,25 @@ var SlackIcon = createIcon(
1406
2216
  Navbar,
1407
2217
  Pagination,
1408
2218
  PlusIcon,
2219
+ ProgressBar,
2220
+ Radio,
1409
2221
  SearchIcon,
1410
2222
  Select,
1411
2223
  SettingsIcon,
1412
2224
  Sidebar,
1413
2225
  SidebarProvider,
1414
2226
  SlackIcon,
2227
+ Slider,
1415
2228
  Spinner,
1416
2229
  StarIcon,
2230
+ Stepper,
1417
2231
  Table,
1418
2232
  Tabs,
1419
2233
  TextInput,
2234
+ Textarea,
1420
2235
  ThemeProvider,
1421
2236
  TimePicker,
2237
+ ToastProvider,
1422
2238
  Toggle,
1423
2239
  TrashIcon,
1424
2240
  TwitterIcon,
@@ -1428,7 +2244,9 @@ var SlackIcon = createIcon(
1428
2244
  getThemeScript,
1429
2245
  themeScript,
1430
2246
  themes,
2247
+ toast,
1431
2248
  useSidebar,
1432
- useTheme
2249
+ useTheme,
2250
+ useToast
1433
2251
  });
1434
2252
  //# sourceMappingURL=index.js.map