@parto-system-design/ui 1.0.5 → 1.1.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.cjs CHANGED
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  "use strict";
2
3
  var __create = Object.create;
3
4
  var __defProp = Object.defineProperty;
@@ -362,95 +363,9 @@ module.exports = __toCommonJS(index_exports);
362
363
  // src/lib/utils.ts
363
364
  var import_clsx = require("clsx");
364
365
  var import_tailwind_merge = require("tailwind-merge");
365
- function cn(...inputs) {
366
- return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
367
- }
368
- function formatNumber(num, format3 = "exact") {
369
- if (num === void 0 || num === null) return "0";
370
- if (format3 === "exact") {
371
- return num.toLocaleString("en-US");
372
- }
373
- if (num >= 1e9) {
374
- return `${(num / 1e9).toFixed(1).replace(/\.0$/, "")}B`;
375
- }
376
- if (num >= 1e6) {
377
- return `${(num / 1e6).toFixed(1).replace(/\.0$/, "")}M`;
378
- }
379
- if (num >= 1e3) {
380
- return `${(num / 1e3).toFixed(1).replace(/\.0$/, "")}K`;
381
- }
382
- return num.toString();
383
- }
384
- function formatRelativeTime(date) {
385
- const now = /* @__PURE__ */ new Date();
386
- const then = new Date(date);
387
- const diffInSeconds = Math.floor((now.getTime() - then.getTime()) / 1e3);
388
- const toPersianDigits2 = (num) => {
389
- const persianDigits = ["\u06F0", "\u06F1", "\u06F2", "\u06F3", "\u06F4", "\u06F5", "\u06F6", "\u06F7", "\u06F8", "\u06F9"];
390
- return num.toString().replace(/\d/g, (digit) => persianDigits[parseInt(digit)]);
391
- };
392
- if (diffInSeconds < 60) {
393
- return "\u0647\u0645\u06CC\u0646 \u0627\u0644\u0627\u0646";
394
- }
395
- const diffInMinutes = Math.floor(diffInSeconds / 60);
396
- if (diffInMinutes < 60) {
397
- return `${toPersianDigits2(diffInMinutes)} \u062F\u0642\u06CC\u0642\u0647 \u067E\u06CC\u0634`;
398
- }
399
- const diffInHours = Math.floor(diffInMinutes / 60);
400
- if (diffInHours < 24) {
401
- return `${toPersianDigits2(diffInHours)} \u0633\u0627\u0639\u062A \u067E\u06CC\u0634`;
402
- }
403
- const diffInDays = Math.floor(diffInHours / 24);
404
- if (diffInDays < 7) {
405
- return `${toPersianDigits2(diffInDays)} \u0631\u0648\u0632 \u067E\u06CC\u0634`;
406
- }
407
- const diffInWeeks = Math.floor(diffInDays / 7);
408
- if (diffInWeeks < 4) {
409
- return `${toPersianDigits2(diffInWeeks)} \u0647\u0641\u062A\u0647 \u067E\u06CC\u0634`;
410
- }
411
- const diffInMonths = Math.floor(diffInDays / 30);
412
- if (diffInMonths < 12) {
413
- return `${toPersianDigits2(diffInMonths)} \u0645\u0627\u0647 \u067E\u06CC\u0634`;
414
- }
415
- const diffInYears = Math.floor(diffInDays / 365);
416
- return `${toPersianDigits2(diffInYears)} \u0633\u0627\u0644 \u067E\u06CC\u0634`;
417
- }
418
- function formatAbsoluteTime(date) {
419
- const d = new Date(date);
420
- const toPersianDigits2 = (num) => {
421
- const persianDigits = ["\u06F0", "\u06F1", "\u06F2", "\u06F3", "\u06F4", "\u06F5", "\u06F6", "\u06F7", "\u06F8", "\u06F9"];
422
- return num.toString().replace(/\d/g, (digit) => persianDigits[parseInt(digit)]);
423
- };
424
- const persianMonths = [
425
- "\u0641\u0631\u0648\u0631\u062F\u06CC\u0646",
426
- "\u0627\u0631\u062F\u06CC\u0628\u0647\u0634\u062A",
427
- "\u062E\u0631\u062F\u0627\u062F",
428
- "\u062A\u06CC\u0631",
429
- "\u0645\u0631\u062F\u0627\u062F",
430
- "\u0634\u0647\u0631\u06CC\u0648\u0631",
431
- "\u0645\u0647\u0631",
432
- "\u0622\u0628\u0627\u0646",
433
- "\u0622\u0630\u0631",
434
- "\u062F\u06CC",
435
- "\u0628\u0647\u0645\u0646",
436
- "\u0627\u0633\u0641\u0646\u062F"
437
- ];
438
- const year = d.getFullYear();
439
- const month = d.getMonth();
440
- const day = d.getDate();
441
- const hours = d.getHours();
442
- const minutes = d.getMinutes();
443
- const persianYear = year - 621;
444
- const persianMonth = persianMonths[month];
445
- const persianDay = toPersianDigits2(day);
446
- const persianHours = toPersianDigits2(hours);
447
- const persianMinutes = toPersianDigits2(minutes.toString().padStart(2, "0"));
448
- return `${persianDay} ${persianMonth} ${toPersianDigits2(persianYear)}\u060C ${persianHours}:${persianMinutes}`;
449
- }
450
366
 
451
367
  // src/lib/jalali-utils.ts
