@marcoschwartz/lite-ui 0.2.0 → 0.3.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
@@ -33,33 +33,57 @@ var index_exports = {};
33
33
  __export(index_exports, {
34
34
  ActionMenu: () => ActionMenu,
35
35
  Alert: () => Alert,
36
+ AlertCircleIcon: () => AlertCircleIcon,
36
37
  AppShell: () => AppShell,
37
38
  AppleIcon: () => AppleIcon,
39
+ ArrowLeftIcon: () => ArrowLeftIcon,
40
+ ArrowRightIcon: () => ArrowRightIcon,
41
+ AudioPlayer: () => AudioPlayer,
38
42
  Avatar: () => Avatar,
39
43
  Badge: () => Badge,
44
+ BeakerIcon: () => BeakerIcon,
40
45
  BellIcon: () => BellIcon,
46
+ BookIcon: () => BookIcon,
47
+ BrainIcon: () => BrainIcon,
41
48
  Button: () => Button,
42
49
  Calendar: () => Calendar,
43
50
  CalendarIcon: () => CalendarIcon,
44
51
  CameraIcon: () => CameraIcon,
45
52
  Card: () => Card,
53
+ ChatIcon: () => ChatIcon,
54
+ CheckCircleIcon: () => CheckCircleIcon,
46
55
  CheckIcon: () => CheckIcon,
47
56
  Checkbox: () => Checkbox,
48
57
  ChevronDownIcon: () => ChevronDownIcon,
58
+ ChevronLeftIcon: () => ChevronLeftIcon,
49
59
  ChevronRightIcon: () => ChevronRightIcon,
60
+ ChevronUpIcon: () => ChevronUpIcon,
50
61
  CloseIcon: () => CloseIcon,
62
+ CloudIcon: () => CloudIcon,
63
+ CodeIcon: () => CodeIcon,
64
+ CopyIcon: () => CopyIcon,
65
+ DatabaseIcon: () => DatabaseIcon,
51
66
  DatePicker: () => DatePicker,
52
67
  DateTimePicker: () => DateTimePicker,
53
68
  Divider: () => Divider,
54
69
  DownloadIcon: () => DownloadIcon,
55
70
  Drawer: () => Drawer,
56
71
  EditIcon: () => EditIcon,
72
+ ExternalLinkIcon: () => ExternalLinkIcon,
73
+ EyeIcon: () => EyeIcon,
74
+ EyeOffIcon: () => EyeOffIcon,
57
75
  FacebookIcon: () => FacebookIcon,
76
+ FileIcon: () => FileIcon,
58
77
  FileUpload: () => FileUpload,
78
+ FolderIcon: () => FolderIcon,
59
79
  GitHubIcon: () => GitHubIcon,
80
+ GlobeIcon: () => GlobeIcon,
60
81
  GoogleIcon: () => GoogleIcon,
61
82
  HeartIcon: () => HeartIcon,
62
83
  HomeIcon: () => HomeIcon,
84
+ ImageIcon: () => ImageIcon,
85
+ InfoCircleIcon: () => InfoCircleIcon,
86
+ KeyIcon: () => KeyIcon,
63
87
  LinkedInIcon: () => LinkedInIcon,
64
88
  LockIcon: () => LockIcon,
65
89
  MailIcon: () => MailIcon,
@@ -68,22 +92,33 @@ __export(index_exports, {
68
92
  Navbar: () => Navbar,
69
93
  NumberInput: () => NumberInput,
70
94
  Pagination: () => Pagination,
95
+ PauseIcon: () => PauseIcon,
96
+ PlayIcon: () => PlayIcon,
97
+ PlugIcon: () => PlugIcon,
71
98
  PlusIcon: () => PlusIcon,
72
99
  ProgressBar: () => ProgressBar,
73
100
  Radio: () => Radio,
101
+ RefreshIcon: () => RefreshIcon,
74
102
  RichTextEditor: () => RichTextEditor,
103
+ SaveIcon: () => SaveIcon,
75
104
  SearchIcon: () => SearchIcon,
76
105
  Select: () => Select,
77
106
  SettingsIcon: () => SettingsIcon,
107
+ ShieldIcon: () => ShieldIcon,
78
108
  Sidebar: () => Sidebar,
79
109
  SidebarProvider: () => SidebarProvider,
110
+ SkipBackIcon: () => SkipBackIcon,
111
+ SkipForwardIcon: () => SkipForwardIcon,
80
112
  SlackIcon: () => SlackIcon,
81
113
  Slider: () => Slider,
114
+ SparklesIcon: () => SparklesIcon,
82
115
  Spinner: () => Spinner,
83
116
  StarIcon: () => StarIcon,
84
117
  Stepper: () => Stepper,
118
+ StopIcon: () => StopIcon,
85
119
  Table: () => Table,
86
120
  Tabs: () => Tabs,
121
+ TerminalIcon: () => TerminalIcon,
87
122
  TextInput: () => TextInput,
88
123
  Textarea: () => Textarea,
89
124
  ThemeProvider: () => ThemeProvider,
@@ -94,6 +129,8 @@ __export(index_exports, {
94
129
  TwitterIcon: () => TwitterIcon,
95
130
  UploadIcon: () => UploadIcon,
96
131
  UserIcon: () => UserIcon,
132
+ VolumeOffIcon: () => VolumeOffIcon,
133
+ VolumeUpIcon: () => VolumeUpIcon,
97
134
  YouTubeIcon: () => YouTubeIcon,
98
135
  getThemeScript: () => getThemeScript,
99
136
  themeScript: () => themeScript,
@@ -713,173 +750,437 @@ var CloseIcon = createIcon(
713
750
  /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" })
714
751
  );
715
752
 
716
- // src/icons/ChevronDownIcon.tsx
753
+ // src/icons/PlusIcon.tsx
717
754
  var import_jsx_runtime16 = require("react/jsx-runtime");
755
+ var PlusIcon = createIcon(
756
+ "PlusIcon",
757
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 4v16m8-8H4" })
758
+ );
759
+
760
+ // src/icons/ArrowLeftIcon.tsx
761
+ var import_jsx_runtime17 = require("react/jsx-runtime");
762
+ var ArrowLeftIcon = createIcon(
763
+ "ArrowLeftIcon",
764
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 19l-7-7m0 0l7-7m-7 7h18" })
765
+ );
766
+
767
+ // src/icons/ArrowRightIcon.tsx
768
+ var import_jsx_runtime18 = require("react/jsx-runtime");
769
+ var ArrowRightIcon = createIcon(
770
+ "ArrowRightIcon",
771
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M14 5l7 7m0 0l-7 7m7-7H3" })
772
+ );
773
+
774
+ // src/icons/ChevronDownIcon.tsx
775
+ var import_jsx_runtime19 = require("react/jsx-runtime");
718
776
  var ChevronDownIcon = createIcon(
719
777
  "ChevronDownIcon",
720
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" })
778
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" })
779
+ );
780
+
781
+ // src/icons/ChevronUpIcon.tsx
782
+ var import_jsx_runtime20 = require("react/jsx-runtime");
783
+ var ChevronUpIcon = createIcon(
784
+ "ChevronUpIcon",
785
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 15l7-7 7 7" })
786
+ );
787
+
788
+ // src/icons/ChevronLeftIcon.tsx
789
+ var import_jsx_runtime21 = require("react/jsx-runtime");
790
+ var ChevronLeftIcon = createIcon(
791
+ "ChevronLeftIcon",
792
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" })
721
793
  );
722
794
 
723
795
  // src/icons/ChevronRightIcon.tsx
724
- var import_jsx_runtime17 = require("react/jsx-runtime");
796
+ var import_jsx_runtime22 = require("react/jsx-runtime");
725
797
  var ChevronRightIcon = createIcon(
726
798
  "ChevronRightIcon",
727
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" })
799
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" })
800
+ );
801
+
802
+ // src/icons/ExternalLinkIcon.tsx
803
+ var import_jsx_runtime23 = require("react/jsx-runtime");
804
+ var ExternalLinkIcon = createIcon(
805
+ "ExternalLinkIcon",
806
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" })
728
807
  );
729
808
 
730
809
  // src/icons/CheckIcon.tsx
731
- var import_jsx_runtime18 = require("react/jsx-runtime");
810
+ var import_jsx_runtime24 = require("react/jsx-runtime");
732
811
  var CheckIcon = createIcon(
733
812
  "CheckIcon",
734
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" })
813
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" })
735
814
  );
736
815
 
737
- // src/icons/PlusIcon.tsx
738
- var import_jsx_runtime19 = require("react/jsx-runtime");
739
- var PlusIcon = createIcon(
740
- "PlusIcon",
741
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 4v16m8-8H4" })
816
+ // src/icons/CheckCircleIcon.tsx
817
+ var import_jsx_runtime25 = require("react/jsx-runtime");
818
+ var CheckCircleIcon = createIcon(
819
+ "CheckCircleIcon",
820
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" })
821
+ );
822
+
823
+ // src/icons/AlertCircleIcon.tsx
824
+ var import_jsx_runtime26 = require("react/jsx-runtime");
825
+ var AlertCircleIcon = createIcon(
826
+ "AlertCircleIcon",
827
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" })
828
+ );
829
+
830
+ // src/icons/InfoCircleIcon.tsx
831
+ var import_jsx_runtime27 = require("react/jsx-runtime");
832
+ var InfoCircleIcon = createIcon(
833
+ "InfoCircleIcon",
834
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" })
742
835
  );
743
836
 
744
837
  // src/icons/TrashIcon.tsx
745
- var import_jsx_runtime20 = require("react/jsx-runtime");
838
+ var import_jsx_runtime28 = require("react/jsx-runtime");
746
839
  var TrashIcon = createIcon(
747
840
  "TrashIcon",
748
- /* @__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" })
841
+ /* @__PURE__ */ (0, import_jsx_runtime28.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" })
749
842
  );
750
843
 
751
844
  // src/icons/EditIcon.tsx
752
- var import_jsx_runtime21 = require("react/jsx-runtime");
845
+ var import_jsx_runtime29 = require("react/jsx-runtime");
753
846
  var EditIcon = createIcon(
754
847
  "EditIcon",
755
- /* @__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" })
848
+ /* @__PURE__ */ (0, import_jsx_runtime29.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" })
849
+ );
850
+
851
+ // src/icons/CopyIcon.tsx
852
+ var import_jsx_runtime30 = require("react/jsx-runtime");
853
+ var CopyIcon = createIcon(
854
+ "CopyIcon",
855
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" })
856
+ );
857
+
858
+ // src/icons/SaveIcon.tsx
859
+ var import_jsx_runtime31 = require("react/jsx-runtime");
860
+ var SaveIcon = createIcon(
861
+ "SaveIcon",
862
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7H5a2 2 0 00-2 2v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-3m-1 4l-3 3m0 0l-3-3m3 3V4" })
863
+ );
864
+
865
+ // src/icons/DownloadIcon.tsx
866
+ var import_jsx_runtime32 = require("react/jsx-runtime");
867
+ var DownloadIcon = createIcon(
868
+ "DownloadIcon",
869
+ /* @__PURE__ */ (0, import_jsx_runtime32.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" })
870
+ );
871
+
872
+ // src/icons/UploadIcon.tsx
873
+ var import_jsx_runtime33 = require("react/jsx-runtime");
874
+ var UploadIcon = createIcon(
875
+ "UploadIcon",
876
+ /* @__PURE__ */ (0, import_jsx_runtime33.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" })
877
+ );
878
+
879
+ // src/icons/RefreshIcon.tsx
880
+ var import_jsx_runtime34 = require("react/jsx-runtime");
881
+ var RefreshIcon = createIcon(
882
+ "RefreshIcon",
883
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" })
884
+ );
885
+
886
+ // src/icons/EyeIcon.tsx
887
+ var import_jsx_runtime35 = require("react/jsx-runtime");
888
+ var EyeIcon = createIcon(
889
+ "EyeIcon",
890
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z" })
891
+ );
892
+
893
+ // src/icons/EyeOffIcon.tsx
894
+ var import_jsx_runtime36 = require("react/jsx-runtime");
895
+ var EyeOffIcon = createIcon(
896
+ "EyeOffIcon",
897
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l3.59 3.59m0 0A9.953 9.953 0 0112 5c4.478 0 8.268 2.943 9.543 7a10.025 10.025 0 01-4.132 5.411m0 0L21 21" })
898
+ );
899
+
900
+ // src/icons/PlayIcon.tsx
901
+ var import_jsx_runtime37 = require("react/jsx-runtime");
902
+ var PlayIcon = createIcon(
903
+ "PlayIcon",
904
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: "M8 5v14l11-7z" }),
905
+ true
906
+ );
907
+
908
+ // src/icons/PauseIcon.tsx
909
+ var import_jsx_runtime38 = require("react/jsx-runtime");
910
+ var PauseIcon = createIcon(
911
+ "PauseIcon",
912
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
913
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("rect", { x: "6", y: "4", width: "4", height: "16", rx: "1" }),
914
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("rect", { x: "14", y: "4", width: "4", height: "16", rx: "1" })
915
+ ] }),
916
+ true
917
+ );
918
+
919
+ // src/icons/StopIcon.tsx
920
+ var import_jsx_runtime39 = require("react/jsx-runtime");
921
+ var StopIcon = createIcon(
922
+ "StopIcon",
923
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 12a9 9 0 11-18 0 9 9 0 0118 0z" })
924
+ );
925
+
926
+ // src/icons/SkipBackIcon.tsx
927
+ var import_jsx_runtime40 = require("react/jsx-runtime");
928
+ var SkipBackIcon = createIcon(
929
+ "SkipBackIcon",
930
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_jsx_runtime40.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12.066 11.2a1 1 0 000 1.6l5.334 4A1 1 0 0019 16V8a1 1 0 00-1.6-.8l-5.333 4zM4.066 11.2a1 1 0 000 1.6l5.334 4A1 1 0 0011 16V8a1 1 0 00-1.6-.8l-5.334 4z" }) }),
931
+ false
932
+ );
933
+
934
+ // src/icons/SkipForwardIcon.tsx
935
+ var import_jsx_runtime41 = require("react/jsx-runtime");
936
+ var SkipForwardIcon = createIcon(
937
+ "SkipForwardIcon",
938
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_jsx_runtime41.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M11.933 12.8a1 1 0 000-1.6L6.6 7.2A1 1 0 005 8v8a1 1 0 001.6.8l5.333-4zM19.933 12.8a1 1 0 000-1.6l-5.333-4A1 1 0 0013 8v8a1 1 0 001.6.8l5.333-4z" }) }),
939
+ false
940
+ );
941
+
942
+ // src/icons/VolumeUpIcon.tsx
943
+ var import_jsx_runtime42 = require("react/jsx-runtime");
944
+ var VolumeUpIcon = createIcon(
945
+ "VolumeUpIcon",
946
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_jsx_runtime42.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z" }) }),
947
+ false
948
+ );
949
+
950
+ // src/icons/VolumeOffIcon.tsx
951
+ var import_jsx_runtime43 = require("react/jsx-runtime");
952
+ var VolumeOffIcon = createIcon(
953
+ "VolumeOffIcon",
954
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [
955
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z", clipRule: "evenodd" }),
956
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M17 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2" })
957
+ ] }),
958
+ false
756
959
  );
757
960
 
758
961
  // src/icons/MailIcon.tsx
759
- var import_jsx_runtime22 = require("react/jsx-runtime");
962
+ var import_jsx_runtime44 = require("react/jsx-runtime");
760
963
  var MailIcon = createIcon(
761
964
  "MailIcon",
762
- /* @__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" })
965
+ /* @__PURE__ */ (0, import_jsx_runtime44.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" })
966
+ );
967
+
968
+ // src/icons/ChatIcon.tsx
969
+ var import_jsx_runtime45 = require("react/jsx-runtime");
970
+ var ChatIcon = createIcon(
971
+ "ChatIcon",
972
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z" })
763
973
  );
764
974
 
765
975
  // src/icons/StarIcon.tsx
766
- var import_jsx_runtime23 = require("react/jsx-runtime");
976
+ var import_jsx_runtime46 = require("react/jsx-runtime");
767
977
  var StarIcon = createIcon(
768
978
  "StarIcon",
769
- /* @__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" })
979
+ /* @__PURE__ */ (0, import_jsx_runtime46.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" })
770
980
  );
771
981
 
772
982
  // src/icons/HeartIcon.tsx
773
- var import_jsx_runtime24 = require("react/jsx-runtime");
983
+ var import_jsx_runtime47 = require("react/jsx-runtime");
774
984
  var HeartIcon = createIcon(
775
985
  "HeartIcon",
776
- /* @__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" })
777
- );
778
-
779
- // src/icons/DownloadIcon.tsx
780
- var import_jsx_runtime25 = require("react/jsx-runtime");
781
- var DownloadIcon = createIcon(
782
- "DownloadIcon",
783
- /* @__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" })
784
- );
785
-
786
- // src/icons/UploadIcon.tsx
787
- var import_jsx_runtime26 = require("react/jsx-runtime");
788
- var UploadIcon = createIcon(
789
- "UploadIcon",
790
- /* @__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" })
986
+ /* @__PURE__ */ (0, import_jsx_runtime47.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" })
791
987
  );
792
988
 
793
989
  // src/icons/CameraIcon.tsx
794
- var import_jsx_runtime27 = require("react/jsx-runtime");
990
+ var import_jsx_runtime48 = require("react/jsx-runtime");
795
991
  var CameraIcon = createIcon(
796
992
  "CameraIcon",
797
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_jsx_runtime27.Fragment, { children: [
798
- /* @__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" }),
799
- /* @__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" })
993
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_jsx_runtime48.Fragment, { children: [
994
+ /* @__PURE__ */ (0, import_jsx_runtime48.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" }),
995
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 13a3 3 0 11-6 0 3 3 0 016 0z" })
800
996
  ] })
801
997
  );
802
998
 
999
+ // src/icons/CalendarIcon.tsx
1000
+ var import_jsx_runtime49 = require("react/jsx-runtime");
1001
+ var CalendarIcon = createIcon(
1002
+ "CalendarIcon",
1003
+ /* @__PURE__ */ (0, import_jsx_runtime49.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" })
1004
+ );
1005
+
1006
+ // src/icons/BookIcon.tsx
1007
+ var import_jsx_runtime50 = require("react/jsx-runtime");
1008
+ var BookIcon = createIcon(
1009
+ "BookIcon",
1010
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253" })
1011
+ );
1012
+
1013
+ // src/icons/FileIcon.tsx
1014
+ var import_jsx_runtime51 = require("react/jsx-runtime");
1015
+ var FileIcon = createIcon(
1016
+ "FileIcon",
1017
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v14a2 2 0 002 2z" })
1018
+ );
1019
+
1020
+ // src/icons/FolderIcon.tsx
1021
+ var import_jsx_runtime52 = require("react/jsx-runtime");
1022
+ var FolderIcon = createIcon(
1023
+ "FolderIcon",
1024
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z" })
1025
+ );
1026
+
1027
+ // src/icons/ImageIcon.tsx
1028
+ var import_jsx_runtime53 = require("react/jsx-runtime");
1029
+ var ImageIcon = createIcon(
1030
+ "ImageIcon",
1031
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" })
1032
+ );
1033
+
1034
+ // src/icons/CodeIcon.tsx
1035
+ var import_jsx_runtime54 = require("react/jsx-runtime");
1036
+ var CodeIcon = createIcon(
1037
+ "CodeIcon",
1038
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" })
1039
+ );
1040
+
1041
+ // src/icons/TerminalIcon.tsx
1042
+ var import_jsx_runtime55 = require("react/jsx-runtime");
1043
+ var TerminalIcon = createIcon(
1044
+ "TerminalIcon",
1045
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })
1046
+ );
1047
+
1048
+ // src/icons/DatabaseIcon.tsx
1049
+ var import_jsx_runtime56 = require("react/jsx-runtime");
1050
+ var DatabaseIcon = createIcon(
1051
+ "DatabaseIcon",
1052
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4" })
1053
+ );
1054
+
1055
+ // src/icons/CloudIcon.tsx
1056
+ var import_jsx_runtime57 = require("react/jsx-runtime");
1057
+ var CloudIcon = createIcon(
1058
+ "CloudIcon",
1059
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z" })
1060
+ );
1061
+
1062
+ // src/icons/PlugIcon.tsx
1063
+ var import_jsx_runtime58 = require("react/jsx-runtime");
1064
+ var PlugIcon = createIcon(
1065
+ "PlugIcon",
1066
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13 10V3L4 14h7v7l9-11h-7z" })
1067
+ );
1068
+
1069
+ // src/icons/KeyIcon.tsx
1070
+ var import_jsx_runtime59 = require("react/jsx-runtime");
1071
+ var KeyIcon = createIcon(
1072
+ "KeyIcon",
1073
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z" })
1074
+ );
1075
+
803
1076
  // src/icons/LockIcon.tsx
804
- var import_jsx_runtime28 = require("react/jsx-runtime");
1077
+ var import_jsx_runtime60 = require("react/jsx-runtime");
805
1078
  var LockIcon = createIcon(
806
1079
  "LockIcon",
807
- /* @__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" })
1080
+ /* @__PURE__ */ (0, import_jsx_runtime60.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" })
808
1081
  );
809
1082
 
810
- // src/icons/CalendarIcon.tsx
811
- var import_jsx_runtime29 = require("react/jsx-runtime");
812
- var CalendarIcon = createIcon(
813
- "CalendarIcon",
814
- /* @__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" })
1083
+ // src/icons/ShieldIcon.tsx
1084
+ var import_jsx_runtime61 = require("react/jsx-runtime");
1085
+ var ShieldIcon = createIcon(
1086
+ "ShieldIcon",
1087
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" })
1088
+ );
1089
+
1090
+ // src/icons/SparklesIcon.tsx
1091
+ var import_jsx_runtime62 = require("react/jsx-runtime");
1092
+ var SparklesIcon = createIcon(
1093
+ "SparklesIcon",
1094
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 3v4M3 5h4M6 17v4m-2-2h4m5-16l2.286 6.857L21 12l-5.714 2.143L13 21l-2.286-6.857L5 12l5.714-2.143L13 3z" })
1095
+ );
1096
+
1097
+ // src/icons/BrainIcon.tsx
1098
+ var import_jsx_runtime63 = require("react/jsx-runtime");
1099
+ var BrainIcon = createIcon(
1100
+ "BrainIcon",
1101
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" })
1102
+ );
1103
+
1104
+ // src/icons/GlobeIcon.tsx
1105
+ var import_jsx_runtime64 = require("react/jsx-runtime");
1106
+ var GlobeIcon = createIcon(
1107
+ "GlobeIcon",
1108
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z" })
1109
+ );
1110
+
1111
+ // src/icons/BeakerIcon.tsx
1112
+ var import_jsx_runtime65 = require("react/jsx-runtime");
1113
+ var BeakerIcon = createIcon(
1114
+ "BeakerIcon",
1115
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19.428 15.428a2 2 0 00-1.022-.547l-2.387-.477a6 6 0 00-3.86.517l-.318.158a6 6 0 01-3.86.517L6.05 15.21a2 2 0 00-1.806.547M8 4h8l-1 1v5.172a2 2 0 00.586 1.414l5 5c1.26 1.26.367 3.414-1.415 3.414H4.828c-1.782 0-2.674-2.154-1.414-3.414l5-5A2 2 0 009 10.172V5L8 4z" })
815
1116
  );
816
1117
 
817
1118
  // src/icons/GoogleIcon.tsx
818
- var import_jsx_runtime30 = require("react/jsx-runtime");
1119
+ var import_jsx_runtime66 = require("react/jsx-runtime");
819
1120
  var GoogleIcon = createIcon(
820
1121
  "GoogleIcon",
821
- /* @__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" }),
1122
+ /* @__PURE__ */ (0, import_jsx_runtime66.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" }),
822
1123
  true
823
1124
  );
824
1125
 
825
1126
  // src/icons/GitHubIcon.tsx
826
- var import_jsx_runtime31 = require("react/jsx-runtime");
1127
+ var import_jsx_runtime67 = require("react/jsx-runtime");
827
1128
  var GitHubIcon = createIcon(
828
1129
  "GitHubIcon",
829
- /* @__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" }),
1130
+ /* @__PURE__ */ (0, import_jsx_runtime67.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" }),
830
1131
  true
831
1132
  );
832
1133
 
833
1134
  // src/icons/TwitterIcon.tsx
834
- var import_jsx_runtime32 = require("react/jsx-runtime");
1135
+ var import_jsx_runtime68 = require("react/jsx-runtime");
835
1136
  var TwitterIcon = createIcon(
836
1137
  "TwitterIcon",
837
- /* @__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" }),
1138
+ /* @__PURE__ */ (0, import_jsx_runtime68.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" }),
838
1139
  true
839
1140
  );
840
1141
 
841
1142
  // src/icons/FacebookIcon.tsx
842
- var import_jsx_runtime33 = require("react/jsx-runtime");
1143
+ var import_jsx_runtime69 = require("react/jsx-runtime");
843
1144
  var FacebookIcon = createIcon(
844
1145
  "FacebookIcon",
845
- /* @__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" }),
1146
+ /* @__PURE__ */ (0, import_jsx_runtime69.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" }),
846
1147
  true
847
1148
  );
848
1149
 
849
1150
  // src/icons/AppleIcon.tsx
850
- var import_jsx_runtime34 = require("react/jsx-runtime");
1151
+ var import_jsx_runtime70 = require("react/jsx-runtime");
851
1152
  var AppleIcon = createIcon(
852
1153
  "AppleIcon",
853
- /* @__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" }),
1154
+ /* @__PURE__ */ (0, import_jsx_runtime70.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" }),
854
1155
  true
855
1156
  );
856
1157
 
857
1158
  // src/icons/LinkedInIcon.tsx
858
- var import_jsx_runtime35 = require("react/jsx-runtime");
1159
+ var import_jsx_runtime71 = require("react/jsx-runtime");
859
1160
  var LinkedInIcon = createIcon(
860
1161
  "LinkedInIcon",
861
- /* @__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" }),
1162
+ /* @__PURE__ */ (0, import_jsx_runtime71.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" }),
862
1163
  true
863
1164
  );
864
1165
 
865
1166
  // src/icons/YouTubeIcon.tsx
866
- var import_jsx_runtime36 = require("react/jsx-runtime");
1167
+ var import_jsx_runtime72 = require("react/jsx-runtime");
867
1168
  var YouTubeIcon = createIcon(
868
1169
  "YouTubeIcon",
869
- /* @__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" }),
1170
+ /* @__PURE__ */ (0, import_jsx_runtime72.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" }),
870
1171
  true
871
1172
  );
872
1173
 
873
1174
  // src/icons/SlackIcon.tsx
874
- var import_jsx_runtime37 = require("react/jsx-runtime");
1175
+ var import_jsx_runtime73 = require("react/jsx-runtime");
875
1176
  var SlackIcon = createIcon(
876
1177
  "SlackIcon",
877
- /* @__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" }),
1178
+ /* @__PURE__ */ (0, import_jsx_runtime73.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" }),
878
1179
  true
879
1180
  );
880
1181
 
881
1182
  // src/components/AppShell.tsx
882
- var import_jsx_runtime38 = require("react/jsx-runtime");
1183
+ var import_jsx_runtime74 = require("react/jsx-runtime");
883
1184
  var widthClasses2 = {
884
1185
  sm: "w-48",
885
1186
  md: "w-64",
@@ -909,60 +1210,60 @@ var AppShell = ({
909
1210
  const widthClass = widthClasses2[navbarWidth];
910
1211
  const breakpoint = breakpointClasses[navbarBreakpoint];
911
1212
  if (!responsive && navbar) {
912
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: `min-h-screen flex flex-col ${className}`, children: [
913
- header && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "w-full", children: header }),
914
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-1", children: [
915
- /* @__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 }),
916
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("main", { className: "flex-1 overflow-y-auto", children })
1213
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: `min-h-screen flex flex-col ${className}`, children: [
1214
+ header && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "w-full", children: header }),
1215
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex flex-1", children: [
1216
+ /* @__PURE__ */ (0, import_jsx_runtime74.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 }),
1217
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("main", { className: "flex-1 overflow-y-auto", children })
917
1218
  ] })
918
1219
  ] });
919
1220
  }
920
1221
  if (!responsive) {
921
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: `min-h-screen flex flex-col ${className}`, children: [
922
- header && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "w-full", children: header }),
923
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("main", { className: "flex-1 overflow-y-auto", children })
1222
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: `min-h-screen flex flex-col ${className}`, children: [
1223
+ header && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "w-full", children: header }),
1224
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("main", { className: "flex-1 overflow-y-auto", children })
924
1225
  ] });
925
1226
  }
926
1227
  if (navbar && navbarPosition === "top") {
927
1228
  const mobileMenuClass = navbarBreakpoint === "sm" ? "sm:hidden" : navbarBreakpoint === "md" ? "md:hidden" : navbarBreakpoint === "lg" ? "lg:hidden" : "xl:hidden";
928
1229
  const desktopNavClass = navbarBreakpoint === "sm" ? "sm:flex" : navbarBreakpoint === "md" ? "md:flex" : navbarBreakpoint === "lg" ? "lg:flex" : "xl:flex";
929
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: `min-h-screen flex flex-col bg-gray-50 dark:bg-gray-900 ${className}`, children: [
930
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("nav", { className: "sticky top-0 z-30 bg-white dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex justify-between items-center h-16", children: [
931
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex items-center", children: 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 }),
932
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: `hidden ${desktopNavClass} items-center gap-6`, children: navbar.content }),
933
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1230
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: `min-h-screen flex flex-col bg-gray-50 dark:bg-gray-900 ${className}`, children: [
1231
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("nav", { className: "sticky top-0 z-30 bg-white dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex justify-between items-center h-16", children: [
1232
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "flex items-center", children: navbarLogo ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { children: navbarLogo }) : navbarTitle ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "text-xl font-bold text-gray-900 dark:text-gray-100", children: navbarTitle }) : null }),
1233
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: `hidden ${desktopNavClass} items-center gap-6`, children: navbar.content }),
1234
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
934
1235
  "button",
935
1236
  {
936
1237
  className: `${mobileMenuClass} p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors`,
937
1238
  onClick: () => setIsMobileNavbarOpen(!isMobileNavbarOpen),
938
1239
  "aria-label": "Toggle menu",
939
- children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(MenuIcon, { size: "md" })
1240
+ children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(MenuIcon, { size: "md" })
940
1241
  }
941
1242
  )
942
1243
  ] }) }) }),
