@jenesei-software/jenesei-kit-react 2.2.0 → 2.2.2

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 (236) hide show
  1. package/build/{AnimatePresence-19yP-TCg.js → AnimatePresence-BWc2vFe-.js} +2 -2
  2. package/build/{AnimatePresence-19yP-TCg.js.map → AnimatePresence-BWc2vFe-.js.map} +1 -1
  3. package/build/{AnimatePresence-BdBJCJuf.cjs → AnimatePresence-DeKd4Eek.cjs} +2 -2
  4. package/build/{AnimatePresence-BdBJCJuf.cjs.map → AnimatePresence-DeKd4Eek.cjs.map} +1 -1
  5. package/build/area-outside.cjs.js +1 -1
  6. package/build/area-outside.es.js +1 -1
  7. package/build/area-preview.cjs.js +1 -1
  8. package/build/area-preview.es.js +1 -1
  9. package/build/area-skeleton.cjs.js +1 -1
  10. package/build/area-skeleton.es.js +1 -1
  11. package/build/{button-BbGiFvok.js → button-C1w25-Hk.js} +4 -4
  12. package/build/{button-BbGiFvok.js.map → button-C1w25-Hk.js.map} +1 -1
  13. package/build/{button-BuPpgfL_.cjs → button-CHEeSypf.cjs} +2 -2
  14. package/build/{button-BuPpgfL_.cjs.map → button-CHEeSypf.cjs.map} +1 -1
  15. package/build/{checkbox-qgc_Ntc3.cjs → checkbox-Bxt8K0ZY.cjs} +2 -2
  16. package/build/{checkbox-qgc_Ntc3.cjs.map → checkbox-Bxt8K0ZY.cjs.map} +1 -1
  17. package/build/{checkbox-CXxWDklX.js → checkbox-DPkXe4_5.js} +5 -5
  18. package/build/{checkbox-CXxWDklX.js.map → checkbox-DPkXe4_5.js.map} +1 -1
  19. package/build/{component-jsn2T8Hu.cjs → component-CbJ_P8yq.cjs} +2 -2
  20. package/build/{component-jsn2T8Hu.cjs.map → component-CbJ_P8yq.cjs.map} +1 -1
  21. package/build/{component-BHyXT2-h.js → component-DGfyD5-u.js} +4 -4
  22. package/build/{component-BHyXT2-h.js.map → component-DGfyD5-u.js.map} +1 -1
  23. package/build/component-button.cjs.js +1 -1
  24. package/build/component-button.es.js +1 -1
  25. package/build/component-checkbox.cjs.js +1 -1
  26. package/build/component-checkbox.es.js +1 -1
  27. package/build/component-date-picker.cjs.js +1 -1
  28. package/build/component-date-picker.es.js +1 -1
  29. package/build/component-icon.cjs.js +1 -1
  30. package/build/component-icon.es.js +1 -1
  31. package/build/component-input-otp.cjs.js +1 -1
  32. package/build/component-input-otp.es.js +1 -1
  33. package/build/component-input.cjs.js +1 -1
  34. package/build/component-input.es.js +1 -1
  35. package/build/component-pagination.cjs.js +1 -1
  36. package/build/component-pagination.es.js +1 -1
  37. package/build/component-popover.cjs.js +1 -1
  38. package/build/component-popover.es.js +1 -1
  39. package/build/component-select.cjs.js +1 -1
  40. package/build/component-select.es.js +5 -6
  41. package/build/component-separator.cjs.js +1 -1
  42. package/build/component-separator.es.js +1 -1
  43. package/build/component-stack.cjs.js +1 -1
  44. package/build/component-stack.es.js +1 -1
  45. package/build/component-textarea.cjs.js +1 -1
  46. package/build/component-textarea.es.js +1 -1
  47. package/build/component-toggle.cjs.js +1 -1
  48. package/build/component-toggle.es.js +1 -1
  49. package/build/component-tooltip.cjs.js +1 -1
  50. package/build/component-tooltip.es.js +1 -1
  51. package/build/component-typography.cjs.js +1 -1
  52. package/build/component-typography.es.js +1 -1
  53. package/build/components/select/component.examples.d.ts +1 -2
  54. package/build/components/select/component.types.d.ts +1 -5
  55. package/build/components/select/index.d.ts +2 -2
  56. package/build/components-error.cjs.js +1 -1
  57. package/build/components-error.es.js +1 -1
  58. package/build/{context-app-CMK9g6MI.js → context-app-C9XoarPw.js} +6 -6
  59. package/build/{context-app-CMK9g6MI.js.map → context-app-C9XoarPw.js.map} +1 -1
  60. package/build/{context-app-HhFcx1wY.cjs → context-app-Dsa1tKlU.cjs} +2 -2
  61. package/build/{context-app-HhFcx1wY.cjs.map → context-app-Dsa1tKlU.cjs.map} +1 -1
  62. package/build/context-app.cjs.js +1 -1
  63. package/build/context-app.es.js +1 -1
  64. package/build/{context-browser-theme-Cb6siWO0.js → context-browser-theme-CRBCZ_y_.js} +2 -2
  65. package/build/{context-browser-theme-Cb6siWO0.js.map → context-browser-theme-CRBCZ_y_.js.map} +1 -1
  66. package/build/{context-browser-theme-Cso_rAT5.cjs → context-browser-theme-xixEbalV.cjs} +2 -2
  67. package/build/{context-browser-theme-Cso_rAT5.cjs.map → context-browser-theme-xixEbalV.cjs.map} +1 -1
  68. package/build/context-browser-theme.cjs.js +1 -1
  69. package/build/context-browser-theme.es.js +1 -1
  70. package/build/{context-cookie-Btkd2aXy.cjs → context-cookie-DFgWWGA9.cjs} +2 -2
  71. package/build/{context-cookie-Btkd2aXy.cjs.map → context-cookie-DFgWWGA9.cjs.map} +1 -1
  72. package/build/{context-cookie-5CBhf-gb.js → context-cookie-Daq2MZo3.js} +2 -2
  73. package/build/{context-cookie-5CBhf-gb.js.map → context-cookie-Daq2MZo3.js.map} +1 -1
  74. package/build/context-cookie.cjs.js +1 -1
  75. package/build/context-cookie.es.js +1 -1
  76. package/build/context-dialog-DctdSBC8.cjs +3 -0
  77. package/build/context-dialog-DctdSBC8.cjs.map +1 -0
  78. package/build/context-dialog-DzwL2ElF.js +191 -0
  79. package/build/context-dialog-DzwL2ElF.js.map +1 -0
  80. package/build/context-dialog.cjs.js +1 -1
  81. package/build/context-dialog.es.js +1 -1
  82. package/build/{context-geolocation-C7PYGQ2g.js → context-geolocation-B_KYGlfQ.js} +2 -2
  83. package/build/{context-geolocation-C7PYGQ2g.js.map → context-geolocation-B_KYGlfQ.js.map} +1 -1
  84. package/build/{context-geolocation-CV4hV0NX.cjs → context-geolocation-bP0_455H.cjs} +2 -2
  85. package/build/{context-geolocation-CV4hV0NX.cjs.map → context-geolocation-bP0_455H.cjs.map} +1 -1
  86. package/build/context-geolocation.cjs.js +1 -1
  87. package/build/context-geolocation.es.js +1 -1
  88. package/build/{context-local-storage-Bb_vktd8.js → context-local-storage-DA_whw_k.js} +2 -2
  89. package/build/{context-local-storage-Bb_vktd8.js.map → context-local-storage-DA_whw_k.js.map} +1 -1
  90. package/build/{context-local-storage-DUKHVPAA.cjs → context-local-storage-D_x8dwxM.cjs} +2 -2
  91. package/build/{context-local-storage-DUKHVPAA.cjs.map → context-local-storage-D_x8dwxM.cjs.map} +1 -1
  92. package/build/context-local-storage.cjs.js +1 -1
  93. package/build/context-local-storage.es.js +1 -1
  94. package/build/{context-permission-DrcIwK9y.cjs → context-permission-BP9hPUcR.cjs} +2 -2
  95. package/build/{context-permission-DrcIwK9y.cjs.map → context-permission-BP9hPUcR.cjs.map} +1 -1
  96. package/build/{context-permission-Co4BKDOu.js → context-permission-Cj70kL4A.js} +2 -2
  97. package/build/{context-permission-Co4BKDOu.js.map → context-permission-Cj70kL4A.js.map} +1 -1
  98. package/build/context-permission.cjs.js +1 -1
  99. package/build/context-permission.es.js +1 -1
  100. package/build/{context-screen-width-hcRkxzy7.cjs → context-screen-width-Cfe3atNC.cjs} +2 -2
  101. package/build/{context-screen-width-hcRkxzy7.cjs.map → context-screen-width-Cfe3atNC.cjs.map} +1 -1
  102. package/build/{context-screen-width-CFexCIzV.js → context-screen-width-Cq_B7IVp.js} +3 -3
  103. package/build/{context-screen-width-CFexCIzV.js.map → context-screen-width-Cq_B7IVp.js.map} +1 -1
  104. package/build/context-screen-width.cjs.js +1 -1
  105. package/build/context-screen-width.es.js +1 -1
  106. package/build/{context-sonner-4gBa1F7G.cjs → context-sonner-Dqw0jhwT.cjs} +2 -2
  107. package/build/{context-sonner-4gBa1F7G.cjs.map → context-sonner-Dqw0jhwT.cjs.map} +1 -1
  108. package/build/{context-sonner-qDPLFpD5.js → context-sonner-MO6uE8y0.js} +12 -12
  109. package/build/{context-sonner-qDPLFpD5.js.map → context-sonner-MO6uE8y0.js.map} +1 -1
  110. package/build/context-sonner.cjs.js +1 -1
  111. package/build/context-sonner.es.js +1 -1
  112. package/build/contexts/context-app/context.d.ts +2 -2
  113. package/build/contexts/context-dialog/context.types.d.ts +3 -1
  114. package/build/contexts/context-dialog/index.d.ts +1 -1
  115. package/build/cores/consts.d.ts +0 -24
  116. package/build/cores/types.d.ts +0 -14
  117. package/build/date-picker-ATktGA1c.cjs +3 -0
  118. package/build/date-picker-ATktGA1c.cjs.map +1 -0
  119. package/build/date-picker-D81n3KbO.js +813 -0
  120. package/build/date-picker-D81n3KbO.js.map +1 -0
  121. package/build/{dist-DswBAjW1.cjs → dist-SXTf0-_7.cjs} +1 -1
  122. package/build/{dist-DswBAjW1.cjs.map → dist-SXTf0-_7.cjs.map} +1 -1
  123. package/build/{dist-BV0C3tLK.js → dist-ck-7oUux.js} +1 -1
  124. package/build/{dist-BV0C3tLK.js.map → dist-ck-7oUux.js.map} +1 -1
  125. package/build/{error-L2fvWcNv.js → error-BFb2NCum.js} +7 -7
  126. package/build/{error-L2fvWcNv.js.map → error-BFb2NCum.js.map} +1 -1
  127. package/build/{error-DzkkNL2H.cjs → error-BdFba_yV.cjs} +2 -2
  128. package/build/{error-DzkkNL2H.cjs.map → error-BdFba_yV.cjs.map} +1 -1
  129. package/build/{functions-Dwo54amB.cjs → functions-CZrZU5U0.cjs} +1 -1
  130. package/build/{functions-Dwo54amB.cjs.map → functions-CZrZU5U0.cjs.map} +1 -1
  131. package/build/{functions-CLGf7hqw.js → functions-DzX-pTN8.js} +1 -1
  132. package/build/{functions-CLGf7hqw.js.map → functions-DzX-pTN8.js.map} +1 -1
  133. package/build/hooks-use-deep-compare-memoize.cjs.js +1 -1
  134. package/build/hooks-use-deep-compare-memoize.es.js +1 -1
  135. package/build/hooks-use-deep-memo.cjs.js +1 -1
  136. package/build/hooks-use-deep-memo.es.js +1 -1
  137. package/build/hooks-use-responsive-layout.cjs.js +1 -1
  138. package/build/hooks-use-responsive-layout.es.js +1 -1
  139. package/build/hooks-use-typography-styles.cjs.js +1 -1
  140. package/build/hooks-use-typography-styles.es.js +2 -2
  141. package/build/icon-D2w7GViT.js +245 -0
  142. package/build/icon-D2w7GViT.js.map +1 -0
  143. package/build/icon-Ddkbk3-m.cjs +3 -0
  144. package/build/icon-Ddkbk3-m.cjs.map +1 -0
  145. package/build/index.cjs.js +1 -1
  146. package/build/index.d.ts +5 -5
  147. package/build/index.es.js +97 -98
  148. package/build/{input-CV02F03L.js → input-B9ceeR9v.js} +4 -4
  149. package/build/{input-CV02F03L.js.map → input-B9ceeR9v.js.map} +1 -1
  150. package/build/{input-zXF5f99Z.cjs → input-CmdwwrV2.cjs} +2 -2
  151. package/build/{input-zXF5f99Z.cjs.map → input-CmdwwrV2.cjs.map} +1 -1
  152. package/build/{input-otp-BVRCfoRK.cjs → input-otp-CJfZoWd7.cjs} +2 -2
  153. package/build/{input-otp-BVRCfoRK.cjs.map → input-otp-CJfZoWd7.cjs.map} +1 -1
  154. package/build/{input-otp-B9cYxJ7X.js → input-otp-CeMGm5Xq.js} +4 -4
  155. package/build/{input-otp-B9cYxJ7X.js.map → input-otp-CeMGm5Xq.js.map} +1 -1
  156. package/build/{isEqual-Qb81B2zH.js → isEqual-0jZ23Bb6.js} +1 -1
  157. package/build/{isEqual-Qb81B2zH.js.map → isEqual-0jZ23Bb6.js.map} +1 -1
  158. package/build/{isEqual-DeC2HFe5.cjs → isEqual-BA0P9-C8.cjs} +1 -1
  159. package/build/{isEqual-DeC2HFe5.cjs.map → isEqual-BA0P9-C8.cjs.map} +1 -1
  160. package/build/{logger-DZFY33QY.cjs → logger-D3Xu5ef3.cjs} +1 -1
  161. package/build/{logger-DZFY33QY.cjs.map → logger-D3Xu5ef3.cjs.map} +1 -1
  162. package/build/{logger-BRWLzI5S.js → logger-QC3A33gh.js} +1 -1
  163. package/build/{logger-BRWLzI5S.js.map → logger-QC3A33gh.js.map} +1 -1
  164. package/build/{motion-CAPq8wSn.cjs → motion-BWBldnsY.cjs} +2 -2
  165. package/build/{motion-CAPq8wSn.cjs.map → motion-BWBldnsY.cjs.map} +1 -1
  166. package/build/{motion-Dt6TyEjN.js → motion-C1XU2d68.js} +3 -3
  167. package/build/{motion-Dt6TyEjN.js.map → motion-C1XU2d68.js.map} +1 -1
  168. package/build/{outside-B3nRnDGb.cjs → outside-CXyCk8h1.cjs} +2 -2
  169. package/build/{outside-B3nRnDGb.cjs.map → outside-CXyCk8h1.cjs.map} +1 -1
  170. package/build/{outside-DpK1pI8b.js → outside-DopxX0PZ.js} +2 -2
  171. package/build/{outside-DpK1pI8b.js.map → outside-DopxX0PZ.js.map} +1 -1
  172. package/build/{pagination-YXSjZsMZ.js → pagination-BluJtJl7.js} +5 -5
  173. package/build/{pagination-YXSjZsMZ.js.map → pagination-BluJtJl7.js.map} +1 -1
  174. package/build/pagination-VMAFNidU.cjs +3 -0
  175. package/build/{pagination-Dbs4Lrpt.cjs.map → pagination-VMAFNidU.cjs.map} +1 -1
  176. package/build/{popover-1k1MNFwv.js → popover-DHWcQVp1.js} +3 -3
  177. package/build/{popover-1k1MNFwv.js.map → popover-DHWcQVp1.js.map} +1 -1
  178. package/build/{popover-CgwGn-55.cjs → popover-DQkn4RWI.cjs} +2 -2
  179. package/build/{popover-CgwGn-55.cjs.map → popover-DQkn4RWI.cjs.map} +1 -1
  180. package/build/preview-BLu-NOv2.cjs +3 -0
  181. package/build/{preview-dT7fmxcc.cjs.map → preview-BLu-NOv2.cjs.map} +1 -1
  182. package/build/{preview-C_yFxoFH.js → preview-Bc2qdyd4.js} +5 -5
  183. package/build/{preview-C_yFxoFH.js.map → preview-Bc2qdyd4.js.map} +1 -1
  184. package/build/{proxy-_gZenxVU.cjs → proxy-BDese6Pb.cjs} +1 -1
  185. package/build/{proxy-_gZenxVU.cjs.map → proxy-BDese6Pb.cjs.map} +1 -1
  186. package/build/{proxy-wCWa57J3.js → proxy-BFHkqO7P.js} +1 -1
  187. package/build/{proxy-wCWa57J3.js.map → proxy-BFHkqO7P.js.map} +1 -1
  188. package/build/{select-D7EyxR2l.js → select-CCbtkj6f.js} +862 -876
  189. package/build/{select-D7EyxR2l.js.map → select-CCbtkj6f.js.map} +1 -1
  190. package/build/{select-B0adRX2_.cjs → select-CGXyVf57.cjs} +5 -5
  191. package/build/{select-B0adRX2_.cjs.map → select-CGXyVf57.cjs.map} +1 -1
  192. package/build/{separator-CbeH8Lug.cjs → separator-BGVU_LQb.cjs} +2 -2
  193. package/build/{separator-CbeH8Lug.cjs.map → separator-BGVU_LQb.cjs.map} +1 -1
  194. package/build/{separator-hWp-s54-.js → separator-DJEhOPUT.js} +3 -3
  195. package/build/{separator-hWp-s54-.js.map → separator-DJEhOPUT.js.map} +1 -1
  196. package/build/{skeleton-DNwTI6w0.js → skeleton-Bh6zA5iB.js} +4 -4
  197. package/build/{skeleton-DNwTI6w0.js.map → skeleton-Bh6zA5iB.js.map} +1 -1
  198. package/build/{skeleton-BoVFwt7y.cjs → skeleton-DmaXsm9C.cjs} +2 -2
  199. package/build/{skeleton-BoVFwt7y.cjs.map → skeleton-DmaXsm9C.cjs.map} +1 -1
  200. package/build/style-motion.cjs.js +1 -1
  201. package/build/style-motion.es.js +1 -1
  202. package/build/style-utils.cjs.js +1 -1
  203. package/build/style-utils.es.js +1 -1
  204. package/build/styles/utils/types.d.ts +1 -1
  205. package/build/{textarea-CbZSeqGR.cjs → textarea-DInJb6Lz.cjs} +2 -2
  206. package/build/{textarea-CbZSeqGR.cjs.map → textarea-DInJb6Lz.cjs.map} +1 -1
  207. package/build/{textarea-ChkjV_Ha.js → textarea-jIGZ0JdP.js} +4 -4
  208. package/build/{textarea-ChkjV_Ha.js.map → textarea-jIGZ0JdP.js.map} +1 -1
  209. package/build/{toggle-gYw5FUp-.cjs → toggle-BEmUm0of.cjs} +2 -2
  210. package/build/{toggle-gYw5FUp-.cjs.map → toggle-BEmUm0of.cjs.map} +1 -1
  211. package/build/{toggle-I6YvEX4w.js → toggle-D1nXs-LD.js} +4 -4
  212. package/build/{toggle-I6YvEX4w.js.map → toggle-D1nXs-LD.js.map} +1 -1
  213. package/build/{typography-B2KioMfq.js → typography-07KEDl9_.js} +4 -4
  214. package/build/{typography-B2KioMfq.js.map → typography-07KEDl9_.js.map} +1 -1
  215. package/build/{typography-DcxhX_9e.cjs → typography-BKp4OAQI.cjs} +2 -2
  216. package/build/{typography-DcxhX_9e.cjs.map → typography-BKp4OAQI.cjs.map} +1 -1
  217. package/build/{utils-Cona48dZ.js → utils-BRgi6734.js} +1 -1
  218. package/build/{utils-Cona48dZ.js.map → utils-BRgi6734.js.map} +1 -1
  219. package/build/{utils-DtinAjAU.cjs → utils-DCIq-5FL.cjs} +1 -1
  220. package/build/{utils-DtinAjAU.cjs.map → utils-DCIq-5FL.cjs.map} +1 -1
  221. package/package.json +1 -1
  222. package/build/build-info.txt +0 -3
  223. package/build/context-dialog-B67-_jMH.cjs +0 -3
  224. package/build/context-dialog-B67-_jMH.cjs.map +0 -1
  225. package/build/context-dialog-CxGGmBqC.js +0 -176
  226. package/build/context-dialog-CxGGmBqC.js.map +0 -1
  227. package/build/date-picker-CPNNIEa-.cjs +0 -3
  228. package/build/date-picker-CPNNIEa-.cjs.map +0 -1
  229. package/build/date-picker-Uuce_InW.js +0 -689
  230. package/build/date-picker-Uuce_InW.js.map +0 -1
  231. package/build/icon-CoIQwke4.cjs +0 -3
  232. package/build/icon-CoIQwke4.cjs.map +0 -1
  233. package/build/icon-DzAWOQJg.js +0 -277
  234. package/build/icon-DzAWOQJg.js.map +0 -1
  235. package/build/pagination-Dbs4Lrpt.cjs +0 -3
  236. package/build/preview-dT7fmxcc.cjs +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"context-sonner-qDPLFpD5.js","names":[],"sources":["../src/contexts/context-sonner/context.constants.ts","../src/contexts/context-sonner/context.styles.tsx","../src/contexts/context-sonner/context.tsx","../src/contexts/context-sonner/context.hooks.ts"],"sourcesContent":["import { IThemeGenreSonner } from '@local/styles/utils/types';\n\nimport { ISonnerProvider } from './context.types';\n\nexport const DEFAULT_PROVIDER_SONNER_Z_INDEX = 100;\nexport const DEFAULT_PROVIDER_SONNER_SCALE = 0.04;\nexport const DEFAULT_PROVIDER_SONNER_Y = 100;\nexport const DEFAULT_PROVIDER_SONNER_DURATION = 0.3;\nexport const DEFAULT_PROVIDER_SONNER_GENRE: IThemeGenreSonner = 'product';\nexport const DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM = 65;\nexport const DEFAULT_PROVIDER_SONNER_BUTTON: ISonnerProvider['default']['button'] = {\n content: 'Undo',\n onClick: () => {},\n};\n","import { CSS_CLASS, CSS_VARS } from '@local/styles/utils';\nimport { setClasses } from '@local/styles/utils/functions';\nimport { IThemeGenreSonner } from '@local/styles/utils/types';\n\nimport { CSSProperties } from 'react';\n\nimport { ISonnerProvider } from './context.types';\n\nexport const SonnerClass = CSS_CLASS.context.sonner;\n\nexport const SonnerLayout = SonnerClass.layout;\nexport const SonnerElementWrapper = SonnerClass.elementWrapper;\nexport const SonnerContent = SonnerClass.content;\nexport const SonnerIcon = SonnerClass.icon;\nexport const SonnerContentTitle = SonnerClass.contentTitle;\nexport const SonnerContentDescription = SonnerClass.contentDescription;\nexport const SonnerButtonWrapper = SonnerClass.buttonWrapper;\n\nconst SONNER_LAYOUT_POSITION_CLASS: Record<ISonnerProvider['position'], string> = {\n 'bottom-center': SonnerClass.layoutBottomCenter,\n 'bottom-left': SonnerClass.layoutBottomLeft,\n 'bottom-right': SonnerClass.layoutBottomRight,\n 'top-right': SonnerClass.layoutTopRight,\n 'top-left': SonnerClass.layoutTopLeft,\n 'top-center': SonnerClass.layoutTopCenter,\n};\n\ntype ISonnerStyleWithVars = CSSProperties & Record<string, string>;\n\nexport const getSonnerLayoutClassName = (position: ISonnerProvider['position']) =>\n setClasses([SonnerLayout, SONNER_LAYOUT_POSITION_CLASS[position]]);\n\nexport const getSonnerLayoutStyle = (props: Pick<ISonnerProvider, 'gap' | 'zIndex'>): ISonnerStyleWithVars => ({\n '--context-sonner-gap': `${props.gap}px`,\n '--context-sonner-z-index': `${props.zIndex ?? 0}`,\n});\n\nexport const getSonnerElementWrapperStyle = (genre: IThemeGenreSonner): ISonnerStyleWithVars => {\n const genreTheme = CSS_VARS.genre.button[genre];\n\n return {\n '--context-sonner-wrapper-background': genreTheme.background.index,\n '--context-sonner-wrapper-border-color': genreTheme.border.index,\n '--context-sonner-wrapper-box-shadow':\n genre === 'primary' || genre === 'secondary'\n ? CSS_VARS.palette.shadowPrimaryLight\n : CSS_VARS.palette.shadowSecondaryLight,\n '--context-sonner-wrapper-box-shadow-hover':\n genre === 'primary' || genre === 'secondary'\n ? CSS_VARS.palette.shadowSecondaryLight\n : CSS_VARS.palette.shadowPrimaryLight,\n '--context-sonner-icon-color': genreTheme.color.index,\n '--context-sonner-title-color': genreTheme.color.index,\n '--context-sonner-description-color': genreTheme.color.index,\n };\n};\n","import { Button } from '@local/components/button';\nimport { Icon } from '@local/components/icon';\n\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { FC, memo, useCallback, useEffect, useMemo, useState } from 'react';\nimport { createContext } from 'use-context-selector';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n DEFAULT_PROVIDER_SONNER_BUTTON,\n DEFAULT_PROVIDER_SONNER_DURATION,\n DEFAULT_PROVIDER_SONNER_GENRE,\n DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM,\n DEFAULT_PROVIDER_SONNER_SCALE,\n DEFAULT_PROVIDER_SONNER_Y,\n DEFAULT_PROVIDER_SONNER_Z_INDEX,\n} from './context.constants';\nimport {\n getSonnerElementWrapperStyle,\n getSonnerLayoutClassName,\n getSonnerLayoutStyle,\n SonnerButtonWrapper,\n SonnerContent,\n SonnerContentDescription,\n SonnerContentTitle,\n SonnerElementWrapper,\n SonnerIcon,\n} from './context.styles';\nimport {\n ISonnerContent,\n ISonnerContentStandard,\n ISonnerContext,\n ISonnerElement,\n ISonnerProvider,\n} from './context.types';\n\nexport const SonnerContext = createContext<ISonnerContext | null>(null);\n\nexport const ProviderSonner: FC<ISonnerProvider> = (props) => {\n const memoVisibleToasts: ISonnerProvider['visibleToasts'] = useMemo(() => props.visibleToasts, [props.visibleToasts]);\n const memoDefaultDescription: ISonnerProvider['default']['description'] = useMemo(\n () => props?.default?.description,\n [props?.default?.description],\n );\n const memoDefaultTitle: ISonnerProvider['default']['title'] = useMemo(\n () => props?.default?.title,\n [props?.default?.title],\n );\n const memoDefaultButton: ISonnerProvider['default']['button'] = useMemo(\n () => props?.default?.button,\n [props?.default?.button],\n );\n const memoDefaultHidingTime: ISonnerProvider['default']['hidingTime'] = useMemo(\n () => props?.default?.hidingTime,\n [props?.default?.hidingTime],\n );\n const memoDefaultHidingMode: ISonnerProvider['default']['hidingMode'] = useMemo(\n () => props?.default?.hidingMode ?? 'clickOnButton',\n [props?.default?.hidingMode],\n );\n const memoDefaultGenre = useMemo(\n () => props?.default?.genre ?? DEFAULT_PROVIDER_SONNER_GENRE,\n [props?.default?.genre],\n );\n\n const isTop = useMemo(() => props.position.includes('top'), [props.position]);\n\n const [contentHistory, setContentHistory] = useState<ISonnerContent[]>([]);\n\n const [isHovered, setIsHovered] = useState(false);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n const remove: ISonnerContext['remove'] = useCallback(\n (id) => {\n setContentHistory((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 if (updatedHistory.length === 0) handleMouseLeave();\n\n return updatedHistory;\n });\n },\n [handleMouseLeave],\n );\n\n const toast: ISonnerContext['toast'] = useCallback(\n (content) => {\n const id = content.id ?? uuidv4();\n\n const hidingTime = content.hidingTime ?? memoDefaultHidingTime;\n\n setContentHistory((prev) => {\n const existingIndex = prev.findIndex((item) => item.id === id);\n\n let updatedHistory: ISonnerContent[];\n if (existingIndex !== -1) {\n // Replace existing item\n updatedHistory = [...prev];\n updatedHistory[existingIndex] = { ...content, id, index: prev[existingIndex].index };\n } else {\n // Add new item\n updatedHistory = prev.map((item) => ({\n ...item,\n index: item.index + 1,\n }));\n const newContent = { ...content, id, index: 0 };\n updatedHistory.unshift(newContent);\n }\n\n return updatedHistory;\n });\n\n if (hidingTime !== undefined) {\n setTimeout(() => {\n remove(id);\n }, hidingTime);\n }\n },\n [memoDefaultHidingTime, remove],\n );\n\n const promise: ISonnerContext['promise'] = useCallback(\n <T,>(\n promise: Promise<T>,\n expectation: Omit<ISonnerContent, 'index'>,\n localToast: (success: T | undefined, error: unknown | undefined) => Omit<ISonnerContent, 'index'>,\n ) => {\n const id = uuidv4();\n toast({ ...expectation, id, isLoading: true });\n\n return promise\n .then((result) => {\n toast({ ...localToast(result, undefined), id });\n })\n .catch((error) => {\n toast({ ...localToast(undefined, error), id });\n });\n },\n [toast],\n );\n\n const handleOnClick = useCallback(\n (id: ISonnerContentStandard['id']) => {\n remove(id);\n },\n [remove],\n );\n\n useEffect(() => {\n return () => {\n setContentHistory([]);\n };\n }, []);\n return (\n <SonnerContext.Provider value={{ toast, promise, remove, contentHistory }}>\n <div\n className={getSonnerLayoutClassName(props.position)}\n style={getSonnerLayoutStyle({\n gap: props.gap,\n zIndex: props.zIndex ?? DEFAULT_PROVIDER_SONNER_Z_INDEX,\n })}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <AnimatePresence>\n {contentHistory.map((content) => {\n const index = content.index;\n const isMoreThanLastViewIndexPlusOne = memoVisibleToasts ? index > memoVisibleToasts : false;\n const isMoreThanLastViewIndex = memoVisibleToasts ? index > memoVisibleToasts - 1 : false;\n const isLastViewIndex = memoVisibleToasts ? index === memoVisibleToasts - 1 : false;\n const localGenre = content.genre ?? memoDefaultGenre;\n const buttonGenre = localGenre;\n const hidingMode = content.hidingMode ?? memoDefaultHidingMode;\n\n const localContent = 'content' in content ? content.content : false;\n const localTitle = 'title' in content ? content.title : false;\n const localDescription = 'description' in content ? content.description : false;\n return (\n <MemoizedSonnerElement\n isMoreThanLastViewIndexPlusOne={isMoreThanLastViewIndexPlusOne}\n isMoreThanLastViewIndex={isMoreThanLastViewIndex}\n isLastViewIndex={isLastViewIndex}\n isTop={isTop}\n key={content.id}\n id={content.id}\n icon={content.icon}\n isLoading={content.isLoading}\n index={index}\n buttonGenre={buttonGenre}\n hidingMode={hidingMode}\n isHovered={isHovered}\n genre={localGenre}\n content={localContent}\n title={localTitle || memoDefaultTitle}\n description={localDescription || memoDefaultDescription}\n button={content.button ?? memoDefaultButton ?? DEFAULT_PROVIDER_SONNER_BUTTON}\n handleOnClick={handleOnClick}\n />\n );\n })}\n </AnimatePresence>\n </div>\n {props.children}\n </SonnerContext.Provider>\n );\n};\n\nconst SonnerElement = (props: ISonnerElement) => {\n return (\n <motion.div\n key={props.id}\n layout\n initial={{\n opacity: 0,\n scale: 1,\n y: props.isLastViewIndex\n ? !props.isTop\n ? -DEFAULT_PROVIDER_SONNER_Y\n : DEFAULT_PROVIDER_SONNER_Y\n : !props.isTop\n ? DEFAULT_PROVIDER_SONNER_Y\n : -DEFAULT_PROVIDER_SONNER_Y,\n }}\n animate={{\n y: 0,\n opacity: props.isMoreThanLastViewIndex ? 0 : 1,\n pointerEvents: props.isMoreThanLastViewIndex ? 'none' : 'auto',\n display: props.isMoreThanLastViewIndex ? 'none' : 'flex',\n scale: !props.isHovered ? Math.max(1 - props.index * DEFAULT_PROVIDER_SONNER_SCALE, 0.88) : 1,\n marginTop: props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n marginBottom: !props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n }}\n style={{\n zIndex: -props.index,\n }}\n whileInView={{ opacity: props.isMoreThanLastViewIndex ? 0 : 1 }}\n exit={{ opacity: 0, y: !props.isTop ? DEFAULT_PROVIDER_SONNER_Y : -DEFAULT_PROVIDER_SONNER_Y }}\n transition={{ type: 'spring', duration: DEFAULT_PROVIDER_SONNER_DURATION }}\n >\n <div\n className={SonnerElementWrapper}\n style={getSonnerElementWrapperStyle(props.genre)}\n role={props.hidingMode === 'clickOnSonner' ? 'button' : undefined}\n tabIndex={props.hidingMode === 'clickOnSonner' ? 0 : undefined}\n onClick={() => props.hidingMode === 'clickOnSonner' && props.handleOnClick(props.id, 'clickOnSonner')}\n onKeyDown={(event) => {\n if (props.hidingMode !== 'clickOnSonner') return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n props.handleOnClick(props.id, 'clickOnSonner');\n }\n }}\n >\n {(props.isLoading || props.icon) && (\n <div className={SonnerIcon}>\n {props.isLoading ? (\n <Icon size='medium' type='loading' name='Line' />\n ) : (\n props.icon && <Icon {...props.icon} size={props.icon.size ?? 'medium'} />\n )}\n </div>\n )}\n <div className={SonnerContent}>\n {props.content ? (\n props.content\n ) : (\n <>\n {props.title && <div className={SonnerContentTitle}>{props.title}</div>}\n {props.description && <div className={SonnerContentDescription}>{props.description}</div>}\n </>\n )}\n </div>\n\n {props.button && 'content' in props.button && props.button?.content && (\n <div className={SonnerButtonWrapper}>\n <Button\n genre={props.buttonGenre}\n size='small'\n onClick={() => props.hidingMode === 'clickOnButton' && props.handleOnClick(props.id, 'clickOnButton')}\n >\n {props.button.content}\n </Button>\n </div>\n )}\n </div>\n </motion.div>\n );\n};\nconst MemoizedSonnerElement = memo(SonnerElement);\n","import { useContextSelector } from 'use-context-selector';\n\nimport { SonnerContext } from './context';\nimport { ISonnerContext, IUseSonnerDependencies } from './context.types';\n\nexport const useSonner = (props: IUseSonnerDependencies): ISonnerContext => {\n const context = useContextSelector(SonnerContext, (v) => {\n return v\n ? props.reduce((acc, prop) => {\n acc[prop] = v[prop];\n return acc;\n }, {} as any)\n : null;\n });\n if (!context) {\n throw new Error('useSonner must be used within an ProviderSonner');\n }\n return context;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"context-sonner-MO6uE8y0.js","names":[],"sources":["../src/contexts/context-sonner/context.constants.ts","../src/contexts/context-sonner/context.styles.tsx","../src/contexts/context-sonner/context.tsx","../src/contexts/context-sonner/context.hooks.ts"],"sourcesContent":["import { IThemeGenreSonner } from '@local/styles/utils/types';\n\nimport { ISonnerProvider } from './context.types';\n\nexport const DEFAULT_PROVIDER_SONNER_Z_INDEX = 100;\nexport const DEFAULT_PROVIDER_SONNER_SCALE = 0.04;\nexport const DEFAULT_PROVIDER_SONNER_Y = 100;\nexport const DEFAULT_PROVIDER_SONNER_DURATION = 0.3;\nexport const DEFAULT_PROVIDER_SONNER_GENRE: IThemeGenreSonner = 'product';\nexport const DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM = 65;\nexport const DEFAULT_PROVIDER_SONNER_BUTTON: ISonnerProvider['default']['button'] = {\n content: 'Undo',\n onClick: () => {},\n};\n","import { CSS_CLASS, CSS_VARS } from '@local/styles/utils';\nimport { setClasses } from '@local/styles/utils/functions';\nimport { IThemeGenreSonner } from '@local/styles/utils/types';\n\nimport { CSSProperties } from 'react';\n\nimport { ISonnerProvider } from './context.types';\n\nexport const SonnerClass = CSS_CLASS.context.sonner;\n\nexport const SonnerLayout = SonnerClass.layout;\nexport const SonnerElementWrapper = SonnerClass.elementWrapper;\nexport const SonnerContent = SonnerClass.content;\nexport const SonnerIcon = SonnerClass.icon;\nexport const SonnerContentTitle = SonnerClass.contentTitle;\nexport const SonnerContentDescription = SonnerClass.contentDescription;\nexport const SonnerButtonWrapper = SonnerClass.buttonWrapper;\n\nconst SONNER_LAYOUT_POSITION_CLASS: Record<ISonnerProvider['position'], string> = {\n 'bottom-center': SonnerClass.layoutBottomCenter,\n 'bottom-left': SonnerClass.layoutBottomLeft,\n 'bottom-right': SonnerClass.layoutBottomRight,\n 'top-right': SonnerClass.layoutTopRight,\n 'top-left': SonnerClass.layoutTopLeft,\n 'top-center': SonnerClass.layoutTopCenter,\n};\n\ntype ISonnerStyleWithVars = CSSProperties & Record<string, string>;\n\nexport const getSonnerLayoutClassName = (position: ISonnerProvider['position']) =>\n setClasses([SonnerLayout, SONNER_LAYOUT_POSITION_CLASS[position]]);\n\nexport const getSonnerLayoutStyle = (props: Pick<ISonnerProvider, 'gap' | 'zIndex'>): ISonnerStyleWithVars => ({\n '--context-sonner-gap': `${props.gap}px`,\n '--context-sonner-z-index': `${props.zIndex ?? 0}`,\n});\n\nexport const getSonnerElementWrapperStyle = (genre: IThemeGenreSonner): ISonnerStyleWithVars => {\n const genreTheme = CSS_VARS.genre.button[genre];\n\n return {\n '--context-sonner-wrapper-background': genreTheme.background.index,\n '--context-sonner-wrapper-border-color': genreTheme.border.index,\n '--context-sonner-wrapper-box-shadow':\n genre === 'primary' || genre === 'secondary'\n ? CSS_VARS.palette.shadowPrimaryLight\n : CSS_VARS.palette.shadowSecondaryLight,\n '--context-sonner-wrapper-box-shadow-hover':\n genre === 'primary' || genre === 'secondary'\n ? CSS_VARS.palette.shadowSecondaryLight\n : CSS_VARS.palette.shadowPrimaryLight,\n '--context-sonner-icon-color': genreTheme.color.index,\n '--context-sonner-title-color': genreTheme.color.index,\n '--context-sonner-description-color': genreTheme.color.index,\n };\n};\n","import { Button } from '@local/components/button';\nimport { Icon } from '@local/components/icon';\n\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { FC, memo, useCallback, useEffect, useMemo, useState } from 'react';\nimport { createContext } from 'use-context-selector';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n DEFAULT_PROVIDER_SONNER_BUTTON,\n DEFAULT_PROVIDER_SONNER_DURATION,\n DEFAULT_PROVIDER_SONNER_GENRE,\n DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM,\n DEFAULT_PROVIDER_SONNER_SCALE,\n DEFAULT_PROVIDER_SONNER_Y,\n DEFAULT_PROVIDER_SONNER_Z_INDEX,\n} from './context.constants';\nimport {\n getSonnerElementWrapperStyle,\n getSonnerLayoutClassName,\n getSonnerLayoutStyle,\n SonnerButtonWrapper,\n SonnerContent,\n SonnerContentDescription,\n SonnerContentTitle,\n SonnerElementWrapper,\n SonnerIcon,\n} from './context.styles';\nimport {\n ISonnerContent,\n ISonnerContentStandard,\n ISonnerContext,\n ISonnerElement,\n ISonnerProvider,\n} from './context.types';\n\nexport const SonnerContext = createContext<ISonnerContext | null>(null);\n\nexport const ProviderSonner: FC<ISonnerProvider> = (props) => {\n const memoVisibleToasts: ISonnerProvider['visibleToasts'] = useMemo(() => props.visibleToasts, [props.visibleToasts]);\n const memoDefaultDescription: ISonnerProvider['default']['description'] = useMemo(\n () => props?.default?.description,\n [props?.default?.description],\n );\n const memoDefaultTitle: ISonnerProvider['default']['title'] = useMemo(\n () => props?.default?.title,\n [props?.default?.title],\n );\n const memoDefaultButton: ISonnerProvider['default']['button'] = useMemo(\n () => props?.default?.button,\n [props?.default?.button],\n );\n const memoDefaultHidingTime: ISonnerProvider['default']['hidingTime'] = useMemo(\n () => props?.default?.hidingTime,\n [props?.default?.hidingTime],\n );\n const memoDefaultHidingMode: ISonnerProvider['default']['hidingMode'] = useMemo(\n () => props?.default?.hidingMode ?? 'clickOnButton',\n [props?.default?.hidingMode],\n );\n const memoDefaultGenre = useMemo(\n () => props?.default?.genre ?? DEFAULT_PROVIDER_SONNER_GENRE,\n [props?.default?.genre],\n );\n\n const isTop = useMemo(() => props.position.includes('top'), [props.position]);\n\n const [contentHistory, setContentHistory] = useState<ISonnerContent[]>([]);\n\n const [isHovered, setIsHovered] = useState(false);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n const remove: ISonnerContext['remove'] = useCallback(\n (id) => {\n setContentHistory((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 if (updatedHistory.length === 0) handleMouseLeave();\n\n return updatedHistory;\n });\n },\n [handleMouseLeave],\n );\n\n const toast: ISonnerContext['toast'] = useCallback(\n (content) => {\n const id = content.id ?? uuidv4();\n\n const hidingTime = content.hidingTime ?? memoDefaultHidingTime;\n\n setContentHistory((prev) => {\n const existingIndex = prev.findIndex((item) => item.id === id);\n\n let updatedHistory: ISonnerContent[];\n if (existingIndex !== -1) {\n // Replace existing item\n updatedHistory = [...prev];\n updatedHistory[existingIndex] = { ...content, id, index: prev[existingIndex].index };\n } else {\n // Add new item\n updatedHistory = prev.map((item) => ({\n ...item,\n index: item.index + 1,\n }));\n const newContent = { ...content, id, index: 0 };\n updatedHistory.unshift(newContent);\n }\n\n return updatedHistory;\n });\n\n if (hidingTime !== undefined) {\n setTimeout(() => {\n remove(id);\n }, hidingTime);\n }\n },\n [memoDefaultHidingTime, remove],\n );\n\n const promise: ISonnerContext['promise'] = useCallback(\n <T,>(\n promise: Promise<T>,\n expectation: Omit<ISonnerContent, 'index'>,\n localToast: (success: T | undefined, error: unknown | undefined) => Omit<ISonnerContent, 'index'>,\n ) => {\n const id = uuidv4();\n toast({ ...expectation, id, isLoading: true });\n\n return promise\n .then((result) => {\n toast({ ...localToast(result, undefined), id });\n })\n .catch((error) => {\n toast({ ...localToast(undefined, error), id });\n });\n },\n [toast],\n );\n\n const handleOnClick = useCallback(\n (id: ISonnerContentStandard['id']) => {\n remove(id);\n },\n [remove],\n );\n\n useEffect(() => {\n return () => {\n setContentHistory([]);\n };\n }, []);\n return (\n <SonnerContext.Provider value={{ toast, promise, remove, contentHistory }}>\n <div\n className={getSonnerLayoutClassName(props.position)}\n style={getSonnerLayoutStyle({\n gap: props.gap,\n zIndex: props.zIndex ?? DEFAULT_PROVIDER_SONNER_Z_INDEX,\n })}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <AnimatePresence>\n {contentHistory.map((content) => {\n const index = content.index;\n const isMoreThanLastViewIndexPlusOne = memoVisibleToasts ? index > memoVisibleToasts : false;\n const isMoreThanLastViewIndex = memoVisibleToasts ? index > memoVisibleToasts - 1 : false;\n const isLastViewIndex = memoVisibleToasts ? index === memoVisibleToasts - 1 : false;\n const localGenre = content.genre ?? memoDefaultGenre;\n const buttonGenre = localGenre;\n const hidingMode = content.hidingMode ?? memoDefaultHidingMode;\n\n const localContent = 'content' in content ? content.content : false;\n const localTitle = 'title' in content ? content.title : false;\n const localDescription = 'description' in content ? content.description : false;\n return (\n <MemoizedSonnerElement\n isMoreThanLastViewIndexPlusOne={isMoreThanLastViewIndexPlusOne}\n isMoreThanLastViewIndex={isMoreThanLastViewIndex}\n isLastViewIndex={isLastViewIndex}\n isTop={isTop}\n key={content.id}\n id={content.id}\n icon={content.icon}\n isLoading={content.isLoading}\n index={index}\n buttonGenre={buttonGenre}\n hidingMode={hidingMode}\n isHovered={isHovered}\n genre={localGenre}\n content={localContent}\n title={localTitle || memoDefaultTitle}\n description={localDescription || memoDefaultDescription}\n button={content.button ?? memoDefaultButton ?? DEFAULT_PROVIDER_SONNER_BUTTON}\n handleOnClick={handleOnClick}\n />\n );\n })}\n </AnimatePresence>\n </div>\n {props.children}\n </SonnerContext.Provider>\n );\n};\n\nconst SonnerElement = (props: ISonnerElement) => {\n return (\n <motion.div\n key={props.id}\n layout\n initial={{\n opacity: 0,\n scale: 1,\n y: props.isLastViewIndex\n ? !props.isTop\n ? -DEFAULT_PROVIDER_SONNER_Y\n : DEFAULT_PROVIDER_SONNER_Y\n : !props.isTop\n ? DEFAULT_PROVIDER_SONNER_Y\n : -DEFAULT_PROVIDER_SONNER_Y,\n }}\n animate={{\n y: 0,\n opacity: props.isMoreThanLastViewIndex ? 0 : 1,\n pointerEvents: props.isMoreThanLastViewIndex ? 'none' : 'auto',\n display: props.isMoreThanLastViewIndex ? 'none' : 'flex',\n scale: !props.isHovered ? Math.max(1 - props.index * DEFAULT_PROVIDER_SONNER_SCALE, 0.88) : 1,\n marginTop: props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n marginBottom: !props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n }}\n style={{\n zIndex: -props.index,\n }}\n whileInView={{ opacity: props.isMoreThanLastViewIndex ? 0 : 1 }}\n exit={{ opacity: 0, y: !props.isTop ? DEFAULT_PROVIDER_SONNER_Y : -DEFAULT_PROVIDER_SONNER_Y }}\n transition={{ type: 'spring', duration: DEFAULT_PROVIDER_SONNER_DURATION }}\n >\n <div\n className={SonnerElementWrapper}\n style={getSonnerElementWrapperStyle(props.genre)}\n role={props.hidingMode === 'clickOnSonner' ? 'button' : undefined}\n tabIndex={props.hidingMode === 'clickOnSonner' ? 0 : undefined}\n onClick={() => props.hidingMode === 'clickOnSonner' && props.handleOnClick(props.id, 'clickOnSonner')}\n onKeyDown={(event) => {\n if (props.hidingMode !== 'clickOnSonner') return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n props.handleOnClick(props.id, 'clickOnSonner');\n }\n }}\n >\n {(props.isLoading || props.icon) && (\n <div className={SonnerIcon}>\n {props.isLoading ? (\n <Icon size='medium' type='loading' name='Line' />\n ) : (\n props.icon && <Icon {...props.icon} size={props.icon.size ?? 'medium'} />\n )}\n </div>\n )}\n <div className={SonnerContent}>\n {props.content ? (\n props.content\n ) : (\n <>\n {props.title && <div className={SonnerContentTitle}>{props.title}</div>}\n {props.description && <div className={SonnerContentDescription}>{props.description}</div>}\n </>\n )}\n </div>\n\n {props.button && 'content' in props.button && props.button?.content && (\n <div className={SonnerButtonWrapper}>\n <Button\n genre={props.buttonGenre}\n size='small'\n onClick={() => props.hidingMode === 'clickOnButton' && props.handleOnClick(props.id, 'clickOnButton')}\n >\n {props.button.content}\n </Button>\n </div>\n )}\n </div>\n </motion.div>\n );\n};\nconst MemoizedSonnerElement = memo(SonnerElement);\n","import { useContextSelector } from 'use-context-selector';\n\nimport { SonnerContext } from './context';\nimport { ISonnerContext, IUseSonnerDependencies } from './context.types';\n\nexport const useSonner = (props: IUseSonnerDependencies): ISonnerContext => {\n const context = useContextSelector(SonnerContext, (v) => {\n return v\n ? props.reduce((acc, prop) => {\n acc[prop] = v[prop];\n return acc;\n }, {} as any)\n : null;\n });\n if (!context) {\n throw new Error('useSonner must be used within an ProviderSonner');\n }\n return context;\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunk-Dd8m0Ver.cjs"),e=require("./context-sonner-4gBa1F7G.cjs");exports.ProviderSonner=e.ProviderSonner;exports.useSonner=e.useSonner;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./chunk-Dd8m0Ver.cjs"),e=require("./context-sonner-Dqw0jhwT.cjs");exports.ProviderSonner=e.ProviderSonner;exports.useSonner=e.useSonner;
@@ -1,4 +1,4 @@
1
- import { n as o, t as e } from "./context-sonner-qDPLFpD5.js";
1
+ import { n as o, t as e } from "./context-sonner-MO6uE8y0.js";
2
2
  export {
3
3
  o as ProviderSonner,
4
4
  e as useSonner
@@ -4,14 +4,14 @@ import { IAppContext, IAppProvider } from './context.types';
4
4
  export declare const AppContext: import('use-context-selector').Context<IAppContext | null>;
5
5
  export declare const ProviderApp: FC<IAppProvider>;
6
6
  export declare const useBgColor: (defaultColor: IThemePalette) => {
7
- bgColor: "inherit" | "current" | "transparent" | "accentRedLight" | "accentOrangeLight" | "accentYellowLight" | "accentGreenLight" | "accentMintLight" | "accentTealLight" | "accentCyanLight" | "accentBlueLight" | "accentIndigoLight" | "accentPurpleLight" | "accentPinkLight" | "accentBrownLight" | "accentGrayLight" | "fillLight" | "fillPrimaryLight" | "fillSecondaryLight" | "fillTertiaryLight" | "fillQuaternaryLight" | "fillQuinaryLight" | "textPrimaryLight" | "textSecondaryLight" | "textTertiaryLight" | "controlMenuLight" | "controlTooltipLight" | "controlTransparent" | "shadowGlassLight" | "shadowPrimaryLight" | "shadowSecondaryLight" | "shadowTertiaryLight" | "shadowQuaternaryLight" | "shadowWindowInnerShadowLight" | "productPrimaryLight" | "productSecondaryLight" | "productTertiaryLight" | "productQuaternaryLight" | "productQuinaryLight" | "accentRedDark" | "accentOrangeDark" | "accentYellowDark" | "accentGreenDark" | "accentMintDark" | "accentTealDark" | "accentCyanDark" | "accentBlueDark" | "accentIndigoDark" | "accentPurpleDark" | "accentPinkDark" | "accentBrownDark" | "accentGrayDark" | "fillDark" | "fillPrimaryDark" | "fillSecondaryDark" | "fillTertiaryDark" | "fillQuaternaryDark" | "fillQuinaryDark" | "textPrimaryDark" | "textSecondaryDark" | "textTertiaryDark" | "controlMenuDark" | "controlTooltipDark" | "productPrimaryDark" | "productSecondaryDark" | "productTertiaryDark" | "productQuaternaryDark" | "productQuinaryDark" | "shadowGlassDark" | "shadowPrimaryDark" | "shadowSecondaryDark" | "shadowTertiaryDark" | "shadowQuaternaryDark" | "shadowWindowInnerShadowDark" | "accentRedLightStable" | "accentOrangeLightStable" | "accentYellowLightStable" | "accentGreenLightStable" | "accentMintLightStable" | "accentTealLightStable" | "accentCyanLightStable" | "accentBlueLightStable" | "accentIndigoLightStable" | "accentPurpleLightStable" | "accentPinkLightStable" | "accentBrownLightStable" | "accentGrayLightStable" | "fillLightStable" | "fillPrimaryLightStable" | "fillSecondaryLightStable" | "fillTertiaryLightStable" | "fillQuaternaryLightStable" | "fillQuinaryLightStable" | "textPrimaryLightStable" | "textSecondaryLightStable" | "textTertiaryLightStable" | "controlMenuLightStable" | "controlTooltipLightStable" | "controlTransparentStable" | "shadowGlassLightStable" | "shadowPrimaryLightStable" | "shadowSecondaryLightStable" | "shadowTertiaryLightStable" | "shadowQuaternaryLightStable" | "shadowWindowInnerShadowLightStable" | "productPrimaryLightStable" | "productSecondaryLightStable" | "productTertiaryLightStable" | "productQuaternaryLightStable" | "productQuinaryLightStable" | "accentRedDarkStable" | "accentOrangeDarkStable" | "accentYellowDarkStable" | "accentGreenDarkStable" | "accentMintDarkStable" | "accentTealDarkStable" | "accentCyanDarkStable" | "accentBlueDarkStable" | "accentIndigoDarkStable" | "accentPurpleDarkStable" | "accentPinkDarkStable" | "accentBrownDarkStable" | "accentGrayDarkStable" | "fillDarkStable" | "fillPrimaryDarkStable" | "fillSecondaryDarkStable" | "fillTertiaryDarkStable" | "fillQuaternaryDarkStable" | "fillQuinaryDarkStable" | "textPrimaryDarkStable" | "textSecondaryDarkStable" | "textTertiaryDarkStable" | "controlMenuDarkStable" | "controlTooltipDarkStable" | "productPrimaryDarkStable" | "productSecondaryDarkStable" | "productTertiaryDarkStable" | "productQuaternaryDarkStable" | "productQuinaryDarkStable" | "shadowGlassDarkStable" | "shadowPrimaryDarkStable" | "shadowSecondaryDarkStable" | "shadowTertiaryDarkStable" | "shadowQuaternaryDarkStable" | "shadowWindowInnerShadowDarkStable";
7
+ bgColor: "inherit" | "accentRedLight" | "accentOrangeLight" | "accentYellowLight" | "accentGreenLight" | "accentMintLight" | "accentTealLight" | "accentCyanLight" | "accentBlueLight" | "accentIndigoLight" | "accentPurpleLight" | "accentPinkLight" | "accentBrownLight" | "accentGrayLight" | "fillLight" | "fillPrimaryLight" | "fillSecondaryLight" | "fillTertiaryLight" | "fillQuaternaryLight" | "fillQuinaryLight" | "textPrimaryLight" | "textSecondaryLight" | "textTertiaryLight" | "controlMenuLight" | "controlTooltipLight" | "controlTransparent" | "shadowGlassLight" | "shadowPrimaryLight" | "shadowSecondaryLight" | "shadowTertiaryLight" | "shadowQuaternaryLight" | "shadowWindowInnerShadowLight" | "productPrimaryLight" | "productSecondaryLight" | "productTertiaryLight" | "productQuaternaryLight" | "productQuinaryLight" | "current" | "transparent" | "accentRedDark" | "accentOrangeDark" | "accentYellowDark" | "accentGreenDark" | "accentMintDark" | "accentTealDark" | "accentCyanDark" | "accentBlueDark" | "accentIndigoDark" | "accentPurpleDark" | "accentPinkDark" | "accentBrownDark" | "accentGrayDark" | "fillDark" | "fillPrimaryDark" | "fillSecondaryDark" | "fillTertiaryDark" | "fillQuaternaryDark" | "fillQuinaryDark" | "textPrimaryDark" | "textSecondaryDark" | "textTertiaryDark" | "controlMenuDark" | "controlTooltipDark" | "productPrimaryDark" | "productSecondaryDark" | "productTertiaryDark" | "productQuaternaryDark" | "productQuinaryDark" | "shadowGlassDark" | "shadowPrimaryDark" | "shadowSecondaryDark" | "shadowTertiaryDark" | "shadowQuaternaryDark" | "shadowWindowInnerShadowDark" | "accentRedLightStable" | "accentOrangeLightStable" | "accentYellowLightStable" | "accentGreenLightStable" | "accentMintLightStable" | "accentTealLightStable" | "accentCyanLightStable" | "accentBlueLightStable" | "accentIndigoLightStable" | "accentPurpleLightStable" | "accentPinkLightStable" | "accentBrownLightStable" | "accentGrayLightStable" | "fillLightStable" | "fillPrimaryLightStable" | "fillSecondaryLightStable" | "fillTertiaryLightStable" | "fillQuaternaryLightStable" | "fillQuinaryLightStable" | "textPrimaryLightStable" | "textSecondaryLightStable" | "textTertiaryLightStable" | "controlMenuLightStable" | "controlTooltipLightStable" | "controlTransparentStable" | "shadowGlassLightStable" | "shadowPrimaryLightStable" | "shadowSecondaryLightStable" | "shadowTertiaryLightStable" | "shadowQuaternaryLightStable" | "shadowWindowInnerShadowLightStable" | "productPrimaryLightStable" | "productSecondaryLightStable" | "productTertiaryLightStable" | "productQuaternaryLightStable" | "productQuinaryLightStable" | "accentRedDarkStable" | "accentOrangeDarkStable" | "accentYellowDarkStable" | "accentGreenDarkStable" | "accentMintDarkStable" | "accentTealDarkStable" | "accentCyanDarkStable" | "accentBlueDarkStable" | "accentIndigoDarkStable" | "accentPurpleDarkStable" | "accentPinkDarkStable" | "accentBrownDarkStable" | "accentGrayDarkStable" | "fillDarkStable" | "fillPrimaryDarkStable" | "fillSecondaryDarkStable" | "fillTertiaryDarkStable" | "fillQuaternaryDarkStable" | "fillQuinaryDarkStable" | "textPrimaryDarkStable" | "textSecondaryDarkStable" | "textTertiaryDarkStable" | "controlMenuDarkStable" | "controlTooltipDarkStable" | "productPrimaryDarkStable" | "productSecondaryDarkStable" | "productTertiaryDarkStable" | "productQuaternaryDarkStable" | "productQuinaryDarkStable" | "shadowGlassDarkStable" | "shadowPrimaryDarkStable" | "shadowSecondaryDarkStable" | "shadowTertiaryDarkStable" | "shadowQuaternaryDarkStable" | "shadowWindowInnerShadowDarkStable";
8
8
  changeBgColor: (color: IThemePalette) => void;
9
9
  historyBgColor: (steps: number) => void;
10
10
  setDefaultBgColor: () => void;
11
11
  bgColorIndex: number;
12
12
  };
13
13
  export declare const useStatusBarColor: (defaultColor: IThemePalette) => {
14
- statusBarColor: "inherit" | "current" | "transparent" | "accentRedLight" | "accentOrangeLight" | "accentYellowLight" | "accentGreenLight" | "accentMintLight" | "accentTealLight" | "accentCyanLight" | "accentBlueLight" | "accentIndigoLight" | "accentPurpleLight" | "accentPinkLight" | "accentBrownLight" | "accentGrayLight" | "fillLight" | "fillPrimaryLight" | "fillSecondaryLight" | "fillTertiaryLight" | "fillQuaternaryLight" | "fillQuinaryLight" | "textPrimaryLight" | "textSecondaryLight" | "textTertiaryLight" | "controlMenuLight" | "controlTooltipLight" | "controlTransparent" | "shadowGlassLight" | "shadowPrimaryLight" | "shadowSecondaryLight" | "shadowTertiaryLight" | "shadowQuaternaryLight" | "shadowWindowInnerShadowLight" | "productPrimaryLight" | "productSecondaryLight" | "productTertiaryLight" | "productQuaternaryLight" | "productQuinaryLight" | "accentRedDark" | "accentOrangeDark" | "accentYellowDark" | "accentGreenDark" | "accentMintDark" | "accentTealDark" | "accentCyanDark" | "accentBlueDark" | "accentIndigoDark" | "accentPurpleDark" | "accentPinkDark" | "accentBrownDark" | "accentGrayDark" | "fillDark" | "fillPrimaryDark" | "fillSecondaryDark" | "fillTertiaryDark" | "fillQuaternaryDark" | "fillQuinaryDark" | "textPrimaryDark" | "textSecondaryDark" | "textTertiaryDark" | "controlMenuDark" | "controlTooltipDark" | "productPrimaryDark" | "productSecondaryDark" | "productTertiaryDark" | "productQuaternaryDark" | "productQuinaryDark" | "shadowGlassDark" | "shadowPrimaryDark" | "shadowSecondaryDark" | "shadowTertiaryDark" | "shadowQuaternaryDark" | "shadowWindowInnerShadowDark" | "accentRedLightStable" | "accentOrangeLightStable" | "accentYellowLightStable" | "accentGreenLightStable" | "accentMintLightStable" | "accentTealLightStable" | "accentCyanLightStable" | "accentBlueLightStable" | "accentIndigoLightStable" | "accentPurpleLightStable" | "accentPinkLightStable" | "accentBrownLightStable" | "accentGrayLightStable" | "fillLightStable" | "fillPrimaryLightStable" | "fillSecondaryLightStable" | "fillTertiaryLightStable" | "fillQuaternaryLightStable" | "fillQuinaryLightStable" | "textPrimaryLightStable" | "textSecondaryLightStable" | "textTertiaryLightStable" | "controlMenuLightStable" | "controlTooltipLightStable" | "controlTransparentStable" | "shadowGlassLightStable" | "shadowPrimaryLightStable" | "shadowSecondaryLightStable" | "shadowTertiaryLightStable" | "shadowQuaternaryLightStable" | "shadowWindowInnerShadowLightStable" | "productPrimaryLightStable" | "productSecondaryLightStable" | "productTertiaryLightStable" | "productQuaternaryLightStable" | "productQuinaryLightStable" | "accentRedDarkStable" | "accentOrangeDarkStable" | "accentYellowDarkStable" | "accentGreenDarkStable" | "accentMintDarkStable" | "accentTealDarkStable" | "accentCyanDarkStable" | "accentBlueDarkStable" | "accentIndigoDarkStable" | "accentPurpleDarkStable" | "accentPinkDarkStable" | "accentBrownDarkStable" | "accentGrayDarkStable" | "fillDarkStable" | "fillPrimaryDarkStable" | "fillSecondaryDarkStable" | "fillTertiaryDarkStable" | "fillQuaternaryDarkStable" | "fillQuinaryDarkStable" | "textPrimaryDarkStable" | "textSecondaryDarkStable" | "textTertiaryDarkStable" | "controlMenuDarkStable" | "controlTooltipDarkStable" | "productPrimaryDarkStable" | "productSecondaryDarkStable" | "productTertiaryDarkStable" | "productQuaternaryDarkStable" | "productQuinaryDarkStable" | "shadowGlassDarkStable" | "shadowPrimaryDarkStable" | "shadowSecondaryDarkStable" | "shadowTertiaryDarkStable" | "shadowQuaternaryDarkStable" | "shadowWindowInnerShadowDarkStable";
14
+ statusBarColor: "inherit" | "accentRedLight" | "accentOrangeLight" | "accentYellowLight" | "accentGreenLight" | "accentMintLight" | "accentTealLight" | "accentCyanLight" | "accentBlueLight" | "accentIndigoLight" | "accentPurpleLight" | "accentPinkLight" | "accentBrownLight" | "accentGrayLight" | "fillLight" | "fillPrimaryLight" | "fillSecondaryLight" | "fillTertiaryLight" | "fillQuaternaryLight" | "fillQuinaryLight" | "textPrimaryLight" | "textSecondaryLight" | "textTertiaryLight" | "controlMenuLight" | "controlTooltipLight" | "controlTransparent" | "shadowGlassLight" | "shadowPrimaryLight" | "shadowSecondaryLight" | "shadowTertiaryLight" | "shadowQuaternaryLight" | "shadowWindowInnerShadowLight" | "productPrimaryLight" | "productSecondaryLight" | "productTertiaryLight" | "productQuaternaryLight" | "productQuinaryLight" | "current" | "transparent" | "accentRedDark" | "accentOrangeDark" | "accentYellowDark" | "accentGreenDark" | "accentMintDark" | "accentTealDark" | "accentCyanDark" | "accentBlueDark" | "accentIndigoDark" | "accentPurpleDark" | "accentPinkDark" | "accentBrownDark" | "accentGrayDark" | "fillDark" | "fillPrimaryDark" | "fillSecondaryDark" | "fillTertiaryDark" | "fillQuaternaryDark" | "fillQuinaryDark" | "textPrimaryDark" | "textSecondaryDark" | "textTertiaryDark" | "controlMenuDark" | "controlTooltipDark" | "productPrimaryDark" | "productSecondaryDark" | "productTertiaryDark" | "productQuaternaryDark" | "productQuinaryDark" | "shadowGlassDark" | "shadowPrimaryDark" | "shadowSecondaryDark" | "shadowTertiaryDark" | "shadowQuaternaryDark" | "shadowWindowInnerShadowDark" | "accentRedLightStable" | "accentOrangeLightStable" | "accentYellowLightStable" | "accentGreenLightStable" | "accentMintLightStable" | "accentTealLightStable" | "accentCyanLightStable" | "accentBlueLightStable" | "accentIndigoLightStable" | "accentPurpleLightStable" | "accentPinkLightStable" | "accentBrownLightStable" | "accentGrayLightStable" | "fillLightStable" | "fillPrimaryLightStable" | "fillSecondaryLightStable" | "fillTertiaryLightStable" | "fillQuaternaryLightStable" | "fillQuinaryLightStable" | "textPrimaryLightStable" | "textSecondaryLightStable" | "textTertiaryLightStable" | "controlMenuLightStable" | "controlTooltipLightStable" | "controlTransparentStable" | "shadowGlassLightStable" | "shadowPrimaryLightStable" | "shadowSecondaryLightStable" | "shadowTertiaryLightStable" | "shadowQuaternaryLightStable" | "shadowWindowInnerShadowLightStable" | "productPrimaryLightStable" | "productSecondaryLightStable" | "productTertiaryLightStable" | "productQuaternaryLightStable" | "productQuinaryLightStable" | "accentRedDarkStable" | "accentOrangeDarkStable" | "accentYellowDarkStable" | "accentGreenDarkStable" | "accentMintDarkStable" | "accentTealDarkStable" | "accentCyanDarkStable" | "accentBlueDarkStable" | "accentIndigoDarkStable" | "accentPurpleDarkStable" | "accentPinkDarkStable" | "accentBrownDarkStable" | "accentGrayDarkStable" | "fillDarkStable" | "fillPrimaryDarkStable" | "fillSecondaryDarkStable" | "fillTertiaryDarkStable" | "fillQuaternaryDarkStable" | "fillQuinaryDarkStable" | "textPrimaryDarkStable" | "textSecondaryDarkStable" | "textTertiaryDarkStable" | "controlMenuDarkStable" | "controlTooltipDarkStable" | "productPrimaryDarkStable" | "productSecondaryDarkStable" | "productTertiaryDarkStable" | "productQuaternaryDarkStable" | "productQuinaryDarkStable" | "shadowGlassDarkStable" | "shadowPrimaryDarkStable" | "shadowSecondaryDarkStable" | "shadowTertiaryDarkStable" | "shadowQuaternaryDarkStable" | "shadowWindowInnerShadowDarkStable";
15
15
  changeStatusBarColor: (color: IThemePalette) => void;
16
16
  historyStatusBarColor: (steps: number) => void;
17
17
  setDefaultStatusBarColor: () => void;
@@ -13,6 +13,7 @@ export type IDialogItem = {
13
13
  add: () => void;
14
14
  remove: () => void;
15
15
  id: string | null;
16
+ isOpen: boolean;
16
17
  };
17
18
  export type IDialogContent<T extends object = Record<string, unknown>> = {
18
19
  props?: IUseDialog<T>;
@@ -35,9 +36,10 @@ type IDialogDialogProps = {
35
36
  background?: IThemePalette;
36
37
  isRemoveOnOutsideClick?: boolean;
37
38
  };
38
- interface IDialogContentNodeProps<T extends object = Record<string, unknown>> {
39
+ export interface IDialogContentNodeProps<T extends object = Record<string, unknown>> {
39
40
  remove?: () => void;
40
41
  isAnimating?: boolean;
42
+ id: string;
41
43
  propsCustom?: T;
42
44
  }
43
45
  type IDialogContentNode<T extends object> = (props: IDialogContentNodeProps<T>) => ReactNode;
@@ -1,3 +1,3 @@
1
1
  export { ProviderDialog } from './context';
2
2
  export { useDialog, useDialogs } from './context.hooks';
3
- export type { IDialogProvider, IUseDialog } from './context.types';
3
+ export type { IDialogContentNodeProps, IDialogProvider, IUseDialog } from './context.types';
@@ -1,30 +1,6 @@
1
1
  import { IDatePickerTranslateInput, IDatePickerTranslateMonth, IDatePickerTranslateWeek } from '../components/date-picker';
2
- import { IImageFormat, ILanguage, IService } from './types';
3
- export declare const OBJECT_LANGUAGE: ILanguage;
4
- export declare const OBJECT_SERVICE: IService;
5
- export declare const LIST_LANGUAGE: {
6
- value: import('./types').ILanguageKeys;
7
- label: string;
8
- placeholder: string;
9
- search: string;
10
- }[];
11
- export declare const LIST_KEY_LANGUAGE: {
12
- [key: string]: string;
13
- };
14
- export declare const LIST_SERVICE: {
15
- value: import('./types').IServiceKeys;
16
- label: string;
17
- placeholder: string;
18
- search: string;
19
- }[];
20
- export declare const LIST_KEY_SERVICE: {
21
- [key: string]: string;
22
- };
23
2
  export declare const LOCALE_INPUT: IDatePickerTranslateInput;
24
3
  export declare const LOCALE_MONTHS: IDatePickerTranslateMonth[];
25
4
  export declare const LOCALE_WEEKS: IDatePickerTranslateWeek[];
26
- export declare const LIST_IMAGE_SUPPORTED_FORMAT: IImageFormat[];
27
- export declare const LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT: string;
28
- export declare const LOREM_IPSUM_TEXT = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
29
5
  export declare const LIBRARY_VERSION: any;
30
6
  export declare const ICON_VERSION: any;
@@ -1,18 +1,4 @@
1
1
  export type IAddDollarSign<T> = {
2
2
  [K in keyof T as `$${string & K}`]: T[K];
3
3
  };
4
- export type ILanguageKeys = 'eng' | 'rus';
5
- export type ILanguage = Record<ILanguageKeys, {
6
- value: ILanguageKeys;
7
- label: string;
8
- placeholder: string;
9
- search: string;
10
- }>;
11
- export type IServiceKeys = 'jenesei_id';
12
- export type IService = Record<IServiceKeys, {
13
- value: IServiceKeys;
14
- label: string;
15
- placeholder: string;
16
- search: string;
17
- }>;
18
4
  export type IImageFormat = 'image/jpeg' | 'image/jpg' | 'image/png' | 'image/webp' | 'image/avif';
@@ -0,0 +1,3 @@
1
+ const Ut=require("./chunk-Dd8m0Ver.cjs"),e=require("./utils-DCIq-5FL.cjs"),V=require("./functions-CZrZU5U0.cjs"),st=require("./component-CbJ_P8yq.cjs");require("./component-stack.cjs.js");const at=require("./hooks-use-typography-styles.cjs.js"),ae=require("./button-CHEeSypf.cjs"),kt=require("./error-BdFba_yV.cjs"),ut=require("./popover-DQkn4RWI.cjs"),At=require("./typography-BKp4OAQI.cjs"),x=require("./select-CGXyVf57.cjs"),St=require("./dist-SXTf0-_7.cjs");let d=require("react/jsx-runtime"),o=require("react");var C=(function(t){return t.DD="DD",t.MM="MM",t.YYYY="YYYY",t})({}),_t=["mo","tu","we","th","fr","sa","su"],ct=[C.DD,C.MM,C.YYYY],it={[C.DD]:"",[C.MM]:"",[C.YYYY]:""},dt=St.createContext(null);function n(t){return St.useContextSelector(dt,r=>{if(!r)throw new Error("DatePicker context is not available.");return t(r)})}var Rt=t=>{const{ariaLabel:r,autoComplete:c,className:S,classNamePopover:h,control:s,dateDefault:p,dateMax:u,dateMin:f,error:y,genre:m,id:l,isBold:ce,isDisabled:g,isOnClickClose:ye,isReadOnly:q,isShowClearButton:X,labelPlaceholder:Q,locale:Y,mode:H,name:Ce,onBlur:Z,onChange:W,onFocus:he,size:D,style:ge,stylePopover:fe,sxTypography:ke,type:ie}=t,[_,Ae]=(0,o.useState)(null),[P,pt]=(0,o.useState)(x.hooks(p).utc()),[R,_e]=(0,o.useState)(it),[k,$]=(0,o.useState)(null),[Re,w]=(0,o.useState)(!1),[J,De]=(0,o.useState)(!1),le=(0,o.useRef)(R),ee=(0,o.useRef)(!1),ve=(0,o.useRef)(""),Pe=(0,o.useRef)(null),be=(0,o.useRef)(null),z=(0,o.useRef)(null);(0,o.useEffect)(()=>{le.current=R},[R]);const I=(0,o.useMemo)(()=>R[C.DD]!==""||R[C.MM]!==""||R[C.YYYY]!=="",[R]),B=(0,o.useCallback)(i=>{_e(a=>Kt(a,i)?a:i)},[]),K=(0,o.useCallback)(()=>{B(it)},[B]),O=(0,o.useMemo)(()=>!H||H.length===0||new Set(H).size!==H.length?ct:H,[H]),j=(0,o.useMemo)(()=>ie||"manualAndSelect",[ie]),Ve=(0,o.useMemo)(()=>({[C.DD]:Y.inputs.day,[C.MM]:Y.inputs.month,[C.YYYY]:Y.inputs.year}),[Y.inputs.day,Y.inputs.month,Y.inputs.year]),ue=(0,o.useCallback)((i,a)=>{_e(A=>A[i]===a?A:{...A,[i]:a})},[]),Me=(0,o.useCallback)(i=>{$(i)},[]),Se=(0,o.useCallback)(()=>{$(null)},[]),te=(0,o.useCallback)(i=>{$(qt(i,O))},[O]),de=(0,o.useCallback)(i=>{$($t(i,O))},[O]),xe=(0,o.useMemo)(()=>_t.map((i,a)=>({index:a,label:Y.weeks.find(A=>A.value===i)?.localeShort??i.toUpperCase()})),[Y.weeks]),ne=(0,o.useMemo)(()=>{const i=x.hooks.utc(),a=_??P,A=a.clone().startOf("month"),v=a.clone().endOf("month"),M=f?x.hooks.utc(f):null,G=u?x.hooks.utc(u):null,re=A.clone().subtract(A.isoWeekday()-1,"days"),se=v.clone().add(7-v.isoWeekday(),"days"),F=[],b=re.clone();for(;b<=se;){const pe=b.isBetween(A,v,"day","[]");F.push({value:b.valueOf(),labelString:b.format("dd"),labelNumber:b.date(),dayOfWeek:b.isoWeekday(),isWeekend:[6,7].includes(b.isoWeekday()),weekOfMonth:Math.ceil((F.length+1)/7),isToday:b.isSame(i,"day"),isCurrentMonth:pe,isChoice:b.valueOf()===_?.valueOf(),isDisabled:!!(M&&b.isBefore(M,"day")||G&&b.isAfter(G,"day"))}),b.add(1,"day")}return F},[_,P,u,f]),Ne=(0,o.useMemo)(()=>Ft(ne.length)+1,[ne]),Ye=(0,o.useMemo)(()=>e.CSS_VARS.sizeValue[D].radius,[D]),mt=(0,o.useMemo)(()=>e.CSS_VARS.sizeValue[D].padding,[D]),L=(0,o.useMemo)(()=>_!==null,[_]),We=(0,o.useMemo)(()=>{const i=(_??P).clone().add(1,"month").startOf("month");return u?i.isAfter(x.hooks.utc(u),"month"):!1},[_,u,P]),we=(0,o.useMemo)(()=>{const i=(_??P).clone().subtract(1,"month").startOf("month");return f?i.isBefore(x.hooks.utc(f),"month"):!1},[_,f,P]),yt=(0,o.useCallback)(()=>{he?.()},[he]),Ct=(0,o.useCallback)(()=>{Z?.()},[Z]),{isOpen:T,refReference:Oe,refFloating:Ie,floatingStyles:Be,close:E,toggle:je}=ut.usePopover({isFocusTrap:!0,placement:"bottom-start",offset:mt,mode:"independence",isClickOutside:!0,refsExcludeClickOutside:(0,o.useMemo)(()=>[Pe,be],[]),isDisabled:g||q,onFocus:yt,onBlur:Ct,onBlurReference:Se}),oe=(0,o.useMemo)(()=>!!(!J&&!L&&Q&&(j==="select"||!T)&&!I&&!k),[J,L,T,Q,I,k,j]),N=(0,o.useCallback)((i,a,A)=>{const v=x.hooks(i).utc(),M=v.clone().date().toString(),G=(v.clone().month()+1).toString(),re=M.padStart(2,"0"),se=G.padStart(2,"0"),F=v.clone().year().toString(),b=A?.[C.DD],pe=A?.[C.MM],gt=A?.[C.YYYY],ft=re===b&&se===pe&&gt===F,rt=_?.isSame(v,"day");rt||(Ae(v),W(v.valueOf())),(A?!ft:!rt)&&B({[C.DD]:a?re:M,[C.MM]:a?se:G,[C.YYYY]:F})},[_,W,B]),U=(0,o.useCallback)(i=>{const a=i.key,A=["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Backspace","Delete","Tab","Enter"],v=/^\d$/.test(a);if(!(v||A.includes(a)||i.ctrlKey||i.metaKey)){i.preventDefault();return}if(k){if(v&&(Ht(a,k,R,ue,te),i.preventDefault(),i.stopPropagation()),a==="Tab"&&(O[O.length-1]!==k?(i.preventDefault(),te(k)):z?.current?.blur()),a==="Enter"&&(i.preventDefault(),i.stopPropagation()),a==="Backspace"||a==="Delete"){const M=R[k];M!==""?ue(k,M.length===1?"":M.slice(0,-1)):de(k),i.preventDefault(),i.stopPropagation()}(a==="ArrowLeft"||a==="ArrowDown")&&(i.preventDefault(),de(k)),(a==="ArrowRight"||a==="ArrowUp")&&(i.preventDefault(),te(k))}},[k,te,de,R,O,ue]),Le=(0,o.useCallback)(()=>{N((_??P).clone().add(1,"month").valueOf(),!0)},[_,N,P]),Te=(0,o.useCallback)(()=>{N((_??P).clone().subtract(1,"month").valueOf(),!0)},[_,N,P]),ze=(0,o.useCallback)(()=>{j!=="select"&&(De(!0),$(i=>i??C.DD))},[j]),He=(0,o.useCallback)(()=>{De(!1),T||Z?.()},[T,Z]),Ee=(0,o.useCallback)(i=>{const a=i.target.value,A=Et(a);if(A){B({[C.DD]:String(A.day).padStart(2,"0"),[C.MM]:String(A.month).padStart(2,"0"),[C.YYYY]:String(A.year)}),z.current&&(z.current.value="");return}const v=ve.current,M=a.length>v.length?a.slice(-1):null;ve.current=a,M&&/^\d$/.test(M)&&U({key:M,preventDefault:()=>{},stopPropagation:()=>{}}),a.length<v.length&&U({key:"Backspace",preventDefault:()=>{},stopPropagation:()=>{}}),z.current&&(z.current.value="")},[U,B]);(0,o.useEffect)(()=>{L&&!ee.current&&(ee.current=!0)},[L]),(0,o.useEffect)(()=>{pt(x.hooks(p).utc())},[p]),(0,o.useEffect)(()=>{if(Ae(t.value||t.defaultValue?x.hooks(t.value??t.defaultValue).utc():null),t.value){const i=x.hooks(t.value).utc();B({[C.DD]:i.date().toString().padStart(2,"0"),[C.MM]:(i.month()+1).toString().padStart(2,"0"),[C.YYYY]:i.year().toString()})}},[t.value,t.defaultValue,B]),(0,o.useEffect)(()=>{k||me(R,i=>{N(i,!0,R),w(!1)},()=>{W(null),w(!0)},i=>{i||(ee.current&&(W(null),ee.current=!1),w(!1))})},[N,W,R,k]),(0,o.useEffect)(()=>{!T&&!J&&I&&!k&&me(R,()=>{},()=>{W(null),K(),w(!1)},()=>{W(null),K(),w(!1)})},[K,R,T,J,W,I,k]),(0,o.useEffect)(()=>{k&&me(le.current,i=>{N(i,!0,le.current),w(!1)},()=>{w(!0)},i=>{i||w(!1)})},[N,k]),(0,o.useEffect)(()=>{k&&(E(),z?.current?.focus())},[k,E]);const Fe=(0,o.useMemo)(()=>(_??P).clone().startOf("month").utc().valueOf(),[_,P]),qe=(0,o.useMemo)(()=>(_??P).clone().startOf("year").utc().valueOf(),[_,P]),$e=(0,o.useCallback)(()=>{W(null),K(),w(!1)},[W,K]),Ke=(0,o.useCallback)(i=>{N(i,!0),ye&&E()},[N,ye,E]),Ue=(0,o.useCallback)(i=>{i&&N(i,!0)},[N]),{className:Ge,style:Xe}=at.useTypographyStyles({sx:{variant:e.EXTRA_VALUE.sizeToController.small,weight:"500",...ke}}),{className:Qe,style:Ze}=at.useTypographyStyles({sx:{size:16,weight:ce?"700":"400",...ke}}),{className:Je,style:et}=(0,o.useMemo)(()=>{const i=V.setClasses([e.CSS_CLASS.component.datePicker.wrapper,S]),a={};return a[e.CSS_VARS_RAW.component.datePicker.padding]=e.CSS_VARS.size[D].padding,a[e.CSS_VARS_RAW.component.datePicker.inputBackground]=e.CSS_VARS.genre.select[m].background.index,a[e.CSS_VARS_RAW.component.datePicker.inputBackgroundHover]=e.CSS_VARS.genre.input[m].background,a[e.CSS_VARS_RAW.component.datePicker.inputSegmentBackgroundActive]=e.CSS_VARS.palette.fillQuaternaryLight,a[e.CSS_VARS_RAW.component.datePicker.inputBorderColor]=e.CSS_VARS.genre.input[m].border,a[e.CSS_VARS_RAW.component.datePicker.inputBorderColorHover]=e.CSS_VARS.genre.input[m].border,a[e.CSS_VARS_RAW.component.datePicker.inputColor]=e.CSS_VARS.genre.input[m].color,a[e.CSS_VARS_RAW.component.datePicker.inputColorHover]=e.CSS_VARS.genre.input[m].color,a[e.CSS_VARS_RAW.component.datePicker.inputPadding]=oe?`0px ${e.CSS_VARS.size[D].padding}`:`0px ${e.CSS_VARS.size[D].padding} 0px ${e.CSS_VARS.sizeValue[D].padding-2}px`,a[e.CSS_VARS_RAW.component.datePicker.inputHeight]=e.CSS_VARS.size[D].height,a[e.CSS_VARS_RAW.component.datePicker.inputRadius]=e.CSS_VARS.size[D].radius,a[e.CSS_VARS_RAW.component.datePicker.inputValueColor]=e.CSS_VARS.genre.input[m].color,a[e.CSS_VARS_RAW.component.datePicker.inputPlaceholderColor]=e.CSS_VARS.genre.input[m].placeholder,a[e.CSS_VARS_RAW.component.datePicker.buttonToggleRight]=`${e.CSS_VARS.size[D].padding}`,a[e.CSS_VARS_RAW.component.datePicker.buttonClearRight]=`${e.CSS_VARS.sizeValue[D].padding*2+e.CSS_VARS.sizeValue[D].height}px`,{className:i,style:V.setStyles([Object.keys(a).length?a:void 0,ge])}},[S,ge,oe,m,D]),{className:tt,style:nt}=(0,o.useMemo)(()=>{const i=V.setClasses([h]),a={};return a[e.CSS_VARS_RAW.component.datePicker.dayRadius]=`${Ye}px`,a[e.CSS_VARS_RAW.component.datePicker.dayBackgroundRest]=e.CSS_VARS.genre.datepicker[m].background.index,a[e.CSS_VARS_RAW.component.datePicker.dayBackgroundHover]=e.CSS_VARS.genre.datepicker[m].background.hover,a[e.CSS_VARS_RAW.component.datePicker.dayBackgroundWeekend]=e.CSS_VARS.genre.datepicker[m].background.weekend,a[e.CSS_VARS_RAW.component.datePicker.dayBackgroundToday]=e.CSS_VARS.genre.datepicker[m].background.today,a[e.CSS_VARS_RAW.component.datePicker.dayBackgroundChoice]=e.CSS_VARS.genre.datepicker[m].background.choice,a[e.CSS_VARS_RAW.component.datePicker.dayBorderRest]=e.CSS_VARS.genre.datepicker[m].border.index,a[e.CSS_VARS_RAW.component.datePicker.dayBorderWeekend]=e.CSS_VARS.genre.datepicker[m].border.weekend,a[e.CSS_VARS_RAW.component.datePicker.dayBorderToday]=e.CSS_VARS.genre.datepicker[m].border.today,a[e.CSS_VARS_RAW.component.datePicker.dayBorderChoice]=e.CSS_VARS.genre.datepicker[m].border.choice,a[e.CSS_VARS_RAW.component.datePicker.dayBorderHover]=e.CSS_VARS.genre.datepicker[m].border.hover,a[e.CSS_VARS_RAW.component.datePicker.dayColorRest]=e.CSS_VARS.genre.datepicker[m].color.index,a[e.CSS_VARS_RAW.component.datePicker.dayColorHover]=e.CSS_VARS.genre.datepicker[m].color.hover,a[e.CSS_VARS_RAW.component.datePicker.dayColorWeekend]=e.CSS_VARS.genre.datepicker[m].color.weekend,a[e.CSS_VARS_RAW.component.datePicker.dayColorToday]=e.CSS_VARS.genre.datepicker[m].color.today,a[e.CSS_VARS_RAW.component.datePicker.dayColorChoice]=e.CSS_VARS.genre.datepicker[m].color.choice,{className:i,style:V.setStyles([Object.keys(a).length?a:void 0,{background:e.CSS_VARS.genre.popover[m].background,border:`solid 1px ${e.CSS_VARS.genre.input[m].border}`},fe])}},[h,fe,m,Ye]),ot=(0,o.useMemo)(()=>j!=="manual"||!!(X&&(L||I)&&!g&&!q),[j,I,L,X,g,q]),ht=(0,o.useMemo)(()=>({activeSegment:k,activateSegment:Me,ariaLabel:r,autoComplete:c,classNamePopover:tt,classNameTypography:Qe,classNameTypographyDay:Ge,classNameWrapper:Je,clearActiveSegment:Se,clearDate:$e,close:E,control:s,dateMax:u,dateMin:f,daysInMonth:ne,daysInWeek:xe,error:y,floatingStyles:Be,genre:m,id:l,input:R,inputPlaceholders:Ve,isBlockNextMonth:We,isBlockPrevMonth:we,isDisabled:g,isError:Re,isHasInput:I,isHasValue:L,isOpen:T,isReadOnly:q,isShowButtonList:ot,isShowClearButton:X,isShowPlaceholder:oe,labelPlaceholder:Q,localeMonths:Y.months,mode:O,monthSelectValue:Fe,name:Ce,onBlurInput:He,onChangeInput:Ee,onFocusInput:ze,onKeyDown:U,onNextMonth:Le,onPrevMonth:Te,onSelectDay:Ke,onSelectMonthYear:Ue,refFloating:Ie,refHiddenInput:z,refReference:Oe,refSelectMonth:Pe,refSelectYear:be,rows:Ne,size:D,stylePopover:nt,styleTypography:Ze,styleTypographyDay:Xe,styleWrapper:et,toggle:je,type:j,yearSelectValue:qe}),[k,Me,r,c,tt,Qe,Ge,Je,Se,$e,E,s,u,f,ne,xe,y,Be,m,l,R,Ve,We,we,g,Re,I,L,T,q,ot,X,oe,Q,Y.months,O,Fe,Ce,He,Ee,ze,U,Le,Te,Ke,Ue,Ie,Oe,Ne,D,nt,Ze,Xe,et,je,j,qe]);return(0,d.jsx)(dt.Provider,{value:ht,children:(0,d.jsx)(Dt,{})})},Dt=(0,o.memo)(()=>(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:n(t=>t.classNameWrapper),style:n(t=>t.styleWrapper),tabIndex:-1,children:(0,d.jsx)(vt,{})}),(0,d.jsx)(wt,{}),(0,d.jsx)(Lt,{})]})),vt=(0,o.memo)(()=>{const t=n(y=>y.activeSegment),r=n(y=>y.activateSegment),c=n(y=>y.control),S=n(y=>y.isDisabled),h=n(y=>y.isOpen),s=n(y=>y.isReadOnly),p=n(y=>y.refReference),u=n(y=>y.toggle),f=n(y=>y.type);return(0,d.jsxs)("div",{ref:p,tabIndex:-1,onClick:(0,o.useCallback)(()=>{if(f==="select"){u();return}!t&&!s&&r(C.DD)},[t,r,s,u,f]),className:V.setClasses([e.CSS_CLASS.component.datePicker.inputWrapper,e.CSS_CLASS.transition.color,e.CSS_CLASS.control[S?"none":c??(h||t?"boxShadowSelect":"boxShadowOnlyHover")]]),children:[(0,d.jsx)(Pt,{}),(0,d.jsx)(bt,{}),(0,d.jsx)(Nt,{})]})}),Pt=(0,o.memo)(()=>{const t=n(l=>l.ariaLabel),r=n(l=>l.autoComplete),c=n(l=>l.id),S=n(l=>l.isDisabled),h=n(l=>l.isReadOnly),s=n(l=>l.name),p=n(l=>l.onBlurInput),u=n(l=>l.onChangeInput),f=n(l=>l.onFocusInput),y=n(l=>l.onKeyDown),m=n(l=>l.refHiddenInput);return n(l=>l.type)==="select"?null:(0,d.jsx)("input",{name:s,"aria-label":t??s,autoComplete:r,id:c,ref:m,type:"tel",inputMode:"numeric",tabIndex:0,disabled:S||h,style:{position:"absolute",left:"-100dvw",top:0,width:"100%",height:"100%",opacity:0,border:"none",background:"transparent"},onKeyDown:y,onChange:u,onFocus:f,onBlur:p})}),bt=(0,o.memo)(()=>n(t=>t.isShowPlaceholder)?(0,d.jsx)(Vt,{}):(0,d.jsx)(Mt,{})),Vt=(0,o.memo)(()=>{const t=n(c=>c.genre),r=n(c=>c.labelPlaceholder);return(0,d.jsx)(At.Typography,{sx:{size:16,line:1,isNoUserSelect:!0},style:{color:e.CSS_VARS.genre.input[t].placeholder},children:r})}),Mt=(0,o.memo)(()=>{const t=n(r=>r.mode);return t.map((r,c)=>(0,d.jsxs)(o.Fragment,{children:[(0,d.jsx)(xt,{segment:r}),c!==t.length-1&&(0,d.jsx)("span",{style:{width:"4px",pointerEvents:"none",textAlign:"center"},children:"."})]},r))}),xt=(0,o.memo)(t=>{const{segment:r}=t,c=n(l=>l.activateSegment),S=n(l=>l.classNameTypography),h=n(l=>l.input[r]),s=n(l=>l.activeSegment===r),p=n(l=>l.isDisabled),u=n(l=>l.isReadOnly),f=n(l=>l.inputPlaceholders[r]),y=n(l=>l.styleTypography),m=n(l=>l.type);return(0,d.jsx)("div",{className:V.setClasses([e.CSS_CLASS.component.datePicker.inputSegment,e.CSS_CLASS.transition.color,S,!!h&&e.CSS_CLASS.component.datePicker.inputSegmentHasValue,s&&e.CSS_CLASS.component.datePicker.inputSegmentIsActive]),style:y,onClick:l=>{m!=="select"&&(l.preventDefault(),l.stopPropagation(),!(p||u)&&c(r))},children:h||f||""})}),Nt=(0,o.memo)(()=>n(t=>t.isShowButtonList)?(0,d.jsxs)("div",{className:V.setClasses([e.CSS_CLASS.component.datePicker.listButton]),children:[(0,d.jsx)(Yt,{}),(0,d.jsx)(Wt,{})]}):null),Yt=(0,o.memo)(()=>{const t=n(u=>u.clearActiveSegment),r=n(u=>u.clearDate),c=n(u=>u.genre),S=n(u=>u.isDisabled),h=n(u=>u.isHasInput),s=n(u=>u.isHasValue),p=n(u=>u.isReadOnly);return!n(u=>u.isShowClearButton)||!s&&!h||S||p?null:(0,d.jsx)(ae.Button,{genre:c,size:"small",isWidthAsHeight:!0,isFullRadius:!0,isFullSize:!0,isHiddenBorder:!0,isOnlyIcon:!0,tabIndex:0,icons:[{name:"Close",type:"id"}],isDisabled:S||p,onFocus:u=>{u.preventDefault(),u.stopPropagation(),t()},onClick:u=>{u.preventDefault(),u.stopPropagation(),r()}})}),Wt=(0,o.memo)(()=>{const t=n(s=>s.clearActiveSegment),r=n(s=>s.genre),c=n(s=>s.isDisabled),S=n(s=>s.isReadOnly),h=n(s=>s.toggle);return n(s=>s.type)==="manual"?null:(0,d.jsx)(ae.Button,{genre:r,size:"small",isWidthAsHeight:!0,isFullRadius:!0,isFullSize:!0,isHiddenBorder:!0,isOnlyIcon:!0,icons:[{name:"Calendar",type:"id"}],isDisabled:c||S,tabIndex:0,onFocus:s=>{s.preventDefault(),s.stopPropagation(),t()},onClick:s=>{s.preventDefault(),s.stopPropagation(),h()}})}),wt=(0,o.memo)(()=>{const t=n(p=>p.classNamePopover),r=n(p=>p.floatingStyles),c=n(p=>p.genre),S=n(p=>p.isOpen),h=n(p=>p.refFloating),s=n(p=>p.size);return(0,d.jsx)(ut.Popover,{style:n(p=>p.stylePopover),className:t,size:s,genre:c,isOpen:S,floatingStyles:r,ref:h,control:"boxShadowSelect",isDisabledBoxShadow:!0,children:(0,d.jsx)(Ot,{})})}),Ot=(0,o.memo)(()=>(0,d.jsxs)("div",{className:V.setClasses([e.CSS_CLASS.component.datePicker.dropdownList]),children:[(0,d.jsx)(It,{}),(0,d.jsx)(Bt,{})]})),It=(0,o.memo)(()=>{const t=n(g=>g.dateMax),r=n(g=>g.dateMin),c=n(g=>g.genre),S=n(g=>g.isBlockNextMonth),h=n(g=>g.isBlockPrevMonth),s=n(g=>g.localeMonths),p=n(g=>g.monthSelectValue),u=n(g=>g.onNextMonth),f=n(g=>g.onPrevMonth),y=n(g=>g.onSelectMonthYear),m=n(g=>g.refSelectMonth),l=n(g=>g.refSelectYear),ce=n(g=>g.yearSelectValue);return(0,d.jsxs)(st.Stack,{style:{justifyContent:"space-between",alignItems:"center"},children:[(0,d.jsx)(ae.Button,{type:"button",isFullRadius:!0,icons:[{name:"Arrow2",type:"id",turn:90}],isWidthAsHeight:!0,genre:c,size:"small",onClick:f,isHidden:h,isDisabled:h}),(0,d.jsxs)(st.Stack,{style:{gap:"8px"},children:[(0,d.jsx)(x.SelectMonth,{isToggleWhenClickSelectListOption:!0,monthsLocale:s,genre:c,size:"small",value:p,isOnClickOptionClose:!0,isStayValueAfterSelect:!0,isOnlyColorInSelectListOption:!0,isCenter:!0,isShortLabel:!0,refFloating:m,onChange:y,dateMin:r,dateMax:t,style:{width:"60px"}}),(0,d.jsx)(x.SelectYear,{isToggleWhenClickSelectListOption:!0,genre:c,size:"small",refFloating:l,value:ce,onChange:y,isOnClickOptionClose:!0,isStayValueAfterSelect:!0,isOnlyColorInSelectListOption:!0,isCenter:!0,dateMin:r,dateMax:t,style:{width:"60px"}})]}),(0,d.jsx)(ae.Button,{type:"button",onClick:u,isWidthAsHeight:!0,isFullRadius:!0,icons:[{name:"Arrow2",type:"id",turn:-90}],genre:c,size:"small",isDisabled:S,isHidden:S})]})}),Bt=(0,o.memo)(()=>{const t=n(s=>s.classNameTypographyDay),r=n(s=>s.daysInMonth),c=n(s=>s.daysInWeek),S=n(s=>s.rows),h=n(s=>s.styleTypographyDay);return(0,d.jsxs)("div",{className:V.setClasses([e.CSS_CLASS.component.datePicker.dropdownListDays]),style:V.setStyles([{[e.CSS_VARS_RAW.component.datePicker.rows]:S}]),children:[c.map(s=>(0,d.jsx)("div",{className:V.setClasses([e.CSS_CLASS.component.datePicker.dayOfWeek,t,e.CSS_CLASS.transition.color]),style:V.setStyles([h,{[e.CSS_VARS_RAW.component.datePicker.row]:r[0]?.weekOfMonth-1,[e.CSS_VARS_RAW.component.datePicker.column]:s.index+1}]),tabIndex:-1,children:s.label},`${s.label}-${s.index}`)),r.map(s=>(0,d.jsx)(jt,{day:s,classNameTypographyDay:t,styleTypographyDay:h},s.value))]})}),jt=(0,o.memo)(t=>{const{classNameTypographyDay:r,day:c,styleTypographyDay:S}=t,h=n(s=>s.onSelectDay);return(0,d.jsx)("div",{className:V.setClasses([e.CSS_CLASS.component.datePicker.day,r,e.CSS_CLASS.control[c.isDisabled||c.isChoice?"none":"boxShadow"],e.CSS_CLASS.transition.color,c.isDisabled&&e.CSS_CLASS.component.datePicker.dayIsHidden,c.isToday&&e.CSS_CLASS.component.datePicker.dayIsToday,c.isWeekend&&e.CSS_CLASS.component.datePicker.dayIsWeekend,c.isChoice&&e.CSS_CLASS.component.datePicker.dayIsChoice,!c.isCurrentMonth&&e.CSS_CLASS.component.datePicker.dayIsNotCurrentMonth]),style:V.setStyles([S,{[e.CSS_VARS_RAW.component.datePicker.row]:c.weekOfMonth+1,[e.CSS_VARS_RAW.component.datePicker.column]:c.dayOfWeek}]),onClick:()=>{c.isDisabled||h(c.value)},tabIndex:c.isDisabled?-1:0,children:c.labelNumber})}),Lt=(0,o.memo)(()=>{const t=n(S=>S.error),r=n(S=>S.isError),c=n(S=>S.size);return!t?.isError&&!r?null:(0,d.jsx)(kt.ErrorMessage,{size:t?.size??c,sxTypography:{size:16,weight:"400",...t?.sxTypography},...t??{}})}),Tt=/^\d{4}-\d{2}-\d{2}$/,zt=/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;function Ht(t,r,c,S,h){const s=c[r]??"";if(r===C.YYYY){S(r,s.length>=4?t:s+t);return}if(s.length>=2||s===""){S(r,t);return}const p=r===C.DD?31:12,u=s+t,f=Number(u);if(f>p||f===0){S(r,t);return}S(r,u),h(r)}function Et(t){if(Tt.test(t)){const[c,S,h]=t.split("-").map(Number);return lt(c,S,h)}const r=zt.exec(t);if(r){const c=r[1],S=r[2],h=r[3],s=Number(c),p=Number(S),u=Number(h);let f,y;return s>12?(y=s,f=p):(f=s,y=p),lt(u,f,y)}return null}function lt(t,r,c){const S=new Date(t,r-1,c);return S.getFullYear()===t&&S.getMonth()===r-1&&S.getDate()===c?{year:t,month:r,day:c}:null}function Ft(t){const c=Math.floor(t/7);return t%7>0?c+1:c}function qt(t,r){const c=r.indexOf(t);return c<r.length-1?r[c+1]:r[0]}function $t(t,r){const c=r.indexOf(t);return c>0?r[c-1]:r[r.length-1]}function me(t,r,c,S){const h=t.DD,s=t.MM,p=t.YYYY,u=h===""?NaN:Number(h),f=s===""?NaN:Number(s),y=p===""?NaN:Number(p),m=h!==""||s!==""||p!=="";if(!Number.isNaN(u)&&!Number.isNaN(f)&&!Number.isNaN(y)){const l=x.hooks.utc(`${u}.${f}.${y}`,"D.M.YYYY",!0).startOf("day");l.isValid()?r?.(l.valueOf()):c?.()}else S?.(m)}function Kt(t,r){return t[C.DD]===r[C.DD]&&t[C.MM]===r[C.MM]&&t[C.YYYY]===r[C.YYYY]}Object.defineProperty(exports,"DatePicker",{enumerable:!0,get:function(){return Rt}});
2
+
3
+ //# sourceMappingURL=date-picker-ATktGA1c.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker-ATktGA1c.cjs","names":[],"sources":["../src/components/date-picker/component.types.ts","../src/components/date-picker/component.tsx"],"sourcesContent":["import { IErrorMessage } from '@local/components/error';\nimport { ISelectMonth } from '@local/components/select';\nimport { ITypography } from '@local/styles/utils';\nimport { IThemeControl, IThemeGenreDatePicker, IThemeSize } from '@local/styles/utils/types';\n\nimport { CSSProperties, HTMLInputAutoCompleteAttribute } from 'react';\n\nexport type IDatePickerMode = DatePickerVariant[];\n\nexport enum DatePickerVariant {\n DD = 'DD',\n MM = 'MM',\n YYYY = 'YYYY',\n}\n\nexport type IDatePickerType = 'manual' | 'select' | 'manualAndSelect';\n\nexport type IDatePickerCommon = {\n className?: string;\n style?: CSSProperties;\n\n classNamePopover?: string;\n stylePopover?: CSSProperties;\n\n sxTypography?: ITypography;\n control?: IThemeControl;\n error?: IErrorMessage;\n\n genre: IThemeGenreDatePicker;\n\n id?: string;\n\n isNiceNumber?: boolean;\n isReadOnly?: boolean;\n isDisabled?: boolean;\n isBold?: boolean;\n isMinWidth?: boolean;\n isShowClearButton?: boolean;\n isOnClickClose?: boolean;\n\n labelPlaceholder?: string;\n\n locale: {\n months: ISelectMonth['monthsLocale'];\n weeks: IDatePickerTranslateWeek[];\n inputs: IDatePickerTranslateInput;\n };\n\n notValidDate?: Omit<IErrorMessage, 'size' | 'isError'>;\n\n mode?: IDatePickerMode;\n\n type?: IDatePickerType;\n\n name?: string;\n\n ariaLabel?: string;\n\n autoComplete?: HTMLInputAutoCompleteAttribute | 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 IDatePickerControlledValue = {\n value: number | null | undefined;\n\n defaultValue?: never;\n};\n\ntype IDatePickerUncontrolledValue = {\n defaultValue: number | null | undefined;\n\n value?: never;\n};\nexport type IDatePicker = IDatePickerCommon & (IDatePickerControlledValue | IDatePickerUncontrolledValue);\n\nexport interface IDatePickerDay {\n dayOfWeek: number;\n\n isCurrentMonth: boolean;\n\n isDisabled: boolean;\n\n isChoice: 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 IDatePickerTranslateMonth = {\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 IDatePickerTranslateWeek = {\n localeLong: string;\n\n localeShort: string;\n\n value: 'mo' | 'tu' | 'we' | 'th' | 'fr' | 'sa' | 'su';\n};\nexport type IDatePickerTranslateInput = {\n day: string;\n\n month: string;\n\n year: string;\n};\n","/** biome-ignore-all lint/a11y/useKeyWithClickEvents: Date segments mirror the hidden keyboard input. */\nimport { Button } from '@local/components/button';\nimport { ErrorMessage } from '@local/components/error';\nimport { Popover, usePopover } from '@local/components/popover';\nimport { SelectMonth, SelectYear } from '@local/components/select';\nimport { Stack } from '@local/components/stack';\nimport { Typography } from '@local/components/typography';\nimport { useTypographyStyles } from '@local/hooks/use-typography-styles';\nimport { CSS_CLASS, CSS_VARS, CSS_VARS_RAW, EXTRA_VALUE } from '@local/styles/utils';\nimport { setClasses, setStyles } from '@local/styles/utils/functions';\n\nimport moment, { Moment } from 'moment';\nimport {\n ChangeEvent,\n CSSProperties,\n Fragment,\n KeyboardEvent,\n RefObject,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { createContext, useContextSelector } from 'use-context-selector';\n\nimport {\n DatePickerVariant,\n IDatePicker,\n IDatePickerDay,\n IDatePickerMode,\n IDatePickerTranslateWeek,\n IDatePickerType,\n} from './component.types';\n\ntype DatePickerInput = Record<DatePickerVariant, string>;\n\ntype DatePickerPopoverApi = ReturnType<typeof usePopover>;\n\ntype DatePickerWeekDay = {\n index: number;\n label: string;\n};\n\ntype DatePickerInputPlaceholders = Record<DatePickerVariant, string>;\n\ntype DatePickerContextValue = {\n activeSegment: DatePickerVariant | null;\n activateSegment: (segment: DatePickerVariant) => void;\n ariaLabel: IDatePicker['ariaLabel'];\n autoComplete: IDatePicker['autoComplete'];\n classNamePopover: string;\n classNameTypography: string;\n classNameTypographyDay: string;\n classNameWrapper: string;\n clearActiveSegment: () => void;\n clearDate: () => void;\n close: DatePickerPopoverApi['close'];\n control: IDatePicker['control'];\n dateMax: IDatePicker['dateMax'];\n dateMin: IDatePicker['dateMin'];\n daysInMonth: IDatePickerDay[];\n daysInWeek: DatePickerWeekDay[];\n error: IDatePicker['error'];\n floatingStyles: DatePickerPopoverApi['floatingStyles'];\n genre: IDatePicker['genre'];\n id: IDatePicker['id'];\n input: DatePickerInput;\n inputPlaceholders: DatePickerInputPlaceholders;\n isBlockNextMonth: boolean;\n isBlockPrevMonth: boolean;\n isDisabled: IDatePicker['isDisabled'];\n isError: boolean;\n isHasInput: boolean;\n isHasValue: boolean;\n isOpen: boolean;\n isReadOnly: IDatePicker['isReadOnly'];\n isShowButtonList: boolean;\n isShowClearButton: IDatePicker['isShowClearButton'];\n isShowPlaceholder: boolean;\n labelPlaceholder: IDatePicker['labelPlaceholder'];\n localeMonths: IDatePicker['locale']['months'];\n mode: IDatePickerMode;\n monthSelectValue: number;\n name: IDatePicker['name'];\n onBlurInput: () => void;\n onChangeInput: (e: ChangeEvent<HTMLInputElement>) => void;\n onFocusInput: () => void;\n onKeyDown: (e: KeyboardEvent<HTMLInputElement>) => void;\n onNextMonth: () => void;\n onPrevMonth: () => void;\n onSelectDay: (timestamp: number) => void;\n onSelectMonthYear: (timestamp: number | null) => void;\n refFloating: DatePickerPopoverApi['refFloating'];\n refHiddenInput: RefObject<HTMLInputElement | null>;\n refReference: DatePickerPopoverApi['refReference'];\n refSelectMonth: RefObject<HTMLElement | null>;\n refSelectYear: RefObject<HTMLElement | null>;\n rows: number;\n size: IDatePicker['size'];\n stylePopover: CSSProperties | undefined;\n styleTypography: CSSProperties | undefined;\n styleTypographyDay: CSSProperties | undefined;\n styleWrapper: CSSProperties | undefined;\n toggle: DatePickerPopoverApi['toggle'];\n type: IDatePickerType;\n yearSelectValue: number;\n};\n\nconst weekOrder: IDatePickerTranslateWeek['value'][] = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];\n\nconst inputSegments: IDatePickerMode = [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY];\n\nconst defaultMode: IDatePickerMode = inputSegments;\n\nconst emptyInput: DatePickerInput = {\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n};\n\nconst DatePickerContext = createContext<DatePickerContextValue | null>(null);\n\nfunction useDatePickerSelector<T>(selector: (value: DatePickerContextValue) => T): T {\n return useContextSelector(DatePickerContext, (value) => {\n if (!value) {\n throw new Error('DatePicker context is not available.');\n }\n\n return selector(value);\n });\n}\n\nexport const DatePicker = (props: IDatePicker) => {\n const {\n ariaLabel,\n autoComplete,\n className,\n classNamePopover: classNamePopoverProp,\n control,\n dateDefault,\n dateMax,\n dateMin,\n error,\n genre,\n id,\n isBold,\n isDisabled,\n isOnClickClose,\n isReadOnly,\n isShowClearButton,\n labelPlaceholder,\n locale,\n mode: modeProp,\n name,\n onBlur,\n onChange,\n onFocus,\n size,\n style,\n stylePopover: stylePopoverProp,\n sxTypography,\n type: typeProp,\n } = props;\n\n const [valueMoment, setValueMoment] = useState<null | Moment>(null);\n const [dateDefaultMoment, setDateDefaultMoment] = useState<Moment>(moment(dateDefault).utc());\n const [input, setInput] = useState<DatePickerInput>(emptyInput);\n const [activeSegment, setActiveSegment] = useState<DatePickerVariant | null>(null);\n const [isError, setIsError] = useState(false);\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n const refInputValue = useRef(input);\n const refIsHasValueOnce = useRef(false);\n const refPrevValue = useRef('');\n const refSelectMonth = useRef<HTMLElement>(null);\n const refSelectYear = useRef<HTMLElement>(null);\n const refHiddenInput = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n refInputValue.current = input;\n }, [input]);\n\n const isHasInput = useMemo(\n () =>\n input[DatePickerVariant.DD] !== '' || input[DatePickerVariant.MM] !== '' || input[DatePickerVariant.YYYY] !== '',\n [input],\n );\n\n const setInputValues = useCallback((value: DatePickerInput) => {\n setInput((prev) => (isSameDatePickerInput(prev, value) ? prev : value));\n }, []);\n\n const onClearInput = useCallback(() => {\n setInputValues(emptyInput);\n }, [setInputValues]);\n\n const mode: IDatePickerMode = useMemo(() => {\n if (!modeProp || modeProp.length === 0) {\n return defaultMode;\n }\n\n const hasDuplicates = new Set(modeProp).size !== modeProp.length;\n\n if (hasDuplicates) {\n return defaultMode;\n }\n\n return modeProp;\n }, [modeProp]);\n\n const type: IDatePickerType = useMemo(() => {\n if (!typeProp) {\n return 'manualAndSelect';\n }\n\n return typeProp;\n }, [typeProp]);\n\n const inputPlaceholders = useMemo<DatePickerInputPlaceholders>(\n () => ({\n [DatePickerVariant.DD]: locale.inputs.day,\n [DatePickerVariant.MM]: locale.inputs.month,\n [DatePickerVariant.YYYY]: locale.inputs.year,\n }),\n [locale.inputs.day, locale.inputs.month, locale.inputs.year],\n );\n\n const setSegmentValue = useCallback((segment: DatePickerVariant, value: string) => {\n setInput((prev) => (prev[segment] === value ? prev : { ...prev, [segment]: value }));\n }, []);\n\n const activateSegment = useCallback((segment: DatePickerVariant) => {\n setActiveSegment(segment);\n }, []);\n\n const clearActiveSegment = useCallback(() => {\n setActiveSegment(null);\n }, []);\n\n const activateNextSegment = useCallback(\n (segment: DatePickerVariant) => {\n setActiveSegment(getNextSegment(segment, mode));\n },\n [mode],\n );\n\n const activatePrevSegment = useCallback(\n (segment: DatePickerVariant) => {\n setActiveSegment(getPrevSegment(segment, mode));\n },\n [mode],\n );\n\n const daysInWeek = useMemo<DatePickerWeekDay[]>(() => {\n return weekOrder.map((key, index) => {\n const found = locale.weeks.find((w) => w.value === key);\n return {\n index,\n label: found?.localeShort ?? key.toUpperCase(),\n };\n });\n }, [locale.weeks]);\n\n const daysInMonth: IDatePickerDay[] = useMemo(() => {\n const dateToday = moment.utc();\n const dateValue = valueMoment ?? dateDefaultMoment;\n const dateStartOfMonth = dateValue.clone().startOf('month');\n const dateEndOfMonth = dateValue.clone().endOf('month');\n const dateMinMoment = dateMin ? moment.utc(dateMin) : null;\n const dateMaxMoment = dateMax ? moment.utc(dateMax) : null;\n\n const dateVisibleDayFirst = dateStartOfMonth.clone().subtract(dateStartOfMonth.isoWeekday() - 1, 'days');\n const dateVisibleDayLast = dateEndOfMonth.clone().add(7 - dateEndOfMonth.isoWeekday(), 'days');\n\n const result: IDatePickerDay[] = [];\n const dateCurrent = dateVisibleDayFirst.clone();\n\n while (dateCurrent <= dateVisibleDayLast) {\n const isCurrentMonth = dateCurrent.isBetween(dateStartOfMonth, dateEndOfMonth, 'day', '[]');\n result.push({\n value: dateCurrent.valueOf(),\n labelString: dateCurrent.format('dd'),\n labelNumber: dateCurrent.date(),\n dayOfWeek: dateCurrent.isoWeekday(),\n isWeekend: [6, 7].includes(dateCurrent.isoWeekday()),\n weekOfMonth: Math.ceil((result.length + 1) / 7),\n isToday: dateCurrent.isSame(dateToday, 'day'),\n isCurrentMonth,\n isChoice: dateCurrent.valueOf() === valueMoment?.valueOf(),\n isDisabled: !!(\n (dateMinMoment && dateCurrent.isBefore(dateMinMoment, 'day')) ||\n (dateMaxMoment && dateCurrent.isAfter(dateMaxMoment, 'day'))\n ),\n });\n\n dateCurrent.add(1, 'day');\n }\n\n return result;\n }, [valueMoment, dateDefaultMoment, dateMax, dateMin]);\n\n const rows = useMemo(() => getCountSevens(daysInMonth.length) + 1, [daysInMonth]);\n const sizeRadius = useMemo(() => CSS_VARS.sizeValue[size].radius, [size]);\n const sizePadding = useMemo(() => CSS_VARS.sizeValue[size].padding, [size]);\n const isHasValue = useMemo(() => valueMoment !== null, [valueMoment]);\n\n const isBlockNextMonth = useMemo(() => {\n const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month').startOf('month');\n const isBeforeEndDate = dateMax ? nextMonth.isAfter(moment.utc(dateMax), 'month') : false;\n return isBeforeEndDate;\n }, [valueMoment, dateMax, dateDefaultMoment]);\n\n const isBlockPrevMonth = useMemo(() => {\n const prevMonth = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month').startOf('month');\n const isAfterStartDate = dateMin ? prevMonth.isBefore(moment.utc(dateMin), 'month') : false;\n return isAfterStartDate;\n }, [valueMoment, dateMin, dateDefaultMoment]);\n\n const onFocusPopover = useCallback(() => {\n onFocus?.();\n }, [onFocus]);\n\n const onBlurPopover = useCallback(() => {\n onBlur?.();\n }, [onBlur]);\n\n const refsExcludeClickOutside = useMemo(() => [refSelectMonth, refSelectYear], []);\n\n const { isOpen, refReference, refFloating, floatingStyles, close, toggle } = usePopover({\n isFocusTrap: true,\n placement: 'bottom-start',\n offset: sizePadding,\n mode: 'independence',\n isClickOutside: true,\n refsExcludeClickOutside,\n isDisabled: isDisabled || isReadOnly,\n onFocus: onFocusPopover,\n onBlur: onBlurPopover,\n onBlurReference: clearActiveSegment,\n });\n\n const isShowPlaceholder = useMemo(() => {\n return !!(\n !isInputFocused &&\n !isHasValue &&\n labelPlaceholder &&\n (type !== 'select' ? !isOpen : true) &&\n !isHasInput &&\n !activeSegment\n );\n }, [isInputFocused, isHasValue, isOpen, labelPlaceholder, isHasInput, activeSegment, type]);\n\n const onChangeDate = useCallback(\n (timestamp: number, isAddLeadingZeros: boolean, input?: DatePickerInput) => {\n const momentNewDate = moment(timestamp).utc();\n\n const dd = momentNewDate.clone().date().toString();\n const mm = (momentNewDate.clone().month() + 1).toString();\n\n const ddWithZero = dd.padStart(2, '0');\n const mmWithZero = mm.padStart(2, '0');\n\n const yyyy = momentNewDate.clone().year().toString();\n const ddInput = input?.[DatePickerVariant.DD];\n const mmInput = input?.[DatePickerVariant.MM];\n const yyyyInput = input?.[DatePickerVariant.YYYY];\n\n const isSameInput = ddWithZero === ddInput && mmWithZero === mmInput && yyyyInput === yyyy;\n const isSameMoment = valueMoment?.isSame(momentNewDate, 'day');\n\n if (!isSameMoment) {\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n }\n\n const shouldUpdateInput = input ? !isSameInput : !isSameMoment;\n\n if (shouldUpdateInput) {\n setInputValues({\n [DatePickerVariant.DD]: isAddLeadingZeros ? ddWithZero : dd,\n [DatePickerVariant.MM]: isAddLeadingZeros ? mmWithZero : mm,\n [DatePickerVariant.YYYY]: yyyy,\n });\n }\n },\n [valueMoment, onChange, setInputValues],\n );\n\n const onKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n const key = e.key;\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Tab', 'Enter'];\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) {\n return;\n }\n\n if (isDigit) {\n getDigitKey(key, activeSegment, input, setSegmentValue, activateNextSegment);\n e.preventDefault();\n e.stopPropagation();\n }\n\n if (key === 'Tab') {\n if (mode[mode.length - 1] !== activeSegment) {\n e.preventDefault();\n activateNextSegment(activeSegment);\n } else {\n refHiddenInput?.current?.blur();\n }\n }\n\n if (key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n }\n\n if (key === 'Backspace' || key === 'Delete') {\n const current = input[activeSegment];\n\n if (current !== '') {\n setSegmentValue(activeSegment, current.length === 1 ? '' : current.slice(0, -1));\n } else {\n activatePrevSegment(activeSegment);\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n activatePrevSegment(activeSegment);\n }\n\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n activateNextSegment(activeSegment);\n }\n },\n [activeSegment, activateNextSegment, activatePrevSegment, input, mode, setSegmentValue],\n );\n\n const onNextMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onFocusInput = useCallback(() => {\n if (type === 'select') return;\n setIsInputFocused(true);\n setActiveSegment((current) => current ?? DatePickerVariant.DD);\n }, [type]);\n\n const onBlurInput = useCallback(() => {\n setIsInputFocused(false);\n\n if (!isOpen) {\n onBlur?.();\n }\n }, [isOpen, onBlur]);\n\n const onChangeInput = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n const result = getParseDateString(value);\n\n if (result) {\n setInputValues({\n [DatePickerVariant.DD]: String(result.day).padStart(2, '0'),\n [DatePickerVariant.MM]: String(result.month).padStart(2, '0'),\n [DatePickerVariant.YYYY]: String(result.year),\n });\n if (refHiddenInput.current) refHiddenInput.current.value = '';\n return;\n }\n\n const prevValue = refPrevValue.current;\n const newChar = value.length > prevValue.length ? value.slice(-1) : null;\n\n refPrevValue.current = value;\n\n if (newChar && /^\\d$/.test(newChar)) {\n onKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n onKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (refHiddenInput.current) refHiddenInput.current.value = '';\n },\n [onKeyDown, setInputValues],\n );\n\n useEffect(() => {\n if (isHasValue && !refIsHasValueOnce.current) refIsHasValueOnce.current = true;\n }, [isHasValue]);\n\n useEffect(() => {\n setDateDefaultMoment(moment(dateDefault).utc());\n }, [dateDefault]);\n\n useEffect(() => {\n setValueMoment(props.value || props.defaultValue ? moment(props.value ?? props.defaultValue).utc() : null);\n if (props.value) {\n const m = moment(props.value).utc();\n setInputValues({\n [DatePickerVariant.DD]: m.date().toString().padStart(2, '0'),\n [DatePickerVariant.MM]: (m.month() + 1).toString().padStart(2, '0'),\n [DatePickerVariant.YYYY]: m.year().toString(),\n });\n }\n }, [props.value, props.defaultValue, setInputValues]);\n\n useEffect(() => {\n if (!activeSegment)\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value, true, input);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n if (refIsHasValueOnce.current) {\n onChange(null);\n refIsHasValueOnce.current = false;\n }\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, onChange, input, activeSegment]);\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 }, [onClearInput, input, isOpen, isInputFocused, onChange, isHasInput, activeSegment]);\n\n useEffect(() => {\n if (!activeSegment) return;\n getValidateInput(\n refInputValue.current,\n (value) => {\n onChangeDate(value, true, refInputValue.current);\n setIsError(false);\n },\n () => {\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, activeSegment]);\n\n useEffect(() => {\n if (activeSegment) {\n close();\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment, close]);\n\n const monthSelectValue = useMemo(\n () => (valueMoment ?? dateDefaultMoment).clone().startOf('month').utc().valueOf(),\n [valueMoment, dateDefaultMoment],\n );\n\n const yearSelectValue = useMemo(\n () => (valueMoment ?? dateDefaultMoment).clone().startOf('year').utc().valueOf(),\n [valueMoment, dateDefaultMoment],\n );\n\n const clearDate = useCallback(() => {\n onChange(null);\n onClearInput();\n setIsError(false);\n }, [onChange, onClearInput]);\n\n const onSelectDay = useCallback(\n (timestamp: number) => {\n onChangeDate(timestamp, true);\n if (isOnClickClose) {\n close();\n }\n },\n [onChangeDate, isOnClickClose, close],\n );\n\n const onSelectMonthYear = useCallback(\n (timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n },\n [onChangeDate],\n );\n\n const { className: classNameTypographyDay, style: styleTypographyDay } = useTypographyStyles({\n sx: {\n variant: EXTRA_VALUE.sizeToController.small,\n weight: '500',\n ...sxTypography,\n },\n });\n\n const { className: classNameTypography, style: styleTypography } = useTypographyStyles({\n sx: {\n size: 16,\n weight: isBold ? '700' : '400',\n ...sxTypography,\n },\n });\n\n const { className: classNameWrapper, style: styleWrapper } = useMemo(() => {\n const classNameWrapper = setClasses([CSS_CLASS.component.datePicker.wrapper, className]);\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.datePicker.padding] = CSS_VARS.size[size].padding;\n vars[CSS_VARS_RAW.component.datePicker.inputBackground] = CSS_VARS.genre.select[genre].background.index;\n vars[CSS_VARS_RAW.component.datePicker.inputBackgroundHover] = CSS_VARS.genre.input[genre].background;\n vars[CSS_VARS_RAW.component.datePicker.inputSegmentBackgroundActive] = CSS_VARS.palette.fillQuaternaryLight;\n vars[CSS_VARS_RAW.component.datePicker.inputBorderColor] = CSS_VARS.genre.input[genre].border;\n vars[CSS_VARS_RAW.component.datePicker.inputBorderColorHover] = CSS_VARS.genre.input[genre].border;\n vars[CSS_VARS_RAW.component.datePicker.inputColor] = CSS_VARS.genre.input[genre].color;\n vars[CSS_VARS_RAW.component.datePicker.inputColorHover] = CSS_VARS.genre.input[genre].color;\n vars[CSS_VARS_RAW.component.datePicker.inputPadding] = isShowPlaceholder\n ? `0px ${CSS_VARS.size[size].padding}`\n : `0px ${CSS_VARS.size[size].padding} 0px ${CSS_VARS.sizeValue[size].padding - 2}px`;\n vars[CSS_VARS_RAW.component.datePicker.inputHeight] = CSS_VARS.size[size].height;\n vars[CSS_VARS_RAW.component.datePicker.inputRadius] = CSS_VARS.size[size].radius;\n vars[CSS_VARS_RAW.component.datePicker.inputValueColor] = CSS_VARS.genre.input[genre].color;\n vars[CSS_VARS_RAW.component.datePicker.inputPlaceholderColor] = CSS_VARS.genre.input[genre].placeholder;\n vars[CSS_VARS_RAW.component.datePicker.buttonToggleRight] = `${CSS_VARS.size[size].padding}`;\n vars[CSS_VARS_RAW.component.datePicker.buttonClearRight] =\n `${CSS_VARS.sizeValue[size].padding * 2 + CSS_VARS.sizeValue[size].height}px`;\n\n const styleWrapper = setStyles([Object.keys(vars).length ? vars : undefined, style]);\n\n return { className: classNameWrapper, style: styleWrapper };\n }, [className, style, isShowPlaceholder, genre, size]);\n\n const { className: classNamePopover, style: stylePopover } = useMemo(() => {\n const classNamePopover = setClasses([classNamePopoverProp]);\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.datePicker.dayRadius] = `${sizeRadius}px`;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundRest] = CSS_VARS.genre.datepicker[genre].background.index;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundHover] = CSS_VARS.genre.datepicker[genre].background.hover;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundWeekend] = CSS_VARS.genre.datepicker[genre].background.weekend;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundToday] = CSS_VARS.genre.datepicker[genre].background.today;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundChoice] = CSS_VARS.genre.datepicker[genre].background.choice;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderRest] = CSS_VARS.genre.datepicker[genre].border.index;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderWeekend] = CSS_VARS.genre.datepicker[genre].border.weekend;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderToday] = CSS_VARS.genre.datepicker[genre].border.today;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderChoice] = CSS_VARS.genre.datepicker[genre].border.choice;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderHover] = CSS_VARS.genre.datepicker[genre].border.hover;\n vars[CSS_VARS_RAW.component.datePicker.dayColorRest] = CSS_VARS.genre.datepicker[genre].color.index;\n vars[CSS_VARS_RAW.component.datePicker.dayColorHover] = CSS_VARS.genre.datepicker[genre].color.hover;\n vars[CSS_VARS_RAW.component.datePicker.dayColorWeekend] = CSS_VARS.genre.datepicker[genre].color.weekend;\n vars[CSS_VARS_RAW.component.datePicker.dayColorToday] = CSS_VARS.genre.datepicker[genre].color.today;\n vars[CSS_VARS_RAW.component.datePicker.dayColorChoice] = CSS_VARS.genre.datepicker[genre].color.choice;\n\n const stylePopover = setStyles([\n Object.keys(vars).length ? vars : undefined,\n {\n background: CSS_VARS.genre.popover[genre].background,\n border: `solid 1px ${CSS_VARS.genre.input[genre].border}`,\n },\n stylePopoverProp,\n ]);\n\n return { className: classNamePopover, style: stylePopover };\n }, [classNamePopoverProp, stylePopoverProp, genre, sizeRadius]);\n\n const isShowButtonList = useMemo(() => {\n return type !== 'manual' || !!(isShowClearButton && (isHasValue || isHasInput) && !isDisabled && !isReadOnly);\n }, [type, isHasInput, isHasValue, isShowClearButton, isDisabled, isReadOnly]);\n\n const contextValue = useMemo<DatePickerContextValue>(\n () => ({\n activeSegment,\n activateSegment,\n ariaLabel,\n autoComplete,\n classNamePopover,\n classNameTypography,\n classNameTypographyDay,\n classNameWrapper,\n clearActiveSegment,\n clearDate,\n close,\n control,\n dateMax,\n dateMin,\n daysInMonth,\n daysInWeek,\n error,\n floatingStyles,\n genre,\n id,\n input,\n inputPlaceholders,\n isBlockNextMonth,\n isBlockPrevMonth,\n isDisabled,\n isError,\n isHasInput,\n isHasValue,\n isOpen,\n isReadOnly,\n isShowButtonList,\n isShowClearButton,\n isShowPlaceholder,\n labelPlaceholder,\n localeMonths: locale.months,\n mode,\n monthSelectValue,\n name,\n onBlurInput,\n onChangeInput,\n onFocusInput,\n onKeyDown,\n onNextMonth,\n onPrevMonth,\n onSelectDay,\n onSelectMonthYear,\n refFloating,\n refHiddenInput,\n refReference,\n refSelectMonth,\n refSelectYear,\n rows,\n size,\n stylePopover,\n styleTypography,\n styleTypographyDay,\n styleWrapper,\n toggle,\n type,\n yearSelectValue,\n }),\n [\n activeSegment,\n activateSegment,\n ariaLabel,\n autoComplete,\n classNamePopover,\n classNameTypography,\n classNameTypographyDay,\n classNameWrapper,\n clearActiveSegment,\n clearDate,\n close,\n control,\n dateMax,\n dateMin,\n daysInMonth,\n daysInWeek,\n error,\n floatingStyles,\n genre,\n id,\n input,\n inputPlaceholders,\n isBlockNextMonth,\n isBlockPrevMonth,\n isDisabled,\n isError,\n isHasInput,\n isHasValue,\n isOpen,\n isReadOnly,\n isShowButtonList,\n isShowClearButton,\n isShowPlaceholder,\n labelPlaceholder,\n locale.months,\n mode,\n monthSelectValue,\n name,\n onBlurInput,\n onChangeInput,\n onFocusInput,\n onKeyDown,\n onNextMonth,\n onPrevMonth,\n onSelectDay,\n onSelectMonthYear,\n refFloating,\n refReference,\n rows,\n size,\n stylePopover,\n styleTypography,\n styleTypographyDay,\n styleWrapper,\n toggle,\n type,\n yearSelectValue,\n ],\n );\n\n return (\n <DatePickerContext.Provider value={contextValue}>\n <DatePickerContent />\n </DatePickerContext.Provider>\n );\n};\n\nconst DatePickerContent = memo(() => {\n const classNameWrapper = useDatePickerSelector((value) => value.classNameWrapper);\n const styleWrapper = useDatePickerSelector((value) => value.styleWrapper);\n\n return (\n <>\n <div className={classNameWrapper} style={styleWrapper} tabIndex={-1}>\n <DatePickerInputWrapper />\n </div>\n <DatePickerPopover />\n <DatePickerError />\n </>\n );\n});\n\nconst DatePickerInputWrapper = memo(() => {\n const activeSegment = useDatePickerSelector((value) => value.activeSegment);\n const activateSegment = useDatePickerSelector((value) => value.activateSegment);\n const control = useDatePickerSelector((value) => value.control);\n const isDisabled = useDatePickerSelector((value) => value.isDisabled);\n const isOpen = useDatePickerSelector((value) => value.isOpen);\n const isReadOnly = useDatePickerSelector((value) => value.isReadOnly);\n const refReference = useDatePickerSelector((value) => value.refReference);\n const toggle = useDatePickerSelector((value) => value.toggle);\n const type = useDatePickerSelector((value) => value.type);\n\n const handleClick = useCallback(() => {\n if (type === 'select') {\n toggle();\n return;\n }\n\n if (!activeSegment && !isReadOnly) {\n activateSegment(DatePickerVariant.DD);\n }\n }, [activeSegment, activateSegment, isReadOnly, toggle, type]);\n\n return (\n <div\n ref={refReference as RefObject<HTMLDivElement | null>}\n tabIndex={-1}\n onClick={handleClick}\n className={setClasses([\n CSS_CLASS.component.datePicker.inputWrapper,\n CSS_CLASS.transition.color,\n CSS_CLASS.control[\n isDisabled ? 'none' : (control ?? (isOpen || activeSegment ? 'boxShadowSelect' : 'boxShadowOnlyHover'))\n ],\n ])}\n >\n <DatePickerHiddenInput />\n <DatePickerDisplay />\n <DatePickerButtonList />\n </div>\n );\n});\n\nconst DatePickerHiddenInput = memo(() => {\n const ariaLabel = useDatePickerSelector((value) => value.ariaLabel);\n const autoComplete = useDatePickerSelector((value) => value.autoComplete);\n const id = useDatePickerSelector((value) => value.id);\n const isDisabled = useDatePickerSelector((value) => value.isDisabled);\n const isReadOnly = useDatePickerSelector((value) => value.isReadOnly);\n const name = useDatePickerSelector((value) => value.name);\n const onBlurInput = useDatePickerSelector((value) => value.onBlurInput);\n const onChangeInput = useDatePickerSelector((value) => value.onChangeInput);\n const onFocusInput = useDatePickerSelector((value) => value.onFocusInput);\n const onKeyDown = useDatePickerSelector((value) => value.onKeyDown);\n const refHiddenInput = useDatePickerSelector((value) => value.refHiddenInput);\n const type = useDatePickerSelector((value) => value.type);\n\n if (type === 'select') {\n return null;\n }\n\n return (\n <input\n name={name}\n aria-label={ariaLabel ?? name}\n autoComplete={autoComplete}\n id={id}\n ref={refHiddenInput}\n type='tel'\n inputMode='numeric'\n tabIndex={0}\n disabled={isDisabled || isReadOnly}\n style={{\n position: 'absolute',\n left: '-100dvw',\n top: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={onKeyDown}\n onChange={onChangeInput}\n onFocus={onFocusInput}\n onBlur={onBlurInput}\n />\n );\n});\n\nconst DatePickerDisplay = memo(() => {\n const isShowPlaceholder = useDatePickerSelector((value) => value.isShowPlaceholder);\n\n return isShowPlaceholder ? <DatePickerPlaceholder /> : <DatePickerInputSegments />;\n});\n\nconst DatePickerPlaceholder = memo(() => {\n const genre = useDatePickerSelector((value) => value.genre);\n const labelPlaceholder = useDatePickerSelector((value) => value.labelPlaceholder);\n\n return (\n <Typography\n sx={{ size: 16, line: 1, isNoUserSelect: true }}\n style={{\n color: CSS_VARS.genre.input[genre].placeholder,\n }}\n >\n {labelPlaceholder}\n </Typography>\n );\n});\n\nconst DatePickerInputSegments = memo(() => {\n const mode = useDatePickerSelector((value) => value.mode);\n\n return mode.map((segment, index) => (\n <Fragment key={segment}>\n <DatePickerInputSegment segment={segment} />\n {index !== mode.length - 1 && <span style={{ width: '4px', pointerEvents: 'none', textAlign: 'center' }}>.</span>}\n </Fragment>\n ));\n});\n\ntype DatePickerInputSegmentProps = {\n segment: DatePickerVariant;\n};\n\nconst DatePickerInputSegment = memo((props: DatePickerInputSegmentProps) => {\n const { segment } = props;\n const activateSegment = useDatePickerSelector((value) => value.activateSegment);\n const classNameTypography = useDatePickerSelector((value) => value.classNameTypography);\n const inputValue = useDatePickerSelector((value) => value.input[segment]);\n const isActive = useDatePickerSelector((value) => value.activeSegment === segment);\n const isDisabled = useDatePickerSelector((value) => value.isDisabled);\n const isReadOnly = useDatePickerSelector((value) => value.isReadOnly);\n const placeholder = useDatePickerSelector((value) => value.inputPlaceholders[segment]);\n const styleTypography = useDatePickerSelector((value) => value.styleTypography);\n const type = useDatePickerSelector((value) => value.type);\n\n return (\n <div\n className={setClasses([\n CSS_CLASS.component.datePicker.inputSegment,\n CSS_CLASS.transition.color,\n classNameTypography,\n !!inputValue && CSS_CLASS.component.datePicker.inputSegmentHasValue,\n isActive && CSS_CLASS.component.datePicker.inputSegmentIsActive,\n ])}\n style={styleTypography}\n onClick={(e) => {\n if (type === 'select') return;\n e.preventDefault();\n e.stopPropagation();\n if (isDisabled || isReadOnly) return;\n activateSegment(segment);\n }}\n >\n {inputValue || placeholder || ''}\n </div>\n );\n});\n\nconst DatePickerButtonList = memo(() => {\n const isShowButtonList = useDatePickerSelector((value) => value.isShowButtonList);\n\n if (!isShowButtonList) {\n return null;\n }\n\n return (\n <div className={setClasses([CSS_CLASS.component.datePicker.listButton])}>\n <DatePickerClearButton />\n <DatePickerCalendarButton />\n </div>\n );\n});\n\nconst DatePickerClearButton = memo(() => {\n const clearActiveSegment = useDatePickerSelector((value) => value.clearActiveSegment);\n const clearDate = useDatePickerSelector((value) => value.clearDate);\n const genre = useDatePickerSelector((value) => value.genre);\n const isDisabled = useDatePickerSelector((value) => value.isDisabled);\n const isHasInput = useDatePickerSelector((value) => value.isHasInput);\n const isHasValue = useDatePickerSelector((value) => value.isHasValue);\n const isReadOnly = useDatePickerSelector((value) => value.isReadOnly);\n const isShowClearButton = useDatePickerSelector((value) => value.isShowClearButton);\n\n if (!isShowClearButton || (!isHasValue && !isHasInput) || isDisabled || isReadOnly) {\n return null;\n }\n\n return (\n <Button\n genre={genre}\n size='small'\n isWidthAsHeight\n isFullRadius\n isFullSize\n isHiddenBorder\n isOnlyIcon\n tabIndex={0}\n icons={[{ name: 'Close', type: 'id' }]}\n isDisabled={isDisabled || isReadOnly}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n clearActiveSegment();\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n clearDate();\n }}\n />\n );\n});\n\nconst DatePickerCalendarButton = memo(() => {\n const clearActiveSegment = useDatePickerSelector((value) => value.clearActiveSegment);\n const genre = useDatePickerSelector((value) => value.genre);\n const isDisabled = useDatePickerSelector((value) => value.isDisabled);\n const isReadOnly = useDatePickerSelector((value) => value.isReadOnly);\n const toggle = useDatePickerSelector((value) => value.toggle);\n const type = useDatePickerSelector((value) => value.type);\n\n if (type === 'manual') {\n return null;\n }\n\n return (\n <Button\n genre={genre}\n size='small'\n isWidthAsHeight\n isFullRadius\n isFullSize\n isHiddenBorder\n isOnlyIcon\n icons={[{ name: 'Calendar', type: 'id' }]}\n isDisabled={isDisabled || isReadOnly}\n tabIndex={0}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n clearActiveSegment();\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggle();\n }}\n />\n );\n});\n\nconst DatePickerPopover = memo(() => {\n const classNamePopover = useDatePickerSelector((value) => value.classNamePopover);\n const floatingStyles = useDatePickerSelector((value) => value.floatingStyles);\n const genre = useDatePickerSelector((value) => value.genre);\n const isOpen = useDatePickerSelector((value) => value.isOpen);\n const refFloating = useDatePickerSelector((value) => value.refFloating);\n const size = useDatePickerSelector((value) => value.size);\n const stylePopover = useDatePickerSelector((value) => value.stylePopover);\n\n return (\n <Popover\n style={stylePopover}\n className={classNamePopover}\n size={size}\n genre={genre}\n isOpen={isOpen}\n floatingStyles={floatingStyles}\n ref={refFloating}\n control='boxShadowSelect'\n isDisabledBoxShadow\n >\n <DatePickerDropdownList />\n </Popover>\n );\n});\n\nconst DatePickerDropdownList = memo(() => {\n return (\n <div className={setClasses([CSS_CLASS.component.datePicker.dropdownList])}>\n <DatePickerNavigation />\n <DatePickerDayGrid />\n </div>\n );\n});\n\nconst DatePickerNavigation = memo(() => {\n const dateMax = useDatePickerSelector((value) => value.dateMax);\n const dateMin = useDatePickerSelector((value) => value.dateMin);\n const genre = useDatePickerSelector((value) => value.genre);\n const isBlockNextMonth = useDatePickerSelector((value) => value.isBlockNextMonth);\n const isBlockPrevMonth = useDatePickerSelector((value) => value.isBlockPrevMonth);\n const localeMonths = useDatePickerSelector((value) => value.localeMonths);\n const monthSelectValue = useDatePickerSelector((value) => value.monthSelectValue);\n const onNextMonth = useDatePickerSelector((value) => value.onNextMonth);\n const onPrevMonth = useDatePickerSelector((value) => value.onPrevMonth);\n const onSelectMonthYear = useDatePickerSelector((value) => value.onSelectMonthYear);\n const refSelectMonth = useDatePickerSelector((value) => value.refSelectMonth);\n const refSelectYear = useDatePickerSelector((value) => value.refSelectYear);\n const yearSelectValue = useDatePickerSelector((value) => value.yearSelectValue);\n\n return (\n <Stack\n style={{\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <Button\n type='button'\n isFullRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: 90,\n },\n ]}\n isWidthAsHeight\n genre={genre}\n size='small'\n onClick={onPrevMonth}\n isHidden={isBlockPrevMonth}\n isDisabled={isBlockPrevMonth}\n />\n <Stack style={{ gap: '8px' }}>\n <SelectMonth\n isToggleWhenClickSelectListOption\n monthsLocale={localeMonths}\n genre={genre}\n size='small'\n value={monthSelectValue}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n isShortLabel\n refFloating={refSelectMonth}\n onChange={onSelectMonthYear}\n dateMin={dateMin}\n dateMax={dateMax}\n style={{ width: '60px' }}\n />\n <SelectYear\n isToggleWhenClickSelectListOption\n genre={genre}\n size='small'\n refFloating={refSelectYear}\n value={yearSelectValue}\n onChange={onSelectMonthYear}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n dateMin={dateMin}\n dateMax={dateMax}\n style={{ width: '60px' }}\n />\n </Stack>\n <Button\n type='button'\n onClick={onNextMonth}\n isWidthAsHeight\n isFullRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: -90,\n },\n ]}\n genre={genre}\n size='small'\n isDisabled={isBlockNextMonth}\n isHidden={isBlockNextMonth}\n />\n </Stack>\n );\n});\n\nconst DatePickerDayGrid = memo(() => {\n const classNameTypographyDay = useDatePickerSelector((value) => value.classNameTypographyDay);\n const daysInMonth = useDatePickerSelector((value) => value.daysInMonth);\n const daysInWeek = useDatePickerSelector((value) => value.daysInWeek);\n const rows = useDatePickerSelector((value) => value.rows);\n const styleTypographyDay = useDatePickerSelector((value) => value.styleTypographyDay);\n\n return (\n <div\n className={setClasses([CSS_CLASS.component.datePicker.dropdownListDays])}\n style={setStyles([\n {\n [CSS_VARS_RAW.component.datePicker.rows]: rows,\n },\n ])}\n >\n {daysInWeek.map((day) => (\n <div\n className={setClasses([\n CSS_CLASS.component.datePicker.dayOfWeek,\n classNameTypographyDay,\n CSS_CLASS.transition.color,\n ])}\n style={setStyles([\n styleTypographyDay,\n {\n [CSS_VARS_RAW.component.datePicker.row]: daysInMonth[0]?.weekOfMonth - 1,\n [CSS_VARS_RAW.component.datePicker.column]: day.index + 1,\n },\n ])}\n tabIndex={-1}\n key={`${day.label}-${day.index}`}\n >\n {day.label}\n </div>\n ))}\n {daysInMonth.map((day) => (\n <DatePickerDayCell\n day={day}\n classNameTypographyDay={classNameTypographyDay}\n styleTypographyDay={styleTypographyDay}\n key={day.value}\n />\n ))}\n </div>\n );\n});\n\ntype DatePickerDayCellProps = {\n classNameTypographyDay: string;\n day: IDatePickerDay;\n styleTypographyDay: CSSProperties | undefined;\n};\n\nconst DatePickerDayCell = memo((props: DatePickerDayCellProps) => {\n const { classNameTypographyDay, day, styleTypographyDay } = props;\n const onSelectDay = useDatePickerSelector((value) => value.onSelectDay);\n\n return (\n <div\n className={setClasses([\n CSS_CLASS.component.datePicker.day,\n classNameTypographyDay,\n CSS_CLASS.control[day.isDisabled || day.isChoice ? 'none' : 'boxShadow'],\n CSS_CLASS.transition.color,\n day.isDisabled && CSS_CLASS.component.datePicker.dayIsHidden,\n day.isToday && CSS_CLASS.component.datePicker.dayIsToday,\n day.isWeekend && CSS_CLASS.component.datePicker.dayIsWeekend,\n day.isChoice && CSS_CLASS.component.datePicker.dayIsChoice,\n !day.isCurrentMonth && CSS_CLASS.component.datePicker.dayIsNotCurrentMonth,\n ])}\n style={setStyles([\n styleTypographyDay,\n {\n [CSS_VARS_RAW.component.datePicker.row]: day.weekOfMonth + 1,\n [CSS_VARS_RAW.component.datePicker.column]: day.dayOfWeek,\n },\n ])}\n onClick={() => {\n if (!day.isDisabled) {\n onSelectDay(day.value);\n }\n }}\n tabIndex={day.isDisabled ? -1 : 0}\n >\n {day.labelNumber}\n </div>\n );\n});\n\nconst DatePickerError = memo(() => {\n const error = useDatePickerSelector((value) => value.error);\n const isError = useDatePickerSelector((value) => value.isError);\n const size = useDatePickerSelector((value) => value.size);\n\n if (!error?.isError && !isError) {\n return null;\n }\n\n return (\n <ErrorMessage\n size={error?.size ?? size}\n sxTypography={{ size: 16, weight: '400', ...error?.sxTypography }}\n {...(error ?? {})}\n />\n );\n});\n\nconst ISO_DATE_REGEX = /^\\d{4}-\\d{2}-\\d{2}$/;\nconst SLASH_DATE_REGEX = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/;\n\nfunction getDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: DatePickerInput,\n setValue: (segment: DatePickerVariant, value: string) => void,\n onNextSegment: (segment: DatePickerVariant) => void,\n) {\n const current = input[activeSegment] ?? '';\n\n if (activeSegment === DatePickerVariant.YYYY) {\n setValue(activeSegment, current.length >= 4 ? key : current + key);\n return;\n }\n\n if (current.length >= 2 || current === '') {\n setValue(activeSegment, key);\n return;\n }\n\n const maxValue = activeSegment === DatePickerVariant.DD ? 31 : 12;\n const potential = current + key;\n const potentialNumber = Number(potential);\n\n if (potentialNumber > maxValue || potentialNumber === 0) {\n setValue(activeSegment, key);\n return;\n }\n\n setValue(activeSegment, potential);\n onNextSegment(activeSegment);\n}\n\nfunction getParseDateString(value: string) {\n if (ISO_DATE_REGEX.test(value)) {\n const [year, month, day] = value.split('-').map(Number);\n return getValidateDate(year, month, day);\n }\n\n const match = SLASH_DATE_REGEX.exec(value);\n if (match) {\n const p1 = match[1];\n const p2 = match[2];\n const p3 = match[3];\n const num1 = Number(p1);\n const num2 = Number(p2);\n const year = Number(p3);\n\n let month: number;\n let day: number;\n\n if (num1 > 12) {\n day = num1;\n month = num2;\n } else {\n month = num1;\n day = num2;\n }\n\n return getValidateDate(year, month, day);\n }\n\n return null;\n}\n\nfunction getValidateDate(year: number, month: number, day: number) {\n const date = new Date(year, month - 1, day);\n if (date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day) {\n return { year, month, day };\n }\n return null;\n}\n\nfunction getCountSevens(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\nfunction getNextSegment(currentSegment: DatePickerVariant, mode: IDatePickerMode): DatePickerVariant | null {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex < mode.length - 1 ? mode[currentIndex + 1] : mode[0];\n}\n\nfunction getPrevSegment(currentSegment: DatePickerVariant, mode: IDatePickerMode): DatePickerVariant | null {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex > 0 ? mode[currentIndex - 1] : mode[mode.length - 1];\n}\n\nfunction getValidateInput(\n input: DatePickerInput,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n) {\n const dayStr = input.DD;\n const monthStr = input.MM;\n const yearStr = input.YYYY;\n\n const day = dayStr === '' ? NaN : Number(dayStr);\n const month = monthStr === '' ? NaN : Number(monthStr);\n const year = yearStr === '' ? NaN : Number(yearStr);\n\n const isHasInput = dayStr !== '' || monthStr !== '' || yearStr !== '';\n\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\nfunction isSameDatePickerInput(left: DatePickerInput, right: DatePickerInput) {\n return (\n left[DatePickerVariant.DD] === right[DatePickerVariant.DD] &&\n left[DatePickerVariant.MM] === right[DatePickerVariant.MM] &&\n left[DatePickerVariant.YYYY] === right[DatePickerVariant.YYYY]\n );\n}\n"],"mappings":"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CA,aAAA,EACA,iBAAA,GACA,oBAAA,GACA,uBAAA,GACA,iBAAA,GACA,mBAAA,GACA,UAAA,GACA,MAAA,EACA,QAAA,EACA,QAAA,EACA,QAAA,EACA,YAAA,GACA,WAAA,GACA,MAAA,EACA,eAAA,GACA,MAAA,EACA,GAAA,EACA,MAAA,EACA,kBAAA,GACA,iBAAA,GACA,iBAAA,GACA,WAAA,EACA,QAAA,GACA,WAAA,EACA,WAAA,EACA,OAAA,EACA,WAAA,EACA,iBAAA,GACA,kBAAA,EACA,kBAAA,GACA,iBAAA,EACA,aAAc,EAAO,OACrB,KAAA,EACA,iBAAA,GACA,KAAA,GACA,YAAA,GACA,cAAA,GACA,aAAA,GACA,UAAA,EACA,YAAA,GACA,YAAA,GACA,YAAA,GACA,kBAAA,GACA,YAAA,GACA,eAAA,EACA,aAAA,GACA,eAAA,GACA,cAAA,GACA,KAAA,GACA,KAAA,EACA,aAAA,GACA,gBAAA,GACA,mBAAA,GACA,aAAA,GACA,OAAA,GACA,KAAA,EACA,gBAAA,KAEF,CACE,EACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EAAO,OACP,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACD,EAGH,SACE,EAAA,KAAC,GAAkB,SAAnB,CAA4B,MAAO,eACjC,EAAA,KAAC,GAAD,CAAA,CAAqB,EACM,GAI3B,MAAA,EAAA,MAAA,OAKF,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,IACE,EAAA,KAAC,MAAD,CAAK,UALgB,EAAuB,GAAU,EAAM,gBAAA,EAK1B,MAJjB,EAAuB,GAAU,EAAM,YAAA,EAID,SAAU,eAC/D,EAAA,KAAC,GAAD,CAAA,CAA0B,EACtB,KACN,EAAA,KAAC,GAAD,CAAA,CAAqB,KACrB,EA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"}