452
- var import_moment_jalaali = __toESM(require("moment-jalaali"), 1);
453
- import_moment_jalaali.default.loadPersian({ usePersianDigits: true, dialect: "persian-modern" });
368
+ var import_date_fns_jalali = require("date-fns-jalali");
454
369
  var PERSIAN_MONTHS = [
455
370
  "\u0641\u0631\u0648\u0631\u062F\u06CC\u0646",
456
371
  "\u0627\u0631\u062F\u06CC\u0628\u0647\u0634\u062A",
@@ -498,49 +413,59 @@ function toEnglishDigits(str) {
498
413
  const arabicDigits = ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"];
499
414
  return str.replace(/[۰-۹]/g, (digit) => String(persianDigits.indexOf(digit))).replace(/[٠-٩]/g, (digit) => String(arabicDigits.indexOf(digit)));
500
415
  }
501
- function formatJalaliDate(date, format3 = "jYYYY/jMM/jDD") {
502
- return (0, import_moment_jalaali.default)(date).format(format3);
416
+ function formatJalaliDate(date, formatStr = "yyyy/MM/dd") {
417
+ let finalFormatStr = formatStr;
418
+ if (finalFormatStr.includes("jYYYY")) finalFormatStr = finalFormatStr.replace(/jYYYY/g, "yyyy");
419
+ if (finalFormatStr.includes("jMMMM")) finalFormatStr = finalFormatStr.replace(/jMMMM/g, "MMMM");
420
+ if (finalFormatStr.includes("jMM")) finalFormatStr = finalFormatStr.replace(/jMM/g, "MM");
421
+ if (finalFormatStr.includes("jM")) finalFormatStr = finalFormatStr.replace(/jM/g, "M");
422
+ if (finalFormatStr.includes("jDD")) finalFormatStr = finalFormatStr.replace(/jDD/g, "dd");
423
+ if (finalFormatStr.includes("jD")) finalFormatStr = finalFormatStr.replace(/jD/g, "d");
424
+ return (0, import_date_fns_jalali.format)(date, finalFormatStr);
503
425
  }
504
426
  function getPersianMonthName(date) {
505
- const monthIndex = (0, import_moment_jalaali.default)(date).jMonth();
427
+ const monthIndex = (0, import_date_fns_jalali.getMonth)(date);
506
428
  return PERSIAN_MONTHS[monthIndex];
507
429
  }
508
430
  function getPersianMonthNameShort(date) {
509
- const monthIndex = (0, import_moment_jalaali.default)(date).jMonth();
431
+ const monthIndex = (0, import_date_fns_jalali.getMonth)(date);
510
432
  return PERSIAN_MONTHS_SHORT[monthIndex];
511
433
  }
512
434
  function getPersianWeekdayName(date, short = false) {
513
- const dayIndex = (0, import_moment_jalaali.default)(date).day();
435
+ const dayIndex = date.getDay();
514
436
  return short ? PERSIAN_WEEKDAYS_SHORT[dayIndex] : PERSIAN_WEEKDAYS[dayIndex];
515
437
  }
516
438
  function getPersianYear(date) {
517
- return (0, import_moment_jalaali.default)(date).jYear();
439
+ return (0, import_date_fns_jalali.getYear)(date);
518
440
  }
519
441
  function getPersianMonth(date) {
520
- return (0, import_moment_jalaali.default)(date).jMonth();
442
+ return (0, import_date_fns_jalali.getMonth)(date);
521
443
  }
522
444
  function getPersianDay(date) {
523
- return (0, import_moment_jalaali.default)(date).jDate();
445
+ return (0, import_date_fns_jalali.getDate)(date);
524
446
  }
525
447
  function jalaliToGregorian(year, month, day) {
526
- return (0, import_moment_jalaali.default)(`${year}/${month + 1}/${day}`, "jYYYY/jM/jD").toDate();
448
+ const yyyy = year.toString().padStart(4, "0");
449
+ const MM = (month + 1).toString().padStart(2, "0");
450
+ const dd = day.toString().padStart(2, "0");
451
+ const referenceDate = /* @__PURE__ */ new Date();
452
+ referenceDate.setHours(12, 0, 0, 0);
453
+ return (0, import_date_fns_jalali.parse)(`${yyyy}/${MM}/${dd}`, "yyyy/MM/dd", referenceDate);
527
454
  }
528
455
  function formatPersianDateRange(from, to) {
529
- const fromMoment = (0, import_moment_jalaali.default)(from);
530
- const toMoment = (0, import_moment_jalaali.default)(to);
531
- const fromYear = fromMoment.jYear();
532
- const toYear = toMoment.jYear();
533
- const fromMonth = fromMoment.jMonth();
534
- const toMonth = toMoment.jMonth();
535
- const fromDay = fromMoment.jDate();
536
- const toDay = toMoment.jDate();
537
- if (fromYear === toYear && fromMonth === toMonth && fromDay === toDay) {
456
+ const fromYear = (0, import_date_fns_jalali.getYear)(from);
457
+ const toYear = (0, import_date_fns_jalali.getYear)(to);
458
+ const fromMonth = (0, import_date_fns_jalali.getMonth)(from);
459
+ const toMonth = (0, import_date_fns_jalali.getMonth)(to);
460
+ const fromDay = (0, import_date_fns_jalali.getDate)(from);
461
+ const toDay = (0, import_date_fns_jalali.getDate)(to);
462
+ if ((0, import_date_fns_jalali.isSameDay)(from, to)) {
538
463
  return `${toPersianDigits(fromDay)} ${PERSIAN_MONTHS[fromMonth]} ${toPersianDigits(fromYear)}`;
539
464
  }
540
- if (fromYear === toYear && fromMonth === toMonth) {
465
+ if ((0, import_date_fns_jalali.isSameYear)(from, to) && (0, import_date_fns_jalali.isSameMonth)(from, to)) {
541
466
  return `${toPersianDigits(fromDay)} - ${toPersianDigits(toDay)} ${PERSIAN_MONTHS[fromMonth]} ${toPersianDigits(fromYear)}`;
542
467
  }
543
- if (fromYear === toYear) {
468
+ if ((0, import_date_fns_jalali.isSameYear)(from, to)) {
544
469
  return `${toPersianDigits(fromDay)} ${PERSIAN_MONTHS[fromMonth]} - ${toPersianDigits(toDay)} ${PERSIAN_MONTHS[toMonth]} ${toPersianDigits(fromYear)}`;
545
470
  }
546
471
  return `${toPersianDigits(fromDay)} ${PERSIAN_MONTHS[fromMonth]} ${toPersianDigits(fromYear)} - ${toPersianDigits(toDay)} ${PERSIAN_MONTHS[toMonth]} ${toPersianDigits(toYear)}`;
@@ -562,11 +487,71 @@ function getPersianYearsForDropdown(fromYear, toYear) {
562
487
  return years;
563
488
  }
564
489
 
490
+ // src/lib/utils.ts
491
+ function cn(...inputs) {
492
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
493
+ }
494
+ function formatNumber(num, format4 = "exact") {
495
+ if (num === void 0 || num === null) return "0";
496
+ if (format4 === "exact") {
497
+ return num.toLocaleString("en-US");
498
+ }
499
+ if (num >= 1e9) {
500
+ return `${(num / 1e9).toFixed(1).replace(/\.0$/, "")}B`;
501
+ }
502
+ if (num >= 1e6) {
503
+ return `${(num / 1e6).toFixed(1).replace(/\.0$/, "")}M`;
504
+ }
505
+ if (num >= 1e3) {
506
+ return `${(num / 1e3).toFixed(1).replace(/\.0$/, "")}K`;
507
+ }
508
+ return num.toString();
509
+ }
510
+ function formatRelativeTime(date) {
511
+ const now = /* @__PURE__ */ new Date();
512
+ const then = new Date(date);
513
+ const diffInSeconds = Math.floor((now.getTime() - then.getTime()) / 1e3);
514
+ if (diffInSeconds < 60) {
515
+ return "\u0647\u0645\u06CC\u0646 \u0627\u0644\u0627\u0646";
516
+ }
517
+ const diffInMinutes = Math.floor(diffInSeconds / 60);
518
+ if (diffInMinutes < 60) {
519
+ return `${toPersianDigits(diffInMinutes)} \u062F\u0642\u06CC\u0642\u0647 \u067E\u06CC\u0634`;
520
+ }
521
+ const diffInHours = Math.floor(diffInMinutes / 60);
522
+ if (diffInHours < 24) {
523
+ return `${toPersianDigits(diffInHours)} \u0633\u0627\u0639\u062A \u067E\u06CC\u0634`;
524
+ }
525
+ const diffInDays = Math.floor(diffInHours / 24);
526
+ if (diffInDays < 7) {
527
+ return `${toPersianDigits(diffInDays)} \u0631\u0648\u0632 \u067E\u06CC\u0634`;
528
+ }
529
+ const diffInWeeks = Math.floor(diffInDays / 7);
530
+ if (diffInWeeks < 4) {
531
+ return `${toPersianDigits(diffInWeeks)} \u0647\u0641\u062A\u0647 \u067E\u06CC\u0634`;
532
+ }
533
+ const diffInMonths = Math.floor(diffInDays / 30);
534
+ if (diffInMonths < 12) {
535
+ return `${toPersianDigits(diffInMonths)} \u0645\u0627\u0647 \u067E\u06CC\u0634`;
536
+ }
537
+ const diffInYears = Math.floor(diffInDays / 365);
538
+ return `${toPersianDigits(diffInYears)} \u0633\u0627\u0644 \u067E\u06CC\u0634`;
539
+ }
540
+ function formatAbsoluteTime(date) {
541
+ const d = new Date(date);
542
+ const year = getPersianYear(d);
543
+ const month = getPersianMonth(d);
544
+ const day = getPersianDay(d);
545
+ const hours = d.getHours();
546
+ const minutes = d.getMinutes();
547
+ return `${toPersianDigits(day)} ${PERSIAN_MONTHS[month]} ${toPersianDigits(year)}\u060C ${toPersianDigits(hours)}:${toPersianDigits(String(minutes).padStart(2, "0"))}`;
548
+ }
549
+
565
550
  // src/icons.tsx
566
551
  var import_lucide_react = require("lucide-react");
567
552
  var import_jsx_runtime = require("react/jsx-runtime");
568
553
  var Icons = {
569
- // Lucide Icons
554
+ /** Parto layered logo mark (generic) */
570
555
  logo: (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
571
556
  "svg",
572
557
  {
@@ -585,6 +570,7 @@ var Icons = {
585
570
  ]
586
571
  }
587
572
  ),
573
+ /** Official Parto brand mark (triangle composition) */
588
574
  parto: (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
589
575
  "svg",
590
576
  {
@@ -604,6 +590,7 @@ var Icons = {
604
590
  arrowRight: import_lucide_react.ArrowRight,
605
591
  arrowLeft: import_lucide_react.ArrowLeft,
606
592
  bold: import_lucide_react.Bold,
593
+ building: import_lucide_react.Building,
607
594
  calendar: import_lucide_react.Calendar,
608
595
  check: import_lucide_react.Check,
609
596
  chevronDown: import_lucide_react.ChevronDown,
@@ -612,47 +599,19 @@ var Icons = {
612
599
  chevronUp: import_lucide_react.ChevronUp,
613
600
  circle: import_lucide_react.Circle,
614
601
  clock: import_lucide_react.Clock,
602
+ /** Use for close/dismiss actions (X mark) */
603
+ close: import_lucide_react.X,
615
604
  copy: import_lucide_react.Copy,
616
605
  download: import_lucide_react.Download,
617
606
  eye: import_lucide_react.Eye,
618
607
  eyeOff: import_lucide_react.EyeOff,
619
608
  file: import_lucide_react.File,
620
609
  fileText: import_lucide_react.FileText,
621
- heart: import_lucide_react.Heart,
622
- home: import_lucide_react.Home,
623
- image: import_lucide_react.Image,
624
- images: import_lucide_react.Images,
625
- inbox: import_lucide_react.Inbox,
626
- info: import_lucide_react.Info,
627
- italic: import_lucide_react.Italic,
628
- loader: import_lucide_react.Loader2,
629
- menu: import_lucide_react.Menu,
630
- messageCircle: import_lucide_react.MessageCircle,
631
- moon: import_lucide_react.Moon,
632
- moreHorizontal: import_lucide_react.MoreHorizontal,
633
- moreVertical: import_lucide_react.MoreVertical,
634
- plus: import_lucide_react.Plus,
635
- rocket: import_lucide_react.Rocket,
636
- search: import_lucide_react.Search,
637
- settings: import_lucide_react.Settings,
638
- share: import_lucide_react.Share2,
639
- sparkles: import_lucide_react.Sparkles,
640
- sun: import_lucide_react.Sun,
641
- trash: import_lucide_react.Trash,
642
- underline: import_lucide_react.Underline,
643
- user: import_lucide_react.User,
644
- users: import_lucide_react.Users,
645
- video: import_lucide_react.Video,
646
- building: import_lucide_react.Building,
647
- close: import_lucide_react.X,
648
- spinner: import_lucide_react.Loader2,
649
610
  gitHub: (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
650
611
  "svg",
651
612
  {
652
613
  "aria-hidden": "true",
653
614
  focusable: "false",
654
- "data-prefix": "fab",
655
- "data-icon": "github",
656
615
  role: "img",
657
616
  xmlns: "http://www.w3.org/2000/svg",
658
617
  viewBox: "0 0 496 512",
@@ -666,7 +625,13 @@ var Icons = {
666
625
  )
667
626
  }
668
627
  ),
669
- twitter: (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
628
+ heart: import_lucide_react.Heart,
629
+ home: import_lucide_react.Home,
630
+ image: import_lucide_react.Image,
631
+ images: import_lucide_react.Images,
632
+ inbox: import_lucide_react.Inbox,
633
+ info: import_lucide_react.Info,
634
+ instagram: (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
670
635
  "svg",
671
636
  {
672
637
  xmlns: "http://www.w3.org/2000/svg",
@@ -677,10 +642,30 @@ var Icons = {
677
642
  strokeLinecap: "round",
678
643
  strokeLinejoin: "round",
679
644
  ...props,
680
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z" })
645
+ children: [
646
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", { x: "2", y: "2", width: "20", height: "20", rx: "5", ry: "5" }),
647
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z" }),
648
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("line", { x1: "17.5", y1: "6.5", x2: "17.51", y2: "6.5" })
649
+ ]
681
650
  }
682
651
  ),
683
- instagram: (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
652
+ italic: import_lucide_react.Italic,
653
+ /** Animated loading spinner — prefer this over a custom spinner */
654
+ loader: import_lucide_react.Loader2,
655
+ menu: import_lucide_react.Menu,
656
+ messageCircle: import_lucide_react.MessageCircle,
657
+ moon: import_lucide_react.Moon,
658
+ moreHorizontal: import_lucide_react.MoreHorizontal,
659
+ moreVertical: import_lucide_react.MoreVertical,
660
+ plus: import_lucide_react.Plus,
661
+ rocket: import_lucide_react.Rocket,
662
+ search: import_lucide_react.Search,
663
+ settings: import_lucide_react.Settings,
664
+ share: import_lucide_react.Share2,
665
+ sparkles: import_lucide_react.Sparkles,
666
+ sun: import_lucide_react.Sun,
667
+ trash: import_lucide_react.Trash,
668
+ twitter: (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
684
669
  "svg",
685
670
  {
686
671
  xmlns: "http://www.w3.org/2000/svg",
@@ -691,18 +676,27 @@ var Icons = {
691
676
  strokeLinecap: "round",
692
677
  strokeLinejoin: "round",
693
678
  ...props,
694
- children: [
695
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", { x: "2", y: "2", width: "20", height: "20", rx: "5", ry: "5" }),
696
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z" }),
697
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("line", { x1: "17.5", y1: "6.5", x2: "17.51", y2: "6.5" })
698
- ]
679
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z" })
699
680
  }
700
- )
681
+ ),
682
+ underline: import_lucide_react.Underline,
683
+ user: import_lucide_react.User,
684
+ users: import_lucide_react.Users,
685
+ video: import_lucide_react.Video,
686
+ userCheck: import_lucide_react.UserCheck,
687
+ trendingUp: import_lucide_react.TrendingUp,
688
+ award: import_lucide_react.Award,
689
+ crown: import_lucide_react.Crown,
690
+ minus: import_lucide_react.Minus,
691
+ imageOff: import_lucide_react.ImageOff,
692
+ externalLink: import_lucide_react.ExternalLink,
693
+ gripVertical: import_lucide_react.GripVertical,
694
+ panelLeft: import_lucide_react.PanelLeft,
695
+ xCircle: import_lucide_react.XCircle
701
696
  };
702
697
 
703
698
  // src/components/ui/accordion.tsx
704
699
  var AccordionPrimitive = __toESM(require("@radix-ui/react-accordion"), 1);
705
- var import_lucide_react2 = require("lucide-react");
706
700
  var import_jsx_runtime2 = require("react/jsx-runtime");
707
701
  function Accordion({
708
702
  ...props
@@ -738,7 +732,7 @@ function AccordionTrigger({
738
732
  ...props,
739
733
  children: [
740
734
  children,
741
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react2.ChevronDownIcon, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })
735
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icons.chevronDown, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })
742
736
  ]
743
737
  }
744
738
  ) });
@@ -816,7 +810,6 @@ var AlertDialogPrimitive = __toESM(require("@radix-ui/react-alert-dialog"), 1);
816
810
  // src/components/ui/button.tsx
817
811
  var import_react_slot = require("@radix-ui/react-slot");
818
812
  var import_class_variance_authority2 = require("class-variance-authority");
819
- var import_lucide_react3 = require("lucide-react");
820
813
  var import_react = require("react");
821
814
 
822
815
  // src/lib/constants.ts
@@ -1130,11 +1123,11 @@ var Button = (0, import_react.forwardRef)(
1130
1123
  children: asChild ? (0, import_react.isValidElement)(children) ? (0, import_react.cloneElement)(
1131
1124
  children,
1132
1125
  void 0,
1133
- showIcon && (loading ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: cn(IconContainerVariants({ size: iconSize, variant: buttonVariant })), children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react3.Loader2, { className: cn(loadingVariants({ loading, variant: buttonVariant })) }) }) : _iconLeft ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: cn(IconContainerVariants({ size: iconSize, variant: buttonVariant })), children: _iconLeft }) : null),
1126
+ showIcon && (loading ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: cn(IconContainerVariants({ size: iconSize, variant: buttonVariant })), children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Icons.loader, { className: cn(loadingVariants({ loading, variant: buttonVariant })) }) }) : _iconLeft ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: cn(IconContainerVariants({ size: iconSize, variant: buttonVariant })), children: _iconLeft }) : null),
1134
1127
  children.props?.children && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "truncate", children: children.props.children }),