943
- header && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "w-full", children: header }),
944
- isMobileNavbarOpen && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
945
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1244
+ header && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "w-full", children: header }),
1245
+ isMobileNavbarOpen && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
1246
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
946
1247
  "div",
947
1248
  {
948
1249
  className: `${mobileMenuClass} fixed inset-0 z-40 bg-black/60 backdrop-blur-sm animate-in fade-in duration-200`,
949
1250
  onClick: () => setIsMobileNavbarOpen(false)
950
1251
  }
951
1252
  ),
952
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: `${mobileMenuClass} 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: [
953
- /* @__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: [
954
- 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,
955
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1253
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: `${mobileMenuClass} 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: [
1254
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "p-4 border-b border-gray-200 dark:border-gray-700 flex items-center justify-between", children: [
1255
+ navbarLogo ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { children: navbarLogo }) : navbarTitle ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "text-xl font-bold text-gray-900 dark:text-gray-100", children: navbarTitle }) : null,
1256
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
956
1257
  "button",
957
1258
  {
958
1259
  className: "p-1 rounded hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",
959
1260
  onClick: () => setIsMobileNavbarOpen(false),
960
1261
  "aria-label": "Close menu",
961
- 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" }) })
1262
+ children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
962
1263
  }
963
1264
  )
964
1265
  ] }),
965
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1266
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
966
1267
  "div",
967
1268
  {
968
1269
  className: "p-4 flex flex-col gap-4",
@@ -972,7 +1273,7 @@ var AppShell = ({
972
1273
  )
973
1274
  ] })
974
1275
  ] }),
975
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("main", { className: "flex-1 overflow-y-auto", children })
1276
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("main", { className: "flex-1 overflow-y-auto", children })
976
1277
  ] });
977
1278
  }
978
1279
  if (navbar) {
@@ -980,44 +1281,44 @@ var AppShell = ({
980
1281
  const desktopNavbarClass = navbarBreakpoint === "sm" ? "sm:block" : navbarBreakpoint === "md" ? "md:block" : navbarBreakpoint === "lg" ? "lg:block" : "xl:block";
981
1282
  const mobileDrawerClass = navbarBreakpoint === "sm" ? "sm:hidden" : navbarBreakpoint === "md" ? "md:hidden" : navbarBreakpoint === "lg" ? "lg:hidden" : "xl:hidden";
982
1283
  const sidebarWidthClass = navbarWidth === "sm" ? "w-48" : navbarWidth === "lg" ? "w-80" : "w-64";
983
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: `min-h-screen flex flex-col bg-gray-50 dark:bg-gray-900 ${className}`, children: [
984
- /* @__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: [
985
- 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,
986
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1284
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: `min-h-screen flex flex-col bg-gray-50 dark:bg-gray-900 ${className}`, children: [
1285
+ /* @__PURE__ */ (0, import_jsx_runtime74.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: [
1286
+ navbarLogo ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { children: navbarLogo }) : navbarTitle ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "text-xl font-bold text-gray-900 dark:text-gray-100", children: navbarTitle }) : null,
1287
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
987
1288
  "button",
988
1289
  {
989
1290
  className: "p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",
990
1291
  onClick: () => setIsMobileNavbarOpen(!isMobileNavbarOpen),
991
1292
  "aria-label": "Toggle menu",
992
- children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(MenuIcon, { size: "md" })
1293
+ children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(MenuIcon, { size: "md" })
993
1294
  }
994
1295
  )
995
1296
  ] }),
996
- header && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "w-full", children: header }),
997
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-1 min-h-0", children: [
998
- /* @__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 }),
999
- isMobileNavbarOpen && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
1000
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1297
+ header && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "w-full", children: header }),
1298
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex flex-1 min-h-0", children: [
1299
+ /* @__PURE__ */ (0, import_jsx_runtime74.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 }),
1300
+ isMobileNavbarOpen && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
1301
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
1001
1302
  "div",
1002
1303
  {
1003
1304
  className: `${mobileDrawerClass} fixed inset-0 z-40 bg-black/60 backdrop-blur-sm animate-in fade-in duration-200`,
1004
1305
  onClick: () => setIsMobileNavbarOpen(false)
1005
1306
  }
1006
1307
  ),
1007
- /* @__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: [
1008
- /* @__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: [
1009
- 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,
1010
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1308
+ /* @__PURE__ */ (0, import_jsx_runtime74.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: [
1309
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "p-4 border-b border-gray-200 dark:border-gray-700 flex items-center justify-between", children: [
1310
+ navbarLogo ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { children: navbarLogo }) : navbarTitle ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "text-xl font-bold text-gray-900 dark:text-gray-100", children: navbarTitle }) : null,
1311
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
1011
1312
  "button",
1012
1313
  {
1013
1314
  className: "p-1 rounded hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",
1014
1315
  onClick: () => setIsMobileNavbarOpen(false),
1015
1316
  "aria-label": "Close menu",
1016
- 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" }) })
1317
+ children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
1017
1318
  }
1018
1319
  )
1019
1320
  ] }),
1020
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1321
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
1021
1322
  "div",
1022
1323
  {
1023
1324
  className: "overflow-y-auto h-[calc(100vh-73px)]",
@@ -1027,19 +1328,19 @@ var AppShell = ({
1027
1328
  )
1028
1329
  ] })
1029
1330
  ] }),
1030
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("main", { className: "flex-1 overflow-y-auto min-h-screen", children })
1331
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("main", { className: "flex-1 overflow-y-auto min-h-screen", children })
1031
1332
  ] })
1032
1333
  ] });
1033
1334
  }
1034
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: `min-h-screen flex flex-col ${className}`, children: [
1035
- header && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "w-full", children: header }),
1036
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("main", { className: "flex-1 overflow-y-auto", children })
1335
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: `min-h-screen flex flex-col ${className}`, children: [
1336
+ header && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "w-full", children: header }),
1337
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("main", { className: "flex-1 overflow-y-auto", children })
1037
1338
  ] });
1038
1339
  };
1039
1340
 
