se-design 1.0.62-dev → 1.0.63-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/colors.css +9 -22
- package/dist/assets/icons/command.svg +1 -1
- package/dist/assets/style.css +1 -1
- package/dist/components/Banner/index.d.ts +1 -0
- package/dist/components/BreadCrumbs/index.d.ts +0 -2
- package/dist/components/Button/index.d.ts +1 -5
- package/dist/components/Checkbox/index.d.ts +5 -0
- package/dist/index.js +21 -23
- package/dist/index.js.map +1 -1
- package/dist/index100.js +1 -1
- package/dist/index100.js.map +1 -1
- package/dist/index101.js +1 -1
- package/dist/index101.js.map +1 -1
- package/dist/index102.js +2 -2
- package/dist/index102.js.map +1 -1
- package/dist/index103.js +1 -1
- package/dist/index103.js.map +1 -1
- package/dist/index104.js +2 -2
- package/dist/index104.js.map +1 -1
- package/dist/index105.js +1 -1
- package/dist/index105.js.map +1 -1
- package/dist/index106.js +1 -1
- package/dist/index106.js.map +1 -1
- package/dist/index107.js +1 -1
- package/dist/index107.js.map +1 -1
- package/dist/index108.js +2 -2
- package/dist/index108.js.map +1 -1
- package/dist/index109.js +1 -1
- package/dist/index109.js.map +1 -1
- package/dist/index110.js +2 -2
- package/dist/index110.js.map +1 -1
- package/dist/index111.js +2 -2
- package/dist/index111.js.map +1 -1
- package/dist/index112.js +2 -2
- package/dist/index112.js.map +1 -1
- package/dist/index113.js +2 -2
- package/dist/index113.js.map +1 -1
- package/dist/index114.js +1 -1
- package/dist/index114.js.map +1 -1
- package/dist/index115.js +1 -1
- package/dist/index115.js.map +1 -1
- package/dist/index116.js +1 -1
- package/dist/index116.js.map +1 -1
- package/dist/index117.js +2 -2
- package/dist/index117.js.map +1 -1
- package/dist/index118.js +2 -2
- package/dist/index118.js.map +1 -1
- package/dist/index119.js +2 -2
- package/dist/index119.js.map +1 -1
- package/dist/index120.js +1 -1
- package/dist/index120.js.map +1 -1
- package/dist/index121.js +1 -1
- package/dist/index121.js.map +1 -1
- package/dist/index122.js +1 -1
- package/dist/index122.js.map +1 -1
- package/dist/index123.js +1 -1
- package/dist/index123.js.map +1 -1
- package/dist/index124.js +1 -1
- package/dist/index124.js.map +1 -1
- package/dist/index125.js +1 -1
- package/dist/index125.js.map +1 -1
- package/dist/index126.js +1 -1
- package/dist/index126.js.map +1 -1
- package/dist/index127.js +1 -1
- package/dist/index127.js.map +1 -1
- package/dist/index128.js +2 -2
- package/dist/index128.js.map +1 -1
- package/dist/index129.js +2 -2
- package/dist/index129.js.map +1 -1
- package/dist/index130.js +1 -1
- package/dist/index130.js.map +1 -1
- package/dist/index131.js +1 -1
- package/dist/index131.js.map +1 -1
- package/dist/index132.js +1 -1
- package/dist/index132.js.map +1 -1
- package/dist/index133.js +1 -1
- package/dist/index133.js.map +1 -1
- package/dist/index134.js +1 -1
- package/dist/index134.js.map +1 -1
- package/dist/index135.js +1 -1
- package/dist/index135.js.map +1 -1
- package/dist/index136.js +2 -2
- package/dist/index136.js.map +1 -1
- package/dist/index137.js +1 -1
- package/dist/index137.js.map +1 -1
- package/dist/index138.js +2 -2
- package/dist/index138.js.map +1 -1
- package/dist/index139.js +2 -2
- package/dist/index139.js.map +1 -1
- package/dist/index140.js +2 -2
- package/dist/index140.js.map +1 -1
- package/dist/index141.js +2 -2
- package/dist/index141.js.map +1 -1
- package/dist/index142.js +1 -1
- package/dist/index142.js.map +1 -1
- package/dist/index143.js +1 -1
- package/dist/index143.js.map +1 -1
- package/dist/index144.js +1 -1
- package/dist/index144.js.map +1 -1
- package/dist/index145.js +1 -1
- package/dist/index145.js.map +1 -1
- package/dist/index146.js +1 -1
- package/dist/index146.js.map +1 -1
- package/dist/index147.js +1 -1
- package/dist/index147.js.map +1 -1
- package/dist/index148.js +1 -1
- package/dist/index148.js.map +1 -1
- package/dist/index149.js +1 -1
- package/dist/index149.js.map +1 -1
- package/dist/index15.js +2 -2
- package/dist/index150.js +1 -1
- package/dist/index150.js.map +1 -1
- package/dist/index151.js +1 -1
- package/dist/index151.js.map +1 -1
- package/dist/index152.js +1 -1
- package/dist/index152.js.map +1 -1
- package/dist/index153.js +1 -1
- package/dist/index153.js.map +1 -1
- package/dist/index154.js +1 -1
- package/dist/index154.js.map +1 -1
- package/dist/index155.js +1 -1
- package/dist/index155.js.map +1 -1
- package/dist/index156.js +1 -1
- package/dist/index156.js.map +1 -1
- package/dist/index157.js +1 -1
- package/dist/index157.js.map +1 -1
- package/dist/index158.js +1 -1
- package/dist/index158.js.map +1 -1
- package/dist/index159.js +1 -1
- package/dist/index159.js.map +1 -1
- package/dist/index160.js +1 -1
- package/dist/index160.js.map +1 -1
- package/dist/index161.js +1 -1
- package/dist/index161.js.map +1 -1
- package/dist/index162.js +1 -1
- package/dist/index162.js.map +1 -1
- package/dist/index163.js +1 -1
- package/dist/index163.js.map +1 -1
- package/dist/index164.js +1 -1
- package/dist/index164.js.map +1 -1
- package/dist/index165.js +2 -2
- package/dist/index165.js.map +1 -1
- package/dist/index166.js +2 -2
- package/dist/index166.js.map +1 -1
- package/dist/index167.js +1 -1
- package/dist/index167.js.map +1 -1
- package/dist/index168.js +1 -1
- package/dist/index168.js.map +1 -1
- package/dist/index169.js +2 -2
- package/dist/index169.js.map +1 -1
- package/dist/index17.js +1 -1
- package/dist/index170.js +2 -2
- package/dist/index170.js.map +1 -1
- package/dist/index171.js +1 -1
- package/dist/index171.js.map +1 -1
- package/dist/index172.js +1 -1
- package/dist/index172.js.map +1 -1
- package/dist/index173.js +1 -1
- package/dist/index173.js.map +1 -1
- package/dist/index174.js +1 -1
- package/dist/index174.js.map +1 -1
- package/dist/index175.js +1 -1
- package/dist/index175.js.map +1 -1
- package/dist/index176.js +1 -1
- package/dist/index176.js.map +1 -1
- package/dist/index177.js +1 -1
- package/dist/index177.js.map +1 -1
- package/dist/index178.js +1 -1
- package/dist/index178.js.map +1 -1
- package/dist/index179.js +2 -2
- package/dist/index179.js.map +1 -1
- package/dist/index18.js +2 -2
- package/dist/index180.js +2 -2
- package/dist/index180.js.map +1 -1
- package/dist/index181.js +2 -2
- package/dist/index181.js.map +1 -1
- package/dist/index182.js +149 -2
- package/dist/index182.js.map +1 -1
- package/dist/index183.js +9 -149
- package/dist/index183.js.map +1 -1
- package/dist/index184.js +5 -8
- package/dist/index184.js.map +1 -1
- package/dist/index185.js +4 -5
- package/dist/index185.js.map +1 -1
- package/dist/index188.js +27 -0
- package/dist/index188.js.map +1 -0
- package/dist/index189.js +58 -20
- package/dist/index189.js.map +1 -1
- package/dist/index191.js +1 -1
- package/dist/index212.js +1 -1
- package/dist/index22.js +66 -65
- package/dist/index22.js.map +1 -1
- package/dist/index224.js +1 -1
- package/dist/index225.js +1 -1
- package/dist/index226.js +21 -9
- package/dist/index226.js.map +1 -1
- package/dist/index227.js +18 -9
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +9 -4
- package/dist/index228.js.map +1 -1
- package/dist/index229.js +10 -170
- package/dist/index229.js.map +1 -1
- package/dist/index230.js +5 -11
- package/dist/index230.js.map +1 -1
- package/dist/index231.js +170 -22
- package/dist/index231.js.map +1 -1
- package/dist/index232.js +11 -19
- package/dist/index232.js.map +1 -1
- package/dist/index24.js +2 -2
- package/dist/index24.js.map +1 -1
- package/dist/index27.js +1 -1
- package/dist/index29.js +39 -37
- package/dist/index29.js.map +1 -1
- package/dist/index3.js +21 -23
- package/dist/index3.js.map +1 -1
- package/dist/index34.js +1 -1
- package/dist/index36.js +38 -35
- package/dist/index36.js.map +1 -1
- package/dist/index37.js +5 -4
- package/dist/index37.js.map +1 -1
- package/dist/index38.js +3 -3
- package/dist/index43.js +16 -16
- package/dist/index43.js.map +1 -1
- package/dist/index44.js +2 -2
- package/dist/index45.js +2 -2
- package/dist/index48.js +1 -1
- package/dist/index49.js +30 -48
- package/dist/index49.js.map +1 -1
- package/dist/index5.js +113 -113
- package/dist/index50.js +2 -2
- package/dist/index50.js.map +1 -1
- package/dist/index56.js +2 -2
- package/dist/index56.js.map +1 -1
- package/dist/index6.js +1 -1
- package/dist/index63.js +1 -1
- package/dist/index64.js +1 -1
- package/dist/index66.js +17 -19
- package/dist/index66.js.map +1 -1
- package/dist/index68.js +5 -55
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +9 -5
- package/dist/index69.js.map +1 -1
- package/dist/index71.js +5 -0
- package/dist/index71.js.map +1 -0
- package/dist/index72.js +2 -2
- package/dist/index72.js.map +1 -1
- package/dist/index73.js +2 -2
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +2 -2
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +1 -1
- package/dist/index75.js.map +1 -1
- package/dist/index76.js +1 -1
- package/dist/index76.js.map +1 -1
- package/dist/index77.js +1 -1
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +1 -1
- package/dist/index78.js.map +1 -1
- package/dist/index79.js +1 -1
- package/dist/index79.js.map +1 -1
- package/dist/index8.js +5 -5
- package/dist/index8.js.map +1 -1
- package/dist/index80.js +1 -1
- package/dist/index80.js.map +1 -1
- package/dist/index81.js +1 -1
- package/dist/index81.js.map +1 -1
- package/dist/index82.js +1 -1
- package/dist/index82.js.map +1 -1
- package/dist/index83.js +1 -1
- package/dist/index83.js.map +1 -1
- package/dist/index84.js +1 -1
- package/dist/index84.js.map +1 -1
- package/dist/index85.js +1 -1
- package/dist/index85.js.map +1 -1
- package/dist/index86.js +1 -1
- package/dist/index86.js.map +1 -1
- package/dist/index87.js +1 -1
- package/dist/index87.js.map +1 -1
- package/dist/index88.js +1 -1
- package/dist/index88.js.map +1 -1
- package/dist/index89.js +1 -1
- package/dist/index89.js.map +1 -1
- package/dist/index90.js +1 -1
- package/dist/index90.js.map +1 -1
- package/dist/index91.js +1 -1
- package/dist/index91.js.map +1 -1
- package/dist/index92.js +1 -1
- package/dist/index92.js.map +1 -1
- package/dist/index93.js +1 -1
- package/dist/index93.js.map +1 -1
- package/dist/index94.js +1 -1
- package/dist/index94.js.map +1 -1
- package/dist/index95.js +1 -1
- package/dist/index95.js.map +1 -1
- package/dist/index96.js +1 -1
- package/dist/index96.js.map +1 -1
- package/dist/index97.js +2 -2
- package/dist/index97.js.map +1 -1
- package/dist/index98.js +1 -1
- package/dist/index98.js.map +1 -1
- package/dist/index99.js +2 -2
- package/dist/index99.js.map +1 -1
- package/package.json +1 -1
- package/dist/index186.js +0 -8
- package/dist/index186.js.map +0 -1
- package/dist/index70.js +0 -12
- package/dist/index70.js.map +0 -1
package/dist/index5.js
CHANGED
|
@@ -1,117 +1,117 @@
|
|
|
1
|
-
import C from "./
|
|
2
|
-
import O from "./
|
|
3
|
-
import E from "./
|
|
4
|
-
import S from "./
|
|
5
|
-
import $ from "./
|
|
6
|
-
import j from "./
|
|
7
|
-
import L from "./
|
|
8
|
-
import F from "./
|
|
9
|
-
import R from "./
|
|
10
|
-
import B from "./
|
|
11
|
-
import M from "./
|
|
12
|
-
import q from "./
|
|
13
|
-
import D from "./
|
|
14
|
-
import G from "./
|
|
15
|
-
import T from "./
|
|
16
|
-
import V from "./
|
|
17
|
-
import H from "./
|
|
18
|
-
import J from "./
|
|
19
|
-
import K from "./
|
|
20
|
-
import Q from "./
|
|
21
|
-
import U from "./
|
|
22
|
-
import W from "./
|
|
23
|
-
import X from "./
|
|
24
|
-
import Y from "./
|
|
25
|
-
import Z from "./
|
|
26
|
-
import z from "./
|
|
27
|
-
import ss from "./
|
|
28
|
-
import os from "./
|
|
29
|
-
import _s from "./
|
|
30
|
-
import ts from "./
|
|
31
|
-
import is from "./
|
|
32
|
-
import rs from "./
|
|
33
|
-
import es from "./
|
|
34
|
-
import cs from "./
|
|
35
|
-
import as from "./
|
|
36
|
-
import ms from "./
|
|
37
|
-
import gs from "./
|
|
38
|
-
import vs from "./
|
|
39
|
-
import ns from "./
|
|
40
|
-
import ls from "./
|
|
41
|
-
import fs from "./
|
|
42
|
-
import bs from "./
|
|
43
|
-
import ps from "./
|
|
44
|
-
import ds from "./
|
|
45
|
-
import us from "./
|
|
46
|
-
import hs from "./
|
|
47
|
-
import ks from "./
|
|
48
|
-
import xs from "./
|
|
49
|
-
import As from "./
|
|
50
|
-
import ws from "./
|
|
51
|
-
import ys from "./
|
|
52
|
-
import Ps from "./
|
|
53
|
-
import Is from "./
|
|
54
|
-
import Ns from "./
|
|
55
|
-
import Cs from "./
|
|
56
|
-
import Os from "./
|
|
57
|
-
import Es from "./
|
|
58
|
-
import Ss from "./
|
|
59
|
-
import $s from "./
|
|
60
|
-
import js from "./
|
|
61
|
-
import Ls from "./
|
|
62
|
-
import Fs from "./
|
|
63
|
-
import Rs from "./
|
|
64
|
-
import Bs from "./
|
|
65
|
-
import Ms from "./
|
|
66
|
-
import qs from "./
|
|
67
|
-
import Ds from "./
|
|
68
|
-
import Gs from "./
|
|
69
|
-
import Ts from "./
|
|
70
|
-
import Vs from "./
|
|
71
|
-
import Hs from "./
|
|
72
|
-
import Js from "./
|
|
73
|
-
import Ks from "./
|
|
74
|
-
import Qs from "./
|
|
75
|
-
import Us from "./
|
|
76
|
-
import Ws from "./
|
|
77
|
-
import Xs from "./
|
|
78
|
-
import Ys from "./
|
|
79
|
-
import Zs from "./
|
|
80
|
-
import zs from "./
|
|
81
|
-
import so from "./
|
|
82
|
-
import oo from "./
|
|
83
|
-
import _o from "./
|
|
84
|
-
import to from "./
|
|
85
|
-
import io from "./
|
|
86
|
-
import ro from "./
|
|
87
|
-
import eo from "./
|
|
88
|
-
import co from "./
|
|
89
|
-
import ao from "./
|
|
90
|
-
import mo from "./
|
|
91
|
-
import go from "./
|
|
92
|
-
import vo from "./
|
|
93
|
-
import no from "./
|
|
94
|
-
import lo from "./
|
|
95
|
-
import fo from "./
|
|
96
|
-
import bo from "./
|
|
97
|
-
import po from "./
|
|
98
|
-
import uo from "./
|
|
99
|
-
import ho from "./
|
|
100
|
-
import ko from "./
|
|
101
|
-
import xo from "./
|
|
102
|
-
import Ao from "./
|
|
103
|
-
import wo from "./
|
|
104
|
-
import yo from "./
|
|
105
|
-
import Po from "./
|
|
106
|
-
import Io from "./
|
|
107
|
-
import No from "./
|
|
108
|
-
import Co from "./
|
|
109
|
-
import Oo from "./
|
|
110
|
-
import Eo from "./
|
|
111
|
-
import So from "./
|
|
1
|
+
import C from "./index71.js";
|
|
2
|
+
import O from "./index72.js";
|
|
3
|
+
import E from "./index73.js";
|
|
4
|
+
import S from "./index74.js";
|
|
5
|
+
import $ from "./index75.js";
|
|
6
|
+
import j from "./index76.js";
|
|
7
|
+
import L from "./index77.js";
|
|
8
|
+
import F from "./index78.js";
|
|
9
|
+
import R from "./index79.js";
|
|
10
|
+
import B from "./index80.js";
|
|
11
|
+
import M from "./index81.js";
|
|
12
|
+
import q from "./index82.js";
|
|
13
|
+
import D from "./index83.js";
|
|
14
|
+
import G from "./index84.js";
|
|
15
|
+
import T from "./index85.js";
|
|
16
|
+
import V from "./index86.js";
|
|
17
|
+
import H from "./index87.js";
|
|
18
|
+
import J from "./index88.js";
|
|
19
|
+
import K from "./index89.js";
|
|
20
|
+
import Q from "./index90.js";
|
|
21
|
+
import U from "./index91.js";
|
|
22
|
+
import W from "./index92.js";
|
|
23
|
+
import X from "./index93.js";
|
|
24
|
+
import Y from "./index94.js";
|
|
25
|
+
import Z from "./index95.js";
|
|
26
|
+
import z from "./index96.js";
|
|
27
|
+
import ss from "./index97.js";
|
|
28
|
+
import os from "./index98.js";
|
|
29
|
+
import _s from "./index99.js";
|
|
30
|
+
import ts from "./index100.js";
|
|
31
|
+
import is from "./index101.js";
|
|
32
|
+
import rs from "./index102.js";
|
|
33
|
+
import es from "./index103.js";
|
|
34
|
+
import cs from "./index104.js";
|
|
35
|
+
import as from "./index105.js";
|
|
36
|
+
import ms from "./index106.js";
|
|
37
|
+
import gs from "./index107.js";
|
|
38
|
+
import vs from "./index108.js";
|
|
39
|
+
import ns from "./index109.js";
|
|
40
|
+
import ls from "./index110.js";
|
|
41
|
+
import fs from "./index111.js";
|
|
42
|
+
import bs from "./index112.js";
|
|
43
|
+
import ps from "./index113.js";
|
|
44
|
+
import ds from "./index114.js";
|
|
45
|
+
import us from "./index115.js";
|
|
46
|
+
import hs from "./index116.js";
|
|
47
|
+
import ks from "./index117.js";
|
|
48
|
+
import xs from "./index118.js";
|
|
49
|
+
import As from "./index119.js";
|
|
50
|
+
import ws from "./index120.js";
|
|
51
|
+
import ys from "./index121.js";
|
|
52
|
+
import Ps from "./index122.js";
|
|
53
|
+
import Is from "./index123.js";
|
|
54
|
+
import Ns from "./index124.js";
|
|
55
|
+
import Cs from "./index125.js";
|
|
56
|
+
import Os from "./index126.js";
|
|
57
|
+
import Es from "./index127.js";
|
|
58
|
+
import Ss from "./index128.js";
|
|
59
|
+
import $s from "./index129.js";
|
|
60
|
+
import js from "./index130.js";
|
|
61
|
+
import Ls from "./index131.js";
|
|
62
|
+
import Fs from "./index132.js";
|
|
63
|
+
import Rs from "./index133.js";
|
|
64
|
+
import Bs from "./index134.js";
|
|
65
|
+
import Ms from "./index135.js";
|
|
66
|
+
import qs from "./index136.js";
|
|
67
|
+
import Ds from "./index137.js";
|
|
68
|
+
import Gs from "./index138.js";
|
|
69
|
+
import Ts from "./index139.js";
|
|
70
|
+
import Vs from "./index140.js";
|
|
71
|
+
import Hs from "./index141.js";
|
|
72
|
+
import Js from "./index142.js";
|
|
73
|
+
import Ks from "./index143.js";
|
|
74
|
+
import Qs from "./index144.js";
|
|
75
|
+
import Us from "./index145.js";
|
|
76
|
+
import Ws from "./index146.js";
|
|
77
|
+
import Xs from "./index147.js";
|
|
78
|
+
import Ys from "./index148.js";
|
|
79
|
+
import Zs from "./index149.js";
|
|
80
|
+
import zs from "./index150.js";
|
|
81
|
+
import so from "./index151.js";
|
|
82
|
+
import oo from "./index152.js";
|
|
83
|
+
import _o from "./index153.js";
|
|
84
|
+
import to from "./index154.js";
|
|
85
|
+
import io from "./index155.js";
|
|
86
|
+
import ro from "./index156.js";
|
|
87
|
+
import eo from "./index157.js";
|
|
88
|
+
import co from "./index158.js";
|
|
89
|
+
import ao from "./index159.js";
|
|
90
|
+
import mo from "./index160.js";
|
|
91
|
+
import go from "./index161.js";
|
|
92
|
+
import vo from "./index162.js";
|
|
93
|
+
import no from "./index163.js";
|
|
94
|
+
import lo from "./index164.js";
|
|
95
|
+
import fo from "./index165.js";
|
|
96
|
+
import bo from "./index166.js";
|
|
97
|
+
import po from "./index167.js";
|
|
98
|
+
import uo from "./index168.js";
|
|
99
|
+
import ho from "./index169.js";
|
|
100
|
+
import ko from "./index170.js";
|
|
101
|
+
import xo from "./index171.js";
|
|
102
|
+
import Ao from "./index172.js";
|
|
103
|
+
import wo from "./index173.js";
|
|
104
|
+
import yo from "./index174.js";
|
|
105
|
+
import Po from "./index175.js";
|
|
106
|
+
import Io from "./index176.js";
|
|
107
|
+
import No from "./index177.js";
|
|
108
|
+
import Co from "./index178.js";
|
|
109
|
+
import Oo from "./index179.js";
|
|
110
|
+
import Eo from "./index180.js";
|
|
111
|
+
import So from "./index181.js";
|
|
112
112
|
import m from "react";
|
|
113
|
-
import { ReactSVG as $o } from "./
|
|
114
|
-
import { getA11yNameAttributes as jo } from "./
|
|
113
|
+
import { ReactSVG as $o } from "./index182.js";
|
|
114
|
+
import { getA11yNameAttributes as jo } from "./index69.js";
|
|
115
115
|
import { useAccessiblePress as Lo } from "./index66.js";
|
|
116
116
|
function c() {
|
|
117
117
|
return c = Object.assign ? Object.assign.bind() : function(s) {
|
package/dist/index50.js
CHANGED
|
@@ -332,7 +332,7 @@ const fe = ["S", "M", "T", "W", "T", "F", "S"], pe = ["Today", "Yesterday", "Thi
|
|
|
332
332
|
${!k && g ? "bg-[var(--color-blue-500)] text-[var(--color-white)] hover:bg-[var(--color-blue-600)]" : ""}
|
|
333
333
|
${!u && !g && J ? "bg-[var(--color-blue-100)] text-[var(--color-blue-600)]" : ""}
|
|
334
334
|
${!u && !g && !J && !M ? "hover:bg-[var(--color-blue-100)]" : ""}
|
|
335
|
-
${V && !u && !g ? "text-[var(--color-blue-500)]
|
|
335
|
+
${V && !u && !g ? "text-[var(--color-blue-500)]" : ""}
|
|
336
336
|
${!M && !u && !g && !V ? "text-[var(--color-gray-700)]" : ""}
|
|
337
337
|
`,
|
|
338
338
|
"data-automation-id": `${m}-date-${_}`
|
|
@@ -364,7 +364,7 @@ const fe = ["S", "M", "T", "W", "T", "F", "S"], pe = ["Today", "Yesterday", "Thi
|
|
|
364
364
|
className: "se-design-datepicker-footer flex justify-end items-center gap-5 p-4 border-t border-[var(--color-gray-200)]"
|
|
365
365
|
}, /* @__PURE__ */ o.createElement(S, {
|
|
366
366
|
label: j?.clear || "Clear",
|
|
367
|
-
type: "
|
|
367
|
+
type: "link",
|
|
368
368
|
onClick: De,
|
|
369
369
|
"data-automation-id": `${m}-clear-button`
|
|
370
370
|
}), /* @__PURE__ */ o.createElement(S, {
|
package/dist/index50.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index50.js","sources":["../src/components/DatePicker/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport { Button } from '../Button';\nimport { Icon } from '../Icon';\nimport { Dropdown } from '../Dropdown';\n\nimport './style.scss';\n\nexport interface DateRange {\n startDate: Date | null;\n endDate: Date | null;\n}\n\nexport interface DatePickerProps {\n title?: string;\n isOpen?: boolean;\n initialStartDate?: Date;\n initialEndDate?: Date;\n onApply?: (dateRange: DateRange) => void;\n onClose?: () => void;\n shouldAllowFutureDateSelection?: boolean;\n maxDays?: number;\n disablePastDates?: boolean;\n singleDateSelection?: boolean;\n minYearOption?: number;\n showQuickActions?: boolean;\n className?: string;\n automationId?: string;\n showHeader?: boolean;\n showSingleMonth?: boolean;\n labels?: {\n title?: string;\n clear?: string;\n apply?: string;\n };\n}\n\nconst weekDays = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];\nconst quickActions = ['Today', 'Yesterday', 'This Week', 'Last Week', 'This Month', 'Last Month'];\n\nconst months = [\n { value: 'january', label: 'January' },\n { value: 'february', label: 'February' },\n { value: 'march', label: 'March' },\n { value: 'april', label: 'April' },\n { value: 'may', label: 'May' },\n { value: 'june', label: 'June' },\n { value: 'july', label: 'July' },\n { value: 'august', label: 'August' },\n { value: 'september', label: 'September' },\n { value: 'october', label: 'October' },\n { value: 'november', label: 'November' },\n { value: 'december', label: 'December' }\n];\n\nexport const DatePicker: React.FC<DatePickerProps> = ({\n title = 'Select modified date',\n // isOpen = true,\n showHeader = true,\n initialStartDate,\n initialEndDate,\n onApply = () => {},\n onClose,\n shouldAllowFutureDateSelection = false,\n maxDays,\n disablePastDates = false,\n singleDateSelection = false,\n minYearOption,\n showQuickActions = false,\n showSingleMonth = false,\n className = '',\n automationId = 'datepicker',\n labels = {\n clear: 'Clear',\n apply: 'Apply'\n }\n}) => {\n const getDefaultDateRange = (): DateRange => {\n // If initial start and end dates are provided, use them\n if (initialStartDate && initialEndDate) {\n return {\n startDate: initialStartDate,\n endDate: initialEndDate\n };\n }\n\n // If no initial dates are provided, use today's date\n const endDate = new Date();\n endDate.setHours(23, 59, 59, 999); // End of today\n\n const startDate = new Date();\n startDate.setHours(0, 0, 0, 0); // Start of today\n\n return { startDate, endDate };\n };\n\n const getDefaultMonths = (): [Date, Date] => {\n const today = new Date();\n const lastMonth = new Date();\n\n // Set both to first day of their respective months\n today.setDate(1);\n lastMonth.setDate(1);\n\n if (!showSingleMonth) {\n lastMonth.setMonth(lastMonth.getMonth() - 1);\n }\n\n today.setHours(0, 0, 0, 0);\n lastMonth.setHours(0, 0, 0, 0);\n\n return [lastMonth, today];\n };\n\n const [selectedRange, setSelectedRange] = useState<DateRange>(getDefaultDateRange);\n const [defaultMonths, _] = useState(getDefaultMonths);\n const [leftMonth, setLeftMonth] = useState(() => defaultMonths[0]);\n const [rightMonth, setRightMonth] = useState(() => defaultMonths[1]);\n\n const getDaysInMonth = (year: number, month: number) => {\n return new Date(year, month + 1, 0).getDate();\n };\n\n const getFirstDayOfMonth = (year: number, month: number) => {\n return new Date(year, month, 1).getDay();\n };\n\n const generateCalendarDays = (year: number, month: number) => {\n const daysInMonth = getDaysInMonth(year, month);\n const firstDay = getFirstDayOfMonth(year, month);\n const days = [];\n\n // Add empty cells for days before the first day of the month\n for (let i = 0; i < firstDay; i++) {\n days.push(null);\n }\n\n // Add the days of the month\n for (let day = 1; day <= daysInMonth; day++) {\n const date = new Date(year, month, day);\n date.setHours(0, 0, 0, 0); // Normalize to start of day for consistent comparisons\n days.push(date);\n }\n\n return days;\n };\n\n const isSameDay = (date1: Date, date2: Date): boolean => {\n return (\n date1.getDate() === date2.getDate() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getFullYear() === date2.getFullYear()\n );\n };\n\n const isDateInRange = (date: Date) => {\n if (!selectedRange.startDate || !selectedRange.endDate) return false;\n\n const compareDate = new Date(date);\n compareDate.setHours(12, 0, 0, 0); // Noon to avoid any timezone issues\n\n const startDate = new Date(selectedRange.startDate);\n startDate.setHours(0, 0, 0, 0);\n\n const endDate = new Date(selectedRange.endDate);\n endDate.setHours(23, 59, 59, 999);\n\n return compareDate >= startDate && compareDate <= endDate;\n };\n\n const isToday = (date: Date) => {\n const today = new Date();\n return (\n date.getDate() === today.getDate() &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear()\n );\n };\n\n const isDateDisabled = (date: Date | null) => {\n if (!date) return true;\n\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n const dateToCheck = new Date(date);\n dateToCheck.setHours(0, 0, 0, 0);\n\n // If disablePastDates is true, disable dates before today\n if (disablePastDates && dateToCheck < today) {\n return true;\n }\n\n // If maxDays is specified, disable dates after maxDays from today\n if (maxDays !== undefined && maxDays !== null) {\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n maxDate.setHours(0, 0, 0, 0); // Normalize to start of day\n // Disable all dates after maxDays (dates strictly after maxDate should be disabled)\n // Dates up to and including maxDate (today + maxDays) are allowed\n if (dateToCheck > maxDate) {\n return true;\n }\n // If maxDays is set, we're done checking - don't check shouldAllowFutureDateSelection\n return false;\n }\n\n // If shouldAllowFutureDateSelection is false and maxDays is not specified, disable dates after today\n if (!shouldAllowFutureDateSelection) {\n return dateToCheck > today;\n }\n\n return false;\n };\n\n const handleDateClick = (date: Date) => {\n if (isDateDisabled(date)) return;\n\n const clickedDate = new Date(date);\n clickedDate.setHours(12, 0, 0, 0); // Set to noon to avoid timezone issues\n\n // Single date selection mode - immediately apply on click\n if (singleDateSelection) {\n setSelectedRange({ startDate: clickedDate, endDate: clickedDate });\n onApply({ startDate: clickedDate, endDate: clickedDate });\n onClose?.();\n return;\n }\n\n // Range selection mode (original behavior)\n if (!selectedRange.startDate || selectedRange.endDate) {\n // No dates selected yet, or both dates are selected - start new selection\n setSelectedRange({ startDate: clickedDate, endDate: null });\n } else {\n // Only start date is selected, set end date\n const currentStart = new Date(selectedRange.startDate);\n currentStart.setHours(12, 0, 0, 0);\n\n const endDate = clickedDate > currentStart ? clickedDate : currentStart;\n const startDate = clickedDate > currentStart ? currentStart : clickedDate;\n\n setSelectedRange({ startDate, endDate });\n }\n };\n\n const handleMonthNavigation = (date: Date, increment: boolean) => {\n const newDate = new Date(date);\n newDate.setMonth(newDate.getMonth() + (increment ? 1 : -1));\n return newDate;\n };\n\n const ensureDateInCorrectOrder = (leftDate: Date, rightDate: Date): [Date, Date] => {\n if (leftDate.getTime() > rightDate.getTime()) {\n return [rightDate, leftDate];\n }\n return [leftDate, rightDate];\n };\n\n const handleMonthChange = (newDate: Date, isLeftCalendar: boolean) => {\n // For single month view, we only need to set the left month\n if (showSingleMonth) {\n setLeftMonth(newDate);\n return;\n }\n\n // For double month view, we need to ensure the dates are in the correct order\n if (isLeftCalendar) {\n const [newLeft, newRight] = ensureDateInCorrectOrder(newDate, rightMonth);\n setLeftMonth(newLeft);\n if (newRight !== rightMonth) {\n setRightMonth(newRight);\n }\n } else {\n const [newLeft, newRight] = ensureDateInCorrectOrder(leftMonth, newDate);\n if (newLeft !== leftMonth) {\n setLeftMonth(newLeft);\n }\n setRightMonth(newRight);\n }\n };\n\n const isStartDate = (date: Date): boolean => {\n if (!selectedRange?.startDate) return false;\n return isSameDay(date, selectedRange.startDate);\n };\n\n const isEndDate = (date: Date): boolean => {\n if (!selectedRange?.endDate) return false;\n return isSameDay(date, selectedRange?.endDate);\n };\n\n const isSameStartAndEndDate = (date: Date): boolean => {\n if (!selectedRange.startDate || !selectedRange.endDate) return false;\n return isSameDay(selectedRange.startDate, selectedRange.endDate) && isSameDay(date, selectedRange.startDate);\n };\n\n const getYearOptions = (currentYear: number, calendarYear: number) => {\n const startYear = minYearOption || currentYear - 10;\n let endYear = shouldAllowFutureDateSelection ? currentYear + 10 : currentYear;\n\n // If maxDays is specified, calculate the maximum year\n if (maxDays) {\n const today = new Date();\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n const maxYear = maxDate.getFullYear();\n // Use the smaller of the two limits\n endYear = Math.min(endYear, maxYear);\n }\n\n endYear = Math.max(endYear, calendarYear);\n\n const yearCount = endYear - startYear + 1;\n\n return Array.from({ length: yearCount }, (_, i) => ({\n value: startYear + i,\n label: (startYear + i).toString()\n })).filter((year) => {\n if (year.value === calendarYear) {\n return true;\n }\n if (!shouldAllowFutureDateSelection && year.value > currentYear) {\n return false;\n }\n // If maxDays is specified, filter out years beyond maxDate\n if (maxDays) {\n const today = new Date();\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n return year.value <= maxDate.getFullYear();\n }\n return true;\n });\n };\n\n const handleClear = () => {\n const today = new Date();\n const startDate = new Date();\n\n // Set start date to beginning of today\n startDate.setHours(0, 0, 0, 0);\n\n // Set end date to end of today\n today.setHours(23, 59, 59, 999);\n\n const defaultRange = { startDate, endDate: today };\n setSelectedRange(defaultRange);\n };\n\n const getStartOfDay = (date: Date) => {\n const newDate = new Date(date);\n newDate.setHours(0, 0, 0, 0);\n return newDate;\n };\n\n const getEndOfDay = (date: Date) => {\n const newDate = new Date(date);\n newDate.setHours(23, 59, 59, 999);\n return newDate;\n };\n\n const handleQuickAction = (action: string) => {\n const today = new Date();\n let startDate = new Date();\n let endDate = new Date();\n\n switch (action) {\n case 'Today':\n startDate = getStartOfDay(today);\n endDate = getEndOfDay(today);\n break;\n case 'Yesterday':\n startDate = getStartOfDay(new Date(today.setDate(today.getDate() - 1)));\n endDate = getEndOfDay(new Date(today));\n break;\n case 'This Week':\n const firstDayOfWeek = new Date(today.setDate(today.getDate() - today.getDay()));\n startDate = getStartOfDay(firstDayOfWeek);\n endDate = getEndOfDay(new Date());\n break;\n case 'Last Week':\n const lastWeekStart = new Date(today.setDate(today.getDate() - today.getDay() - 7));\n const lastWeekEnd = new Date(today.setDate(lastWeekStart.getDate() + 6));\n startDate = getStartOfDay(lastWeekStart);\n endDate = getEndOfDay(lastWeekEnd);\n break;\n case 'This Month':\n startDate = getStartOfDay(new Date(today.getFullYear(), today.getMonth(), 1));\n endDate = getEndOfDay(new Date());\n break;\n case 'Last Month':\n startDate = getStartOfDay(new Date(today.getFullYear(), today.getMonth() - 1, 1));\n endDate = getEndOfDay(new Date(today.getFullYear(), today.getMonth(), 0));\n break;\n }\n\n setSelectedRange({ startDate, endDate });\n };\n\n const renderQuickActions = () => {\n return (\n <div className=\"w-[147px] p-4 border-r border-[var(--color-gray-200)]\">\n <div className=\"flex flex-col gap-3\">\n {quickActions.map((action) => (\n <Button key={action} label={action} type=\"link\" onClick={() => handleQuickAction(action)} />\n ))}\n </div>\n </div>\n );\n };\n\n const handleApply = () => {\n const { startDate = null, endDate = null } = selectedRange;\n\n if (startDate && endDate) {\n onApply({ startDate, endDate });\n return;\n }\n\n if (startDate || endDate) {\n const selectedDate = startDate || endDate;\n onApply({ startDate: selectedDate, endDate: selectedDate });\n }\n };\n\n const renderCalendar = (date: Date) => {\n const year = date.getFullYear();\n const month = date.getMonth();\n const days = generateCalendarDays(year, month);\n const currentYear = new Date().getFullYear();\n const isLeftCalendar = date.getTime() === leftMonth.getTime();\n const yearOptions = getYearOptions(currentYear, year);\n\n return (\n <div className=\"se-design-calendar-container w-fit p-4\">\n <div className=\"flex justify-between items-center\">\n <Icon\n name=\"chevron\"\n rotation=\"90\"\n size={16}\n onClick={() => {\n const newDate = handleMonthNavigation(date, false);\n // Check if navigating back would go before today when disablePastDates is true\n if (disablePastDates) {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n if (newDate < today && newDate.getMonth() !== today.getMonth()) {\n return; // Don't navigate to past months\n }\n }\n handleMonthChange(newDate, isLeftCalendar);\n }}\n className={`datepicker-navigation-icon ${\n disablePastDates &&\n date.getMonth() === new Date().getMonth() &&\n date.getFullYear() === new Date().getFullYear()\n ? 'disabled'\n : ''\n }`}\n automationId={`${automationId}-previous-month`}\n />\n\n <div className=\"flex gap-2\" onClick={(e) => e.stopPropagation()}>\n <Dropdown\n type=\"select\"\n dropDownOptions={months}\n defaultSelectedValue={months[month]}\n selectBy=\"label\"\n optionsUniqueBy=\"value\"\n displaySelected={true}\n onOptionClick={(selectedOption) => {\n const newDate = new Date(date);\n newDate.setMonth(months.findIndex((m) => m.value === selectedOption.value));\n handleMonthChange(newDate, isLeftCalendar);\n }}\n className=\"w-[124px] dropdown-option-container\"\n />\n <Dropdown\n type=\"select\"\n dropDownOptions={yearOptions}\n defaultSelectedValue={yearOptions.find((y) => y.value === year)}\n selectBy=\"label\"\n optionsUniqueBy=\"value\"\n displaySelected={true}\n onOptionClick={(selectedOption) => {\n const newDate = new Date(date);\n newDate.setFullYear(selectedOption.value);\n handleMonthChange(newDate, isLeftCalendar);\n }}\n className=\"w-[104px] dropdown-option-container\"\n />\n </div>\n\n <Icon\n name=\"chevron\"\n rotation=\"270\"\n size={16}\n className={`datepicker-navigation-icon ${\n (!shouldAllowFutureDateSelection &&\n month === new Date().getMonth() &&\n year === new Date().getFullYear()) ||\n (maxDays !== undefined &&\n (() => {\n const today = new Date();\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n return date.getMonth() === maxDate.getMonth() && date.getFullYear() === maxDate.getFullYear();\n })())\n ? 'disabled'\n : ''\n }`}\n onClick={() => {\n const newDate = handleMonthNavigation(date, true);\n // Check if the new date would exceed maxDays\n if (maxDays !== undefined) {\n const today = new Date();\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n if (newDate > maxDate) {\n return;\n }\n }\n handleMonthChange(newDate, isLeftCalendar);\n }}\n automationId={`${automationId}-next-month`}\n />\n </div>\n <div className=\"grid grid-cols-7 gap-2 mt-3\">\n {weekDays.map((day, index) => (\n <div key={`${day}-${index}`} className=\"datepicker-weekdays\">\n {day}\n </div>\n ))}\n {days.map((date, index) => {\n const isStart = date && isStartDate(date);\n const isEnd = date && isEndDate(date);\n const isSameStartEnd = date && isSameStartAndEndDate(date);\n const inRange = date && !isStart && !isEnd && isDateInRange(date);\n const todayDate = date && isToday(date);\n const disabled = isDateDisabled(date);\n const dateValue = date?.getDate();\n\n return (\n <div\n key={`${date}-${index}`}\n onClick={() => !disabled && date && handleDateClick(date)}\n className={`\n relative h-10 w-10 flex items-center justify-center transition-colors rounded-md\n ${\n disabled ? 'cursor-not-allowed text-[var(--color-gray-600)] hover:bg-transparent' : 'cursor-pointer'\n }\n ${\n isSameStartEnd\n ? 'bg-[var(--color-blue-500)] text-[var(--color-white)] hover:bg-[var(--color-blue-600)]'\n : ''\n }\n ${\n !isSameStartEnd && isStart\n ? 'bg-[var(--color-blue-500)] text-[var(--color-white)] hover:bg-[var(--color-blue-600)]'\n : ''\n }\n ${\n !isSameStartEnd && isEnd\n ? 'bg-[var(--color-blue-500)] text-[var(--color-white)] hover:bg-[var(--color-blue-600)]'\n : ''\n }\n ${!isStart && !isEnd && inRange ? 'bg-[var(--color-blue-100)] text-[var(--color-blue-600)]' : ''}\n ${!isStart && !isEnd && !inRange && !disabled ? 'hover:bg-[var(--color-blue-100)]' : ''}\n ${todayDate && !isStart && !isEnd ? 'text-[var(--color-blue-500)] bg-[var(--color-blue-100)]' : ''}\n ${!disabled && !isStart && !isEnd && !todayDate ? 'text-[var(--color-gray-700)]' : ''}\n `}\n data-automation-id={`${automationId}-date-${dateValue}`}\n >\n {date ? (\n <>\n {dateValue}\n {!isSameStartEnd && (isStart || isEnd) && (\n <div\n className={`absolute top-0 bottom-0 ${isStart ? 'right-[-8px]' : 'left-[-8px]'} w-[8px]\n bg-[var(--color-blue-100)] -z-10`}\n />\n )}\n </>\n ) : (\n ''\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n };\n\n return (\n <div\n className={`se-design-datepicker-container flex flex-col bg-[var(--color-white)] rounded-md shadow-md w-max ${className}`}\n >\n {showHeader && (\n <div className=\"se-design-datepicker-header flex justify-between items-center border-b border-[var(--color-gray-200)] p-4\">\n <h2 className=\"datepicker-title\">{title}</h2>\n {onClose && (\n <Icon\n name=\"close\"\n size={16}\n onClick={onClose}\n className=\"cursor-pointer\"\n automationId={`${automationId}-close`}\n />\n )}\n </div>\n )}\n <div className=\"se-design-datepicker-content flex\">\n {showQuickActions && renderQuickActions()}\n <div className=\"flex\">\n {showSingleMonth ? (\n renderCalendar(leftMonth)\n ) : (\n <>\n {renderCalendar(leftMonth)}\n <div className=\"h-full w-[1px] border-r border-[var(--color-gray-200)]\"></div>\n {renderCalendar(rightMonth)}\n </>\n )}\n </div>\n </div>\n {!singleDateSelection && (\n <div className=\"se-design-datepicker-footer flex justify-end items-center gap-5 p-4 border-t border-[var(--color-gray-200)]\">\n <Button\n label={labels?.clear || 'Clear'}\n type=\"ghost\"\n onClick={handleClear}\n data-automation-id={`${automationId}-clear-button`}\n />\n <Button\n label={labels?.apply || 'Apply'}\n type=\"primary\"\n onClick={handleApply}\n data-automation-id={`${automationId}-apply-button`}\n />\n </div>\n )}\n </div>\n );\n};\n"],"names":["React__default","useState","Button","Icon","Dropdown","weekDays","quickActions","months","value","label","DatePicker","title","showHeader","initialStartDate","initialEndDate","onApply","onClose","shouldAllowFutureDateSelection","maxDays","disablePastDates","singleDateSelection","minYearOption","showQuickActions","showSingleMonth","className","automationId","labels","clear","apply","getDefaultDateRange","startDate","endDate","Date","setHours","getDefaultMonths","today","lastMonth","setDate","setMonth","getMonth","selectedRange","setSelectedRange","defaultMonths","leftMonth","setLeftMonth","rightMonth","setRightMonth","getDaysInMonth","year","month","getDate","getFirstDayOfMonth","getDay","generateCalendarDays","daysInMonth","firstDay","days","i","push","day","date","isSameDay","date1","date2","getFullYear","isDateInRange","compareDate","isToday","isDateDisabled","dateToCheck","maxDate","handleDateClick","clickedDate","currentStart","handleMonthNavigation","increment","newDate","ensureDateInCorrectOrder","leftDate","rightDate","getTime","handleMonthChange","isLeftCalendar","newLeft","newRight","isStartDate","isEndDate","isSameStartAndEndDate","getYearOptions","currentYear","calendarYear","startYear","endYear","maxYear","Math","min","max","yearCount","Array","from","length","_","toString","filter","handleClear","getStartOfDay","getEndOfDay","handleQuickAction","action","firstDayOfWeek","lastWeekStart","lastWeekEnd","renderQuickActions","React","createElement","map","key","type","onClick","handleApply","selectedDate","renderCalendar","yearOptions","name","rotation","size","e","stopPropagation","dropDownOptions","defaultSelectedValue","selectBy","optionsUniqueBy","displaySelected","onOptionClick","selectedOption","findIndex","m","find","y","setFullYear","undefined","index","isStart","isEnd","isSameStartEnd","inRange","todayDate","disabled","dateValue","Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index50.js","sources":["../src/components/DatePicker/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport { Button } from '../Button';\nimport { Icon } from '../Icon';\nimport { Dropdown } from '../Dropdown';\n\nimport './style.scss';\n\nexport interface DateRange {\n startDate: Date | null;\n endDate: Date | null;\n}\n\nexport interface DatePickerProps {\n title?: string;\n isOpen?: boolean;\n initialStartDate?: Date;\n initialEndDate?: Date;\n onApply?: (dateRange: DateRange) => void;\n onClose?: () => void;\n shouldAllowFutureDateSelection?: boolean;\n maxDays?: number;\n disablePastDates?: boolean;\n singleDateSelection?: boolean;\n minYearOption?: number;\n showQuickActions?: boolean;\n className?: string;\n automationId?: string;\n showHeader?: boolean;\n showSingleMonth?: boolean;\n labels?: {\n title?: string;\n clear?: string;\n apply?: string;\n };\n}\n\nconst weekDays = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];\nconst quickActions = ['Today', 'Yesterday', 'This Week', 'Last Week', 'This Month', 'Last Month'];\n\nconst months = [\n { value: 'january', label: 'January' },\n { value: 'february', label: 'February' },\n { value: 'march', label: 'March' },\n { value: 'april', label: 'April' },\n { value: 'may', label: 'May' },\n { value: 'june', label: 'June' },\n { value: 'july', label: 'July' },\n { value: 'august', label: 'August' },\n { value: 'september', label: 'September' },\n { value: 'october', label: 'October' },\n { value: 'november', label: 'November' },\n { value: 'december', label: 'December' }\n];\n\nexport const DatePicker: React.FC<DatePickerProps> = ({\n title = 'Select modified date',\n // isOpen = true,\n showHeader = true,\n initialStartDate,\n initialEndDate,\n onApply = () => {},\n onClose,\n shouldAllowFutureDateSelection = false,\n maxDays,\n disablePastDates = false,\n singleDateSelection = false,\n minYearOption,\n showQuickActions = false,\n showSingleMonth = false,\n className = '',\n automationId = 'datepicker',\n labels = {\n clear: 'Clear',\n apply: 'Apply'\n }\n}) => {\n const getDefaultDateRange = (): DateRange => {\n // If initial start and end dates are provided, use them\n if (initialStartDate && initialEndDate) {\n return {\n startDate: initialStartDate,\n endDate: initialEndDate\n };\n }\n\n // If no initial dates are provided, use today's date\n const endDate = new Date();\n endDate.setHours(23, 59, 59, 999); // End of today\n\n const startDate = new Date();\n startDate.setHours(0, 0, 0, 0); // Start of today\n\n return { startDate, endDate };\n };\n\n const getDefaultMonths = (): [Date, Date] => {\n const today = new Date();\n const lastMonth = new Date();\n\n // Set both to first day of their respective months\n today.setDate(1);\n lastMonth.setDate(1);\n\n if (!showSingleMonth) {\n lastMonth.setMonth(lastMonth.getMonth() - 1);\n }\n\n today.setHours(0, 0, 0, 0);\n lastMonth.setHours(0, 0, 0, 0);\n\n return [lastMonth, today];\n };\n\n const [selectedRange, setSelectedRange] = useState<DateRange>(getDefaultDateRange);\n const [defaultMonths, _] = useState(getDefaultMonths);\n const [leftMonth, setLeftMonth] = useState(() => defaultMonths[0]);\n const [rightMonth, setRightMonth] = useState(() => defaultMonths[1]);\n\n const getDaysInMonth = (year: number, month: number) => {\n return new Date(year, month + 1, 0).getDate();\n };\n\n const getFirstDayOfMonth = (year: number, month: number) => {\n return new Date(year, month, 1).getDay();\n };\n\n const generateCalendarDays = (year: number, month: number) => {\n const daysInMonth = getDaysInMonth(year, month);\n const firstDay = getFirstDayOfMonth(year, month);\n const days = [];\n\n // Add empty cells for days before the first day of the month\n for (let i = 0; i < firstDay; i++) {\n days.push(null);\n }\n\n // Add the days of the month\n for (let day = 1; day <= daysInMonth; day++) {\n const date = new Date(year, month, day);\n date.setHours(0, 0, 0, 0); // Normalize to start of day for consistent comparisons\n days.push(date);\n }\n\n return days;\n };\n\n const isSameDay = (date1: Date, date2: Date): boolean => {\n return (\n date1.getDate() === date2.getDate() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getFullYear() === date2.getFullYear()\n );\n };\n\n const isDateInRange = (date: Date) => {\n if (!selectedRange.startDate || !selectedRange.endDate) return false;\n\n const compareDate = new Date(date);\n compareDate.setHours(12, 0, 0, 0); // Noon to avoid any timezone issues\n\n const startDate = new Date(selectedRange.startDate);\n startDate.setHours(0, 0, 0, 0);\n\n const endDate = new Date(selectedRange.endDate);\n endDate.setHours(23, 59, 59, 999);\n\n return compareDate >= startDate && compareDate <= endDate;\n };\n\n const isToday = (date: Date) => {\n const today = new Date();\n return (\n date.getDate() === today.getDate() &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear()\n );\n };\n\n const isDateDisabled = (date: Date | null) => {\n if (!date) return true;\n\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n const dateToCheck = new Date(date);\n dateToCheck.setHours(0, 0, 0, 0);\n\n // If disablePastDates is true, disable dates before today\n if (disablePastDates && dateToCheck < today) {\n return true;\n }\n\n // If maxDays is specified, disable dates after maxDays from today\n if (maxDays !== undefined && maxDays !== null) {\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n maxDate.setHours(0, 0, 0, 0); // Normalize to start of day\n // Disable all dates after maxDays (dates strictly after maxDate should be disabled)\n // Dates up to and including maxDate (today + maxDays) are allowed\n if (dateToCheck > maxDate) {\n return true;\n }\n // If maxDays is set, we're done checking - don't check shouldAllowFutureDateSelection\n return false;\n }\n\n // If shouldAllowFutureDateSelection is false and maxDays is not specified, disable dates after today\n if (!shouldAllowFutureDateSelection) {\n return dateToCheck > today;\n }\n\n return false;\n };\n\n const handleDateClick = (date: Date) => {\n if (isDateDisabled(date)) return;\n\n const clickedDate = new Date(date);\n clickedDate.setHours(12, 0, 0, 0); // Set to noon to avoid timezone issues\n\n // Single date selection mode - immediately apply on click\n if (singleDateSelection) {\n setSelectedRange({ startDate: clickedDate, endDate: clickedDate });\n onApply({ startDate: clickedDate, endDate: clickedDate });\n onClose?.();\n return;\n }\n\n // Range selection mode (original behavior)\n if (!selectedRange.startDate || selectedRange.endDate) {\n // No dates selected yet, or both dates are selected - start new selection\n setSelectedRange({ startDate: clickedDate, endDate: null });\n } else {\n // Only start date is selected, set end date\n const currentStart = new Date(selectedRange.startDate);\n currentStart.setHours(12, 0, 0, 0);\n\n const endDate = clickedDate > currentStart ? clickedDate : currentStart;\n const startDate = clickedDate > currentStart ? currentStart : clickedDate;\n\n setSelectedRange({ startDate, endDate });\n }\n };\n\n const handleMonthNavigation = (date: Date, increment: boolean) => {\n const newDate = new Date(date);\n newDate.setMonth(newDate.getMonth() + (increment ? 1 : -1));\n return newDate;\n };\n\n const ensureDateInCorrectOrder = (leftDate: Date, rightDate: Date): [Date, Date] => {\n if (leftDate.getTime() > rightDate.getTime()) {\n return [rightDate, leftDate];\n }\n return [leftDate, rightDate];\n };\n\n const handleMonthChange = (newDate: Date, isLeftCalendar: boolean) => {\n // For single month view, we only need to set the left month\n if (showSingleMonth) {\n setLeftMonth(newDate);\n return;\n }\n\n // For double month view, we need to ensure the dates are in the correct order\n if (isLeftCalendar) {\n const [newLeft, newRight] = ensureDateInCorrectOrder(newDate, rightMonth);\n setLeftMonth(newLeft);\n if (newRight !== rightMonth) {\n setRightMonth(newRight);\n }\n } else {\n const [newLeft, newRight] = ensureDateInCorrectOrder(leftMonth, newDate);\n if (newLeft !== leftMonth) {\n setLeftMonth(newLeft);\n }\n setRightMonth(newRight);\n }\n };\n\n const isStartDate = (date: Date): boolean => {\n if (!selectedRange?.startDate) return false;\n return isSameDay(date, selectedRange.startDate);\n };\n\n const isEndDate = (date: Date): boolean => {\n if (!selectedRange?.endDate) return false;\n return isSameDay(date, selectedRange?.endDate);\n };\n\n const isSameStartAndEndDate = (date: Date): boolean => {\n if (!selectedRange.startDate || !selectedRange.endDate) return false;\n return isSameDay(selectedRange.startDate, selectedRange.endDate) && isSameDay(date, selectedRange.startDate);\n };\n\n const getYearOptions = (currentYear: number, calendarYear: number) => {\n const startYear = minYearOption || currentYear - 10;\n let endYear = shouldAllowFutureDateSelection ? currentYear + 10 : currentYear;\n\n // If maxDays is specified, calculate the maximum year\n if (maxDays) {\n const today = new Date();\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n const maxYear = maxDate.getFullYear();\n // Use the smaller of the two limits\n endYear = Math.min(endYear, maxYear);\n }\n\n endYear = Math.max(endYear, calendarYear);\n\n const yearCount = endYear - startYear + 1;\n\n return Array.from({ length: yearCount }, (_, i) => ({\n value: startYear + i,\n label: (startYear + i).toString()\n })).filter((year) => {\n if (year.value === calendarYear) {\n return true;\n }\n if (!shouldAllowFutureDateSelection && year.value > currentYear) {\n return false;\n }\n // If maxDays is specified, filter out years beyond maxDate\n if (maxDays) {\n const today = new Date();\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n return year.value <= maxDate.getFullYear();\n }\n return true;\n });\n };\n\n const handleClear = () => {\n const today = new Date();\n const startDate = new Date();\n\n // Set start date to beginning of today\n startDate.setHours(0, 0, 0, 0);\n\n // Set end date to end of today\n today.setHours(23, 59, 59, 999);\n\n const defaultRange = { startDate, endDate: today };\n setSelectedRange(defaultRange);\n };\n\n const getStartOfDay = (date: Date) => {\n const newDate = new Date(date);\n newDate.setHours(0, 0, 0, 0);\n return newDate;\n };\n\n const getEndOfDay = (date: Date) => {\n const newDate = new Date(date);\n newDate.setHours(23, 59, 59, 999);\n return newDate;\n };\n\n const handleQuickAction = (action: string) => {\n const today = new Date();\n let startDate = new Date();\n let endDate = new Date();\n\n switch (action) {\n case 'Today':\n startDate = getStartOfDay(today);\n endDate = getEndOfDay(today);\n break;\n case 'Yesterday':\n startDate = getStartOfDay(new Date(today.setDate(today.getDate() - 1)));\n endDate = getEndOfDay(new Date(today));\n break;\n case 'This Week':\n const firstDayOfWeek = new Date(today.setDate(today.getDate() - today.getDay()));\n startDate = getStartOfDay(firstDayOfWeek);\n endDate = getEndOfDay(new Date());\n break;\n case 'Last Week':\n const lastWeekStart = new Date(today.setDate(today.getDate() - today.getDay() - 7));\n const lastWeekEnd = new Date(today.setDate(lastWeekStart.getDate() + 6));\n startDate = getStartOfDay(lastWeekStart);\n endDate = getEndOfDay(lastWeekEnd);\n break;\n case 'This Month':\n startDate = getStartOfDay(new Date(today.getFullYear(), today.getMonth(), 1));\n endDate = getEndOfDay(new Date());\n break;\n case 'Last Month':\n startDate = getStartOfDay(new Date(today.getFullYear(), today.getMonth() - 1, 1));\n endDate = getEndOfDay(new Date(today.getFullYear(), today.getMonth(), 0));\n break;\n }\n\n setSelectedRange({ startDate, endDate });\n };\n\n const renderQuickActions = () => {\n return (\n <div className=\"w-[147px] p-4 border-r border-[var(--color-gray-200)]\">\n <div className=\"flex flex-col gap-3\">\n {quickActions.map((action) => (\n <Button key={action} label={action} type=\"link\" onClick={() => handleQuickAction(action)} />\n ))}\n </div>\n </div>\n );\n };\n\n const handleApply = () => {\n const { startDate = null, endDate = null } = selectedRange;\n\n if (startDate && endDate) {\n onApply({ startDate, endDate });\n return;\n }\n\n if (startDate || endDate) {\n const selectedDate = startDate || endDate;\n onApply({ startDate: selectedDate, endDate: selectedDate });\n }\n };\n\n const renderCalendar = (date: Date) => {\n const year = date.getFullYear();\n const month = date.getMonth();\n const days = generateCalendarDays(year, month);\n const currentYear = new Date().getFullYear();\n const isLeftCalendar = date.getTime() === leftMonth.getTime();\n const yearOptions = getYearOptions(currentYear, year);\n\n return (\n <div className=\"se-design-calendar-container w-fit p-4\">\n <div className=\"flex justify-between items-center\">\n <Icon\n name=\"chevron\"\n rotation=\"90\"\n size={16}\n onClick={() => {\n const newDate = handleMonthNavigation(date, false);\n // Check if navigating back would go before today when disablePastDates is true\n if (disablePastDates) {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n if (newDate < today && newDate.getMonth() !== today.getMonth()) {\n return; // Don't navigate to past months\n }\n }\n handleMonthChange(newDate, isLeftCalendar);\n }}\n className={`datepicker-navigation-icon ${\n disablePastDates &&\n date.getMonth() === new Date().getMonth() &&\n date.getFullYear() === new Date().getFullYear()\n ? 'disabled'\n : ''\n }`}\n automationId={`${automationId}-previous-month`}\n />\n\n <div className=\"flex gap-2\" onClick={(e) => e.stopPropagation()}>\n <Dropdown\n type=\"select\"\n dropDownOptions={months}\n defaultSelectedValue={months[month]}\n selectBy=\"label\"\n optionsUniqueBy=\"value\"\n displaySelected={true}\n onOptionClick={(selectedOption) => {\n const newDate = new Date(date);\n newDate.setMonth(months.findIndex((m) => m.value === selectedOption.value));\n handleMonthChange(newDate, isLeftCalendar);\n }}\n className=\"w-[124px] dropdown-option-container\"\n />\n <Dropdown\n type=\"select\"\n dropDownOptions={yearOptions}\n defaultSelectedValue={yearOptions.find((y) => y.value === year)}\n selectBy=\"label\"\n optionsUniqueBy=\"value\"\n displaySelected={true}\n onOptionClick={(selectedOption) => {\n const newDate = new Date(date);\n newDate.setFullYear(selectedOption.value);\n handleMonthChange(newDate, isLeftCalendar);\n }}\n className=\"w-[104px] dropdown-option-container\"\n />\n </div>\n\n <Icon\n name=\"chevron\"\n rotation=\"270\"\n size={16}\n className={`datepicker-navigation-icon ${\n (!shouldAllowFutureDateSelection &&\n month === new Date().getMonth() &&\n year === new Date().getFullYear()) ||\n (maxDays !== undefined &&\n (() => {\n const today = new Date();\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n return date.getMonth() === maxDate.getMonth() && date.getFullYear() === maxDate.getFullYear();\n })())\n ? 'disabled'\n : ''\n }`}\n onClick={() => {\n const newDate = handleMonthNavigation(date, true);\n // Check if the new date would exceed maxDays\n if (maxDays !== undefined) {\n const today = new Date();\n const maxDate = new Date(today);\n maxDate.setDate(maxDate.getDate() + maxDays);\n if (newDate > maxDate) {\n return;\n }\n }\n handleMonthChange(newDate, isLeftCalendar);\n }}\n automationId={`${automationId}-next-month`}\n />\n </div>\n <div className=\"grid grid-cols-7 gap-2 mt-3\">\n {weekDays.map((day, index) => (\n <div key={`${day}-${index}`} className=\"datepicker-weekdays\">\n {day}\n </div>\n ))}\n {days.map((date, index) => {\n const isStart = date && isStartDate(date);\n const isEnd = date && isEndDate(date);\n const isSameStartEnd = date && isSameStartAndEndDate(date);\n const inRange = date && !isStart && !isEnd && isDateInRange(date);\n const todayDate = date && isToday(date);\n const disabled = isDateDisabled(date);\n const dateValue = date?.getDate();\n\n return (\n <div\n key={`${date}-${index}`}\n onClick={() => !disabled && date && handleDateClick(date)}\n className={`\n relative h-10 w-10 flex items-center justify-center transition-colors rounded-md\n ${\n disabled ? 'cursor-not-allowed text-[var(--color-gray-600)] hover:bg-transparent' : 'cursor-pointer'\n }\n ${\n isSameStartEnd\n ? 'bg-[var(--color-blue-500)] text-[var(--color-white)] hover:bg-[var(--color-blue-600)]'\n : ''\n }\n ${\n !isSameStartEnd && isStart\n ? 'bg-[var(--color-blue-500)] text-[var(--color-white)] hover:bg-[var(--color-blue-600)]'\n : ''\n }\n ${\n !isSameStartEnd && isEnd\n ? 'bg-[var(--color-blue-500)] text-[var(--color-white)] hover:bg-[var(--color-blue-600)]'\n : ''\n }\n ${!isStart && !isEnd && inRange ? 'bg-[var(--color-blue-100)] text-[var(--color-blue-600)]' : ''}\n ${!isStart && !isEnd && !inRange && !disabled ? 'hover:bg-[var(--color-blue-100)]' : ''}\n ${todayDate && !isStart && !isEnd ? 'text-[var(--color-blue-500)]' : ''}\n ${!disabled && !isStart && !isEnd && !todayDate ? 'text-[var(--color-gray-700)]' : ''}\n `}\n data-automation-id={`${automationId}-date-${dateValue}`}\n >\n {date ? (\n <>\n {dateValue}\n {!isSameStartEnd && (isStart || isEnd) && (\n <div\n className={`absolute top-0 bottom-0 ${isStart ? 'right-[-8px]' : 'left-[-8px]'} w-[8px]\n bg-[var(--color-blue-100)] -z-10`}\n />\n )}\n </>\n ) : (\n ''\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n };\n\n return (\n <div\n className={`se-design-datepicker-container flex flex-col bg-[var(--color-white)] rounded-md shadow-md w-max ${className}`}\n >\n {showHeader && (\n <div className=\"se-design-datepicker-header flex justify-between items-center border-b border-[var(--color-gray-200)] p-4\">\n <h2 className=\"datepicker-title\">{title}</h2>\n {onClose && (\n <Icon\n name=\"close\"\n size={16}\n onClick={onClose}\n className=\"cursor-pointer\"\n automationId={`${automationId}-close`}\n />\n )}\n </div>\n )}\n <div className=\"se-design-datepicker-content flex\">\n {showQuickActions && renderQuickActions()}\n <div className=\"flex\">\n {showSingleMonth ? (\n renderCalendar(leftMonth)\n ) : (\n <>\n {renderCalendar(leftMonth)}\n <div className=\"h-full w-[1px] border-r border-[var(--color-gray-200)]\"></div>\n {renderCalendar(rightMonth)}\n </>\n )}\n </div>\n </div>\n {!singleDateSelection && (\n <div className=\"se-design-datepicker-footer flex justify-end items-center gap-5 p-4 border-t border-[var(--color-gray-200)]\">\n <Button\n label={labels?.clear || 'Clear'}\n type=\"link\"\n onClick={handleClear}\n data-automation-id={`${automationId}-clear-button`}\n />\n <Button\n label={labels?.apply || 'Apply'}\n type=\"primary\"\n onClick={handleApply}\n data-automation-id={`${automationId}-apply-button`}\n />\n </div>\n )}\n </div>\n );\n};\n"],"names":["React__default","useState","Button","Icon","Dropdown","weekDays","quickActions","months","value","label","DatePicker","title","showHeader","initialStartDate","initialEndDate","onApply","onClose","shouldAllowFutureDateSelection","maxDays","disablePastDates","singleDateSelection","minYearOption","showQuickActions","showSingleMonth","className","automationId","labels","clear","apply","getDefaultDateRange","startDate","endDate","Date","setHours","getDefaultMonths","today","lastMonth","setDate","setMonth","getMonth","selectedRange","setSelectedRange","defaultMonths","leftMonth","setLeftMonth","rightMonth","setRightMonth","getDaysInMonth","year","month","getDate","getFirstDayOfMonth","getDay","generateCalendarDays","daysInMonth","firstDay","days","i","push","day","date","isSameDay","date1","date2","getFullYear","isDateInRange","compareDate","isToday","isDateDisabled","dateToCheck","maxDate","handleDateClick","clickedDate","currentStart","handleMonthNavigation","increment","newDate","ensureDateInCorrectOrder","leftDate","rightDate","getTime","handleMonthChange","isLeftCalendar","newLeft","newRight","isStartDate","isEndDate","isSameStartAndEndDate","getYearOptions","currentYear","calendarYear","startYear","endYear","maxYear","Math","min","max","yearCount","Array","from","length","_","toString","filter","handleClear","getStartOfDay","getEndOfDay","handleQuickAction","action","firstDayOfWeek","lastWeekStart","lastWeekEnd","renderQuickActions","React","createElement","map","key","type","onClick","handleApply","selectedDate","renderCalendar","yearOptions","name","rotation","size","e","stopPropagation","dropDownOptions","defaultSelectedValue","selectBy","optionsUniqueBy","displaySelected","onOptionClick","selectedOption","findIndex","m","find","y","setFullYear","undefined","index","isStart","isEnd","isSameStartEnd","inRange","todayDate","disabled","dateValue","Fragment"],"mappings":"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"}
|
package/dist/index56.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import p, { useState as A, useRef as O, useEffect as j } from "react";
|
|
2
|
-
import { useStableId as W } from "./
|
|
2
|
+
import { useStableId as W } from "./index184.js";
|
|
3
3
|
/* empty css */
|
|
4
4
|
const M = ({
|
|
5
5
|
length: n = 6,
|
|
@@ -131,7 +131,7 @@ const M = ({
|
|
|
131
131
|
outline-none
|
|
132
132
|
transition-colors
|
|
133
133
|
disabled:bg-gray-50 disabled:cursor-not-allowed
|
|
134
|
-
${i ? "border-[var(--color-gray-300)] text-gray-400" : I ? "border-[var(--color-red-
|
|
134
|
+
${i ? "border-[var(--color-gray-300)] text-gray-400" : I ? "border-[var(--color-red-400)] text-gray-900 focus:border-[var(--color-red-400)] focus:ring-1 focus:ring-[var(--color-red-400)]" : "border-[var(--color-gray-300)] text-gray-900 focus:border-[var(--color-blue-500)] focus:ring-1 focus:ring-[var(--color-blue-500)]"}
|
|
135
135
|
`,
|
|
136
136
|
style: {
|
|
137
137
|
gap: "var(--Spacer-6px, 6px)"
|
package/dist/index56.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index56.js","sources":["../src/components/OTPInput/index.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, KeyboardEvent, ChangeEvent, ClipboardEvent, FC } from 'react';\nimport { useStableId } from '../../utils/useStableId';\nimport './style.scss';\n\nexport interface OTPInputProps {\n length?: number;\n onChange?: (value: string) => void;\n onComplete?: (value: string) => void;\n label?: string;\n disabled?: boolean;\n className?: string;\n autoFocus?: boolean;\n error?: boolean;\n errorMessage?: string;\n validateOnBlur?: boolean;\n onValidate?: (value: string) => boolean | string;\n id?: string;\n}\n\nexport const OTPInput: FC<OTPInputProps> = ({\n length = 6,\n onChange,\n onComplete,\n label,\n disabled = false,\n className = '',\n autoFocus = true,\n error = false,\n errorMessage,\n validateOnBlur = false,\n onValidate,\n id\n}) => {\n const [values, setValues] = useState<string[]>(Array(length).fill(''));\n const [internalError, setInternalError] = useState<string | null>(null);\n const inputRefs = useRef<(HTMLInputElement | null)[]>([]);\n const isBackspacePressed = useRef<boolean>(false);\n \n // Generate stable IDs for ARIA attributes\n const baseId = useStableId(id, 'se-otp-input');\n const labelId = `${baseId}-label`;\n const errorId = `${baseId}-error`;\n\n // Helper: Check if a string is a single digit\n const isDigit = (char: string): boolean => /^\\d$/.test(char);\n\n // Helper: Check if OTP is complete\n const isComplete = (otpValue: string): boolean => {\n return otpValue.length === length && values.every((val) => val !== '');\n };\n\n // Helper: Update value at specific index\n const updateValue = (index: number, value: string, shouldFocusNext = false) => {\n const newValues = [...values];\n newValues[index] = value;\n setValues(newValues);\n\n if (shouldFocusNext && value && index < length - 1) {\n focusInput(index + 1);\n }\n };\n\n // Helper: Clear value at specific index\n const clearValue = (index: number) => {\n updateValue(index, '');\n };\n\n // Helper: Focus input at index\n const focusInput = (index: number) => {\n inputRefs.current[index]?.focus();\n };\n\n useEffect(() => {\n if (autoFocus && inputRefs.current[0] && !disabled) {\n focusInput(0);\n }\n }, [autoFocus, disabled]);\n\n // Internal validation\n const validateOTP = (otpValue: string): string | null => {\n // Empty validation\n if (otpValue.length === 0) {\n return errorMessage || 'Please enter the verification code';\n }\n\n // Incomplete validation\n if (otpValue.length < length || !isComplete(otpValue)) {\n return errorMessage || 'Please enter all digits';\n }\n\n // Custom validation\n if (onValidate) {\n const validationResult = onValidate(otpValue);\n if (validationResult === false) {\n return errorMessage || 'Invalid verification code';\n }\n if (typeof validationResult === 'string') {\n return validationResult;\n }\n }\n\n return null;\n };\n\n useEffect(() => {\n const otpValue = values.join('');\n onChange?.(otpValue);\n\n // Clear error when user starts typing\n if (internalError && otpValue.length > 0) {\n setInternalError(null);\n }\n\n if (isComplete(otpValue)) {\n // Validate on complete\n if (onValidate) {\n const validationResult = onValidate(otpValue);\n if (validationResult === false || typeof validationResult === 'string') {\n const errorMsg =\n typeof validationResult === 'string' ? validationResult : errorMessage || 'Invalid verification code';\n setInternalError(errorMsg);\n } else {\n setInternalError(null);\n }\n }\n onComplete?.(otpValue);\n }\n }, [values, length, onChange, onComplete, onValidate, errorMessage]);\n\n const handleChange = (index: number, value: string) => {\n // Only allow single digit or empty\n if (value && !isDigit(value)) {\n return;\n }\n\n updateValue(index, value, true);\n };\n\n const handleKeyDown = (index: number, e: KeyboardEvent<HTMLInputElement>) => {\n if (disabled) return;\n\n const currentValue = values[index];\n\n // Handle backspace\n if (e.key === 'Backspace') {\n isBackspacePressed.current = true;\n if (currentValue) {\n clearValue(index);\n } else if (index > 0) {\n clearValue(index - 1);\n focusInput(index - 1);\n }\n // Reset backspace flag after a short delay\n setTimeout(() => {\n isBackspacePressed.current = false;\n }, 100);\n e.preventDefault();\n return;\n }\n\n // Handle delete\n if (e.key === 'Delete') {\n isBackspacePressed.current = true;\n clearValue(index);\n // Reset backspace flag after a short delay\n setTimeout(() => {\n isBackspacePressed.current = false;\n }, 100);\n e.preventDefault();\n return;\n }\n\n // Handle navigation keys\n const navigationHandlers: Record<string, () => void> = {\n ArrowLeft: () => index > 0 && focusInput(index - 1),\n ArrowRight: () => index < length - 1 && focusInput(index + 1),\n Home: () => focusInput(0),\n End: () => focusInput(length - 1)\n };\n\n if (navigationHandlers[e.key]) {\n navigationHandlers[e.key]();\n e.preventDefault();\n return;\n }\n\n // Allow digits, but prevent if already filled\n if (isDigit(e.key)) {\n if (currentValue) {\n updateValue(index, e.key, true);\n }\n }\n };\n\n const handlePaste = (e: ClipboardEvent<HTMLInputElement>) => {\n if (disabled) return;\n\n e.preventDefault();\n const pastedData = e.clipboardData.getData('text/plain').trim();\n\n // Extract only digits\n const digits = pastedData.replace(/\\D/g, '').slice(0, length);\n\n if (digits.length > 0) {\n const newValues = [...values];\n\n // Fill inputs starting from the current index\n const startIndex = inputRefs.current.findIndex((ref) => ref === document.activeElement);\n const actualStartIndex = startIndex >= 0 ? startIndex : 0;\n\n for (let i = 0; i < digits.length && actualStartIndex + i < length; i++) {\n newValues[actualStartIndex + i] = digits[i];\n }\n\n setValues(newValues);\n\n // Focus the next empty input or the last input\n const nextEmptyIndex = newValues.findIndex((val, idx) => idx >= actualStartIndex && val === '');\n const focusIndex = nextEmptyIndex >= 0 ? nextEmptyIndex : Math.min(actualStartIndex + digits.length, length - 1);\n focusInput(focusIndex);\n }\n };\n\n const handleFocus = (index: number) => {\n inputRefs.current[index]?.select();\n };\n\n const handleBlur = () => {\n // Don't validate on blur if backspace/delete was just pressed\n if (validateOnBlur && !isBackspacePressed.current) {\n const otpValue = values.join('');\n const validationError = validateOTP(otpValue);\n setInternalError(validationError);\n }\n };\n\n const hasError = error || !!internalError;\n // Priority: errorMessage prop > internalError\n const displayError = hasError && (errorMessage || internalError);\n \n const ariaDescribedByError = displayError ? errorId : undefined;\n\n return (\n <div className={`se-design-otp-input ${className || ''}`} data-automation-id=\"otp-input-container\">\n {label && <div id={labelId} className=\"se-design-otp-input-label\">{label}</div>}\n <div className=\"flex items-center gap-[12px]\" role=\"group\" aria-labelledby={label ? labelId : undefined}>\n {values.map((value, index) => (\n <input\n key={index}\n ref={(el) => {\n inputRefs.current[index] = el;\n }}\n type=\"text\"\n inputMode=\"numeric\"\n maxLength={1}\n value={value}\n onChange={(e: ChangeEvent<HTMLInputElement>) => handleChange(index, e.target.value)}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) => handleKeyDown(index, e)}\n onPaste={handlePaste}\n onFocus={() => handleFocus(index)}\n onBlur={handleBlur}\n disabled={disabled}\n className={`\n w-12 h-12 \n flex flex-col items-start \n text-center text-lg font-medium\n border rounded-md\n outline-none\n transition-colors\n disabled:bg-gray-50 disabled:cursor-not-allowed\n ${\n disabled\n ? 'border-[var(--color-gray-300)] text-gray-400'\n : hasError\n ? 'border-[var(--color-red-500)] text-gray-900 focus:border-[var(--color-red-500)] focus:ring-1 focus:ring-[var(--color-red-500)]'\n : 'border-[var(--color-gray-600)] text-gray-900 focus:border-[var(--color-blue-500)] focus:ring-1 focus:ring-[var(--color-blue-500)]'\n }\n `}\n style={{\n gap: 'var(--Spacer-6px, 6px)'\n }}\n aria-label={`OTP digit ${index + 1} of ${length}`}\n aria-invalid={hasError}\n aria-describedby={ariaDescribedByError}\n data-automation-id={`otp-input-${index}`}\n />\n ))}\n </div>\n {displayError && <div id={errorId} className=\"se-design-otp-input-error\" role=\"alert\">{displayError}</div>}\n </div>\n );\n};\n"],"names":["OTPInput","length","onChange","onComplete","label","disabled","className","autoFocus","error","errorMessage","validateOnBlur","onValidate","id","values","setValues","useState","Array","fill","internalError","setInternalError","inputRefs","useRef","isBackspacePressed","baseId","useStableId","labelId","errorId","isDigit","char","test","isComplete","otpValue","every","val","updateValue","index","value","shouldFocusNext","newValues","focusInput","clearValue","current","focus","useEffect","validateOTP","validationResult","join","handleChange","handleKeyDown","e","currentValue","key","setTimeout","preventDefault","navigationHandlers","ArrowLeft","ArrowRight","Home","End","handlePaste","digits","clipboardData","getData","trim","replace","slice","startIndex","findIndex","ref","document","activeElement","actualStartIndex","i","nextEmptyIndex","idx","focusIndex","Math","min","handleFocus","select","handleBlur","validationError","hasError","displayError","ariaDescribedByError","undefined","React","createElement","role","map","el","type","inputMode","maxLength","target","onKeyDown","onPaste","onFocus","onBlur","style","gap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index56.js","sources":["../src/components/OTPInput/index.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, KeyboardEvent, ChangeEvent, ClipboardEvent, FC } from 'react';\nimport { useStableId } from '../../utils/useStableId';\nimport './style.scss';\n\nexport interface OTPInputProps {\n length?: number;\n onChange?: (value: string) => void;\n onComplete?: (value: string) => void;\n label?: string;\n disabled?: boolean;\n className?: string;\n autoFocus?: boolean;\n error?: boolean;\n errorMessage?: string;\n validateOnBlur?: boolean;\n onValidate?: (value: string) => boolean | string;\n id?: string;\n}\n\nexport const OTPInput: FC<OTPInputProps> = ({\n length = 6,\n onChange,\n onComplete,\n label,\n disabled = false,\n className = '',\n autoFocus = true,\n error = false,\n errorMessage,\n validateOnBlur = false,\n onValidate,\n id\n}) => {\n const [values, setValues] = useState<string[]>(Array(length).fill(''));\n const [internalError, setInternalError] = useState<string | null>(null);\n const inputRefs = useRef<(HTMLInputElement | null)[]>([]);\n const isBackspacePressed = useRef<boolean>(false);\n \n // Generate stable IDs for ARIA attributes\n const baseId = useStableId(id, 'se-otp-input');\n const labelId = `${baseId}-label`;\n const errorId = `${baseId}-error`;\n\n // Helper: Check if a string is a single digit\n const isDigit = (char: string): boolean => /^\\d$/.test(char);\n\n // Helper: Check if OTP is complete\n const isComplete = (otpValue: string): boolean => {\n return otpValue.length === length && values.every((val) => val !== '');\n };\n\n // Helper: Update value at specific index\n const updateValue = (index: number, value: string, shouldFocusNext = false) => {\n const newValues = [...values];\n newValues[index] = value;\n setValues(newValues);\n\n if (shouldFocusNext && value && index < length - 1) {\n focusInput(index + 1);\n }\n };\n\n // Helper: Clear value at specific index\n const clearValue = (index: number) => {\n updateValue(index, '');\n };\n\n // Helper: Focus input at index\n const focusInput = (index: number) => {\n inputRefs.current[index]?.focus();\n };\n\n useEffect(() => {\n if (autoFocus && inputRefs.current[0] && !disabled) {\n focusInput(0);\n }\n }, [autoFocus, disabled]);\n\n // Internal validation\n const validateOTP = (otpValue: string): string | null => {\n // Empty validation\n if (otpValue.length === 0) {\n return errorMessage || 'Please enter the verification code';\n }\n\n // Incomplete validation\n if (otpValue.length < length || !isComplete(otpValue)) {\n return errorMessage || 'Please enter all digits';\n }\n\n // Custom validation\n if (onValidate) {\n const validationResult = onValidate(otpValue);\n if (validationResult === false) {\n return errorMessage || 'Invalid verification code';\n }\n if (typeof validationResult === 'string') {\n return validationResult;\n }\n }\n\n return null;\n };\n\n useEffect(() => {\n const otpValue = values.join('');\n onChange?.(otpValue);\n\n // Clear error when user starts typing\n if (internalError && otpValue.length > 0) {\n setInternalError(null);\n }\n\n if (isComplete(otpValue)) {\n // Validate on complete\n if (onValidate) {\n const validationResult = onValidate(otpValue);\n if (validationResult === false || typeof validationResult === 'string') {\n const errorMsg =\n typeof validationResult === 'string' ? validationResult : errorMessage || 'Invalid verification code';\n setInternalError(errorMsg);\n } else {\n setInternalError(null);\n }\n }\n onComplete?.(otpValue);\n }\n }, [values, length, onChange, onComplete, onValidate, errorMessage]);\n\n const handleChange = (index: number, value: string) => {\n // Only allow single digit or empty\n if (value && !isDigit(value)) {\n return;\n }\n\n updateValue(index, value, true);\n };\n\n const handleKeyDown = (index: number, e: KeyboardEvent<HTMLInputElement>) => {\n if (disabled) return;\n\n const currentValue = values[index];\n\n // Handle backspace\n if (e.key === 'Backspace') {\n isBackspacePressed.current = true;\n if (currentValue) {\n clearValue(index);\n } else if (index > 0) {\n clearValue(index - 1);\n focusInput(index - 1);\n }\n // Reset backspace flag after a short delay\n setTimeout(() => {\n isBackspacePressed.current = false;\n }, 100);\n e.preventDefault();\n return;\n }\n\n // Handle delete\n if (e.key === 'Delete') {\n isBackspacePressed.current = true;\n clearValue(index);\n // Reset backspace flag after a short delay\n setTimeout(() => {\n isBackspacePressed.current = false;\n }, 100);\n e.preventDefault();\n return;\n }\n\n // Handle navigation keys\n const navigationHandlers: Record<string, () => void> = {\n ArrowLeft: () => index > 0 && focusInput(index - 1),\n ArrowRight: () => index < length - 1 && focusInput(index + 1),\n Home: () => focusInput(0),\n End: () => focusInput(length - 1)\n };\n\n if (navigationHandlers[e.key]) {\n navigationHandlers[e.key]();\n e.preventDefault();\n return;\n }\n\n // Allow digits, but prevent if already filled\n if (isDigit(e.key)) {\n if (currentValue) {\n updateValue(index, e.key, true);\n }\n }\n };\n\n const handlePaste = (e: ClipboardEvent<HTMLInputElement>) => {\n if (disabled) return;\n\n e.preventDefault();\n const pastedData = e.clipboardData.getData('text/plain').trim();\n\n // Extract only digits\n const digits = pastedData.replace(/\\D/g, '').slice(0, length);\n\n if (digits.length > 0) {\n const newValues = [...values];\n\n // Fill inputs starting from the current index\n const startIndex = inputRefs.current.findIndex((ref) => ref === document.activeElement);\n const actualStartIndex = startIndex >= 0 ? startIndex : 0;\n\n for (let i = 0; i < digits.length && actualStartIndex + i < length; i++) {\n newValues[actualStartIndex + i] = digits[i];\n }\n\n setValues(newValues);\n\n // Focus the next empty input or the last input\n const nextEmptyIndex = newValues.findIndex((val, idx) => idx >= actualStartIndex && val === '');\n const focusIndex = nextEmptyIndex >= 0 ? nextEmptyIndex : Math.min(actualStartIndex + digits.length, length - 1);\n focusInput(focusIndex);\n }\n };\n\n const handleFocus = (index: number) => {\n inputRefs.current[index]?.select();\n };\n\n const handleBlur = () => {\n // Don't validate on blur if backspace/delete was just pressed\n if (validateOnBlur && !isBackspacePressed.current) {\n const otpValue = values.join('');\n const validationError = validateOTP(otpValue);\n setInternalError(validationError);\n }\n };\n\n const hasError = error || !!internalError;\n // Priority: errorMessage prop > internalError\n const displayError = hasError && (errorMessage || internalError);\n \n const ariaDescribedByError = displayError ? errorId : undefined;\n\n return (\n <div className={`se-design-otp-input ${className || ''}`} data-automation-id=\"otp-input-container\">\n {label && <div id={labelId} className=\"se-design-otp-input-label\">{label}</div>}\n <div className=\"flex items-center gap-[12px]\" role=\"group\" aria-labelledby={label ? labelId : undefined}>\n {values.map((value, index) => (\n <input\n key={index}\n ref={(el) => {\n inputRefs.current[index] = el;\n }}\n type=\"text\"\n inputMode=\"numeric\"\n maxLength={1}\n value={value}\n onChange={(e: ChangeEvent<HTMLInputElement>) => handleChange(index, e.target.value)}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) => handleKeyDown(index, e)}\n onPaste={handlePaste}\n onFocus={() => handleFocus(index)}\n onBlur={handleBlur}\n disabled={disabled}\n className={`\n w-12 h-12 \n flex flex-col items-start \n text-center text-lg font-medium\n border rounded-md\n outline-none\n transition-colors\n disabled:bg-gray-50 disabled:cursor-not-allowed\n ${\n disabled\n ? 'border-[var(--color-gray-300)] text-gray-400'\n : hasError\n ? 'border-[var(--color-red-400)] text-gray-900 focus:border-[var(--color-red-400)] focus:ring-1 focus:ring-[var(--color-red-400)]'\n : 'border-[var(--color-gray-300)] text-gray-900 focus:border-[var(--color-blue-500)] focus:ring-1 focus:ring-[var(--color-blue-500)]'\n }\n `}\n style={{\n gap: 'var(--Spacer-6px, 6px)'\n }}\n aria-label={`OTP digit ${index + 1} of ${length}`}\n aria-invalid={hasError}\n aria-describedby={ariaDescribedByError}\n data-automation-id={`otp-input-${index}`}\n />\n ))}\n </div>\n {displayError && <div id={errorId} className=\"se-design-otp-input-error\" role=\"alert\">{displayError}</div>}\n </div>\n );\n};\n"],"names":["OTPInput","length","onChange","onComplete","label","disabled","className","autoFocus","error","errorMessage","validateOnBlur","onValidate","id","values","setValues","useState","Array","fill","internalError","setInternalError","inputRefs","useRef","isBackspacePressed","baseId","useStableId","labelId","errorId","isDigit","char","test","isComplete","otpValue","every","val","updateValue","index","value","shouldFocusNext","newValues","focusInput","clearValue","current","focus","useEffect","validateOTP","validationResult","join","handleChange","handleKeyDown","e","currentValue","key","setTimeout","preventDefault","navigationHandlers","ArrowLeft","ArrowRight","Home","End","handlePaste","digits","clipboardData","getData","trim","replace","slice","startIndex","findIndex","ref","document","activeElement","actualStartIndex","i","nextEmptyIndex","idx","focusIndex","Math","min","handleFocus","select","handleBlur","validationError","hasError","displayError","ariaDescribedByError","undefined","React","createElement","role","map","el","type","inputMode","maxLength","target","onKeyDown","onPaste","onFocus","onBlur","style","gap"],"mappings":"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"}
|
package/dist/index6.js
CHANGED
package/dist/index63.js
CHANGED
package/dist/index64.js
CHANGED
|
@@ -5,7 +5,7 @@ import { Icon as D } from "./index5.js";
|
|
|
5
5
|
import { Link as G } from "./index63.js";
|
|
6
6
|
import { CustomModal as H } from "./index12.js";
|
|
7
7
|
import { useFocusTrap as J } from "./index224.js";
|
|
8
|
-
import { useStableId as K } from "./
|
|
8
|
+
import { useStableId as K } from "./index184.js";
|
|
9
9
|
/* empty css */
|
|
10
10
|
const O = {
|
|
11
11
|
lg: {
|