1135
1128
  iconRight && !loading && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: cn(IconContainerVariants({ size: iconSize, variant: buttonVariant })), children: iconRight })
1136
1129
  ) : null : /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
1137
- showIcon && (loading ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: cn(IconContainerVariants({ size: iconSize, variant: buttonVariant })), children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react3.Loader2, { className: cn(loadingVariants({ loading, variant: buttonVariant })) }) }) : _iconLeft ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: cn(IconContainerVariants({ size: iconSize, variant: buttonVariant })), children: _iconLeft }) : null),
1130
+ showIcon && (loading ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: cn(IconContainerVariants({ size: iconSize, variant: buttonVariant })), children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Icons.loader, { className: cn(loadingVariants({ loading, variant: buttonVariant })) }) }) : _iconLeft ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: cn(IconContainerVariants({ size: iconSize, variant: buttonVariant })), children: _iconLeft }) : null),
1138
1131
  " ",
1139
1132
  children && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "truncate", children }),
1140
1133
  " ",
@@ -1313,11 +1306,10 @@ var Input = React3.forwardRef(
1313
1306
  Input.displayName = "Input";
1314
1307
 
1315
1308
  // src/components/ui/spinner.tsx
1316
- var import_lucide_react4 = require("lucide-react");
1317
1309
  var import_jsx_runtime7 = require("react/jsx-runtime");
1318
1310
  function Spinner({ className, ...props }) {
1319
1311
  return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1320
- import_lucide_react4.Loader2Icon,
1312
+ Icons.loader,
1321
1313
  {
1322
1314
  role: "status",
1323
1315
  "aria-label": "Loading",
@@ -2025,7 +2017,6 @@ function Badge({
2025
2017
 
2026
2018
  // src/components/ui/breadcrumb.tsx
2027
2019
  var import_react_slot2 = require("@radix-ui/react-slot");
2028
- var import_lucide_react5 = require("lucide-react");
2029
2020
  var import_jsx_runtime13 = require("react/jsx-runtime");
2030
2021
  function Breadcrumb({ ...props }) {
2031
2022
  return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
@@ -2100,7 +2091,7 @@ function BreadcrumbSeparator({
2100
2091
  "aria-hidden": "true",
2101
2092
  className: cn("[&>svg]:size-3.5", className),
2102
2093
  ...props,
2103
- children: children ?? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react5.ChevronRight, {})
2094
+ children: children ?? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Icons.chevronRight, {})
2104
2095
  }
2105
2096
  );
2106
2097
  }
@@ -2117,7 +2108,7 @@ function BreadcrumbEllipsis({
2117
2108
  className: cn("flex size-9 items-center justify-center", className),
2118
2109
  ...props,
2119
2110
  children: [
2120
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react5.MoreHorizontal, { className: "size-4" }),
2111
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Icons.moreHorizontal, { className: "size-4" }),
2121
2112
  /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "sr-only", children: "More" })
2122
2113
  ]
2123
2114
  }
@@ -2251,7 +2242,6 @@ function ButtonGroupSeparator({
2251
2242
  }
2252
2243
 
2253
2244
  // src/components/ui/calendar.tsx
2254
- var import_lucide_react6 = require("lucide-react");
2255
2245
  var import_react_day_picker = require("react-day-picker");
2256
2246
  var import_persian = require("react-day-picker/persian");
2257
2247
  var import_locale = require("date-fns/locale");
@@ -2336,14 +2326,14 @@ function Calendar2({
2336
2326
  Chevron: ({ orientation }) => {
2337
2327
  if (usePersianCalendar) {
2338
2328
  if (orientation === "left") {
2339
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react6.ChevronRight, { className: "h-4 w-4" });
2329
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icons.chevronRight, { className: "h-4 w-4" });
2340
2330
  }
2341
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react6.ChevronLeft, { className: "h-4 w-4" });
2331
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icons.chevronLeft, { className: "h-4 w-4" });
2342
2332
  }
2343
2333
  if (orientation === "left") {
2344
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react6.ChevronLeft, { className: "h-4 w-4" });
2334
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icons.chevronLeft, { className: "h-4 w-4" });
2345
2335
  }
2346
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react6.ChevronRight, { className: "h-4 w-4" });
2336
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icons.chevronRight, { className: "h-4 w-4" });
2347
2337
  }
2348
2338
  },
2349
2339
  ...props
@@ -2395,7 +2385,6 @@ CardFooter.displayName = "CardFooter";
2395
2385
  // src/components/ui/carousel.tsx
2396
2386
  var React8 = __toESM(require("react"), 1);
2397
2387
  var import_embla_carousel_react = __toESM(require("embla-carousel-react"), 1);
2398
- var import_lucide_react7 = require("lucide-react");
2399
2388
  var import_jsx_runtime18 = require("react/jsx-runtime");
2400
2389
  var CarouselContext = React8.createContext(null);
2401
2390
  function useCarousel() {
@@ -2589,7 +2578,7 @@ function CarouselPrevious({
2589
2578
  onClick: scrollPrev,
2590
2579
  ...props,
2591
2580
  children: [
2592
- isRTL ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react7.ArrowRight, {}) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react7.ArrowLeft, {}),
2581
+ isRTL ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icons.arrowRight, {}) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icons.arrowLeft, {}),
2593
2582
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "sr-only", children: "Previous slide" })
2594
2583
  ]
2595
2584
  }
@@ -2620,7 +2609,7 @@ function CarouselNext({
2620
2609
  onClick: scrollNext,
2621
2610
  ...props,
2622
2611
  children: [
2623
- isRTL ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react7.ArrowLeft, {}) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react7.ArrowRight, {}),
2612
+ isRTL ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icons.arrowLeft, {}) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icons.arrowRight, {}),
2624
2613
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "sr-only", children: "Next slide" })
2625
2614
  ]
2626
2615
  }