1040
1341
  // src/components/Drawer.tsx
1041
1342
  var import_react6 = require("react");
1042
- var import_jsx_runtime39 = require("react/jsx-runtime");
1343
+ var import_jsx_runtime75 = require("react/jsx-runtime");
1043
1344
  var sizeClasses3 = {
1044
1345
  left: {
1045
1346
  sm: "w-64",
@@ -1102,32 +1403,32 @@ var Drawer = ({
1102
1403
  if (!isOpen) return null;
1103
1404
  const sizeClass = sizeClasses3[position][size];
1104
1405
  const positionClass = positionClasses[position];
1105
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
1106
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
1406
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(import_jsx_runtime75.Fragment, { children: [
1407
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
1107
1408
  "div",
1108
1409
  {
1109
1410
  className: "fixed inset-0 z-40 bg-black/60 backdrop-blur-sm transition-all duration-200",
1110
1411
  onClick: onClose
1111
1412
  }
1112
1413
  ),
1113
- /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
1414
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
1114
1415
  "div",
1115
1416
  {
1116
1417
  className: `fixed z-50 ${positionClass} ${sizeClass} bg-white dark:bg-gray-800 shadow-2xl overflow-hidden flex flex-col ${slideClasses[position]}`,
1117
1418
  children: [
1118
- (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: [
1119
- title && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("h3", { className: "text-xl font-semibold text-gray-900 dark:text-gray-100", children: title }),
1120
- showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
1419
+ (title || showCloseButton) && /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700", children: [
1420
+ title && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("h3", { className: "text-xl font-semibold text-gray-900 dark:text-gray-100", children: title }),
1421
+ showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
1121
1422
  "button",
1122
1423
  {
1123
1424
  onClick: onClose,
1124
1425
  className: "ml-auto text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors",
1125
1426
  "aria-label": "Close drawer",
1126
- 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" }) })
1427
+ children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("svg", { className: "w-6 h-6", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
1127
1428
  }
1128
1429
  )
1129
1430
  ] }),
1130
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "flex-1 p-6 overflow-y-auto", children })
1431
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "flex-1 p-6 overflow-y-auto", children })
1131
1432
  ]
1132
1433
  }
1133
1434
  )
@@ -1136,7 +1437,7 @@ var Drawer = ({
1136
1437
 
1137
1438
  // src/components/TextInput.tsx
1138
1439
  var import_react7 = require("react");
1139
- var import_jsx_runtime40 = require("react/jsx-runtime");
1440
+ var import_jsx_runtime76 = require("react/jsx-runtime");
1140
1441
  var sizeClasses4 = {
1141
1442
  sm: "px-3 py-1.5 text-sm",
1142
1443
  md: "px-4 py-2.5 text-base",
@@ -1162,11 +1463,11 @@ var TextInput = (0, import_react7.forwardRef)(
1162
1463
  const disabledStyles = disabled ? "opacity-50 cursor-not-allowed bg-gray-50 dark:bg-gray-900" : "";
1163
1464
  const widthStyle = fullWidth ? "w-full" : "";
1164
1465
  const paddingWithIcon = leftIcon ? "pl-10" : rightIcon ? "pr-10" : "";
1165
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: `${widthStyle} ${className}`, children: [
1166
- 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 }),
1167
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "relative", children: [
1168
- 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 }),
1169
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1466
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: `${widthStyle} ${className}`, children: [
1467
+ label && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1468
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "relative", children: [
1469
+ leftIcon && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 dark:text-gray-500", children: leftIcon }),
1470
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
1170
1471
  "input",
1171
1472
  {
1172
1473
  ref,
@@ -1175,10 +1476,10 @@ var TextInput = (0, import_react7.forwardRef)(
1175
1476
  ...props
1176
1477
  }
1177
1478
  ),
1178
- 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 })
1479
+ rightIcon && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 dark:text-gray-500", children: rightIcon })
1179
1480
  ] }),
1180
- error && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1181
- helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1481
+ error && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1482
+ helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1182
1483
  ] });
1183
1484
  }
1184
1485
  );
@@ -1186,7 +1487,7 @@ TextInput.displayName = "TextInput";
1186
1487
 
1187
1488
  // src/components/NumberInput.tsx
1188
1489
  var import_react8 = require("react");
1189
- var import_jsx_runtime41 = require("react/jsx-runtime");
1490
+ var import_jsx_runtime77 = require("react/jsx-runtime");
1190
1491
  var sizeClasses5 = {
1191
1492
  sm: "px-3 py-1.5 text-sm",
1192
1493
  md: "px-4 py-2.5 text-base",
@@ -1261,10 +1562,10 @@ var NumberInput = ({
1261
1562
  const widthStyle = fullWidth ? "w-full" : "";
1262
1563
  const paddingWithControls = !hideControls ? "pr-8" : "";
1263
1564
  const displayValue = value !== void 0 ? value.toString() : "";
1264
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: `${widthStyle} ${className}`, children: [
1265
- label && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1266
- /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "relative", children: [
1267
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
1565
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: `${widthStyle} ${className}`, children: [
1566
+ label && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1567
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "relative", children: [
1568
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
1268
1569
  "input",
1269
1570
  {
1270
1571
  ref: inputRef,
@@ -1282,8 +1583,8 @@ var NumberInput = ({
1282
1583
  className: `${baseStyles} ${sizeStyle} ${errorStyles} ${disabledStyles} ${paddingWithControls} [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`.trim()
1283
1584
  }
1284
1585
  ),
1285
- !hideControls && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "absolute right-1 top-1/2 -translate-y-1/2 flex flex-col", children: [
1286
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
1586
+ !hideControls && /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "absolute right-1 top-1/2 -translate-y-1/2 flex flex-col", children: [
1587
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
1287
1588
  "button",
1288
1589
  {
1289
1590
  type: "button",
@@ -1291,10 +1592,10 @@ var NumberInput = ({
1291
1592
  disabled: disabled || max !== void 0 && value !== void 0 && value >= max,
1292
1593
  className: "px-2 py-0.5 hover:bg-gray-100 dark:hover:bg-gray-700 rounded transition-colors disabled:opacity-30 disabled:cursor-not-allowed",
1293
1594
  tabIndex: -1,
1294
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("svg", { className: "w-3 h-3 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 3, d: "M5 15l7-7 7 7" }) })
1595
+ children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("svg", { className: "w-3 h-3 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 3, d: "M5 15l7-7 7 7" }) })
1295
1596
  }
1296
1597
  ),
1297
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
1598
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
1298
1599
  "button",
1299
1600
  {
1300
1601
  type: "button",
@@ -1302,13 +1603,13 @@ var NumberInput = ({
1302
1603
  disabled: disabled || min !== void 0 && value !== void 0 && value <= min,
1303
1604
  className: "px-2 py-0.5 hover:bg-gray-100 dark:hover:bg-gray-700 rounded transition-colors disabled:opacity-30 disabled:cursor-not-allowed",
1304
1605
  tabIndex: -1,
1305
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("svg", { className: "w-3 h-3 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 3, d: "M19 9l-7 7-7-7" }) })
1606
+ children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("svg", { className: "w-3 h-3 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 3, d: "M19 9l-7 7-7-7" }) })
1306
1607
  }
1307
1608
  )
1308
1609
  ] })
1309
1610
  ] }),
1310
- error && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1311
- helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1611
+ error && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1612
+ helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1312
1613
  ] });
1313
1614
  };
1314
1615
  NumberInput.displayName = "NumberInput";
@@ -1316,7 +1617,7 @@ NumberInput.displayName = "NumberInput";
1316
1617
  // src/components/ActionMenu.tsx
1317
1618
  var import_react9 = require("react");
1318
1619
  var import_react_dom = require("react-dom");
1319
- var import_jsx_runtime42 = require("react/jsx-runtime");
1620
+ var import_jsx_runtime78 = require("react/jsx-runtime");
1320
1621
  var ActionMenu = ({
1321
1622
  items,
1322
1623
  trigger,
@@ -1381,17 +1682,17 @@ var ActionMenu = ({
1381
1682
  setIsOpen(false);
1382
1683
  }
1383
1684
  };
1384
- const defaultTrigger = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
1685
+ const defaultTrigger = /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
1385
1686
  "button",
1386
1687
  {
1387
1688
  className: "p-2 rounded-md hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",
1388
1689
  "aria-label": "Open menu",
1389
- children: /* @__PURE__ */ (0, import_jsx_runtime42.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_runtime42.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" }) })
1690
+ children: /* @__PURE__ */ (0, import_jsx_runtime78.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_runtime78.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" }) })
1390
1691
  }
1391
1692
  );
1392
1693
  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";
1393
1694
  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";
1394
- const menu = isOpen && mounted && menuPosition ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
1695
+ const menu = isOpen && mounted && menuPosition ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
1395
1696
  "div",
1396
1697
  {
1397
1698
  ref: menuRef,
@@ -1403,7 +1704,7 @@ var ActionMenu = ({
1403
1704
  },
1404
1705
  children: items.map((item, index) => {
1405
1706
  if (item.type === "divider") {
1406
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
1707
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
1407
1708
  "div",
1408
1709
  {
1409
1710
  className: "my-1 border-t border-gray-200 dark:border-gray-700"
@@ -1411,15 +1712,15 @@ var ActionMenu = ({
1411
1712
  index
1412
1713
  );
1413
1714
  }
1414
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
1715
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
1415
1716
  "button",
1416
1717
  {
1417
1718
  onClick: () => handleItemClick(item),
1418
1719
  disabled: item.disabled,
1419
1720
  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" : ""}`,
1420
1721
  children: [
1421
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "flex-shrink-0", children: item.icon }),
1422
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "flex-1", children: item.label })
1722
+ item.icon && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "flex-shrink-0", children: item.icon }),
1723
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "flex-1", children: item.label })
1423
1724
  ]
1424
1725
  },
1425
1726
  index
@@ -1427,14 +1728,14 @@ var ActionMenu = ({
1427
1728
  })
1428
1729
  }
1429
1730
  ) : null;
1430
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [
1431
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "relative inline-block", ref: triggerRef, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { onClick: () => setIsOpen(!isOpen), children: trigger || defaultTrigger }) }),
1731
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(import_jsx_runtime78.Fragment, { children: [
1732
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "relative inline-block", ref: triggerRef, children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { onClick: () => setIsOpen(!isOpen), children: trigger || defaultTrigger }) }),
1432
1733
  mounted && (0, import_react_dom.createPortal)(menu, document.body)
1433
1734
  ] });
1434
1735
  };
1435
1736
 
1436
1737
  // src/components/Card.tsx
1437
- var import_jsx_runtime43 = require("react/jsx-runtime");
1738
+ var import_jsx_runtime79 = require("react/jsx-runtime");
1438
1739
  var paddingClasses = {
1439
1740
  none: "",
1440
1741
  sm: "p-4",
@@ -1451,7 +1752,7 @@ var Card = ({
1451
1752
  const { theme } = useTheme();
1452
1753
  const paddingClass = paddingClasses[padding];
1453
1754
  const hoverClass = hover ? "hover:shadow-xl hover:scale-[1.02] hover:border-blue-400 dark:hover:border-blue-500 cursor-pointer transition-all duration-200 ease-in-out" : "";
1454
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
1755
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
1455
1756
  "div",
1456
1757
  {
1457
1758
  className: `bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 ${paddingClass} ${hoverClass} ${className}`,
@@ -1462,7 +1763,7 @@ var Card = ({
1462
1763
  };
1463
1764
 
1464
1765
  // src/components/Alert.tsx
1465
- var import_jsx_runtime44 = require("react/jsx-runtime");
1766
+ var import_jsx_runtime80 = require("react/jsx-runtime");
1466
1767
  var variantStyles = {
1467
1768
  info: "bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-800 text-blue-900 dark:text-blue-100",
1468
1769
  success: "bg-green-50 dark:bg-green-900/20 border-green-200 dark:border-green-800 text-green-900 dark:text-green-100",
@@ -1485,24 +1786,24 @@ var Alert = ({
1485
1786
  const { theme } = useTheme();
1486
1787
  const variantClass = variantStyles[variant];
1487
1788
  const iconClass = iconStyles[variant];
1488
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: `rounded-lg border p-4 ${variantClass} ${className}`, role: "alert", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex items-start gap-3", children: [
1489
- /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: `flex-shrink-0 ${iconClass}`, children: [
1490
- variant === "info" && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime44.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" }) }),
1491
- variant === "success" && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime44.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" }) }),
1492
- variant === "warning" && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime44.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" }) }),
1493
- variant === "error" && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime44.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" }) })
1789
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: `rounded-lg border p-4 ${variantClass} ${className}`, role: "alert", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex items-start gap-3", children: [
1790
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: `flex-shrink-0 ${iconClass}`, children: [
1791
+ variant === "info" && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime80.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" }) }),
1792
+ variant === "success" && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime80.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" }) }),
1793
+ variant === "warning" && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime80.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" }) }),
1794
+ variant === "error" && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime80.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" }) })
1494
1795
  ] }),
1495
- /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex-1", children: [
1496
- title && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("h3", { className: "font-semibold mb-1", children: title }),
1497
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "text-sm", children })
1796
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "flex-1", children: [
1797
+ title && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("h3", { className: "font-semibold mb-1", children: title }),
1798
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "text-sm", children })
1498
1799
  ] }),
1499
- onClose && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
1800
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
1500
1801
  "button",
1501
1802
  {
1502
1803
  onClick: onClose,
1503
1804
  className: `flex-shrink-0 ${iconClass} hover:opacity-70 transition-opacity`,
1504
1805
  "aria-label": "Close alert",
1505
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
1806
+ children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
1506
1807
  }
1507
1808
  )
1508
1809
  ] }) });
@@ -1510,14 +1811,14 @@ var Alert = ({
1510
1811
 
1511
1812
  // src/components/Checkbox.tsx
1512
1813
  var import_react10 = require("react");
1513
- var import_jsx_runtime45 = require("react/jsx-runtime");
1814
+ var import_jsx_runtime81 = require("react/jsx-runtime");
1514
1815
  var Checkbox = (0, import_react10.forwardRef)(
1515
1816
  ({ label, error, className = "", disabled, checked, ...props }, ref) => {
1516
1817
  const { theme } = useTheme();
1517
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className, children: [
1518
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("label", { className: "flex items-center gap-2 cursor-pointer group", children: [
1519
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "relative inline-flex items-center", children: [
1520
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
1818
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className, children: [
1819
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("label", { className: "flex items-center gap-2 cursor-pointer group", children: [
1820
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "relative inline-flex items-center", children: [
1821
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
1521
1822
  "input",
1522
1823
  {
1523
1824
  ref,
@@ -1528,19 +1829,19 @@ var Checkbox = (0, import_react10.forwardRef)(
1528
1829
  ...props
1529
1830
  }
1530
1831
  ),
1531
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: `w-4 h-4 border-2 rounded transition-all duration-200 flex items-center justify-center
1832
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: `w-4 h-4 border-2 rounded transition-all duration-200 flex items-center justify-center
1532
1833
  ${error ? "border-red-500 dark:border-red-500" : "border-gray-300 dark:border-gray-600"}
1533
1834
  ${disabled ? "opacity-50 cursor-not-allowed bg-gray-100 dark:bg-gray-800" : "peer-hover:border-gray-400 dark:peer-hover:border-gray-500"}
1534
1835
  peer-checked:bg-blue-600 peer-checked:border-blue-600
1535
1836
  peer-focus:ring-2 peer-focus:ring-blue-500 peer-focus:ring-offset-2
1536
- `, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
1837
+ `, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
1537
1838
  "svg",
1538
1839
  {
1539
1840
  className: `w-3 h-3 text-white transition-opacity duration-200 ${checked ? "opacity-100" : "opacity-0"}`,
1540
1841
  viewBox: "0 0 12 12",
1541
1842
  fill: "none",
1542
1843
  xmlns: "http://www.w3.org/2000/svg",
1543
- children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
1844
+ children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
1544
1845
  "path",
1545
1846
  {
1546
1847
  d: "M10 3L4.5 8.5L2 6",
@@ -1553,9 +1854,9 @@ var Checkbox = (0, import_react10.forwardRef)(
1553
1854
  }
1554
1855
  ) })
1555
1856
  ] }),
1556
- label && /* @__PURE__ */ (0, import_jsx_runtime45.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 })
1857
+ label && /* @__PURE__ */ (0, import_jsx_runtime81.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 })
1557
1858
  ] }),
1558
- error && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error })
1859
+ error && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error })
1559
1860
  ] });
1560
1861
  }
1561
1862
  );
@@ -1563,7 +1864,7 @@ Checkbox.displayName = "Checkbox";
1563
1864
 
1564
1865
  // src/components/Toggle.tsx
1565
1866
  var import_react11 = require("react");
