@marcoschwartz/lite-ui 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -390,10 +390,11 @@ var Sidebar = ({
390
390
  }) => {
391
391
  const { theme } = useTheme();
392
392
  const widthClass = widthClasses[width];
393
+ const borderClass = position === "left" ? "border-r" : "border-l";
393
394
  return /* @__PURE__ */ jsx6(
394
395
  "aside",
395
396
  {
396
- className: `${widthClass} bg-white dark:bg-gray-800 border-${position === "left" ? "r" : "l"} border-gray-200 dark:border-gray-700 h-full overflow-y-auto ${className}`,
397
+ className: `${widthClass} bg-white dark:bg-gray-800 ${borderClass} border-gray-200 dark:border-gray-700 h-full overflow-y-auto ${className}`,
397
398
  children
398
399
  }
399
400
  );
@@ -430,10 +431,357 @@ var useSidebar = () => {
430
431
  return context;
431
432
  };
432
433
 
434
+ // src/components/AppShell.tsx
435
+ import { useState as useState4 } from "react";
436
+
437
+ // src/icons/icon-utils.tsx
438
+ import { jsx as jsx8 } from "react/jsx-runtime";
439
+ var sizeClasses2 = {
440
+ xs: "w-3 h-3",
441
+ sm: "w-4 h-4",
442
+ md: "w-5 h-5",
443
+ lg: "w-6 h-6",
444
+ xl: "w-8 h-8"
445
+ };
446
+ var createIcon = (displayName, path, filled = false) => {
447
+ const Icon = ({ size = "md", className = "", color = "currentColor" }) => {
448
+ const sizeClass = sizeClasses2[size];
449
+ return /* @__PURE__ */ jsx8(
450
+ "svg",
451
+ {
452
+ className: `${sizeClass} ${className}`,
453
+ fill: filled ? color : "none",
454
+ viewBox: "0 0 24 24",
455
+ stroke: filled ? "none" : color,
456
+ "aria-hidden": "true",
457
+ children: path
458
+ }
459
+ );
460
+ };
461
+ Icon.displayName = displayName;
462
+ return Icon;
463
+ };
464
+
465
+ // src/icons/HomeIcon.tsx
466
+ import { jsx as jsx9 } from "react/jsx-runtime";
467
+ var HomeIcon = createIcon(
468
+ "HomeIcon",
469
+ /* @__PURE__ */ jsx9("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" })
470
+ );
471
+
472
+ // src/icons/UserIcon.tsx
473
+ import { jsx as jsx10 } from "react/jsx-runtime";
474
+ var UserIcon = createIcon(
475
+ "UserIcon",
476
+ /* @__PURE__ */ jsx10("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" })
477
+ );
478
+
479
+ // src/icons/SearchIcon.tsx
480
+ import { jsx as jsx11 } from "react/jsx-runtime";
481
+ var SearchIcon = createIcon(
482
+ "SearchIcon",
483
+ /* @__PURE__ */ jsx11("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" })
484
+ );
485
+
486
+ // src/icons/BellIcon.tsx
487
+ import { jsx as jsx12 } from "react/jsx-runtime";
488
+ var BellIcon = createIcon(
489
+ "BellIcon",
490
+ /* @__PURE__ */ jsx12("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9" })
491
+ );
492
+
493
+ // src/icons/SettingsIcon.tsx
494
+ import { Fragment as Fragment2, jsx as jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
495
+ var SettingsIcon = createIcon(
496
+ "SettingsIcon",
497
+ /* @__PURE__ */ jsxs5(Fragment2, { children: [
498
+ /* @__PURE__ */ jsx13("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" }),
499
+ /* @__PURE__ */ jsx13("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z" })
500
+ ] })
501
+ );
502
+
503
+ // src/icons/MenuIcon.tsx
504
+ import { jsx as jsx14 } from "react/jsx-runtime";
505
+ var MenuIcon = createIcon(
506
+ "MenuIcon",
507
+ /* @__PURE__ */ jsx14("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" })
508
+ );
509
+
510
+ // src/icons/CloseIcon.tsx
511
+ import { jsx as jsx15 } from "react/jsx-runtime";
512
+ var CloseIcon = createIcon(
513
+ "CloseIcon",
514
+ /* @__PURE__ */ jsx15("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" })
515
+ );
516
+
517
+ // src/icons/ChevronDownIcon.tsx
518
+ import { jsx as jsx16 } from "react/jsx-runtime";
519
+ var ChevronDownIcon = createIcon(
520
+ "ChevronDownIcon",
521
+ /* @__PURE__ */ jsx16("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" })
522
+ );
523
+
524
+ // src/icons/ChevronRightIcon.tsx
525
+ import { jsx as jsx17 } from "react/jsx-runtime";
526
+ var ChevronRightIcon = createIcon(
527
+ "ChevronRightIcon",
528
+ /* @__PURE__ */ jsx17("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" })
529
+ );
530
+
531
+ // src/icons/CheckIcon.tsx
532
+ import { jsx as jsx18 } from "react/jsx-runtime";
533
+ var CheckIcon = createIcon(
534
+ "CheckIcon",
535
+ /* @__PURE__ */ jsx18("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" })
536
+ );
537
+
538
+ // src/icons/PlusIcon.tsx
539
+ import { jsx as jsx19 } from "react/jsx-runtime";
540
+ var PlusIcon = createIcon(
541
+ "PlusIcon",
542
+ /* @__PURE__ */ jsx19("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 4v16m8-8H4" })
543
+ );
544
+
545
+ // src/icons/TrashIcon.tsx
546
+ import { jsx as jsx20 } from "react/jsx-runtime";
547
+ var TrashIcon = createIcon(
548
+ "TrashIcon",
549
+ /* @__PURE__ */ jsx20("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" })
550
+ );
551
+
552
+ // src/icons/EditIcon.tsx
553
+ import { jsx as jsx21 } from "react/jsx-runtime";
554
+ var EditIcon = createIcon(
555
+ "EditIcon",
556
+ /* @__PURE__ */ jsx21("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" })
557
+ );
558
+
559
+ // src/icons/MailIcon.tsx
560
+ import { jsx as jsx22 } from "react/jsx-runtime";
561
+ var MailIcon = createIcon(
562
+ "MailIcon",
563
+ /* @__PURE__ */ jsx22("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" })
564
+ );
565
+
566
+ // src/icons/StarIcon.tsx
567
+ import { jsx as jsx23 } from "react/jsx-runtime";
568
+ var StarIcon = createIcon(
569
+ "StarIcon",
570
+ /* @__PURE__ */ jsx23("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" })
571
+ );
572
+
573
+ // src/icons/HeartIcon.tsx
574
+ import { jsx as jsx24 } from "react/jsx-runtime";
575
+ var HeartIcon = createIcon(
576
+ "HeartIcon",
577
+ /* @__PURE__ */ jsx24("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" })
578
+ );
579
+
580
+ // src/icons/DownloadIcon.tsx
581
+ import { jsx as jsx25 } from "react/jsx-runtime";
582
+ var DownloadIcon = createIcon(
583
+ "DownloadIcon",
584
+ /* @__PURE__ */ jsx25("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" })
585
+ );
586
+
587
+ // src/icons/UploadIcon.tsx
588
+ import { jsx as jsx26 } from "react/jsx-runtime";
589
+ var UploadIcon = createIcon(
590
+ "UploadIcon",
591
+ /* @__PURE__ */ jsx26("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" })
592
+ );
593
+
594
+ // src/icons/CameraIcon.tsx
595
+ import { Fragment as Fragment3, jsx as jsx27, jsxs as jsxs6 } from "react/jsx-runtime";
596
+ var CameraIcon = createIcon(
597
+ "CameraIcon",
598
+ /* @__PURE__ */ jsxs6(Fragment3, { children: [
599
+ /* @__PURE__ */ jsx27("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" }),
600
+ /* @__PURE__ */ jsx27("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 13a3 3 0 11-6 0 3 3 0 016 0z" })
601
+ ] })
602
+ );
603
+
604
+ // src/icons/LockIcon.tsx
605
+ import { jsx as jsx28 } from "react/jsx-runtime";
606
+ var LockIcon = createIcon(
607
+ "LockIcon",
608
+ /* @__PURE__ */ jsx28("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" })
609
+ );
610
+
611
+ // src/icons/CalendarIcon.tsx
612
+ import { jsx as jsx29 } from "react/jsx-runtime";
613
+ var CalendarIcon = createIcon(
614
+ "CalendarIcon",
615
+ /* @__PURE__ */ jsx29("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" })
616
+ );
617
+
618
+ // src/icons/GoogleIcon.tsx
619
+ import { jsx as jsx30 } from "react/jsx-runtime";
620
+ var GoogleIcon = createIcon(
621
+ "GoogleIcon",
622
+ /* @__PURE__ */ jsx30("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" }),
623
+ true
624
+ );
625
+
626
+ // src/icons/GitHubIcon.tsx
627
+ import { jsx as jsx31 } from "react/jsx-runtime";
628
+ var GitHubIcon = createIcon(
629
+ "GitHubIcon",
630
+ /* @__PURE__ */ jsx31("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" }),
631
+ true
632
+ );
633
+
634
+ // src/icons/TwitterIcon.tsx
635
+ import { jsx as jsx32 } from "react/jsx-runtime";
636
+ var TwitterIcon = createIcon(
637
+ "TwitterIcon",
638
+ /* @__PURE__ */ jsx32("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" }),
639
+ true
640
+ );
641
+
642
+ // src/icons/FacebookIcon.tsx
643
+ import { jsx as jsx33 } from "react/jsx-runtime";
644
+ var FacebookIcon = createIcon(
645
+ "FacebookIcon",
646
+ /* @__PURE__ */ jsx33("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" }),
647
+ true
648
+ );
649
+
650
+ // src/icons/AppleIcon.tsx
651
+ import { jsx as jsx34 } from "react/jsx-runtime";
652
+ var AppleIcon = createIcon(
653
+ "AppleIcon",
654
+ /* @__PURE__ */ jsx34("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" }),
655
+ true
656
+ );
657
+
658
+ // src/icons/LinkedInIcon.tsx
659
+ import { jsx as jsx35 } from "react/jsx-runtime";
660
+ var LinkedInIcon = createIcon(
661
+ "LinkedInIcon",
662
+ /* @__PURE__ */ jsx35("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" }),
663
+ true
664
+ );
665
+
666
+ // src/icons/YouTubeIcon.tsx
667
+ import { jsx as jsx36 } from "react/jsx-runtime";
668
+ var YouTubeIcon = createIcon(
669
+ "YouTubeIcon",
670
+ /* @__PURE__ */ jsx36("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" }),
671
+ true
672
+ );
673
+
674
+ // src/icons/SlackIcon.tsx
675
+ import { jsx as jsx37 } from "react/jsx-runtime";
676
+ var SlackIcon = createIcon(
677
+ "SlackIcon",
678
+ /* @__PURE__ */ jsx37("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" }),
679
+ true
680
+ );
681
+
682
+ // src/components/AppShell.tsx
683
+ import { Fragment as Fragment4, jsx as jsx38, jsxs as jsxs7 } from "react/jsx-runtime";
684
+ var widthClasses2 = {
685
+ sm: "w-48",
686
+ md: "w-64",
687
+ lg: "w-80"
688
+ };
689
+ var breakpointClasses = {
690
+ sm: "sm",
691
+ md: "md",
692
+ lg: "lg",
693
+ xl: "xl"
694
+ };
695
+ var AppShell = ({
696
+ children,
697
+ navbar,
698
+ header,
699
+ navbarTitle,
700
+ navbarLogo,
701
+ defaultNavbarOpen = false,
702
+ responsive = true,
703
+ className = ""
704
+ }) => {
705
+ const { theme } = useTheme();
706
+ const [isMobileNavbarOpen, setIsMobileNavbarOpen] = useState4(defaultNavbarOpen);
707
+ const navbarWidth = navbar?.width || "md";
708
+ const navbarBreakpoint = navbar?.breakpoint || "md";
709
+ const widthClass = widthClasses2[navbarWidth];
710
+ const breakpoint = breakpointClasses[navbarBreakpoint];
711
+ if (!responsive && navbar) {
712
+ return /* @__PURE__ */ jsxs7("div", { className: `min-h-screen flex flex-col ${className}`, children: [
713
+ header && /* @__PURE__ */ jsx38("div", { className: "w-full", children: header }),
714
+ /* @__PURE__ */ jsxs7("div", { className: "flex flex-1", children: [
715
+ /* @__PURE__ */ jsx38("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 }),
716
+ /* @__PURE__ */ jsx38("main", { className: "flex-1 overflow-y-auto", children })
717
+ ] })
718
+ ] });
719
+ }
720
+ if (!responsive) {
721
+ return /* @__PURE__ */ jsxs7("div", { className: `min-h-screen flex flex-col ${className}`, children: [
722
+ header && /* @__PURE__ */ jsx38("div", { className: "w-full", children: header }),
723
+ /* @__PURE__ */ jsx38("main", { className: "flex-1 overflow-y-auto", children })
724
+ ] });
725
+ }
726
+ if (navbar) {
727
+ const mobileHeaderClass = navbarBreakpoint === "sm" ? "sm:hidden" : navbarBreakpoint === "md" ? "md:hidden" : navbarBreakpoint === "lg" ? "lg:hidden" : "xl:hidden";
728
+ const desktopNavbarClass = navbarBreakpoint === "sm" ? "sm:block" : navbarBreakpoint === "md" ? "md:block" : navbarBreakpoint === "lg" ? "lg:block" : "xl:block";
729
+ const mobileDrawerClass = navbarBreakpoint === "sm" ? "sm:hidden" : navbarBreakpoint === "md" ? "md:hidden" : navbarBreakpoint === "lg" ? "lg:hidden" : "xl:hidden";
730
+ const sidebarWidthClass = navbarWidth === "sm" ? "w-48" : navbarWidth === "lg" ? "w-80" : "w-64";
731
+ return /* @__PURE__ */ jsxs7("div", { className: `min-h-screen flex flex-col bg-gray-50 dark:bg-gray-900 ${className}`, children: [
732
+ /* @__PURE__ */ jsxs7("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: [
733
+ navbarLogo ? /* @__PURE__ */ jsx38("div", { children: navbarLogo }) : navbarTitle ? /* @__PURE__ */ jsx38("span", { className: "text-xl font-bold text-gray-900 dark:text-gray-100", children: navbarTitle }) : null,
734
+ /* @__PURE__ */ jsx38(
735
+ "button",
736
+ {
737
+ className: "p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",
738
+ onClick: () => setIsMobileNavbarOpen(!isMobileNavbarOpen),
739
+ "aria-label": "Toggle menu",
740
+ children: /* @__PURE__ */ jsx38(MenuIcon, { size: "md" })
741
+ }
742
+ )
743
+ ] }),
744
+ header && /* @__PURE__ */ jsx38("div", { className: "w-full", children: header }),
745
+ /* @__PURE__ */ jsxs7("div", { className: "flex flex-1 min-h-0", children: [
746
+ /* @__PURE__ */ jsx38("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 }),
747
+ isMobileNavbarOpen && /* @__PURE__ */ jsxs7(Fragment4, { children: [
748
+ /* @__PURE__ */ jsx38(
749
+ "div",
750
+ {
751
+ className: `${mobileDrawerClass} fixed inset-0 z-40 bg-black/60 backdrop-blur-sm animate-in fade-in duration-200`,
752
+ onClick: () => setIsMobileNavbarOpen(false)
753
+ }
754
+ ),
755
+ /* @__PURE__ */ jsxs7("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: [
756
+ /* @__PURE__ */ jsxs7("div", { className: "p-4 border-b border-gray-200 dark:border-gray-700 flex items-center justify-between", children: [
757
+ navbarLogo ? /* @__PURE__ */ jsx38("div", { children: navbarLogo }) : navbarTitle ? /* @__PURE__ */ jsx38("span", { className: "text-xl font-bold text-gray-900 dark:text-gray-100", children: navbarTitle }) : null,
758
+ /* @__PURE__ */ jsx38(
759
+ "button",
760
+ {
761
+ className: "p-1 rounded hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",
762
+ onClick: () => setIsMobileNavbarOpen(false),
763
+ "aria-label": "Close menu",
764
+ children: /* @__PURE__ */ jsx38("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx38("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
765
+ }
766
+ )
767
+ ] }),
768
+ /* @__PURE__ */ jsx38("div", { className: "overflow-y-auto h-[calc(100vh-73px)]", children: navbar.content })
769
+ ] })
770
+ ] }),
771
+ /* @__PURE__ */ jsx38("main", { className: "flex-1 overflow-y-auto min-h-screen", children })
772
+ ] })
773
+ ] });
774
+ }
775
+ return /* @__PURE__ */ jsxs7("div", { className: `min-h-screen flex flex-col ${className}`, children: [
776
+ header && /* @__PURE__ */ jsx38("div", { className: "w-full", children: header }),
777
+ /* @__PURE__ */ jsx38("main", { className: "flex-1 overflow-y-auto", children })
778
+ ] });
779
+ };
780
+
433
781
  // src/components/Drawer.tsx
