@banzamel/mineralui 0.9.0 → 0.10.0

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 (783) hide show
  1. package/README.md +152 -151
  2. package/dist/AmericanExpressIcon-Bpk-Yz4y.js +1794 -0
  3. package/dist/AmericanExpressIcon-Bpk-Yz4y.js.map +1 -0
  4. package/dist/AmericanExpressIcon-Duhw7WXn.cjs +2 -0
  5. package/dist/AmericanExpressIcon-Duhw7WXn.cjs.map +1 -0
  6. package/dist/AppShell-BGFVRml6.js +659 -0
  7. package/dist/AppShell-BGFVRml6.js.map +1 -0
  8. package/dist/AppShell-ButYSI7U.cjs +2 -0
  9. package/dist/AppShell-ButYSI7U.cjs.map +1 -0
  10. package/dist/ArrowDownIcon-DzDirevG.js +21 -0
  11. package/dist/ArrowDownIcon-DzDirevG.js.map +1 -0
  12. package/dist/ArrowDownIcon-EfyFLBHR.cjs +2 -0
  13. package/dist/ArrowDownIcon-EfyFLBHR.cjs.map +1 -0
  14. package/dist/Avatar-Ba4TdSXp.cjs +2 -0
  15. package/dist/Avatar-Ba4TdSXp.cjs.map +1 -0
  16. package/dist/Avatar-BzokUdR4.js +50 -0
  17. package/dist/Avatar-BzokUdR4.js.map +1 -0
  18. package/dist/Badge-BF8-zXDl.js +15 -0
  19. package/dist/Badge-BF8-zXDl.js.map +1 -0
  20. package/dist/Badge-CivRCrzY.cjs +2 -0
  21. package/dist/Badge-CivRCrzY.cjs.map +1 -0
  22. package/dist/BrandMoreIcons-Cb4cXa_M.cjs +2 -0
  23. package/dist/BrandMoreIcons-Cb4cXa_M.cjs.map +1 -0
  24. package/dist/BrandMoreIcons-DnusZA-G.js +825 -0
  25. package/dist/BrandMoreIcons-DnusZA-G.js.map +1 -0
  26. package/dist/Button-BUd8Dkdx.cjs +2 -0
  27. package/dist/Button-BUd8Dkdx.cjs.map +1 -0
  28. package/dist/Button-BnxXh7zp.js +52 -0
  29. package/dist/Button-BnxXh7zp.js.map +1 -0
  30. package/dist/CalendarBoard-DidNBym4.js +998 -0
  31. package/dist/CalendarBoard-DidNBym4.js.map +1 -0
  32. package/dist/CalendarBoard-DvGimf8K.cjs +2 -0
  33. package/dist/CalendarBoard-DvGimf8K.cjs.map +1 -0
  34. package/dist/CalendarIcon-D74I9hJl.cjs +2 -0
  35. package/dist/CalendarIcon-D74I9hJl.cjs.map +1 -0
  36. package/dist/CalendarIcon-gvWV3ioD.js +29 -0
  37. package/dist/CalendarIcon-gvWV3ioD.js.map +1 -0
  38. package/dist/Card-AbIdSFmm.cjs +2 -0
  39. package/dist/Card-AbIdSFmm.cjs.map +1 -0
  40. package/dist/Card-B_4TR7gc.js +55 -0
  41. package/dist/Card-B_4TR7gc.js.map +1 -0
  42. package/dist/CardGrid-Cm0qx9ue.cjs +2 -0
  43. package/dist/CardGrid-Cm0qx9ue.cjs.map +1 -0
  44. package/dist/CardGrid-nqnCwmTD.js +581 -0
  45. package/dist/CardGrid-nqnCwmTD.js.map +1 -0
  46. package/dist/Checkbox-B4t7uzS2.js +60 -0
  47. package/dist/Checkbox-B4t7uzS2.js.map +1 -0
  48. package/dist/Checkbox-BXetIDRT.cjs +2 -0
  49. package/dist/Checkbox-BXetIDRT.cjs.map +1 -0
  50. package/dist/ChevronDownIcon-BDiyHPT4.js +15 -0
  51. package/dist/ChevronDownIcon-BDiyHPT4.js.map +1 -0
  52. package/dist/ChevronDownIcon-CkT_O5e5.cjs +2 -0
  53. package/dist/ChevronDownIcon-CkT_O5e5.cjs.map +1 -0
  54. package/dist/ChevronLeftIcon-DVwatRi0.cjs +2 -0
  55. package/dist/ChevronLeftIcon-DVwatRi0.cjs.map +1 -0
  56. package/dist/ChevronLeftIcon-lTktpFVi.js +15 -0
  57. package/dist/ChevronLeftIcon-lTktpFVi.js.map +1 -0
  58. package/dist/ChevronRightIcon-1oaUsxM2.js +15 -0
  59. package/dist/ChevronRightIcon-1oaUsxM2.js.map +1 -0
  60. package/dist/ChevronRightIcon-Bxqjb5s0.cjs +2 -0
  61. package/dist/ChevronRightIcon-Bxqjb5s0.cjs.map +1 -0
  62. package/dist/ClockIcon-CTHDAJUU.js +19 -0
  63. package/dist/ClockIcon-CTHDAJUU.js.map +1 -0
  64. package/dist/ClockIcon-DeDZlnTQ.cjs +2 -0
  65. package/dist/ClockIcon-DeDZlnTQ.cjs.map +1 -0
  66. package/dist/CloseIcon-5btDsUxB.cjs +2 -0
  67. package/dist/CloseIcon-5btDsUxB.cjs.map +1 -0
  68. package/dist/CloseIcon-DGl8CDLK.js +15 -0
  69. package/dist/CloseIcon-DGl8CDLK.js.map +1 -0
  70. package/dist/ColorPicker-BqE5PvW5.js +457 -0
  71. package/dist/ColorPicker-BqE5PvW5.js.map +1 -0
  72. package/dist/ColorPicker-DlrPaM8W.cjs +2 -0
  73. package/dist/ColorPicker-DlrPaM8W.cjs.map +1 -0
  74. package/dist/DropdownMenu-Bf1l4spO.js +139 -0
  75. package/dist/DropdownMenu-Bf1l4spO.js.map +1 -0
  76. package/dist/DropdownMenu-CvUG4QEC.cjs +2 -0
  77. package/dist/DropdownMenu-CvUG4QEC.cjs.map +1 -0
  78. package/dist/FileExtIcons-BecWBncW.js +145 -0
  79. package/dist/FileExtIcons-BecWBncW.js.map +1 -0
  80. package/dist/FileExtIcons-FTFddWmg.cjs +2 -0
  81. package/dist/FileExtIcons-FTFddWmg.cjs.map +1 -0
  82. package/dist/FolderOpenIcon-BAxBjkbK.js +31 -0
  83. package/dist/FolderOpenIcon-BAxBjkbK.js.map +1 -0
  84. package/dist/FolderOpenIcon-D2fsAXLM.cjs +2 -0
  85. package/dist/FolderOpenIcon-D2fsAXLM.cjs.map +1 -0
  86. package/dist/Heading-CALsycVL.cjs +2 -0
  87. package/dist/Heading-CALsycVL.cjs.map +1 -0
  88. package/dist/Heading-DtcgehrI.js +17 -0
  89. package/dist/Heading-DtcgehrI.js.map +1 -0
  90. package/dist/I18nProvider-CAnFu85r.js +69 -0
  91. package/dist/I18nProvider-CAnFu85r.js.map +1 -0
  92. package/dist/I18nProvider-CiYjTmgv.cjs +2 -0
  93. package/dist/I18nProvider-CiYjTmgv.cjs.map +1 -0
  94. package/dist/Icon-B-s6VJr5.cjs +2 -0
  95. package/dist/Icon-B-s6VJr5.cjs.map +1 -0
  96. package/dist/Icon-B848Vysm.js +45 -0
  97. package/dist/Icon-B848Vysm.js.map +1 -0
  98. package/dist/InputFile-C6Y-y8CQ.cjs +2 -0
  99. package/dist/InputFile-C6Y-y8CQ.cjs.map +1 -0
  100. package/dist/InputFile-DicC8Tbv.js +1356 -0
  101. package/dist/InputFile-DicC8Tbv.js.map +1 -0
  102. package/dist/InputSearch-BO_j0nAW.js +218 -0
  103. package/dist/InputSearch-BO_j0nAW.js.map +1 -0
  104. package/dist/InputSearch-Bk5YFz09.cjs +2 -0
  105. package/dist/InputSearch-Bk5YFz09.cjs.map +1 -0
  106. package/dist/Kbd-qcCkiDkW.js +55 -0
  107. package/dist/Kbd-qcCkiDkW.js.map +1 -0
  108. package/dist/Kbd-wmU-rhWO.cjs +2 -0
  109. package/dist/Kbd-wmU-rhWO.cjs.map +1 -0
  110. package/dist/Link-D3lmTu3R.js +30 -0
  111. package/dist/Link-D3lmTu3R.js.map +1 -0
  112. package/dist/Link-DSIStgFG.cjs +2 -0
  113. package/dist/Link-DSIStgFG.cjs.map +1 -0
  114. package/dist/MPagination-C-Ff4orL.js +103 -0
  115. package/dist/MPagination-C-Ff4orL.js.map +1 -0
  116. package/dist/MPagination-CVy14D9v.cjs +2 -0
  117. package/dist/MPagination-CVy14D9v.cjs.map +1 -0
  118. package/dist/MasonryItem-BsD5OuYt.js +368 -0
  119. package/dist/MasonryItem-BsD5OuYt.js.map +1 -0
  120. package/dist/MasonryItem-CBxzCuRr.cjs +2 -0
  121. package/dist/MasonryItem-CBxzCuRr.cjs.map +1 -0
  122. package/dist/MenuIcon-mX5bSTAp.js +20 -0
  123. package/dist/MenuIcon-mX5bSTAp.js.map +1 -0
  124. package/dist/MenuIcon-x1LjLPWp.cjs +2 -0
  125. package/dist/MenuIcon-x1LjLPWp.cjs.map +1 -0
  126. package/dist/Modal-BDDrW5HI.js +56 -0
  127. package/dist/Modal-BDDrW5HI.js.map +1 -0
  128. package/dist/Modal-DrtVZtb1.cjs +2 -0
  129. package/dist/Modal-DrtVZtb1.cjs.map +1 -0
  130. package/dist/NeutralIcon-BPZ3coWv.js +67 -0
  131. package/dist/NeutralIcon-BPZ3coWv.js.map +1 -0
  132. package/dist/NeutralIcon-CScIXs8_.cjs +2 -0
  133. package/dist/NeutralIcon-CScIXs8_.cjs.map +1 -0
  134. package/dist/PhoneIcon-CPGZ1D2-.cjs +2 -0
  135. package/dist/PhoneIcon-CPGZ1D2-.cjs.map +1 -0
  136. package/dist/PhoneIcon-DXlB7Uz0.js +38 -0
  137. package/dist/PhoneIcon-DXlB7Uz0.js.map +1 -0
  138. package/dist/Popconfirm-BJtyFjdY.js +200 -0
  139. package/dist/Popconfirm-BJtyFjdY.js.map +1 -0
  140. package/dist/Popconfirm-DQqBq_OP.cjs +2 -0
  141. package/dist/Popconfirm-DQqBq_OP.cjs.map +1 -0
  142. package/dist/Popover-BLYlu0jf.js +95 -0
  143. package/dist/Popover-BLYlu0jf.js.map +1 -0
  144. package/dist/Popover-BfCYHGUU.cjs +2 -0
  145. package/dist/Popover-BfCYHGUU.cjs.map +1 -0
  146. package/dist/Portal-CeUZ2xET.cjs +2 -0
  147. package/dist/Portal-CeUZ2xET.cjs.map +1 -0
  148. package/dist/Portal-s54PuE_l.js +10 -0
  149. package/dist/Portal-s54PuE_l.js.map +1 -0
  150. package/dist/QrCode-CP1sYiXF.js +371 -0
  151. package/dist/QrCode-CP1sYiXF.js.map +1 -0
  152. package/dist/QrCode-scUXUrNj.cjs +2 -0
  153. package/dist/QrCode-scUXUrNj.cjs.map +1 -0
  154. package/dist/SearchIcon-DDahNpBX.js +24 -0
  155. package/dist/SearchIcon-DDahNpBX.js.map +1 -0
  156. package/dist/SearchIcon-DeKs76RI.cjs +2 -0
  157. package/dist/SearchIcon-DeKs76RI.cjs.map +1 -0
  158. package/dist/Slider-BgHTWUXS.cjs +2 -0
  159. package/dist/Slider-BgHTWUXS.cjs.map +1 -0
  160. package/dist/Slider-BvnJPPAf.js +75 -0
  161. package/dist/Slider-BvnJPPAf.js.map +1 -0
  162. package/dist/Stack-DzFHpLMS.cjs +2 -0
  163. package/dist/Stack-DzFHpLMS.cjs.map +1 -0
  164. package/dist/Stack-xUXSOKqN.js +40 -0
  165. package/dist/Stack-xUXSOKqN.js.map +1 -0
  166. package/dist/StarFillIcon-D4HEOD6y.cjs +2 -0
  167. package/dist/StarFillIcon-D4HEOD6y.cjs.map +1 -0
  168. package/dist/StarFillIcon-tMWVk8tT.js +25 -0
  169. package/dist/StarFillIcon-tMWVk8tT.js.map +1 -0
  170. package/dist/Surface-BVk3r7ws.cjs +2 -0
  171. package/dist/Surface-BVk3r7ws.cjs.map +1 -0
  172. package/dist/Surface-E8hELelv.js +40 -0
  173. package/dist/Surface-E8hELelv.js.map +1 -0
  174. package/dist/Text-DOVuH0uw.js +39 -0
  175. package/dist/Text-DOVuH0uw.js.map +1 -0
  176. package/dist/Text-DUuY1RDL.cjs +2 -0
  177. package/dist/Text-DUuY1RDL.cjs.map +1 -0
  178. package/dist/ThemeProvider-CCWDIXiA.cjs +2 -0
  179. package/dist/ThemeProvider-CCWDIXiA.cjs.map +1 -0
  180. package/dist/ThemeProvider-COEImCNH.js +132 -0
  181. package/dist/ThemeProvider-COEImCNH.js.map +1 -0
  182. package/dist/TimePicker-BXbuLCDX.js +1204 -0
  183. package/dist/TimePicker-BXbuLCDX.js.map +1 -0
  184. package/dist/TimePicker-DDhkqier.cjs +2 -0
  185. package/dist/TimePicker-DDhkqier.cjs.map +1 -0
  186. package/dist/ToastProvider-DRz62qKU.cjs +2 -0
  187. package/dist/ToastProvider-DRz62qKU.cjs.map +1 -0
  188. package/dist/ToastProvider-Dlgk48v1.js +234 -0
  189. package/dist/ToastProvider-Dlgk48v1.js.map +1 -0
  190. package/dist/Toggle-BACN6Wrk.cjs +2 -0
  191. package/dist/Toggle-BACN6Wrk.cjs.map +1 -0
  192. package/dist/Toggle-D9M7aDWh.js +140 -0
  193. package/dist/Toggle-D9M7aDWh.js.map +1 -0
  194. package/dist/ZoomInIcon-CtoKX0Ri.cjs +2 -0
  195. package/dist/ZoomInIcon-CtoKX0Ri.cjs.map +1 -0
  196. package/dist/ZoomInIcon-UNvzc9zU.js +113 -0
  197. package/dist/ZoomInIcon-UNvzc9zU.js.map +1 -0
  198. package/dist/appearanceProps-65LbXIeI.cjs +2 -0
  199. package/dist/appearanceProps-65LbXIeI.cjs.map +1 -0
  200. package/dist/appearanceProps-8tN47e1u.js +8 -0
  201. package/dist/appearanceProps-8tN47e1u.js.map +1 -0
  202. package/dist/cards.cjs +2 -0
  203. package/dist/cards.d.ts +3 -0
  204. package/dist/cards.js +8 -0
  205. package/dist/cn-BIeeqGZv.js +8 -0
  206. package/dist/cn-BIeeqGZv.js.map +1 -0
  207. package/dist/cn-BOmEz3Rt.cjs +2 -0
  208. package/dist/cn-BOmEz3Rt.cjs.map +1 -0
  209. package/dist/components/cards/Card/Card.d.ts +5 -0
  210. package/dist/components/cards/Card/Card.types.d.ts +16 -0
  211. package/dist/components/cards/Card/index.d.ts +2 -0
  212. package/dist/components/cards/CardBusiness/CardBusiness.d.ts +2 -0
  213. package/dist/components/cards/CardBusiness/CardBusiness.types.d.ts +33 -0
  214. package/dist/components/cards/CardBusiness/index.d.ts +2 -0
  215. package/dist/components/cards/CardGrid/CardGrid.d.ts +2 -0
  216. package/dist/components/cards/CardGrid/CardGrid.types.d.ts +27 -0
  217. package/dist/components/cards/CardGrid/index.d.ts +2 -0
  218. package/dist/components/cards/CardPayment/CardPayment.d.ts +2 -0
  219. package/dist/components/cards/CardPayment/CardPayment.types.d.ts +13 -0
  220. package/dist/components/cards/CardPayment/index.d.ts +2 -0
  221. package/dist/components/cards/CardService/CardService.d.ts +2 -0
  222. package/dist/components/cards/CardService/CardService.types.d.ts +37 -0
  223. package/dist/components/cards/CardService/index.d.ts +2 -0
  224. package/dist/components/cards/index.d.ts +10 -0
  225. package/dist/components/controls/Button/Button.d.ts +2 -0
  226. package/dist/components/controls/Button/Button.types.d.ts +22 -0
  227. package/dist/components/controls/Button/index.d.ts +2 -0
  228. package/dist/components/controls/Checkbox/Checkbox.d.ts +3 -0
  229. package/dist/components/controls/Checkbox/Checkbox.types.d.ts +24 -0
  230. package/dist/components/controls/Checkbox/index.d.ts +2 -0
  231. package/dist/components/controls/Radio/Radio.d.ts +3 -0
  232. package/dist/components/controls/Radio/Radio.types.d.ts +47 -0
  233. package/dist/components/controls/Radio/RadioContext.d.ts +3 -0
  234. package/dist/components/controls/Radio/RadioGroup.d.ts +2 -0
  235. package/dist/components/controls/Radio/index.d.ts +3 -0
  236. package/dist/components/controls/Slider/Slider.d.ts +2 -0
  237. package/dist/components/controls/Slider/Slider.types.d.ts +17 -0
  238. package/dist/components/controls/Slider/index.d.ts +2 -0
  239. package/dist/components/controls/Toggle/Toggle.d.ts +2 -0
  240. package/dist/components/controls/Toggle/Toggle.types.d.ts +20 -0
  241. package/dist/components/controls/Toggle/index.d.ts +2 -0
  242. package/dist/components/controls/index.d.ts +10 -0
  243. package/dist/components/data/CalendarBoard/CalendarBoard.d.ts +7 -0
  244. package/dist/components/data/CalendarBoard/CalendarBoard.types.d.ts +117 -0
  245. package/dist/components/data/CalendarBoard/index.d.ts +2 -0
  246. package/dist/components/data/DataTable/DataTable.d.ts +2 -0
  247. package/dist/components/data/DataTable/DataTable.types.d.ts +34 -0
  248. package/dist/components/data/DataTable/index.d.ts +2 -0
  249. package/dist/components/data/TaskList/TaskList.d.ts +2 -0
  250. package/dist/components/data/TaskList/TaskList.types.d.ts +14 -0
  251. package/dist/components/data/TaskList/index.d.ts +2 -0
  252. package/dist/components/data/TreeView/TreeView.d.ts +2 -0
  253. package/dist/components/data/TreeView/TreeView.types.d.ts +63 -0
  254. package/dist/components/data/TreeView/index.d.ts +2 -0
  255. package/dist/components/data/index.d.ts +8 -0
  256. package/dist/components/display/Accordion/Accordion.d.ts +3 -0
  257. package/dist/components/display/Accordion/Accordion.types.d.ts +16 -0
  258. package/dist/components/display/Accordion/index.d.ts +2 -0
  259. package/dist/components/display/Collapsible/Collapsible.d.ts +2 -0
  260. package/dist/components/display/Collapsible/Collapsible.types.d.ts +10 -0
  261. package/dist/components/display/Collapsible/index.d.ts +2 -0
  262. package/dist/components/display/ColorPicker/ColorPicker.d.ts +2 -0
  263. package/dist/components/display/ColorPicker/ColorPicker.types.d.ts +11 -0
  264. package/dist/components/display/ColorPicker/index.d.ts +2 -0
  265. package/dist/components/display/CountUp/CountUp.d.ts +2 -0
  266. package/dist/components/display/CountUp/CountUp.types.d.ts +10 -0
  267. package/dist/components/display/CountUp/index.d.ts +2 -0
  268. package/dist/components/display/ProgressBar/ProgressBar.d.ts +2 -0
  269. package/dist/components/display/ProgressBar/ProgressBar.types.d.ts +12 -0
  270. package/dist/components/display/ProgressBar/index.d.ts +2 -0
  271. package/dist/components/display/QrCode/QrCode.d.ts +2 -0
  272. package/dist/components/display/QrCode/QrCode.types.d.ts +8 -0
  273. package/dist/components/display/QrCode/index.d.ts +2 -0
  274. package/dist/components/display/Rating/Rating.d.ts +2 -0
  275. package/dist/components/display/Rating/Rating.types.d.ts +10 -0
  276. package/dist/components/display/Rating/index.d.ts +2 -0
  277. package/dist/components/display/TimeAgo/TimeAgo.d.ts +2 -0
  278. package/dist/components/display/TimeAgo/TimeAgo.types.d.ts +11 -0
  279. package/dist/components/display/TimeAgo/index.d.ts +2 -0
  280. package/dist/components/display/index.d.ts +16 -0
  281. package/dist/components/dropdowns/Autocomplete/Autocomplete.d.ts +2 -0
  282. package/dist/components/dropdowns/Autocomplete/Autocomplete.types.d.ts +38 -0
  283. package/dist/components/dropdowns/Autocomplete/index.d.ts +2 -0
  284. package/dist/components/dropdowns/DatePicker/DatePicker.d.ts +2 -0
  285. package/dist/components/dropdowns/DatePicker/DatePicker.types.d.ts +33 -0
  286. package/dist/components/dropdowns/DatePicker/index.d.ts +2 -0
  287. package/dist/components/dropdowns/DateRangePicker/DateRangePicker.d.ts +2 -0
  288. package/dist/components/dropdowns/DateRangePicker/DateRangePicker.types.d.ts +50 -0
  289. package/dist/components/dropdowns/DateRangePicker/index.d.ts +2 -0
  290. package/dist/components/dropdowns/Select/Select.d.ts +2 -0
  291. package/dist/components/dropdowns/Select/Select.types.d.ts +39 -0
  292. package/dist/components/dropdowns/Select/index.d.ts +2 -0
  293. package/dist/components/dropdowns/TimePicker/TimePicker.d.ts +2 -0
  294. package/dist/components/dropdowns/TimePicker/TimePicker.types.d.ts +30 -0
  295. package/dist/components/dropdowns/TimePicker/index.d.ts +2 -0
  296. package/dist/components/dropdowns/index.d.ts +10 -0
  297. package/dist/components/feedback/Alert/Alert.d.ts +2 -0
  298. package/dist/components/feedback/Alert/Alert.types.d.ts +9 -0
  299. package/dist/components/feedback/Alert/index.d.ts +2 -0
  300. package/dist/components/feedback/Badge/Badge.d.ts +2 -0
  301. package/dist/components/feedback/Badge/Badge.types.d.ts +9 -0
  302. package/dist/components/feedback/Badge/index.d.ts +2 -0
  303. package/dist/components/feedback/Banner/Banner.d.ts +2 -0
  304. package/dist/components/feedback/Banner/Banner.types.d.ts +12 -0
  305. package/dist/components/feedback/Banner/index.d.ts +2 -0
  306. package/dist/components/feedback/Loader/Loader.d.ts +2 -0
  307. package/dist/components/feedback/Loader/Loader.types.d.ts +9 -0
  308. package/dist/components/feedback/Loader/index.d.ts +2 -0
  309. package/dist/components/feedback/Spinner/Spinner.d.ts +2 -0
  310. package/dist/components/feedback/Spinner/Spinner.types.d.ts +7 -0
  311. package/dist/components/feedback/Spinner/index.d.ts +2 -0
  312. package/dist/components/feedback/Tag/Tag.d.ts +2 -0
  313. package/dist/components/feedback/Tag/Tag.types.d.ts +12 -0
  314. package/dist/components/feedback/Tag/index.d.ts +2 -0
  315. package/dist/components/feedback/Toast/Toast.types.d.ts +27 -0
  316. package/dist/components/feedback/Toast/ToastContext.d.ts +3 -0
  317. package/dist/components/feedback/Toast/ToastItem.d.ts +5 -0
  318. package/dist/components/feedback/Toast/ToastProvider.d.ts +4 -0
  319. package/dist/components/feedback/Toast/index.d.ts +3 -0
  320. package/dist/components/feedback/index.d.ts +14 -0
  321. package/dist/components/form/Form/Form.d.ts +2 -0
  322. package/dist/components/form/Form/Form.types.d.ts +42 -0
  323. package/dist/components/form/Form/FormContext.d.ts +3 -0
  324. package/dist/components/form/Form/index.d.ts +5 -0
  325. package/dist/components/form/Form/useFormField.d.ts +13 -0
  326. package/dist/components/form/index.d.ts +2 -0
  327. package/dist/components/inputs/Input/Input.d.ts +3 -0
  328. package/dist/components/inputs/Input/Input.types.d.ts +49 -0
  329. package/dist/components/inputs/Input/index.d.ts +2 -0
  330. package/dist/components/inputs/InputCreditCard/InputCreditCard.d.ts +3 -0
  331. package/dist/components/inputs/InputCreditCard/InputCreditCard.types.d.ts +12 -0
  332. package/dist/components/inputs/InputCreditCard/index.d.ts +2 -0
  333. package/dist/components/inputs/InputCurrency/InputCurrency.d.ts +3 -0
  334. package/dist/components/inputs/InputCurrency/InputCurrency.types.d.ts +13 -0
  335. package/dist/components/inputs/InputCurrency/index.d.ts +2 -0
  336. package/dist/components/inputs/InputEmail/InputEmail.d.ts +3 -0
  337. package/dist/components/inputs/InputEmail/InputEmail.types.d.ts +8 -0
  338. package/dist/components/inputs/InputEmail/index.d.ts +2 -0
  339. package/dist/components/inputs/InputFile/CropEditor.d.ts +11 -0
  340. package/dist/components/inputs/InputFile/InputFile.d.ts +3 -0
  341. package/dist/components/inputs/InputFile/InputFile.types.d.ts +29 -0
  342. package/dist/components/inputs/InputFile/index.d.ts +2 -0
  343. package/dist/components/inputs/InputGroup/InputGroup.d.ts +3 -0
  344. package/dist/components/inputs/InputGroup/InputGroup.types.d.ts +14 -0
  345. package/dist/components/inputs/InputGroup/index.d.ts +2 -0
  346. package/dist/components/inputs/InputIBAN/InputIBAN.d.ts +3 -0
  347. package/dist/components/inputs/InputIBAN/InputIBAN.types.d.ts +10 -0
  348. package/dist/components/inputs/InputIBAN/index.d.ts +2 -0
  349. package/dist/components/inputs/InputName/InputName.d.ts +3 -0
  350. package/dist/components/inputs/InputName/InputName.types.d.ts +10 -0
  351. package/dist/components/inputs/InputName/index.d.ts +2 -0
  352. package/dist/components/inputs/InputNumber/InputNumber.d.ts +3 -0
  353. package/dist/components/inputs/InputNumber/InputNumber.types.d.ts +10 -0
  354. package/dist/components/inputs/InputNumber/index.d.ts +2 -0
  355. package/dist/components/inputs/InputOTP/InputOTP.d.ts +3 -0
  356. package/dist/components/inputs/InputOTP/InputOTP.types.d.ts +15 -0
  357. package/dist/components/inputs/InputOTP/index.d.ts +2 -0
  358. package/dist/components/inputs/InputPassword/InputPassword.d.ts +3 -0
  359. package/dist/components/inputs/InputPassword/InputPassword.types.d.ts +7 -0
  360. package/dist/components/inputs/InputPassword/index.d.ts +2 -0
  361. package/dist/components/inputs/InputPhone/InputPhone.d.ts +3 -0
  362. package/dist/components/inputs/InputPhone/InputPhone.types.d.ts +10 -0
  363. package/dist/components/inputs/InputPhone/index.d.ts +2 -0
  364. package/dist/components/inputs/InputPostCode/InputPostCode.d.ts +3 -0
  365. package/dist/components/inputs/InputPostCode/InputPostCode.types.d.ts +12 -0
  366. package/dist/components/inputs/InputPostCode/index.d.ts +2 -0
  367. package/dist/components/inputs/InputSearch/InputSearch.d.ts +3 -0
  368. package/dist/components/inputs/InputSearch/InputSearch.types.d.ts +5 -0
  369. package/dist/components/inputs/InputSearch/index.d.ts +2 -0
  370. package/dist/components/inputs/InputSlider/InputSlider.d.ts +3 -0
  371. package/dist/components/inputs/InputSlider/InputSlider.types.d.ts +12 -0
  372. package/dist/components/inputs/InputSlider/index.d.ts +2 -0
  373. package/dist/components/inputs/InputTaxId/InputTaxId.d.ts +3 -0
  374. package/dist/components/inputs/InputTaxId/InputTaxId.types.d.ts +11 -0
  375. package/dist/components/inputs/InputTaxId/index.d.ts +2 -0
  376. package/dist/components/inputs/Textarea/Textarea.d.ts +3 -0
  377. package/dist/components/inputs/Textarea/Textarea.types.d.ts +41 -0
  378. package/dist/components/inputs/Textarea/index.d.ts +2 -0
  379. package/dist/components/inputs/index.d.ts +34 -0
  380. package/dist/components/layout/AppShell/AppShell.d.ts +4 -0
  381. package/dist/components/layout/AppShell/AppShell.types.d.ts +7 -0
  382. package/dist/components/layout/AppShell/index.d.ts +2 -0
  383. package/dist/components/layout/Container/Container.d.ts +2 -0
  384. package/dist/components/layout/Container/Container.types.d.ts +10 -0
  385. package/dist/components/layout/Container/index.d.ts +2 -0
  386. package/dist/components/layout/Divider/Divider.d.ts +2 -0
  387. package/dist/components/layout/Divider/Divider.types.d.ts +9 -0
  388. package/dist/components/layout/Divider/index.d.ts +2 -0
  389. package/dist/components/layout/Grid/Grid.d.ts +2 -0
  390. package/dist/components/layout/Grid/Grid.types.d.ts +10 -0
  391. package/dist/components/layout/Grid/index.d.ts +2 -0
  392. package/dist/components/layout/Inline/Inline.d.ts +2 -0
  393. package/dist/components/layout/Inline/Inline.types.d.ts +15 -0
  394. package/dist/components/layout/Inline/index.d.ts +2 -0
  395. package/dist/components/layout/MBreadcrumb/MBreadcrumb.d.ts +2 -0
  396. package/dist/components/layout/MBreadcrumb/MBreadcrumb.types.d.ts +11 -0
  397. package/dist/components/layout/MBreadcrumb/index.d.ts +2 -0
  398. package/dist/components/layout/MFooter/MFooter.d.ts +2 -0
  399. package/dist/components/layout/MFooter/MFooter.types.d.ts +11 -0
  400. package/dist/components/layout/MFooter/index.d.ts +2 -0
  401. package/dist/components/layout/MGrid/MGrid.d.ts +3 -0
  402. package/dist/components/layout/MGrid/MGrid.types.d.ts +21 -0
  403. package/dist/components/layout/MGrid/index.d.ts +2 -0
  404. package/dist/components/layout/MHeader/MHeader.d.ts +2 -0
  405. package/dist/components/layout/MHeader/MHeader.types.d.ts +13 -0
  406. package/dist/components/layout/MHeader/index.d.ts +2 -0
  407. package/dist/components/layout/MNavbar/MNavbar.d.ts +2 -0
  408. package/dist/components/layout/MNavbar/MNavbar.types.d.ts +18 -0
  409. package/dist/components/layout/MNavbar/index.d.ts +2 -0
  410. package/dist/components/layout/MNavs/MNavs.d.ts +2 -0
  411. package/dist/components/layout/MNavs/MNavs.types.d.ts +19 -0
  412. package/dist/components/layout/MNavs/index.d.ts +2 -0
  413. package/dist/components/layout/MPagination/MPagination.d.ts +2 -0
  414. package/dist/components/layout/MPagination/MPagination.types.d.ts +10 -0
  415. package/dist/components/layout/MPagination/index.d.ts +2 -0
  416. package/dist/components/layout/MSidebar/MSidebar.d.ts +9 -0
  417. package/dist/components/layout/MSidebar/MSidebar.types.d.ts +60 -0
  418. package/dist/components/layout/MSidebar/index.d.ts +2 -0
  419. package/dist/components/layout/MSubNav/MSubNav.d.ts +2 -0
  420. package/dist/components/layout/MSubNav/MSubNav.types.d.ts +14 -0
  421. package/dist/components/layout/MSubNav/index.d.ts +2 -0
  422. package/dist/components/layout/MTabs/MTabs.d.ts +2 -0
  423. package/dist/components/layout/MTabs/MTabs.types.d.ts +28 -0
  424. package/dist/components/layout/MTabs/index.d.ts +2 -0
  425. package/dist/components/layout/Section/Section.d.ts +2 -0
  426. package/dist/components/layout/Section/Section.types.d.ts +13 -0
  427. package/dist/components/layout/Section/index.d.ts +2 -0
  428. package/dist/components/layout/Stack/Stack.d.ts +2 -0
  429. package/dist/components/layout/Stack/Stack.types.d.ts +11 -0
  430. package/dist/components/layout/Stack/index.d.ts +2 -0
  431. package/dist/components/layout/Surface/Surface.d.ts +2 -0
  432. package/dist/components/layout/Surface/Surface.types.d.ts +13 -0
  433. package/dist/components/layout/Surface/index.d.ts +2 -0
  434. package/dist/components/layout/index.d.ts +36 -0
  435. package/dist/components/media/Avatar/Avatar.d.ts +2 -0
  436. package/dist/components/media/Avatar/Avatar.types.d.ts +19 -0
  437. package/dist/components/media/Avatar/index.d.ts +2 -0
  438. package/dist/components/media/Carousel/Carousel.d.ts +2 -0
  439. package/dist/components/media/Carousel/Carousel.types.d.ts +12 -0
  440. package/dist/components/media/Carousel/index.d.ts +2 -0
  441. package/dist/components/media/Gallery/Gallery.d.ts +2 -0
  442. package/dist/components/media/Gallery/Gallery.types.d.ts +14 -0
  443. package/dist/components/media/Gallery/index.d.ts +2 -0
  444. package/dist/components/media/Image/Image.d.ts +2 -0
  445. package/dist/components/media/Image/Image.types.d.ts +13 -0
  446. package/dist/components/media/Image/index.d.ts +2 -0
  447. package/dist/components/media/Masonry/Masonry.d.ts +2 -0
  448. package/dist/components/media/Masonry/Masonry.types.d.ts +7 -0
  449. package/dist/components/media/Masonry/index.d.ts +2 -0
  450. package/dist/components/media/MasonryItem/MasonryItem.d.ts +3 -0
  451. package/dist/components/media/MasonryItem/MasonryItem.types.d.ts +14 -0
  452. package/dist/components/media/MasonryItem/index.d.ts +2 -0
  453. package/dist/components/media/ShowcaseCarousel/ShowcaseCarousel.d.ts +2 -0
  454. package/dist/components/media/ShowcaseCarousel/ShowcaseCarousel.types.d.ts +19 -0
  455. package/dist/components/media/ShowcaseCarousel/index.d.ts +2 -0
  456. package/dist/components/media/ShowcaseCarouselItem/ShowcaseCarouselItem.d.ts +3 -0
  457. package/dist/components/media/ShowcaseCarouselItem/ShowcaseCarouselItem.types.d.ts +16 -0
  458. package/dist/components/media/ShowcaseCarouselItem/index.d.ts +2 -0
  459. package/dist/components/media/index.d.ts +16 -0
  460. package/dist/components/overlays/Drawer/Drawer.d.ts +5 -0
  461. package/dist/components/overlays/Drawer/Drawer.types.d.ts +17 -0
  462. package/dist/components/overlays/Drawer/index.d.ts +2 -0
  463. package/dist/components/overlays/DropdownMenu/DropdownMenu.d.ts +9 -0
  464. package/dist/components/overlays/DropdownMenu/DropdownMenu.types.d.ts +32 -0
  465. package/dist/components/overlays/DropdownMenu/index.d.ts +2 -0
  466. package/dist/components/overlays/Modal/Modal.d.ts +2 -0
  467. package/dist/components/overlays/Modal/Modal.types.d.ts +12 -0
  468. package/dist/components/overlays/Modal/index.d.ts +2 -0
  469. package/dist/components/overlays/Popconfirm/Popconfirm.d.ts +2 -0
  470. package/dist/components/overlays/Popconfirm/Popconfirm.types.d.ts +18 -0
  471. package/dist/components/overlays/Popconfirm/index.d.ts +2 -0
  472. package/dist/components/overlays/Tooltip/Tooltip.d.ts +2 -0
  473. package/dist/components/overlays/Tooltip/Tooltip.types.d.ts +9 -0
  474. package/dist/components/overlays/Tooltip/index.d.ts +2 -0
  475. package/dist/components/overlays/index.d.ts +10 -0
  476. package/dist/components/primitives/Popover/Popover.d.ts +2 -0
  477. package/dist/components/primitives/Popover/Popover.types.d.ts +14 -0
  478. package/dist/components/primitives/Popover/index.d.ts +2 -0
  479. package/dist/components/primitives/Portal/Portal.d.ts +2 -0
  480. package/dist/components/primitives/Portal/Portal.types.d.ts +5 -0
  481. package/dist/components/primitives/Portal/index.d.ts +2 -0
  482. package/dist/components/primitives/index.d.ts +4 -0
  483. package/dist/components/typography/Code/Code.d.ts +2 -0
  484. package/dist/components/typography/Code/Code.types.d.ts +7 -0
  485. package/dist/components/typography/Code/index.d.ts +2 -0
  486. package/dist/components/typography/Heading/Heading.d.ts +281 -0
  487. package/dist/components/typography/Heading/Heading.types.d.ts +9 -0
  488. package/dist/components/typography/Heading/index.d.ts +2 -0
  489. package/dist/components/typography/Kbd/Kbd.d.ts +2 -0
  490. package/dist/components/typography/Kbd/Kbd.types.d.ts +6 -0
  491. package/dist/components/typography/Kbd/index.d.ts +2 -0
  492. package/dist/components/typography/Link/Link.d.ts +2 -0
  493. package/dist/components/typography/Link/Link.types.d.ts +15 -0
  494. package/dist/components/typography/Link/index.d.ts +2 -0
  495. package/dist/components/typography/List/List.d.ts +4 -0
  496. package/dist/components/typography/List/List.types.d.ts +8 -0
  497. package/dist/components/typography/List/index.d.ts +2 -0
  498. package/dist/components/typography/SubText/SubText.d.ts +2 -0
  499. package/dist/components/typography/SubText/SubText.types.d.ts +9 -0
  500. package/dist/components/typography/SubText/index.d.ts +2 -0
  501. package/dist/components/typography/Text/Text.d.ts +2 -0
  502. package/dist/components/typography/Text/Text.types.d.ts +16 -0
  503. package/dist/components/typography/Text/index.d.ts +2 -0
  504. package/dist/components/typography/index.d.ts +14 -0
  505. package/dist/controls.cjs +2 -0
  506. package/dist/controls.d.ts +3 -0
  507. package/dist/controls.js +6 -0
  508. package/dist/creditCards-CUM63Oia.cjs +2 -0
  509. package/dist/creditCards-CUM63Oia.cjs.map +1 -0
  510. package/dist/creditCards-pLOxJ6gs.js +129 -0
  511. package/dist/creditCards-pLOxJ6gs.js.map +1 -0
  512. package/dist/data.cjs +2 -0
  513. package/dist/data.d.ts +3 -0
  514. package/dist/data.js +16 -0
  515. package/dist/dateUtils-D3rghkxq.js +67 -0
  516. package/dist/dateUtils-D3rghkxq.js.map +1 -0
  517. package/dist/dateUtils-a8oMntCI.cjs +2 -0
  518. package/dist/dateUtils-a8oMntCI.cjs.map +1 -0
  519. package/dist/display.cjs +2 -0
  520. package/dist/display.d.ts +3 -0
  521. package/dist/display.js +6 -0
  522. package/dist/dropdowns.cjs +2 -0
  523. package/dist/dropdowns.d.ts +3 -0
  524. package/dist/dropdowns.js +4 -0
  525. package/dist/feedback.cjs +2 -0
  526. package/dist/feedback.d.ts +3 -0
  527. package/dist/feedback.js +6 -0
  528. package/dist/form.cjs +2 -0
  529. package/dist/form.d.ts +3 -0
  530. package/dist/form.js +3 -0
  531. package/dist/formatters-C3tjM3rj.cjs +2 -0
  532. package/dist/formatters-C3tjM3rj.cjs.map +1 -0
  533. package/dist/formatters-CtZdwLSU.js +89 -0
  534. package/dist/formatters-CtZdwLSU.js.map +1 -0
  535. package/dist/i18n/I18nProvider.d.ts +18 -0
  536. package/dist/i18n/index.d.ts +2 -0
  537. package/dist/i18n.cjs +2 -0
  538. package/dist/i18n.d.ts +2 -0
  539. package/dist/i18n.entry.d.ts +1 -0
  540. package/dist/i18n.js +3 -0
  541. package/dist/icons/Icon.d.ts +2 -0
  542. package/dist/icons/Icon.types.d.ts +8 -0
  543. package/dist/icons/glyphs/AmericanExpressIcon.d.ts +3 -0
  544. package/dist/icons/glyphs/ArrowDownIcon.d.ts +2 -0
  545. package/dist/icons/glyphs/ArrowLeftIcon.d.ts +2 -0
  546. package/dist/icons/glyphs/ArrowRightIcon.d.ts +2 -0
  547. package/dist/icons/glyphs/ArrowUpDownIcon.d.ts +2 -0
  548. package/dist/icons/glyphs/ArrowUpIcon.d.ts +2 -0
  549. package/dist/icons/glyphs/BankIcon.d.ts +2 -0
  550. package/dist/icons/glyphs/BellIcon.d.ts +2 -0
  551. package/dist/icons/glyphs/BoltIcon.d.ts +2 -0
  552. package/dist/icons/glyphs/BoxIcon.d.ts +2 -0
  553. package/dist/icons/glyphs/BrandIcons.d.ts +21 -0
  554. package/dist/icons/glyphs/BrandMoreIcons.d.ts +27 -0
  555. package/dist/icons/glyphs/BugIcon.d.ts +2 -0
  556. package/dist/icons/glyphs/BuildingIcon.d.ts +2 -0
  557. package/dist/icons/glyphs/CalendarIcon.d.ts +2 -0
  558. package/dist/icons/glyphs/CameraIcon.d.ts +2 -0
  559. package/dist/icons/glyphs/CartIcon.d.ts +2 -0
  560. package/dist/icons/glyphs/ChartIcon.d.ts +2 -0
  561. package/dist/icons/glyphs/ChatIcon.d.ts +2 -0
  562. package/dist/icons/glyphs/ChatsIcon.d.ts +2 -0
  563. package/dist/icons/glyphs/CheckCircleIcon.d.ts +2 -0
  564. package/dist/icons/glyphs/CheckIcon.d.ts +2 -0
  565. package/dist/icons/glyphs/ChevronDownIcon.d.ts +2 -0
  566. package/dist/icons/glyphs/ChevronLeftIcon.d.ts +2 -0
  567. package/dist/icons/glyphs/ChevronRightIcon.d.ts +2 -0
  568. package/dist/icons/glyphs/ChevronUpIcon.d.ts +2 -0
  569. package/dist/icons/glyphs/ClickIcon.d.ts +2 -0
  570. package/dist/icons/glyphs/ClipboardIcon.d.ts +2 -0
  571. package/dist/icons/glyphs/ClockIcon.d.ts +2 -0
  572. package/dist/icons/glyphs/CloseIcon.d.ts +2 -0
  573. package/dist/icons/glyphs/CommentIcon.d.ts +2 -0
  574. package/dist/icons/glyphs/CopyIcon.d.ts +2 -0
  575. package/dist/icons/glyphs/CopyrightIcon.d.ts +2 -0
  576. package/dist/icons/glyphs/CreditCardIcon.d.ts +2 -0
  577. package/dist/icons/glyphs/CubeIcon.d.ts +2 -0
  578. package/dist/icons/glyphs/DashboardIcon.d.ts +2 -0
  579. package/dist/icons/glyphs/DatabaseIcon.d.ts +2 -0
  580. package/dist/icons/glyphs/DeviceMonitorIcon.d.ts +2 -0
  581. package/dist/icons/glyphs/DevicePhoneIcon.d.ts +2 -0
  582. package/dist/icons/glyphs/DeviceTabletIcon.d.ts +2 -0
  583. package/dist/icons/glyphs/DocCopyIcon.d.ts +2 -0
  584. package/dist/icons/glyphs/DocIcon.d.ts +2 -0
  585. package/dist/icons/glyphs/DocPlusIcon.d.ts +2 -0
  586. package/dist/icons/glyphs/DollarIcon.d.ts +2 -0
  587. package/dist/icons/glyphs/DownloadIcon.d.ts +2 -0
  588. package/dist/icons/glyphs/EditIcon.d.ts +2 -0
  589. package/dist/icons/glyphs/EllipsisVerticalIcon.d.ts +2 -0
  590. package/dist/icons/glyphs/ErrorIcon.d.ts +2 -0
  591. package/dist/icons/glyphs/EuroIcon.d.ts +2 -0
  592. package/dist/icons/glyphs/ExternalLinkIcon.d.ts +2 -0
  593. package/dist/icons/glyphs/EyeIcon.d.ts +2 -0
  594. package/dist/icons/glyphs/EyeOffIcon.d.ts +2 -0
  595. package/dist/icons/glyphs/FileArchiveIcon.d.ts +2 -0
  596. package/dist/icons/glyphs/FileCodeIcon.d.ts +2 -0
  597. package/dist/icons/glyphs/FileExtIcons.d.ts +27 -0
  598. package/dist/icons/glyphs/FileIcon.d.ts +2 -0
  599. package/dist/icons/glyphs/FileImageIcon.d.ts +2 -0
  600. package/dist/icons/glyphs/FilePdfIcon.d.ts +2 -0
  601. package/dist/icons/glyphs/FileTextIcon.d.ts +2 -0
  602. package/dist/icons/glyphs/FileVideoIcon.d.ts +2 -0
  603. package/dist/icons/glyphs/FilterIcon.d.ts +2 -0
  604. package/dist/icons/glyphs/FlagArIcon.d.ts +2 -0
  605. package/dist/icons/glyphs/FlagBrIcon.d.ts +2 -0
  606. package/dist/icons/glyphs/FlagCaIcon.d.ts +2 -0
  607. package/dist/icons/glyphs/FlagCnIcon.d.ts +2 -0
  608. package/dist/icons/glyphs/FlagCzIcon.d.ts +2 -0
  609. package/dist/icons/glyphs/FlagDeIcon.d.ts +2 -0
  610. package/dist/icons/glyphs/FlagEsIcon.d.ts +2 -0
  611. package/dist/icons/glyphs/FlagFrIcon.d.ts +2 -0
  612. package/dist/icons/glyphs/FlagGbIcon.d.ts +2 -0
  613. package/dist/icons/glyphs/FlagInIcon.d.ts +2 -0
  614. package/dist/icons/glyphs/FlagItIcon.d.ts +2 -0
  615. package/dist/icons/glyphs/FlagJpIcon.d.ts +2 -0
  616. package/dist/icons/glyphs/FlagMxIcon.d.ts +2 -0
  617. package/dist/icons/glyphs/FlagPlIcon.d.ts +2 -0
  618. package/dist/icons/glyphs/FlagRuIcon.d.ts +2 -0
  619. package/dist/icons/glyphs/FlagSkIcon.d.ts +2 -0
  620. package/dist/icons/glyphs/FlagUaIcon.d.ts +2 -0
  621. package/dist/icons/glyphs/FlagUsIcon.d.ts +2 -0
  622. package/dist/icons/glyphs/FolderIcon.d.ts +2 -0
  623. package/dist/icons/glyphs/FolderOpenIcon.d.ts +2 -0
  624. package/dist/icons/glyphs/FolderPlusIcon.d.ts +2 -0
  625. package/dist/icons/glyphs/FormIcon.d.ts +2 -0
  626. package/dist/icons/glyphs/GalleryIcon.d.ts +2 -0
  627. package/dist/icons/glyphs/GlobeIcon.d.ts +2 -0
  628. package/dist/icons/glyphs/GroupIcon.d.ts +2 -0
  629. package/dist/icons/glyphs/HeartFillIcon.d.ts +2 -0
  630. package/dist/icons/glyphs/HeartIcon.d.ts +2 -0
  631. package/dist/icons/glyphs/HelpIcon.d.ts +2 -0
  632. package/dist/icons/glyphs/HomeIcon.d.ts +2 -0
  633. package/dist/icons/glyphs/IdCardIcon.d.ts +2 -0
  634. package/dist/icons/glyphs/ImageIcon.d.ts +2 -0
  635. package/dist/icons/glyphs/InfoIcon.d.ts +2 -0
  636. package/dist/icons/glyphs/KanbanIcon.d.ts +2 -0
  637. package/dist/icons/glyphs/LayoutIcon.d.ts +2 -0
  638. package/dist/icons/glyphs/LightbulbIcon.d.ts +2 -0
  639. package/dist/icons/glyphs/LinkIcon.d.ts +2 -0
  640. package/dist/icons/glyphs/LockIcon.d.ts +2 -0
  641. package/dist/icons/glyphs/LockOpenIcon.d.ts +2 -0
  642. package/dist/icons/glyphs/MagicIcon.d.ts +2 -0
  643. package/dist/icons/glyphs/MailIcon.d.ts +2 -0
  644. package/dist/icons/glyphs/MailOpenIcon.d.ts +2 -0
  645. package/dist/icons/glyphs/MenuIcon.d.ts +2 -0
  646. package/dist/icons/glyphs/MinusIcon.d.ts +2 -0
  647. package/dist/icons/glyphs/MoonIcon.d.ts +2 -0
  648. package/dist/icons/glyphs/MoreIcon.d.ts +3 -0
  649. package/dist/icons/glyphs/NeutralIcon.d.ts +2 -0
  650. package/dist/icons/glyphs/PaletteIcon.d.ts +2 -0
  651. package/dist/icons/glyphs/PhoneIcon.d.ts +2 -0
  652. package/dist/icons/glyphs/PinIcon.d.ts +2 -0
  653. package/dist/icons/glyphs/PlusIcon.d.ts +2 -0
  654. package/dist/icons/glyphs/ProtectIcon.d.ts +2 -0
  655. package/dist/icons/glyphs/PuzzleIcon.d.ts +2 -0
  656. package/dist/icons/glyphs/RefreshIcon.d.ts +2 -0
  657. package/dist/icons/glyphs/SearchIcon.d.ts +2 -0
  658. package/dist/icons/glyphs/SendIcon.d.ts +2 -0
  659. package/dist/icons/glyphs/SettingsIcon.d.ts +2 -0
  660. package/dist/icons/glyphs/SidebarIcon.d.ts +2 -0
  661. package/dist/icons/glyphs/Signal1Icon.d.ts +2 -0
  662. package/dist/icons/glyphs/Signal2Icon.d.ts +2 -0
  663. package/dist/icons/glyphs/Signal3Icon.d.ts +2 -0
  664. package/dist/icons/glyphs/Signal4Icon.d.ts +2 -0
  665. package/dist/icons/glyphs/SlidersIcon.d.ts +2 -0
  666. package/dist/icons/glyphs/SortIcon.d.ts +2 -0
  667. package/dist/icons/glyphs/StarFillIcon.d.ts +2 -0
  668. package/dist/icons/glyphs/StarIcon.d.ts +2 -0
  669. package/dist/icons/glyphs/SuccessIcon.d.ts +2 -0
  670. package/dist/icons/glyphs/SunIcon.d.ts +2 -0
  671. package/dist/icons/glyphs/TagIcon.d.ts +2 -0
  672. package/dist/icons/glyphs/TeamIcon.d.ts +2 -0
  673. package/dist/icons/glyphs/TerminalIcon.d.ts +2 -0
  674. package/dist/icons/glyphs/TranslateIcon.d.ts +2 -0
  675. package/dist/icons/glyphs/TrashIcon.d.ts +2 -0
  676. package/dist/icons/glyphs/UploadIcon.d.ts +2 -0
  677. package/dist/icons/glyphs/UserIcon.d.ts +2 -0
  678. package/dist/icons/glyphs/UsersIcon.d.ts +2 -0
  679. package/dist/icons/glyphs/WarningIcon.d.ts +2 -0
  680. package/dist/icons/glyphs/WindowIcon.d.ts +2 -0
  681. package/dist/icons/glyphs/ZoomInIcon.d.ts +2 -0
  682. package/dist/icons/glyphs/ZoomOutIcon.d.ts +2 -0
  683. package/dist/icons/glyphs/fileMark.d.ts +9 -0
  684. package/dist/icons/index.d.ts +142 -0
  685. package/dist/icons.cjs +2 -0
  686. package/dist/icons.d.ts +2 -0
  687. package/dist/icons.entry.d.ts +3 -0
  688. package/dist/icons.js +20 -0
  689. package/dist/index.cjs +2 -4
  690. package/dist/index.d.ts +183 -3062
  691. package/dist/index.js +63 -8896
  692. package/dist/inputs.cjs +2 -0
  693. package/dist/inputs.d.ts +3 -0
  694. package/dist/inputs.js +6 -0
  695. package/dist/layout.cjs +2 -0
  696. package/dist/layout.d.ts +3 -0
  697. package/dist/layout.js +9 -0
  698. package/dist/layoutProps-CY4cnDrW.js +29 -0
  699. package/dist/layoutProps-CY4cnDrW.js.map +1 -0
  700. package/dist/layoutProps-Dw_ZW6ot.cjs +2 -0
  701. package/dist/layoutProps-Dw_ZW6ot.cjs.map +1 -0
  702. package/dist/locale-C_PRdyIv.cjs +2 -0
  703. package/dist/locale-C_PRdyIv.cjs.map +1 -0
  704. package/dist/locale-DofwII5P.js +58 -0
  705. package/dist/locale-DofwII5P.js.map +1 -0
  706. package/dist/media.cjs +2 -0
  707. package/dist/media.d.ts +3 -0
  708. package/dist/media.js +7 -0
  709. package/dist/overlays.cjs +2 -0
  710. package/dist/overlays.d.ts +3 -0
  711. package/dist/overlays.js +8 -0
  712. package/dist/primitives.cjs +2 -0
  713. package/dist/primitives.d.ts +3 -0
  714. package/dist/primitives.js +4 -0
  715. package/dist/style-runtime.cjs +2 -0
  716. package/dist/style-runtime.js +2 -0
  717. package/dist/styles.css +1 -1
  718. package/dist/theme/ThemeProvider.d.ts +20 -0
  719. package/dist/theme/index.d.ts +3 -0
  720. package/dist/theme/types.d.ts +50 -0
  721. package/dist/theme.cjs +2 -0
  722. package/dist/theme.d.ts +2 -0
  723. package/dist/theme.entry.d.ts +1 -0
  724. package/dist/theme.js +3 -0
  725. package/dist/typography.cjs +2 -0
  726. package/dist/typography.d.ts +3 -0
  727. package/dist/typography.js +6 -0
  728. package/dist/useClickOutside-CS-Mc6ne.cjs +2 -0
  729. package/dist/useClickOutside-CS-Mc6ne.cjs.map +1 -0
  730. package/dist/useClickOutside-Dcye4Ut0.js +16 -0
  731. package/dist/useClickOutside-Dcye4Ut0.js.map +1 -0
  732. package/dist/useDebounce-C3jbJOKC.cjs +2 -0
  733. package/dist/useDebounce-C3jbJOKC.cjs.map +1 -0
  734. package/dist/useDebounce-D-v3IRXp.js +21 -0
  735. package/dist/useDebounce-D-v3IRXp.js.map +1 -0
  736. package/dist/useFormField-Bz4d7m8u.cjs +2 -0
  737. package/dist/useFormField-Bz4d7m8u.cjs.map +1 -0
  738. package/dist/useFormField-jOnRqGD2.js +166 -0
  739. package/dist/useFormField-jOnRqGD2.js.map +1 -0
  740. package/dist/useGhostText-BNcH5o9H.js +51 -0
  741. package/dist/useGhostText-BNcH5o9H.js.map +1 -0
  742. package/dist/useGhostText-CoYhBGCg.cjs +2 -0
  743. package/dist/useGhostText-CoYhBGCg.cjs.map +1 -0
  744. package/dist/useInteractionEffect-B5_UpgTt.js +40 -0
  745. package/dist/useInteractionEffect-B5_UpgTt.js.map +1 -0
  746. package/dist/useInteractionEffect-BaJeiUns.cjs +2 -0
  747. package/dist/useInteractionEffect-BaJeiUns.cjs.map +1 -0
  748. package/dist/useKeyboardNav-CmUKtJag.js +43 -0
  749. package/dist/useKeyboardNav-CmUKtJag.js.map +1 -0
  750. package/dist/useKeyboardNav-DJtFz7Fx.cjs +2 -0
  751. package/dist/useKeyboardNav-DJtFz7Fx.cjs.map +1 -0
  752. package/dist/useReveal-Fg-i8hhZ.js +23 -0
  753. package/dist/useReveal-Fg-i8hhZ.js.map +1 -0
  754. package/dist/useReveal-p1cSTlUT.cjs +2 -0
  755. package/dist/useReveal-p1cSTlUT.cjs.map +1 -0
  756. package/dist/utils/appearanceProps.d.ts +6 -0
  757. package/dist/utils/cn.d.ts +1 -0
  758. package/dist/utils/creditCards.d.ts +16 -0
  759. package/dist/utils/dateUtils.d.ts +17 -0
  760. package/dist/utils/formatters.d.ts +21 -0
  761. package/dist/utils/layoutProps.d.ts +25 -0
  762. package/dist/utils/locale.d.ts +13 -0
  763. package/dist/utils/postalCodes.d.ts +21 -0
  764. package/dist/utils/relativeTime.d.ts +16 -0
  765. package/dist/utils/useClickOutside.d.ts +2 -0
  766. package/dist/utils/useControllableString.d.ts +7 -0
  767. package/dist/utils/useDebounce.d.ts +2 -0
  768. package/dist/utils/useGhostText.d.ts +28 -0
  769. package/dist/utils/useInteractionEffect.d.ts +15 -0
  770. package/dist/utils/useKeyboardNav.d.ts +14 -0
  771. package/dist/utils/useReveal.d.ts +2 -0
  772. package/dist/utils/validators.d.ts +19 -0
  773. package/dist/utils.cjs +2 -0
  774. package/dist/utils.d.ts +2 -0
  775. package/dist/utils.entry.d.ts +20 -0
  776. package/dist/utils.js +13 -0
  777. package/dist/validators-B7cSTrU_.cjs +2 -0
  778. package/dist/validators-B7cSTrU_.cjs.map +1 -0
  779. package/dist/validators-Y1nYXhNR.js +378 -0
  780. package/dist/validators-Y1nYXhNR.js.map +1 -0
  781. package/package.json +226 -1
  782. package/dist/index.cjs.map +0 -1
  783. package/dist/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon-B-s6VJr5.cjs","names":[],"sources":["../src/icons/Icon.tsx"],"sourcesContent":["import {forwardRef} from 'react'\nimport type {IconProps} from './Icon.types'\n\nconst sizeMap = {\n sm: '1rem',\n md: '1.25rem',\n lg: '1.5rem',\n} as const\n\nconst colorMap = {\n primary: 'var(--mineral-primary)',\n neutral: 'var(--mineral-neutral)',\n success: 'var(--mineral-success)',\n error: 'var(--mineral-error)',\n warning: 'var(--mineral-warning)',\n info: 'var(--mineral-info)',\n danger: 'var(--mineral-danger)',\n inherit: 'inherit',\n} as const\n\n// Shared icon wrapper keeps stroke and sizing consistent across the set.\nexport const Icon = forwardRef<SVGSVGElement, IconProps>(function Icon(\n {\n size = '1.1em',\n color = 'inherit',\n title,\n children,\n viewBox = '0 0 24 24',\n fill = 'none',\n stroke = 'currentColor',\n strokeWidth = 1.8,\n strokeLinecap = 'round',\n strokeLinejoin = 'round',\n style,\n ...rest\n },\n ref\n) {\n const iconSize = Object.prototype.hasOwnProperty.call(sizeMap, size)\n ? sizeMap[size as keyof typeof sizeMap]\n : size\n const iconColor = colorMap[color]\n\n return (\n <svg\n ref={ref}\n width={iconSize}\n height={iconSize}\n viewBox={viewBox}\n fill={fill}\n stroke={stroke}\n strokeWidth={strokeWidth}\n strokeLinecap={strokeLinecap}\n strokeLinejoin={strokeLinejoin}\n aria-hidden={title ? undefined : true}\n focusable=\"false\"\n style={{\n display: 'inline-block',\n flexShrink: 0,\n verticalAlign: '-0.150em',\n ...style,\n color: iconColor ?? style?.color,\n }}\n {...rest}\n >\n {title ? <title>{title}</title> : null}\n {children}\n </svg>\n )\n})\n"],"mappings":"sDAGA,IAAM,EAAU,CACZ,GAAI,OACJ,GAAI,UACJ,GAAI,SACP,CAEK,EAAW,CACb,QAAS,yBACT,QAAS,yBACT,QAAS,yBACT,MAAO,uBACP,QAAS,yBACT,KAAM,sBACN,OAAQ,wBACR,QAAS,UACZ,CAGY,GAAA,EAAA,EAAA,YAA4C,SACrD,CACI,OAAO,QACP,QAAQ,UACR,QACA,WACA,UAAU,YACV,OAAO,OACP,SAAS,eACT,cAAc,IACd,gBAAgB,QAChB,iBAAiB,QACjB,QACA,GAAG,GAEP,EACF,CACE,IAAM,EAAW,OAAO,UAAU,eAAe,KAAK,EAAS,EAAK,CAC9D,EAAQ,GACR,EACA,EAAY,EAAS,GAE3B,OACI,EAAA,EAAA,MAAC,MAAD,CACS,MACL,MAAO,EACP,OAAQ,EACC,UACH,OACE,SACK,cACE,gBACC,iBAChB,cAAa,EAAQ,IAAA,GAAY,GACjC,UAAU,QACV,MAAO,CACH,QAAS,eACT,WAAY,EACZ,cAAe,WACf,GAAG,EACH,MAAO,GAAa,GAAO,MAC9B,CACD,GAAI,WAnBR,CAqBK,GAAQ,EAAA,EAAA,KAAC,QAAD,CAAA,SAAQ,EAAc,CAAA,CAAG,KACjC,EACC,IAEZ"}
