@techzyapp/ui-library 1.0.41 → 1.0.42

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 (528) hide show
  1. package/README.md +14 -8
  2. package/dist/AdminRoot-DufZpgdm.js +100 -0
  3. package/dist/AdminRoot-DufZpgdm.js.map +1 -0
  4. package/dist/AdminRoot-DwJ5jdXr.cjs +2 -0
  5. package/dist/AdminRoot-DwJ5jdXr.cjs.map +1 -0
  6. package/dist/Alert-C8BBxL_7.cjs +2 -0
  7. package/dist/Alert-C8BBxL_7.cjs.map +1 -0
  8. package/dist/Alert-D6oBxBdP.js +70 -0
  9. package/dist/Alert-D6oBxBdP.js.map +1 -0
  10. package/dist/AuthLayout-exuNQicH.cjs.map +1 -1
  11. package/dist/AuthLayout-q8pbCGdt.js.map +1 -1
  12. package/dist/{Breadcrumbs-B6Pii2Y_.cjs → Breadcrumbs-B-olYVdw.cjs} +2 -2
  13. package/dist/Breadcrumbs-B-olYVdw.cjs.map +1 -0
  14. package/dist/{Breadcrumbs-DKYJOdHZ.js → Breadcrumbs-cXET6OM5.js} +3 -3
  15. package/dist/Breadcrumbs-cXET6OM5.js.map +1 -0
  16. package/dist/{Button-CjsnB8gX.js → Button-0ZgdNjX-.js} +2 -2
  17. package/dist/{Button-CjsnB8gX.js.map → Button-0ZgdNjX-.js.map} +1 -1
  18. package/dist/{Button-ClVfHGBc.cjs → Button-CwrDiZek.cjs} +2 -2
  19. package/dist/{Button-ClVfHGBc.cjs.map → Button-CwrDiZek.cjs.map} +1 -1
  20. package/dist/{Calendar-CQaPEukM.js → Calendar-CxzdnzdK.js} +3 -3
  21. package/dist/{Calendar-CQaPEukM.js.map → Calendar-CxzdnzdK.js.map} +1 -1
  22. package/dist/{Calendar-BzGVX4F4.cjs → Calendar-d3CX5UJp.cjs} +2 -2
  23. package/dist/{Calendar-BzGVX4F4.cjs.map → Calendar-d3CX5UJp.cjs.map} +1 -1
  24. package/dist/Card-CjqStov5.js +129 -0
  25. package/dist/Card-CjqStov5.js.map +1 -0
  26. package/dist/Card-CxnUoWsi.cjs +2 -0
  27. package/dist/Card-CxnUoWsi.cjs.map +1 -0
  28. package/dist/{Chip-Dp8skUZ2.cjs → Chip-BkU3yx6G.cjs} +2 -2
  29. package/dist/Chip-BkU3yx6G.cjs.map +1 -0
  30. package/dist/{Chip-BjSNgaAf.js → Chip-CzJjbaKx.js} +2 -2
  31. package/dist/Chip-CzJjbaKx.js.map +1 -0
  32. package/dist/ChoiceCardGroup-C7Eengyd.cjs +2 -0
  33. package/dist/ChoiceCardGroup-C7Eengyd.cjs.map +1 -0
  34. package/dist/ChoiceCardGroup-q0yN-TeQ.js +180 -0
  35. package/dist/{ChoiceCardGroup-143hR0v_.cjs.map → ChoiceCardGroup-q0yN-TeQ.js.map} +1 -1
  36. package/dist/{CodeBlock-CcJjS0_q.js → CodeBlock-BHcvQrs9.js} +3 -3
  37. package/dist/CodeBlock-BHcvQrs9.js.map +1 -0
  38. package/dist/{CodeBlock-o_VSkAek.cjs → CodeBlock-DRBQ_S5t.cjs} +2 -2
  39. package/dist/CodeBlock-DRBQ_S5t.cjs.map +1 -0
  40. package/dist/{ColorPicker-C1hZcAbH.js → ColorPicker-BQKFdTNr.js} +51 -51
  41. package/dist/{ColorPicker-C1hZcAbH.js.map → ColorPicker-BQKFdTNr.js.map} +1 -1
  42. package/dist/ColorPicker-BzCEMN7B.cjs +2 -0
  43. package/dist/{ColorPicker-DY6Vk1uS.cjs.map → ColorPicker-BzCEMN7B.cjs.map} +1 -1
  44. package/dist/{ColorPickerPanel-BuzwmkPN.js → ColorPickerPanel-DKTKC9KH.js} +2 -2
  45. package/dist/{ColorPickerPanel-BuzwmkPN.js.map → ColorPickerPanel-DKTKC9KH.js.map} +1 -1
  46. package/dist/{ColorPickerPanel-CDrHbCfG.cjs → ColorPickerPanel-kl2jUix-.cjs} +2 -2
  47. package/dist/{ColorPickerPanel-CDrHbCfG.cjs.map → ColorPickerPanel-kl2jUix-.cjs.map} +1 -1
  48. package/dist/{ColorRamp-CVnOYlu3.cjs → ColorRamp-n7muILK3.cjs} +2 -2
  49. package/dist/{ColorRamp-CVnOYlu3.cjs.map → ColorRamp-n7muILK3.cjs.map} +1 -1
  50. package/dist/{ColorRamp-CePqEkMR.js → ColorRamp-yfMyJCyx.js} +2 -2
  51. package/dist/{ColorRamp-CePqEkMR.js.map → ColorRamp-yfMyJCyx.js.map} +1 -1
  52. package/dist/{ConfigProvider-DELhJlqo.cjs → ConfigProvider-BaiTKZKC.cjs} +2 -2
  53. package/dist/ConfigProvider-BaiTKZKC.cjs.map +1 -0
  54. package/dist/{ConfigProvider-Bgu85MsI.js → ConfigProvider-D61cpCz-.js} +2 -2
  55. package/dist/ConfigProvider-D61cpCz-.js.map +1 -0
  56. package/dist/{CopyButton-CjPyKpky.cjs → CopyButton-DlSi82gv.cjs} +2 -2
  57. package/dist/{CopyButton-CjPyKpky.cjs.map → CopyButton-DlSi82gv.cjs.map} +1 -1
  58. package/dist/{CopyButton-CgDeyJ3A.js → CopyButton-ecxn-ghi.js} +3 -3
  59. package/dist/{CopyButton-CgDeyJ3A.js.map → CopyButton-ecxn-ghi.js.map} +1 -1
  60. package/dist/DatePicker-BjZ_P21i.cjs +2 -0
  61. package/dist/{DatePicker-CwZ_-ElE.cjs.map → DatePicker-BjZ_P21i.cjs.map} +1 -1
  62. package/dist/{DatePicker-tid4OuJ2.js → DatePicker-CAGpJbDi.js} +42 -42
  63. package/dist/{DatePicker-tid4OuJ2.js.map → DatePicker-CAGpJbDi.js.map} +1 -1
  64. package/dist/{DateTimePicker-C2871cuc.js → DateTimePicker-BJmF0Su6.js} +50 -50
  65. package/dist/DateTimePicker-BJmF0Su6.js.map +1 -0
  66. package/dist/DateTimePicker-DZqWQeUL.cjs +2 -0
  67. package/dist/DateTimePicker-DZqWQeUL.cjs.map +1 -0
  68. package/dist/{DescriptionList-BWw0Fe6U.cjs → DescriptionList-CvPDn-kh.cjs} +2 -2
  69. package/dist/DescriptionList-CvPDn-kh.cjs.map +1 -0
  70. package/dist/{DescriptionList-BP4CDME5.js → DescriptionList-Knq5eCiY.js} +4 -4
  71. package/dist/DescriptionList-Knq5eCiY.js.map +1 -0
  72. package/dist/{Dropdown-DYYhzKSo.cjs → Dropdown-CMjURWYd.cjs} +2 -2
  73. package/dist/{Dropdown-DYYhzKSo.cjs.map → Dropdown-CMjURWYd.cjs.map} +1 -1
  74. package/dist/{Dropdown-CcC-Hwx4.js → Dropdown-CnDBlB02.js} +2 -2
  75. package/dist/{Dropdown-CcC-Hwx4.js.map → Dropdown-CnDBlB02.js.map} +1 -1
  76. package/dist/{EmptyState-DGHOD_jy.cjs → EmptyState-CX1g47y_.cjs} +2 -2
  77. package/dist/{EmptyState-DGHOD_jy.cjs.map → EmptyState-CX1g47y_.cjs.map} +1 -1
  78. package/dist/{EmptyState-BlmQtbSs.js → EmptyState-Dqtpmtje.js} +2 -2
  79. package/dist/{EmptyState-BlmQtbSs.js.map → EmptyState-Dqtpmtje.js.map} +1 -1
  80. package/dist/{ErrorBoundary-DL194IyB.cjs → ErrorBoundary-B8KwWXXp.cjs} +2 -2
  81. package/dist/{ErrorBoundary-DL194IyB.cjs.map → ErrorBoundary-B8KwWXXp.cjs.map} +1 -1
  82. package/dist/{ErrorBoundary-ukRaS6uS.js → ErrorBoundary-Dos7VLb-.js} +3 -3
  83. package/dist/{ErrorBoundary-ukRaS6uS.js.map → ErrorBoundary-Dos7VLb-.js.map} +1 -1
  84. package/dist/{ErrorState-BjEA0VfF.cjs → ErrorState-CwCqd2PU.cjs} +2 -2
  85. package/dist/{ErrorState-BjEA0VfF.cjs.map → ErrorState-CwCqd2PU.cjs.map} +1 -1
  86. package/dist/{ErrorState-Hfd_0MeE.js → ErrorState-KhzrGIJ-.js} +7 -7
  87. package/dist/{ErrorState-Hfd_0MeE.js.map → ErrorState-KhzrGIJ-.js.map} +1 -1
  88. package/dist/{FileCard-COc4rHe-.cjs → FileCard-DEc10T2G.cjs} +2 -2
  89. package/dist/FileCard-DEc10T2G.cjs.map +1 -0
  90. package/dist/{FileCard-CWwB8CWF.js → FileCard-SSuFS13E.js} +3 -3
  91. package/dist/FileCard-SSuFS13E.js.map +1 -0
  92. package/dist/{FileUploader-Bqy_fV7l.cjs → FileUploader-D58_6kDA.cjs} +2 -2
  93. package/dist/FileUploader-D58_6kDA.cjs.map +1 -0
  94. package/dist/{FileUploader--WOmlhSh.js → FileUploader-DfYOBFa4.js} +5 -5
  95. package/dist/FileUploader-DfYOBFa4.js.map +1 -0
  96. package/dist/{Flag-C48Zfhvb.cjs → Flag-B1ZvZVXi.cjs} +2 -2
  97. package/dist/{Flag-C48Zfhvb.cjs.map → Flag-B1ZvZVXi.cjs.map} +1 -1
  98. package/dist/{Flag-fgMTTcy8.js → Flag-BEIqYQZg.js} +2 -2
  99. package/dist/{Flag-fgMTTcy8.js.map → Flag-BEIqYQZg.js.map} +1 -1
  100. package/dist/FloatingPanel-C5c_eMQ0.js.map +1 -1
  101. package/dist/FloatingPanel-tGCG2nhA.cjs.map +1 -1
  102. package/dist/{FullscreenToggle-GjsMn1GO.js → FullscreenToggle-I_In47BB.js} +3 -3
  103. package/dist/{FullscreenToggle-GjsMn1GO.js.map → FullscreenToggle-I_In47BB.js.map} +1 -1
  104. package/dist/{FullscreenToggle-DuLaUzi_.cjs → FullscreenToggle-Po769CoC.cjs} +2 -2
  105. package/dist/{FullscreenToggle-DuLaUzi_.cjs.map → FullscreenToggle-Po769CoC.cjs.map} +1 -1
  106. package/dist/{IconButton-D3ZpI0XL.cjs → IconButton-CxSXEYce.cjs} +2 -2
  107. package/dist/{IconButton-D3ZpI0XL.cjs.map → IconButton-CxSXEYce.cjs.map} +1 -1
  108. package/dist/{IconButton-t1OhAMNc.js → IconButton-D9MCwRK_.js} +2 -2
  109. package/dist/{IconButton-t1OhAMNc.js.map → IconButton-D9MCwRK_.js.map} +1 -1
  110. package/dist/{List-CwuAJDTi.js → List-2Y3ktTcF.js} +2 -2
  111. package/dist/{List-CwuAJDTi.js.map → List-2Y3ktTcF.js.map} +1 -1
  112. package/dist/{List-B5Ppe9R1.cjs → List-CKoNx21F.cjs} +2 -2
  113. package/dist/{List-B5Ppe9R1.cjs.map → List-CKoNx21F.cjs.map} +1 -1
  114. package/dist/{ListItem-BWNIbyTh.js → ListItem-2Lr5_NRY.js} +15 -15
  115. package/dist/{ListItem-BWNIbyTh.js.map → ListItem-2Lr5_NRY.js.map} +1 -1
  116. package/dist/ListItem-DkCYXucd.cjs +2 -0
  117. package/dist/{ListItem-Qo1Tt6Fi.cjs.map → ListItem-DkCYXucd.cjs.map} +1 -1
  118. package/dist/{Loader-Cywaf7ju.cjs → Loader-5zp2MPm5.cjs} +2 -2
  119. package/dist/{Loader-Cywaf7ju.cjs.map → Loader-5zp2MPm5.cjs.map} +1 -1
  120. package/dist/{Loader-De8_GqR1.js → Loader-Bluu6z0-.js} +2 -2
  121. package/dist/{Loader-De8_GqR1.js.map → Loader-Bluu6z0-.js.map} +1 -1
  122. package/dist/{LocationPicker-DBsxCYi9.cjs → LocationPicker-CGHXTIml.cjs} +2 -2
  123. package/dist/{LocationPicker-DBsxCYi9.cjs.map → LocationPicker-CGHXTIml.cjs.map} +1 -1
  124. package/dist/{LocationPicker-UfyDBvhp.js → LocationPicker-hULpHBVG.js} +7 -7
  125. package/dist/{LocationPicker-UfyDBvhp.js.map → LocationPicker-hULpHBVG.js.map} +1 -1
  126. package/dist/{Modal-Dfwc9eIq.js → Modal-C6Zgwz_6.js} +3 -3
  127. package/dist/Modal-C6Zgwz_6.js.map +1 -0
  128. package/dist/{Modal--5EbLfMz.cjs → Modal-D9_OG53G.cjs} +2 -2
  129. package/dist/Modal-D9_OG53G.cjs.map +1 -0
  130. package/dist/{MultiSelect-lBAEcAlR.cjs → MultiSelect-BdPvjiTj.cjs} +2 -2
  131. package/dist/{MultiSelect-lBAEcAlR.cjs.map → MultiSelect-BdPvjiTj.cjs.map} +1 -1
  132. package/dist/{MultiSelect-q__o8HyU.js → MultiSelect-CHLMpim4.js} +4 -4
  133. package/dist/{MultiSelect-q__o8HyU.js.map → MultiSelect-CHLMpim4.js.map} +1 -1
  134. package/dist/{NumberField-CXH0B1Bt.js → NumberField-BlpFmetF.js} +3 -3
  135. package/dist/{NumberField-CXH0B1Bt.js.map → NumberField-BlpFmetF.js.map} +1 -1
  136. package/dist/{NumberField-DSicjq5R.cjs → NumberField-C-FZ-uRI.cjs} +2 -2
  137. package/dist/{NumberField-DSicjq5R.cjs.map → NumberField-C-FZ-uRI.cjs.map} +1 -1
  138. package/dist/OtpField-D4-r7I0A.js +174 -0
  139. package/dist/OtpField-D4-r7I0A.js.map +1 -0
  140. package/dist/OtpField-Drjy2wwq.cjs +2 -0
  141. package/dist/OtpField-Drjy2wwq.cjs.map +1 -0
  142. package/dist/{PageError-MHbSl1oT.cjs → PageError-DXUOkE14.cjs} +2 -2
  143. package/dist/{PageError-MHbSl1oT.cjs.map → PageError-DXUOkE14.cjs.map} +1 -1
  144. package/dist/{PageError-VYc07Q7W.js → PageError-DyDj1wQZ.js} +5 -5
  145. package/dist/{PageError-VYc07Q7W.js.map → PageError-DyDj1wQZ.js.map} +1 -1
  146. package/dist/{PageLayout-Bt6U_80d.cjs → PageLayout-CoG0AaUs.cjs} +2 -2
  147. package/dist/PageLayout-CoG0AaUs.cjs.map +1 -0
  148. package/dist/{PageLayout-Df1SOlr7.js → PageLayout-nsJa8CbT.js} +4 -4
  149. package/dist/PageLayout-nsJa8CbT.js.map +1 -0
  150. package/dist/{PageNotFound-BWfaomjC.js → PageNotFound-BNNwMkwE.js} +5 -5
  151. package/dist/{PageNotFound-BWfaomjC.js.map → PageNotFound-BNNwMkwE.js.map} +1 -1
  152. package/dist/{PageNotFound-e4ITkqDC.cjs → PageNotFound-CGSxT_n9.cjs} +2 -2
  153. package/dist/{PageNotFound-e4ITkqDC.cjs.map → PageNotFound-CGSxT_n9.cjs.map} +1 -1
  154. package/dist/Pagination-CZtewveA.cjs +2 -0
  155. package/dist/Pagination-CZtewveA.cjs.map +1 -0
  156. package/dist/Pagination-tuWRnGwR.js +139 -0
  157. package/dist/Pagination-tuWRnGwR.js.map +1 -0
  158. package/dist/{PaletteField-D4c-Q1PG.js → PaletteField-CTPl3D43.js} +3 -3
  159. package/dist/{PaletteField-D4c-Q1PG.js.map → PaletteField-CTPl3D43.js.map} +1 -1
  160. package/dist/{PaletteField-DnUpn2zP.cjs → PaletteField-PDcu2vUp.cjs} +2 -2
  161. package/dist/{PaletteField-DnUpn2zP.cjs.map → PaletteField-PDcu2vUp.cjs.map} +1 -1
  162. package/dist/{PhoneField-BTB2_Lo1.cjs → PhoneField-BPYg5ZHW.cjs} +2 -2
  163. package/dist/{PhoneField-BTB2_Lo1.cjs.map → PhoneField-BPYg5ZHW.cjs.map} +1 -1
  164. package/dist/{PhoneField-BY5hapKk.js → PhoneField-pdWDCszb.js} +4 -4
  165. package/dist/{PhoneField-BY5hapKk.js.map → PhoneField-pdWDCszb.js.map} +1 -1
  166. package/dist/{Popconfirm-BXa5qLHY.js → Popconfirm-CMVzLaC_.js} +3 -3
  167. package/dist/{Popconfirm-BXa5qLHY.js.map → Popconfirm-CMVzLaC_.js.map} +1 -1
  168. package/dist/{Popconfirm-PkVgBrL-.cjs → Popconfirm-cNpJmkuR.cjs} +2 -2
  169. package/dist/{Popconfirm-PkVgBrL-.cjs.map → Popconfirm-cNpJmkuR.cjs.map} +1 -1
  170. package/dist/Popover-DsYUT23r.cjs.map +1 -1
  171. package/dist/Popover-WaVH3jsN.js.map +1 -1
  172. package/dist/{Progress-bId4RkgJ.js → Progress-BNEFGn-O.js} +2 -2
  173. package/dist/{Progress-bId4RkgJ.js.map → Progress-BNEFGn-O.js.map} +1 -1
  174. package/dist/{Progress-R_Vt4gJA.cjs → Progress-x12Rkh06.cjs} +2 -2
  175. package/dist/{Progress-R_Vt4gJA.cjs.map → Progress-x12Rkh06.cjs.map} +1 -1
  176. package/dist/QrCode-CrNJZV_8.js +81 -0
  177. package/dist/QrCode-CrNJZV_8.js.map +1 -0
  178. package/dist/QrCode-TcQQE0h7.cjs +2 -0
  179. package/dist/QrCode-TcQQE0h7.cjs.map +1 -0
  180. package/dist/{RemoveDialog-Dh_q5jZF.js → RemoveDialog-ARFp1UJM.js} +5 -5
  181. package/dist/{RemoveDialog-Dh_q5jZF.js.map → RemoveDialog-ARFp1UJM.js.map} +1 -1
  182. package/dist/{RemoveDialog-Cvj-DaiY.cjs → RemoveDialog-IWOAQFNK.cjs} +2 -2
  183. package/dist/{RemoveDialog-Cvj-DaiY.cjs.map → RemoveDialog-IWOAQFNK.cjs.map} +1 -1
  184. package/dist/RichTextEditor-C9jT2cLl.cjs +2 -0
  185. package/dist/RichTextEditor-C9jT2cLl.cjs.map +1 -0
  186. package/dist/{RichTextEditor-Dv-LDsN-.js → RichTextEditor-DrwJUEYz.js} +148 -148
  187. package/dist/RichTextEditor-DrwJUEYz.js.map +1 -0
  188. package/dist/RootLayout-CZ2GQ8XA.js +647 -0
  189. package/dist/RootLayout-CZ2GQ8XA.js.map +1 -0
  190. package/dist/RootLayout-DStUP263.cjs +2 -0
  191. package/dist/RootLayout-DStUP263.cjs.map +1 -0
  192. package/dist/{Select-DdkJXkw-.cjs → Select-C2DIfuoB.cjs} +2 -2
  193. package/dist/{Select-DdkJXkw-.cjs.map → Select-C2DIfuoB.cjs.map} +1 -1
  194. package/dist/{Select-Bw8Q86ts.js → Select-KGsA8PbI.js} +3 -3
  195. package/dist/{Select-Bw8Q86ts.js.map → Select-KGsA8PbI.js.map} +1 -1
  196. package/dist/{Sidebar-CGL5hvpl.js → Sidebar-_pcwxdd8.js} +133 -131
  197. package/dist/{Sidebar-CGL5hvpl.js.map → Sidebar-_pcwxdd8.js.map} +1 -1
  198. package/dist/Sidebar-wK1_xaY_.cjs +2 -0
  199. package/dist/{Sidebar-CfEx7W7i.cjs.map → Sidebar-wK1_xaY_.cjs.map} +1 -1
  200. package/dist/Slider-CXAz9SUY.cjs +2 -0
  201. package/dist/Slider-CXAz9SUY.cjs.map +1 -0
  202. package/dist/Slider-Cpc5_dPl.js +185 -0
  203. package/dist/Slider-Cpc5_dPl.js.map +1 -0
  204. package/dist/{SpeedDial-jOxWEd09.cjs → SpeedDial-BT_boD06.cjs} +2 -2
  205. package/dist/{SpeedDial-jOxWEd09.cjs.map → SpeedDial-BT_boD06.cjs.map} +1 -1
  206. package/dist/{SpeedDial-C-yLmnk7.js → SpeedDial-SMMfes9f.js} +2 -2
  207. package/dist/{SpeedDial-C-yLmnk7.js.map → SpeedDial-SMMfes9f.js.map} +1 -1
  208. package/dist/{Stepper-D7An-ugU.cjs → Stepper-BmA_DjTS.cjs} +2 -2
  209. package/dist/Stepper-BmA_DjTS.cjs.map +1 -0
  210. package/dist/{Stepper-DYpiLhzD.js → Stepper-CR0Mlkq7.js} +2 -2
  211. package/dist/Stepper-CR0Mlkq7.js.map +1 -0
  212. package/dist/{Table-BhaH8EKZ.cjs → Table-BkjY1Lwt.cjs} +2 -2
  213. package/dist/Table-BkjY1Lwt.cjs.map +1 -0
  214. package/dist/{Table-DK4GBKS3.js → Table-D-F68lcm.js} +18 -18
  215. package/dist/Table-D-F68lcm.js.map +1 -0
  216. package/dist/{Tabs-6x4vC8je.cjs → Tabs-Cgp6D1WP.cjs} +2 -2
  217. package/dist/{Tabs-6x4vC8je.cjs.map → Tabs-Cgp6D1WP.cjs.map} +1 -1
  218. package/dist/{Tabs-CWiDeqqW.js → Tabs-DP0aZ5TB.js} +2 -2
  219. package/dist/{Tabs-CWiDeqqW.js.map → Tabs-DP0aZ5TB.js.map} +1 -1
  220. package/dist/TagsField-9nKu6ZW4.cjs +2 -0
  221. package/dist/TagsField-9nKu6ZW4.cjs.map +1 -0
  222. package/dist/{TagsField-Cg9YVl7G.js → TagsField-CcY9MTMw.js} +64 -64
  223. package/dist/TagsField-CcY9MTMw.js.map +1 -0
  224. package/dist/{TextField-5nQkU8HP.js → TextField-0WvJsHhA.js} +3 -3
  225. package/dist/{TextField-5nQkU8HP.js.map → TextField-0WvJsHhA.js.map} +1 -1
  226. package/dist/{TextField-BRaoadxk.cjs → TextField-C5MgCQIV.cjs} +2 -2
  227. package/dist/{TextField-BRaoadxk.cjs.map → TextField-C5MgCQIV.cjs.map} +1 -1
  228. package/dist/{ThemeToggle-DhaVEyPL.cjs → ThemeToggle-BvcCxRpF.cjs} +2 -2
  229. package/dist/{ThemeToggle-DhaVEyPL.cjs.map → ThemeToggle-BvcCxRpF.cjs.map} +1 -1
  230. package/dist/{ThemeToggle-DXpbooYn.js → ThemeToggle-DmCePuTy.js} +3 -3
  231. package/dist/{ThemeToggle-DXpbooYn.js.map → ThemeToggle-DmCePuTy.js.map} +1 -1
  232. package/dist/{TimeColumns-girAEgEN.cjs → TimeColumns-Q-vsHFZU.cjs} +2 -2
  233. package/dist/{TimeColumns-girAEgEN.cjs.map → TimeColumns-Q-vsHFZU.cjs.map} +1 -1
  234. package/dist/{TimeColumns-C_gdJn__.js → TimeColumns-WJRHQuFv.js} +2 -2
  235. package/dist/{TimeColumns-C_gdJn__.js.map → TimeColumns-WJRHQuFv.js.map} +1 -1
  236. package/dist/TimePicker-CvbQFzBf.cjs +2 -0
  237. package/dist/{TimePicker-_Ak5yB_5.cjs.map → TimePicker-CvbQFzBf.cjs.map} +1 -1
  238. package/dist/{TimePicker-DHdsY8kQ.js → TimePicker-DJDuSxAg.js} +54 -54
  239. package/dist/{TimePicker-DHdsY8kQ.js.map → TimePicker-DJDuSxAg.js.map} +1 -1
  240. package/dist/{Toaster-Dput5iLU.js → Toaster-Bb5YEN5j.js} +2 -2
  241. package/dist/{Toaster-Dput5iLU.js.map → Toaster-Bb5YEN5j.js.map} +1 -1
  242. package/dist/{Toaster-fjyF8W3F.cjs → Toaster-Dy1AonLa.cjs} +2 -2
  243. package/dist/{Toaster-fjyF8W3F.cjs.map → Toaster-Dy1AonLa.cjs.map} +1 -1
  244. package/dist/TranslatedFields-CuK5KKzE.cjs +2 -0
  245. package/dist/TranslatedFields-CuK5KKzE.cjs.map +1 -0
  246. package/dist/TranslatedFields-DKXznBtD.js +86 -0
  247. package/dist/TranslatedFields-DKXznBtD.js.map +1 -0
  248. package/dist/{UserCard-B9bzkZph.cjs → UserCard-DbudGMvG.cjs} +2 -2
  249. package/dist/UserCard-DbudGMvG.cjs.map +1 -0
  250. package/dist/{UserCard-DYK6S-nr.js → UserCard-UG_Cwe-Y.js} +3 -3
  251. package/dist/UserCard-UG_Cwe-Y.js.map +1 -0
  252. package/dist/app/AdminRoot.d.cts +5 -2
  253. package/dist/app/AdminRoot.d.ts +5 -2
  254. package/dist/components/Alert/Alert.d.cts +1 -1
  255. package/dist/components/Alert/Alert.d.ts +1 -1
  256. package/dist/components/Alert/index.cjs +1 -1
  257. package/dist/components/Alert/index.js +1 -1
  258. package/dist/components/AuthLayout/AuthLayout.d.cts +2 -2
  259. package/dist/components/AuthLayout/AuthLayout.d.ts +2 -2
  260. package/dist/components/Breadcrumbs/Breadcrumbs.d.cts +2 -1
  261. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +2 -1
  262. package/dist/components/Breadcrumbs/index.cjs +1 -1
  263. package/dist/components/Breadcrumbs/index.js +1 -1
  264. package/dist/components/Button/index.cjs +1 -1
  265. package/dist/components/Button/index.js +1 -1
  266. package/dist/components/Card/Card.d.cts +1 -1
  267. package/dist/components/Card/Card.d.ts +1 -1
  268. package/dist/components/Card/index.cjs +1 -1
  269. package/dist/components/Card/index.js +1 -1
  270. package/dist/components/Chip/Chip.d.cts +1 -1
  271. package/dist/components/Chip/Chip.d.ts +1 -1
  272. package/dist/components/Chip/index.cjs +1 -1
  273. package/dist/components/Chip/index.js +1 -1
  274. package/dist/components/ChoiceCard/ChoiceCard.d.cts +1 -1
  275. package/dist/components/ChoiceCard/ChoiceCard.d.ts +1 -1
  276. package/dist/components/ChoiceCard/index.cjs +1 -1
  277. package/dist/components/ChoiceCard/index.js +1 -1
  278. package/dist/components/CodeBlock/CodeBlock.d.cts +1 -1
  279. package/dist/components/CodeBlock/CodeBlock.d.ts +1 -1
  280. package/dist/components/CodeBlock/index.cjs +1 -1
  281. package/dist/components/CodeBlock/index.js +1 -1
  282. package/dist/components/ColorPicker/index.cjs +1 -1
  283. package/dist/components/ColorPicker/index.js +1 -1
  284. package/dist/components/ColorRamp/index.cjs +1 -1
  285. package/dist/components/ColorRamp/index.js +1 -1
  286. package/dist/components/CopyButton/index.cjs +1 -1
  287. package/dist/components/CopyButton/index.js +1 -1
  288. package/dist/components/DatePicker/index.cjs +1 -1
  289. package/dist/components/DatePicker/index.js +1 -1
  290. package/dist/components/DateTimePicker/DateTimePicker.d.cts +2 -2
  291. package/dist/components/DateTimePicker/DateTimePicker.d.ts +2 -2
  292. package/dist/components/DateTimePicker/index.cjs +1 -1
  293. package/dist/components/DateTimePicker/index.js +1 -1
  294. package/dist/components/DescriptionList/DescriptionList.d.cts +1 -1
  295. package/dist/components/DescriptionList/DescriptionList.d.ts +1 -1
  296. package/dist/components/DescriptionList/index.cjs +1 -1
  297. package/dist/components/DescriptionList/index.js +1 -1
  298. package/dist/components/Dropdown/index.cjs +1 -1
  299. package/dist/components/Dropdown/index.js +1 -1
  300. package/dist/components/EmptyState/index.cjs +1 -1
  301. package/dist/components/EmptyState/index.js +1 -1
  302. package/dist/components/ErrorState/index.cjs +1 -1
  303. package/dist/components/ErrorState/index.js +2 -2
  304. package/dist/components/FileCard/FileCard.d.cts +5 -2
  305. package/dist/components/FileCard/FileCard.d.ts +5 -2
  306. package/dist/components/FileCard/index.cjs +1 -1
  307. package/dist/components/FileCard/index.js +1 -1
  308. package/dist/components/FileUploader/FileUploader.d.cts +5 -5
  309. package/dist/components/FileUploader/FileUploader.d.ts +5 -5
  310. package/dist/components/FileUploader/index.cjs +1 -1
  311. package/dist/components/FileUploader/index.js +1 -1
  312. package/dist/components/Flag/index.cjs +1 -1
  313. package/dist/components/Flag/index.js +1 -1
  314. package/dist/components/FloatingPanel/FloatingPanel.d.cts +6 -5
  315. package/dist/components/FloatingPanel/FloatingPanel.d.ts +6 -5
  316. package/dist/components/FullscreenToggle/index.cjs +1 -1
  317. package/dist/components/FullscreenToggle/index.js +1 -1
  318. package/dist/components/IconButton/index.cjs +1 -1
  319. package/dist/components/IconButton/index.js +1 -1
  320. package/dist/components/List/index.cjs +1 -1
  321. package/dist/components/List/index.js +2 -2
  322. package/dist/components/Loader/Loader.d.cts +1 -1
  323. package/dist/components/Loader/Loader.d.ts +1 -1
  324. package/dist/components/Loader/index.cjs +1 -1
  325. package/dist/components/Loader/index.js +1 -1
  326. package/dist/components/LocationPicker/index.cjs +1 -1
  327. package/dist/components/LocationPicker/index.js +1 -1
  328. package/dist/components/Modal/Modal.d.cts +1 -1
  329. package/dist/components/Modal/Modal.d.ts +1 -1
  330. package/dist/components/Modal/index.cjs +1 -1
  331. package/dist/components/Modal/index.js +1 -1
  332. package/dist/components/MultiSelect/index.cjs +1 -1
  333. package/dist/components/MultiSelect/index.js +1 -1
  334. package/dist/components/NumberField/index.cjs +1 -1
  335. package/dist/components/NumberField/index.js +1 -1
  336. package/dist/components/OtpField/OtpField.d.cts +1 -1
  337. package/dist/components/OtpField/OtpField.d.ts +1 -1
  338. package/dist/components/OtpField/index.cjs +1 -1
  339. package/dist/components/OtpField/index.js +1 -1
  340. package/dist/components/PageError/index.cjs +1 -1
  341. package/dist/components/PageError/index.js +1 -1
  342. package/dist/components/PageLayout/PageLayout.d.cts +2 -2
  343. package/dist/components/PageLayout/PageLayout.d.ts +2 -2
  344. package/dist/components/PageLayout/index.cjs +1 -1
  345. package/dist/components/PageLayout/index.js +1 -1
  346. package/dist/components/PageNotFound/index.cjs +1 -1
  347. package/dist/components/PageNotFound/index.js +1 -1
  348. package/dist/components/Pagination/index.cjs +1 -1
  349. package/dist/components/Pagination/index.js +1 -1
  350. package/dist/components/PaletteField/index.cjs +1 -1
  351. package/dist/components/PaletteField/index.js +1 -1
  352. package/dist/components/PhoneField/index.cjs +1 -1
  353. package/dist/components/PhoneField/index.js +1 -1
  354. package/dist/components/Popconfirm/index.cjs +1 -1
  355. package/dist/components/Popconfirm/index.js +1 -1
  356. package/dist/components/Popover/Popover.d.cts +1 -1
  357. package/dist/components/Popover/Popover.d.ts +1 -1
  358. package/dist/components/Progress/index.cjs +1 -1
  359. package/dist/components/Progress/index.js +1 -1
  360. package/dist/components/QrCode/QrCode.d.cts +5 -2
  361. package/dist/components/QrCode/QrCode.d.ts +5 -2
  362. package/dist/components/QrCode/index.cjs +1 -1
  363. package/dist/components/QrCode/index.js +1 -1
  364. package/dist/components/RemoveDialog/index.cjs +1 -1
  365. package/dist/components/RemoveDialog/index.js +1 -1
  366. package/dist/components/RichTextEditor/RichTextEditor.d.cts +1 -1
  367. package/dist/components/RichTextEditor/RichTextEditor.d.ts +1 -1
  368. package/dist/components/RichTextEditor/index.cjs +1 -1
  369. package/dist/components/RichTextEditor/index.js +1 -1
  370. package/dist/components/RootLayout/RootLayout.d.cts +12 -5
  371. package/dist/components/RootLayout/RootLayout.d.ts +12 -5
  372. package/dist/components/RootLayout/index.cjs +1 -1
  373. package/dist/components/RootLayout/index.js +1 -1
  374. package/dist/components/Select/index.cjs +1 -1
  375. package/dist/components/Select/index.js +1 -1
  376. package/dist/components/Sidebar/index.cjs +1 -1
  377. package/dist/components/Sidebar/index.js +1 -1
  378. package/dist/components/Slider/Slider.d.cts +2 -2
  379. package/dist/components/Slider/Slider.d.ts +2 -2
  380. package/dist/components/Slider/index.cjs +1 -1
  381. package/dist/components/Slider/index.js +1 -1
  382. package/dist/components/SpeedDial/index.cjs +1 -1
  383. package/dist/components/SpeedDial/index.js +1 -1
  384. package/dist/components/Stepper/Stepper.d.cts +2 -2
  385. package/dist/components/Stepper/Stepper.d.ts +2 -2
  386. package/dist/components/Stepper/index.cjs +1 -1
  387. package/dist/components/Stepper/index.js +1 -1
  388. package/dist/components/Table/Table.d.cts +1 -1
  389. package/dist/components/Table/Table.d.ts +1 -1
  390. package/dist/components/Table/index.cjs +1 -1
  391. package/dist/components/Table/index.js +1 -1
  392. package/dist/components/Tabs/index.cjs +1 -1
  393. package/dist/components/Tabs/index.js +1 -1
  394. package/dist/components/TagsField/TagsField.d.cts +1 -1
  395. package/dist/components/TagsField/TagsField.d.ts +1 -1
  396. package/dist/components/TagsField/index.cjs +1 -1
  397. package/dist/components/TagsField/index.js +1 -1
  398. package/dist/components/TextField/index.cjs +1 -1
  399. package/dist/components/TextField/index.js +1 -1
  400. package/dist/components/ThemeToggle/index.cjs +1 -1
  401. package/dist/components/ThemeToggle/index.js +1 -1
  402. package/dist/components/TimePicker/index.cjs +1 -1
  403. package/dist/components/TimePicker/index.js +1 -1
  404. package/dist/components/Toast/index.cjs +1 -1
  405. package/dist/components/Toast/index.js +1 -1
  406. package/dist/components/TranslatedFields/TranslatedFields.d.cts +1 -1
  407. package/dist/components/TranslatedFields/TranslatedFields.d.ts +1 -1
  408. package/dist/components/TranslatedFields/index.cjs +1 -1
  409. package/dist/components/TranslatedFields/index.js +1 -1
  410. package/dist/components/UserCard/UserCard.d.cts +6 -5
  411. package/dist/components/UserCard/UserCard.d.ts +6 -5
  412. package/dist/components/UserCard/index.cjs +1 -1
  413. package/dist/components/UserCard/index.js +1 -1
  414. package/dist/entries/app.cjs +1 -1
  415. package/dist/entries/app.js +1 -1
  416. package/dist/entries/components.cjs +1 -1
  417. package/dist/entries/components.js +56 -56
  418. package/dist/entries/i18n.cjs +1 -1
  419. package/dist/entries/i18n.js +2 -2
  420. package/dist/entries/theme.cjs +1 -1
  421. package/dist/entries/theme.js +1 -1
  422. package/dist/form/useForm.d.cts +1 -1
  423. package/dist/form/useForm.d.ts +1 -1
  424. package/dist/hooks/useMediaQuery.d.cts +3 -3
  425. package/dist/hooks/useMediaQuery.d.ts +3 -3
  426. package/dist/i18n/messages.d.cts +20 -0
  427. package/dist/i18n/messages.d.ts +20 -0
  428. package/dist/index.cjs +1 -1
  429. package/dist/index.css +3 -3
  430. package/dist/index.js +59 -59
  431. package/dist/{messages-BasxRpyx.js → messages-BiRLMy1E.js} +177 -37
  432. package/dist/messages-BiRLMy1E.js.map +1 -0
  433. package/dist/{messages-CElolVGm.cjs → messages-C_fRRCg6.cjs} +9 -9
  434. package/dist/messages-C_fRRCg6.cjs.map +1 -0
  435. package/dist/theme/ConfigProvider.d.cts +19 -10
  436. package/dist/theme/ConfigProvider.d.ts +19 -10
  437. package/dist/useForm-CGbJ44Gp.js.map +1 -1
  438. package/dist/useForm-CSw6r1n1.cjs.map +1 -1
  439. package/dist/{useHomeTo-BnjXms11.cjs → useHomeTo-BaM7kBDh.cjs} +2 -2
  440. package/dist/{useHomeTo-BnjXms11.cjs.map → useHomeTo-BaM7kBDh.cjs.map} +1 -1
  441. package/dist/{useHomeTo-Btkk0RSB.js → useHomeTo-DQj9tVZI.js} +2 -2
  442. package/dist/{useHomeTo-Btkk0RSB.js.map → useHomeTo-DQj9tVZI.js.map} +1 -1
  443. package/dist/useMediaQuery-CHMrI6Dy.cjs.map +1 -1
  444. package/dist/useMediaQuery-DrDUrkmJ.js.map +1 -1
  445. package/dist/{useOptionMenu-IebDGoqk.cjs → useOptionMenu-BKC1y6oj.cjs} +2 -2
  446. package/dist/{useOptionMenu-IebDGoqk.cjs.map → useOptionMenu-BKC1y6oj.cjs.map} +1 -1
  447. package/dist/{useOptionMenu-DeW68na-.js → useOptionMenu-Dom1-bqm.js} +5 -5
  448. package/dist/{useOptionMenu-DeW68na-.js.map → useOptionMenu-Dom1-bqm.js.map} +1 -1
  449. package/package.json +1 -1
  450. package/dist/AdminRoot-aOYQtzF0.js +0 -109
  451. package/dist/AdminRoot-aOYQtzF0.js.map +0 -1
  452. package/dist/AdminRoot-ajWIf94J.cjs +0 -2
  453. package/dist/AdminRoot-ajWIf94J.cjs.map +0 -1
  454. package/dist/Alert-5tpyGb2M.cjs +0 -2
  455. package/dist/Alert-5tpyGb2M.cjs.map +0 -1
  456. package/dist/Alert-Dz0sNGpz.js +0 -70
  457. package/dist/Alert-Dz0sNGpz.js.map +0 -1
  458. package/dist/Breadcrumbs-B6Pii2Y_.cjs.map +0 -1
  459. package/dist/Breadcrumbs-DKYJOdHZ.js.map +0 -1
  460. package/dist/Card-CIRGqg3P.cjs +0 -2
  461. package/dist/Card-CIRGqg3P.cjs.map +0 -1
  462. package/dist/Card-Co3A4Qgo.js +0 -128
  463. package/dist/Card-Co3A4Qgo.js.map +0 -1
  464. package/dist/Chip-BjSNgaAf.js.map +0 -1
  465. package/dist/Chip-Dp8skUZ2.cjs.map +0 -1
  466. package/dist/ChoiceCardGroup-143hR0v_.cjs +0 -2
  467. package/dist/ChoiceCardGroup-Cx8CtmPl.js +0 -180
  468. package/dist/ChoiceCardGroup-Cx8CtmPl.js.map +0 -1
  469. package/dist/CodeBlock-CcJjS0_q.js.map +0 -1
  470. package/dist/CodeBlock-o_VSkAek.cjs.map +0 -1
  471. package/dist/ColorPicker-DY6Vk1uS.cjs +0 -2
  472. package/dist/ConfigProvider-Bgu85MsI.js.map +0 -1
  473. package/dist/ConfigProvider-DELhJlqo.cjs.map +0 -1
  474. package/dist/DatePicker-CwZ_-ElE.cjs +0 -2
  475. package/dist/DateTimePicker-C2871cuc.js.map +0 -1
  476. package/dist/DateTimePicker-DdEPtw9U.cjs +0 -2
  477. package/dist/DateTimePicker-DdEPtw9U.cjs.map +0 -1
  478. package/dist/DescriptionList-BP4CDME5.js.map +0 -1
  479. package/dist/DescriptionList-BWw0Fe6U.cjs.map +0 -1
  480. package/dist/FileCard-COc4rHe-.cjs.map +0 -1
  481. package/dist/FileCard-CWwB8CWF.js.map +0 -1
  482. package/dist/FileUploader--WOmlhSh.js.map +0 -1
  483. package/dist/FileUploader-Bqy_fV7l.cjs.map +0 -1
  484. package/dist/ListItem-Qo1Tt6Fi.cjs +0 -2
  485. package/dist/Modal--5EbLfMz.cjs.map +0 -1
  486. package/dist/Modal-Dfwc9eIq.js.map +0 -1
  487. package/dist/OtpField-Dy-LKTi9.js +0 -174
  488. package/dist/OtpField-Dy-LKTi9.js.map +0 -1
  489. package/dist/OtpField-KHwdaajC.cjs +0 -2
  490. package/dist/OtpField-KHwdaajC.cjs.map +0 -1
  491. package/dist/PageLayout-Bt6U_80d.cjs.map +0 -1
  492. package/dist/PageLayout-Df1SOlr7.js.map +0 -1
  493. package/dist/Pagination-DDMq_7OZ.js +0 -139
  494. package/dist/Pagination-DDMq_7OZ.js.map +0 -1
  495. package/dist/Pagination-UMeckhmY.cjs +0 -2
  496. package/dist/Pagination-UMeckhmY.cjs.map +0 -1
  497. package/dist/QrCode-B9YbQNVc.js +0 -80
  498. package/dist/QrCode-B9YbQNVc.js.map +0 -1
  499. package/dist/QrCode-CNVYpz9j.cjs +0 -2
  500. package/dist/QrCode-CNVYpz9j.cjs.map +0 -1
  501. package/dist/RichTextEditor-Dv-LDsN-.js.map +0 -1
  502. package/dist/RichTextEditor-lmPGowSR.cjs +0 -2
  503. package/dist/RichTextEditor-lmPGowSR.cjs.map +0 -1
  504. package/dist/RootLayout-B_ZtI-L_.cjs +0 -2
  505. package/dist/RootLayout-B_ZtI-L_.cjs.map +0 -1
  506. package/dist/RootLayout-DIOquzrU.js +0 -642
  507. package/dist/RootLayout-DIOquzrU.js.map +0 -1
  508. package/dist/Sidebar-CfEx7W7i.cjs +0 -2
  509. package/dist/Slider-0joKXhPo.cjs +0 -2
  510. package/dist/Slider-0joKXhPo.cjs.map +0 -1
  511. package/dist/Slider-CwZYxDO0.js +0 -184
  512. package/dist/Slider-CwZYxDO0.js.map +0 -1
  513. package/dist/Stepper-D7An-ugU.cjs.map +0 -1
  514. package/dist/Stepper-DYpiLhzD.js.map +0 -1
  515. package/dist/Table-BhaH8EKZ.cjs.map +0 -1
  516. package/dist/Table-DK4GBKS3.js.map +0 -1
  517. package/dist/TagsField-Cg9YVl7G.js.map +0 -1
  518. package/dist/TagsField-DwZLCIeb.cjs +0 -2
  519. package/dist/TagsField-DwZLCIeb.cjs.map +0 -1
  520. package/dist/TimePicker-_Ak5yB_5.cjs +0 -2
  521. package/dist/TranslatedFields-B-BU17IV.cjs +0 -2
  522. package/dist/TranslatedFields-B-BU17IV.cjs.map +0 -1
  523. package/dist/TranslatedFields-JnqLgUiF.js +0 -86
  524. package/dist/TranslatedFields-JnqLgUiF.js.map +0 -1
  525. package/dist/UserCard-B9bzkZph.cjs.map +0 -1
  526. package/dist/UserCard-DYK6S-nr.js.map +0 -1
  527. package/dist/messages-BasxRpyx.js.map +0 -1
  528. package/dist/messages-CElolVGm.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker-CwZ_-ElE.cjs","sources":["../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n type CSSProperties,\n type FocusEvent,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport { useT } from '../../theme'\nimport { useFormContext } from '../../form/formContext'\nimport { FloatingPanel } from '../FloatingPanel/FloatingPanel'\nimport { Icon } from '../Icon'\nimport { IconButton } from '../IconButton'\nimport { Typography } from '../Typography'\nimport { Calendar } from './Calendar'\nimport {\n applyMask,\n formatValue,\n maskFromFormat,\n parseISO,\n parseInput,\n parseValue,\n today,\n toISO,\n type Dayjs,\n} from './dateUtils'\nimport styles from './DatePicker.module.css'\n\nexport type DatePickerSize = 'sm' | 'md' | 'lg'\n\nexport interface DatePickerProps {\n /** Label rendered above the field. */\n label?: ReactNode\n /** Preset size — control height, font and calendar density. */\n size?: DatePickerSize\n /** Marks the field invalid: red border/ring + the `helperText` in the error color. */\n error?: boolean\n /** Helper / validation text under the field. Adopts the error color while `error`. */\n helperText?: ReactNode\n /** Adds a red asterisk after the label. */\n required?: boolean\n /** Stretches the field to fill its container width. Defaults to `true`. */\n fullWidth?: boolean\n /** Disables the field. */\n disabled?: boolean\n /** Controlled value — a date string in `valueFormat` (default ISO datetime; `''` = empty). */\n value?: string\n /** Initial value for uncontrolled use (in `valueFormat`). */\n defaultValue?: string\n /** Fires with the next date in `valueFormat` (`''` when cleared). */\n onChange?: (value: string) => void\n /** Display + typed-input format (dayjs tokens; should be numeric for the typed mask). Defaults to `'DD/MM/YYYY'`. */\n format?: string\n /**\n * Wire format of `value`/`defaultValue`/`onChange` (dayjs tokens), decoupled from the displayed\n * `format`. Defaults to the ISO datetime `'YYYY-MM-DDTHH:mm:ss'`. Incoming values are parsed\n * **leniently** (this format, then any ISO-8601 string — so a backend datetime like\n * `'2026-06-10T09:35:49.6134342'` is accepted), while `onChange` emits in exactly this format at the\n * **start of the UTC day** (e.g. `'2026-06-10T00:00:00'`). Pass `'YYYY-MM-DD'` for a plain date.\n */\n valueFormat?: string\n /** Placeholder shown when empty. Defaults to the lowercased `format` (e.g. `\"dd/mm/yyyy\"`). */\n placeholder?: string\n /** Earliest selectable date (ISO `'YYYY-MM-DD'`). */\n min?: string\n /** Latest selectable date (ISO `'YYYY-MM-DD'`). */\n max?: string\n /** Disables specific dates — receives each day as an ISO `'YYYY-MM-DD'` string. */\n disabledDate?: (date: string) => boolean\n /** First day of the week: 0 = Sunday … 6 = Saturday. Defaults to `1` (Monday). */\n weekStartsOn?: number\n /** Shows a clear (×) button when a date is set. Defaults to `true`. */\n clearable?: boolean\n /** Form field name — auto-binds to a surrounding `<Form>` (value is the ISO date string). */\n name?: string\n /** Id for the input (label association). */\n id?: string\n className?: string\n style?: CSSProperties\n}\n\n/**\n * A date field with a typed, masked input **and** a calendar popover. The input accepts typing in\n * `format` (default `DD/MM/YYYY`, masked) and parses strictly; the calendar icon opens a\n * `Dropdown`-style popover (portaled, flips, scroll-locked — shared via `useFloatingPanel`) with a\n * keyboard-navigable month grid + year picker. All calendar math runs in **UTC** so the date never\n * drifts with the viewer's timezone; the value is a string in `valueFormat` (default ISO datetime\n * `'YYYY-MM-DDTHH:mm:ss'`) — incoming values are parsed leniently (a richer backend datetime is\n * accepted) and emitted at the start of the UTC day. Supports `min`/`max`, `disabledDate`,\n * `weekStartsOn`, and\n * `clearable`. Controlled (`value` + `onChange`) or\n * uncontrolled (`defaultValue`), and binds to a surrounding `<Form>` by `name` (validate with e.g.\n * `z.string().min(1, 'Required')`). Token-only styling. Requires the `dayjs` peer dependency.\n */\nexport const DatePicker = forwardRef<HTMLInputElement, DatePickerProps>(function DatePicker(\n {\n label,\n size = 'md',\n error,\n helperText,\n required = false,\n fullWidth = true,\n disabled = false,\n value,\n defaultValue,\n onChange,\n format = 'DD/MM/YYYY',\n valueFormat = 'YYYY-MM-DDTHH:mm:ss',\n placeholder,\n min,\n max,\n disabledDate,\n weekStartsOn = 1,\n clearable = true,\n name,\n id: idProp,\n className,\n style,\n },\n ref,\n) {\n const t = useT()\n const reactId = useId()\n const id = idProp ?? reactId\n const helperId = `${id}-helper`\n const labelId = `${id}-label`\n\n // ── value (controlled / form-bound / uncontrolled) — ISO 'YYYY-MM-DD' ──────────────────────────\n const form = useFormContext()\n const isFormBound = Boolean(form && name)\n const bound = isFormBound ? form!.field(name!) : undefined\n const externalValue =\n value !== undefined\n ? value\n : isFormBound\n ? ((form!.values[name!] as string | undefined) ?? '')\n : undefined\n const isControlled = value !== undefined || isFormBound\n const [internal, setInternal] = useState<string>(defaultValue ?? '')\n const currentValue = isControlled ? externalValue! : internal\n const selected = parseValue(currentValue, valueFormat)\n\n const resolvedError = error ?? bound?.error ?? false\n const resolvedHelperText = helperText ?? bound?.helperText\n\n const minDate = parseISO(min)\n const maxDate = parseISO(max)\n const mask = maskFromFormat(format)\n\n const commit = (next: string) => {\n if (next === currentValue) return // skip redundant onChange / setValue with an unchanged value\n if (!isControlled) setInternal(next)\n if (isFormBound) form!.setValue(name!, next)\n onChange?.(next)\n }\n\n // emit a chosen day in the wire `valueFormat` (start of the UTC day), or '' to clear\n const commitDate = (d: Dayjs | null) => commit(d ? formatValue(d, valueFormat) : '')\n\n // true when `d` is a different calendar day than the current value — gates commits so a no-op\n // round-trip (e.g. focusing then blurring) never rewrites an unchanged value's time to midnight\n const dayChanged = (d: Dayjs) => !selected || !d.isSame(selected, 'day')\n\n // input display text (kept in sync with the committed value; free while typing an incomplete date)\n const [inputText, setInputText] = useState<string>(() =>\n selected ? selected.format(format) : '',\n )\n useEffect(() => {\n setInputText(selected ? selected.format(format) : '')\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentValue, format, valueFormat])\n\n // ── popover ────────────────────────────────────────────────────────────────────────────────────\n const triggerRef = useRef<HTMLDivElement | null>(null)\n const inputRef = useRef<HTMLInputElement | null>(null)\n const [open, setOpen] = useState(false)\n const [viewMonth, setViewMonth] = useState<Dayjs>(() => selected ?? today())\n\n const setInputRef = useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as { current: HTMLInputElement | null }).current = node\n },\n [ref],\n )\n\n // keep the form's blur handler live for the stable closePopover (`bound` is recreated each render)\n const fieldBlurRef = useRef<(() => void) | undefined>(undefined)\n fieldBlurRef.current = bound ? () => bound.onBlur({} as FocusEvent<HTMLInputElement>) : undefined\n\n // the floating panel forwards its node here, for the focus-leaves-the-widget check on blur\n const popoverRef = useRef<HTMLDivElement | null>(null)\n\n const closePopover = useCallback((refocus: boolean) => {\n setOpen(false)\n fieldBlurRef.current?.()\n if (refocus) inputRef.current?.focus()\n }, [])\n\n // when opening, sync the calendar to the selected date (or today)\n useEffect(() => {\n if (open) setViewMonth(selected ?? today())\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const handleInputChange = (raw: string) => {\n const masked = applyMask(raw, mask)\n setInputText(masked)\n if (masked === '') {\n commit('') // emptying the field clears the value\n return\n }\n const parsed = parseInput(masked, format)\n // commit only a complete, valid, in-range, enabled date that changes the day\n if (parsed && !isOutOfRange(parsed) && dayChanged(parsed)) commitDate(parsed)\n }\n\n const isOutOfRange = (d: Dayjs): boolean => {\n if (minDate && d.isBefore(minDate, 'day')) return true\n if (maxDate && d.isAfter(maxDate, 'day')) return true\n return Boolean(disabledDate && disabledDate(toISO(d)))\n }\n\n const handleInputBlur = (event: FocusEvent<HTMLInputElement>) => {\n // re-format from the committed value (drops half-typed / invalid text); fires the form's touched\n const parsed = parseInput(inputText, format)\n if (inputText === '') {\n commit('') // an emptied field stays cleared (don't restore the old date)\n } else if (parsed && !isOutOfRange(parsed)) {\n if (dayChanged(parsed)) commitDate(parsed)\n setInputText(parsed.format(format))\n } else {\n setInputText(selected ? selected.format(format) : '')\n }\n // only mark touched when focus leaves the whole widget (not into the popover)\n const nextEl = event.relatedTarget as Node | null\n if (nextEl && (popoverRef.current?.contains(nextEl) || triggerRef.current?.contains(nextEl)))\n return\n bound?.onBlur(event)\n }\n\n const handleSelect = (iso: string) => {\n const picked = parseISO(iso)\n if (picked && dayChanged(picked)) commitDate(picked) // re-picking the same day preserves its value\n closePopover(true)\n }\n\n const iconSize: 'sm' | 'md' = size === 'sm' ? 'sm' : 'md'\n\n return (\n <div\n className={clsx(\n styles.field,\n styles[size],\n fullWidth && styles.fullWidth,\n resolvedError && styles.error,\n disabled && styles.disabled,\n className,\n )}\n style={style}\n >\n {label != null && (\n <label htmlFor={id} className={styles.label}>\n <Typography as=\"span\" variant=\"bodySmall\" color=\"muted\">\n {label}\n </Typography>\n {required && (\n <span className={styles.required} aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n )}\n\n <div ref={triggerRef} className={clsx(styles.control, open && styles.open)}>\n <input\n ref={setInputRef}\n id={id}\n name={name}\n className={styles.input}\n value={inputText}\n placeholder={placeholder ?? format.toLowerCase()}\n disabled={disabled}\n inputMode=\"numeric\"\n autoComplete=\"off\"\n aria-invalid={resolvedError || undefined}\n aria-describedby={resolvedHelperText != null ? helperId : undefined}\n onChange={(e) => handleInputChange(e.target.value)}\n onBlur={handleInputBlur}\n />\n\n {clearable && currentValue !== '' && !disabled && (\n <button\n type=\"button\"\n className={styles.clear}\n aria-label={t('datePicker.clear')}\n tabIndex={-1}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => {\n commit('')\n setInputText('')\n inputRef.current?.focus()\n }}\n >\n <Icon name=\"CloseCircle\" size=\"sm\" />\n </button>\n )}\n\n <IconButton\n type=\"button\"\n variant=\"text\"\n color=\"primary\"\n size={size}\n disabled={disabled}\n aria-label={t('datePicker.open')}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n className={styles.calendarButton}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => setOpen((o) => !o)}\n >\n <Icon name=\"Calendar3\" size={iconSize} />\n </IconButton>\n </div>\n\n <FloatingPanel\n ref={popoverRef}\n open={open}\n triggerRef={triggerRef}\n onClose={closePopover}\n role=\"dialog\"\n ariaLabel=\"Choose date\"\n trapFocus\n className={styles.popover}\n >\n <Calendar\n value={selected}\n month={viewMonth}\n onMonthChange={setViewMonth}\n onSelect={handleSelect}\n min={minDate}\n max={maxDate}\n disabledDate={disabledDate}\n weekStartsOn={weekStartsOn}\n autoFocus\n labelId={labelId}\n />\n </FloatingPanel>\n\n {resolvedHelperText != null && (\n <Typography\n as=\"span\"\n id={helperId}\n variant=\"bodySmall\"\n color={resolvedError ? 'error' : 'muted'}\n className={styles.helper}\n >\n {resolvedHelperText}\n </Typography>\n )}\n </div>\n )\n})\n"],"names":["DatePicker","forwardRef","label","size","error","helperText","required","fullWidth","disabled","value","defaultValue","onChange","format","valueFormat","placeholder","min","max","disabledDate","weekStartsOn","clearable","name","idProp","className","style","ref","t","useT","reactId","useId","id","helperId","labelId","form","useFormContext","isFormBound","bound","externalValue","isControlled","internal","setInternal","useState","currentValue","selected","parseValue","resolvedError","resolvedHelperText","minDate","parseISO","maxDate","mask","maskFromFormat","commit","next","commitDate","d","formatValue","dayChanged","inputText","setInputText","useEffect","triggerRef","useRef","inputRef","open","setOpen","viewMonth","setViewMonth","today","setInputRef","useCallback","node","fieldBlurRef","popoverRef","closePopover","refocus","_a","_b","handleInputChange","raw","masked","applyMask","parsed","parseInput","isOutOfRange","toISO","handleInputBlur","event","nextEl","handleSelect","iso","picked","iconSize","jsxs","clsx","styles","jsx","Typography","Icon","IconButton","o","FloatingPanel","Calendar"],"mappings":"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"}
1
+ {"version":3,"file":"DatePicker-BjZ_P21i.cjs","sources":["../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n type CSSProperties,\n type FocusEvent,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport { useT } from '../../theme'\nimport { useFormContext } from '../../form/formContext'\nimport { FloatingPanel } from '../FloatingPanel/FloatingPanel'\nimport { Icon } from '../Icon'\nimport { IconButton } from '../IconButton'\nimport { Typography } from '../Typography'\nimport { Calendar } from './Calendar'\nimport {\n applyMask,\n formatValue,\n maskFromFormat,\n parseISO,\n parseInput,\n parseValue,\n today,\n toISO,\n type Dayjs,\n} from './dateUtils'\nimport styles from './DatePicker.module.css'\n\nexport type DatePickerSize = 'sm' | 'md' | 'lg'\n\nexport interface DatePickerProps {\n /** Label rendered above the field. */\n label?: ReactNode\n /** Preset size — control height, font and calendar density. */\n size?: DatePickerSize\n /** Marks the field invalid: red border/ring + the `helperText` in the error color. */\n error?: boolean\n /** Helper / validation text under the field. Adopts the error color while `error`. */\n helperText?: ReactNode\n /** Adds a red asterisk after the label. */\n required?: boolean\n /** Stretches the field to fill its container width. Defaults to `true`. */\n fullWidth?: boolean\n /** Disables the field. */\n disabled?: boolean\n /** Controlled value — a date string in `valueFormat` (default ISO datetime; `''` = empty). */\n value?: string\n /** Initial value for uncontrolled use (in `valueFormat`). */\n defaultValue?: string\n /** Fires with the next date in `valueFormat` (`''` when cleared). */\n onChange?: (value: string) => void\n /** Display + typed-input format (dayjs tokens; should be numeric for the typed mask). Defaults to `'DD/MM/YYYY'`. */\n format?: string\n /**\n * Wire format of `value`/`defaultValue`/`onChange` (dayjs tokens), decoupled from the displayed\n * `format`. Defaults to the ISO datetime `'YYYY-MM-DDTHH:mm:ss'`. Incoming values are parsed\n * **leniently** (this format, then any ISO-8601 string — so a backend datetime like\n * `'2026-06-10T09:35:49.6134342'` is accepted), while `onChange` emits in exactly this format at the\n * **start of the UTC day** (e.g. `'2026-06-10T00:00:00'`). Pass `'YYYY-MM-DD'` for a plain date.\n */\n valueFormat?: string\n /** Placeholder shown when empty. Defaults to the lowercased `format` (e.g. `\"dd/mm/yyyy\"`). */\n placeholder?: string\n /** Earliest selectable date (ISO `'YYYY-MM-DD'`). */\n min?: string\n /** Latest selectable date (ISO `'YYYY-MM-DD'`). */\n max?: string\n /** Disables specific dates — receives each day as an ISO `'YYYY-MM-DD'` string. */\n disabledDate?: (date: string) => boolean\n /** First day of the week: 0 = Sunday … 6 = Saturday. Defaults to `1` (Monday). */\n weekStartsOn?: number\n /** Shows a clear (×) button when a date is set. Defaults to `true`. */\n clearable?: boolean\n /** Form field name — auto-binds to a surrounding `<Form>` (value is the ISO date string). */\n name?: string\n /** Id for the input (label association). */\n id?: string\n className?: string\n style?: CSSProperties\n}\n\n/**\n * A date field with a typed, masked input **and** a calendar popover. The input accepts typing in\n * `format` (default `DD/MM/YYYY`, masked) and parses strictly; the calendar icon opens a\n * `Dropdown`-style popover (portaled, flips, scroll-locked — shared via `useFloatingPanel`) with a\n * keyboard-navigable month grid + year picker. All calendar math runs in **UTC** so the date never\n * drifts with the viewer's timezone; the value is a string in `valueFormat` (default ISO datetime\n * `'YYYY-MM-DDTHH:mm:ss'`) — incoming values are parsed leniently (a richer backend datetime is\n * accepted) and emitted at the start of the UTC day. Supports `min`/`max`, `disabledDate`,\n * `weekStartsOn`, and\n * `clearable`. Controlled (`value` + `onChange`) or\n * uncontrolled (`defaultValue`), and binds to a surrounding `<Form>` by `name` (validate with e.g.\n * `z.string().min(1, 'Required')`). Token-only styling. Requires the `dayjs` peer dependency.\n */\nexport const DatePicker = forwardRef<HTMLInputElement, DatePickerProps>(function DatePicker(\n {\n label,\n size = 'md',\n error,\n helperText,\n required = false,\n fullWidth = true,\n disabled = false,\n value,\n defaultValue,\n onChange,\n format = 'DD/MM/YYYY',\n valueFormat = 'YYYY-MM-DDTHH:mm:ss',\n placeholder,\n min,\n max,\n disabledDate,\n weekStartsOn = 1,\n clearable = true,\n name,\n id: idProp,\n className,\n style,\n },\n ref,\n) {\n const t = useT()\n const reactId = useId()\n const id = idProp ?? reactId\n const helperId = `${id}-helper`\n const labelId = `${id}-label`\n\n // ── value (controlled / form-bound / uncontrolled) — ISO 'YYYY-MM-DD' ──────────────────────────\n const form = useFormContext()\n const isFormBound = Boolean(form && name)\n const bound = isFormBound ? form!.field(name!) : undefined\n const externalValue =\n value !== undefined\n ? value\n : isFormBound\n ? ((form!.values[name!] as string | undefined) ?? '')\n : undefined\n const isControlled = value !== undefined || isFormBound\n const [internal, setInternal] = useState<string>(defaultValue ?? '')\n const currentValue = isControlled ? externalValue! : internal\n const selected = parseValue(currentValue, valueFormat)\n\n const resolvedError = error ?? bound?.error ?? false\n const resolvedHelperText = helperText ?? bound?.helperText\n\n const minDate = parseISO(min)\n const maxDate = parseISO(max)\n const mask = maskFromFormat(format)\n\n const commit = (next: string) => {\n if (next === currentValue) return // skip redundant onChange / setValue with an unchanged value\n if (!isControlled) setInternal(next)\n if (isFormBound) form!.setValue(name!, next)\n onChange?.(next)\n }\n\n // emit a chosen day in the wire `valueFormat` (start of the UTC day), or '' to clear\n const commitDate = (d: Dayjs | null) => commit(d ? formatValue(d, valueFormat) : '')\n\n // true when `d` is a different calendar day than the current value — gates commits so a no-op\n // round-trip (e.g. focusing then blurring) never rewrites an unchanged value's time to midnight\n const dayChanged = (d: Dayjs) => !selected || !d.isSame(selected, 'day')\n\n // input display text (kept in sync with the committed value; free while typing an incomplete date)\n const [inputText, setInputText] = useState<string>(() =>\n selected ? selected.format(format) : '',\n )\n useEffect(() => {\n setInputText(selected ? selected.format(format) : '')\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentValue, format, valueFormat])\n\n // ── popover ────────────────────────────────────────────────────────────────────────────────────\n const triggerRef = useRef<HTMLDivElement | null>(null)\n const inputRef = useRef<HTMLInputElement | null>(null)\n const [open, setOpen] = useState(false)\n const [viewMonth, setViewMonth] = useState<Dayjs>(() => selected ?? today())\n\n const setInputRef = useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as { current: HTMLInputElement | null }).current = node\n },\n [ref],\n )\n\n // keep the form's blur handler live for the stable closePopover (`bound` is recreated each render)\n const fieldBlurRef = useRef<(() => void) | undefined>(undefined)\n fieldBlurRef.current = bound ? () => bound.onBlur({} as FocusEvent<HTMLInputElement>) : undefined\n\n // the floating panel forwards its node here, for the focus-leaves-the-widget check on blur\n const popoverRef = useRef<HTMLDivElement | null>(null)\n\n const closePopover = useCallback((refocus: boolean) => {\n setOpen(false)\n fieldBlurRef.current?.()\n if (refocus) inputRef.current?.focus()\n }, [])\n\n // when opening, sync the calendar to the selected date (or today)\n useEffect(() => {\n if (open) setViewMonth(selected ?? today())\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const handleInputChange = (raw: string) => {\n const masked = applyMask(raw, mask)\n setInputText(masked)\n if (masked === '') {\n commit('') // emptying the field clears the value\n return\n }\n const parsed = parseInput(masked, format)\n // commit only a complete, valid, in-range, enabled date that changes the day\n if (parsed && !isOutOfRange(parsed) && dayChanged(parsed)) commitDate(parsed)\n }\n\n const isOutOfRange = (d: Dayjs): boolean => {\n if (minDate && d.isBefore(minDate, 'day')) return true\n if (maxDate && d.isAfter(maxDate, 'day')) return true\n return Boolean(disabledDate && disabledDate(toISO(d)))\n }\n\n const handleInputBlur = (event: FocusEvent<HTMLInputElement>) => {\n // re-format from the committed value (drops half-typed / invalid text); fires the form's touched\n const parsed = parseInput(inputText, format)\n if (inputText === '') {\n commit('') // an emptied field stays cleared (don't restore the old date)\n } else if (parsed && !isOutOfRange(parsed)) {\n if (dayChanged(parsed)) commitDate(parsed)\n setInputText(parsed.format(format))\n } else {\n setInputText(selected ? selected.format(format) : '')\n }\n // only mark touched when focus leaves the whole widget (not into the popover)\n const nextEl = event.relatedTarget as Node | null\n if (nextEl && (popoverRef.current?.contains(nextEl) || triggerRef.current?.contains(nextEl)))\n return\n bound?.onBlur(event)\n }\n\n const handleSelect = (iso: string) => {\n const picked = parseISO(iso)\n if (picked && dayChanged(picked)) commitDate(picked) // re-picking the same day preserves its value\n closePopover(true)\n }\n\n const iconSize: 'sm' | 'md' = size === 'sm' ? 'sm' : 'md'\n\n return (\n <div\n className={clsx(\n styles.field,\n styles[size],\n fullWidth && styles.fullWidth,\n resolvedError && styles.error,\n disabled && styles.disabled,\n className,\n )}\n style={style}\n >\n {label != null && (\n <label htmlFor={id} className={styles.label}>\n <Typography as=\"span\" variant=\"bodySmall\" color=\"muted\">\n {label}\n </Typography>\n {required && (\n <span className={styles.required} aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n )}\n\n <div ref={triggerRef} className={clsx(styles.control, open && styles.open)}>\n <input\n ref={setInputRef}\n id={id}\n name={name}\n className={styles.input}\n value={inputText}\n placeholder={placeholder ?? format.toLowerCase()}\n disabled={disabled}\n inputMode=\"numeric\"\n autoComplete=\"off\"\n aria-invalid={resolvedError || undefined}\n aria-describedby={resolvedHelperText != null ? helperId : undefined}\n onChange={(e) => handleInputChange(e.target.value)}\n onBlur={handleInputBlur}\n />\n\n {clearable && currentValue !== '' && !disabled && (\n <button\n type=\"button\"\n className={styles.clear}\n aria-label={t('datePicker.clear')}\n tabIndex={-1}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => {\n commit('')\n setInputText('')\n inputRef.current?.focus()\n }}\n >\n <Icon name=\"CloseCircle\" size=\"sm\" />\n </button>\n )}\n\n <IconButton\n type=\"button\"\n variant=\"text\"\n color=\"primary\"\n size={size}\n disabled={disabled}\n aria-label={t('datePicker.open')}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n className={styles.calendarButton}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => setOpen((o) => !o)}\n >\n <Icon name=\"Calendar3\" size={iconSize} />\n </IconButton>\n </div>\n\n <FloatingPanel\n ref={popoverRef}\n open={open}\n triggerRef={triggerRef}\n onClose={closePopover}\n role=\"dialog\"\n ariaLabel={t('datePicker.dialog')}\n trapFocus\n className={styles.popover}\n >\n <Calendar\n value={selected}\n month={viewMonth}\n onMonthChange={setViewMonth}\n onSelect={handleSelect}\n min={minDate}\n max={maxDate}\n disabledDate={disabledDate}\n weekStartsOn={weekStartsOn}\n autoFocus\n labelId={labelId}\n />\n </FloatingPanel>\n\n {resolvedHelperText != null && (\n <Typography\n as=\"span\"\n id={helperId}\n variant=\"bodySmall\"\n color={resolvedError ? 'error' : 'muted'}\n className={styles.helper}\n >\n {resolvedHelperText}\n </Typography>\n )}\n </div>\n )\n})\n"],"names":["DatePicker","forwardRef","label","size","error","helperText","required","fullWidth","disabled","value","defaultValue","onChange","format","valueFormat","placeholder","min","max","disabledDate","weekStartsOn","clearable","name","idProp","className","style","ref","t","useT","reactId","useId","id","helperId","labelId","form","useFormContext","isFormBound","bound","externalValue","isControlled","internal","setInternal","useState","currentValue","selected","parseValue","resolvedError","resolvedHelperText","minDate","parseISO","maxDate","mask","maskFromFormat","commit","next","commitDate","d","formatValue","dayChanged","inputText","setInputText","useEffect","triggerRef","useRef","inputRef","open","setOpen","viewMonth","setViewMonth","today","setInputRef","useCallback","node","fieldBlurRef","popoverRef","closePopover","refocus","_a","_b","handleInputChange","raw","masked","applyMask","parsed","parseInput","isOutOfRange","toISO","handleInputBlur","event","nextEl","handleSelect","iso","picked","iconSize","jsxs","clsx","styles","jsx","Typography","Icon","IconButton","o","FloatingPanel","Calendar"],"mappings":"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"}
@@ -1,17 +1,17 @@
1
- import { jsxs as V, jsx as n } from "react/jsx-runtime";
2
- import { forwardRef as Ne, useId as Se, useState as C, useEffect as K, useRef as x, useCallback as Q } from "react";
1
+ import { jsxs as O, jsx as n } from "react/jsx-runtime";
2
+ import { forwardRef as Ne, useId as Se, useState as k, useEffect as K, useRef as x, useCallback as Q } from "react";
3
3
  import { clsx as U } from "clsx";
4
4
  import { u as Te } from "./formContext-B7ln1Miy.js";
5
5
  import { F as be } from "./FloatingPanel-C5c_eMQ0.js";
6
6
  import { b as X } from "./Icon-D5TxgfCc.js";
7
- import { I as Ye } from "./IconButton-t1OhAMNc.js";
7
+ import { I as Ye } from "./IconButton-D9MCwRK_.js";
8
8
  import { T as Z } from "./Typography-ChSuxgkc.js";
9
- import { C as Fe } from "./Calendar-CQaPEukM.js";
10
- import { p as we, a as O, m as Pe, t as _, s as o, b as ee, c as Re, f as Ve, d as Oe } from "./DatePicker.module-CMMQyEhG.js";
11
- import { a as Ee } from "./ConfigProvider-Bgu85MsI.js";
9
+ import { C as Fe } from "./Calendar-CxzdnzdK.js";
10
+ import { p as Pe, a as E, m as we, t as _, s as o, b as ee, c as Re, f as Ve, d as Oe } from "./DatePicker.module-CMMQyEhG.js";
11
+ import { a as Ee } from "./ConfigProvider-D61cpCz-.js";
12
12
  const Ue = Ne(function({
13
- label: E,
14
- size: k = "md",
13
+ label: H,
14
+ size: C = "md",
15
15
  error: te,
16
16
  helperText: oe,
17
17
  required: re = !1,
@@ -33,68 +33,68 @@ const Ue = Ne(function({
33
33
  className: me,
34
34
  style: de
35
35
  }, i) {
36
- const H = Ee(), fe = Se(), d = pe ?? fe, j = `${d}-helper`, he = `${d}-label`, f = Te(), h = !!(f && c), r = h ? f.field(c) : void 0, ve = D !== void 0 ? D : h ? f.values[c] ?? "" : void 0, L = D !== void 0 || h, [ye, Ie] = C(ae ?? ""), v = L ? ve : ye, s = we(v, g), N = te ?? (r == null ? void 0 : r.error) ?? !1, S = oe ?? (r == null ? void 0 : r.helperText), T = O(le), b = O(ce), Ce = Pe(l), y = (e) => {
36
+ const N = Ee(), fe = Se(), d = pe ?? fe, j = `${d}-helper`, he = `${d}-label`, f = Te(), h = !!(f && c), r = h ? f.field(c) : void 0, ve = D !== void 0 ? D : h ? f.values[c] ?? "" : void 0, L = D !== void 0 || h, [ye, Ie] = k(ae ?? ""), v = L ? ve : ye, s = Pe(v, g), S = te ?? (r == null ? void 0 : r.error) ?? !1, T = oe ?? (r == null ? void 0 : r.helperText), b = E(le), Y = E(ce), ke = we(l), y = (e) => {
37
37
  e !== v && (L || Ie(e), h && f.setValue(c, e), M == null || M(e));
38
- }, Y = (e) => y(e ? Ve(e, g) : ""), F = (e) => !s || !e.isSame(s, "day"), [w, u] = C(
38
+ }, F = (e) => y(e ? Ve(e, g) : ""), P = (e) => !s || !e.isSame(s, "day"), [w, u] = k(
39
39
  () => s ? s.format(l) : ""
40
40
  );
41
41
  K(() => {
42
42
  u(s ? s.format(l) : "");
43
43
  }, [v, l, g]);
44
- const P = x(null), R = x(null), [p, $] = C(!1), [xe, q] = C(() => s ?? _()), ke = Q(
44
+ const R = x(null), V = x(null), [p, $] = k(!1), [xe, q] = k(() => s ?? _()), Ce = Q(
45
45
  (e) => {
46
- R.current = e, typeof i == "function" ? i(e) : i && (i.current = e);
46
+ V.current = e, typeof i == "function" ? i(e) : i && (i.current = e);
47
47
  },
48
48
  [i]
49
49
  ), I = x(void 0);
50
50
  I.current = r ? () => r.onBlur({}) : void 0;
51
51
  const z = x(null), A = Q((e) => {
52
52
  var t, a;
53
- $(!1), (t = I.current) == null || t.call(I), e && ((a = R.current) == null || a.focus());
53
+ $(!1), (t = I.current) == null || t.call(I), e && ((a = V.current) == null || a.focus());
54
54
  }, []);
55
55
  K(() => {
56
56
  p && q(s ?? _());
57
57
  }, [p]);
58
58
  const De = (e) => {
59
- const t = Re(e, Ce);
59
+ const t = Re(e, ke);
60
60
  if (u(t), t === "") {
61
61
  y("");
62
62
  return;
63
63
  }
64
64
  const a = ee(t, l);
65
- a && !W(a) && F(a) && Y(a);
66
- }, W = (e) => T && e.isBefore(T, "day") || b && e.isAfter(b, "day") ? !0 : !!(B && B(Oe(e))), Me = (e) => {
65
+ a && !W(a) && P(a) && F(a);
66
+ }, W = (e) => b && e.isBefore(b, "day") || Y && e.isAfter(Y, "day") ? !0 : !!(B && B(Oe(e))), Me = (e) => {
67
67
  var G, J;
68
68
  const t = ee(w, l);
69
- w === "" ? y("") : t && !W(t) ? (F(t) && Y(t), u(t.format(l))) : u(s ? s.format(l) : "");
69
+ w === "" ? y("") : t && !W(t) ? (P(t) && F(t), u(t.format(l))) : u(s ? s.format(l) : "");
70
70
  const a = e.relatedTarget;
71
- a && ((G = z.current) != null && G.contains(a) || (J = P.current) != null && J.contains(a)) || r == null || r.onBlur(e);
71
+ a && ((G = z.current) != null && G.contains(a) || (J = R.current) != null && J.contains(a)) || r == null || r.onBlur(e);
72
72
  }, ge = (e) => {
73
- const t = O(e);
74
- t && F(t) && Y(t), A(!0);
75
- }, Be = k === "sm" ? "sm" : "md";
76
- return /* @__PURE__ */ V(
73
+ const t = E(e);
74
+ t && P(t) && F(t), A(!0);
75
+ }, Be = C === "sm" ? "sm" : "md";
76
+ return /* @__PURE__ */ O(
77
77
  "div",
78
78
  {
79
79
  className: U(
80
80
  o.field,
81
- o[k],
81
+ o[C],
82
82
  se && o.fullWidth,
83
- N && o.error,
83
+ S && o.error,
84
84
  m && o.disabled,
85
85
  me
86
86
  ),
87
87
  style: de,
88
88
  children: [
89
- E != null && /* @__PURE__ */ V("label", { htmlFor: d, className: o.label, children: [
90
- /* @__PURE__ */ n(Z, { as: "span", variant: "bodySmall", color: "muted", children: E }),
89
+ H != null && /* @__PURE__ */ O("label", { htmlFor: d, className: o.label, children: [
90
+ /* @__PURE__ */ n(Z, { as: "span", variant: "bodySmall", color: "muted", children: H }),
91
91
  re && /* @__PURE__ */ n("span", { className: o.required, "aria-hidden": "true", children: "*" })
92
92
  ] }),
93
- /* @__PURE__ */ V("div", { ref: P, className: U(o.control, p && o.open), children: [
93
+ /* @__PURE__ */ O("div", { ref: R, className: U(o.control, p && o.open), children: [
94
94
  /* @__PURE__ */ n(
95
95
  "input",
96
96
  {
97
- ref: ke,
97
+ ref: Ce,
98
98
  id: d,
99
99
  name: c,
100
100
  className: o.input,
@@ -103,8 +103,8 @@ const Ue = Ne(function({
103
103
  disabled: m,
104
104
  inputMode: "numeric",
105
105
  autoComplete: "off",
106
- "aria-invalid": N || void 0,
107
- "aria-describedby": S != null ? j : void 0,
106
+ "aria-invalid": S || void 0,
107
+ "aria-describedby": T != null ? j : void 0,
108
108
  onChange: (e) => De(e.target.value),
109
109
  onBlur: Me
110
110
  }
@@ -114,12 +114,12 @@ const Ue = Ne(function({
114
114
  {
115
115
  type: "button",
116
116
  className: o.clear,
117
- "aria-label": H("datePicker.clear"),
117
+ "aria-label": N("datePicker.clear"),
118
118
  tabIndex: -1,
119
119
  onMouseDown: (e) => e.preventDefault(),
120
120
  onClick: () => {
121
121
  var e;
122
- y(""), u(""), (e = R.current) == null || e.focus();
122
+ y(""), u(""), (e = V.current) == null || e.focus();
123
123
  },
124
124
  children: /* @__PURE__ */ n(X, { name: "CloseCircle", size: "sm" })
125
125
  }
@@ -130,9 +130,9 @@ const Ue = Ne(function({
130
130
  type: "button",
131
131
  variant: "text",
132
132
  color: "primary",
133
- size: k,
133
+ size: C,
134
134
  disabled: m,
135
- "aria-label": H("datePicker.open"),
135
+ "aria-label": N("datePicker.open"),
136
136
  "aria-haspopup": "dialog",
137
137
  "aria-expanded": p,
138
138
  className: o.calendarButton,
@@ -147,10 +147,10 @@ const Ue = Ne(function({
147
147
  {
148
148
  ref: z,
149
149
  open: p,
150
- triggerRef: P,
150
+ triggerRef: R,
151
151
  onClose: A,
152
152
  role: "dialog",
153
- ariaLabel: "Choose date",
153
+ ariaLabel: N("datePicker.dialog"),
154
154
  trapFocus: !0,
155
155
  className: o.popover,
156
156
  children: /* @__PURE__ */ n(
@@ -160,8 +160,8 @@ const Ue = Ne(function({
160
160
  month: xe,
161
161
  onMonthChange: q,
162
162
  onSelect: ge,
163
- min: T,
164
- max: b,
163
+ min: b,
164
+ max: Y,
165
165
  disabledDate: B,
166
166
  weekStartsOn: ie,
167
167
  autoFocus: !0,
@@ -170,15 +170,15 @@ const Ue = Ne(function({
170
170
  )
171
171
  }
172
172
  ),
173
- S != null && /* @__PURE__ */ n(
173
+ T != null && /* @__PURE__ */ n(
174
174
  Z,
175
175
  {
176
176
  as: "span",
177
177
  id: j,
178
178
  variant: "bodySmall",
179
- color: N ? "error" : "muted",
179
+ color: S ? "error" : "muted",
180
180
  className: o.helper,
181
- children: S
181
+ children: T
182
182
  }
183
183
  )
184
184
  ]
@@ -188,4 +188,4 @@ const Ue = Ne(function({
188
188
  export {
189
189
  Ue as D
190
190
  };
191
- //# sourceMappingURL=DatePicker-tid4OuJ2.js.map
191
+ //# sourceMappingURL=DatePicker-CAGpJbDi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker-tid4OuJ2.js","sources":["../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n type CSSProperties,\n type FocusEvent,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport { useT } from '../../theme'\nimport { useFormContext } from '../../form/formContext'\nimport { FloatingPanel } from '../FloatingPanel/FloatingPanel'\nimport { Icon } from '../Icon'\nimport { IconButton } from '../IconButton'\nimport { Typography } from '../Typography'\nimport { Calendar } from './Calendar'\nimport {\n applyMask,\n formatValue,\n maskFromFormat,\n parseISO,\n parseInput,\n parseValue,\n today,\n toISO,\n type Dayjs,\n} from './dateUtils'\nimport styles from './DatePicker.module.css'\n\nexport type DatePickerSize = 'sm' | 'md' | 'lg'\n\nexport interface DatePickerProps {\n /** Label rendered above the field. */\n label?: ReactNode\n /** Preset size — control height, font and calendar density. */\n size?: DatePickerSize\n /** Marks the field invalid: red border/ring + the `helperText` in the error color. */\n error?: boolean\n /** Helper / validation text under the field. Adopts the error color while `error`. */\n helperText?: ReactNode\n /** Adds a red asterisk after the label. */\n required?: boolean\n /** Stretches the field to fill its container width. Defaults to `true`. */\n fullWidth?: boolean\n /** Disables the field. */\n disabled?: boolean\n /** Controlled value — a date string in `valueFormat` (default ISO datetime; `''` = empty). */\n value?: string\n /** Initial value for uncontrolled use (in `valueFormat`). */\n defaultValue?: string\n /** Fires with the next date in `valueFormat` (`''` when cleared). */\n onChange?: (value: string) => void\n /** Display + typed-input format (dayjs tokens; should be numeric for the typed mask). Defaults to `'DD/MM/YYYY'`. */\n format?: string\n /**\n * Wire format of `value`/`defaultValue`/`onChange` (dayjs tokens), decoupled from the displayed\n * `format`. Defaults to the ISO datetime `'YYYY-MM-DDTHH:mm:ss'`. Incoming values are parsed\n * **leniently** (this format, then any ISO-8601 string — so a backend datetime like\n * `'2026-06-10T09:35:49.6134342'` is accepted), while `onChange` emits in exactly this format at the\n * **start of the UTC day** (e.g. `'2026-06-10T00:00:00'`). Pass `'YYYY-MM-DD'` for a plain date.\n */\n valueFormat?: string\n /** Placeholder shown when empty. Defaults to the lowercased `format` (e.g. `\"dd/mm/yyyy\"`). */\n placeholder?: string\n /** Earliest selectable date (ISO `'YYYY-MM-DD'`). */\n min?: string\n /** Latest selectable date (ISO `'YYYY-MM-DD'`). */\n max?: string\n /** Disables specific dates — receives each day as an ISO `'YYYY-MM-DD'` string. */\n disabledDate?: (date: string) => boolean\n /** First day of the week: 0 = Sunday … 6 = Saturday. Defaults to `1` (Monday). */\n weekStartsOn?: number\n /** Shows a clear (×) button when a date is set. Defaults to `true`. */\n clearable?: boolean\n /** Form field name — auto-binds to a surrounding `<Form>` (value is the ISO date string). */\n name?: string\n /** Id for the input (label association). */\n id?: string\n className?: string\n style?: CSSProperties\n}\n\n/**\n * A date field with a typed, masked input **and** a calendar popover. The input accepts typing in\n * `format` (default `DD/MM/YYYY`, masked) and parses strictly; the calendar icon opens a\n * `Dropdown`-style popover (portaled, flips, scroll-locked — shared via `useFloatingPanel`) with a\n * keyboard-navigable month grid + year picker. All calendar math runs in **UTC** so the date never\n * drifts with the viewer's timezone; the value is a string in `valueFormat` (default ISO datetime\n * `'YYYY-MM-DDTHH:mm:ss'`) — incoming values are parsed leniently (a richer backend datetime is\n * accepted) and emitted at the start of the UTC day. Supports `min`/`max`, `disabledDate`,\n * `weekStartsOn`, and\n * `clearable`. Controlled (`value` + `onChange`) or\n * uncontrolled (`defaultValue`), and binds to a surrounding `<Form>` by `name` (validate with e.g.\n * `z.string().min(1, 'Required')`). Token-only styling. Requires the `dayjs` peer dependency.\n */\nexport const DatePicker = forwardRef<HTMLInputElement, DatePickerProps>(function DatePicker(\n {\n label,\n size = 'md',\n error,\n helperText,\n required = false,\n fullWidth = true,\n disabled = false,\n value,\n defaultValue,\n onChange,\n format = 'DD/MM/YYYY',\n valueFormat = 'YYYY-MM-DDTHH:mm:ss',\n placeholder,\n min,\n max,\n disabledDate,\n weekStartsOn = 1,\n clearable = true,\n name,\n id: idProp,\n className,\n style,\n },\n ref,\n) {\n const t = useT()\n const reactId = useId()\n const id = idProp ?? reactId\n const helperId = `${id}-helper`\n const labelId = `${id}-label`\n\n // ── value (controlled / form-bound / uncontrolled) — ISO 'YYYY-MM-DD' ──────────────────────────\n const form = useFormContext()\n const isFormBound = Boolean(form && name)\n const bound = isFormBound ? form!.field(name!) : undefined\n const externalValue =\n value !== undefined\n ? value\n : isFormBound\n ? ((form!.values[name!] as string | undefined) ?? '')\n : undefined\n const isControlled = value !== undefined || isFormBound\n const [internal, setInternal] = useState<string>(defaultValue ?? '')\n const currentValue = isControlled ? externalValue! : internal\n const selected = parseValue(currentValue, valueFormat)\n\n const resolvedError = error ?? bound?.error ?? false\n const resolvedHelperText = helperText ?? bound?.helperText\n\n const minDate = parseISO(min)\n const maxDate = parseISO(max)\n const mask = maskFromFormat(format)\n\n const commit = (next: string) => {\n if (next === currentValue) return // skip redundant onChange / setValue with an unchanged value\n if (!isControlled) setInternal(next)\n if (isFormBound) form!.setValue(name!, next)\n onChange?.(next)\n }\n\n // emit a chosen day in the wire `valueFormat` (start of the UTC day), or '' to clear\n const commitDate = (d: Dayjs | null) => commit(d ? formatValue(d, valueFormat) : '')\n\n // true when `d` is a different calendar day than the current value — gates commits so a no-op\n // round-trip (e.g. focusing then blurring) never rewrites an unchanged value's time to midnight\n const dayChanged = (d: Dayjs) => !selected || !d.isSame(selected, 'day')\n\n // input display text (kept in sync with the committed value; free while typing an incomplete date)\n const [inputText, setInputText] = useState<string>(() =>\n selected ? selected.format(format) : '',\n )\n useEffect(() => {\n setInputText(selected ? selected.format(format) : '')\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentValue, format, valueFormat])\n\n // ── popover ────────────────────────────────────────────────────────────────────────────────────\n const triggerRef = useRef<HTMLDivElement | null>(null)\n const inputRef = useRef<HTMLInputElement | null>(null)\n const [open, setOpen] = useState(false)\n const [viewMonth, setViewMonth] = useState<Dayjs>(() => selected ?? today())\n\n const setInputRef = useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as { current: HTMLInputElement | null }).current = node\n },\n [ref],\n )\n\n // keep the form's blur handler live for the stable closePopover (`bound` is recreated each render)\n const fieldBlurRef = useRef<(() => void) | undefined>(undefined)\n fieldBlurRef.current = bound ? () => bound.onBlur({} as FocusEvent<HTMLInputElement>) : undefined\n\n // the floating panel forwards its node here, for the focus-leaves-the-widget check on blur\n const popoverRef = useRef<HTMLDivElement | null>(null)\n\n const closePopover = useCallback((refocus: boolean) => {\n setOpen(false)\n fieldBlurRef.current?.()\n if (refocus) inputRef.current?.focus()\n }, [])\n\n // when opening, sync the calendar to the selected date (or today)\n useEffect(() => {\n if (open) setViewMonth(selected ?? today())\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const handleInputChange = (raw: string) => {\n const masked = applyMask(raw, mask)\n setInputText(masked)\n if (masked === '') {\n commit('') // emptying the field clears the value\n return\n }\n const parsed = parseInput(masked, format)\n // commit only a complete, valid, in-range, enabled date that changes the day\n if (parsed && !isOutOfRange(parsed) && dayChanged(parsed)) commitDate(parsed)\n }\n\n const isOutOfRange = (d: Dayjs): boolean => {\n if (minDate && d.isBefore(minDate, 'day')) return true\n if (maxDate && d.isAfter(maxDate, 'day')) return true\n return Boolean(disabledDate && disabledDate(toISO(d)))\n }\n\n const handleInputBlur = (event: FocusEvent<HTMLInputElement>) => {\n // re-format from the committed value (drops half-typed / invalid text); fires the form's touched\n const parsed = parseInput(inputText, format)\n if (inputText === '') {\n commit('') // an emptied field stays cleared (don't restore the old date)\n } else if (parsed && !isOutOfRange(parsed)) {\n if (dayChanged(parsed)) commitDate(parsed)\n setInputText(parsed.format(format))\n } else {\n setInputText(selected ? selected.format(format) : '')\n }\n // only mark touched when focus leaves the whole widget (not into the popover)\n const nextEl = event.relatedTarget as Node | null\n if (nextEl && (popoverRef.current?.contains(nextEl) || triggerRef.current?.contains(nextEl)))\n return\n bound?.onBlur(event)\n }\n\n const handleSelect = (iso: string) => {\n const picked = parseISO(iso)\n if (picked && dayChanged(picked)) commitDate(picked) // re-picking the same day preserves its value\n closePopover(true)\n }\n\n const iconSize: 'sm' | 'md' = size === 'sm' ? 'sm' : 'md'\n\n return (\n <div\n className={clsx(\n styles.field,\n styles[size],\n fullWidth && styles.fullWidth,\n resolvedError && styles.error,\n disabled && styles.disabled,\n className,\n )}\n style={style}\n >\n {label != null && (\n <label htmlFor={id} className={styles.label}>\n <Typography as=\"span\" variant=\"bodySmall\" color=\"muted\">\n {label}\n </Typography>\n {required && (\n <span className={styles.required} aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n )}\n\n <div ref={triggerRef} className={clsx(styles.control, open && styles.open)}>\n <input\n ref={setInputRef}\n id={id}\n name={name}\n className={styles.input}\n value={inputText}\n placeholder={placeholder ?? format.toLowerCase()}\n disabled={disabled}\n inputMode=\"numeric\"\n autoComplete=\"off\"\n aria-invalid={resolvedError || undefined}\n aria-describedby={resolvedHelperText != null ? helperId : undefined}\n onChange={(e) => handleInputChange(e.target.value)}\n onBlur={handleInputBlur}\n />\n\n {clearable && currentValue !== '' && !disabled && (\n <button\n type=\"button\"\n className={styles.clear}\n aria-label={t('datePicker.clear')}\n tabIndex={-1}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => {\n commit('')\n setInputText('')\n inputRef.current?.focus()\n }}\n >\n <Icon name=\"CloseCircle\" size=\"sm\" />\n </button>\n )}\n\n <IconButton\n type=\"button\"\n variant=\"text\"\n color=\"primary\"\n size={size}\n disabled={disabled}\n aria-label={t('datePicker.open')}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n className={styles.calendarButton}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => setOpen((o) => !o)}\n >\n <Icon name=\"Calendar3\" size={iconSize} />\n </IconButton>\n </div>\n\n <FloatingPanel\n ref={popoverRef}\n open={open}\n triggerRef={triggerRef}\n onClose={closePopover}\n role=\"dialog\"\n ariaLabel=\"Choose date\"\n trapFocus\n className={styles.popover}\n >\n <Calendar\n value={selected}\n month={viewMonth}\n onMonthChange={setViewMonth}\n onSelect={handleSelect}\n min={minDate}\n max={maxDate}\n disabledDate={disabledDate}\n weekStartsOn={weekStartsOn}\n autoFocus\n labelId={labelId}\n />\n </FloatingPanel>\n\n {resolvedHelperText != null && (\n <Typography\n as=\"span\"\n id={helperId}\n variant=\"bodySmall\"\n color={resolvedError ? 'error' : 'muted'}\n className={styles.helper}\n >\n {resolvedHelperText}\n </Typography>\n )}\n </div>\n )\n})\n"],"names":["DatePicker","forwardRef","label","size","error","helperText","required","fullWidth","disabled","value","defaultValue","onChange","format","valueFormat","placeholder","min","max","disabledDate","weekStartsOn","clearable","name","idProp","className","style","ref","t","useT","reactId","useId","id","helperId","labelId","form","useFormContext","isFormBound","bound","externalValue","isControlled","internal","setInternal","useState","currentValue","selected","parseValue","resolvedError","resolvedHelperText","minDate","parseISO","maxDate","mask","maskFromFormat","commit","next","commitDate","d","formatValue","dayChanged","inputText","setInputText","useEffect","triggerRef","useRef","inputRef","open","setOpen","viewMonth","setViewMonth","today","setInputRef","useCallback","node","fieldBlurRef","popoverRef","closePopover","refocus","_a","_b","handleInputChange","raw","masked","applyMask","parsed","parseInput","isOutOfRange","toISO","handleInputBlur","event","nextEl","handleSelect","iso","picked","iconSize","jsxs","clsx","styles","jsx","Typography","Icon","IconButton","o","FloatingPanel","Calendar"],"mappings":"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"}
1
+ {"version":3,"file":"DatePicker-CAGpJbDi.js","sources":["../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n type CSSProperties,\n type FocusEvent,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport { useT } from '../../theme'\nimport { useFormContext } from '../../form/formContext'\nimport { FloatingPanel } from '../FloatingPanel/FloatingPanel'\nimport { Icon } from '../Icon'\nimport { IconButton } from '../IconButton'\nimport { Typography } from '../Typography'\nimport { Calendar } from './Calendar'\nimport {\n applyMask,\n formatValue,\n maskFromFormat,\n parseISO,\n parseInput,\n parseValue,\n today,\n toISO,\n type Dayjs,\n} from './dateUtils'\nimport styles from './DatePicker.module.css'\n\nexport type DatePickerSize = 'sm' | 'md' | 'lg'\n\nexport interface DatePickerProps {\n /** Label rendered above the field. */\n label?: ReactNode\n /** Preset size — control height, font and calendar density. */\n size?: DatePickerSize\n /** Marks the field invalid: red border/ring + the `helperText` in the error color. */\n error?: boolean\n /** Helper / validation text under the field. Adopts the error color while `error`. */\n helperText?: ReactNode\n /** Adds a red asterisk after the label. */\n required?: boolean\n /** Stretches the field to fill its container width. Defaults to `true`. */\n fullWidth?: boolean\n /** Disables the field. */\n disabled?: boolean\n /** Controlled value — a date string in `valueFormat` (default ISO datetime; `''` = empty). */\n value?: string\n /** Initial value for uncontrolled use (in `valueFormat`). */\n defaultValue?: string\n /** Fires with the next date in `valueFormat` (`''` when cleared). */\n onChange?: (value: string) => void\n /** Display + typed-input format (dayjs tokens; should be numeric for the typed mask). Defaults to `'DD/MM/YYYY'`. */\n format?: string\n /**\n * Wire format of `value`/`defaultValue`/`onChange` (dayjs tokens), decoupled from the displayed\n * `format`. Defaults to the ISO datetime `'YYYY-MM-DDTHH:mm:ss'`. Incoming values are parsed\n * **leniently** (this format, then any ISO-8601 string — so a backend datetime like\n * `'2026-06-10T09:35:49.6134342'` is accepted), while `onChange` emits in exactly this format at the\n * **start of the UTC day** (e.g. `'2026-06-10T00:00:00'`). Pass `'YYYY-MM-DD'` for a plain date.\n */\n valueFormat?: string\n /** Placeholder shown when empty. Defaults to the lowercased `format` (e.g. `\"dd/mm/yyyy\"`). */\n placeholder?: string\n /** Earliest selectable date (ISO `'YYYY-MM-DD'`). */\n min?: string\n /** Latest selectable date (ISO `'YYYY-MM-DD'`). */\n max?: string\n /** Disables specific dates — receives each day as an ISO `'YYYY-MM-DD'` string. */\n disabledDate?: (date: string) => boolean\n /** First day of the week: 0 = Sunday … 6 = Saturday. Defaults to `1` (Monday). */\n weekStartsOn?: number\n /** Shows a clear (×) button when a date is set. Defaults to `true`. */\n clearable?: boolean\n /** Form field name — auto-binds to a surrounding `<Form>` (value is the ISO date string). */\n name?: string\n /** Id for the input (label association). */\n id?: string\n className?: string\n style?: CSSProperties\n}\n\n/**\n * A date field with a typed, masked input **and** a calendar popover. The input accepts typing in\n * `format` (default `DD/MM/YYYY`, masked) and parses strictly; the calendar icon opens a\n * `Dropdown`-style popover (portaled, flips, scroll-locked — shared via `useFloatingPanel`) with a\n * keyboard-navigable month grid + year picker. All calendar math runs in **UTC** so the date never\n * drifts with the viewer's timezone; the value is a string in `valueFormat` (default ISO datetime\n * `'YYYY-MM-DDTHH:mm:ss'`) — incoming values are parsed leniently (a richer backend datetime is\n * accepted) and emitted at the start of the UTC day. Supports `min`/`max`, `disabledDate`,\n * `weekStartsOn`, and\n * `clearable`. Controlled (`value` + `onChange`) or\n * uncontrolled (`defaultValue`), and binds to a surrounding `<Form>` by `name` (validate with e.g.\n * `z.string().min(1, 'Required')`). Token-only styling. Requires the `dayjs` peer dependency.\n */\nexport const DatePicker = forwardRef<HTMLInputElement, DatePickerProps>(function DatePicker(\n {\n label,\n size = 'md',\n error,\n helperText,\n required = false,\n fullWidth = true,\n disabled = false,\n value,\n defaultValue,\n onChange,\n format = 'DD/MM/YYYY',\n valueFormat = 'YYYY-MM-DDTHH:mm:ss',\n placeholder,\n min,\n max,\n disabledDate,\n weekStartsOn = 1,\n clearable = true,\n name,\n id: idProp,\n className,\n style,\n },\n ref,\n) {\n const t = useT()\n const reactId = useId()\n const id = idProp ?? reactId\n const helperId = `${id}-helper`\n const labelId = `${id}-label`\n\n // ── value (controlled / form-bound / uncontrolled) — ISO 'YYYY-MM-DD' ──────────────────────────\n const form = useFormContext()\n const isFormBound = Boolean(form && name)\n const bound = isFormBound ? form!.field(name!) : undefined\n const externalValue =\n value !== undefined\n ? value\n : isFormBound\n ? ((form!.values[name!] as string | undefined) ?? '')\n : undefined\n const isControlled = value !== undefined || isFormBound\n const [internal, setInternal] = useState<string>(defaultValue ?? '')\n const currentValue = isControlled ? externalValue! : internal\n const selected = parseValue(currentValue, valueFormat)\n\n const resolvedError = error ?? bound?.error ?? false\n const resolvedHelperText = helperText ?? bound?.helperText\n\n const minDate = parseISO(min)\n const maxDate = parseISO(max)\n const mask = maskFromFormat(format)\n\n const commit = (next: string) => {\n if (next === currentValue) return // skip redundant onChange / setValue with an unchanged value\n if (!isControlled) setInternal(next)\n if (isFormBound) form!.setValue(name!, next)\n onChange?.(next)\n }\n\n // emit a chosen day in the wire `valueFormat` (start of the UTC day), or '' to clear\n const commitDate = (d: Dayjs | null) => commit(d ? formatValue(d, valueFormat) : '')\n\n // true when `d` is a different calendar day than the current value — gates commits so a no-op\n // round-trip (e.g. focusing then blurring) never rewrites an unchanged value's time to midnight\n const dayChanged = (d: Dayjs) => !selected || !d.isSame(selected, 'day')\n\n // input display text (kept in sync with the committed value; free while typing an incomplete date)\n const [inputText, setInputText] = useState<string>(() =>\n selected ? selected.format(format) : '',\n )\n useEffect(() => {\n setInputText(selected ? selected.format(format) : '')\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentValue, format, valueFormat])\n\n // ── popover ────────────────────────────────────────────────────────────────────────────────────\n const triggerRef = useRef<HTMLDivElement | null>(null)\n const inputRef = useRef<HTMLInputElement | null>(null)\n const [open, setOpen] = useState(false)\n const [viewMonth, setViewMonth] = useState<Dayjs>(() => selected ?? today())\n\n const setInputRef = useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as { current: HTMLInputElement | null }).current = node\n },\n [ref],\n )\n\n // keep the form's blur handler live for the stable closePopover (`bound` is recreated each render)\n const fieldBlurRef = useRef<(() => void) | undefined>(undefined)\n fieldBlurRef.current = bound ? () => bound.onBlur({} as FocusEvent<HTMLInputElement>) : undefined\n\n // the floating panel forwards its node here, for the focus-leaves-the-widget check on blur\n const popoverRef = useRef<HTMLDivElement | null>(null)\n\n const closePopover = useCallback((refocus: boolean) => {\n setOpen(false)\n fieldBlurRef.current?.()\n if (refocus) inputRef.current?.focus()\n }, [])\n\n // when opening, sync the calendar to the selected date (or today)\n useEffect(() => {\n if (open) setViewMonth(selected ?? today())\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const handleInputChange = (raw: string) => {\n const masked = applyMask(raw, mask)\n setInputText(masked)\n if (masked === '') {\n commit('') // emptying the field clears the value\n return\n }\n const parsed = parseInput(masked, format)\n // commit only a complete, valid, in-range, enabled date that changes the day\n if (parsed && !isOutOfRange(parsed) && dayChanged(parsed)) commitDate(parsed)\n }\n\n const isOutOfRange = (d: Dayjs): boolean => {\n if (minDate && d.isBefore(minDate, 'day')) return true\n if (maxDate && d.isAfter(maxDate, 'day')) return true\n return Boolean(disabledDate && disabledDate(toISO(d)))\n }\n\n const handleInputBlur = (event: FocusEvent<HTMLInputElement>) => {\n // re-format from the committed value (drops half-typed / invalid text); fires the form's touched\n const parsed = parseInput(inputText, format)\n if (inputText === '') {\n commit('') // an emptied field stays cleared (don't restore the old date)\n } else if (parsed && !isOutOfRange(parsed)) {\n if (dayChanged(parsed)) commitDate(parsed)\n setInputText(parsed.format(format))\n } else {\n setInputText(selected ? selected.format(format) : '')\n }\n // only mark touched when focus leaves the whole widget (not into the popover)\n const nextEl = event.relatedTarget as Node | null\n if (nextEl && (popoverRef.current?.contains(nextEl) || triggerRef.current?.contains(nextEl)))\n return\n bound?.onBlur(event)\n }\n\n const handleSelect = (iso: string) => {\n const picked = parseISO(iso)\n if (picked && dayChanged(picked)) commitDate(picked) // re-picking the same day preserves its value\n closePopover(true)\n }\n\n const iconSize: 'sm' | 'md' = size === 'sm' ? 'sm' : 'md'\n\n return (\n <div\n className={clsx(\n styles.field,\n styles[size],\n fullWidth && styles.fullWidth,\n resolvedError && styles.error,\n disabled && styles.disabled,\n className,\n )}\n style={style}\n >\n {label != null && (\n <label htmlFor={id} className={styles.label}>\n <Typography as=\"span\" variant=\"bodySmall\" color=\"muted\">\n {label}\n </Typography>\n {required && (\n <span className={styles.required} aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n )}\n\n <div ref={triggerRef} className={clsx(styles.control, open && styles.open)}>\n <input\n ref={setInputRef}\n id={id}\n name={name}\n className={styles.input}\n value={inputText}\n placeholder={placeholder ?? format.toLowerCase()}\n disabled={disabled}\n inputMode=\"numeric\"\n autoComplete=\"off\"\n aria-invalid={resolvedError || undefined}\n aria-describedby={resolvedHelperText != null ? helperId : undefined}\n onChange={(e) => handleInputChange(e.target.value)}\n onBlur={handleInputBlur}\n />\n\n {clearable && currentValue !== '' && !disabled && (\n <button\n type=\"button\"\n className={styles.clear}\n aria-label={t('datePicker.clear')}\n tabIndex={-1}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => {\n commit('')\n setInputText('')\n inputRef.current?.focus()\n }}\n >\n <Icon name=\"CloseCircle\" size=\"sm\" />\n </button>\n )}\n\n <IconButton\n type=\"button\"\n variant=\"text\"\n color=\"primary\"\n size={size}\n disabled={disabled}\n aria-label={t('datePicker.open')}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n className={styles.calendarButton}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => setOpen((o) => !o)}\n >\n <Icon name=\"Calendar3\" size={iconSize} />\n </IconButton>\n </div>\n\n <FloatingPanel\n ref={popoverRef}\n open={open}\n triggerRef={triggerRef}\n onClose={closePopover}\n role=\"dialog\"\n ariaLabel={t('datePicker.dialog')}\n trapFocus\n className={styles.popover}\n >\n <Calendar\n value={selected}\n month={viewMonth}\n onMonthChange={setViewMonth}\n onSelect={handleSelect}\n min={minDate}\n max={maxDate}\n disabledDate={disabledDate}\n weekStartsOn={weekStartsOn}\n autoFocus\n labelId={labelId}\n />\n </FloatingPanel>\n\n {resolvedHelperText != null && (\n <Typography\n as=\"span\"\n id={helperId}\n variant=\"bodySmall\"\n color={resolvedError ? 'error' : 'muted'}\n className={styles.helper}\n >\n {resolvedHelperText}\n </Typography>\n )}\n </div>\n )\n})\n"],"names":["DatePicker","forwardRef","label","size","error","helperText","required","fullWidth","disabled","value","defaultValue","onChange","format","valueFormat","placeholder","min","max","disabledDate","weekStartsOn","clearable","name","idProp","className","style","ref","t","useT","reactId","useId","id","helperId","labelId","form","useFormContext","isFormBound","bound","externalValue","isControlled","internal","setInternal","useState","currentValue","selected","parseValue","resolvedError","resolvedHelperText","minDate","parseISO","maxDate","mask","maskFromFormat","commit","next","commitDate","d","formatValue","dayChanged","inputText","setInputText","useEffect","triggerRef","useRef","inputRef","open","setOpen","viewMonth","setViewMonth","today","setInputRef","useCallback","node","fieldBlurRef","popoverRef","closePopover","refocus","_a","_b","handleInputChange","raw","masked","applyMask","parsed","parseInput","isOutOfRange","toISO","handleInputBlur","event","nextEl","handleSelect","iso","picked","iconSize","jsxs","clsx","styles","jsx","Typography","Icon","IconButton","o","FloatingPanel","Calendar"],"mappings":"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"}