@@ -2629,7 +2618,6 @@ function CarouselNext({
2629
2618
 
2630
2619
  // src/components/ui/checkbox.tsx
2631
2620
  var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"), 1);
2632
- var import_lucide_react8 = require("lucide-react");
2633
2621
  var import_jsx_runtime19 = require("react/jsx-runtime");
2634
2622
  function Checkbox({
2635
2623
  className,
@@ -2649,7 +2637,7 @@ function Checkbox({
2649
2637
  {
2650
2638
  "data-slot": "checkbox-indicator",
2651
2639
  className: "grid place-content-center text-current transition-none",
2652
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react8.CheckIcon, { className: "size-3.5" })
2640
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Icons.check, { className: "size-3.5" })
2653
2641
  }
2654
2642
  )
2655
2643
  }
@@ -2689,12 +2677,10 @@ function CollapsibleContent2({
2689
2677
 
2690
2678
  // src/components/ui/command.tsx
2691
2679
  var import_cmdk = require("cmdk");
2692
- var import_lucide_react10 = require("lucide-react");
2693
2680
 
2694
2681
  // src/components/ui/dialog.tsx
2695
2682
  var React9 = __toESM(require("react"), 1);
2696
2683
  var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
2697
- var import_lucide_react9 = require("lucide-react");
2698
2684
  var import_jsx_runtime21 = require("react/jsx-runtime");
2699
2685
  var Dialog = DialogPrimitive.Root;
2700
2686
  var DialogTrigger = DialogPrimitive.Trigger;
@@ -2726,7 +2712,7 @@ var DialogContent = React9.forwardRef(({ className, children, ...props }, ref) =
2726
2712
  children: [
2727
2713
  children,
2728
2714
  /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(DialogPrimitive.Close, { className: "absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-brand-default focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-selection data-[state=open]:text-foreground-muted", children: [
2729
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react9.X, { className: "h-4 w-4" }),
2715
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Icons.close, { className: "h-4 w-4" }),
2730
2716
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "sr-only", children: "Close" })
2731
2717
  ] })
2732
2718
  ]
@@ -2833,7 +2819,7 @@ function CommandInput({
2833
2819
  "data-slot": "command-input-wrapper",
2834
2820
  className: "flex h-9 items-center gap-2 border-b px-3",
2835
2821
  children: [
2836
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react10.SearchIcon, { className: "size-4 shrink-0 opacity-50" }),
2822
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Icons.search, { className: "size-4 shrink-0 opacity-50" }),
2837
2823
  /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2838
2824
  import_cmdk.Command.Input,
2839
2825
  {
@@ -3012,7 +2998,6 @@ CommentCard.displayName = "CommentCard";
3012
2998
 
3013
2999
  // src/components/ui/context-menu.tsx
3014
3000
  var ContextMenuPrimitive = __toESM(require("@radix-ui/react-context-menu"), 1);
3015
- var import_lucide_react11 = require("lucide-react");
3016
3001
  var import_jsx_runtime24 = require("react/jsx-runtime");
3017
3002
  function ContextMenu({
3018
3003
  ...props
@@ -3068,7 +3053,7 @@ function ContextMenuSubTrigger({
3068
3053
  ...props,
3069
3054
  children: [
3070
3055
  children,
3071
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react11.ChevronRightIcon, { className: "ms-auto rtl:rotate-180" })
3056
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Icons.chevronRight, { className: "ms-auto rtl:rotate-180" })
3072
3057
  ]
3073
3058
  }
3074
3059
  );
@@ -3142,7 +3127,7 @@ function ContextMenuCheckboxItem({
3142
3127
  checked,
3143
3128
  ...props,
3144
3129
  children: [
3145
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "pointer-events-none absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react11.CheckIcon, { className: "size-4" }) }) }),
3130
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "pointer-events-none absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Icons.check, { className: "size-4" }) }) }),
3146
3131
  children
3147
3132
  ]
3148
3133
  }
@@ -3163,7 +3148,7 @@ function ContextMenuRadioItem({
3163
3148
  ),
3164
3149
  ...props,
3165
3150
  children: [
3166
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "pointer-events-none absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react11.CircleIcon, { className: "size-2 fill-current" }) }) }),
3151
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "pointer-events-none absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Icons.circle, { className: "size-2 fill-current" }) }) }),
3167
3152
  children
3168
3153
  ]
3169
3154
  }
@@ -3219,7 +3204,6 @@ function ContextMenuShortcut({
3219
3204
 
3220
3205
  // src/components/ui/date-picker.tsx
3221
3206
  var import_date_fns = require("date-fns");
3222
- var import_lucide_react12 = require("lucide-react");
3223
3207
 
3224
3208
  // src/components/ui/popover.tsx
3225
3209
  var React11 = __toESM(require("react"), 1);
@@ -3359,7 +3343,7 @@ function DatePicker({
3359
3343
  !value && "text-muted-foreground"
3360
3344
  ),
3361
3345
  disabled,
3362
- iconLeft: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react12.Calendar, { className: "h-4 w-4" }),
3346
+ iconLeft: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Icons.calendar, { className: "h-4 w-4" }),
3363
3347
  children: displayText || placeholder || defaultPlaceholder
3364
3348
  }
3365
3349
  ) }),
@@ -3418,7 +3402,6 @@ function DatePicker({
3418
3402
 
3419
3403
  // src/components/ui/date-range-picker.tsx
3420
3404
  var React12 = __toESM(require("react"), 1);
3421
- var import_lucide_react13 = require("lucide-react");
3422
3405
 
3423
3406
  // src/components/ui/label.tsx
3424
3407
  var LabelPrimitive = __toESM(require("@radix-ui/react-label"), 1);
@@ -3484,7 +3467,7 @@ function DateRangePicker({
3484
3467
  ),
3485
3468
  children: [
3486
3469
  formatDateRange2(value),
3487
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.ChevronDownIcon, { className: "size-4 opacity-50" })
3470
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icons.chevronDown, { className: "size-4 opacity-50" })
3488
3471
  ]
3489
3472
  }
3490
3473
  ) }),
@@ -3551,7 +3534,7 @@ function DateRangePickerInline({
3551
3534
  ),
3552
3535
  children: [
3553
3536
  formatDateRange2(value),
3554
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.CalendarIcon, { className: "size-4 opacity-50" })
3537
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icons.calendar, { className: "size-4 opacity-50" })
3555
3538
  ]
3556
3539
  }
3557
3540
  ) }),