434
782
  import { useEffect as useEffect4 } from "react";
435
- import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
436
- var sizeClasses2 = {
783
+ import { Fragment as Fragment5, jsx as jsx39, jsxs as jsxs8 } from "react/jsx-runtime";
784
+ var sizeClasses3 = {
437
785
  left: {
438
786
  sm: "w-64",
439
787
  md: "w-80",
@@ -493,34 +841,34 @@ var Drawer = ({
493
841
  };
494
842
  }, [isOpen, onClose]);
495
843
  if (!isOpen) return null;
496
- const sizeClass = sizeClasses2[position][size];
844
+ const sizeClass = sizeClasses3[position][size];
497
845
  const positionClass = positionClasses[position];
498
- return /* @__PURE__ */ jsxs5(Fragment2, { children: [
499
- /* @__PURE__ */ jsx8(
846
+ return /* @__PURE__ */ jsxs8(Fragment5, { children: [
847
+ /* @__PURE__ */ jsx39(
500
848
  "div",
501
849
  {
502
850
  className: "fixed inset-0 z-40 bg-black/60 backdrop-blur-sm transition-all duration-200",
503
851
  onClick: onClose
504
852
  }
505
853
  ),
506
- /* @__PURE__ */ jsxs5(
854
+ /* @__PURE__ */ jsxs8(
507
855
  "div",
508
856
  {
509
857
  className: `fixed z-50 ${positionClass} ${sizeClass} bg-white dark:bg-gray-800 shadow-2xl overflow-hidden flex flex-col ${slideClasses[position]}`,
510
858
  children: [
511
- (title || showCloseButton) && /* @__PURE__ */ jsxs5("div", { className: "flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700", children: [
512
- title && /* @__PURE__ */ jsx8("h3", { className: "text-xl font-semibold text-gray-900 dark:text-gray-100", children: title }),
513
- showCloseButton && /* @__PURE__ */ jsx8(
859
+ (title || showCloseButton) && /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700", children: [
860
+ title && /* @__PURE__ */ jsx39("h3", { className: "text-xl font-semibold text-gray-900 dark:text-gray-100", children: title }),
861
+ showCloseButton && /* @__PURE__ */ jsx39(
514
862
  "button",
515
863
  {
516
864
  onClick: onClose,
517
865
  className: "ml-auto text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors",
518
866
  "aria-label": "Close drawer",
519
- children: /* @__PURE__ */ jsx8("svg", { className: "w-6 h-6", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx8("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
867
+ children: /* @__PURE__ */ jsx39("svg", { className: "w-6 h-6", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx39("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
520
868
  }
521
869
  )
522
870
  ] }),
523
- /* @__PURE__ */ jsx8("div", { className: "flex-1 p-6 overflow-y-auto", children })
871
+ /* @__PURE__ */ jsx39("div", { className: "flex-1 p-6 overflow-y-auto", children })
524
872
  ]
525
873
  }
526
874
  )
@@ -529,8 +877,8 @@ var Drawer = ({
529
877
 
530
878
  // src/components/TextInput.tsx
531
879
  import { forwardRef } from "react";
532
- import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
533
- var sizeClasses3 = {
880
+ import { jsx as jsx40, jsxs as jsxs9 } from "react/jsx-runtime";
881
+ var sizeClasses4 = {
534
882
  sm: "px-3 py-1.5 text-sm",
535
883
  md: "px-4 py-2.5 text-base",
536
884
  lg: "px-4 py-3 text-lg"
@@ -550,16 +898,16 @@ var TextInput = forwardRef(
550
898
  }, ref) => {
551
899
  const { theme, themeName } = useTheme();
552
900
  const baseStyles = theme.select?.base || "w-full appearance-none rounded-lg border border-gray-300 bg-white text-gray-900 transition-all duration-150 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent shadow-sm hover:border-gray-400 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-100 dark:hover:border-gray-500";
553
- const sizeStyle = sizeClasses3[size];
901
+ const sizeStyle = sizeClasses4[size];
554
902
  const errorStyles = error ? "border-red-500 focus:ring-red-500 dark:border-red-500" : "";
555
903
  const disabledStyles = disabled ? "opacity-50 cursor-not-allowed bg-gray-50 dark:bg-gray-900" : "";
556
904
  const widthStyle = fullWidth ? "w-full" : "";
557
905
  const paddingWithIcon = leftIcon ? "pl-10" : rightIcon ? "pr-10" : "";
558
- return /* @__PURE__ */ jsxs6("div", { className: `${widthStyle} ${className}`, children: [
559
- label && /* @__PURE__ */ jsx9("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
560
- /* @__PURE__ */ jsxs6("div", { className: "relative", children: [
561
- leftIcon && /* @__PURE__ */ jsx9("div", { className: "absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 dark:text-gray-500", children: leftIcon }),
562
- /* @__PURE__ */ jsx9(
906
+ return /* @__PURE__ */ jsxs9("div", { className: `${widthStyle} ${className}`, children: [
907
+ label && /* @__PURE__ */ jsx40("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
908
+ /* @__PURE__ */ jsxs9("div", { className: "relative", children: [
909
+ leftIcon && /* @__PURE__ */ jsx40("div", { className: "absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 dark:text-gray-500", children: leftIcon }),
910
+ /* @__PURE__ */ jsx40(
563
911
  "input",
564
912
  {
565
913
  ref,
@@ -568,25 +916,25 @@ var TextInput = forwardRef(
568
916
  ...props
569
917
  }
570
918
  ),
571
- rightIcon && /* @__PURE__ */ jsx9("div", { className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 dark:text-gray-500", children: rightIcon })
919
+ rightIcon && /* @__PURE__ */ jsx40("div", { className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 dark:text-gray-500", children: rightIcon })
572
920
  ] }),
573
- error && /* @__PURE__ */ jsx9("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
574
- helperText && !error && /* @__PURE__ */ jsx9("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
921
+ error && /* @__PURE__ */ jsx40("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
922
+ helperText && !error && /* @__PURE__ */ jsx40("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
575
923
  ] });
576
924
  }
577
925
  );
578
926
  TextInput.displayName = "TextInput";
579
927
 
580
928
  // src/components/ActionMenu.tsx
581
- import { useState as useState4, useRef as useRef2, useEffect as useEffect5 } from "react";
582
- import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
929
+ import { useState as useState5, useRef as useRef2, useEffect as useEffect5 } from "react";
930
+ import { jsx as jsx41, jsxs as jsxs10 } from "react/jsx-runtime";
583
931
  var ActionMenu = ({
584
932
  items,
585
933
  trigger,
586
934
  position = "right"
587
935
  }) => {
588
936
  const { themeName } = useTheme();
589
- const [isOpen, setIsOpen] = useState4(false);
937
+ const [isOpen, setIsOpen] = useState5(false);
590
938
  const menuRef = useRef2(null);
591
939
  useEffect5(() => {
592
940
  const handleClickOutside = (event) => {
@@ -605,33 +953,33 @@ var ActionMenu = ({
605
953
  setIsOpen(false);
606
954
  }
607
955
  };
608
- const defaultTrigger = /* @__PURE__ */ jsx10(
956
+ const defaultTrigger = /* @__PURE__ */ jsx41(
609
957
  "button",
610
958
  {
611
959
  className: "p-2 rounded-md hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",
612
960
  "aria-label": "Open menu",
613
- children: /* @__PURE__ */ jsx10("svg", { className: "w-5 h-5 text-gray-600 dark:text-gray-400", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx10("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" }) })
961
+ children: /* @__PURE__ */ jsx41("svg", { className: "w-5 h-5 text-gray-600 dark:text-gray-400", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx41("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" }) })
614
962
  }
615
963
  );
616
964
  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";
617
965
  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";
618
966
  const positionClass = position === "left" ? "left-0" : "right-0";
619
- return /* @__PURE__ */ jsxs7("div", { className: "relative inline-block", ref: menuRef, children: [
620
- /* @__PURE__ */ jsx10("div", { onClick: () => setIsOpen(!isOpen), children: trigger || defaultTrigger }),
621
- isOpen && /* @__PURE__ */ jsx10(
967
+ return /* @__PURE__ */ jsxs10("div", { className: "relative inline-block", ref: menuRef, children: [
968
+ /* @__PURE__ */ jsx41("div", { onClick: () => setIsOpen(!isOpen), children: trigger || defaultTrigger }),
969
+ isOpen && /* @__PURE__ */ jsx41(
622
970
  "div",
623
971
  {
624
972
  className: `absolute ${positionClass} mt-2 w-56 rounded-lg ${menuBaseStyles} z-50 overflow-hidden`,
625
973
  style: { minWidth: "14rem" },
626
- children: items.map((item, index) => /* @__PURE__ */ jsxs7(
974
+ children: items.map((item, index) => /* @__PURE__ */ jsxs10(
627
975
  "button",
628
976
  {
629
977
  onClick: () => handleItemClick(item),
630
978
  disabled: item.disabled,
631
979
  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" : ""}`,
632
980
  children: [
633
- item.icon && /* @__PURE__ */ jsx10("span", { className: "flex-shrink-0", children: item.icon }),
634
- /* @__PURE__ */ jsx10("span", { className: "flex-1", children: item.label })
981
+ item.icon && /* @__PURE__ */ jsx41("span", { className: "flex-shrink-0", children: item.icon }),
982
+ /* @__PURE__ */ jsx41("span", { className: "flex-1", children: item.label })
635
983
  ]
636
984
  },
637
985
  index
@@ -642,7 +990,7 @@ var ActionMenu = ({
642
990
  };
643
991
 
644
992
  // src/components/Card.tsx
645
- import { jsx as jsx11 } from "react/jsx-runtime";
993
+ import { jsx as jsx42 } from "react/jsx-runtime";
646
994
  var paddingClasses = {
647
995
  none: "",
648
996
  sm: "p-4",
@@ -658,7 +1006,7 @@ var Card = ({
658
1006
  const { theme } = useTheme();
659
1007
  const paddingClass = paddingClasses[padding];
660
1008
  const hoverClass = hover ? "hover:shadow-lg transition-shadow duration-200" : "";
661
- return /* @__PURE__ */ jsx11(
1009
+ return /* @__PURE__ */ jsx42(
662
1010
  "div",
663
1011
  {
664
1012
  className: `bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 ${paddingClass} ${hoverClass} ${className}`,
@@ -668,7 +1016,7 @@ var Card = ({
668
1016
  };
669
1017
 
670
1018
  // src/components/Alert.tsx
671
- import { jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
1019
+ import { jsx as jsx43, jsxs as jsxs11 } from "react/jsx-runtime";
672
1020
  var variantStyles = {
673
1021
  info: "bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-800 text-blue-900 dark:text-blue-100",
674
1022
  success: "bg-green-50 dark:bg-green-900/20 border-green-200 dark:border-green-800 text-green-900 dark:text-green-100",
@@ -691,24 +1039,24 @@ var Alert = ({
691
1039
  const { theme } = useTheme();
692
1040
  const variantClass = variantStyles[variant];
693
1041
  const iconClass = iconStyles[variant];
694
- return /* @__PURE__ */ jsx12("div", { className: `rounded-lg border p-4 ${variantClass} ${className}`, role: "alert", children: /* @__PURE__ */ jsxs8("div", { className: "flex items-start gap-3", children: [
695
- /* @__PURE__ */ jsxs8("div", { className: `flex-shrink-0 ${iconClass}`, children: [
696
- variant === "info" && /* @__PURE__ */ jsx12("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ jsx12("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" }) }),
697
- variant === "success" && /* @__PURE__ */ jsx12("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ jsx12("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" }) }),
698
- variant === "warning" && /* @__PURE__ */ jsx12("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ jsx12("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" }) }),
699
- variant === "error" && /* @__PURE__ */ jsx12("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ jsx12("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" }) })
1042
+ return /* @__PURE__ */ jsx43("div", { className: `rounded-lg border p-4 ${variantClass} ${className}`, role: "alert", children: /* @__PURE__ */ jsxs11("div", { className: "flex items-start gap-3", children: [
1043
+ /* @__PURE__ */ jsxs11("div", { className: `flex-shrink-0 ${iconClass}`, children: [
1044
+ variant === "info" && /* @__PURE__ */ jsx43("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ jsx43("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" }) }),
1045
+ variant === "success" && /* @__PURE__ */ jsx43("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ jsx43("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" }) }),
1046
+ variant === "warning" && /* @__PURE__ */ jsx43("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ jsx43("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" }) }),
1047
+ variant === "error" && /* @__PURE__ */ jsx43("svg", { className: "w-5 h-5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ jsx43("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" }) })
700
1048
  ] }),
701
- /* @__PURE__ */ jsxs8("div", { className: "flex-1", children: [
702
- title && /* @__PURE__ */ jsx12("h3", { className: "font-semibold mb-1", children: title }),
703
- /* @__PURE__ */ jsx12("div", { className: "text-sm", children })
1049
+ /* @__PURE__ */ jsxs11("div", { className: "flex-1", children: [
1050
+ title && /* @__PURE__ */ jsx43("h3", { className: "font-semibold mb-1", children: title }),
1051
+ /* @__PURE__ */ jsx43("div", { className: "text-sm", children })
704
1052
  ] }),
705
- onClose && /* @__PURE__ */ jsx12(
1053
+ onClose && /* @__PURE__ */ jsx43(
706
1054
  "button",
707
1055
  {
708
1056
  onClick: onClose,
709
1057
  className: `flex-shrink-0 ${iconClass} hover:opacity-70 transition-opacity`,
710
1058
  "aria-label": "Close alert",
711
- children: /* @__PURE__ */ jsx12("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx12("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
1059
+ children: /* @__PURE__ */ jsx43("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx43("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) })
712
1060
  }
713
1061
  )
714
1062
  ] }) });
@@ -716,13 +1064,13 @@ var Alert = ({
716
1064
 
717
1065
  // src/components/Checkbox.tsx
718
1066
  import { forwardRef as forwardRef2 } from "react";
719
- import { jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
1067
+ import { jsx as jsx44, jsxs as jsxs12 } from "react/jsx-runtime";
720
1068
  var Checkbox = forwardRef2(
721
1069
  ({ label, error, className = "", disabled, ...props }, ref) => {
722
1070
  const { theme } = useTheme();
723
- return /* @__PURE__ */ jsxs9("div", { className, children: [
724
- /* @__PURE__ */ jsxs9("label", { className: "flex items-center gap-2 cursor-pointer group", children: [
725
- /* @__PURE__ */ jsx13(
1071
+ return /* @__PURE__ */ jsxs12("div", { className, children: [
1072
+ /* @__PURE__ */ jsxs12("label", { className: "flex items-center gap-2 cursor-pointer group", children: [
1073
+ /* @__PURE__ */ jsx44(
726
1074
  "input",
727
1075
  {
728
1076
  ref,
@@ -732,9 +1080,9 @@ var Checkbox = forwardRef2(
732
1080
  ...props
733
1081
  }
734
1082
  ),
735
- label && /* @__PURE__ */ jsx13("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 })
1083
+ label && /* @__PURE__ */ jsx44("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 })
736
1084
  ] }),
737
- error && /* @__PURE__ */ jsx13("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error })
1085
+ error && /* @__PURE__ */ jsx44("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error })
738
1086
  ] });
739
1087
  }
740
1088
  );
@@ -742,7 +1090,7 @@ Checkbox.displayName = "Checkbox";
742
1090
 
743
1091
  // src/components/Toggle.tsx
744
1092
  import { forwardRef as forwardRef3 } from "react";
745
- import { jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
1093
+ import { jsx as jsx45, jsxs as jsxs13 } from "react/jsx-runtime";
746
1094
  var Toggle = forwardRef3(
747
1095
  ({ label, size = "md", className = "", disabled, checked, ...props }, ref) => {
748
1096
  const { theme } = useTheme();
@@ -761,9 +1109,9 @@ var Toggle = forwardRef3(
761
1109
  }
762
1110
  };
763
1111
  const currentSize = toggleClasses[size];
764
- return /* @__PURE__ */ jsxs10("label", { className: `inline-flex items-center gap-3 cursor-pointer ${disabled ? "opacity-50 cursor-not-allowed" : ""} ${className}`, children: [
765
- /* @__PURE__ */ jsxs10("div", { className: "relative", children: [
766
- /* @__PURE__ */ jsx14(
1112
+ return /* @__PURE__ */ jsxs13("label", { className: `inline-flex items-center gap-3 cursor-pointer ${disabled ? "opacity-50 cursor-not-allowed" : ""} ${className}`, children: [
1113
+ /* @__PURE__ */ jsxs13("div", { className: "relative", children: [
1114
+ /* @__PURE__ */ jsx45(
767
1115
  "input",
768
1116
  {
769
1117
  ref,
@@ -774,27 +1122,27 @@ var Toggle = forwardRef3(
774
1122
  ...props
775
1123
  }
776
1124
  ),
777
- /* @__PURE__ */ jsx14(
1125
+ /* @__PURE__ */ jsx45(
778
1126
  "div",
779
1127
  {
780
1128
  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`
781
1129
  }
782
1130
  ),
783
- /* @__PURE__ */ jsx14(
1131
+ /* @__PURE__ */ jsx45(
784
1132
  "div",
785
1133
  {
786
1134
  className: `${currentSize.thumb} bg-white rounded-full shadow-md absolute top-0.5 left-0.5 transition-transform`
787
1135
  }
788
1136
  )
789
1137
  ] }),
790
- label && /* @__PURE__ */ jsx14("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label })
1138
+ label && /* @__PURE__ */ jsx45("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label })
791
1139
  ] });
792
1140
  }
793
1141
  );
794
1142
  Toggle.displayName = "Toggle";
795
1143
 
796
1144
  // src/components/Badge.tsx
797
- import { jsx as jsx15 } from "react/jsx-runtime";
1145
+ import { jsx as jsx46 } from "react/jsx-runtime";
798
1146
  var variantStyles2 = {
799
1147
  default: "bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-200",
800
1148
  primary: "bg-blue-100 dark:bg-blue-900/30 text-blue-800 dark:text-blue-200",
@@ -817,12 +1165,12 @@ var Badge = ({
817
1165
  const { theme } = useTheme();
818
1166
  const variantClass = variantStyles2[variant];
819
1167
  const sizeClass = sizeStyles[size];
820
- return /* @__PURE__ */ jsx15("span", { className: `inline-flex items-center font-medium rounded-full ${variantClass} ${sizeClass} ${className}`, children });
1168
+ return /* @__PURE__ */ jsx46("span", { className: `inline-flex items-center font-medium rounded-full ${variantClass} ${sizeClass} ${className}`, children });
821
1169
  };
822
1170
 
823
1171
  // src/components/Spinner.tsx
824
- import { jsx as jsx16 } from "react/jsx-runtime";
825
- var sizeClasses4 = {
1172
+ import { jsx as jsx47 } from "react/jsx-runtime";
1173
+ var sizeClasses5 = {
826
1174
  sm: "w-4 h-4 border-2",
827
1175
  md: "w-8 h-8 border-2",
828
1176
  lg: "w-12 h-12 border-3",
@@ -839,22 +1187,22 @@ var Spinner = ({
839
1187
  className = ""
840
1188
  }) => {
841
1189
  const { theme } = useTheme();
842
- const sizeClass = sizeClasses4[size];
1190
+ const sizeClass = sizeClasses5[size];
843
1191
  const colorClass = colorClasses[color];
844
- return /* @__PURE__ */ jsx16(
1192
+ return /* @__PURE__ */ jsx47(
845
1193
  "div",
846
1194
  {
847
1195
  className: `inline-block rounded-full animate-spin ${sizeClass} ${colorClass} ${className}`,
848
1196
  role: "status",
849
1197
  "aria-label": "Loading",
850
- children: /* @__PURE__ */ jsx16("span", { className: "sr-only", children: "Loading..." })
1198
+ children: /* @__PURE__ */ jsx47("span", { className: "sr-only", children: "Loading..." })
851
1199
  }
852
1200
  );
853
1201
  };
854
1202
 
855
1203
  // src/components/Tabs.tsx
856
- import { useState as useState5 } from "react";
857
- import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
1204
+ import { useState as useState6 } from "react";
1205
+ import { jsx as jsx48, jsxs as jsxs14 } from "react/jsx-runtime";
858
1206
  var Tabs = ({
859
1207
  tabs,
860
1208
  defaultIndex = 0,
@@ -862,14 +1210,14 @@ var Tabs = ({
862
1210
  className = ""
863
1211
  }) => {
864
1212
  const { theme } = useTheme();
865
- const [activeIndex, setActiveIndex] = useState5(defaultIndex);
1213
+ const [activeIndex, setActiveIndex] = useState6(defaultIndex);
866
1214
  const handleTabClick = (index) => {
867
1215
  if (tabs[index].disabled) return;
868
1216
  setActiveIndex(index);
869
1217
  onChange?.(index);
870
1218
  };
871
- return /* @__PURE__ */ jsxs11("div", { className, children: [
872
- /* @__PURE__ */ jsx17("div", { className: "border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ jsx17("nav", { className: "flex gap-8 px-6", "aria-label": "Tabs", children: tabs.map((tab, index) => /* @__PURE__ */ jsx17(
1219
+ return /* @__PURE__ */ jsxs14("div", { className, children: [
1220
+ /* @__PURE__ */ jsx48("div", { className: "border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ jsx48("nav", { className: "flex gap-8 px-6", "aria-label": "Tabs", children: tabs.map((tab, index) => /* @__PURE__ */ jsx48(
873
1221
  "button",
874
1222
  {
875
1223
  onClick: () => handleTabClick(index),
@@ -880,12 +1228,12 @@ var Tabs = ({
880
1228
  },
881
1229
  index
882
1230
  )) }) }),
883
- /* @__PURE__ */ jsx17("div", { children: tabs[activeIndex]?.content })
1231
+ /* @__PURE__ */ jsx48("div", { children: tabs[activeIndex]?.content })
884
1232
  ] });
885
1233
  };
886
1234
 
887
1235
  // src/components/Table.tsx
888
- import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
1236
+ import { jsx as jsx49, jsxs as jsxs15 } from "react/jsx-runtime";
889
1237
  function Table({
890
1238
  columns,
891
1239
  data,
@@ -895,9 +1243,9 @@ function Table({
895
1243
  className = ""
896
1244
  }) {
897
1245
  const { theme } = useTheme();
898
- return /* @__PURE__ */ jsxs12("div", { className: `overflow-x-auto ${className}`, children: [
899
- /* @__PURE__ */ jsxs12("table", { className: "w-full text-left", children: [
900
- /* @__PURE__ */ jsx18("thead", { className: "bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ jsx18("tr", { children: columns.map((column) => /* @__PURE__ */ jsx18(
1246
+ return /* @__PURE__ */ jsxs15("div", { className: `overflow-x-auto ${className}`, children: [
1247
+ /* @__PURE__ */ jsxs15("table", { className: "w-full text-left", children: [
1248
+ /* @__PURE__ */ jsx49("thead", { className: "bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ jsx49("tr", { children: columns.map((column) => /* @__PURE__ */ jsx49(
901
1249
  "th",
902
1250
  {
903
1251
  className: "px-6 py-3 text-xs font-medium text-gray-700 dark:text-gray-300 uppercase tracking-wider",
@@ -906,14 +1254,14 @@ function Table({
906
1254
  },
907
1255
  column.key
908
1256
  )) }) }),
909
- /* @__PURE__ */ jsx18("tbody", { className: "bg-white dark:bg-gray-900 divide-y divide-gray-200 dark:divide-gray-700", children: data.map((row, rowIndex) => /* @__PURE__ */ jsx18(
1257
+ /* @__PURE__ */ jsx49("tbody", { className: "bg-white dark:bg-gray-900 divide-y divide-gray-200 dark:divide-gray-700", children: data.map((row, rowIndex) => /* @__PURE__ */ jsx49(
910
1258
  "tr",
911
1259
  {
912
1260
  className: `
913
1261
  ${striped && rowIndex % 2 === 1 ? "bg-gray-50 dark:bg-gray-800/50" : ""}
914
1262
  ${hoverable ? "hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors" : ""}
915
1263
  `,
916
- children: columns.map((column) => /* @__PURE__ */ jsx18(
1264
+ children: columns.map((column) => /* @__PURE__ */ jsx49(
917
1265
  "td",
918
1266
  {
919
1267
  className: "px-6 py-4 text-sm text-gray-900 dark:text-gray-100",
@@ -925,12 +1273,12 @@ function Table({
925
1273
  row[keyField] || rowIndex
926
1274
  )) })
927
1275
  ] }),
928
- data.length === 0 && /* @__PURE__ */ jsx18("div", { className: "text-center py-8 text-gray-500 dark:text-gray-400", children: "No data available" })
1276
+ data.length === 0 && /* @__PURE__ */ jsx49("div", { className: "text-center py-8 text-gray-500 dark:text-gray-400", children: "No data available" })
929
1277
  ] });
930
1278
  }
931
1279
 
932
1280
  // src/components/Pagination.tsx
933
- import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
1281
+ import { jsx as jsx50, jsxs as jsxs16 } from "react/jsx-runtime";
934
1282
  var Pagination = ({
935
1283
  currentPage,
936
1284
  totalPages,
@@ -971,8 +1319,8 @@ var Pagination = ({
971
1319
  return range(1, totalPages);
972
1320
  };
973
1321
  const pages = paginationRange();
974
- return /* @__PURE__ */ jsxs13("nav", { className: `flex items-center gap-1 ${className}`, "aria-label": "Pagination", children: [
975
- /* @__PURE__ */ jsx19(
1322
+ return /* @__PURE__ */ jsxs16("nav", { className: `flex items-center gap-1 ${className}`, "aria-label": "Pagination", children: [
1323
+ /* @__PURE__ */ jsx50(
976
1324
  "button",
977
1325
  {
978
1326
  onClick: () => onPageChange(currentPage - 1),
@@ -984,7 +1332,7 @@ var Pagination = ({
984
1332
  ),
985
1333
  pages.map((page, index) => {
986
1334
  if (page === "...") {
987
- return /* @__PURE__ */ jsx19(
1335
+ return /* @__PURE__ */ jsx50(
988
1336
  "span",
989
1337
  {
990
1338
  className: "px-3 py-2 text-gray-700 dark:text-gray-300",
@@ -993,7 +1341,7 @@ var Pagination = ({
993
1341
  `dots-${index}`
994
1342
  );
995
1343
  }
996
- return /* @__PURE__ */ jsx19(
1344
+ return /* @__PURE__ */ jsx50(
997
1345
  "button",
998
1346
  {
999
1347
  onClick: () => onPageChange(page),
@@ -1005,7 +1353,7 @@ var Pagination = ({
1005
1353
  page
1006
1354
  );
1007
1355
  }),
1008
- /* @__PURE__ */ jsx19(
1356
+ /* @__PURE__ */ jsx50(
1009
1357
  "button",
1010
1358
  {
1011
1359
  onClick: () => onPageChange(currentPage + 1),
@@ -1020,16 +1368,16 @@ var Pagination = ({
1020
1368
 
1021
1369
  // src/components/DatePicker.tsx
1022
1370
  import { forwardRef as forwardRef4 } from "react";
1023
- import { jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
1371
+ import { jsx as jsx51, jsxs as jsxs17 } from "react/jsx-runtime";
1024
1372
  var DatePicker = forwardRef4(
1025
1373
  ({ label, error, helperText, className = "", disabled, ...props }, ref) => {
1026
1374
  const { theme } = useTheme();
1027
1375
  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";
1028
1376
  const errorStyles = error ? "border-red-500 focus:ring-red-500 dark:border-red-500" : "";
1029
1377
  const disabledStyles = disabled ? "opacity-50 cursor-not-allowed bg-gray-50 dark:bg-gray-900" : "";
1030
- return /* @__PURE__ */ jsxs14("div", { className, children: [
1031
- label && /* @__PURE__ */ jsx20("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1032
- /* @__PURE__ */ jsx20(
1378
+ return /* @__PURE__ */ jsxs17("div", { className, children: [
1379
+ label && /* @__PURE__ */ jsx51("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1380
+ /* @__PURE__ */ jsx51(
1033
1381
  "input",
1034
1382
  {
1035
1383
  ref,
@@ -1039,8 +1387,8 @@ var DatePicker = forwardRef4(
1039
1387
  ...props
1040
1388
  }
1041
1389
  ),
1042
- error && /* @__PURE__ */ jsx20("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1043
- helperText && !error && /* @__PURE__ */ jsx20("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1390
+ error && /* @__PURE__ */ jsx51("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1391
+ helperText && !error && /* @__PURE__ */ jsx51("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1044
1392
  ] });
1045
1393
  }
1046
1394
  );
@@ -1048,16 +1396,16 @@ DatePicker.displayName = "DatePicker";
1048
1396
 
1049
1397
  // src/components/TimePicker.tsx
1050
1398
  import { forwardRef as forwardRef5 } from "react";
1051
- import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
1399
+ import { jsx as jsx52, jsxs as jsxs18 } from "react/jsx-runtime";
1052
1400
  var TimePicker = forwardRef5(
1053
1401
  ({ label, error, helperText, className = "", disabled, ...props }, ref) => {
1054
1402
  const { theme } = useTheme();
1055
1403
  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";
1056
1404
  const errorStyles = error ? "border-red-500 focus:ring-red-500 dark:border-red-500" : "";
1057
1405
  const disabledStyles = disabled ? "opacity-50 cursor-not-allowed bg-gray-50 dark:bg-gray-900" : "";
1058
- return /* @__PURE__ */ jsxs15("div", { className, children: [
1059
- label && /* @__PURE__ */ jsx21("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1060
- /* @__PURE__ */ jsx21(
1406
+ return /* @__PURE__ */ jsxs18("div", { className, children: [
1407
+ label && /* @__PURE__ */ jsx52("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1408
+ /* @__PURE__ */ jsx52(
1061
1409
  "input",
1062
1410
  {
1063
1411
  ref,
@@ -1067,8 +1415,8 @@ var TimePicker = forwardRef5(
1067
1415
  ...props
1068
1416
  }
1069
1417
  ),
1070
- error && /* @__PURE__ */ jsx21("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1071
- helperText && !error && /* @__PURE__ */ jsx21("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1418
+ error && /* @__PURE__ */ jsx52("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1419
+ helperText && !error && /* @__PURE__ */ jsx52("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1072
1420
  ] });
1073
1421
  }
1074
1422
  );
@@ -1076,16 +1424,16 @@ TimePicker.displayName = "TimePicker";
1076
1424
 
1077
1425
  // src/components/DateTimePicker.tsx
1078
1426
  import { forwardRef as forwardRef6 } from "react";
1079
- import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
1427
+ import { jsx as jsx53, jsxs as jsxs19 } from "react/jsx-runtime";
1080
1428
  var DateTimePicker = forwardRef6(
1081
1429
  ({ label, error, helperText, className = "", disabled, ...props }, ref) => {
1082
1430
  const { theme } = useTheme();
1083
1431
  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";
1084
1432
  const errorStyles = error ? "border-red-500 focus:ring-red-500 dark:border-red-500" : "";
1085
1433
  const disabledStyles = disabled ? "opacity-50 cursor-not-allowed bg-gray-50 dark:bg-gray-900" : "";
1086
- return /* @__PURE__ */ jsxs16("div", { className, children: [
1087
- label && /* @__PURE__ */ jsx22("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1088
- /* @__PURE__ */ jsx22(
1434
+ return /* @__PURE__ */ jsxs19("div", { className, children: [
1435
+ label && /* @__PURE__ */ jsx53("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1436
+ /* @__PURE__ */ jsx53(
1089
1437
  "input",
1090
1438
  {
1091
1439
  ref,
@@ -1095,16 +1443,16 @@ var DateTimePicker = forwardRef6(
1095
1443
  ...props
1096
1444
  }
1097
1445
  ),
1098
- error && /* @__PURE__ */ jsx22("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1099
- helperText && !error && /* @__PURE__ */ jsx22("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1446
+ error && /* @__PURE__ */ jsx53("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1447
+ helperText && !error && /* @__PURE__ */ jsx53("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1100
1448
  ] });
1101
1449
  }
1102
1450
  );
1103
1451
  DateTimePicker.displayName = "DateTimePicker";
1104
1452
 
1105
1453
  // src/components/Radio.tsx
1106
- import React14 from "react";
1107
- import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime";
1454
+ import React15 from "react";
1455
+ import { jsx as jsx54, jsxs as jsxs20 } from "react/jsx-runtime";
1108
1456
  var Radio = ({
1109
1457
  name,
1110
1458
  options,
@@ -1115,7 +1463,7 @@ var Radio = ({
1115
1463
  orientation = "vertical",
1116
1464
  className = ""
1117
1465
  }) => {
1118
- const [internalValue, setInternalValue] = React14.useState(defaultValue || "");
1466
+ const [internalValue, setInternalValue] = React15.useState(defaultValue || "");
1119
1467
  const value = controlledValue !== void 0 ? controlledValue : internalValue;
1120
1468
  const handleChange = (optionValue) => {
1121
1469
  if (disabled) return;
@@ -1123,17 +1471,17 @@ var Radio = ({
1123
1471
  onChange?.(optionValue);
1124
1472
  };
1125
1473
  const containerClass = orientation === "horizontal" ? "flex flex-wrap gap-4" : "flex flex-col gap-2";
1126
- return /* @__PURE__ */ jsx23("div", { className: `${containerClass} ${className}`, role: "radiogroup", children: options.map((option) => {
1474
+ return /* @__PURE__ */ jsx54("div", { className: `${containerClass} ${className}`, role: "radiogroup", children: options.map((option) => {
1127
1475
  const isDisabled = disabled || option.disabled;
1128
1476
  const isChecked = value === option.value;
1129
1477
  const id = `${name}-${option.value}`;
1130
- return /* @__PURE__ */ jsxs17(
1478
+ return /* @__PURE__ */ jsxs20(
1131
1479
  "label",
1132
1480
  {
1133
1481
  htmlFor: id,
1134
1482
  className: `flex items-center gap-2 cursor-pointer ${isDisabled ? "opacity-50 cursor-not-allowed" : ""}`,
1135
1483
  children: [
1136
- /* @__PURE__ */ jsx23(
1484
+ /* @__PURE__ */ jsx54(
1137
1485
  "input",
1138
1486
  {
1139
1487
  type: "radio",
@@ -1146,7 +1494,7 @@ var Radio = ({
1146
1494
  className: "w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600 cursor-pointer disabled:cursor-not-allowed"
1147
1495
  }
1148
1496
  ),
1149
- /* @__PURE__ */ jsx23("span", { className: "text-sm font-medium text-gray-900 dark:text-gray-300", children: option.label })
1497
+ /* @__PURE__ */ jsx54("span", { className: "text-sm font-medium text-gray-900 dark:text-gray-300", children: option.label })
1150
1498
  ]
1151
1499
  },
1152
1500
  option.value
@@ -1155,7 +1503,7 @@ var Radio = ({
1155
1503
  };
1156
1504
 
1157
1505
  // src/components/ProgressBar.tsx
1158
- import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
1506
+ import { jsx as jsx55, jsxs as jsxs21 } from "react/jsx-runtime";
1159
1507
  var ProgressBar = ({
1160
1508
  value,
1161
1509
  max = 100,
@@ -1177,15 +1525,15 @@ var ProgressBar = ({
1177
1525
  warning: "bg-yellow-500 dark:bg-yellow-400",
1178
1526
  danger: "bg-red-600 dark:bg-red-500"
1179
1527
  };
1180
- return /* @__PURE__ */ jsxs18("div", { className: `w-full ${className}`, children: [
1181
- (showLabel || label) && /* @__PURE__ */ jsxs18("div", { className: "flex justify-between items-center mb-1", children: [
1182
- label && /* @__PURE__ */ jsx24("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label }),
1183
- showLabel && /* @__PURE__ */ jsxs18("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: [
1528
+ return /* @__PURE__ */ jsxs21("div", { className: `w-full ${className}`, children: [
1529
+ (showLabel || label) && /* @__PURE__ */ jsxs21("div", { className: "flex justify-between items-center mb-1", children: [
1530
+ label && /* @__PURE__ */ jsx55("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label }),
1531
+ showLabel && /* @__PURE__ */ jsxs21("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: [
1184
1532
  Math.round(percentage),
1185
1533
  "%"
1186
1534
  ] })
1187
1535
  ] }),
1188
- /* @__PURE__ */ jsx24(
1536
+ /* @__PURE__ */ jsx55(
1189
1537
  "div",
1190
1538
  {
1191
1539
  className: `w-full bg-gray-200 dark:bg-gray-700 rounded-full overflow-hidden ${sizeClasses6[size]}`,
@@ -1193,7 +1541,7 @@ var ProgressBar = ({
1193
1541
  "aria-valuenow": value,
1194
1542
  "aria-valuemin": 0,
1195
1543
  "aria-valuemax": max,
1196
- children: /* @__PURE__ */ jsx24(
1544
+ children: /* @__PURE__ */ jsx55(
1197
1545
  "div",
1198
1546
  {
1199
1547
  className: `${sizeClasses6[size]} ${variantClasses[variant]} rounded-full transition-all duration-300 ease-out`,
@@ -1206,8 +1554,8 @@ var ProgressBar = ({
1206
1554
  };
1207
1555
 
1208
1556
  // src/components/Slider.tsx
1209
- import React15 from "react";
1210
- import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
1557
+ import React16 from "react";
1558
+ import { jsx as jsx56, jsxs as jsxs22 } from "react/jsx-runtime";
1211
1559
  var Slider = ({
1212
1560
  value: controlledValue,
1213
1561
  defaultValue = 50,
@@ -1220,7 +1568,7 @@ var Slider = ({
1220
1568
  label,
1221
1569
  className = ""
1222
1570
  }) => {
1223
- const [internalValue, setInternalValue] = React15.useState(defaultValue);
1571
+ const [internalValue, setInternalValue] = React16.useState(defaultValue);
1224
1572
  const value = controlledValue !== void 0 ? controlledValue : internalValue;
1225
1573
  const handleChange = (e) => {
1226
1574
  const newValue = Number(e.target.value);
@@ -1228,21 +1576,21 @@ var Slider = ({
1228
1576
  onChange?.(newValue);
1229
1577
  };
1230
1578
  const percentage = (value - min) / (max - min) * 100;
1231
- return /* @__PURE__ */ jsxs19("div", { className: `w-full ${className}`, children: [
1232
- (label || showValue) && /* @__PURE__ */ jsxs19("div", { className: "flex justify-between items-center mb-2", children: [
1233
- label && /* @__PURE__ */ jsx25("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label }),
1234
- showValue && /* @__PURE__ */ jsx25("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: value })
1579
+ return /* @__PURE__ */ jsxs22("div", { className: `w-full ${className}`, children: [
1580
+ (label || showValue) && /* @__PURE__ */ jsxs22("div", { className: "flex justify-between items-center mb-2", children: [
1581
+ label && /* @__PURE__ */ jsx56("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: label }),
1582
+ showValue && /* @__PURE__ */ jsx56("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: value })
1235
1583
  ] }),
1236
- /* @__PURE__ */ jsxs19("div", { className: "relative", children: [
1237
- /* @__PURE__ */ jsx25("div", { className: "absolute inset-0 h-2 bg-gray-200 dark:bg-gray-700 rounded-full top-1/2 -translate-y-1/2" }),
1238
- /* @__PURE__ */ jsx25(
1584
+ /* @__PURE__ */ jsxs22("div", { className: "relative", children: [
1585
+ /* @__PURE__ */ jsx56("div", { className: "absolute inset-0 h-2 bg-gray-200 dark:bg-gray-700 rounded-full top-1/2 -translate-y-1/2" }),
1586
+ /* @__PURE__ */ jsx56(
1239
1587
  "div",
1240
1588
  {
1241
1589
  className: "absolute h-2 bg-blue-600 dark:bg-blue-500 rounded-full top-1/2 -translate-y-1/2 pointer-events-none",
1242
1590
  style: { width: `${percentage}%` }
1243
1591
  }
1244
1592
  ),
1245
- /* @__PURE__ */ jsx25(
1593
+ /* @__PURE__ */ jsx56(
1246
1594
  "input",
1247
1595
  {
1248
1596
  type: "range",
@@ -1264,8 +1612,8 @@ var Slider = ({
1264
1612
  };
1265
1613
 
1266
1614
  // src/components/Avatar.tsx
1267
- import React16 from "react";
1268
- import { jsx as jsx26 } from "react/jsx-runtime";
1615
+ import React17 from "react";
1616
+ import { jsx as jsx57 } from "react/jsx-runtime";
1269
1617
  var Avatar = ({
1270
1618
  src,
1271
1619
  alt,
@@ -1275,7 +1623,7 @@ var Avatar = ({
1275
1623
  className = "",
1276
1624
  fallbackColor = "bg-blue-600"
1277
1625
  }) => {
1278
- const [imageError, setImageError] = React16.useState(false);
1626
+ const [imageError, setImageError] = React17.useState(false);
1279
1627
  const sizeClasses6 = {
1280
1628
  xs: "w-6 h-6 text-xs",
1281
1629
  sm: "w-8 h-8 text-sm",
@@ -1293,11 +1641,11 @@ var Avatar = ({
1293
1641
  };
1294
1642
  const showImage = src && !imageError;
1295
1643
  const showInitials = !showImage && name;
1296
- return /* @__PURE__ */ jsx26(
1644
+ return /* @__PURE__ */ jsx57(
1297
1645
  "div",
1298
1646
  {
1299
1647
  className: `${sizeClasses6[size]} ${shapeClass} flex items-center justify-center overflow-hidden ${showImage ? "bg-gray-200 dark:bg-gray-700" : `${fallbackColor} text-white`} ${className}`,
1300
- children: showImage ? /* @__PURE__ */ jsx26(
1648
+ children: showImage ? /* @__PURE__ */ jsx57(
1301
1649
  "img",
1302
1650
  {
1303
1651
  src,
@@ -1305,13 +1653,13 @@ var Avatar = ({
1305
1653
  className: "w-full h-full object-cover",
1306
1654
  onError: () => setImageError(true)
1307
1655
  }
1308
- ) : showInitials ? /* @__PURE__ */ jsx26("span", { className: "font-semibold select-none", children: getInitials(name) }) : /* @__PURE__ */ jsx26(
1656
+ ) : showInitials ? /* @__PURE__ */ jsx57("span", { className: "font-semibold select-none", children: getInitials(name) }) : /* @__PURE__ */ jsx57(
1309
1657
  "svg",
1310
1658
  {
1311
1659
  className: "w-full h-full text-gray-400 dark:text-gray-600",
1312
1660
  fill: "currentColor",
1313
1661
  viewBox: "0 0 24 24",
1314
- children: /* @__PURE__ */ jsx26("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" })
1662
+ children: /* @__PURE__ */ jsx57("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" })
1315
1663
  }
1316
1664
  )
1317
1665
  }
@@ -1319,7 +1667,7 @@ var Avatar = ({
1319
1667
  };
1320
1668
 
1321
1669
  // src/components/Textarea.tsx
1322
- import { jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
1670
+ import { jsx as jsx58, jsxs as jsxs23 } from "react/jsx-runtime";
1323
1671
  var Textarea = ({
1324
1672
  label,
1325
1673
  error,
@@ -1346,9 +1694,9 @@ var Textarea = ({
1346
1694
  bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100
1347
1695
  placeholder:text-gray-500 dark:placeholder:text-gray-400
1348
1696
  disabled:opacity-50 disabled:cursor-not-allowed disabled:bg-gray-50 dark:disabled:bg-gray-900`;
1349
- return /* @__PURE__ */ jsxs20("div", { className: `w-full ${className}`, children: [
1350
- label && /* @__PURE__ */ jsx27("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1351
- /* @__PURE__ */ jsx27(
1697
+ return /* @__PURE__ */ jsxs23("div", { className: `w-full ${className}`, children: [
1698
+ label && /* @__PURE__ */ jsx58("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: label }),
1699
+ /* @__PURE__ */ jsx58(
1352
1700
  "textarea",
1353
1701
  {
1354
1702
  className: `${baseClasses} ${sizeClasses6[size]} ${resizeClasses[resize]}`,
@@ -1356,261 +1704,14 @@ var Textarea = ({
1356
1704
  ...props
1357
1705
  }
1358
1706
  ),
1359
- error && /* @__PURE__ */ jsx27("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1360
- helperText && !error && /* @__PURE__ */ jsx27("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1707
+ error && /* @__PURE__ */ jsx58("p", { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: error }),
1708
+ helperText && !error && /* @__PURE__ */ jsx58("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-400", children: helperText })
1361
1709
  ] });
1362
1710
  };
1363
1711
 
1364
1712
  // src/components/Toast.tsx
1365
- import { createContext as createContext3, useContext as useContext3, useState as useState6, useCallback } from "react";
1366
-
1367
- // src/icons/icon-utils.tsx
1368
- import { jsx as jsx28 } from "react/jsx-runtime";
1369
- var sizeClasses5 = {
1370
- xs: "w-3 h-3",
1371
- sm: "w-4 h-4",
1372
- md: "w-5 h-5",
1373
- lg: "w-6 h-6",
1374
- xl: "w-8 h-8"
1375
- };
1376
- var createIcon = (displayName, path, filled = false) => {
1377
- const Icon = ({ size = "md", className = "", color = "currentColor" }) => {
1378
- const sizeClass = sizeClasses5[size];
1379
- return /* @__PURE__ */ jsx28(
1380
- "svg",
1381
- {
1382
- className: `${sizeClass} ${className}`,
1383
- fill: filled ? color : "none",
1384
- viewBox: "0 0 24 24",
1385
- stroke: filled ? "none" : color,
1386
- "aria-hidden": "true",
1387
- children: path
1388
- }
1389
- );
1390
- };
1391
- Icon.displayName = displayName;
1392
- return Icon;
1393
- };
1394
-
1395
- // src/icons/HomeIcon.tsx
1396
- import { jsx as jsx29 } from "react/jsx-runtime";
1397
- var HomeIcon = createIcon(
1398
- "HomeIcon",
1399
- /* @__PURE__ */ jsx29("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" })
1400
- );
1401
-
1402
- // src/icons/UserIcon.tsx
1403
- import { jsx as jsx30 } from "react/jsx-runtime";
1404
- var UserIcon = createIcon(
1405
- "UserIcon",
1406
- /* @__PURE__ */ jsx30("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" })
1407
- );
1408
-
1409
- // src/icons/SearchIcon.tsx
1410
- import { jsx as jsx31 } from "react/jsx-runtime";
1411
- var SearchIcon = createIcon(
1412
- "SearchIcon",
1413
- /* @__PURE__ */ jsx31("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" })
1414
- );
1415
-
1416
- // src/icons/BellIcon.tsx
1417
- import { jsx as jsx32 } from "react/jsx-runtime";
1418
- var BellIcon = createIcon(
1419
- "BellIcon",
1420
- /* @__PURE__ */ jsx32("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9" })
1421
- );
1422
-
1423
- // src/icons/SettingsIcon.tsx
1424
- import { Fragment as Fragment3, jsx as jsx33, jsxs as jsxs21 } from "react/jsx-runtime";
1425
- var SettingsIcon = createIcon(
1426
- "SettingsIcon",
1427
- /* @__PURE__ */ jsxs21(Fragment3, { children: [
1428
- /* @__PURE__ */ jsx33("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" }),
1429
- /* @__PURE__ */ jsx33("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z" })
1430
- ] })
1431
- );
1432
-
1433
- // src/icons/MenuIcon.tsx
1434
- import { jsx as jsx34 } from "react/jsx-runtime";
1435
- var MenuIcon = createIcon(
1436
- "MenuIcon",
1437
- /* @__PURE__ */ jsx34("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" })
1438
- );
1439
-
1440
- // src/icons/CloseIcon.tsx
1441
- import { jsx as jsx35 } from "react/jsx-runtime";
1442
- var CloseIcon = createIcon(
1443
- "CloseIcon",
1444
- /* @__PURE__ */ jsx35("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" })
1445
- );
1446
-
1447
- // src/icons/ChevronDownIcon.tsx
1448
- import { jsx as jsx36 } from "react/jsx-runtime";
1449
- var ChevronDownIcon = createIcon(
1450
- "ChevronDownIcon",
1451
- /* @__PURE__ */ jsx36("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" })
1452
- );
1453
-
1454
- // src/icons/ChevronRightIcon.tsx
1455
- import { jsx as jsx37 } from "react/jsx-runtime";
1456
- var ChevronRightIcon = createIcon(
1457
- "ChevronRightIcon",
1458
- /* @__PURE__ */ jsx37("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" })
1459
- );
1460
-
1461
- // src/icons/CheckIcon.tsx
1462
- import { jsx as jsx38 } from "react/jsx-runtime";
1463
- var CheckIcon = createIcon(
1464
- "CheckIcon",
1465
- /* @__PURE__ */ jsx38("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" })
1466
- );
1467
-
1468
- // src/icons/PlusIcon.tsx
1469
- import { jsx as jsx39 } from "react/jsx-runtime";
1470
- var PlusIcon = createIcon(
1471
- "PlusIcon",
1472
- /* @__PURE__ */ jsx39("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 4v16m8-8H4" })
1473
- );
1474
-
1475
- // src/icons/TrashIcon.tsx
1476
- import { jsx as jsx40 } from "react/jsx-runtime";
1477
- var TrashIcon = createIcon(
1478
- "TrashIcon",
1479
- /* @__PURE__ */ jsx40("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" })
1480
- );
1481
-
1482
- // src/icons/EditIcon.tsx
1483
- import { jsx as jsx41 } from "react/jsx-runtime";
1484
- var EditIcon = createIcon(
1485
- "EditIcon",
1486
- /* @__PURE__ */ jsx41("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" })
1487
- );
1488
-
1489
- // src/icons/MailIcon.tsx
1490
- import { jsx as jsx42 } from "react/jsx-runtime";
1491
- var MailIcon = createIcon(
1492
- "MailIcon",
1493
- /* @__PURE__ */ jsx42("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" })
1494
- );
1495
-
1496
- // src/icons/StarIcon.tsx
1497
- import { jsx as jsx43 } from "react/jsx-runtime";
1498
- var StarIcon = createIcon(
1499
- "StarIcon",
1500
- /* @__PURE__ */ jsx43("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" })
1501
- );
1502
-
1503
- // src/icons/HeartIcon.tsx
1504
- import { jsx as jsx44 } from "react/jsx-runtime";
1505
- var HeartIcon = createIcon(
1506
- "HeartIcon",
1507
- /* @__PURE__ */ jsx44("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" })
1508
- );
1509
-
1510
- // src/icons/DownloadIcon.tsx
1511
- import { jsx as jsx45 } from "react/jsx-runtime";
1512
- var DownloadIcon = createIcon(
1513
- "DownloadIcon",
1514
- /* @__PURE__ */ jsx45("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" })
1515
- );
1516
-
1517
- // src/icons/UploadIcon.tsx
1518
- import { jsx as jsx46 } from "react/jsx-runtime";
1519
- var UploadIcon = createIcon(
1520
- "UploadIcon",
1521
- /* @__PURE__ */ jsx46("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" })
1522
- );
1523
-
1524
- // src/icons/CameraIcon.tsx
1525
- import { Fragment as Fragment4, jsx as jsx47, jsxs as jsxs22 } from "react/jsx-runtime";
1526
- var CameraIcon = createIcon(
1527
- "CameraIcon",
1528
- /* @__PURE__ */ jsxs22(Fragment4, { children: [
1529
- /* @__PURE__ */ jsx47("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" }),
1530
- /* @__PURE__ */ jsx47("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 13a3 3 0 11-6 0 3 3 0 016 0z" })
1531
- ] })
1532
- );
1533
-
1534
- // src/icons/LockIcon.tsx
1535
- import { jsx as jsx48 } from "react/jsx-runtime";
1536
- var LockIcon = createIcon(
1537
- "LockIcon",
1538
- /* @__PURE__ */ jsx48("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" })
1539
- );
1540
-
1541
- // src/icons/CalendarIcon.tsx
1542
- import { jsx as jsx49 } from "react/jsx-runtime";
1543
- var CalendarIcon = createIcon(
1544
- "CalendarIcon",
1545
- /* @__PURE__ */ jsx49("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" })
1546
- );
1547
-
1548
- // src/icons/GoogleIcon.tsx
1549
- import { jsx as jsx50 } from "react/jsx-runtime";
1550
- var GoogleIcon = createIcon(
1551
- "GoogleIcon",
1552
- /* @__PURE__ */ jsx50("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" }),
1553
- true
1554
- );
1555
-
1556
- // src/icons/GitHubIcon.tsx
1557
- import { jsx as jsx51 } from "react/jsx-runtime";
1558
- var GitHubIcon = createIcon(
1559
- "GitHubIcon",
1560
- /* @__PURE__ */ jsx51("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" }),
1561
- true
1562
- );
1563
-
1564
- // src/icons/TwitterIcon.tsx
1565
- import { jsx as jsx52 } from "react/jsx-runtime";
1566
- var TwitterIcon = createIcon(
1567
- "TwitterIcon",
1568
- /* @__PURE__ */ jsx52("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" }),
1569
- true
1570
- );
1571
-
1572
- // src/icons/FacebookIcon.tsx
1573
- import { jsx as jsx53 } from "react/jsx-runtime";
1574
- var FacebookIcon = createIcon(
1575
- "FacebookIcon",
1576
- /* @__PURE__ */ jsx53("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" }),
1577
- true
1578
- );
1579
-
1580
- // src/icons/AppleIcon.tsx
1581
- import { jsx as jsx54 } from "react/jsx-runtime";
1582
- var AppleIcon = createIcon(
1583
- "AppleIcon",
1584
- /* @__PURE__ */ jsx54("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" }),
1585
- true
1586
- );
1587
-
1588
- // src/icons/LinkedInIcon.tsx
1589
- import { jsx as jsx55 } from "react/jsx-runtime";
1590
- var LinkedInIcon = createIcon(
1591
- "LinkedInIcon",
1592
- /* @__PURE__ */ jsx55("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" }),
1593
- true
1594
- );
1595
-
1596
- // src/icons/YouTubeIcon.tsx
1597
- import { jsx as jsx56 } from "react/jsx-runtime";
1598
- var YouTubeIcon = createIcon(
1599
- "YouTubeIcon",
1600
- /* @__PURE__ */ jsx56("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" }),
1601
- true
1602
- );
1603
-
1604
- // src/icons/SlackIcon.tsx
1605
- import { jsx as jsx57 } from "react/jsx-runtime";
1606
- var SlackIcon = createIcon(
1607
- "SlackIcon",
1608
- /* @__PURE__ */ jsx57("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" }),
1609
- true
1610
- );
1611
-
1612
- // src/components/Toast.tsx
1613
- import { jsx as jsx58, jsxs as jsxs23 } from "react/jsx-runtime";
1713
+ import { createContext as createContext3, useContext as useContext3, useState as useState7, useCallback } from "react";
1714
+ import { jsx as jsx59, jsxs as jsxs24 } from "react/jsx-runtime";
1614
1715
  var ToastContext = createContext3(void 0);
1615
1716
  var useToast = () => {
1616
1717
  const context = useContext3(ToastContext);
@@ -1620,7 +1721,7 @@ var useToast = () => {
1620
1721
  return context;
1621
1722
  };
1622
1723
  var ToastProvider = ({ children, position = "top-right" }) => {
1623
- const [toasts, setToasts] = useState6([]);
1724
+ const [toasts, setToasts] = useState7([]);
1624
1725
  const addToast = useCallback((toast2) => {
1625
1726
  const id = Math.random().toString(36).substring(7);
1626
1727
  const newToast = { ...toast2, id };
@@ -1641,9 +1742,9 @@ var ToastProvider = ({ children, position = "top-right" }) => {
1641
1742
  "top-center": "top-4 left-1/2 -translate-x-1/2",
1642
1743
  "bottom-center": "bottom-4 left-1/2 -translate-x-1/2"
1643
1744
  };
1644
- return /* @__PURE__ */ jsxs23(ToastContext.Provider, { value: { toasts, addToast, removeToast }, children: [
1745
+ return /* @__PURE__ */ jsxs24(ToastContext.Provider, { value: { toasts, addToast, removeToast }, children: [
1645
1746
  children,
1646
- /* @__PURE__ */ jsx58("div", { className: `fixed ${positionClasses2[position]} z-50 flex flex-col gap-2 max-w-md`, children: toasts.map((toast2) => /* @__PURE__ */ jsx58(ToastItem, { toast: toast2, onClose: () => removeToast(toast2.id) }, toast2.id)) })
1747
+ /* @__PURE__ */ jsx59("div", { className: `fixed ${positionClasses2[position]} z-50 flex flex-col gap-2 max-w-md`, children: toasts.map((toast2) => /* @__PURE__ */ jsx59(ToastItem, { toast: toast2, onClose: () => removeToast(toast2.id) }, toast2.id)) })
1647
1748
  ] });
1648
1749
  };
1649
1750
  var ToastItem = ({ toast: toast2, onClose }) => {
@@ -1654,27 +1755,27 @@ var ToastItem = ({ toast: toast2, onClose }) => {
1654
1755
  info: "bg-blue-50 dark:bg-blue-900/30 border-blue-500 text-blue-800 dark:text-blue-200"
1655
1756
  };
1656
1757
  const typeIcons = {
1657
- success: /* @__PURE__ */ jsx58(CheckIcon, { size: "sm", className: "text-green-600 dark:text-green-400" }),
1658
- error: /* @__PURE__ */ jsx58(CloseIcon, { size: "sm", className: "text-red-600 dark:text-red-400" }),
1659
- warning: /* @__PURE__ */ jsx58("svg", { className: "w-4 h-4 text-yellow-600 dark:text-yellow-400", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ jsx58("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" }) }),
1660
- info: /* @__PURE__ */ jsx58("svg", { className: "w-4 h-4 text-blue-600 dark:text-blue-400", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ jsx58("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" }) })
1758
+ success: /* @__PURE__ */ jsx59(CheckIcon, { size: "sm", className: "text-green-600 dark:text-green-400" }),
1759
+ error: /* @__PURE__ */ jsx59(CloseIcon, { size: "sm", className: "text-red-600 dark:text-red-400" }),
1760
+ warning: /* @__PURE__ */ jsx59("svg", { className: "w-4 h-4 text-yellow-600 dark:text-yellow-400", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ jsx59("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" }) }),
1761
+ info: /* @__PURE__ */ jsx59("svg", { className: "w-4 h-4 text-blue-600 dark:text-blue-400", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ jsx59("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" }) })
1661
1762
  };
1662
1763
  const type = toast2.type || "info";
1663
- return /* @__PURE__ */ jsxs23(
1764
+ return /* @__PURE__ */ jsxs24(
1664
1765
  "div",
1665
1766
  {
1666
1767
  className: `flex items-start gap-3 p-4 rounded-lg border-l-4 shadow-lg backdrop-blur-sm ${typeStyles[type]} animate-slide-in`,
1667
1768
  role: "alert",
1668
1769
  children: [
1669
- /* @__PURE__ */ jsx58("div", { className: "flex-shrink-0 mt-0.5", children: typeIcons[type] }),
1670
- /* @__PURE__ */ jsx58("p", { className: "flex-1 text-sm font-medium", children: toast2.message }),
1671
- /* @__PURE__ */ jsx58(
1770
+ /* @__PURE__ */ jsx59("div", { className: "flex-shrink-0 mt-0.5", children: typeIcons[type] }),
1771
+ /* @__PURE__ */ jsx59("p", { className: "flex-1 text-sm font-medium", children: toast2.message }),
1772
+ /* @__PURE__ */ jsx59(
1672
1773
  "button",
1673
1774
  {
1674
1775
  onClick: onClose,
1675
1776
  className: "flex-shrink-0 text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 transition-colors",
1676
1777
  "aria-label": "Close",
1677
- children: /* @__PURE__ */ jsx58(CloseIcon, { size: "sm" })
1778
+ children: /* @__PURE__ */ jsx59(CloseIcon, { size: "sm" })
1678
1779
  }
1679
1780
  )
1680
1781
  ]
@@ -1705,8 +1806,8 @@ var toast = {
1705
1806
  };
1706
1807
 
1707
1808
  // src/components/Stepper.tsx
1708
- import React18 from "react";
1709
- import { jsx as jsx59, jsxs as jsxs24 } from "react/jsx-runtime";
1809
+ import React19 from "react";
1810
+ import { jsx as jsx60, jsxs as jsxs25 } from "react/jsx-runtime";
1710
1811
  var Stepper = ({
1711
1812
  steps,
1712
1813
  currentStep,
@@ -1714,18 +1815,18 @@ var Stepper = ({
1714
1815
  className = ""
1715
1816
  }) => {
1716
1817
  const isHorizontal = orientation === "horizontal";
1717
- return /* @__PURE__ */ jsx59("div", { className: `${isHorizontal ? "flex items-center" : "flex flex-col"} ${className}`, children: steps.map((step, index) => {
1818
+ return /* @__PURE__ */ jsx60("div", { className: `${isHorizontal ? "flex items-center" : "flex flex-col"} ${className}`, children: steps.map((step, index) => {
1718
1819
  const stepNumber = index + 1;
1719
1820
  const isActive = stepNumber === currentStep;
1720
1821
  const isCompleted = stepNumber < currentStep;
1721
1822
  const isLast = index === steps.length - 1;
1722
- return /* @__PURE__ */ jsxs24(React18.Fragment, { children: [
1723
- /* @__PURE__ */ jsxs24("div", { className: `flex ${isHorizontal ? "flex-col items-center" : "flex-row items-start"} ${isHorizontal ? "" : "flex-1"}`, children: [
1724
- /* @__PURE__ */ jsx59("div", { className: "flex items-center", children: /* @__PURE__ */ jsx59(
1823
+ return /* @__PURE__ */ jsxs25(React19.Fragment, { children: [
1824
+ /* @__PURE__ */ jsxs25("div", { className: `flex ${isHorizontal ? "flex-col items-center" : "flex-row items-start"} ${isHorizontal ? "" : "flex-1"}`, children: [
1825
+ /* @__PURE__ */ jsx60("div", { className: "flex items-center", children: /* @__PURE__ */ jsx60(
1725
1826
  "div",
1726
1827
  {
1727
1828
  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"}`,
1728
- children: isCompleted ? /* @__PURE__ */ jsx59(CheckIcon, { size: "sm", className: "text-white" }) : /* @__PURE__ */ jsx59(
1829
+ children: isCompleted ? /* @__PURE__ */ jsx60(CheckIcon, { size: "sm", className: "text-white" }) : /* @__PURE__ */ jsx60(
1729
1830
  "span",
1730
1831
  {
1731
1832
  className: `text-sm font-semibold ${isActive ? "text-blue-600 dark:text-blue-400" : "text-gray-500 dark:text-gray-400"}`,
@@ -1734,18 +1835,18 @@ var Stepper = ({
1734
1835
  )
1735
1836
  }
1736
1837
  ) }),
1737
- /* @__PURE__ */ jsxs24("div", { className: `${isHorizontal ? "mt-2 text-center" : "ml-4 pb-8"} ${isLast && !isHorizontal ? "pb-0" : ""}`, children: [
1738
- /* @__PURE__ */ jsx59(
1838
+ /* @__PURE__ */ jsxs25("div", { className: `${isHorizontal ? "mt-2 text-center" : "ml-4 pb-8"} ${isLast && !isHorizontal ? "pb-0" : ""}`, children: [
1839
+ /* @__PURE__ */ jsx60(
1739
1840
  "p",
1740
1841
  {
1741
1842
  className: `text-sm font-medium ${isActive || isCompleted ? "text-gray-900 dark:text-gray-100" : "text-gray-500 dark:text-gray-400"}`,
1742
1843
  children: step.label
1743
1844
  }
1744
1845
  ),
1745
- step.description && /* @__PURE__ */ jsx59("p", { className: "text-xs text-gray-500 dark:text-gray-400 mt-1", children: step.description })
1846
+ step.description && /* @__PURE__ */ jsx60("p", { className: "text-xs text-gray-500 dark:text-gray-400 mt-1", children: step.description })
1746
1847
  ] })
1747
1848
  ] }),
1748
- !isLast && /* @__PURE__ */ jsx59(
1849
+ !isLast && /* @__PURE__ */ jsx60(
1749
1850
  "div",
1750
1851
  {
1751
1852
  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"}`
@@ -1756,7 +1857,7 @@ var Stepper = ({
1756
1857
  };
1757
1858
 
1758
1859
  // src/components/Divider.tsx
1759
- import { jsx as jsx60, jsxs as jsxs25 } from "react/jsx-runtime";
1860
+ import { jsx as jsx61, jsxs as jsxs26 } from "react/jsx-runtime";
1760
1861
  var Divider = ({
1761
1862
  orientation = "horizontal",
1762
1863
  variant = "solid",
@@ -1775,14 +1876,14 @@ var Divider = ({
1775
1876
  center: "justify-center",
1776
1877
  right: "justify-end"
1777
1878
  };
1778
- return /* @__PURE__ */ jsxs25("div", { className: `flex items-center ${alignmentClasses[labelPosition]} ${className}`, role: "separator", children: [
1779
- labelPosition !== "left" && /* @__PURE__ */ jsx60("div", { className: `flex-1 border-t ${variantClasses[variant]} border-gray-300 dark:border-gray-600` }),
1780
- /* @__PURE__ */ jsx60("span", { className: "px-4 text-sm text-gray-500 dark:text-gray-400", children: label }),
1781
- labelPosition !== "right" && /* @__PURE__ */ jsx60("div", { className: `flex-1 border-t ${variantClasses[variant]} border-gray-300 dark:border-gray-600` })
1879
+ return /* @__PURE__ */ jsxs26("div", { className: `flex items-center ${alignmentClasses[labelPosition]} ${className}`, role: "separator", children: [
1880
+ labelPosition !== "left" && /* @__PURE__ */ jsx61("div", { className: `flex-1 border-t ${variantClasses[variant]} border-gray-300 dark:border-gray-600` }),
1881
+ /* @__PURE__ */ jsx61("span", { className: "px-4 text-sm text-gray-500 dark:text-gray-400", children: label }),
1882
+ labelPosition !== "right" && /* @__PURE__ */ jsx61("div", { className: `flex-1 border-t ${variantClasses[variant]} border-gray-300 dark:border-gray-600` })
1782
1883
  ] });
1783
1884
  }
1784
1885
  if (orientation === "vertical") {
1785
- return /* @__PURE__ */ jsx60(
1886
+ return /* @__PURE__ */ jsx61(
1786
1887
  "div",
1787
1888
  {
1788
1889
  className: `inline-block h-full border-l ${variantClasses[variant]} border-gray-300 dark:border-gray-600 ${className}`,
@@ -1791,7 +1892,7 @@ var Divider = ({
1791
1892
  }
1792
1893
  );
1793
1894
  }
1794
- return /* @__PURE__ */ jsx60(
1895
+ return /* @__PURE__ */ jsx61(
1795
1896
  "hr",
1796
1897
  {
1797
1898
  className: `border-t ${variantClasses[variant]} border-gray-300 dark:border-gray-600 ${className}`,
@@ -1801,8 +1902,8 @@ var Divider = ({
1801
1902
  };
1802
1903
 
1803
1904
  // src/components/FileUpload.tsx
1804
- import { useRef as useRef3, useState as useState7 } from "react";
1805
- import { jsx as jsx61, jsxs as jsxs26 } from "react/jsx-runtime";
1905
+ import { useRef as useRef3, useState as useState8 } from "react";
1906
+ import { jsx as jsx62, jsxs as jsxs27 } from "react/jsx-runtime";
1806
1907
  var FileUpload = ({
1807
1908
  accept,
1808
1909
  multiple = false,
@@ -1815,8 +1916,8 @@ var FileUpload = ({
1815
1916
  label,
1816
1917
  helperText
1817
1918
  }) => {
1818
- const [files, setFiles] = useState7([]);
1819
- const [isDragging, setIsDragging] = useState7(false);
1919
+ const [files, setFiles] = useState8([]);
1920
+ const [isDragging, setIsDragging] = useState8(false);
1820
1921
  const fileInputRef = useRef3(null);
1821
1922
  const formatFileSize = (bytes) => {
1822
1923
  if (bytes === 0) return "0 Bytes";
@@ -1875,9 +1976,9 @@ var FileUpload = ({
1875
1976
  setFiles(newFiles);
1876
1977
  onChange?.(newFiles);
1877
1978
  };
1878
- return /* @__PURE__ */ jsxs26("div", { className: `w-full ${className}`, children: [
1879
- label && /* @__PURE__ */ jsx61("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: label }),
1880
- /* @__PURE__ */ jsxs26(
1979
+ return /* @__PURE__ */ jsxs27("div", { className: `w-full ${className}`, children: [
1980
+ label && /* @__PURE__ */ jsx62("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: label }),
1981
+ /* @__PURE__ */ jsxs27(
1881
1982
  "div",
1882
1983
  {
1883
1984
  onDrop: handleDrop,
@@ -1886,7 +1987,7 @@ var FileUpload = ({
1886
1987
  onClick: handleClick,
1887
1988
  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" : ""}`,
1888
1989
  children: [
1889
- /* @__PURE__ */ jsx61(
1990
+ /* @__PURE__ */ jsx62(
1890
1991
  "input",
1891
1992
  {
1892
1993
  ref: fileInputRef,
@@ -1898,14 +1999,14 @@ var FileUpload = ({
1898
1999
  className: "hidden"
1899
2000
  }
1900
2001
  ),
1901
- /* @__PURE__ */ jsxs26("div", { className: "flex flex-col items-center gap-2", children: [
1902
- /* @__PURE__ */ jsx61("div", { className: "w-12 h-12 rounded-full bg-gray-100 dark:bg-gray-800 flex items-center justify-center", children: /* @__PURE__ */ jsx61(UploadIcon, { size: "lg", className: "text-gray-400 dark:text-gray-500" }) }),
1903
- /* @__PURE__ */ jsxs26("div", { children: [
1904
- /* @__PURE__ */ jsxs26("p", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: [
1905
- /* @__PURE__ */ jsx61("span", { className: "text-blue-600 dark:text-blue-400", children: "Click to upload" }),
2002
+ /* @__PURE__ */ jsxs27("div", { className: "flex flex-col items-center gap-2", children: [
2003
+ /* @__PURE__ */ jsx62("div", { className: "w-12 h-12 rounded-full bg-gray-100 dark:bg-gray-800 flex items-center justify-center", children: /* @__PURE__ */ jsx62(UploadIcon, { size: "lg", className: "text-gray-400 dark:text-gray-500" }) }),
2004
+ /* @__PURE__ */ jsxs27("div", { children: [
2005
+ /* @__PURE__ */ jsxs27("p", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: [
2006
+ /* @__PURE__ */ jsx62("span", { className: "text-blue-600 dark:text-blue-400", children: "Click to upload" }),
1906
2007
  " or drag and drop"
1907
2008
  ] }),
1908
- /* @__PURE__ */ jsxs26("p", { className: "text-xs text-gray-500 dark:text-gray-400 mt-1", children: [
2009
+ /* @__PURE__ */ jsxs27("p", { className: "text-xs text-gray-500 dark:text-gray-400 mt-1", children: [
1909
2010
  accept ? `Accepted: ${accept}` : "Any file type",
1910
2011
  maxSize && ` \u2022 Max size: ${formatFileSize(maxSize)}`
1911
2012
  ] })
@@ -1914,17 +2015,17 @@ var FileUpload = ({
1914
2015
  ]
1915
2016
  }
1916
2017
  ),
1917
- helperText && /* @__PURE__ */ jsx61("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: helperText }),
1918
- files.length > 0 && /* @__PURE__ */ jsx61("div", { className: "mt-4 space-y-2", children: files.map((file, index) => /* @__PURE__ */ jsxs26(
2018
+ helperText && /* @__PURE__ */ jsx62("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: helperText }),
2019
+ files.length > 0 && /* @__PURE__ */ jsx62("div", { className: "mt-4 space-y-2", children: files.map((file, index) => /* @__PURE__ */ jsxs27(
1919
2020
  "div",
1920
2021
  {
1921
2022
  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",
1922
2023
  children: [
1923
- /* @__PURE__ */ jsxs26("div", { className: "flex-1 min-w-0", children: [
1924
- /* @__PURE__ */ jsx61("p", { className: "text-sm font-medium text-gray-900 dark:text-gray-100 truncate", children: file.name }),
1925
- /* @__PURE__ */ jsx61("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: formatFileSize(file.size) })
2024
+ /* @__PURE__ */ jsxs27("div", { className: "flex-1 min-w-0", children: [
2025
+ /* @__PURE__ */ jsx62("p", { className: "text-sm font-medium text-gray-900 dark:text-gray-100 truncate", children: file.name }),
2026
+ /* @__PURE__ */ jsx62("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: formatFileSize(file.size) })
1926
2027
  ] }),
1927
- /* @__PURE__ */ jsx61(
2028
+ /* @__PURE__ */ jsx62(
1928
2029
  "button",
1929
2030
  {
1930
2031
  onClick: (e) => {
@@ -1933,7 +2034,7 @@ var FileUpload = ({
1933
2034
  },
1934
2035
  className: "ml-4 text-gray-400 hover:text-red-600 dark:hover:text-red-400 transition-colors",
1935
2036
  "aria-label": "Remove file",
1936
- children: /* @__PURE__ */ jsx61(CloseIcon, { size: "sm" })
2037
+ children: /* @__PURE__ */ jsx62(CloseIcon, { size: "sm" })
1937
2038
  }
1938
2039
  )
1939
2040
  ]
@@ -1978,6 +2079,7 @@ function getThemeScript() {
1978
2079
  export {
1979
2080
  ActionMenu,
1980
2081
  Alert,
2082
+ AppShell,
1981
2083
  AppleIcon,
1982
2084
  Avatar,
1983
2085
  Badge,