@caratlogic/design-system 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/components/atoms/Skeleton/SquareSkeleton.d.ts.map +1 -1
  2. package/dist/components/layouts/AppShell/DashboardShell.d.ts.map +1 -1
  3. package/dist/components/molecules/DateInput/DateInput.d.ts.map +1 -1
  4. package/dist/components/molecules/Pagination/Pagination.d.ts.map +1 -1
  5. package/dist/components/molecules/Pagination/Pagination.utils.d.ts +3 -5
  6. package/dist/components/molecules/Pagination/Pagination.utils.d.ts.map +1 -1
  7. package/dist/components/molecules/PaginationSelect/PaginationSelect.d.ts +11 -0
  8. package/dist/components/molecules/PaginationSelect/PaginationSelect.d.ts.map +1 -0
  9. package/dist/components/molecules/PaginationSelect/PaginationSelect.types.d.ts +24 -0
  10. package/dist/components/molecules/PaginationSelect/PaginationSelect.types.d.ts.map +1 -0
  11. package/dist/components/molecules/PaginationSelect/PaginationSelect.utils.d.ts +16 -0
  12. package/dist/components/molecules/PaginationSelect/PaginationSelect.utils.d.ts.map +1 -0
  13. package/dist/components/molecules/PaginationSelect/index.d.ts +3 -0
  14. package/dist/components/molecules/PaginationSelect/index.d.ts.map +1 -0
  15. package/dist/components/molecules/ShimmerTable/ShimmerTable.d.ts.map +1 -1
  16. package/dist/components/molecules/Sidebar/Sidebar.parts.d.ts.map +1 -1
  17. package/dist/hooks/useForwardedRef.d.ts +7 -0
  18. package/dist/hooks/useForwardedRef.d.ts.map +1 -0
  19. package/dist/hooks/useTruncatedText.d.ts +11 -0
  20. package/dist/hooks/useTruncatedText.d.ts.map +1 -0
  21. package/dist/index.cjs.js +354 -144
  22. package/dist/index.cjs.js.map +1 -1
  23. package/dist/index.d.ts +1 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.esm.js +355 -146
  26. package/dist/index.esm.js.map +1 -1
  27. package/dist/source.css +12 -0
  28. package/package.json +1 -1
package/dist/index.esm.js CHANGED
@@ -2,7 +2,7 @@ import { jsx, jsxs, Fragment as Fragment$2 } from 'react/jsx-runtime';
2
2
  import { Slot } from '@radix-ui/react-slot';
3
3
  import { toast } from 'sonner';
4
4
  import * as React from 'react';
5
- import React__default, { forwardRef, createElement, useState, useCallback, useMemo, useEffect, useRef, Fragment as Fragment$3, createContext, useContext, useLayoutEffect, cloneElement, createRef, Component, lazy, Suspense, memo, useReducer, PureComponent, useDebugValue } from 'react';
5
+ import React__default, { forwardRef, createElement, useState, useCallback, useMemo, useEffect, useRef, Fragment as Fragment$3, createContext, useContext, useLayoutEffect, cloneElement, createRef, Component, useId as useId$2, lazy, Suspense, memo, useReducer, PureComponent, useDebugValue } from 'react';
6
6
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
7
7
  import * as SliderPrimitive from '@radix-ui/react-slider';
8
8
  import * as TabsPrimitive from '@radix-ui/react-tabs';