@@ -3699,7 +3682,6 @@ function DrawerDescription({
3699
3682
 
3700
3683
  // src/components/ui/dropdown-menu.tsx
3701
3684
  var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"), 1);
3702
- var import_lucide_react14 = require("lucide-react");
3703
3685
  var import_jsx_runtime30 = require("react/jsx-runtime");
3704
3686
  function DropdownMenu({
3705
3687
  ...props
@@ -3782,7 +3764,7 @@ function DropdownMenuCheckboxItem({
3782
3764
  checked,
3783
3765
  ...props,
3784
3766
  children: [
3785
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "pointer-events-none absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_lucide_react14.CheckIcon, { className: "size-4" }) }) }),
3767
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "pointer-events-none absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Icons.check, { className: "size-4" }) }) }),
3786
3768
  children
3787
3769
  ]
3788
3770
  }
@@ -3814,7 +3796,7 @@ function DropdownMenuRadioItem({
3814
3796
  ),
3815
3797
  ...props,
3816
3798
  children: [
3817
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "pointer-events-none absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_lucide_react14.CircleIcon, { className: "size-2 fill-current" }) }) }),
3799
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "pointer-events-none absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Icons.circle, { className: "size-2 fill-current" }) }) }),
3818
3800
  children
3819
3801
  ]
3820
3802
  }
@@ -3890,7 +3872,7 @@ function DropdownMenuSubTrigger({
3890
3872
  ...props,
3891
3873
  children: [
3892
3874
  children,
3893
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_lucide_react14.ChevronRightIcon, { className: "ms-auto size-4 rtl:rotate-180" })
3875
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Icons.chevronRight, { className: "ms-auto size-4 rtl:rotate-180" })
3894
3876
  ]
3895
3877
  }
3896
3878
  );
@@ -4319,7 +4301,6 @@ function HoverCardContent({
4319
4301
 
4320
4302
  // src/components/ui/tag-input.tsx
4321
4303
  var React14 = __toESM(require("react"), 1);
4322
- var import_lucide_react15 = require("lucide-react");
4323
4304
  var import_class_variance_authority7 = require("class-variance-authority");
4324
4305
  var import_jsx_runtime35 = require("react/jsx-runtime");
4325
4306
  var tagInputVariants = (0, import_class_variance_authority7.cva)(
@@ -4413,7 +4394,7 @@ var TagInput = React14.forwardRef(
4413
4394
  className: "rounded-full outline-none ring-offset-background focus:ring-2 focus:ring-ring focus:ring-offset-2 hover:!bg-primary/20 transition-colors",
4414
4395
  disabled,
4415
4396
  children: [
4416
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react15.X, { className: "h-3 w-3 text-muted-foreground" }),
4397
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Icons.close, { className: "h-3 w-3 text-muted-foreground" }),
4417
4398
  /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("span", { className: "sr-only", children: [
4418
4399
  "Remove ",
4419
4400
  tag
@@ -4447,7 +4428,6 @@ TagInput.displayName = "TagInput";
4447
4428
 
4448
4429
  // src/components/ui/hashtag-input.tsx
4449
4430
  var React15 = __toESM(require("react"), 1);
4450
- var import_lucide_react16 = require("lucide-react");
4451
4431
  var import_class_variance_authority8 = require("class-variance-authority");
4452
4432
  var import_jsx_runtime36 = require("react/jsx-runtime");
4453
4433
  var hashtagInputVariants = (0, import_class_variance_authority8.cva)(
@@ -4542,7 +4522,7 @@ var HashtagInput = React15.forwardRef(
4542
4522
  className: "rounded-full outline-none ring-offset-background focus:ring-2 focus:ring-ring focus:ring-offset-2 hover:!bg-primary/20 transition-colors",
4543
4523
  disabled,
4544
4524
  children: [
4545
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react16.X, { className: "h-3 w-3 text-muted-foreground" }),
4525
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Icons.close, { className: "h-3 w-3 text-muted-foreground" }),
4546
4526
  /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("span", { className: "sr-only", children: [
4547
4527
  "Remove ",
4548
4528
  tag
@@ -4767,7 +4747,6 @@ function InputGroupTextarea({
4767
4747
  // src/components/ui/input-otp.tsx
4768
4748
  var React17 = __toESM(require("react"), 1);
4769
4749
  var import_input_otp = require("input-otp");
4770
- var import_lucide_react17 = require("lucide-react");
4771
4750
  var import_jsx_runtime39 = require("react/jsx-runtime");
4772
4751
  function InputOTP({
4773
4752
  className,
@@ -4833,7 +4812,7 @@ function InputOTPSeparator({ ...props }) {
4833
4812
  role: "separator",
4834
4813
  dir: "ltr",
4835
4814
  ...props,
4836
- children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react17.MinusIcon, {})
4815
+ children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Icons.minus, {})
4837
4816
  }
4838
4817
  );
4839
4818
  }
@@ -4864,7 +4843,6 @@ var TooltipContent = React18.forwardRef(({ className, sideOffset = 4, ...props }
4864
4843
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
4865
4844
 
4866
4845
  // src/components/ui/instagram-post.tsx
4867
- var import_lucide_react18 = require("lucide-react");
4868
4846
  var import_jsx_runtime41 = require("react/jsx-runtime");
4869
4847
  var instagramPostVariants = (0, import_class_variance_authority10.cva)(
4870
4848
  "relative border bg-background-surface-100",
@@ -4890,7 +4868,7 @@ function InstagramPostMedia({
4890
4868
  const handleImageError = (url) => {
4891
4869
  setImageError((prev) => ({ ...prev, [url]: true }));
4892
4870
  };
4893
- const renderPlaceholder = () => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "w-full h-full flex items-center justify-center bg-muted/10 dark:bg-muted/5", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_lucide_react18.ImageOff, { className: "size-12 text-muted-foreground/50" }) });
4871
+ const renderPlaceholder = () => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "w-full h-full flex items-center justify-center bg-muted/10 dark:bg-muted/5", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Icons.imageOff, { className: "size-12 text-muted-foreground/50" }) });
4894
4872
  if (!media || media.length === 0) {
4895
4873
  return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4896
4874
  "div",
@@ -4900,7 +4878,7 @@ function InstagramPostMedia({
4900
4878
  variant === "vertical" ? "aspect-square" : "w-[20%] shrink-0 h-full min-h-[200px] -my-[1px] -ms-[1px]"
4901
4879
  ),
4902
4880
  children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "text-center p-4", children: [
4903
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_lucide_react18.ImageOff, { className: "size-12 mx-auto mb-2 text-muted-foreground" }),
4881
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Icons.imageOff, { className: "size-12 mx-auto mb-2 text-muted-foreground" }),
4904
4882
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "text-sm text-muted-foreground", children: placeholderText })
4905
4883
  ] })
4906
4884
  }
@@ -5502,7 +5480,6 @@ function KbdGroup({ className, ...props }) {
5502
5480
 
5503
5481
  // src/components/ui/menubar.tsx
5504
5482
  var MenubarPrimitive = __toESM(require("@radix-ui/react-menubar"), 1);
5505
- var import_lucide_react19 = require("lucide-react");
5506
5483
  var import_jsx_runtime43 = require("react/jsx-runtime");
5507
5484
  function Menubar({
5508
5485
  className,
@@ -5615,7 +5592,7 @@ function MenubarCheckboxItem({
5615
5592
  checked,
5616
5593
  ...props,
5617
5594
  children: [
5618
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "pointer-events-none absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react19.CheckIcon, { className: "size-4" }) }) }),
5595
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "pointer-events-none absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Icons.check, { className: "size-4" }) }) }),
5619
5596
  children
5620
5597
  ]
5621
5598
  }
@@ -5636,7 +5613,7 @@ function MenubarRadioItem({
5636
5613
  ),
5637
5614
  ...props,
5638
5615
  children: [
5639
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "pointer-events-none absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react19.CircleIcon, { className: "size-2 fill-current" }) }) }),
5616
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "pointer-events-none absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Icons.circle, { className: "size-2 fill-current" }) }) }),
5640
5617
  children
5641
5618
  ]
5642
5619
  }
@@ -5712,7 +5689,7 @@ function MenubarSubTrigger({
5712
5689
  ...props,
5713
5690
  children: [
5714
5691
  children,
5715
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react19.ChevronRightIcon, { className: "ms-auto h-4 w-4 rtl:rotate-180" })
5692
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Icons.chevronRight, { className: "ms-auto h-4 w-4 rtl:rotate-180" })
5716
5693
  ]
5717
5694
  }
5718
5695
  );
@@ -5736,7 +5713,6 @@ function MenubarSubContent({
5736
5713
 
5737
5714
  // src/components/ui/metric-card.tsx
5738
5715
  var React20 = __toESM(require("react"), 1);
5739
- var import_lucide_react20 = require("lucide-react");
5740
5716
  var import_date_fns2 = require("date-fns");
5741
5717
 
5742
5718
  // src/components/ui/skeleton.tsx
@@ -5775,7 +5751,7 @@ var MetricCard = React20.forwardRef(
5775
5751
  Card,
5776
5752
  {
5777
5753
  ref,
5778
- className: cn("py-4 space-y-3", className),
5754
+ className: cn("py-4 space-y-3 @container", className),
5779
5755
  ...props,
5780
5756
  children
5781
5757
  }
@@ -5800,7 +5776,7 @@ var MetricCardHeader = React20.forwardRef(
5800
5776
  target: "_blank",
5801
5777
  rel: "noopener noreferrer",
5802
5778
  className: "text-foreground-lighter hover:text-foreground transition-colors",
5803
- children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react20.ExternalLink, { className: "h-3.5 w-3.5" })
5779
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Icons.externalLink, { className: "h-3.5 w-3.5" })
5804
5780
  }
5805
5781
  )
5806
5782
  ]
@@ -5830,7 +5806,7 @@ var MetricCardLabel = React20.forwardRef(
5830
5806
  return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Tooltip, { children: [
5831
5807
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "flex items-center gap-1.5 cursor-help", children: [
5832
5808
  label,
5833
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react20.Info, { className: "h-3.5 w-3.5 text-foreground-lighter" })
5809
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Icons.info, { className: "h-3.5 w-3.5 text-foreground-lighter" })
5834
5810
  ] }) }),
5835
5811
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(TooltipContent, { children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("p", { className: "max-w-xs", children: tooltip }) })
5836
5812
  ] }) });
