@caratlogic/design-system 0.1.13 → 0.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/components/molecules/CustomField/CustomField.types.d.ts +28 -0
- package/dist/components/molecules/CustomField/CustomField.types.d.ts.map +1 -0
- package/dist/components/molecules/CustomField/CustomFieldInput.d.ts +43 -0
- package/dist/components/molecules/CustomField/CustomFieldInput.d.ts.map +1 -0
- package/dist/components/molecules/CustomField/CustomFieldValue.d.ts +17 -0
- package/dist/components/molecules/CustomField/CustomFieldValue.d.ts.map +1 -0
- package/dist/components/molecules/CustomField/fieldTypeIcon.d.ts +4 -0
- package/dist/components/molecules/CustomField/fieldTypeIcon.d.ts.map +1 -0
- package/dist/components/molecules/CustomField/fieldValueHelpers.d.ts +10 -0
- package/dist/components/molecules/CustomField/fieldValueHelpers.d.ts.map +1 -0
- package/dist/components/molecules/CustomField/index.d.ts +8 -0
- package/dist/components/molecules/CustomField/index.d.ts.map +1 -0
- package/dist/components/organisms/ActivityFeed/ActivityFeed.accessibility.d.ts +10 -0
- package/dist/components/organisms/ActivityFeed/ActivityFeed.accessibility.d.ts.map +1 -0
- package/dist/components/organisms/ActivityFeed/ActivityFeed.components.d.ts +22 -0
- package/dist/components/organisms/ActivityFeed/ActivityFeed.components.d.ts.map +1 -0
- package/dist/components/organisms/ActivityFeed/ActivityFeed.constants.d.ts +19 -0
- package/dist/components/organisms/ActivityFeed/ActivityFeed.constants.d.ts.map +1 -0
- package/dist/components/organisms/ActivityFeed/ActivityFeed.d.ts +11 -0
- package/dist/components/organisms/ActivityFeed/ActivityFeed.d.ts.map +1 -0
- package/dist/components/organisms/ActivityFeed/ActivityFeed.types.d.ts +102 -0
- package/dist/components/organisms/ActivityFeed/ActivityFeed.types.d.ts.map +1 -0
- package/dist/components/organisms/ActivityFeed/ActivityFeed.utils.d.ts +12 -0
- package/dist/components/organisms/ActivityFeed/ActivityFeed.utils.d.ts.map +1 -0
- package/dist/components/organisms/ActivityFeed/index.d.ts +4 -0
- package/dist/components/organisms/ActivityFeed/index.d.ts.map +1 -0
- package/dist/index.cjs.js +1031 -354
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +1020 -355
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -2698,12 +2698,27 @@ const createLucideIcon = (iconName, iconNode) => {
|
|
|
2698
2698
|
*/
|
|
2699
2699
|
|
|
2700
2700
|
|
|
2701
|
-
const __iconNode$
|
|
2701
|
+
const __iconNode$1o = [
|
|
2702
|
+
["path", { d: "M15 12H3", key: "6jk70r" }],
|
|
2703
|
+
["path", { d: "M17 18H3", key: "1amg6g" }],
|
|
2704
|
+
["path", { d: "M21 6H3", key: "1jwq7v" }]
|
|
2705
|
+
];
|
|
2706
|
+
const AlignLeft = createLucideIcon("align-left", __iconNode$1o);
|
|
2707
|
+
|
|
2708
|
+
/**
|
|
2709
|
+
* @license lucide-react v0.539.0 - ISC
|
|
2710
|
+
*
|
|
2711
|
+
* This source code is licensed under the ISC license.
|
|
2712
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
2713
|
+
*/
|
|
2714
|
+
|
|
2715
|
+
|
|
2716
|
+
const __iconNode$1n = [
|
|
2702
2717
|
["rect", { width: "20", height: "5", x: "2", y: "3", rx: "1", key: "1wp1u1" }],
|
|
2703
2718
|
["path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8", key: "1s80jp" }],
|
|
2704
2719
|
["path", { d: "M10 12h4", key: "a56b0p" }]
|
|
2705
2720
|
];
|
|
2706
|
-
const Archive = createLucideIcon("archive", __iconNode$
|
|
2721
|
+
const Archive = createLucideIcon("archive", __iconNode$1n);
|
|
2707
2722
|
|
|
2708
2723
|
/**
|
|
2709
2724
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2713,11 +2728,11 @@ const Archive = createLucideIcon("archive", __iconNode$18);
|
|
|
2713
2728
|
*/
|
|
2714
2729
|
|
|
2715
2730
|
|
|
2716
|
-
const __iconNode$
|
|
2731
|
+
const __iconNode$1m = [
|
|
2717
2732
|
["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
|
|
2718
2733
|
["path", { d: "M19 12H5", key: "x3x0zl" }]
|
|
2719
2734
|
];
|
|
2720
|
-
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$
|
|
2735
|
+
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$1m);
|
|
2721
2736
|
|
|
2722
2737
|
/**
|
|
2723
2738
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2727,11 +2742,11 @@ const ArrowLeft = createLucideIcon("arrow-left", __iconNode$17);
|
|
|
2727
2742
|
*/
|
|
2728
2743
|
|
|
2729
2744
|
|
|
2730
|
-
const __iconNode$
|
|
2745
|
+
const __iconNode$1l = [
|
|
2731
2746
|
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
2732
2747
|
["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
|
|
2733
2748
|
];
|
|
2734
|
-
const ArrowRight = createLucideIcon("arrow-right", __iconNode$
|
|
2749
|
+
const ArrowRight = createLucideIcon("arrow-right", __iconNode$1l);
|
|
2735
2750
|
|
|
2736
2751
|
/**
|
|
2737
2752
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2741,11 +2756,11 @@ const ArrowRight = createLucideIcon("arrow-right", __iconNode$16);
|
|
|
2741
2756
|
*/
|
|
2742
2757
|
|
|
2743
2758
|
|
|
2744
|
-
const __iconNode$
|
|
2759
|
+
const __iconNode$1k = [
|
|
2745
2760
|
["path", { d: "M4.929 4.929 19.07 19.071", key: "196cmz" }],
|
|
2746
2761
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
|
|
2747
2762
|
];
|
|
2748
|
-
const Ban = createLucideIcon("ban", __iconNode$
|
|
2763
|
+
const Ban = createLucideIcon("ban", __iconNode$1k);
|
|
2749
2764
|
|
|
2750
2765
|
/**
|
|
2751
2766
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2755,7 +2770,7 @@ const Ban = createLucideIcon("ban", __iconNode$15);
|
|
|
2755
2770
|
*/
|
|
2756
2771
|
|
|
2757
2772
|
|
|
2758
|
-
const __iconNode$
|
|
2773
|
+
const __iconNode$1j = [
|
|
2759
2774
|
["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
|
|
2760
2775
|
[
|
|
2761
2776
|
"path",
|
|
@@ -2766,7 +2781,7 @@ const __iconNode$14 = [
|
|
|
2766
2781
|
],
|
|
2767
2782
|
["circle", { cx: "18", cy: "8", r: "3", key: "1g0gzu" }]
|
|
2768
2783
|
];
|
|
2769
|
-
const BellDot = createLucideIcon("bell-dot", __iconNode$
|
|
2784
|
+
const BellDot = createLucideIcon("bell-dot", __iconNode$1j);
|
|
2770
2785
|
|
|
2771
2786
|
/**
|
|
2772
2787
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2776,7 +2791,29 @@ const BellDot = createLucideIcon("bell-dot", __iconNode$14);
|
|
|
2776
2791
|
*/
|
|
2777
2792
|
|
|
2778
2793
|
|
|
2779
|
-
const __iconNode$
|
|
2794
|
+
const __iconNode$1i = [
|
|
2795
|
+
["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
|
|
2796
|
+
["path", { d: "M22 8c0-2.3-.8-4.3-2-6", key: "5bb3ad" }],
|
|
2797
|
+
[
|
|
2798
|
+
"path",
|
|
2799
|
+
{
|
|
2800
|
+
d: "M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",
|
|
2801
|
+
key: "11g9vi"
|
|
2802
|
+
}
|
|
2803
|
+
],
|
|
2804
|
+
["path", { d: "M4 2C2.8 3.7 2 5.7 2 8", key: "tap9e0" }]
|
|
2805
|
+
];
|
|
2806
|
+
const BellRing = createLucideIcon("bell-ring", __iconNode$1i);
|
|
2807
|
+
|
|
2808
|
+
/**
|
|
2809
|
+
* @license lucide-react v0.539.0 - ISC
|
|
2810
|
+
*
|
|
2811
|
+
* This source code is licensed under the ISC license.
|
|
2812
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
2813
|
+
*/
|
|
2814
|
+
|
|
2815
|
+
|
|
2816
|
+
const __iconNode$1h = [
|
|
2780
2817
|
["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
|
|
2781
2818
|
[
|
|
2782
2819
|
"path",
|
|
@@ -2786,7 +2823,7 @@ const __iconNode$13 = [
|
|
|
2786
2823
|
}
|
|
2787
2824
|
]
|
|
2788
2825
|
];
|
|
2789
|
-
const Bell = createLucideIcon("bell", __iconNode$
|
|
2826
|
+
const Bell = createLucideIcon("bell", __iconNode$1h);
|
|
2790
2827
|
|
|
2791
2828
|
/**
|
|
2792
2829
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2796,13 +2833,13 @@ const Bell = createLucideIcon("bell", __iconNode$13);
|
|
|
2796
2833
|
*/
|
|
2797
2834
|
|
|
2798
2835
|
|
|
2799
|
-
const __iconNode$
|
|
2836
|
+
const __iconNode$1g = [
|
|
2800
2837
|
[
|
|
2801
2838
|
"path",
|
|
2802
2839
|
{ 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" }
|
|
2803
2840
|
]
|
|
2804
2841
|
];
|
|
2805
|
-
const Bold$1 = createLucideIcon("bold", __iconNode$
|
|
2842
|
+
const Bold$1 = createLucideIcon("bold", __iconNode$1g);
|
|
2806
2843
|
|
|
2807
2844
|
/**
|
|
2808
2845
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2812,7 +2849,7 @@ const Bold$1 = createLucideIcon("bold", __iconNode$12);
|
|
|
2812
2849
|
*/
|
|
2813
2850
|
|
|
2814
2851
|
|
|
2815
|
-
const __iconNode$
|
|
2852
|
+
const __iconNode$1f = [
|
|
2816
2853
|
["path", { d: "M8 2v4", key: "1cmpym" }],
|
|
2817
2854
|
["path", { d: "M16 2v4", key: "4m81vk" }],
|
|
2818
2855
|
["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
|
|
@@ -2824,7 +2861,7 @@ const __iconNode$11 = [
|
|
|
2824
2861
|
["path", { d: "M12 18h.01", key: "mhygvu" }],
|
|
2825
2862
|
["path", { d: "M16 18h.01", key: "kzsmim" }]
|
|
2826
2863
|
];
|
|
2827
|
-
const CalendarDays = createLucideIcon("calendar-days", __iconNode$
|
|
2864
|
+
const CalendarDays = createLucideIcon("calendar-days", __iconNode$1f);
|
|
2828
2865
|
|
|
2829
2866
|
/**
|
|
2830
2867
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2834,13 +2871,13 @@ const CalendarDays = createLucideIcon("calendar-days", __iconNode$11);
|
|
|
2834
2871
|
*/
|
|
2835
2872
|
|
|
2836
2873
|
|
|
2837
|
-
const __iconNode$
|
|
2874
|
+
const __iconNode$1e = [
|
|
2838
2875
|
["path", { d: "M8 2v4", key: "1cmpym" }],
|
|
2839
2876
|
["path", { d: "M16 2v4", key: "4m81vk" }],
|
|
2840
2877
|
["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
|
|
2841
2878
|
["path", { d: "M3 10h18", key: "8toen8" }]
|
|
2842
2879
|
];
|
|
2843
|
-
const Calendar$1 = createLucideIcon("calendar", __iconNode$
|
|
2880
|
+
const Calendar$1 = createLucideIcon("calendar", __iconNode$1e);
|
|
2844
2881
|
|
|
2845
2882
|
/**
|
|
2846
2883
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2850,11 +2887,11 @@ const Calendar$1 = createLucideIcon("calendar", __iconNode$10);
|
|
|
2850
2887
|
*/
|
|
2851
2888
|
|
|
2852
2889
|
|
|
2853
|
-
const __iconNode
|
|
2890
|
+
const __iconNode$1d = [
|
|
2854
2891
|
["path", { d: "M18 6 7 17l-5-5", key: "116fxf" }],
|
|
2855
2892
|
["path", { d: "m22 10-7.5 7.5L13 16", key: "ke71qq" }]
|
|
2856
2893
|
];
|
|
2857
|
-
const CheckCheck = createLucideIcon("check-check", __iconNode
|
|
2894
|
+
const CheckCheck = createLucideIcon("check-check", __iconNode$1d);
|
|
2858
2895
|
|
|
2859
2896
|
/**
|
|
2860
2897
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2864,8 +2901,8 @@ const CheckCheck = createLucideIcon("check-check", __iconNode$$);
|
|
|
2864
2901
|
*/
|
|
2865
2902
|
|
|
2866
2903
|
|
|
2867
|
-
const __iconNode$
|
|
2868
|
-
const Check = createLucideIcon("check", __iconNode$
|
|
2904
|
+
const __iconNode$1c = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
|
|
2905
|
+
const Check = createLucideIcon("check", __iconNode$1c);
|
|
2869
2906
|
|
|
2870
2907
|
/**
|
|
2871
2908
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2875,8 +2912,8 @@ const Check = createLucideIcon("check", __iconNode$_);
|
|
|
2875
2912
|
*/
|
|
2876
2913
|
|
|
2877
2914
|
|
|
2878
|
-
const __iconNode$
|
|
2879
|
-
const ChevronDown = createLucideIcon("chevron-down", __iconNode$
|
|
2915
|
+
const __iconNode$1b = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
2916
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$1b);
|
|
2880
2917
|
|
|
2881
2918
|
/**
|
|
2882
2919
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2886,8 +2923,8 @@ const ChevronDown = createLucideIcon("chevron-down", __iconNode$Z);
|
|
|
2886
2923
|
*/
|
|
2887
2924
|
|
|
2888
2925
|
|
|
2889
|
-
const __iconNode$
|
|
2890
|
-
const ChevronLeft = createLucideIcon("chevron-left", __iconNode$
|
|
2926
|
+
const __iconNode$1a = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
|
|
2927
|
+
const ChevronLeft = createLucideIcon("chevron-left", __iconNode$1a);
|
|
2891
2928
|
|
|
2892
2929
|
/**
|
|
2893
2930
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2897,8 +2934,8 @@ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$Y);
|
|
|
2897
2934
|
*/
|
|
2898
2935
|
|
|
2899
2936
|
|
|
2900
|
-
const __iconNode$
|
|
2901
|
-
const ChevronRight = createLucideIcon("chevron-right", __iconNode$
|
|
2937
|
+
const __iconNode$19 = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
|
|
2938
|
+
const ChevronRight = createLucideIcon("chevron-right", __iconNode$19);
|
|
2902
2939
|
|
|
2903
2940
|
/**
|
|
2904
2941
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2908,8 +2945,8 @@ const ChevronRight = createLucideIcon("chevron-right", __iconNode$X);
|
|
|
2908
2945
|
*/
|
|
2909
2946
|
|
|
2910
2947
|
|
|
2911
|
-
const __iconNode$
|
|
2912
|
-
const ChevronUp = createLucideIcon("chevron-up", __iconNode$
|
|
2948
|
+
const __iconNode$18 = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
|
|
2949
|
+
const ChevronUp = createLucideIcon("chevron-up", __iconNode$18);
|
|
2913
2950
|
|
|
2914
2951
|
/**
|
|
2915
2952
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2919,11 +2956,11 @@ const ChevronUp = createLucideIcon("chevron-up", __iconNode$W);
|
|
|
2919
2956
|
*/
|
|
2920
2957
|
|
|
2921
2958
|
|
|
2922
|
-
const __iconNode$
|
|
2959
|
+
const __iconNode$17 = [
|
|
2923
2960
|
["path", { d: "m11 17-5-5 5-5", key: "13zhaf" }],
|
|
2924
2961
|
["path", { d: "m18 17-5-5 5-5", key: "h8a8et" }]
|
|
2925
2962
|
];
|
|
2926
|
-
const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$
|
|
2963
|
+
const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$17);
|
|
2927
2964
|
|
|
2928
2965
|
/**
|
|
2929
2966
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2933,11 +2970,11 @@ const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$V);
|
|
|
2933
2970
|
*/
|
|
2934
2971
|
|
|
2935
2972
|
|
|
2936
|
-
const __iconNode$
|
|
2973
|
+
const __iconNode$16 = [
|
|
2937
2974
|
["path", { d: "m6 17 5-5-5-5", key: "xnjwq" }],
|
|
2938
2975
|
["path", { d: "m13 17 5-5-5-5", key: "17xmmf" }]
|
|
2939
2976
|
];
|
|
2940
|
-
const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$
|
|
2977
|
+
const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$16);
|
|
2941
2978
|
|
|
2942
2979
|
/**
|
|
2943
2980
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2947,12 +2984,12 @@ const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$U);
|
|
|
2947
2984
|
*/
|
|
2948
2985
|
|
|
2949
2986
|
|
|
2950
|
-
const __iconNode$
|
|
2987
|
+
const __iconNode$15 = [
|
|
2951
2988
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
2952
2989
|
["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
|
|
2953
2990
|
["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
|
|
2954
2991
|
];
|
|
2955
|
-
const CircleAlert = createLucideIcon("circle-alert", __iconNode$
|
|
2992
|
+
const CircleAlert = createLucideIcon("circle-alert", __iconNode$15);
|
|
2956
2993
|
|
|
2957
2994
|
/**
|
|
2958
2995
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2962,11 +2999,11 @@ const CircleAlert = createLucideIcon("circle-alert", __iconNode$T);
|
|
|
2962
2999
|
*/
|
|
2963
3000
|
|
|
2964
3001
|
|
|
2965
|
-
const __iconNode$
|
|
3002
|
+
const __iconNode$14 = [
|
|
2966
3003
|
["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
|
|
2967
3004
|
["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
|
|
2968
3005
|
];
|
|
2969
|
-
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$
|
|
3006
|
+
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$14);
|
|
2970
3007
|
|
|
2971
3008
|
/**
|
|
2972
3009
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2976,11 +3013,11 @@ const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$S);
|
|
|
2976
3013
|
*/
|
|
2977
3014
|
|
|
2978
3015
|
|
|
2979
|
-
const __iconNode$
|
|
3016
|
+
const __iconNode$13 = [
|
|
2980
3017
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
2981
3018
|
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
2982
3019
|
];
|
|
2983
|
-
const CircleCheck = createLucideIcon("circle-check", __iconNode$
|
|
3020
|
+
const CircleCheck = createLucideIcon("circle-check", __iconNode$13);
|
|
2984
3021
|
|
|
2985
3022
|
/**
|
|
2986
3023
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -2990,12 +3027,40 @@ const CircleCheck = createLucideIcon("circle-check", __iconNode$R);
|
|
|
2990
3027
|
*/
|
|
2991
3028
|
|
|
2992
3029
|
|
|
2993
|
-
const __iconNode$
|
|
3030
|
+
const __iconNode$12 = [
|
|
3031
|
+
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
3032
|
+
["path", { d: "m16 10-4 4-4-4", key: "894hmk" }]
|
|
3033
|
+
];
|
|
3034
|
+
const CircleChevronDown = createLucideIcon("circle-chevron-down", __iconNode$12);
|
|
3035
|
+
|
|
3036
|
+
/**
|
|
3037
|
+
* @license lucide-react v0.539.0 - ISC
|
|
3038
|
+
*
|
|
3039
|
+
* This source code is licensed under the ISC license.
|
|
3040
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
3041
|
+
*/
|
|
3042
|
+
|
|
3043
|
+
|
|
3044
|
+
const __iconNode$11 = [
|
|
3045
|
+
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
3046
|
+
["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }]
|
|
3047
|
+
];
|
|
3048
|
+
const CircleDot = createLucideIcon("circle-dot", __iconNode$11);
|
|
3049
|
+
|
|
3050
|
+
/**
|
|
3051
|
+
* @license lucide-react v0.539.0 - ISC
|
|
3052
|
+
*
|
|
3053
|
+
* This source code is licensed under the ISC license.
|
|
3054
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
3055
|
+
*/
|
|
3056
|
+
|
|
3057
|
+
|
|
3058
|
+
const __iconNode$10 = [
|
|
2994
3059
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
2995
3060
|
["path", { d: "m15 9-6 6", key: "1uzhvr" }],
|
|
2996
3061
|
["path", { d: "m9 9 6 6", key: "z0biqf" }]
|
|
2997
3062
|
];
|
|
2998
|
-
const CircleX = createLucideIcon("circle-x", __iconNode$
|
|
3063
|
+
const CircleX = createLucideIcon("circle-x", __iconNode$10);
|
|
2999
3064
|
|
|
3000
3065
|
/**
|
|
3001
3066
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3005,8 +3070,8 @@ const CircleX = createLucideIcon("circle-x", __iconNode$Q);
|
|
|
3005
3070
|
*/
|
|
3006
3071
|
|
|
3007
3072
|
|
|
3008
|
-
const __iconNode
|
|
3009
|
-
const Circle = createLucideIcon("circle", __iconNode
|
|
3073
|
+
const __iconNode$$ = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
|
|
3074
|
+
const Circle = createLucideIcon("circle", __iconNode$$);
|
|
3010
3075
|
|
|
3011
3076
|
/**
|
|
3012
3077
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3016,11 +3081,11 @@ const Circle = createLucideIcon("circle", __iconNode$P);
|
|
|
3016
3081
|
*/
|
|
3017
3082
|
|
|
3018
3083
|
|
|
3019
|
-
const __iconNode$
|
|
3084
|
+
const __iconNode$_ = [
|
|
3020
3085
|
["path", { d: "M12 6v6l4 2", key: "mmk7yg" }],
|
|
3021
3086
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
|
|
3022
3087
|
];
|
|
3023
|
-
const Clock = createLucideIcon("clock", __iconNode$
|
|
3088
|
+
const Clock = createLucideIcon("clock", __iconNode$_);
|
|
3024
3089
|
|
|
3025
3090
|
/**
|
|
3026
3091
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3030,11 +3095,11 @@ const Clock = createLucideIcon("clock", __iconNode$O);
|
|
|
3030
3095
|
*/
|
|
3031
3096
|
|
|
3032
3097
|
|
|
3033
|
-
const __iconNode$
|
|
3098
|
+
const __iconNode$Z = [
|
|
3034
3099
|
["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
|
|
3035
3100
|
["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" }]
|
|
3036
3101
|
];
|
|
3037
|
-
const Copy = createLucideIcon("copy", __iconNode$
|
|
3102
|
+
const Copy = createLucideIcon("copy", __iconNode$Z);
|
|
3038
3103
|
|
|
3039
3104
|
/**
|
|
3040
3105
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3044,11 +3109,11 @@ const Copy = createLucideIcon("copy", __iconNode$N);
|
|
|
3044
3109
|
*/
|
|
3045
3110
|
|
|
3046
3111
|
|
|
3047
|
-
const __iconNode$
|
|
3112
|
+
const __iconNode$Y = [
|
|
3048
3113
|
["path", { d: "M6 2v14a2 2 0 0 0 2 2h14", key: "ron5a4" }],
|
|
3049
3114
|
["path", { d: "M18 22V8a2 2 0 0 0-2-2H2", key: "7s9ehn" }]
|
|
3050
3115
|
];
|
|
3051
|
-
const Crop = createLucideIcon("crop", __iconNode$
|
|
3116
|
+
const Crop = createLucideIcon("crop", __iconNode$Y);
|
|
3052
3117
|
|
|
3053
3118
|
/**
|
|
3054
3119
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3058,12 +3123,12 @@ const Crop = createLucideIcon("crop", __iconNode$M);
|
|
|
3058
3123
|
*/
|
|
3059
3124
|
|
|
3060
3125
|
|
|
3061
|
-
const __iconNode$
|
|
3126
|
+
const __iconNode$X = [
|
|
3062
3127
|
["path", { d: "M12 15V3", key: "m9g1x1" }],
|
|
3063
3128
|
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
|
|
3064
3129
|
["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
|
|
3065
3130
|
];
|
|
3066
|
-
const Download = createLucideIcon("download", __iconNode$
|
|
3131
|
+
const Download = createLucideIcon("download", __iconNode$X);
|
|
3067
3132
|
|
|
3068
3133
|
/**
|
|
3069
3134
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3073,12 +3138,12 @@ const Download = createLucideIcon("download", __iconNode$L);
|
|
|
3073
3138
|
*/
|
|
3074
3139
|
|
|
3075
3140
|
|
|
3076
|
-
const __iconNode$
|
|
3141
|
+
const __iconNode$W = [
|
|
3077
3142
|
["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
|
|
3078
3143
|
["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }],
|
|
3079
3144
|
["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }]
|
|
3080
3145
|
];
|
|
3081
|
-
const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$
|
|
3146
|
+
const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$W);
|
|
3082
3147
|
|
|
3083
3148
|
/**
|
|
3084
3149
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3088,12 +3153,12 @@ const EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode$K);
|
|
|
3088
3153
|
*/
|
|
3089
3154
|
|
|
3090
3155
|
|
|
3091
|
-
const __iconNode$
|
|
3156
|
+
const __iconNode$V = [
|
|
3092
3157
|
["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
|
|
3093
3158
|
["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
|
|
3094
3159
|
["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }]
|
|
3095
3160
|
];
|
|
3096
|
-
const Ellipsis = createLucideIcon("ellipsis", __iconNode$
|
|
3161
|
+
const Ellipsis = createLucideIcon("ellipsis", __iconNode$V);
|
|
3097
3162
|
|
|
3098
3163
|
/**
|
|
3099
3164
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3103,12 +3168,12 @@ const Ellipsis = createLucideIcon("ellipsis", __iconNode$J);
|
|
|
3103
3168
|
*/
|
|
3104
3169
|
|
|
3105
3170
|
|
|
3106
|
-
const __iconNode$
|
|
3171
|
+
const __iconNode$U = [
|
|
3107
3172
|
["path", { d: "M15 3h6v6", key: "1q9fwt" }],
|
|
3108
3173
|
["path", { d: "M10 14 21 3", key: "gplh6r" }],
|
|
3109
3174
|
["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
|
|
3110
3175
|
];
|
|
3111
|
-
const ExternalLink = createLucideIcon("external-link", __iconNode$
|
|
3176
|
+
const ExternalLink = createLucideIcon("external-link", __iconNode$U);
|
|
3112
3177
|
|
|
3113
3178
|
/**
|
|
3114
3179
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3118,7 +3183,7 @@ const ExternalLink = createLucideIcon("external-link", __iconNode$I);
|
|
|
3118
3183
|
*/
|
|
3119
3184
|
|
|
3120
3185
|
|
|
3121
|
-
const __iconNode$
|
|
3186
|
+
const __iconNode$T = [
|
|
3122
3187
|
[
|
|
3123
3188
|
"path",
|
|
3124
3189
|
{
|
|
@@ -3128,7 +3193,7 @@ const __iconNode$H = [
|
|
|
3128
3193
|
],
|
|
3129
3194
|
["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
|
|
3130
3195
|
];
|
|
3131
|
-
const Eye = createLucideIcon("eye", __iconNode$
|
|
3196
|
+
const Eye = createLucideIcon("eye", __iconNode$T);
|
|
3132
3197
|
|
|
3133
3198
|
/**
|
|
3134
3199
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3138,13 +3203,13 @@ const Eye = createLucideIcon("eye", __iconNode$H);
|
|
|
3138
3203
|
*/
|
|
3139
3204
|
|
|
3140
3205
|
|
|
3141
|
-
const __iconNode$
|
|
3206
|
+
const __iconNode$S = [
|
|
3142
3207
|
[
|
|
3143
3208
|
"path",
|
|
3144
3209
|
{ d: "M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z", key: "1jg4f8" }
|
|
3145
3210
|
]
|
|
3146
3211
|
];
|
|
3147
|
-
const Facebook = createLucideIcon("facebook", __iconNode$
|
|
3212
|
+
const Facebook = createLucideIcon("facebook", __iconNode$S);
|
|
3148
3213
|
|
|
3149
3214
|
/**
|
|
3150
3215
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3154,7 +3219,7 @@ const Facebook = createLucideIcon("facebook", __iconNode$G);
|
|
|
3154
3219
|
*/
|
|
3155
3220
|
|
|
3156
3221
|
|
|
3157
|
-
const __iconNode$
|
|
3222
|
+
const __iconNode$R = [
|
|
3158
3223
|
["path", { d: "M12 22h6a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3.072", key: "n6s66f" }],
|
|
3159
3224
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
3160
3225
|
[
|
|
@@ -3166,7 +3231,7 @@ const __iconNode$F = [
|
|
|
3166
3231
|
],
|
|
3167
3232
|
["circle", { cx: "5", cy: "14", r: "3", key: "ufru5t" }]
|
|
3168
3233
|
];
|
|
3169
|
-
const FileBadge = createLucideIcon("file-badge", __iconNode$
|
|
3234
|
+
const FileBadge = createLucideIcon("file-badge", __iconNode$R);
|
|
3170
3235
|
|
|
3171
3236
|
/**
|
|
3172
3237
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3176,14 +3241,29 @@ const FileBadge = createLucideIcon("file-badge", __iconNode$F);
|
|
|
3176
3241
|
*/
|
|
3177
3242
|
|
|
3178
3243
|
|
|
3179
|
-
const __iconNode$
|
|
3244
|
+
const __iconNode$Q = [
|
|
3245
|
+
["path", { d: "M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4", key: "1pf5j1" }],
|
|
3246
|
+
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
3247
|
+
["path", { d: "m3 15 2 2 4-4", key: "1lhrkk" }]
|
|
3248
|
+
];
|
|
3249
|
+
const FileCheck2 = createLucideIcon("file-check-2", __iconNode$Q);
|
|
3250
|
+
|
|
3251
|
+
/**
|
|
3252
|
+
* @license lucide-react v0.539.0 - ISC
|
|
3253
|
+
*
|
|
3254
|
+
* This source code is licensed under the ISC license.
|
|
3255
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
3256
|
+
*/
|
|
3257
|
+
|
|
3258
|
+
|
|
3259
|
+
const __iconNode$P = [
|
|
3180
3260
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
|
|
3181
3261
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
3182
3262
|
["path", { d: "M10 9H8", key: "b1mrlr" }],
|
|
3183
3263
|
["path", { d: "M16 13H8", key: "t4e002" }],
|
|
3184
3264
|
["path", { d: "M16 17H8", key: "z1uh3a" }]
|
|
3185
3265
|
];
|
|
3186
|
-
const FileText = createLucideIcon("file-text", __iconNode$
|
|
3266
|
+
const FileText = createLucideIcon("file-text", __iconNode$P);
|
|
3187
3267
|
|
|
3188
3268
|
/**
|
|
3189
3269
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3193,7 +3273,7 @@ const FileText = createLucideIcon("file-text", __iconNode$E);
|
|
|
3193
3273
|
*/
|
|
3194
3274
|
|
|
3195
3275
|
|
|
3196
|
-
const __iconNode$
|
|
3276
|
+
const __iconNode$O = [
|
|
3197
3277
|
[
|
|
3198
3278
|
"path",
|
|
3199
3279
|
{
|
|
@@ -3202,7 +3282,7 @@ const __iconNode$D = [
|
|
|
3202
3282
|
}
|
|
3203
3283
|
]
|
|
3204
3284
|
];
|
|
3205
|
-
const Funnel = createLucideIcon("funnel", __iconNode$
|
|
3285
|
+
const Funnel = createLucideIcon("funnel", __iconNode$O);
|
|
3206
3286
|
|
|
3207
3287
|
/**
|
|
3208
3288
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3212,7 +3292,7 @@ const Funnel = createLucideIcon("funnel", __iconNode$D);
|
|
|
3212
3292
|
*/
|
|
3213
3293
|
|
|
3214
3294
|
|
|
3215
|
-
const __iconNode$
|
|
3295
|
+
const __iconNode$N = [
|
|
3216
3296
|
["circle", { cx: "12", cy: "9", r: "1", key: "124mty" }],
|
|
3217
3297
|
["circle", { cx: "19", cy: "9", r: "1", key: "1ruzo2" }],
|
|
3218
3298
|
["circle", { cx: "5", cy: "9", r: "1", key: "1a8b28" }],
|
|
@@ -3220,7 +3300,7 @@ const __iconNode$C = [
|
|
|
3220
3300
|
["circle", { cx: "19", cy: "15", r: "1", key: "1a92ep" }],
|
|
3221
3301
|
["circle", { cx: "5", cy: "15", r: "1", key: "5r1jwy" }]
|
|
3222
3302
|
];
|
|
3223
|
-
const GripHorizontal = createLucideIcon("grip-horizontal", __iconNode$
|
|
3303
|
+
const GripHorizontal = createLucideIcon("grip-horizontal", __iconNode$N);
|
|
3224
3304
|
|
|
3225
3305
|
/**
|
|
3226
3306
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3230,7 +3310,7 @@ const GripHorizontal = createLucideIcon("grip-horizontal", __iconNode$C);
|
|
|
3230
3310
|
*/
|
|
3231
3311
|
|
|
3232
3312
|
|
|
3233
|
-
const __iconNode$
|
|
3313
|
+
const __iconNode$M = [
|
|
3234
3314
|
["circle", { cx: "9", cy: "12", r: "1", key: "1vctgf" }],
|
|
3235
3315
|
["circle", { cx: "9", cy: "5", r: "1", key: "hp0tcf" }],
|
|
3236
3316
|
["circle", { cx: "9", cy: "19", r: "1", key: "fkjjf6" }],
|
|
@@ -3238,7 +3318,7 @@ const __iconNode$B = [
|
|
|
3238
3318
|
["circle", { cx: "15", cy: "5", r: "1", key: "19l28e" }],
|
|
3239
3319
|
["circle", { cx: "15", cy: "19", r: "1", key: "f4zoj3" }]
|
|
3240
3320
|
];
|
|
3241
|
-
const GripVertical = createLucideIcon("grip-vertical", __iconNode$
|
|
3321
|
+
const GripVertical = createLucideIcon("grip-vertical", __iconNode$M);
|
|
3242
3322
|
|
|
3243
3323
|
/**
|
|
3244
3324
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3248,13 +3328,29 @@ const GripVertical = createLucideIcon("grip-vertical", __iconNode$B);
|
|
|
3248
3328
|
*/
|
|
3249
3329
|
|
|
3250
3330
|
|
|
3251
|
-
const __iconNode$
|
|
3331
|
+
const __iconNode$L = [
|
|
3332
|
+
["line", { x1: "4", x2: "20", y1: "9", y2: "9", key: "4lhtct" }],
|
|
3333
|
+
["line", { x1: "4", x2: "20", y1: "15", y2: "15", key: "vyu0kd" }],
|
|
3334
|
+
["line", { x1: "10", x2: "8", y1: "3", y2: "21", key: "1ggp8o" }],
|
|
3335
|
+
["line", { x1: "16", x2: "14", y1: "3", y2: "21", key: "weycgp" }]
|
|
3336
|
+
];
|
|
3337
|
+
const Hash = createLucideIcon("hash", __iconNode$L);
|
|
3338
|
+
|
|
3339
|
+
/**
|
|
3340
|
+
* @license lucide-react v0.539.0 - ISC
|
|
3341
|
+
*
|
|
3342
|
+
* This source code is licensed under the ISC license.
|
|
3343
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
3344
|
+
*/
|
|
3345
|
+
|
|
3346
|
+
|
|
3347
|
+
const __iconNode$K = [
|
|
3252
3348
|
["path", { d: "M4 12h8", key: "17cfdx" }],
|
|
3253
3349
|
["path", { d: "M4 18V6", key: "1rz3zl" }],
|
|
3254
3350
|
["path", { d: "M12 18V6", key: "zqpxq5" }],
|
|
3255
3351
|
["path", { d: "m17 12 3-2v8", key: "1hhhft" }]
|
|
3256
3352
|
];
|
|
3257
|
-
const Heading1 = createLucideIcon("heading-1", __iconNode$
|
|
3353
|
+
const Heading1 = createLucideIcon("heading-1", __iconNode$K);
|
|
3258
3354
|
|
|
3259
3355
|
/**
|
|
3260
3356
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3264,13 +3360,13 @@ const Heading1 = createLucideIcon("heading-1", __iconNode$A);
|
|
|
3264
3360
|
*/
|
|
3265
3361
|
|
|
3266
3362
|
|
|
3267
|
-
const __iconNode$
|
|
3363
|
+
const __iconNode$J = [
|
|
3268
3364
|
["path", { d: "M4 12h8", key: "17cfdx" }],
|
|
3269
3365
|
["path", { d: "M4 18V6", key: "1rz3zl" }],
|
|
3270
3366
|
["path", { d: "M12 18V6", key: "zqpxq5" }],
|
|
3271
3367
|
["path", { d: "M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1", key: "9jr5yi" }]
|
|
3272
3368
|
];
|
|
3273
|
-
const Heading2 = createLucideIcon("heading-2", __iconNode$
|
|
3369
|
+
const Heading2 = createLucideIcon("heading-2", __iconNode$J);
|
|
3274
3370
|
|
|
3275
3371
|
/**
|
|
3276
3372
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3280,14 +3376,14 @@ const Heading2 = createLucideIcon("heading-2", __iconNode$z);
|
|
|
3280
3376
|
*/
|
|
3281
3377
|
|
|
3282
3378
|
|
|
3283
|
-
const __iconNode$
|
|
3379
|
+
const __iconNode$I = [
|
|
3284
3380
|
["path", { d: "M4 12h8", key: "17cfdx" }],
|
|
3285
3381
|
["path", { d: "M4 18V6", key: "1rz3zl" }],
|
|
3286
3382
|
["path", { d: "M12 18V6", key: "zqpxq5" }],
|
|
3287
3383
|
["path", { d: "M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2", key: "68ncm8" }],
|
|
3288
3384
|
["path", { d: "M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2", key: "1ejuhz" }]
|
|
3289
3385
|
];
|
|
3290
|
-
const Heading3 = createLucideIcon("heading-3", __iconNode$
|
|
3386
|
+
const Heading3 = createLucideIcon("heading-3", __iconNode$I);
|
|
3291
3387
|
|
|
3292
3388
|
/**
|
|
3293
3389
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3297,12 +3393,12 @@ const Heading3 = createLucideIcon("heading-3", __iconNode$y);
|
|
|
3297
3393
|
*/
|
|
3298
3394
|
|
|
3299
3395
|
|
|
3300
|
-
const __iconNode$
|
|
3396
|
+
const __iconNode$H = [
|
|
3301
3397
|
["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
|
|
3302
3398
|
["path", { d: "M3 3v5h5", key: "1xhq8a" }],
|
|
3303
3399
|
["path", { d: "M12 7v5l4 2", key: "1fdv2h" }]
|
|
3304
3400
|
];
|
|
3305
|
-
const History = createLucideIcon("history", __iconNode$
|
|
3401
|
+
const History = createLucideIcon("history", __iconNode$H);
|
|
3306
3402
|
|
|
3307
3403
|
/**
|
|
3308
3404
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3312,12 +3408,12 @@ const History = createLucideIcon("history", __iconNode$x);
|
|
|
3312
3408
|
*/
|
|
3313
3409
|
|
|
3314
3410
|
|
|
3315
|
-
const __iconNode$
|
|
3411
|
+
const __iconNode$G = [
|
|
3316
3412
|
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
|
|
3317
3413
|
["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
|
|
3318
3414
|
["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
|
|
3319
3415
|
];
|
|
3320
|
-
const Image$1 = createLucideIcon("image", __iconNode$
|
|
3416
|
+
const Image$1 = createLucideIcon("image", __iconNode$G);
|
|
3321
3417
|
|
|
3322
3418
|
/**
|
|
3323
3419
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3327,12 +3423,12 @@ const Image$1 = createLucideIcon("image", __iconNode$w);
|
|
|
3327
3423
|
*/
|
|
3328
3424
|
|
|
3329
3425
|
|
|
3330
|
-
const __iconNode$
|
|
3426
|
+
const __iconNode$F = [
|
|
3331
3427
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
3332
3428
|
["path", { d: "M12 16v-4", key: "1dtifu" }],
|
|
3333
3429
|
["path", { d: "M12 8h.01", key: "e9boi3" }]
|
|
3334
3430
|
];
|
|
3335
|
-
const Info = createLucideIcon("info", __iconNode$
|
|
3431
|
+
const Info = createLucideIcon("info", __iconNode$F);
|
|
3336
3432
|
|
|
3337
3433
|
/**
|
|
3338
3434
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3342,12 +3438,12 @@ const Info = createLucideIcon("info", __iconNode$v);
|
|
|
3342
3438
|
*/
|
|
3343
3439
|
|
|
3344
3440
|
|
|
3345
|
-
const __iconNode$
|
|
3441
|
+
const __iconNode$E = [
|
|
3346
3442
|
["line", { x1: "19", x2: "10", y1: "4", y2: "4", key: "15jd3p" }],
|
|
3347
3443
|
["line", { x1: "14", x2: "5", y1: "20", y2: "20", key: "bu0au3" }],
|
|
3348
3444
|
["line", { x1: "15", x2: "9", y1: "4", y2: "20", key: "uljnxc" }]
|
|
3349
3445
|
];
|
|
3350
|
-
const Italic$1 = createLucideIcon("italic", __iconNode$
|
|
3446
|
+
const Italic$1 = createLucideIcon("italic", __iconNode$E);
|
|
3351
3447
|
|
|
3352
3448
|
/**
|
|
3353
3449
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3357,12 +3453,32 @@ const Italic$1 = createLucideIcon("italic", __iconNode$u);
|
|
|
3357
3453
|
*/
|
|
3358
3454
|
|
|
3359
3455
|
|
|
3360
|
-
const __iconNode$
|
|
3456
|
+
const __iconNode$D = [
|
|
3457
|
+
[
|
|
3458
|
+
"path",
|
|
3459
|
+
{
|
|
3460
|
+
d: "M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",
|
|
3461
|
+
key: "1s6t7t"
|
|
3462
|
+
}
|
|
3463
|
+
],
|
|
3464
|
+
["circle", { cx: "16.5", cy: "7.5", r: ".5", fill: "currentColor", key: "w0ekpg" }]
|
|
3465
|
+
];
|
|
3466
|
+
const KeyRound = createLucideIcon("key-round", __iconNode$D);
|
|
3467
|
+
|
|
3468
|
+
/**
|
|
3469
|
+
* @license lucide-react v0.539.0 - ISC
|
|
3470
|
+
*
|
|
3471
|
+
* This source code is licensed under the ISC license.
|
|
3472
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
3473
|
+
*/
|
|
3474
|
+
|
|
3475
|
+
|
|
3476
|
+
const __iconNode$C = [
|
|
3361
3477
|
["path", { d: "M9 17H7A5 5 0 0 1 7 7h2", key: "8i5ue5" }],
|
|
3362
3478
|
["path", { d: "M15 7h2a5 5 0 1 1 0 10h-2", key: "1b9ql8" }],
|
|
3363
3479
|
["line", { x1: "8", x2: "16", y1: "12", y2: "12", key: "1jonct" }]
|
|
3364
3480
|
];
|
|
3365
|
-
const Link2 = createLucideIcon("link-2", __iconNode$
|
|
3481
|
+
const Link2 = createLucideIcon("link-2", __iconNode$C);
|
|
3366
3482
|
|
|
3367
3483
|
/**
|
|
3368
3484
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3372,7 +3488,24 @@ const Link2 = createLucideIcon("link-2", __iconNode$t);
|
|
|
3372
3488
|
*/
|
|
3373
3489
|
|
|
3374
3490
|
|
|
3375
|
-
const __iconNode$
|
|
3491
|
+
const __iconNode$B = [
|
|
3492
|
+
["path", { d: "m3 17 2 2 4-4", key: "1jhpwq" }],
|
|
3493
|
+
["path", { d: "m3 7 2 2 4-4", key: "1obspn" }],
|
|
3494
|
+
["path", { d: "M13 6h8", key: "15sg57" }],
|
|
3495
|
+
["path", { d: "M13 12h8", key: "h98zly" }],
|
|
3496
|
+
["path", { d: "M13 18h8", key: "oe0vm4" }]
|
|
3497
|
+
];
|
|
3498
|
+
const ListChecks = createLucideIcon("list-checks", __iconNode$B);
|
|
3499
|
+
|
|
3500
|
+
/**
|
|
3501
|
+
* @license lucide-react v0.539.0 - ISC
|
|
3502
|
+
*
|
|
3503
|
+
* This source code is licensed under the ISC license.
|
|
3504
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
3505
|
+
*/
|
|
3506
|
+
|
|
3507
|
+
|
|
3508
|
+
const __iconNode$A = [
|
|
3376
3509
|
["path", { d: "M10 12h11", key: "6m4ad9" }],
|
|
3377
3510
|
["path", { d: "M10 18h11", key: "11hvi2" }],
|
|
3378
3511
|
["path", { d: "M10 6h11", key: "c7qv1k" }],
|
|
@@ -3380,7 +3513,7 @@ const __iconNode$s = [
|
|
|
3380
3513
|
["path", { d: "M4 6h1v4", key: "cnovpq" }],
|
|
3381
3514
|
["path", { d: "M6 18H4c0-1 2-2 2-3s-1-1.5-2-1", key: "m9a95d" }]
|
|
3382
3515
|
];
|
|
3383
|
-
const ListOrdered = createLucideIcon("list-ordered", __iconNode$
|
|
3516
|
+
const ListOrdered = createLucideIcon("list-ordered", __iconNode$A);
|
|
3384
3517
|
|
|
3385
3518
|
/**
|
|
3386
3519
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3390,7 +3523,7 @@ const ListOrdered = createLucideIcon("list-ordered", __iconNode$s);
|
|
|
3390
3523
|
*/
|
|
3391
3524
|
|
|
3392
3525
|
|
|
3393
|
-
const __iconNode$
|
|
3526
|
+
const __iconNode$z = [
|
|
3394
3527
|
["path", { d: "M3 12h.01", key: "nlz23k" }],
|
|
3395
3528
|
["path", { d: "M3 18h.01", key: "1tta3j" }],
|
|
3396
3529
|
["path", { d: "M3 6h.01", key: "1rqtza" }],
|
|
@@ -3398,7 +3531,7 @@ const __iconNode$r = [
|
|
|
3398
3531
|
["path", { d: "M8 18h13", key: "1lx6n3" }],
|
|
3399
3532
|
["path", { d: "M8 6h13", key: "ik3vkj" }]
|
|
3400
3533
|
];
|
|
3401
|
-
const List = createLucideIcon("list", __iconNode$
|
|
3534
|
+
const List = createLucideIcon("list", __iconNode$z);
|
|
3402
3535
|
|
|
3403
3536
|
/**
|
|
3404
3537
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3408,8 +3541,8 @@ const List = createLucideIcon("list", __iconNode$r);
|
|
|
3408
3541
|
*/
|
|
3409
3542
|
|
|
3410
3543
|
|
|
3411
|
-
const __iconNode$
|
|
3412
|
-
const LoaderCircle = createLucideIcon("loader-circle", __iconNode$
|
|
3544
|
+
const __iconNode$y = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
|
|
3545
|
+
const LoaderCircle = createLucideIcon("loader-circle", __iconNode$y);
|
|
3413
3546
|
|
|
3414
3547
|
/**
|
|
3415
3548
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3419,7 +3552,7 @@ const LoaderCircle = createLucideIcon("loader-circle", __iconNode$q);
|
|
|
3419
3552
|
*/
|
|
3420
3553
|
|
|
3421
3554
|
|
|
3422
|
-
const __iconNode$
|
|
3555
|
+
const __iconNode$x = [
|
|
3423
3556
|
["path", { d: "M12 2v4", key: "3427ic" }],
|
|
3424
3557
|
["path", { d: "m16.2 7.8 2.9-2.9", key: "r700ao" }],
|
|
3425
3558
|
["path", { d: "M18 12h4", key: "wj9ykh" }],
|
|
@@ -3429,7 +3562,7 @@ const __iconNode$p = [
|
|
|
3429
3562
|
["path", { d: "M2 12h4", key: "j09sii" }],
|
|
3430
3563
|
["path", { d: "m4.9 4.9 2.9 2.9", key: "giyufr" }]
|
|
3431
3564
|
];
|
|
3432
|
-
const Loader = createLucideIcon("loader", __iconNode$
|
|
3565
|
+
const Loader = createLucideIcon("loader", __iconNode$x);
|
|
3433
3566
|
|
|
3434
3567
|
/**
|
|
3435
3568
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3439,12 +3572,12 @@ const Loader = createLucideIcon("loader", __iconNode$p);
|
|
|
3439
3572
|
*/
|
|
3440
3573
|
|
|
3441
3574
|
|
|
3442
|
-
const __iconNode$
|
|
3575
|
+
const __iconNode$w = [
|
|
3443
3576
|
["path", { d: "m16 17 5-5-5-5", key: "1bji2h" }],
|
|
3444
3577
|
["path", { d: "M21 12H9", key: "dn1m92" }],
|
|
3445
3578
|
["path", { d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4", key: "1uf3rs" }]
|
|
3446
3579
|
];
|
|
3447
|
-
const LogOut = createLucideIcon("log-out", __iconNode$
|
|
3580
|
+
const LogOut = createLucideIcon("log-out", __iconNode$w);
|
|
3448
3581
|
|
|
3449
3582
|
/**
|
|
3450
3583
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3454,12 +3587,26 @@ const LogOut = createLucideIcon("log-out", __iconNode$o);
|
|
|
3454
3587
|
*/
|
|
3455
3588
|
|
|
3456
3589
|
|
|
3457
|
-
const __iconNode$
|
|
3590
|
+
const __iconNode$v = [
|
|
3591
|
+
["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
|
|
3592
|
+
["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
|
|
3593
|
+
];
|
|
3594
|
+
const Mail = createLucideIcon("mail", __iconNode$v);
|
|
3595
|
+
|
|
3596
|
+
/**
|
|
3597
|
+
* @license lucide-react v0.539.0 - ISC
|
|
3598
|
+
*
|
|
3599
|
+
* This source code is licensed under the ISC license.
|
|
3600
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
3601
|
+
*/
|
|
3602
|
+
|
|
3603
|
+
|
|
3604
|
+
const __iconNode$u = [
|
|
3458
3605
|
["path", { d: "M4 12h16", key: "1lakjw" }],
|
|
3459
3606
|
["path", { d: "M4 18h16", key: "19g7jn" }],
|
|
3460
3607
|
["path", { d: "M4 6h16", key: "1o0s65" }]
|
|
3461
3608
|
];
|
|
3462
|
-
const Menu = createLucideIcon("menu", __iconNode$
|
|
3609
|
+
const Menu = createLucideIcon("menu", __iconNode$u);
|
|
3463
3610
|
|
|
3464
3611
|
/**
|
|
3465
3612
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3469,7 +3616,7 @@ const Menu = createLucideIcon("menu", __iconNode$n);
|
|
|
3469
3616
|
*/
|
|
3470
3617
|
|
|
3471
3618
|
|
|
3472
|
-
const __iconNode$
|
|
3619
|
+
const __iconNode$t = [
|
|
3473
3620
|
[
|
|
3474
3621
|
"path",
|
|
3475
3622
|
{
|
|
@@ -3478,7 +3625,7 @@ const __iconNode$m = [
|
|
|
3478
3625
|
}
|
|
3479
3626
|
]
|
|
3480
3627
|
];
|
|
3481
|
-
const Moon = createLucideIcon("moon", __iconNode$
|
|
3628
|
+
const Moon = createLucideIcon("moon", __iconNode$t);
|
|
3482
3629
|
|
|
3483
3630
|
/**
|
|
3484
3631
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3488,7 +3635,7 @@ const Moon = createLucideIcon("moon", __iconNode$m);
|
|
|
3488
3635
|
*/
|
|
3489
3636
|
|
|
3490
3637
|
|
|
3491
|
-
const __iconNode$
|
|
3638
|
+
const __iconNode$s = [
|
|
3492
3639
|
[
|
|
3493
3640
|
"path",
|
|
3494
3641
|
{
|
|
@@ -3501,7 +3648,7 @@ const __iconNode$l = [
|
|
|
3501
3648
|
["circle", { cx: "6.5", cy: "12.5", r: ".5", fill: "currentColor", key: "qy21gx" }],
|
|
3502
3649
|
["circle", { cx: "8.5", cy: "7.5", r: ".5", fill: "currentColor", key: "fotxhn" }]
|
|
3503
3650
|
];
|
|
3504
|
-
const Palette = createLucideIcon("palette", __iconNode$
|
|
3651
|
+
const Palette = createLucideIcon("palette", __iconNode$s);
|
|
3505
3652
|
|
|
3506
3653
|
/**
|
|
3507
3654
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3511,12 +3658,12 @@ const Palette = createLucideIcon("palette", __iconNode$l);
|
|
|
3511
3658
|
*/
|
|
3512
3659
|
|
|
3513
3660
|
|
|
3514
|
-
const __iconNode$
|
|
3661
|
+
const __iconNode$r = [
|
|
3515
3662
|
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
|
|
3516
3663
|
["path", { d: "M9 3v18", key: "fh3hqa" }],
|
|
3517
3664
|
["path", { d: "m16 15-3-3 3-3", key: "14y99z" }]
|
|
3518
3665
|
];
|
|
3519
|
-
const PanelLeftClose = createLucideIcon("panel-left-close", __iconNode$
|
|
3666
|
+
const PanelLeftClose = createLucideIcon("panel-left-close", __iconNode$r);
|
|
3520
3667
|
|
|
3521
3668
|
/**
|
|
3522
3669
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3526,7 +3673,26 @@ const PanelLeftClose = createLucideIcon("panel-left-close", __iconNode$k);
|
|
|
3526
3673
|
*/
|
|
3527
3674
|
|
|
3528
3675
|
|
|
3529
|
-
const __iconNode$
|
|
3676
|
+
const __iconNode$q = [
|
|
3677
|
+
[
|
|
3678
|
+
"path",
|
|
3679
|
+
{
|
|
3680
|
+
d: "m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",
|
|
3681
|
+
key: "1miecu"
|
|
3682
|
+
}
|
|
3683
|
+
]
|
|
3684
|
+
];
|
|
3685
|
+
const Paperclip = createLucideIcon("paperclip", __iconNode$q);
|
|
3686
|
+
|
|
3687
|
+
/**
|
|
3688
|
+
* @license lucide-react v0.539.0 - ISC
|
|
3689
|
+
*
|
|
3690
|
+
* This source code is licensed under the ISC license.
|
|
3691
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
3692
|
+
*/
|
|
3693
|
+
|
|
3694
|
+
|
|
3695
|
+
const __iconNode$p = [
|
|
3530
3696
|
[
|
|
3531
3697
|
"path",
|
|
3532
3698
|
{
|
|
@@ -3536,7 +3702,7 @@ const __iconNode$j = [
|
|
|
3536
3702
|
],
|
|
3537
3703
|
["path", { d: "m15 5 4 4", key: "1mk7zo" }]
|
|
3538
3704
|
];
|
|
3539
|
-
const Pencil = createLucideIcon("pencil", __iconNode$
|
|
3705
|
+
const Pencil = createLucideIcon("pencil", __iconNode$p);
|
|
3540
3706
|
|
|
3541
3707
|
/**
|
|
3542
3708
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3546,7 +3712,26 @@ const Pencil = createLucideIcon("pencil", __iconNode$j);
|
|
|
3546
3712
|
*/
|
|
3547
3713
|
|
|
3548
3714
|
|
|
3549
|
-
const __iconNode$
|
|
3715
|
+
const __iconNode$o = [
|
|
3716
|
+
[
|
|
3717
|
+
"path",
|
|
3718
|
+
{
|
|
3719
|
+
d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",
|
|
3720
|
+
key: "9njp5v"
|
|
3721
|
+
}
|
|
3722
|
+
]
|
|
3723
|
+
];
|
|
3724
|
+
const Phone = createLucideIcon("phone", __iconNode$o);
|
|
3725
|
+
|
|
3726
|
+
/**
|
|
3727
|
+
* @license lucide-react v0.539.0 - ISC
|
|
3728
|
+
*
|
|
3729
|
+
* This source code is licensed under the ISC license.
|
|
3730
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
3731
|
+
*/
|
|
3732
|
+
|
|
3733
|
+
|
|
3734
|
+
const __iconNode$n = [
|
|
3550
3735
|
[
|
|
3551
3736
|
"path",
|
|
3552
3737
|
{
|
|
@@ -3555,7 +3740,7 @@ const __iconNode$i = [
|
|
|
3555
3740
|
}
|
|
3556
3741
|
]
|
|
3557
3742
|
];
|
|
3558
|
-
const Play = createLucideIcon("play", __iconNode$
|
|
3743
|
+
const Play = createLucideIcon("play", __iconNode$n);
|
|
3559
3744
|
|
|
3560
3745
|
/**
|
|
3561
3746
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3565,11 +3750,11 @@ const Play = createLucideIcon("play", __iconNode$i);
|
|
|
3565
3750
|
*/
|
|
3566
3751
|
|
|
3567
3752
|
|
|
3568
|
-
const __iconNode$
|
|
3753
|
+
const __iconNode$m = [
|
|
3569
3754
|
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
3570
3755
|
["path", { d: "M12 5v14", key: "s699le" }]
|
|
3571
3756
|
];
|
|
3572
|
-
const Plus = createLucideIcon("plus", __iconNode$
|
|
3757
|
+
const Plus = createLucideIcon("plus", __iconNode$m);
|
|
3573
3758
|
|
|
3574
3759
|
/**
|
|
3575
3760
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3579,10 +3764,10 @@ const Plus = createLucideIcon("plus", __iconNode$h);
|
|
|
3579
3764
|
*/
|
|
3580
3765
|
|
|
3581
3766
|
|
|
3582
|
-
const __iconNode$
|
|
3767
|
+
const __iconNode$l = [
|
|
3583
3768
|
["rect", { width: "20", height: "12", x: "2", y: "6", rx: "2", key: "9lu3g6" }]
|
|
3584
3769
|
];
|
|
3585
|
-
const RectangleHorizontal = createLucideIcon("rectangle-horizontal", __iconNode$
|
|
3770
|
+
const RectangleHorizontal = createLucideIcon("rectangle-horizontal", __iconNode$l);
|
|
3586
3771
|
|
|
3587
3772
|
/**
|
|
3588
3773
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3592,11 +3777,11 @@ const RectangleHorizontal = createLucideIcon("rectangle-horizontal", __iconNode$
|
|
|
3592
3777
|
*/
|
|
3593
3778
|
|
|
3594
3779
|
|
|
3595
|
-
const __iconNode$
|
|
3780
|
+
const __iconNode$k = [
|
|
3596
3781
|
["path", { d: "M21 7v6h-6", key: "3ptur4" }],
|
|
3597
3782
|
["path", { d: "M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7", key: "1kgawr" }]
|
|
3598
3783
|
];
|
|
3599
|
-
const Redo = createLucideIcon("redo", __iconNode$
|
|
3784
|
+
const Redo = createLucideIcon("redo", __iconNode$k);
|
|
3600
3785
|
|
|
3601
3786
|
/**
|
|
3602
3787
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3606,13 +3791,13 @@ const Redo = createLucideIcon("redo", __iconNode$f);
|
|
|
3606
3791
|
*/
|
|
3607
3792
|
|
|
3608
3793
|
|
|
3609
|
-
const __iconNode$
|
|
3794
|
+
const __iconNode$j = [
|
|
3610
3795
|
["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
|
|
3611
3796
|
["path", { d: "M21 3v5h-5", key: "1q7to0" }],
|
|
3612
3797
|
["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
|
|
3613
3798
|
["path", { d: "M8 16H3v5", key: "1cv678" }]
|
|
3614
3799
|
];
|
|
3615
|
-
const RefreshCw = createLucideIcon("refresh-cw", __iconNode$
|
|
3800
|
+
const RefreshCw = createLucideIcon("refresh-cw", __iconNode$j);
|
|
3616
3801
|
|
|
3617
3802
|
/**
|
|
3618
3803
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3622,14 +3807,14 @@ const RefreshCw = createLucideIcon("refresh-cw", __iconNode$e);
|
|
|
3622
3807
|
*/
|
|
3623
3808
|
|
|
3624
3809
|
|
|
3625
|
-
const __iconNode$
|
|
3810
|
+
const __iconNode$i = [
|
|
3626
3811
|
["path", { d: "M4 7V4h16v3", key: "9msm58" }],
|
|
3627
3812
|
["path", { d: "M5 20h6", key: "1h6pxn" }],
|
|
3628
3813
|
["path", { d: "M13 4 8 20", key: "kqq6aj" }],
|
|
3629
3814
|
["path", { d: "m15 15 5 5", key: "me55sn" }],
|
|
3630
3815
|
["path", { d: "m20 15-5 5", key: "11p7ol" }]
|
|
3631
3816
|
];
|
|
3632
|
-
const RemoveFormatting = createLucideIcon("remove-formatting", __iconNode$
|
|
3817
|
+
const RemoveFormatting = createLucideIcon("remove-formatting", __iconNode$i);
|
|
3633
3818
|
|
|
3634
3819
|
/**
|
|
3635
3820
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3639,14 +3824,14 @@ const RemoveFormatting = createLucideIcon("remove-formatting", __iconNode$d);
|
|
|
3639
3824
|
*/
|
|
3640
3825
|
|
|
3641
3826
|
|
|
3642
|
-
const __iconNode$
|
|
3827
|
+
const __iconNode$h = [
|
|
3643
3828
|
["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
|
|
3644
3829
|
["path", { d: "M8.12 8.12 12 12", key: "1alkpv" }],
|
|
3645
3830
|
["path", { d: "M20 4 8.12 15.88", key: "xgtan2" }],
|
|
3646
3831
|
["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
|
|
3647
3832
|
["path", { d: "M14.8 14.8 20 20", key: "ptml3r" }]
|
|
3648
3833
|
];
|
|
3649
|
-
const Scissors = createLucideIcon("scissors", __iconNode$
|
|
3834
|
+
const Scissors = createLucideIcon("scissors", __iconNode$h);
|
|
3650
3835
|
|
|
3651
3836
|
/**
|
|
3652
3837
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3656,11 +3841,11 @@ const Scissors = createLucideIcon("scissors", __iconNode$c);
|
|
|
3656
3841
|
*/
|
|
3657
3842
|
|
|
3658
3843
|
|
|
3659
|
-
const __iconNode$
|
|
3844
|
+
const __iconNode$g = [
|
|
3660
3845
|
["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
|
|
3661
3846
|
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
|
|
3662
3847
|
];
|
|
3663
|
-
const Search = createLucideIcon("search", __iconNode$
|
|
3848
|
+
const Search = createLucideIcon("search", __iconNode$g);
|
|
3664
3849
|
|
|
3665
3850
|
/**
|
|
3666
3851
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3670,14 +3855,14 @@ const Search = createLucideIcon("search", __iconNode$b);
|
|
|
3670
3855
|
*/
|
|
3671
3856
|
|
|
3672
3857
|
|
|
3673
|
-
const __iconNode$
|
|
3858
|
+
const __iconNode$f = [
|
|
3674
3859
|
["circle", { cx: "18", cy: "5", r: "3", key: "gq8acd" }],
|
|
3675
3860
|
["circle", { cx: "6", cy: "12", r: "3", key: "w7nqdw" }],
|
|
3676
3861
|
["circle", { cx: "18", cy: "19", r: "3", key: "1xt0gg" }],
|
|
3677
3862
|
["line", { x1: "8.59", x2: "15.42", y1: "13.51", y2: "17.49", key: "47mynk" }],
|
|
3678
3863
|
["line", { x1: "15.41", x2: "8.59", y1: "6.51", y2: "10.49", key: "1n3mei" }]
|
|
3679
3864
|
];
|
|
3680
|
-
const Share2 = createLucideIcon("share-2", __iconNode$
|
|
3865
|
+
const Share2 = createLucideIcon("share-2", __iconNode$f);
|
|
3681
3866
|
|
|
3682
3867
|
/**
|
|
3683
3868
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3687,10 +3872,47 @@ const Share2 = createLucideIcon("share-2", __iconNode$a);
|
|
|
3687
3872
|
*/
|
|
3688
3873
|
|
|
3689
3874
|
|
|
3690
|
-
const __iconNode$
|
|
3875
|
+
const __iconNode$e = [
|
|
3876
|
+
[
|
|
3877
|
+
"path",
|
|
3878
|
+
{
|
|
3879
|
+
d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
|
|
3880
|
+
key: "oel41y"
|
|
3881
|
+
}
|
|
3882
|
+
],
|
|
3883
|
+
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
3884
|
+
];
|
|
3885
|
+
const ShieldCheck = createLucideIcon("shield-check", __iconNode$e);
|
|
3886
|
+
|
|
3887
|
+
/**
|
|
3888
|
+
* @license lucide-react v0.539.0 - ISC
|
|
3889
|
+
*
|
|
3890
|
+
* This source code is licensed under the ISC license.
|
|
3891
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
3892
|
+
*/
|
|
3893
|
+
|
|
3894
|
+
|
|
3895
|
+
const __iconNode$d = [
|
|
3896
|
+
[
|
|
3897
|
+
"path",
|
|
3898
|
+
{ d: "M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344", key: "2acyp4" }
|
|
3899
|
+
],
|
|
3900
|
+
["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
|
|
3901
|
+
];
|
|
3902
|
+
const SquareCheckBig = createLucideIcon("square-check-big", __iconNode$d);
|
|
3903
|
+
|
|
3904
|
+
/**
|
|
3905
|
+
* @license lucide-react v0.539.0 - ISC
|
|
3906
|
+
*
|
|
3907
|
+
* This source code is licensed under the ISC license.
|
|
3908
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
3909
|
+
*/
|
|
3910
|
+
|
|
3911
|
+
|
|
3912
|
+
const __iconNode$c = [
|
|
3691
3913
|
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }]
|
|
3692
3914
|
];
|
|
3693
|
-
const Square = createLucideIcon("square", __iconNode$
|
|
3915
|
+
const Square = createLucideIcon("square", __iconNode$c);
|
|
3694
3916
|
|
|
3695
3917
|
/**
|
|
3696
3918
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3700,12 +3922,12 @@ const Square = createLucideIcon("square", __iconNode$9);
|
|
|
3700
3922
|
*/
|
|
3701
3923
|
|
|
3702
3924
|
|
|
3703
|
-
const __iconNode$
|
|
3925
|
+
const __iconNode$b = [
|
|
3704
3926
|
["path", { d: "M16 4H9a3 3 0 0 0-2.83 4", key: "43sutm" }],
|
|
3705
3927
|
["path", { d: "M14 12a4 4 0 0 1 0 8H6", key: "nlfj13" }],
|
|
3706
3928
|
["line", { x1: "4", x2: "20", y1: "12", y2: "12", key: "1e0a9i" }]
|
|
3707
3929
|
];
|
|
3708
|
-
const Strikethrough = createLucideIcon("strikethrough", __iconNode$
|
|
3930
|
+
const Strikethrough = createLucideIcon("strikethrough", __iconNode$b);
|
|
3709
3931
|
|
|
3710
3932
|
/**
|
|
3711
3933
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3715,7 +3937,7 @@ const Strikethrough = createLucideIcon("strikethrough", __iconNode$8);
|
|
|
3715
3937
|
*/
|
|
3716
3938
|
|
|
3717
3939
|
|
|
3718
|
-
const __iconNode$
|
|
3940
|
+
const __iconNode$a = [
|
|
3719
3941
|
["circle", { cx: "12", cy: "12", r: "4", key: "4exip2" }],
|
|
3720
3942
|
["path", { d: "M12 2v2", key: "tus03m" }],
|
|
3721
3943
|
["path", { d: "M12 20v2", key: "1lh1kg" }],
|
|
@@ -3726,7 +3948,7 @@ const __iconNode$7 = [
|
|
|
3726
3948
|
["path", { d: "m6.34 17.66-1.41 1.41", key: "1m8zz5" }],
|
|
3727
3949
|
["path", { d: "m19.07 4.93-1.41 1.41", key: "1shlcs" }]
|
|
3728
3950
|
];
|
|
3729
|
-
const Sun = createLucideIcon("sun", __iconNode$
|
|
3951
|
+
const Sun = createLucideIcon("sun", __iconNode$a);
|
|
3730
3952
|
|
|
3731
3953
|
/**
|
|
3732
3954
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3736,14 +3958,28 @@ const Sun = createLucideIcon("sun", __iconNode$7);
|
|
|
3736
3958
|
*/
|
|
3737
3959
|
|
|
3738
3960
|
|
|
3739
|
-
const __iconNode$
|
|
3961
|
+
const __iconNode$9 = [
|
|
3962
|
+
["circle", { cx: "9", cy: "12", r: "3", key: "u3jwor" }],
|
|
3963
|
+
["rect", { width: "20", height: "14", x: "2", y: "5", rx: "7", key: "g7kal2" }]
|
|
3964
|
+
];
|
|
3965
|
+
const ToggleLeft = createLucideIcon("toggle-left", __iconNode$9);
|
|
3966
|
+
|
|
3967
|
+
/**
|
|
3968
|
+
* @license lucide-react v0.539.0 - ISC
|
|
3969
|
+
*
|
|
3970
|
+
* This source code is licensed under the ISC license.
|
|
3971
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
3972
|
+
*/
|
|
3973
|
+
|
|
3974
|
+
|
|
3975
|
+
const __iconNode$8 = [
|
|
3740
3976
|
["path", { d: "M10 11v6", key: "nco0om" }],
|
|
3741
3977
|
["path", { d: "M14 11v6", key: "outv1u" }],
|
|
3742
3978
|
["path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6", key: "miytrc" }],
|
|
3743
3979
|
["path", { d: "M3 6h18", key: "d0wm0j" }],
|
|
3744
3980
|
["path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2", key: "e791ji" }]
|
|
3745
3981
|
];
|
|
3746
|
-
const Trash2 = createLucideIcon("trash-2", __iconNode$
|
|
3982
|
+
const Trash2 = createLucideIcon("trash-2", __iconNode$8);
|
|
3747
3983
|
|
|
3748
3984
|
/**
|
|
3749
3985
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3753,7 +3989,7 @@ const Trash2 = createLucideIcon("trash-2", __iconNode$6);
|
|
|
3753
3989
|
*/
|
|
3754
3990
|
|
|
3755
3991
|
|
|
3756
|
-
const __iconNode$
|
|
3992
|
+
const __iconNode$7 = [
|
|
3757
3993
|
[
|
|
3758
3994
|
"path",
|
|
3759
3995
|
{
|
|
@@ -3764,7 +4000,7 @@ const __iconNode$5 = [
|
|
|
3764
4000
|
["path", { d: "M12 9v4", key: "juzpu7" }],
|
|
3765
4001
|
["path", { d: "M12 17h.01", key: "p32p05" }]
|
|
3766
4002
|
];
|
|
3767
|
-
const TriangleAlert = createLucideIcon("triangle-alert", __iconNode$
|
|
4003
|
+
const TriangleAlert = createLucideIcon("triangle-alert", __iconNode$7);
|
|
3768
4004
|
|
|
3769
4005
|
/**
|
|
3770
4006
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3774,11 +4010,26 @@ const TriangleAlert = createLucideIcon("triangle-alert", __iconNode$5);
|
|
|
3774
4010
|
*/
|
|
3775
4011
|
|
|
3776
4012
|
|
|
3777
|
-
const __iconNode$
|
|
4013
|
+
const __iconNode$6 = [
|
|
4014
|
+
["path", { d: "M12 4v16", key: "1654pz" }],
|
|
4015
|
+
["path", { d: "M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2", key: "e0r10z" }],
|
|
4016
|
+
["path", { d: "M9 20h6", key: "s66wpe" }]
|
|
4017
|
+
];
|
|
4018
|
+
const Type = createLucideIcon("type", __iconNode$6);
|
|
4019
|
+
|
|
4020
|
+
/**
|
|
4021
|
+
* @license lucide-react v0.539.0 - ISC
|
|
4022
|
+
*
|
|
4023
|
+
* This source code is licensed under the ISC license.
|
|
4024
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
4025
|
+
*/
|
|
4026
|
+
|
|
4027
|
+
|
|
4028
|
+
const __iconNode$5 = [
|
|
3778
4029
|
["path", { d: "M6 4v6a6 6 0 0 0 12 0V4", key: "9kb039" }],
|
|
3779
4030
|
["line", { x1: "4", x2: "20", y1: "20", y2: "20", key: "nun2al" }]
|
|
3780
4031
|
];
|
|
3781
|
-
const Underline$1 = createLucideIcon("underline", __iconNode$
|
|
4032
|
+
const Underline$1 = createLucideIcon("underline", __iconNode$5);
|
|
3782
4033
|
|
|
3783
4034
|
/**
|
|
3784
4035
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3788,11 +4039,11 @@ const Underline$1 = createLucideIcon("underline", __iconNode$4);
|
|
|
3788
4039
|
*/
|
|
3789
4040
|
|
|
3790
4041
|
|
|
3791
|
-
const __iconNode$
|
|
4042
|
+
const __iconNode$4 = [
|
|
3792
4043
|
["path", { d: "M3 7v6h6", key: "1v2h90" }],
|
|
3793
4044
|
["path", { d: "M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13", key: "1r6uu6" }]
|
|
3794
4045
|
];
|
|
3795
|
-
const Undo = createLucideIcon("undo", __iconNode$
|
|
4046
|
+
const Undo = createLucideIcon("undo", __iconNode$4);
|
|
3796
4047
|
|
|
3797
4048
|
/**
|
|
3798
4049
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -3802,12 +4053,28 @@ const Undo = createLucideIcon("undo", __iconNode$3);
|
|
|
3802
4053
|
*/
|
|
3803
4054
|
|
|
3804
4055
|
|
|
3805
|
-
const __iconNode$
|
|
4056
|
+
const __iconNode$3 = [
|
|
3806
4057
|
["path", { d: "M12 3v12", key: "1x0j5s" }],
|
|
3807
4058
|
["path", { d: "m17 8-5-5-5 5", key: "7q97r8" }],
|
|
3808
4059
|
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }]
|
|
3809
4060
|
];
|
|
3810
|
-
const Upload = createLucideIcon("upload", __iconNode$
|
|
4061
|
+
const Upload = createLucideIcon("upload", __iconNode$3);
|
|
4062
|
+
|
|
4063
|
+
/**
|
|
4064
|
+
* @license lucide-react v0.539.0 - ISC
|
|
4065
|
+
*
|
|
4066
|
+
* This source code is licensed under the ISC license.
|
|
4067
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
4068
|
+
*/
|
|
4069
|
+
|
|
4070
|
+
|
|
4071
|
+
const __iconNode$2 = [
|
|
4072
|
+
["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", key: "1yyitq" }],
|
|
4073
|
+
["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }],
|
|
4074
|
+
["line", { x1: "19", x2: "19", y1: "8", y2: "14", key: "1bvyxn" }],
|
|
4075
|
+
["line", { x1: "22", x2: "16", y1: "11", y2: "11", key: "1shjgl" }]
|
|
4076
|
+
];
|
|
4077
|
+
const UserPlus = createLucideIcon("user-plus", __iconNode$2);
|
|
3811
4078
|
|
|
3812
4079
|
/**
|
|
3813
4080
|
* @license lucide-react v0.539.0 - ISC
|
|
@@ -20817,7 +21084,7 @@ const DATE_FORMAT$1 = 'DD-MM-YYYY';
|
|
|
20817
21084
|
*/
|
|
20818
21085
|
const DEFAULT_INVENTORY_THUMBNAIL = '/default%20thumbnail.png';
|
|
20819
21086
|
|
|
20820
|
-
const formatDate$
|
|
21087
|
+
const formatDate$3 = (iso) => {
|
|
20821
21088
|
if (!iso)
|
|
20822
21089
|
return '-';
|
|
20823
21090
|
try {
|
|
@@ -20834,7 +21101,7 @@ const InfoCard = ({ info, title, refundToWallet, onRefundChange, }) => {
|
|
|
20834
21101
|
if (React.isValidElement(info))
|
|
20835
21102
|
return jsxRuntime.jsx("div", { className: "mt-3", children: info });
|
|
20836
21103
|
const i = info;
|
|
20837
|
-
return (jsxRuntime.jsx("div", { className: "mt-1 rounded-lg border bg-muted p-3 shadow-sm", children: jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [jsxRuntime.jsx("div", { className: "w-36 text-sm text-muted-foreground", children: "Date" }), jsxRuntime.jsx("div", { children: formatDate$
|
|
21104
|
+
return (jsxRuntime.jsx("div", { className: "mt-1 rounded-lg border bg-muted p-3 shadow-sm", children: jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [jsxRuntime.jsx("div", { className: "w-36 text-sm text-muted-foreground", children: "Date" }), jsxRuntime.jsx("div", { children: formatDate$3(i.invoiceDate) })] }), jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [jsxRuntime.jsx("div", { className: "w-36 text-sm text-muted-foreground", children: "Total" }), jsxRuntime.jsx("div", { className: "font-medium text-foreground", children: formatCurrencyWithTenantSymbol(i.totalAmount) })] }), i.paidAmount !== undefined && (jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [jsxRuntime.jsx("div", { className: "w-36 text-sm text-muted-foreground", children: "Paid" }), jsxRuntime.jsx("div", { className: "font-medium text-primary", children: formatCurrencyWithTenantSymbol(i.paidAmount) })] })), i.outstandingAmount !== undefined && (jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [jsxRuntime.jsx("div", { className: "w-36 text-sm text-muted-foreground", children: "Outstanding" }), jsxRuntime.jsx("div", { className: "font-medium text-muted-foreground", children: formatCurrencyWithTenantSymbol(i.outstandingAmount) })] })), title === 'Cancel Invoice' &&
|
|
20838
21105
|
!React.isValidElement(info) &&
|
|
20839
21106
|
(i?.paidAmount ?? 0) > 0 && (jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [jsxRuntime.jsx("div", { className: "w-36 whitespace-nowrap text-sm text-muted-foreground", children: "Refund to Wallet" }), jsxRuntime.jsx(Checkbox, { checked: !!refundToWallet, onCheckedChange: (v) => onRefundChange?.(Boolean(v)), className: "bg-card" })] })), (i.customerName || i.email) && (jsxRuntime.jsxs("div", { className: "mt-1 rounded bg-card p-2", children: [i.customerName && (jsxRuntime.jsx("div", { className: "text-sm font-medium", children: i.customerName })), i.email && (jsxRuntime.jsx("div", { className: "text-sm text-muted-foreground", children: i.email }))] }))] }) }));
|
|
20840
21107
|
};
|
|
@@ -22005,7 +22272,7 @@ function normalizeDates(context, ...dates) {
|
|
|
22005
22272
|
* const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
|
|
22006
22273
|
* //=> Tue Sep 02 2014 00:00:00
|
|
22007
22274
|
*/
|
|
22008
|
-
function startOfDay(date, options) {
|
|
22275
|
+
function startOfDay$1(date, options) {
|
|
22009
22276
|
const _date = toDate(date, options?.in);
|
|
22010
22277
|
_date.setHours(0, 0, 0, 0);
|
|
22011
22278
|
return _date;
|
|
@@ -22053,8 +22320,8 @@ function differenceInCalendarDays(laterDate, earlierDate, options) {
|
|
|
22053
22320
|
earlierDate,
|
|
22054
22321
|
);
|
|
22055
22322
|
|
|
22056
|
-
const laterStartOfDay = startOfDay(laterDate_);
|
|
22057
|
-
const earlierStartOfDay = startOfDay(earlierDate_);
|
|
22323
|
+
const laterStartOfDay = startOfDay$1(laterDate_);
|
|
22324
|
+
const earlierStartOfDay = startOfDay$1(earlierDate_);
|
|
22058
22325
|
|
|
22059
22326
|
const laterTimestamp =
|
|
22060
22327
|
+laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);
|
|
@@ -22385,7 +22652,7 @@ function isSameDay$1(laterDate, earlierDate, options) {
|
|
|
22385
22652
|
laterDate,
|
|
22386
22653
|
earlierDate,
|
|
22387
22654
|
);
|
|
22388
|
-
return +startOfDay(dateLeft_) === +startOfDay(dateRight_);
|
|
22655
|
+
return +startOfDay$1(dateLeft_) === +startOfDay$1(dateRight_);
|
|
22389
22656
|
}
|
|
22390
22657
|
|
|
22391
22658
|
/**
|
|
@@ -31321,7 +31588,7 @@ function parseDate(value, dateFormat, locale, strictParsing, refDate) {
|
|
|
31321
31588
|
var parsedDate = parse(value, format_1, refDate, {
|
|
31322
31589
|
locale: localeObject});
|
|
31323
31590
|
if (isValid(parsedDate) &&
|
|
31324
|
-
(!strictParsing || value === formatDate$
|
|
31591
|
+
(!strictParsing || value === formatDate$2(parsedDate, format_1, locale))) {
|
|
31325
31592
|
return parsedDate;
|
|
31326
31593
|
}
|
|
31327
31594
|
}
|
|
@@ -31349,7 +31616,7 @@ function isValid(date, minDate) {
|
|
|
31349
31616
|
* @param locale - The locale.
|
|
31350
31617
|
* @returns - The formatted date.
|
|
31351
31618
|
*/
|
|
31352
|
-
function formatDate$
|
|
31619
|
+
function formatDate$2(date, formatStr, locale) {
|
|
31353
31620
|
if (locale === "en") {
|
|
31354
31621
|
return format(date, formatStr, {
|
|
31355
31622
|
useAdditionalWeekYearTokens: true,
|
|
@@ -31379,7 +31646,7 @@ function safeDateFormat(date, _a) {
|
|
|
31379
31646
|
var formatStr = (Array.isArray(dateFormat) && dateFormat.length > 0
|
|
31380
31647
|
? dateFormat[0]
|
|
31381
31648
|
: dateFormat); // Cast to string because it's impossible to get `string | string[] | undefined` here and typescript doesn't know that
|
|
31382
|
-
return (date && formatDate$
|
|
31649
|
+
return (date && formatDate$2(date, formatStr, locale)) || "";
|
|
31383
31650
|
}
|
|
31384
31651
|
/**
|
|
31385
31652
|
* Used as a delimiter to separate two dates when formatting a date range
|
|
@@ -31453,7 +31720,7 @@ function getWeek(date) {
|
|
|
31453
31720
|
* @returns - The day of the week code.
|
|
31454
31721
|
*/
|
|
31455
31722
|
function getDayOfWeekCode(day, locale) {
|
|
31456
|
-
return formatDate$
|
|
31723
|
+
return formatDate$2(day, "ddd", locale);
|
|
31457
31724
|
}
|
|
31458
31725
|
// *** Start of ***
|
|
31459
31726
|
/**
|
|
@@ -31463,7 +31730,7 @@ function getDayOfWeekCode(day, locale) {
|
|
|
31463
31730
|
* @returns - The start of the day.
|
|
31464
31731
|
*/
|
|
31465
31732
|
function getStartOfDay(date) {
|
|
31466
|
-
return startOfDay(date);
|
|
31733
|
+
return startOfDay$1(date);
|
|
31467
31734
|
}
|
|
31468
31735
|
/**
|
|
31469
31736
|
* Gets the start of the week for a given date.
|
|
@@ -31515,7 +31782,7 @@ function getStartOfQuarter(date) {
|
|
|
31515
31782
|
* @returns - The start of today.
|
|
31516
31783
|
*/
|
|
31517
31784
|
function getStartOfToday() {
|
|
31518
|
-
return startOfDay(newDate());
|
|
31785
|
+
return startOfDay$1(newDate());
|
|
31519
31786
|
}
|
|
31520
31787
|
// *** End of ***
|
|
31521
31788
|
/**
|
|
@@ -31630,7 +31897,7 @@ function isEqual(date1, date2) {
|
|
|
31630
31897
|
*/
|
|
31631
31898
|
function isDayInRange(day, startDate, endDate) {
|
|
31632
31899
|
var valid;
|
|
31633
|
-
var start = startOfDay(startDate);
|
|
31900
|
+
var start = startOfDay$1(startDate);
|
|
31634
31901
|
var end = endOfDay(endDate);
|
|
31635
31902
|
try {
|
|
31636
31903
|
valid = isWithinInterval(day, { start: start, end: end });
|
|
@@ -31676,7 +31943,7 @@ function getLocaleObject(localeSpec) {
|
|
|
31676
31943
|
* @returns - The formatted weekday.
|
|
31677
31944
|
*/
|
|
31678
31945
|
function getFormattedWeekdayInLocale(date, formatFunc, locale) {
|
|
31679
|
-
return formatFunc(formatDate$
|
|
31946
|
+
return formatFunc(formatDate$2(date, "EEEE", locale));
|
|
31680
31947
|
}
|
|
31681
31948
|
/**
|
|
31682
31949
|
* Gets the minimum weekday in a given locale.
|
|
@@ -31686,7 +31953,7 @@ function getFormattedWeekdayInLocale(date, formatFunc, locale) {
|
|
|
31686
31953
|
* @returns - The minimum weekday.
|
|
31687
31954
|
*/
|
|
31688
31955
|
function getWeekdayMinInLocale(date, locale) {
|
|
31689
|
-
return formatDate$
|
|
31956
|
+
return formatDate$2(date, "EEEEEE", locale);
|
|
31690
31957
|
}
|
|
31691
31958
|
/**
|
|
31692
31959
|
* Gets the short weekday in a given locale.
|
|
@@ -31696,7 +31963,7 @@ function getWeekdayMinInLocale(date, locale) {
|
|
|
31696
31963
|
* @returns - The short weekday.
|
|
31697
31964
|
*/
|
|
31698
31965
|
function getWeekdayShortInLocale(date, locale) {
|
|
31699
|
-
return formatDate$
|
|
31966
|
+
return formatDate$2(date, "EEE", locale);
|
|
31700
31967
|
}
|
|
31701
31968
|
/**
|
|
31702
31969
|
* Gets the month in a given locale.
|
|
@@ -31706,7 +31973,7 @@ function getWeekdayShortInLocale(date, locale) {
|
|
|
31706
31973
|
* @returns - The month.
|
|
31707
31974
|
*/
|
|
31708
31975
|
function getMonthInLocale(month, locale) {
|
|
31709
|
-
return formatDate$
|
|
31976
|
+
return formatDate$2(setMonth(newDate(), month), "LLLL", locale);
|
|
31710
31977
|
}
|
|
31711
31978
|
/**
|
|
31712
31979
|
* Gets the short month in a given locale.
|
|
@@ -31716,7 +31983,7 @@ function getMonthInLocale(month, locale) {
|
|
|
31716
31983
|
* @returns - The short month.
|
|
31717
31984
|
*/
|
|
31718
31985
|
function getMonthShortInLocale(month, locale) {
|
|
31719
|
-
return formatDate$
|
|
31986
|
+
return formatDate$2(setMonth(newDate(), month), "LLL", locale);
|
|
31720
31987
|
}
|
|
31721
31988
|
/**
|
|
31722
31989
|
* Gets the short quarter in a given locale.
|
|
@@ -31726,7 +31993,7 @@ function getMonthShortInLocale(month, locale) {
|
|
|
31726
31993
|
* @returns - The short quarter.
|
|
31727
31994
|
*/
|
|
31728
31995
|
function getQuarterShortInLocale(quarter, locale) {
|
|
31729
|
-
return formatDate$
|
|
31996
|
+
return formatDate$2(setQuarter(newDate(), quarter), "QQQ", locale);
|
|
31730
31997
|
}
|
|
31731
31998
|
/**
|
|
31732
31999
|
* Checks if a day is disabled.
|
|
@@ -32056,7 +32323,7 @@ function getHighLightDaysMap(highlightDates, defaultClassName) {
|
|
|
32056
32323
|
for (var i = 0, len = highlightDates.length; i < len; i++) {
|
|
32057
32324
|
var obj = highlightDates[i];
|
|
32058
32325
|
if (isDate(obj)) {
|
|
32059
|
-
var key = formatDate$
|
|
32326
|
+
var key = formatDate$2(obj, "MM.dd.yyyy");
|
|
32060
32327
|
var classNamesArr = dateClasses.get(key) || [];
|
|
32061
32328
|
if (!classNamesArr.includes(defaultClassName)) {
|
|
32062
32329
|
classNamesArr.push(defaultClassName);
|
|
@@ -32071,7 +32338,7 @@ function getHighLightDaysMap(highlightDates, defaultClassName) {
|
|
|
32071
32338
|
for (var k = 0, len_1 = arrOfDates.length; k < len_1; k++) {
|
|
32072
32339
|
var dateK = arrOfDates[k];
|
|
32073
32340
|
if (dateK) {
|
|
32074
|
-
var key = formatDate$
|
|
32341
|
+
var key = formatDate$2(dateK, "MM.dd.yyyy");
|
|
32075
32342
|
var classNamesArr = dateClasses.get(key) || [];
|
|
32076
32343
|
if (!classNamesArr.includes(className)) {
|
|
32077
32344
|
classNamesArr.push(className);
|
|
@@ -32111,7 +32378,7 @@ function getHolidaysMap(holidayDates, defaultClassName) {
|
|
|
32111
32378
|
if (!isDate(dateObj)) {
|
|
32112
32379
|
return;
|
|
32113
32380
|
}
|
|
32114
|
-
var key = formatDate$
|
|
32381
|
+
var key = formatDate$2(dateObj, "MM.dd.yyyy");
|
|
32115
32382
|
var classNamesObj = dateClasses.get(key) || {
|
|
32116
32383
|
className: "",
|
|
32117
32384
|
holidayNames: [],
|
|
@@ -32485,7 +32752,7 @@ var Day = /** @class */ (function (_super) {
|
|
|
32485
32752
|
return false;
|
|
32486
32753
|
}
|
|
32487
32754
|
// Looking for className in the Map of {'day string, 'className'}
|
|
32488
|
-
var dayStr = formatDate$
|
|
32755
|
+
var dayStr = formatDate$2(day, "MM.dd.yyyy");
|
|
32489
32756
|
return highlightDates.get(dayStr);
|
|
32490
32757
|
};
|
|
32491
32758
|
// Function to return the array containing className associated to the date
|
|
@@ -32496,7 +32763,7 @@ var Day = /** @class */ (function (_super) {
|
|
|
32496
32763
|
// For type consistency no other reasons
|
|
32497
32764
|
return [undefined];
|
|
32498
32765
|
}
|
|
32499
|
-
var dayStr = formatDate$
|
|
32766
|
+
var dayStr = formatDate$2(day, "MM.dd.yyyy");
|
|
32500
32767
|
// Looking for className in the Map of {day string: {className, holidayName}}
|
|
32501
32768
|
if (holidays.has(dayStr)) {
|
|
32502
32769
|
return [(_a = holidays.get(dayStr)) === null || _a === void 0 ? void 0 : _a.className];
|
|
@@ -32637,12 +32904,12 @@ var Day = /** @class */ (function (_super) {
|
|
|
32637
32904
|
var prefix = _this.isDisabled() || _this.isExcluded()
|
|
32638
32905
|
? ariaLabelPrefixWhenDisabled
|
|
32639
32906
|
: ariaLabelPrefixWhenEnabled;
|
|
32640
|
-
return "".concat(prefix, " ").concat(formatDate$
|
|
32907
|
+
return "".concat(prefix, " ").concat(formatDate$2(day, "PPPP", _this.props.locale));
|
|
32641
32908
|
};
|
|
32642
32909
|
// A function to return the holiday's name as title's content
|
|
32643
32910
|
_this.getTitle = function () {
|
|
32644
32911
|
var _a = _this.props, day = _a.day, _b = _a.holidays, holidays = _b === void 0 ? new Map() : _b, excludeDates = _a.excludeDates;
|
|
32645
|
-
var compareDt = formatDate$
|
|
32912
|
+
var compareDt = formatDate$2(day, "MM.dd.yyyy");
|
|
32646
32913
|
var titles = [];
|
|
32647
32914
|
if (holidays.has(compareDt)) {
|
|
32648
32915
|
titles.push.apply(titles, holidays.get(compareDt).holidayNames);
|
|
@@ -33568,7 +33835,7 @@ var Month = /** @class */ (function (_super) {
|
|
|
33568
33835
|
var prefix = _this.isDisabled(labelDate) || _this.isExcluded(labelDate)
|
|
33569
33836
|
? disabledDayAriaLabelPrefix
|
|
33570
33837
|
: chooseDayAriaLabelPrefix;
|
|
33571
|
-
return "".concat(prefix, " ").concat(formatDate$
|
|
33838
|
+
return "".concat(prefix, " ").concat(formatDate$2(labelDate, "MMMM yyyy", locale));
|
|
33572
33839
|
};
|
|
33573
33840
|
_this.getQuarterClassNames = function (q) {
|
|
33574
33841
|
var _a = _this.props, day = _a.day, startDate = _a.startDate, endDate = _a.endDate, minDate = _a.minDate, maxDate = _a.maxDate, excludeDates = _a.excludeDates, includeDates = _a.includeDates, filterDate = _a.filterDate, preSelection = _a.preSelection, disabledKeyboardNavigation = _a.disabledKeyboardNavigation, disabled = _a.disabled;
|
|
@@ -33670,7 +33937,7 @@ var Month = /** @class */ (function (_super) {
|
|
|
33670
33937
|
: "";
|
|
33671
33938
|
// Format aria-label, return empty string if date is invalid
|
|
33672
33939
|
var formattedAriaLabel = isValid(day)
|
|
33673
|
-
? "".concat(formattedAriaLabelPrefix).concat(formatDate$
|
|
33940
|
+
? "".concat(formattedAriaLabelPrefix).concat(formatDate$2(day, "MMMM, yyyy", this.props.locale))
|
|
33674
33941
|
: "";
|
|
33675
33942
|
var shouldUseListboxRole = showMonthYearPicker || showQuarterYearPicker;
|
|
33676
33943
|
if (shouldUseListboxRole) {
|
|
@@ -33813,7 +34080,7 @@ var MonthYearDropdownOptions = /** @class */ (function (_super) {
|
|
|
33813
34080
|
? "react-datepicker__month-year-option--selected_month-year"
|
|
33814
34081
|
: "react-datepicker__month-year-option", key: monthYearPoint, onClick: _this.onChange.bind(_this, monthYearPoint), "aria-selected": isSameMonthYear ? "true" : undefined },
|
|
33815
34082
|
isSameMonthYear ? (React.createElement("span", { className: "react-datepicker__month-year-option--selected" }, "\u2713")) : (""),
|
|
33816
|
-
formatDate$
|
|
34083
|
+
formatDate$2(monthYear, _this.props.dateFormat, _this.props.locale)));
|
|
33817
34084
|
});
|
|
33818
34085
|
};
|
|
33819
34086
|
_this.onChange = function (monthYear) { return _this.props.onChange(monthYear); };
|
|
@@ -33848,7 +34115,7 @@ var MonthYearDropdown = /** @class */ (function (_super) {
|
|
|
33848
34115
|
var options = [];
|
|
33849
34116
|
while (!isAfter$1(currDate, lastDate)) {
|
|
33850
34117
|
var timePoint = getTime(currDate);
|
|
33851
|
-
options.push(React.createElement("option", { key: timePoint, value: timePoint }, formatDate$
|
|
34118
|
+
options.push(React.createElement("option", { key: timePoint, value: timePoint }, formatDate$2(currDate, _this.props.dateFormat, _this.props.locale)));
|
|
33852
34119
|
currDate = addMonths(currDate, 1);
|
|
33853
34120
|
}
|
|
33854
34121
|
return options;
|
|
@@ -33858,7 +34125,7 @@ var MonthYearDropdown = /** @class */ (function (_super) {
|
|
|
33858
34125
|
};
|
|
33859
34126
|
_this.renderSelectMode = function () { return (React.createElement("select", { value: getTime(getStartOfMonth(_this.props.date)), className: "react-datepicker__month-year-select", onChange: _this.onSelectChange }, _this.renderSelectOptions())); };
|
|
33860
34127
|
_this.renderReadView = function (visible) {
|
|
33861
|
-
var yearMonth = formatDate$
|
|
34128
|
+
var yearMonth = formatDate$2(_this.props.date, _this.props.dateFormat, _this.props.locale);
|
|
33862
34129
|
return (React.createElement("div", { key: "read", style: { visibility: visible ? "visible" : "hidden" }, className: "react-datepicker__month-year-read-view", onClick: _this.toggleDropdown },
|
|
33863
34130
|
React.createElement("span", { className: "react-datepicker__month-year-read-view--down-arrow" }),
|
|
33864
34131
|
React.createElement("span", { className: "react-datepicker__month-year-read-view--selected-month-year" }, yearMonth)));
|
|
@@ -34027,7 +34294,7 @@ var Time = /** @class */ (function (_super) {
|
|
|
34027
34294
|
}
|
|
34028
34295
|
}, onKeyDown: function (event) {
|
|
34029
34296
|
_this.handleOnKeyDown(event, time);
|
|
34030
|
-
}, tabIndex: time === timeToFocus ? 0 : -1, role: "option", "aria-selected": _this.isSelectedTime(time) ? "true" : undefined, "aria-disabled": _this.isDisabledTime(time) ? "true" : undefined }, formatDate$
|
|
34297
|
+
}, tabIndex: time === timeToFocus ? 0 : -1, role: "option", "aria-selected": _this.isSelectedTime(time) ? "true" : undefined, "aria-disabled": _this.isDisabledTime(time) ? "true" : undefined }, formatDate$2(time, format, _this.props.locale)));
|
|
34031
34298
|
});
|
|
34032
34299
|
};
|
|
34033
34300
|
_this.renderTimeCaption = function () {
|
|
@@ -34798,7 +35065,7 @@ var Calendar = /** @class */ (function (_super) {
|
|
|
34798
35065
|
? _this.props.weekDayClassName(day)
|
|
34799
35066
|
: undefined;
|
|
34800
35067
|
return (React.createElement("div", { key: offset, role: "columnheader", className: clsx("react-datepicker__day-name", weekDayClassName, disabled ? "react-datepicker__day-name--disabled" : "") },
|
|
34801
|
-
React.createElement("span", { className: "react-datepicker__sr-only" }, formatDate$
|
|
35068
|
+
React.createElement("span", { className: "react-datepicker__sr-only" }, formatDate$2(day, "EEEE", _this.props.locale)),
|
|
34802
35069
|
React.createElement("span", { "aria-hidden": "true" }, weekDayName)));
|
|
34803
35070
|
}));
|
|
34804
35071
|
};
|
|
@@ -34978,7 +35245,7 @@ var Calendar = /** @class */ (function (_super) {
|
|
|
34978
35245
|
classes.push("react-datepicker__current-month--hasMonthYearDropdown");
|
|
34979
35246
|
}
|
|
34980
35247
|
return (React.createElement("h2", { className: classes.join(" ") }, isValid(date)
|
|
34981
|
-
? formatDate$
|
|
35248
|
+
? formatDate$2(date, _this.props.dateFormat, _this.props.locale)
|
|
34982
35249
|
: ""));
|
|
34983
35250
|
};
|
|
34984
35251
|
_this.renderYearDropdown = function (overrideHide) {
|
|
@@ -35962,7 +36229,7 @@ var DatePicker = /** @class */ (function (_super) {
|
|
|
35962
36229
|
var newMinutes = Math.min(maxMinutes, currentMinutes + timeIntervals);
|
|
35963
36230
|
newTime = addMinutes(baseDate, newMinutes);
|
|
35964
36231
|
}
|
|
35965
|
-
var formattedTime = formatDate$
|
|
36232
|
+
var formattedTime = formatDate$2(newTime, formatStr || DatePicker.defaultProps.dateFormat, _this.props.locale);
|
|
35966
36233
|
_this.setState({
|
|
35967
36234
|
preSelection: newTime,
|
|
35968
36235
|
inputValue: formattedTime,
|
|
@@ -36576,7 +36843,7 @@ function computeDateBounds(min, max) {
|
|
|
36576
36843
|
maxYear: maxDate ? moment(maxDate, BOUND_FORMAT).year() : undefined,
|
|
36577
36844
|
};
|
|
36578
36845
|
}
|
|
36579
|
-
function formatDate(value) {
|
|
36846
|
+
function formatDate$1(value) {
|
|
36580
36847
|
return value ? moment(value).format(DATE_FORMAT) : '';
|
|
36581
36848
|
}
|
|
36582
36849
|
function toBoundDate(bound) {
|
|
@@ -36650,7 +36917,7 @@ function useDateInput({ value, onChange, onBlur, min, max, disabled, }) {
|
|
|
36650
36917
|
const inputRef = React.useRef(null);
|
|
36651
36918
|
const caretRef = React.useRef(null);
|
|
36652
36919
|
const bounds = computeDateBounds(min, max);
|
|
36653
|
-
const formatted = formatDate(value);
|
|
36920
|
+
const formatted = formatDate$1(value);
|
|
36654
36921
|
const [text, setText] = React.useState(formatted);
|
|
36655
36922
|
const [syncedValue, setSyncedValue] = React.useState(formatted);
|
|
36656
36923
|
// Adopt `value` whenever it changes from the outside — a form reset, a
|
|
@@ -36684,7 +36951,7 @@ function useDateInput({ value, onChange, onBlur, min, max, disabled, }) {
|
|
|
36684
36951
|
}
|
|
36685
36952
|
};
|
|
36686
36953
|
const commit = (date) => {
|
|
36687
|
-
const next = formatDate(date);
|
|
36954
|
+
const next = formatDate$1(date);
|
|
36688
36955
|
setText(next);
|
|
36689
36956
|
setSyncedValue(next);
|
|
36690
36957
|
onChange(date);
|
|
@@ -36961,6 +37228,348 @@ const FilterSelect = ({ label, value, onValueChange, options, resetValue = 'all'
|
|
|
36961
37228
|
return (jsxRuntime.jsxs(Select, { value: value, onValueChange: onValueChange, keepOpenOnSelect: true, children: [jsxRuntime.jsxs(SelectTrigger, { className: cn(TRIGGER_BASE, active && TRIGGER_ACTIVE, triggerClassName), children: [jsxRuntime.jsx(Funnel, { className: cn('h-4 w-4 shrink-0', active ? 'text-primary' : 'text-muted-foreground'), "aria-hidden": "true" }), jsxRuntime.jsxs("span", { className: "flex items-center gap-1", children: [jsxRuntime.jsx(SelectValue, { placeholder: label }), active && (jsxRuntime.jsx("span", { className: "ml-1 inline-flex h-4 min-w-4 items-center justify-center rounded bg-primary/10 px-1 text-[10px] font-semibold leading-none text-primary", children: activeCount }))] })] }), jsxRuntime.jsxs(SelectContent, { className: cn(CONTENT_BASE, contentClassName), searchable: searchable, children: [jsxRuntime.jsx(SelectItem, { value: resetValue, withCheckbox: true, children: label }), options.map((opt) => (jsxRuntime.jsx(SelectItem, { value: opt.value, searchValue: opt.searchValue, withCheckbox: true, children: opt.label }, opt.value)))] })] }));
|
|
36962
37229
|
};
|
|
36963
37230
|
|
|
37231
|
+
/**
|
|
37232
|
+
* Horizontal row of option cards behaving as a radio group.
|
|
37233
|
+
* Selected option highlights with primary border + light green background + filled dot.
|
|
37234
|
+
* Unselected options have an empty circle indicator.
|
|
37235
|
+
*/
|
|
37236
|
+
function RadioCardGroup({ value, onChange, options, className, disabled, name, ariaLabel, iconSize = 'sm', }) {
|
|
37237
|
+
const iconSizeClasses = iconSize === 'xl'
|
|
37238
|
+
? '[&_svg]:h-10 [&_svg]:w-10'
|
|
37239
|
+
: iconSize === 'lg'
|
|
37240
|
+
? '[&_svg]:h-6 [&_svg]:w-6'
|
|
37241
|
+
: '[&_svg]:h-4 [&_svg]:w-4';
|
|
37242
|
+
return (jsxRuntime.jsx("div", { role: "radiogroup", "aria-label": ariaLabel, className: cn('grid w-full grid-cols-2 gap-3 sm:grid-cols-4', className), children: options.map((opt) => {
|
|
37243
|
+
const selected = value === opt.value;
|
|
37244
|
+
const isDisabled = disabled || opt.disabled;
|
|
37245
|
+
return (jsxRuntime.jsxs("button", { type: "button", role: "radio", "aria-checked": selected, disabled: isDisabled, "data-state": selected ? 'checked' : 'unchecked', onClick: () => !isDisabled && onChange(opt.value), name: name, className: cn('flex w-full cursor-pointer gap-3 rounded-md border px-3 text-sm font-medium shadow-[0_1px_2px_0_rgba(0,0,0,0.05)] transition-colors disabled:cursor-not-allowed', 'outline-none focus-visible:ring-2 focus-visible:ring-primary/30', opt.description
|
|
37246
|
+
? 'min-h-14 items-start py-2 text-left'
|
|
37247
|
+
: 'h-9 items-center py-1.5', selected
|
|
37248
|
+
? 'border-primary bg-primary/10 text-primary'
|
|
37249
|
+
: 'border-transparent bg-[#FAFAFA] text-foreground dark:bg-[#262626]', isDisabled && 'cursor-not-allowed opacity-50'), children: [jsxRuntime.jsx("span", { "aria-hidden": "true", className: cn('relative inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full border', opt.description && 'mt-[3px]', selected ? 'border-primary' : 'border-gray-300'), children: selected && (jsxRuntime.jsx("span", { className: "block h-2 w-2 rounded-full bg-primary" })) }), jsxRuntime.jsxs("span", { className: "flex min-w-0 flex-1 flex-col items-start", children: [jsxRuntime.jsx("span", { className: "truncate", children: opt.label }), opt.description && (jsxRuntime.jsx("span", { className: cn('mt-0.5 text-xs font-normal', selected ? 'text-primary/80' : 'text-label'), children: opt.description }))] }), opt.icon && (jsxRuntime.jsx("span", { "aria-hidden": "true", className: cn('inline-flex shrink-0 items-center', iconSizeClasses, selected ? 'text-primary' : 'text-label'), children: opt.icon }))] }, opt.value));
|
|
37250
|
+
}) }));
|
|
37251
|
+
}
|
|
37252
|
+
|
|
37253
|
+
/**
|
|
37254
|
+
* One scrolling column of the picker (hours, minutes or period). The selected
|
|
37255
|
+
* row is scrolled into view whenever it changes, so reopening the popover lands
|
|
37256
|
+
* on the current value instead of at midnight.
|
|
37257
|
+
*/
|
|
37258
|
+
function TimeColumn({ label, options, selected, onSelect, }) {
|
|
37259
|
+
const listRef = React.useRef(null);
|
|
37260
|
+
const activeRef = React.useRef(null);
|
|
37261
|
+
React.useEffect(() => {
|
|
37262
|
+
const list = listRef.current;
|
|
37263
|
+
const active = activeRef.current;
|
|
37264
|
+
if (!list || !active)
|
|
37265
|
+
return;
|
|
37266
|
+
// `scrollIntoView` would scroll the page as well as the column.
|
|
37267
|
+
list.scrollTop =
|
|
37268
|
+
active.offsetTop - list.clientHeight / 2 + active.clientHeight / 2;
|
|
37269
|
+
}, [selected]);
|
|
37270
|
+
return (jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col", children: [jsxRuntime.jsx("span", { className: "px-1 pb-1.5 text-center text-[11px] font-medium uppercase tracking-wide text-muted-foreground", children: label }), jsxRuntime.jsx("div", { ref: listRef, role: "listbox", "aria-label": label, className: "scrollbar-thin h-[184px] overflow-y-auto px-1", children: jsxRuntime.jsx("div", { className: "flex flex-col gap-0.5", children: options.map((option) => {
|
|
37271
|
+
const isSelected = option.value === selected;
|
|
37272
|
+
return (jsxRuntime.jsx("button", { ref: isSelected ? activeRef : undefined, type: "button", role: "option", "aria-selected": isSelected, onClick: () => onSelect(option.value), className: cn('rounded-md px-3 py-1.5 text-center text-sm tabular-nums transition-colors', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', isSelected
|
|
37273
|
+
? 'bg-primary text-primary-foreground'
|
|
37274
|
+
: 'text-foreground hover:bg-muted'), children: option.label }, option.value));
|
|
37275
|
+
}) }) })] }));
|
|
37276
|
+
}
|
|
37277
|
+
|
|
37278
|
+
const TIME_PATTERN = /^(\d{1,2}):(\d{2})(?::\d{2})?$/;
|
|
37279
|
+
const pad = (n) => String(n).padStart(2, '0');
|
|
37280
|
+
/** Reads `HH:mm` / `HH:mm:ss`. Returns null for anything out of range. */
|
|
37281
|
+
function parseTimeValue(value) {
|
|
37282
|
+
const match = TIME_PATTERN.exec((value ?? '').trim());
|
|
37283
|
+
if (!match)
|
|
37284
|
+
return null;
|
|
37285
|
+
const hour = Number(match[1]);
|
|
37286
|
+
const minute = Number(match[2]);
|
|
37287
|
+
if (hour > 23 || minute > 59)
|
|
37288
|
+
return null;
|
|
37289
|
+
return { hour, minute };
|
|
37290
|
+
}
|
|
37291
|
+
/** The stored form — always 24-hour, whatever the display format. */
|
|
37292
|
+
function toTimeValue(hour, minute) {
|
|
37293
|
+
return `${pad(hour)}:${pad(minute)}`;
|
|
37294
|
+
}
|
|
37295
|
+
function formatTimeDisplay(time, use24Hour) {
|
|
37296
|
+
if (use24Hour)
|
|
37297
|
+
return toTimeValue(time.hour, time.minute);
|
|
37298
|
+
// 0 and 12 both map to 12 — midnight is 12 AM, noon is 12 PM.
|
|
37299
|
+
const hour12 = time.hour % 12 === 0 ? 12 : time.hour % 12;
|
|
37300
|
+
const period = time.hour < 12 ? 'AM' : 'PM';
|
|
37301
|
+
return `${pad(hour12)}:${pad(time.minute)} ${period}`;
|
|
37302
|
+
}
|
|
37303
|
+
function buildHourOptions(use24Hour) {
|
|
37304
|
+
if (use24Hour) {
|
|
37305
|
+
return Array.from({ length: 24 }, (_, hour) => ({
|
|
37306
|
+
value: hour,
|
|
37307
|
+
label: pad(hour),
|
|
37308
|
+
}));
|
|
37309
|
+
}
|
|
37310
|
+
// 12 first, matching how a clock reads.
|
|
37311
|
+
return Array.from({ length: 12 }, (_, index) => {
|
|
37312
|
+
const hour12 = index === 0 ? 12 : index;
|
|
37313
|
+
return { value: hour12, label: pad(hour12) };
|
|
37314
|
+
});
|
|
37315
|
+
}
|
|
37316
|
+
function buildMinuteOptions(step) {
|
|
37317
|
+
const safeStep = Number.isFinite(step) && step > 0 ? Math.floor(step) : 1;
|
|
37318
|
+
const options = [];
|
|
37319
|
+
for (let minute = 0; minute < 60; minute += safeStep) {
|
|
37320
|
+
options.push({ value: minute, label: pad(minute) });
|
|
37321
|
+
}
|
|
37322
|
+
return options;
|
|
37323
|
+
}
|
|
37324
|
+
/** The hour as the 12-hour column shows it (12, 1…11). */
|
|
37325
|
+
function toHour12(hour) {
|
|
37326
|
+
return hour % 12 === 0 ? 12 : hour % 12;
|
|
37327
|
+
}
|
|
37328
|
+
/** Rebuilds a 24-hour hour from a 12-hour column value and its period. */
|
|
37329
|
+
function fromHour12(hour12, period) {
|
|
37330
|
+
const base = hour12 % 12;
|
|
37331
|
+
return period === 'PM' ? base + 12 : base;
|
|
37332
|
+
}
|
|
37333
|
+
function periodOf(hour) {
|
|
37334
|
+
return hour < 12 ? 'AM' : 'PM';
|
|
37335
|
+
}
|
|
37336
|
+
|
|
37337
|
+
// Only one TimePicker popover should be open at a time — same coordination the
|
|
37338
|
+
// DateInput uses, for the same reason: each is its own `modal` Radix Popover, so
|
|
37339
|
+
// opening a second does not dismiss the first by outside-click.
|
|
37340
|
+
const TIMEPICKER_OPEN_EVENT = 'caratlogic:timepicker-open';
|
|
37341
|
+
const PERIOD_OPTIONS = [
|
|
37342
|
+
{ value: 0, label: 'AM' },
|
|
37343
|
+
{ value: 1, label: 'PM' },
|
|
37344
|
+
];
|
|
37345
|
+
function TimePicker({ value, onChange, onBlur, name, className, disabled, placeholder = 'Select time', use24Hour = false, minuteStep = 1, hideFooter = false, }) {
|
|
37346
|
+
const [open, setOpen] = React.useState(false);
|
|
37347
|
+
const instanceId = React.useId();
|
|
37348
|
+
const parsed = parseTimeValue(value);
|
|
37349
|
+
React.useEffect(() => {
|
|
37350
|
+
const onOtherOpen = (e) => {
|
|
37351
|
+
if (e.detail !== instanceId)
|
|
37352
|
+
setOpen(false);
|
|
37353
|
+
};
|
|
37354
|
+
window.addEventListener(TIMEPICKER_OPEN_EVENT, onOtherOpen);
|
|
37355
|
+
return () => window.removeEventListener(TIMEPICKER_OPEN_EVENT, onOtherOpen);
|
|
37356
|
+
}, [instanceId]);
|
|
37357
|
+
const handleOpenChange = (next) => {
|
|
37358
|
+
setOpen(next);
|
|
37359
|
+
if (next) {
|
|
37360
|
+
window.dispatchEvent(new CustomEvent(TIMEPICKER_OPEN_EVENT, { detail: instanceId }));
|
|
37361
|
+
}
|
|
37362
|
+
};
|
|
37363
|
+
/** Picking one column before the others commits against a 00:00 baseline. */
|
|
37364
|
+
const commit = (hour, minute) => {
|
|
37365
|
+
onChange(toTimeValue(hour, minute));
|
|
37366
|
+
};
|
|
37367
|
+
const handleHour = (picked) => {
|
|
37368
|
+
const minute = parsed?.minute ?? 0;
|
|
37369
|
+
if (use24Hour) {
|
|
37370
|
+
commit(picked, minute);
|
|
37371
|
+
return;
|
|
37372
|
+
}
|
|
37373
|
+
commit(fromHour12(picked, parsed ? periodOf(parsed.hour) : 'AM'), minute);
|
|
37374
|
+
};
|
|
37375
|
+
const handleMinute = (picked) => {
|
|
37376
|
+
commit(parsed?.hour ?? 0, picked);
|
|
37377
|
+
};
|
|
37378
|
+
const handlePeriod = (picked) => {
|
|
37379
|
+
const period = picked === 0 ? 'AM' : 'PM';
|
|
37380
|
+
const hour12 = parsed ? toHour12(parsed.hour) : 12;
|
|
37381
|
+
commit(fromHour12(hour12, period), parsed?.minute ?? 0);
|
|
37382
|
+
};
|
|
37383
|
+
const selectedHour = parsed
|
|
37384
|
+
? use24Hour
|
|
37385
|
+
? parsed.hour
|
|
37386
|
+
: toHour12(parsed.hour)
|
|
37387
|
+
: null;
|
|
37388
|
+
// NOTE: `open` is driven from the button's onClick rather than
|
|
37389
|
+
// <PopoverTrigger>, matching DateInput — inside a modal <SlideOut> the
|
|
37390
|
+
// trigger's built-in toggle does not fire in Safari. <PopoverAnchor> is pure
|
|
37391
|
+
// positioning, so a single controlled toggle stays the only source of truth.
|
|
37392
|
+
return (jsxRuntime.jsxs(Popover, { open: open, onOpenChange: handleOpenChange, modal: true, children: [jsxRuntime.jsx(PopoverAnchor, { asChild: true, children: jsxRuntime.jsxs("button", { type: "button", name: name, onBlur: onBlur, disabled: disabled, "aria-haspopup": "dialog", "aria-expanded": open, onClick: () => {
|
|
37393
|
+
if (!disabled)
|
|
37394
|
+
handleOpenChange(!open);
|
|
37395
|
+
}, "data-slot": "input", "data-empty": !parsed || 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/50 text-label', className), children: [jsxRuntime.jsx("span", { className: cn('truncate text-sm md:text-sm', parsed ? 'text-foreground' : 'text-placeholder'), children: parsed ? formatTimeDisplay(parsed, use24Hour) : placeholder }), jsxRuntime.jsx("span", { className: "inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground", children: jsxRuntime.jsx(Clock, { className: "h-4 w-4 stroke-[1.75]" }) })] }) }), jsxRuntime.jsxs(PopoverContent, { align: "start", className: "w-auto p-3", children: [jsxRuntime.jsxs("div", { className: "flex gap-1", children: [jsxRuntime.jsx(TimeColumn, { label: "Hour", options: buildHourOptions(use24Hour), selected: selectedHour, onSelect: handleHour }), jsxRuntime.jsx(TimeColumn, { label: "Min", options: buildMinuteOptions(minuteStep), selected: parsed?.minute ?? null, onSelect: handleMinute }), !use24Hour && (jsxRuntime.jsx(TimeColumn, { label: "AM/PM", options: PERIOD_OPTIONS, selected: parsed ? (periodOf(parsed.hour) === 'AM' ? 0 : 1) : null, onSelect: handlePeriod }))] }), !hideFooter && (jsxRuntime.jsxs("div", { className: "mt-2 flex items-center justify-between gap-2 border-t border-border pt-2", children: [jsxRuntime.jsx("button", { type: "button", onClick: () => {
|
|
37396
|
+
onChange(undefined);
|
|
37397
|
+
setOpen(false);
|
|
37398
|
+
}, className: "rounded-md px-2 py-1 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: "Clear" }), jsxRuntime.jsx("button", { type: "button", onClick: () => {
|
|
37399
|
+
const now = new Date();
|
|
37400
|
+
commit(now.getHours(), now.getMinutes());
|
|
37401
|
+
setOpen(false);
|
|
37402
|
+
}, className: "rounded-md px-2 py-1 text-xs font-medium text-primary transition-colors hover:text-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: "Now" })] }))] })] }));
|
|
37403
|
+
}
|
|
37404
|
+
|
|
37405
|
+
const Textarea = ({ label, error, className, ...props }) => {
|
|
37406
|
+
return (jsxRuntime.jsxs("div", { className: "flex flex-col gap-1 w-full text-xs", children: [label && (jsxRuntime.jsx("label", { className: " font-medium text-foreground text-xs", children: label })), jsxRuntime.jsx("textarea", { "aria-invalid": error ? true : undefined, className: `w-full text-xs rounded-lg border px-3 py-2 placeholder:text-placeholder placeholder:text-sm shadow-[0_1px_2px_0_rgba(0,0,0,0.05)] outline-none resize-y
|
|
37407
|
+
disabled:cursor-not-allowed disabled:bg-muted/50 disabled:text-label
|
|
37408
|
+
focus:ring-2 focus:ring-input focus:border-input
|
|
37409
|
+
${error ? 'border-destructive focus:border-destructive focus:ring-destructive/20' : 'border-input-border'}
|
|
37410
|
+
${className || ''}
|
|
37411
|
+
`, ...props }), error && jsxRuntime.jsx("p", { className: "text-xs text-destructive", children: error })] }));
|
|
37412
|
+
};
|
|
37413
|
+
|
|
37414
|
+
/** Shown in a read-only control whose value was never filled in. */
|
|
37415
|
+
const NOT_CAPTURED = 'Not captured';
|
|
37416
|
+
const asText = (value) => typeof value === 'string' ? value : '';
|
|
37417
|
+
const asList = (value) => Array.isArray(value)
|
|
37418
|
+
? value.filter((v) => typeof v === 'string')
|
|
37419
|
+
: [];
|
|
37420
|
+
/** Blank for display purposes — a number `0` is a real value, not blank. */
|
|
37421
|
+
const isBlank = (value) => value === null || value === undefined || asText(value).trim() === '';
|
|
37422
|
+
/** Treats blank strings, empty arrays and empty upload objects as uncaptured. */
|
|
37423
|
+
function isValueEmpty(value) {
|
|
37424
|
+
if (value === null || value === undefined)
|
|
37425
|
+
return true;
|
|
37426
|
+
if (typeof value === 'string')
|
|
37427
|
+
return value.trim() === '';
|
|
37428
|
+
// multiSelect stores an array; uploads store an object.
|
|
37429
|
+
if (Array.isArray(value))
|
|
37430
|
+
return value.length === 0;
|
|
37431
|
+
if (typeof value === 'object')
|
|
37432
|
+
return Object.keys(value).length === 0;
|
|
37433
|
+
return false;
|
|
37434
|
+
}
|
|
37435
|
+
|
|
37436
|
+
/** A snapshotted option field whose list was never filled in. */
|
|
37437
|
+
const NoOptions = () => (jsxRuntime.jsx("p", { className: "py-1.5 text-sm text-muted-foreground", children: "No options configured." }));
|
|
37438
|
+
/**
|
|
37439
|
+
* Renders one control for a field described by `type` and its option metadata.
|
|
37440
|
+
*
|
|
37441
|
+
* Covers the field types shared by every custom-field surface. Types specific
|
|
37442
|
+
* to one feature stay with that feature, which handles them before delegating.
|
|
37443
|
+
*/
|
|
37444
|
+
function CustomFieldInput({ field, value, disabled, invalid, onChange, renderUpload, }) {
|
|
37445
|
+
// Read-only fields render even when blank, so say why they are blank rather
|
|
37446
|
+
// than leaving an unexplained empty box.
|
|
37447
|
+
const placeholder = disabled && isBlank(value) ? NOT_CAPTURED : undefined;
|
|
37448
|
+
switch (field.type) {
|
|
37449
|
+
case 'dropdown':
|
|
37450
|
+
case 'radio': {
|
|
37451
|
+
const options = field.options ?? [];
|
|
37452
|
+
if (field.type === 'radio') {
|
|
37453
|
+
if (options.length === 0)
|
|
37454
|
+
return jsxRuntime.jsx(NoOptions, {});
|
|
37455
|
+
return (jsxRuntime.jsx(RadioCardGroup, { name: field.id, ariaLabel: field.label, disabled: disabled, value: asText(value), onChange: (next) => onChange(next), options: options.map((option) => ({ value: option, label: option })) }));
|
|
37456
|
+
}
|
|
37457
|
+
return (jsxRuntime.jsxs(Select, { disabled: disabled, value: asText(value), onValueChange: (v) => onChange(v), children: [jsxRuntime.jsx(SelectTrigger, { id: field.id, "aria-invalid": invalid, className: "h-9 w-full", children: jsxRuntime.jsx(SelectValue, { placeholder: disabled ? NOT_CAPTURED : (field.placeholder ?? 'Select an option') }) }), jsxRuntime.jsx(SelectContent, { children: options.map((option) => (jsxRuntime.jsx(SelectItem, { value: option, children: option }, option))) })] }));
|
|
37458
|
+
}
|
|
37459
|
+
case 'multiSelect': {
|
|
37460
|
+
const options = field.options ?? [];
|
|
37461
|
+
if (options.length === 0)
|
|
37462
|
+
return jsxRuntime.jsx(NoOptions, {});
|
|
37463
|
+
const selected = asList(value);
|
|
37464
|
+
// Read-only has no trigger to disable, so show the picked values plainly.
|
|
37465
|
+
if (disabled) {
|
|
37466
|
+
return (jsxRuntime.jsx("p", { className: "py-1.5 text-sm text-foreground", children: selected.length > 0 ? selected.join(', ') : NOT_CAPTURED }));
|
|
37467
|
+
}
|
|
37468
|
+
return (jsxRuntime.jsx(FilterMultiSelect, { label: field.placeholder ?? 'Select options', value: selected, onChange: (next) => onChange(next), options: options.map((option) => ({ value: option, label: option })), triggerClassName: "w-full" }));
|
|
37469
|
+
}
|
|
37470
|
+
case 'toggle':
|
|
37471
|
+
return (jsxRuntime.jsx("div", { className: "flex h-9 items-center", children: jsxRuntime.jsx(ToggleSwitch, { checked: value === true, disabled: disabled, onCheckedChange: (checked) => onChange(checked) }) }));
|
|
37472
|
+
case 'time':
|
|
37473
|
+
return (jsxRuntime.jsx(TimePicker, { name: field.id, disabled: disabled, placeholder: disabled ? NOT_CAPTURED : (field.placeholder ?? 'Select time'), value: asText(value), onChange: (next) => onChange(next ?? null) }));
|
|
37474
|
+
case 'email':
|
|
37475
|
+
case 'phone':
|
|
37476
|
+
return (jsxRuntime.jsx(Input, { id: field.id, type: field.type === 'email' ? 'email' : 'tel', inputMode: field.type === 'phone' ? 'tel' : undefined, disabled: disabled, placeholder: placeholder ?? field.placeholder, "aria-invalid": invalid, value: asText(value), onChange: (e) => onChange(e.target.value) }));
|
|
37477
|
+
case 'image':
|
|
37478
|
+
case 'file':
|
|
37479
|
+
case 'docsWithExpiry':
|
|
37480
|
+
return (renderUpload?.({
|
|
37481
|
+
id: field.id,
|
|
37482
|
+
variant: field.type,
|
|
37483
|
+
value,
|
|
37484
|
+
expiryDateLabel: field.expiryDateLabel,
|
|
37485
|
+
disabled,
|
|
37486
|
+
onChange,
|
|
37487
|
+
}) ?? null);
|
|
37488
|
+
case 'textarea':
|
|
37489
|
+
return (jsxRuntime.jsx(Textarea, { id: field.id, rows: 3, disabled: disabled, placeholder: placeholder ?? field.placeholder, "aria-invalid": invalid, value: asText(value), onChange: (e) => onChange(e.target.value) }));
|
|
37490
|
+
case 'number':
|
|
37491
|
+
// The unit is carried by the label, so the input keeps its full width.
|
|
37492
|
+
return (jsxRuntime.jsx(NumberInput, { id: field.id, disabled: disabled, placeholder: placeholder ?? field.placeholder, "aria-invalid": invalid, value: typeof value === 'number' ? value : '', emitUndefinedOnEmpty: true, onChange: (v) => onChange(v ?? null), className: "h-9 w-full" }));
|
|
37493
|
+
case 'date':
|
|
37494
|
+
return (jsxRuntime.jsx(DateInput, { name: field.id, disabled: disabled, placeholder: placeholder ?? field.placeholder, max: field.maxDate, value: typeof value === 'string' && value ? new Date(value) : undefined, onChange: (date) => onChange(date ? date.toISOString() : null) }));
|
|
37495
|
+
case 'checkbox':
|
|
37496
|
+
return (jsxRuntime.jsxs("label", { className: "flex h-9 cursor-pointer select-none items-center gap-2", children: [jsxRuntime.jsx(Checkbox, { id: field.id, disabled: disabled, checked: value === true, onCheckedChange: (checked) => onChange(checked === true) }), jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: disabled ? (value === true ? 'Yes' : 'No') : 'Yes' })] }));
|
|
37497
|
+
default:
|
|
37498
|
+
return (jsxRuntime.jsx(Input, { id: field.id, disabled: disabled, placeholder: placeholder ?? field.placeholder, "aria-invalid": invalid, value: asText(value), onChange: (e) => onChange(e.target.value) }));
|
|
37499
|
+
}
|
|
37500
|
+
}
|
|
37501
|
+
|
|
37502
|
+
const formatDate = (iso) => {
|
|
37503
|
+
const date = new Date(iso);
|
|
37504
|
+
return Number.isNaN(date.getTime())
|
|
37505
|
+
? iso
|
|
37506
|
+
: date.toLocaleDateString(undefined, {
|
|
37507
|
+
day: '2-digit',
|
|
37508
|
+
month: 'short',
|
|
37509
|
+
year: 'numeric',
|
|
37510
|
+
});
|
|
37511
|
+
};
|
|
37512
|
+
const isUpload = (value) => !!value && typeof value === 'object' && 'key' in value;
|
|
37513
|
+
const FileLink = ({ file }) => file.url ? (jsxRuntime.jsxs("a", { href: file.url, target: "_blank", rel: "noreferrer", className: "inline-flex items-center gap-1.5 text-primary hover:underline", children: [jsxRuntime.jsx(FileText, { className: "h-3.5 w-3.5 shrink-0", "aria-hidden": true }), file.name] })) : (jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1.5", children: [jsxRuntime.jsx(FileText, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground", "aria-hidden": true }), file.name] }));
|
|
37514
|
+
/** Muted dash, so an uncaptured field reads as blank rather than as a value. */
|
|
37515
|
+
const EmptyValue = () => (jsxRuntime.jsx("span", { className: "text-muted-foreground/60", children: "\u2014" }));
|
|
37516
|
+
/**
|
|
37517
|
+
* A captured value rendered for reading rather than editing. Edit forms use
|
|
37518
|
+
* real inputs; a disabled input full of placeholders is much harder to scan
|
|
37519
|
+
* than plain text, and reads as broken rather than empty.
|
|
37520
|
+
*/
|
|
37521
|
+
function CustomFieldValue({ type, value, unit, }) {
|
|
37522
|
+
if (isValueEmpty(value))
|
|
37523
|
+
return jsxRuntime.jsx(EmptyValue, {});
|
|
37524
|
+
switch (type) {
|
|
37525
|
+
case 'checkbox':
|
|
37526
|
+
case 'toggle':
|
|
37527
|
+
return jsxRuntime.jsx("span", { children: value === true ? 'Yes' : 'No' });
|
|
37528
|
+
case 'date':
|
|
37529
|
+
return jsxRuntime.jsx("span", { children: typeof value === 'string' ? formatDate(value) : '—' });
|
|
37530
|
+
case 'multiSelect':
|
|
37531
|
+
return (jsxRuntime.jsx("span", { children: Array.isArray(value) ? value.join(', ') : String(value) }));
|
|
37532
|
+
case 'image':
|
|
37533
|
+
case 'file':
|
|
37534
|
+
return isUpload(value) ? jsxRuntime.jsx(FileLink, { file: value }) : jsxRuntime.jsx(EmptyValue, {});
|
|
37535
|
+
case 'docsWithExpiry': {
|
|
37536
|
+
const doc = value;
|
|
37537
|
+
if (!isUpload(doc.file))
|
|
37538
|
+
return jsxRuntime.jsx(EmptyValue, {});
|
|
37539
|
+
return (jsxRuntime.jsxs("span", { className: "flex flex-col gap-0.5", children: [jsxRuntime.jsx(FileLink, { file: doc.file }), doc.expiryDate && (jsxRuntime.jsxs("span", { className: "text-xs text-muted-foreground", children: ["Expires ", formatDate(doc.expiryDate)] }))] }));
|
|
37540
|
+
}
|
|
37541
|
+
case 'number': {
|
|
37542
|
+
const text = typeof value === 'number' ? value.toLocaleString() : String(value);
|
|
37543
|
+
return (jsxRuntime.jsx("span", { className: "tabular-nums", children: unit ? `${text} ${unit}` : text }));
|
|
37544
|
+
}
|
|
37545
|
+
default:
|
|
37546
|
+
return (jsxRuntime.jsx("span", { className: "whitespace-pre-wrap break-words", children: String(value) }));
|
|
37547
|
+
}
|
|
37548
|
+
}
|
|
37549
|
+
|
|
37550
|
+
const FIELD_TYPE_ICONS = {
|
|
37551
|
+
text: Type,
|
|
37552
|
+
textarea: AlignLeft,
|
|
37553
|
+
email: Mail,
|
|
37554
|
+
phone: Phone,
|
|
37555
|
+
number: Hash,
|
|
37556
|
+
date: Calendar$1,
|
|
37557
|
+
time: Clock,
|
|
37558
|
+
dropdown: CircleChevronDown,
|
|
37559
|
+
radio: CircleDot,
|
|
37560
|
+
checkbox: SquareCheckBig,
|
|
37561
|
+
multiSelect: ListChecks,
|
|
37562
|
+
toggle: ToggleLeft,
|
|
37563
|
+
boolean: ToggleLeft,
|
|
37564
|
+
image: Image$1,
|
|
37565
|
+
file: Paperclip,
|
|
37566
|
+
docsWithExpiry: Paperclip,
|
|
37567
|
+
};
|
|
37568
|
+
/** Glyph for a field type, so a list of fields is scannable at a glance. */
|
|
37569
|
+
function fieldTypeIcon(type) {
|
|
37570
|
+
return FIELD_TYPE_ICONS[type] ?? Type;
|
|
37571
|
+
}
|
|
37572
|
+
|
|
36964
37573
|
/**
|
|
36965
37574
|
* Compact "time ago" label, e.g. "5m ago". Falls back to a locale date past a
|
|
36966
37575
|
* week so older entries stay scannable.
|
|
@@ -37992,28 +38601,6 @@ function PurchaseOrderComboBox({ selectedItem, onSelect, fetchPurchaseOrders, se
|
|
|
37992
38601
|
: '', fetchPage: fetchPage, resolveById: resolveById, preSelectedId: preSelectedId, searchPlaceholder: searchPlaceholder, emptyMessage: "No purchase orders found.", disabled: disabled, className: className, align: align }));
|
|
37993
38602
|
}
|
|
37994
38603
|
|
|
37995
|
-
/**
|
|
37996
|
-
* Horizontal row of option cards behaving as a radio group.
|
|
37997
|
-
* Selected option highlights with primary border + light green background + filled dot.
|
|
37998
|
-
* Unselected options have an empty circle indicator.
|
|
37999
|
-
*/
|
|
38000
|
-
function RadioCardGroup({ value, onChange, options, className, disabled, name, ariaLabel, iconSize = 'sm', }) {
|
|
38001
|
-
const iconSizeClasses = iconSize === 'xl'
|
|
38002
|
-
? '[&_svg]:h-10 [&_svg]:w-10'
|
|
38003
|
-
: iconSize === 'lg'
|
|
38004
|
-
? '[&_svg]:h-6 [&_svg]:w-6'
|
|
38005
|
-
: '[&_svg]:h-4 [&_svg]:w-4';
|
|
38006
|
-
return (jsxRuntime.jsx("div", { role: "radiogroup", "aria-label": ariaLabel, className: cn('grid w-full grid-cols-2 gap-3 sm:grid-cols-4', className), children: options.map((opt) => {
|
|
38007
|
-
const selected = value === opt.value;
|
|
38008
|
-
const isDisabled = disabled || opt.disabled;
|
|
38009
|
-
return (jsxRuntime.jsxs("button", { type: "button", role: "radio", "aria-checked": selected, disabled: isDisabled, "data-state": selected ? 'checked' : 'unchecked', onClick: () => !isDisabled && onChange(opt.value), name: name, className: cn('flex w-full cursor-pointer gap-3 rounded-md border px-3 text-sm font-medium shadow-[0_1px_2px_0_rgba(0,0,0,0.05)] transition-colors disabled:cursor-not-allowed', 'outline-none focus-visible:ring-2 focus-visible:ring-primary/30', opt.description
|
|
38010
|
-
? 'min-h-14 items-start py-2 text-left'
|
|
38011
|
-
: 'h-9 items-center py-1.5', selected
|
|
38012
|
-
? 'border-primary bg-primary/10 text-primary'
|
|
38013
|
-
: 'border-transparent bg-[#FAFAFA] text-foreground dark:bg-[#262626]', isDisabled && 'cursor-not-allowed opacity-50'), children: [jsxRuntime.jsx("span", { "aria-hidden": "true", className: cn('relative inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full border', opt.description && 'mt-[3px]', selected ? 'border-primary' : 'border-gray-300'), children: selected && (jsxRuntime.jsx("span", { className: "block h-2 w-2 rounded-full bg-primary" })) }), jsxRuntime.jsxs("span", { className: "flex min-w-0 flex-1 flex-col items-start", children: [jsxRuntime.jsx("span", { className: "truncate", children: opt.label }), opt.description && (jsxRuntime.jsx("span", { className: cn('mt-0.5 text-xs font-normal', selected ? 'text-primary/80' : 'text-label'), children: opt.description }))] }), opt.icon && (jsxRuntime.jsx("span", { "aria-hidden": "true", className: cn('inline-flex shrink-0 items-center', iconSizeClasses, selected ? 'text-primary' : 'text-label'), children: opt.icon }))] }, opt.value));
|
|
38014
|
-
}) }));
|
|
38015
|
-
}
|
|
38016
|
-
|
|
38017
38604
|
// ::- Persistent data structure representing an ordered mapping from
|
|
38018
38605
|
// strings to values, with some convenient update methods.
|
|
38019
38606
|
function OrderedMap(content) {
|
|
@@ -66702,158 +67289,6 @@ function TagsInput({ value, onChange, placeholder, helperText, uppercase = false
|
|
|
66702
67289
|
return (jsxRuntime.jsxs("div", { className: "w-full", children: [jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [jsxRuntime.jsx(Input, { value: input, onChange: onInputChange, onKeyDown: onInputKeyDown, placeholder: placeholder || 'Type and Press Enter', className: "flex-1 bg-formInput" }), jsxRuntime.jsxs(Button$1, { type: "button", onClick: addTag, disabled: addDisabled, className: "h-9 gap-1.5 disabled:opacity-50", children: [jsxRuntime.jsx(Plus, { className: "h-4 w-4" }), "Add"] })] }), helperText && (jsxRuntime.jsx("p", { className: "mt-1.5 text-xs text-muted-foreground", children: helperText })), value.length > 0 && (jsxRuntime.jsx("div", { className: "mt-3 flex flex-wrap gap-2", children: value.map((tag, idx) => (jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1.5 rounded-md border border-border bg-secondary px-2 py-1 text-xs font-medium text-foreground", children: [tag, jsxRuntime.jsx("button", { type: "button", onClick: () => removeTag(idx), "aria-label": `Remove ${tag}`, className: "cursor-pointer text-muted-foreground transition-colors hover:text-foreground", children: jsxRuntime.jsx(X$2, { className: "h-3 w-3" }) })] }, idx))) }))] }));
|
|
66703
67290
|
}
|
|
66704
67291
|
|
|
66705
|
-
/**
|
|
66706
|
-
* One scrolling column of the picker (hours, minutes or period). The selected
|
|
66707
|
-
* row is scrolled into view whenever it changes, so reopening the popover lands
|
|
66708
|
-
* on the current value instead of at midnight.
|
|
66709
|
-
*/
|
|
66710
|
-
function TimeColumn({ label, options, selected, onSelect, }) {
|
|
66711
|
-
const listRef = React.useRef(null);
|
|
66712
|
-
const activeRef = React.useRef(null);
|
|
66713
|
-
React.useEffect(() => {
|
|
66714
|
-
const list = listRef.current;
|
|
66715
|
-
const active = activeRef.current;
|
|
66716
|
-
if (!list || !active)
|
|
66717
|
-
return;
|
|
66718
|
-
// `scrollIntoView` would scroll the page as well as the column.
|
|
66719
|
-
list.scrollTop =
|
|
66720
|
-
active.offsetTop - list.clientHeight / 2 + active.clientHeight / 2;
|
|
66721
|
-
}, [selected]);
|
|
66722
|
-
return (jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col", children: [jsxRuntime.jsx("span", { className: "px-1 pb-1.5 text-center text-[11px] font-medium uppercase tracking-wide text-muted-foreground", children: label }), jsxRuntime.jsx("div", { ref: listRef, role: "listbox", "aria-label": label, className: "scrollbar-thin h-[184px] overflow-y-auto px-1", children: jsxRuntime.jsx("div", { className: "flex flex-col gap-0.5", children: options.map((option) => {
|
|
66723
|
-
const isSelected = option.value === selected;
|
|
66724
|
-
return (jsxRuntime.jsx("button", { ref: isSelected ? activeRef : undefined, type: "button", role: "option", "aria-selected": isSelected, onClick: () => onSelect(option.value), className: cn('rounded-md px-3 py-1.5 text-center text-sm tabular-nums transition-colors', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', isSelected
|
|
66725
|
-
? 'bg-primary text-primary-foreground'
|
|
66726
|
-
: 'text-foreground hover:bg-muted'), children: option.label }, option.value));
|
|
66727
|
-
}) }) })] }));
|
|
66728
|
-
}
|
|
66729
|
-
|
|
66730
|
-
const TIME_PATTERN = /^(\d{1,2}):(\d{2})(?::\d{2})?$/;
|
|
66731
|
-
const pad = (n) => String(n).padStart(2, '0');
|
|
66732
|
-
/** Reads `HH:mm` / `HH:mm:ss`. Returns null for anything out of range. */
|
|
66733
|
-
function parseTimeValue(value) {
|
|
66734
|
-
const match = TIME_PATTERN.exec((value ?? '').trim());
|
|
66735
|
-
if (!match)
|
|
66736
|
-
return null;
|
|
66737
|
-
const hour = Number(match[1]);
|
|
66738
|
-
const minute = Number(match[2]);
|
|
66739
|
-
if (hour > 23 || minute > 59)
|
|
66740
|
-
return null;
|
|
66741
|
-
return { hour, minute };
|
|
66742
|
-
}
|
|
66743
|
-
/** The stored form — always 24-hour, whatever the display format. */
|
|
66744
|
-
function toTimeValue(hour, minute) {
|
|
66745
|
-
return `${pad(hour)}:${pad(minute)}`;
|
|
66746
|
-
}
|
|
66747
|
-
function formatTimeDisplay(time, use24Hour) {
|
|
66748
|
-
if (use24Hour)
|
|
66749
|
-
return toTimeValue(time.hour, time.minute);
|
|
66750
|
-
// 0 and 12 both map to 12 — midnight is 12 AM, noon is 12 PM.
|
|
66751
|
-
const hour12 = time.hour % 12 === 0 ? 12 : time.hour % 12;
|
|
66752
|
-
const period = time.hour < 12 ? 'AM' : 'PM';
|
|
66753
|
-
return `${pad(hour12)}:${pad(time.minute)} ${period}`;
|
|
66754
|
-
}
|
|
66755
|
-
function buildHourOptions(use24Hour) {
|
|
66756
|
-
if (use24Hour) {
|
|
66757
|
-
return Array.from({ length: 24 }, (_, hour) => ({
|
|
66758
|
-
value: hour,
|
|
66759
|
-
label: pad(hour),
|
|
66760
|
-
}));
|
|
66761
|
-
}
|
|
66762
|
-
// 12 first, matching how a clock reads.
|
|
66763
|
-
return Array.from({ length: 12 }, (_, index) => {
|
|
66764
|
-
const hour12 = index === 0 ? 12 : index;
|
|
66765
|
-
return { value: hour12, label: pad(hour12) };
|
|
66766
|
-
});
|
|
66767
|
-
}
|
|
66768
|
-
function buildMinuteOptions(step) {
|
|
66769
|
-
const safeStep = Number.isFinite(step) && step > 0 ? Math.floor(step) : 1;
|
|
66770
|
-
const options = [];
|
|
66771
|
-
for (let minute = 0; minute < 60; minute += safeStep) {
|
|
66772
|
-
options.push({ value: minute, label: pad(minute) });
|
|
66773
|
-
}
|
|
66774
|
-
return options;
|
|
66775
|
-
}
|
|
66776
|
-
/** The hour as the 12-hour column shows it (12, 1…11). */
|
|
66777
|
-
function toHour12(hour) {
|
|
66778
|
-
return hour % 12 === 0 ? 12 : hour % 12;
|
|
66779
|
-
}
|
|
66780
|
-
/** Rebuilds a 24-hour hour from a 12-hour column value and its period. */
|
|
66781
|
-
function fromHour12(hour12, period) {
|
|
66782
|
-
const base = hour12 % 12;
|
|
66783
|
-
return period === 'PM' ? base + 12 : base;
|
|
66784
|
-
}
|
|
66785
|
-
function periodOf(hour) {
|
|
66786
|
-
return hour < 12 ? 'AM' : 'PM';
|
|
66787
|
-
}
|
|
66788
|
-
|
|
66789
|
-
// Only one TimePicker popover should be open at a time — same coordination the
|
|
66790
|
-
// DateInput uses, for the same reason: each is its own `modal` Radix Popover, so
|
|
66791
|
-
// opening a second does not dismiss the first by outside-click.
|
|
66792
|
-
const TIMEPICKER_OPEN_EVENT = 'caratlogic:timepicker-open';
|
|
66793
|
-
const PERIOD_OPTIONS = [
|
|
66794
|
-
{ value: 0, label: 'AM' },
|
|
66795
|
-
{ value: 1, label: 'PM' },
|
|
66796
|
-
];
|
|
66797
|
-
function TimePicker({ value, onChange, onBlur, name, className, disabled, placeholder = 'Select time', use24Hour = false, minuteStep = 1, hideFooter = false, }) {
|
|
66798
|
-
const [open, setOpen] = React.useState(false);
|
|
66799
|
-
const instanceId = React.useId();
|
|
66800
|
-
const parsed = parseTimeValue(value);
|
|
66801
|
-
React.useEffect(() => {
|
|
66802
|
-
const onOtherOpen = (e) => {
|
|
66803
|
-
if (e.detail !== instanceId)
|
|
66804
|
-
setOpen(false);
|
|
66805
|
-
};
|
|
66806
|
-
window.addEventListener(TIMEPICKER_OPEN_EVENT, onOtherOpen);
|
|
66807
|
-
return () => window.removeEventListener(TIMEPICKER_OPEN_EVENT, onOtherOpen);
|
|
66808
|
-
}, [instanceId]);
|
|
66809
|
-
const handleOpenChange = (next) => {
|
|
66810
|
-
setOpen(next);
|
|
66811
|
-
if (next) {
|
|
66812
|
-
window.dispatchEvent(new CustomEvent(TIMEPICKER_OPEN_EVENT, { detail: instanceId }));
|
|
66813
|
-
}
|
|
66814
|
-
};
|
|
66815
|
-
/** Picking one column before the others commits against a 00:00 baseline. */
|
|
66816
|
-
const commit = (hour, minute) => {
|
|
66817
|
-
onChange(toTimeValue(hour, minute));
|
|
66818
|
-
};
|
|
66819
|
-
const handleHour = (picked) => {
|
|
66820
|
-
const minute = parsed?.minute ?? 0;
|
|
66821
|
-
if (use24Hour) {
|
|
66822
|
-
commit(picked, minute);
|
|
66823
|
-
return;
|
|
66824
|
-
}
|
|
66825
|
-
commit(fromHour12(picked, parsed ? periodOf(parsed.hour) : 'AM'), minute);
|
|
66826
|
-
};
|
|
66827
|
-
const handleMinute = (picked) => {
|
|
66828
|
-
commit(parsed?.hour ?? 0, picked);
|
|
66829
|
-
};
|
|
66830
|
-
const handlePeriod = (picked) => {
|
|
66831
|
-
const period = picked === 0 ? 'AM' : 'PM';
|
|
66832
|
-
const hour12 = parsed ? toHour12(parsed.hour) : 12;
|
|
66833
|
-
commit(fromHour12(hour12, period), parsed?.minute ?? 0);
|
|
66834
|
-
};
|
|
66835
|
-
const selectedHour = parsed
|
|
66836
|
-
? use24Hour
|
|
66837
|
-
? parsed.hour
|
|
66838
|
-
: toHour12(parsed.hour)
|
|
66839
|
-
: null;
|
|
66840
|
-
// NOTE: `open` is driven from the button's onClick rather than
|
|
66841
|
-
// <PopoverTrigger>, matching DateInput — inside a modal <SlideOut> the
|
|
66842
|
-
// trigger's built-in toggle does not fire in Safari. <PopoverAnchor> is pure
|
|
66843
|
-
// positioning, so a single controlled toggle stays the only source of truth.
|
|
66844
|
-
return (jsxRuntime.jsxs(Popover, { open: open, onOpenChange: handleOpenChange, modal: true, children: [jsxRuntime.jsx(PopoverAnchor, { asChild: true, children: jsxRuntime.jsxs("button", { type: "button", name: name, onBlur: onBlur, disabled: disabled, "aria-haspopup": "dialog", "aria-expanded": open, onClick: () => {
|
|
66845
|
-
if (!disabled)
|
|
66846
|
-
handleOpenChange(!open);
|
|
66847
|
-
}, "data-slot": "input", "data-empty": !parsed || 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/50 text-label', className), children: [jsxRuntime.jsx("span", { className: cn('truncate text-sm md:text-sm', parsed ? 'text-foreground' : 'text-placeholder'), children: parsed ? formatTimeDisplay(parsed, use24Hour) : placeholder }), jsxRuntime.jsx("span", { className: "inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground", children: jsxRuntime.jsx(Clock, { className: "h-4 w-4 stroke-[1.75]" }) })] }) }), jsxRuntime.jsxs(PopoverContent, { align: "start", className: "w-auto p-3", children: [jsxRuntime.jsxs("div", { className: "flex gap-1", children: [jsxRuntime.jsx(TimeColumn, { label: "Hour", options: buildHourOptions(use24Hour), selected: selectedHour, onSelect: handleHour }), jsxRuntime.jsx(TimeColumn, { label: "Min", options: buildMinuteOptions(minuteStep), selected: parsed?.minute ?? null, onSelect: handleMinute }), !use24Hour && (jsxRuntime.jsx(TimeColumn, { label: "AM/PM", options: PERIOD_OPTIONS, selected: parsed ? (periodOf(parsed.hour) === 'AM' ? 0 : 1) : null, onSelect: handlePeriod }))] }), !hideFooter && (jsxRuntime.jsxs("div", { className: "mt-2 flex items-center justify-between gap-2 border-t border-border pt-2", children: [jsxRuntime.jsx("button", { type: "button", onClick: () => {
|
|
66848
|
-
onChange(undefined);
|
|
66849
|
-
setOpen(false);
|
|
66850
|
-
}, className: "rounded-md px-2 py-1 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: "Clear" }), jsxRuntime.jsx("button", { type: "button", onClick: () => {
|
|
66851
|
-
const now = new Date();
|
|
66852
|
-
commit(now.getHours(), now.getMinutes());
|
|
66853
|
-
setOpen(false);
|
|
66854
|
-
}, className: "rounded-md px-2 py-1 text-xs font-medium text-primary transition-colors hover:text-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: "Now" })] }))] })] }));
|
|
66855
|
-
}
|
|
66856
|
-
|
|
66857
67292
|
function mapToItem(w, separator) {
|
|
66858
67293
|
const id = w.id || w.warehouseId || '';
|
|
66859
67294
|
if (!id)
|
|
@@ -67229,6 +67664,236 @@ function ZoomSplitViewer({ src, alt = 'Preview', zoom = 2, lensSize = 160, paneO
|
|
|
67229
67664
|
}) })), isTouchDevice && (jsxRuntime.jsx("p", { className: `text-xs text-muted-foreground text-center mt-2 ${isMobile ? 'text-2xs' : ''}`, children: isMobile ? 'Touch & hold to zoom' : 'Touch and hold to zoom' }))] }));
|
|
67230
67665
|
}
|
|
67231
67666
|
|
|
67667
|
+
/**
|
|
67668
|
+
* Categories carry both a colour and a distinct icon — the colour alone never
|
|
67669
|
+
* distinguishes them, so the feed stays readable without relying on hue.
|
|
67670
|
+
*/
|
|
67671
|
+
const ACTIVITY_CATEGORY_META = {
|
|
67672
|
+
customer: {
|
|
67673
|
+
label: 'Customer',
|
|
67674
|
+
icon: UserPlus,
|
|
67675
|
+
iconClassName: 'bg-secondary text-secondary-foreground',
|
|
67676
|
+
dotClassName: 'bg-secondary-foreground',
|
|
67677
|
+
},
|
|
67678
|
+
form: {
|
|
67679
|
+
label: 'Form',
|
|
67680
|
+
icon: FileCheck2,
|
|
67681
|
+
iconClassName: 'bg-primary/10 text-primary',
|
|
67682
|
+
dotClassName: 'bg-primary',
|
|
67683
|
+
},
|
|
67684
|
+
communication: {
|
|
67685
|
+
label: 'Communication',
|
|
67686
|
+
icon: BellRing,
|
|
67687
|
+
iconClassName: 'bg-warning/10 text-warning',
|
|
67688
|
+
dotClassName: 'bg-warning',
|
|
67689
|
+
},
|
|
67690
|
+
verification: {
|
|
67691
|
+
label: 'Verification',
|
|
67692
|
+
icon: KeyRound,
|
|
67693
|
+
iconClassName: 'bg-info/10 text-info',
|
|
67694
|
+
dotClassName: 'bg-info',
|
|
67695
|
+
},
|
|
67696
|
+
status: {
|
|
67697
|
+
label: 'Status',
|
|
67698
|
+
icon: ShieldCheck,
|
|
67699
|
+
iconClassName: 'bg-success/10 text-success',
|
|
67700
|
+
dotClassName: 'bg-success',
|
|
67701
|
+
},
|
|
67702
|
+
};
|
|
67703
|
+
const ACTIVITY_CATEGORIES = Object.keys(ACTIVITY_CATEGORY_META);
|
|
67704
|
+
/** Feed grid: time gutter, icon rail, content, expand control. */
|
|
67705
|
+
const ACTIVITY_ROW_GRID = 'grid grid-cols-[52px_32px_minmax(0,1fr)_36px] gap-x-3';
|
|
67706
|
+
|
|
67707
|
+
const ACTIVITY_FEED_ARIA = {
|
|
67708
|
+
feedLabel: 'Activity feed',
|
|
67709
|
+
expandRow: (summary) => `Show details for: ${summary}`,
|
|
67710
|
+
collapseRow: (summary) => `Hide details for: ${summary}`,
|
|
67711
|
+
expandAutomatedGroup: (count) => `Show ${count} automated ${count === 1 ? 'entry' : 'entries'}`,
|
|
67712
|
+
collapseAutomatedGroup: (count) => `Hide ${count} automated ${count === 1 ? 'entry' : 'entries'}`,
|
|
67713
|
+
copyReference: 'Copy reference',
|
|
67714
|
+
changesTable: 'Fields changed by this entry',
|
|
67715
|
+
};
|
|
67716
|
+
|
|
67717
|
+
function formatActivityTime(iso) {
|
|
67718
|
+
const date = new Date(iso);
|
|
67719
|
+
if (Number.isNaN(date.getTime()))
|
|
67720
|
+
return '';
|
|
67721
|
+
return date.toLocaleTimeString('en-GB', {
|
|
67722
|
+
hour: '2-digit',
|
|
67723
|
+
minute: '2-digit',
|
|
67724
|
+
hour12: false,
|
|
67725
|
+
});
|
|
67726
|
+
}
|
|
67727
|
+
function startOfDay(date) {
|
|
67728
|
+
return new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime();
|
|
67729
|
+
}
|
|
67730
|
+
/** "Today" / "Yesterday" / the weekday, so a reader can place an entry at a glance. */
|
|
67731
|
+
function relativeDayLabel(date, today) {
|
|
67732
|
+
const dayMs = 24 * 60 * 60 * 1000;
|
|
67733
|
+
const diff = Math.round((startOfDay(today) - startOfDay(date)) / dayMs);
|
|
67734
|
+
if (diff === 0)
|
|
67735
|
+
return 'Today';
|
|
67736
|
+
if (diff === 1)
|
|
67737
|
+
return 'Yesterday';
|
|
67738
|
+
return date.toLocaleDateString('en-GB', { weekday: 'long' });
|
|
67739
|
+
}
|
|
67740
|
+
function fullDateLabel(date) {
|
|
67741
|
+
return date.toLocaleDateString('en-GB', {
|
|
67742
|
+
weekday: 'long',
|
|
67743
|
+
day: 'numeric',
|
|
67744
|
+
month: 'short',
|
|
67745
|
+
year: 'numeric',
|
|
67746
|
+
});
|
|
67747
|
+
}
|
|
67748
|
+
/**
|
|
67749
|
+
* Collapse runs of consecutive automated entries into one row. Only runs of two
|
|
67750
|
+
* or more are worth collapsing — hiding a single reminder behind a toggle costs
|
|
67751
|
+
* a click and saves nothing.
|
|
67752
|
+
*/
|
|
67753
|
+
function collapseAutomated(entries, groupKey) {
|
|
67754
|
+
const rows = [];
|
|
67755
|
+
let run = [];
|
|
67756
|
+
const flush = () => {
|
|
67757
|
+
if (run.length === 0)
|
|
67758
|
+
return;
|
|
67759
|
+
if (run.length === 1)
|
|
67760
|
+
rows.push({ kind: 'entry', entry: run[0] });
|
|
67761
|
+
else
|
|
67762
|
+
rows.push({
|
|
67763
|
+
kind: 'automated-group',
|
|
67764
|
+
id: `${groupKey}-auto-${rows.length}`,
|
|
67765
|
+
entries: run,
|
|
67766
|
+
});
|
|
67767
|
+
run = [];
|
|
67768
|
+
};
|
|
67769
|
+
for (const entry of entries) {
|
|
67770
|
+
if (entry.actor.kind === 'system') {
|
|
67771
|
+
run.push(entry);
|
|
67772
|
+
continue;
|
|
67773
|
+
}
|
|
67774
|
+
flush();
|
|
67775
|
+
rows.push({ kind: 'entry', entry });
|
|
67776
|
+
}
|
|
67777
|
+
flush();
|
|
67778
|
+
return rows;
|
|
67779
|
+
}
|
|
67780
|
+
/**
|
|
67781
|
+
* Bucket entries by calendar day, preserving the order they arrive in so the
|
|
67782
|
+
* caller keeps control of newest-first vs oldest-first.
|
|
67783
|
+
*/
|
|
67784
|
+
function groupActivityByDay(entries, groupAutomated, now = new Date()) {
|
|
67785
|
+
const buckets = new Map();
|
|
67786
|
+
for (const entry of entries) {
|
|
67787
|
+
const date = new Date(entry.createdAt);
|
|
67788
|
+
const key = Number.isNaN(date.getTime())
|
|
67789
|
+
? 'unknown'
|
|
67790
|
+
: String(startOfDay(date));
|
|
67791
|
+
const bucket = buckets.get(key);
|
|
67792
|
+
if (bucket)
|
|
67793
|
+
bucket.entries.push(entry);
|
|
67794
|
+
else
|
|
67795
|
+
buckets.set(key, { date, entries: [entry] });
|
|
67796
|
+
}
|
|
67797
|
+
return Array.from(buckets.entries()).map(([key, bucket]) => {
|
|
67798
|
+
const valid = !Number.isNaN(bucket.date.getTime());
|
|
67799
|
+
return {
|
|
67800
|
+
key,
|
|
67801
|
+
label: valid ? relativeDayLabel(bucket.date, now) : 'Unknown date',
|
|
67802
|
+
dateLabel: valid ? fullDateLabel(bucket.date) : '',
|
|
67803
|
+
count: bucket.entries.length,
|
|
67804
|
+
rows: groupAutomated
|
|
67805
|
+
? collapseAutomated(bucket.entries, key)
|
|
67806
|
+
: bucket.entries.map((entry) => ({ kind: 'entry', entry })),
|
|
67807
|
+
};
|
|
67808
|
+
});
|
|
67809
|
+
}
|
|
67810
|
+
/** Initials for the contact avatar, capped at two letters. */
|
|
67811
|
+
function initialsOf(name) {
|
|
67812
|
+
const parts = name.trim().split(/\s+/).filter(Boolean);
|
|
67813
|
+
if (parts.length === 0)
|
|
67814
|
+
return '?';
|
|
67815
|
+
return parts
|
|
67816
|
+
.slice(0, 2)
|
|
67817
|
+
.map((part) => part[0])
|
|
67818
|
+
.join('')
|
|
67819
|
+
.toUpperCase();
|
|
67820
|
+
}
|
|
67821
|
+
/** Shortens a correlation id so it never pushes the footer's actions off-row. */
|
|
67822
|
+
function truncateReference(reference, max = 28) {
|
|
67823
|
+
return reference.length > max ? `${reference.slice(0, max)}…` : reference;
|
|
67824
|
+
}
|
|
67825
|
+
|
|
67826
|
+
function ActivityDayHeader({ group, }) {
|
|
67827
|
+
return (jsxRuntime.jsxs("div", { className: "flex items-baseline justify-between gap-3 border-b border-border bg-muted/40 px-5 py-3", children: [jsxRuntime.jsxs("div", { className: "flex items-baseline gap-2", children: [jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-foreground", children: group.label }), jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground", children: group.dateLabel })] }), jsxRuntime.jsxs("span", { className: "text-xs text-muted-foreground", children: [group.count, " ", group.count === 1 ? 'event' : 'events'] })] }));
|
|
67828
|
+
}
|
|
67829
|
+
function StatusChip({ status, tone, }) {
|
|
67830
|
+
return (jsxRuntime.jsx(Badge, { appearance: "soft", color: tone, size: "sm", children: status }));
|
|
67831
|
+
}
|
|
67832
|
+
function CategoryIcon({ entry, showRail, }) {
|
|
67833
|
+
const meta = ACTIVITY_CATEGORY_META[entry.category];
|
|
67834
|
+
const Icon = meta.icon;
|
|
67835
|
+
return (jsxRuntime.jsxs("div", { className: "relative self-stretch", children: [jsxRuntime.jsx("span", { className: cn('relative z-10 flex size-8 items-center justify-center rounded-full', meta.iconClassName), children: jsxRuntime.jsx(Icon, { className: "size-4", "aria-hidden": "true" }) }), showRail && (jsxRuntime.jsx("span", { "aria-hidden": "true", className: "absolute top-9 -bottom-4 left-1/2 w-px -translate-x-1/2 bg-border" }))] }));
|
|
67836
|
+
}
|
|
67837
|
+
function ChangesTable({ changes, }) {
|
|
67838
|
+
return (jsxRuntime.jsxs("div", { className: "overflow-hidden rounded-lg border border-border bg-card", children: [jsxRuntime.jsx("p", { className: "border-b border-border px-3 py-2 text-[0.625rem] font-semibold tracking-wide text-muted-foreground uppercase", children: "What changed" }), changes.length === 0 ? (jsxRuntime.jsx("p", { className: "px-3 py-2.5 text-xs text-muted-foreground", children: "No field detail was recorded for this entry." })) : (jsxRuntime.jsxs("table", { className: "w-full text-sm", "aria-label": ACTIVITY_FEED_ARIA.changesTable, children: [jsxRuntime.jsx("thead", { children: jsxRuntime.jsxs("tr", { className: "bg-muted/40 text-left text-xs text-muted-foreground", children: [jsxRuntime.jsx("th", { scope: "col", className: "px-3 py-1.5 font-normal", children: "Field" }), jsxRuntime.jsx("th", { scope: "col", className: "px-3 py-1.5 font-normal", children: "Before" }), jsxRuntime.jsx("th", { scope: "col", className: "px-3 py-1.5 font-normal", children: "After" })] }) }), jsxRuntime.jsx("tbody", { children: changes.map((change) => (jsxRuntime.jsxs("tr", { className: "border-t border-border align-top", children: [jsxRuntime.jsx("th", { scope: "row", className: "px-3 py-2 text-left text-xs font-normal text-secondary-foreground", children: change.field }), jsxRuntime.jsx("td", { className: "px-3 py-2 text-xs text-muted-foreground line-through", children: change.before ?? 'Not set' }), jsxRuntime.jsx("td", { className: "px-3 py-2 text-xs font-medium text-foreground", children: change.after ?? 'Not set' })] }, change.field))) })] }))] }));
|
|
67839
|
+
}
|
|
67840
|
+
function ContactCard({ contact, }) {
|
|
67841
|
+
const name = contact.name || contact.company || contact.email || 'Unknown contact';
|
|
67842
|
+
const secondary = [
|
|
67843
|
+
contact.company === name ? undefined : contact.company,
|
|
67844
|
+
contact.email,
|
|
67845
|
+
]
|
|
67846
|
+
.filter(Boolean)
|
|
67847
|
+
.join(' · ');
|
|
67848
|
+
return (jsxRuntime.jsxs("div", { className: "overflow-hidden rounded-lg border border-border bg-card", children: [jsxRuntime.jsx("p", { className: "border-b border-border px-3 py-2 text-[0.625rem] font-semibold tracking-wide text-muted-foreground uppercase", children: "Contact at the time" }), jsxRuntime.jsxs("div", { className: "flex flex-col gap-2.5 px-3 py-2.5", children: [jsxRuntime.jsxs("div", { className: "flex items-center gap-2.5", children: [jsxRuntime.jsx("span", { "aria-hidden": "true", className: "flex size-9 shrink-0 items-center justify-center rounded-full bg-muted text-xs font-semibold text-foreground", children: initialsOf(name) }), jsxRuntime.jsxs("div", { className: "min-w-0", children: [jsxRuntime.jsx("p", { className: "truncate text-sm font-semibold text-foreground", children: name }), secondary && (jsxRuntime.jsx("p", { className: "truncate text-xs text-muted-foreground", children: secondary }))] })] }), (contact.roles?.length || contact.isActive !== undefined) && (jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-1", children: [contact.roles?.map((role) => (jsxRuntime.jsx(Badge, { appearance: "soft", color: "secondary", size: "sm", children: role }, role))), contact.isActive !== undefined && (jsxRuntime.jsx(Badge, { appearance: "soft", color: contact.isActive ? 'success' : 'secondary', size: "sm", children: contact.isActive ? 'Active' : 'Inactive' }))] }))] })] }));
|
|
67849
|
+
}
|
|
67850
|
+
function ActivityDetail({ entry }) {
|
|
67851
|
+
const showChanges = entry.changes.length > 0 || entry.changesExpected === true;
|
|
67852
|
+
return (jsxRuntime.jsxs("div", { className: "flex flex-col gap-3 pt-1", children: [(showChanges || entry.contact) && (jsxRuntime.jsxs("div", { className: cn('grid gap-3', showChanges && entry.contact
|
|
67853
|
+
? 'lg:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)]'
|
|
67854
|
+
: 'grid-cols-1'), children: [showChanges && jsxRuntime.jsx(ChangesTable, { changes: entry.changes }), entry.contact && jsxRuntime.jsx(ContactCard, { contact: entry.contact })] })), entry.notes && (jsxRuntime.jsxs("div", { className: "rounded-lg border border-border bg-card px-3 py-2", children: [jsxRuntime.jsx("p", { className: "text-[0.625rem] font-semibold tracking-wide text-muted-foreground uppercase", children: "Notes" }), jsxRuntime.jsx("p", { className: "mt-1 text-sm text-foreground", children: entry.notes })] })), jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [jsxRuntime.jsx("span", { children: "Ref" }), jsxRuntime.jsx("code", { className: "rounded bg-secondary px-1.5 py-0.5 font-mono text-[0.6875rem] text-secondary-foreground", children: truncateReference(entry.reference) }), jsxRuntime.jsx(CopyButton, { value: entry.reference })] }), !!entry.links?.length && (jsxRuntime.jsx("div", { className: "flex flex-wrap items-center gap-4", children: entry.links.map((link) => (jsxRuntime.jsx("button", { type: "button", onClick: link.onClick, className: "text-sm font-medium text-primary underline-offset-4 hover:underline focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none", children: link.label }, link.label))) }))] })] }));
|
|
67855
|
+
}
|
|
67856
|
+
function ActivityRow({ entry, showRail, statusColors, }) {
|
|
67857
|
+
const [open, setOpen] = React.useState(false);
|
|
67858
|
+
const sentence = `${entry.actor.name} ${entry.action}${entry.subject ? ` ${entry.subject.label}` : ''}`;
|
|
67859
|
+
const tone = (status) => statusColors[status] ?? 'secondary';
|
|
67860
|
+
return (jsxRuntime.jsxs("div", { className: cn(ACTIVITY_ROW_GRID, 'border-b border-border px-5 py-3.5 last:border-b-0', open && 'bg-muted/30'), children: [jsxRuntime.jsx("time", { dateTime: entry.createdAt, className: "pt-1.5 font-mono text-xs text-muted-foreground", children: formatActivityTime(entry.createdAt) }), jsxRuntime.jsx(CategoryIcon, { entry: entry, showRail: showRail }), jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col gap-1.5", children: [jsxRuntime.jsxs("p", { className: "pt-1 text-sm leading-5 text-foreground", children: [jsxRuntime.jsx("span", { className: "font-semibold", children: entry.actor.name }), ' ', entry.action, entry.subject && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [' ', jsxRuntime.jsx("button", { type: "button", onClick: entry.subject.onClick, className: "font-medium text-primary underline-offset-4 hover:underline focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none", children: entry.subject.label })] }))] }), (entry.statusFrom || entry.statusTo) && (jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [entry.statusFrom && (jsxRuntime.jsx(StatusChip, { status: entry.statusFrom, tone: tone(entry.statusFrom) })), entry.statusFrom && entry.statusTo && (jsxRuntime.jsx(ArrowRight, { className: "size-3.5 shrink-0 text-muted-foreground", "aria-hidden": "true" })), entry.statusTo && (jsxRuntime.jsx(StatusChip, { status: entry.statusTo, tone: tone(entry.statusTo) }))] })), entry.detail && (jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: entry.detail })), open && jsxRuntime.jsx(ActivityDetail, { entry: entry })] }), jsxRuntime.jsx("button", { type: "button", onClick: () => setOpen((value) => !value), "aria-expanded": open, "aria-label": open
|
|
67861
|
+
? ACTIVITY_FEED_ARIA.collapseRow(sentence)
|
|
67862
|
+
: ACTIVITY_FEED_ARIA.expandRow(sentence), className: cn('flex size-8 items-center justify-center self-start rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none', open && 'bg-muted text-foreground'), children: jsxRuntime.jsx(ChevronDown, { className: cn('size-4 transition-transform', open && 'rotate-180'), "aria-hidden": "true" }) })] }));
|
|
67863
|
+
}
|
|
67864
|
+
/**
|
|
67865
|
+
* A run of automated entries folded into one line. Scheduled reminders are the
|
|
67866
|
+
* bulk of a busy day and rarely the thing a reader came for.
|
|
67867
|
+
*/
|
|
67868
|
+
function ActivityAutomatedGroupRow({ entries, statusColors, }) {
|
|
67869
|
+
const [open, setOpen] = React.useState(false);
|
|
67870
|
+
const count = entries.length;
|
|
67871
|
+
const preview = entries
|
|
67872
|
+
.map((entry) => entry.detail || entry.action)
|
|
67873
|
+
.slice(0, 2)
|
|
67874
|
+
.join(' · ');
|
|
67875
|
+
return (jsxRuntime.jsxs("div", { className: "border-b border-border last:border-b-0", children: [jsxRuntime.jsxs("div", { className: cn(ACTIVITY_ROW_GRID, 'items-start px-5 py-3.5'), children: [jsxRuntime.jsx("time", { dateTime: entries[0].createdAt, className: "pt-1.5 font-mono text-xs text-muted-foreground", children: formatActivityTime(entries[0].createdAt) }), jsxRuntime.jsx(CategoryIcon, { entry: entries[0], showRail: false }), jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col gap-1", children: [jsxRuntime.jsxs("p", { className: "pt-1 text-sm leading-5 text-foreground", children: [jsxRuntime.jsx("span", { className: "font-semibold", children: "System" }), " sent ", count, " automatic", ' ', count === 1 ? 'entry' : 'entries'] }), preview && (jsxRuntime.jsx("p", { className: "truncate text-xs text-muted-foreground", children: preview }))] }), jsxRuntime.jsx(Button$1, { variant: "outline", size: "sm", onClick: () => setOpen((value) => !value), "aria-expanded": open, "aria-label": open
|
|
67876
|
+
? ACTIVITY_FEED_ARIA.collapseAutomatedGroup(count)
|
|
67877
|
+
: ACTIVITY_FEED_ARIA.expandAutomatedGroup(count), className: "h-8 justify-self-end px-2 text-xs font-medium", children: open ? 'Hide' : `Show ${count}` })] }), open && (jsxRuntime.jsx("div", { className: "border-t border-border bg-muted/20", children: entries.map((entry, index) => (jsxRuntime.jsx(ActivityRow, { entry: entry, showRail: index < entries.length - 1, statusColors: statusColors }, entry.id))) }))] }));
|
|
67878
|
+
}
|
|
67879
|
+
|
|
67880
|
+
function FeedSkeleton() {
|
|
67881
|
+
return (jsxRuntime.jsx("div", { className: "flex flex-col gap-2 p-4", "aria-hidden": "true", children: Array.from({ length: 6 }).map((_, index) => (jsxRuntime.jsx(SquareSkeleton, { height: 56, className: "w-full", rounded: "md" }, index))) }));
|
|
67882
|
+
}
|
|
67883
|
+
/**
|
|
67884
|
+
* Day-grouped activity feed: a time gutter, a category icon on a connecting
|
|
67885
|
+
* rail, a one-sentence description, and per-row details on demand.
|
|
67886
|
+
*
|
|
67887
|
+
* Presentational by design — it fetches nothing and knows no domain vocabulary.
|
|
67888
|
+
* The host maps its records to `ActivityEntry` and owns paging via `onLoadMore`.
|
|
67889
|
+
*/
|
|
67890
|
+
function ActivityFeed({ entries, isLoading = false, hasMore = false, isLoadingMore = false, onLoadMore, groupAutomated = true, fill = false, statusColors = {}, emptyMessage = 'No activity recorded yet.', className, }) {
|
|
67891
|
+
const groups = React.useMemo(() => groupActivityByDay(entries, groupAutomated), [entries, groupAutomated]);
|
|
67892
|
+
return (jsxRuntime.jsxs("div", { className: cn('flex flex-col gap-4', fill && 'flex-1', className), children: [jsxRuntime.jsx("section", { "aria-label": ACTIVITY_FEED_ARIA.feedLabel, className: cn('overflow-hidden rounded-xl border border-border bg-card', fill && 'flex-1'), children: isLoading ? (jsxRuntime.jsx(FeedSkeleton, {})) : groups.length === 0 ? (jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-2 py-16", children: [jsxRuntime.jsx(History, { className: "size-8 text-muted-foreground/40", "aria-hidden": "true" }), jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: emptyMessage })] })) : (groups.map((group) => (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx(ActivityDayHeader, { group: group }), group.rows.map((row, index) => row.kind === 'entry' ? (jsxRuntime.jsx(ActivityRow, { entry: row.entry,
|
|
67893
|
+
// The rail links a row to the next one, so the last in a day stops.
|
|
67894
|
+
showRail: index < group.rows.length - 1, statusColors: statusColors }, row.entry.id)) : (jsxRuntime.jsx(ActivityAutomatedGroupRow, { entries: row.entries, statusColors: statusColors }, row.id)))] }, group.key)))) }), !isLoading && groups.length > 0 && (jsxRuntime.jsx("div", { className: "flex justify-center", children: hasMore && onLoadMore ? (jsxRuntime.jsx(Button$1, { variant: "outline", onClick: onLoadMore, disabled: isLoadingMore, children: isLoadingMore ? 'Loading…' : 'Load earlier activity' })) : (jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: "You've reached the end of the activity log." })) }))] }));
|
|
67895
|
+
}
|
|
67896
|
+
|
|
67232
67897
|
/** 1px border on the track, and the gap between thumb and track. */
|
|
67233
67898
|
const TRACK_BORDER = 1;
|
|
67234
67899
|
const THUMB_INSET = 2;
|
|
@@ -76979,8 +77644,11 @@ var RichTextAreaImpl = /*#__PURE__*/Object.freeze({
|
|
|
76979
77644
|
RichTextarea: RichTextarea
|
|
76980
77645
|
});
|
|
76981
77646
|
|
|
77647
|
+
exports.ACTIVITY_CATEGORIES = ACTIVITY_CATEGORIES;
|
|
77648
|
+
exports.ACTIVITY_CATEGORY_META = ACTIVITY_CATEGORY_META;
|
|
76982
77649
|
exports.ActionBadge = ActionBadge;
|
|
76983
77650
|
exports.ActionButtonWithTooltip = ActionButtonWithTooltip;
|
|
77651
|
+
exports.ActivityFeed = ActivityFeed;
|
|
76984
77652
|
exports.AdvancedSearchDrawer = AdvancedSearchDrawer;
|
|
76985
77653
|
exports.Alert = Alert;
|
|
76986
77654
|
exports.ApiComboBox = ApiComboBox;
|
|
@@ -77010,6 +77678,8 @@ exports.CurrencyDisplayTabs = CurrencyDisplayTabs;
|
|
|
77010
77678
|
exports.CurrencyInput = CurrencyInput;
|
|
77011
77679
|
exports.CurrencyToggle = CurrencyToggle;
|
|
77012
77680
|
exports.CustomCombobox = CustomCombobox;
|
|
77681
|
+
exports.CustomFieldInput = CustomFieldInput;
|
|
77682
|
+
exports.CustomFieldValue = CustomFieldValue;
|
|
77013
77683
|
exports.CustomTable = CustomTable;
|
|
77014
77684
|
exports.CustomizeColumnsDrawer = CustomizeColumnsDrawer;
|
|
77015
77685
|
exports.DIAMOND_AUDIT_CONFIG = DIAMOND_AUDIT_CONFIG;
|
|
@@ -77035,6 +77705,7 @@ exports.DropdownMenuSub = DropdownMenuSub;
|
|
|
77035
77705
|
exports.DropdownMenuSubContent = DropdownMenuSubContent;
|
|
77036
77706
|
exports.DropdownMenuSubTrigger = DropdownMenuSubTrigger;
|
|
77037
77707
|
exports.DropdownMenuTrigger = DropdownMenuTrigger;
|
|
77708
|
+
exports.EmptyValue = EmptyValue;
|
|
77038
77709
|
exports.EntityHeader = EntityHeader;
|
|
77039
77710
|
exports.Field = Field;
|
|
77040
77711
|
exports.FieldSkeleton = FieldSkeleton;
|
|
@@ -77071,6 +77742,7 @@ exports.MetricTile = MetricTile;
|
|
|
77071
77742
|
exports.Modal = Modal;
|
|
77072
77743
|
exports.MoreInfoPanel = MoreInfoPanel;
|
|
77073
77744
|
exports.MoreInfoTrigger = MoreInfoTrigger;
|
|
77745
|
+
exports.NOT_CAPTURED = NOT_CAPTURED;
|
|
77074
77746
|
exports.Navbar = Navbar;
|
|
77075
77747
|
exports.NavbarActions = NavbarActions;
|
|
77076
77748
|
exports.NavbarAvatar = NavbarAvatar;
|
|
@@ -77157,6 +77829,8 @@ exports.TruncateTooltip = TruncateTooltip;
|
|
|
77157
77829
|
exports.WarehouseComboBox = WarehouseComboBox;
|
|
77158
77830
|
exports.WarehouseFilter = WarehouseFilter;
|
|
77159
77831
|
exports.ZoomSplitViewer = ZoomSplitViewer;
|
|
77832
|
+
exports.asList = asList;
|
|
77833
|
+
exports.asText = asText;
|
|
77160
77834
|
exports.badgeVariants = badgeVariants;
|
|
77161
77835
|
exports.buildBulkShareTitle = buildBulkShareTitle;
|
|
77162
77836
|
exports.buildInventoryPublicUrl = buildInventoryPublicUrl;
|
|
@@ -77169,6 +77843,7 @@ exports.countries = countries;
|
|
|
77169
77843
|
exports.countryByCode = countryByCode;
|
|
77170
77844
|
exports.createVideoMediaItem = createVideoMediaItem;
|
|
77171
77845
|
exports.dropdownMenuItemDestructiveClass = dropdownMenuItemDestructiveClass;
|
|
77846
|
+
exports.fieldTypeIcon = fieldTypeIcon;
|
|
77172
77847
|
exports.findRegion = findRegion;
|
|
77173
77848
|
exports.flagEmoji = flagEmoji;
|
|
77174
77849
|
exports.formatAddressLocation = formatAddressLocation;
|
|
@@ -77183,10 +77858,12 @@ exports.getStatesOfCountry = getStatesOfCountry;
|
|
|
77183
77858
|
exports.iconButtonVariants = iconButtonVariants;
|
|
77184
77859
|
exports.inAppNotificationCardA11y = inAppNotificationCardA11y;
|
|
77185
77860
|
exports.inAppNotificationsPanelA11y = inAppNotificationsPanelA11y;
|
|
77861
|
+
exports.isBlank = isBlank;
|
|
77186
77862
|
exports.isIndiaCountry = isIndiaCountry;
|
|
77187
77863
|
exports.isKnownRegion = isKnownRegion;
|
|
77188
77864
|
exports.isPathActive = isPathActive;
|
|
77189
77865
|
exports.isValidAlpha2CountryCode = isValidAlpha2CountryCode;
|
|
77866
|
+
exports.isValueEmpty = isValueEmpty;
|
|
77190
77867
|
exports.notify = notify;
|
|
77191
77868
|
exports.releaseStaleOverlayBodyLock = releaseStaleOverlayBodyLock;
|
|
77192
77869
|
exports.renderBadge = renderBadge;
|