1566
- var import_jsx_runtime46 = require("react/jsx-runtime");
1867
+ var import_jsx_runtime82 = require("react/jsx-runtime");
1567
1868
  var Toggle = (0, import_react11.forwardRef)(
1568
1869
  ({ label, size = "md", className = "", disabled, checked, ...props }, ref) => {
1569
1870
  const { theme } = useTheme();
@@ -1582,9 +1883,9 @@ var Toggle = (0, import_react11.forwardRef)(
1582
1883
  }
1583
1884
  };
1584
1885
  const currentSize = toggleClasses[size];
1585
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("label", { className: `inline-flex items-center gap-3 cursor-pointer ${disabled ? "opacity-50 cursor-not-allowed" : ""} ${className}`, children: [
1586
- /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "relative", children: [
1587
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
1886
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("label", { className: `inline-flex items-center gap-3 cursor-pointer ${disabled ? "opacity-50 cursor-not-allowed" : ""} ${className}`, children: [
1887
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "relative", children: [
1888
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
1588
1889
  "input",
1589
1890
  {
1590
1891
  ref,
@@ -1595,27 +1896,27 @@ var Toggle = (0, import_react11.forwardRef)(
1595
1896
  ...props
1596
1897
  }
1597
1898
  ),
1598
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
1899
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
1599
1900
  "div",
1600
1901
  {
1601
1902
  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`
1602
1903
  }
1603
1904
  ),
1604
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
1905
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
1605
1906
  "div",
1606
1907
  {
1607
1908
  className: `${currentSize.thumb} bg-white rounded-full shadow-md absolute top-0.5 left-0.5 transition-transform`
1608
1909
  }
1609
1910
  )
1610
1911
  ] }),
1611
- label && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label })
1912
+ label && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label })
1612
1913
  ] });
1613
1914
  }
1614
1915
  );
1615
1916
  Toggle.displayName = "Toggle";
1616
1917
 
1617
1918
  // src/components/Badge.tsx
1618
- var import_jsx_runtime47 = require("react/jsx-runtime");
1919
+ var import_jsx_runtime83 = require("react/jsx-runtime");
1619
1920
  var variantStyles2 = {
1620
1921
  default: "bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-200",
1621
1922
  primary: "bg-blue-100 dark:bg-blue-900/30 text-blue-800 dark:text-blue-200",
@@ -1638,11 +1939,11 @@ var Badge = ({
1638
1939
  const { theme } = useTheme();
1639
1940
  const variantClass = variantStyles2[variant];
1640
1941
  const sizeClass = sizeStyles[size];
1641
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: `inline-flex items-center font-medium rounded-full ${variantClass} ${sizeClass} ${className}`, children });
1942
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: `inline-flex items-center font-medium rounded-full ${variantClass} ${sizeClass} ${className}`, children });
1642
1943
  };
1643
1944
 
1644
1945
  // src/components/Spinner.tsx
1645
- var import_jsx_runtime48 = require("react/jsx-runtime");
1946
+ var import_jsx_runtime84 = require("react/jsx-runtime");
1646
1947
  var sizeClasses6 = {
1647
1948
  sm: "w-4 h-4 border-2",
1648
1949
  md: "w-8 h-8 border-2",
@@ -1662,20 +1963,20 @@ var Spinner = ({
1662
1963
  const { theme } = useTheme();
1663
1964
  const sizeClass = sizeClasses6[size];
1664
1965
  const colorClass = colorClasses[color];
1665
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
1966
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
1666
1967
  "div",
1667
1968
  {
1668
1969
  className: `inline-block rounded-full animate-spin ${sizeClass} ${colorClass} ${className}`,
1669
1970
  role: "status",
1670
1971
  "aria-label": "Loading",
1671
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "sr-only", children: "Loading..." })
1972
+ children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "sr-only", children: "Loading..." })
1672
1973
  }
1673
1974
  );
1674
1975
  };
1675
1976
 
1676
1977
  // src/components/Tabs.tsx
1677
1978
  var import_react12 = require("react");
1678
- var import_jsx_runtime49 = require("react/jsx-runtime");
1979
+ var import_jsx_runtime85 = require("react/jsx-runtime");
1679
1980
  var Tabs = ({
1680
1981
  tabs,
1681
1982
  defaultIndex = 0,
@@ -1689,8 +1990,8 @@ var Tabs = ({
1689
1990
  setActiveIndex(index);
1690
1991
  onChange?.(index);
1691
1992
  };
1692
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className, children: [
1693
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("nav", { className: "flex gap-8 px-6", "aria-label": "Tabs", children: tabs.map((tab, index) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
1993
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className, children: [
1994
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("div", { className: "border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("nav", { className: "flex gap-8 px-6", "aria-label": "Tabs", children: tabs.map((tab, index) => /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
1694
1995
  "button",
1695
1996
  {
1696
1997
  onClick: () => handleTabClick(index),
@@ -1701,12 +2002,12 @@ var Tabs = ({
1701
2002
  },
1702
2003
  index
1703
2004
  )) }) }),
1704
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { children: tabs[activeIndex]?.content })
2005
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("div", { children: tabs[activeIndex]?.content })
1705
2006
  ] });
1706
2007
  };
1707
2008
 
1708
2009
  // src/components/Table.tsx
1709
- var import_jsx_runtime50 = require("react/jsx-runtime");
2010
+ var import_jsx_runtime86 = require("react/jsx-runtime");
1710
2011
  function Table({
1711
2012
  columns,
1712
2013
  data,
@@ -1716,11 +2017,11 @@ function Table({
1716
2017
  className = ""
1717
2018
  }) {
1718
2019
  const { theme } = useTheme();
1719
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: `overflow-x-auto ${className}`, children: [
1720
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("table", { className: "w-full text-left", children: [
1721
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("thead", { className: "bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("tr", { children: columns.map((column, colIndex) => {
2020
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("div", { className: `overflow-x-auto ${className}`, children: [
2021
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("table", { className: "w-full text-left", children: [
2022
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("thead", { className: "bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("tr", { children: columns.map((column, colIndex) => {
1722
2023
  const isLast = colIndex === columns.length - 1;
1723
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
2024
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
1724
2025
  "th",
1725
2026
  {
1726
2027
  className: isLast ? "px-6 py-3 text-xs font-medium text-gray-700 dark:text-gray-300 uppercase tracking-wider relative" : "px-6 py-3 text-xs font-medium text-gray-700 dark:text-gray-300 uppercase tracking-wider",
@@ -1730,18 +2031,18 @@ function Table({
1730
2031
  column.key
1731
2032
  );
1732
2033
  }) }) }),
1733
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("tbody", { className: "bg-white dark:bg-gray-900 divide-y divide-gray-200 dark:divide-gray-700", children: data.map((row, rowIndex) => {
2034
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("tbody", { className: "bg-white dark:bg-gray-900 divide-y divide-gray-200 dark:divide-gray-700", children: data.map((row, rowIndex) => {
1734
2035
  const rowClasses = [
1735
2036
  striped && rowIndex % 2 === 1 ? "bg-gray-50 dark:bg-gray-800/50" : "",
1736
2037
  hoverable ? "hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors" : ""
1737
2038
  ].filter(Boolean).join(" ");
1738
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
2039
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
1739
2040
  "tr",
1740
2041
  {
1741
2042
  className: rowClasses,
1742
2043
  children: columns.map((column, colIndex) => {
1743
2044
  const isLast = colIndex === columns.length - 1;
1744
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
2045
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
1745
2046
  "td",
1746
2047
  {
1747
2048
  className: isLast ? "px-6 py-4 text-sm text-gray-900 dark:text-gray-100 overflow-visible" : "px-6 py-4 text-sm text-gray-900 dark:text-gray-100",
@@ -1755,12 +2056,12 @@ function Table({
1755
2056
  );
1756
2057
  }) })
1757
2058
  ] }),
1758
- data.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "text-center py-8 text-gray-500 dark:text-gray-400", children: "No data available" })
2059
+ data.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("div", { className: "text-center py-8 text-gray-500 dark:text-gray-400", children: "No data available" })
1759
2060
  ] });
1760
2061
  }
1761
2062
 
1762
2063
  // src/components/Pagination.tsx
1763
- var import_jsx_runtime51 = require("react/jsx-runtime");
2064
+ var import_jsx_runtime87 = require("react/jsx-runtime");
1764
2065
  var Pagination = ({
1765
2066
  currentPage,
1766
2067
  totalPages,
@@ -1801,8 +2102,8 @@ var Pagination = ({
1801
2102
  return range(1, totalPages);
1802
2103
  };
1803
2104
  const pages = paginationRange();
1804
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("nav", { className: `flex items-center gap-1 ${className}`, "aria-label": "Pagination", children: [
1805
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2105
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("nav", { className: `flex items-center gap-1 ${className}`, "aria-label": "Pagination", children: [
2106
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
1806
2107
  "button",
1807
2108
  {
1808
2109
  onClick: () => onPageChange(currentPage - 1),
@@ -1814,7 +2115,7 @@ var Pagination = ({
1814
2115
  ),
1815
2116
  pages.map((page, index) => {
1816
2117
  if (page === "...") {
1817
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2118
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
1818
2119
  "span",
1819
2120
  {
1820
2121
  className: "px-3 py-2 text-gray-700 dark:text-gray-300",
@@ -1823,7 +2124,7 @@ var Pagination = ({
1823
2124
  `dots-${index}`
1824
2125
  );
1825
2126
  }
1826
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2127
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
1827
2128
  "button",
1828
2129
  {
1829
2130
  onClick: () => onPageChange(page),
@@ -1835,7 +2136,7 @@ var Pagination = ({
1835
2136
  page
1836
2137
  );
1837
2138
  }),
1838
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2139
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
1839
2140
  "button",
1840
2141
  {
1841
2142
  onClick: () => onPageChange(currentPage + 1),
@@ -1851,7 +2152,7 @@ var Pagination = ({
1851
2152
  // src/components/DatePicker.tsx
1852
2153
  var import_react13 = require("react");
1853
2154
  var import_react_dom2 = require("react-dom");
1854
- var import_jsx_runtime52 = require("react/jsx-runtime");
2155
+ var import_jsx_runtime88 = require("react/jsx-runtime");
1855
2156
  var DAYS = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
1856
2157
  var MONTHS = [
1857
2158
  "January",
@@ -1972,7 +2273,7 @@ var DatePicker = ({
1972
2273
  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 cursor-pointer";
1973
2274
  const errorStyles = error ? "border-red-500 focus:ring-red-500 dark:border-red-500" : "";
1974
2275
  const disabledStyles = disabled ? "opacity-50 cursor-not-allowed bg-gray-50 dark:bg-gray-900" : "";
1975
- const calendar = isOpen && mounted && calendarPosition ? /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
2276
+ const calendar = isOpen && mounted && calendarPosition ? /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)(
1976
2277
  "div",
1977
2278
  {
1978
2279
  ref: calendarRef,
@@ -1983,23 +2284,23 @@ var DatePicker = ({
1983
2284
  minWidth: "320px"
1984
2285
  },
1985
2286
  children: [
1986
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-center justify-between mb-4", children: [
1987
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
2287
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("div", { className: "flex items-center justify-between mb-4", children: [
2288
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
1988
2289
  "button",
1989
2290
  {
1990
2291
  onClick: handlePrevMonth,
1991
2292
  className: "p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",
1992
2293
  "aria-label": "Previous month",
1993
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("svg", { className: "w-5 h-5 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
2294
+ children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("svg", { className: "w-5 h-5 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
1994
2295
  }
1995
2296
  ),
1996
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-center gap-2", children: [
1997
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("h2", { className: "text-base font-semibold text-gray-900 dark:text-gray-100", children: [
2297
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("div", { className: "flex items-center gap-2", children: [
2298
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("h2", { className: "text-base font-semibold text-gray-900 dark:text-gray-100", children: [
1998
2299
  MONTHS[month],
1999
2300
  " ",
2000
2301
  year
2001
2302
  ] }),
2002
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
2303
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
2003
2304
  "button",
2004
2305
  {
2005
2306
  onClick: handleToday,
@@ -2008,23 +2309,23 @@ var DatePicker = ({
2008
2309
  }
2009
2310
  )
2010
2311
  ] }),
2011
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
2312
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
2012
2313
  "button",
2013
2314
  {
2014
2315
  onClick: handleNextMonth,
2015
2316
  className: "p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",
2016
2317
  "aria-label": "Next month",
2017
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("svg", { className: "w-5 h-5 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
2318
+ children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("svg", { className: "w-5 h-5 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
2018
2319
  }
2019
2320
  )
2020
2321
  ] }),
2021
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "grid grid-cols-7 gap-1 mb-2", children: DAYS.map((day) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "text-center text-xs font-semibold text-gray-600 dark:text-gray-400 py-1", children: day }, day)) }),
2022
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "grid grid-cols-7 gap-1", children: calendarDays.map((date, index) => {
2322
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { className: "grid grid-cols-7 gap-1 mb-2", children: DAYS.map((day) => /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { className: "text-center text-xs font-semibold text-gray-600 dark:text-gray-400 py-1", children: day }, day)) }),
2323
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { className: "grid grid-cols-7 gap-1", children: calendarDays.map((date, index) => {
2023
2324
  const isCurrentMonthDay = isCurrentMonth(date);
2024
2325
  const isTodayDay = isToday(date);
2025
2326
  const isSelectedDay = isSelected(date);
2026
2327
  const isDisabledDay = isDisabled(date);
2027
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
2328
+ return /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
2028
2329
  "button",
2029
2330
  {
2030
2331
  onClick: () => handleDateClick(date),
@@ -2045,22 +2346,22 @@ var DatePicker = ({
2045
2346
  ]
2046
2347
  }
2047
2348
  ) : null;
2048
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className, children: [
2049
- 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 }),
2050
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
2349
+ return /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("div", { className, children: [
2350
+ label && /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
2351
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)(
2051
2352
  "div",
2052
2353
  {
2053
2354
  ref: inputRef,
2054
2355
  onClick: () => !disabled && setIsOpen(!isOpen),
2055
2356
  className: `${baseStyles} ${errorStyles} ${disabledStyles} flex items-center justify-between`.trim(),
2056
2357
  children: [
2057
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: !value ? "text-gray-500 dark:text-gray-400" : "", children: value ? formatDate(value) : placeholder }),
2058
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("svg", { className: "w-5 h-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime52.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" }) })
2358
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("span", { className: !value ? "text-gray-500 dark:text-gray-400" : "", children: value ? formatDate(value) : placeholder }),
2359
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("svg", { className: "w-5 h-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime88.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" }) })
2059
2360
  ]
2060
2361
  }
2061
2362
  ),
2062
- error && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
2063
- helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText }),
2363
+ error && /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
2364
+ helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText }),
2064
2365
  mounted && (0, import_react_dom2.createPortal)(calendar, document.body)
2065
2366
  ] });
2066
2367
  };
@@ -2068,16 +2369,16 @@ DatePicker.displayName = "DatePicker";
2068
2369
 
2069
2370
  // src/components/TimePicker.tsx
2070
2371
  var import_react14 = require("react");
2071
- var import_jsx_runtime53 = require("react/jsx-runtime");
2372
+ var import_jsx_runtime89 = require("react/jsx-runtime");
2072
2373
  var TimePicker = (0, import_react14.forwardRef)(
2073
2374
  ({ label, error, helperText, className = "", disabled, ...props }, ref) => {
2074
2375
  const { theme } = useTheme();
2075
2376
  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";
2076
2377
  const errorStyles = error ? "border-red-500 focus:ring-red-500 dark:border-red-500" : "";
2077
2378
  const disabledStyles = disabled ? "opacity-50 cursor-not-allowed bg-gray-50 dark:bg-gray-900" : "";
2078
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className, children: [
2079
- 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 }),
2080
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
2379
+ return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className, children: [
2380
+ label && /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
2381
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
2081
2382
  "input",
2082
2383
  {
2083
2384
  ref,
@@ -2087,8 +2388,8 @@ var TimePicker = (0, import_react14.forwardRef)(
2087
2388
  ...props
2088
2389
  }
2089
2390
  ),
2090
- error && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
2091
- helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
2391
+ error && /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
2392
+ helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
2092
2393
  ] });
2093
2394
  }
2094
2395
  );
@@ -2097,7 +2398,7 @@ TimePicker.displayName = "TimePicker";
2097
2398
  // src/components/DateTimePicker.tsx
2098
2399
  var import_react15 = require("react");
2099
2400
  var import_react_dom3 = require("react-dom");
2100
- var import_jsx_runtime54 = require("react/jsx-runtime");
2401
+ var import_jsx_runtime90 = require("react/jsx-runtime");
2101
2402
  var DAYS2 = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
2102
2403
  var MONTHS2 = [
2103
2404
  "January",
@@ -2254,7 +2555,7 @@ var DateTimePicker = ({
2254
2555
  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 cursor-pointer";
2255
2556
  const errorStyles = error ? "border-red-500 focus:ring-red-500 dark:border-red-500" : "";
2256
2557
  const disabledStyles = disabled ? "opacity-50 cursor-not-allowed bg-gray-50 dark:bg-gray-900" : "";
2257
- const picker = isOpen && mounted && pickerPosition ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
2558
+ const picker = isOpen && mounted && pickerPosition ? /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(
2258
2559
  "div",
2259
2560
  {
2260
2561
  ref: pickerRef,
@@ -2265,23 +2566,23 @@ var DateTimePicker = ({
2265
2566
  minWidth: "360px"
2266
2567
  },
2267
2568
  children: [
2268
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center justify-between mb-4", children: [
2269
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2569
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex items-center justify-between mb-4", children: [
2570
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
2270
2571
  "button",
2271
2572
  {
2272
2573
  onClick: handlePrevMonth,
2273
2574
  className: "p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",
2274
2575
  "aria-label": "Previous month",
2275
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("svg", { className: "w-5 h-5 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
2576
+ children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("svg", { className: "w-5 h-5 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
2276
2577
  }
2277
2578
  ),
2278
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center gap-2", children: [
2279
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("h2", { className: "text-base font-semibold text-gray-900 dark:text-gray-100", children: [
2579
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex items-center gap-2", children: [
2580
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("h2", { className: "text-base font-semibold text-gray-900 dark:text-gray-100", children: [
2280
2581
  MONTHS2[month],
2281
2582
  " ",
2282
2583
  year
2283
2584
  ] }),
2284
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2585
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
2285
2586
  "button",
2286
2587
  {
2287
2588
  onClick: handleToday,
@@ -2290,23 +2591,23 @@ var DateTimePicker = ({
2290
2591
  }
2291
2592
  )
2292
2593
  ] }),
2293
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2594
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
2294
2595
  "button",
2295
2596
  {
2296
2597
  onClick: handleNextMonth,
2297
2598
  className: "p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",
2298
2599
  "aria-label": "Next month",
2299
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("svg", { className: "w-5 h-5 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
2600
+ children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("svg", { className: "w-5 h-5 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
2300
2601
  }
2301
2602
  )
2302
2603
  ] }),
2303
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "grid grid-cols-7 gap-1 mb-2", children: DAYS2.map((day) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "text-center text-xs font-semibold text-gray-600 dark:text-gray-400 py-1", children: day }, day)) }),
2304
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "grid grid-cols-7 gap-1 mb-4", children: calendarDays.map((date, index) => {
2604
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("div", { className: "grid grid-cols-7 gap-1 mb-2", children: DAYS2.map((day) => /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("div", { className: "text-center text-xs font-semibold text-gray-600 dark:text-gray-400 py-1", children: day }, day)) }),
2605
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("div", { className: "grid grid-cols-7 gap-1 mb-4", children: calendarDays.map((date, index) => {
2305
2606
  const isCurrentMonthDay = isCurrentMonth(date);
2306
2607
  const isTodayDay = isToday(date);
2307
2608
  const isSelectedDay = isSelected(date);
2308
2609
  const isDisabledDay = isDisabled(date);
2309
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2610
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
2310
2611
  "button",
2311
2612
  {
2312
2613
  onClick: () => handleDateClick(date),
@@ -2324,21 +2625,21 @@ var DateTimePicker = ({
2324
2625
  index
2325
2626
  );
2326
2627
  }) }),
2327
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "border-t border-gray-200 dark:border-gray-700 pt-4", children: [
2328
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center justify-center gap-4 mb-4", children: [
2329
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex flex-col items-center", children: [
2330
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("label", { className: "text-xs font-semibold text-gray-600 dark:text-gray-400 mb-2", children: "Hour" }),
2331
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex flex-col items-center gap-1", children: [
2332
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2628
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "border-t border-gray-200 dark:border-gray-700 pt-4", children: [
2629
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex items-center justify-center gap-4 mb-4", children: [
2630
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex flex-col items-center", children: [
2631
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("label", { className: "text-xs font-semibold text-gray-600 dark:text-gray-400 mb-2", children: "Hour" }),
2632
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex flex-col items-center gap-1", children: [
2633
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
2333
2634
  "button",
2334
2635
  {
2335
2636
  type: "button",
2336
2637
  onClick: () => handleTimeChange((selectedTime.hours + 1) % 24, selectedTime.minutes),
2337
2638
  className: "p-1 hover:bg-gray-100 dark:hover:bg-gray-700 rounded transition-colors",
2338
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("svg", { className: "w-4 h-4 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 15l7-7 7 7" }) })
2639
+ children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("svg", { className: "w-4 h-4 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 15l7-7 7 7" }) })
2339
2640
  }
2340
2641
  ),
2341
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2642
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
2342
2643
  "input",
2343
2644
  {
2344
2645
  type: "number",
@@ -2354,31 +2655,31 @@ var DateTimePicker = ({
2354
2655
  className: "w-16 px-2 py-2 text-center border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 text-lg font-semibold [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none"
2355
2656
  }
2356
2657
  ),
2357
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2658
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
2358
2659
  "button",
2359
2660
  {
2360
2661
  type: "button",
2361
2662
  onClick: () => handleTimeChange((selectedTime.hours - 1 + 24) % 24, selectedTime.minutes),
2362
2663
  className: "p-1 hover:bg-gray-100 dark:hover:bg-gray-700 rounded transition-colors",
2363
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("svg", { className: "w-4 h-4 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) })
2664
+ children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("svg", { className: "w-4 h-4 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) })
2364
2665
  }
2365
2666
  )
2366
2667
  ] })
2367
2668
  ] }),
2368
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "text-2xl font-bold text-gray-600 dark:text-gray-400 mt-8", children: ":" }),
2369
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex flex-col items-center", children: [
2370
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("label", { className: "text-xs font-semibold text-gray-600 dark:text-gray-400 mb-2", children: "Minute" }),
2371
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex flex-col items-center gap-1", children: [
2372
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2669
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("span", { className: "text-2xl font-bold text-gray-600 dark:text-gray-400 mt-8", children: ":" }),
2670
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex flex-col items-center", children: [
2671
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("label", { className: "text-xs font-semibold text-gray-600 dark:text-gray-400 mb-2", children: "Minute" }),
2672
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex flex-col items-center gap-1", children: [
2673
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
2373
2674
  "button",
2374
2675
  {
2375
2676
  type: "button",
2376
2677
  onClick: () => handleTimeChange(selectedTime.hours, (selectedTime.minutes + 1) % 60),
2377
2678
  className: "p-1 hover:bg-gray-100 dark:hover:bg-gray-700 rounded transition-colors",
2378
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("svg", { className: "w-4 h-4 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 15l7-7 7 7" }) })
2679
+ children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("svg", { className: "w-4 h-4 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 15l7-7 7 7" }) })
2379
2680
  }
2380
2681
  ),
2381
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2682
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
2382
2683
  "input",
2383
2684
  {
2384
2685
  type: "number",
@@ -2394,20 +2695,20 @@ var DateTimePicker = ({
2394
2695
  className: "w-16 px-2 py-2 text-center border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 text-lg font-semibold [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none"
2395
2696
  }
2396
2697
  ),
2397
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2698
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
2398
2699
  "button",
2399
2700
  {
2400
2701
  type: "button",
2401
2702
  onClick: () => handleTimeChange(selectedTime.hours, (selectedTime.minutes - 1 + 60) % 60),
2402
2703
  className: "p-1 hover:bg-gray-100 dark:hover:bg-gray-700 rounded transition-colors",
2403
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("svg", { className: "w-4 h-4 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) })
2704
+ children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("svg", { className: "w-4 h-4 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) })
2404
2705
  }
2405
2706
  )
2406
2707
  ] })
2407
2708
  ] })
2408
2709
  ] }),
2409
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "text-center text-sm text-gray-600 dark:text-gray-400 mb-4", children: formatTime(selectedTime.hours, selectedTime.minutes) }),
2410
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2710
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("div", { className: "text-center text-sm text-gray-600 dark:text-gray-400 mb-4", children: formatTime(selectedTime.hours, selectedTime.minutes) }),
2711
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
2411
2712
  "button",
2412
2713
  {
2413
2714
  onClick: handleDone,
@@ -2419,22 +2720,22 @@ var DateTimePicker = ({
2419
2720
  ]
2420
2721
  }
2421
2722
  ) : null;
2422
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className, children: [
2423
- label && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
2424
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
2723
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className, children: [
2724
+ label && /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
2725
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(
2425
2726
  "div",
2426
2727
  {
2427
2728
  ref: inputRef,
2428
2729
  onClick: () => !disabled && setIsOpen(!isOpen),
2429
2730
  className: `${baseStyles} ${errorStyles} ${disabledStyles} flex items-center justify-between`.trim(),
2430
2731
  children: [
2431
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: !value ? "text-gray-500 dark:text-gray-400" : "", children: value ? formatDateTime(value) : placeholder }),
2432
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("svg", { className: "w-5 h-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime54.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" }) })
2732
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("span", { className: !value ? "text-gray-500 dark:text-gray-400" : "", children: value ? formatDateTime(value) : placeholder }),
2733
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("svg", { className: "w-5 h-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime90.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" }) })
2433
2734
  ]
2434
2735
  }
2435
2736
  ),
2436
- error && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
2437
- helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText }),
2737
+ error && /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
2738
+ helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText }),
2438
2739
  mounted && (0, import_react_dom3.createPortal)(picker, document.body)
2439
2740
  ] });
2440
2741
  };
@@ -2442,7 +2743,7 @@ DateTimePicker.displayName = "DateTimePicker";
2442
2743
 
2443
2744
  // src/components/Calendar.tsx
2444
2745
  var import_react16 = require("react");
2445
- var import_jsx_runtime55 = require("react/jsx-runtime");
2746
+ var import_jsx_runtime91 = require("react/jsx-runtime");
2446
2747
  var DAYS3 = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
2447
2748
  var MONTHS3 = [
2448
2749
  "January",
@@ -2518,24 +2819,24 @@ var Calendar = ({
2518
2819
  setCurrentDate(today);
2519
2820
  onChange?.(today);
2520
2821
  };
2521
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: `bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-4 ${className}`, children: [
2522
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center justify-between mb-4", children: [
2523
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
2822
+ return /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: `bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-4 ${className}`, children: [
2823
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: "flex items-center justify-between mb-4", children: [
2824
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
2524
2825
  "button",
2525
2826
  {
2526
2827
  onClick: handlePrevMonth,
2527
2828
  className: "p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",
2528
2829
  "aria-label": "Previous month",
2529
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("svg", { className: "w-5 h-5 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
2830
+ children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("svg", { className: "w-5 h-5 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
2530
2831
  }
2531
2832
  ),
2532
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center gap-2", children: [
2533
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("h2", { className: "text-lg font-semibold text-gray-900 dark:text-gray-100", children: [
2833
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: "flex items-center gap-2", children: [
2834
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("h2", { className: "text-lg font-semibold text-gray-900 dark:text-gray-100", children: [
2534
2835
  MONTHS3[month],
2535
2836
  " ",
2536
2837
  year
2537
2838
  ] }),
2538
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
2839
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
2539
2840
  "button",
2540
2841
  {
2541
2842
  onClick: handleToday,
@@ -2544,17 +2845,17 @@ var Calendar = ({
2544
2845
  }
2545
2846
  )
2546
2847
  ] }),
2547
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
2848
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
2548
2849
  "button",
2549
2850
  {
2550
2851
  onClick: handleNextMonth,
2551
2852
  className: "p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",
2552
2853
  "aria-label": "Next month",
2553
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("svg", { className: "w-5 h-5 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
2854
+ children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("svg", { className: "w-5 h-5 text-gray-600 dark:text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
2554
2855
  }
2555
2856
  )
2556
2857
  ] }),
2557
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "grid grid-cols-7 gap-1 mb-2", children: DAYS3.map((day) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
2858
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("div", { className: "grid grid-cols-7 gap-1 mb-2", children: DAYS3.map((day) => /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
2558
2859
  "div",
2559
2860
  {
2560
2861
  className: "text-center text-xs font-semibold text-gray-600 dark:text-gray-400 py-2",
@@ -2562,13 +2863,13 @@ var Calendar = ({
2562
2863
  },
2563
2864
  day
2564
2865
  )) }),
2565
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "grid grid-cols-7 gap-1", children: calendarDays.map((date, index) => {
2566
- if (!date) return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", {}, index);
2866
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("div", { className: "grid grid-cols-7 gap-1", children: calendarDays.map((date, index) => {
2867
+ if (!date) return /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("div", {}, index);
2567
2868
  const isCurrentMonthDay = isCurrentMonth(date);
2568
2869
  const isTodayDay = isToday(date);
2569
2870
  const isSelectedDay = isSelected(date);
2570
2871
  const isDisabledDay = isDisabled(date);
2571
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
2872
+ return /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
2572
2873
  "button",
2573
2874
  {
2574
2875
  onClick: () => handleDateClick(date),
@@ -2591,7 +2892,7 @@ var Calendar = ({
2591
2892
 
2592
2893
  // src/components/Radio.tsx
2593
2894
  var import_react17 = __toESM(require("react"));
2594
- var import_jsx_runtime56 = require("react/jsx-runtime");
2895
+ var import_jsx_runtime92 = require("react/jsx-runtime");
2595
2896
  var Radio = ({
2596
2897
  name,
2597
2898
  options,
@@ -2610,18 +2911,18 @@ var Radio = ({
2610
2911
  onChange?.(optionValue);
2611
2912
  };
2612
2913
  const containerClass = orientation === "horizontal" ? "flex flex-wrap gap-4" : "flex flex-col gap-2";
2613
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: `${containerClass} ${className}`, role: "radiogroup", children: options.map((option) => {
2914
+ return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("div", { className: `${containerClass} ${className}`, role: "radiogroup", children: options.map((option) => {
2614
2915
  const isDisabled = disabled || option.disabled;
2615
2916
  const isChecked = value === option.value;
2616
2917
  const id = `${name}-${option.value}`;
2617
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
2918
+ return /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(
2618
2919
  "label",
2619
2920
  {
2620
2921
  htmlFor: id,
2621
2922
  className: `flex items-center gap-2 cursor-pointer group ${isDisabled ? "opacity-50 cursor-not-allowed" : ""}`,
2622
2923
  children: [
2623
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "relative inline-flex items-center", children: [
2624
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
2924
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("div", { className: "relative inline-flex items-center", children: [
2925
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
2625
2926
  "input",
2626
2927
  {
2627
2928
  type: "radio",
@@ -2634,14 +2935,14 @@ var Radio = ({
2634
2935
  className: "sr-only peer"
2635
2936
  }
2636
2937
  ),
2637
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: `w-4 h-4 rounded-full border-2 transition-all duration-200 flex items-center justify-center
2938
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("div", { className: `w-4 h-4 rounded-full border-2 transition-all duration-200 flex items-center justify-center
2638
2939
  border-gray-300 dark:border-gray-600
2639
2940
  ${isDisabled ? "bg-gray-100 dark:bg-gray-800" : "peer-hover:border-gray-400 dark:peer-hover:border-gray-500"}
2640
2941
  ${isChecked ? "border-blue-600 bg-white dark:bg-gray-900" : ""}
2641
2942
  peer-focus:ring-2 peer-focus:ring-blue-500 peer-focus:ring-offset-2
2642
- `, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: `w-2 h-2 rounded-full bg-blue-600 transition-all duration-200 ${isChecked ? "scale-100" : "scale-0"}` }) })
2943
+ `, children: /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("div", { className: `w-2 h-2 rounded-full bg-blue-600 transition-all duration-200 ${isChecked ? "scale-100" : "scale-0"}` }) })
2643
2944
  ] }),
2644
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: `text-sm font-medium text-gray-900 dark:text-gray-300 ${!isDisabled && "group-hover:text-gray-700 dark:group-hover:text-gray-100"}`, children: option.label })
2945
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("span", { className: `text-sm font-medium text-gray-900 dark:text-gray-300 ${!isDisabled && "group-hover:text-gray-700 dark:group-hover:text-gray-100"}`, children: option.label })
2645
2946
  ]
2646
2947
  },
2647
2948
  option.value
@@ -2650,7 +2951,7 @@ var Radio = ({
2650
2951
  };
2651
2952
 
2652
2953
  // src/components/ProgressBar.tsx
2653
- var import_jsx_runtime57 = require("react/jsx-runtime");
2954
+ var import_jsx_runtime93 = require("react/jsx-runtime");
2654
2955
  var ProgressBar = ({
2655
2956
  value,
2656
2957
  max = 100,
@@ -2672,15 +2973,15 @@ var ProgressBar = ({
2672
2973
  warning: "bg-yellow-500 dark:bg-yellow-400",
2673
2974
  danger: "bg-red-600 dark:bg-red-500"
2674
2975
  };
2675
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: `w-full ${className}`, children: [
2676
- (showLabel || label) && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex justify-between items-center mb-1", children: [
2677
- label && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label }),
2678
- showLabel && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: [
2976
+ return /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)("div", { className: `w-full ${className}`, children: [
2977
+ (showLabel || label) && /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)("div", { className: "flex justify-between items-center mb-1", children: [
2978
+ label && /* @__PURE__ */ (0, import_jsx_runtime93.jsx)("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label }),
2979
+ showLabel && /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: [
2679
2980
  Math.round(percentage),
2680
2981
  "%"
2681
2982
  ] })
2682
2983
  ] }),
2683
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2984
+ /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
2684
2985
  "div",
2685
2986
  {
2686
2987
  className: `w-full bg-gray-200 dark:bg-gray-700 rounded-full overflow-hidden ${sizeClasses7[size]}`,
@@ -2688,7 +2989,7 @@ var ProgressBar = ({
2688
2989
  "aria-valuenow": value,
2689
2990
  "aria-valuemin": 0,
2690
2991
  "aria-valuemax": max,
2691
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2992
+ children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
2692
2993
  "div",
2693
2994
  {
2694
2995
  className: `${sizeClasses7[size]} ${variantClasses[variant]} rounded-full transition-all duration-300 ease-out`,
@@ -2702,7 +3003,7 @@ var ProgressBar = ({
2702
3003
 
2703
3004
  // src/components/Slider.tsx
2704
3005
  var import_react18 = __toESM(require("react"));
2705
- var import_jsx_runtime58 = require("react/jsx-runtime");
3006
+ var import_jsx_runtime94 = require("react/jsx-runtime");
2706
3007
  var Slider = ({
2707
3008
  value: controlledValue,
2708
3009
  defaultValue = 50,
@@ -2769,18 +3070,18 @@ var Slider = ({
2769
3070
  const minPercentage = (rangeValue[0] - min) / (max - min) * 100;
2770
3071
  const maxPercentage = (rangeValue[1] - min) / (max - min) * 100;
2771
3072
  if (range) {
2772
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: `w-full ${className}`, children: [
2773
- (label || showValue) && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex justify-between items-center mb-2", children: [
2774
- label && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label }),
2775
- showValue && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: [
3073
+ return /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: `w-full ${className}`, children: [
3074
+ (label || showValue) && /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "flex justify-between items-center mb-2", children: [
3075
+ label && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label }),
3076
+ showValue && /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: [
2776
3077
  rangeValue[0],
2777
3078
  " - ",
2778
3079
  rangeValue[1]
2779
3080
  ] })
2780
3081
  ] }),
2781
- /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "relative h-10 flex items-center", ref: trackRef, children: [
2782
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "absolute w-full h-2 bg-gray-200 dark:bg-gray-700 rounded-full" }),
2783
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
3082
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "relative h-10 flex items-center", ref: trackRef, children: [
3083
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: "absolute w-full h-2 bg-gray-200 dark:bg-gray-700 rounded-full" }),
3084
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
2784
3085
  "div",
2785
3086
  {
2786
3087
  className: "absolute h-2 bg-blue-600 dark:bg-blue-500 rounded-full pointer-events-none",
@@ -2790,7 +3091,7 @@ var Slider = ({
2790
3091
  }
2791
3092
  }
2792
3093
  ),
2793
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
3094
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
2794
3095
  "div",
2795
3096
  {
2796
3097
  className: `absolute w-4 h-4 -ml-2 rounded-sm bg-white dark:bg-gray-800 border-2 border-blue-600 shadow-md cursor-pointer z-10
@@ -2806,7 +3107,7 @@ var Slider = ({
2806
3107
  tabIndex: disabled ? -1 : 0
2807
3108
  }
2808
3109
  ),
2809
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
3110
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
2810
3111
  "div",
2811
3112
  {
2812
3113
  className: `absolute w-4 h-4 -ml-2 rounded-sm bg-white dark:bg-gray-800 border-2 border-blue-600 shadow-md cursor-pointer z-10
@@ -2825,21 +3126,21 @@ var Slider = ({
2825
3126
  ] })
2826
3127
  ] });
2827
3128
  }
2828
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: `w-full ${className}`, children: [
2829
- (label || showValue) && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex justify-between items-center mb-2", children: [
2830
- label && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label }),
2831
- showValue && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: value })
3129
+ return /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: `w-full ${className}`, children: [
3130
+ (label || showValue) && /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "flex justify-between items-center mb-2", children: [
3131
+ label && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label }),
3132
+ showValue && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: value })
2832
3133
  ] }),
2833
- /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "relative h-10 flex items-center", children: [
2834
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "absolute w-full h-2 bg-gray-200 dark:bg-gray-700 rounded-full" }),
2835
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
3134
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "relative h-10 flex items-center", children: [
3135
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: "absolute w-full h-2 bg-gray-200 dark:bg-gray-700 rounded-full" }),
3136
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
2836
3137
  "div",
2837
3138
  {
2838
3139
  className: "absolute h-2 bg-blue-600 dark:bg-blue-500 rounded-full pointer-events-none",
2839
3140
  style: { width: `${percentage}%` }
2840
3141
  }
2841
3142
  ),
2842
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
3143
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
2843
3144
  "div",
2844
3145
  {
2845
3146
  className: `absolute w-4 h-4 -ml-2 rounded-sm bg-white dark:bg-gray-800 border-2 border-blue-600 shadow-md pointer-events-none z-10
@@ -2848,7 +3149,7 @@ var Slider = ({
2848
3149
  style: { left: `${percentage}%` }
2849
3150
  }
2850
3151
  ),
2851
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
3152
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
2852
3153
  "input",
2853
3154
  {
2854
3155
  type: "range",
@@ -2871,7 +3172,7 @@ var Slider = ({
2871
3172
 
2872
3173
  // src/components/Avatar.tsx
2873
3174
  var import_react19 = __toESM(require("react"));
2874
- var import_jsx_runtime59 = require("react/jsx-runtime");
3175
+ var import_jsx_runtime95 = require("react/jsx-runtime");
2875
3176
  var Avatar = ({
2876
3177
  src,
2877
3178
  alt,
@@ -2899,11 +3200,11 @@ var Avatar = ({
2899
3200
  };
2900
3201
  const showImage = src && !imageError;
2901
3202
  const showInitials = !showImage && name;
2902
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
3203
+ return /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
2903
3204
  "div",
2904
3205
  {
2905
3206
  className: `${sizeClasses7[size]} ${shapeClass} flex items-center justify-center overflow-hidden ${showImage ? "bg-gray-200 dark:bg-gray-700" : `${fallbackColor} text-white`} ${className}`,
2906
- children: showImage ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
3207
+ children: showImage ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
2907
3208
  "img",
2908
3209
  {
2909
3210
  src,
@@ -2911,13 +3212,13 @@ var Avatar = ({
2911
3212
  className: "w-full h-full object-cover",
2912
3213
  onError: () => setImageError(true)
2913
3214
  }
2914
- ) : showInitials ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "font-semibold select-none", children: getInitials(name) }) : /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
3215
+ ) : showInitials ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("span", { className: "font-semibold select-none", children: getInitials(name) }) : /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
2915
3216
  "svg",
2916
3217
  {
2917
3218
  className: "w-full h-full text-gray-400 dark:text-gray-600",
2918
3219
  fill: "currentColor",
2919
3220
  viewBox: "0 0 24 24",
2920
- children: /* @__PURE__ */ (0, import_jsx_runtime59.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" })
3221
+ children: /* @__PURE__ */ (0, import_jsx_runtime95.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" })
2921
3222
  }
2922
3223
  )
2923
3224
  }
@@ -2925,7 +3226,7 @@ var Avatar = ({
2925
3226
  };
2926
3227
 
2927
3228
  // src/components/Textarea.tsx
2928
- var import_jsx_runtime60 = require("react/jsx-runtime");
3229
+ var import_jsx_runtime96 = require("react/jsx-runtime");
2929
3230
  var Textarea = ({
2930
3231
  label,
2931
3232
  error,
@@ -2952,9 +3253,9 @@ var Textarea = ({
2952
3253
  bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100
2953
3254
  placeholder:text-gray-500 dark:placeholder:text-gray-400
2954
3255
  disabled:opacity-50 disabled:cursor-not-allowed disabled:bg-gray-50 dark:disabled:bg-gray-900`;
2955
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: `w-full ${className}`, children: [
2956
- label && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
2957
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
3256
+ return /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: `w-full ${className}`, children: [
3257
+ label && /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
3258
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
2958
3259
  "textarea",
2959
3260
  {
2960
3261
  className: `${baseClasses} ${sizeClasses7[size]} ${resizeClasses[resize]}`,
@@ -2962,14 +3263,14 @@ var Textarea = ({
2962
3263
  ...props
2963
3264
  }
2964
3265
  ),
2965
- error && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
2966
- helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
3266
+ error && /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
3267
+ helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
2967
3268
  ] });
2968
3269
  };
2969
3270
 
2970
3271
  // src/components/RichTextEditor.tsx
2971
3272
  var import_react20 = require("react");
2972
- var import_jsx_runtime61 = require("react/jsx-runtime");
3273
+ var import_jsx_runtime97 = require("react/jsx-runtime");
2973
3274
  var RichTextEditor = ({
2974
3275
  value = "",
2975
3276
  onChange,
@@ -3163,11 +3464,11 @@ var RichTextEditor = ({
3163
3464
  const editorBaseClass = themeName === "minimalistic" ? "bg-transparent border-2 border-white text-white placeholder:text-gray-500" : "bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 text-gray-900 dark:text-gray-100";
3164
3465
  const focusClass = isFocused && !disabled ? themeName === "minimalistic" ? "border-white" : "border-blue-500 dark:border-blue-400 ring-2 ring-blue-500/20" : "";
3165
3466
  const errorClass = error ? "border-red-500 dark:border-red-400" : "";
3166
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: `w-full ${className}`, children: [
3167
- label && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: label }),
3168
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: `rounded-t-lg border-b ${editorBaseClass} p-2 flex flex-wrap gap-1`, children: [
3169
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex gap-1", children: [
3170
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3467
+ return /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: `w-full ${className}`, children: [
3468
+ label && /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: label }),
3469
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: `rounded-t-lg border-b ${editorBaseClass} p-2 flex flex-wrap gap-1`, children: [
3470
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex gap-1", children: [
3471
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3171
3472
  "button",
3172
3473
  {
3173
3474
  type: "button",
@@ -3175,10 +3476,10 @@ var RichTextEditor = ({
3175
3476
  className: getButtonClass(activeFormats.has("bold")),
3176
3477
  disabled,
3177
3478
  title: "Bold (Ctrl+B)",
3178
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("path", { d: "M12.78 4c1.09 0 2.04.38 2.84 1.14.8.76 1.2 1.74 1.2 2.94 0 .9-.25 1.68-.76 2.36-.51.68-1.2 1.14-2.04 1.38v.08c1.06.22 1.89.7 2.48 1.44.59.74.88 1.64.88 2.7 0 1.34-.47 2.43-1.41 3.27C14.96 19.77 13.74 20 12.24 20H4V4h8.78zm-.66 7.14c.62 0 1.12-.18 1.5-.54.38-.36.57-.84.57-1.44 0-.6-.19-1.08-.57-1.44-.38-.36-.88-.54-1.5-.54H7.5v3.96h4.62zm.24 6.86c.68 0 1.24-.19 1.68-.57.44-.38.66-.9.66-1.56 0-.66-.22-1.18-.66-1.56-.44-.38-1-.57-1.68-.57H7.5v4.26h4.86z" }) })
3479
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("path", { d: "M12.78 4c1.09 0 2.04.38 2.84 1.14.8.76 1.2 1.74 1.2 2.94 0 .9-.25 1.68-.76 2.36-.51.68-1.2 1.14-2.04 1.38v.08c1.06.22 1.89.7 2.48 1.44.59.74.88 1.64.88 2.7 0 1.34-.47 2.43-1.41 3.27C14.96 19.77 13.74 20 12.24 20H4V4h8.78zm-.66 7.14c.62 0 1.12-.18 1.5-.54.38-.36.57-.84.57-1.44 0-.6-.19-1.08-.57-1.44-.38-.36-.88-.54-1.5-.54H7.5v3.96h4.62zm.24 6.86c.68 0 1.24-.19 1.68-.57.44-.38.66-.9.66-1.56 0-.66-.22-1.18-.66-1.56-.44-.38-1-.57-1.68-.57H7.5v4.26h4.86z" }) })
3179
3480
  }
3180
3481
  ),
3181
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3482
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3182
3483
  "button",
3183
3484
  {
3184
3485
  type: "button",
@@ -3186,10 +3487,10 @@ var RichTextEditor = ({
3186
3487
  className: getButtonClass(activeFormats.has("italic")),
3187
3488
  disabled,
3188
3489
  title: "Italic (Ctrl+I)",
3189
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("path", { d: "M11.59 4H16v2h-1.71l-3.58 8H13v2H8v-2h1.71l3.58-8H11.59V4z" }) })
3490
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("path", { d: "M11.59 4H16v2h-1.71l-3.58 8H13v2H8v-2h1.71l3.58-8H11.59V4z" }) })
3190
3491
  }
3191
3492
  ),
3192
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3493
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3193
3494
  "button",
3194
3495
  {
3195
3496
  type: "button",
@@ -3197,10 +3498,10 @@ var RichTextEditor = ({
3197
3498
  className: getButtonClass(activeFormats.has("underline")),
3198
3499
  disabled,
3199
3500
  title: "Underline (Ctrl+U)",
3200
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("path", { d: "M10 16c-2.21 0-4-1.79-4-4V4h2v8c0 1.1.9 2 2 2s2-.9 2-2V4h2v8c0 2.21-1.79 4-4 4zM4 18h12v2H4v-2z" }) })
3501
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("path", { d: "M10 16c-2.21 0-4-1.79-4-4V4h2v8c0 1.1.9 2 2 2s2-.9 2-2V4h2v8c0 2.21-1.79 4-4 4zM4 18h12v2H4v-2z" }) })
3201
3502
  }
3202
3503
  ),
3203
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3504
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3204
3505
  "button",
3205
3506
  {
3206
3507
  type: "button",
@@ -3208,13 +3509,13 @@ var RichTextEditor = ({
3208
3509
  className: getButtonClass(activeFormats.has("strikeThrough")),
3209
3510
  disabled,
3210
3511
  title: "Strikethrough",
3211
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("path", { d: "M10 4c-2 0-3.5.5-4.5 1.5S4 7.5 4 9h2c0-.7.2-1.2.6-1.6.4-.4 1-.6 1.9-.6.8 0 1.4.2 1.8.5.4.3.7.8.7 1.4 0 .5-.2.9-.5 1.2-.3.3-.9.6-1.8.9l-.7.2c-1.2.3-2.1.7-2.7 1.2C4.2 12.7 4 13.5 4 14.5c0 1.1.4 2 1.1 2.6.7.6 1.7.9 3 .9 2.1 0 3.6-.5 4.6-1.5.9-1 1.3-2.3 1.3-3.8h-2c0 .9-.2 1.6-.7 2.1-.5.5-1.2.7-2.2.7-.8 0-1.4-.2-1.8-.5-.4-.3-.6-.8-.6-1.4 0-.5.2-.9.5-1.2.3-.3.9-.6 1.8-.9l.7-.2c1.2-.3 2.1-.7 2.7-1.2.6-.5.9-1.3.9-2.3 0-1.2-.4-2.1-1.2-2.8-.8-.7-1.9-1-3.3-1zM2 10h16v1H2v-1z" }) })
3512
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("path", { d: "M10 4c-2 0-3.5.5-4.5 1.5S4 7.5 4 9h2c0-.7.2-1.2.6-1.6.4-.4 1-.6 1.9-.6.8 0 1.4.2 1.8.5.4.3.7.8.7 1.4 0 .5-.2.9-.5 1.2-.3.3-.9.6-1.8.9l-.7.2c-1.2.3-2.1.7-2.7 1.2C4.2 12.7 4 13.5 4 14.5c0 1.1.4 2 1.1 2.6.7.6 1.7.9 3 .9 2.1 0 3.6-.5 4.6-1.5.9-1 1.3-2.3 1.3-3.8h-2c0 .9-.2 1.6-.7 2.1-.5.5-1.2.7-2.2.7-.8 0-1.4-.2-1.8-.5-.4-.3-.6-.8-.6-1.4 0-.5.2-.9.5-1.2.3-.3.9-.6 1.8-.9l.7-.2c1.2-.3 2.1-.7 2.7-1.2.6-.5.9-1.3.9-2.3 0-1.2-.4-2.1-1.2-2.8-.8-.7-1.9-1-3.3-1zM2 10h16v1H2v-1z" }) })
3212
3513
  }
3213
3514
  )
3214
3515
  ] }),
3215
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "w-px bg-gray-300 dark:bg-gray-600 mx-1" }),
3216
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex gap-1", children: [
3217
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3516
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { className: "w-px bg-gray-300 dark:bg-gray-600 mx-1" }),
3517
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex gap-1", children: [
3518
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3218
3519
  "button",
3219
3520
  {
3220
3521
  type: "button",
@@ -3222,10 +3523,10 @@ var RichTextEditor = ({
3222
3523
  className: getButtonClass(activeFormats.has("h1")),
3223
3524
  disabled,
3224
3525
  title: "Heading 1",
3225
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("text", { x: "2", y: "16", fontSize: "14", fontWeight: "bold", children: "H1" }) })
3526
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("text", { x: "2", y: "16", fontSize: "14", fontWeight: "bold", children: "H1" }) })
3226
3527
  }
3227
3528
  ),
3228
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3529
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3229
3530
  "button",
3230
3531
  {
3231
3532
  type: "button",
@@ -3233,10 +3534,10 @@ var RichTextEditor = ({
3233
3534
  className: getButtonClass(activeFormats.has("h2")),
3234
3535
  disabled,
3235
3536
  title: "Heading 2",
3236
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("text", { x: "2", y: "16", fontSize: "14", fontWeight: "bold", children: "H2" }) })
3537
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("text", { x: "2", y: "16", fontSize: "14", fontWeight: "bold", children: "H2" }) })
3237
3538
  }
3238
3539
  ),
3239
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3540
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3240
3541
  "button",
3241
3542
  {
3242
3543
  type: "button",
@@ -3244,13 +3545,13 @@ var RichTextEditor = ({
3244
3545
  className: getButtonClass(activeFormats.has("h3")),
3245
3546
  disabled,
3246
3547
  title: "Heading 3",
3247
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("text", { x: "2", y: "16", fontSize: "14", fontWeight: "bold", children: "H3" }) })
3548
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("text", { x: "2", y: "16", fontSize: "14", fontWeight: "bold", children: "H3" }) })
3248
3549
  }
3249
3550
  )
3250
3551
  ] }),
3251
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "w-px bg-gray-300 dark:bg-gray-600 mx-1" }),
3252
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex gap-1", children: [
3253
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3552
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { className: "w-px bg-gray-300 dark:bg-gray-600 mx-1" }),
3553
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex gap-1", children: [
3554
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3254
3555
  "button",
3255
3556
  {
3256
3557
  type: "button",
@@ -3258,10 +3559,10 @@ var RichTextEditor = ({
3258
3559
  className: getButtonClass(activeFormats.has("ul")),
3259
3560
  disabled,
3260
3561
  title: "Bullet List",
3261
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("path", { d: "M4 4h2v2H4V4zm4 0h8v2H8V4zM4 8h2v2H4V8zm4 0h8v2H8V8zm-4 4h2v2H4v-2zm4 0h8v2H8v-2zm-4 4h2v2H4v-2zm4 0h8v2H8v-2z" }) })
3562
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("path", { d: "M4 4h2v2H4V4zm4 0h8v2H8V4zM4 8h2v2H4V8zm4 0h8v2H8V8zm-4 4h2v2H4v-2zm4 0h8v2H8v-2zm-4 4h2v2H4v-2zm4 0h8v2H8v-2z" }) })
3262
3563
  }
3263
3564
  ),
3264
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3565
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3265
3566
  "button",
3266
3567
  {
3267
3568
  type: "button",
@@ -3269,13 +3570,13 @@ var RichTextEditor = ({
3269
3570
  className: getButtonClass(activeFormats.has("ol")),
3270
3571
  disabled,
3271
3572
  title: "Numbered List",
3272
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("path", { d: "M4 4h1v3H4V4zm0 4h1v1H3V8h2v1H4zm1 2H3v1h2v1H3v1h2v-3zM8 4h8v2H8V4zm0 4h8v2H8V8zm0 4h8v2H8v-2zm0 4h8v2H8v-2z" }) })
3573
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("path", { d: "M4 4h1v3H4V4zm0 4h1v1H3V8h2v1H4zm1 2H3v1h2v1H3v1h2v-3zM8 4h8v2H8V4zm0 4h8v2H8V8zm0 4h8v2H8v-2zm0 4h8v2H8v-2z" }) })
3273
3574
  }
3274
3575
  )
3275
3576
  ] }),
3276
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "w-px bg-gray-300 dark:bg-gray-600 mx-1" }),
3277
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex gap-1", children: [
3278
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3577
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { className: "w-px bg-gray-300 dark:bg-gray-600 mx-1" }),
3578
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex gap-1", children: [
3579
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3279
3580
  "button",
3280
3581
  {
3281
3582
  type: "button",
@@ -3283,10 +3584,10 @@ var RichTextEditor = ({
3283
3584
  className: getButtonClass(false),
3284
3585
  disabled,
3285
3586
  title: "Insert Link",
3286
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1" }) })
3587
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1" }) })
3287
3588
  }
3288
3589
  ),
3289
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3590
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3290
3591
  "button",
3291
3592
  {
3292
3593
  type: "button",
@@ -3294,10 +3595,10 @@ var RichTextEditor = ({
3294
3595
  className: getButtonClass(false),
3295
3596
  disabled,
3296
3597
  title: "Insert Image/Video",
3297
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" }) })
3598
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" }) })
3298
3599
  }
3299
3600
  ),
3300
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3601
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3301
3602
  "button",
3302
3603
  {
3303
3604
  type: "button",
@@ -3305,12 +3606,12 @@ var RichTextEditor = ({
3305
3606
  className: getButtonClass(false),
3306
3607
  disabled,
3307
3608
  title: "Code",
3308
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" }) })
3609
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" }) })
3309
3610
  }
3310
3611
  )
3311
3612
  ] })
3312
3613
  ] }),
3313
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3614
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3314
3615
  "div",
3315
3616
  {
3316
3617
  ref: editorRef,
@@ -3335,9 +3636,9 @@ var RichTextEditor = ({
3335
3636
  suppressContentEditableWarning: true
3336
3637
  }
3337
3638
  ),
3338
- error && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
3339
- helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText }),
3340
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3639
+ error && /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
3640
+ helperText && !error && /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText }),
3641
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3341
3642
  Modal,
3342
3643
  {
3343
3644
  isOpen: showLinkModal,
@@ -3347,8 +3648,8 @@ var RichTextEditor = ({
3347
3648
  },
3348
3649
  title: "Insert Link",
3349
3650
  size: "sm",
3350
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "space-y-4", children: [
3351
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3651
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "space-y-4", children: [
3652
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3352
3653
  TextInput,
3353
3654
  {
3354
3655
  label: "URL",
@@ -3364,8 +3665,8 @@ var RichTextEditor = ({
3364
3665
  }
3365
3666
  }
3366
3667
  ),
3367
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex gap-2 justify-end", children: [
3368
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3668
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex gap-2 justify-end", children: [
3669
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3369
3670
  Button,
3370
3671
  {
3371
3672
  variant: "secondary",
@@ -3376,7 +3677,7 @@ var RichTextEditor = ({
3376
3677
  children: "Cancel"
3377
3678
  }
3378
3679
  ),
3379
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3680
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3380
3681
  Button,
3381
3682
  {
3382
3683
  variant: "primary",
@@ -3389,7 +3690,7 @@ var RichTextEditor = ({
3389
3690
  ] })
3390
3691
  }
3391
3692
  ),
3392
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3693
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3393
3694
  Modal,
3394
3695
  {
3395
3696
  isOpen: showImageModal,
@@ -3400,8 +3701,8 @@ var RichTextEditor = ({
3400
3701
  },
3401
3702
  title: "Insert Image",
3402
3703
  size: "sm",
3403
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "space-y-4", children: [
3404
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3704
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "space-y-4", children: [
3705
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3405
3706
  TextInput,
3406
3707
  {
3407
3708
  label: "Image URL",
@@ -3417,7 +3718,7 @@ var RichTextEditor = ({
3417
3718
  }
3418
3719
  }
3419
3720
  ),
3420
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3721
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3421
3722
  TextInput,
3422
3723
  {
3423
3724
  label: "Alt Text (optional)",
@@ -3426,8 +3727,8 @@ var RichTextEditor = ({
3426
3727
  placeholder: "Describe the image"
3427
3728
  }
3428
3729
  ),
3429
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex gap-2 justify-end", children: [
3430
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3730
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex gap-2 justify-end", children: [
3731
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3431
3732
  Button,
3432
3733
  {
3433
3734
  variant: "secondary",
@@ -3439,7 +3740,7 @@ var RichTextEditor = ({
3439
3740
  children: "Cancel"
3440
3741
  }
3441
3742
  ),
3442
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3743
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
3443
3744
  Button,
3444
3745
  {
3445
3746
  variant: "primary",
@@ -3457,7 +3758,7 @@ var RichTextEditor = ({
3457
3758
 
3458
3759
  // src/components/Toast.tsx
3459
3760
  var import_react21 = require("react");
3460
- var import_jsx_runtime62 = require("react/jsx-runtime");
3761
+ var import_jsx_runtime98 = require("react/jsx-runtime");
3461
3762
  var ToastContext = (0, import_react21.createContext)(void 0);
3462
3763
  var useToast = () => {
3463
3764
  const context = (0, import_react21.useContext)(ToastContext);
@@ -3488,9 +3789,9 @@ var ToastProvider = ({ children, position = "top-right" }) => {
3488
3789
  "top-center": "top-4 left-1/2 -translate-x-1/2",
3489
3790
  "bottom-center": "bottom-4 left-1/2 -translate-x-1/2"
3490
3791
  };
3491
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(ToastContext.Provider, { value: { toasts, addToast, removeToast }, children: [
3792
+ return /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(ToastContext.Provider, { value: { toasts, addToast, removeToast }, children: [
3492
3793
  children,
3493
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: `fixed ${positionClasses2[position]} z-50 flex flex-col gap-2 max-w-md`, children: toasts.map((toast2) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ToastItem, { toast: toast2, onClose: () => removeToast(toast2.id) }, toast2.id)) })
3794
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("div", { className: `fixed ${positionClasses2[position]} z-50 flex flex-col gap-2 max-w-md`, children: toasts.map((toast2) => /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(ToastItem, { toast: toast2, onClose: () => removeToast(toast2.id) }, toast2.id)) })
3494
3795
  ] });
3495
3796
  };
3496
3797
  var ToastItem = ({ toast: toast2, onClose }) => {
@@ -3501,27 +3802,27 @@ var ToastItem = ({ toast: toast2, onClose }) => {
3501
3802
  info: "bg-blue-50 dark:bg-blue-900/30 border-blue-500 text-blue-800 dark:text-blue-200"
3502
3803
  };
3503
3804
  const typeIcons = {
3504
- success: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(CheckIcon, { size: "sm", className: "text-green-600 dark:text-green-400" }),
3505
- error: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(CloseIcon, { size: "sm", className: "text-red-600 dark:text-red-400" }),
3506
- warning: /* @__PURE__ */ (0, import_jsx_runtime62.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_runtime62.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" }) }),
3507
- info: /* @__PURE__ */ (0, import_jsx_runtime62.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_runtime62.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" }) })
3805
+ success: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(CheckIcon, { size: "sm", className: "text-green-600 dark:text-green-400" }),
3806
+ error: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(CloseIcon, { size: "sm", className: "text-red-600 dark:text-red-400" }),
3807
+ warning: /* @__PURE__ */ (0, import_jsx_runtime98.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_runtime98.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" }) }),
3808
+ info: /* @__PURE__ */ (0, import_jsx_runtime98.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_runtime98.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" }) })
3508
3809
  };
3509
3810
  const type = toast2.type || "info";
3510
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
3811
+ return /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(
3511
3812
  "div",
3512
3813
  {
3513
3814
  className: `flex items-start gap-3 p-4 rounded-lg border-l-4 shadow-lg backdrop-blur-sm ${typeStyles[type]} animate-slide-in`,
3514
3815
  role: "alert",
3515
3816
  children: [
3516
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "flex-shrink-0 mt-0.5", children: typeIcons[type] }),
3517
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: "flex-1 text-sm font-medium", children: toast2.message }),
3518
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
3817
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("div", { className: "flex-shrink-0 mt-0.5", children: typeIcons[type] }),
3818
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("p", { className: "flex-1 text-sm font-medium", children: toast2.message }),
3819
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
3519
3820
  "button",
3520
3821
  {
3521
3822
  onClick: onClose,
3522
3823
  className: "flex-shrink-0 text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 transition-colors",
3523
3824
  "aria-label": "Close",
3524
- children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(CloseIcon, { size: "sm" })
3825
+ children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(CloseIcon, { size: "sm" })
3525
3826
  }
3526
3827
  )
3527
3828
  ]
@@ -3553,7 +3854,7 @@ var toast = {
3553
3854
 
3554
3855
  // src/components/Stepper.tsx
3555
3856
  var import_react22 = __toESM(require("react"));
3556
- var import_jsx_runtime63 = require("react/jsx-runtime");
3857
+ var import_jsx_runtime99 = require("react/jsx-runtime");
3557
3858
  var Stepper = ({
3558
3859
  steps,
3559
3860
  currentStep,
@@ -3561,18 +3862,18 @@ var Stepper = ({
3561
3862
  className = ""
3562
3863
  }) => {
3563
3864
  const isHorizontal = orientation === "horizontal";
3564
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: `${isHorizontal ? "flex items-center" : "flex flex-col"} ${className}`, children: steps.map((step, index) => {
3865
+ return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: `${isHorizontal ? "flex items-center" : "flex flex-col"} ${className}`, children: steps.map((step, index) => {
3565
3866
  const stepNumber = index + 1;
3566
3867
  const isActive = stepNumber === currentStep;
3567
3868
  const isCompleted = stepNumber < currentStep;
3568
3869
  const isLast = index === steps.length - 1;
3569
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_react22.default.Fragment, { children: [
3570
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: `flex ${isHorizontal ? "flex-col items-center" : "flex-row items-start"} ${isHorizontal ? "" : "flex-1"}`, children: [
3571
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
3870
+ return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react22.default.Fragment, { children: [
3871
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: `flex ${isHorizontal ? "flex-col items-center" : "flex-row items-start"} ${isHorizontal ? "" : "flex-1"}`, children: [
3872
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
3572
3873
  "div",
3573
3874
  {
3574
3875
  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"}`,
3575
- children: isCompleted ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(CheckIcon, { size: "sm", className: "text-white" }) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
3876
+ children: isCompleted ? /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(CheckIcon, { size: "sm", className: "text-white" }) : /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
3576
3877
  "span",
3577
3878
  {
3578
3879
  className: `text-sm font-semibold ${isActive ? "text-blue-600 dark:text-blue-400" : "text-gray-500 dark:text-gray-400"}`,
@@ -3581,18 +3882,18 @@ var Stepper = ({
3581
3882
  )
3582
3883
  }
3583
3884
  ) }),
3584
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: `${isHorizontal ? "mt-2 text-center" : "ml-4 pb-8"} ${isLast && !isHorizontal ? "pb-0" : ""}`, children: [
3585
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
3885
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: `${isHorizontal ? "mt-2 text-center" : "ml-4 pb-8"} ${isLast && !isHorizontal ? "pb-0" : ""}`, children: [
3886
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
3586
3887
  "p",
3587
3888
  {
3588
3889
  className: `text-sm font-medium ${isActive || isCompleted ? "text-gray-900 dark:text-gray-100" : "text-gray-500 dark:text-gray-400"}`,
3589
3890
  children: step.label
3590
3891
  }
3591
3892
  ),
3592
- step.description && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "text-xs text-gray-500 dark:text-gray-400 mt-1", children: step.description })
3893
+ step.description && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("p", { className: "text-xs text-gray-500 dark:text-gray-400 mt-1", children: step.description })
3593
3894
  ] })
3594
3895
  ] }),
3595
- !isLast && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
3896
+ !isLast && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
3596
3897
  "div",
3597
3898
  {
3598
3899
  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"}`
@@ -3603,7 +3904,7 @@ var Stepper = ({
3603
3904
  };
3604
3905
 
3605
3906
  // src/components/Divider.tsx
3606
- var import_jsx_runtime64 = require("react/jsx-runtime");
3907
+ var import_jsx_runtime100 = require("react/jsx-runtime");
3607
3908
  var Divider = ({
3608
3909
  orientation = "horizontal",
3609
3910
  variant = "solid",
@@ -3622,14 +3923,14 @@ var Divider = ({
3622
3923
  center: "justify-center",
3623
3924
  right: "justify-end"
3624
3925
  };
3625
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: `flex items-center ${alignmentClasses[labelPosition]} ${className}`, role: "separator", children: [
3626
- labelPosition !== "left" && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: `flex-1 border-t ${variantClasses[variant]} border-gray-300 dark:border-gray-600` }),
3627
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "px-4 text-sm text-gray-500 dark:text-gray-400", children: label }),
3628
- labelPosition !== "right" && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: `flex-1 border-t ${variantClasses[variant]} border-gray-300 dark:border-gray-600` })
3926
+ return /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)("div", { className: `flex items-center ${alignmentClasses[labelPosition]} ${className}`, role: "separator", children: [
3927
+ labelPosition !== "left" && /* @__PURE__ */ (0, import_jsx_runtime100.jsx)("div", { className: `flex-1 border-t ${variantClasses[variant]} border-gray-300 dark:border-gray-600` }),
3928
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)("span", { className: "px-4 text-sm text-gray-500 dark:text-gray-400", children: label }),
3929
+ labelPosition !== "right" && /* @__PURE__ */ (0, import_jsx_runtime100.jsx)("div", { className: `flex-1 border-t ${variantClasses[variant]} border-gray-300 dark:border-gray-600` })
3629
3930
  ] });
3630
3931
  }
3631
3932
  if (orientation === "vertical") {
3632
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3933
+ return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
3633
3934
  "div",
3634
3935
  {
3635
3936
  className: `inline-block h-full border-l ${variantClasses[variant]} border-gray-300 dark:border-gray-600 ${className}`,
@@ -3638,7 +3939,7 @@ var Divider = ({
3638
3939
  }
3639
3940
  );
3640
3941
  }
3641
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3942
+ return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
3642
3943
  "hr",
3643
3944
  {
3644
3945
  className: `border-t ${variantClasses[variant]} border-gray-300 dark:border-gray-600 ${className}`,
@@ -3649,7 +3950,7 @@ var Divider = ({
3649
3950
 
3650
3951
  // src/components/FileUpload.tsx
3651
3952
  var import_react23 = require("react");
3652
- var import_jsx_runtime65 = require("react/jsx-runtime");
3953
+ var import_jsx_runtime101 = require("react/jsx-runtime");
3653
3954
  var FileUpload = ({
3654
3955
  accept,
3655
3956
  multiple = false,
@@ -3722,9 +4023,9 @@ var FileUpload = ({
3722
4023
  setFiles(newFiles);
3723
4024
  onChange?.(newFiles);
3724
4025
  };
3725
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: `w-full ${className}`, children: [
3726
- label && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: label }),
3727
- /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
4026
+ return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)("div", { className: `w-full ${className}`, children: [
4027
+ label && /* @__PURE__ */ (0, import_jsx_runtime101.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: label }),
4028
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
3728
4029
  "div",
3729
4030
  {
3730
4031
  onDrop: handleDrop,
@@ -3733,7 +4034,7 @@ var FileUpload = ({
3733
4034
  onClick: handleClick,
3734
4035
  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" : ""}`,
3735
4036
  children: [
3736
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
4037
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
3737
4038
  "input",
3738
4039
  {
3739
4040
  ref: fileInputRef,
@@ -3745,14 +4046,14 @@ var FileUpload = ({
3745
4046
  className: "hidden"
3746
4047
  }
3747
4048
  ),
3748
- /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col items-center gap-2", children: [
3749
- /* @__PURE__ */ (0, import_jsx_runtime65.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_runtime65.jsx)(UploadIcon, { size: "lg", className: "text-gray-400 dark:text-gray-500" }) }),
3750
- /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { children: [
3751
- /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("p", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: [
3752
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-blue-600 dark:text-blue-400", children: "Click to upload" }),
4049
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)("div", { className: "flex flex-col items-center gap-2", children: [
4050
+ /* @__PURE__ */ (0, import_jsx_runtime101.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_runtime101.jsx)(UploadIcon, { size: "lg", className: "text-gray-400 dark:text-gray-500" }) }),
4051
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)("div", { children: [
4052
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)("p", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: [
4053
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)("span", { className: "text-blue-600 dark:text-blue-400", children: "Click to upload" }),
3753
4054
  " or drag and drop"
3754
4055
  ] }),
3755
- /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("p", { className: "text-xs text-gray-500 dark:text-gray-400 mt-1", children: [
4056
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)("p", { className: "text-xs text-gray-500 dark:text-gray-400 mt-1", children: [
3756
4057
  accept ? `Accepted: ${accept}` : "Any file type",
3757
4058
  maxSize && ` \u2022 Max size: ${formatFileSize(maxSize)}`
3758
4059
  ] })
@@ -3761,17 +4062,17 @@ var FileUpload = ({
3761
4062
  ]
3762
4063
  }
3763
4064
  ),
3764
- helperText && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: helperText }),
3765
- files.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "mt-4 space-y-2", children: files.map((file, index) => /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
4065
+ helperText && /* @__PURE__ */ (0, import_jsx_runtime101.jsx)("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: helperText }),
4066
+ files.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime101.jsx)("div", { className: "mt-4 space-y-2", children: files.map((file, index) => /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
3766
4067
  "div",
3767
4068
  {
3768
4069
  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",
3769
4070
  children: [
3770
- /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex-1 min-w-0", children: [
3771
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-sm font-medium text-gray-900 dark:text-gray-100 truncate", children: file.name }),
3772
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: formatFileSize(file.size) })
4071
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)("div", { className: "flex-1 min-w-0", children: [
4072
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)("p", { className: "text-sm font-medium text-gray-900 dark:text-gray-100 truncate", children: file.name }),
4073
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: formatFileSize(file.size) })
3773
4074
  ] }),
3774
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
4075
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
3775
4076
  "button",
3776
4077
  {
3777
4078
  onClick: (e) => {
@@ -3780,7 +4081,7 @@ var FileUpload = ({
3780
4081
  },
3781
4082
  className: "ml-4 text-gray-400 hover:text-red-600 dark:hover:text-red-400 transition-colors",
3782
4083
  "aria-label": "Remove file",
3783
- children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(CloseIcon, { size: "sm" })
4084
+ children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(CloseIcon, { size: "sm" })
3784
4085
  }
3785
4086
  )
3786
4087
  ]
@@ -3790,6 +4091,364 @@ var FileUpload = ({
3790
4091
  ] });
3791
4092
  };
3792
4093
 
4094
+ // src/components/AudioPlayer.tsx
4095
+ var import_react24 = require("react");
4096
+ var import_jsx_runtime102 = require("react/jsx-runtime");
4097
+ var AudioPlayer = ({
4098
+ src,
4099
+ title,
4100
+ artist,
4101
+ album,
4102
+ coverArt,
4103
+ variant = "default",
4104
+ autoPlay = false,
4105
+ loop = false,
4106
+ preload = "metadata",
4107
+ onPlay,
4108
+ onPause,
4109
+ onEnded,
4110
+ onTimeUpdate,
4111
+ className = "",
4112
+ showSkipButtons = false,
4113
+ onSkipBack,
4114
+ onSkipForward
4115
+ }) => {
4116
+ const audioRef = (0, import_react24.useRef)(null);
4117
+ const [isPlaying, setIsPlaying] = (0, import_react24.useState)(false);
4118
+ const [currentTime, setCurrentTime] = (0, import_react24.useState)(0);
4119
+ const [duration, setDuration] = (0, import_react24.useState)(0);
4120
+ const [volume, setVolume] = (0, import_react24.useState)(1);
4121
+ const [isMuted, setIsMuted] = (0, import_react24.useState)(false);
4122
+ const [isLoading, setIsLoading] = (0, import_react24.useState)(true);
4123
+ (0, import_react24.useEffect)(() => {
4124
+ const audio = audioRef.current;
4125
+ if (!audio) return;
4126
+ const handleLoadedMetadata = () => {
4127
+ setDuration(audio.duration);
4128
+ setIsLoading(false);
4129
+ };
4130
+ const handleCanPlay = () => {
4131
+ setIsLoading(false);
4132
+ };
4133
+ const handleTimeUpdate = () => {
4134
+ setCurrentTime(audio.currentTime);
4135
+ onTimeUpdate?.(audio.currentTime);
4136
+ };
4137
+ const handleEnded = () => {
4138
+ setIsPlaying(false);
4139
+ onEnded?.();
4140
+ };
4141
+ const handlePlay = () => {
4142
+ setIsPlaying(true);
4143
+ onPlay?.();
4144
+ };
4145
+ const handlePause = () => {
4146
+ setIsPlaying(false);
4147
+ onPause?.();
4148
+ };
4149
+ const handleError = (e) => {
4150
+ console.error("Audio error:", e);
4151
+ setIsPlaying(false);
4152
+ setIsLoading(false);
4153
+ };
4154
+ const handleLoadStart = () => {
4155
+ setIsLoading(true);
4156
+ };
4157
+ audio.addEventListener("loadstart", handleLoadStart);
4158
+ audio.addEventListener("loadedmetadata", handleLoadedMetadata);
4159
+ audio.addEventListener("canplay", handleCanPlay);
4160
+ audio.addEventListener("timeupdate", handleTimeUpdate);
4161
+ audio.addEventListener("ended", handleEnded);
4162
+ audio.addEventListener("play", handlePlay);
4163
+ audio.addEventListener("pause", handlePause);
4164
+ audio.addEventListener("error", handleError);
4165
+ if (audio.readyState >= 2) {
4166
+ setIsLoading(false);
4167
+ setDuration(audio.duration);
4168
+ }
4169
+ return () => {
4170
+ audio.removeEventListener("loadstart", handleLoadStart);
4171
+ audio.removeEventListener("loadedmetadata", handleLoadedMetadata);
4172
+ audio.removeEventListener("canplay", handleCanPlay);
4173
+ audio.removeEventListener("timeupdate", handleTimeUpdate);
4174
+ audio.removeEventListener("ended", handleEnded);
4175
+ audio.removeEventListener("play", handlePlay);
4176
+ audio.removeEventListener("pause", handlePause);
4177
+ audio.removeEventListener("error", handleError);
4178
+ };
4179
+ }, [onPlay, onPause, onEnded, onTimeUpdate]);
4180
+ (0, import_react24.useEffect)(() => {
4181
+ const audio = audioRef.current;
4182
+ if (!audio) return;
4183
+ audio.load();
4184
+ }, [src]);
4185
+ const togglePlayPause = async () => {
4186
+ const audio = audioRef.current;
4187
+ if (!audio) return;
4188
+ try {
4189
+ if (isPlaying) {
4190
+ audio.pause();
4191
+ } else {
4192
+ await audio.play();
4193
+ }
4194
+ } catch (error) {
4195
+ console.error("Playback error:", error);
4196
+ setIsPlaying(false);
4197
+ }
4198
+ };
4199
+ const handleSeek = (e) => {
4200
+ const audio = audioRef.current;
4201
+ if (!audio) return;
4202
+ const time = parseFloat(e.target.value);
4203
+ audio.currentTime = time;
4204
+ setCurrentTime(time);
4205
+ };
4206
+ const handleVolumeChange = (e) => {
4207
+ const audio = audioRef.current;
4208
+ if (!audio) return;
4209
+ const vol = parseFloat(e.target.value);
4210
+ audio.volume = vol;
4211
+ setVolume(vol);
4212
+ setIsMuted(vol === 0);
4213
+ };
4214
+ const toggleMute = () => {
4215
+ const audio = audioRef.current;
4216
+ if (!audio) return;
4217
+ if (isMuted) {
4218
+ audio.volume = volume || 0.5;
4219
+ setIsMuted(false);
4220
+ } else {
4221
+ audio.volume = 0;
4222
+ setIsMuted(true);
4223
+ }
4224
+ };
4225
+ const formatTime = (time) => {
4226
+ if (!isFinite(time)) return "0:00";
4227
+ const minutes = Math.floor(time / 60);
4228
+ const seconds = Math.floor(time % 60);
4229
+ return `${minutes}:${seconds.toString().padStart(2, "0")}`;
4230
+ };
4231
+ const handleSkipBack = () => {
4232
+ const audio = audioRef.current;
4233
+ if (!audio) return;
4234
+ if (onSkipBack) {
4235
+ onSkipBack();
4236
+ } else {
4237
+ audio.currentTime = Math.max(0, audio.currentTime - 10);
4238
+ }
4239
+ };
4240
+ const handleSkipForward = () => {
4241
+ const audio = audioRef.current;
4242
+ if (!audio) return;
4243
+ if (onSkipForward) {
4244
+ onSkipForward();
4245
+ } else {
4246
+ audio.currentTime = Math.min(duration, audio.currentTime + 10);
4247
+ }
4248
+ };
4249
+ const progress = duration > 0 ? currentTime / duration * 100 : 0;
4250
+ if (variant === "mini") {
4251
+ return /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: `flex items-center gap-2 p-2 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 ${className}`, children: [
4252
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("audio", { ref: audioRef, src, preload, loop, autoPlay }),
4253
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
4254
+ Button,
4255
+ {
4256
+ iconOnly: true,
4257
+ size: "sm",
4258
+ variant: "primary",
4259
+ onClick: togglePlayPause,
4260
+ disabled: isLoading,
4261
+ "aria-label": isPlaying ? "Pause" : "Play",
4262
+ children: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(PauseIcon, { size: "sm" }) : /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(PlayIcon, { size: "sm" })
4263
+ }
4264
+ ),
4265
+ title && /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300 truncate", children: title })
4266
+ ] });
4267
+ }
4268
+ if (variant === "compact") {
4269
+ return /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: `flex items-center gap-3 p-3 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 shadow-sm ${className}`, children: [
4270
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("audio", { ref: audioRef, src, preload, loop, autoPlay }),
4271
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
4272
+ Button,
4273
+ {
4274
+ iconOnly: true,
4275
+ size: "md",
4276
+ variant: "primary",
4277
+ onClick: togglePlayPause,
4278
+ disabled: isLoading,
4279
+ "aria-label": isPlaying ? "Pause" : "Play",
4280
+ children: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(PauseIcon, { size: "md" }) : /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(PlayIcon, { size: "md" })
4281
+ }
4282
+ ),
4283
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "flex-1 min-w-0", children: [
4284
+ title && /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("div", { className: "text-sm font-medium text-gray-900 dark:text-gray-100 truncate", children: title }),
4285
+ artist && /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("div", { className: "text-xs text-gray-500 dark:text-gray-400 truncate", children: artist })
4286
+ ] }),
4287
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "flex items-center gap-2 flex-1", children: [
4288
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("span", { className: "text-xs text-gray-500 dark:text-gray-400 tabular-nums", children: formatTime(currentTime) }),
4289
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "relative flex-1 h-1.5 bg-gray-200 dark:bg-gray-700 rounded-full overflow-hidden", children: [
4290
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
4291
+ "div",
4292
+ {
4293
+ className: "absolute h-full bg-blue-600 dark:bg-blue-500 rounded-full transition-all",
4294
+ style: { width: `${progress}%` }
4295
+ }
4296
+ ),
4297
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
4298
+ "input",
4299
+ {
4300
+ type: "range",
4301
+ min: 0,
4302
+ max: duration || 0,
4303
+ value: currentTime,
4304
+ onChange: handleSeek,
4305
+ disabled: isLoading,
4306
+ className: "absolute inset-0 w-full h-full opacity-0 cursor-pointer disabled:cursor-not-allowed",
4307
+ "aria-label": "Seek"
4308
+ }
4309
+ )
4310
+ ] }),
4311
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("span", { className: "text-xs text-gray-500 dark:text-gray-400 tabular-nums", children: formatTime(duration) })
4312
+ ] }),
4313
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "flex items-center gap-2", children: [
4314
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
4315
+ "button",
4316
+ {
4317
+ onClick: toggleMute,
4318
+ className: "text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200",
4319
+ "aria-label": isMuted ? "Unmute" : "Mute",
4320
+ children: isMuted ? /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(VolumeOffIcon, { size: "sm" }) : /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(VolumeUpIcon, { size: "sm" })
4321
+ }
4322
+ ),
4323
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
4324
+ "input",
4325
+ {
4326
+ type: "range",
4327
+ min: 0,
4328
+ max: 1,
4329
+ step: 0.01,
4330
+ value: isMuted ? 0 : volume,
4331
+ onChange: handleVolumeChange,
4332
+ className: "w-16 h-1.5 bg-gray-200 dark:bg-gray-700 rounded-full appearance-none cursor-pointer\n [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3\n [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-blue-600 [&::-webkit-slider-thumb]:cursor-pointer\n [&::-moz-range-thumb]:w-3 [&::-moz-range-thumb]:h-3 [&::-moz-range-thumb]:rounded-full\n [&::-moz-range-thumb]:bg-blue-600 [&::-moz-range-thumb]:cursor-pointer [&::-moz-range-thumb]:border-none",
4333
+ "aria-label": "Volume"
4334
+ }
4335
+ )
4336
+ ] })
4337
+ ] });
4338
+ }
4339
+ return /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: `bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 shadow-md overflow-hidden ${className}`, children: [
4340
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("audio", { ref: audioRef, src, preload, loop, autoPlay }),
4341
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "flex items-center gap-4 p-4 border-b border-gray-200 dark:border-gray-700", children: [
4342
+ coverArt && /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("div", { className: "w-16 h-16 flex-shrink-0 rounded-md overflow-hidden bg-gray-100 dark:bg-gray-700", children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
4343
+ "img",
4344
+ {
4345
+ src: coverArt,
4346
+ alt: `${title || "Track"} cover art`,
4347
+ className: "w-full h-full object-cover"
4348
+ }
4349
+ ) }),
4350
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "flex-1 min-w-0", children: [
4351
+ title && /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("h3", { className: "text-base font-semibold text-gray-900 dark:text-gray-100 truncate", children: title }),
4352
+ artist && /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("p", { className: "text-sm text-gray-600 dark:text-gray-400 truncate", children: artist }),
4353
+ album && /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("p", { className: "text-xs text-gray-500 dark:text-gray-500 truncate", children: album })
4354
+ ] })
4355
+ ] }),
4356
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "px-4 pt-4", children: [
4357
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "relative h-2 bg-gray-200 dark:bg-gray-700 rounded-full overflow-hidden", children: [
4358
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
4359
+ "div",
4360
+ {
4361
+ className: "absolute h-full bg-blue-600 dark:bg-blue-500 rounded-full transition-all",
4362
+ style: { width: `${progress}%` }
4363
+ }
4364
+ ),
4365
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
4366
+ "input",
4367
+ {
4368
+ type: "range",
4369
+ min: 0,
4370
+ max: duration || 0,
4371
+ value: currentTime,
4372
+ onChange: handleSeek,
4373
+ disabled: isLoading,
4374
+ className: "absolute inset-0 w-full h-full opacity-0 cursor-pointer disabled:cursor-not-allowed",
4375
+ "aria-label": "Seek"
4376
+ }
4377
+ )
4378
+ ] }),
4379
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "flex justify-between items-center mt-1 text-xs text-gray-500 dark:text-gray-400 tabular-nums", children: [
4380
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("span", { children: formatTime(currentTime) }),
4381
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("span", { children: formatTime(duration) })
4382
+ ] })
4383
+ ] }),
4384
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "flex items-center justify-between px-4 py-4", children: [
4385
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "flex items-center gap-2 flex-1", children: [
4386
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
4387
+ "button",
4388
+ {
4389
+ onClick: toggleMute,
4390
+ className: "text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 transition-colors",
4391
+ "aria-label": isMuted ? "Unmute" : "Mute",
4392
+ children: isMuted ? /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(VolumeOffIcon, { size: "md" }) : /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(VolumeUpIcon, { size: "md" })
4393
+ }
4394
+ ),
4395
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
4396
+ "input",
4397
+ {
4398
+ type: "range",
4399
+ min: 0,
4400
+ max: 1,
4401
+ step: 0.01,
4402
+ value: isMuted ? 0 : volume,
4403
+ onChange: handleVolumeChange,
4404
+ className: "w-20 h-1.5 bg-gray-200 dark:bg-gray-700 rounded-full appearance-none cursor-pointer\n [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3\n [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-blue-600 [&::-webkit-slider-thumb]:cursor-pointer\n [&::-moz-range-thumb]:w-3 [&::-moz-range-thumb]:h-3 [&::-moz-range-thumb]:rounded-full\n [&::-moz-range-thumb]:bg-blue-600 [&::-moz-range-thumb]:cursor-pointer [&::-moz-range-thumb]:border-none",
4405
+ "aria-label": "Volume"
4406
+ }
4407
+ )
4408
+ ] }),
4409
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "flex items-center gap-2", children: [
4410
+ showSkipButtons && /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
4411
+ Button,
4412
+ {
4413
+ iconOnly: true,
4414
+ size: "md",
4415
+ variant: "secondary",
4416
+ onClick: handleSkipBack,
4417
+ disabled: isLoading,
4418
+ "aria-label": "Skip back 10 seconds",
4419
+ children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(SkipBackIcon, { size: "md" })
4420
+ }
4421
+ ),
4422
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
4423
+ Button,
4424
+ {
4425
+ iconOnly: true,
4426
+ size: "lg",
4427
+ variant: "primary",
4428
+ onClick: togglePlayPause,
4429
+ disabled: isLoading,
4430
+ "aria-label": isPlaying ? "Pause" : "Play",
4431
+ children: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(PauseIcon, { size: "lg" }) : /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(PlayIcon, { size: "lg" })
4432
+ }
4433
+ ),
4434
+ showSkipButtons && /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
4435
+ Button,
4436
+ {
4437
+ iconOnly: true,
4438
+ size: "md",
4439
+ variant: "secondary",
4440
+ onClick: handleSkipForward,
4441
+ disabled: isLoading,
4442
+ "aria-label": "Skip forward 10 seconds",
4443
+ children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(SkipForwardIcon, { size: "md" })
4444
+ }
4445
+ )
4446
+ ] }),
4447
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("div", { className: "flex-1" })
4448
+ ] })
4449
+ ] });
4450
+ };
4451
+
3793
4452
  // src/utils/theme-script.ts