@@ -6089,7 +6065,6 @@ var MetricCardSparkline = React20.forwardRef(
6089
6065
  MetricCardSparkline.displayName = "MetricCardSparkline";
6090
6066
 
6091
6067
  // src/components/ui/native-select.tsx
6092
- var import_lucide_react21 = require("lucide-react");
6093
6068
  var import_jsx_runtime46 = require("react/jsx-runtime");
6094
6069
  function NativeSelect({ className, ...props }) {
6095
6070
  return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
@@ -6121,7 +6096,7 @@ function NativeSelect({ className, ...props }) {
6121
6096
  }
6122
6097
  ),
6123
6098
  /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
6124
- import_lucide_react21.ChevronDownIcon,
6099
+ Icons.chevronDown,
6125
6100
  {
6126
6101
  className: "pointer-events-none absolute top-1/2 end-3 size-4 -translate-y-1/2 text-foreground-muted select-none",
6127
6102
  "aria-hidden": "true",
@@ -6152,7 +6127,6 @@ function NativeSelectOptGroup({
6152
6127
  // src/components/ui/navigation-menu.tsx
6153
6128
  var NavigationMenuPrimitive = __toESM(require("@radix-ui/react-navigation-menu"), 1);
6154
6129
  var import_class_variance_authority11 = require("class-variance-authority");
6155
- var import_lucide_react22 = require("lucide-react");
6156
6130
  var import_jsx_runtime47 = require("react/jsx-runtime");
6157
6131
  function NavigationMenu({
6158
6132
  className,
@@ -6224,7 +6198,7 @@ function NavigationMenuTrigger({
6224
6198
  children,
6225
6199
  " ",
6226
6200
  /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
6227
- import_lucide_react22.ChevronDownIcon,
6201
+ Icons.chevronDown,
6228
6202
  {
6229
6203
  className: "relative top-[1px] ms-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
6230
6204
  "aria-hidden": "true"
@@ -6311,7 +6285,6 @@ function NavigationMenuIndicator({
6311
6285
 
6312
6286
  // src/components/ui/pagination.tsx
6313
6287
  var React21 = __toESM(require("react"), 1);
6314
- var import_lucide_react23 = require("lucide-react");
6315
6288
  var import_jsx_runtime48 = require("react/jsx-runtime");
6316
6289
  var PaginationDirectionContext = React21.createContext("rtl");
6317
6290
  function usePaginationDirection() {
@@ -6400,7 +6373,7 @@ function PaginationPrevious({
6400
6373
  const dir = usePaginationDirection();
6401
6374
  const isRTL = dir === "rtl";
6402
6375
  const label = isRTL ? "\u0642\u0628\u0644\u06CC" : "Previous";
6403
- const Icon2 = isRTL ? import_lucide_react23.ChevronRightIcon : import_lucide_react23.ChevronLeftIcon;
6376
+ const Icon2 = isRTL ? Icons.chevronRight : Icons.chevronLeft;
6404
6377
  return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
6405
6378
  PaginationLink,
6406
6379
  {
@@ -6426,7 +6399,7 @@ function PaginationNext({
6426
6399
  const dir = usePaginationDirection();
6427
6400
  const isRTL = dir === "rtl";
6428
6401
  const label = isRTL ? "\u0628\u0639\u062F\u06CC" : "Next";
6429
- const Icon2 = isRTL ? import_lucide_react23.ChevronLeftIcon : import_lucide_react23.ChevronRightIcon;
6402
+ const Icon2 = isRTL ? Icons.chevronLeft : Icons.chevronRight;
6430
6403
  return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
6431
6404
  PaginationLink,
6432
6405
  {
@@ -6460,7 +6433,7 @@ function PaginationEllipsis({
6460
6433
  className: cn("flex size-9 items-center justify-center", className),
6461
6434
  ...props,
6462
6435
  children: [
6463
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react23.MoreHorizontalIcon, { className: "size-4" }),
6436
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Icons.moreHorizontal, { className: "size-4" }),
6464
6437
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "sr-only", children: "More pages" })
6465
6438
  ]
6466
6439
  }
@@ -6661,7 +6634,7 @@ var ProfileCard = React22.forwardRef(
6661
6634
  {
6662
6635
  ref,
6663
6636
  className: cn(
6664
- "flex flex-col items-center rounded-lg shadow-sm transition-colors",
6637
+ "flex flex-col items-center rounded-lg shadow-sm transition-colors @container",
6665
6638
  variantClasses[variant],
6666
6639
  currentSize.container,
6667
6640
  onCardClick && "cursor-pointer hover:bg-surface-200",
@@ -6825,7 +6798,6 @@ ProfileInfo.displayName = "ProfileInfo";
6825
6798
 
6826
6799
  // src/components/ui/engagement-rate.tsx
6827
6800
  var React24 = __toESM(require("react"), 1);
6828
- var import_lucide_react24 = require("lucide-react");
6829
6801
  var import_jsx_runtime52 = require("react/jsx-runtime");
6830
6802
  var convertToLocalNumbers2 = (text, locale) => {
6831
6803
  if (locale === "fa" || locale === "ar") {
@@ -6885,17 +6857,17 @@ var getGroupIcon = (group) => {
6885
6857
  const iconClass = "w-12 h-12 text-primary";
6886
6858
  switch (group) {
6887
6859
  case "nano":
6888
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react24.Users, { className: iconClass });
6860
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Icons.users, { className: iconClass });
6889
6861
  case "micro":
6890
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react24.UserCheck, { className: iconClass });
6862
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Icons.userCheck, { className: iconClass });
6891
6863
  case "mid":
6892
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react24.TrendingUp, { className: iconClass });
6864
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Icons.trendingUp, { className: iconClass });
6893
6865
  case "macro":
6894
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react24.Award, { className: iconClass });
6866
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Icons.award, { className: iconClass });
6895
6867
  case "mega":
6896
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react24.Crown, { className: iconClass });
6868
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Icons.crown, { className: iconClass });
6897
6869
  default:
6898
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react24.Users, { className: iconClass });
6870
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Icons.users, { className: iconClass });
6899
6871
  }
6900
6872
  };
6901
6873
  var translations = {
@@ -7555,7 +7527,6 @@ function Progress({
7555
7527
 
7556
7528
  // src/components/ui/radio-group.tsx
7557
7529
  var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
7558
- var import_lucide_react25 = require("lucide-react");
7559
7530
  var import_jsx_runtime55 = require("react/jsx-runtime");
7560
7531
  function RadioGroup4({
7561
7532
  className,
@@ -7588,7 +7559,7 @@ function RadioGroupItem({
7588
7559
  {
7589
7560
  "data-slot": "radio-group-indicator",
7590
7561
  className: "relative flex items-center justify-center",
7591
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react25.CircleIcon, { className: "fill-brand absolute top-1/2 start-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rtl:translate-x-1/2" })
7562
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Icons.circle, { className: "fill-brand absolute top-1/2 start-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rtl:translate-x-1/2" })
7592
7563
  }
7593
7564
  )
7594
7565
  }
@@ -7656,7 +7627,6 @@ var RadioCardDescription = React26.forwardRef(({ className, ...props }, ref) =>
7656
7627
  RadioCardDescription.displayName = "RadioCardDescription";
7657
7628
 
7658
7629
  // src/components/ui/resizable.tsx
7659
- var import_lucide_react26 = require("lucide-react");
7660
7630
  var ResizablePrimitive = __toESM(require("react-resizable-panels"), 1);
7661
7631
  var import_jsx_runtime57 = require("react/jsx-runtime");
7662
7632
  function ResizablePanelGroup({
@@ -7694,7 +7664,7 @@ function ResizableHandle({
7694
7664
  className
7695
7665
  ),
7696
7666
  ...props,
7697
- children: withHandle && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react26.GripVerticalIcon, { className: "size-2.5" }) })
7667
+ children: withHandle && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Icons.gripVertical, { className: "size-2.5" }) })
7698
7668
  }
7699
7669
  );
7700
7670
  }
@@ -7759,7 +7729,6 @@ function ScrollBar({
7759
7729
  // src/components/ui/select.tsx
7760
7730
  var React27 = __toESM(require("react"), 1);
7761
7731
  var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
7762
- var import_lucide_react27 = require("lucide-react");
7763
7732
  var import_class_variance_authority13 = require("class-variance-authority");
7764
7733
  var import_jsx_runtime59 = require("react/jsx-runtime");
7765
7734
  var Select = SelectPrimitive.Root;
@@ -7798,7 +7767,7 @@ var SelectTrigger = React27.forwardRef(({ className, children, size, ...props },
7798
7767
  ...props,
7799
7768
  children: [
7800
7769
  children,
7801
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react27.ChevronDown, { className: "h-4 w-4 text-foreground-lighter flex-shrink-0", strokeWidth: 1.5 }) })
7770
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icons.chevronDown, { className: "h-4 w-4 text-foreground-lighter flex-shrink-0", strokeWidth: 1.5 }) })
7802
7771
  ]
7803
7772
  }
7804
7773
  ));
@@ -7812,7 +7781,7 @@ var SelectScrollUpButton = React27.forwardRef(({ className, ...props }, ref) =>
7812
7781
  className
7813
7782
  ),
7814
7783
  ...props,
7815
- children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react27.ChevronUp, { className: "h-4 w-4" })
7784
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icons.chevronUp, { className: "h-4 w-4" })
7816
7785
  }
7817
7786
  ));
7818
7787
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
@@ -7825,7 +7794,7 @@ var SelectScrollDownButton = React27.forwardRef(({ className, ...props }, ref) =
7825
7794
  className
7826
7795
  ),
7827
7796
  ...props,
7828
- children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react27.ChevronDown, { className: "h-4 w-4" })
7797
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icons.chevronDown, { className: "h-4 w-4" })
7829
7798
  }
7830
7799
  ));
7831
7800
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
@@ -7880,7 +7849,7 @@ var SelectItem = React27.forwardRef(({ className, children, ...props }, ref) =>
7880
7849
  ),
7881
7850
  ...props,
7882
7851
  children: [
7883
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "absolute start-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(SelectPrimitive.ItemIndicator, { className: "h-3.5 w-3.5 bg-foreground rounded-full flex justify-center items-center", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react27.Check, { className: "h-2 w-2 text-background-overlay", strokeWidth: 6 }) }) }),
7852
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "absolute start-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(SelectPrimitive.ItemIndicator, { className: "h-3.5 w-3.5 bg-foreground rounded-full flex justify-center items-center", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icons.check, { className: "h-2 w-2 text-background-overlay", strokeWidth: 6 }) }) }),
7884
7853
  /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(SelectPrimitive.ItemText, { children: typeof children === "string" ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { children }) : children })
7885
7854
  ]
7886
7855
  }
@@ -7898,7 +7867,6 @@ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
7898
7867
 
7899
7868
  // src/components/ui/sheet.tsx
7900
7869
  var SheetPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
7901
- var import_lucide_react28 = require("lucide-react");
7902
7870
  var import_jsx_runtime60 = require("react/jsx-runtime");
7903
7871
  function Sheet({ ...props }) {
7904
7872
  return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
@@ -7958,7 +7926,7 @@ function SheetContent({
7958
7926
  children: [
7959
7927
  children,
7960
7928
  /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(SheetPrimitive.Close, { className: "absolute top-4 end-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-brand-default focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-selection data-[state=open]:text-foreground-muted", children: [
7961
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react28.XIcon, { className: "size-4" }),
7929
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icons.close, { className: "size-4" }),
7962
7930
  /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "sr-only", children: "Close" })
7963
7931
  ] })
7964
7932
  ]
@@ -8017,7 +7985,6 @@ function SheetDescription({
8017
7985
  var React29 = __toESM(require("react"), 1);
8018
7986
  var import_react_slot5 = require("@radix-ui/react-slot");
8019
7987
  var import_class_variance_authority14 = require("class-variance-authority");
8020
- var import_lucide_react29 = require("lucide-react");
8021
7988
 
8022
7989
  // src/hooks/use-mobile.ts
8023
7990
  var React28 = __toESM(require("react"), 1);
@@ -8235,7 +8202,7 @@ function SidebarTrigger({
8235
8202
  },
8236
8203
  ...props,
8237
8204
  children: [
8238
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react29.PanelLeftIcon, {}),
8205
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icons.panelLeft, {}),
8239
8206
  /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
8240
8207
  ]
8241
8208
  }
