meticulous-ui 3.7.1 → 3.7.3
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/cjs/components/Button/Button.cjs +65 -1
- package/cjs/components/Carousel/Carousel.cjs +148 -1
- package/cjs/components/DatePicker/DatePicker.cjs +243 -1
- package/cjs/components/Dropdown/Dropdown.cjs +120 -1
- package/cjs/components/Glass/Glass.cjs +69 -1
- package/cjs/components/Image/Image.cjs +37 -1
- package/cjs/components/Input/Checkbox/Checkbox.cjs +42 -1
- package/cjs/components/Input/FileUploader/FileUploader.cjs +85 -1
- package/cjs/components/Input/Input/Input.cjs +76 -1
- package/cjs/components/Input/Radio/Radio.cjs +47 -1
- package/cjs/components/Input/Radio/index.cjs +2 -0
- package/cjs/components/Input/RadioGroup/RadioGroup.cjs +14 -1
- package/cjs/components/Input/Textarea/Textarea.cjs +89 -1
- package/cjs/components/Loader/Loader.cjs +52 -1
- package/cjs/components/MenuItem/MenuItem.cjs +18 -1
- package/cjs/components/MenuItem/index.cjs +2 -0
- package/cjs/components/Modal/Modal.cjs +115 -1
- package/cjs/components/OtpInput/OtpInput.cjs +17 -1
- package/cjs/components/PageLoader/PageLoader.cjs +10 -1
- package/cjs/components/Pagination/Pagination.cjs +80 -1
- package/cjs/components/RootComponent/RootComponent.cjs +4 -1
- package/cjs/components/Selectbox/Selectbox.cjs +126 -1
- package/cjs/components/Shimmer/Shimmer.cjs +24 -1
- package/cjs/components/Spinner/Spinner.cjs +23 -1
- package/cjs/components/Timer/Timer.cjs +214 -1
- package/cjs/components/Timer/components/TimerRing/TimerRing.cjs +1 -1
- package/cjs/components/Timer/components/TimerRing/index.cjs +2 -0
- package/cjs/components/Toast/Toast.cjs +246 -1
- package/cjs/components/Typography/P/P.cjs +6 -1
- package/cjs/components/VideoPlayer/VideoPlayer.cjs +35 -1
- package/cjs/components/VideoPlayer/components/Volumebar/Volumebar.cjs +31 -1
- package/cjs/components/VideoPlayer/components/Volumebar/index.cjs +2 -0
- package/components/Button/Button.js +121 -57
- package/components/Carousel/Carousel.js +261 -114
- package/components/DatePicker/DatePicker.js +399 -157
- package/components/Dropdown/Dropdown.js +293 -169
- package/components/Glass/Glass.js +71 -3
- package/components/Image/Image.js +68 -32
- package/components/Input/Checkbox/Checkbox.js +120 -58
- package/components/Input/FileUploader/FileUploader.js +168 -80
- package/components/Input/Input/Input.js +163 -64
- package/components/Input/Radio/Radio.js +72 -25
- package/components/Input/Radio/index.js +2 -0
- package/components/Input/RadioGroup/RadioGroup.js +80 -45
- package/components/Input/Textarea/Textarea.js +185 -76
- package/components/Loader/Loader.js +96 -23
- package/components/MenuItem/MenuItem.js +55 -31
- package/components/MenuItem/index.js +2 -0
- package/components/Modal/Modal.js +182 -66
- package/components/OtpInput/OtpInput.js +92 -48
- package/components/PageLoader/PageLoader.js +41 -11
- package/components/Pagination/Pagination.js +180 -64
- package/components/RootComponent/RootComponent.js +10 -7
- package/components/Selectbox/Selectbox.js +307 -178
- package/components/Shimmer/Shimmer.js +47 -23
- package/components/Spinner/Spinner.js +36 -14
- package/components/Timer/Timer.js +348 -129
- package/components/Timer/components/TimerRing/TimerRing.js +9 -9
- package/components/Timer/components/TimerRing/index.js +2 -0
- package/components/Toast/Toast.js +340 -84
- package/components/Typography/P/P.js +15 -9
- package/components/VideoPlayer/VideoPlayer.js +59 -24
- package/components/VideoPlayer/components/Volumebar/Volumebar.js +39 -9
- package/components/VideoPlayer/components/Volumebar/index.js +2 -0
- package/package.json +4 -4
- package/cjs/components/Button/styles.cjs +0 -65
- package/cjs/components/Carousel/styles.cjs +0 -148
- package/cjs/components/DatePicker/styles.cjs +0 -243
- package/cjs/components/Dropdown/styles.cjs +0 -120
- package/cjs/components/Glass/styles.cjs +0 -69
- package/cjs/components/Image/styles.cjs +0 -37
- package/cjs/components/Input/Checkbox/helpers.cjs +0 -1
- package/cjs/components/Input/Checkbox/styles.cjs +0 -42
- package/cjs/components/Input/FileUploader/styles.cjs +0 -85
- package/cjs/components/Input/Input/helpers.cjs +0 -1
- package/cjs/components/Input/Input/styles.cjs +0 -76
- package/cjs/components/Input/Radio/styles.cjs +0 -47
- package/cjs/components/Input/RadioGroup/styles.cjs +0 -14
- package/cjs/components/Input/Textarea/helpers.cjs +0 -1
- package/cjs/components/Input/Textarea/styles.cjs +0 -81
- package/cjs/components/Loader/helpers.cjs +0 -1
- package/cjs/components/Loader/styles.cjs +0 -52
- package/cjs/components/MenuItem/styles.cjs +0 -18
- package/cjs/components/Modal/styles.cjs +0 -115
- package/cjs/components/OtpInput/helpers.cjs +0 -1
- package/cjs/components/OtpInput/styles.cjs +0 -17
- package/cjs/components/PageLoader/styles.cjs +0 -10
- package/cjs/components/Pagination/helpers.cjs +0 -1
- package/cjs/components/Pagination/styles.cjs +0 -80
- package/cjs/components/RootComponent/styles.cjs +0 -4
- package/cjs/components/Selectbox/styles.cjs +0 -126
- package/cjs/components/Shimmer/styles.cjs +0 -24
- package/cjs/components/Spinner/styles.cjs +0 -23
- package/cjs/components/Timer/components/TimerRing/styles.cjs +0 -1
- package/cjs/components/Timer/helpers.cjs +0 -1
- package/cjs/components/Timer/styles.cjs +0 -214
- package/cjs/components/Toast/helpers.cjs +0 -1
- package/cjs/components/Toast/styles.cjs +0 -246
- package/cjs/components/Typography/P/styles.cjs +0 -6
- package/cjs/components/VideoPlayer/components/Volumebar/styles.cjs +0 -31
- package/cjs/components/VideoPlayer/styles.cjs +0 -35
- package/components/Button/styles.js +0 -73
- package/components/Carousel/styles.js +0 -160
- package/components/DatePicker/styles.js +0 -264
- package/components/Dropdown/styles.js +0 -140
- package/components/Glass/styles.js +0 -73
- package/components/Image/styles.js +0 -44
- package/components/Input/Checkbox/helpers.js +0 -27
- package/components/Input/Checkbox/styles.js +0 -50
- package/components/Input/FileUploader/styles.js +0 -99
- package/components/Input/Input/helpers.js +0 -31
- package/components/Input/Input/styles.js +0 -91
- package/components/Input/Radio/styles.js +0 -55
- package/components/Input/RadioGroup/styles.js +0 -18
- package/components/Input/Textarea/helpers.js +0 -30
- package/components/Input/Textarea/styles.js +0 -93
- package/components/Loader/helpers.js +0 -27
- package/components/Loader/styles.js +0 -58
- package/components/MenuItem/styles.js +0 -30
- package/components/Modal/styles.js +0 -127
- package/components/OtpInput/helpers.js +0 -34
- package/components/OtpInput/styles.js +0 -23
- package/components/PageLoader/styles.js +0 -14
- package/components/Pagination/helpers.js +0 -34
- package/components/Pagination/styles.js +0 -105
- package/components/RootComponent/styles.js +0 -8
- package/components/Selectbox/styles.js +0 -146
- package/components/Shimmer/styles.js +0 -29
- package/components/Spinner/styles.js +0 -28
- package/components/Timer/components/TimerRing/styles.js +0 -5
- package/components/Timer/helpers.js +0 -4
- package/components/Timer/styles.js +0 -249
- package/components/Toast/helpers.js +0 -19
- package/components/Toast/styles.js +0 -264
- package/components/Typography/P/styles.js +0 -11
- package/components/VideoPlayer/components/Volumebar/styles.js +0 -38
- package/components/VideoPlayer/styles.js +0 -42
|
@@ -1 +1,65 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react/jsx-runtime"),I=require("react"),L=require("../Spinner/Spinner.cjs"),M=require("../../colors/colorMap.cjs"),g=require("../../colors/blue.cjs"),P=require("../Ripple/Ripple.cjs"),R=require("../../colors/white.cjs"),w=require("../../colors/grey.cjs"),$=require("./constants.cjs"),S=require("prop-types"),l=require("styled-components"),y=e=>e&&e.__esModule?e:{default:e},o=y(S),d=y(l),z=d.default.button`
|
|
2
|
+
height: ${({$height:e})=>e}rem;
|
|
3
|
+
width: ${({$width:e})=>e}rem;
|
|
4
|
+
border-radius: 0.96rem;
|
|
5
|
+
border: none;
|
|
6
|
+
padding: 0.96rem 0.64rem;
|
|
7
|
+
position: relative;
|
|
8
|
+
overflow: hidden;
|
|
9
|
+
background-color: ${({$selectedColor:e,disabled:t})=>t?w.default.m500:e};
|
|
10
|
+
cursor: ${({disabled:e,$isLoading:t})=>e?"not-allowed":t?"auto":"pointer"};
|
|
11
|
+
|
|
12
|
+
${({$isLoading:e})=>e&&l.css`
|
|
13
|
+
pointer-events: none;
|
|
14
|
+
`};
|
|
15
|
+
|
|
16
|
+
${({disabled:e,$isLoading:t})=>!(e||t)&&l.css`
|
|
17
|
+
&:hover {
|
|
18
|
+
background-color: ${({$hoverColor:n})=>n};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
&:active {
|
|
22
|
+
background-color: ${({$activeColor:n})=>n};
|
|
23
|
+
}
|
|
24
|
+
`};
|
|
25
|
+
|
|
26
|
+
&:focus-visible {
|
|
27
|
+
outline: none;
|
|
28
|
+
}
|
|
29
|
+
`,K=d.default.div`
|
|
30
|
+
font-size: ${({$font:e})=>e}rem;
|
|
31
|
+
font-weight: 500;
|
|
32
|
+
max-width: 100%;
|
|
33
|
+
overflow: hidden;
|
|
34
|
+
color: ${({$textColor:e})=>e};
|
|
35
|
+
opacity: ${({$isLoading:e})=>e?0:1};
|
|
36
|
+
transition: opacity 0.3s ease;
|
|
37
|
+
`,B=d.default.div`
|
|
38
|
+
height: ${({$height:e})=>e}rem;
|
|
39
|
+
width: ${({$width:e})=>e}rem;
|
|
40
|
+
display: inline-block;
|
|
41
|
+
position: relative;
|
|
42
|
+
border-radius: 0.96rem;
|
|
43
|
+
|
|
44
|
+
${({disabled:e,$isLoading:t})=>!(e||t)&&l.css`
|
|
45
|
+
box-shadow: 0 0.4rem 1.5rem rgba(0, 0, 0, 0.2);
|
|
46
|
+
transition:
|
|
47
|
+
transform 0.2s,
|
|
48
|
+
box-shadow 0.2s;
|
|
49
|
+
|
|
50
|
+
&:hover,
|
|
51
|
+
&:focus-within {
|
|
52
|
+
box-shadow: 0 0.6rem 2rem rgba(0, 0, 0, 0.3);
|
|
53
|
+
transform: translateY(-2px);
|
|
54
|
+
}
|
|
55
|
+
`};
|
|
56
|
+
`,E=d.default.div`
|
|
57
|
+
position: absolute;
|
|
58
|
+
inset: 0;
|
|
59
|
+
display: flex;
|
|
60
|
+
align-items: center;
|
|
61
|
+
justify-content: center;
|
|
62
|
+
opacity: ${({$isLoading:e})=>e?1:0};
|
|
63
|
+
transition: opacity 0.3s ease;
|
|
64
|
+
pointer-events: none;
|
|
65
|
+
`,O=({theme:e,children:t})=>r.jsx(P.default,{rippleColor:e.m100,children:t}),v=e=>{const{children:t,theme:n=g.blue,size:x=$.MEDIUM,width:a,leftIcon:W,rightIcon:U,isLoading:i,textColor:c,onKeyDown:C,...q}=e||{},u=I.useRef(0),j=s=>{if(s.key==="Enter"||s.key===" "){const b=Date.now();if(b-u.current<500){s.preventDefault(),s.stopPropagation();return}u.current=b}C?.(s)},{m400:_,m500:D,m600:T}=M.default[n]??g.blue,{height:f,width:h,font:k}=$.SIZE[x]||{},p=["white","yellow"].includes(n)?w.default.m600:R.default,m=r.jsxs(z,{type:"button",...q,onKeyDown:j,$hoverColor:D,$activeColor:T,$selectedColor:_,$height:f,$width:a||h,disabled:e.disabled,$isLoading:i,children:[r.jsx(E,{$isLoading:i,children:r.jsx(L.default,{size:"small",color:c||p})}),r.jsx(K,{$isLoading:i,$textColor:c||p,$font:k,children:t})]});return r.jsx(B,{$height:f,$width:a||h,disabled:e.disabled,$isLoading:i,children:i?m:r.jsx(O,{theme:n,children:m})})};v.propTypes={children:o.default.node,theme:o.default.string,size:o.default.string,width:o.default.oneOfType([o.default.string,o.default.number]),leftIcon:o.default.elementType,rightIcon:o.default.elementType,isLoading:o.default.bool,textColor:o.default.string,disabled:o.default.bool};exports.default=v;
|
|
@@ -1 +1,148 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react/jsx-runtime"),s=require("react"),U=require("styled-components"),ce=require("../Icons/ChevronLeft/ChevronLeft.cjs"),de=require("../Icons/ChevronRight/ChevronRight.cjs"),fe=t=>t&&t.__esModule?t:{default:t},i=fe(U),he=i.default.div`
|
|
2
|
+
position: relative;
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-direction: column;
|
|
5
|
+
align-items: center;
|
|
6
|
+
width: 100%;
|
|
7
|
+
gap: 12px;
|
|
8
|
+
outline: none;
|
|
9
|
+
`,pe=i.default.div`
|
|
10
|
+
position: relative;
|
|
11
|
+
width: 100%;
|
|
12
|
+
`,xe=i.default.div`
|
|
13
|
+
overflow: hidden;
|
|
14
|
+
width: 100%;
|
|
15
|
+
outline: none;
|
|
16
|
+
cursor: ${({$draggable:t})=>t?"grab":"default"};
|
|
17
|
+
|
|
18
|
+
&:active {
|
|
19
|
+
cursor: ${({$draggable:t})=>t?"grabbing":"default"};
|
|
20
|
+
}
|
|
21
|
+
`,be=i.default.div`
|
|
22
|
+
display: flex;
|
|
23
|
+
width: 100%;
|
|
24
|
+
transform: translateX(${({$translateX:t})=>t}%);
|
|
25
|
+
transition: ${({$dragging:t})=>t?"none":"transform 0.35s ease"};
|
|
26
|
+
|
|
27
|
+
@media (prefers-reduced-motion: reduce) {
|
|
28
|
+
transition: none;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
& > * {
|
|
32
|
+
flex: 0 0 ${({$visibleSlides:t})=>100/t}%;
|
|
33
|
+
min-width: 0;
|
|
34
|
+
box-sizing: border-box;
|
|
35
|
+
}
|
|
36
|
+
`,H=i.default.button`
|
|
37
|
+
position: absolute;
|
|
38
|
+
top: ${({$arrowTop:t})=>t??"50%"};
|
|
39
|
+
transform: translateY(-50%);
|
|
40
|
+
z-index: 1;
|
|
41
|
+
display: flex;
|
|
42
|
+
align-items: center;
|
|
43
|
+
justify-content: center;
|
|
44
|
+
width: 32px;
|
|
45
|
+
height: 32px;
|
|
46
|
+
border-radius: 50%;
|
|
47
|
+
border: 1px solid #e0e0e0;
|
|
48
|
+
background: #fff;
|
|
49
|
+
cursor: pointer;
|
|
50
|
+
color: #333;
|
|
51
|
+
transition:
|
|
52
|
+
background 0.15s,
|
|
53
|
+
opacity 0.3s;
|
|
54
|
+
padding: 0;
|
|
55
|
+
|
|
56
|
+
${({$direction:t,$overlay:c})=>t==="prev"?`left: ${c?"12px":"-16px"};`:`right: ${c?"12px":"-16px"};`}
|
|
57
|
+
|
|
58
|
+
&:hover:not(:disabled) {
|
|
59
|
+
background: #f5f5f5;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&:disabled {
|
|
63
|
+
opacity: 0.3;
|
|
64
|
+
cursor: default;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
&:focus-visible {
|
|
68
|
+
outline: none;
|
|
69
|
+
background: #ffe4ec;
|
|
70
|
+
border-color: #f9a8c0;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
${({$viewportFocused:t})=>t&&`
|
|
74
|
+
border-color: #bdbdbd;
|
|
75
|
+
`}
|
|
76
|
+
|
|
77
|
+
${({$overlay:t,$visible:c})=>t&&!c&&`
|
|
78
|
+
opacity: 0;
|
|
79
|
+
pointer-events: none;
|
|
80
|
+
`}
|
|
81
|
+
`,ge=i.default.div`
|
|
82
|
+
display: flex;
|
|
83
|
+
gap: 6px;
|
|
84
|
+
align-items: center;
|
|
85
|
+
`,ve=i.default.button`
|
|
86
|
+
width: ${({$active:t})=>t?"20px":"8px"};
|
|
87
|
+
height: 8px;
|
|
88
|
+
border-radius: 4px;
|
|
89
|
+
border: none;
|
|
90
|
+
background: ${({$active:t})=>t?"#333":"#ccc"};
|
|
91
|
+
cursor: pointer;
|
|
92
|
+
padding: 0;
|
|
93
|
+
transition:
|
|
94
|
+
width 0.2s ease,
|
|
95
|
+
background 0.2s ease;
|
|
96
|
+
`,me=U.keyframes`
|
|
97
|
+
from { width: 0%; }
|
|
98
|
+
to { width: 100%; }
|
|
99
|
+
`,we=i.default.div`
|
|
100
|
+
width: 100%;
|
|
101
|
+
height: 3px;
|
|
102
|
+
background: #e0e0e0;
|
|
103
|
+
border-radius: 2px;
|
|
104
|
+
overflow: hidden;
|
|
105
|
+
position: relative;
|
|
106
|
+
|
|
107
|
+
&::after {
|
|
108
|
+
content: '';
|
|
109
|
+
position: absolute;
|
|
110
|
+
inset: 0;
|
|
111
|
+
width: 0%;
|
|
112
|
+
background: #333;
|
|
113
|
+
animation: ${me} ${({$duration:t})=>t}s linear forwards;
|
|
114
|
+
animation-play-state: ${({$paused:t})=>t?"paused":"running"};
|
|
115
|
+
|
|
116
|
+
@media (prefers-reduced-motion: reduce) {
|
|
117
|
+
animation: none;
|
|
118
|
+
width: 100%;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
`,$e=i.default.button`
|
|
122
|
+
position: absolute;
|
|
123
|
+
bottom: 8px;
|
|
124
|
+
right: 8px;
|
|
125
|
+
z-index: 2;
|
|
126
|
+
display: flex;
|
|
127
|
+
align-items: center;
|
|
128
|
+
justify-content: center;
|
|
129
|
+
width: 24px;
|
|
130
|
+
height: 24px;
|
|
131
|
+
border-radius: 50%;
|
|
132
|
+
border: 1px solid rgba(255, 255, 255, 0.6);
|
|
133
|
+
background: rgba(0, 0, 0, 0.35);
|
|
134
|
+
color: #fff;
|
|
135
|
+
cursor: pointer;
|
|
136
|
+
padding: 0;
|
|
137
|
+
backdrop-filter: blur(2px);
|
|
138
|
+
transition: background 0.15s;
|
|
139
|
+
|
|
140
|
+
&:hover {
|
|
141
|
+
background: rgba(0, 0, 0, 0.55);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
&:focus-visible {
|
|
145
|
+
outline: 2px solid #fff;
|
|
146
|
+
outline-offset: 2px;
|
|
147
|
+
}
|
|
148
|
+
`,T=50,X=2e3,je=()=>n.jsxs("svg",{width:12,height:12,viewBox:"0 0 12 12",fill:"currentColor","aria-hidden":"true",children:[n.jsx("rect",{x:"2",y:"1",width:"3",height:"10",rx:"1"}),n.jsx("rect",{x:"7",y:"1",width:"3",height:"10",rx:"1"})]}),ke=()=>n.jsx("svg",{width:12,height:12,viewBox:"0 0 12 12",fill:"currentColor","aria-hidden":"true",children:n.jsx("path",{d:"M2 1.5l9 4.5-9 4.5V1.5z"})}),ye=({data:t,renderCarousel:c,visibleSlides:E=1,hasArrow:_=!0,overlayArrows:u=!1,arrowTop:m,areDotsHidden:K=!1,autoSlide:w=!1,autoSlideSec:C=3,loop:h=!1,dragToSlide:$=!1,liveDrag:j=!1,liveDragMobile:R=!0,showProgress:N=!1,defaultIndex:Y=0,onSlideChange:A,...G})=>{const[o,k]=s.useState(Y),[D,p]=s.useState(!0),[L,O]=s.useState(!1),[x,b]=s.useState(!1),[J,g]=s.useState(0),[P,v]=s.useState(!1),[I,q]=s.useState(!1),d=s.useRef(null),l=s.useRef(null),f=s.useRef(null),z=s.useRef(null);s.useEffect(()=>{const e=window.matchMedia("(max-width: 1024px)");q(e.matches);const r=le=>q(le.matches);return e.addEventListener("change",r),()=>e.removeEventListener("change",r)},[]);const a=t.length-E,y=()=>k(e=>h&&e===0?a:Math.max(e-1,0)),M=()=>k(e=>h&&e>=a?0:Math.min(e+1,a));s.useEffect(()=>{A?.(o)},[o]);const B=()=>{u&&(clearTimeout(f.current),p(!0),f.current=setTimeout(()=>p(!1),X))},Q=()=>{b(!0),u&&(clearTimeout(f.current),p(!0))},Z=()=>{b(!1),u&&(f.current=setTimeout(()=>p(!1),X))};s.useEffect(()=>{if(u)return f.current=setTimeout(()=>p(!1),X),()=>clearTimeout(f.current)},[u]),s.useEffect(()=>{if(!w||x)return;const e=setInterval(()=>{k(r=>r>=a?0:r+1)},C*1e3);return()=>clearInterval(e)},[w,C,x,a]);const V=e=>h?e:o===0&&e>0||o===a&&e<0?e*.3:e,ee=e=>{d.current=e.touches[0].clientX,R&&I&&v(!0),B()},te=e=>{!R||!I||d.current===null||g(V(e.touches[0].clientX-d.current))},ne=e=>{if(R&&I&&(v(!1),g(0)),d.current===null)return;const r=d.current-e.changedTouches[0].clientX;r>T?M():r<-T&&y(),d.current=null},re=e=>{$&&(l.current=e.clientX,j&&v(!0))},se=e=>{!$||!j||l.current===null||g(V(e.clientX-l.current))},oe=e=>{if(!$||l.current===null)return;j&&(v(!1),g(0));const r=l.current-e.clientX;r>T?M():r<-T&&y(),l.current=null},ie=e=>{e.key==="ArrowLeft"?(e.preventDefault(),y()):e.key==="ArrowRight"&&(e.preventDefault(),M())},W=z.current?.clientWidth??0,ae=W>0?J/W*100:0,ue=-(o*(100/E))+ae,F=m!==void 0?typeof m=="number"?`${m}px`:m:void 0,S=a+1;return n.jsxs(he,{onClick:B,onMouseEnter:Q,onMouseLeave:Z,onMouseMove:se,onMouseUp:oe,onKeyDown:ie,role:"region","aria-label":"Carousel",...G,children:[n.jsxs(pe,{onTouchStart:ee,onTouchMove:te,onTouchEnd:ne,children:[_&&n.jsx(H,{onClick:y,disabled:!h&&o===0,"aria-label":"Previous slide",$direction:"prev",$overlay:u,$visible:D,$arrowTop:F,$viewportFocused:L,children:n.jsx(ce.default,{size:20,"aria-hidden":"true"})}),n.jsx(xe,{ref:z,tabIndex:0,"aria-label":"Carousel slides. Use arrow keys to navigate.",$draggable:$,onFocus:()=>{O(!0),b(!0)},onBlur:()=>{O(!1),b(!1)},onMouseDown:re,onMouseLeave:e=>{e.buttons!==1&&(j&&P&&(v(!1),g(0)),l.current=null)},children:n.jsx(be,{$translateX:ue,$visibleSlides:E,$dragging:P,children:t.map(c)})}),_&&n.jsx(H,{onClick:M,disabled:!h&&o===a,"aria-label":"Next slide",$direction:"next",$overlay:u,$visible:D,$arrowTop:F,$viewportFocused:L,children:n.jsx(de.default,{size:20,"aria-hidden":"true"})}),w&&n.jsx($e,{onClick:()=>b(e=>!e),"aria-label":x?"Play slideshow":"Pause slideshow",children:x?n.jsx(ke,{}):n.jsx(je,{})})]}),n.jsxs("div",{"aria-live":"polite","aria-atomic":"true",style:{position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0,0,0,0)",whiteSpace:"nowrap"},children:["Slide ",o+1," of ",S]}),w&&N&&n.jsx(we,{$duration:C,$paused:x},o),!K&&n.jsx(ge,{children:Array.from({length:S}).map((e,r)=>n.jsx(ve,{$active:r===o,onClick:()=>k(r),"aria-label":`Slide ${r+1} of ${S}`,"aria-current":r===o?"true":void 0},r))})]})};exports.default=ye;
|
|
@@ -1 +1,243 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),d=require("react"),Se=require("prop-types"),Ae=require("../../colors/colorMap.cjs"),Me=require("../../colors/blue.cjs"),s=require("./constants.cjs"),p=require("./utils.cjs"),B=require("styled-components"),se=e=>e&&e.__esModule?e:{default:e},f=se(Se),i=se(B),Re=B.keyframes`
|
|
2
|
+
from { opacity: 0; transform: translateY(6px); }
|
|
3
|
+
to { opacity: 1; transform: translateY(0); }
|
|
4
|
+
`,Ne=i.default.div`
|
|
5
|
+
display: inline-flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
background: #ffffff;
|
|
8
|
+
border-radius: 20px;
|
|
9
|
+
box-shadow:
|
|
10
|
+
0 8px 40px rgba(0, 0, 0, 0.12),
|
|
11
|
+
0 2px 8px rgba(0, 0, 0, 0.06);
|
|
12
|
+
padding: 20px;
|
|
13
|
+
width: 320px;
|
|
14
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
15
|
+
animation: ${Re} 0.22s ease;
|
|
16
|
+
user-select: none;
|
|
17
|
+
`,we=i.default.div`
|
|
18
|
+
display: flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
gap: 8px;
|
|
21
|
+
margin-bottom: 16px;
|
|
22
|
+
`,q=i.default.div`
|
|
23
|
+
flex: 1;
|
|
24
|
+
background: ${({$active:e,$primary:o})=>e?o:"#f1f3f4"};
|
|
25
|
+
color: ${({$active:e})=>e?"#fff":"#5f6368"};
|
|
26
|
+
border-radius: 12px;
|
|
27
|
+
padding: 10px 14px;
|
|
28
|
+
font-size: 13px;
|
|
29
|
+
font-weight: 500;
|
|
30
|
+
transition:
|
|
31
|
+
background 0.18s,
|
|
32
|
+
color 0.18s;
|
|
33
|
+
|
|
34
|
+
span {
|
|
35
|
+
display: block;
|
|
36
|
+
font-size: 10px;
|
|
37
|
+
font-weight: 600;
|
|
38
|
+
text-transform: uppercase;
|
|
39
|
+
letter-spacing: 0.6px;
|
|
40
|
+
opacity: 0.7;
|
|
41
|
+
margin-bottom: 2px;
|
|
42
|
+
}
|
|
43
|
+
`,Oe=i.default.div`
|
|
44
|
+
color: #bdc1c6;
|
|
45
|
+
font-size: 16px;
|
|
46
|
+
flex-shrink: 0;
|
|
47
|
+
`,Ce=i.default.div`
|
|
48
|
+
display: flex;
|
|
49
|
+
background: #f1f3f4;
|
|
50
|
+
border-radius: 10px;
|
|
51
|
+
padding: 3px;
|
|
52
|
+
margin-bottom: 16px;
|
|
53
|
+
`,Z=i.default.button`
|
|
54
|
+
flex: 1;
|
|
55
|
+
border: none;
|
|
56
|
+
background: ${({$active:e})=>e?"#fff":"transparent"};
|
|
57
|
+
color: ${({$active:e,$primary:o})=>e?o:"#5f6368"};
|
|
58
|
+
border-radius: 8px;
|
|
59
|
+
padding: 6px 0;
|
|
60
|
+
font-size: 12px;
|
|
61
|
+
font-weight: 600;
|
|
62
|
+
cursor: pointer;
|
|
63
|
+
transition:
|
|
64
|
+
background 0.15s,
|
|
65
|
+
color 0.15s;
|
|
66
|
+
box-shadow: ${({$active:e})=>e?"0 1px 4px rgba(0,0,0,0.1)":"none"};
|
|
67
|
+
|
|
68
|
+
&:focus-visible {
|
|
69
|
+
outline: 2px solid ${({$primary:e})=>e};
|
|
70
|
+
outline-offset: 2px;
|
|
71
|
+
}
|
|
72
|
+
`,Le=i.default.div`
|
|
73
|
+
display: flex;
|
|
74
|
+
align-items: center;
|
|
75
|
+
justify-content: space-between;
|
|
76
|
+
margin-bottom: 12px;
|
|
77
|
+
`,ee=i.default.button`
|
|
78
|
+
background: none;
|
|
79
|
+
border: none;
|
|
80
|
+
cursor: pointer;
|
|
81
|
+
width: 32px;
|
|
82
|
+
height: 32px;
|
|
83
|
+
border-radius: 50%;
|
|
84
|
+
display: flex;
|
|
85
|
+
align-items: center;
|
|
86
|
+
justify-content: center;
|
|
87
|
+
color: #5f6368;
|
|
88
|
+
transition:
|
|
89
|
+
background 0.15s,
|
|
90
|
+
color 0.15s;
|
|
91
|
+
|
|
92
|
+
&:hover {
|
|
93
|
+
background: #f1f3f4;
|
|
94
|
+
color: ${({$primary:e})=>e};
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
&:focus-visible {
|
|
98
|
+
outline: 2px solid ${({$primary:e})=>e};
|
|
99
|
+
}
|
|
100
|
+
`,ne=i.default.button`
|
|
101
|
+
background: none;
|
|
102
|
+
border: none;
|
|
103
|
+
cursor: pointer;
|
|
104
|
+
font-size: 14px;
|
|
105
|
+
font-weight: 600;
|
|
106
|
+
color: #202124;
|
|
107
|
+
padding: 4px 8px;
|
|
108
|
+
border-radius: 8px;
|
|
109
|
+
transition: background 0.15s;
|
|
110
|
+
|
|
111
|
+
&:hover {
|
|
112
|
+
background: #f1f3f4;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
&:focus-visible {
|
|
116
|
+
outline: 2px solid ${({$primary:e})=>e};
|
|
117
|
+
}
|
|
118
|
+
`,Ge=i.default.div`
|
|
119
|
+
display: grid;
|
|
120
|
+
grid-template-columns: repeat(7, 1fr);
|
|
121
|
+
gap: 0;
|
|
122
|
+
`,_e=i.default.div`
|
|
123
|
+
text-align: center;
|
|
124
|
+
font-size: 11px;
|
|
125
|
+
font-weight: 600;
|
|
126
|
+
color: #9aa0a6;
|
|
127
|
+
padding: 4px 0 8px;
|
|
128
|
+
text-transform: uppercase;
|
|
129
|
+
letter-spacing: 0.4px;
|
|
130
|
+
`,Te=i.default.div`
|
|
131
|
+
position: relative;
|
|
132
|
+
display: flex;
|
|
133
|
+
align-items: center;
|
|
134
|
+
justify-content: center;
|
|
135
|
+
height: 36px;
|
|
136
|
+
|
|
137
|
+
&::before {
|
|
138
|
+
content: '';
|
|
139
|
+
position: absolute;
|
|
140
|
+
inset: 4px 0;
|
|
141
|
+
background: ${({$inRange:e,$primaryLight:o})=>e?o:"transparent"};
|
|
142
|
+
border-radius: ${({$rangeStart:e,$rangeEnd:o})=>e?"50% 0 0 50%":o?"0 50% 50% 0":"0"};
|
|
143
|
+
pointer-events: none;
|
|
144
|
+
}
|
|
145
|
+
`,Ye=i.default.button`
|
|
146
|
+
position: relative;
|
|
147
|
+
z-index: 1;
|
|
148
|
+
width: 32px;
|
|
149
|
+
height: 32px;
|
|
150
|
+
border: none;
|
|
151
|
+
border-radius: 50%;
|
|
152
|
+
display: flex;
|
|
153
|
+
align-items: center;
|
|
154
|
+
justify-content: center;
|
|
155
|
+
font-size: 13px;
|
|
156
|
+
font-weight: 500;
|
|
157
|
+
cursor: ${({$empty:e,disabled:o})=>e||o?"default":"pointer"};
|
|
158
|
+
background: ${({$selected:e,$hovered:o,$primary:u,$primaryLight:g})=>e?u:o?g:"transparent"};
|
|
159
|
+
color: ${({$selected:e,$today:o,disabled:u,$primary:g})=>e?"#fff":u?"#dadce0":o?g:"#202124"};
|
|
160
|
+
outline: ${({$today:e,$selected:o,$primary:u})=>e&&!o?`2px solid ${u}`:"none"};
|
|
161
|
+
outline-offset: -2px;
|
|
162
|
+
transition:
|
|
163
|
+
background 0.12s,
|
|
164
|
+
color 0.12s;
|
|
165
|
+
pointer-events: ${({$empty:e,disabled:o})=>e||o?"none":"auto"};
|
|
166
|
+
|
|
167
|
+
${({$empty:e})=>e&&B.css`
|
|
168
|
+
visibility: hidden;
|
|
169
|
+
`}
|
|
170
|
+
|
|
171
|
+
&:hover {
|
|
172
|
+
background: ${({$selected:e,$primary:o,$primaryDark:u,$primaryLight:g})=>e?u:g};
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
&:focus-visible {
|
|
176
|
+
outline: 2px solid ${({$primary:e})=>e};
|
|
177
|
+
}
|
|
178
|
+
`,Ie=i.default.div`
|
|
179
|
+
display: grid;
|
|
180
|
+
grid-template-columns: repeat(3, 1fr);
|
|
181
|
+
gap: 6px;
|
|
182
|
+
padding: 4px 0;
|
|
183
|
+
`,te=i.default.button`
|
|
184
|
+
border: none;
|
|
185
|
+
background: ${({$active:e,$primary:o})=>e?o:"transparent"};
|
|
186
|
+
color: ${({$active:e})=>e?"#fff":"#202124"};
|
|
187
|
+
border-radius: 10px;
|
|
188
|
+
padding: 8px 4px;
|
|
189
|
+
font-size: 13px;
|
|
190
|
+
font-weight: 500;
|
|
191
|
+
cursor: pointer;
|
|
192
|
+
transition:
|
|
193
|
+
background 0.13s,
|
|
194
|
+
color 0.13s;
|
|
195
|
+
|
|
196
|
+
&:hover {
|
|
197
|
+
background: ${({$active:e,$primaryDark:o})=>e?o:"#f1f3f4"};
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
&:focus-visible {
|
|
201
|
+
outline: 2px solid ${({$primary:e})=>e};
|
|
202
|
+
}
|
|
203
|
+
`,Pe=i.default.div`
|
|
204
|
+
display: grid;
|
|
205
|
+
grid-template-columns: repeat(3, 1fr);
|
|
206
|
+
gap: 6px;
|
|
207
|
+
max-height: 210px;
|
|
208
|
+
overflow-y: auto;
|
|
209
|
+
padding: 4px 0;
|
|
210
|
+
scrollbar-width: thin;
|
|
211
|
+
`,ze=i.default.div`
|
|
212
|
+
display: flex;
|
|
213
|
+
justify-content: flex-end;
|
|
214
|
+
gap: 8px;
|
|
215
|
+
margin-top: 16px;
|
|
216
|
+
padding-top: 12px;
|
|
217
|
+
border-top: 1px solid #f1f3f4;
|
|
218
|
+
`,oe=i.default.button`
|
|
219
|
+
border: none;
|
|
220
|
+
background: ${({$isPrimary:e,$primary:o})=>e?o:"transparent"};
|
|
221
|
+
color: ${({$isPrimary:e,$primary:o})=>e?"#fff":o};
|
|
222
|
+
border-radius: 8px;
|
|
223
|
+
padding: 7px 16px;
|
|
224
|
+
font-size: 13px;
|
|
225
|
+
font-weight: 600;
|
|
226
|
+
cursor: pointer;
|
|
227
|
+
transition:
|
|
228
|
+
background 0.14s,
|
|
229
|
+
opacity 0.14s;
|
|
230
|
+
|
|
231
|
+
&:hover {
|
|
232
|
+
background: ${({$isPrimary:e,$primaryDark:o,$primaryLight:u})=>e?o:u};
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
&:disabled {
|
|
236
|
+
opacity: 0.4;
|
|
237
|
+
cursor: default;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
&:focus-visible {
|
|
241
|
+
outline: 2px solid ${({$primary:e})=>e};
|
|
242
|
+
}
|
|
243
|
+
`,He=()=>t.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:t.jsx("polyline",{points:"15 18 9 12 15 6"})}),qe=()=>t.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:t.jsx("polyline",{points:"9 18 15 12 9 6"})}),a={CALENDAR:"calendar",MONTH:"month",YEAR:"year"},Be=new Date,re=1924,Fe=Be.getFullYear()+20,We=Array.from({length:Fe-re+1},(e,o)=>re+o),ie=({theme:e="blue",mode:o=s.MODE.SINGLE,value:u,rangeValue:g,onChange:E,minDate:w,maxDate:O,showModeToggle:le=!0,showFooter:C=!0,...ae})=>{const L=d.useMemo(()=>Ae.default[e]??Me.blue,[e]),c=L.m500,G=L.m700,$=L.m100,_={$primary:c,$primaryDark:G,$primaryLight:$},F=new Date,[l,ce]=d.useState(o),[T,Y]=d.useState(F.getFullYear()),[v,k]=d.useState(F.getMonth()),[m,j]=d.useState(a.CALENDAR),[D,I]=d.useState(u??null),[r,P]=d.useState(g?.[0]??null),[h,S]=d.useState(g?.[1]??null),[A,M]=d.useState(null),[R,N]=d.useState(!1),de=p.buildCalendarGrid(T,v),W=d.useCallback(n=>!!(!n||w&&n<w||O&&n>O),[w,O]),ue=()=>{v===0?(k(11),Y(n=>n-1)):k(n=>n-1)},pe=()=>{v===11?(k(0),Y(n=>n+1)):k(n=>n+1)},fe=n=>{if(!(!n||W(n))){if(l===s.MODE.SINGLE){I(n),C||E?.(n);return}!R||!r?(P(n),S(null),N(!0)):(S(n),N(!1),C||E?.([n<=r?n:r,n<=r?r:n]))}},z=n=>{ce(n),I(null),P(null),S(null),N(!1),M(null)};d.useEffect(()=>{z(o)},[o]);const xe=()=>{if(l===s.MODE.SINGLE)E?.(D);else if(r&&h){const[n,y]=r<=h?[r,h]:[h,r];E?.([n,y])}},ge=()=>{I(null),P(null),S(null),N(!1),M(null),E?.(l===s.MODE.SINGLE?null:[null,null])},b=R&&A?A:h,V=n=>l===s.MODE.RANGE&&p.isRangeStart(n,r,b),U=n=>l===s.MODE.RANGE&&p.isRangeEnd(n,r,b),he=n=>l===s.MODE.RANGE&&p.isInRange(n,r,b),be=n=>l===s.MODE.SINGLE?p.isSameDay(n,D):V(n)||U(n),J=l===s.MODE.SINGLE?p.formatDate(D):p.formatDate(r?r<=(b??r)?r:b:null),me=l===s.MODE.RANGE?p.formatDate(b?b>=r?b:r:null):null,ye=l===s.MODE.SINGLE?!D:!r||!h,Ee=()=>t.jsx(Ie,{children:s.MONTHS.map((n,y)=>t.jsx(te,{$active:y===v,..._,onClick:()=>{k(y),j(a.CALENDAR)},children:n.slice(0,3)},n))}),ve=()=>t.jsx(Pe,{children:We.map(n=>t.jsx(te,{$active:n===T,..._,onClick:()=>{Y(n),j(a.CALENDAR)},children:n},n))}),ke=()=>t.jsxs(Ge,{children:[s.DAYS_SHORT.map(n=>t.jsx(_e,{children:n},n)),de.map((n,y)=>{const x=!n,K=W(n),H=!x&&be(n),De=!x&&p.isToday(n),Q=!x&&V(n),X=!x&&U(n),$e=!x&&he(n),je=!x&&A&&p.isSameDay(n,A);return t.jsx(Te,{$inRange:$e||Q||X,$rangeStart:Q,$rangeEnd:X,$primaryLight:$,children:t.jsx(Ye,{$empty:x,$selected:H,$today:De,$hovered:je&&!H,disabled:K,..._,onClick:()=>fe(n),onMouseEnter:()=>!x&&M(n),onMouseLeave:()=>M(null),"aria-label":n?n.toDateString():void 0,"aria-pressed":H,tabIndex:x||K?-1:0,children:n?.getDate()})},y)})]});return t.jsxs(Ne,{...ae,children:[t.jsx(we,{children:l===s.MODE.RANGE?t.jsxs(t.Fragment,{children:[t.jsxs(q,{$active:R||!r&&!h,$primary:c,children:[t.jsx("span",{children:"From"}),J]}),t.jsx(Oe,{children:"→"}),t.jsxs(q,{$active:!R&&!!h,$primary:c,children:[t.jsx("span",{children:"To"}),me]})]}):t.jsxs(q,{$active:!!D,$primary:c,style:{flex:"none",width:"100%"},children:[t.jsx("span",{children:"Selected"}),J]})}),le&&t.jsxs(Ce,{children:[t.jsx(Z,{$active:l===s.MODE.SINGLE,$primary:c,onClick:()=>z(s.MODE.SINGLE),children:"Single"}),t.jsx(Z,{$active:l===s.MODE.RANGE,$primary:c,onClick:()=>z(s.MODE.RANGE),children:"Range"})]}),t.jsxs(Le,{children:[t.jsx(ee,{$primary:c,onClick:ue,"aria-label":"Previous month",children:t.jsx(He,{})}),t.jsxs("div",{style:{display:"flex",gap:4},children:[t.jsx(ne,{$primary:c,onClick:()=>j(m===a.MONTH?a.CALENDAR:a.MONTH),children:s.MONTHS[v]}),t.jsx(ne,{$primary:c,onClick:()=>j(m===a.YEAR?a.CALENDAR:a.YEAR),children:T})]}),t.jsx(ee,{$primary:c,onClick:pe,"aria-label":"Next month",children:t.jsx(qe,{})})]}),m===a.CALENDAR&&ke(),m===a.MONTH&&Ee(),m===a.YEAR&&ve(),C&&m===a.CALENDAR&&t.jsxs(ze,{children:[t.jsx(oe,{$primary:c,$primaryDark:G,$primaryLight:$,onClick:ge,children:"Clear"}),t.jsx(oe,{$isPrimary:!0,$primary:c,$primaryDark:G,$primaryLight:$,disabled:ye,onClick:xe,children:"Apply"})]})]})};ie.propTypes={theme:f.default.string,mode:f.default.oneOf(["single","range"]),value:f.default.instanceOf(Date),rangeValue:f.default.arrayOf(f.default.instanceOf(Date)),onChange:f.default.func,minDate:f.default.instanceOf(Date),maxDate:f.default.instanceOf(Date),showModeToggle:f.default.bool,showFooter:f.default.bool};exports.default=ie;
|
|
@@ -1 +1,120 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("react/jsx-runtime"),o=require("react"),de=require("prop-types"),f=require("../../colors/grey.cjs"),ue=require("../MenuItem/MenuItem.cjs"),fe=require("../../colors/colorMap.cjs"),pe=require("../../colors/blue.cjs"),B=require("../Spinner/Spinner.cjs"),m=require("styled-components"),me=require("../Typography/P/P.cjs"),he=require("./constants.cjs"),T=require("../../colors/white.cjs"),be=require("../Icons/ChevronDown/ChevronDown.cjs"),ge=require("../Icons/Search/Search.cjs"),H=t=>t&&t.__esModule?t:{default:t},n=H(de),c=H(m),xe=m.keyframes`
|
|
2
|
+
from {
|
|
3
|
+
transform: rotate(0deg);
|
|
4
|
+
}
|
|
5
|
+
to {
|
|
6
|
+
transform: rotate(180deg);
|
|
7
|
+
}
|
|
8
|
+
`,we=m.keyframes`
|
|
9
|
+
from {
|
|
10
|
+
transform: rotate(180deg);
|
|
11
|
+
}
|
|
12
|
+
to {
|
|
13
|
+
transform: rotate(0deg);
|
|
14
|
+
}
|
|
15
|
+
`,ve=c.default.div`
|
|
16
|
+
max-width: ${({$width:t})=>t};
|
|
17
|
+
position: relative;
|
|
18
|
+
outline: none;
|
|
19
|
+
|
|
20
|
+
${({$isLoading:t})=>t&&m.css`
|
|
21
|
+
pointer-events: none;
|
|
22
|
+
opacity: 0.8;
|
|
23
|
+
`}
|
|
24
|
+
|
|
25
|
+
${({$isDisabled:t})=>t&&m.css`
|
|
26
|
+
pointer-events: none;
|
|
27
|
+
opacity: 0.7;
|
|
28
|
+
`}
|
|
29
|
+
`,ye=c.default.div`
|
|
30
|
+
height: 3.2rem;
|
|
31
|
+
width: ${({$width:t})=>t};
|
|
32
|
+
border-radius: 0.96rem;
|
|
33
|
+
border: ${({$isOpen:t,$isFocused:h,$border:l})=>t||h?`2px solid ${l}`:`1px solid ${he.DEFAULT_BORDER}`};
|
|
34
|
+
padding: 0.64rem 0.96rem 0.64rem;
|
|
35
|
+
display: flex;
|
|
36
|
+
align-items: center;
|
|
37
|
+
justify-content: space-between;
|
|
38
|
+
cursor: pointer;
|
|
39
|
+
`,$e=c.default(me.default)`
|
|
40
|
+
overflow: hidden;
|
|
41
|
+
white-space: nowrap;
|
|
42
|
+
text-overflow: ellipsis;
|
|
43
|
+
max-width: calc(${({$width:t})=>t} - 3.2rem);
|
|
44
|
+
pointer-events: none;
|
|
45
|
+
`,Se=c.default(be.default)`
|
|
46
|
+
animation: ${({$isOpen:t})=>t?xe:we} 0.15s linear;
|
|
47
|
+
transform: rotate(${({$isOpen:t})=>t?180:0}deg);
|
|
48
|
+
`,ke=c.default.div`
|
|
49
|
+
border: 1px solid ${f.default.m700};
|
|
50
|
+
width: calc(${({$width:t})=>t} + 1.6rem);
|
|
51
|
+
/* Remove overflow: auto from here */
|
|
52
|
+
display: flex;
|
|
53
|
+
flex-direction: column;
|
|
54
|
+
position: absolute;
|
|
55
|
+
z-index: 1000;
|
|
56
|
+
background-color: ${T.default};
|
|
57
|
+
left: 0.24rem;
|
|
58
|
+
max-height: 0;
|
|
59
|
+
transition: max-height 0.15s ease-out;
|
|
60
|
+
opacity: 0;
|
|
61
|
+
overflow: hidden; /* Keep this hidden so the collapse works */
|
|
62
|
+
|
|
63
|
+
${({$isOpen:t})=>t&&m.css`
|
|
64
|
+
max-height: ${({$height:h})=>h};
|
|
65
|
+
opacity: 1;
|
|
66
|
+
`};
|
|
67
|
+
|
|
68
|
+
${({$top:t})=>t?m.css`
|
|
69
|
+
bottom: 100%;
|
|
70
|
+
flex-direction: column-reverse; /* Search at bottom if menu opens upward */
|
|
71
|
+
border-top-right-radius: 0.96rem;
|
|
72
|
+
border-top-left-radius: 0.96rem;
|
|
73
|
+
margin-bottom: 0.16rem;
|
|
74
|
+
`:m.css`
|
|
75
|
+
top: 100%;
|
|
76
|
+
border-bottom-right-radius: 0.96rem;
|
|
77
|
+
border-bottom-left-radius: 0.96rem;
|
|
78
|
+
margin-top: 0.16rem;
|
|
79
|
+
`}
|
|
80
|
+
`,Ee=c.default.div`
|
|
81
|
+
overflow-y: auto;
|
|
82
|
+
flex: 1;
|
|
83
|
+
`,Ie=c.default.div`
|
|
84
|
+
position: absolute;
|
|
85
|
+
top: 1.28rem;
|
|
86
|
+
right: 1.92rem;
|
|
87
|
+
`,Ce=c.default.div`
|
|
88
|
+
position: relative;
|
|
89
|
+
display: flex;
|
|
90
|
+
align-items: center;
|
|
91
|
+
border-bottom: 1px solid ${f.default.m300};
|
|
92
|
+
background: ${T.default};
|
|
93
|
+
|
|
94
|
+
&:focus-within {
|
|
95
|
+
border-bottom-color: ${f.default.m500};
|
|
96
|
+
}
|
|
97
|
+
`,je=c.default.input`
|
|
98
|
+
width: 100%;
|
|
99
|
+
box-sizing: border-box;
|
|
100
|
+
border: none;
|
|
101
|
+
/* Add left padding to make room for the icon */
|
|
102
|
+
padding: 0.8rem 1.2rem 0.8rem 0;
|
|
103
|
+
font-size: 1.92rem;
|
|
104
|
+
color: ${f.default.m700};
|
|
105
|
+
background: transparent;
|
|
106
|
+
outline: none;
|
|
107
|
+
|
|
108
|
+
&::placeholder {
|
|
109
|
+
color: ${f.default.m400};
|
|
110
|
+
}
|
|
111
|
+
`,Oe=c.default(ge.default)`
|
|
112
|
+
margin: 0 1.28rem;
|
|
113
|
+
`,qe=c.default.div`
|
|
114
|
+
display: flex;
|
|
115
|
+
justify-content: center;
|
|
116
|
+
align-items: center;
|
|
117
|
+
padding: 1.6rem 0;
|
|
118
|
+
min-height: 1.6rem;
|
|
119
|
+
width: 100%;
|
|
120
|
+
`,Re=t=>{if(typeof t!="string")return t;if(t.endsWith("px"))return parseFloat(t);if(t.endsWith("rem")){const h=parseFloat(t),l=parseFloat(getComputedStyle(document.documentElement).fontSize);return h*l}return parseFloat(t)},K=({options:t,onChange:h,value:l,width:y="32rem",menuHeight:O="32rem",placeholder:U,theme:V="blue",isLoading:$,isDisabled:S,loaderColor:R,searchable:k=!1,onLoadMore:b,hasMore:E=!1,isLoadingMore:g=!1,searchPh:D="Search...",...Q})=>{const[s,x]=o.useState(!1),[N,F]=o.useState(!1),[G,J]=o.useState("bottom"),[I,z]=o.useState(""),[d,w]=o.useState(-1),j=o.useId(),v=o.useRef(null),C=o.useRef(null),q=o.useRef(null),_=o.useRef(null),X=o.useRef(!0),Y=()=>!$&&!S&&x(e=>!e),P=e=>{e!==l&&(h(e),x(!1))},u=o.useMemo(()=>{if(!k||!I.trim())return t;const e=I.toLowerCase();return t.filter(({label:r})=>r.toLowerCase().includes(e))},[t,I,k]);o.useEffect(()=>{if(s){const e=u.findIndex(r=>r.value===l);if(e!==-1&&!u[e].disabled)w(e);else{const r=u.findIndex(a=>!a.disabled);w(r)}}else z(""),w(-1)},[s,I,u,l]),o.useEffect(()=>{if(s&&d!==-1&&C.current){const e=C.current.children[d];e&&e.scrollIntoView({block:"nearest",behavior:"auto"})}},[d,s]),o.useEffect(()=>{s&&k&&q.current&&q.current.focus()},[s,k]),o.useEffect(()=>{s||(X.current=!0)},[s]),o.useEffect(()=>{const e=r=>{v.current&&!v.current.contains(r.target)&&x(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),o.useLayoutEffect(()=>{if(s&&C.current&&v.current){const e=v.current.getBoundingClientRect(),r=window.innerHeight,a=Re(O),p=r-e.bottom;J(p<a+8&&e.top>p?"top":"bottom")}},[s,O]);const Z=e=>{let r=e+1;for(;r<u.length;){if(!u[r].disabled)return r;r++}return e},M=e=>{let r=e-1;for(;r>=0;){if(!u[r].disabled)return r;r--}return e},L=e=>{if(!($||S)){if(!s){(e.key===" "||e.key==="Enter"||e.key==="ArrowDown"||e.key==="ArrowUp")&&(e.preventDefault(),x(!0));return}switch(e.key){case"ArrowDown":e.preventDefault();const r=Z(d);r===d&&E&&!g&&b?.(),w(r);break;case"ArrowUp":e.preventDefault(),w(p=>M(p));break;case"Enter":e.preventDefault();const a=u[d];a&&!a.disabled&&P(a.value);break;case"Escape":x(!1);break}}},A=o.useCallback(()=>{E&&!g&&b&&b()},[E,g,b]);o.useEffect(()=>{const e=_.current;if(!e||!b||!E)return;const r=new IntersectionObserver(([a])=>{a.isIntersecting&&!g&&A()},{root:C.current,threshold:.1,rootMargin:"20px"});return r.observe(e),()=>r.disconnect()},[A,b,E,g]);const{m50:ee,m100:te,m200:re,m500:oe}=fe.default[V]??pe.blue,ne=(e,r)=>()=>!e&&w(r),W=e=>`${j}-opt-${e}`,se=({value:e,label:r,disabled:a},p)=>o.createElement(ue.default,{value:e,label:r,isDisabled:a,onSelect:P,onMouseEnter:ne(a,p),isSelected:e===l,isHighlighted:p===d,key:e,id:W(p),width:y,selectedColor:re,hoverColor:ee,activeColor:te}),ie=e=>()=>{F(e)},ae=e=>{F(!1),v.current?.contains(e.relatedTarget)||x(!1)},le=e=>{z(e.target.value)},ce=e=>{e.stopPropagation()};return i.jsxs(ve,{ref:v,$width:y,...Q,tabIndex:S||$?-1:0,onKeyDown:L,$isLoading:$,$isDisabled:S,role:"combobox","aria-expanded":s,"aria-haspopup":"listbox","aria-controls":j,"aria-disabled":S||void 0,"aria-activedescendant":d!==-1?W(d):void 0,onFocus:ie(!0),onBlur:ae,children:[i.jsxs(ye,{$width:y,onClick:Y,$isOpen:s,$border:oe,$isFocused:N&&!s,children:[i.jsx($e,{$width:y,color:l?f.default.m700:f.default.m500,size:"1.92rem",children:l?t.find(({value:e})=>l===e)?.label:U}),i.jsx(Se,{color:f.default.m500,size:22,$isOpen:s,"aria-hidden":!0})]}),i.jsxs(ke,{$isOpen:s,$width:y,$height:O,$top:G==="top",children:[k&&i.jsxs(Ce,{onClick:ce,children:[i.jsx(Oe,{size:20,color:f.default.m600,"aria-hidden":!0}),i.jsx(je,{ref:q,value:I,onChange:le,placeholder:D,"aria-label":D,"aria-controls":j,"aria-autocomplete":"list","aria-expanded":s,role:"combobox",tabIndex:s?0:-1})]}),i.jsxs(Ee,{ref:C,role:"listbox",id:j,tabIndex:-1,children:[u.map(se),b&&i.jsx(qe,{ref:_,children:g&&i.jsx(B.default,{size:"small",color:R})})]})]}),$&&i.jsx(Ie,{children:i.jsx(B.default,{size:"small",color:R})})]})};K.propTypes={options:n.default.arrayOf(n.default.shape({value:n.default.any,label:n.default.string,disabled:n.default.bool})),value:n.default.any,onChange:n.default.func,width:n.default.string,menuHeight:n.default.string,placeholder:n.default.string,theme:n.default.string,isLoading:n.default.bool,isDisabled:n.default.bool,loaderColor:n.default.string,searchable:n.default.bool,searchPh:n.default.string,onLoadMore:n.default.func,hasMore:n.default.bool,isLoadingMore:n.default.bool};exports.default=K;
|