3794
4453
  var themeScript = `
3795
4454
  (function() {
@@ -3826,33 +4485,57 @@ function getThemeScript() {
3826
4485
  0 && (module.exports = {
3827
4486
  ActionMenu,
3828
4487
  Alert,
4488
+ AlertCircleIcon,
3829
4489
  AppShell,
3830
4490
  AppleIcon,
4491
+ ArrowLeftIcon,
4492
+ ArrowRightIcon,
4493
+ AudioPlayer,
3831
4494
  Avatar,
3832
4495
  Badge,
4496
+ BeakerIcon,
3833
4497
  BellIcon,
4498
+ BookIcon,
4499
+ BrainIcon,
3834
4500
  Button,
3835
4501
  Calendar,
3836
4502
  CalendarIcon,
3837
4503
  CameraIcon,
3838
4504
  Card,
4505
+ ChatIcon,
4506
+ CheckCircleIcon,
3839
4507
  CheckIcon,
3840
4508
  Checkbox,
3841
4509
  ChevronDownIcon,
4510
+ ChevronLeftIcon,
3842
4511
  ChevronRightIcon,
4512
+ ChevronUpIcon,
3843
4513
  CloseIcon,
4514
+ CloudIcon,
4515
+ CodeIcon,
4516
+ CopyIcon,
4517
+ DatabaseIcon,
3844
4518
  DatePicker,
3845
4519
  DateTimePicker,
3846
4520
  Divider,
3847
4521
  DownloadIcon,
3848
4522
  Drawer,
3849
4523
  EditIcon,
4524
+ ExternalLinkIcon,
4525
+ EyeIcon,
4526
+ EyeOffIcon,
3850
4527
  FacebookIcon,
4528
+ FileIcon,
3851
4529
  FileUpload,
4530
+ FolderIcon,
3852
4531
  GitHubIcon,
4532
+ GlobeIcon,
3853
4533
  GoogleIcon,
3854
4534
  HeartIcon,
3855
4535
  HomeIcon,
4536
+ ImageIcon,
4537
+ InfoCircleIcon,
4538
+ KeyIcon,
3856
4539
  LinkedInIcon,
3857
4540
  LockIcon,
3858
4541
  MailIcon,
@@ -3861,22 +4544,33 @@ function getThemeScript() {
3861
4544
  Navbar,
3862
4545
  NumberInput,
3863
4546
  Pagination,
4547
+ PauseIcon,
4548
+ PlayIcon,
4549
+ PlugIcon,
3864
4550
  PlusIcon,
3865
4551
  ProgressBar,
3866
4552
  Radio,
4553
+ RefreshIcon,
3867
4554
  RichTextEditor,
4555
+ SaveIcon,
3868
4556
  SearchIcon,
3869
4557
  Select,
3870
4558
  SettingsIcon,
4559
+ ShieldIcon,
3871
4560
  Sidebar,
3872
4561
  SidebarProvider,
4562
+ SkipBackIcon,
4563
+ SkipForwardIcon,
3873
4564
  SlackIcon,
3874
4565
  Slider,
4566
+ SparklesIcon,
3875
4567
  Spinner,
3876
4568
  StarIcon,
3877
4569
  Stepper,
4570
+ StopIcon,
3878
4571
  Table,
3879
4572
  Tabs,
4573
+ TerminalIcon,
3880
4574
  TextInput,
3881
4575
  Textarea,
3882
4576
  ThemeProvider,
@@ -3887,6 +4581,8 @@ function getThemeScript() {
3887
4581
  TwitterIcon,
3888
4582
  UploadIcon,
3889
4583
  UserIcon,
4584
+ VolumeOffIcon,
4585
+ VolumeUpIcon,
3890
4586
  YouTubeIcon,
3891
4587
  getThemeScript,
3892
4588
  themeScript,