@@ -2668,12 +2668,12 @@ const createLucideIcon = (iconName, iconNode) => {
2668
2668
  */
2669
2669
 
2670
2670
 
2671
- const __iconNode$15 = [
2671
+ const __iconNode$16 = [
2672
2672
  ["rect", { width: "20", height: "5", x: "2", y: "3", rx: "1", key: "1wp1u1" }],
2673
2673
  ["path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8", key: "1s80jp" }],
2674
2674
  ["path", { d: "M10 12h4", key: "a56b0p" }]
2675
2675
  ];
2676
- const Archive = createLucideIcon("archive", __iconNode$15);
2676
+ const Archive = createLucideIcon("archive", __iconNode$16);
2677
2677
 
2678
2678
  /**
2679
2679
  * @license lucide-react v0.539.0 - ISC
@@ -2683,11 +2683,11 @@ const Archive = createLucideIcon("archive", __iconNode$15);
2683
2683
  */
2684
2684
 
2685
2685
 
2686
- const __iconNode$14 = [
2686
+ const __iconNode$15 = [
2687
2687
  ["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
2688
2688
  ["path", { d: "M19 12H5", key: "x3x0zl" }]
2689
2689
  ];
2690
- const ArrowLeft = createLucideIcon("arrow-left", __iconNode$14);
2690
+ const ArrowLeft = createLucideIcon("arrow-left", __iconNode$15);
2691
2691
 
2692
2692
  /**
2693
2693
  * @license lucide-react v0.539.0 - ISC
@@ -2697,11 +2697,11 @@ const ArrowLeft = createLucideIcon("arrow-left", __iconNode$14);
2697
2697
  */
2698
2698
 
2699
2699
 
2700
- const __iconNode$13 = [
2700
+ const __iconNode$14 = [
2701
2701
  ["path", { d: "M5 12h14", key: "1ays0h" }],
2702
2702
  ["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
2703
2703
  ];
2704
- const ArrowRight = createLucideIcon("arrow-right", __iconNode$13);
2704
+ const ArrowRight = createLucideIcon("arrow-right", __iconNode$14);
2705
2705
 
2706
2706
  /**
2707
2707
  * @license lucide-react v0.539.0 - ISC
@@ -2711,11 +2711,11 @@ const ArrowRight = createLucideIcon("arrow-right", __iconNode$13);
2711
2711
  */
2712
2712
 
2713
2713
 
2714
- const __iconNode$12 = [
2714
+ const __iconNode$13 = [
2715
2715
  ["path", { d: "M4.929 4.929 19.07 19.071", key: "196cmz" }],
2716
2716
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
2717
2717
  ];
2718
- const Ban = createLucideIcon("ban", __iconNode$12);
2718
+ const Ban = createLucideIcon("ban", __iconNode$13);
2719
2719
 
2720
2720
  /**
2721
2721
  * @license lucide-react v0.539.0 - ISC
@@ -2725,7 +2725,7 @@ const Ban = createLucideIcon("ban", __iconNode$12);
2725
2725
  */
2726
2726
 
2727
2727
 
2728
- const __iconNode$11 = [
2728
+ const __iconNode$12 = [
2729
2729
  ["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
2730
2730
  [
2731
2731
  "path",
@@ -2735,7 +2735,7 @@ const __iconNode$11 = [
2735
2735
  }
2736
2736
  ]
2737
2737
  ];
2738
- const Bell = createLucideIcon("bell", __iconNode$11);
2738
+ const Bell = createLucideIcon("bell", __iconNode$12);
2739
2739
 
2740
2740
  /**
2741
2741
  * @license lucide-react v0.539.0 - ISC
@@ -2745,13 +2745,13 @@ const Bell = createLucideIcon("bell", __iconNode$11);
2745
2745
  */
2746
2746
 
2747
2747
 
2748
- const __iconNode$10 = [
2748
+ const __iconNode$11 = [
2749
2749
  [
2750
2750
  "path",
2751
2751
  { d: "M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8", key: "mg9rjx" }
2752
2752
  ]
2753
2753
  ];
2754
- const Bold$1 = createLucideIcon("bold", __iconNode$10);
2754
+ const Bold$1 = createLucideIcon("bold", __iconNode$11);
2755
2755
 
2756
2756
  /**
2757
2757
  * @license lucide-react v0.539.0 - ISC
@@ -2761,7 +2761,7 @@ const Bold$1 = createLucideIcon("bold", __iconNode$10);
2761
2761
  */
2762
2762
 
2763
2763
 
2764
- const __iconNode$$ = [
2764
+ const __iconNode$10 = [
2765
2765
  ["path", { d: "M8 2v4", key: "1cmpym" }],
2766
2766
  ["path", { d: "M16 2v4", key: "4m81vk" }],
2767
2767
  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
@@ -2773,7 +2773,7 @@ const __iconNode$$ = [
2773
2773
  ["path", { d: "M12 18h.01", key: "mhygvu" }],
2774
2774
  ["path", { d: "M16 18h.01", key: "kzsmim" }]
2775
2775
  ];
2776
- const CalendarDays = createLucideIcon("calendar-days", __iconNode$$);
2776
+ const CalendarDays = createLucideIcon("calendar-days", __iconNode$10);
2777
2777
 
2778
2778
  /**
2779
2779
  * @license lucide-react v0.539.0 - ISC
@@ -2783,13 +2783,13 @@ const CalendarDays = createLucideIcon("calendar-days", __iconNode$$);
2783
2783
  */
2784
2784
 
2785
2785
 
2786
- const __iconNode$_ = [
2786
+ const __iconNode$$ = [
2787
2787
  ["path", { d: "M8 2v4", key: "1cmpym" }],
2788
2788
  ["path", { d: "M16 2v4", key: "4m81vk" }],
2789
2789
  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
2790
2790
  ["path", { d: "M3 10h18", key: "8toen8" }]
2791
2791
  ];
2792
- const Calendar$1 = createLucideIcon("calendar", __iconNode$_);
2792
+ const Calendar$1 = createLucideIcon("calendar", __iconNode$$);
2793
2793
 
2794
2794
  /**
2795
2795
  * @license lucide-react v0.539.0 - ISC
@@ -2799,11 +2799,11 @@ const Calendar$1 = createLucideIcon("calendar", __iconNode$_);
2799
2799
  */
2800
2800
 
2801
2801
 
2802
- const __iconNode$Z = [
2802
+ const __iconNode$_ = [
2803
2803
  ["path", { d: "M18 6 7 17l-5-5", key: "116fxf" }],
2804
2804
  ["path", { d: "m22 10-7.5 7.5L13 16", key: "ke71qq" }]
2805
2805
  ];
2806
- const CheckCheck = createLucideIcon("check-check", __iconNode$Z);
2806
+ const CheckCheck = createLucideIcon("check-check", __iconNode$_);
2807
2807
 
2808
2808
  /**
2809
2809
  * @license lucide-react v0.539.0 - ISC
@@ -2813,8 +2813,8 @@ const CheckCheck = createLucideIcon("check-check", __iconNode$Z);
2813
2813
  */
2814
2814
 
2815
2815
 
2816
- const __iconNode$Y = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
2817
- const Check = createLucideIcon("check", __iconNode$Y);
2816
+ const __iconNode$Z = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
2817
+ const Check = createLucideIcon("check", __iconNode$Z);
2818
2818
 
2819
2819
  /**
2820
2820
  * @license lucide-react v0.539.0 - ISC
@@ -2824,8 +2824,8 @@ const Check = createLucideIcon("check", __iconNode$Y);
2824
2824
  */
2825
2825
 
2826
2826
 
2827
- const __iconNode$X = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
2828
- const ChevronDown = createLucideIcon("chevron-down", __iconNode$X);
2827
+ const __iconNode$Y = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
2828
+ const ChevronDown = createLucideIcon("chevron-down", __iconNode$Y);
2829
2829
 
2830
2830
  /**
2831
2831
  * @license lucide-react v0.539.0 - ISC
@@ -2835,8 +2835,8 @@ const ChevronDown = createLucideIcon("chevron-down", __iconNode$X);
2835
2835
  */
2836
2836
 
2837
2837
 
2838
- const __iconNode$W = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
2839
- const ChevronLeft = createLucideIcon("chevron-left", __iconNode$W);
2838
+ const __iconNode$X = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
2839
+ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$X);
2840
2840
 
2841
2841
  /**
2842
2842
  * @license lucide-react v0.539.0 - ISC
@@ -2846,8 +2846,8 @@ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$W);
2846
2846
  */
2847
2847
 
2848
2848
 
2849
- const __iconNode$V = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
2850
- const ChevronRight = createLucideIcon("chevron-right", __iconNode$V);
2849
+ const __iconNode$W = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
2850
+ const ChevronRight = createLucideIcon("chevron-right", __iconNode$W);
2851
2851
 
2852
2852
  /**
2853
2853
  * @license lucide-react v0.539.0 - ISC
@@ -2857,8 +2857,8 @@ const ChevronRight = createLucideIcon("chevron-right", __iconNode$V);
2857
2857
  */
2858
2858
 
2859
2859
 
2860
- const __iconNode$U = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
2861
- const ChevronUp = createLucideIcon("chevron-up", __iconNode$U);
2860
+ const __iconNode$V = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
2861
+ const ChevronUp = createLucideIcon("chevron-up", __iconNode$V);
2862
2862
 
2863
2863
  /**
2864
2864
  * @license lucide-react v0.539.0 - ISC
@@ -2868,11 +2868,11 @@ const ChevronUp = createLucideIcon("chevron-up", __iconNode$U);
2868
2868
  */
2869
2869
 
2870
2870
 
2871
- const __iconNode$T = [
2871
+ const __iconNode$U = [
2872
2872
  ["path", { d: "m11 17-5-5 5-5", key: "13zhaf" }],
2873
2873
  ["path", { d: "m18 17-5-5 5-5", key: "h8a8et" }]
2874
2874
  ];
2875
- const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$T);
2875
+ const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$U);
2876
2876
 
2877
2877
  /**
2878
2878
  * @license lucide-react v0.539.0 - ISC
@@ -2882,11 +2882,11 @@ const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$T);
2882
2882
  */
2883
2883
 
2884
2884
 
2885
- const __iconNode$S = [
2885
+ const __iconNode$T = [
2886
2886
  ["path", { d: "m6 17 5-5-5-5", key: "xnjwq" }],
2887
2887
  ["path", { d: "m13 17 5-5-5-5", key: "17xmmf" }]
2888
2888
  ];
2889
- const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$S);
2889
+ const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$T);
2890
2890
 
2891
2891
  /**
2892
2892
  * @license lucide-react v0.539.0 - ISC
@@ -2896,12 +2896,12 @@ const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$S);
2896
2896
  */
2897
2897
 
2898
2898
 
2899
- const __iconNode$R = [
2899
+ const __iconNode$S = [
2900
2900
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
2901
2901
  ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
2902
2902
  ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
2903
2903
  ];
2904
- const CircleAlert = createLucideIcon("circle-alert", __iconNode$R);
2904
+ const CircleAlert = createLucideIcon("circle-alert", __iconNode$S);
2905
2905
 
2906
2906
  /**
2907
2907
  * @license lucide-react v0.539.0 - ISC
@@ -2911,11 +2911,11 @@ const CircleAlert = createLucideIcon("circle-alert", __iconNode$R);
2911
2911
  */
2912
2912
 
2913
2913
 
2914
- const __iconNode$Q = [
2914
+ const __iconNode$R = [
2915
2915
  ["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
2916
2916
  ["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
2917
2917
  ];
2918
- const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$Q);
2918
+ const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$R);
2919
2919
 
2920
2920
  /**
2921
2921
  * @license lucide-react v0.539.0 - ISC
@@ -2925,11 +2925,11 @@ const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$Q);
2925
2925
  */
2926
2926
 
2927
2927
 
2928
- const __iconNode$P = [
2928
+ const __iconNode$Q = [
2929
2929
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
2930
2930
  ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
2931
2931
  ];
2932
- const CircleCheck = createLucideIcon("circle-check", __iconNode$P);
2932
+ const CircleCheck = createLucideIcon("circle-check", __iconNode$Q);
2933
2933
 
2934
2934
  /**
2935
2935
  * @license lucide-react v0.539.0 - ISC
@@ -2939,12 +2939,12 @@ const CircleCheck = createLucideIcon("circle-check", __iconNode$P);
2939
2939
  */
2940
2940
 
2941
2941
 
2942
- const __iconNode$O = [
2942
+ const __iconNode$P = [
2943
2943
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
2944
2944
  ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
2945
2945
  ["path", { d: "m9 9 6 6", key: "z0biqf" }]
2946
2946
  ];
2947
- const CircleX = createLucideIcon("circle-x", __iconNode$O);
2947
+ const CircleX = createLucideIcon("circle-x", __iconNode$P);
2948
2948
 
2949
2949
  /**
2950
2950
  * @license lucide-react v0.539.0 - ISC
@@ -2954,8 +2954,8 @@ const CircleX = createLucideIcon("circle-x", __iconNode$O);
2954
2954
  */
2955
2955
 
2956
2956
 
2957
- const __iconNode$N = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
2958
- const Circle = createLucideIcon("circle", __iconNode$N);
2957
+ const __iconNode$O = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
2958
+ const Circle = createLucideIcon("circle", __iconNode$O);
2959
2959
 
2960
2960
  /**
2961
2961
  * @license lucide-react v0.539.0 - ISC
@@ -2965,11 +2965,11 @@ const Circle = createLucideIcon("circle", __iconNode$N);
2965
2965
  */
2966
2966
 
2967
2967
 
2968
- const __iconNode$M = [
2968
+ const __iconNode$N = [
2969
2969
  ["path", { d: "M12 6v6l4 2", key: "mmk7yg" }],
2970
2970
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
2971
2971
  ];
2972
- const Clock = createLucideIcon("clock", __iconNode$M);
2972
+ const Clock = createLucideIcon("clock", __iconNode$N);
2973
2973
 
2974
2974
  /**
2975
2975
  * @license lucide-react v0.539.0 - ISC
@@ -2979,11 +2979,11 @@ const Clock = createLucideIcon("clock", __iconNode$M);
2979
2979
  */
2980
2980
 
2981
2981
 
2982
- const __iconNode$L = [
2982
+ const __iconNode$M = [
2983
2983
  ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
2984
2984
  ["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
2985
2985
  ];
2986
- const Copy = createLucideIcon("copy", __iconNode$L);
2986
+ const Copy = createLucideIcon("copy", __iconNode$M);
2987
2987
 
2988
2988
  /**
2989
2989
  * @license lucide-react v0.539.0 - ISC
@@ -2993,11 +2993,11 @@ const Copy = createLucideIcon("copy", __iconNode$L);
2993
2993
  */
2994
2994
 
2995
2995
 
2996
- const __iconNode$K = [
2996
+ const __iconNode$L = [
2997
2997
  ["path", { d: "M6 2v14a2 2 0 0 0 2 2h14", key: "ron5a4" }],
2998
2998
  ["path", { d: "M18 22V8a2 2 0 0 0-2-2H2", key: "7s9ehn" }]
2999
2999
  ];
3000
- const Crop = createLucideIcon("crop", __iconNode$K);
3000
+ const Crop = createLucideIcon("crop", __iconNode$L);
3001
3001
 
3002
3002
  /**
3003
3003
  * @license lucide-react v0.539.0 - ISC
@@ -3007,12 +3007,12 @@ const Crop = createLucideIcon("crop", __iconNode$K);
3007
3007
  */
3008
3008
 
3009
3009
 
3010
- const __iconNode$J = [
3010
+ const __iconNode$K = [
3011
3011
  ["path", { d: "M12 15V3", key: "m9g1x1" }],
3012
3012
  ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
3013
3013
  ["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
3014
3014
  ];
3015
- const Download = createLucideIcon("download", __iconNode$J);
3015
+ const Download = createLucideIcon("download", __iconNode$K);
3016
3016
 
3017
3017
  /**
3018
3018
  * @license lucide-react v0.539.0 - ISC
@@ -3022,12 +3022,12 @@ const Download = createLucideIcon("download", __iconNode$J);
3022
3022
  */
3023
3023
 
3024
3024
 
3025
- const __iconNode$I = [
3025
+ const __iconNode$J = [
3026
3026
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
3027
3027
  ["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
3028
3028
  ["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }]
3029
3029
  ];
3030
- const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$I);
3030
+ const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$J);
3031
3031
 
3032
3032
  /**
3033
3033
  * @license lucide-react v0.539.0 - ISC
@@ -3037,12 +3037,12 @@ const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$I);
3037
3037
  */
3038
3038
 
3039
3039
 
3040
- const __iconNode$H = [
3040
+ const __iconNode$I = [
3041
3041
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
3042
3042
  ["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
3043
3043
  ["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }]
3044
3044
  ];
3045
- const Ellipsis = createLucideIcon("ellipsis", __iconNode$H);
3045
+ const Ellipsis = createLucideIcon("ellipsis", __iconNode$I);
3046
3046
 
3047
3047
  /**
3048
3048
  * @license lucide-react v0.539.0 - ISC
@@ -3052,12 +3052,12 @@ const Ellipsis = createLucideIcon("ellipsis", __iconNode$H);
3052
3052
  */
3053
3053
 
3054
3054
 
3055
- const __iconNode$G = [
3055
+ const __iconNode$H = [
3056
3056
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
3057
3057
  ["path", { d: "M10 14 21 3", key: "gplh6r" }],
3058
3058
  ["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
3059
3059
  ];
3060
- const ExternalLink = createLucideIcon("external-link", __iconNode$G);
3060
+ const ExternalLink = createLucideIcon("external-link", __iconNode$H);
3061
3061
 
3062
3062
  /**
3063
3063
  * @license lucide-react v0.539.0 - ISC
@@ -3067,7 +3067,7 @@ const ExternalLink = createLucideIcon("external-link", __iconNode$G);
3067
3067
  */
3068
3068
 
3069
3069
 
3070
- const __iconNode$F = [
3070
+ const __iconNode$G = [
3071
3071
  [
3072
3072
  "path",
3073
3073
  {
@@ -3077,7 +3077,7 @@ const __iconNode$F = [
3077
3077
  ],
3078
3078
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
3079
3079
  ];
3080
- const Eye = createLucideIcon("eye", __iconNode$F);
3080
+ const Eye = createLucideIcon("eye", __iconNode$G);
3081
3081
 
3082
3082
  /**
3083
3083
  * @license lucide-react v0.539.0 - ISC
@@ -3087,13 +3087,13 @@ const Eye = createLucideIcon("eye", __iconNode$F);
3087
3087
  */
3088
3088
 
3089
3089
 
3090
- const __iconNode$E = [
3090
+ const __iconNode$F = [
3091
3091
  [
3092
3092
  "path",
3093
3093
  { d: "M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z", key: "1jg4f8" }
3094
3094
  ]
3095
3095
  ];
3096
- const Facebook = createLucideIcon("facebook", __iconNode$E);
3096
+ const Facebook = createLucideIcon("facebook", __iconNode$F);
3097
3097
 
3098
3098
  /**
3099
3099
  * @license lucide-react v0.539.0 - ISC
@@ -3103,7 +3103,7 @@ const Facebook = createLucideIcon("facebook", __iconNode$E);
3103
3103
  */
3104
3104
 
3105
3105
 
3106
- const __iconNode$D = [
3106
+ const __iconNode$E = [
3107
3107
  ["path", { d: "M12 22h6a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3.072", key: "n6s66f" }],
3108
3108
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
3109
3109
  [
@@ -3115,7 +3115,7 @@ const __iconNode$D = [
3115
3115
  ],
3116
3116
  ["circle", { cx: "5", cy: "14", r: "3", key: "ufru5t" }]
3117
3117
  ];
3118
- const FileBadge = createLucideIcon("file-badge", __iconNode$D);
3118
+ const FileBadge = createLucideIcon("file-badge", __iconNode$E);
3119
3119
 
3120
3120
  /**
3121
3121
  * @license lucide-react v0.539.0 - ISC
@@ -3125,14 +3125,14 @@ const FileBadge = createLucideIcon("file-badge", __iconNode$D);
3125
3125
  */
3126
3126
 
3127
3127
 
3128
- const __iconNode$C = [
3128
+ const __iconNode$D = [
3129
3129
  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
3130
3130
  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
3131
3131
  ["path", { d: "M10 9H8", key: "b1mrlr" }],
3132
3132
  ["path", { d: "M16 13H8", key: "t4e002" }],
3133
3133
  ["path", { d: "M16 17H8", key: "z1uh3a" }]
3134
3134
  ];
3135
- const FileText = createLucideIcon("file-text", __iconNode$C);
3135
+ const FileText = createLucideIcon("file-text", __iconNode$D);
3136
3136
 
3137
3137
  /**
3138
3138
  * @license lucide-react v0.539.0 - ISC
@@ -3142,7 +3142,7 @@ const FileText = createLucideIcon("file-text", __iconNode$C);
3142
3142
  */
3143
3143
 
3144
3144
 
3145
- const __iconNode$B = [
3145
+ const __iconNode$C = [
3146
3146
  [
3147
3147
  "path",
3148
3148
  {
@@ -3151,7 +3151,7 @@ const __iconNode$B = [
3151
3151
  }
3152
3152
  ]
3153
3153
  ];
3154
- const Funnel = createLucideIcon("funnel", __iconNode$B);
3154
+ const Funnel = createLucideIcon("funnel", __iconNode$C);
3155
3155
 
3156
3156
  /**
3157
3157
  * @license lucide-react v0.539.0 - ISC
@@ -3161,7 +3161,7 @@ const Funnel = createLucideIcon("funnel", __iconNode$B);
3161
3161
  */
3162
3162
 
3163
3163
 
3164
- const __iconNode$A = [
3164
+ const __iconNode$B = [
3165
3165
  ["circle", { cx: "12", cy: "9", r: "1", key: "124mty" }],
3166
3166
  ["circle", { cx: "19", cy: "9", r: "1", key: "1ruzo2" }],
3167
3167
  ["circle", { cx: "5", cy: "9", r: "1", key: "1a8b28" }],
@@ -3169,7 +3169,7 @@ const __iconNode$A = [
3169
3169
  ["circle", { cx: "19", cy: "15", r: "1", key: "1a92ep" }],
3170
3170
  ["circle", { cx: "5", cy: "15", r: "1", key: "5r1jwy" }]
3171
3171
  ];
3172
- const GripHorizontal = createLucideIcon("grip-horizontal", __iconNode$A);
3172
+ const GripHorizontal = createLucideIcon("grip-horizontal", __iconNode$B);
3173
3173
 
3174
3174
  /**
3175
3175
  * @license lucide-react v0.539.0 - ISC
@@ -3179,7 +3179,7 @@ const GripHorizontal = createLucideIcon("grip-horizontal", __iconNode$A);
3179
3179
  */
3180
3180
 
3181
3181
 
3182
- const __iconNode$z = [
3182
+ const __iconNode$A = [
3183
3183
  ["circle", { cx: "9", cy: "12", r: "1", key: "1vctgf" }],
3184
3184
  ["circle", { cx: "9", cy: "5", r: "1", key: "hp0tcf" }],
3185
3185
  ["circle", { cx: "9", cy: "19", r: "1", key: "fkjjf6" }],
@@ -3187,7 +3187,7 @@ const __iconNode$z = [
3187
3187
  ["circle", { cx: "15", cy: "5", r: "1", key: "19l28e" }],
3188
3188
  ["circle", { cx: "15", cy: "19", r: "1", key: "f4zoj3" }]
3189
3189
  ];
3190
- const GripVertical = createLucideIcon("grip-vertical", __iconNode$z);
3190
+ const GripVertical = createLucideIcon("grip-vertical", __iconNode$A);
3191
3191
 
3192
3192
  /**
3193
3193
  * @license lucide-react v0.539.0 - ISC
@@ -3197,13 +3197,13 @@ const GripVertical = createLucideIcon("grip-vertical", __iconNode$z);
3197
3197
  */
3198
3198
 
3199
3199
 
3200
- const __iconNode$y = [
3200
+ const __iconNode$z = [
3201
3201
  ["path", { d: "M4 12h8", key: "17cfdx" }],
3202
3202
  ["path", { d: "M4 18V6", key: "1rz3zl" }],
3203
3203
  ["path", { d: "M12 18V6", key: "zqpxq5" }],
3204
3204
  ["path", { d: "m17 12 3-2v8", key: "1hhhft" }]
3205
3205
  ];
3206
- const Heading1 = createLucideIcon("heading-1", __iconNode$y);
3206
+ const Heading1 = createLucideIcon("heading-1", __iconNode$z);
3207
3207
 
3208
3208
  /**
3209
3209
  * @license lucide-react v0.539.0 - ISC
@@ -3213,13 +3213,13 @@ const Heading1 = createLucideIcon("heading-1", __iconNode$y);
3213
3213
  */
3214
3214
 
3215
3215
 
3216
- const __iconNode$x = [
3216
+ const __iconNode$y = [
3217
3217
  ["path", { d: "M4 12h8", key: "17cfdx" }],
3218
3218
  ["path", { d: "M4 18V6", key: "1rz3zl" }],
3219
3219
  ["path", { d: "M12 18V6", key: "zqpxq5" }],
3220
3220
  ["path", { d: "M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1", key: "9jr5yi" }]
3221
3221
  ];
3222
- const Heading2 = createLucideIcon("heading-2", __iconNode$x);
3222
+ const Heading2 = createLucideIcon("heading-2", __iconNode$y);
3223
3223
 
3224
3224
  /**
3225
3225
  * @license lucide-react v0.539.0 - ISC
@@ -3229,14 +3229,14 @@ const Heading2 = createLucideIcon("heading-2", __iconNode$x);
3229
3229
  */
3230
3230
 
3231
3231
 
3232
- const __iconNode$w = [
3232
+ const __iconNode$x = [
3233
3233
  ["path", { d: "M4 12h8", key: "17cfdx" }],
3234
3234
  ["path", { d: "M4 18V6", key: "1rz3zl" }],
3235
3235
  ["path", { d: "M12 18V6", key: "zqpxq5" }],
3236
3236
  ["path", { d: "M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2", key: "68ncm8" }],
3237
3237
  ["path", { d: "M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2", key: "1ejuhz" }]
3238
3238
  ];
3239
- const Heading3 = createLucideIcon("heading-3", __iconNode$w);
3239
+ const Heading3 = createLucideIcon("heading-3", __iconNode$x);
3240
3240
 
3241
3241
  /**
3242
3242
  * @license lucide-react v0.539.0 - ISC
@@ -3246,12 +3246,12 @@ const Heading3 = createLucideIcon("heading-3", __iconNode$w);
3246
3246
  */
3247
3247
 
3248
3248
 
3249
- const __iconNode$v = [
3249
+ const __iconNode$w = [
3250
3250
  ["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
3251
3251
  ["path", { d: "M3 3v5h5", key: "1xhq8a" }],
3252
3252
  ["path", { d: "M12 7v5l4 2", key: "1fdv2h" }]
3253
3253
  ];
3254
- const History = createLucideIcon("history", __iconNode$v);
3254
+ const History = createLucideIcon("history", __iconNode$w);
3255
3255
 
3256
3256
  /**
3257
3257
  * @license lucide-react v0.539.0 - ISC
@@ -3261,12 +3261,12 @@ const History = createLucideIcon("history", __iconNode$v);
3261
3261
  */
3262
3262
 
3263
3263
 
3264
- const __iconNode$u = [
3264
+ const __iconNode$v = [
3265
3265
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
3266
3266
  ["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
3267
3267
  ["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
3268
3268
  ];
3269
- const Image$1 = createLucideIcon("image", __iconNode$u);
3269
+ const Image$1 = createLucideIcon("image", __iconNode$v);
3270
3270
 
3271
3271
  /**
3272
3272
  * @license lucide-react v0.539.0 - ISC
@@ -3276,12 +3276,12 @@ const Image$1 = createLucideIcon("image", __iconNode$u);
3276
3276
  */
3277
3277
 
3278
3278
 
3279
- const __iconNode$t = [
3279
+ const __iconNode$u = [
3280
3280
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
3281
3281
  ["path", { d: "M12 16v-4", key: "1dtifu" }],
3282
3282
  ["path", { d: "M12 8h.01", key: "e9boi3" }]
3283
3283
  ];
3284
- const Info = createLucideIcon("info", __iconNode$t);
3284
+ const Info = createLucideIcon("info", __iconNode$u);
3285
3285
 
3286
3286
  /**
3287
3287
  * @license lucide-react v0.539.0 - ISC
@@ -3291,12 +3291,12 @@ const Info = createLucideIcon("info", __iconNode$t);
3291
3291
  */
3292
3292
 
3293
3293
 
3294
- const __iconNode$s = [
3294
+ const __iconNode$t = [
3295
3295
  ["line", { x1: "19", x2: "10", y1: "4", y2: "4", key: "15jd3p" }],
3296
3296
  ["line", { x1: "14", x2: "5", y1: "20", y2: "20", key: "bu0au3" }],
3297
3297
  ["line", { x1: "15", x2: "9", y1: "4", y2: "20", key: "uljnxc" }]
3298
3298
  ];
3299
- const Italic$1 = createLucideIcon("italic", __iconNode$s);
3299
+ const Italic$1 = createLucideIcon("italic", __iconNode$t);
3300
3300
 
3301
3301
  /**
3302
3302
  * @license lucide-react v0.539.0 - ISC
@@ -3306,12 +3306,12 @@ const Italic$1 = createLucideIcon("italic", __iconNode$s);
3306
3306
  */
3307
3307
 
3308
3308
 
3309
- const __iconNode$r = [
3309
+ const __iconNode$s = [
3310
3310
  ["path", { d: "M9 17H7A5 5 0 0 1 7 7h2", key: "8i5ue5" }],
3311
3311
  ["path", { d: "M15 7h2a5 5 0 1 1 0 10h-2", key: "1b9ql8" }],
3312
3312
  ["line", { x1: "8", x2: "16", y1: "12", y2: "12", key: "1jonct" }]
3313
3313
  ];
3314
- const Link2 = createLucideIcon("link-2", __iconNode$r);
3314
+ const Link2 = createLucideIcon("link-2", __iconNode$s);
3315
3315
 
3316
3316
  /**
3317
3317
  * @license lucide-react v0.539.0 - ISC
@@ -3321,7 +3321,7 @@ const Link2 = createLucideIcon("link-2", __iconNode$r);
3321
3321
  */
3322
3322
 
3323
3323
 
3324
- const __iconNode$q = [
3324
+ const __iconNode$r = [
3325
3325
  ["path", { d: "M10 12h11", key: "6m4ad9" }],
3326
3326
  ["path", { d: "M10 18h11", key: "11hvi2" }],
3327
3327
  ["path", { d: "M10 6h11", key: "c7qv1k" }],
@@ -3329,7 +3329,7 @@ const __iconNode$q = [
3329
3329
  ["path", { d: "M4 6h1v4", key: "cnovpq" }],
3330
3330
  ["path", { d: "M6 18H4c0-1 2-2 2-3s-1-1.5-2-1", key: "m9a95d" }]
3331
3331
  ];
3332
- const ListOrdered = createLucideIcon("list-ordered", __iconNode$q);
3332
+ const ListOrdered = createLucideIcon("list-ordered", __iconNode$r);
3333
3333
 
3334
3334
  /**
3335
3335
  * @license lucide-react v0.539.0 - ISC
@@ -3339,7 +3339,7 @@ const ListOrdered = createLucideIcon("list-ordered", __iconNode$q);
3339
3339
  */
3340
3340
 
3341
3341
 
3342
- const __iconNode$p = [
3342
+ const __iconNode$q = [
3343
3343
  ["path", { d: "M3 12h.01", key: "nlz23k" }],
3344
3344
  ["path", { d: "M3 18h.01", key: "1tta3j" }],
3345
3345
  ["path", { d: "M3 6h.01", key: "1rqtza" }],
@@ -3347,7 +3347,7 @@ const __iconNode$p = [
3347
3347
  ["path", { d: "M8 18h13", key: "1lx6n3" }],
3348
3348
  ["path", { d: "M8 6h13", key: "ik3vkj" }]
3349
3349
  ];
3350
- const List = createLucideIcon("list", __iconNode$p);
3350
+ const List = createLucideIcon("list", __iconNode$q);
3351
3351
 
3352
3352
  /**
3353
3353
  * @license lucide-react v0.539.0 - ISC
@@ -3357,8 +3357,8 @@ const List = createLucideIcon("list", __iconNode$p);
3357
3357
  */
3358
3358
 
3359
3359
 
3360
- const __iconNode$o = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
3361
- const LoaderCircle = createLucideIcon("loader-circle", __iconNode$o);
3360
+ const __iconNode$p = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
3361
+ const LoaderCircle = createLucideIcon("loader-circle", __iconNode$p);
3362
3362
 
3363
3363
  /**
3364
3364
  * @license lucide-react v0.539.0 - ISC
@@ -3368,7 +3368,7 @@ const LoaderCircle = createLucideIcon("loader-circle", __iconNode$o);
3368
3368
  */
3369
3369
 
3370
3370
 
3371
- const __iconNode$n = [
3371
+ const __iconNode$o = [
3372
3372
  ["path", { d: "M12 2v4", key: "3427ic" }],
3373
3373
  ["path", { d: "m16.2 7.8 2.9-2.9", key: "r700ao" }],
3374
3374
  ["path", { d: "M18 12h4", key: "wj9ykh" }],
@@ -3378,7 +3378,7 @@ const __iconNode$n = [
3378
3378
  ["path", { d: "M2 12h4", key: "j09sii" }],
3379
3379
  ["path", { d: "m4.9 4.9 2.9 2.9", key: "giyufr" }]
3380
3380
  ];
3381
- const Loader = createLucideIcon("loader", __iconNode$n);
3381
+ const Loader = createLucideIcon("loader", __iconNode$o);
3382
3382
 
3383
3383
  /**
3384
3384
  * @license lucide-react v0.539.0 - ISC
@@ -3388,12 +3388,12 @@ const Loader = createLucideIcon("loader", __iconNode$n);
3388
3388
  */
3389
3389
 
3390
3390
 
3391
- const __iconNode$m = [
3391
+ const __iconNode$n = [
3392
3392
  ["path", { d: "m16 17 5-5-5-5", key: "1bji2h" }],
3393
3393
  ["path", { d: "M21 12H9", key: "dn1m92" }],
3394
3394
  ["path", { d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4", key: "1uf3rs" }]
3395
3395
  ];
3396
- const LogOut = createLucideIcon("log-out", __iconNode$m);
3396
+ const LogOut = createLucideIcon("log-out", __iconNode$n);
3397
3397
 
3398
3398
  /**
3399
3399
  * @license lucide-react v0.539.0 - ISC
@@ -3403,12 +3403,12 @@ const LogOut = createLucideIcon("log-out", __iconNode$m);
3403
3403
  */
3404
3404
 
3405
3405
 
3406
- const __iconNode$l = [
3406
+ const __iconNode$m = [
3407
3407
  ["path", { d: "M4 12h16", key: "1lakjw" }],
3408
3408
  ["path", { d: "M4 18h16", key: "19g7jn" }],
3409
3409
  ["path", { d: "M4 6h16", key: "1o0s65" }]
3410
3410
  ];
3411
- const Menu = createLucideIcon("menu", __iconNode$l);
3411
+ const Menu = createLucideIcon("menu", __iconNode$m);
3412
3412
 
3413
3413
  /**
3414
3414
  * @license lucide-react v0.539.0 - ISC
@@ -3418,7 +3418,7 @@ const Menu = createLucideIcon("menu", __iconNode$l);
3418
3418
  */
3419
3419
 
3420
3420
 
3421
- const __iconNode$k = [
3421
+ const __iconNode$l = [
3422
3422
  [
3423
3423
  "path",
3424
3424
  {
@@ -3427,7 +3427,7 @@ const __iconNode$k = [
3427
3427
  }
3428
3428
  ]
3429
3429
  ];
3430
- const Moon = createLucideIcon("moon", __iconNode$k);
3430
+ const Moon = createLucideIcon("moon", __iconNode$l);
3431
3431
 
3432
3432
  /**
3433
3433
  * @license lucide-react v0.539.0 - ISC
@@ -3437,7 +3437,7 @@ const Moon = createLucideIcon("moon", __iconNode$k);
3437
3437
  */
3438
3438
 
3439
3439
 
3440
- const __iconNode$j = [
3440
+ const __iconNode$k = [
3441
3441
  [
3442
3442
  "path",
3443
3443
  {
@@ -3450,7 +3450,22 @@ const __iconNode$j = [
3450
3450
  ["circle", { cx: "6.5", cy: "12.5", r: ".5", fill: "currentColor", key: "qy21gx" }],
3451
3451
  ["circle", { cx: "8.5", cy: "7.5", r: ".5", fill: "currentColor", key: "fotxhn" }]
3452
3452
  ];
3453
- const Palette = createLucideIcon("palette", __iconNode$j);
3453
+ const Palette = createLucideIcon("palette", __iconNode$k);
3454
+
3455
+ /**
3456
+ * @license lucide-react v0.539.0 - ISC
3457
+ *
3458
+ * This source code is licensed under the ISC license.
3459
+ * See the LICENSE file in the root directory of this source tree.
3460
+ */
3461
+
3462
+
3463
+ const __iconNode$j = [
3464
+ ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
3465
+ ["path", { d: "M9 3v18", key: "fh3hqa" }],
3466
+ ["path", { d: "m16 15-3-3 3-3", key: "14y99z" }]
3467
+ ];
3468
+ const PanelLeftClose = createLucideIcon("panel-left-close", __iconNode$j);
3454
3469
 
3455
3470
  /**
3456
3471
  * @license lucide-react v0.539.0 - ISC
@@ -5459,7 +5474,9 @@ const SquareSkeleton = ({ width, height, rounded = 'md', className, }) => {
5459
5474
  style.width = toCssSize(width);
5460
5475
  if (height !== undefined)
5461
5476
  style.height = toCssSize(height);
5462
- return (jsx("div", { "aria-hidden": "true", style: style, className: cn('animate-pulse bg-muted', ROUNDED_MAP[rounded], className) }));
5477
+ return (jsx("div", { "aria-hidden": "true", style: style, className: cn(
5478
+ // Shimmer wave: muted base with a light band sweeping across.
5479
+ 'relative isolate overflow-hidden bg-muted', 'before:absolute before:inset-0 before:-translate-x-full before:animate-shimmer', 'before:bg-gradient-to-r before:from-transparent before:via-white/50 before:to-transparent', ROUNDED_MAP[rounded], className) }));
5463
5480
  };
5464
5481
 
5465
5482
  const useSlider = ({ value, defaultValue, min, max, }) => {
@@ -5580,7 +5597,36 @@ const iconSizeMap = {
5580
5597
  'ex-lg': 16,
5581
5598
  };
5582
5599
 
5600
+ function styleInject(css, ref) {
5601
+ if ( ref === void 0 ) ref = {};
5602
+ var insertAt = ref.insertAt;
5603
+
5604
+ if (!css || typeof document === 'undefined') { return; }
5605
+
5606
+ var head = document.head || document.getElementsByTagName('head')[0];
5607
+ var style = document.createElement('style');
5608
+ style.type = 'text/css';
5609
+
5610
+ if (insertAt === 'top') {
5611
+ if (head.firstChild) {
5612
+ head.insertBefore(style, head.firstChild);
5613
+ } else {
5614
+ head.appendChild(style);
5615
+ }
5616
+ } else {
5617
+ head.appendChild(style);
5618
+ }
5619
+
5620
+ if (style.styleSheet) {
5621
+ style.styleSheet.cssText = css;
5622
+ } else {
5623
+ style.appendChild(document.createTextNode(css));
5624
+ }
5625
+ }
5626
+
5627
+ var css_248z$3 = ".Tabs-module_liftedTrigger__OkgpA[data-state=active]{border-bottom-color:var(--background);margin-bottom:-1px}.Tabs-module_folderTrigger__O7PmD[data-state=active]:after,.Tabs-module_folderTrigger__O7PmD[data-state=active]:before{background-repeat:no-repeat;background-size:100% 100%;bottom:0;content:\"\";height:8px;pointer-events:none;position:absolute;width:8px}.Tabs-module_folderTrigger__O7PmD[data-state=active]:before{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M8 0a8 8 0 0 1-8 8h8Z' fill='%23fff'/%3E%3Cpath d='M8 0a8 8 0 0 1-8 8' fill='none' stroke='%23317A51'/%3E%3C/svg%3E\");left:-8px}.Tabs-module_folderTrigger__O7PmD[data-state=active]:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M0 0a8 8 0 0 0 8 8H0Z' fill='%23fff'/%3E%3Cpath d='M0 0a8 8 0 0 0 8 8' fill='none' stroke='%23317A51'/%3E%3C/svg%3E\");right:-8px}.dark .Tabs-module_folderTrigger__O7PmD[data-state=active]:before{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M8 0a8 8 0 0 1-8 8h8Z' fill='%231E1E1E'/%3E%3Cpath d='M8 0a8 8 0 0 1-8 8' fill='none' stroke='%23317A51'/%3E%3C/svg%3E\")}.dark .Tabs-module_folderTrigger__O7PmD[data-state=active]:after{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M0 0a8 8 0 0 0 8 8H0Z' fill='%231E1E1E'/%3E%3Cpath d='M0 0a8 8 0 0 0 8 8' fill='none' stroke='%23317A51'/%3E%3C/svg%3E\")}";
5583
5628
  var styles = {"liftedTrigger":"Tabs-module_liftedTrigger__OkgpA"};
5629
+ styleInject(css_248z$3);
5584
5630
 
5585
5631
  const Tabs = ({ tabStyle = 'boxed', size = 'md', className, children, ...props }) => (jsx(TabsContextProvider, { value: { tabStyle, size }, children: jsx(TabsPrimitive.Root, { className: cn('w-full', className), ...props, children: children }) }));
5586
5632
  const TabsList = ({ loop, className, children }) => {
@@ -27659,9 +27705,36 @@ function DatePickerHeader({ monthDate, changeYear, changeMonth, decreaseMonth, i
27659
27705
  return (jsxs("div", { className: "date-range-picker-header", children: [hidePrev ? (jsx("span", { className: "date-range-picker-nav-spacer", "aria-hidden": true })) : (jsx("button", { type: "button", onClick: decreaseMonth, disabled: prevMonthButtonDisabled, "aria-label": "Previous month", className: "date-range-picker-nav", children: jsx(ChevronLeft, { className: "h-4 w-4", strokeWidth: 2 }) })), jsxs("div", { className: "date-range-picker-selects", children: [jsx("div", { className: "date-range-picker-select-wrap", children: jsx("select", { "aria-label": "Select month", className: "date-range-picker-select", value: shownMonth, onChange: (event) => changeMonth(Number(event.target.value)), children: MONTHS.map((label, index) => (jsx("option", { value: index, children: label }, label))) }) }), jsx("div", { className: "date-range-picker-select-wrap", children: jsx("select", { "aria-label": "Select year", className: "date-range-picker-select", value: shownYear, onChange: (event) => changeYear(Number(event.target.value)), children: years.map((year) => (jsx("option", { value: year, children: year }, year))) }) })] }), hideNext ? (jsx("span", { className: "date-range-picker-nav-spacer", "aria-hidden": true })) : (jsx("button", { type: "button", onClick: increaseMonth, disabled: nextMonthButtonDisabled, "aria-label": "Next month", className: "date-range-picker-nav", children: jsx(ChevronRight, { className: "h-4 w-4", strokeWidth: 2 }) }))] }));
27660
27706
  }
27661
27707
 
27708
+ var css_248z$2 = "@charset \"UTF-8\";.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__navigation-icon:before,.react-datepicker__year-read-view--down-arrow{border-color:#ccc;border-style:solid;border-width:3px 3px 0 0;content:\"\";display:block;height:9px;position:absolute;top:6px;width:9px}.react-datepicker__sr-only{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.react-datepicker-wrapper{border:0;display:inline-block;padding:0}.react-datepicker{background-color:#fff;border:1px solid #aeaeae;border-radius:.3rem;color:#000;display:inline-block;font-family:Helvetica Neue,helvetica,arial,sans-serif;font-size:.8rem;line-height:normal;position:relative}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker-popper{line-height:0;z-index:1}.react-datepicker-popper .react-datepicker__triangle{stroke:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle{fill:#fff;color:#fff}.react-datepicker__header{background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;padding:8px 0;position:relative;text-align:center}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__header--time:not(.react-datepicker__header--time--only){border-top-left-radius:0}.react-datepicker__header:not(.react-datepicker__header--has-time-select){border-top-right-radius:.3rem}.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__year-dropdown-container--select{display:inline-block;margin:0 15px}.react-datepicker-time__header,.react-datepicker-year-header,.react-datepicker__current-month{color:#000;font-size:.944rem;font-weight:700;margin-top:0}h2.react-datepicker__current-month{margin:0;padding:0}.react-datepicker-time__header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.react-datepicker__navigation{align-items:center;background:none;border:none;cursor:pointer;display:flex;height:32px;justify-content:center;overflow:hidden;padding:0;position:absolute;text-align:center;text-indent:-999em;top:2px;width:32px;z-index:1}.react-datepicker__navigation--previous{left:2px}.react-datepicker__navigation--next{right:2px}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:85px}.react-datepicker__navigation--years{display:block;margin-left:auto;margin-right:auto;position:relative;top:0}.react-datepicker__navigation--years-previous{top:4px}.react-datepicker__navigation--years-upcoming{top:-4px}.react-datepicker__navigation:hover :before{border-color:#a6a6a6}.react-datepicker__navigation-icon{font-size:20px;position:relative;top:-1px;width:0}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next:before{left:-7px;transform:rotate(45deg)}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous:before{right:-7px;transform:rotate(225deg)}.react-datepicker__month-container{float:left}.react-datepicker__year{margin:.4rem;text-align:center}.react-datepicker__year-wrapper{display:flex;flex-wrap:wrap;max-width:180px}.react-datepicker__year .react-datepicker__year-text{display:inline-block;margin:2px;width:4rem}.react-datepicker__month{margin:.4rem;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;margin:2px;width:4rem}.react-datepicker__input-time-container{clear:both;float:left;margin:5px 0 10px 15px;text-align:left;width:100%}.react-datepicker__input-time-container .react-datepicker-time__caption,.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:auto}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{display:inline-block;margin-left:5px}.react-datepicker__time-container{border-left:1px solid #aeaeae;float:right;width:85px}.react-datepicker__time-container--with-today-button{border:1px solid #aeaeae;border-radius:.3rem;display:inline;position:absolute;right:-87px;top:0}.react-datepicker__time-container .react-datepicker__time{background:#fff;border-bottom-right-radius:.3rem;position:relative}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{border-bottom-right-radius:.3rem;margin:0 auto;overflow-x:hidden;text-align:center;width:85px}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{box-sizing:content-box;height:calc(195px + .85rem);list-style:none;margin:0;overflow-y:scroll;padding-left:0;padding-right:0;width:100%}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{background-color:#f0f0f0;cursor:pointer}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:#fff;font-weight:700}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{background-color:transparent;cursor:default}.react-datepicker__week-number{color:#ccc;display:inline-block;line-height:1.7rem;margin:.166rem;text-align:center;width:1.7rem}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected):hover{background-color:#f0f0f0;border-radius:.3rem}.react-datepicker__week-number--selected{background-color:#216ba5;border-radius:.3rem;color:#fff}.react-datepicker__week-number--selected:hover{background-color:#1d5d90}.react-datepicker__day-names{margin-bottom:-8px;text-align:center;white-space:nowrap}.react-datepicker__week{white-space:nowrap}.react-datepicker__day,.react-datepicker__day-name,.react-datepicker__time-name{color:#000;display:inline-block;line-height:1.7rem;margin:.166rem;text-align:center;width:1.7rem}.react-datepicker__day--disabled,.react-datepicker__day-name--disabled,.react-datepicker__time-name--disabled{color:#ccc;cursor:default}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:not([aria-disabled=true]):hover,.react-datepicker__month-text:not([aria-disabled=true]):hover,.react-datepicker__quarter-text:not([aria-disabled=true]):hover,.react-datepicker__year-text:not([aria-disabled=true]):hover{background-color:#f0f0f0;border-radius:.3rem}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today,.react-datepicker__year-text--today{font-weight:700}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted,.react-datepicker__year-text--highlighted{background-color:#3dcc4a;border-radius:.3rem;color:#fff}.react-datepicker__day--highlighted:not([aria-disabled=true]):hover,.react-datepicker__month-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__year-text--highlighted:not([aria-disabled=true]):hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1,.react-datepicker__year-text--highlighted-custom-1{color:#f0f}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2,.react-datepicker__year-text--highlighted-custom-2{color:green}.react-datepicker__day--holidays,.react-datepicker__month-text--holidays,.react-datepicker__quarter-text--holidays,.react-datepicker__year-text--holidays{background-color:#ff6803;border-radius:.3rem;color:#fff;position:relative}.react-datepicker__day--holidays .overlay,.react-datepicker__month-text--holidays .overlay,.react-datepicker__quarter-text--holidays .overlay,.react-datepicker__year-text--holidays .overlay{background-color:#333;border-radius:4px;bottom:100%;color:#fff;left:50%;opacity:0;padding:4px;position:absolute;transform:translateX(-50%);transition:visibility 0s,opacity .3s ease-in-out;visibility:hidden;white-space:nowrap}.react-datepicker__day--holidays:not([aria-disabled=true]):hover,.react-datepicker__month-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__year-text--holidays:not([aria-disabled=true]):hover{background-color:#cf5300}.react-datepicker__day--holidays:hover .overlay,.react-datepicker__month-text--holidays:hover .overlay,.react-datepicker__quarter-text--holidays:hover .overlay,.react-datepicker__year-text--holidays:hover .overlay{opacity:1;visibility:visible}.react-datepicker__day--in-range,.react-datepicker__day--in-selecting-range,.react-datepicker__day--selected,.react-datepicker__month-text--in-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--selected,.react-datepicker__quarter-text--in-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--selected,.react-datepicker__year-text--in-range,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--selected{background-color:#216ba5;border-radius:.3rem;color:#fff}.react-datepicker__day--in-range:not([aria-disabled=true]):hover,.react-datepicker__day--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__day--selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--selected:not([aria-disabled=true]):hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{background-color:#bad9f1;border-radius:.3rem;color:#000}.react-datepicker__day--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--keyboard-selected:not([aria-disabled=true]):hover{background-color:#1d5d90;color:#fff}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range){background-color:rgba(33,107,165,.5)}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range){background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled,.react-datepicker__year-text--disabled{color:#ccc;cursor:default}.react-datepicker__day--disabled .overlay,.react-datepicker__month-text--disabled .overlay,.react-datepicker__quarter-text--disabled .overlay,.react-datepicker__year-text--disabled .overlay{background-color:#333;border-radius:4px;bottom:70%;color:#fff;left:50%;opacity:0;padding:4px;position:absolute;transform:translateX(-50%);transition:visibility 0s,opacity .3s ease-in-out;visibility:hidden;white-space:nowrap}.react-datepicker__input-container{display:inline-block;position:relative;width:100%}.react-datepicker__input-container .react-datepicker__calendar-icon{box-sizing:content-box;padding:.5rem;position:absolute}.react-datepicker__view-calendar-icon input{padding:6px 10px 5px 25px}.react-datepicker__month-read-view,.react-datepicker__month-year-read-view,.react-datepicker__year-read-view{border:1px solid transparent;border-radius:.3rem;position:relative}.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover,.react-datepicker__year-read-view:hover{cursor:pointer}.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__year-read-view--down-arrow{right:-16px;top:0;transform:rotate(135deg)}.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown,.react-datepicker__year-dropdown{background-color:#f0f0f0;border:1px solid #aeaeae;border-radius:.3rem;left:25%;position:absolute;text-align:center;top:30px;width:50%;z-index:1}.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover,.react-datepicker__year-dropdown:hover{cursor:pointer}.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable,.react-datepicker__year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__month-option,.react-datepicker__month-year-option,.react-datepicker__year-option{display:block;line-height:20px;margin-left:auto;margin-right:auto;width:100%}.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type,.react-datepicker__year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type,.react-datepicker__year-option:last-of-type{border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover,.react-datepicker__year-option:hover{background-color:#ccc}.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected,.react-datepicker__year-option--selected{left:15px;position:absolute}.react-datepicker__close-icon{background-color:transparent;border:0;cursor:pointer;display:table-cell;height:100%;outline:0;padding:0 6px 0 0;position:absolute;right:0;top:0;vertical-align:middle}.react-datepicker__close-icon:after{background-color:#216ba5;border-radius:50%;color:#fff;content:\"×\";cursor:pointer;display:table-cell;font-size:12px;height:16px;line-height:1;padding:2px;text-align:center;vertical-align:middle;width:16px}.react-datepicker__close-icon--disabled{cursor:default}.react-datepicker__close-icon--disabled:after{background-color:#ccc;cursor:default}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;clear:left;cursor:pointer;font-weight:700;padding:5px 0;text-align:center}.react-datepicker__portal{align-items:center;background-color:rgba(0,0,0,.8);display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:2147483647}.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__time-name{line-height:3rem;width:3rem}@media (max-height:550px),(max-width:400px){.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__time-name{line-height:2rem;width:2rem}}.react-datepicker__portal .react-datepicker-time__header,.react-datepicker__portal .react-datepicker__current-month{font-size:1.44rem}.react-datepicker__children-container{height:auto;margin:.4rem;padding-left:.2rem;padding-right:.2rem;width:13.8rem}.react-datepicker__aria-live{border:0;clip-path:circle(0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.react-datepicker__calendar-icon{height:1em;vertical-align:-.125em;width:1em}";
27709
+ styleInject(css_248z$2);
27710
+
27711
+ var css_248z$1 = ".date-range-picker-popover[data-slot=popover-content]{max-width:calc(100vw - 2rem);width:fit-content}.date-range-picker-calendar.react-datepicker{background:transparent;border:0;display:flex;flex-direction:column;font-family:inherit;font-size:.875rem}.date-range-picker-calendar .react-datepicker__month-container{float:none;width:auto}.date-range-picker-calendar .react-datepicker__header{background:transparent;border-bottom:0;padding:0}.date-range-picker-calendar .react-datepicker__current-month{display:none}.date-range-picker-header{align-items:center;display:flex;gap:.5rem;justify-content:space-between;padding:0 .25rem .25rem}.date-range-picker-selects{align-items:center;display:flex;gap:.375rem}.date-range-picker-select-wrap{align-items:center;display:inline-flex;position:relative}.date-range-picker-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-color:var(--background);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E\");background-position:right .375rem center;background-repeat:no-repeat;background-size:.875rem;border:1px solid var(--input-border,var(--border));border-radius:.5rem;color:var(--foreground);cursor:pointer;font-size:.8125rem;font-weight:500;height:1.875rem;line-height:1.875rem;outline:none;padding:0 1.5rem 0 .625rem;transition:border-color .15s,box-shadow .15s}.date-range-picker-select:hover{background-color:var(--muted)}.date-range-picker-select:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 30%,transparent)}.date-range-picker-select option{background-color:var(--popover,var(--background));color:var(--foreground)}.date-range-picker-nav-spacer{display:inline-block;height:1.75rem;width:1.75rem}.date-range-picker-nav{align-items:center;background-color:var(--muted);border:0;border-radius:.5rem;color:var(--muted-foreground);cursor:pointer;display:inline-flex;height:1.75rem;justify-content:center;padding:0;transition:background-color .15s,color .15s;width:1.75rem}.date-range-picker-nav:hover{background-color:var(--accent);color:var(--foreground)}.date-range-picker-nav:disabled{cursor:not-allowed;opacity:.4}.date-range-picker-calendar .react-datepicker__day-names{display:flex;justify-content:space-between;margin:.5rem 0 .25rem}.date-range-picker-calendar .react-datepicker__day-name{color:var(--muted-foreground);font-size:.75rem;font-weight:400;line-height:1.75rem;margin:0;width:2.25rem}.date-range-picker-calendar .react-datepicker__month{margin:0}.date-range-picker-calendar .react-datepicker__week{display:flex;justify-content:space-between}.date-range-picker-calendar .react-datepicker__day{align-items:center;border-radius:.5rem;color:var(--foreground);display:inline-flex;font-size:.875rem;height:2.25rem;justify-content:center;line-height:2.25rem;margin:.125rem 0;width:2.25rem}.date-range-picker-calendar .react-datepicker__day--outside-month{color:var(--muted-foreground);opacity:.55}.date-range-picker-calendar .react-datepicker__day:hover{background-color:var(--muted);border-radius:.5rem}.date-range-picker-calendar .react-datepicker__day--today{background-color:var(--muted);color:var(--foreground);font-weight:600}.date-range-picker-calendar .react-datepicker__day--keyboard-selected,.date-range-picker-calendar .react-datepicker__day--selected{background-color:var(--primary);color:var(--primary-foreground);font-weight:500}.date-range-picker-calendar .react-datepicker__day--keyboard-selected:hover,.date-range-picker-calendar .react-datepicker__day--selected:hover{background-color:var(--primary);color:var(--primary-foreground);filter:brightness(.95)}.date-range-picker-calendar .react-datepicker__day--in-range,.date-range-picker-calendar .react-datepicker__day--in-selecting-range{background-color:color-mix(in srgb,var(--primary) 18%,transparent);color:var(--primary)}.date-range-picker-calendar .react-datepicker__day--range-end,.date-range-picker-calendar .react-datepicker__day--range-start{background-color:var(--primary);color:var(--primary-foreground)}.date-range-picker-calendar .react-datepicker__day--disabled{color:var(--muted-foreground);cursor:not-allowed;opacity:.4}.date-range-picker-calendar .react-datepicker__children-container{margin:0;padding:0;width:auto}.date-range-picker-footer{align-items:center;display:flex;justify-content:space-between;margin-top:.75rem;padding-top:.75rem;width:100%}.date-range-picker-action{align-items:center;background-color:color-mix(in srgb,var(--primary) 10%,transparent);border:0;border-radius:.5rem;color:var(--primary);cursor:pointer;display:inline-flex;font-size:.8125rem;font-weight:500;height:2rem;justify-content:center;padding:0 .875rem;transition:background-color .15s}.date-range-picker-action:hover{background-color:color-mix(in srgb,var(--primary) 18%,transparent)}:is(.dark) .date-range-picker-calendar .react-datepicker__day--today{background-color:color-mix(in srgb,var(--muted) 80%,transparent)}:is(.dark) .date-range-picker-action{background-color:color-mix(in srgb,var(--primary) 18%,transparent)}:is(.dark) .date-range-picker-action:hover{background-color:color-mix(in srgb,var(--primary) 28%,transparent)}";
27712
+ styleInject(css_248z$1);
27713
+
27714
+ // Only one DateInput popover should be open at a time. Because each instance is
27715
+ // its own `modal` Radix Popover, opening a second one does not dismiss the first
27716
+ // via outside-click. Instances coordinate through a window event: whoever opens
27717
+ // broadcasts its id, and every other open instance closes itself.
27718
+ const DATEINPUT_OPEN_EVENT = 'caratlogic:dateinput-open';
27662
27719
  function DateInput({ value, onChange, onBlur, name, className, min, max, disabled, placeholder = 'Select date', }) {
27663
27720
  const [open, setOpen] = useState(false);
27721
+ const instanceId = useId$2();
27664
27722
  const { minDate, maxDate, minYear, maxYear } = computeDateBounds(min, max);
27723
+ // Close this popover when any other DateInput announces it just opened.
27724
+ useEffect(() => {
27725
+ const onOtherOpen = (e) => {
27726
+ if (e.detail !== instanceId)
27727
+ setOpen(false);
27728
+ };
27729
+ window.addEventListener(DATEINPUT_OPEN_EVENT, onOtherOpen);
27730
+ return () => window.removeEventListener(DATEINPUT_OPEN_EVENT, onOtherOpen);
27731
+ }, [instanceId]);
27732
+ const handleOpenChange = (next) => {
27733
+ setOpen(next);
27734
+ if (next) {
27735
+ window.dispatchEvent(new CustomEvent(DATEINPUT_OPEN_EVENT, { detail: instanceId }));
27736
+ }
27737
+ };
27665
27738
  // NOTE: We drive `open` ourselves from the button's onClick instead of using
27666
27739
  // Radix's <PopoverTrigger> toggle. When this Popover is nested inside the
27667
27740
  // modal <SlideOut> (Radix Dialog), the trigger's built-in toggle does not
@@ -27670,9 +27743,9 @@ function DateInput({ value, onChange, onBlur, name, className, min, max, disable
27670
27743
  // source of truth — no double-fire, and it works across browsers. `modal`
27671
27744
  // lets the open popover own pointer events above the dialog so the calendar
27672
27745
  // (portalled to <body>) stays clickable.
27673
- return (jsxs(Popover, { open: open, onOpenChange: setOpen, modal: true, children: [jsx(PopoverAnchor, { asChild: true, children: jsxs("button", { type: "button", name: name, onBlur: onBlur, disabled: disabled, "aria-haspopup": "dialog", "aria-expanded": open, onClick: () => {
27746
+ return (jsxs(Popover, { open: open, onOpenChange: handleOpenChange, modal: true, children: [jsx(PopoverAnchor, { asChild: true, children: jsxs("button", { type: "button", name: name, onBlur: onBlur, disabled: disabled, "aria-haspopup": "dialog", "aria-expanded": open, onClick: () => {
27674
27747
  if (!disabled)
27675
- setOpen((prev) => !prev);
27748
+ handleOpenChange(!open);
27676
27749
  }, "data-slot": "input", "data-empty": !value || undefined, className: cn('border-input-border flex h-9 w-full min-w-0 cursor-pointer items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-1 text-left shadow-[0_1px_2px_0_#0000000d] transition-[color,box-shadow] outline-none', 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]', 'aria-invalid:ring-destructive/20 aria-invalid:border-destructive', disabled && 'cursor-not-allowed bg-muted text-label', className), children: [jsx("span", { className: cn('truncate text-sm md:text-sm', value ? 'text-foreground' : 'text-placeholder'), children: value ? moment(value).format('DD/MM/YYYY') : placeholder }), jsx("span", { className: "inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground", children: jsx(CalendarDays, { className: "h-4 w-4 stroke-[1.75]" }) })] }) }), jsx(PopoverContent, { align: "start", className: "date-range-picker-popover w-auto p-4", children: jsx(DatePicker, { inline: true, selected: value ?? null, minDate: minDate ? moment(minDate, 'YYYY-MM-DD').toDate() : undefined, maxDate: maxDate ? moment(maxDate, 'YYYY-MM-DD').toDate() : undefined, onChange: (date) => {
27677
27750
  onChange(date ?? undefined);
27678
27751
  if (date)
@@ -28471,11 +28544,70 @@ function PageTabs({ value, onChange, tabs, ariaLabel, className, }) {
28471
28544
  })), variant: "bordered", ariaLabel: ariaLabel, className: className ?? 'w-auto' }));
28472
28545
  }
28473
28546
 
28547
+ const paginationSelectTriggerVariants = cva('inline-flex w-auto shrink-0 items-center justify-between gap-1.5 whitespace-nowrap font-medium font-sans transition-colors cursor-pointer select-none outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-muted', {
28548
+ variants: {
28549
+ size: {
28550
+ xs: 'h-7 px-2 text-xs rounded-md',
28551
+ sm: 'h-8 px-2.5 text-sm rounded-md',
28552
+ md: 'h-9 px-3 text-sm rounded-md',
28553
+ lg: 'h-10 px-4 text-base rounded-lg',
28554
+ },
28555
+ shape: {
28556
+ square: '',
28557
+ rounded: 'rounded-full',
28558
+ },
28559
+ variant: {
28560
+ default: 'bg-transparent hover:bg-muted text-foreground',
28561
+ solid: 'bg-muted hover:bg-muted/80 text-foreground',
28562
+ outlined: 'border border-border bg-transparent hover:bg-muted text-foreground',
28563
+ underline: 'bg-transparent hover:bg-muted text-foreground',
28564
+ },
28565
+ },
28566
+ defaultVariants: { size: 'md', shape: 'square', variant: 'default' },
28567
+ });
28568
+ /**
28569
+ * The popup is portalled to `document.body`, so it is styled purely from theme
28570
+ * tokens — that is what keeps it identical on Windows, macOS and Linux instead
28571
+ * of inheriting the OS's native listbox chrome.
28572
+ */
28573
+ const paginationSelectContentClass = 'z-50 min-w-[var(--radix-select-trigger-width)] max-h-[--radix-select-content-available-height] overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-[0_10px_15px_-3px_rgba(0,0,0,0.10),0_4px_6px_-4px_rgba(0,0,0,0.10)] data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0';
28574
+ const paginationSelectItemClass = 'relative flex w-full cursor-pointer select-none items-center whitespace-nowrap rounded-sm py-1.5 pl-2 pr-7 font-sans text-popover-foreground outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=checked]:font-medium data-[disabled]:pointer-events-none data-[disabled]:opacity-50';
28575
+ const paginationSelectItemSizes = {
28576
+ xs: 'text-xs',
28577
+ sm: 'text-sm',
28578
+ md: 'text-sm',
28579
+ lg: 'text-base',
28580
+ };
28581
+ const paginationSelectIconSizes = {
28582
+ xs: 12,
28583
+ sm: 14,
28584
+ md: 16,
28585
+ lg: 18,
28586
+ };
28587
+
28588
+ /**
28589
+ * Compact dropdown for pagination controls (rows-per-page, jump-to-page).
28590
+ *
28591
+ * Replaces a native `<select>`: browsers hand the native option list to the OS,
28592
+ * so on Windows it renders in system colours and ignores the app's dark theme.
28593
+ * This one is a themed, portalled listbox, so it looks the same on every OS.
28594
+ */
28595
+ const PaginationSelect = ({ value, options, onChange, ariaLabel, size = 'md', shape = 'square', variant = 'default', disabled = false, align = 'start', className, contentClassName, }) => (jsxs(SelectPrimitive.Root, { value: String(value), onValueChange: (next) => onChange(Number(next)), disabled: disabled, children: [jsxs(SelectPrimitive.Trigger, { "aria-label": ariaLabel, className: cn(paginationSelectTriggerVariants({ size, shape, variant }), className), children: [jsx(SelectPrimitive.Value, {}), jsx(SelectPrimitive.Icon, { asChild: true, children: jsx(ChevronDown, { size: paginationSelectIconSizes[size] - 2, className: "shrink-0 opacity-70", "aria-hidden": "true" }) })] }), jsx(SelectPrimitive.Portal, { children: jsx(SelectPrimitive.Content, { position: "popper", align: align, sideOffset: 4, className: cn(paginationSelectContentClass, contentClassName), children: jsx(SelectPrimitive.Viewport, { className: "p-1", children: options.map((option) => (jsxs(SelectPrimitive.Item, { value: String(option.value), className: cn(paginationSelectItemClass, paginationSelectItemSizes[size]), children: [jsx(SelectPrimitive.ItemText, { children: option.label }), jsx(SelectPrimitive.ItemIndicator, { className: "absolute right-2 flex items-center justify-center", children: jsx(Check, { size: 14, "aria-hidden": "true" }) })] }, option.value))) }) }) })] }));
28596
+
28474
28597
  const PaginationContent = React.forwardRef(({ className, ...props }, ref) => (jsx("ul", { ref: ref, className: cn('flex flex-row items-center gap-1', className), ...props })));
28475
28598
  PaginationContent.displayName = 'PaginationContent';
28476
28599
  const PaginationItem = React.forwardRef(({ className, ...props }, ref) => (jsx("li", { ref: ref, className: cn('list-none', className), ...props })));
28477
28600
  PaginationItem.displayName = 'PaginationItem';
28478
28601
 
28602
+ function buildPageOptions(totalPages) {
28603
+ return Array.from({ length: Math.max(0, totalPages) }, (_, i) => ({
28604
+ value: i + 1,
28605
+ label: `Page ${i + 1}`,
28606
+ }));
28607
+ }
28608
+ function buildItemsPerPageOptions(options) {
28609
+ return options.map((value) => ({ value, label: `${value}/page` }));
28610
+ }
28479
28611
  const pageButtonVariants = cva('inline-flex items-center justify-center font-medium font-sans transition-colors disabled:pointer-events-none disabled:opacity-50 select-none cursor-pointer', {
28480
28612
  variants: {
28481
28613
  size: {
@@ -28518,27 +28650,6 @@ const navButtonVariants = cva('inline-flex items-center justify-center gap-1.5 f
28518
28650
  },
28519
28651
  defaultVariants: { size: 'md', shape: 'square', variant: 'default' },
28520
28652
  });
28521
- const itemsPerPageVariants = cva('inline-flex items-center font-medium font-sans transition-colors cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', {
28522
- variants: {
28523
- size: {
28524
- xs: 'h-7 px-2 text-xs rounded-md',
28525
- sm: 'h-8 px-2.5 text-sm rounded-md',
28526
- md: 'h-9 px-3 text-sm rounded-md',
28527
- lg: 'h-10 px-4 text-base rounded-lg',
28528
- },
28529
- shape: {
28530
- square: '',
28531
- rounded: '!rounded-full',
28532
- },
28533
- variant: {
28534
- default: 'bg-transparent hover:bg-muted text-foreground',
28535
- solid: 'bg-muted hover:bg-muted/80 text-foreground',
28536
- outlined: 'border border-border bg-transparent hover:bg-muted text-foreground',
28537
- underline: 'bg-transparent hover:bg-muted text-foreground',
28538
- },
28539
- },
28540
- defaultVariants: { size: 'md', shape: 'square', variant: 'default' },
28541
- });
28542
28653
  const navIconSizes = {
28543
28654
  xs: 12,
28544
28655
  sm: 14,
@@ -28640,7 +28751,7 @@ const Pagination = ({ currentPage, totalPages, onPageChange, size = 'md', varian
28640
28751
  // ── Center slot (used in combined + minimal layouts) ──────────────────────
28641
28752
  const centerSlot = () => {
28642
28753
  if (showPageDropdown) {
28643
- return (jsxs("span", { className: cn('inline-flex items-center gap-1 px-3 font-medium font-sans text-foreground cursor-pointer', pageInfoSizes[size], sizeHeights[size]), children: [jsx("select", { value: currentPage, onChange: (e) => goTo(Number(e.target.value)), "aria-label": paginationA11y.selectPageLabel, className: "appearance-none bg-transparent cursor-pointer focus:outline-none", children: Array.from({ length: totalPages }, (_, i) => (jsxs("option", { value: i + 1, children: ["Page ", i + 1] }, i + 1))) }), jsx(ChevronDown, { size: iconSize - 2, "aria-hidden": "true" })] }));
28754
+ return (jsx(PaginationSelect, { value: currentPage, options: buildPageOptions(totalPages), onChange: goTo, ariaLabel: paginationA11y.selectPageLabel, size: size, shape: shape, variant: combined ? 'default' : variant, className: cn(combined && 'rounded-none border-0') }));
28644
28755
  }
28645
28756
  if (showPageInfo && combined) {
28646
28757
  return (jsx("span", { "aria-live": "polite", className: cn('inline-flex items-center px-3 font-sans text-foreground whitespace-nowrap', pageInfoSizes[size], sizeHeights[size]), children: pageInfo }));
@@ -28663,7 +28774,7 @@ const Pagination = ({ currentPage, totalPages, onPageChange, size = 'md', varian
28663
28774
  // ── Assemble ──────────────────────────────────────────────────────────────
28664
28775
  const coreContent = (jsxs(Fragment$2, { children: [firstButton, prevButton, centerSlot(), pageList(), nextButton, lastButton] }));
28665
28776
  const coreGroup = combined ? (jsx("div", { className: combinedContainerClass, children: coreContent })) : (jsx(PaginationContent, { className: "gap-1", children: coreContent }));
28666
- return (jsxs("nav", { "aria-label": paginationA11y.navLabel, "aria-roledescription": paginationA11y.pageInfoLabel(currentPage, totalPages), className: cn('inline-flex items-center gap-3 flex-wrap', className), children: [showPageInfo && !combined && (jsx("span", { "aria-live": "polite", className: cn('font-sans text-muted-foreground whitespace-nowrap', pageInfoSizes[size]), children: pageInfo })), coreGroup, showItemsPerPage && (jsx("select", { value: itemsPerPage, onChange: (e) => onItemsPerPageChange?.(Number(e.target.value)), "aria-label": paginationA11y.itemsPerPageLabel, className: cn(itemsPerPageVariants({ size, shape, variant })), children: itemsPerPageOptions.map((opt) => (jsxs("option", { value: opt, children: [opt, "/page"] }, opt))) }))] }));
28777
+ return (jsxs("nav", { "aria-label": paginationA11y.navLabel, "aria-roledescription": paginationA11y.pageInfoLabel(currentPage, totalPages), className: cn('inline-flex items-center gap-3 flex-wrap', className), children: [showPageInfo && !combined && (jsx("span", { "aria-live": "polite", className: cn('font-sans text-muted-foreground whitespace-nowrap', pageInfoSizes[size]), children: pageInfo })), coreGroup, showItemsPerPage && (jsx(PaginationSelect, { value: itemsPerPage ?? itemsPerPageOptions[0], options: buildItemsPerPageOptions(itemsPerPageOptions), onChange: (next) => onItemsPerPageChange?.(next), ariaLabel: paginationA11y.itemsPerPageLabel, size: size, shape: shape, variant: variant }))] }));
28667
28778
  };
28668
28779
 
28669
28780
  /**
@@ -56987,8 +57098,35 @@ TableHead.displayName = 'TableHead';
56987
57098
  const TableCell = React.forwardRef(({ className, ...props }, ref) => (jsx("td", { ref: ref, className: cn('px-4 py-2 text-sm text-foreground', className), ...props })));
56988
57099
  TableCell.displayName = 'TableCell';
56989
57100
 
57101
+ // Varied per-column widths for a natural, non-rigid look.
57102
+ const CELL_WIDTHS = ['70%', '50%', '65%', '45%', '60%', '55%'];
57103
+ const cellWidth = (col, cols) => {
57104
+ if (col === 0)
57105
+ return '80%';
57106
+ if (col === cols - 1)
57107
+ return '40%';
57108
+ return CELL_WIDTHS[col % CELL_WIDTHS.length];
57109
+ };
56990
57110
  /** Loading placeholder for a data table: shimmering header + body cells. */
56991
- const ShimmerTable = ({ columnCount = 5, rowCount = 5, enableSelection = false, }) => (jsx("div", { className: "w-full h-full overflow-auto rounded bg-card", children: jsxs(Table, { children: [jsx(TableHeader, { className: "sticky top-0 z-10 bg-background", children: jsxs(TableRow, { children: [enableSelection && (jsx(TableHead, { children: jsx(SquareSkeleton, { width: 16, height: 16, rounded: "sm" }) })), Array.from({ length: columnCount }).map((_, i) => (jsx(TableHead, { children: jsx(SquareSkeleton, { width: 80, height: 16, rounded: "sm" }) }, i)))] }) }), jsx(TableBody, { children: Array.from({ length: rowCount }).map((_, rowIndex) => (jsxs(TableRow, { children: [enableSelection && (jsx(TableCell, { children: jsx(SquareSkeleton, { width: 16, height: 16, rounded: "sm" }) })), Array.from({ length: columnCount }).map((_, colIndex) => (jsx(TableCell, { children: jsx(SquareSkeleton, { width: 96, height: 16, rounded: "sm" }) }, colIndex)))] }, rowIndex))) })] }) }));
57111
+ const ShimmerTable = ({ columnCount = 5, rowCount = 8, enableSelection = false, }) => (jsx("div", { className: "h-full w-full overflow-auto rounded-lg border border-border bg-card", children: jsxs(Table, { children: [jsx(TableHeader, { className: "sticky top-0 z-10 bg-muted/40", children: jsxs(TableRow, { className: "hover:bg-transparent", children: [enableSelection && (jsx(TableHead, { className: "w-10", children: jsx(SquareSkeleton, { width: 16, height: 16, rounded: "sm" }) })), Array.from({ length: columnCount }).map((_, i) => (jsx(TableHead, { children: jsx(SquareSkeleton, { width: "45%", height: 10, rounded: "full" }) }, i)))] }) }), jsx(TableBody, { children: Array.from({ length: rowCount }).map((_, rowIndex) => (jsxs(TableRow, { className: "hover:bg-transparent", children: [enableSelection && (jsx(TableCell, { children: jsx(SquareSkeleton, { width: 16, height: 16, rounded: "sm" }) })), Array.from({ length: columnCount }).map((_, colIndex) => (jsx(TableCell, { children: jsx(SquareSkeleton, { width: cellWidth(colIndex, columnCount), height: 12, rounded: "full" }) }, colIndex)))] }, rowIndex))) })] }) }));
57112
+
57113
+ /**
57114
+ * Gives a `forwardRef` component its own readable ref to the DOM node while
57115
+ * still honouring the ref handed down by the parent.
57116
+ */
57117
+ function useForwardedRef(forwardedRef) {
57118
+ const innerRef = useRef(null);
57119
+ const setRef = useCallback((node) => {
57120
+ innerRef.current = node;
57121
+ if (typeof forwardedRef === 'function') {
57122
+ forwardedRef(node);
57123
+ }
57124
+ else if (forwardedRef) {
57125
+ forwardedRef.current = node;
57126
+ }
57127
+ }, [forwardedRef]);
57128
+ return [innerRef, setRef];
57129
+ }
56992
57130
 
56993
57131
  const MOBILE_MAX = 767;
56994
57132
  const TABLET_MAX = 1025;
@@ -57012,12 +57150,67 @@ function useIsTablet() {
57012
57150
  return useMediaQuery(`(min-width: ${MOBILE_MAX + 1}px) and (max-width: ${TABLET_MAX}px)`);
57013
57151
  }
57014
57152
 
57153
+ // Sub-pixel layout rounding makes scrollWidth exceed clientWidth by a hair on
57154
+ // labels that are not actually clipped.
57155
+ const OVERFLOW_TOLERANCE_PX = 1;
57156
+ function findClippedLabel(root) {
57157
+ const spans = root.querySelectorAll(':scope > span');
57158
+ for (const span of Array.from(spans)) {
57159
+ if (span.scrollWidth > span.clientWidth + OVERFLOW_TOLERANCE_PX) {
57160
+ return span;
57161
+ }
57162
+ }
57163
+ return null;
57164
+ }
57165
+ /**
57166
+ * Returns the full text of the first direct-child `<span>` of `ref` that is
57167
+ * clipped by its container (i.e. showing an ellipsis), else `null` — so callers
57168
+ * can surface a tooltip only when the label is actually unreadable.
57169
+ *
57170
+ * Re-measures on element resize (sidebar expand/collapse, window resize) and on
57171
+ * label text changes.
57172
+ */
57173
+ function useTruncatedText(ref) {
57174
+ const [text, setText] = useState(null);
57175
+ useEffect(() => {
57176
+ const el = ref.current;
57177
+ if (!el)
57178
+ return;
57179
+ let frame = 0;
57180
+ const measure = () => {
57181
+ const label = findClippedLabel(el);
57182
+ setText(label?.textContent?.trim() || null);
57183
+ };
57184
+ const schedule = () => {
57185
+ cancelAnimationFrame(frame);
57186
+ frame = requestAnimationFrame(measure);
57187
+ };
57188
+ schedule();
57189
+ const resizeObserver = new ResizeObserver(schedule);
57190
+ resizeObserver.observe(el);
57191
+ const mutationObserver = new MutationObserver(schedule);
57192
+ mutationObserver.observe(el, {
57193
+ characterData: true,
57194
+ childList: true,
57195
+ subtree: true,
57196
+ });
57197
+ return () => {
57198
+ cancelAnimationFrame(frame);
57199
+ resizeObserver.disconnect();
57200
+ mutationObserver.disconnect();
57201
+ };
57202
+ }, [ref]);
57203
+ return text;
57204
+ }
57205
+
57015
57206
  const SIDEBAR_COOKIE_NAME = 'sidebar_state';
57016
57207
  const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
57017
57208
  const SIDEBAR_WIDTH = '16rem';
57018
57209
  const SIDEBAR_WIDTH_MOBILE = '18rem';
57019
57210
  const SIDEBAR_WIDTH_ICON = '68px';
57020
57211
  const SIDEBAR_KEYBOARD_SHORTCUT = 'b';
57212
+ /** Tooltip surfacing a clipped label: wraps instead of being clipped itself. */
57213
+ const TRUNCATION_TOOLTIP_CLASS = 'max-w-[280px] whitespace-normal break-words';
57021
57214
  const SidebarContext = React.createContext(null);
57022
57215
  function useSidebar() {
57023
57216
  const context = React.useContext(SidebarContext);
@@ -57140,7 +57333,7 @@ const SidebarMenu = React.forwardRef(({ className, ...props }, ref) => (jsx("ul"
57140
57333
  SidebarMenu.displayName = 'SidebarMenu';
57141
57334
  const SidebarMenuItem = React.forwardRef(({ className, ...props }, ref) => (jsx("li", { ref: ref, "data-sidebar": "menu-item", className: cn('group/menu-item relative', className), ...props })));
57142
57335
  SidebarMenuItem.displayName = 'SidebarMenuItem';
57143
- const sidebarMenuButtonVariants = cva('peer/menu-button relative flex h-9 w-full cursor-pointer items-center gap-2 overflow-hidden rounded-sm pl-1 pr-1 py-1.5 text-left text-sm text-sidebar-foreground outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-active-bg data-[active=true]:font-medium data-[active=true]:text-sidebar-foreground data-[state=open]:hover:bg-sidebar-active-bg data-[state=open]:hover:text-sidebar-foreground group-data-[collapsible=icon]:!size-9 group-data-[collapsible=icon]:!p-2 group-data-[collapsible=icon]:justify-center group-data-[collapsible=icon]:[&>span]:hidden [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0', {
57336
+ const sidebarMenuButtonVariants = cva('peer/menu-button relative flex h-9 w-full cursor-pointer items-center gap-2 overflow-hidden rounded-sm px-2.5 py-1.5 text-left text-sm text-sidebar-foreground outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-active-bg data-[active=true]:text-sidebar-foreground data-[state=open]:hover:bg-sidebar-active-bg data-[state=open]:hover:text-sidebar-foreground group-data-[collapsible=icon]:!size-9 group-data-[collapsible=icon]:!p-2 group-data-[collapsible=icon]:justify-center group-data-[collapsible=icon]:[&>span]:hidden [&>span]:truncate [&>svg]:size-4 [&>svg]:shrink-0', {
57144
57337
  variants: {
57145
57338
  variant: {
57146
57339
  default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',
@@ -57160,12 +57353,15 @@ const sidebarMenuButtonVariants = cva('peer/menu-button relative flex h-9 w-full
57160
57353
  const SidebarMenuButton = React.forwardRef(({ asChild = false, isActive = false, variant = 'default', size = 'default', tooltip, className, ...props }, ref) => {
57161
57354
  const Comp = asChild ? Slot : 'button';
57162
57355
  const { state } = useSidebar();
57163
- const button = (jsx(Comp, { ref: ref, "data-sidebar": "menu-button", "data-size": size, "data-active": isActive, className: cn(sidebarMenuButtonVariants({ variant, size }), className), ...props }));
57164
- if (!tooltip || state !== 'collapsed') {
57165
- return button;
57166
- }
57167
- const tooltipProps = typeof tooltip === 'string' ? { children: tooltip } : tooltip;
57168
- return (jsxs(Tooltip, { children: [jsx(TooltipTrigger, { asChild: true, children: button }), jsx(TooltipContent, { side: "right", align: "center", ...tooltipProps })] }));
57356
+ const [innerRef, setRef] = useForwardedRef(ref);
57357
+ const truncatedText = useTruncatedText(innerRef);
57358
+ const button = (jsx(Comp, { ref: setRef, "data-sidebar": "menu-button", "data-size": size, "data-active": isActive, className: cn(sidebarMenuButtonVariants({ variant, size }), className), ...props }));
57359
+ // Tooltip when collapsed (icon-only) OR when the expanded label is clipped.
57360
+ // The Tooltip structure stays mounted and only the content is conditional,
57361
+ // so toggling it never remounts the button.
57362
+ const collapsed = !!tooltip && state === 'collapsed';
57363
+ const collapsedProps = typeof tooltip === 'string' ? { children: tooltip } : tooltip;
57364
+ return (jsxs(Tooltip, { children: [jsx(TooltipTrigger, { asChild: true, children: button }), collapsed ? (jsx(TooltipContent, { side: "right", align: "center", className: TRUNCATION_TOOLTIP_CLASS, ...collapsedProps })) : truncatedText ? (jsx(TooltipContent, { side: "right", align: "center", className: TRUNCATION_TOOLTIP_CLASS, children: truncatedText })) : null] }));
57169
57365
  });
57170
57366
  SidebarMenuButton.displayName = 'SidebarMenuButton';
57171
57367
  const SidebarMenuAction = React.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
@@ -57174,7 +57370,7 @@ const SidebarMenuAction = React.forwardRef(({ className, asChild = false, showOn
57174
57370
  'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0', className), ...props }));
57175
57371
  });
57176
57372
  SidebarMenuAction.displayName = 'SidebarMenuAction';
57177
- const SidebarMenuBadge = React.forwardRef(({ className, ...props }, ref) => (jsx("div", { ref: ref, "data-sidebar": "menu-badge", className: cn('pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground', 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground', 'peer-data-[size=sm]/menu-button:top-1', 'peer-data-[size=default]/menu-button:top-1.5', 'peer-data-[size=lg]/menu-button:top-2.5', 'group-data-[collapsible=icon]:hidden', className), ...props })));
57373
+ const SidebarMenuBadge = React.forwardRef(({ className, ...props }, ref) => (jsx("div", { ref: ref, "data-sidebar": "menu-badge", className: cn('pointer-events-none absolute right-1 top-1/2 flex h-5 min-w-5 -translate-y-1/2 select-none items-center justify-center rounded-md px-1 text-xs font-medium leading-none tabular-nums text-sidebar-foreground', 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground', 'group-data-[collapsible=icon]:hidden', className), ...props })));
57178
57374
  SidebarMenuBadge.displayName = 'SidebarMenuBadge';
57179
57375
  const SidebarMenuSkeleton = React.forwardRef(({ className, showIcon = false, ...props }, ref) => {
57180
57376
  const width = React.useMemo(() => `${Math.floor(Math.random() * 40) + 50}%`, []);
@@ -57187,7 +57383,11 @@ const SidebarMenuSubItem = React.forwardRef(({ className, ...props }, ref) => (j
57187
57383
  SidebarMenuSubItem.displayName = 'SidebarMenuSubItem';
57188
57384
  const SidebarMenuSubButton = React.forwardRef(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {
57189
57385
  const Comp = asChild ? Slot : 'a';
57190
- return (jsx(Comp, { ref: ref, "data-sidebar": "menu-sub-button", "data-size": size, "data-active": isActive, className: cn('relative flex h-9 w-full min-w-0 items-center gap-2 overflow-hidden rounded-sm pl-3 pr-1 py-1.5 text-left text-sidebar-foreground/80 outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0', 'data-[active=true]:bg-sidebar-primary data-[active=true]:text-sidebar-primary-foreground data-[active=true]:font-medium', size === 'sm' && 'text-xs', size === 'md' && 'text-sm', 'group-data-[collapsible=icon]:hidden', className), ...props }));
57386
+ const [innerRef, setRef] = useForwardedRef(ref);
57387
+ const truncatedText = useTruncatedText(innerRef);
57388
+ const button = (jsx(Comp, { ref: setRef, "data-sidebar": "menu-sub-button", "data-size": size, "data-active": isActive, className: cn('relative flex h-9 w-full min-w-0 cursor-pointer items-center gap-2 overflow-hidden rounded-sm pl-3 pr-1 py-1.5 text-left text-sidebar-foreground/80 outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span]:truncate [&>svg]:size-4 [&>svg]:shrink-0', 'data-[active=true]:bg-sidebar-primary data-[active=true]:text-sidebar-primary-foreground', size === 'sm' && 'text-xs', size === 'md' && 'text-sm', 'group-data-[collapsible=icon]:hidden', className), ...props }));
57389
+ // Keep the Tooltip mounted; render the content only when the label is clipped.
57390
+ return (jsxs(Tooltip, { children: [jsx(TooltipTrigger, { asChild: true, children: button }), truncatedText && (jsx(TooltipContent, { side: "right", align: "center", className: TRUNCATION_TOOLTIP_CLASS, children: truncatedText }))] }));
57191
57391
  });
57192
57392
  SidebarMenuSubButton.displayName = 'SidebarMenuSubButton';
57193
57393
  const Collapsible = CollapsiblePrimitive.Root;
@@ -64576,6 +64776,9 @@ m(x, "xOrds", ["e", "w"]), m(x, "yOrds", ["n", "s"]), m(x, "xyOrds", ["nw", "ne"
64576
64776
  });
64577
64777
  let S = x;
64578
64778
 
64779
+ var css_248z = "@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size:12px;--rc-drag-handle-mobile-size:24px;--rc-drag-handle-bg-colour:rgba(0,0,0,.2);--rc-drag-bar-size:6px;--rc-border-color:hsla(0,0%,100%,.7);--rc-focus-color:#08f}.ReactCrop{cursor:crosshair;display:inline-block;max-width:100%;position:relative}.ReactCrop *,.ReactCrop :after,.ReactCrop :before{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{max-height:inherit;overflow:hidden}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-height:inherit;max-width:100%}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{bottom:0;height:calc(100% + .5px);left:0;pointer-events:none;position:absolute;right:0;top:0;width:calc(100% + .5px)}.ReactCrop__crop-selection{cursor:move;left:0;position:absolute;top:0;transform:translateZ(0)}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{border:1px solid var(--rc-border-color);bottom:-1px;content:\"\";left:-1px;opacity:.3;pointer-events:none;position:absolute;right:-1px;top:-1px}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed #fff}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){animation:marching-ants 1s;animation-iteration-count:infinite;animation-play-state:running;animation-timing-function:linear;background-image:linear-gradient(90deg,#fff 50%,#444 0),linear-gradient(90deg,#fff 50%,#444 0),linear-gradient(180deg,#fff 50%,#444 0),linear-gradient(180deg,#fff 50%,#444 0);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:10px 1px,10px 1px,1px 10px,1px 10px;color:#fff}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-hz:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-vt:before{background-color:#fff6;content:\"\";display:block;position:absolute}.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-vt:before{height:100%;width:1px}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:after,.ReactCrop__rule-of-thirds-hz:before{height:1px;width:100%}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color);height:var(--rc-drag-handle-size);position:absolute;width:var(--rc-drag-handle-size)}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{cursor:nw-resize;left:0;top:0;transform:translate(-50%,-50%)}.ReactCrop .ord-n{cursor:n-resize;left:50%;top:0;transform:translate(-50%,-50%)}.ReactCrop .ord-ne{cursor:ne-resize;top:0}.ReactCrop .ord-e,.ReactCrop .ord-ne{right:0;transform:translate(50%,-50%)}.ReactCrop .ord-e{cursor:e-resize;top:50%}.ReactCrop .ord-se{bottom:0;cursor:se-resize;right:0;transform:translate(50%,50%)}.ReactCrop .ord-s{cursor:s-resize;left:50%}.ReactCrop .ord-s,.ReactCrop .ord-sw{bottom:0;transform:translate(-50%,50%)}.ReactCrop .ord-sw{cursor:sw-resize;left:0}.ReactCrop .ord-w{cursor:w-resize;left:0;top:50%;transform:translate(-50%,-50%)}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{height:var(--rc-drag-bar-size);left:0;top:0;transform:translateY(-50%);width:100%}.ReactCrop__drag-bar.ord-e{height:100%;right:0;top:0;transform:translate(50%);width:var(--rc-drag-bar-size)}.ReactCrop__drag-bar.ord-s{bottom:0;height:var(--rc-drag-bar-size);left:0;transform:translateY(50%);width:100%}.ReactCrop__drag-bar.ord-w{height:100%;left:0;top:0;transform:translate(-50%);width:var(--rc-drag-bar-size)}.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w,.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle{display:none}@media (pointer:coarse){.ReactCrop .ord-e,.ReactCrop .ord-n,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{height:var(--rc-drag-handle-mobile-size);width:var(--rc-drag-handle-mobile-size)}}";
64780
+ styleInject(css_248z);
64781
+
64579
64782
  const ASPECTS = [
64580
64783
  {
64581
64784
  key: 'freeform',
@@ -65070,7 +65273,7 @@ const navbarRootVariants = cva([
65070
65273
  ].join(' '));
65071
65274
  const navbarTitleVariants = cva('shrink-0 min-w-0');
65072
65275
  /** Breadcrumb + single-line page title in the header (Figma: 16px / medium / 24px line-height). */
65073
- const navbarBreadcrumbTextVariants = cva('truncate text-base font-medium leading-6 transition-colors');
65276
+ const navbarBreadcrumbTextVariants = cva('truncate text-base font-normal leading-6 transition-colors');
65074
65277
  const navbarTitleHeadingVariants = cva('truncate text-base font-medium leading-6 text-foreground');
65075
65278
  const navbarActionsVariants = cva('flex items-center', {
65076
65279
  variants: {
@@ -65257,23 +65460,29 @@ function getInitials(name) {
65257
65460
  }
65258
65461
 
65259
65462
  const DEFAULT_SIDEBAR_WIDTH = '248px';
65463
+ /** Green pill marking the active top-level item. Rendered in-flow as the row's
65464
+ * first flex child (hidden when the sidebar collapses to icons). */
65465
+ const ActiveRail = () => (jsx("span", { "aria-hidden": "true", className: "pointer-events-none h-9 w-[4px] shrink-0 rounded-full bg-sidebar-primary group-data-[collapsible=icon]:hidden" }));
65260
65466
  const BrandHeader = ({ brand }) => {
65261
- const { state, isMobile, openMobile } = useSidebar();
65467
+ const { state, isMobile, openMobile, toggleSidebar } = useSidebar();
65262
65468
  const expanded = state === 'expanded' || (isMobile && openMobile);
65263
65469
  if (!expanded) {
65264
- return (jsx("div", { className: "flex items-center justify-center px-1 py-1", children: brand.compact }));
65470
+ return (jsx("div", { className: "flex items-center justify-center px-1 py-1", children: jsx("button", { type: "button", onClick: toggleSidebar, "aria-label": "Expand sidebar", className: "flex cursor-pointer items-center justify-center rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: brand.compact }) }));
65265
65471
  }
65266
- return (jsxs("div", { className: "flex items-center justify-between gap-2 px-1 py-1", children: [jsx("div", { className: "flex min-w-0 items-center gap-2", children: brand.full }), jsx(SidebarTrigger, { className: "h-7 w-7" })] }));
65472
+ return (jsxs("div", { className: "flex items-center justify-between gap-2 px-1 py-1", children: [jsx("div", { className: "flex min-w-0 items-center gap-2", children: brand.full }), jsx("button", { type: "button", onClick: toggleSidebar, "aria-label": "Collapse sidebar", className: "inline-flex h-7 w-7 shrink-0 cursor-pointer items-center justify-center rounded-md text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: jsx(PanelLeftClose, { size: 18 }) })] }));
65267
65473
  };
65268
65474
  const NavLeaf = ({ item, currentPath, onNavigate }) => {
65269
65475
  const Icon = item.icon;
65270
- return (jsx(SidebarMenuItem, { children: jsxs(SidebarMenuButton, { isActive: isPathActive(currentPath, item.path), tooltip: item.label, onClick: () => item.path && onNavigate(item.path), children: [Icon && jsx(Icon, {}), jsx("span", { children: item.label }), item.badge != null && jsx("span", { className: "ml-auto", children: item.badge })] }) }));
65476
+ const active = isPathActive(currentPath, item.path);
65477
+ return (jsxs(SidebarMenuItem, { className: cn(active && 'flex items-center gap-1.5 group-data-[collapsible=icon]:block'), children: [active && jsx(ActiveRail, {}), jsxs(SidebarMenuButton, { isActive: active, tooltip: item.label, onClick: () => item.path && onNavigate(item.path), className: cn(active && 'min-w-0 flex-1 group-data-[collapsible=icon]:flex-none'), children: [Icon && jsx(Icon, {}), jsx("span", { children: item.label })] }), item.badge != null && (jsx(SidebarMenuBadge, { className: "h-5 w-5 min-w-5 rounded-full border border-primary bg-primary/10 p-0 text-primary", children: item.badge }))] }));
65271
65478
  };
65272
65479
  const NavParent = ({ item, currentPath, onNavigate }) => {
65273
65480
  const Icon = item.icon;
65274
65481
  const children = (item.children ?? []).filter((s) => s.visible !== false);
65275
65482
  const parentActive = children.some((s) => isPathActive(currentPath, s.path));
65276
- return (jsx(Collapsible, { asChild: true, defaultOpen: parentActive, children: jsxs(SidebarMenuItem, { className: "group/collapsible", children: [jsx(CollapsibleTrigger, { asChild: true, children: jsxs(SidebarMenuButton, { isActive: parentActive, tooltip: item.label, children: [Icon && jsx(Icon, {}), jsx("span", { children: item.label }), jsx(ChevronRight, { className: "ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90" })] }) }), jsx(CollapsibleContent, { children: jsx(SidebarMenuSub, { children: children.map((sub) => {
65483
+ return (jsx(Collapsible, { asChild: true, defaultOpen: parentActive, children: jsxs(SidebarMenuItem, { className: "group/collapsible", children: [jsxs("div", { className: cn(parentActive &&
65484
+ 'flex items-center gap-1.5 group-data-[collapsible=icon]:block'), children: [parentActive && jsx(ActiveRail, {}), jsx(CollapsibleTrigger, { asChild: true, children: jsxs(SidebarMenuButton, { isActive: parentActive, tooltip: item.label, className: cn(parentActive &&
65485
+ 'min-w-0 flex-1 group-data-[collapsible=icon]:flex-none'), children: [Icon && jsx(Icon, {}), jsx("span", { children: item.label }), jsx(ChevronRight, { className: "ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90 group-data-[collapsible=icon]:hidden" })] }) })] }), jsx(CollapsibleContent, { children: jsx(SidebarMenuSub, { children: children.map((sub) => {
65277
65486
  const SubIcon = sub.icon;
65278
65487
  return (jsx(SidebarMenuSubItem, { children: jsxs(SidebarMenuSubButton, { isActive: isPathActive(currentPath, sub.path), onClick: () => onNavigate(sub.path), children: [SubIcon && jsx(SubIcon, {}), jsx("span", { children: sub.label })] }) }, sub.path));
65279
65488
  }) }) })] }) }));
@@ -67308,5 +67517,5 @@ var RichTextAreaImpl = /*#__PURE__*/Object.freeze({
67308
67517
  RichTextarea: RichTextarea
67309
67518
  });
67310
67519
 
67311
- export { ActionBadge, ActionButtonWithTooltip, AdvancedSearchDrawer, Alert, ApiComboBox, AppSidebar, AuditEntryCard, AuditHistoryPanel, AuditTimeline, AuditTimelineShimmer, Badge, BadgeType, BusinessContactStatusFilter, Button, CUSTOMER_AUDIT_CONFIG, CertificateRowList, ChangePill, Collapsible, CollapsibleCard, CollapsibleContent, CollapsibleTrigger, ConfirmDialog, ContactTypeFilter, CopyButton, CreateFormPageHeader, CreateFormPageShell, CurrencyDisplayTabs, CurrencyInput, CurrencyToggle, CustomCombobox, CustomTable, CustomizeColumnsDrawer, DIAMOND_AUDIT_CONFIG, DashboardShell, DataEditableTable, DataTable, DateInput, DetailChip, DetailPageLayout, DetailPageSkeleton, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EntityHeader, Field, FieldSkeleton, FileUploader, FilterMultiSelect, FilterSelect, FormSectionCard, FormSectionCardSkeleton, GEM_AUDIT_CONFIG, HistoryEntryCard, HistoryTimeline, HistoryTimelineShimmer, INVOICE_AUDIT_CONFIG, IconButton, IdHyperlinkText, InfoBanner, InventoryComboBox, InventoryItemCard, InventoryItemRow, InvoiceComboBox, KYCStatusFilter, KeyValueGrid, LAYOUT_AUDIT_CONFIG, LabeledToggle, MEMO_IN_AUDIT_CONFIG, MEMO_OUT_AUDIT_CONFIG, MediaGallery, MemoInComboBox, MetricCard, MetricRow, MetricTile, Modal, MoreInfoPanel, MoreInfoTrigger, Navbar, NavbarActions, NavbarAvatar, NavbarIconButton, NavbarSearch, NavbarTitle, NumberInput, NumberedStepCard, OtpInput, OwnershipFilter, OwnershipSplitCard, PROFORMA_AUDIT_CONFIG, PageHeader, PageTabs, Pagination, PartnerShareCard, PriceInput, Protected, PurchaseOrderComboBox, QUOTATION_AUDIT_CONFIG, RadioCardGroup, ReadMoreText, RefreshButton, RichTextarea$1 as RichTextarea, SEARCHABLE_SELECT_PAGE_SIZE, SafeImage, SearchBox, SearchInput, SearchableSelect, SectionCard, SectionIcon, SegmentedControl, ShareDialog, ShareMenu, ShimmerTable, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SlideOut, SlideOutClose, SlideOutContent, SlideOutDescription, SlideOutHeader, SlideOutOverlay, SlideOutPortal, SlideOutTitle, SlideOutTrigger, Slider, SpecList, Spinner, SquareSkeleton, StatusBadge$1 as StatusBadge, StatusFilter, Stepper, StockTypeFilter, TablePagination, TableSkeleton, Tabs, TabsContent, TabsList, TabsTrigger, TagsInput, TextHyperlink, ToggleSwitch, TruncateTooltip, WarehouseComboBox, WarehouseFilter, ZoomSplitViewer, badgeVariants, buildBulkShareTitle, buildInventoryPublicUrl, buildInventoryRowProps, buildInventoryShareTitle, buildWhatsappUrl, buttonVariants, cn, createVideoMediaItem, dropdownMenuItemDestructiveClass, formatFileSize, generateActionDescription, generateTitle, getBadgeTypeForStatus, getChangePills, getInitials, iconButtonVariants, isPathActive, notify, renderBadge, useAuditShowMore, useBadge, useButton, useDropdownMenu, useNavbar, useSidebar, videoThumbnailSrc };
67520
+ export { ActionBadge, ActionButtonWithTooltip, AdvancedSearchDrawer, Alert, ApiComboBox, AppSidebar, AuditEntryCard, AuditHistoryPanel, AuditTimeline, AuditTimelineShimmer, Badge, BadgeType, BusinessContactStatusFilter, Button, CUSTOMER_AUDIT_CONFIG, CertificateRowList, ChangePill, Collapsible, CollapsibleCard, CollapsibleContent, CollapsibleTrigger, ConfirmDialog, ContactTypeFilter, CopyButton, CreateFormPageHeader, CreateFormPageShell, CurrencyDisplayTabs, CurrencyInput, CurrencyToggle, CustomCombobox, CustomTable, CustomizeColumnsDrawer, DIAMOND_AUDIT_CONFIG, DashboardShell, DataEditableTable, DataTable, DateInput, DetailChip, DetailPageLayout, DetailPageSkeleton, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EntityHeader, Field, FieldSkeleton, FileUploader, FilterMultiSelect, FilterSelect, FormSectionCard, FormSectionCardSkeleton, GEM_AUDIT_CONFIG, HistoryEntryCard, HistoryTimeline, HistoryTimelineShimmer, INVOICE_AUDIT_CONFIG, IconButton, IdHyperlinkText, InfoBanner, InventoryComboBox, InventoryItemCard, InventoryItemRow, InvoiceComboBox, KYCStatusFilter, KeyValueGrid, LAYOUT_AUDIT_CONFIG, LabeledToggle, MEMO_IN_AUDIT_CONFIG, MEMO_OUT_AUDIT_CONFIG, MediaGallery, MemoInComboBox, MetricCard, MetricRow, MetricTile, Modal, MoreInfoPanel, MoreInfoTrigger, Navbar, NavbarActions, NavbarAvatar, NavbarIconButton, NavbarSearch, NavbarTitle, NumberInput, NumberedStepCard, OtpInput, OwnershipFilter, OwnershipSplitCard, PROFORMA_AUDIT_CONFIG, PageHeader, PageTabs, Pagination, PaginationSelect, PartnerShareCard, PriceInput, Protected, PurchaseOrderComboBox, QUOTATION_AUDIT_CONFIG, RadioCardGroup, ReadMoreText, RefreshButton, RichTextarea$1 as RichTextarea, SEARCHABLE_SELECT_PAGE_SIZE, SafeImage, SearchBox, SearchInput, SearchableSelect, SectionCard, SectionIcon, SegmentedControl, ShareDialog, ShareMenu, ShimmerTable, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SlideOut, SlideOutClose, SlideOutContent, SlideOutDescription, SlideOutHeader, SlideOutOverlay, SlideOutPortal, SlideOutTitle, SlideOutTrigger, Slider, SpecList, Spinner, SquareSkeleton, StatusBadge$1 as StatusBadge, StatusFilter, Stepper, StockTypeFilter, TablePagination, TableSkeleton, Tabs, TabsContent, TabsList, TabsTrigger, TagsInput, TextHyperlink, ToggleSwitch, TruncateTooltip, WarehouseComboBox, WarehouseFilter, ZoomSplitViewer, badgeVariants, buildBulkShareTitle, buildInventoryPublicUrl, buildInventoryRowProps, buildInventoryShareTitle, buildWhatsappUrl, buttonVariants, cn, createVideoMediaItem, dropdownMenuItemDestructiveClass, formatFileSize, generateActionDescription, generateTitle, getBadgeTypeForStatus, getChangePills, getInitials, iconButtonVariants, isPathActive, notify, renderBadge, useAuditShowMore, useBadge, useButton, useDropdownMenu, useNavbar, useSidebar, videoThumbnailSrc };
67312
67521
  //# sourceMappingURL=index.esm.js.map