@@ -8728,16 +8695,15 @@ function Slider({
8728
8695
  }
8729
8696
 
8730
8697
  // src/components/ui/sonner.tsx
8731
- var import_lucide_react30 = require("lucide-react");
8732
8698
  var import_next_themes = require("next-themes");
8733
8699
  var import_sonner = require("sonner");
8734
8700
  var import_sonner2 = require("sonner");
8735
8701
  var import_jsx_runtime63 = require("react/jsx-runtime");
8736
8702
  var SONNER_DEFAULT_DURATION = 4e3;
8737
- var StatusIconSuccess = () => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex size-4 shrink-0 items-center justify-center rounded bg-brand-600 dark:bg-brand-500 p-0.5", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react30.CheckIcon, { className: "size-3 text-white", strokeWidth: 3 }) });
8738
- var StatusIconInfo = () => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex size-4 shrink-0 items-center justify-center rounded bg-foreground-lighter p-0.5", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react30.InfoIcon, { className: "size-3 text-background-surface-200" }) });
8739
- var StatusIconWarning = () => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex size-4 shrink-0 items-center justify-center rounded bg-warning-600 dark:bg-warning-500 p-0.5", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react30.TriangleAlertIcon, { className: "size-3 text-white" }) });
8740
- var StatusIconError = () => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex size-4 shrink-0 items-center justify-center rounded bg-destructive-600 dark:bg-destructive-500 p-0.5", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react30.XCircleIcon, { className: "size-3 text-white" }) });
8703
+ var StatusIconSuccess = () => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex size-4 shrink-0 items-center justify-center rounded bg-brand-600 dark:bg-brand-500 p-0.5", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Icons.check, { className: "size-3 text-white", strokeWidth: 3 }) });
8704
+ var StatusIconInfo = () => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex size-4 shrink-0 items-center justify-center rounded bg-foreground-lighter p-0.5", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Icons.info, { className: "size-3 text-background-surface-200" }) });
8705
+ var StatusIconWarning = () => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex size-4 shrink-0 items-center justify-center rounded bg-warning-600 dark:bg-warning-500 p-0.5", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Icons.alertTriangle, { className: "size-3 text-white" }) });
8706
+ var StatusIconError = () => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex size-4 shrink-0 items-center justify-center rounded bg-destructive-600 dark:bg-destructive-500 p-0.5", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Icons.xCircle, { className: "size-3 text-white" }) });
8741
8707
  var Toaster = ({
8742
8708
  dir = "rtl",
8743
8709
  position = "bottom-left",
@@ -8754,7 +8720,7 @@ var Toaster = ({
8754
8720
  info: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(StatusIconInfo, {}),
8755
8721
  warning: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(StatusIconWarning, {}),
8756
8722
  error: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(StatusIconError, {}),
8757
- loading: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react30.Loader2Icon, { className: "size-4 animate-spin" })
8723
+ loading: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Icons.loader, { className: "size-4 animate-spin" })
8758
8724
  },
8759
8725
  theme,
8760
8726
  className: "toaster group pointer-events-auto",
@@ -9138,236 +9104,136 @@ function resolveCssColor(styles, variable, fallback) {
9138
9104
  if (raw.includes("%")) return `hsl(${raw})`;
9139
9105
  return raw;
9140
9106
  }
9141
-
9142
- // src/components/charts/PartoLineChart.tsx
9143
- var import_jsx_runtime69 = require("react/jsx-runtime");
9144
- var FALLBACKS = {
9145
- foreground: "hsl(0 0% 98%)",
9146
- border: "hsl(0 0% 45%)",
9147
- mutedForeground: "hsl(0 0% 55%)",
9148
- background: "hsl(0 0% 98%)",
9149
- foregroundMuted: "hsl(0 0% 55%)",
9150
- chart1: "hsl(12 76% 61%)",
9151
- chart2: "hsl(173 58% 39%)",
9152
- chart3: "hsl(197 37% 24%)",
9153
- chart4: "hsl(43 74% 66%)",
9154
- chart5: "hsl(27 87% 67%)"
9155
- };
9156
- function PartoLineChart({ className, ...props }) {
9157
- const styles = useRootStyles();
9158
- const getColor = (variable, fallback) => resolveCssColor(styles, variable, fallback);
9159
- const addOpacity = (color, opacity) => {
9160
- if (color.startsWith("hsl(")) {
9161
- return color.replace(")", ` / ${opacity})`);
9162
- }
9163
- if (color.startsWith("rgb(")) {
9164
- return color.replace("rgb(", "rgba(").replace(")", `, ${opacity})`);
9165
- }
9166
- return color;
9167
- };
9168
- const nivoTheme = {
9107
+ function addOpacityToColor(color, opacity) {
9108
+ if (color.startsWith("hsl(")) {
9109
+ return color.replace(")", ` / ${opacity})`);
9110
+ }
9111
+ if (color.startsWith("rgb(")) {
9112
+ return color.replace("rgb(", "rgba(").replace(")", `, ${opacity})`);
9113
+ }
9114
+ return color;
9115
+ }
9116
+ var CHART_FONT_FAMILY = "Yekan Bakh, system-ui, -apple-system, sans-serif";
9117
+ function createNivoTheme(styles, fallbacks) {
9118
+ const fb = { ...DEFAULT_FALLBACKS, ...fallbacks };
9119
+ const get = (variable, fallback) => resolveCssColor(styles, variable, fallback);
9120
+ const foreground = get("--foreground", fb.foreground);
9121
+ const foregroundMuted = get("--foreground-muted", fb.foregroundMuted);
9122
+ const border = get("--border", fb.border);
9123
+ const background = get("--background", fb.background);
9124
+ return {
9169
9125
  background: "transparent",
9170
9126
  text: {
9171
- fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9172
- fill: getColor("--foreground", FALLBACKS.foreground)
9127
+ fontFamily: CHART_FONT_FAMILY,
9128
+ fill: foreground
9173
9129
  },
9174
9130
  axis: {
9175
9131
  domain: {
9176
9132
  line: {
9177
- stroke: getColor("--border", FALLBACKS.border),
9133
+ stroke: border,
9178
9134
  strokeWidth: 1
9179
9135
  }
9180
9136
  },
9181
9137
  ticks: {
9182
9138
  line: {
9183
- stroke: getColor("--border", FALLBACKS.border),
9139
+ stroke: border,
9184
9140
  strokeWidth: 1
9185
9141
  },
9186
9142
  text: {
9187
- fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9188
- fill: getColor("--foreground-muted", FALLBACKS.foregroundMuted)
9143
+ fontFamily: CHART_FONT_FAMILY,
9144
+ fill: foregroundMuted
9189
9145
  }
9190
9146
  },
9191
9147
  legend: {
9192
9148
  text: {
9193
- fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9194
- fill: getColor("--foreground", FALLBACKS.foreground)
9149
+ fontFamily: CHART_FONT_FAMILY,
9150
+ fill: foreground
9195
9151
  }
9196
9152
  }
9197
9153
  },
9198
9154
  grid: {
9199
9155
  line: {
9200
- stroke: getColor("--border", FALLBACKS.border),
9156
+ stroke: border,
9201
9157
  strokeWidth: 1,
9202
9158
  strokeOpacity: 0.5
9203
9159
  }
9204
9160
  },
9205
9161
  tooltip: {
9206
9162
  container: {
9207
- fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9208
- background: getColor("--background", FALLBACKS.background),
9209
- color: getColor("--foreground", FALLBACKS.foreground),
9163
+ fontFamily: CHART_FONT_FAMILY,
9164
+ background,
9165
+ color: foreground,
9210
9166
  fontSize: 12,
9211
9167
  borderRadius: "8px",
9212
- border: `1px solid ${addOpacity(getColor("--border", FALLBACKS.border), 0.5)}`,
9168
+ border: `1px solid ${addOpacityToColor(border, 0.5)}`,
9213
9169
  boxShadow: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1)",
9214
9170
  padding: "10px"
9215
9171
  }
9216
9172
  },
9217
9173
  legends: {
9218
9174
  text: {
9219
- fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9220
- fill: getColor("--foreground", FALLBACKS.foreground)
9175
+ fontFamily: CHART_FONT_FAMILY,
9176
+ fill: foreground
9221
9177
  }
9222
9178
  }
9223
9179
  };
9224
- const defaultColors = [
9225
- getColor("--chart-1", FALLBACKS.chart1),
9226
- getColor("--chart-2", FALLBACKS.chart2),
9227
- getColor("--chart-3", FALLBACKS.chart3),
9228
- getColor("--chart-4", FALLBACKS.chart4),
9229
- getColor("--chart-5", FALLBACKS.chart5)
9180
+ }
9181
+ var DEFAULT_FALLBACKS = {
9182
+ foreground: "hsl(0 0% 9%)",
9183
+ foregroundMuted: "hsl(0 0% 44%)",
9184
+ border: "hsl(0 0% 88%)",
9185
+ background: "hsl(0 0% 99%)",
9186
+ chart1: "hsl(152.9deg 60% 52.9%)",
9187
+ chart2: "hsl(173 58% 39%)",
9188
+ chart3: "hsl(197 37% 24%)",
9189
+ chart4: "hsl(43 74% 66%)",
9190
+ chart5: "hsl(27 87% 67%)"
9191
+ };
9192
+ function resolveChartColors(styles, fallbacks) {
9193
+ const fb = { ...DEFAULT_FALLBACKS, ...fallbacks };
9194
+ const get = (variable, fallback) => resolveCssColor(styles, variable, fallback);
9195
+ return [
9196
+ get("--chart-1", fb.chart1),
9197
+ get("--chart-2", fb.chart2),
9198
+ get("--chart-3", fb.chart3),
9199
+ get("--chart-4", fb.chart4),
9200
+ get("--chart-5", fb.chart5)
9230
9201
  ];
9202
+ }
9203
+
9204
+ // src/components/charts/PartoLineChart.tsx
9205
+ var import_jsx_runtime69 = require("react/jsx-runtime");
9206
+ function PartoLineChart({ className, ...props }) {
9207
+ const styles = useRootStyles();
9208
+ const nivoTheme = createNivoTheme(styles);
9209
+ const defaultColors = resolveChartColors(styles);
9231
9210
  return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className, dir: "ltr", style: { position: "relative", width: "100%", height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_line.ResponsiveLine, { theme: nivoTheme, colors: defaultColors, ...props }) });
9232
9211
  }
9233
9212
 
9234
9213
  // src/components/charts/PartoBarChart.tsx
9235
9214
  var import_bar = require("@nivo/bar");
9236
9215
  var import_jsx_runtime70 = require("react/jsx-runtime");
9237
- var FALLBACKS2 = {
9238
- foreground: "hsl(0 0% 98%)",
9239
- border: "hsl(0 0% 45%)",
9240
- mutedForeground: "hsl(0 0% 55%)",
9241
- popover: "hsl(0 0% 12%)",
9242
- popoverForeground: "hsl(0 0% 98%)",
9243
- chart1: "hsl(12 76% 61%)",
9244
- chart2: "hsl(173 58% 39%)",
9245
- chart3: "hsl(197 37% 24%)",
9246
- chart4: "hsl(43 74% 66%)",
9247
- chart5: "hsl(27 87% 67%)"
9248
- };
9249
9216
  function PartoBarChart({ className, ...props }) {
9250
9217
  const styles = useRootStyles();
9251
- const getColor = (variable, fallback) => resolveCssColor(styles, variable, fallback);
9252
- const nivoTheme = {
9253
- background: "transparent",
9254
- text: {
9255
- fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9256
- fill: getColor("--foreground", FALLBACKS2.foreground)
9257
- },
9258
- axis: {
9259
- domain: {
9260
- line: {
9261
- stroke: getColor("--border", FALLBACKS2.border),
9262
- strokeWidth: 1
9263
- }
9264
- },
9265
- ticks: {
9266
- line: {
9267
- stroke: getColor("--border", FALLBACKS2.border),
9268
- strokeWidth: 1
9269
- },
9270
- text: {
9271
- fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9272
- fill: getColor("--muted-foreground", FALLBACKS2.mutedForeground)
9273
- }
9274
- },
9275
- legend: {
9276
- text: {
9277
- fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9278
- fill: getColor("--foreground", FALLBACKS2.foreground)
9279
- }
9280
- }
9281
- },
9282
- grid: {
9283
- line: {
9284
- stroke: getColor("--border", FALLBACKS2.border),
9285
- strokeWidth: 1,
9286
- strokeOpacity: 0.4
9287
- }
9288
- },
9289
- tooltip: {
9290
- container: {
9291
- fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9292
- background: getColor("--popover", FALLBACKS2.popover),
9293
- color: getColor("--popover-foreground", FALLBACKS2.popoverForeground),
9294
- fontSize: 12,
9295
- borderRadius: "var(--radius)",
9296
- boxShadow: "0 2px 12px rgba(0,0,0,0.15)",
9297
- padding: "8px 12px"
9298
- }
9299
- },
9300
- legends: {
9301
- text: {
9302
- fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9303
- fill: getColor("--foreground", FALLBACKS2.foreground)
9304
- }
9305
- }
9306
- };
9307
- const defaultColors = [
9308
- getColor("--chart-1", FALLBACKS2.chart1),
9309
- getColor("--chart-2", FALLBACKS2.chart2),
9310
- getColor("--chart-3", FALLBACKS2.chart3),
9311
- getColor("--chart-4", FALLBACKS2.chart4),
9312
- getColor("--chart-5", FALLBACKS2.chart5)
9313
- ];
9218
+ const nivoTheme = createNivoTheme(styles);
9219
+ const defaultColors = resolveChartColors(styles);
9314
9220
  return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className, dir: "ltr", style: { position: "relative", width: "100%", height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_bar.ResponsiveBar, { theme: nivoTheme, colors: defaultColors, ...props }) });
9315
9221
  }
