@acusti/uikit-docs 0.4.4 → 0.4.6
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/.storybook/main.ts +19 -4
- package/CHANGELOG.md +60 -0
- package/dist/assets/CSSValueInput-B69U5DrZ.js +5 -0
- package/dist/assets/{CSSValueInput-BgAgo3f9.css → CSSValueInput-DKgB9IQs.css} +1 -1
- package/dist/assets/CSSValueInput.stories-vCftVQHX.js +113 -0
- package/dist/assets/Color-6BZIO3FS-BHsDhiaJ.js +1 -0
- package/dist/assets/DatePicker.stories-X2JO2cn6.js +585 -0
- package/dist/assets/DocsRenderer-LL677BLK-i2bqAbNY.js +2 -0
- package/dist/assets/Dropdown-QkqMQiyU.css +1 -0
- package/dist/assets/Dropdown-_IIsqrAA.js +101 -0
- package/dist/assets/Dropdown.stories-msGED41R.js +364 -0
- package/dist/assets/InputText-_BMv0r1n.css +1 -0
- package/dist/assets/InputText.stories-CG1EnzrQ.js +148 -0
- package/dist/assets/Introduction-orXeKug7.js +184 -0
- package/dist/assets/MonthCalendar.stories-CJT-JiqF.js +177 -0
- package/dist/assets/WithTooltip-65CFNBJE-DlgYg9W2.js +9 -0
- package/dist/assets/blocks-C4xgyV4X.js +46 -0
- package/dist/assets/chunk-242VQQM5-DEt_wvrI.js +1 -0
- package/dist/assets/chunk-YKABRMAI-BpCcWWoG.js +18 -0
- package/dist/assets/client-Bvdml6v2.js +9 -0
- package/dist/assets/clsx-Bdud1Ih_.js +1 -0
- package/dist/assets/compiler-runtime-BOsKKfMw.js +1 -0
- package/dist/assets/components-CuDS54ZU.js +92 -0
- package/dist/assets/dist-6e4YoSiG.js +1 -0
- package/dist/assets/dist-BreUZhw6.js +1 -0
- package/dist/assets/formatter-EIJCOSYU-4RP_9NAI.js +1 -0
- package/dist/assets/iframe-BsC6HWDY.js +1221 -0
- package/dist/assets/jsx-runtime-CZwoFFIL.js +1 -0
- package/dist/assets/lib-WXkUx4TK.js +1 -0
- package/dist/assets/preload-helper-Bhb7V-Yo.js +1 -0
- package/dist/assets/react-18-6aLPZbD-.js +1 -0
- package/dist/assets/react-DcwytXSz.js +1 -0
- package/dist/assets/react-dom-CFVoDXTy.js +1 -0
- package/dist/assets/syntaxhighlighter-ED5Y7EFY-BQSv6pbL.js +6 -0
- package/dist/assets/theming-DLDZLcJn.js +39 -0
- package/dist/assets/useIsOutOfBounds.stories-CI4DMSUD.js +105 -0
- package/dist/assets/{useKeyboardEvents-BH4Zd7d3.css → useKeyboardEvents-CKMYGqVT.css} +1 -1
- package/dist/assets/useKeyboardEvents.stories-CNX299tr.js +3 -0
- package/dist/favicon-wrapper.svg +46 -0
- package/dist/favicon.svg +1 -1
- package/dist/iframe.html +59 -40
- package/dist/index.html +8 -16
- package/dist/index.json +1 -1
- package/dist/project.json +1 -1
- package/dist/sb-addons/docs-1/manager-bundle.js +1 -149
- package/dist/sb-addons/storybook-2/manager-bundle.js +1 -1
- package/dist/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +548 -108
- package/dist/sb-common-assets/favicon-wrapper.svg +46 -0
- package/dist/sb-common-assets/favicon.svg +1 -1
- package/dist/sb-manager/globals-runtime.js +73064 -67182
- package/dist/sb-manager/globals.js +6 -16
- package/dist/sb-manager/manager-stores.js +23 -0
- package/dist/sb-manager/runtime.js +17712 -10309
- package/dist/vite-inject-mocker-entry.js +2 -0
- package/package.json +11 -9
- package/stories/CSSValueInput.stories.tsx +1 -1
- package/stories/DatePicker.stories.tsx +182 -45
- package/stories/InputText.stories.tsx +36 -0
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/assets/CSSValueInput-BoZriUnh.js +0 -1
- package/dist/assets/CSSValueInput.stories-D1VcYZJ0.js +0 -113
- package/dist/assets/Color-AVL7NMMY-BeW0C7pE.js +0 -1
- package/dist/assets/DatePicker.stories-BSWV31FV.js +0 -244
- package/dist/assets/DocsRenderer-PQXLIZUC-D92GwNti.js +0 -2
- package/dist/assets/Dropdown-D5cyjefk.css +0 -1
- package/dist/assets/Dropdown-DUP_ybXe.js +0 -84
- package/dist/assets/Dropdown.stories-2Wtw1otE.js +0 -336
- package/dist/assets/InputText-Tkbh5amB.css +0 -1
- package/dist/assets/InputText.stories-BYt2Aj0_.js +0 -90
- package/dist/assets/Introduction-nSE2hjmb.js +0 -183
- package/dist/assets/MonthCalendar.stories-IJrL6wIl.js +0 -169
- package/dist/assets/blocks-Du178fXa.js +0 -658
- package/dist/assets/client-B2qWCcIR.js +0 -25
- package/dist/assets/clsx-hXifHU8N.js +0 -9
- package/dist/assets/iframe-ByGa_ItU.js +0 -1102
- package/dist/assets/index-BRXcJgsA.js +0 -1
- package/dist/assets/index-BVajFqaV.js +0 -1
- package/dist/assets/index-DwJ-mRZ2.js +0 -9
- package/dist/assets/jsx-runtime-D_zvdyIk.js +0 -9
- package/dist/assets/react-18-djOrgGe8.js +0 -1
- package/dist/assets/useIsOutOfBounds.stories-e48KZd_G.js +0 -105
- package/dist/assets/useKeyboardEvents.stories-CJbDuGfk.js +0 -3
- package/dist/sb-manager/globals-module-info.js +0 -797
|
@@ -0,0 +1,585 @@
|
|
|
1
|
+
import{E as e,r as t}from"./iframe-BsC6HWDY.js";import{t as n}from"./jsx-runtime-CZwoFFIL.js";import{t as r}from"./compiler-runtime-BOsKKfMw.js";import{t as i}from"./clsx-Bdud1Ih_.js";import{n as a}from"./dist-BreUZhw6.js";var o=r(),s=e(t(),1),c=n(),l=`uktmonthcalendar`,u=`
|
|
2
|
+
.${l} {
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-direction: column;
|
|
5
|
+
flex: 1 1 auto;
|
|
6
|
+
box-sizing: border-box;
|
|
7
|
+
max-width: 325px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.${l}-month-title {
|
|
11
|
+
display: flex;
|
|
12
|
+
align-items: center;
|
|
13
|
+
justify-content: center;
|
|
14
|
+
flex: 0 0 auto;
|
|
15
|
+
box-sizing: border-box;
|
|
16
|
+
padding-bottom: 25px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
h3.${l}-month-title-text {
|
|
20
|
+
font-size: 18px;
|
|
21
|
+
line-height: 23px;
|
|
22
|
+
font-weight: 600;
|
|
23
|
+
color: #000;
|
|
24
|
+
margin: 0px;
|
|
25
|
+
text-align: center;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.${l}-month-week {
|
|
29
|
+
flex: 0 0 auto;
|
|
30
|
+
display: grid;
|
|
31
|
+
grid-column-gap: 0px;
|
|
32
|
+
grid-template-columns: repeat(auto-fit, minmax(46px, 1fr));
|
|
33
|
+
grid-auto-flow: dense;
|
|
34
|
+
box-sizing: border-box;
|
|
35
|
+
padding-bottom: 12px;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.${l}-month-week .week-day-item {
|
|
39
|
+
flex: 1 1 auto;
|
|
40
|
+
display: flex;
|
|
41
|
+
justify-content: center;
|
|
42
|
+
align-items: center;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.${l}-month-week span.week-day-item-text {
|
|
46
|
+
text-align: center;
|
|
47
|
+
font-size: 13px;
|
|
48
|
+
line-height: 21px;
|
|
49
|
+
margin: 0px;
|
|
50
|
+
color: #9a9a9a;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.${l}-month-days {
|
|
54
|
+
flex: 1 1 auto;
|
|
55
|
+
display: flex;
|
|
56
|
+
flex-direction: column;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.${l}-month-row {
|
|
60
|
+
flex: 1 1 auto;
|
|
61
|
+
display: grid;
|
|
62
|
+
grid-column-gap: 0px;
|
|
63
|
+
grid-template-columns: repeat(auto-fit, minmax(46px, 1fr));
|
|
64
|
+
grid-auto-flow: dense;
|
|
65
|
+
margin-bottom: 1px;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.${l}-month-day-item {
|
|
69
|
+
display: flex;
|
|
70
|
+
justify-content: center;
|
|
71
|
+
align-items: center;
|
|
72
|
+
position: relative;
|
|
73
|
+
height: 46px;
|
|
74
|
+
width: 46px;
|
|
75
|
+
cursor: pointer;
|
|
76
|
+
border: none;
|
|
77
|
+
background-color: transparent;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.${l}-month-day-item:disabled {
|
|
81
|
+
cursor: auto;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.${l}-month-day-item.is-today span.month-day-item-text {
|
|
85
|
+
color: #eb4e3d;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.${l}.is-range .${l}-month-day-item.is-selected {
|
|
89
|
+
background-color: #f6f6f6;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.${l}.is-range .${l}-month-day-item.start-date {
|
|
93
|
+
background-color: #f6f6f6;
|
|
94
|
+
border-top-left-radius: 50%;
|
|
95
|
+
border-bottom-left-radius: 50%;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.${l}-month-day-item.start-date:after {
|
|
99
|
+
background-color: #000;
|
|
100
|
+
opacity: 1;
|
|
101
|
+
visibility: visible;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.${l}-month-day-item.start-date span.month-day-item-text {
|
|
105
|
+
color: #fff;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.${l}.is-range .${l}-month-day-item.end-date {
|
|
109
|
+
background-color: #f6f6f6;
|
|
110
|
+
border-top-right-radius: 50%;
|
|
111
|
+
border-bottom-right-radius: 50%;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.${l}-month-day-item.end-date:after {
|
|
115
|
+
background-color: #000;
|
|
116
|
+
opacity: 1;
|
|
117
|
+
visibility: visible;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.${l}-month-day-item.end-date span.month-day-item-text {
|
|
121
|
+
color: #fff;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.${l}-month-day-item:hover:after,
|
|
125
|
+
.${l}-month-day-item.is-today:hover:after {
|
|
126
|
+
border-color: #000;
|
|
127
|
+
opacity: 1;
|
|
128
|
+
visibility: visible;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.${l}-month-day-item:after {
|
|
132
|
+
content: "";
|
|
133
|
+
position: absolute;
|
|
134
|
+
left: 50%;
|
|
135
|
+
top: 50%;
|
|
136
|
+
transform: translate(-50%, -50%);
|
|
137
|
+
pointer-events: none;
|
|
138
|
+
border-radius: 50%;
|
|
139
|
+
border: 1px solid #000;
|
|
140
|
+
width: 43px;
|
|
141
|
+
height: 43px;
|
|
142
|
+
transition: opacity 0.25s ease-in-out;
|
|
143
|
+
opacity: 0;
|
|
144
|
+
visibility: hidden;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.${l}-month-day-item.is-empty:after {
|
|
148
|
+
content: none;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.${l}-month-day-item span.month-day-item-text {
|
|
152
|
+
text-align: center;
|
|
153
|
+
font-size: 13px;
|
|
154
|
+
line-height: 21px;
|
|
155
|
+
margin: 0px;
|
|
156
|
+
color: #000;
|
|
157
|
+
position: relative;
|
|
158
|
+
z-index: 1;
|
|
159
|
+
}
|
|
160
|
+
`,d=1970,f=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],p=(e,t)=>(t?e.getUTCFullYear():e.getFullYear())-d,m=(e,t)=>p(e,t)*12+(t?e.getUTCMonth():e.getMonth()),h=e=>Math.floor(e/12)+d,g=e=>{let t=e%12;return Number.isNaN(t)?``:(t<0&&(t=12+t),f[t])},_=e=>{let t=g(e);return t===`September`?`Sept`:t.substring(0,3)},v=(e,t,n)=>{let r=e<0?(12-Math.abs(e%12))%12:e%12,i=h(e);return n?new Date(Date.UTC(i,r,t)):new Date(i,r,t)},y=(e,t)=>v(e+1,0,t),b=Array(7).fill(null);function x(e){let t=(0,o.c)(47),{className:n,dateEnd:r,dateEndPreview:d,dateStart:f,isRange:p,month:_,onChange:x,onChangeEndPreview:S,title:C}=e,w,T,E,D,O,k,A;if(t[0]!==_||t[1]!==n||t[2]!==r||t[3]!==d||t[4]!==f||t[5]!==p||t[6]!==x||t[7]!==S||t[8]!==C){let e=new Date,o=Number.isFinite(_)?Math.max(-(2**53-1),Math.min(2**53-1,_)):m(e),j=h(o);C??=`${g(o)} ${j}`;let M=v(o,1),N=y(o),P=N.getDate(),F=M.getDay(),I=7-N.getDay()%7,L=P+F+I,[R,z,B]=[f,r,d].reduce((e,t,n)=>{if(t!=null&&!(t instanceof Date)&&(t=new Date(t)),t==null||Number.isNaN(t.getTime()))return e;let r=m(t);if(r<o?e[n]=-1:r>o?e[n]=P+1:e[n]=t.getDate(),n===1){let t=e[n-1],r=e[n];t!=null&&r!=null&&t>r&&(e[n-1]=r,e[n]=t)}return e},[null,null,null]),V;t[17]===x?V=t[18]:(V=e=>{let{date:t}=e.currentTarget.dataset;t&&x&&x(t)},t[17]=x,t[18]=V);let ee=V,H;t[19]!==p||t[20]!==S?(H=e=>{if(p&&S){let{date:t}=e.currentTarget.dataset;t&&S(t)}},t[19]=p,t[20]=S,t[21]=H):H=t[21];let te=H;w=s.Fragment,t[22]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,c.jsx)(a,{href:`@acusti/date-picker/MonthCalendar`,children:u}),t[22]=A):A=t[22],t[23]!==n||t[24]!==p?(D=i(l,n,{"is-range":p}),t[23]=n,t[24]=p,t[25]=D):D=t[25],t[26]===C?O=t[27]:(O=(0,c.jsx)(`div`,{className:`${l}-month-title`,children:(0,c.jsx)(`h3`,{className:`${l}-month-title-text`,children:C})}),t[26]=C,t[27]=O);let U;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,c.jsx)(`div`,{className:`week-day-item`,children:(0,c.jsx)(`span`,{className:`week-day-item-text`,children:`Su`})}),t[28]=U):U=t[28];let W;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,c.jsx)(`div`,{className:`week-day-item`,children:(0,c.jsx)(`span`,{className:`week-day-item-text`,children:`Mo`})}),t[29]=W):W=t[29];let G;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,c.jsx)(`div`,{className:`week-day-item`,children:(0,c.jsx)(`span`,{className:`week-day-item-text`,children:`Tu`})}),t[30]=G):G=t[30];let K;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,c.jsx)(`div`,{className:`week-day-item`,children:(0,c.jsx)(`span`,{className:`week-day-item-text`,children:`We`})}),t[31]=K):K=t[31];let q;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(q=(0,c.jsx)(`div`,{className:`week-day-item`,children:(0,c.jsx)(`span`,{className:`week-day-item-text`,children:`Th`})}),t[32]=q):q=t[32];let J;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(J=(0,c.jsx)(`div`,{className:`week-day-item`,children:(0,c.jsx)(`span`,{className:`week-day-item-text`,children:`Fr`})}),t[33]=J):J=t[33],t[34]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,c.jsxs)(`div`,{className:`${l}-month-week`,children:[U,W,G,K,q,J,(0,c.jsx)(`div`,{className:`week-day-item`,children:(0,c.jsx)(`span`,{className:`week-day-item-text`,children:`Sa`})})]}),t[34]=k):k=t[34],T=`${l}-month-days`,E=Array(Math.floor(L/7)).fill(null).map((t,n)=>(0,c.jsx)(`div`,{className:`${l}-month-row`,children:b.map((t,r)=>{r+=n*7;let a=r-F+1,s=a<1||a>P,u=s?null:v(o,a),d=R!=null&&a>R,f=z==null&&B!=null&&a<B||z!=null&&a<z;return(0,c.jsx)(`button`,{className:i(`${l}-month-day-item`,{"end-date":!s&&a===z,"is-empty":s,"is-selected":!s&&d&&f,"is-today":!s&&o===m(e)&&a===e.getDate(),"start-date":!s&&a===R}),"data-date":u?.toISOString(),disabled:s,onClick:ee,onMouseEnter:te,type:`button`,children:s?null:(0,c.jsx)(`span`,{className:`month-day-item-text`,children:a})},`MonthDayItem-${a}`)})},`MonthRow-${n}`)),t[0]=_,t[1]=n,t[2]=r,t[3]=d,t[4]=f,t[5]=p,t[6]=x,t[7]=S,t[8]=C,t[9]=w,t[10]=T,t[11]=E,t[12]=D,t[13]=O,t[14]=k,t[15]=A,t[16]=C}else w=t[9],T=t[10],E=t[11],D=t[12],O=t[13],k=t[14],A=t[15],C=t[16];let j;t[35]!==T||t[36]!==E?(j=(0,c.jsx)(`div`,{className:T,children:E}),t[35]=T,t[36]=E,t[37]=j):j=t[37];let M;t[38]!==D||t[39]!==O||t[40]!==k||t[41]!==j?(M=(0,c.jsxs)(`div`,{className:D,children:[O,k,j]}),t[38]=D,t[39]=O,t[40]=k,t[41]=j,t[42]=M):M=t[42];let N;return t[43]!==w||t[44]!==A||t[45]!==M?(N=(0,c.jsxs)(w,{children:[A,M]}),t[43]=w,t[44]=A,t[45]=M,t[46]=N):N=t[46],N}var S=`uktdatepicker`,C=`
|
|
161
|
+
.${S} {
|
|
162
|
+
display: flex;
|
|
163
|
+
box-sizing: border-box;
|
|
164
|
+
padding: 40px 60px 60px;
|
|
165
|
+
flex: 1 1 auto;
|
|
166
|
+
position: relative;
|
|
167
|
+
max-width: 450px;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.${S}.two-up {
|
|
171
|
+
max-width: 820px;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.${S}-range-arrow-wrap {
|
|
175
|
+
position: absolute;
|
|
176
|
+
top: 30px;
|
|
177
|
+
left: 0px;
|
|
178
|
+
display: flex;
|
|
179
|
+
justify-content: space-between;
|
|
180
|
+
height: 0px;
|
|
181
|
+
width: 100%;
|
|
182
|
+
padding: 0px 60px;
|
|
183
|
+
box-sizing: border-box;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.${S}-range-arrow {
|
|
187
|
+
background-color: transparent;
|
|
188
|
+
border: 0;
|
|
189
|
+
width: 35px;
|
|
190
|
+
height: 35px;
|
|
191
|
+
text-align: center;
|
|
192
|
+
cursor: pointer;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.${S}-range-arrow.disabled {
|
|
196
|
+
color: #ccc;
|
|
197
|
+
cursor: default;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.${S}-range-arrow:active {
|
|
201
|
+
transform: translateY(1px);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.${S}-range-arrow.left-arrow:after,
|
|
205
|
+
.${S}-range-arrow.right-arrow:after {
|
|
206
|
+
content: "‹";
|
|
207
|
+
font-size: 24px;
|
|
208
|
+
line-height: 35px;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.${S}-range-arrow.right-arrow:after {
|
|
212
|
+
content: "›";
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.${S}-month-container {
|
|
216
|
+
display: flex;
|
|
217
|
+
flex: 1 1 auto;
|
|
218
|
+
justify-content: space-between;
|
|
219
|
+
}
|
|
220
|
+
`,w=e=>`${_(e)} ${h(e)}`,T=e=>e==null||e===``?null:typeof e==`string`?e:new Date(e).toISOString();function E(e){let t=(0,o.c)(62),{className:n,defaultDateEnd:r,defaultDateStart:l,initialMonth:u,isRange:d,isTwoUp:f,monthLimitFirst:p,monthLimitLast:h,onChange:g,showEndInitially:_,useMonthAbbreviations:v}=e,y=d??r!=null,b=f&&h!=null?h-1:h,E;t[0]===r?E=t[1]:(E=T(r),t[0]=r,t[1]=E);let D=E,O;t[2]===l?O=t[3]:(O=T(l),t[2]=l,t[3]=O);let k=O,[A,j]=(0,s.useState)(D),[M,N]=(0,s.useState)(k),P=(0,s.useRef)(!1);if(u==null){let e=M==null||!!(_&&A),n=e?A:M,r;t[4]===n?r=t[5]:(r=m(n==null?new Date:new Date(n)),t[4]=n,t[5]=r),u=r,e&&f&&--u}let F=(b??2**53-1)+(f?-1:0);u=Math.max(Math.min(u,F),p??-(2**53-1));let[I,L]=(0,s.useState)(u),[R,z]=(0,s.useState)(null),B=f?2:1,V;t[6]!==B||t[7]!==p?(V=()=>{L(e=>Math.max(e-B,p??-1/0))},t[6]=B,t[7]=p,t[8]=V):V=t[8];let ee=V,H;t[9]!==B||t[10]!==b?(H=()=>{L(e=>Math.min(e+B,b??1/0))},t[9]=B,t[10]=b,t[11]=H):H=t[11];let te=H,U;t[12]!==A||t[13]!==M||t[14]!==y||t[15]!==g?(U=e=>{y&&M!=null&&(P.current||A==null)?(e<M?(N(e),j(M),g({dateEnd:M,dateStart:e})):(j(e),g({dateEnd:e,dateStart:M})),P.current=!1):(N(e),j(null),y?(g({dateEnd:null,dateStart:e}),P.current=!0):g({dateStart:e}))},t[12]=A,t[13]=M,t[14]=y,t[15]=g,t[16]=U):U=t[16];let W=U,G;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(G=e=>{z(e)},t[17]=G):G=t[17];let K=G,q;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(q=(0,c.jsx)(a,{href:`@acusti/date-picker/DatePicker`,children:C}),t[18]=q):q=t[18];let J;t[19]!==n||t[20]!==f?(J=i(S,n,{"two-up":f}),t[19]=n,t[20]=f,t[21]=J):J=t[21];let ne=p!=null&&I<=p,Y;t[22]===ne?Y=t[23]:(Y=i(`${S}-range-arrow left-arrow`,{disabled:ne}),t[22]=ne,t[23]=Y);let X;t[24]!==ee||t[25]!==Y?(X=(0,c.jsx)(`button`,{"aria-label":`Previous Month`,className:Y,onClick:ee,type:`button`}),t[24]=ee,t[25]=Y,t[26]=X):X=t[26];let re=b!=null&&I>=b,Z;t[27]===re?Z=t[28]:(Z=i(`${S}-range-arrow right-arrow`,{disabled:re}),t[27]=re,t[28]=Z);let Q;t[29]!==te||t[30]!==Z?(Q=(0,c.jsx)(`button`,{"aria-label":`Next Month`,className:Z,onClick:te,type:`button`}),t[29]=te,t[30]=Z,t[31]=Q):Q=t[31];let $;t[32]!==X||t[33]!==Q?($=(0,c.jsxs)(`div`,{className:`${S}-range-arrow-wrap`,children:[X,Q]}),t[32]=X,t[33]=Q,t[34]=$):$=t[34];let ie;t[35]!==I||t[36]!==v?(ie=v?w(I):void 0,t[35]=I,t[36]=v,t[37]=ie):ie=t[37];let ae;t[38]!==A||t[39]!==R||t[40]!==M||t[41]!==W||t[42]!==y||t[43]!==I||t[44]!==ie?(ae=(0,c.jsx)(x,{dateEnd:A,dateEndPreview:R,dateStart:M,isRange:y,month:I,onChange:W,onChangeEndPreview:K,title:ie}),t[38]=A,t[39]=R,t[40]=M,t[41]=W,t[42]=y,t[43]=I,t[44]=ie,t[45]=ae):ae=t[45];let oe;t[46]!==A||t[47]!==R||t[48]!==M||t[49]!==W||t[50]!==y||t[51]!==f||t[52]!==I||t[53]!==v?(oe=f?(0,c.jsx)(x,{dateEnd:A,dateEndPreview:R,dateStart:M,isRange:y,month:I+1,onChange:W,onChangeEndPreview:K,title:v?w(I+1):void 0}):null,t[46]=A,t[47]=R,t[48]=M,t[49]=W,t[50]=y,t[51]=f,t[52]=I,t[53]=v,t[54]=oe):oe=t[54];let se;t[55]!==ae||t[56]!==oe?(se=(0,c.jsxs)(`div`,{className:`${S}-month-container`,children:[ae,oe]}),t[55]=ae,t[56]=oe,t[57]=se):se=t[57];let ce;return t[58]!==$||t[59]!==se||t[60]!==J?(ce=(0,c.jsxs)(s.Fragment,{children:[q,(0,c.jsxs)(`div`,{className:J,children:[$,se]})]}),t[58]=$,t[59]=se,t[60]=J,t[61]=ce):ce=t[61],ce}var D={argTypes:{defaultDateEnd:{control:`date`,description:`(optional) default end date of current date range`},defaultDateStart:{control:`date`,description:`(optional) default start date of current date range`}},component:E,parameters:{docs:{description:{component:"`DatePicker` is a React component that renders a calendar-based date picker UI with support for date ranges."}}},tags:[`autodocs`],title:`UIKit/Controls/DatePicker/DatePicker`};const O={args:{className:`default-date-picker-story`}},k={args:{className:`two-up-date-picker-story`,isTwoUp:!0}};var A={className:`date-range-date-picker-story`,defaultDateEnd:new Date(2024,0,6).toISOString(),defaultDateStart:new Date(2023,11,25).toISOString(),isTwoUp:!0};const j={args:A,render(){let[e,t]=(0,s.useState)(0),[n,r]=(0,s.useState)({start:A.defaultDateStart,end:A.defaultDateEnd});return(0,c.jsxs)(`div`,{children:[(0,c.jsx)(E,{className:A.className,isTwoUp:A.isTwoUp,defaultDateEnd:n.end,defaultDateStart:n.start,onChange:e=>{r({start:e.dateStart,end:e.dateEnd??``})}},e),(0,c.jsxs)(`div`,{style:{marginTop:`16px`},children:[(0,c.jsx)(`button`,{onClick:()=>{t(e=>e+1),r({start:A.defaultDateStart,end:A.defaultDateEnd})},style:{padding:`8px 16px`,border:`1px solid #ccc`,borderRadius:`4px`,cursor:`pointer`,backgroundColor:`#f5f5f5`},children:`Reset to Christmas-Epiphany Range`}),n.start&&(0,c.jsxs)(`p`,{style:{marginTop:`8px`},children:[`Selected: `,new Date(n.start).toLocaleDateString(),n.end&&` - ${new Date(n.end).toLocaleDateString()}`]})]})]})}},M={args:{className:`no-future-two-up-date-picker-story`,isTwoUp:!0,monthLimitLast:m(new Date)}},N={args:{className:`no-future-two-up-date-picker-story`,defaultDateEnd:new Date(1234,0,1).toISOString(),defaultDateStart:new Date(1233,0,1).toISOString(),isTwoUp:!0,showEndInitially:!0}};var P={className:`booking-date-picker-story`,isRange:!0,isTwoUp:!0,useMonthAbbreviations:!0};const F={args:P,render(){let[e,t]=(0,s.useState)(0),[n,r]=(0,s.useState)(``),[i,a]=(0,s.useState)(``),o=n&&i,l=m(new Date),u=l+12,d=()=>{t(e=>e+1),r(``),a(``)};return(0,c.jsxs)(`div`,{className:`booking-date-picker`,children:[(0,c.jsx)(`h3`,{children:`Select Your Stay`}),(0,c.jsx)(E,{...P,monthLimitFirst:l,monthLimitLast:u,onChange:({dateStart:e,dateEnd:t})=>{r(e),a(t??``)},defaultDateStart:n,defaultDateEnd:i},e),(0,c.jsx)(`div`,{style:{marginTop:`16px`},children:(0,c.jsx)(`button`,{onClick:d,style:{padding:`8px 16px`,border:`1px solid #dc3545`,borderRadius:`4px`,cursor:`pointer`,backgroundColor:`#fff`,color:`#dc3545`,marginRight:`8px`},children:`Clear Dates`})}),o?(0,c.jsxs)(`div`,{className:`booking-summary`,style:{marginTop:`16px`,padding:`16px`,border:`1px solid #e1e5e9`,borderRadius:`8px`,backgroundColor:`#f8f9fa`},children:[(0,c.jsxs)(`p`,{children:[(0,c.jsx)(`strong`,{children:`Check-in:`}),` `,new Date(n).toLocaleDateString()]}),(0,c.jsxs)(`p`,{children:[(0,c.jsx)(`strong`,{children:`Check-out:`}),` `,new Date(i).toLocaleDateString()]}),(0,c.jsxs)(`p`,{children:[(0,c.jsx)(`strong`,{children:`Duration:`}),` `,(()=>{let e=new Date(n).getTime(),t=new Date(i).getTime()-e,r=Math.ceil(t/(1e3*60*60*24));return Math.max(0,r)})(),` `,`nights`]})]}):null]})},parameters:{docs:{description:{story:`A complete booking system example with date range selection, month limits, and booking summary display.`}}}};var I={className:`event-scheduler-story`};const L={args:I,render(){let[e,t]=(0,s.useState)(0),[n,r]=(0,s.useState)(``),[i,a]=(0,s.useState)(!1),o=m(new Date);return(0,c.jsxs)(`div`,{className:`event-scheduler`,children:[(0,c.jsxs)(`div`,{style:{marginBottom:`16px`},children:[(0,c.jsx)(`label`,{htmlFor:`event-date`,style:{display:`block`,marginBottom:`8px`,fontWeight:500},children:`Event Date:`}),(0,c.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,c.jsx)(`input`,{id:`event-date`,type:`text`,value:n?new Date(n).toLocaleDateString():``,onClick:()=>a(!0),placeholder:`Click to select date`,readOnly:!0,style:{padding:`8px 12px`,border:`2px solid #e1e5e9`,borderRadius:`6px`,cursor:`pointer`,width:`200px`}}),n&&(0,c.jsx)(`button`,{onClick:()=>{t(e=>e+1),r(``),a(!1)},style:{padding:`6px 12px`,border:`1px solid #dc3545`,borderRadius:`4px`,cursor:`pointer`,backgroundColor:`#fff`,color:`#dc3545`,fontSize:`12px`},children:`Clear`})]})]}),i?(0,c.jsx)(`div`,{style:{position:`relative`,zIndex:1e3,marginTop:`8px`},children:(0,c.jsxs)(`div`,{style:{padding:`16px`,border:`1px solid #e1e5e9`,borderRadius:`8px`,backgroundColor:`white`,boxShadow:`0 4px 6px rgba(0, 0, 0, 0.1)`},children:[(0,c.jsx)(E,{...I,monthLimitFirst:o,onChange:({dateStart:e})=>{r(e),a(!1)},defaultDateStart:n},e),(0,c.jsx)(`button`,{onClick:()=>a(!1),style:{marginTop:`12px`,padding:`8px 16px`,border:`1px solid #ccc`,borderRadius:`4px`,cursor:`pointer`},children:`Cancel`})]})}):null]})},parameters:{docs:{description:{story:`An event scheduling interface with modal-style date picker that only allows future dates.`}}}},R={render(){let[e,t]=(0,s.useState)(0),[n,r]=(0,s.useState)(``),i=new Date,a=new Date(i.getFullYear()-120,i.getMonth(),i.getDate()),o=new Date(i.getFullYear()-13,i.getMonth(),i.getDate()),l=m(a),u=m(o),d=m(new Date(i.getFullYear()-25,i.getMonth(),i.getDate()));return(0,c.jsxs)(`div`,{className:`birthday-picker`,children:[(0,c.jsx)(`h3`,{children:`Enter Your Birthday`}),(0,c.jsx)(E,{initialMonth:d,monthLimitFirst:l,monthLimitLast:u,onChange:({dateStart:e})=>r(e),defaultDateStart:n},e),(0,c.jsx)(`div`,{style:{marginTop:`16px`},children:n&&(0,c.jsx)(`button`,{onClick:()=>{t(e=>e+1),r(``)},style:{padding:`6px 12px`,border:`1px solid #dc3545`,borderRadius:`4px`,cursor:`pointer`,backgroundColor:`#fff`,color:`#dc3545`,fontSize:`14px`,marginBottom:`12px`},children:`Clear Birthday`})}),n?(0,c.jsx)(`p`,{style:{marginTop:`8px`,padding:`12px`,backgroundColor:`#e3f2fd`,borderRadius:`6px`},children:(0,c.jsxs)(`strong`,{children:[`You are`,` `,Math.floor((i.getTime()-new Date(n).getTime())/(1e3*60*60*24*365.25)),` `,`years old`]})}):null]})},parameters:{docs:{description:{story:`A birthday picker with reasonable age limits (13-120 years) and automatic age calculation.`}}}},z={render(){let[e,t]=(0,s.useState)(0),[n,r]=(0,s.useState)(``),[i,a]=(0,s.useState)(`single`);return(0,c.jsxs)(`div`,{className:`flexible-date-picker`,children:[(0,c.jsxs)(`div`,{style:{marginBottom:`16px`},children:[(0,c.jsxs)(`label`,{style:{marginRight:`16px`},children:[(0,c.jsx)(`input`,{type:`radio`,checked:i===`single`,onChange:()=>a(`single`),style:{marginRight:`4px`}}),`Single Month`]}),(0,c.jsxs)(`label`,{style:{marginRight:`16px`},children:[(0,c.jsx)(`input`,{type:`radio`,checked:i===`double`,onChange:()=>a(`double`),style:{marginRight:`4px`}}),`Two Months`]}),n&&(0,c.jsx)(`button`,{onClick:()=>{t(e=>e+1),r(``)},style:{padding:`4px 8px`,border:`1px solid #dc3545`,borderRadius:`4px`,cursor:`pointer`,backgroundColor:`#fff`,color:`#dc3545`,fontSize:`12px`},children:`Clear`})]}),(0,c.jsx)(E,{isTwoUp:i===`double`,useMonthAbbreviations:i===`double`,onChange:({dateStart:e})=>r(e),defaultDateStart:n},e),n?(0,c.jsxs)(`div`,{style:{marginTop:`16px`,padding:`12px`,border:`1px solid #e1e5e9`,borderRadius:`6px`},children:[(0,c.jsx)(`strong`,{children:`Selected:`}),` `,new Date(n).toLocaleDateString(),(0,c.jsx)(`br`,{}),(0,c.jsx)(`strong`,{children:`Day of week:`}),` `,new Date(n).toLocaleDateString(`en`,{weekday:`long`})]}):null]})},parameters:{docs:{description:{story:`A flexible date picker that can switch between single and two-month views dynamically.`}}}};O.parameters={...O.parameters,docs:{...O.parameters?.docs,source:{originalSource:`{
|
|
221
|
+
args: {
|
|
222
|
+
className: 'default-date-picker-story'
|
|
223
|
+
}
|
|
224
|
+
}`,...O.parameters?.docs?.source}}},k.parameters={...k.parameters,docs:{...k.parameters?.docs,source:{originalSource:`{
|
|
225
|
+
args: {
|
|
226
|
+
className: 'two-up-date-picker-story',
|
|
227
|
+
isTwoUp: true
|
|
228
|
+
}
|
|
229
|
+
}`,...k.parameters?.docs?.source}}},j.parameters={...j.parameters,docs:{...j.parameters?.docs,source:{originalSource:`{
|
|
230
|
+
args: DATE_RANGE_NAVIDAD_DIA_DE_LOS_REYES_PROPS,
|
|
231
|
+
render() {
|
|
232
|
+
const [resetKey, setResetKey] = useState(0);
|
|
233
|
+
const [selectedDates, setSelectedDates] = useState({
|
|
234
|
+
start: DATE_RANGE_NAVIDAD_DIA_DE_LOS_REYES_PROPS.defaultDateStart,
|
|
235
|
+
end: DATE_RANGE_NAVIDAD_DIA_DE_LOS_REYES_PROPS.defaultDateEnd
|
|
236
|
+
});
|
|
237
|
+
const handleReset = () => {
|
|
238
|
+
setResetKey(prev => prev + 1);
|
|
239
|
+
setSelectedDates({
|
|
240
|
+
start: DATE_RANGE_NAVIDAD_DIA_DE_LOS_REYES_PROPS.defaultDateStart,
|
|
241
|
+
end: DATE_RANGE_NAVIDAD_DIA_DE_LOS_REYES_PROPS.defaultDateEnd
|
|
242
|
+
});
|
|
243
|
+
};
|
|
244
|
+
return <div>
|
|
245
|
+
<DatePicker key={resetKey} className={DATE_RANGE_NAVIDAD_DIA_DE_LOS_REYES_PROPS.className} isTwoUp={DATE_RANGE_NAVIDAD_DIA_DE_LOS_REYES_PROPS.isTwoUp} defaultDateEnd={selectedDates.end} defaultDateStart={selectedDates.start} onChange={update => {
|
|
246
|
+
setSelectedDates({
|
|
247
|
+
start: update.dateStart,
|
|
248
|
+
end: update.dateEnd ?? ''
|
|
249
|
+
});
|
|
250
|
+
}} />
|
|
251
|
+
<div style={{
|
|
252
|
+
marginTop: '16px'
|
|
253
|
+
}}>
|
|
254
|
+
<button onClick={handleReset} style={{
|
|
255
|
+
padding: '8px 16px',
|
|
256
|
+
border: '1px solid #ccc',
|
|
257
|
+
borderRadius: '4px',
|
|
258
|
+
cursor: 'pointer',
|
|
259
|
+
backgroundColor: '#f5f5f5'
|
|
260
|
+
}}>
|
|
261
|
+
Reset to Christmas-Epiphany Range
|
|
262
|
+
</button>
|
|
263
|
+
{selectedDates.start && <p style={{
|
|
264
|
+
marginTop: '8px'
|
|
265
|
+
}}>
|
|
266
|
+
Selected: {new Date(selectedDates.start).toLocaleDateString()}
|
|
267
|
+
{selectedDates.end && \` - \${new Date(selectedDates.end).toLocaleDateString()}\`}
|
|
268
|
+
</p>}
|
|
269
|
+
</div>
|
|
270
|
+
</div>;
|
|
271
|
+
}
|
|
272
|
+
}`,...j.parameters?.docs?.source}}},M.parameters={...M.parameters,docs:{...M.parameters?.docs,source:{originalSource:`{
|
|
273
|
+
args: {
|
|
274
|
+
className: 'no-future-two-up-date-picker-story',
|
|
275
|
+
isTwoUp: true,
|
|
276
|
+
monthLimitLast: getMonthFromDate(new Date())
|
|
277
|
+
}
|
|
278
|
+
}`,...M.parameters?.docs?.source}}},N.parameters={...N.parameters,docs:{...N.parameters?.docs,source:{originalSource:`{
|
|
279
|
+
args: {
|
|
280
|
+
className: 'no-future-two-up-date-picker-story',
|
|
281
|
+
defaultDateEnd: new Date(1234, 0, 1).toISOString(),
|
|
282
|
+
defaultDateStart: new Date(1233, 0, 1).toISOString(),
|
|
283
|
+
isTwoUp: true,
|
|
284
|
+
showEndInitially: true
|
|
285
|
+
}
|
|
286
|
+
}`,...N.parameters?.docs?.source}}},F.parameters={...F.parameters,docs:{...F.parameters?.docs,source:{originalSource:`{
|
|
287
|
+
args: BOOKING_PROPS,
|
|
288
|
+
render() {
|
|
289
|
+
const [resetKey, setResetKey] = useState(0);
|
|
290
|
+
const [checkIn, setCheckIn] = useState('');
|
|
291
|
+
const [checkOut, setCheckOut] = useState('');
|
|
292
|
+
const isValid = checkIn && checkOut;
|
|
293
|
+
|
|
294
|
+
// Limit to next 12 months only
|
|
295
|
+
const today = new Date();
|
|
296
|
+
const monthLimitFirst = getMonthFromDate(today);
|
|
297
|
+
const monthLimitLast = monthLimitFirst + 12;
|
|
298
|
+
const handleClearDates = () => {
|
|
299
|
+
setResetKey(prev => prev + 1);
|
|
300
|
+
setCheckIn('');
|
|
301
|
+
setCheckOut('');
|
|
302
|
+
};
|
|
303
|
+
return <div className="booking-date-picker">
|
|
304
|
+
<h3>Select Your Stay</h3>
|
|
305
|
+
<DatePicker key={resetKey} {...BOOKING_PROPS} monthLimitFirst={monthLimitFirst} monthLimitLast={monthLimitLast} onChange={({
|
|
306
|
+
dateStart,
|
|
307
|
+
dateEnd
|
|
308
|
+
}) => {
|
|
309
|
+
setCheckIn(dateStart);
|
|
310
|
+
setCheckOut(dateEnd ?? '');
|
|
311
|
+
}} defaultDateStart={checkIn} defaultDateEnd={checkOut} />
|
|
312
|
+
|
|
313
|
+
<div style={{
|
|
314
|
+
marginTop: '16px'
|
|
315
|
+
}}>
|
|
316
|
+
<button onClick={handleClearDates} style={{
|
|
317
|
+
padding: '8px 16px',
|
|
318
|
+
border: '1px solid #dc3545',
|
|
319
|
+
borderRadius: '4px',
|
|
320
|
+
cursor: 'pointer',
|
|
321
|
+
backgroundColor: '#fff',
|
|
322
|
+
color: '#dc3545',
|
|
323
|
+
marginRight: '8px'
|
|
324
|
+
}}>
|
|
325
|
+
Clear Dates
|
|
326
|
+
</button>
|
|
327
|
+
</div>
|
|
328
|
+
|
|
329
|
+
{isValid ? <div className="booking-summary" style={{
|
|
330
|
+
marginTop: '16px',
|
|
331
|
+
padding: '16px',
|
|
332
|
+
border: '1px solid #e1e5e9',
|
|
333
|
+
borderRadius: '8px',
|
|
334
|
+
backgroundColor: '#f8f9fa'
|
|
335
|
+
}}>
|
|
336
|
+
<p>
|
|
337
|
+
<strong>Check-in:</strong>{' '}
|
|
338
|
+
{new Date(checkIn).toLocaleDateString()}
|
|
339
|
+
</p>
|
|
340
|
+
<p>
|
|
341
|
+
<strong>Check-out:</strong>{' '}
|
|
342
|
+
{new Date(checkOut).toLocaleDateString()}
|
|
343
|
+
</p>
|
|
344
|
+
<p>
|
|
345
|
+
<strong>Duration:</strong>{' '}
|
|
346
|
+
{(() => {
|
|
347
|
+
const checkInTime = new Date(checkIn).getTime();
|
|
348
|
+
const checkOutTime = new Date(checkOut).getTime();
|
|
349
|
+
const diffTime = checkOutTime - checkInTime;
|
|
350
|
+
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
|
351
|
+
return Math.max(0, diffDays);
|
|
352
|
+
})()}{' '}
|
|
353
|
+
nights
|
|
354
|
+
</p>
|
|
355
|
+
</div> : null}
|
|
356
|
+
</div>;
|
|
357
|
+
},
|
|
358
|
+
parameters: {
|
|
359
|
+
docs: {
|
|
360
|
+
description: {
|
|
361
|
+
story: 'A complete booking system example with date range selection, month limits, and booking summary display.'
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}`,...F.parameters?.docs?.source}}},L.parameters={...L.parameters,docs:{...L.parameters?.docs,source:{originalSource:`{
|
|
366
|
+
args: EVENT_PROPS,
|
|
367
|
+
render() {
|
|
368
|
+
const [resetKey, setResetKey] = useState(0);
|
|
369
|
+
const [eventDate, setEventDate] = useState('');
|
|
370
|
+
const [showPicker, setShowPicker] = useState(false);
|
|
371
|
+
|
|
372
|
+
// Only allow future dates
|
|
373
|
+
const monthLimitFirst = getMonthFromDate(new Date());
|
|
374
|
+
const handleClearDate = () => {
|
|
375
|
+
setResetKey(prev => prev + 1);
|
|
376
|
+
setEventDate('');
|
|
377
|
+
setShowPicker(false);
|
|
378
|
+
};
|
|
379
|
+
return <div className="event-scheduler">
|
|
380
|
+
<div style={{
|
|
381
|
+
marginBottom: '16px'
|
|
382
|
+
}}>
|
|
383
|
+
<label htmlFor="event-date" style={{
|
|
384
|
+
display: 'block',
|
|
385
|
+
marginBottom: '8px',
|
|
386
|
+
fontWeight: 500
|
|
387
|
+
}}>
|
|
388
|
+
Event Date:
|
|
389
|
+
</label>
|
|
390
|
+
<div style={{
|
|
391
|
+
display: 'flex',
|
|
392
|
+
alignItems: 'center',
|
|
393
|
+
gap: '8px'
|
|
394
|
+
}}>
|
|
395
|
+
<input id="event-date" type="text" value={eventDate ? new Date(eventDate).toLocaleDateString() : ''} onClick={() => setShowPicker(true)} placeholder="Click to select date" readOnly style={{
|
|
396
|
+
padding: '8px 12px',
|
|
397
|
+
border: '2px solid #e1e5e9',
|
|
398
|
+
borderRadius: '6px',
|
|
399
|
+
cursor: 'pointer',
|
|
400
|
+
width: '200px'
|
|
401
|
+
}} />
|
|
402
|
+
{eventDate && <button onClick={handleClearDate} style={{
|
|
403
|
+
padding: '6px 12px',
|
|
404
|
+
border: '1px solid #dc3545',
|
|
405
|
+
borderRadius: '4px',
|
|
406
|
+
cursor: 'pointer',
|
|
407
|
+
backgroundColor: '#fff',
|
|
408
|
+
color: '#dc3545',
|
|
409
|
+
fontSize: '12px'
|
|
410
|
+
}}>
|
|
411
|
+
Clear
|
|
412
|
+
</button>}
|
|
413
|
+
</div>
|
|
414
|
+
</div>
|
|
415
|
+
|
|
416
|
+
{showPicker ? <div style={{
|
|
417
|
+
position: 'relative',
|
|
418
|
+
zIndex: 1000,
|
|
419
|
+
marginTop: '8px'
|
|
420
|
+
}}>
|
|
421
|
+
<div style={{
|
|
422
|
+
padding: '16px',
|
|
423
|
+
border: '1px solid #e1e5e9',
|
|
424
|
+
borderRadius: '8px',
|
|
425
|
+
backgroundColor: 'white',
|
|
426
|
+
boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)'
|
|
427
|
+
}}>
|
|
428
|
+
<DatePicker key={resetKey} {...EVENT_PROPS} monthLimitFirst={monthLimitFirst} onChange={({
|
|
429
|
+
dateStart
|
|
430
|
+
}) => {
|
|
431
|
+
setEventDate(dateStart);
|
|
432
|
+
setShowPicker(false);
|
|
433
|
+
}} defaultDateStart={eventDate} />
|
|
434
|
+
<button onClick={() => setShowPicker(false)} style={{
|
|
435
|
+
marginTop: '12px',
|
|
436
|
+
padding: '8px 16px',
|
|
437
|
+
border: '1px solid #ccc',
|
|
438
|
+
borderRadius: '4px',
|
|
439
|
+
cursor: 'pointer'
|
|
440
|
+
}}>
|
|
441
|
+
Cancel
|
|
442
|
+
</button>
|
|
443
|
+
</div>
|
|
444
|
+
</div> : null}
|
|
445
|
+
</div>;
|
|
446
|
+
},
|
|
447
|
+
parameters: {
|
|
448
|
+
docs: {
|
|
449
|
+
description: {
|
|
450
|
+
story: 'An event scheduling interface with modal-style date picker that only allows future dates.'
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
}`,...L.parameters?.docs?.source}}},R.parameters={...R.parameters,docs:{...R.parameters?.docs,source:{originalSource:`{
|
|
455
|
+
render() {
|
|
456
|
+
const [resetKey, setResetKey] = useState(0);
|
|
457
|
+
const [birthday, setBirthday] = useState('');
|
|
458
|
+
|
|
459
|
+
// Reasonable age limits: 13 to 120 years ago
|
|
460
|
+
const today = new Date();
|
|
461
|
+
const maxAge = new Date(today.getFullYear() - 120, today.getMonth(), today.getDate());
|
|
462
|
+
const minAge = new Date(today.getFullYear() - 13, today.getMonth(), today.getDate());
|
|
463
|
+
const monthLimitFirst = getMonthFromDate(maxAge);
|
|
464
|
+
const monthLimitLast = getMonthFromDate(minAge);
|
|
465
|
+
|
|
466
|
+
// Start showing calendar at a reasonable age (25 years ago)
|
|
467
|
+
const defaultMonth = getMonthFromDate(new Date(today.getFullYear() - 25, today.getMonth(), today.getDate()));
|
|
468
|
+
const handleClear = () => {
|
|
469
|
+
setResetKey(prev => prev + 1);
|
|
470
|
+
setBirthday('');
|
|
471
|
+
};
|
|
472
|
+
return <div className="birthday-picker">
|
|
473
|
+
<h3>Enter Your Birthday</h3>
|
|
474
|
+
<DatePicker key={resetKey} initialMonth={defaultMonth} monthLimitFirst={monthLimitFirst} monthLimitLast={monthLimitLast} onChange={({
|
|
475
|
+
dateStart
|
|
476
|
+
}) => setBirthday(dateStart)} defaultDateStart={birthday} />
|
|
477
|
+
|
|
478
|
+
<div style={{
|
|
479
|
+
marginTop: '16px'
|
|
480
|
+
}}>
|
|
481
|
+
{birthday && <button onClick={handleClear} style={{
|
|
482
|
+
padding: '6px 12px',
|
|
483
|
+
border: '1px solid #dc3545',
|
|
484
|
+
borderRadius: '4px',
|
|
485
|
+
cursor: 'pointer',
|
|
486
|
+
backgroundColor: '#fff',
|
|
487
|
+
color: '#dc3545',
|
|
488
|
+
fontSize: '14px',
|
|
489
|
+
marginBottom: '12px'
|
|
490
|
+
}}>
|
|
491
|
+
Clear Birthday
|
|
492
|
+
</button>}
|
|
493
|
+
</div>
|
|
494
|
+
|
|
495
|
+
{birthday ? <p style={{
|
|
496
|
+
marginTop: '8px',
|
|
497
|
+
padding: '12px',
|
|
498
|
+
backgroundColor: '#e3f2fd',
|
|
499
|
+
borderRadius: '6px'
|
|
500
|
+
}}>
|
|
501
|
+
<strong>
|
|
502
|
+
You are{' '}
|
|
503
|
+
{Math.floor((today.getTime() - new Date(birthday).getTime()) / (1000 * 60 * 60 * 24 * 365.25))}{' '}
|
|
504
|
+
years old
|
|
505
|
+
</strong>
|
|
506
|
+
</p> : null}
|
|
507
|
+
</div>;
|
|
508
|
+
},
|
|
509
|
+
parameters: {
|
|
510
|
+
docs: {
|
|
511
|
+
description: {
|
|
512
|
+
story: 'A birthday picker with reasonable age limits (13-120 years) and automatic age calculation.'
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
}`,...R.parameters?.docs?.source}}},z.parameters={...z.parameters,docs:{...z.parameters?.docs,source:{originalSource:`{
|
|
517
|
+
render() {
|
|
518
|
+
const [resetKey, setResetKey] = useState(0);
|
|
519
|
+
const [selectedDate, setSelectedDate] = useState('');
|
|
520
|
+
const [viewMode, setViewMode] = useState<'single' | 'double'>('single');
|
|
521
|
+
const handleClear = () => {
|
|
522
|
+
setResetKey(prev => prev + 1);
|
|
523
|
+
setSelectedDate('');
|
|
524
|
+
};
|
|
525
|
+
return <div className="flexible-date-picker">
|
|
526
|
+
<div style={{
|
|
527
|
+
marginBottom: '16px'
|
|
528
|
+
}}>
|
|
529
|
+
<label style={{
|
|
530
|
+
marginRight: '16px'
|
|
531
|
+
}}>
|
|
532
|
+
<input type="radio" checked={viewMode === 'single'} onChange={() => setViewMode('single')} style={{
|
|
533
|
+
marginRight: '4px'
|
|
534
|
+
}} />
|
|
535
|
+
Single Month
|
|
536
|
+
</label>
|
|
537
|
+
<label style={{
|
|
538
|
+
marginRight: '16px'
|
|
539
|
+
}}>
|
|
540
|
+
<input type="radio" checked={viewMode === 'double'} onChange={() => setViewMode('double')} style={{
|
|
541
|
+
marginRight: '4px'
|
|
542
|
+
}} />
|
|
543
|
+
Two Months
|
|
544
|
+
</label>
|
|
545
|
+
{selectedDate && <button onClick={handleClear} style={{
|
|
546
|
+
padding: '4px 8px',
|
|
547
|
+
border: '1px solid #dc3545',
|
|
548
|
+
borderRadius: '4px',
|
|
549
|
+
cursor: 'pointer',
|
|
550
|
+
backgroundColor: '#fff',
|
|
551
|
+
color: '#dc3545',
|
|
552
|
+
fontSize: '12px'
|
|
553
|
+
}}>
|
|
554
|
+
Clear
|
|
555
|
+
</button>}
|
|
556
|
+
</div>
|
|
557
|
+
|
|
558
|
+
<DatePicker key={resetKey} isTwoUp={viewMode === 'double'} useMonthAbbreviations={viewMode === 'double'} onChange={({
|
|
559
|
+
dateStart
|
|
560
|
+
}) => setSelectedDate(dateStart)} defaultDateStart={selectedDate} />
|
|
561
|
+
|
|
562
|
+
{selectedDate ? <div style={{
|
|
563
|
+
marginTop: '16px',
|
|
564
|
+
padding: '12px',
|
|
565
|
+
border: '1px solid #e1e5e9',
|
|
566
|
+
borderRadius: '6px'
|
|
567
|
+
}}>
|
|
568
|
+
<strong>Selected:</strong>{' '}
|
|
569
|
+
{new Date(selectedDate).toLocaleDateString()}
|
|
570
|
+
<br />
|
|
571
|
+
<strong>Day of week:</strong>{' '}
|
|
572
|
+
{new Date(selectedDate).toLocaleDateString('en', {
|
|
573
|
+
weekday: 'long'
|
|
574
|
+
})}
|
|
575
|
+
</div> : null}
|
|
576
|
+
</div>;
|
|
577
|
+
},
|
|
578
|
+
parameters: {
|
|
579
|
+
docs: {
|
|
580
|
+
description: {
|
|
581
|
+
story: 'A flexible date picker that can switch between single and two-month views dynamically.'
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
}`,...z.parameters?.docs?.source}}};const B=[`DefaultDatePicker`,`TwoUpDatePicker`,`DateRangeNavidadDiaDeLosReyesDatePicker`,`NoFutureTwoUpDatePicker`,`ShowEndInitiallyDatePicker`,`BookingSystemDateRange`,`EventScheduler`,`BirthdayPicker`,`FlexibleDatePicker`];export{R as BirthdayPicker,F as BookingSystemDateRange,j as DateRangeNavidadDiaDeLosReyesDatePicker,O as DefaultDatePicker,L as EventScheduler,z as FlexibleDatePicker,M as NoFutureTwoUpDatePicker,N as ShowEndInitiallyDatePicker,k as TwoUpDatePicker,B as __namedExportsOrder,D as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./react-DcwytXSz.js","./lib-WXkUx4TK.js","./iframe-BsC6HWDY.js","./preload-helper-Bhb7V-Yo.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Bhb7V-Yo.js";import{E as t,r as n}from"./iframe-BsC6HWDY.js";import"./react-dom-CFVoDXTy.js";import"./jsx-runtime-CZwoFFIL.js";import"./components-CuDS54ZU.js";import{t as r}from"./client-Bvdml6v2.js";import{i,n as a,r as o,t as s}from"./blocks-C4xgyV4X.js";var c=t(n(),1),l=t(r(),1),u=new Map;function d(){return globalThis.IS_REACT_ACT_ENVIRONMENT}var f=({callback:e,children:t})=>{let n=c.useRef();return c.useLayoutEffect(()=>{n.current!==e&&(n.current=e,e())},[e]),t};typeof Promise.withResolvers>`u`&&(Promise.withResolvers=()=>{let e=null,t=null;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}});var p=async(e,t,n)=>{let r=await h(t,n);if(d()){r.render(e);return}let{promise:i,resolve:a}=Promise.withResolvers();return r.render(c.createElement(f,{callback:a},e)),i},m=(e,t)=>{let n=u.get(e);n&&(n.unmount(),u.delete(e))},h=async(e,t)=>{let n=u.get(e);return n||(n=l.createRoot(e,t),u.set(e,n)),n},g={code:a,a:s,...i},_=class extends c.Component{constructor(){super(...arguments),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e){let{showException:t}=this.props;t(e)}render(){let{hasError:e}=this.state,{children:t}=this.props;return e?null:c.createElement(c.Fragment,null,t)}},v=class{constructor(){this.render=async(t,n,r)=>{let i={...g,...n?.components},a=o;return new Promise((o,s)=>{e(async()=>{let{MDXProvider:e}=await import(`./react-DcwytXSz.js`);return{MDXProvider:e}},__vite__mapDeps([0,1,2,3]),import.meta.url).then(({MDXProvider:e})=>p(c.createElement(_,{showException:s,key:Math.random()},c.createElement(e,{components:i},c.createElement(a,{context:t,docsParameter:n}))),r)).then(()=>o())})},this.unmount=e=>{m(e)}}};export{v as DocsRenderer};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#storybook-root,.sb-story>div{flex-direction:column;display:flex}#storybook-root:has(.mk-header){height:1000px}#storybook-root:has(.position-right.uktdropdown){justify-content:center;align-items:center;width:calc(200vw - 270px);height:calc(200vh - 110px)}.sb-story:has(.position-right.uktdropdown){width:100%;height:350px;overflow:auto}.sb-story>div:has(.position-right.uktdropdown){justify-content:center;align-items:center;width:calc(200% - 190px);height:670px}.sb-story{min-height:180px}.uktdropdown input{box-sizing:border-box;width:110px}.uktdropdown-body ul{text-align:left;margin:0;padding-left:0;list-style-type:none}.uktdropdown-body li{white-space:nowrap;margin:4px 0;padding:4px 8px}.uktdropdown-body .heading{color:#aaa;text-transform:uppercase;letter-spacing:1px;margin:.75rem 0 .5rem;font-size:12px;font-weight:700}.uktdropdown-body:first-child{margin-top:.25rem}.no-trigger-text .uktdropdown-trigger{vertical-align:top;width:27px;height:21px;margin-left:3px;position:relative}.no-trigger-text .uktdropdown-trigger:before{content:"";background-color:#666;border-radius:2px 0 0 3px;width:9px;height:2px;display:block;position:absolute;top:10px;left:4px;transform:rotate(38deg)}.no-trigger-text .uktdropdown-trigger:after{content:"";background-color:#666;border-radius:0 2px 2px 0;width:9px;height:2px;display:block;position:absolute;top:10px;right:4px;transform:rotate(-38deg)}.font-weight{font-size:13px}.font-weight .item-title{color:#ababab}.font-weight [data-ukt-active] .item-title{color:#fff}:is(.searchable-with-label,.searchable-and-allow-create) input,:is(.searchable-with-label,.searchable-and-allow-create) .uktdropdown-body{width:85px}:is(.searchable-with-label,.searchable-and-allow-create) .uktdropdown-body{left:revert;right:anchor(right)}.css-value-input-trigger .uktdropdown-body{width:110px;left:revert;right:anchor(right);margin-right:14px}.dropdown-without-items .uktdropdown-body{width:300px}.textarea-trigger .uktdropdown-body{width:400px;font-size:13px}.checkboxes .uktdropdown-body{width:150px}.checkboxes input[type=checkbox]{width:auto}.overlapping-dropdown .uktdropdown-body{width:250px;min-height:200px;margin-top:-22px;margin-left:-10px}.out-of-bounds-example input{width:150px}.out-of-bounds-example .uktdropdown-body{width:250px}.out-of-bounds-example.no-direction-change.uktdropdown{margin-top:220px;position:relative}.out-of-bounds-example.no-direction-change .uktdropdown-trigger{width:255px}.out-of-bounds-example.no-direction-change.uktdropdown .uktdropdown-body{top:100%}#anchor--uikit-controls-dropdown--out-of-bounds-with-no-direction-change .innerZoomElementWrapper>*{height:200px;overflow:auto}#anchor--uikit-controls-dropdown--out-of-bounds-with-no-direction-change .sb-story{height:230px}:root{--ui-clr-1000:#fff;--ui-clr-900:#f8f8f8;--ui-clr-800:#f0f0f0;--ui-clr-700:#e2e2e2;--ui-clr-600:#d0d0d0;--ui-clr-500:#afafaf;--ui-clr-400:#909090;--ui-clr-300:#575757;--ui-clr-200:#313131;--ui-clr-100:#1a1a1a}.mk-header{box-sizing:border-box;z-index:2;flex-direction:row;grid-template-columns:1fr 1fr 1fr;justify-content:space-between;align-items:start;height:200px;padding:25px;font-family:system-ui;display:grid;position:fixed;inset:0 0 auto}.mk-header+h1{margin:70px 15px;font-family:system-ui}.mk-header a:link,.mk-header a:active,.mk-header a:hover,.mk-header a:visited{color:var(--ui-clr-200);text-decoration:underline}.mk-header p.mk{margin-bottom:1.5em;font-size:max(14px,min(2vw,18px));font-weight:300;line-height:1.7}.mk-header h1.mk{color:var(--ui-clr-100);margin-bottom:0;font-size:2.1875rem;font-weight:500;line-height:1.1}@media screen and (width<=768px){.mk-header h1.mk{line-height:1.1}}.mk-header h2.mk{letter-spacing:1px;text-transform:uppercase;max-width:14ch;margin-bottom:.25em;font-size:max(27px,min(2vw,35px));line-height:1.2}@media screen and (width<=550px){.mk-header h2.mk{margin-bottom:12px}}.mk-header h5.mk{color:var(--ui-clr-400);margin:10px 0;font-size:12px;font-weight:400;line-height:1.4}.mk-header h5.mk.hide{opacity:0}.mk-header h6.mk{font-size:11px;font-family:var(--font-mono);text-transform:uppercase;font-weight:400}@media screen and (width<=550px){.mk-header p.blurb-message{font-weight:400}}.mk-header .mk-nav{box-sizing:border-box;align-items:center;gap:8px;display:flex}.mk-header .mk-nav.a1{justify-content:flex-start}.mk-header .mk-nav.center{justify-content:center;display:flex}@media screen and (width<=768px){.mk-header .mk-nav.center{display:none}}.mk-header .mk-nav.a2{grid-column:3/-1;justify-content:flex-end;gap:20px}.mk-header .avatar-menu .avatar-profile,.mk-header .avatar-menu .avatar-edit{background-color:#fff;background-position:50%;background-repeat:no-repeat;background-size:cover;border:1px solid #000;border-radius:50%;width:35px;height:35px}.mk-header .avatar-menu .has-avatar{color:#0000;background-color:#0000}.mk-header .avatar-menu .uktdropdown-body{box-sizing:border-box;padding:20px;bottom:auto}.mk-header .avatar-menu p{margin:.5rem 0}.mk-header .avatar-menu .avatar-edit{cursor:pointer;position:relative;overflow:hidden}.mk-header .avatar-menu .avatar-edit:hover:after{content:"EDIT";color:#fff;text-transform:uppercase;letter-spacing:1px;text-align:center;background-color:#0006;width:100%;font-size:9px;line-height:1.3;position:absolute;bottom:5px}
|