@jenesei-software/jenesei-kit-react 1.3.18 → 1.3.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/build/area-BLgNLu9A.js +19 -0
  2. package/build/area-BLgNLu9A.js.map +1 -0
  3. package/build/area-C5QUBcb-.js +26 -0
  4. package/build/area-C5QUBcb-.js.map +1 -0
  5. package/build/area-DAgP6K9K.cjs +2 -0
  6. package/build/area-DAgP6K9K.cjs.map +1 -0
  7. package/build/area-k8GR7Khj.cjs +2 -0
  8. package/build/area-k8GR7Khj.cjs.map +1 -0
  9. package/build/area-preview.cjs.js +1 -1
  10. package/build/area-preview.es.js +1 -1
  11. package/build/area-scroll.cjs.js +1 -1
  12. package/build/area-scroll.es.js +3 -2
  13. package/build/area-scroll.es.js.map +1 -1
  14. package/build/area-skeleton.cjs.js +1 -1
  15. package/build/area-skeleton.es.js +3 -2
  16. package/build/area-skeleton.es.js.map +1 -1
  17. package/build/{area-BDMDiVi1.js → area.styles-BJCDsTi3.js} +2 -24
  18. package/build/area.styles-BJCDsTi3.js.map +1 -0
  19. package/build/area.styles-CtrTLcAj.cjs +40 -0
  20. package/build/area.styles-CtrTLcAj.cjs.map +1 -0
  21. package/build/{area-CmCMHnRA.cjs → area.styles-DQBIvHdz.cjs} +3 -3
  22. package/build/area.styles-DQBIvHdz.cjs.map +1 -0
  23. package/build/{area-BWxBop5m.js → area.styles-DWqSyo49.js} +2 -17
  24. package/build/area.styles-DWqSyo49.js.map +1 -0
  25. package/build/build-info.txt +3 -3
  26. package/build/component-86oA9dYz.cjs +2 -0
  27. package/build/component-86oA9dYz.cjs.map +1 -0
  28. package/build/component-BLW4AlTi.cjs +2 -0
  29. package/build/component-BLW4AlTi.cjs.map +1 -0
  30. package/build/component-BLa80fGE.cjs +2 -0
  31. package/build/component-BLa80fGE.cjs.map +1 -0
  32. package/build/{component.styles-CwTYpBx_.js → component-BX7rFpno.js} +11 -63
  33. package/build/component-BX7rFpno.js.map +1 -0
  34. package/build/{component.styles-0apMzB81.js → component-BtgXUCiJ.js} +5 -75
  35. package/build/component-BtgXUCiJ.js.map +1 -0
  36. package/build/component-C-yqkm2n.cjs +2 -0
  37. package/build/component-C-yqkm2n.cjs.map +1 -0
  38. package/build/{component.styles-C4Bz4OTl.js → component-C56biWpi.js} +6 -16
  39. package/build/component-C56biWpi.js.map +1 -0
  40. package/build/component-CHmCK6Bc.js +10 -0
  41. package/build/component-CHmCK6Bc.js.map +1 -0
  42. package/build/component-Cp8VTqb2.js +21 -0
  43. package/build/component-Cp8VTqb2.js.map +1 -0
  44. package/build/component-Cr62wN62.js +64 -0
  45. package/build/component-Cr62wN62.js.map +1 -0
  46. package/build/component-D9Fz-_ZH.cjs +2 -0
  47. package/build/component-D9Fz-_ZH.cjs.map +1 -0
  48. package/build/{component.styles-euSUJAiA.js → component-DDVjxLvn.js} +5 -38
  49. package/build/component-DDVjxLvn.js.map +1 -0
  50. package/build/{component.styles-CHqowxsZ.js → component-DF8wYX_U.js} +3 -45
  51. package/build/component-DF8wYX_U.js.map +1 -0
  52. package/build/component-DP42Uzl2.cjs +2 -0
  53. package/build/{component-Bj7sLW9s.cjs.map → component-DP42Uzl2.cjs.map} +1 -1
  54. package/build/{component-B80It4vM.js → component-DQrnK2Bj.js} +5 -5
  55. package/build/component-DQrnK2Bj.js.map +1 -0
  56. package/build/component-DXSNBORy.cjs +2 -0
  57. package/build/component-DXSNBORy.cjs.map +1 -0
  58. package/build/component-DdSHuopV.cjs +2 -0
  59. package/build/component-DdSHuopV.cjs.map +1 -0
  60. package/build/{component.styles-KBaixm0o.js → component-DerXrx9p.js} +4 -56
  61. package/build/component-DerXrx9p.js.map +1 -0
  62. package/build/{component-CKBpm4U4.js → component-DhCe6E21.js} +2 -3
  63. package/build/{component-CKBpm4U4.js.map → component-DhCe6E21.js.map} +1 -1
  64. package/build/component-Ds6eJznV.cjs +2 -0
  65. package/build/component-Ds6eJznV.cjs.map +1 -0
  66. package/build/{component.styles-AEJ_tw7Y.js → component-DyEa0lzB.js} +4 -25
  67. package/build/component-DyEa0lzB.js.map +1 -0
  68. package/build/component-GqA6sCHI.cjs +2 -0
  69. package/build/component-GqA6sCHI.cjs.map +1 -0
  70. package/build/component-IlhRGJHX.cjs +2 -0
  71. package/build/component-IlhRGJHX.cjs.map +1 -0
  72. package/build/component-KwYlKatx.cjs +2 -0
  73. package/build/component-KwYlKatx.cjs.map +1 -0
  74. package/build/component-accordion.cjs.js +1 -1
  75. package/build/component-accordion.es.js +7 -6
  76. package/build/component-accordion.es.js.map +1 -1
  77. package/build/component-button-group.cjs.js +1 -1
  78. package/build/component-button-group.es.js +4 -3
  79. package/build/component-button-group.es.js.map +1 -1
  80. package/build/component-button.cjs.js +1 -1
  81. package/build/component-button.es.js +2 -2
  82. package/build/component-checkbox-group.cjs.js +1 -1
  83. package/build/component-checkbox-group.es.js +8 -7
  84. package/build/component-checkbox-group.es.js.map +1 -1
  85. package/build/component-checkbox.cjs.js +1 -1
  86. package/build/component-checkbox.es.js +6 -5
  87. package/build/component-checkbox.es.js.map +1 -1
  88. package/build/component-date-picker.cjs.js +1 -1
  89. package/build/component-date-picker.es.js +15 -14
  90. package/build/component-date-picker.es.js.map +1 -1
  91. package/build/component-icon.cjs.js +1 -1
  92. package/build/component-icon.es.js +5 -5
  93. package/build/component-image-button.cjs.js +1 -1
  94. package/build/component-image-button.es.js +1 -1
  95. package/build/component-image-select.cjs.js +1 -1
  96. package/build/component-image-select.es.js +8 -7
  97. package/build/component-image-select.es.js.map +1 -1
  98. package/build/component-image-slider.cjs.js +1 -1
  99. package/build/component-image-slider.es.js +5 -4
  100. package/build/component-image-slider.es.js.map +1 -1
  101. package/build/component-image.cjs.js +1 -1
  102. package/build/component-image.es.js +3 -2
  103. package/build/component-image.es.js.map +1 -1
  104. package/build/component-input-otp.cjs.js +1 -1
  105. package/build/component-input-otp.es.js +5 -4
  106. package/build/component-input-otp.es.js.map +1 -1
  107. package/build/component-input.cjs.js +1 -1
  108. package/build/component-input.es.js +15 -15
  109. package/build/component-map.cjs.js +1 -1
  110. package/build/component-map.es.js +13 -12
  111. package/build/component-map.es.js.map +1 -1
  112. package/build/component-pagination.cjs.js +1 -1
  113. package/build/component-pagination.es.js +1 -1
  114. package/build/component-range.cjs.js +1 -1
  115. package/build/component-range.es.js +5 -4
  116. package/build/component-range.es.js.map +1 -1
  117. package/build/component-select.cjs.js +1 -1
  118. package/build/component-select.es.js +18 -18
  119. package/build/component-separator.cjs.js +1 -1
  120. package/build/component-separator.es.js +3 -2
  121. package/build/component-separator.es.js.map +1 -1
  122. package/build/component-textarea.cjs.js +1 -1
  123. package/build/component-textarea.es.js +5 -5
  124. package/build/component-toggle.cjs.js +1 -1
  125. package/build/component-toggle.es.js +4 -3
  126. package/build/component-toggle.es.js.map +1 -1
  127. package/build/component-tooltip.cjs.js +1 -1
  128. package/build/component-tooltip.es.js +9 -9
  129. package/build/component-typography.cjs.js +1 -1
  130. package/build/component-typography.es.js +6 -6
  131. package/build/component.components-B6FC2-ox.cjs +2 -0
  132. package/build/component.components-B6FC2-ox.cjs.map +1 -0
  133. package/build/{component.components-C9TkSqTp.js → component.components-DlJ9rcRL.js} +8 -43
  134. package/build/component.components-DlJ9rcRL.js.map +1 -0
  135. package/build/{component.constants-C8li5_tq.js → component.constants-B-ZUZwuJ.js} +2 -2
  136. package/build/{component.constants-C8li5_tq.js.map → component.constants-B-ZUZwuJ.js.map} +1 -1
  137. package/build/component.constants-DiCmqOri.cjs +2 -0
  138. package/build/{component.constants-B-ZMDpFv.cjs.map → component.constants-DiCmqOri.cjs.map} +1 -1
  139. package/build/{component.constants-CnMky3Ym.js → component.constants-DwSQ9oe4.js} +9 -34
  140. package/build/component.constants-DwSQ9oe4.js.map +1 -0
  141. package/build/component.constants-hDTTnj7k.cjs +2 -0
  142. package/build/component.constants-hDTTnj7k.cjs.map +1 -0
  143. package/build/component.styles-CD6ZzRrk.cjs +14 -0
  144. package/build/component.styles-CD6ZzRrk.cjs.map +1 -0
  145. package/build/component.styles-CNn9SMc9.cjs +10 -0
  146. package/build/component.styles-CNn9SMc9.cjs.map +1 -0
  147. package/build/{component.styles-BnJjm_ES.js → component.styles-SZ5VuhNG.js} +2 -19
  148. package/build/component.styles-SZ5VuhNG.js.map +1 -0
  149. package/build/component.styles-eaocqYbA.js +16 -0
  150. package/build/component.styles-eaocqYbA.js.map +1 -0
  151. package/build/component.types-CYtUJDuN.cjs +2 -0
  152. package/build/component.types-CYtUJDuN.cjs.map +1 -0
  153. package/build/{component.types-BoTWSvjd.js → component.types-DFRLIpd6.js} +4 -213
  154. package/build/component.types-DFRLIpd6.js.map +1 -0
  155. package/build/consts.cjs.js +1 -1
  156. package/build/consts.cjs.js.map +1 -1
  157. package/build/consts.d.ts +18 -16
  158. package/build/consts.es.js +28 -26
  159. package/build/consts.es.js.map +1 -1
  160. package/build/{context.functions-CQ9GerPb.js → context-B1DS5U6M.js} +3 -33
  161. package/build/{context.functions-CQ9GerPb.js.map → context-B1DS5U6M.js.map} +1 -1
  162. package/build/{context.functions-BD15C8_y.js → context-BxU5kwVR.js} +3 -33
  163. package/build/context-BxU5kwVR.js.map +1 -0
  164. package/build/{context.hooks-BzMTkJNv.js → context-CU_dgoUl.js} +3 -11
  165. package/build/context-CU_dgoUl.js.map +1 -0
  166. package/build/context-Cr9zS5ai.cjs +2 -0
  167. package/build/context-Cr9zS5ai.cjs.map +1 -0
  168. package/build/context-_4lcMeym.cjs +2 -0
  169. package/build/context-_4lcMeym.cjs.map +1 -0
  170. package/build/context-app.cjs.js +1 -1
  171. package/build/context-app.es.js +18 -17
  172. package/build/context-app.es.js.map +1 -1
  173. package/build/context-cookie.cjs.js +1 -1
  174. package/build/context-cookie.es.js +2 -1
  175. package/build/context-cookie.es.js.map +1 -1
  176. package/build/context-dialog.cjs.js +1 -1
  177. package/build/context-dialog.es.js +13 -12
  178. package/build/context-dialog.es.js.map +1 -1
  179. package/build/context-geolocation.cjs.js +1 -1
  180. package/build/context-geolocation.es.js +2 -1
  181. package/build/context-geolocation.es.js.map +1 -1
  182. package/build/context-local-storage.cjs.js +1 -1
  183. package/build/context-local-storage.es.js +2 -1
  184. package/build/context-local-storage.es.js.map +1 -1
  185. package/build/context-q6vhN54o.cjs +2 -0
  186. package/build/{context.functions-ohI9H54j.cjs.map → context-q6vhN54o.cjs.map} +1 -1
  187. package/build/context-sonner.cjs.js +1 -1
  188. package/build/context-sonner.es.js +18 -17
  189. package/build/context-sonner.es.js.map +1 -1
  190. package/build/context.constants-C5Unln0I.js +8433 -0
  191. package/build/context.constants-C5Unln0I.js.map +1 -0
  192. package/build/context.constants-CRxCVRKK.cjs +32 -0
  193. package/build/context.constants-CRxCVRKK.cjs.map +1 -0
  194. package/build/{context.constants-BCpaUfFz.js → context.constants-CaDW-QGJ.js} +13 -51
  195. package/build/context.constants-CaDW-QGJ.js.map +1 -0
  196. package/build/context.constants-DSfxf3ST.cjs +1692 -0
  197. package/build/context.constants-DSfxf3ST.cjs.map +1 -0
  198. package/build/context.functions-54_96FIi.js +36 -0
  199. package/build/context.functions-54_96FIi.js.map +1 -0
  200. package/build/context.functions-Bk5xMi0w.cjs +2 -0
  201. package/build/context.functions-Bk5xMi0w.cjs.map +1 -0
  202. package/build/context.functions-BoRkDnCa.cjs +2 -0
  203. package/build/context.functions-BoRkDnCa.cjs.map +1 -0
  204. package/build/context.functions-X5gRRpKi.js +35 -0
  205. package/build/context.functions-X5gRRpKi.js.map +1 -0
  206. package/build/context.hooks-B2vWSael.js +13 -0
  207. package/build/context.hooks-B2vWSael.js.map +1 -0
  208. package/build/context.hooks-BfmhHvrX.cjs +2 -0
  209. package/build/context.hooks-BfmhHvrX.cjs.map +1 -0
  210. package/build/context.hooks-Bj9FlQEC.js +44 -0
  211. package/build/context.hooks-Bj9FlQEC.js.map +1 -0
  212. package/build/context.hooks-ByjHt-DO.cjs +2 -0
  213. package/build/context.hooks-ByjHt-DO.cjs.map +1 -0
  214. package/build/context.hooks-CKO6mDS-.js +13 -0
  215. package/build/context.hooks-CKO6mDS-.js.map +1 -0
  216. package/build/context.hooks-OTo7Znss.cjs +2 -0
  217. package/build/context.hooks-OTo7Znss.cjs.map +1 -0
  218. package/build/context.hooks-PU-CST61.cjs +2 -0
  219. package/build/context.hooks-PU-CST61.cjs.map +1 -0
  220. package/build/context.hooks-uRILnzQk.js +13 -0
  221. package/build/context.hooks-uRILnzQk.js.map +1 -0
  222. package/build/index.cjs.js +1 -1
  223. package/build/index.d.ts +19 -17
  224. package/build/index.es.js +290 -289
  225. package/build/style-error.cjs.js +1 -1
  226. package/build/style-error.es.js +4 -4
  227. package/build/style-theme.cjs.js +1 -1
  228. package/build/style-theme.es.js +13 -13
  229. package/build/types.d.ts +3 -3
  230. package/build/{use-CnGHh8iL.js → use-7TZR9yNq.js} +8 -9
  231. package/build/{use-CnGHh8iL.js.map → use-7TZR9yNq.js.map} +1 -1
  232. package/build/{use-BLwltPMc.cjs → use-DNJlP5ji.cjs} +3 -3
  233. package/build/{use-BLwltPMc.cjs.map → use-DNJlP5ji.cjs.map} +1 -1
  234. package/package.json +1 -1
  235. package/build/area-BDMDiVi1.js.map +0 -1
  236. package/build/area-BWxBop5m.js.map +0 -1
  237. package/build/area-Bopd6mWj.cjs +0 -2
  238. package/build/area-Bopd6mWj.cjs.map +0 -1
  239. package/build/area-CmCMHnRA.cjs.map +0 -1
  240. package/build/area-Cvp3eBBo.js +0 -114
  241. package/build/area-Cvp3eBBo.js.map +0 -1
  242. package/build/area-DqLK4RX5.cjs +0 -40
  243. package/build/area-DqLK4RX5.cjs.map +0 -1
  244. package/build/component-5o60aes-.cjs +0 -52
  245. package/build/component-5o60aes-.cjs.map +0 -1
  246. package/build/component-B80It4vM.js.map +0 -1
  247. package/build/component-BfppCwz9.cjs +0 -88
  248. package/build/component-BfppCwz9.cjs.map +0 -1
  249. package/build/component-Bj7sLW9s.cjs +0 -2
  250. package/build/component-BxetIWe6.cjs +0 -245
  251. package/build/component-BxetIWe6.cjs.map +0 -1
  252. package/build/component-ClnOIQaN.js +0 -66
  253. package/build/component-ClnOIQaN.js.map +0 -1
  254. package/build/component-b4tMFkpE.cjs +0 -2
  255. package/build/component-b4tMFkpE.cjs.map +0 -1
  256. package/build/component-eqTj4VVc.js +0 -728
  257. package/build/component-eqTj4VVc.js.map +0 -1
  258. package/build/component-jPLOz52P.js +0 -186
  259. package/build/component-jPLOz52P.js.map +0 -1
  260. package/build/component.components-BZX00SGG.cjs +0 -16
  261. package/build/component.components-BZX00SGG.cjs.map +0 -1
  262. package/build/component.components-C9TkSqTp.js.map +0 -1
  263. package/build/component.constants-B-ZMDpFv.cjs +0 -2
  264. package/build/component.constants-CnMky3Ym.js.map +0 -1
  265. package/build/component.constants-Dg6JcWmd.cjs +0 -22
  266. package/build/component.constants-Dg6JcWmd.cjs.map +0 -1
  267. package/build/component.styles-0apMzB81.js.map +0 -1
  268. package/build/component.styles-AEJ_tw7Y.js.map +0 -1
  269. package/build/component.styles-BO8xaSCQ.cjs +0 -65
  270. package/build/component.styles-BO8xaSCQ.cjs.map +0 -1
  271. package/build/component.styles-BVQQkX5c.cjs +0 -57
  272. package/build/component.styles-BVQQkX5c.cjs.map +0 -1
  273. package/build/component.styles-BYG4iVCR.cjs +0 -10
  274. package/build/component.styles-BYG4iVCR.cjs.map +0 -1
  275. package/build/component.styles-BZ9QLlOU.cjs +0 -39
  276. package/build/component.styles-BZ9QLlOU.cjs.map +0 -1
  277. package/build/component.styles-BnJjm_ES.js.map +0 -1
  278. package/build/component.styles-BviHtzJH.cjs +0 -22
  279. package/build/component.styles-BviHtzJH.cjs.map +0 -1
  280. package/build/component.styles-C4Bz4OTl.js.map +0 -1
  281. package/build/component.styles-C8ONgWei.cjs +0 -47
  282. package/build/component.styles-C8ONgWei.cjs.map +0 -1
  283. package/build/component.styles-CHqowxsZ.js.map +0 -1
  284. package/build/component.styles-CLn52hJD.cjs +0 -14
  285. package/build/component.styles-CLn52hJD.cjs.map +0 -1
  286. package/build/component.styles-CXyyc0xg.cjs +0 -32
  287. package/build/component.styles-CXyyc0xg.cjs.map +0 -1
  288. package/build/component.styles-CtZeOnGH.js +0 -120
  289. package/build/component.styles-CtZeOnGH.js.map +0 -1
  290. package/build/component.styles-CwTYpBx_.js.map +0 -1
  291. package/build/component.styles-CxlbZwr4.cjs +0 -225
  292. package/build/component.styles-CxlbZwr4.cjs.map +0 -1
  293. package/build/component.styles-CyCy2ymw.cjs +0 -21
  294. package/build/component.styles-CyCy2ymw.cjs.map +0 -1
  295. package/build/component.styles-DWDGLfbF.js +0 -137
  296. package/build/component.styles-DWDGLfbF.js.map +0 -1
  297. package/build/component.styles-DqJURuJl.js +0 -1370
  298. package/build/component.styles-DqJURuJl.js.map +0 -1
  299. package/build/component.styles-FMHm5NHm.cjs +0 -99
  300. package/build/component.styles-FMHm5NHm.cjs.map +0 -1
  301. package/build/component.styles-Hx-MJSWX.cjs +0 -137
  302. package/build/component.styles-Hx-MJSWX.cjs.map +0 -1
  303. package/build/component.styles-KBaixm0o.js.map +0 -1
  304. package/build/component.styles-SZTM0cRW.js +0 -1046
  305. package/build/component.styles-SZTM0cRW.js.map +0 -1
  306. package/build/component.styles-_keFf_Qj.cjs +0 -13
  307. package/build/component.styles-_keFf_Qj.cjs.map +0 -1
  308. package/build/component.styles-cMafDDpP.js +0 -233
  309. package/build/component.styles-cMafDDpP.js.map +0 -1
  310. package/build/component.styles-euSUJAiA.js.map +0 -1
  311. package/build/component.types-BoTWSvjd.js.map +0 -1
  312. package/build/component.types-WiRcl02d.cjs +0 -176
  313. package/build/component.types-WiRcl02d.cjs.map +0 -1
  314. package/build/context.constants-BCpaUfFz.js.map +0 -1
  315. package/build/context.constants-BLQ_1jZI.cjs +0 -32
  316. package/build/context.constants-BLQ_1jZI.cjs.map +0 -1
  317. package/build/context.constants-Cio0nsYA.js +0 -393
  318. package/build/context.constants-Cio0nsYA.js.map +0 -1
  319. package/build/context.constants-y9s5VGN2.cjs +0 -99
  320. package/build/context.constants-y9s5VGN2.cjs.map +0 -1
  321. package/build/context.functions-80N-5MqM.cjs +0 -2
  322. package/build/context.functions-80N-5MqM.cjs.map +0 -1
  323. package/build/context.functions-BD15C8_y.js.map +0 -1
  324. package/build/context.functions-ohI9H54j.cjs +0 -2
  325. package/build/context.hooks-BIIK-2HN.js +0 -527
  326. package/build/context.hooks-BIIK-2HN.js.map +0 -1
  327. package/build/context.hooks-BzMTkJNv.js.map +0 -1
  328. package/build/context.hooks-DNnrgKb0.cjs +0 -72
  329. package/build/context.hooks-DNnrgKb0.cjs.map +0 -1
  330. package/build/context.hooks-u408Pxw8.cjs +0 -2
  331. package/build/context.hooks-u408Pxw8.cjs.map +0 -1
  332. package/build/floating-ui.react-Byi6bLb1.js +0 -1818
  333. package/build/floating-ui.react-Byi6bLb1.js.map +0 -1
  334. package/build/floating-ui.react-DZzvtpim.cjs +0 -2
  335. package/build/floating-ui.react-DZzvtpim.cjs.map +0 -1
  336. package/build/style-BzxSHZDV.js +0 -61
  337. package/build/style-BzxSHZDV.js.map +0 -1
  338. package/build/style-D8DUzG0C.cjs +0 -32
  339. package/build/style-D8DUzG0C.cjs.map +0 -1
  340. package/build/theme.global-BzunMIsv.js +0 -1318
  341. package/build/theme.global-BzunMIsv.js.map +0 -1
  342. package/build/theme.global-D67h5YeA.cjs +0 -173
  343. package/build/theme.global-D67h5YeA.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.types-BoTWSvjd.js","sources":["../src/components/date-picker/component.tsx","../src/components/date-picker/component.styles.ts","../src/components/date-picker/component.types.ts"],"sourcesContent":["import { Button } from '@local/components/button';\nimport { Ripple } from '@local/components/ripple';\nimport { SelectMonth, SelectYear } from '@local/components/select';\nimport { Stack } from '@local/components/stack';\nimport { ErrorMessage } from '@local/styles/error';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport moment, { Moment } from 'moment';\nimport { Fragment, KeyboardEvent, RefObject, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { Popover, usePopover } from '../popover';\nimport { Typography } from '../typography';\nimport {\n DateDayProps,\n DateDropdownDay,\n DateDropdownDayOfWeek,\n DateDropdownDays,\n DateDropdownList,\n DateInput,\n DateInputButton,\n DateInputWrapper,\n DatePickerMode,\n DatePickerProps,\n DatePickerVariant,\n DateWrapper,\n WeekItem,\n} from '.';\n\nfunction countSevens(number: number) {\n const divisor = 7;\n const count = Math.floor(number / divisor);\n const remainder = number % divisor;\n\n return remainder > 0 ? count + 1 : count;\n}\n\nexport const DatePicker = (props: DatePickerProps) => {\n const { onChange } = props;\n const theme = useTheme();\n\n const [valueMoment, setValueMoment] = useState<null | Moment>(null);\n const [dateDefaultMoment, setDateDefaultMoment] = useState<Moment>(moment(props.dateDefault).utc());\n\n const [input, setInput] = useState<Record<DatePickerVariant, number | null>>({\n [DatePickerVariant.DD]: null,\n [DatePickerVariant.MM]: null,\n [DatePickerVariant.YYYY]: null,\n });\n\n const isHasInput = useMemo(() => {\n return (\n input[DatePickerVariant.DD] !== null ||\n input[DatePickerVariant.MM] !== null ||\n input[DatePickerVariant.YYYY] !== null\n );\n }, [input]);\n const onClearInput = useCallback(() => {\n setInput({\n [DatePickerVariant.DD]: null,\n [DatePickerVariant.MM]: null,\n [DatePickerVariant.YYYY]: null,\n });\n }, []);\n const [activeSegment, setActiveSegment] = useState<DatePickerVariant | null>(null);\n const [isError, setIsError] = useState(false);\n\n const mode: DatePickerMode = useMemo(() => {\n if (!props.mode || props.mode.length === 0) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт\n }\n\n const hasDuplicates = new Set(props.mode).size !== props.mode.length;\n\n if (hasDuplicates) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт при дублировании\n }\n\n return props.mode;\n }, [props.mode]);\n\n const getNextSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex < mode.length - 1 ? mode[currentIndex + 1] : mode[0];\n },\n [mode],\n );\n\n const getPrevSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex > 0 ? mode[currentIndex - 1] : mode[mode.length - 1];\n },\n [mode],\n );\n\n const dataDate = useMemo(() => {\n const result = {\n MM: {\n nextSegment: getNextSegment(DatePickerVariant.MM),\n preSegment: getPrevSegment(DatePickerVariant.MM),\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.MM)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.MM)),\n isLast: mode[mode.length - 1] === DatePickerVariant.MM,\n isFirst: mode[0] === DatePickerVariant.MM,\n type: DatePickerVariant.MM,\n value: input.MM,\n setValue: (value: number | null) => setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.MM]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.MM),\n placeholder: props.locale.inputs.month,\n },\n DD: {\n nextSegment: getNextSegment(DatePickerVariant.DD),\n preSegment: getPrevSegment(DatePickerVariant.DD),\n isLast: mode[mode.length - 1] === DatePickerVariant.DD,\n isFirst: mode[0] === DatePickerVariant.DD,\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.DD)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.DD)),\n type: DatePickerVariant.DD,\n value: input.DD,\n setValue: (value: number | null) => setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.DD]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.DD),\n placeholder: props.locale.inputs.day,\n },\n YYYY: {\n nextSegment: getNextSegment(DatePickerVariant.YYYY),\n preSegment: getPrevSegment(DatePickerVariant.YYYY),\n isLast: mode[mode.length - 1] === DatePickerVariant.YYYY,\n isFirst: mode[0] === DatePickerVariant.YYYY,\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.YYYY)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.YYYY)),\n type: DatePickerVariant.YYYY,\n value: input.YYYY,\n setValue: (value: number | null) =>\n setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.YYYY]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.YYYY),\n placeholder: props.locale.inputs.year,\n },\n };\n const resultSort = mode\n .map((e) => {\n if (e === DatePickerVariant.DD) return result.DD;\n if (e === DatePickerVariant.MM) return result.MM;\n if (e === DatePickerVariant.YYYY) return result.YYYY;\n return null;\n })\n .filter((e) => e !== null);\n return { sort: resultSort, default: result };\n }, [\n props.locale.inputs.day,\n props.locale.inputs.month,\n props.locale.inputs.year,\n getNextSegment,\n getPrevSegment,\n mode,\n input.DD,\n input.MM,\n input.YYYY,\n ]);\n const daysInWeek = useMemo(() => {\n const weekOrder: WeekItem['value'][] = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];\n\n return weekOrder.map((key, index) => {\n const found = props.locale.weeks.find((w) => w.value === key);\n return {\n index,\n label: found?.localeShort ?? key.toUpperCase(),\n };\n });\n }, [props.locale.weeks]);\n const daysInMonth: DateDayProps[] = useMemo(() => {\n const today = moment.utc();\n const startOfMonth = (valueMoment ?? dateDefaultMoment).clone().startOf('month');\n const endOfMonth = (valueMoment ?? dateDefaultMoment).clone().endOf('month');\n const days = [];\n\n const dateMin = props.dateMin ? moment.utc(props.dateMin) : null;\n const dateMax = props.dateMax ? moment.utc(props.dateMax) : null;\n\n const daysToAddBefore = startOfMonth.isoWeekday() - 1;\n if (daysToAddBefore > 0) {\n for (let i = daysToAddBefore; i > 0; i--) {\n const day = startOfMonth.clone().subtract(i, 'days');\n days.push({\n value: day.valueOf(),\n labelString: day.format('dd'),\n labelNumber: day.date(),\n dayOfWeek: day.isoWeekday(),\n isWeekend: day.isoWeekday() === 6 || day.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: day.isSame(today, 'day'),\n isCurrentMonth: false,\n isDisabled: day.isBefore(dateMin, 'day') || day.isAfter(dateMax, 'day'),\n });\n }\n }\n\n const currentDate = startOfMonth.clone();\n while (currentDate <= endOfMonth) {\n days.push({\n value: currentDate.valueOf(),\n labelString: currentDate.format('dd'),\n labelNumber: currentDate.date(),\n dayOfWeek: currentDate.isoWeekday(),\n isWeekend: currentDate.isoWeekday() === 6 || currentDate.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: currentDate.isSame(today, 'day'),\n isCurrentMonth: true,\n isDisabled: currentDate.isBefore(dateMin, 'day') || currentDate.isAfter(dateMax, 'day'),\n });\n currentDate.add(1, 'day');\n }\n\n const daysToAddAfter = 7 - endOfMonth.isoWeekday();\n if (daysToAddAfter > 0) {\n for (let i = 1; i <= daysToAddAfter; i++) {\n const day = endOfMonth.clone().add(i, 'days').startOf('day');\n days.push({\n value: day.valueOf(),\n labelString: day.format('dd'),\n labelNumber: day.date(),\n dayOfWeek: day.isoWeekday(),\n isWeekend: day.isoWeekday() === 6 || day.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: day.isSame(today, 'day'),\n isCurrentMonth: false,\n isDisabled: day.isBefore(dateMin, 'day') || day.isAfter(dateMax, 'day'),\n });\n }\n }\n\n days.sort((a, b) => a.value - b.value);\n return days;\n }, [valueMoment, dateDefaultMoment, props.dateMax, props.dateMin]);\n\n const rows = useMemo(() => countSevens(daysInMonth.length) + 1, [daysInMonth]);\n const height = useMemo(\n () => 40 + rows * 28 + (rows - 1) * 6 + KEY_SIZE_DATA[props.size].padding * 2,\n [props.size, rows],\n );\n\n const sizeRadius = useMemo(() => KEY_SIZE_DATA[props.size].radius, [props.size]);\n const sizePadding = useMemo(() => KEY_SIZE_DATA[props.size].padding, [props.size]);\n\n const isHasValue = useMemo(() => {\n return valueMoment !== null;\n }, [valueMoment]);\n const isBlockNextMonth = useMemo(() => {\n const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month').startOf('month');\n const isBeforeEndDate = props.dateMax ? nextMonth.isAfter(moment.utc(props.dateMax), 'month') : false;\n return isBeforeEndDate;\n }, [valueMoment, props.dateMax, dateDefaultMoment]);\n const isBlockPrevMonth = useMemo(() => {\n const prevMonth = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month').startOf('month');\n const isAfterStartDate = props.dateMin ? prevMonth.isBefore(moment.utc(props.dateMin), 'month') : false;\n return isAfterStartDate;\n }, [valueMoment, props.dateMin, dateDefaultMoment]);\n\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n const refPrevValue = useRef('');\n const refSelectMonth = useRef<HTMLElement>(null);\n const refSelectYear = useRef<HTMLElement>(null);\n const refHiddenInput = useRef<HTMLInputElement>(null);\n\n const onFocusPopover = useCallback(() => {\n props.onFocus?.();\n }, [props.onFocus]);\n const onBlurPopover = useCallback(() => {\n props.onBlur?.();\n }, [props.onBlur]);\n const onBlurReference = useCallback(() => {\n setActiveSegment(null);\n }, []);\n const { isOpen, refReference, refFloating, floatingStyles, close, toggle } = usePopover({\n placement: 'bottom-start',\n offset: sizePadding,\n mode: 'independence',\n isClickOutside: true,\n refsExcludeClickOutside: [refSelectMonth, refSelectYear],\n isDisabled: props?.isDisabled || props?.isReadOnly,\n onFocus: onFocusPopover,\n onBlur: onBlurPopover,\n onBlurReference: onBlurReference,\n });\n\n const isShowPlaceholder = useMemo(() => {\n return !!(!isInputFocused && !isHasValue && props.labelPlaceholder && !isOpen && !isHasInput && !activeSegment);\n }, [isInputFocused, isHasValue, isOpen, props.labelPlaceholder, isHasInput, activeSegment]);\n\n const onChangeDate = useCallback(\n (timestamp: number) => {\n const momentNewDate = moment(timestamp).utc();\n if (valueMoment?.isSame(momentNewDate, 'day')) return;\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n\n setInput({\n [DatePickerVariant.DD]: momentNewDate.clone().date(),\n [DatePickerVariant.MM]: momentNewDate.clone().month() + 1,\n [DatePickerVariant.YYYY]: momentNewDate.clone().year(),\n });\n },\n [valueMoment, onChange],\n );\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n const key = e.key;\n\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Tab', 'Enter'];\n\n const isDigit = /^\\d$/.test(key);\n const isAllowed = isDigit || allowedKeys.includes(key) || e.ctrlKey || e.metaKey;\n\n if (!isAllowed) {\n e.preventDefault();\n return;\n }\n\n if (activeSegment && dataDate.default[activeSegment]) {\n if (isDigit) {\n const digit = key;\n\n handleDigitKey(digit, activeSegment, input, dataDate);\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Tab') {\n if (!dataDate.default[activeSegment].isLast) {\n e.preventDefault();\n dataDate.default[activeSegment].onNext();\n } else {\n refHiddenInput?.current?.blur();\n }\n }\n if (key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Backspace' || key === 'Delete') {\n if (activeSegment === DatePickerVariant.DD) {\n if (input.DD !== null) {\n const current = input.DD.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n if (input.MM !== null) {\n const current = input.MM.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n if (input.YYYY !== null) {\n const current = input.YYYY.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n dataDate.default[activeSegment].onPrev();\n }\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n dataDate.default[activeSegment].onNext();\n }\n }\n },\n [activeSegment, input, dataDate.default, dataDate],\n );\n const onNextMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month');\n onChangeDate(newDate.valueOf());\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf());\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n useEffect(() => {\n setDateDefaultMoment(moment(props.dateDefault).utc());\n }, [props.dateDefault]);\n\n useEffect(() => {\n setValueMoment(props.value || props.defaultValue ? moment(props.value ?? props.defaultValue).utc() : null);\n if (props.value) {\n setInput({\n [DatePickerVariant.DD]: moment(props.value).utc().date(),\n [DatePickerVariant.MM]: moment(props.value).utc().month() + 1,\n [DatePickerVariant.YYYY]: moment(props.value).utc().year(),\n });\n }\n }, [props.value, props.defaultValue]);\n\n const getValidateInput = useCallback(\n (\n input: Record<DatePickerVariant, number | null>,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n ) => {\n const day = input.DD ?? NaN;\n const month = input.MM ?? NaN;\n const year = input.YYYY ?? NaN;\n const isHasInput =\n input[DatePickerVariant.DD] !== null ||\n input[DatePickerVariant.MM] !== null ||\n input[DatePickerVariant.YYYY] !== null;\n if (!Number.isNaN(day) && !Number.isNaN(month) && !Number.isNaN(year)) {\n const m = moment.utc(`${day}.${month}.${year}`, 'D.M.YYYY', true).startOf('day');\n if (m.isValid()) {\n onSuccess?.(m.valueOf());\n } else {\n onFailure?.();\n }\n } else {\n onNan?.(isHasInput);\n }\n },\n [],\n );\n\n useEffect(() => {\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [getValidateInput, onChangeDate, onChange, input]);\n\n useEffect(() => {\n if (!isOpen && !isInputFocused && isHasInput && !activeSegment)\n getValidateInput(\n input,\n () => {},\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n );\n }, [getValidateInput, onClearInput, input, isOpen, isInputFocused, onChange, isHasInput, activeSegment]);\n\n useEffect(() => {\n if (activeSegment) {\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment]);\n return (\n <>\n <DateWrapper\n $size={props.size}\n $genre={props.genre}\n $sx={props.sx}\n $isDisabled={props?.isDisabled}\n $isMinWidth={props?.isMinWidth}\n $radius={sizeRadius}\n $parentListHeight={height}\n tabIndex={-1}\n >\n <DateInputWrapper\n ref={refReference as RefObject<HTMLDivElement | null>}\n $genre={props.genre}\n $size={props.size}\n $isShowPlaceholder={isShowPlaceholder}\n $isDisabled={props?.isDisabled}\n $isReadOnly={props?.isReadOnly}\n $isDisabledOutline={props?.isDisabledOutline}\n $isOutlineBoxShadow={props?.isOutlineBoxShadow}\n tabIndex={-1}\n $error={\n isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error\n }\n $isOpen={isOpen || !!activeSegment}\n onClick={() => {\n if (!activeSegment && !props?.isReadOnly) setActiveSegment(DatePickerVariant.DD);\n }}\n >\n <input\n name={props.name}\n id={props.id}\n ref={refHiddenInput}\n type='tel'\n inputMode='numeric'\n tabIndex={0}\n disabled={props?.isDisabled || props?.isReadOnly}\n style={{\n position: 'absolute',\n left: '-100dvw',\n top: 0,\n // left: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={handleKeyDown}\n onChange={(e) => {\n const value = e.target.value;\n const prevValue = refPrevValue.current;\n\n const newChar = value.length > prevValue.length ? value.slice(-1) : null;\n\n refPrevValue.current = value;\n\n if (newChar && /^\\d$/.test(newChar)) {\n handleKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n handleKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n // if (newChar === '\\n') {\n // close();\n // }\n }}\n onFocus={() => {\n setIsInputFocused(true);\n if (!activeSegment) setActiveSegment(DatePickerVariant.DD);\n }}\n onBlur={() => {\n setIsInputFocused(false);\n\n if (!isOpen) {\n props.onBlur?.();\n }\n }}\n />\n {isShowPlaceholder ? (\n <Typography\n sx={{ default: { size: 16, line: 1, isNoUserSelect: true } }}\n sxStandard={(theme) => ({\n default: {\n color: theme.colors.input[props.genre].color.placeholder,\n },\n })}\n >\n {props.labelPlaceholder}\n </Typography>\n ) : (\n dataDate.sort.map((date, index) => (\n <Fragment key={date.type}>\n <DateInput\n $isHaveValue={!!date.value}\n $isActive={activeSegment === date.type}\n $genre={props.genre}\n $size={props.size}\n $font={{\n size: props.font?.size ?? 16,\n weight: props.font?.weight ?? (props.isBold ? 500 : 400),\n family: props.font?.family ?? theme.font.family,\n height: props.font?.height ?? theme.font.lineHeight,\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n if (props?.isDisabled || props?.isReadOnly) return;\n date.setActive();\n }}\n >\n {date.value != null\n ? String(date.value).padStart(date.type === DatePickerVariant.YYYY ? 1 : 2, '0')\n : date.placeholder || ''}\n </DateInput>\n {index !== dataDate.sort.length - 1 && (\n <span style={{ width: '4px', pointerEvents: 'none', textAlign: 'center' }}>.</span>\n )}\n </Fragment>\n ))\n )}\n <DateInputButton\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullSize\n isRadius\n isOnlyIcon\n icons={[{ name: 'Calendar', type: 'id' }]}\n isDisabled={props?.isDisabled || props?.isReadOnly}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setActiveSegment(null);\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggle();\n }}\n />\n </DateInputWrapper>\n </DateWrapper>\n <Popover\n sx={(theme) => ({\n default: {\n background: theme.colors.input[props.genre].background.rest,\n border: `solid 1px ${theme.colors.input[props.genre].border.rest}`,\n },\n })}\n size={props.size}\n genre={props.genre}\n isOpen={isOpen}\n isShowAlwaysOutline\n floatingStyles={floatingStyles}\n ref={refFloating}\n >\n <DateDropdownList $isInputEffect={props.isInputEffect} $genre={props.genre} $size={props.size}>\n <Stack\n sx={{\n default: {\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n }}\n >\n <Button\n type='button'\n isRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: 90,\n },\n ]}\n isWidthAsHeight\n genre={props.genre}\n size={'small'}\n onClick={() => !isBlockPrevMonth && onPrevMonth()}\n isHidden={isBlockPrevMonth}\n />\n <Stack sx={{ default: { gap: '8px' } }}>\n <SelectMonth\n monthsLocale={props.locale.months}\n genre={props.genre}\n size={'small'}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('month').utc().valueOf()}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n isShortLabel\n refFloating={refSelectMonth}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp);\n }}\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n <SelectYear\n genre={props.genre}\n size={'small'}\n refFloating={refSelectYear}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('year').utc().valueOf()}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp);\n }}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n </Stack>\n <Button\n type='button'\n onClick={() => !isBlockNextMonth && onNextMonth()}\n isWidthAsHeight\n isRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: -90,\n },\n ]}\n genre={props.genre}\n size={'small'}\n isHidden={isBlockNextMonth}\n />\n </Stack>\n <DateDropdownDays $rows={rows}>\n {daysInWeek.map((e, index) => (\n <DateDropdownDayOfWeek\n $font={{\n size: 12,\n weight: 700,\n family: props.font?.family ?? theme.font.family,\n }}\n tabIndex={-1}\n type='button'\n $isToday={false}\n $isWeekend={false}\n $genre={props.genre}\n $size={props.size}\n $row={daysInMonth[0]?.weekOfMonth - 1}\n $column={index + 1}\n key={`${e.label}-${index}`}\n >\n {e.label}\n </DateDropdownDayOfWeek>\n ))}\n {daysInMonth.map((day) => (\n <DateDropdownDay\n $font={{\n size: 12,\n weight: 700,\n family: props.font?.family ?? theme.font.family,\n }}\n type='button'\n $isDisabled={day.isDisabled}\n $isDisabledOutline={day.isDisabled ?? props.isDisabledOutline}\n $isOutlineBoxShadow={props.isOutlineBoxShadow}\n $isReadOnly={props.isReadOnly}\n $genre={props.genre}\n $size={props.size}\n $row={day?.weekOfMonth + 1}\n $column={day.dayOfWeek}\n key={day.value}\n onClick={() => {\n if (!day.isDisabled) {\n onChangeDate(day.value);\n if (props.isOnClickClose) {\n close();\n }\n }\n }}\n tabIndex={day.isDisabled ? -1 : 0}\n $isToday={day.isToday}\n $isWeekend={day.isWeekend}\n $isChoice={day.value === valueMoment?.valueOf()}\n $isCurrentMonth={day.isCurrentMonth}\n >\n {!day.isDisabled && <Ripple color={theme.colors.date[props.genre].color.rest} />}\n {day.labelNumber}\n </DateDropdownDay>\n ))}\n </DateDropdownDays>\n </DateDropdownList>\n </Popover>\n {isError || props?.error ? (\n <ErrorMessage\n {...(isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error)}\n size={props?.error?.size ?? props.size}\n font={{\n size: 12,\n weight: 400,\n family: props.font?.family ?? theme.font.family,\n }}\n />\n ) : null}\n </>\n );\n};\nfunction handleDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: Record<DatePickerVariant, number | null>,\n dataDate: { default: Record<DatePickerVariant, { setValue: (value: number) => void; onNext: () => void }> },\n) {\n const digit = key; // '0'..'9'\n const seg = activeSegment;\n const current = input[seg]?.toString() ?? ''; // Преобразуем number в string для работы\n\n // Вспомогательная проверка\n const isZero = (s: string) => s === '0';\n const toNum = (s: string) => Number(s);\n\n if (seg === DatePickerVariant.DD) {\n // Дни: максимум 31, ноль недопустим как самостоятельное значение\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n return;\n }\n\n // special-case: если было '0' и пользователь ввёл не '0' — НЕ подставляем '0' перед цифрой,\n // сохраняем single-digit и считаем ввод завершённым (переходим).\n if (current.length === 1 && isZero(current)) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed); // сохраняем число, а не строку\n dataDate.default[seg].onNext();\n return;\n }\n\n // обычный путь: добавляем цифру и решаем — перезаписать или дополнить\n const potential = current + digit;\n const potentialParsed = toNum(potential);\n\n // ИСПРАВЛЕНИЕ: если потенциальное значение больше 31, используем только новую цифру и переходим дальше\n if (potentialParsed > 31) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n dataDate.default[seg].onNext(); // Переходим к следующему сегменту\n return;\n }\n\n // Если потенциальное значение равно 0, используем только новую цифру\n const nextValue = potentialParsed === 0 ? digit : potential;\n const parsed = toNum(nextValue);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n if (nextValue.length === 2) dataDate.default[seg].onNext();\n } else if (seg === DatePickerVariant.MM) {\n // Месяцы: максимум 12, ноль недопустим как самостоятельное значение\n if (current.length >= 2) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed);\n return;\n }\n\n if (current.length === 1 && isZero(current)) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed); // сохраняем число, а не строку\n dataDate.default[seg].onNext();\n return;\n }\n\n const potential = current + digit;\n const potentialParsed = toNum(potential);\n const nextValue = potentialParsed === 0 || potentialParsed > 12 ? digit : potential;\n\n const parsed = toNum(nextValue);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed);\n if (nextValue.length === 2 || (nextValue.length === 1 && parsed > 1)) {\n dataDate.default[seg].onNext();\n }\n } else if (seg === DatePickerVariant.YYYY) {\n // Год: накапливаем до 4 цифр. Если уже 4 — начинаем заново (как раньше)\n if (current.length >= 4) {\n if (digit === '0') return;\n dataDate.default[seg].setValue(toNum(digit));\n return;\n }\n\n const nextValue = (current + digit).slice(-4);\n dataDate.default[seg].setValue(toNum(nextValue));\n }\n}\n","import { addInputIsInputEffect } from '@local/components/input';\nimport {\n addDisabled,\n addFont,\n addNiceNumber,\n addOutline,\n addRemoveOutline,\n addRemoveScrollbar,\n addTransition,\n} from '@local/styles/add';\nimport { addError } from '@local/styles/error';\nimport { addSX } from '@local/styles/sx';\nimport { KEY_SIZE_DATA } from '@local/theme/theme';\n\nimport { motion } from 'framer-motion';\nimport styled, { css } from 'styled-components';\n\nimport { Button, ButtonProps } from '../button';\nimport { DateDropdownDayProps, DateDropdownListProps, DateInputProps, DateStyledListProps, DateWrapperProps } from '.';\n\nexport const DateWrapper = styled.div<DateWrapperProps>`\n width: 100%;\n position: relative;\n height: fit-content;\n ${(props) =>\n props.$isMinWidth &&\n css`\n width: min-content;\n `}\n ${addSX};\n ${addNiceNumber};\n`;\n\nexport const DateDropdownListParent = styled(motion.div)<DateStyledListProps>`\n ${addRemoveScrollbar};\n`;\n\nexport const DateDropdownList = styled.div<DateDropdownListProps>`\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n padding-top: 6px;\n transform: translateZ(0);\n justify-content: flex-start;\n gap: 10px;\n ${addInputIsInputEffect};\n`;\n\nexport const DateDropdownDays = styled.div<{ $rows: number }>`\n display: grid;\n column-gap: normal;\n row-gap: normal;\n gap: 6px;\n grid-template-columns: repeat(7, 28px);\n grid-template-rows: repeat(${(props) => props.$rows}, 28px);\n justify-content: space-between;\n`;\n\nexport const addDateDropdownDaySize = css<DateDropdownDayProps>`\n ${(props) =>\n props.$size &&\n css`\n border-radius: ${KEY_SIZE_DATA[props.$size].radius}px;\n `};\n position: relative;\n overflow: hidden;\n isolation: isolate;\n user-select: none;\n background: ${(props) => props.theme.colors.date[props.$genre].background.rest};\n border-color: ${(props) => props.theme.colors.date[props.$genre].border.rest};\n color: ${(props) => props.theme.colors.date[props.$genre].color.rest};\n border: 1px solid transparent;\n grid-row: ${(props) => props.$row};\n grid-column: ${(props) => props.$column};\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n cursor: pointer;\n &:hover {\n ${(props) =>\n !props.$isDisabled &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.hover};\n border-color: ${props.theme.colors.date[props.$genre].border.hover};\n color: ${props.theme.colors.date[props.$genre].color.hover};\n `}\n }\n ${addTransition};\n\n ${(props) =>\n props.$isWeekend &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.weekend};\n border-color: ${props.theme.colors.date[props.$genre].border.weekend};\n color: ${props.theme.colors.date[props.$genre].color.weekend};\n `}\n ${(props) =>\n props.$isToday &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.today};\n border-color: ${props.theme.colors.date[props.$genre].border.today};\n color: ${props.theme.colors.date[props.$genre].color.today};\n `}\n ${(props) =>\n props.$isChoice &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.choice};\n border-color: ${props.theme.colors.date[props.$genre].border.choice};\n color: ${props.theme.colors.date[props.$genre].color.choice};\n `}\n ${(props) =>\n props.$isDisabled &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.weekend};\n border-color: ${props.theme.colors.date[props.$genre].border.weekend};\n color: ${props.theme.colors.date[props.$genre].color.weekend};\n opacity: 0.5;\n `}\n ${(props) =>\n !props.$isCurrentMonth &&\n css`\n opacity: 0.5;\n `}\n \n ${addFont};\n ${addOutline};\n`;\n\nexport const DateDropdownDay = styled.button<DateDropdownDayProps>`\n ${addDateDropdownDaySize}\n`;\nexport const DateDropdownDayOfWeek = styled.button<DateDropdownDayProps>`\n ${addDateDropdownDaySize}\n opacity: 1;\n background-color: transparent;\n`;\n\n/****************************************** Genre *************************************************/\nconst addDateInputGenre = css<DateInputProps>`\n background-color: ${(props) => (props.$isActive ? props.theme.palette.black10 : 'transparent')};\n ${(props) =>\n props.$isHaveValue\n ? css`\n color: ${props.theme.colors.input[props.$genre].color.rest};\n &:focus-visible {\n color: ${props.theme.colors.input[props.$genre].color.rest};\n }\n `\n : css`\n color: ${props.theme.colors.input[props.$genre].color.placeholder};\n `};\n`;\nconst addDateInputSize = css<DateInputProps>`\n border-radius: 4px;\n padding: 2px;\n min-width: 10px;\n`;\nexport const DateInput = styled.div<DateInputProps>`\n text-align: center;\n resize: none;\n overflow: hidden;\n border: 0px solid;\n background: transparent;\n margin: 0px !important;\n white-space: nowrap;\n ${addFont};\n ${addDateInputSize};\n ${addDateInputGenre};\n ${addRemoveOutline};\n`;\n\n/****************************************** Genre *************************************************/\nconst addDateInputWrapperGenre = css<DateInputProps>`\n ${(props) => css`\n background: ${props.theme.colors.input[props.$genre].background.rest};\n border-color: ${props.theme.colors.input[props.$genre].border.rest};\n color: ${props.theme.colors.input[props.$genre].color.rest};\n outline: 2px solid transparent;\n outline-offset: 1px;\n &:hover {\n background: ${props.theme.colors.input[props.$genre].background.hover};\n border-color: ${props.theme.colors.input[props.$genre].border.hover};\n color: ${props.theme.colors.input[props.$genre].color.hover};\n }\n ${\n props.$isOpen && !props.$isReadOnly && !props.$isDisabledOutline\n ? props.$isOutlineBoxShadow\n ? css`\n outline: 1px solid transparent;\n outline-offset: 0px;\n outline: 1px solid #83b7e8;\n box-shadow: 0 1px 1px rgba(24,36,51, .06), 0 0 0 .25rem rgba(6,111,209, .25);\n `\n : css`\n background: ${props.theme.colors.input[props.$genre].background.rest};\n border-color: ${props.theme.colors.input[props.$genre].border.rest};\n color: ${props.theme.colors.input[props.$genre].color.rest};\n outline: 2px solid ${(props) => props.theme.states.focus};\n `\n : null\n }\n `};\n`;\n\n/****************************************** Size *************************************************/\nexport const addDateInputWrapperSize = css<DateInputProps>`\n ${(props) => css`\n padding: ${props.$isShowPlaceholder ? `0px ${KEY_SIZE_DATA[props.$size].padding}px` : `0px ${KEY_SIZE_DATA[props.$size].padding}px 0px ${KEY_SIZE_DATA[props.$size].padding - 2}px`};\n height: ${KEY_SIZE_DATA[props.$size].height}px;\n min-height: ${KEY_SIZE_DATA[props.$size].height}px;\n max-height: ${KEY_SIZE_DATA[props.$size].height}px;\n border-radius: ${KEY_SIZE_DATA[props.$size].radius}px;\n `}\n`;\n\nexport const DateInputWrapper = styled.div<DateInputProps>`\n resize: none;\n overflow: hidden;\n width: 100%;\n border: 1px solid transparent;\n\n white-space: nowrap;\n\n display: flex;\n align-items: center;\n gap: 0px;\n\n ${addDisabled};\n ${addDateInputWrapperSize};\n ${addDateInputWrapperGenre};\n ${addTransition};\n ${addError};\n`;\n\nexport const addDateInputButtonSize = css<ButtonProps>`\n ${(props) => css`\n right:${KEY_SIZE_DATA[props.size].padding}px;\n `}\n`;\nexport const DateInputButton = styled(Button)`\n position: absolute;\n height: max-content !important;\n ${addDateInputButtonSize};\n`;\n","import { InputStandardProps, StyledInputProps, StyledInputWrapperProps } from '@local/components/input';\nimport { addFontProps, addOutlineProps, addOutlinePropsDollar } from '@local/styles/add';\nimport { addErrorProps, ErrorMessageProps } from '@local/styles/error';\nimport { addSXProps } from '@local/styles/sx';\nimport { IThemeGenreDate, IThemeSize } from '@local/theme';\nimport { AddDollarSign } from '@local/types';\n\nimport { SelectMonthProps } from '../select';\n\nexport type DatePickerMode = DatePickerVariant[];\nexport enum DatePickerVariant {\n DD = 'DD',\n MM = 'MM',\n YYYY = 'YYYY',\n}\n\nexport type CommonDatePickerProps = addErrorProps &\n addSXProps &\n addFontProps &\n addOutlineProps & {\n genre: TDateGenre;\n\n id?: string;\n\n isDisabled?: boolean;\n isBold?: boolean;\n isMinWidth?: boolean;\n\n isInputEffect?: InputStandardProps['isInputEffect'];\n\n isOnClickClose?: boolean;\n\n labelPlaceholder?: string;\n\n locale: {\n months: SelectMonthProps['monthsLocale'];\n weeks: WeekItem[];\n inputs: InputItem;\n };\n\n notValidDate?: Omit<ErrorMessageProps, 'size' | 'isError'>;\n\n mode?: DatePickerMode;\n\n name?: string;\n\n onBlur?: () => void;\n\n onChange: (timestamp: number | null) => void;\n\n onFocus?: () => void;\n\n size: IThemeSize;\n\n dateMax?: number;\n\n dateMin?: number;\n\n dateDefault: number;\n };\n\ntype ControlledValue = {\n value: number | null | undefined;\n\n defaultValue?: never;\n};\n\ntype UncontrolledValue = {\n defaultValue: number | null | undefined;\n\n value?: never;\n};\nexport type DatePickerProps = CommonDatePickerProps & (ControlledValue | UncontrolledValue);\n\nexport type TDateGenre = keyof IThemeGenreDate;\n\nexport interface DateDayProps {\n dayOfWeek: number;\n\n isCurrentMonth: boolean;\n\n isDisabled: boolean;\n\n isToday: boolean;\n\n isWeekend: boolean;\n\n labelNumber: number;\n\n labelString: string;\n\n value: number;\n\n weekOfMonth: number;\n}\n\nexport type DateWrapperProps = AddDollarSign<\n Pick<InputStandardProps, 'genre' | 'isDisabled'> & {\n parentListHeight: number;\n radius: number;\n isMinWidth?: boolean;\n }\n> &\n StyledInputWrapperProps;\n\nexport type DateInputProps = AddDollarSign<\n Pick<DatePickerProps, 'error' | 'genre' | 'size' | 'isBold' | 'isReadOnly' | 'isDisabledOutline' | 'isOutlineBoxShadow' | 'isDisabled' | 'font'> & {\n isOpen?: boolean;\n isActive?: boolean;\n isHaveValue?: boolean;\n isShowPlaceholder?: boolean;\n }\n>;\n\nexport type DateStyledOptionProps = AddDollarSign<{\n isSelectedItem?: boolean;\n isCheckboxProps?: boolean;\n}> &\n StyledInputProps;\n\nexport type DateStyledListProps = AddDollarSign<Pick<InputStandardProps, 'genre' | 'size'>>;\n\nexport type DateDropdownListProps = AddDollarSign<\n Pick<DatePickerProps, 'isInputEffect'> & Pick<DatePickerProps, 'genre' | 'size'>\n>;\n\nexport type DateDropdownDayProps = AddDollarSign<\n Pick<DatePickerProps, 'genre' | 'size' | 'font'> &\n Pick<DateDayProps, 'isToday' | 'isWeekend'> & {\n row: number;\n column: number;\n isChoice?: boolean;\n isCurrentMonth?: boolean;\n isDisabled?: boolean;\n }\n> &\n addOutlinePropsDollar;\n\nexport type MonthItem = {\n localeLong: string;\n\n localeShort: string;\n\n value:\n | 'january'\n | 'february'\n | 'march'\n | 'april'\n | 'may'\n | 'june'\n | 'july'\n | 'august'\n | 'september'\n | 'october'\n | 'november'\n | 'december';\n};\nexport type WeekItem = {\n localeLong: string;\n\n localeShort: string;\n\n value: 'mo' | 'tu' | 'we' | 'th' | 'fr' | 'sa' | 'su';\n};\nexport type InputItem = {\n day: string;\n\n month: string;\n\n year: string;\n};\n"],"names":["_a","input","isHasInput","jsxs","Fragment","jsx","theme","_b","_c","_d","parsed","props","DatePickerVariant"],"mappings":"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"}
@@ -1,176 +0,0 @@
1
- "use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./component-BfppCwz9.cjs");require("./component.styles-Dpg-__rn.cjs");const o=require("./component-6hRanOkU.cjs"),n=require("./component.styles-CxlbZwr4.cjs"),l=require("./component-GKvpOWlO.cjs"),s=require("./style-D8DUzG0C.cjs"),r=require("./theme.global-D67h5YeA.cjs"),i=require("moment"),a=require("react"),u=require("styled-components"),d=require("./component-BxetIWe6.cjs"),c=require("./component.styles-Hx-MJSWX.cjs"),p=require("./style-Df37KnoJ.cjs"),f=require("./style-fRZ6xrVp.cjs"),h=require("framer-motion");const g=u.div`
2
- width: 100%;
3
- position: relative;
4
- height: fit-content;
5
- ${e=>e.$isMinWidth&&u.css`
6
- width: min-content;
7
- `}
8
- ${f.addSX};
9
- ${p.addNiceNumber};
10
- `,m=u(h.motion.div)`
11
- ${p.addRemoveScrollbar};
12
- `,$=u.div`
13
- position: relative;
14
- display: flex;
15
- flex-direction: column;
16
- width: 100%;
17
- padding-top: 6px;
18
- transform: translateZ(0);
19
- justify-content: flex-start;
20
- gap: 10px;
21
- ${c.addInputIsInputEffect};
22
- `,x=u.div`
23
- display: grid;
24
- column-gap: normal;
25
- row-gap: normal;
26
- gap: 6px;
27
- grid-template-columns: repeat(7, 28px);
28
- grid-template-rows: repeat(${e=>e.$rows}, 28px);
29
- justify-content: space-between;
30
- `,D=u.css`
31
- ${e=>e.$size&&u.css`
32
- border-radius: ${r.KEY_SIZE_DATA[e.$size].radius}px;
33
- `};
34
- position: relative;
35
- overflow: hidden;
36
- isolation: isolate;
37
- user-select: none;
38
- background: ${e=>e.theme.colors.date[e.$genre].background.rest};
39
- border-color: ${e=>e.theme.colors.date[e.$genre].border.rest};
40
- color: ${e=>e.theme.colors.date[e.$genre].color.rest};
41
- border: 1px solid transparent;
42
- grid-row: ${e=>e.$row};
43
- grid-column: ${e=>e.$column};
44
- display: flex;
45
- align-items: center;
46
- justify-content: center;
47
- width: 100%;
48
- height: 100%;
49
- cursor: pointer;
50
- &:hover {
51
- ${e=>!e.$isDisabled&&u.css`
52
- background: ${e.theme.colors.date[e.$genre].background.hover};
53
- border-color: ${e.theme.colors.date[e.$genre].border.hover};
54
- color: ${e.theme.colors.date[e.$genre].color.hover};
55
- `}
56
- }
57
- ${p.addTransition};
58
-
59
- ${e=>e.$isWeekend&&u.css`
60
- background: ${e.theme.colors.date[e.$genre].background.weekend};
61
- border-color: ${e.theme.colors.date[e.$genre].border.weekend};
62
- color: ${e.theme.colors.date[e.$genre].color.weekend};
63
- `}
64
- ${e=>e.$isToday&&u.css`
65
- background: ${e.theme.colors.date[e.$genre].background.today};
66
- border-color: ${e.theme.colors.date[e.$genre].border.today};
67
- color: ${e.theme.colors.date[e.$genre].color.today};
68
- `}
69
- ${e=>e.$isChoice&&u.css`
70
- background: ${e.theme.colors.date[e.$genre].background.choice};
71
- border-color: ${e.theme.colors.date[e.$genre].border.choice};
72
- color: ${e.theme.colors.date[e.$genre].color.choice};
73
- `}
74
- ${e=>e.$isDisabled&&u.css`
75
- background: ${e.theme.colors.date[e.$genre].background.weekend};
76
- border-color: ${e.theme.colors.date[e.$genre].border.weekend};
77
- color: ${e.theme.colors.date[e.$genre].color.weekend};
78
- opacity: 0.5;
79
- `}
80
- ${e=>!e.$isCurrentMonth&&u.css`
81
- opacity: 0.5;
82
- `}
83
-
84
- ${p.addFont};
85
- ${p.addOutline};
86
- `,b=u.button`
87
- ${D}
88
- `,v=u.button`
89
- ${D}
90
- opacity: 1;
91
- background-color: transparent;
92
- `,Y=u.css`
93
- background-color: ${e=>e.$isActive?e.theme.palette.black10:"transparent"};
94
- ${e=>e.$isHaveValue?u.css`
95
- color: ${e.theme.colors.input[e.$genre].color.rest};
96
- &:focus-visible {
97
- color: ${e.theme.colors.input[e.$genre].color.rest};
98
- }
99
- `:u.css`
100
- color: ${e.theme.colors.input[e.$genre].color.placeholder};
101
- `};
102
- `,y=u.css`
103
- border-radius: 4px;
104
- padding: 2px;
105
- min-width: 10px;
106
- `,M=u.div`
107
- text-align: center;
108
- resize: none;
109
- overflow: hidden;
110
- border: 0px solid;
111
- background: transparent;
112
- margin: 0px !important;
113
- white-space: nowrap;
114
- ${p.addFont};
115
- ${y};
116
- ${Y};
117
- ${p.addRemoveOutline};
118
- `,k=u.css`
119
- ${e=>u.css`
120
- background: ${e.theme.colors.input[e.$genre].background.rest};
121
- border-color: ${e.theme.colors.input[e.$genre].border.rest};
122
- color: ${e.theme.colors.input[e.$genre].color.rest};
123
- outline: 2px solid transparent;
124
- outline-offset: 1px;
125
- &:hover {
126
- background: ${e.theme.colors.input[e.$genre].background.hover};
127
- border-color: ${e.theme.colors.input[e.$genre].border.hover};
128
- color: ${e.theme.colors.input[e.$genre].color.hover};
129
- }
130
- ${!e.$isOpen||e.$isReadOnly||e.$isDisabledOutline?null:e.$isOutlineBoxShadow?u.css`
131
- outline: 1px solid transparent;
132
- outline-offset: 0px;
133
- outline: 1px solid #83b7e8;
134
- box-shadow: 0 1px 1px rgba(24,36,51, .06), 0 0 0 .25rem rgba(6,111,209, .25);
135
- `:u.css`
136
- background: ${e.theme.colors.input[e.$genre].background.rest};
137
- border-color: ${e.theme.colors.input[e.$genre].border.rest};
138
- color: ${e.theme.colors.input[e.$genre].color.rest};
139
- outline: 2px solid ${e=>e.theme.states.focus};
140
- `}
141
- `};
142
- `,w=u.css`
143
- ${e=>u.css`
144
- padding: ${e.$isShowPlaceholder?`0px ${r.KEY_SIZE_DATA[e.$size].padding}px`:`0px ${r.KEY_SIZE_DATA[e.$size].padding}px 0px ${r.KEY_SIZE_DATA[e.$size].padding-2}px`};
145
- height: ${r.KEY_SIZE_DATA[e.$size].height}px;
146
- min-height: ${r.KEY_SIZE_DATA[e.$size].height}px;
147
- max-height: ${r.KEY_SIZE_DATA[e.$size].height}px;
148
- border-radius: ${r.KEY_SIZE_DATA[e.$size].radius}px;
149
- `}
150
- `,O=u.div`
151
- resize: none;
152
- overflow: hidden;
153
- width: 100%;
154
- border: 1px solid transparent;
155
-
156
- white-space: nowrap;
157
-
158
- display: flex;
159
- align-items: center;
160
- gap: 0px;
161
-
162
- ${p.addDisabled};
163
- ${w};
164
- ${k};
165
- ${p.addTransition};
166
- ${s.addError};
167
- `,S=u.css`
168
- ${e=>u.css`
169
- right:${r.KEY_SIZE_DATA[e.size].padding}px;
170
- `}
171
- `,j=u(t.Button)`
172
- position: absolute;
173
- height: max-content !important;
174
- ${S};
175
- `;var E=(e=>(e.DD="DD",e.MM="MM",e.YYYY="YYYY",e))(E||{});exports.DateDropdownDay=b,exports.DateDropdownDayOfWeek=v,exports.DateDropdownDays=x,exports.DateDropdownList=$,exports.DateDropdownListParent=m,exports.DateInput=M,exports.DateInputButton=j,exports.DateInputWrapper=O,exports.DatePicker=c=>{var p,f,h,m;const{onChange:D}=c,Y=u.useTheme(),[y,k]=a.useState(null),[w,S]=a.useState(i(c.dateDefault).utc()),[z,A]=a.useState({[E.DD]:null,[E.MM]:null,[E.YYYY]:null}),R=a.useMemo(()=>null!==z[E.DD]||null!==z[E.MM]||null!==z[E.YYYY],[z]),C=a.useCallback(()=>{A({[E.DD]:null,[E.MM]:null,[E.YYYY]:null})},[]),[N,I]=a.useState(null),[W,V]=a.useState(!1),P=a.useMemo(()=>{if(!c.mode||0===c.mode.length)return[E.DD,E.MM,E.YYYY];return new Set(c.mode).size!==c.mode.length?[E.DD,E.MM,E.YYYY]:c.mode},[c.mode]),T=a.useCallback(e=>{const t=P.indexOf(e);return t<P.length-1?P[t+1]:P[0]},[P]),B=a.useCallback(e=>{const t=P.indexOf(e);return t>0?P[t-1]:P[P.length-1]},[P]),_=a.useMemo(()=>{const e={MM:{nextSegment:T(E.MM),preSegment:B(E.MM),onNext:()=>I(T(E.MM)),onPrev:()=>I(B(E.MM)),isLast:P[P.length-1]===E.MM,isFirst:P[0]===E.MM,type:E.MM,value:z.MM,setValue:e=>A(t=>({...t,[E.MM]:e})),setActive:()=>I(E.MM),placeholder:c.locale.inputs.month},DD:{nextSegment:T(E.DD),preSegment:B(E.DD),isLast:P[P.length-1]===E.DD,isFirst:P[0]===E.DD,onNext:()=>I(T(E.DD)),onPrev:()=>I(B(E.DD)),type:E.DD,value:z.DD,setValue:e=>A(t=>({...t,[E.DD]:e})),setActive:()=>I(E.DD),placeholder:c.locale.inputs.day},YYYY:{nextSegment:T(E.YYYY),preSegment:B(E.YYYY),isLast:P[P.length-1]===E.YYYY,isFirst:P[0]===E.YYYY,onNext:()=>I(T(E.YYYY)),onPrev:()=>I(B(E.YYYY)),type:E.YYYY,value:z.YYYY,setValue:e=>A(t=>({...t,[E.YYYY]:e})),setActive:()=>I(E.YYYY),placeholder:c.locale.inputs.year}};return{sort:P.map(t=>t===E.DD?e.DD:t===E.MM?e.MM:t===E.YYYY?e.YYYY:null).filter(e=>null!==e),default:e}},[c.locale.inputs.day,c.locale.inputs.month,c.locale.inputs.year,T,B,P,z.DD,z.MM,z.YYYY]),q=a.useMemo(()=>["mo","tu","we","th","fr","sa","su"].map((e,t)=>{const o=c.locale.weeks.find(t=>t.value===e);return{index:t,label:(null==o?void 0:o.localeShort)??e.toUpperCase()}}),[c.locale.weeks]),F=a.useMemo(()=>{const e=i.utc(),t=(y??w).clone().startOf("month"),o=(y??w).clone().endOf("month"),n=[],l=c.dateMin?i.utc(c.dateMin):null,s=c.dateMax?i.utc(c.dateMax):null,r=t.isoWeekday()-1;if(r>0)for(let i=r;i>0;i--){const o=t.clone().subtract(i,"days");n.push({value:o.valueOf(),labelString:o.format("dd"),labelNumber:o.date(),dayOfWeek:o.isoWeekday(),isWeekend:6===o.isoWeekday()||7===o.isoWeekday(),weekOfMonth:Math.ceil((n.length+1)/7),isToday:o.isSame(e,"day"),isCurrentMonth:!1,isDisabled:o.isBefore(l,"day")||o.isAfter(s,"day")})}const a=t.clone();for(;a<=o;)n.push({value:a.valueOf(),labelString:a.format("dd"),labelNumber:a.date(),dayOfWeek:a.isoWeekday(),isWeekend:6===a.isoWeekday()||7===a.isoWeekday(),weekOfMonth:Math.ceil((n.length+1)/7),isToday:a.isSame(e,"day"),isCurrentMonth:!0,isDisabled:a.isBefore(l,"day")||a.isAfter(s,"day")}),a.add(1,"day");const u=7-o.isoWeekday();if(u>0)for(let i=1;i<=u;i++){const t=o.clone().add(i,"days").startOf("day");n.push({value:t.valueOf(),labelString:t.format("dd"),labelNumber:t.date(),dayOfWeek:t.isoWeekday(),isWeekend:6===t.isoWeekday()||7===t.isoWeekday(),weekOfMonth:Math.ceil((n.length+1)/7),isToday:t.isSame(e,"day"),isCurrentMonth:!1,isDisabled:t.isBefore(l,"day")||t.isAfter(s,"day")})}return n.sort((e,t)=>e.value-t.value),n},[y,w,c.dateMax,c.dateMin]),K=a.useMemo(()=>function(e){const t=Math.floor(e/7);return e%7>0?t+1:t}(F.length)+1,[F]),L=a.useMemo(()=>40+28*K+6*(K-1)+2*r.KEY_SIZE_DATA[c.size].padding,[c.size,K]),Z=a.useMemo(()=>r.KEY_SIZE_DATA[c.size].radius,[c.size]),H=a.useMemo(()=>r.KEY_SIZE_DATA[c.size].padding,[c.size]),U=a.useMemo(()=>null!==y,[y]),J=a.useMemo(()=>{const e=(y??w).clone().add(1,"month").startOf("month");return!!c.dateMax&&e.isAfter(i.utc(c.dateMax),"month")},[y,c.dateMax,w]),X=a.useMemo(()=>{const e=(y??w).clone().subtract(1,"month").startOf("month");return!!c.dateMin&&e.isBefore(i.utc(c.dateMin),"month")},[y,c.dateMin,w]),[G,Q]=a.useState(!1),ee=a.useRef(""),te=a.useRef(null),oe=a.useRef(null),ne=a.useRef(null),le=a.useCallback(()=>{var e;null==(e=c.onFocus)||e.call(c)},[c.onFocus]),se=a.useCallback(()=>{var e;null==(e=c.onBlur)||e.call(c)},[c.onBlur]),re=a.useCallback(()=>{I(null)},[]),{isOpen:ie,refReference:ae,refFloating:ue,floatingStyles:de,close:ce,toggle:pe}=d.usePopover({placement:"bottom-start",offset:H,mode:"independence",isClickOutside:!0,refsExcludeClickOutside:[te,oe],isDisabled:(null==c?void 0:c.isDisabled)||(null==c?void 0:c.isReadOnly),onFocus:le,onBlur:se,onBlurReference:re}),fe=a.useMemo(()=>!(G||U||!c.labelPlaceholder||ie||R||N),[G,U,ie,c.labelPlaceholder,R,N]),he=a.useCallback(e=>{const t=i(e).utc();(null==y?void 0:y.isSame(t,"day"))||(k(t),D(t.valueOf()),A({[E.DD]:t.clone().date(),[E.MM]:t.clone().month()+1,[E.YYYY]:t.clone().year()}))},[y,D]),ge=a.useCallback(e=>{var t;const o=e.key,n=/^\d$/.test(o);if(n||["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Backspace","Delete","Tab","Enter"].includes(o)||e.ctrlKey||e.metaKey){if(N&&_.default[N]){if(n){!function(e,t,o,n){var l;const s=e,r=t,i=(null==(l=o[r])?void 0:l.toString())??"",a=e=>"0"===e,u=e=>Number(e);if(r===E.DD){if(i.length>=2){const e=u(s);if(0===e||e>31)return;return void n.default[r].setValue(e)}if(1===i.length&&a(i)){const e=u(s);if(0===e||e>31)return;return n.default[r].setValue(e),void n.default[r].onNext()}const e=i+s,t=u(e);if(t>31){const e=u(s);if(0===e||e>31)return;return n.default[r].setValue(e),void n.default[r].onNext()}const o=0===t?s:e,l=u(o);if(0===l||l>31)return;n.default[r].setValue(l),2===o.length&&n.default[r].onNext()}else if(r===E.MM){if(i.length>=2){const e=u(s);if(0===e||e>12)return;return void n.default[r].setValue(e)}if(1===i.length&&a(i)){const e=u(s);if(0===e||e>12)return;return n.default[r].setValue(e),void n.default[r].onNext()}const e=i+s,t=u(e),o=0===t||t>12?s:e,l=u(o);if(0===l||l>12)return;n.default[r].setValue(l),(2===o.length||1===o.length&&l>1)&&n.default[r].onNext()}else if(r===E.YYYY){if(i.length>=4){if("0"===s)return;return void n.default[r].setValue(u(s))}const e=(i+s).slice(-4);n.default[r].setValue(u(e))}}(o,N,z,_),e.preventDefault(),e.stopPropagation()}if("Tab"===o&&(_.default[N].isLast?null==(t=null==ne?void 0:ne.current)||t.blur():(e.preventDefault(),_.default[N].onNext())),"Enter"===o&&(e.preventDefault(),e.stopPropagation()),"Backspace"===o||"Delete"===o){if(N===E.DD)if(null!==z.DD){const e=z.DD.toString();if(1===e.length)_.default[N].setValue(null);else{const t=e.slice(0,-1);_.default[N].setValue(Number(t))}}else _.default[N].onPrev();else if(N===E.MM)if(null!==z.MM){const e=z.MM.toString();if(1===e.length)_.default[N].setValue(null);else{const t=e.slice(0,-1);_.default[N].setValue(Number(t))}}else _.default[N].onPrev();else if(N===E.YYYY)if(null!==z.YYYY){const e=z.YYYY.toString();if(1===e.length)_.default[N].setValue(null);else{const t=e.slice(0,-1);_.default[N].setValue(Number(t))}}else _.default[N].onPrev();e.preventDefault(),e.stopPropagation()}"ArrowLeft"!==o&&"ArrowDown"!==o||(e.preventDefault(),_.default[N].onPrev()),"ArrowRight"!==o&&"ArrowUp"!==o||(e.preventDefault(),_.default[N].onNext())}}else e.preventDefault()},[N,z,_.default,_]),me=a.useCallback(()=>{const e=(y??w).clone().add(1,"month");he(e.valueOf())},[y,he,w]),$e=a.useCallback(()=>{const e=(y??w).clone().subtract(1,"month");he(e.valueOf())},[y,he,w]);a.useEffect(()=>{S(i(c.dateDefault).utc())},[c.dateDefault]),a.useEffect(()=>{k(c.value||c.defaultValue?i(c.value??c.defaultValue).utc():null),c.value&&A({[E.DD]:i(c.value).utc().date(),[E.MM]:i(c.value).utc().month()+1,[E.YYYY]:i(c.value).utc().year()})},[c.value,c.defaultValue]);const xe=a.useCallback((e,t,o,n)=>{const l=e.DD??NaN,s=e.MM??NaN,r=e.YYYY??NaN,a=null!==e[E.DD]||null!==e[E.MM]||null!==e[E.YYYY];if(Number.isNaN(l)||Number.isNaN(s)||Number.isNaN(r))null==n||n(a);else{const e=i.utc(`${l}.${s}.${r}`,"D.M.YYYY",!0).startOf("day");e.isValid()?null==t||t(e.valueOf()):null==o||o()}},[]);return a.useEffect(()=>{xe(z,e=>{he(e),V(!1)},()=>{D(null),V(!0)},e=>{e||V(!1)})},[xe,he,D,z]),a.useEffect(()=>{ie||G||!R||N||xe(z,()=>{},()=>{D(null),C(),V(!1)},()=>{D(null),C(),V(!1)})},[xe,C,z,ie,G,D,R,N]),a.useEffect(()=>{var e;N&&(null==(e=null==ne?void 0:ne.current)||e.focus())},[N]),e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx(g,{$size:c.size,$genre:c.genre,$sx:c.sx,$isDisabled:null==c?void 0:c.isDisabled,$isMinWidth:null==c?void 0:c.isMinWidth,$radius:Z,$parentListHeight:L,tabIndex:-1,children:e.jsxRuntimeExports.jsxs(O,{ref:ae,$genre:c.genre,$size:c.size,$isShowPlaceholder:fe,$isDisabled:null==c?void 0:c.isDisabled,$isReadOnly:null==c?void 0:c.isReadOnly,$isDisabledOutline:null==c?void 0:c.isDisabledOutline,$isOutlineBoxShadow:null==c?void 0:c.isOutlineBoxShadow,tabIndex:-1,$error:W?{isError:!0,size:(null==(p=null==c?void 0:c.error)?void 0:p.size)??c.size,...c.notValidDate}:c.error,$isOpen:ie||!!N,onClick:()=>{N||(null==c?void 0:c.isReadOnly)||I(E.DD)},children:[e.jsxRuntimeExports.jsx("input",{name:c.name,id:c.id,ref:ne,type:"tel",inputMode:"numeric",tabIndex:0,disabled:(null==c?void 0:c.isDisabled)||(null==c?void 0:c.isReadOnly),style:{position:"absolute",left:"-100dvw",top:0,width:"100%",height:"100%",opacity:0,border:"none",background:"transparent"},onKeyDown:ge,onChange:e=>{const t=e.target.value,o=ee.current,n=t.length>o.length?t.slice(-1):null;ee.current=t,n&&/^\d$/.test(n)&&ge({key:n,preventDefault:()=>{},stopPropagation:()=>{}}),t.length<o.length&&ge({key:"Backspace",preventDefault:()=>{},stopPropagation:()=>{}})},onFocus:()=>{Q(!0),N||I(E.DD)},onBlur:()=>{var e;Q(!1),ie||null==(e=c.onBlur)||e.call(c)}}),fe?e.jsxRuntimeExports.jsx(d.Typography,{sx:{default:{size:16,line:1,isNoUserSelect:!0}},sxStandard:e=>({default:{color:e.colors.input[c.genre].color.placeholder}}),children:c.labelPlaceholder}):_.sort.map((t,o)=>{var n,l,s,r;return e.jsxRuntimeExports.jsxs(a.Fragment,{children:[e.jsxRuntimeExports.jsx(M,{$isHaveValue:!!t.value,$isActive:N===t.type,$genre:c.genre,$size:c.size,$font:{size:(null==(n=c.font)?void 0:n.size)??16,weight:(null==(l=c.font)?void 0:l.weight)??(c.isBold?500:400),family:(null==(s=c.font)?void 0:s.family)??Y.font.family,height:(null==(r=c.font)?void 0:r.height)??Y.font.lineHeight},onClick:e=>{e.preventDefault(),e.stopPropagation(),(null==c?void 0:c.isDisabled)||(null==c?void 0:c.isReadOnly)||t.setActive()},children:null!=t.value?String(t.value).padStart(t.type===E.YYYY?1:2,"0"):t.placeholder||""}),o!==_.sort.length-1&&e.jsxRuntimeExports.jsx("span",{style:{width:"4px",pointerEvents:"none",textAlign:"center"},children:"."})]},t.type)}),e.jsxRuntimeExports.jsx(j,{genre:c.genre,size:"small",isWidthAsHeight:!0,isFullSize:!0,isRadius:!0,isOnlyIcon:!0,icons:[{name:"Calendar",type:"id"}],isDisabled:(null==c?void 0:c.isDisabled)||(null==c?void 0:c.isReadOnly),onFocus:e=>{e.preventDefault(),e.stopPropagation(),I(null)},onClick:e=>{e.preventDefault(),e.stopPropagation(),pe()}})]})}),e.jsxRuntimeExports.jsx(d.Popover,{sx:e=>({default:{background:e.colors.input[c.genre].background.rest,border:`solid 1px ${e.colors.input[c.genre].border.rest}`}}),size:c.size,genre:c.genre,isOpen:ie,isShowAlwaysOutline:!0,floatingStyles:de,ref:ue,children:e.jsxRuntimeExports.jsxs($,{$isInputEffect:c.isInputEffect,$genre:c.genre,$size:c.size,children:[e.jsxRuntimeExports.jsxs(l.Stack,{sx:{default:{justifyContent:"space-between",alignItems:"center"}},children:[e.jsxRuntimeExports.jsx(t.Button,{type:"button",isRadius:!0,icons:[{name:"Arrow2",type:"id",turn:90}],isWidthAsHeight:!0,genre:c.genre,size:"small",onClick:()=>!X&&$e(),isHidden:X}),e.jsxRuntimeExports.jsxs(l.Stack,{sx:{default:{gap:"8px"}},children:[e.jsxRuntimeExports.jsx(n.SelectMonth,{monthsLocale:c.locale.months,genre:c.genre,size:"small",value:(y??w).clone().startOf("month").utc().valueOf(),isOnClickOptionClose:!0,isStayValueAfterSelect:!0,isOnlyColorInSelectListOption:!0,isCenter:!0,isShortLabel:!0,refFloating:te,onChange:e=>{e&&he(e)},dateMin:c.dateMin,dateMax:c.dateMax,sx:{default:{width:"60px"}}}),e.jsxRuntimeExports.jsx(n.SelectYear,{genre:c.genre,size:"small",refFloating:oe,value:(y??w).clone().startOf("year").utc().valueOf(),onChange:e=>{e&&he(e)},isOnClickOptionClose:!0,isStayValueAfterSelect:!0,isOnlyColorInSelectListOption:!0,isCenter:!0,dateMin:c.dateMin,dateMax:c.dateMax,sx:{default:{width:"60px"}}})]}),e.jsxRuntimeExports.jsx(t.Button,{type:"button",onClick:()=>!J&&me(),isWidthAsHeight:!0,isRadius:!0,icons:[{name:"Arrow2",type:"id",turn:-90}],genre:c.genre,size:"small",isHidden:J})]}),e.jsxRuntimeExports.jsxs(x,{$rows:K,children:[q.map((t,o)=>{var n,l;return e.jsxRuntimeExports.jsx(v,{$font:{size:12,weight:700,family:(null==(n=c.font)?void 0:n.family)??Y.font.family},tabIndex:-1,type:"button",$isToday:!1,$isWeekend:!1,$genre:c.genre,$size:c.size,$row:(null==(l=F[0])?void 0:l.weekOfMonth)-1,$column:o+1,children:t.label},`${t.label}-${o}`)}),F.map(t=>{var n;return e.jsxRuntimeExports.jsxs(b,{$font:{size:12,weight:700,family:(null==(n=c.font)?void 0:n.family)??Y.font.family},type:"button",$isDisabled:t.isDisabled,$isDisabledOutline:t.isDisabled??c.isDisabledOutline,$isOutlineBoxShadow:c.isOutlineBoxShadow,$isReadOnly:c.isReadOnly,$genre:c.genre,$size:c.size,$row:(null==t?void 0:t.weekOfMonth)+1,$column:t.dayOfWeek,onClick:()=>{t.isDisabled||(he(t.value),c.isOnClickClose&&ce())},tabIndex:t.isDisabled?-1:0,$isToday:t.isToday,$isWeekend:t.isWeekend,$isChoice:t.value===(null==y?void 0:y.valueOf()),$isCurrentMonth:t.isCurrentMonth,children:[!t.isDisabled&&e.jsxRuntimeExports.jsx(o.Ripple,{color:Y.colors.date[c.genre].color.rest}),t.labelNumber]},t.value)})]})]})}),W||(null==c?void 0:c.error)?e.jsxRuntimeExports.jsx(s.ErrorMessage,{...W?{isError:!0,size:(null==(f=null==c?void 0:c.error)?void 0:f.size)??c.size,...c.notValidDate}:c.error,size:(null==(h=null==c?void 0:c.error)?void 0:h.size)??c.size,font:{size:12,weight:400,family:(null==(m=c.font)?void 0:m.family)??Y.font.family}}):null]})},exports.DatePickerVariant=E,exports.DateWrapper=g,exports.addDateDropdownDaySize=D,exports.addDateInputButtonSize=S,exports.addDateInputWrapperSize=w;
176
- //# sourceMappingURL=component.types-WiRcl02d.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.types-WiRcl02d.cjs","sources":["../src/components/date-picker/component.styles.ts","../src/components/date-picker/component.types.ts","../src/components/date-picker/component.tsx"],"sourcesContent":["import { addInputIsInputEffect } from '@local/components/input';\nimport {\n addDisabled,\n addFont,\n addNiceNumber,\n addOutline,\n addRemoveOutline,\n addRemoveScrollbar,\n addTransition,\n} from '@local/styles/add';\nimport { addError } from '@local/styles/error';\nimport { addSX } from '@local/styles/sx';\nimport { KEY_SIZE_DATA } from '@local/theme/theme';\n\nimport { motion } from 'framer-motion';\nimport styled, { css } from 'styled-components';\n\nimport { Button, ButtonProps } from '../button';\nimport { DateDropdownDayProps, DateDropdownListProps, DateInputProps, DateStyledListProps, DateWrapperProps } from '.';\n\nexport const DateWrapper = styled.div<DateWrapperProps>`\n width: 100%;\n position: relative;\n height: fit-content;\n ${(props) =>\n props.$isMinWidth &&\n css`\n width: min-content;\n `}\n ${addSX};\n ${addNiceNumber};\n`;\n\nexport const DateDropdownListParent = styled(motion.div)<DateStyledListProps>`\n ${addRemoveScrollbar};\n`;\n\nexport const DateDropdownList = styled.div<DateDropdownListProps>`\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n padding-top: 6px;\n transform: translateZ(0);\n justify-content: flex-start;\n gap: 10px;\n ${addInputIsInputEffect};\n`;\n\nexport const DateDropdownDays = styled.div<{ $rows: number }>`\n display: grid;\n column-gap: normal;\n row-gap: normal;\n gap: 6px;\n grid-template-columns: repeat(7, 28px);\n grid-template-rows: repeat(${(props) => props.$rows}, 28px);\n justify-content: space-between;\n`;\n\nexport const addDateDropdownDaySize = css<DateDropdownDayProps>`\n ${(props) =>\n props.$size &&\n css`\n border-radius: ${KEY_SIZE_DATA[props.$size].radius}px;\n `};\n position: relative;\n overflow: hidden;\n isolation: isolate;\n user-select: none;\n background: ${(props) => props.theme.colors.date[props.$genre].background.rest};\n border-color: ${(props) => props.theme.colors.date[props.$genre].border.rest};\n color: ${(props) => props.theme.colors.date[props.$genre].color.rest};\n border: 1px solid transparent;\n grid-row: ${(props) => props.$row};\n grid-column: ${(props) => props.$column};\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n cursor: pointer;\n &:hover {\n ${(props) =>\n !props.$isDisabled &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.hover};\n border-color: ${props.theme.colors.date[props.$genre].border.hover};\n color: ${props.theme.colors.date[props.$genre].color.hover};\n `}\n }\n ${addTransition};\n\n ${(props) =>\n props.$isWeekend &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.weekend};\n border-color: ${props.theme.colors.date[props.$genre].border.weekend};\n color: ${props.theme.colors.date[props.$genre].color.weekend};\n `}\n ${(props) =>\n props.$isToday &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.today};\n border-color: ${props.theme.colors.date[props.$genre].border.today};\n color: ${props.theme.colors.date[props.$genre].color.today};\n `}\n ${(props) =>\n props.$isChoice &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.choice};\n border-color: ${props.theme.colors.date[props.$genre].border.choice};\n color: ${props.theme.colors.date[props.$genre].color.choice};\n `}\n ${(props) =>\n props.$isDisabled &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.weekend};\n border-color: ${props.theme.colors.date[props.$genre].border.weekend};\n color: ${props.theme.colors.date[props.$genre].color.weekend};\n opacity: 0.5;\n `}\n ${(props) =>\n !props.$isCurrentMonth &&\n css`\n opacity: 0.5;\n `}\n \n ${addFont};\n ${addOutline};\n`;\n\nexport const DateDropdownDay = styled.button<DateDropdownDayProps>`\n ${addDateDropdownDaySize}\n`;\nexport const DateDropdownDayOfWeek = styled.button<DateDropdownDayProps>`\n ${addDateDropdownDaySize}\n opacity: 1;\n background-color: transparent;\n`;\n\n/****************************************** Genre *************************************************/\nconst addDateInputGenre = css<DateInputProps>`\n background-color: ${(props) => (props.$isActive ? props.theme.palette.black10 : 'transparent')};\n ${(props) =>\n props.$isHaveValue\n ? css`\n color: ${props.theme.colors.input[props.$genre].color.rest};\n &:focus-visible {\n color: ${props.theme.colors.input[props.$genre].color.rest};\n }\n `\n : css`\n color: ${props.theme.colors.input[props.$genre].color.placeholder};\n `};\n`;\nconst addDateInputSize = css<DateInputProps>`\n border-radius: 4px;\n padding: 2px;\n min-width: 10px;\n`;\nexport const DateInput = styled.div<DateInputProps>`\n text-align: center;\n resize: none;\n overflow: hidden;\n border: 0px solid;\n background: transparent;\n margin: 0px !important;\n white-space: nowrap;\n ${addFont};\n ${addDateInputSize};\n ${addDateInputGenre};\n ${addRemoveOutline};\n`;\n\n/****************************************** Genre *************************************************/\nconst addDateInputWrapperGenre = css<DateInputProps>`\n ${(props) => css`\n background: ${props.theme.colors.input[props.$genre].background.rest};\n border-color: ${props.theme.colors.input[props.$genre].border.rest};\n color: ${props.theme.colors.input[props.$genre].color.rest};\n outline: 2px solid transparent;\n outline-offset: 1px;\n &:hover {\n background: ${props.theme.colors.input[props.$genre].background.hover};\n border-color: ${props.theme.colors.input[props.$genre].border.hover};\n color: ${props.theme.colors.input[props.$genre].color.hover};\n }\n ${\n props.$isOpen && !props.$isReadOnly && !props.$isDisabledOutline\n ? props.$isOutlineBoxShadow\n ? css`\n outline: 1px solid transparent;\n outline-offset: 0px;\n outline: 1px solid #83b7e8;\n box-shadow: 0 1px 1px rgba(24,36,51, .06), 0 0 0 .25rem rgba(6,111,209, .25);\n `\n : css`\n background: ${props.theme.colors.input[props.$genre].background.rest};\n border-color: ${props.theme.colors.input[props.$genre].border.rest};\n color: ${props.theme.colors.input[props.$genre].color.rest};\n outline: 2px solid ${(props) => props.theme.states.focus};\n `\n : null\n }\n `};\n`;\n\n/****************************************** Size *************************************************/\nexport const addDateInputWrapperSize = css<DateInputProps>`\n ${(props) => css`\n padding: ${props.$isShowPlaceholder ? `0px ${KEY_SIZE_DATA[props.$size].padding}px` : `0px ${KEY_SIZE_DATA[props.$size].padding}px 0px ${KEY_SIZE_DATA[props.$size].padding - 2}px`};\n height: ${KEY_SIZE_DATA[props.$size].height}px;\n min-height: ${KEY_SIZE_DATA[props.$size].height}px;\n max-height: ${KEY_SIZE_DATA[props.$size].height}px;\n border-radius: ${KEY_SIZE_DATA[props.$size].radius}px;\n `}\n`;\n\nexport const DateInputWrapper = styled.div<DateInputProps>`\n resize: none;\n overflow: hidden;\n width: 100%;\n border: 1px solid transparent;\n\n white-space: nowrap;\n\n display: flex;\n align-items: center;\n gap: 0px;\n\n ${addDisabled};\n ${addDateInputWrapperSize};\n ${addDateInputWrapperGenre};\n ${addTransition};\n ${addError};\n`;\n\nexport const addDateInputButtonSize = css<ButtonProps>`\n ${(props) => css`\n right:${KEY_SIZE_DATA[props.size].padding}px;\n `}\n`;\nexport const DateInputButton = styled(Button)`\n position: absolute;\n height: max-content !important;\n ${addDateInputButtonSize};\n`;\n","import { InputStandardProps, StyledInputProps, StyledInputWrapperProps } from '@local/components/input';\nimport { addFontProps, addOutlineProps, addOutlinePropsDollar } from '@local/styles/add';\nimport { addErrorProps, ErrorMessageProps } from '@local/styles/error';\nimport { addSXProps } from '@local/styles/sx';\nimport { IThemeGenreDate, IThemeSize } from '@local/theme';\nimport { AddDollarSign } from '@local/types';\n\nimport { SelectMonthProps } from '../select';\n\nexport type DatePickerMode = DatePickerVariant[];\nexport enum DatePickerVariant {\n DD = 'DD',\n MM = 'MM',\n YYYY = 'YYYY',\n}\n\nexport type CommonDatePickerProps = addErrorProps &\n addSXProps &\n addFontProps &\n addOutlineProps & {\n genre: TDateGenre;\n\n id?: string;\n\n isDisabled?: boolean;\n isBold?: boolean;\n isMinWidth?: boolean;\n\n isInputEffect?: InputStandardProps['isInputEffect'];\n\n isOnClickClose?: boolean;\n\n labelPlaceholder?: string;\n\n locale: {\n months: SelectMonthProps['monthsLocale'];\n weeks: WeekItem[];\n inputs: InputItem;\n };\n\n notValidDate?: Omit<ErrorMessageProps, 'size' | 'isError'>;\n\n mode?: DatePickerMode;\n\n name?: string;\n\n onBlur?: () => void;\n\n onChange: (timestamp: number | null) => void;\n\n onFocus?: () => void;\n\n size: IThemeSize;\n\n dateMax?: number;\n\n dateMin?: number;\n\n dateDefault: number;\n };\n\ntype ControlledValue = {\n value: number | null | undefined;\n\n defaultValue?: never;\n};\n\ntype UncontrolledValue = {\n defaultValue: number | null | undefined;\n\n value?: never;\n};\nexport type DatePickerProps = CommonDatePickerProps & (ControlledValue | UncontrolledValue);\n\nexport type TDateGenre = keyof IThemeGenreDate;\n\nexport interface DateDayProps {\n dayOfWeek: number;\n\n isCurrentMonth: boolean;\n\n isDisabled: boolean;\n\n isToday: boolean;\n\n isWeekend: boolean;\n\n labelNumber: number;\n\n labelString: string;\n\n value: number;\n\n weekOfMonth: number;\n}\n\nexport type DateWrapperProps = AddDollarSign<\n Pick<InputStandardProps, 'genre' | 'isDisabled'> & {\n parentListHeight: number;\n radius: number;\n isMinWidth?: boolean;\n }\n> &\n StyledInputWrapperProps;\n\nexport type DateInputProps = AddDollarSign<\n Pick<DatePickerProps, 'error' | 'genre' | 'size' | 'isBold' | 'isReadOnly' | 'isDisabledOutline' | 'isOutlineBoxShadow' | 'isDisabled' | 'font'> & {\n isOpen?: boolean;\n isActive?: boolean;\n isHaveValue?: boolean;\n isShowPlaceholder?: boolean;\n }\n>;\n\nexport type DateStyledOptionProps = AddDollarSign<{\n isSelectedItem?: boolean;\n isCheckboxProps?: boolean;\n}> &\n StyledInputProps;\n\nexport type DateStyledListProps = AddDollarSign<Pick<InputStandardProps, 'genre' | 'size'>>;\n\nexport type DateDropdownListProps = AddDollarSign<\n Pick<DatePickerProps, 'isInputEffect'> & Pick<DatePickerProps, 'genre' | 'size'>\n>;\n\nexport type DateDropdownDayProps = AddDollarSign<\n Pick<DatePickerProps, 'genre' | 'size' | 'font'> &\n Pick<DateDayProps, 'isToday' | 'isWeekend'> & {\n row: number;\n column: number;\n isChoice?: boolean;\n isCurrentMonth?: boolean;\n isDisabled?: boolean;\n }\n> &\n addOutlinePropsDollar;\n\nexport type MonthItem = {\n localeLong: string;\n\n localeShort: string;\n\n value:\n | 'january'\n | 'february'\n | 'march'\n | 'april'\n | 'may'\n | 'june'\n | 'july'\n | 'august'\n | 'september'\n | 'october'\n | 'november'\n | 'december';\n};\nexport type WeekItem = {\n localeLong: string;\n\n localeShort: string;\n\n value: 'mo' | 'tu' | 'we' | 'th' | 'fr' | 'sa' | 'su';\n};\nexport type InputItem = {\n day: string;\n\n month: string;\n\n year: string;\n};\n","import { Button } from '@local/components/button';\nimport { Ripple } from '@local/components/ripple';\nimport { SelectMonth, SelectYear } from '@local/components/select';\nimport { Stack } from '@local/components/stack';\nimport { ErrorMessage } from '@local/styles/error';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport moment, { Moment } from 'moment';\nimport { Fragment, KeyboardEvent, RefObject, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { Popover, usePopover } from '../popover';\nimport { Typography } from '../typography';\nimport {\n DateDayProps,\n DateDropdownDay,\n DateDropdownDayOfWeek,\n DateDropdownDays,\n DateDropdownList,\n DateInput,\n DateInputButton,\n DateInputWrapper,\n DatePickerMode,\n DatePickerProps,\n DatePickerVariant,\n DateWrapper,\n WeekItem,\n} from '.';\n\nfunction countSevens(number: number) {\n const divisor = 7;\n const count = Math.floor(number / divisor);\n const remainder = number % divisor;\n\n return remainder > 0 ? count + 1 : count;\n}\n\nexport const DatePicker = (props: DatePickerProps) => {\n const { onChange } = props;\n const theme = useTheme();\n\n const [valueMoment, setValueMoment] = useState<null | Moment>(null);\n const [dateDefaultMoment, setDateDefaultMoment] = useState<Moment>(moment(props.dateDefault).utc());\n\n const [input, setInput] = useState<Record<DatePickerVariant, number | null>>({\n [DatePickerVariant.DD]: null,\n [DatePickerVariant.MM]: null,\n [DatePickerVariant.YYYY]: null,\n });\n\n const isHasInput = useMemo(() => {\n return (\n input[DatePickerVariant.DD] !== null ||\n input[DatePickerVariant.MM] !== null ||\n input[DatePickerVariant.YYYY] !== null\n );\n }, [input]);\n const onClearInput = useCallback(() => {\n setInput({\n [DatePickerVariant.DD]: null,\n [DatePickerVariant.MM]: null,\n [DatePickerVariant.YYYY]: null,\n });\n }, []);\n const [activeSegment, setActiveSegment] = useState<DatePickerVariant | null>(null);\n const [isError, setIsError] = useState(false);\n\n const mode: DatePickerMode = useMemo(() => {\n if (!props.mode || props.mode.length === 0) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт\n }\n\n const hasDuplicates = new Set(props.mode).size !== props.mode.length;\n\n if (hasDuplicates) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт при дублировании\n }\n\n return props.mode;\n }, [props.mode]);\n\n const getNextSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex < mode.length - 1 ? mode[currentIndex + 1] : mode[0];\n },\n [mode],\n );\n\n const getPrevSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex > 0 ? mode[currentIndex - 1] : mode[mode.length - 1];\n },\n [mode],\n );\n\n const dataDate = useMemo(() => {\n const result = {\n MM: {\n nextSegment: getNextSegment(DatePickerVariant.MM),\n preSegment: getPrevSegment(DatePickerVariant.MM),\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.MM)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.MM)),\n isLast: mode[mode.length - 1] === DatePickerVariant.MM,\n isFirst: mode[0] === DatePickerVariant.MM,\n type: DatePickerVariant.MM,\n value: input.MM,\n setValue: (value: number | null) => setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.MM]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.MM),\n placeholder: props.locale.inputs.month,\n },\n DD: {\n nextSegment: getNextSegment(DatePickerVariant.DD),\n preSegment: getPrevSegment(DatePickerVariant.DD),\n isLast: mode[mode.length - 1] === DatePickerVariant.DD,\n isFirst: mode[0] === DatePickerVariant.DD,\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.DD)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.DD)),\n type: DatePickerVariant.DD,\n value: input.DD,\n setValue: (value: number | null) => setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.DD]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.DD),\n placeholder: props.locale.inputs.day,\n },\n YYYY: {\n nextSegment: getNextSegment(DatePickerVariant.YYYY),\n preSegment: getPrevSegment(DatePickerVariant.YYYY),\n isLast: mode[mode.length - 1] === DatePickerVariant.YYYY,\n isFirst: mode[0] === DatePickerVariant.YYYY,\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.YYYY)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.YYYY)),\n type: DatePickerVariant.YYYY,\n value: input.YYYY,\n setValue: (value: number | null) =>\n setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.YYYY]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.YYYY),\n placeholder: props.locale.inputs.year,\n },\n };\n const resultSort = mode\n .map((e) => {\n if (e === DatePickerVariant.DD) return result.DD;\n if (e === DatePickerVariant.MM) return result.MM;\n if (e === DatePickerVariant.YYYY) return result.YYYY;\n return null;\n })\n .filter((e) => e !== null);\n return { sort: resultSort, default: result };\n }, [\n props.locale.inputs.day,\n props.locale.inputs.month,\n props.locale.inputs.year,\n getNextSegment,\n getPrevSegment,\n mode,\n input.DD,\n input.MM,\n input.YYYY,\n ]);\n const daysInWeek = useMemo(() => {\n const weekOrder: WeekItem['value'][] = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];\n\n return weekOrder.map((key, index) => {\n const found = props.locale.weeks.find((w) => w.value === key);\n return {\n index,\n label: found?.localeShort ?? key.toUpperCase(),\n };\n });\n }, [props.locale.weeks]);\n const daysInMonth: DateDayProps[] = useMemo(() => {\n const today = moment.utc();\n const startOfMonth = (valueMoment ?? dateDefaultMoment).clone().startOf('month');\n const endOfMonth = (valueMoment ?? dateDefaultMoment).clone().endOf('month');\n const days = [];\n\n const dateMin = props.dateMin ? moment.utc(props.dateMin) : null;\n const dateMax = props.dateMax ? moment.utc(props.dateMax) : null;\n\n const daysToAddBefore = startOfMonth.isoWeekday() - 1;\n if (daysToAddBefore > 0) {\n for (let i = daysToAddBefore; i > 0; i--) {\n const day = startOfMonth.clone().subtract(i, 'days');\n days.push({\n value: day.valueOf(),\n labelString: day.format('dd'),\n labelNumber: day.date(),\n dayOfWeek: day.isoWeekday(),\n isWeekend: day.isoWeekday() === 6 || day.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: day.isSame(today, 'day'),\n isCurrentMonth: false,\n isDisabled: day.isBefore(dateMin, 'day') || day.isAfter(dateMax, 'day'),\n });\n }\n }\n\n const currentDate = startOfMonth.clone();\n while (currentDate <= endOfMonth) {\n days.push({\n value: currentDate.valueOf(),\n labelString: currentDate.format('dd'),\n labelNumber: currentDate.date(),\n dayOfWeek: currentDate.isoWeekday(),\n isWeekend: currentDate.isoWeekday() === 6 || currentDate.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: currentDate.isSame(today, 'day'),\n isCurrentMonth: true,\n isDisabled: currentDate.isBefore(dateMin, 'day') || currentDate.isAfter(dateMax, 'day'),\n });\n currentDate.add(1, 'day');\n }\n\n const daysToAddAfter = 7 - endOfMonth.isoWeekday();\n if (daysToAddAfter > 0) {\n for (let i = 1; i <= daysToAddAfter; i++) {\n const day = endOfMonth.clone().add(i, 'days').startOf('day');\n days.push({\n value: day.valueOf(),\n labelString: day.format('dd'),\n labelNumber: day.date(),\n dayOfWeek: day.isoWeekday(),\n isWeekend: day.isoWeekday() === 6 || day.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: day.isSame(today, 'day'),\n isCurrentMonth: false,\n isDisabled: day.isBefore(dateMin, 'day') || day.isAfter(dateMax, 'day'),\n });\n }\n }\n\n days.sort((a, b) => a.value - b.value);\n return days;\n }, [valueMoment, dateDefaultMoment, props.dateMax, props.dateMin]);\n\n const rows = useMemo(() => countSevens(daysInMonth.length) + 1, [daysInMonth]);\n const height = useMemo(\n () => 40 + rows * 28 + (rows - 1) * 6 + KEY_SIZE_DATA[props.size].padding * 2,\n [props.size, rows],\n );\n\n const sizeRadius = useMemo(() => KEY_SIZE_DATA[props.size].radius, [props.size]);\n const sizePadding = useMemo(() => KEY_SIZE_DATA[props.size].padding, [props.size]);\n\n const isHasValue = useMemo(() => {\n return valueMoment !== null;\n }, [valueMoment]);\n const isBlockNextMonth = useMemo(() => {\n const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month').startOf('month');\n const isBeforeEndDate = props.dateMax ? nextMonth.isAfter(moment.utc(props.dateMax), 'month') : false;\n return isBeforeEndDate;\n }, [valueMoment, props.dateMax, dateDefaultMoment]);\n const isBlockPrevMonth = useMemo(() => {\n const prevMonth = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month').startOf('month');\n const isAfterStartDate = props.dateMin ? prevMonth.isBefore(moment.utc(props.dateMin), 'month') : false;\n return isAfterStartDate;\n }, [valueMoment, props.dateMin, dateDefaultMoment]);\n\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n const refPrevValue = useRef('');\n const refSelectMonth = useRef<HTMLElement>(null);\n const refSelectYear = useRef<HTMLElement>(null);\n const refHiddenInput = useRef<HTMLInputElement>(null);\n\n const onFocusPopover = useCallback(() => {\n props.onFocus?.();\n }, [props.onFocus]);\n const onBlurPopover = useCallback(() => {\n props.onBlur?.();\n }, [props.onBlur]);\n const onBlurReference = useCallback(() => {\n setActiveSegment(null);\n }, []);\n const { isOpen, refReference, refFloating, floatingStyles, close, toggle } = usePopover({\n placement: 'bottom-start',\n offset: sizePadding,\n mode: 'independence',\n isClickOutside: true,\n refsExcludeClickOutside: [refSelectMonth, refSelectYear],\n isDisabled: props?.isDisabled || props?.isReadOnly,\n onFocus: onFocusPopover,\n onBlur: onBlurPopover,\n onBlurReference: onBlurReference,\n });\n\n const isShowPlaceholder = useMemo(() => {\n return !!(!isInputFocused && !isHasValue && props.labelPlaceholder && !isOpen && !isHasInput && !activeSegment);\n }, [isInputFocused, isHasValue, isOpen, props.labelPlaceholder, isHasInput, activeSegment]);\n\n const onChangeDate = useCallback(\n (timestamp: number) => {\n const momentNewDate = moment(timestamp).utc();\n if (valueMoment?.isSame(momentNewDate, 'day')) return;\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n\n setInput({\n [DatePickerVariant.DD]: momentNewDate.clone().date(),\n [DatePickerVariant.MM]: momentNewDate.clone().month() + 1,\n [DatePickerVariant.YYYY]: momentNewDate.clone().year(),\n });\n },\n [valueMoment, onChange],\n );\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n const key = e.key;\n\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Tab', 'Enter'];\n\n const isDigit = /^\\d$/.test(key);\n const isAllowed = isDigit || allowedKeys.includes(key) || e.ctrlKey || e.metaKey;\n\n if (!isAllowed) {\n e.preventDefault();\n return;\n }\n\n if (activeSegment && dataDate.default[activeSegment]) {\n if (isDigit) {\n const digit = key;\n\n handleDigitKey(digit, activeSegment, input, dataDate);\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Tab') {\n if (!dataDate.default[activeSegment].isLast) {\n e.preventDefault();\n dataDate.default[activeSegment].onNext();\n } else {\n refHiddenInput?.current?.blur();\n }\n }\n if (key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Backspace' || key === 'Delete') {\n if (activeSegment === DatePickerVariant.DD) {\n if (input.DD !== null) {\n const current = input.DD.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n if (input.MM !== null) {\n const current = input.MM.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n if (input.YYYY !== null) {\n const current = input.YYYY.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n dataDate.default[activeSegment].onPrev();\n }\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n dataDate.default[activeSegment].onNext();\n }\n }\n },\n [activeSegment, input, dataDate.default, dataDate],\n );\n const onNextMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month');\n onChangeDate(newDate.valueOf());\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf());\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n useEffect(() => {\n setDateDefaultMoment(moment(props.dateDefault).utc());\n }, [props.dateDefault]);\n\n useEffect(() => {\n setValueMoment(props.value || props.defaultValue ? moment(props.value ?? props.defaultValue).utc() : null);\n if (props.value) {\n setInput({\n [DatePickerVariant.DD]: moment(props.value).utc().date(),\n [DatePickerVariant.MM]: moment(props.value).utc().month() + 1,\n [DatePickerVariant.YYYY]: moment(props.value).utc().year(),\n });\n }\n }, [props.value, props.defaultValue]);\n\n const getValidateInput = useCallback(\n (\n input: Record<DatePickerVariant, number | null>,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n ) => {\n const day = input.DD ?? NaN;\n const month = input.MM ?? NaN;\n const year = input.YYYY ?? NaN;\n const isHasInput =\n input[DatePickerVariant.DD] !== null ||\n input[DatePickerVariant.MM] !== null ||\n input[DatePickerVariant.YYYY] !== null;\n if (!Number.isNaN(day) && !Number.isNaN(month) && !Number.isNaN(year)) {\n const m = moment.utc(`${day}.${month}.${year}`, 'D.M.YYYY', true).startOf('day');\n if (m.isValid()) {\n onSuccess?.(m.valueOf());\n } else {\n onFailure?.();\n }\n } else {\n onNan?.(isHasInput);\n }\n },\n [],\n );\n\n useEffect(() => {\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [getValidateInput, onChangeDate, onChange, input]);\n\n useEffect(() => {\n if (!isOpen && !isInputFocused && isHasInput && !activeSegment)\n getValidateInput(\n input,\n () => {},\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n );\n }, [getValidateInput, onClearInput, input, isOpen, isInputFocused, onChange, isHasInput, activeSegment]);\n\n useEffect(() => {\n if (activeSegment) {\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment]);\n return (\n <>\n <DateWrapper\n $size={props.size}\n $genre={props.genre}\n $sx={props.sx}\n $isDisabled={props?.isDisabled}\n $isMinWidth={props?.isMinWidth}\n $radius={sizeRadius}\n $parentListHeight={height}\n tabIndex={-1}\n >\n <DateInputWrapper\n ref={refReference as RefObject<HTMLDivElement | null>}\n $genre={props.genre}\n $size={props.size}\n $isShowPlaceholder={isShowPlaceholder}\n $isDisabled={props?.isDisabled}\n $isReadOnly={props?.isReadOnly}\n $isDisabledOutline={props?.isDisabledOutline}\n $isOutlineBoxShadow={props?.isOutlineBoxShadow}\n tabIndex={-1}\n $error={\n isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error\n }\n $isOpen={isOpen || !!activeSegment}\n onClick={() => {\n if (!activeSegment && !props?.isReadOnly) setActiveSegment(DatePickerVariant.DD);\n }}\n >\n <input\n name={props.name}\n id={props.id}\n ref={refHiddenInput}\n type='tel'\n inputMode='numeric'\n tabIndex={0}\n disabled={props?.isDisabled || props?.isReadOnly}\n style={{\n position: 'absolute',\n left: '-100dvw',\n top: 0,\n // left: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={handleKeyDown}\n onChange={(e) => {\n const value = e.target.value;\n const prevValue = refPrevValue.current;\n\n const newChar = value.length > prevValue.length ? value.slice(-1) : null;\n\n refPrevValue.current = value;\n\n if (newChar && /^\\d$/.test(newChar)) {\n handleKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n handleKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n // if (newChar === '\\n') {\n // close();\n // }\n }}\n onFocus={() => {\n setIsInputFocused(true);\n if (!activeSegment) setActiveSegment(DatePickerVariant.DD);\n }}\n onBlur={() => {\n setIsInputFocused(false);\n\n if (!isOpen) {\n props.onBlur?.();\n }\n }}\n />\n {isShowPlaceholder ? (\n <Typography\n sx={{ default: { size: 16, line: 1, isNoUserSelect: true } }}\n sxStandard={(theme) => ({\n default: {\n color: theme.colors.input[props.genre].color.placeholder,\n },\n })}\n >\n {props.labelPlaceholder}\n </Typography>\n ) : (\n dataDate.sort.map((date, index) => (\n <Fragment key={date.type}>\n <DateInput\n $isHaveValue={!!date.value}\n $isActive={activeSegment === date.type}\n $genre={props.genre}\n $size={props.size}\n $font={{\n size: props.font?.size ?? 16,\n weight: props.font?.weight ?? (props.isBold ? 500 : 400),\n family: props.font?.family ?? theme.font.family,\n height: props.font?.height ?? theme.font.lineHeight,\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n if (props?.isDisabled || props?.isReadOnly) return;\n date.setActive();\n }}\n >\n {date.value != null\n ? String(date.value).padStart(date.type === DatePickerVariant.YYYY ? 1 : 2, '0')\n : date.placeholder || ''}\n </DateInput>\n {index !== dataDate.sort.length - 1 && (\n <span style={{ width: '4px', pointerEvents: 'none', textAlign: 'center' }}>.</span>\n )}\n </Fragment>\n ))\n )}\n <DateInputButton\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullSize\n isRadius\n isOnlyIcon\n icons={[{ name: 'Calendar', type: 'id' }]}\n isDisabled={props?.isDisabled || props?.isReadOnly}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setActiveSegment(null);\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggle();\n }}\n />\n </DateInputWrapper>\n </DateWrapper>\n <Popover\n sx={(theme) => ({\n default: {\n background: theme.colors.input[props.genre].background.rest,\n border: `solid 1px ${theme.colors.input[props.genre].border.rest}`,\n },\n })}\n size={props.size}\n genre={props.genre}\n isOpen={isOpen}\n isShowAlwaysOutline\n floatingStyles={floatingStyles}\n ref={refFloating}\n >\n <DateDropdownList $isInputEffect={props.isInputEffect} $genre={props.genre} $size={props.size}>\n <Stack\n sx={{\n default: {\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n }}\n >\n <Button\n type='button'\n isRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: 90,\n },\n ]}\n isWidthAsHeight\n genre={props.genre}\n size={'small'}\n onClick={() => !isBlockPrevMonth && onPrevMonth()}\n isHidden={isBlockPrevMonth}\n />\n <Stack sx={{ default: { gap: '8px' } }}>\n <SelectMonth\n monthsLocale={props.locale.months}\n genre={props.genre}\n size={'small'}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('month').utc().valueOf()}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n isShortLabel\n refFloating={refSelectMonth}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp);\n }}\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n <SelectYear\n genre={props.genre}\n size={'small'}\n refFloating={refSelectYear}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('year').utc().valueOf()}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp);\n }}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n </Stack>\n <Button\n type='button'\n onClick={() => !isBlockNextMonth && onNextMonth()}\n isWidthAsHeight\n isRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: -90,\n },\n ]}\n genre={props.genre}\n size={'small'}\n isHidden={isBlockNextMonth}\n />\n </Stack>\n <DateDropdownDays $rows={rows}>\n {daysInWeek.map((e, index) => (\n <DateDropdownDayOfWeek\n $font={{\n size: 12,\n weight: 700,\n family: props.font?.family ?? theme.font.family,\n }}\n tabIndex={-1}\n type='button'\n $isToday={false}\n $isWeekend={false}\n $genre={props.genre}\n $size={props.size}\n $row={daysInMonth[0]?.weekOfMonth - 1}\n $column={index + 1}\n key={`${e.label}-${index}`}\n >\n {e.label}\n </DateDropdownDayOfWeek>\n ))}\n {daysInMonth.map((day) => (\n <DateDropdownDay\n $font={{\n size: 12,\n weight: 700,\n family: props.font?.family ?? theme.font.family,\n }}\n type='button'\n $isDisabled={day.isDisabled}\n $isDisabledOutline={day.isDisabled ?? props.isDisabledOutline}\n $isOutlineBoxShadow={props.isOutlineBoxShadow}\n $isReadOnly={props.isReadOnly}\n $genre={props.genre}\n $size={props.size}\n $row={day?.weekOfMonth + 1}\n $column={day.dayOfWeek}\n key={day.value}\n onClick={() => {\n if (!day.isDisabled) {\n onChangeDate(day.value);\n if (props.isOnClickClose) {\n close();\n }\n }\n }}\n tabIndex={day.isDisabled ? -1 : 0}\n $isToday={day.isToday}\n $isWeekend={day.isWeekend}\n $isChoice={day.value === valueMoment?.valueOf()}\n $isCurrentMonth={day.isCurrentMonth}\n >\n {!day.isDisabled && <Ripple color={theme.colors.date[props.genre].color.rest} />}\n {day.labelNumber}\n </DateDropdownDay>\n ))}\n </DateDropdownDays>\n </DateDropdownList>\n </Popover>\n {isError || props?.error ? (\n <ErrorMessage\n {...(isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error)}\n size={props?.error?.size ?? props.size}\n font={{\n size: 12,\n weight: 400,\n family: props.font?.family ?? theme.font.family,\n }}\n />\n ) : null}\n </>\n );\n};\nfunction handleDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: Record<DatePickerVariant, number | null>,\n dataDate: { default: Record<DatePickerVariant, { setValue: (value: number) => void; onNext: () => void }> },\n) {\n const digit = key; // '0'..'9'\n const seg = activeSegment;\n const current = input[seg]?.toString() ?? ''; // Преобразуем number в string для работы\n\n // Вспомогательная проверка\n const isZero = (s: string) => s === '0';\n const toNum = (s: string) => Number(s);\n\n if (seg === DatePickerVariant.DD) {\n // Дни: максимум 31, ноль недопустим как самостоятельное значение\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n return;\n }\n\n // special-case: если было '0' и пользователь ввёл не '0' — НЕ подставляем '0' перед цифрой,\n // сохраняем single-digit и считаем ввод завершённым (переходим).\n if (current.length === 1 && isZero(current)) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed); // сохраняем число, а не строку\n dataDate.default[seg].onNext();\n return;\n }\n\n // обычный путь: добавляем цифру и решаем — перезаписать или дополнить\n const potential = current + digit;\n const potentialParsed = toNum(potential);\n\n // ИСПРАВЛЕНИЕ: если потенциальное значение больше 31, используем только новую цифру и переходим дальше\n if (potentialParsed > 31) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n dataDate.default[seg].onNext(); // Переходим к следующему сегменту\n return;\n }\n\n // Если потенциальное значение равно 0, используем только новую цифру\n const nextValue = potentialParsed === 0 ? digit : potential;\n const parsed = toNum(nextValue);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n if (nextValue.length === 2) dataDate.default[seg].onNext();\n } else if (seg === DatePickerVariant.MM) {\n // Месяцы: максимум 12, ноль недопустим как самостоятельное значение\n if (current.length >= 2) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed);\n return;\n }\n\n if (current.length === 1 && isZero(current)) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed); // сохраняем число, а не строку\n dataDate.default[seg].onNext();\n return;\n }\n\n const potential = current + digit;\n const potentialParsed = toNum(potential);\n const nextValue = potentialParsed === 0 || potentialParsed > 12 ? digit : potential;\n\n const parsed = toNum(nextValue);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed);\n if (nextValue.length === 2 || (nextValue.length === 1 && parsed > 1)) {\n dataDate.default[seg].onNext();\n }\n } else if (seg === DatePickerVariant.YYYY) {\n // Год: накапливаем до 4 цифр. Если уже 4 — начинаем заново (как раньше)\n if (current.length >= 4) {\n if (digit === '0') return;\n dataDate.default[seg].setValue(toNum(digit));\n return;\n }\n\n const nextValue = (current + digit).slice(-4);\n dataDate.default[seg].setValue(toNum(nextValue));\n }\n}\n"],"names":["DateWrapper","styled","div","props","$isMinWidth","css","addSX","addNiceNumber","DateDropdownListParent","motion","addRemoveScrollbar","DateDropdownList","addInputIsInputEffect","DateDropdownDays","$rows","addDateDropdownDaySize","$size","KEY_SIZE_DATA","radius","theme","colors","date","$genre","background","rest","border","color","$row","$column","$isDisabled","hover","addTransition","$isWeekend","weekend","$isToday","today","$isChoice","choice","$isCurrentMonth","addFont","addOutline","DateDropdownDay","button","DateDropdownDayOfWeek","addDateInputGenre","$isActive","palette","black10","$isHaveValue","input","placeholder","addDateInputSize","DateInput","addRemoveOutline","addDateInputWrapperGenre","$isOpen","$isReadOnly","$isDisabledOutline","$isOutlineBoxShadow","states","focus","addDateInputWrapperSize","$isShowPlaceholder","padding","height","DateInputWrapper","addDisabled","addError","addDateInputButtonSize","size","DateInputButton","Button","DatePickerVariant","onChange","useTheme","valueMoment","setValueMoment","useState","dateDefaultMoment","setDateDefaultMoment","moment","dateDefault","utc","setInput","DD","MM","YYYY","isHasInput","useMemo","onClearInput","useCallback","activeSegment","setActiveSegment","isError","setIsError","mode","length","Set","getNextSegment","currentSegment","currentIndex","indexOf","getPrevSegment","dataDate","result","nextSegment","preSegment","onNext","onPrev","isLast","isFirst","type","value","setValue","prevValue","setActive","locale","inputs","month","day","year","sort","map","e","filter","default","daysInWeek","key","index","found","weeks","find","w","label","localeShort","toUpperCase","daysInMonth","startOfMonth","clone","startOf","endOfMonth","endOf","days","dateMin","dateMax","daysToAddBefore","isoWeekday","i","subtract","push","valueOf","labelString","format","labelNumber","dayOfWeek","isWeekend","weekOfMonth","Math","ceil","isToday","isSame","isCurrentMonth","isDisabled","isBefore","isAfter","currentDate","add","daysToAddAfter","a","b","rows","number","count","floor","countSevens","sizeRadius","sizePadding","isHasValue","isBlockNextMonth","nextMonth","isBlockPrevMonth","prevMonth","isInputFocused","setIsInputFocused","refPrevValue","useRef","refSelectMonth","refSelectYear","refHiddenInput","onFocusPopover","_a","onFocus","call","onBlurPopover","onBlur","onBlurReference","isOpen","refReference","refFloating","floatingStyles","close","toggle","usePopover","placement","offset","isClickOutside","refsExcludeClickOutside","isReadOnly","isShowPlaceholder","labelPlaceholder","onChangeDate","timestamp","momentNewDate","handleKeyDown","isDigit","test","includes","ctrlKey","metaKey","digit","seg","current","toString","isZero","s","toNum","Number","parsed","potential","potentialParsed","nextValue","slice","handleDigitKey","preventDefault","stopPropagation","blur","newValue","onNextMonth","newDate","onPrevMonth","useEffect","defaultValue","getValidateInput","onSuccess","onFailure","onNan","NaN","isNaN","m","isValid","jsxs","Fragment","children","jsx","genre","$sx","sx","isMinWidth","$radius","$parentListHeight","tabIndex","ref","isDisabledOutline","isOutlineBoxShadow","$error","error","notValidDate","onClick","name","id","inputMode","disabled","style","position","left","top","width","opacity","onKeyDown","target","newChar","Typography","line","isNoUserSelect","sxStandard","$font","font","weight","_b","isBold","family","_c","_d","lineHeight","String","padStart","pointerEvents","textAlign","isWidthAsHeight","isFullSize","isRadius","isOnlyIcon","icons","Popover","isShowAlwaysOutline","$isInputEffect","isInputEffect","Stack","justifyContent","alignItems","turn","isHidden","gap","SelectMonth","monthsLocale","months","isOnClickOptionClose","isStayValueAfterSelect","isOnlyColorInSelectListOption","isCenter","isShortLabel","SelectYear","isOnClickClose","Ripple","ErrorMessage"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.constants-BCpaUfFz.js","sources":["../src/contexts/context-dialog/context.tsx","../src/contexts/context-dialog/context.hooks.ts","../src/contexts/context-dialog/context.styles.tsx","../src/contexts/context-dialog/context.constants.ts"],"sourcesContent":["import { Outside } from '@local/areas/outside';\n\nimport { AnimatePresence } from 'framer-motion';\nimport { createContext, FC, memo, useCallback, useMemo, useState } from 'react';\n\nimport {\n DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT,\n DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT,\n DialogContentProps,\n DialogContextProps,\n DialogElementProps,\n DialogElementWrapper,\n DialogLayout,\n ProviderDialogProps,\n} from '.';\n\nexport const DialogContext = createContext<DialogContextProps<object> | null>(null);\n\nexport const ProviderDialog: FC<ProviderDialogProps> = (props) => {\n const [dialogHistory, setDialogHistory] = useState<DialogContentProps<object>[]>([]);\n\n const remove: DialogContextProps<object>['remove'] = useCallback((id) => {\n setDialogHistory((prev) => {\n const itemToRemove = prev.find((item) => item.id === id);\n\n if (!itemToRemove) return prev;\n\n const indexToRemove = itemToRemove.index!;\n\n const updatedHistory = prev\n .filter((item) => item.id !== id)\n .map((item) => ({\n ...item,\n index: item.index! > indexToRemove ? item.index! - 1 : item.index,\n }));\n\n return updatedHistory;\n });\n }, []);\n\n const update: DialogContextProps<object>['update'] = useCallback((dialog) => {\n setDialogHistory((prev) => {\n return prev.map((item) => {\n if (item.id === dialog.id) {\n return { ...item, ...dialog };\n }\n return item;\n });\n });\n }, []);\n\n const add: DialogContextProps<object>['add'] = useCallback((dialog) => {\n const id = dialog.id;\n\n setDialogHistory((prev) => {\n const existingIndex = prev.findIndex((item) => item.id === id);\n\n let updatedHistory;\n if (existingIndex !== -1) {\n updatedHistory = [...prev];\n updatedHistory[existingIndex] = { ...dialog, id, index: prev[existingIndex].index };\n } else {\n updatedHistory = prev.map((item) => ({\n ...item,\n index: item.index! + 1,\n }));\n const newContent = { ...dialog, id, index: 0 };\n updatedHistory.unshift(newContent);\n }\n\n return updatedHistory;\n });\n }, []);\n\n const dialogHistoryLength = useMemo(() => dialogHistory.length, [dialogHistory.length]);\n const zIndex = useMemo(() => props.zIndex, [props.zIndex]);\n\n return (\n <DialogContext.Provider value={{ add, remove, update, dialogHistory }}>\n <AnimatePresence>\n {dialogHistoryLength && (\n <DialogLayout\n $zIndex={zIndex}\n initial={{\n opacity: 0,\n }}\n exit={{\n opacity: 0,\n }}\n animate={{\n opacity: 1,\n }}\n transition={{ type: 'spring', duration: DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT }}\n >\n {dialogHistory.map((dialog) => {\n const index = dialog.index;\n const content = dialog.content;\n const id = dialog.id;\n const props = dialog.props;\n\n return (\n <MemoizedDialogElement\n index={index}\n content={content}\n props={props}\n key={id}\n id={id}\n remove={() => remove(id)}\n />\n );\n })}\n </DialogLayout>\n )}\n </AnimatePresence>\n\n {props.children}\n </DialogContext.Provider>\n );\n};\n\nconst DialogElement = (props: DialogElementProps) => {\n const [isAnimating, setIsAnimating] = useState(true);\n return (\n <Outside onOutsideClick={() => props.remove()}>\n <DialogElementWrapper\n key={props.id}\n initial={{\n opacity: 0,\n scale: 0.8,\n }}\n animate={{\n opacity: 1,\n scale: 1,\n }}\n onAnimationComplete={() => setIsAnimating(false)}\n transition={{\n type: 'spring',\n duration: DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT,\n delay: DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT,\n }}\n style={{\n zIndex: -props.index!,\n }}\n $isDisabledOutline={props.props?.propsDialog?.isDisabledOutline}\n $isOutlineBoxShadow={props.props?.propsDialog?.isOutlineBoxShadow}\n $isReadOnly={props.props?.propsDialog?.isReadOnly}\n $propsDialog={props.props?.propsDialog}\n >\n {props.content?.(props.props, props.remove, isAnimating)}\n </DialogElementWrapper>\n </Outside>\n );\n};\nconst MemoizedDialogElement = memo(DialogElement);\n","import { useCallback, useContext, useEffect, useState } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { useDeepCompareMemoize } from '@local/hooks/use-deep-compare-memoize';\n\nimport { DialogContext, DialogContextItemProps, DialogContextProps, useDialogProps } from '.';\n\nexport const useDialogs = (): DialogContextProps<object> => {\n const context = useContext(DialogContext);\n if (!context) {\n throw new Error('useDialogs must be used within an ProviderDialog');\n }\n return context;\n};\n\nexport const useDialog = <T extends object>(props?: useDialogProps<T>): DialogContextItemProps<T> => {\n const { add, remove, update, dialogHistory } = useDialogs();\n const [id, setId] = useState<string | null>(null);\n\n const localAdd: DialogContextItemProps<T>['add'] = useCallback(\n (dialog) => {\n const find = dialogHistory.find((item) => item.id === dialog.id);\n if (!id || !find) {\n const id = dialog.id || uuidv4();\n setId(id);\n add({ ...(dialog as T), props: props, id });\n }\n },\n [add, dialogHistory, id, props],\n );\n const localRemove = useCallback(() => {\n if (id) {\n remove(id);\n setId(null);\n }\n }, [id, remove]);\n\n const propsMemo = useDeepCompareMemoize(props);\n\n useEffect(() => {\n if (id) {\n update({ id, props: propsMemo });\n }\n }, [id, propsMemo, update]);\n\n return { add: localAdd, remove: localRemove, id };\n};\n","import { motion } from 'framer-motion';\nimport styled from 'styled-components';\n\nimport { addOutline } from '@local/styles/add';\n\nimport {\n DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING,\n DialogElementWrapperProps,\n DialogLayoutProps,\n} from '.';\n\nexport const DialogLayout = styled(motion.div)<DialogLayoutProps>`\n position: fixed;\n flex: 1;\n width: 100%;\n height: 100%;\n background-color: ${(props) => props.theme.palette.black50};\n z-index: ${(props) => props.$zIndex};\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n`;\n\nexport const DialogElementWrapper = styled(motion.dialog)<DialogElementWrapperProps>`\n ${addOutline};\n max-width: ${(props) => props.$propsDialog?.maxWidth || DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH};\n max-height: ${(props) => props.$propsDialog?.maxHeight || DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT};\n border-radius: ${(props) => props.$propsDialog?.borderRadius || DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS};\n background: ${(props) =>\n props.$propsDialog?.background\n ? props.theme.palette[props.$propsDialog.background]\n : props.theme.palette[DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND]};\n padding: ${(props) => props.$propsDialog?.padding || DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING};\n width: max-content;\n height: max-content;\n border: 0;\n display: flex;\n flex-direction: column;\n gap: 10px;\n align-items: flex-start;\n justify-content: flex-start;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0px 10px 30px 0px rgba(0, 0, 0, 0.2);\n overflow: hidden;\n`;\nexport const DialogContent = styled(motion.div)``;\n","// export const DEFAULT_PROVIDER_Dialog_SCALE = 0.04\nimport { IThemePaletteKeys } from '@local/theme';\n\nexport const DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT = 0.3;\nexport const DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT = 0.4;\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT: string = 'max-content';\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH: string = 'max-content';\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS: string = '12px';\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING: string = '20px';\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND: IThemePaletteKeys = 'whiteStandard';\n"],"names":["jsxs","jsx","props","id","uuidv4"],"mappings":"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"}