9316
9222
 
9317
9223
  // src/components/charts/PartoPieChart.tsx
9318
9224
  var import_pie = require("@nivo/pie");
9319
9225
  var import_jsx_runtime71 = require("react/jsx-runtime");
9320
- var FALLBACKS3 = {
9321
- foreground: "hsl(0 0% 98%)",
9322
- popover: "hsl(0 0% 12%)",
9323
- popoverForeground: "hsl(0 0% 98%)",
9324
- chart1: "hsl(12 76% 61%)",
9325
- chart2: "hsl(173 58% 39%)",
9326
- chart3: "hsl(197 37% 24%)",
9327
- chart4: "hsl(43 74% 66%)",
9328
- chart5: "hsl(27 87% 67%)"
9329
- };
9330
9226
  function PartoPieChart({ className, ...props }) {
9331
9227
  const styles = useRootStyles();
9332
- const getColor = (variable, fallback) => resolveCssColor(styles, variable, fallback);
9333
- const nivoTheme = {
9334
- background: "transparent",
9335
- text: {
9336
- fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9337
- fill: getColor("--foreground", FALLBACKS3.foreground)
9338
- },
9339
- tooltip: {
9340
- container: {
9341
- fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9342
- background: getColor("--popover", FALLBACKS3.popover),
9343
- color: getColor("--popover-foreground", FALLBACKS3.popoverForeground),
9344
- fontSize: 12,
9345
- borderRadius: "var(--radius)",
9346
- boxShadow: "0 2px 12px rgba(0,0,0,0.15)",
9347
- padding: "8px 12px"
9348
- }
9349
- },
9350
- legends: {
9351
- text: {
9352
- fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9353
- fill: getColor("--foreground", FALLBACKS3.foreground)
9354
- }
9355
- }
9356
- };
9357
- const defaultColors = [
9358
- getColor("--chart-1", FALLBACKS3.chart1),
9359
- getColor("--chart-2", FALLBACKS3.chart2),
9360
- getColor("--chart-3", FALLBACKS3.chart3),
9361
- getColor("--chart-4", FALLBACKS3.chart4),
9362
- getColor("--chart-5", FALLBACKS3.chart5)
9363
- ];
9228
+ const nivoTheme = createNivoTheme(styles);
9229
+ const defaultColors = resolveChartColors(styles);
9364
9230
  return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className, dir: "ltr", style: { position: "relative", width: "100%", height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_pie.ResponsivePie, { theme: nivoTheme, colors: defaultColors, ...props }) });
9365
9231
  }
9366
9232
 
9367
9233
  // src/components/charts/PartoHeatMap.tsx
9368
9234
  var import_heatmap = require("@nivo/heatmap");
9369
9235
  var import_jsx_runtime72 = require("react/jsx-runtime");
9370
- var FALLBACKS4 = {
9236
+ var FALLBACKS = {
9371
9237
  foreground: "hsl(0 0% 98%)",
9372
9238
  border: "hsl(0 0% 45%)",
9373
9239
  mutedForeground: "hsl(0 0% 55%)",
@@ -9435,24 +9301,24 @@ function PartoHeatMap({
9435
9301
  background: "transparent",
9436
9302
  text: {
9437
9303
  fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9438
- fill: getColor("--foreground", FALLBACKS4.foreground),
9304
+ fill: getColor("--foreground", FALLBACKS.foreground),
9439
9305
  fontSize: 11
9440
9306
  },
9441
9307
  axis: {
9442
9308
  domain: {
9443
9309
  line: {
9444
- stroke: getColor("--border", FALLBACKS4.border),
9310
+ stroke: getColor("--border", FALLBACKS.border),
9445
9311
  strokeWidth: 1
9446
9312
  }
9447
9313
  },
9448
9314
  ticks: {
9449
9315
  line: {
9450
- stroke: getColor("--border", FALLBACKS4.border),
9316
+ stroke: getColor("--border", FALLBACKS.border),
9451
9317
  strokeWidth: 1
9452
9318
  },
9453
9319
  text: {
9454
9320
  fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9455
- fill: getColor("--foreground", FALLBACKS4.foreground),
9321
+ fill: getColor("--foreground", FALLBACKS.foreground),
9456
9322
  fontSize: 13,
9457
9323
  fontWeight: 600
9458
9324
  }
@@ -9460,7 +9326,7 @@ function PartoHeatMap({
9460
9326
  legend: {
9461
9327
  text: {
9462
9328
  fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9463
- fill: getColor("--foreground", FALLBACKS4.foreground),
9329
+ fill: getColor("--foreground", FALLBACKS.foreground),
9464
9330
  fontSize: 13,
9465
9331
  fontWeight: 700
9466
9332
  }
@@ -9468,26 +9334,26 @@ function PartoHeatMap({
9468
9334
  },
9469
9335
  grid: {
9470
9336
  line: {
9471
- stroke: getColor("--card", FALLBACKS4.card),
9337
+ stroke: getColor("--card", FALLBACKS.card),
9472
9338
  strokeWidth: 3
9473
9339
  }
9474
9340
  },
9475
9341
  tooltip: {
9476
9342
  container: {
9477
9343
  fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9478
- background: getColor("--popover", FALLBACKS4.popover),
9479
- color: getColor("--popover-foreground", FALLBACKS4.popoverForeground),
9344
+ background: getColor("--popover", FALLBACKS.popover),
9345
+ color: getColor("--popover-foreground", FALLBACKS.popoverForeground),
9480
9346
  fontSize: 12,
9481
9347
  borderRadius: "var(--radius)",
9482
9348
  boxShadow: "0 2px 4px rgba(0,0,0,0.2)",
9483
9349
  padding: "8px 12px",
9484
- border: `1px solid ${getColor("--border", FALLBACKS4.border)}`
9350
+ border: `1px solid ${getColor("--border", FALLBACKS.border)}`
9485
9351
  }
9486
9352
  },
9487
9353
  legends: {
9488
9354
  text: {
9489
9355
  fontFamily: "Yekan Bakh, system-ui, -apple-system, sans-serif",
9490
- fill: getColor("--foreground", FALLBACKS4.foreground),
9356
+ fill: getColor("--foreground", FALLBACKS.foreground),
9491
9357
  fontSize: 11
9492
9358
  }
9493
9359
  }
@@ -9556,7 +9422,7 @@ function PartoHeatMap({
9556
9422
  emptyColor: getColor("--muted", "hsl(0 0% 20%)"),
9557
9423
  borderRadius: 2,
9558
9424
  borderWidth: 3,
9559
- borderColor: getColor("--card", FALLBACKS4.card),
9425
+ borderColor: getColor("--card", FALLBACKS.card),
9560
9426
  enableLabels: false,
9561
9427
  animate: true,
9562
9428
  motionConfig: "gentle",
@@ -9575,7 +9441,7 @@ var import_wordcloud = require("@visx/wordcloud");
9575
9441
  var import_scale = require("@visx/scale");
9576
9442
  var import_text = require("@visx/text");
9577
9443
  var import_jsx_runtime73 = require("react/jsx-runtime");
9578
- var FALLBACKS5 = {
9444
+ var FALLBACKS2 = {
9579
9445
  primary: "hsl(12 76% 61%)"
9580
9446
  };
9581
9447
  var stableRandom = () => 0.5;
@@ -9609,7 +9475,7 @@ function PartoWordCloud({
9609
9475
  const [hovered, setHovered] = React34.useState(null);
9610
9476
  const containerRef = React34.useRef(null);
9611
9477
  const getColor = (variable, fallback) => resolveCssColor(styles, variable, fallback);
9612
- const primaryColor = getColor("--primary", FALLBACKS5.primary);
9478
+ const primaryColor = getColor("--primary", FALLBACKS2.primary);
9613
9479
  const formattedWords = React34.useMemo(() => {
9614
9480
  return words.map((word) => ({
9615
9481
  ...word,