@@ -0,0 +1,45 @@
1
+ import { forwardRef as e } from "react";
2
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
+ //#region src/icons/Icon.tsx
4
+ var r = {
5
+ sm: "1rem",
6
+ md: "1.25rem",
7
+ lg: "1.5rem"
8
+ }, i = {
9
+ primary: "var(--mineral-primary)",
10
+ neutral: "var(--mineral-neutral)",
11
+ success: "var(--mineral-success)",
12
+ error: "var(--mineral-error)",
13
+ warning: "var(--mineral-warning)",
14
+ info: "var(--mineral-info)",
15
+ danger: "var(--mineral-danger)",
16
+ inherit: "inherit"
17
+ }, a = e(function({ size: e = "1.1em", color: a = "inherit", title: o, children: s, viewBox: c = "0 0 24 24", fill: l = "none", stroke: u = "currentColor", strokeWidth: d = 1.8, strokeLinecap: f = "round", strokeLinejoin: p = "round", style: m, ...h }, g) {
18
+ let _ = Object.prototype.hasOwnProperty.call(r, e) ? r[e] : e, v = i[a];
19
+ return /* @__PURE__ */ n("svg", {
20
+ ref: g,
21
+ width: _,
22
+ height: _,
23
+ viewBox: c,
24
+ fill: l,
25
+ stroke: u,
26
+ strokeWidth: d,
27
+ strokeLinecap: f,
28
+ strokeLinejoin: p,
29
+ "aria-hidden": o ? void 0 : !0,
30
+ focusable: "false",
31
+ style: {
32
+ display: "inline-block",
33
+ flexShrink: 0,
34
+ verticalAlign: "-0.150em",
35
+ ...m,
36
+ color: v ?? m?.color
37
+ },
38
+ ...h,
39
+ children: [o ? /* @__PURE__ */ t("title", { children: o }) : null, s]
40
+ });
41
+ });
42
+ //#endregion
43
+ export { a as t };
44
+
45
+ //# sourceMappingURL=Icon-B848Vysm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon-B848Vysm.js","names":[],"sources":["../src/icons/Icon.tsx"],"sourcesContent":["import {forwardRef} from 'react'\nimport type {IconProps} from './Icon.types'\n\nconst sizeMap = {\n sm: '1rem',\n md: '1.25rem',\n lg: '1.5rem',\n} as const\n\nconst colorMap = {\n primary: 'var(--mineral-primary)',\n neutral: 'var(--mineral-neutral)',\n success: 'var(--mineral-success)',\n error: 'var(--mineral-error)',\n warning: 'var(--mineral-warning)',\n info: 'var(--mineral-info)',\n danger: 'var(--mineral-danger)',\n inherit: 'inherit',\n} as const\n\n// Shared icon wrapper keeps stroke and sizing consistent across the set.\nexport const Icon = forwardRef<SVGSVGElement, IconProps>(function Icon(\n {\n size = '1.1em',\n color = 'inherit',\n title,\n children,\n viewBox = '0 0 24 24',\n fill = 'none',\n stroke = 'currentColor',\n strokeWidth = 1.8,\n strokeLinecap = 'round',\n strokeLinejoin = 'round',\n style,\n ...rest\n },\n ref\n) {\n const iconSize = Object.prototype.hasOwnProperty.call(sizeMap, size)\n ? sizeMap[size as keyof typeof sizeMap]\n : size\n const iconColor = colorMap[color]\n\n return (\n <svg\n ref={ref}\n width={iconSize}\n height={iconSize}\n viewBox={viewBox}\n fill={fill}\n stroke={stroke}\n strokeWidth={strokeWidth}\n strokeLinecap={strokeLinecap}\n strokeLinejoin={strokeLinejoin}\n aria-hidden={title ? undefined : true}\n focusable=\"false\"\n style={{\n display: 'inline-block',\n flexShrink: 0,\n verticalAlign: '-0.150em',\n ...style,\n color: iconColor ?? style?.color,\n }}\n {...rest}\n >\n {title ? <title>{title}</title> : null}\n {children}\n </svg>\n )\n})\n"],"mappings":";;;AAGA,IAAM,IAAU;CACZ,IAAI;CACJ,IAAI;CACJ,IAAI;CACP,EAEK,IAAW;CACb,SAAS;CACT,SAAS;CACT,SAAS;CACT,OAAO;CACP,SAAS;CACT,MAAM;CACN,QAAQ;CACR,SAAS;CACZ,EAGY,IAAO,EAAqC,SACrD,EACI,UAAO,SACP,WAAQ,WACR,UACA,aACA,aAAU,aACV,UAAO,QACP,YAAS,gBACT,iBAAc,KACd,mBAAgB,SAChB,oBAAiB,SACjB,UACA,GAAG,KAEP,GACF;CACE,IAAM,IAAW,OAAO,UAAU,eAAe,KAAK,GAAS,EAAK,GAC9D,EAAQ,KACR,GACA,IAAY,EAAS;AAE3B,QACI,kBAAC,OAAD;EACS;EACL,OAAO;EACP,QAAQ;EACC;EACH;EACE;EACK;EACE;EACC;EAChB,eAAa,IAAQ,KAAA,IAAY;EACjC,WAAU;EACV,OAAO;GACH,SAAS;GACT,YAAY;GACZ,eAAe;GACf,GAAG;GACH,OAAO,KAAa,GAAO;GAC9B;EACD,GAAI;YAnBR,CAqBK,IAAQ,kBAAC,SAAD,EAAA,UAAQ,GAAc,CAAA,GAAG,MACjC,EACC;;EAEZ"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./CloseIcon-5btDsUxB.cjs`),t=require(`./ZoomInIcon-CtoKX0Ri.cjs`),n=require(`./ChevronDownIcon-CkT_O5e5.cjs`),r=require(`./PhoneIcon-CPGZ1D2-.cjs`),i=require(`./FileExtIcons-FTFddWmg.cjs`),a=require(`./cn-BOmEz3Rt.cjs`),o=require(`./validators-B7cSTrU_.cjs`),s=require(`./creditCards-CUM63Oia.cjs`),c=require(`./formatters-C3tjM3rj.cjs`),l=require(`./useInteractionEffect-BaJeiUns.cjs`),u=require(`./useGhostText-CoYhBGCg.cjs`),d=require(`./appearanceProps-65LbXIeI.cjs`),f=require(`./Checkbox-BXetIDRT.cjs`),p=require(`./Slider-BgHTWUXS.cjs`),m=require(`./InputSearch-Bk5YFz09.cjs`);let h=require(`react`),g=require(`react/jsx-runtime`);var _=(0,h.forwardRef)(function({value:e,defaultValue:t,name:n,id:r,placeholder:i,disabled:o=!1,readOnly:s=!1,required:c=!1,autoFocus:l=!1,rows:f=3,autoResize:p=!1,minRows:_,maxRows:v,variant:y=`outlined`,size:b=`md`,color:x,fcolor:S,fullWidth:C=!1,label:w,helperText:T,errorText:E,error:D=!1,success:O=!1,maxLength:k,showCharCount:A=!1,ghostOptions:j,ghostMinChars:M=2,onGhostAccept:N,loading:P=!1,onChange:F,onFocus:I,onBlur:L,className:R,style:z,textareaClassName:B,labelClassName:V},H){let[U,W]=(0,h.useState)(!1),G=(0,h.useRef)(null),{currentValue:K,setCurrentValue:q}=m.r(e,t),J=u.t({options:j??[],value:K,minChars:M}),Y=D||!!E,X=H??G,Z=(0,h.useCallback)(()=>{let e=typeof X==`function`?null:X?.current;if(!e||!p)return;e.style.height=`auto`;let t=parseFloat(getComputedStyle(e).lineHeight)||20,n=_?_*t:0,r=v?v*t:1/0,i=Math.min(Math.max(e.scrollHeight,n),r);e.style.height=`${i}px`,e.style.overflowY=e.scrollHeight>i?`auto`:`hidden`},[p,_,v,X]);(0,h.useEffect)(()=>{Z()},[K,Z]);let ee=(0,h.useCallback)(e=>{W(!0),I?.(e)},[I]),Q=(0,h.useCallback)(e=>{W(!1),L?.(e)},[L]),$=(0,h.useCallback)(e=>{q(e.target.value),F?.(e),J.reset()},[F,q,J.reset]),te=(0,h.useCallback)(e=>{if(j&&J.hint&&J.onKeyDown(e)){let e=J.accept();q(e.value),N?.(e.value);let t=typeof X==`function`?null:X?.current;t&&((Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype,`value`)?.set)?.call(t,e.value),t.dispatchEvent(new Event(`input`,{bubbles:!0})));return}},[j,J,q,N,X]),ne=a.t(`container`,y,b,U&&`focused`,Y&&`error`,O&&!Y&&`success`,x===`neutral`&&`color-neutral`,x===`success`&&`color-success`,x===`error`&&`color-error`,x===`warning`&&`color-warning`,x===`info`&&`color-info`,o&&`disabled`);return(0,g.jsxs)(`div`,{className:a.t(`textarea`,...d.t({fcolor:S}),C&&`full-width`,R),style:z,children:[w&&(0,g.jsx)(`label`,{htmlFor:r,className:a.t(`label`,U&&`focused`,Y&&`error`,O&&!Y&&`success`,c&&`required`,V),children:w}),(0,g.jsxs)(`div`,{className:ne,children:[j?(0,g.jsxs)(`div`,{className:`ghost-text-field ghost-text-field-multi`,children:[(0,g.jsx)(`textarea`,{ref:X,name:n,id:r,placeholder:i,disabled:o,readOnly:s,required:c,autoFocus:l,rows:p?_??f:f,maxLength:k,value:K,className:a.t(`field`,B),onChange:$,onFocus:ee,onBlur:Q,onKeyDown:te,"aria-invalid":Y||void 0,"aria-describedby":E?`${r}-error`:T?`${r}-helper`:void 0}),U&&J.hint&&(0,g.jsxs)(`span`,{className:`ghost-text-overlay`,"aria-hidden":`true`,children:[(0,g.jsx)(`span`,{className:`ghost-text-typed`,children:K}),(0,g.jsx)(`span`,{className:`ghost-text-hint`,children:J.hint})]})]}):(0,g.jsx)(`textarea`,{ref:X,name:n,id:r,placeholder:i,disabled:o,readOnly:s,required:c,autoFocus:l,rows:p?_??f:f,maxLength:k,value:K,className:a.t(`field`,B),onChange:$,onFocus:ee,onBlur:Q,"aria-invalid":Y||void 0,"aria-describedby":E?`${r}-error`:T?`${r}-helper`:void 0}),P&&(0,g.jsx)(`span`,{className:`spinner`})]}),(E||T||A)&&(0,g.jsxs)(`div`,{className:`bottom-row`,children:[(0,g.jsxs)(`span`,{children:[E&&(0,g.jsx)(`span`,{id:r?`${r}-error`:void 0,className:`error-text`,role:`alert`,children:E}),!E&&T&&(0,g.jsx)(`span`,{id:r?`${r}-helper`:void 0,className:`helper-text`,children:T})]}),A&&k&&(0,g.jsxs)(`span`,{className:a.t(`char-count`,K.length>k&&`over`),children:[K.length,`/`,k]})]})]})});function v(e){let t=0;return e.length>=8&&t++,e.length>=12&&t++,/[a-z]/.test(e)&&/[A-Z]/.test(e)&&t++,/\d/.test(e)&&t++,/[^a-zA-Z0-9]/.test(e)&&t++,t<=1?`weak`:t<=2?`fair`:t<=3?`good`:`strong`}var y={weak:`Weak`,fair:`Fair`,good:`Good`,strong:`Strong`},b=(0,h.forwardRef)(function({showToggle:e=!0,showStrength:t=!1,onStrengthChange:n,value:r,defaultValue:i,onChange:o,className:s,...c},l){let[u,d]=(0,h.useState)(!1),[f,p]=(0,h.useState)(i?.toString()??``),_=r===void 0?f:r.toString(),b=v(_);(0,h.useEffect)(()=>{n?.(b)},[b,n]);let x=(0,h.useCallback)(e=>{r===void 0&&p(e.target.value),o?.(e)},[o,r]),S=e?(0,g.jsx)(`button`,{type:`button`,className:`password toggle`,onClick:()=>d(e=>!e),tabIndex:-1,"aria-label":u?`Hide password`:`Show password`,children:u?`◠`:`◉`}):void 0;return(0,g.jsxs)(`div`,{className:a.t(`password input`,s),children:[(0,g.jsx)(m.n,{...c,ref:l,type:u?`text`:`password`,value:_,onChange:x,endIcon:S}),t&&_.length>0&&(0,g.jsxs)(`div`,{className:`password strength row`,children:[(0,g.jsx)(`div`,{className:`password strength bar`,children:[0,1,2,3].map(e=>(0,g.jsx)(`div`,{className:a.t(`password strength segment`,e<[`weak`,`fair`,`good`,`strong`].indexOf(b)+1&&`strength-${b}`)},e))}),(0,g.jsx)(`span`,{className:a.t(`password strength label`,`strength-${b}`),children:y[b]})]})]})});function x(e,t,n){return t!==void 0&&e<t?t:n!==void 0&&e>n?n:e}function S(e,t){let n=10**t;return Math.round(e*n)/n}var C=(0,h.forwardRef)(function({min:e,max:r,step:i=1,showStepper:o=!0,precision:s=0,allowNegative:c=!0,onValueChange:l,value:u,defaultValue:d,onChange:f,onKeyDown:p,onBlur:_,disabled:v=!1,className:y,...b},C){let[w,T]=(0,h.useState)(d?.toString()??``),E=u===void 0?w:u.toString(),D=(0,h.useRef)(null),O=(0,h.useCallback)(e=>{u===void 0&&T(e);let t=parseFloat(e);l?.(isNaN(t)?null:t)},[u,l]),k=(0,h.useCallback)(t=>{O(S(x((parseFloat(E)||0)+i*t,e,r),s).toString())},[E,i,e,r,s,O]),A=(0,h.useCallback)(e=>{k(e),D.current=setInterval(()=>k(e),150)},[k]),j=(0,h.useCallback)(()=>{D.current&&=(clearInterval(D.current),null)},[]);(0,h.useEffect)(()=>j,[j]);let M=(0,h.useCallback)(e=>{O(e.target.value.replace(c?/[^\d.,-]/g:/[^\d.,]/g,``)),f?.(e)},[f,c,O]),N=(0,h.useCallback)(t=>{let n=parseFloat(E);isNaN(n)||O(S(x(n,e,r),s).toString()),_?.(t)},[E,e,r,s,O,_]),P=(0,h.useCallback)(e=>{e.key===`ArrowUp`?(e.preventDefault(),k(1)):e.key===`ArrowDown`&&(e.preventDefault(),k(-1)),p?.(e)},[k,p]),F=o&&!v?(0,g.jsxs)(`div`,{className:`number stepper`,children:[(0,g.jsx)(`button`,{type:`button`,className:`number step button`,onMouseDown:()=>A(1),onMouseUp:j,onMouseLeave:j,tabIndex:-1,"aria-label":`Increment`,children:(0,g.jsx)(t.s,{})}),(0,g.jsx)(`button`,{type:`button`,className:`number step button`,onMouseDown:()=>A(-1),onMouseUp:j,onMouseLeave:j,tabIndex:-1,"aria-label":`Decrement`,children:(0,g.jsx)(n.t,{})})]}):void 0;return(0,g.jsx)(m.n,{...b,ref:C,type:`text`,inputMode:`decimal`,value:E,onChange:M,onBlur:N,onKeyDown:P,endIcon:F,disabled:v,className:a.t(`number input`,y)})}),w=(0,h.forwardRef)(function({validateOnBlur:e=!0,validateOnChange:n=!1,showValidIcon:i=!0,onValidationChange:a,value:s,defaultValue:c,onChange:l,onBlur:u,error:d,errorText:f,success:p,placeholder:_=`email@example.com`,...v},y){let[b,x]=(0,h.useState)(c?.toString()??``),[S,C]=(0,h.useState)({valid:!0}),[w,T]=(0,h.useState)(!1),E=s===void 0?b:s.toString(),D=(0,h.useCallback)(e=>{let t=o.n(e);return C(t),a?.(t),t},[a]),O=(0,h.useCallback)(e=>{s===void 0&&x(e.target.value),n&&w&&D(e.target.value),l?.(e)},[l,s,n,w,D]),k=(0,h.useCallback)(t=>{T(!0),e&&t.target.value&&D(t.target.value),u?.(t)},[u,e,D]),A=d||w&&!S.valid,j=f||(w&&!S.valid?S.error:void 0),M=!A&&p!==void 0?p:w&&S.valid&&E.length>0,N=i&&M?(0,g.jsx)(`span`,{style:{display:`inline-flex`,color:`var(--mineral-success)`},children:(0,g.jsx)(t.c,{})}):void 0;return(0,g.jsx)(m.n,{...v,ref:y,type:`email`,value:E,onChange:O,onBlur:k,error:A,errorText:j,success:M,placeholder:_,startIcon:(0,g.jsx)(r.n,{}),endIcon:N})}),T=(0,h.forwardRef)(function({countryCode:e=`PL`,showCountryCode:t=!0,formatOnChange:n=!0,validateOnBlur:i=!0,onValidationChange:s,onValueChange:l,value:u,defaultValue:d,onChange:f,onBlur:p,error:_,errorText:v,placeholder:y=`123 456 789`,className:b,...x},S){let[C,w]=(0,h.useState)(d?.toString()??``),[T,E]=(0,h.useState)({valid:!0}),[D,O]=(0,h.useState)(!1),k=u===void 0?C:u.toString(),A=(0,h.useCallback)(t=>{let r=c.l(t.target.value),i=n?c.o(r,{countryCode:e}):r;u===void 0&&w(i),l?.(r,i),f?.(t)},[f,u,n,e,l]),j=(0,h.useCallback)(t=>{if(O(!0),i&&k){let t=o.l(c.l(k),e);E(t),s?.(t)}p?.(t)},[p,i,k,e,s]),M=t?(0,g.jsx)(`span`,{className:`phone prefix`,children:{PL:`+48`,DE:`+49`,US:`+1`,GB:`+44`,FR:`+33`,CZ:`+420`,SK:`+421`}[e.toUpperCase()]??`+${e}`}):void 0,N=_||D&&!T.valid,P=v||(D&&!T.valid?T.error:void 0);return(0,g.jsx)(m.n,{...x,ref:S,type:`tel`,value:k,onChange:A,onBlur:j,error:N,errorText:P,placeholder:y,startIcon:t?M:(0,g.jsx)(r.t,{}),className:a.t(`phone input`,b)})}),E=(0,h.forwardRef)(function({autoCapitalize:e=!0,allowNumbers:n=!1,allowSpecialChars:r=!1,minWords:i,validateOnBlur:a=!0,onValidationChange:o,value:s,defaultValue:l,onChange:u,onBlur:d,error:f,errorText:p,placeholder:_=`Jan Kowalski`,...v},y){let[b,x]=(0,h.useState)(l?.toString()??``),[S,C]=(0,h.useState)({valid:!0}),[w,T]=(0,h.useState)(!1),E=s===void 0?b:s.toString(),D=(0,h.useCallback)(t=>{let i=t;return n||(i=i.replace(/\d/g,``)),r||(i=i.replace(/[^a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ\s'-]/g,``)),e&&(i=c.n(i)),i},[n,r,e]),O=(0,h.useCallback)(e=>{let t=D(e.target.value);s===void 0&&x(t),u?.(e)},[u,s,D]),k=(0,h.useCallback)(e=>{if(T(!0),a&&E){let e=E.trim().split(/\s+/).filter(Boolean);if(i&&e.length<i){let e={valid:!1,error:`Enter at least ${i} word${i>1?`s`:``}`};C(e),o?.(e)}else{let e={valid:!0};C(e),o?.(e)}}d?.(e)},[d,a,E,i,o]),A=f||w&&!S.valid,j=p||(w&&!S.valid?S.error:void 0);return(0,g.jsx)(m.n,{...v,ref:y,type:`text`,value:E,onChange:O,onBlur:k,error:A,errorText:j,placeholder:_,startIcon:(0,g.jsx)(t.i,{})})}),D=(0,h.forwardRef)(function({formatOnChange:e=!0,validateOnBlur:n=!0,showValidIcon:r=!0,onValidationChange:i,onValueChange:a,value:s,defaultValue:l,onChange:u,onBlur:d,error:f,errorText:p,success:_,placeholder:v=`PL00 0000 0000 0000 0000 0000 0000`,...y},b){let[x,S]=(0,h.useState)(l?.toString()??``),[C,w]=(0,h.useState)({valid:!0}),[T,E]=(0,h.useState)(!1),D=s===void 0?x:s.toString(),O=(0,h.useCallback)(t=>{let n=t.target.value.replace(/[^a-zA-Z0-9\s]/g,``).toUpperCase().replace(/\s/g,``),r=e?c.i(n):n;s===void 0&&S(r),a?.(n,r),u?.(t)},[u,s,e,a]),k=(0,h.useCallback)(e=>{if(E(!0),n&&D){let e=o.r(c.u(D));w(e),i?.(e)}d?.(e)},[d,n,D,i]),A=f||T&&!C.valid,j=p||(T&&!C.valid?C.error:void 0),M=!A&&(_===void 0?T&&C.valid&&D.length>0:_),N=r&&M?(0,g.jsx)(`span`,{style:{display:`inline-flex`,color:`var(--mineral-success)`},children:(0,g.jsx)(t.c,{})}):void 0;return(0,g.jsx)(m.n,{...y,ref:b,type:`text`,value:D,onChange:O,onBlur:k,error:A,errorText:j,success:M,placeholder:v,startIcon:(0,g.jsx)(t.r,{}),endIcon:N,maxLength:42})}),O={NIP:o.o,PESEL:o.s,REGON:o.u},k={NIP:13,PESEL:11,REGON:14},A={NIP:`123-456-78-19`,PESEL:`00000000000`,REGON:`000000000`},j=(0,h.forwardRef)(function({taxIdType:e,formatOnChange:n=!0,validateOnBlur:r=!0,showValidIcon:i=!0,onValidationChange:a,onValueChange:o,value:s,defaultValue:l,onChange:u,onBlur:d,error:f,errorText:p,success:_,placeholder:v,...y},b){let[x,S]=(0,h.useState)(l?.toString()??``),[C,w]=(0,h.useState)({valid:!0}),[T,E]=(0,h.useState)(!1),D=s===void 0?x:s.toString(),j=(0,h.useCallback)(t=>{let r=c.l(t.target.value),i=n&&e===`NIP`?c.a(r):r;s===void 0&&S(i),o?.(r),u?.(t)},[u,s,n,e,o]),M=(0,h.useCallback)(t=>{if(E(!0),r&&D){let t=O[e],n=t(c.l(D));w(n),a?.(n)}d?.(t)},[d,r,D,e,a]),N=f||T&&!C.valid,P=p||(T&&!C.valid?C.error:void 0),F=!N&&(_===void 0?T&&C.valid&&D.length>0:_),I=i&&F?(0,g.jsx)(`span`,{style:{display:`inline-flex`,color:`var(--mineral-success)`},children:(0,g.jsx)(t.c,{})}):void 0;return(0,g.jsx)(m.n,{...y,ref:b,type:`text`,inputMode:`numeric`,value:D,onChange:j,onBlur:M,error:N,errorText:P,success:F,placeholder:v??A[e],startIcon:(0,g.jsx)(t.n,{}),endIcon:I,maxLength:k[e]})}),M=(0,h.forwardRef)(function({currency:e,currencySymbol:t,currencyPosition:n=`end`,decimalSeparator:r=`,`,thousandSeparator:i=` `,precision:o=2,min:s,max:l,allowNegative:u=!1,onValueChange:d,value:f,defaultValue:p,onChange:_,onBlur:v,placeholder:y=`0,00`,startIcon:b,endIcon:x,className:S,...C},w){let[T,E]=(0,h.useState)(p?.toString()??``),D=f===void 0?T:f.toString(),O=t??e??``,k=(0,h.useCallback)(e=>{let t=e.target.value,n=``,a=!1;for(let e of t)e>=`0`&&e<=`9`?n+=e:(e===`,`||e===`.`)&&!a?(n+=r,a=!0):e===`-`&&u&&n.length===0&&(n+=`-`);let s=c.r(n,{decimalSeparator:r,thousandSeparator:i,precision:o});f===void 0&&E(s);let l=c.s(s,i,r);d?.(l),_?.(e)},[_,f,r,i,o,u,d]),A=(0,h.useCallback)(e=>{let t=c.s(D,i,r);if(t!==null){s!==void 0&&t<s&&(t=s),l!==void 0&&t>l&&(t=l);let e=c.r(t.toFixed(o).replace(`.`,r),{decimalSeparator:r,thousandSeparator:i,precision:o});f===void 0&&E(e),d?.(t)}v?.(e)},[D,s,l,o,r,i,f,d,v]),j=O?(0,g.jsx)(`span`,{className:`currency symbol`,children:O}):void 0;return(0,g.jsx)(m.n,{...C,ref:w,type:`text`,inputMode:`decimal`,value:D,onChange:k,onBlur:A,placeholder:y,startIcon:n===`start`?j:b,endIcon:n===`end`?j:x,className:a.t(`currency input`,S)})});function N({value:e}){let t=s.n(e);return(0,g.jsx)(`span`,{className:a.t(`credit-card-brand-badge`,`credit-brand`,t.brand),children:t.iconLabel})}var P=(0,h.forwardRef)(function({validateOnBlur:e=!0,validateOnChange:n=!1,showBrandIcon:r=!0,showValidIcon:i=!0,onValidationChange:o,onCardBrandChange:c,onValueChange:l,value:u,defaultValue:d,onChange:f,onBlur:p,error:_,errorText:v,success:y,placeholder:b=`4242 4242 4242 4242`,className:x,...S},C){let[w,T]=(0,h.useState)(()=>s.r(d?.toString()??``)),[E,D]=(0,h.useState)({valid:!0}),[O,k]=(0,h.useState)(!1),A=u===void 0?w:s.r(u.toString()),j=(0,h.useCallback)(e=>{let t=s.a(e);return D(t),o?.(t),t},[o]),M=(0,h.useCallback)(e=>{let t=s.r(e.target.value),r=s.n(t);u===void 0&&T(t),c?.(r.brand),l?.(s.i(t),t,r.brand),n&&O&&j(t),f?.(e)},[c,f,l,j,O,n,u]),P=(0,h.useCallback)(t=>{k(!0),e&&A&&j(A),p?.(t)},[A,p,j,e]),F=_||O&&!E.valid,I=v||(O&&!E.valid?E.error:void 0),L=!F&&y!==void 0?y:O&&E.valid&&s.i(A).length>0,R=i&&L?(0,g.jsx)(`span`,{className:`credit valid credit-card-valid-icon`,"aria-hidden":`true`,children:(0,g.jsx)(t.c,{})}):void 0;return(0,g.jsx)(m.n,{...S,ref:C,type:`text`,inputMode:`numeric`,value:A,onChange:M,onBlur:P,error:F,errorText:I,success:L,placeholder:b,startIcon:r?(0,g.jsx)(N,{value:A}):void 0,endIcon:R,className:a.t(`credit-card input`,x)})});function F(e){return typeof e==`object`&&!!e&&!(0,h.isValidElement)(e)&&`type`in e}function I(e,t,n){if(!F(e))return(0,g.jsx)(`div`,{className:a.t(`addon`,`custom`,t),children:e},`${t}-${n}`);let r=e;return r.type===`button`?(0,g.jsx)(`button`,{type:`button`,className:a.t(`addon`,t,`button`),onClick:r.onClick,children:r.content},`${t}-${n}`):r.type===`checkbox`?(0,g.jsx)(`div`,{className:a.t(`addon`,t,`checkbox`),children:(0,g.jsx)(f.t,{size:`sm`,clickEffect:`none`,checked:r.checked,onChange:e=>r.onCheckedChange?.(e.target.checked),className:`addon-checkbox`})},`${t}-${n}`):(0,g.jsx)(`span`,{className:a.t(`addon`,t),children:r.content},`${t}-${n}`)}function L(e){return e==null?[]:Array.isArray(e)?e:[e]}var R=(0,h.forwardRef)(function({prepend:e,append:t,type:n=`text`,value:r,defaultValue:i,name:o,id:s,placeholder:c,disabled:u=!1,readOnly:f=!1,required:p=!1,autoFocus:_=!1,autoComplete:v,inputMode:y,size:b=`md`,fcolor:x,fullWidth:S=!1,label:C,helperText:w,errorText:T,color:E=`primary`,error:D=!1,maxLength:O,onChange:k,onFocus:A,onBlur:j,onKeyDown:M,loading:N=!1,clickEffect:P=`ripple`,rippleColor:F,className:R,style:z,inputClassName:B,labelClassName:V},H){let[U,W]=(0,h.useState)(!1),G=(0,h.useRef)(null),{effectClassName:K,effectLayer:q,handlePointerDown:J}=l.t({effect:P,disabled:u||f,color:F}),Y=D||!!T,{currentValue:X,setCurrentValue:Z}=m.r(r,i),ee=(0,h.useCallback)(e=>{W(!0),A?.(e)},[A]),Q=(0,h.useCallback)(e=>{W(!1),j?.(e)},[j]),$=(0,h.useCallback)(e=>{Z(e.target.value),k?.(e)},[k,Z]),te=L(e),ne=L(t);return(0,g.jsxs)(`div`,{className:a.t(`input-group`,E,...d.t({fcolor:x}),S&&`full-width`,R),style:z,children:[C&&(0,g.jsx)(`label`,{htmlFor:s,className:a.t(`label`,U&&`focused`,Y&&`error`,p&&`required`,V),children:C}),(0,g.jsxs)(`div`,{className:a.t(`container`,b,U&&`focused`,Y&&`has-error`,u&&`disabled`,K),onPointerDown:J,children:[q,te.map((e,t)=>I(e,`prepend`,t)),(0,g.jsx)(`input`,{ref:H??G,type:n,value:X,name:o,id:s,placeholder:c,disabled:u,readOnly:f,required:p,autoFocus:_,autoComplete:v,inputMode:y,maxLength:O,className:a.t(`field`,B),onChange:$,onFocus:ee,onBlur:Q,onKeyDown:M,"aria-invalid":Y||void 0,"aria-describedby":T?`${s}-error`:w?`${s}-helper`:void 0}),N&&(0,g.jsx)(`span`,{className:`spinner-addon`,children:(0,g.jsx)(`span`,{className:`spinner`})}),ne.map((e,t)=>I(e,`append`,t))]}),(T||w)&&(0,g.jsxs)(`div`,{className:`bottom`,children:[T&&(0,g.jsx)(`span`,{id:s?`${s}-error`:void 0,className:`error-text`,role:`alert`,children:T}),!T&&w&&(0,g.jsx)(`span`,{id:s?`${s}-helper`:void 0,className:`helper`,children:w})]})]})}),z=(0,h.forwardRef)(function({country:e,defaultCountry:t=`PL`,selectableCountry:n=!0,validateOnBlur:r=!0,validateOnChange:i=!1,onCountryChange:s,onValidationChange:c,onValueChange:l,value:u,defaultValue:d,onChange:f,onBlur:p,error:m,errorText:_,helperText:v,placeholder:y,className:b,disabled:x=!1,...S},C){let[w,T]=(0,h.useState)(t.toUpperCase()),[E,D]=(0,h.useState)(()=>o.p(d?.toString()??``,e??t)),[O,k]=(0,h.useState)({valid:!0}),[A,j]=(0,h.useState)(!1),M=(e??w).toUpperCase(),N=(0,h.useMemo)(()=>o.m(M),[M]),P=u===void 0?E:o.p(u.toString(),M),F=(0,h.useCallback)((e,t)=>{let n=o._(e,t);return k(n),c?.(n),n},[c]),I=(0,h.useCallback)(e=>{let t=o.p(e.target.value,M);u===void 0&&D(t),l?.(t.replace(/\s|-/g,``),t,M),i&&A&&F(t,M),f?.(e)},[M,f,l,F,A,i,u]),L=(0,h.useCallback)(e=>{j(!0),r&&P&&F(P,M),p?.(e)},[M,P,p,F,r]),z=(0,h.useCallback)(t=>{let n=t.target.value.toUpperCase(),r=o.p(P,n);e===void 0&&T(n),u===void 0&&D(r),s?.(n),A&&F(r,n)},[e,P,s,F,A,u]),B=m||A&&!O.valid,V=_||(A&&!O.valid?O.error:void 0);return(0,g.jsx)(R,{...S,ref:C,type:`text`,inputMode:N.inputMode,value:P,onChange:I,onBlur:L,error:B,errorText:V,helperText:V?void 0:v??`Format: ${N.example}`,placeholder:y??N.placeholder,maxLength:N.maxLength,disabled:x,prepend:n?(0,g.jsx)(`div`,{className:`country-select-wrap`,children:(0,g.jsx)(`select`,{className:`country-select`,value:M,onChange:z,disabled:x,"aria-label":`Postal code country`,children:o.h.map(e=>(0,g.jsx)(`option`,{value:e.value,children:e.value},e.value))})}):{type:`text`,content:M},className:a.t(`input-post-code`,b)})}),B=(0,h.forwardRef)(function({length:e=6,value:t,onChange:n,autoFocus:r=!1,disabled:i=!1,color:o=`primary`,size:s=`md`,error:c=!1,errorText:l,label:u,className:d,...f},p){let[m,_]=(0,h.useState)(``),v=t===void 0?m:t,y=(0,h.useRef)([]),b=(0,h.useCallback)(e=>{t===void 0&&_(e),n?.(e)},[t,n]),x=(0,h.useCallback)(t=>{let n=Math.max(0,Math.min(t,e-1));y.current[n]?.focus()},[e]);(0,h.useEffect)(()=>{r&&x(0)},[r,x]);let S=(0,h.useCallback)((t,n)=>{if(!/^\d$/.test(n))return;let r=v.split(``);for(;r.length<=t;)r.push(``);r[t]=n,b(r.join(``)),t<e-1&&x(t+1)},[v,e,b,x]),C=(0,h.useCallback)((t,n)=>{if(n.key===`Backspace`){n.preventDefault();let e=v.split(``);e[t]?(e[t]=``,b(e.join(``))):t>0&&(e[t-1]=``,b(e.join(``)),x(t-1))}else n.key===`ArrowLeft`?(n.preventDefault(),t>0&&x(t-1)):n.key===`ArrowRight`&&(n.preventDefault(),t<e-1&&x(t+1))},[v,e,b,x]),w=(0,h.useCallback)(t=>{t.preventDefault();let n=t.clipboardData.getData(`text`).replace(/\D/g,``).slice(0,e);n&&(b(n),x(Math.min(n.length,e-1)))},[e,b,x]);return(0,g.jsxs)(`div`,{ref:p,className:a.t(`otp input`,o,s,c&&`error`,i&&`disabled`,d),...f,children:[u&&(0,g.jsx)(`div`,{className:`otp label`,children:u}),(0,g.jsx)(`div`,{className:`otp slots`,onPaste:w,children:Array.from({length:e},(e,t)=>(0,g.jsx)(`input`,{ref:e=>{y.current[t]=e},type:`text`,inputMode:`numeric`,maxLength:1,value:v[t]||``,disabled:i,className:a.t(`otp slot`,v[t]&&`filled`),"aria-label":`Digit ${t+1}`,onChange:e=>{S(t,e.target.value.slice(-1))},onKeyDown:e=>C(t,e),onFocus:e=>e.target.select()},t))}),c&&l&&(0,g.jsx)(`div`,{className:`otp error`,children:l})]})});function V(e,t,n){return Math.min(n,Math.max(t,e))}function H(e,t){let n=10**t;return Math.round(e*n)/n}var U=(0,h.forwardRef)(function({min:e=0,max:t=100,step:n=1,value:r,onChange:i,precision:o=0,marks:s,showInput:c=!0,color:l=`primary`,size:u=`md`,disabled:d=!1,label:f,className:m,..._},v){let[y,b]=(0,h.useState)(e),x=r===void 0?y:r,S=(0,h.useCallback)(n=>{let a=H(V(n,e,t),o);r===void 0&&b(a),i?.(a)},[e,t,o,r,i]),C=(0,h.useCallback)(e=>S(e),[S]),w=(0,h.useCallback)(e=>{let t=e.target.value;if(t===``||t===`-`)return;let n=parseFloat(t);isNaN(n)||S(n)},[S]),T=(0,h.useCallback)(()=>{S(x)},[x,S]);return(0,g.jsxs)(`div`,{ref:v,className:a.t(`slider input`,u,d&&`disabled`,m),..._,children:[f&&(0,g.jsx)(`div`,{className:`slider label`,children:f}),(0,g.jsxs)(`div`,{className:`slider row`,children:[(0,g.jsx)(p.t,{min:e,max:t,step:n,value:x,onChange:C,marks:s,color:l,disabled:d}),c&&(0,g.jsx)(`input`,{type:`text`,inputMode:`decimal`,className:a.t(`slider field`,l),value:x,onChange:w,onBlur:T,disabled:d,"aria-label":f||`Slider value`})]})]})});function W({file:e,shape:n,outputSize:r,quality:i,onCrop:a,onCancel:o}){let s=(0,h.useRef)(null),c=(0,h.useRef)(null),l=(0,h.useRef)(null),[u,d]=(0,h.useState)(``),[f,p]=(0,h.useState)(1),[m,_]=(0,h.useState)({x:0,y:0}),[v,y]=(0,h.useState)(!1),b=(0,h.useRef)({x:0,y:0,ox:0,oy:0});(0,h.useEffect)(()=>{let t=URL.createObjectURL(e);return d(t),()=>URL.revokeObjectURL(t)},[e]),(0,h.useEffect)(()=>{if(!u)return;let e=new Image;e.onload=()=>{l.current=e;let t=280/Math.min(e.width,e.height);p(t),_({x:(280-e.width*t)/2,y:(280-e.height*t)/2})},e.src=u},[u]);let x=(0,h.useCallback)(e=>{e.preventDefault(),y(!0),b.current={x:e.clientX,y:e.clientY,ox:m.x,oy:m.y},e.target.setPointerCapture(e.pointerId)},[m]),S=(0,h.useCallback)(e=>{v&&_({x:b.current.ox+(e.clientX-b.current.x),y:b.current.oy+(e.clientY-b.current.y)})},[v]),C=(0,h.useCallback)(()=>{y(!1)},[]),w=(0,h.useCallback)(e=>{e.preventDefault();let t=e.deltaY>0?.95:1.05,n=Math.max(.1,Math.min(f*t,10));_({x:140-(140-m.x)*(n/f),y:140-(140-m.y)*(n/f)}),p(n)},[f,m]),T=(0,h.useCallback)(e=>{let t=parseFloat(e.target.value);_({x:140-(140-m.x)*(t/f),y:140-(140-m.y)*(t/f)}),p(t)},[f,m]),E=(0,h.useCallback)(()=>{let t=l.current,o=s.current;if(!t||!o)return;o.width=r,o.height=r;let c=o.getContext(`2d`);if(!c)return;let u=r/280;n===`circle`&&(c.beginPath(),c.arc(r/2,r/2,r/2,0,Math.PI*2),c.closePath(),c.clip()),c.drawImage(t,m.x*u,m.y*u,t.width*f*u,t.height*f*u),o.toBlob(t=>{if(!t)return;let n=e.name.replace(/.*\./,``),r=e.name.replace(/\.[^.]+$/,``)+`_cropped.`+n;a(new File([t],r,{type:t.type}))},e.type.startsWith(`image/png`)?`image/png`:`image/jpeg`,i)},[e,m,f,r,i,n,a]);return(0,g.jsxs)(`div`,{className:`crop editor`,children:[(0,g.jsxs)(`div`,{ref:c,className:`crop viewport ${n}`,onPointerDown:x,onPointerMove:S,onPointerUp:C,onWheel:w,children:[u&&(0,g.jsx)(`img`,{src:u,alt:``,className:`crop image`,draggable:!1,style:{transform:`translate(${m.x}px, ${m.y}px) scale(${f})`,transformOrigin:`0 0`}}),(0,g.jsx)(`div`,{className:`crop overlay ${n}`})]}),(0,g.jsxs)(`div`,{className:`crop zoom`,children:[(0,g.jsx)(t.t,{className:`crop zoom icon`,"aria-hidden":`true`}),(0,g.jsx)(`input`,{type:`range`,className:`crop zoom slider`,min:`0.1`,max:`5`,step:`0.01`,value:f,onChange:T})]}),(0,g.jsxs)(`div`,{className:`crop actions`,children:[(0,g.jsx)(`button`,{type:`button`,className:`crop button cancel`,onClick:o,children:`Cancel`}),(0,g.jsx)(`button`,{type:`button`,className:`crop button confirm`,onClick:E,children:`Crop`})]}),(0,g.jsx)(`canvas`,{ref:s,style:{display:`none`}})]})}function G(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function K(e){let t=e.lastIndexOf(`.`);return t>=0?e.slice(t+1).toUpperCase():``}function q(e){return e.type.startsWith(`image/`)}function J({ext:e}){let n=e.toLowerCase();return n===`pdf`?(0,g.jsx)(i.k,{className:`file type icon`,"aria-hidden":`true`}):[`png`,`jpg`,`jpeg`,`gif`,`webp`,`svg`].includes(n)?(0,g.jsx)(i.O,{className:`file type icon`,"aria-hidden":`true`}):[`json`].includes(n)?(0,g.jsx)(i.l,{className:`file type icon`,"aria-hidden":`true`}):[`js`,`jsx`,`ts`,`tsx`,`html`,`css`,`php`,`xml`].includes(n)?(0,g.jsx)(i.D,{className:`file type icon`,"aria-hidden":`true`}):[`txt`].includes(n)?(0,g.jsx)(i.A,{className:`file type icon`,"aria-hidden":`true`}):[`md`].includes(n)?(0,g.jsx)(i.d,{className:`file type icon`,"aria-hidden":`true`}):[`docs`,`doc`,`docx`].includes(n)?(0,g.jsx)(i.r,{className:`file type icon`,"aria-hidden":`true`}):[`odt`].includes(n)?(0,g.jsx)(i.m,{className:`file type icon`,"aria-hidden":`true`}):[`csv`,`xls`,`xlsx`].includes(n)?(0,g.jsx)(i.w,{className:`file type icon`,"aria-hidden":`true`}):[`zip`].includes(n)?(0,g.jsx)(i.E,{className:`file type icon`,"aria-hidden":`true`}):[`rar`,`7z`,`tar`,`gz`].includes(n)?(0,g.jsx)(t.a,{className:`file type icon`,"aria-hidden":`true`}):[`mp3`,`wav`,`ogg`].includes(n)?(0,g.jsx)(i.f,{className:`file type icon`,"aria-hidden":`true`}):[`mp4`,`mov`,`avi`,`mkv`,`webm`].includes(n)?(0,g.jsx)(i.p,{className:`file type icon`,"aria-hidden":`true`}):[`exe`,`msi`,`bat`].includes(n)?(0,g.jsx)(i.i,{className:`file type icon`,"aria-hidden":`true`}):(0,g.jsx)(i.j,{className:`file type icon`,"aria-hidden":`true`})}var Y=(0,h.forwardRef)(function({accept:n,multiple:r=!1,maxSize:i,maxFiles:o,onChange:s,label:c,helperText:l,errorText:u,error:d=!1,disabled:f=!1,color:p=`primary`,size:m=`md`,preview:_=!0,icon:v,placeholder:y=`Drop files here or click to browse`,dropText:b=`Drop files here`,fullWidth:x=!1,crop:S,className:C,...w},T){let[E,D]=(0,h.useState)(!1),[O,k]=(0,h.useState)([]),[A,j]=(0,h.useState)(``),[M,N]=(0,h.useState)(null),P=(0,h.useRef)(null),F=(0,h.useRef)(0),I=S?typeof S==`boolean`?{shape:`square`,outputSize:256,quality:.92}:{shape:S.shape??`square`,outputSize:S.outputSize??256,quality:S.quality??.92}:null,L=(0,h.useMemo)(()=>O.map(e=>q(e)?URL.createObjectURL(e):null),[O]);(0,h.useEffect)(()=>()=>{L.forEach(e=>{e&&URL.revokeObjectURL(e)})},[L]);let R=(0,h.useCallback)(e=>{let t=Array.from(e);if(n){let e=n.split(`,`).map(e=>e.trim().toLowerCase());t=t.filter(t=>{let n=`.`+t.name.split(`.`).pop()?.toLowerCase(),r=t.type.toLowerCase();return e.some(e=>e===n||e===r||e.endsWith(`/*`)&&r.startsWith(e.slice(0,-1)))})}if(i&&t.filter(e=>e.size>i).length){j(`Max file size: ${G(i)}`);return}if(o&&t.length>o){j(`Max ${o} file${o>1?`s`:``}`);return}if(j(``),I&&t.length===1&&q(t[0])){N(t[0]);return}k(t),s?.(t)},[n,i,o,s,I]),z=(0,h.useCallback)(e=>{N(null),k([e]),s?.([e])},[s]),B=(0,h.useCallback)(()=>{N(null)},[]),V=(0,h.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),!f&&(F.current++,D(!0))},[f]),H=(0,h.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),F.current--,F.current<=0&&(F.current=0,D(!1))},[]),U=(0,h.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),Y=(0,h.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),F.current=0,D(!1),!f&&e.dataTransfer.files.length&&R(e.dataTransfer.files)},[f,R]),X=(0,h.useCallback)(()=>{f||P.current?.click()},[f]),Z=(0,h.useCallback)(e=>{e.target.files?.length&&R(e.target.files)},[R]),ee=(0,h.useCallback)(e=>{let t=L[e];t&&URL.revokeObjectURL(t);let n=O.filter((t,n)=>n!==e);k(n),s?.(n)},[O,L,s]),Q=u||A,$=d||!!A;return(0,g.jsxs)(`div`,{ref:T,className:a.t(`file input`,p,m,x&&`full-width`,f&&`disabled`,C),...w,children:[c&&(0,g.jsx)(`div`,{className:`file label`,children:c}),(0,g.jsxs)(`div`,{className:a.t(`file dropzone`,E&&`dragging`,$&&`error`),onClick:X,onDragEnter:V,onDragLeave:H,onDragOver:U,onDrop:Y,role:`button`,tabIndex:f?-1:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),X())},"aria-label":c||y,children:[(0,g.jsx)(`input`,{ref:P,type:`file`,accept:n,multiple:r,onChange:Z,tabIndex:-1,className:`file hidden`}),(0,g.jsxs)(`div`,{className:`file content`,children:[v&&(0,g.jsx)(`div`,{className:`file icon`,children:v}),!v&&(0,g.jsx)(t.o,{className:`file icon default`,"aria-hidden":`true`}),(0,g.jsx)(`div`,{className:`file text`,children:E?b:y}),n&&(0,g.jsx)(`div`,{className:`file accept`,children:n})]})]}),M&&I&&(0,g.jsx)(W,{file:M,shape:I.shape,outputSize:I.outputSize,quality:I.quality,onCrop:z,onCancel:B}),l&&!$&&(0,g.jsx)(`div`,{className:`file helper`,children:l}),$&&Q&&(0,g.jsx)(`div`,{className:`file error`,children:Q}),_&&O.length>0&&!M&&(0,g.jsx)(`div`,{className:`file preview`,children:O.map((t,n)=>(0,g.jsxs)(`div`,{className:`file item`,children:[(0,g.jsx)(`div`,{className:`file thumb`,children:L[n]?(0,g.jsx)(`img`,{src:L[n],alt:t.name,className:`file image`}):(0,g.jsx)(J,{ext:K(t.name)})}),(0,g.jsxs)(`div`,{className:`file info`,children:[(0,g.jsx)(`span`,{className:`file name`,children:t.name}),(0,g.jsx)(`span`,{className:`file size`,children:G(t.size)})]}),(0,g.jsx)(`button`,{type:`button`,className:`file remove`,onClick:e=>{e.stopPropagation(),ee(n)},"aria-label":`Remove ${t.name}`,children:(0,g.jsx)(e.t,{"aria-hidden":`true`})})]},`${t.name}-${n}`))})]})});Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return E}});
2
+ //# sourceMappingURL=InputFile-C6Y-y8CQ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputFile-C6Y-y8CQ.cjs","names":[],"sources":["../src/components/inputs/Textarea/Textarea.tsx","../src/components/inputs/InputPassword/InputPassword.tsx","../src/components/inputs/InputNumber/InputNumber.tsx","../src/components/inputs/InputEmail/InputEmail.tsx","../src/components/inputs/InputPhone/InputPhone.tsx","../src/components/inputs/InputName/InputName.tsx","../src/components/inputs/InputIBAN/InputIBAN.tsx","../src/components/inputs/InputTaxId/InputTaxId.tsx","../src/components/inputs/InputCurrency/InputCurrency.tsx","../src/components/inputs/InputCreditCard/InputCreditCard.tsx","../src/components/inputs/InputGroup/InputGroup.tsx","../src/components/inputs/InputPostCode/InputPostCode.tsx","../src/components/inputs/InputOTP/InputOTP.tsx","../src/components/inputs/InputSlider/InputSlider.tsx","../src/components/inputs/InputFile/CropEditor.tsx","../src/components/inputs/InputFile/InputFile.tsx"],"sourcesContent":["import {useState, useRef, useCallback, useEffect, forwardRef} from 'react'\nimport type * as React from 'react'\nimport type {TextareaProps} from './Textarea.types'\nimport {cn} from '../../../utils/cn'\nimport {getAppearanceClassNames} from '../../../utils/appearanceProps'\nimport {useControllableString} from '../../../utils/useControllableString'\nimport {useGhostText} from '../../../utils/useGhostText'\nimport './Textarea.css'\n\n// Render the multiline text input with optional auto-resize behavior.\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(function Textarea(\n {\n value,\n defaultValue,\n name,\n id,\n placeholder,\n disabled = false,\n readOnly = false,\n required = false,\n autoFocus = false,\n rows = 3,\n autoResize = false,\n minRows,\n maxRows,\n variant = 'outlined',\n size = 'md',\n color,\n fcolor,\n fullWidth = false,\n label,\n helperText,\n errorText,\n error = false,\n success = false,\n maxLength,\n showCharCount = false,\n ghostOptions,\n ghostMinChars = 2,\n onGhostAccept,\n loading = false,\n onChange,\n onFocus,\n onBlur,\n className,\n style,\n textareaClassName,\n labelClassName,\n },\n ref\n) {\n const [focused, setFocused] = useState(false)\n const textareaRef = useRef<HTMLTextAreaElement>(null)\n\n const {currentValue, setCurrentValue} = useControllableString(value, defaultValue)\n const ghost = useGhostText({\n options: ghostOptions ?? [],\n value: currentValue,\n minChars: ghostMinChars,\n })\n const hasError = error || !!errorText\n const resolvedRef = ref ?? textareaRef\n\n // Resize the textarea to fit content while respecting min and max row limits.\n const adjustHeight = useCallback(() => {\n const el = typeof resolvedRef === 'function' ? null : resolvedRef?.current\n if (!el || !autoResize) return\n\n el.style.height = 'auto'\n const lineHeight = parseFloat(getComputedStyle(el).lineHeight) || 20\n const minH = minRows ? minRows * lineHeight : 0\n const maxH = maxRows ? maxRows * lineHeight : Infinity\n const newHeight = Math.min(Math.max(el.scrollHeight, minH), maxH)\n el.style.height = `${newHeight}px`\n el.style.overflowY = el.scrollHeight > newHeight ? 'auto' : 'hidden'\n }, [autoResize, minRows, maxRows, resolvedRef])\n\n useEffect(() => {\n adjustHeight()\n }, [currentValue, adjustHeight])\n\n // Mirror focus state so wrapper styling stays consistent with Input.\n const handleFocus = useCallback(\n (e: React.FocusEvent<HTMLTextAreaElement>) => {\n setFocused(true)\n onFocus?.(e)\n },\n [onFocus]\n )\n\n // Clear focus styling before delegating blur handling.\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLTextAreaElement>) => {\n setFocused(false)\n onBlur?.(e)\n },\n [onBlur]\n )\n\n // Keep uncontrolled usage working without blocking controlled integrations.\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setCurrentValue(e.target.value)\n onChange?.(e)\n ghost.reset()\n },\n [onChange, setCurrentValue, ghost.reset]\n )\n\n // Intercept keyboard events for ghost text acceptance.\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (ghostOptions && ghost.hint) {\n const accepted = ghost.onKeyDown(e)\n if (accepted) {\n const result = ghost.accept()\n setCurrentValue(result.value)\n onGhostAccept?.(result.value)\n const el = typeof resolvedRef === 'function' ? null : resolvedRef?.current\n if (el) {\n const nativeSet = Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype, 'value')?.set\n nativeSet?.call(el, result.value)\n el.dispatchEvent(new Event('input', {bubbles: true}))\n }\n return\n }\n }\n },\n [ghostOptions, ghost, setCurrentValue, onGhostAccept, resolvedRef]\n )\n\n const containerClasses = cn(\n 'container',\n variant,\n size,\n focused && 'focused',\n hasError && 'error',\n success && !hasError && 'success',\n color === 'neutral' && 'color-neutral',\n color === 'success' && 'color-success',\n color === 'error' && 'color-error',\n color === 'warning' && 'color-warning',\n color === 'info' && 'color-info',\n disabled && 'disabled'\n )\n\n return (\n <div\n className={cn('textarea', ...getAppearanceClassNames({fcolor}), fullWidth && 'full-width', className)}\n style={style}\n >\n {label && (\n <label\n htmlFor={id}\n className={cn(\n 'label',\n focused && 'focused',\n hasError && 'error',\n success && !hasError && 'success',\n required && 'required',\n labelClassName\n )}\n >\n {label}\n </label>\n )}\n\n <div className={containerClasses}>\n {ghostOptions ? (\n <div className=\"ghost-text-field ghost-text-field-multi\">\n <textarea\n ref={resolvedRef as React.Ref<HTMLTextAreaElement>}\n name={name}\n id={id}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n autoFocus={autoFocus}\n rows={autoResize ? (minRows ?? rows) : rows}\n maxLength={maxLength}\n value={currentValue}\n className={cn('field', textareaClassName)}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n aria-invalid={hasError || undefined}\n aria-describedby={errorText ? `${id}-error` : helperText ? `${id}-helper` : undefined}\n />\n {focused && ghost.hint && (\n <span className=\"ghost-text-overlay\" aria-hidden=\"true\">\n <span className=\"ghost-text-typed\">{currentValue}</span>\n <span className=\"ghost-text-hint\">{ghost.hint}</span>\n </span>\n )}\n </div>\n ) : (\n <textarea\n ref={resolvedRef as React.Ref<HTMLTextAreaElement>}\n name={name}\n id={id}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n autoFocus={autoFocus}\n rows={autoResize ? (minRows ?? rows) : rows}\n maxLength={maxLength}\n value={currentValue}\n className={cn('field', textareaClassName)}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n aria-invalid={hasError || undefined}\n aria-describedby={errorText ? `${id}-error` : helperText ? `${id}-helper` : undefined}\n />\n )}\n {loading && <span className=\"spinner\" />}\n </div>\n\n {(errorText || helperText || showCharCount) && (\n <div className=\"bottom-row\">\n <span>\n {errorText && (\n <span id={id ? `${id}-error` : undefined} className=\"error-text\" role=\"alert\">\n {errorText}\n </span>\n )}\n {!errorText && helperText && (\n <span id={id ? `${id}-helper` : undefined} className=\"helper-text\">\n {helperText}\n </span>\n )}\n </span>\n {showCharCount && maxLength && (\n <span className={cn('char-count', currentValue.length > maxLength && 'over')}>\n {currentValue.length}/{maxLength}\n </span>\n )}\n </div>\n )}\n </div>\n )\n})\n","import {useState, useCallback, useEffect, forwardRef} from 'react'\nimport type * as React from 'react'\nimport type {InputPasswordProps, PasswordStrength} from './InputPassword.types'\nimport {Input} from '../Input'\nimport {cn} from '../../../utils/cn'\nimport './InputPassword.css'\n\n// Approximate password strength with simple UI-focused heuristics.\nfunction calcStrength(value: string): PasswordStrength {\n let score = 0\n if (value.length >= 8) score++\n if (value.length >= 12) score++\n if (/[a-z]/.test(value) && /[A-Z]/.test(value)) score++\n if (/\\d/.test(value)) score++\n if (/[^a-zA-Z0-9]/.test(value)) score++\n\n if (score <= 1) return 'weak'\n if (score <= 2) return 'fair'\n if (score <= 3) return 'good'\n return 'strong'\n}\n\nconst STRENGTH_LABELS: Record<PasswordStrength, string> = {\n weak: 'Weak',\n fair: 'Fair',\n good: 'Good',\n strong: 'Strong',\n}\n\n// Extend the base input with password visibility and optional strength feedback.\nexport const InputPassword = forwardRef<HTMLInputElement, InputPasswordProps>(function InputPassword(\n {showToggle = true, showStrength = false, onStrengthChange, value, defaultValue, onChange, className, ...rest},\n ref\n) {\n const [visible, setVisible] = useState(false)\n const [internalValue, setInternalValue] = useState(defaultValue?.toString() ?? '')\n const currentValue = value !== undefined ? value.toString() : internalValue\n const strength = calcStrength(currentValue)\n\n useEffect(() => {\n onStrengthChange?.(strength)\n }, [strength, onStrengthChange])\n\n // Keep uncontrolled usage working while reporting changes to the caller.\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (value === undefined) {\n setInternalValue(e.target.value)\n }\n onChange?.(e)\n },\n [onChange, value]\n )\n\n const toggleIcon = showToggle ? (\n <button\n type=\"button\"\n className=\"password toggle\"\n onClick={() => setVisible((v) => !v)}\n tabIndex={-1}\n aria-label={visible ? 'Hide password' : 'Show password'}\n >\n {visible ? '\\u25E0' : '\\u25C9'}\n </button>\n ) : undefined\n\n return (\n <div className={cn('password input', className)}>\n <Input\n {...rest}\n ref={ref}\n type={visible ? 'text' : 'password'}\n value={currentValue}\n onChange={handleChange}\n endIcon={toggleIcon}\n />\n {showStrength && currentValue.length > 0 && (\n <div className=\"password strength row\">\n <div className=\"password strength bar\">\n {[0, 1, 2, 3].map((i) => (\n <div\n key={i}\n className={cn(\n 'password strength segment',\n i < ['weak', 'fair', 'good', 'strong'].indexOf(strength) + 1 &&\n `strength-${strength}`\n )}\n />\n ))}\n </div>\n <span className={cn('password strength label', `strength-${strength}`)}>\n {STRENGTH_LABELS[strength]}\n </span>\n </div>\n )}\n </div>\n )\n})\n","import {useState, useCallback, useRef, useEffect, forwardRef} from 'react'\nimport type * as React from 'react'\nimport type {InputNumberProps} from './InputNumber.types'\nimport {Input} from '../Input'\nimport {cn} from '../../../utils/cn'\nimport {ChevronDownIcon, ChevronUpIcon} from '../../../icons'\nimport './InputNumber.css'\n\n// Keep numeric values inside optional min and max bounds.\nfunction clampValue(val: number, min?: number, max?: number): number {\n if (min !== undefined && val < min) return min\n if (max !== undefined && val > max) return max\n return val\n}\n\n// Prevent floating-point drift when step values use decimal precision.\nfunction roundToPrecision(val: number, precision: number): number {\n const factor = Math.pow(10, precision)\n return Math.round(val * factor) / factor\n}\n\n// Extend the base input with stepping, clamping and keyboard increment support.\nexport const InputNumber = forwardRef<HTMLInputElement, InputNumberProps>(function InputNumber(\n {\n min,\n max,\n step = 1,\n showStepper = true,\n precision = 0,\n allowNegative = true,\n onValueChange,\n value,\n defaultValue,\n onChange,\n onKeyDown,\n onBlur,\n disabled = false,\n className,\n ...rest\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState(defaultValue?.toString() ?? '')\n const currentValue = value !== undefined ? value.toString() : internalValue\n const intervalRef = useRef<ReturnType<typeof setInterval>>(null)\n\n // Keep the displayed string and numeric callback in sync.\n const updateValue = useCallback(\n (newVal: string) => {\n if (value === undefined) {\n setInternalValue(newVal)\n }\n const num = parseFloat(newVal)\n onValueChange?.(isNaN(num) ? null : num)\n },\n [value, onValueChange]\n )\n\n // Move the current value by one step in the requested direction.\n const increment = useCallback(\n (direction: 1 | -1) => {\n const current = parseFloat(currentValue) || 0\n const newVal = roundToPrecision(clampValue(current + step * direction, min, max), precision)\n updateValue(newVal.toString())\n },\n [currentValue, step, min, max, precision, updateValue]\n )\n\n // Repeat stepping while the pointer is held on a stepper button.\n const startHold = useCallback(\n (direction: 1 | -1) => {\n increment(direction)\n intervalRef.current = setInterval(() => increment(direction), 150)\n },\n [increment]\n )\n\n // Clear the hold timer when the pointer is released.\n const stopHold = useCallback(() => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current)\n intervalRef.current = null\n }\n }, [])\n\n useEffect(() => stopHold, [stopHold])\n\n // Filter user input down to numeric characters before storing it.\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const raw = e.target.value\n const filtered = raw.replace(allowNegative ? /[^\\d.,-]/g : /[^\\d.,]/g, '')\n updateValue(filtered)\n onChange?.(e)\n },\n [onChange, allowNegative, updateValue]\n )\n\n // Snap the entered value back into range when the field loses focus.\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n const num = parseFloat(currentValue)\n if (!isNaN(num)) {\n const clamped = roundToPrecision(clampValue(num, min, max), precision)\n updateValue(clamped.toString())\n }\n onBlur?.(e)\n },\n [currentValue, min, max, precision, updateValue, onBlur]\n )\n\n // Support ArrowUp and ArrowDown as a keyboard stepper.\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'ArrowUp') {\n e.preventDefault()\n increment(1)\n } else if (e.key === 'ArrowDown') {\n e.preventDefault()\n increment(-1)\n }\n onKeyDown?.(e)\n },\n [increment, onKeyDown]\n )\n\n const stepper =\n showStepper && !disabled ? (\n <div className=\"number stepper\">\n <button\n type=\"button\"\n className=\"number step button\"\n onMouseDown={() => startHold(1)}\n onMouseUp={stopHold}\n onMouseLeave={stopHold}\n tabIndex={-1}\n aria-label=\"Increment\"\n >\n <ChevronUpIcon />\n </button>\n <button\n type=\"button\"\n className=\"number step button\"\n onMouseDown={() => startHold(-1)}\n onMouseUp={stopHold}\n onMouseLeave={stopHold}\n tabIndex={-1}\n aria-label=\"Decrement\"\n >\n <ChevronDownIcon />\n </button>\n </div>\n ) : undefined\n\n return (\n <Input\n {...rest}\n ref={ref}\n type=\"text\"\n inputMode=\"decimal\"\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n endIcon={stepper}\n disabled={disabled}\n className={cn('number input', className)}\n />\n )\n})\n","import {useState, useCallback, forwardRef} from 'react'\nimport type * as React from 'react'\nimport type {InputEmailProps} from './InputEmail.types'\nimport {Input} from '../Input'\nimport {validateEmail} from '../../../utils/validators'\nimport type {ValidationResult} from '../../../utils/validators'\nimport {CheckIcon, MailIcon} from '../../../icons'\n\n// Extend the base input with email validation and optional success feedback.\nexport const InputEmail = forwardRef<HTMLInputElement, InputEmailProps>(function InputEmail(\n {\n validateOnBlur = true,\n validateOnChange = false,\n showValidIcon = true,\n onValidationChange,\n value,\n defaultValue,\n onChange,\n onBlur,\n error,\n errorText,\n success,\n placeholder = 'email@example.com',\n ...rest\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState(defaultValue?.toString() ?? '')\n const [validation, setValidation] = useState<ValidationResult>({valid: true})\n const [touched, setTouched] = useState(false)\n\n const currentValue = value !== undefined ? value.toString() : internalValue\n\n // Reuse the shared email validator and surface the latest result upstream.\n const runValidation = useCallback(\n (val: string) => {\n const result = validateEmail(val)\n setValidation(result)\n onValidationChange?.(result)\n return result\n },\n [onValidationChange]\n )\n\n // Validate while typing only when the component is configured to do so.\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (value === undefined) {\n setInternalValue(e.target.value)\n }\n if (validateOnChange && touched) {\n runValidation(e.target.value)\n }\n onChange?.(e)\n },\n [onChange, value, validateOnChange, touched, runValidation]\n )\n\n // Validate optional email input on blur once the user has interacted with it.\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n setTouched(true)\n if (validateOnBlur && e.target.value) {\n runValidation(e.target.value)\n }\n onBlur?.(e)\n },\n [onBlur, validateOnBlur, runValidation]\n )\n\n const isError = error || (touched && !validation.valid)\n const resolvedErrorText = errorText || (touched && !validation.valid ? validation.error : undefined)\n const isSuccess =\n !isError && success !== undefined ? success : touched && validation.valid && currentValue.length > 0\n\n const validIcon =\n showValidIcon && isSuccess ? (\n <span style={{display: 'inline-flex', color: 'var(--mineral-success)'}}>\n <CheckIcon />\n </span>\n ) : undefined\n\n return (\n <Input\n {...rest}\n ref={ref}\n type=\"email\"\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n error={isError}\n errorText={resolvedErrorText}\n success={isSuccess}\n placeholder={placeholder}\n startIcon={<MailIcon />}\n endIcon={validIcon}\n />\n )\n})\n","import {useState, useCallback, forwardRef} from 'react'\nimport type * as React from 'react'\nimport type {InputPhoneProps} from './InputPhone.types'\nimport {Input} from '../Input'\nimport {cn} from '../../../utils/cn'\nimport {validatePhone} from '../../../utils/validators'\nimport {formatPhone, stripNonDigits} from '../../../utils/formatters'\nimport type {ValidationResult} from '../../../utils/validators'\nimport {PhoneIcon} from '../../../icons'\nimport './InputPhone.css'\n\n// Extend the base input with country-aware phone formatting and validation.\nexport const InputPhone = forwardRef<HTMLInputElement, InputPhoneProps>(function InputPhone(\n {\n countryCode = 'PL',\n showCountryCode = true,\n formatOnChange = true,\n validateOnBlur = true,\n onValidationChange,\n onValueChange,\n value,\n defaultValue,\n onChange,\n onBlur,\n error,\n errorText,\n placeholder = '123 456 789',\n className,\n ...rest\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState(defaultValue?.toString() ?? '')\n const [validation, setValidation] = useState<ValidationResult>({valid: true})\n const [touched, setTouched] = useState(false)\n\n const currentValue = value !== undefined ? value.toString() : internalValue\n\n // Keep the emitted raw digits and the displayed formatted value aligned.\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const digits = stripNonDigits(e.target.value)\n const formatted = formatOnChange ? formatPhone(digits, {countryCode}) : digits\n\n if (value === undefined) {\n setInternalValue(formatted)\n }\n onValueChange?.(digits, formatted)\n onChange?.(e)\n },\n [onChange, value, formatOnChange, countryCode, onValueChange]\n )\n\n // Validate the raw number on blur using country-specific length rules.\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n setTouched(true)\n if (validateOnBlur && currentValue) {\n const result = validatePhone(stripNonDigits(currentValue), countryCode)\n setValidation(result)\n onValidationChange?.(result)\n }\n onBlur?.(e)\n },\n [onBlur, validateOnBlur, currentValue, countryCode, onValidationChange]\n )\n\n const COUNTRY_PREFIXES: Record<string, string> = {\n PL: '+48',\n DE: '+49',\n US: '+1',\n GB: '+44',\n FR: '+33',\n CZ: '+420',\n SK: '+421',\n }\n\n const prefix = showCountryCode ? (\n <span className=\"phone prefix\">{COUNTRY_PREFIXES[countryCode.toUpperCase()] ?? `+${countryCode}`}</span>\n ) : undefined\n\n const isError = error || (touched && !validation.valid)\n const resolvedErrorText = errorText || (touched && !validation.valid ? validation.error : undefined)\n\n return (\n <Input\n {...rest}\n ref={ref}\n type=\"tel\"\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n error={isError}\n errorText={resolvedErrorText}\n placeholder={placeholder}\n startIcon={showCountryCode ? prefix : <PhoneIcon />}\n className={cn('phone input', className)}\n />\n )\n})\n","import {useState, useCallback, forwardRef} from 'react'\nimport type * as React from 'react'\nimport type {InputNameProps} from './InputName.types'\nimport {Input} from '../Input'\nimport {capitalizeWords} from '../../../utils/formatters'\nimport type {ValidationResult} from '../../../utils/validators'\nimport {UserIcon} from '../../../icons'\n\n// Extend the base input with name-friendly filtering and optional word-count validation.\nexport const InputName = forwardRef<HTMLInputElement, InputNameProps>(function InputName(\n {\n autoCapitalize = true,\n allowNumbers = false,\n allowSpecialChars = false,\n minWords,\n validateOnBlur = true,\n onValidationChange,\n value,\n defaultValue,\n onChange,\n onBlur,\n error,\n errorText,\n placeholder = 'Jan Kowalski',\n ...rest\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState(defaultValue?.toString() ?? '')\n const [validation, setValidation] = useState<ValidationResult>({valid: true})\n const [touched, setTouched] = useState(false)\n\n const currentValue = value !== undefined ? value.toString() : internalValue\n\n // Normalize user input according to the configured name rules.\n const filterValue = useCallback(\n (raw: string): string => {\n let filtered = raw\n if (!allowNumbers) {\n filtered = filtered.replace(/\\d/g, '')\n }\n if (!allowSpecialChars) {\n filtered = filtered.replace(/[^a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ\\s'-]/g, '')\n }\n if (autoCapitalize) {\n filtered = capitalizeWords(filtered)\n }\n return filtered\n },\n [allowNumbers, allowSpecialChars, autoCapitalize]\n )\n\n // Store the filtered value while still delegating the original change event.\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const filtered = filterValue(e.target.value)\n if (value === undefined) {\n setInternalValue(filtered)\n }\n onChange?.(e)\n },\n [onChange, value, filterValue]\n )\n\n // Validate the minimum word count after the user leaves the field.\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n setTouched(true)\n if (validateOnBlur && currentValue) {\n const words = currentValue.trim().split(/\\s+/).filter(Boolean)\n if (minWords && words.length < minWords) {\n const result: ValidationResult = {\n valid: false,\n error: `Enter at least ${minWords} word${minWords > 1 ? 's' : ''}`,\n }\n setValidation(result)\n onValidationChange?.(result)\n } else {\n const result: ValidationResult = {valid: true}\n setValidation(result)\n onValidationChange?.(result)\n }\n }\n onBlur?.(e)\n },\n [onBlur, validateOnBlur, currentValue, minWords, onValidationChange]\n )\n\n const isError = error || (touched && !validation.valid)\n const resolvedErrorText = errorText || (touched && !validation.valid ? validation.error : undefined)\n\n return (\n <Input\n {...rest}\n ref={ref}\n type=\"text\"\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n error={isError}\n errorText={resolvedErrorText}\n placeholder={placeholder}\n startIcon={<UserIcon />}\n />\n )\n})\n","import {useState, useCallback, forwardRef} from 'react'\nimport type * as React from 'react'\nimport type {InputIBANProps} from './InputIBAN.types'\nimport {Input} from '../Input'\nimport {validateIBAN} from '../../../utils/validators'\nimport {formatIBAN, unformatIBAN} from '../../../utils/formatters'\nimport type {ValidationResult} from '../../../utils/validators'\nimport {BankIcon, CheckIcon} from '../../../icons'\n\n// Extend the base input with IBAN formatting and checksum validation.\nexport const InputIBAN = forwardRef<HTMLInputElement, InputIBANProps>(function InputIBAN(\n {\n formatOnChange = true,\n validateOnBlur = true,\n showValidIcon = true,\n onValidationChange,\n onValueChange,\n value,\n defaultValue,\n onChange,\n onBlur,\n error,\n errorText,\n success,\n placeholder = 'PL00 0000 0000 0000 0000 0000 0000',\n ...rest\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState(defaultValue?.toString() ?? '')\n const [validation, setValidation] = useState<ValidationResult>({valid: true})\n const [touched, setTouched] = useState(false)\n\n const currentValue = value !== undefined ? value.toString() : internalValue\n\n // Keep raw and formatted IBAN values aligned for consumers and display.\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n let raw = e.target.value.replace(/[^a-zA-Z0-9\\s]/g, '').toUpperCase()\n const clean = raw.replace(/\\s/g, '')\n const formatted = formatOnChange ? formatIBAN(clean) : clean\n\n if (value === undefined) {\n setInternalValue(formatted)\n }\n onValueChange?.(clean, formatted)\n onChange?.(e)\n },\n [onChange, value, formatOnChange, onValueChange]\n )\n\n // Validate the normalized IBAN once the user leaves the field.\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n setTouched(true)\n if (validateOnBlur && currentValue) {\n const result = validateIBAN(unformatIBAN(currentValue))\n setValidation(result)\n onValidationChange?.(result)\n }\n onBlur?.(e)\n },\n [onBlur, validateOnBlur, currentValue, onValidationChange]\n )\n\n const isError = error || (touched && !validation.valid)\n const resolvedErrorText = errorText || (touched && !validation.valid ? validation.error : undefined)\n const isSuccess =\n !isError && (success !== undefined ? success : touched && validation.valid && currentValue.length > 0)\n\n const validIcon =\n showValidIcon && isSuccess ? (\n <span style={{display: 'inline-flex', color: 'var(--mineral-success)'}}>\n <CheckIcon />\n </span>\n ) : undefined\n\n return (\n <Input\n {...rest}\n ref={ref}\n type=\"text\"\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n error={isError}\n errorText={resolvedErrorText}\n success={isSuccess}\n placeholder={placeholder}\n startIcon={<BankIcon />}\n endIcon={validIcon}\n maxLength={34 + 8}\n />\n )\n})\n","import {useState, useCallback, forwardRef} from 'react'\nimport type * as React from 'react'\nimport type {InputTaxIdProps, TaxIdType} from './InputTaxId.types'\nimport {Input} from '../Input'\nimport {validateNIP, validatePESEL, validateREGON} from '../../../utils/validators'\nimport {formatNIP, stripNonDigits} from '../../../utils/formatters'\nimport type {ValidationResult} from '../../../utils/validators'\nimport {CheckIcon, IdCardIcon} from '../../../icons'\n\nconst VALIDATORS: Record<TaxIdType, (v: string) => ValidationResult> = {\n NIP: validateNIP,\n PESEL: validatePESEL,\n REGON: validateREGON,\n}\n\nconst MAX_LENGTHS: Record<TaxIdType, number> = {\n NIP: 13,\n PESEL: 11,\n REGON: 14,\n}\n\nconst PLACEHOLDERS: Record<TaxIdType, string> = {\n NIP: '123-456-78-19',\n PESEL: '00000000000',\n REGON: '000000000',\n}\n\n// Extend the base input with NIP, PESEL and REGON formatting and validation.\nexport const InputTaxId = forwardRef<HTMLInputElement, InputTaxIdProps>(function InputTaxId(\n {\n taxIdType,\n formatOnChange = true,\n validateOnBlur = true,\n showValidIcon = true,\n onValidationChange,\n onValueChange,\n value,\n defaultValue,\n onChange,\n onBlur,\n error,\n errorText,\n success,\n placeholder,\n ...rest\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState(defaultValue?.toString() ?? '')\n const [validation, setValidation] = useState<ValidationResult>({valid: true})\n const [touched, setTouched] = useState(false)\n\n const currentValue = value !== undefined ? value.toString() : internalValue\n\n // Normalize the visible value based on the selected identifier type.\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const digits = stripNonDigits(e.target.value)\n const formatted = formatOnChange && taxIdType === 'NIP' ? formatNIP(digits) : digits\n\n if (value === undefined) {\n setInternalValue(formatted)\n }\n onValueChange?.(digits)\n onChange?.(e)\n },\n [onChange, value, formatOnChange, taxIdType, onValueChange]\n )\n\n // Validate the stripped numeric value against the active identifier rules.\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n setTouched(true)\n if (validateOnBlur && currentValue) {\n const validator = VALIDATORS[taxIdType]\n const result = validator(stripNonDigits(currentValue))\n setValidation(result)\n onValidationChange?.(result)\n }\n onBlur?.(e)\n },\n [onBlur, validateOnBlur, currentValue, taxIdType, onValidationChange]\n )\n\n const isError = error || (touched && !validation.valid)\n const resolvedErrorText = errorText || (touched && !validation.valid ? validation.error : undefined)\n const isSuccess =\n !isError && (success !== undefined ? success : touched && validation.valid && currentValue.length > 0)\n\n const validIcon =\n showValidIcon && isSuccess ? (\n <span style={{display: 'inline-flex', color: 'var(--mineral-success)'}}>\n <CheckIcon />\n </span>\n ) : undefined\n\n return (\n <Input\n {...rest}\n ref={ref}\n type=\"text\"\n inputMode=\"numeric\"\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n error={isError}\n errorText={resolvedErrorText}\n success={isSuccess}\n placeholder={placeholder ?? PLACEHOLDERS[taxIdType]}\n startIcon={<IdCardIcon />}\n endIcon={validIcon}\n maxLength={MAX_LENGTHS[taxIdType]}\n />\n )\n})\n","import {useState, useCallback, forwardRef} from 'react'\nimport type * as React from 'react'\nimport type {InputCurrencyProps} from './InputCurrency.types'\nimport {Input} from '../Input'\nimport {cn} from '../../../utils/cn'\nimport {formatCurrency, parseCurrencyToNumber} from '../../../utils/formatters'\nimport './InputCurrency.css'\n\n// Extend the base input with currency formatting and numeric callbacks.\nexport const InputCurrency = forwardRef<HTMLInputElement, InputCurrencyProps>(function InputCurrency(\n {\n currency,\n currencySymbol,\n currencyPosition = 'end',\n decimalSeparator = ',',\n thousandSeparator = ' ',\n precision = 2,\n min,\n max,\n allowNegative = false,\n onValueChange,\n value,\n defaultValue,\n onChange,\n onBlur,\n placeholder = '0,00',\n startIcon,\n endIcon,\n className,\n ...rest\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState(defaultValue?.toString() ?? '')\n const currentValue = value !== undefined ? value.toString() : internalValue\n\n const symbol = currencySymbol ?? currency ?? ''\n\n // Filter user input down to one decimal separator and an optional minus sign.\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const raw = e.target.value\n let filtered = ''\n let hasDecimal = false\n for (const ch of raw) {\n if (ch >= '0' && ch <= '9') {\n filtered += ch\n } else if ((ch === ',' || ch === '.') && !hasDecimal) {\n filtered += decimalSeparator\n hasDecimal = true\n } else if (ch === '-' && allowNegative && filtered.length === 0) {\n filtered += '-'\n }\n }\n\n const formatted = formatCurrency(filtered, {decimalSeparator, thousandSeparator, precision})\n\n if (value === undefined) {\n setInternalValue(formatted)\n }\n\n const num = parseCurrencyToNumber(formatted, thousandSeparator, decimalSeparator)\n onValueChange?.(num)\n onChange?.(e)\n },\n [onChange, value, decimalSeparator, thousandSeparator, precision, allowNegative, onValueChange]\n )\n\n // Clamp the numeric value on blur and snap it to the configured precision.\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n let num = parseCurrencyToNumber(currentValue, thousandSeparator, decimalSeparator)\n if (num !== null) {\n if (min !== undefined && num < min) num = min\n if (max !== undefined && num > max) num = max\n const fixed = num.toFixed(precision).replace('.', decimalSeparator)\n const formatted = formatCurrency(fixed, {decimalSeparator, thousandSeparator, precision})\n if (value === undefined) {\n setInternalValue(formatted)\n }\n onValueChange?.(num)\n }\n onBlur?.(e)\n },\n [currentValue, min, max, precision, decimalSeparator, thousandSeparator, value, onValueChange, onBlur]\n )\n\n const symbolEl = symbol ? <span className=\"currency symbol\">{symbol}</span> : undefined\n\n return (\n <Input\n {...rest}\n ref={ref}\n type=\"text\"\n inputMode=\"decimal\"\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder={placeholder}\n startIcon={currencyPosition === 'start' ? symbolEl : startIcon}\n endIcon={currencyPosition === 'end' ? symbolEl : endIcon}\n className={cn('currency input', className)}\n />\n )\n})\n","import {forwardRef, useCallback, useState} from 'react'\nimport type * as React from 'react'\nimport type {InputCreditCardProps} from './InputCreditCard.types'\nimport {Input} from '../Input'\nimport {cn} from '../../../utils/cn'\nimport {detectCardBrand, formatCardNumber, stripCardNumber, validateCardNumber} from '../../../utils/creditCards'\nimport type {ValidationResult} from '../../../utils/validators'\nimport {CheckIcon} from '../../../icons'\nimport './InputCreditCard.css'\n\nfunction CardBrandBadge({value}: {value: string}) {\n const brand = detectCardBrand(value)\n\n return <span className={cn('credit-card-brand-badge', 'credit-brand', brand.brand)}>{brand.iconLabel}</span>\n}\n\n// Extend the base input with payment card detection, formatting and checksum validation.\nexport const InputCreditCard = forwardRef<HTMLInputElement, InputCreditCardProps>(function InputCreditCard(\n {\n validateOnBlur = true,\n validateOnChange = false,\n showBrandIcon = true,\n showValidIcon = true,\n onValidationChange,\n onCardBrandChange,\n onValueChange,\n value,\n defaultValue,\n onChange,\n onBlur,\n error,\n errorText,\n success,\n placeholder = '4242 4242 4242 4242',\n className,\n ...rest\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState(() => formatCardNumber(defaultValue?.toString() ?? ''))\n const [validation, setValidation] = useState<ValidationResult>({valid: true})\n const [touched, setTouched] = useState(false)\n\n const currentValue = value !== undefined ? formatCardNumber(value.toString()) : internalValue\n const runValidation = useCallback(\n (formattedValue: string) => {\n const result = validateCardNumber(formattedValue)\n setValidation(result)\n onValidationChange?.(result)\n return result\n },\n [onValidationChange]\n )\n\n // Keep the visible card number grouped while exposing raw digits to the caller.\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const formattedValue = formatCardNumber(event.target.value)\n const nextBrand = detectCardBrand(formattedValue)\n\n if (value === undefined) {\n setInternalValue(formattedValue)\n }\n\n onCardBrandChange?.(nextBrand.brand)\n onValueChange?.(stripCardNumber(formattedValue), formattedValue, nextBrand.brand)\n\n if (validateOnChange && touched) {\n runValidation(formattedValue)\n }\n\n onChange?.(event)\n },\n [onCardBrandChange, onChange, onValueChange, runValidation, touched, validateOnChange, value]\n )\n\n // Validate after the user leaves the field so checksum feedback stays predictable.\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n setTouched(true)\n\n if (validateOnBlur && currentValue) {\n runValidation(currentValue)\n }\n\n onBlur?.(event)\n },\n [currentValue, onBlur, runValidation, validateOnBlur]\n )\n\n const isError = error || (touched && !validation.valid)\n const resolvedErrorText = errorText || (touched && !validation.valid ? validation.error : undefined)\n const isSuccess =\n !isError && success !== undefined\n ? success\n : touched && validation.valid && stripCardNumber(currentValue).length > 0\n\n const validIcon =\n showValidIcon && isSuccess ? (\n <span className=\"credit valid credit-card-valid-icon\" aria-hidden=\"true\">\n <CheckIcon />\n </span>\n ) : undefined\n\n return (\n <Input\n {...rest}\n ref={ref}\n type=\"text\"\n inputMode=\"numeric\"\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n error={isError}\n errorText={resolvedErrorText}\n success={isSuccess}\n placeholder={placeholder}\n startIcon={showBrandIcon ? <CardBrandBadge value={currentValue} /> : undefined}\n endIcon={validIcon}\n className={cn('credit-card input', className)}\n />\n )\n})\n","import {useState, useRef, useCallback, forwardRef, isValidElement} from 'react'\nimport type * as React from 'react'\nimport type {InputGroupProps, InputGroupAddon, InputGroupSlot} from './InputGroup.types'\nimport {cn} from '../../../utils/cn'\nimport {getAppearanceClassNames} from '../../../utils/appearanceProps'\nimport {useControllableString} from '../../../utils/useControllableString'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {Checkbox} from '../../controls'\nimport './InputGroup.css'\n\n// Detect structured addon configs while leaving raw React nodes untouched.\nfunction isAddonObject(slot: InputGroupSlot): slot is InputGroupAddon {\n return typeof slot === 'object' && slot !== null && !isValidElement(slot) && 'type' in slot\n}\n\n// Render one prepend or append slot based on its declared addon type.\nfunction renderSlot(slot: InputGroupSlot, position: 'prepend' | 'append', index: number) {\n if (!isAddonObject(slot)) {\n // Raw ReactNode — render as-is inside addon container\n return (\n <div key={`${position}-${index}`} className={cn('addon', 'custom', position)}>\n {slot}\n </div>\n )\n }\n\n const addon = slot\n\n if (addon.type === 'button') {\n return (\n <button\n key={`${position}-${index}`}\n type=\"button\"\n className={cn('addon', position, 'button')}\n onClick={addon.onClick}\n >\n {addon.content}\n </button>\n )\n }\n\n if (addon.type === 'checkbox') {\n return (\n <div key={`${position}-${index}`} className={cn('addon', position, 'checkbox')}>\n <Checkbox\n size=\"sm\"\n clickEffect=\"none\"\n checked={addon.checked}\n onChange={(e) => addon.onCheckedChange?.(e.target.checked)}\n className=\"addon-checkbox\"\n />\n </div>\n )\n }\n\n // text or icon\n return (\n <span key={`${position}-${index}`} className={cn('addon', position)}>\n {addon.content}\n </span>\n )\n}\n\n// Normalize the public slot API to a flat array for predictable rendering.\nfunction normalizeSlots(slots?: InputGroupSlot | InputGroupSlot[]): InputGroupSlot[] {\n if (slots === undefined || slots === null) return []\n if (Array.isArray(slots)) return slots\n return [slots]\n}\n\n// Render a grouped input with prepend and append content around a shared field.\nexport const InputGroup = forwardRef<HTMLInputElement, InputGroupProps>(function InputGroup(\n {\n prepend,\n append,\n type = 'text',\n value,\n defaultValue,\n name,\n id,\n placeholder,\n disabled = false,\n readOnly = false,\n required = false,\n autoFocus = false,\n autoComplete,\n inputMode,\n size = 'md',\n fcolor,\n fullWidth = false,\n label,\n helperText,\n errorText,\n color = 'primary',\n error = false,\n maxLength,\n onChange,\n onFocus,\n onBlur,\n onKeyDown,\n loading = false,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n inputClassName,\n labelClassName,\n },\n ref\n) {\n const [focused, setFocused] = useState(false)\n const inputRef = useRef<HTMLInputElement>(null)\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLDivElement>({\n effect: clickEffect,\n disabled: disabled || readOnly,\n color: rippleColor,\n })\n\n const hasError = error || !!errorText\n const {currentValue, setCurrentValue} = useControllableString(value, defaultValue)\n\n // Mirror focus state so the wrapper can style the group consistently.\n const handleFocus = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true)\n onFocus?.(e)\n },\n [onFocus]\n )\n\n // Clear wrapper focus styling before delegating blur handling.\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(false)\n onBlur?.(e)\n },\n [onBlur]\n )\n\n // Keep uncontrolled usage working without blocking controlled integrations.\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setCurrentValue(e.target.value)\n onChange?.(e)\n },\n [onChange, setCurrentValue]\n )\n\n const prependSlots = normalizeSlots(prepend)\n const appendSlots = normalizeSlots(append)\n\n return (\n <div\n className={cn(\n 'input-group',\n color,\n ...getAppearanceClassNames({fcolor}),\n fullWidth && 'full-width',\n className\n )}\n style={style}\n >\n {label && (\n <label\n htmlFor={id}\n className={cn(\n 'label',\n focused && 'focused',\n hasError && 'error',\n required && 'required',\n labelClassName\n )}\n >\n {label}\n </label>\n )}\n\n <div\n className={cn(\n 'container',\n size,\n focused && 'focused',\n hasError && 'has-error',\n disabled && 'disabled',\n effectClassName\n )}\n onPointerDown={handlePointerDown}\n >\n {effectLayer}\n {prependSlots.map((slot, i) => renderSlot(slot, 'prepend', i))}\n\n <input\n ref={ref ?? inputRef}\n type={type}\n value={currentValue}\n name={name}\n id={id}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n autoFocus={autoFocus}\n autoComplete={autoComplete}\n inputMode={inputMode}\n maxLength={maxLength}\n className={cn('field', inputClassName)}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={onKeyDown}\n aria-invalid={hasError || undefined}\n aria-describedby={errorText ? `${id}-error` : helperText ? `${id}-helper` : undefined}\n />\n\n {loading && (\n <span className={'spinner-addon'}>\n <span className={'spinner'} />\n </span>\n )}\n\n {appendSlots.map((slot, i) => renderSlot(slot, 'append', i))}\n </div>\n\n {(errorText || helperText) && (\n <div className={'bottom'}>\n {errorText && (\n <span id={id ? `${id}-error` : undefined} className={'error-text'} role=\"alert\">\n {errorText}\n </span>\n )}\n {!errorText && helperText && (\n <span id={id ? `${id}-helper` : undefined} className={'helper'}>\n {helperText}\n </span>\n )}\n </div>\n )}\n </div>\n )\n})\n","import {forwardRef, useCallback, useMemo, useState} from 'react'\nimport type * as React from 'react'\nimport type {InputPostCodeProps} from './InputPostCode.types'\nimport {InputGroup} from '../InputGroup'\nimport {cn} from '../../../utils/cn'\nimport {formatPostCode, getPostCodeRule, postCodeCountries, validatePostCode} from '../../../utils/postalCodes'\nimport type {ValidationResult} from '../../../utils/validators'\nimport './InputPostCode.css'\n\n// Extend the grouped input with country-aware postal code masking and validation.\nexport const InputPostCode = forwardRef<HTMLInputElement, InputPostCodeProps>(function InputPostCode(\n {\n country,\n defaultCountry = 'PL',\n selectableCountry = true,\n validateOnBlur = true,\n validateOnChange = false,\n onCountryChange,\n onValidationChange,\n onValueChange,\n value,\n defaultValue,\n onChange,\n onBlur,\n error,\n errorText,\n helperText,\n placeholder,\n className,\n disabled = false,\n ...rest\n },\n ref\n) {\n const [internalCountry, setInternalCountry] = useState(defaultCountry.toUpperCase())\n const [internalValue, setInternalValue] = useState(() =>\n formatPostCode(defaultValue?.toString() ?? '', country ?? defaultCountry)\n )\n const [validation, setValidation] = useState<ValidationResult>({valid: true})\n const [touched, setTouched] = useState(false)\n\n const currentCountry = (country ?? internalCountry).toUpperCase()\n const currentRule = useMemo(() => getPostCodeRule(currentCountry), [currentCountry])\n const currentValue = value !== undefined ? formatPostCode(value.toString(), currentCountry) : internalValue\n\n const runValidation = useCallback(\n (formattedValue: string, nextCountry: string) => {\n const result = validatePostCode(formattedValue, nextCountry)\n setValidation(result)\n onValidationChange?.(result)\n return result\n },\n [onValidationChange]\n )\n\n // Keep the visible postal code aligned with the selected country rule.\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const formattedValue = formatPostCode(event.target.value, currentCountry)\n\n if (value === undefined) {\n setInternalValue(formattedValue)\n }\n\n onValueChange?.(formattedValue.replace(/\\s|-/g, ''), formattedValue, currentCountry)\n\n if (validateOnChange && touched) {\n runValidation(formattedValue, currentCountry)\n }\n\n onChange?.(event)\n },\n [currentCountry, onChange, onValueChange, runValidation, touched, validateOnChange, value]\n )\n\n // Re-run validation after blur so the visible formatting and error state stay in sync.\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n setTouched(true)\n\n if (validateOnBlur && currentValue) {\n runValidation(currentValue, currentCountry)\n }\n\n onBlur?.(event)\n },\n [currentCountry, currentValue, onBlur, runValidation, validateOnBlur]\n )\n\n // Switch the formatter and validation rule whenever the selected country changes.\n const handleCountryChange = useCallback(\n (event: React.ChangeEvent<HTMLSelectElement>) => {\n const nextCountry = event.target.value.toUpperCase()\n const formattedValue = formatPostCode(currentValue, nextCountry)\n\n if (country === undefined) {\n setInternalCountry(nextCountry)\n }\n\n if (value === undefined) {\n setInternalValue(formattedValue)\n }\n\n onCountryChange?.(nextCountry)\n\n if (touched) {\n runValidation(formattedValue, nextCountry)\n }\n },\n [country, currentValue, onCountryChange, runValidation, touched, value]\n )\n\n const isError = error || (touched && !validation.valid)\n const resolvedErrorText = errorText || (touched && !validation.valid ? validation.error : undefined)\n\n return (\n <InputGroup\n {...rest}\n ref={ref}\n type=\"text\"\n inputMode={currentRule.inputMode}\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n error={isError}\n errorText={resolvedErrorText}\n helperText={resolvedErrorText ? undefined : (helperText ?? `Format: ${currentRule.example}`)}\n placeholder={placeholder ?? currentRule.placeholder}\n maxLength={currentRule.maxLength}\n disabled={disabled}\n prepend={\n selectableCountry ? (\n <div className=\"country-select-wrap\">\n <select\n className=\"country-select\"\n value={currentCountry}\n onChange={handleCountryChange}\n disabled={disabled}\n aria-label=\"Postal code country\"\n >\n {postCodeCountries.map((option) => (\n <option key={option.value} value={option.value}>\n {option.value}\n </option>\n ))}\n </select>\n </div>\n ) : (\n {type: 'text', content: currentCountry}\n )\n }\n className={cn('input-post-code', className)}\n />\n )\n})\n","import {useState, useCallback, useRef, useEffect, forwardRef} from 'react'\nimport type * as React from 'react'\nimport type {InputOTPProps} from './InputOTP.types'\nimport {cn} from '../../../utils/cn'\nimport './InputOTP.css'\n\nexport const InputOTP = forwardRef<HTMLDivElement, InputOTPProps>(function InputOTP(\n {\n length = 6,\n value,\n onChange,\n autoFocus = false,\n disabled = false,\n color = 'primary',\n size = 'md',\n error = false,\n errorText,\n label,\n className,\n ...rest\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState('')\n const currentValue = value !== undefined ? value : internalValue\n const inputsRef = useRef<(HTMLInputElement | null)[]>([])\n\n const updateValue = useCallback(\n (newVal: string) => {\n if (value === undefined) setInternalValue(newVal)\n onChange?.(newVal)\n },\n [value, onChange]\n )\n\n const focusSlot = useCallback(\n (index: number) => {\n const clamped = Math.max(0, Math.min(index, length - 1))\n inputsRef.current[clamped]?.focus()\n },\n [length]\n )\n\n useEffect(() => {\n if (autoFocus) focusSlot(0)\n }, [autoFocus, focusSlot])\n\n const handleInput = useCallback(\n (index: number, char: string) => {\n if (!/^\\d$/.test(char)) return\n const chars = currentValue.split('')\n while (chars.length <= index) chars.push('')\n chars[index] = char\n updateValue(chars.join(''))\n if (index < length - 1) focusSlot(index + 1)\n },\n [currentValue, length, updateValue, focusSlot]\n )\n\n const handleKeyDown = useCallback(\n (index: number, e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Backspace') {\n e.preventDefault()\n const chars = currentValue.split('')\n if (chars[index]) {\n chars[index] = ''\n updateValue(chars.join(''))\n } else if (index > 0) {\n chars[index - 1] = ''\n updateValue(chars.join(''))\n focusSlot(index - 1)\n }\n } else if (e.key === 'ArrowLeft') {\n e.preventDefault()\n if (index > 0) focusSlot(index - 1)\n } else if (e.key === 'ArrowRight') {\n e.preventDefault()\n if (index < length - 1) focusSlot(index + 1)\n }\n },\n [currentValue, length, updateValue, focusSlot]\n )\n\n const handlePaste = useCallback(\n (e: React.ClipboardEvent) => {\n e.preventDefault()\n const pasted = e.clipboardData.getData('text').replace(/\\D/g, '').slice(0, length)\n if (pasted) {\n updateValue(pasted)\n focusSlot(Math.min(pasted.length, length - 1))\n }\n },\n [length, updateValue, focusSlot]\n )\n\n return (\n <div\n ref={ref}\n className={cn('otp input', color, size, error && 'error', disabled && 'disabled', className)}\n {...rest}\n >\n {label && <div className=\"otp label\">{label}</div>}\n <div className=\"otp slots\" onPaste={handlePaste}>\n {Array.from({length}, (_, i) => (\n <input\n key={i}\n ref={(el) => {\n inputsRef.current[i] = el\n }}\n type=\"text\"\n inputMode=\"numeric\"\n maxLength={1}\n value={currentValue[i] || ''}\n disabled={disabled}\n className={cn('otp slot', currentValue[i] && 'filled')}\n aria-label={`Digit ${i + 1}`}\n onChange={(e) => {\n const char = e.target.value.slice(-1)\n handleInput(i, char)\n }}\n onKeyDown={(e) => handleKeyDown(i, e)}\n onFocus={(e) => e.target.select()}\n />\n ))}\n </div>\n {error && errorText && <div className=\"otp error\">{errorText}</div>}\n </div>\n )\n})\n","import {useState, useCallback, forwardRef} from 'react'\nimport type * as React from 'react'\nimport type {InputSliderProps} from './InputSlider.types'\nimport {Slider} from '../../controls'\nimport {cn} from '../../../utils/cn'\nimport './InputSlider.css'\n\nfunction clampValue(val: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, val))\n}\n\nfunction roundToPrecision(val: number, precision: number): number {\n const factor = Math.pow(10, precision)\n return Math.round(val * factor) / factor\n}\n\nexport const InputSlider = forwardRef<HTMLDivElement, InputSliderProps>(function InputSlider(\n {\n min = 0,\n max = 100,\n step = 1,\n value,\n onChange,\n precision = 0,\n marks,\n showInput = true,\n color = 'primary',\n size = 'md',\n disabled = false,\n label,\n className,\n ...rest\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState(min)\n const currentValue = value !== undefined ? value : internalValue\n\n const update = useCallback(\n (newVal: number) => {\n const clamped = roundToPrecision(clampValue(newVal, min, max), precision)\n if (value === undefined) setInternalValue(clamped)\n onChange?.(clamped)\n },\n [min, max, precision, value, onChange]\n )\n\n const handleSliderChange = useCallback((val: number) => update(val), [update])\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const raw = e.target.value\n if (raw === '' || raw === '-') return\n const num = parseFloat(raw)\n if (!isNaN(num)) update(num)\n },\n [update]\n )\n\n const handleBlur = useCallback(() => {\n update(currentValue)\n }, [currentValue, update])\n\n return (\n <div ref={ref} className={cn('slider input', size, disabled && 'disabled', className)} {...rest}>\n {label && <div className=\"slider label\">{label}</div>}\n <div className=\"slider row\">\n <Slider\n min={min}\n max={max}\n step={step}\n value={currentValue}\n onChange={handleSliderChange}\n marks={marks}\n color={color}\n disabled={disabled}\n />\n {showInput && (\n <input\n type=\"text\"\n inputMode=\"decimal\"\n className={cn('slider field', color)}\n value={currentValue}\n onChange={handleInputChange}\n onBlur={handleBlur}\n disabled={disabled}\n aria-label={label || 'Slider value'}\n />\n )}\n </div>\n </div>\n )\n})\n","import {useState, useRef, useCallback, useEffect} from 'react'\nimport type * as React from 'react'\nimport type {InputFileCropShape} from './InputFile.types'\nimport {ZoomInIcon} from '../../../icons'\nimport './CropEditor.css'\n\ninterface CropEditorProps {\n file: File\n shape: InputFileCropShape\n outputSize: number\n quality: number\n onCrop: (cropped: File) => void\n onCancel: () => void\n}\n\nexport function CropEditor({file, shape, outputSize, quality, onCrop, onCancel}: CropEditorProps) {\n const canvasRef = useRef<HTMLCanvasElement>(null)\n const containerRef = useRef<HTMLDivElement>(null)\n const imgRef = useRef<HTMLImageElement | null>(null)\n const [imgSrc, setImgSrc] = useState('')\n const [scale, setScale] = useState(1)\n const [offset, setOffset] = useState({x: 0, y: 0})\n const [dragging, setDragging] = useState(false)\n const dragStart = useRef({x: 0, y: 0, ox: 0, oy: 0})\n\n useEffect(() => {\n const url = URL.createObjectURL(file)\n setImgSrc(url)\n return () => URL.revokeObjectURL(url)\n }, [file])\n\n useEffect(() => {\n if (!imgSrc) return\n const img = new Image()\n img.onload = () => {\n imgRef.current = img\n const minDim = Math.min(img.width, img.height)\n const containerSize = 280\n const initialScale = containerSize / minDim\n setScale(initialScale)\n setOffset({\n x: (containerSize - img.width * initialScale) / 2,\n y: (containerSize - img.height * initialScale) / 2,\n })\n }\n img.src = imgSrc\n }, [imgSrc])\n\n const handlePointerDown = useCallback(\n (e: React.PointerEvent) => {\n e.preventDefault()\n setDragging(true)\n dragStart.current = {x: e.clientX, y: e.clientY, ox: offset.x, oy: offset.y}\n ;(e.target as HTMLElement).setPointerCapture(e.pointerId)\n },\n [offset]\n )\n\n const handlePointerMove = useCallback(\n (e: React.PointerEvent) => {\n if (!dragging) return\n setOffset({\n x: dragStart.current.ox + (e.clientX - dragStart.current.x),\n y: dragStart.current.oy + (e.clientY - dragStart.current.y),\n })\n },\n [dragging]\n )\n\n const handlePointerUp = useCallback(() => {\n setDragging(false)\n }, [])\n\n const handleWheel = useCallback(\n (e: React.WheelEvent) => {\n e.preventDefault()\n const containerSize = 280\n const cx = containerSize / 2\n const cy = containerSize / 2\n\n const delta = e.deltaY > 0 ? 0.95 : 1.05\n const newScale = Math.max(0.1, Math.min(scale * delta, 10))\n\n setOffset({\n x: cx - (cx - offset.x) * (newScale / scale),\n y: cy - (cy - offset.y) * (newScale / scale),\n })\n setScale(newScale)\n },\n [scale, offset]\n )\n\n const handleSlider = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const containerSize = 280\n const cx = containerSize / 2\n const cy = containerSize / 2\n\n const newScale = parseFloat(e.target.value)\n setOffset({\n x: cx - (cx - offset.x) * (newScale / scale),\n y: cy - (cy - offset.y) * (newScale / scale),\n })\n setScale(newScale)\n },\n [scale, offset]\n )\n\n const exportCrop = useCallback(() => {\n const img = imgRef.current\n const canvas = canvasRef.current\n if (!img || !canvas) return\n\n const containerSize = 280\n canvas.width = outputSize\n canvas.height = outputSize\n const ctx = canvas.getContext('2d')\n if (!ctx) return\n\n const ratio = outputSize / containerSize\n\n if (shape === 'circle') {\n ctx.beginPath()\n ctx.arc(outputSize / 2, outputSize / 2, outputSize / 2, 0, Math.PI * 2)\n ctx.closePath()\n ctx.clip()\n }\n\n ctx.drawImage(img, offset.x * ratio, offset.y * ratio, img.width * scale * ratio, img.height * scale * ratio)\n\n canvas.toBlob(\n (blob) => {\n if (!blob) return\n const ext = file.name.replace(/.*\\./, '')\n const name = file.name.replace(/\\.[^.]+$/, '') + '_cropped.' + ext\n const cropped = new File([blob], name, {type: blob.type})\n onCrop(cropped)\n },\n file.type.startsWith('image/png') ? 'image/png' : 'image/jpeg',\n quality\n )\n }, [file, offset, scale, outputSize, quality, shape, onCrop])\n\n return (\n <div className=\"crop editor\">\n <div\n ref={containerRef}\n className={`crop viewport ${shape}`}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onWheel={handleWheel}\n >\n {imgSrc && (\n <img\n src={imgSrc}\n alt=\"\"\n className=\"crop image\"\n draggable={false}\n style={{\n transform: `translate(${offset.x}px, ${offset.y}px) scale(${scale})`,\n transformOrigin: '0 0',\n }}\n />\n )}\n <div className={`crop overlay ${shape}`} />\n </div>\n\n <div className=\"crop zoom\">\n <ZoomInIcon className=\"crop zoom icon\" aria-hidden=\"true\" />\n <input\n type=\"range\"\n className=\"crop zoom slider\"\n min=\"0.1\"\n max=\"5\"\n step=\"0.01\"\n value={scale}\n onChange={handleSlider}\n />\n </div>\n\n <div className=\"crop actions\">\n <button type=\"button\" className=\"crop button cancel\" onClick={onCancel}>\n Cancel\n </button>\n <button type=\"button\" className=\"crop button confirm\" onClick={exportCrop}>\n Crop\n </button>\n </div>\n\n <canvas ref={canvasRef} style={{display: 'none'}} />\n </div>\n )\n}\n","import {useState, useCallback, useRef, useMemo, useEffect, forwardRef} from 'react'\nimport type * as React from 'react'\nimport type {InputFileProps, InputFileCropOptions} from './InputFile.types'\nimport {CropEditor} from './CropEditor'\nimport {cn} from '../../../utils/cn'\nimport {\n CloseIcon,\n FileArchiveIcon,\n FileCodeIcon,\n FileDocsIcon,\n FileExeIcon,\n FileIcon,\n FileImageIcon,\n FileJsonIcon,\n FileMdIcon,\n FileMp3Icon,\n FileMp4Icon,\n FileOdtIcon,\n FilePdfIcon,\n FileTextIcon,\n FileXlsIcon,\n FileZipIcon,\n UploadIcon,\n} from '../../../icons'\nimport './InputFile.css'\n\nfunction formatSize(bytes: number): string {\n if (bytes < 1024) return `${bytes} B`\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`\n}\n\nfunction fileExtension(name: string): string {\n const dot = name.lastIndexOf('.')\n return dot >= 0 ? name.slice(dot + 1).toUpperCase() : ''\n}\n\nfunction isImage(file: File): boolean {\n return file.type.startsWith('image/')\n}\n\nfunction FileTypeIcon({ext}: {ext: string}) {\n const name = ext.toLowerCase()\n\n if (name === 'pdf') return <FilePdfIcon className=\"file type icon\" aria-hidden=\"true\" />\n if (['png', 'jpg', 'jpeg', 'gif', 'webp', 'svg'].includes(name)) {\n return <FileImageIcon className=\"file type icon\" aria-hidden=\"true\" />\n }\n if (['json'].includes(name)) return <FileJsonIcon className=\"file type icon\" aria-hidden=\"true\" />\n if (['js', 'jsx', 'ts', 'tsx', 'html', 'css', 'php', 'xml'].includes(name)) {\n return <FileCodeIcon className=\"file type icon\" aria-hidden=\"true\" />\n }\n if (['txt'].includes(name)) return <FileTextIcon className=\"file type icon\" aria-hidden=\"true\" />\n if (['md'].includes(name)) return <FileMdIcon className=\"file type icon\" aria-hidden=\"true\" />\n if (['docs', 'doc', 'docx'].includes(name)) return <FileDocsIcon className=\"file type icon\" aria-hidden=\"true\" />\n if (['odt'].includes(name)) return <FileOdtIcon className=\"file type icon\" aria-hidden=\"true\" />\n if (['csv', 'xls', 'xlsx'].includes(name)) return <FileXlsIcon className=\"file type icon\" aria-hidden=\"true\" />\n if (['zip'].includes(name)) return <FileZipIcon className=\"file type icon\" aria-hidden=\"true\" />\n if (['rar', '7z', 'tar', 'gz'].includes(name)) return <FileArchiveIcon className=\"file type icon\" aria-hidden=\"true\" />\n if (['mp3', 'wav', 'ogg'].includes(name)) return <FileMp3Icon className=\"file type icon\" aria-hidden=\"true\" />\n if (['mp4', 'mov', 'avi', 'mkv', 'webm'].includes(name)) {\n return <FileMp4Icon className=\"file type icon\" aria-hidden=\"true\" />\n }\n if (['exe', 'msi', 'bat'].includes(name)) return <FileExeIcon className=\"file type icon\" aria-hidden=\"true\" />\n\n return <FileIcon className=\"file type icon\" aria-hidden=\"true\" />\n}\n\nexport const InputFile = forwardRef<HTMLDivElement, InputFileProps>(function InputFile(\n {\n accept,\n multiple = false,\n maxSize,\n maxFiles,\n onChange,\n label,\n helperText,\n errorText,\n error = false,\n disabled = false,\n color = 'primary',\n size = 'md',\n preview = true,\n icon,\n placeholder = 'Drop files here or click to browse',\n dropText = 'Drop files here',\n fullWidth = false,\n crop,\n className,\n ...rest\n },\n ref\n) {\n const [dragging, setDragging] = useState(false)\n const [files, setFiles] = useState<File[]>([])\n const [fileError, setFileError] = useState('')\n const [cropFile, setCropFile] = useState<File | null>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n const dragCounter = useRef(0)\n\n const cropOptions: InputFileCropOptions | null = crop\n ? typeof crop === 'boolean'\n ? {shape: 'square', outputSize: 256, quality: 0.92}\n : {shape: crop.shape ?? 'square', outputSize: crop.outputSize ?? 256, quality: crop.quality ?? 0.92}\n : null\n\n const objectUrls = useMemo(() => {\n return files.map((f) => (isImage(f) ? URL.createObjectURL(f) : null))\n }, [files])\n\n useEffect(() => {\n return () => {\n objectUrls.forEach((url) => {\n if (url) URL.revokeObjectURL(url)\n })\n }\n }, [objectUrls])\n\n const processFiles = useCallback(\n (incoming: FileList | File[]) => {\n let accepted = Array.from(incoming)\n\n if (accept) {\n const patterns = accept.split(',').map((s) => s.trim().toLowerCase())\n accepted = accepted.filter((f) => {\n const ext = '.' + f.name.split('.').pop()?.toLowerCase()\n const mime = f.type.toLowerCase()\n return patterns.some(\n (p) => p === ext || p === mime || (p.endsWith('/*') && mime.startsWith(p.slice(0, -1)))\n )\n })\n }\n\n if (maxSize) {\n const oversized = accepted.filter((f) => f.size > maxSize)\n if (oversized.length) {\n setFileError(`Max file size: ${formatSize(maxSize)}`)\n return\n }\n }\n\n if (maxFiles && accepted.length > maxFiles) {\n setFileError(`Max ${maxFiles} file${maxFiles > 1 ? 's' : ''}`)\n return\n }\n\n setFileError('')\n\n if (cropOptions && accepted.length === 1 && isImage(accepted[0])) {\n setCropFile(accepted[0])\n return\n }\n\n setFiles(accepted)\n onChange?.(accepted)\n },\n [accept, maxSize, maxFiles, onChange, cropOptions]\n )\n\n const handleCropDone = useCallback(\n (cropped: File) => {\n setCropFile(null)\n setFiles([cropped])\n onChange?.([cropped])\n },\n [onChange]\n )\n\n const handleCropCancel = useCallback(() => {\n setCropFile(null)\n }, [])\n\n const handleDragEnter = useCallback(\n (e: React.DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n if (disabled) return\n dragCounter.current++\n setDragging(true)\n },\n [disabled]\n )\n\n const handleDragLeave = useCallback((e: React.DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n dragCounter.current--\n if (dragCounter.current <= 0) {\n dragCounter.current = 0\n setDragging(false)\n }\n }, [])\n\n const handleDragOver = useCallback((e: React.DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n }, [])\n\n const handleDrop = useCallback(\n (e: React.DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n dragCounter.current = 0\n setDragging(false)\n if (disabled) return\n if (e.dataTransfer.files.length) {\n processFiles(e.dataTransfer.files)\n }\n },\n [disabled, processFiles]\n )\n\n const handleClick = useCallback(() => {\n if (!disabled) inputRef.current?.click()\n }, [disabled])\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files?.length) {\n processFiles(e.target.files)\n }\n },\n [processFiles]\n )\n\n const removeFile = useCallback(\n (index: number) => {\n const url = objectUrls[index]\n if (url) URL.revokeObjectURL(url)\n const next = files.filter((_, i) => i !== index)\n setFiles(next)\n onChange?.(next)\n },\n [files, objectUrls, onChange]\n )\n\n const displayError = errorText || fileError\n const hasError = error || !!fileError\n\n return (\n <div\n ref={ref}\n className={cn('file input', color, size, fullWidth && 'full-width', disabled && 'disabled', className)}\n {...rest}\n >\n {label && <div className=\"file label\">{label}</div>}\n\n <div\n className={cn('file dropzone', dragging && 'dragging', hasError && 'error')}\n onClick={handleClick}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleClick()\n }\n }}\n aria-label={label || placeholder}\n >\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n onChange={handleChange}\n tabIndex={-1}\n className=\"file hidden\"\n />\n\n <div className=\"file content\">\n {icon && <div className=\"file icon\">{icon}</div>}\n {!icon && <UploadIcon className=\"file icon default\" aria-hidden=\"true\" />}\n <div className=\"file text\">{dragging ? dropText : placeholder}</div>\n {accept && <div className=\"file accept\">{accept}</div>}\n </div>\n </div>\n\n {cropFile && cropOptions && (\n <CropEditor\n file={cropFile}\n shape={cropOptions.shape!}\n outputSize={cropOptions.outputSize!}\n quality={cropOptions.quality!}\n onCrop={handleCropDone}\n onCancel={handleCropCancel}\n />\n )}\n\n {helperText && !hasError && <div className=\"file helper\">{helperText}</div>}\n {hasError && displayError && <div className=\"file error\">{displayError}</div>}\n\n {preview && files.length > 0 && !cropFile && (\n <div className=\"file preview\">\n {files.map((file, i) => (\n <div key={`${file.name}-${i}`} className=\"file item\">\n <div className=\"file thumb\">\n {objectUrls[i] ? (\n <img src={objectUrls[i]!} alt={file.name} className=\"file image\" />\n ) : (\n <FileTypeIcon ext={fileExtension(file.name)} />\n )}\n </div>\n <div className=\"file info\">\n <span className=\"file name\">{file.name}</span>\n <span className=\"file size\">{formatSize(file.size)}</span>\n </div>\n <button\n type=\"button\"\n className=\"file remove\"\n onClick={(e) => {\n e.stopPropagation()\n removeFile(i)\n }}\n aria-label={`Remove ${file.name}`}\n >\n <CloseIcon aria-hidden=\"true\" />\n </button>\n </div>\n ))}\n </div>\n )}\n </div>\n )\n})\n"],"mappings":"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"}