@tribepad/themis 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/dist/elements/Accordion/index.js +2 -77
  2. package/dist/elements/Accordion/index.js.map +1 -1
  3. package/dist/elements/Accordion/index.mjs +2 -4
  4. package/dist/elements/Accordion/index.mjs.map +1 -1
  5. package/dist/elements/AlertDialog/AlertDialog.d.ts +43 -0
  6. package/dist/elements/AlertDialog/AlertDialog.d.ts.map +1 -0
  7. package/dist/elements/AlertDialog/AlertDialog.styles.d.ts +15 -0
  8. package/dist/elements/AlertDialog/AlertDialog.styles.d.ts.map +1 -0
  9. package/dist/elements/AlertDialog/AlertDialog.types.d.ts +72 -0
  10. package/dist/elements/AlertDialog/AlertDialog.types.d.ts.map +1 -0
  11. package/dist/elements/AlertDialog/index.d.ts +25 -0
  12. package/dist/elements/AlertDialog/index.d.ts.map +1 -0
  13. package/dist/elements/AlertDialog/index.js +3 -0
  14. package/dist/elements/AlertDialog/index.js.map +1 -0
  15. package/dist/elements/AlertDialog/index.mjs +3 -0
  16. package/dist/elements/AlertDialog/index.mjs.map +1 -0
  17. package/dist/elements/Avatar/index.js +2 -53
  18. package/dist/elements/Avatar/index.js.map +1 -1
  19. package/dist/elements/Avatar/index.mjs +2 -4
  20. package/dist/elements/Avatar/index.mjs.map +1 -1
  21. package/dist/elements/Badge/index.js +2 -42
  22. package/dist/elements/Badge/index.js.map +1 -1
  23. package/dist/elements/Badge/index.mjs +2 -5
  24. package/dist/elements/Badge/index.mjs.map +1 -1
  25. package/dist/elements/Breadcrumbs/index.js +2 -53
  26. package/dist/elements/Breadcrumbs/index.js.map +1 -1
  27. package/dist/elements/Breadcrumbs/index.mjs +2 -8
  28. package/dist/elements/Breadcrumbs/index.mjs.map +1 -1
  29. package/dist/elements/Button/Button.d.ts +26 -81
  30. package/dist/elements/Button/Button.d.ts.map +1 -1
  31. package/dist/elements/Button/Button.styles.d.ts +35 -0
  32. package/dist/elements/Button/Button.styles.d.ts.map +1 -0
  33. package/dist/elements/Button/Button.types.d.ts +20 -8
  34. package/dist/elements/Button/Button.types.d.ts.map +1 -1
  35. package/dist/elements/Button/index.js +2 -26
  36. package/dist/elements/Button/index.js.map +1 -1
  37. package/dist/elements/Button/index.mjs +2 -5
  38. package/dist/elements/Button/index.mjs.map +1 -1
  39. package/dist/elements/ButtonGroup/index.js +2 -65
  40. package/dist/elements/ButtonGroup/index.js.map +1 -1
  41. package/dist/elements/ButtonGroup/index.mjs +2 -4
  42. package/dist/elements/ButtonGroup/index.mjs.map +1 -1
  43. package/dist/elements/Card/Card.d.ts.map +1 -1
  44. package/dist/elements/Card/index.js +2 -84
  45. package/dist/elements/Card/index.js.map +1 -1
  46. package/dist/elements/Card/index.mjs +2 -7
  47. package/dist/elements/Card/index.mjs.map +1 -1
  48. package/dist/elements/Carousel/Carousel.d.ts +1 -11
  49. package/dist/elements/Carousel/Carousel.d.ts.map +1 -1
  50. package/dist/elements/Carousel/LazyCarousel.d.ts +1 -1
  51. package/dist/elements/Carousel/LazyCarousel.d.ts.map +1 -1
  52. package/dist/elements/Carousel/index.js +2 -22
  53. package/dist/elements/Carousel/index.js.map +1 -1
  54. package/dist/elements/Carousel/index.mjs +2 -9
  55. package/dist/elements/Carousel/index.mjs.map +1 -1
  56. package/dist/elements/Chart/ChartContext.d.ts.map +1 -1
  57. package/dist/elements/Chart/index.js +2 -46
  58. package/dist/elements/Chart/index.js.map +1 -1
  59. package/dist/elements/Chart/index.mjs +2 -5
  60. package/dist/elements/Chart/index.mjs.map +1 -1
  61. package/dist/elements/Checkbox/index.js +2 -46
  62. package/dist/elements/Checkbox/index.js.map +1 -1
  63. package/dist/elements/Checkbox/index.mjs +2 -5
  64. package/dist/elements/Checkbox/index.mjs.map +1 -1
  65. package/dist/elements/CheckboxGroup/index.js +2 -70
  66. package/dist/elements/CheckboxGroup/index.js.map +1 -1
  67. package/dist/elements/CheckboxGroup/index.mjs +2 -5
  68. package/dist/elements/CheckboxGroup/index.mjs.map +1 -1
  69. package/dist/elements/Combobox/Combobox.d.ts +56 -0
  70. package/dist/elements/Combobox/Combobox.d.ts.map +1 -0
  71. package/dist/elements/Combobox/Combobox.styles.d.ts +29 -0
  72. package/dist/elements/Combobox/Combobox.styles.d.ts.map +1 -0
  73. package/dist/elements/Combobox/Combobox.types.d.ts +67 -0
  74. package/dist/elements/Combobox/Combobox.types.d.ts.map +1 -0
  75. package/dist/elements/Combobox/index.d.ts +20 -0
  76. package/dist/elements/Combobox/index.d.ts.map +1 -0
  77. package/dist/elements/Combobox/index.js +3 -0
  78. package/dist/elements/Combobox/index.js.map +1 -0
  79. package/dist/elements/Combobox/index.mjs +3 -0
  80. package/dist/elements/Combobox/index.mjs.map +1 -0
  81. package/dist/elements/DatePicker/DatePicker.d.ts +1 -1
  82. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  83. package/dist/elements/DatePicker/index.js +2 -122
  84. package/dist/elements/DatePicker/index.js.map +1 -1
  85. package/dist/elements/DatePicker/index.mjs +2 -5
  86. package/dist/elements/DatePicker/index.mjs.map +1 -1
  87. package/dist/elements/Dropdown/Dropdown.d.ts +7 -15
  88. package/dist/elements/Dropdown/Dropdown.d.ts.map +1 -1
  89. package/dist/elements/Dropdown/Dropdown.styles.d.ts +22 -0
  90. package/dist/elements/Dropdown/Dropdown.styles.d.ts.map +1 -0
  91. package/dist/elements/Dropdown/index.d.ts +1 -0
  92. package/dist/elements/Dropdown/index.d.ts.map +1 -1
  93. package/dist/elements/Dropdown/index.js +2 -40
  94. package/dist/elements/Dropdown/index.js.map +1 -1
  95. package/dist/elements/Dropdown/index.mjs +2 -3
  96. package/dist/elements/Dropdown/index.mjs.map +1 -1
  97. package/dist/elements/FileField/index.js +2 -137
  98. package/dist/elements/FileField/index.js.map +1 -1
  99. package/dist/elements/FileField/index.mjs +2 -8
  100. package/dist/elements/FileField/index.mjs.map +1 -1
  101. package/dist/elements/FormLayout/index.js +2 -16
  102. package/dist/elements/FormLayout/index.js.map +1 -1
  103. package/dist/elements/FormLayout/index.mjs +2 -3
  104. package/dist/elements/FormLayout/index.mjs.map +1 -1
  105. package/dist/elements/Modal/Modal.d.ts +9 -14
  106. package/dist/elements/Modal/Modal.d.ts.map +1 -1
  107. package/dist/elements/Modal/Modal.styles.d.ts +29 -0
  108. package/dist/elements/Modal/Modal.styles.d.ts.map +1 -0
  109. package/dist/elements/Modal/index.d.ts +1 -0
  110. package/dist/elements/Modal/index.d.ts.map +1 -1
  111. package/dist/elements/Modal/index.js +2 -51
  112. package/dist/elements/Modal/index.js.map +1 -1
  113. package/dist/elements/Modal/index.mjs +2 -2
  114. package/dist/elements/Modal/index.mjs.map +1 -1
  115. package/dist/elements/NumberField/index.js +2 -56
  116. package/dist/elements/NumberField/index.js.map +1 -1
  117. package/dist/elements/NumberField/index.mjs +2 -7
  118. package/dist/elements/NumberField/index.mjs.map +1 -1
  119. package/dist/elements/OTPInput/OTPInput.d.ts.map +1 -1
  120. package/dist/elements/OTPInput/index.js +2 -12
  121. package/dist/elements/OTPInput/index.js.map +1 -1
  122. package/dist/elements/OTPInput/index.mjs +2 -3
  123. package/dist/elements/OTPInput/index.mjs.map +1 -1
  124. package/dist/elements/Pagination/Pagination.d.ts +45 -0
  125. package/dist/elements/Pagination/Pagination.d.ts.map +1 -0
  126. package/dist/elements/Pagination/Pagination.styles.d.ts +10 -0
  127. package/dist/elements/Pagination/Pagination.styles.d.ts.map +1 -0
  128. package/dist/elements/Pagination/Pagination.types.d.ts +55 -0
  129. package/dist/elements/Pagination/Pagination.types.d.ts.map +1 -0
  130. package/dist/elements/Pagination/index.d.ts +21 -0
  131. package/dist/elements/Pagination/index.d.ts.map +1 -0
  132. package/dist/elements/Pagination/index.js +3 -0
  133. package/dist/elements/Pagination/index.js.map +1 -0
  134. package/dist/elements/Pagination/index.mjs +3 -0
  135. package/dist/elements/Pagination/index.mjs.map +1 -0
  136. package/dist/elements/Panel/index.js +2 -32
  137. package/dist/elements/Panel/index.js.map +1 -1
  138. package/dist/elements/Panel/index.mjs +2 -3
  139. package/dist/elements/Panel/index.mjs.map +1 -1
  140. package/dist/elements/PasswordField/PasswordField.d.ts +27 -0
  141. package/dist/elements/PasswordField/PasswordField.d.ts.map +1 -0
  142. package/dist/elements/PasswordField/PasswordField.styles.d.ts +32 -0
  143. package/dist/elements/PasswordField/PasswordField.styles.d.ts.map +1 -0
  144. package/dist/elements/PasswordField/PasswordField.types.d.ts +100 -0
  145. package/dist/elements/PasswordField/PasswordField.types.d.ts.map +1 -0
  146. package/dist/elements/PasswordField/index.css +2 -0
  147. package/dist/elements/PasswordField/index.css.map +1 -0
  148. package/dist/elements/PasswordField/index.d.ts +20 -0
  149. package/dist/elements/PasswordField/index.d.ts.map +1 -0
  150. package/dist/elements/PasswordField/index.js +3 -0
  151. package/dist/elements/PasswordField/index.js.map +1 -0
  152. package/dist/elements/PasswordField/index.mjs +3 -0
  153. package/dist/elements/PasswordField/index.mjs.map +1 -0
  154. package/dist/elements/Progress/index.js +2 -29
  155. package/dist/elements/Progress/index.js.map +1 -1
  156. package/dist/elements/Progress/index.mjs +2 -4
  157. package/dist/elements/Progress/index.mjs.map +1 -1
  158. package/dist/elements/RadioGroup/index.js +2 -46
  159. package/dist/elements/RadioGroup/index.js.map +1 -1
  160. package/dist/elements/RadioGroup/index.mjs +2 -5
  161. package/dist/elements/RadioGroup/index.mjs.map +1 -1
  162. package/dist/elements/Resizable/components/ResizableHandle.d.ts +0 -8
  163. package/dist/elements/Resizable/components/ResizableHandle.d.ts.map +1 -1
  164. package/dist/elements/Resizable/components/ResizablePanel.d.ts +0 -8
  165. package/dist/elements/Resizable/components/ResizablePanel.d.ts.map +1 -1
  166. package/dist/elements/Resizable/components/ResizablePanelGroup.d.ts +0 -8
  167. package/dist/elements/Resizable/components/ResizablePanelGroup.d.ts.map +1 -1
  168. package/dist/elements/Resizable/components/ResizablePopover.d.ts +0 -8
  169. package/dist/elements/Resizable/components/ResizablePopover.d.ts.map +1 -1
  170. package/dist/elements/Resizable/index.js +2 -64
  171. package/dist/elements/Resizable/index.js.map +1 -1
  172. package/dist/elements/Resizable/index.mjs +2 -7
  173. package/dist/elements/Resizable/index.mjs.map +1 -1
  174. package/dist/elements/SearchField/SearchField.d.ts +27 -0
  175. package/dist/elements/SearchField/SearchField.d.ts.map +1 -0
  176. package/dist/elements/SearchField/SearchField.styles.d.ts +32 -0
  177. package/dist/elements/SearchField/SearchField.styles.d.ts.map +1 -0
  178. package/dist/elements/SearchField/SearchField.types.d.ts +45 -0
  179. package/dist/elements/SearchField/SearchField.types.d.ts.map +1 -0
  180. package/dist/elements/SearchField/index.css +2 -0
  181. package/dist/elements/SearchField/index.css.map +1 -0
  182. package/dist/elements/SearchField/index.d.ts +21 -0
  183. package/dist/elements/SearchField/index.d.ts.map +1 -0
  184. package/dist/elements/SearchField/index.js +3 -0
  185. package/dist/elements/SearchField/index.js.map +1 -0
  186. package/dist/elements/SearchField/index.mjs +3 -0
  187. package/dist/elements/SearchField/index.mjs.map +1 -0
  188. package/dist/elements/Select/Select.d.ts +19 -48
  189. package/dist/elements/Select/Select.d.ts.map +1 -1
  190. package/dist/elements/Select/Select.styles.d.ts +55 -0
  191. package/dist/elements/Select/Select.styles.d.ts.map +1 -0
  192. package/dist/elements/Select/index.js +2 -32
  193. package/dist/elements/Select/index.js.map +1 -1
  194. package/dist/elements/Select/index.mjs +2 -3
  195. package/dist/elements/Select/index.mjs.map +1 -1
  196. package/dist/elements/Skeleton/index.js +2 -21
  197. package/dist/elements/Skeleton/index.js.map +1 -1
  198. package/dist/elements/Skeleton/index.mjs +2 -4
  199. package/dist/elements/Skeleton/index.mjs.map +1 -1
  200. package/dist/elements/Switch/index.js +2 -48
  201. package/dist/elements/Switch/index.js.map +1 -1
  202. package/dist/elements/Switch/index.mjs +2 -30
  203. package/dist/elements/Switch/index.mjs.map +1 -1
  204. package/dist/elements/Table/Table.d.ts +3 -24
  205. package/dist/elements/Table/Table.d.ts.map +1 -1
  206. package/dist/elements/Table/Table.styles.d.ts +24 -0
  207. package/dist/elements/Table/Table.styles.d.ts.map +1 -0
  208. package/dist/elements/Table/index.js +2 -75
  209. package/dist/elements/Table/index.js.map +1 -1
  210. package/dist/elements/Table/index.mjs +2 -6
  211. package/dist/elements/Table/index.mjs.map +1 -1
  212. package/dist/elements/Tabs/index.js +2 -73
  213. package/dist/elements/Tabs/index.js.map +1 -1
  214. package/dist/elements/Tabs/index.mjs +2 -4
  215. package/dist/elements/Tabs/index.mjs.map +1 -1
  216. package/dist/elements/TextField/TextField.d.ts +6 -42
  217. package/dist/elements/TextField/TextField.d.ts.map +1 -1
  218. package/dist/elements/TextField/TextField.hooks.d.ts +63 -0
  219. package/dist/elements/TextField/TextField.hooks.d.ts.map +1 -0
  220. package/dist/elements/TextField/TextField.icons.d.ts +19 -0
  221. package/dist/elements/TextField/TextField.icons.d.ts.map +1 -0
  222. package/dist/elements/TextField/TextField.styles.d.ts +37 -0
  223. package/dist/elements/TextField/TextField.styles.d.ts.map +1 -0
  224. package/dist/elements/TextField/TextField.types.d.ts +3 -0
  225. package/dist/elements/TextField/TextField.types.d.ts.map +1 -1
  226. package/dist/elements/TextField/index.css +1 -22
  227. package/dist/elements/TextField/index.css.map +1 -1
  228. package/dist/elements/TextField/index.js +2 -259
  229. package/dist/elements/TextField/index.js.map +1 -1
  230. package/dist/elements/TextField/index.mjs +2 -206
  231. package/dist/elements/TextField/index.mjs.map +1 -1
  232. package/dist/elements/TimeField/index.js +2 -44
  233. package/dist/elements/TimeField/index.js.map +1 -1
  234. package/dist/elements/TimeField/index.mjs +2 -3
  235. package/dist/elements/TimeField/index.mjs.map +1 -1
  236. package/dist/elements/Toast/Toast.d.ts +0 -22
  237. package/dist/elements/Toast/Toast.d.ts.map +1 -1
  238. package/dist/elements/Toast/index.js +2 -59
  239. package/dist/elements/Toast/index.js.map +1 -1
  240. package/dist/elements/Toast/index.mjs +2 -6
  241. package/dist/elements/Toast/index.mjs.map +1 -1
  242. package/dist/elements/Tooltip/index.js +2 -58
  243. package/dist/elements/Tooltip/index.js.map +1 -1
  244. package/dist/elements/Tooltip/index.mjs +2 -5
  245. package/dist/elements/Tooltip/index.mjs.map +1 -1
  246. package/dist/elements/index.css +1 -22
  247. package/dist/elements/index.css.map +1 -1
  248. package/dist/elements/index.d.ts +13 -1
  249. package/dist/elements/index.d.ts.map +1 -1
  250. package/dist/elements/index.js +2 -838
  251. package/dist/elements/index.js.map +1 -1
  252. package/dist/elements/index.mjs +2 -41
  253. package/dist/elements/index.mjs.map +1 -1
  254. package/dist/index.css +1 -22
  255. package/dist/index.css.map +1 -1
  256. package/dist/index.js +3 -864
  257. package/dist/index.js.map +1 -1
  258. package/dist/index.mjs +3 -43
  259. package/dist/index.mjs.map +1 -1
  260. package/dist/schemas/index.js +2 -28
  261. package/dist/schemas/index.js.map +1 -1
  262. package/dist/schemas/index.mjs +2 -3
  263. package/dist/schemas/index.mjs.map +1 -1
  264. package/dist/styles/defaults.css +151 -0
  265. package/dist/styles/index.js +1 -152
  266. package/dist/styles/index.js.map +1 -1
  267. package/dist/styles/index.mjs +1 -3
  268. package/dist/styles/index.mjs.map +1 -1
  269. package/dist/utils/index.js +1 -12
  270. package/dist/utils/index.js.map +1 -1
  271. package/dist/utils/index.mjs +1 -3
  272. package/dist/utils/index.mjs.map +1 -1
  273. package/package.json +9 -7
  274. package/src/elements/Accordion/Accordion.stories.tsx +1 -1
  275. package/src/elements/AlertDialog/AlertDialog.stories.tsx +124 -0
  276. package/src/elements/Avatar/Avatar.stories.tsx +1 -1
  277. package/src/elements/Badge/Badge.stories.tsx +1 -1
  278. package/src/elements/Breadcrumbs/Breadcrumbs.stories.tsx +1 -1
  279. package/src/elements/Button/Button.stories.tsx +1 -1
  280. package/src/elements/ButtonGroup/ButtonGroup.stories.tsx +1 -1
  281. package/src/elements/Card/Card.stories.tsx +1 -1
  282. package/src/elements/Carousel/Carousel.stories.tsx +1 -1
  283. package/src/elements/Chart/Chart.stories.tsx +1 -1
  284. package/src/elements/Checkbox/Checkbox.stories.tsx +1 -1
  285. package/src/elements/CheckboxGroup/CheckboxGroup.stories.tsx +1 -1
  286. package/src/elements/Combobox/Combobox.stories.tsx +133 -0
  287. package/src/elements/DatePicker/DatePicker.stories.tsx +1 -1
  288. package/src/elements/Dropdown/Dropdown.stories.tsx +1 -1
  289. package/src/elements/FileField/FileField.stories.tsx +1 -1
  290. package/src/elements/FileField/FileProgress.stories.tsx +1 -1
  291. package/src/elements/FormLayout/FormLayout.stories.tsx +1 -1
  292. package/src/elements/Modal/Modal.stories.tsx +1 -1
  293. package/src/elements/NumberField/NumberField.stories.tsx +1 -1
  294. package/src/elements/OTPInput/OTPInput.stories.tsx +1 -1
  295. package/src/elements/Pagination/Pagination.stories.tsx +203 -0
  296. package/src/elements/Panel/Panel.stories.tsx +1 -1
  297. package/src/elements/PasswordField/PasswordField.stories.tsx +167 -0
  298. package/src/elements/Progress/Progress.stories.tsx +1 -1
  299. package/src/elements/RadioGroup/RadioGroup.stories.tsx +1 -1
  300. package/src/elements/Resizable/Resizable.stories.tsx +1 -1
  301. package/src/elements/SearchField/SearchField.stories.tsx +146 -0
  302. package/src/elements/Select/Select.stories.tsx +1 -1
  303. package/src/elements/Skeleton/Skeleton.stories.tsx +1 -1
  304. package/src/elements/Switch/Switch.stories.tsx +1 -1
  305. package/src/elements/Table/Table.stories.tsx +1 -1
  306. package/src/elements/Tabs/Tabs.stories.tsx +1 -1
  307. package/src/elements/TextField/TextField.stories.tsx +1 -1
  308. package/src/elements/TimeField/TimeField.stories.tsx +1 -1
  309. package/src/elements/Toast/Toast.stories.tsx +1 -1
  310. package/src/elements/Tooltip/Tooltip.stories.tsx +1 -1
  311. package/dist/Carousel-NTZX5TOW.js +0 -16
  312. package/dist/Carousel-NTZX5TOW.js.map +0 -1
  313. package/dist/Carousel-YH3DOQJU.mjs +0 -7
  314. package/dist/Carousel-YH3DOQJU.mjs.map +0 -1
  315. package/dist/chunk-2HIUTHMU.mjs +0 -234
  316. package/dist/chunk-2HIUTHMU.mjs.map +0 -1
  317. package/dist/chunk-34GTFTDO.js +0 -431
  318. package/dist/chunk-34GTFTDO.js.map +0 -1
  319. package/dist/chunk-3H7ASYR7.js +0 -250
  320. package/dist/chunk-3H7ASYR7.js.map +0 -1
  321. package/dist/chunk-3IEN7JOP.js +0 -316
  322. package/dist/chunk-3IEN7JOP.js.map +0 -1
  323. package/dist/chunk-3JHN4GAL.js +0 -326
  324. package/dist/chunk-3JHN4GAL.js.map +0 -1
  325. package/dist/chunk-3MJPASQU.js +0 -232
  326. package/dist/chunk-3MJPASQU.js.map +0 -1
  327. package/dist/chunk-3XD2JUL3.js +0 -572
  328. package/dist/chunk-3XD2JUL3.js.map +0 -1
  329. package/dist/chunk-3YOY2VJ6.js +0 -189
  330. package/dist/chunk-3YOY2VJ6.js.map +0 -1
  331. package/dist/chunk-4DU5JSXB.js +0 -408
  332. package/dist/chunk-4DU5JSXB.js.map +0 -1
  333. package/dist/chunk-4E4E2GSS.js +0 -352
  334. package/dist/chunk-4E4E2GSS.js.map +0 -1
  335. package/dist/chunk-4NHAP4AN.mjs +0 -3
  336. package/dist/chunk-4NHAP4AN.mjs.map +0 -1
  337. package/dist/chunk-4S33J5NY.mjs +0 -415
  338. package/dist/chunk-4S33J5NY.mjs.map +0 -1
  339. package/dist/chunk-5SMGRT3G.mjs +0 -354
  340. package/dist/chunk-5SMGRT3G.mjs.map +0 -1
  341. package/dist/chunk-5SVLJN2C.mjs +0 -22
  342. package/dist/chunk-5SVLJN2C.mjs.map +0 -1
  343. package/dist/chunk-66WTU4EB.mjs +0 -299
  344. package/dist/chunk-66WTU4EB.mjs.map +0 -1
  345. package/dist/chunk-6S25NMOT.mjs +0 -335
  346. package/dist/chunk-6S25NMOT.mjs.map +0 -1
  347. package/dist/chunk-6SP7UB3D.js +0 -4
  348. package/dist/chunk-6SP7UB3D.js.map +0 -1
  349. package/dist/chunk-6TYWWQHM.mjs +0 -565
  350. package/dist/chunk-6TYWWQHM.mjs.map +0 -1
  351. package/dist/chunk-A3YUJA6W.mjs +0 -384
  352. package/dist/chunk-A3YUJA6W.mjs.map +0 -1
  353. package/dist/chunk-A6KEDVUR.js +0 -61
  354. package/dist/chunk-A6KEDVUR.js.map +0 -1
  355. package/dist/chunk-A77RUEWL.js +0 -730
  356. package/dist/chunk-A77RUEWL.js.map +0 -1
  357. package/dist/chunk-AA4IKMPE.mjs +0 -3
  358. package/dist/chunk-AA4IKMPE.mjs.map +0 -1
  359. package/dist/chunk-AKIA6GW6.mjs +0 -163
  360. package/dist/chunk-AKIA6GW6.mjs.map +0 -1
  361. package/dist/chunk-AL6P275L.mjs +0 -435
  362. package/dist/chunk-AL6P275L.mjs.map +0 -1
  363. package/dist/chunk-AZ3RJYTB.js +0 -37
  364. package/dist/chunk-AZ3RJYTB.js.map +0 -1
  365. package/dist/chunk-B5Q4UPL6.js +0 -32
  366. package/dist/chunk-B5Q4UPL6.js.map +0 -1
  367. package/dist/chunk-B6DHPMDP.mjs +0 -335
  368. package/dist/chunk-B6DHPMDP.mjs.map +0 -1
  369. package/dist/chunk-BDXKKMBZ.mjs +0 -184
  370. package/dist/chunk-BDXKKMBZ.mjs.map +0 -1
  371. package/dist/chunk-BL6E2DLZ.mjs +0 -52
  372. package/dist/chunk-BL6E2DLZ.mjs.map +0 -1
  373. package/dist/chunk-CGFDS4XS.mjs +0 -121
  374. package/dist/chunk-CGFDS4XS.mjs.map +0 -1
  375. package/dist/chunk-CJIW5TKI.js +0 -139
  376. package/dist/chunk-CJIW5TKI.js.map +0 -1
  377. package/dist/chunk-CKNISJOQ.js +0 -314
  378. package/dist/chunk-CKNISJOQ.js.map +0 -1
  379. package/dist/chunk-D6CBOECS.mjs +0 -1757
  380. package/dist/chunk-D6CBOECS.mjs.map +0 -1
  381. package/dist/chunk-DDWEVC2S.js +0 -166
  382. package/dist/chunk-DDWEVC2S.js.map +0 -1
  383. package/dist/chunk-DZ556D2F.mjs +0 -176
  384. package/dist/chunk-DZ556D2F.mjs.map +0 -1
  385. package/dist/chunk-E2KQFV3O.mjs +0 -10
  386. package/dist/chunk-E2KQFV3O.mjs.map +0 -1
  387. package/dist/chunk-EMMLADSC.js +0 -126
  388. package/dist/chunk-EMMLADSC.js.map +0 -1
  389. package/dist/chunk-EP4WOI5D.mjs +0 -926
  390. package/dist/chunk-EP4WOI5D.mjs.map +0 -1
  391. package/dist/chunk-FJRXLJC2.mjs +0 -160
  392. package/dist/chunk-FJRXLJC2.mjs.map +0 -1
  393. package/dist/chunk-FKQI434R.js +0 -345
  394. package/dist/chunk-FKQI434R.js.map +0 -1
  395. package/dist/chunk-FPKEAJRZ.mjs +0 -100
  396. package/dist/chunk-FPKEAJRZ.mjs.map +0 -1
  397. package/dist/chunk-FWQYB22U.js +0 -183
  398. package/dist/chunk-FWQYB22U.js.map +0 -1
  399. package/dist/chunk-GD5GHTMA.js +0 -189
  400. package/dist/chunk-GD5GHTMA.js.map +0 -1
  401. package/dist/chunk-GE5XTSDZ.js +0 -447
  402. package/dist/chunk-GE5XTSDZ.js.map +0 -1
  403. package/dist/chunk-GVE47ZAX.mjs +0 -32
  404. package/dist/chunk-GVE47ZAX.mjs.map +0 -1
  405. package/dist/chunk-HK46BT5U.mjs +0 -18
  406. package/dist/chunk-HK46BT5U.mjs.map +0 -1
  407. package/dist/chunk-HQVRMR6N.js +0 -365
  408. package/dist/chunk-HQVRMR6N.js.map +0 -1
  409. package/dist/chunk-HSGBJPJO.mjs +0 -398
  410. package/dist/chunk-HSGBJPJO.mjs.map +0 -1
  411. package/dist/chunk-I3AUTOMZ.mjs +0 -125
  412. package/dist/chunk-I3AUTOMZ.mjs.map +0 -1
  413. package/dist/chunk-IEI5LD5C.mjs +0 -1161
  414. package/dist/chunk-IEI5LD5C.mjs.map +0 -1
  415. package/dist/chunk-IIPTC2X7.mjs +0 -118
  416. package/dist/chunk-IIPTC2X7.mjs.map +0 -1
  417. package/dist/chunk-J7TLHF2Q.js +0 -4
  418. package/dist/chunk-J7TLHF2Q.js.map +0 -1
  419. package/dist/chunk-JJOWXFXQ.mjs +0 -765
  420. package/dist/chunk-JJOWXFXQ.mjs.map +0 -1
  421. package/dist/chunk-JPTSS2OA.mjs +0 -3
  422. package/dist/chunk-JPTSS2OA.mjs.map +0 -1
  423. package/dist/chunk-KFXXRLTP.js +0 -396
  424. package/dist/chunk-KFXXRLTP.js.map +0 -1
  425. package/dist/chunk-KPRRBSG6.mjs +0 -272
  426. package/dist/chunk-KPRRBSG6.mjs.map +0 -1
  427. package/dist/chunk-NFSBGRDB.mjs +0 -57
  428. package/dist/chunk-NFSBGRDB.mjs.map +0 -1
  429. package/dist/chunk-NGJVCFTM.js +0 -219
  430. package/dist/chunk-NGJVCFTM.js.map +0 -1
  431. package/dist/chunk-NSQ6MZJ6.mjs +0 -728
  432. package/dist/chunk-NSQ6MZJ6.mjs.map +0 -1
  433. package/dist/chunk-NYQYHT76.mjs +0 -296
  434. package/dist/chunk-NYQYHT76.mjs.map +0 -1
  435. package/dist/chunk-OLJJGI5B.js +0 -1193
  436. package/dist/chunk-OLJJGI5B.js.map +0 -1
  437. package/dist/chunk-Q3572X2J.js +0 -292
  438. package/dist/chunk-Q3572X2J.js.map +0 -1
  439. package/dist/chunk-QH7N7D4I.mjs +0 -210
  440. package/dist/chunk-QH7N7D4I.mjs.map +0 -1
  441. package/dist/chunk-R7XUIV25.js +0 -466
  442. package/dist/chunk-R7XUIV25.js.map +0 -1
  443. package/dist/chunk-RFFO4KPM.js +0 -135
  444. package/dist/chunk-RFFO4KPM.js.map +0 -1
  445. package/dist/chunk-RFX7QKA7.mjs +0 -180
  446. package/dist/chunk-RFX7QKA7.mjs.map +0 -1
  447. package/dist/chunk-SN5LFAP3.js +0 -940
  448. package/dist/chunk-SN5LFAP3.js.map +0 -1
  449. package/dist/chunk-T4COXKQ3.js +0 -24
  450. package/dist/chunk-T4COXKQ3.js.map +0 -1
  451. package/dist/chunk-TS54QM27.js +0 -125
  452. package/dist/chunk-TS54QM27.js.map +0 -1
  453. package/dist/chunk-UE2S4PCX.mjs +0 -220
  454. package/dist/chunk-UE2S4PCX.mjs.map +0 -1
  455. package/dist/chunk-UTW3QX2A.mjs +0 -282
  456. package/dist/chunk-UTW3QX2A.mjs.map +0 -1
  457. package/dist/chunk-V74LGMAE.js +0 -1767
  458. package/dist/chunk-V74LGMAE.js.map +0 -1
  459. package/dist/chunk-VIREG536.js +0 -12
  460. package/dist/chunk-VIREG536.js.map +0 -1
  461. package/dist/chunk-VY7M7346.js +0 -4
  462. package/dist/chunk-VY7M7346.js.map +0 -1
  463. package/dist/chunk-W3TJOO7H.mjs +0 -319
  464. package/dist/chunk-W3TJOO7H.mjs.map +0 -1
  465. package/dist/chunk-WIUOB36M.js +0 -54
  466. package/dist/chunk-WIUOB36M.js.map +0 -1
  467. package/dist/chunk-WJGLM4CY.js +0 -291
  468. package/dist/chunk-WJGLM4CY.js.map +0 -1
  469. package/dist/chunk-WNURH5OO.mjs +0 -453
  470. package/dist/chunk-WNURH5OO.mjs.map +0 -1
  471. package/dist/chunk-X25TNRSD.mjs +0 -364
  472. package/dist/chunk-X25TNRSD.mjs.map +0 -1
  473. package/dist/chunk-Y3GT7ETK.js +0 -108
  474. package/dist/chunk-Y3GT7ETK.js.map +0 -1
  475. package/dist/chunk-Z4FRNOF6.mjs +0 -115
  476. package/dist/chunk-Z4FRNOF6.mjs.map +0 -1
  477. package/dist/chunk-ZMYLD3BN.js +0 -166
  478. package/dist/chunk-ZMYLD3BN.js.map +0 -1
  479. package/dist/chunk-ZP2KV6EX.js +0 -815
  480. package/dist/chunk-ZP2KV6EX.js.map +0 -1
  481. package/dist/chunk-ZVKXFELU.js +0 -366
  482. package/dist/chunk-ZVKXFELU.js.map +0 -1
@@ -1,728 +0,0 @@
1
- import { cn } from './chunk-E2KQFV3O.mjs';
2
- import { memo, forwardRef, useRef, useImperativeHandle, useState, useCallback, useEffect } from 'react';
3
- import { cva } from 'class-variance-authority';
4
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
5
-
6
- function useOTPKeyboard(options) {
7
- const {
8
- value,
9
- length,
10
- focusedIndex,
11
- onChange,
12
- setFocusedIndex,
13
- disabled = false,
14
- readOnly = false
15
- } = options;
16
- const handleArrowLeft = useCallback(() => {
17
- if (focusedIndex > 0) {
18
- setFocusedIndex(focusedIndex - 1);
19
- }
20
- }, [focusedIndex, setFocusedIndex]);
21
- const handleArrowRight = useCallback(() => {
22
- if (focusedIndex < length - 1) {
23
- setFocusedIndex(focusedIndex + 1);
24
- }
25
- }, [focusedIndex, length, setFocusedIndex]);
26
- const handleBackspace = useCallback(() => {
27
- if (readOnly) return;
28
- const digits = value.split("");
29
- const currentDigit = digits[focusedIndex];
30
- if (currentDigit === "_") {
31
- if (focusedIndex > 0) {
32
- const newIndex = focusedIndex - 1;
33
- digits[newIndex] = "_";
34
- onChange(digits.join(""));
35
- setFocusedIndex(newIndex);
36
- }
37
- } else {
38
- digits[focusedIndex] = "_";
39
- onChange(digits.join(""));
40
- if (focusedIndex > 0) {
41
- setFocusedIndex(focusedIndex - 1);
42
- }
43
- }
44
- }, [value, focusedIndex, readOnly, onChange, setFocusedIndex]);
45
- const handleDelete = useCallback(() => {
46
- if (readOnly) return;
47
- const digits = value.split("");
48
- digits[focusedIndex] = "_";
49
- onChange(digits.join(""));
50
- }, [value, focusedIndex, readOnly, onChange]);
51
- const handleHome = useCallback(() => {
52
- setFocusedIndex(0);
53
- }, [setFocusedIndex]);
54
- const handleEnd = useCallback(() => {
55
- setFocusedIndex(length - 1);
56
- }, [length, setFocusedIndex]);
57
- const handleKeyDown = useCallback(
58
- (e) => {
59
- if (disabled) return;
60
- switch (e.key) {
61
- case "ArrowLeft":
62
- e.preventDefault();
63
- handleArrowLeft();
64
- break;
65
- case "ArrowRight":
66
- e.preventDefault();
67
- handleArrowRight();
68
- break;
69
- case "Backspace":
70
- e.preventDefault();
71
- handleBackspace();
72
- break;
73
- case "Delete":
74
- e.preventDefault();
75
- handleDelete();
76
- break;
77
- case "Home":
78
- e.preventDefault();
79
- handleHome();
80
- break;
81
- case "End":
82
- e.preventDefault();
83
- handleEnd();
84
- break;
85
- // Ctrl/Cmd+A (Select All) - Allow native behavior
86
- case "a":
87
- case "A":
88
- if (e.ctrlKey || e.metaKey) {
89
- return;
90
- }
91
- break;
92
- // Prevent Enter from submitting the form
93
- // Form submission should be handled by onComplete callback when all digits are filled
94
- case "Enter":
95
- e.preventDefault();
96
- break;
97
- }
98
- },
99
- [
100
- disabled,
101
- handleArrowLeft,
102
- handleArrowRight,
103
- handleBackspace,
104
- handleDelete,
105
- handleHome,
106
- handleEnd
107
- ]
108
- );
109
- return {
110
- handleKeyDown
111
- };
112
- }
113
-
114
- // src/elements/OTPInput/hooks/useOTPInput.ts
115
- function useOTPInput(props) {
116
- const {
117
- value: controlledValue,
118
- defaultValue = "",
119
- length = 6,
120
- type = "numeric",
121
- pattern,
122
- onChange,
123
- onComplete,
124
- validate,
125
- error: controlledError,
126
- disabled = false,
127
- readOnly = false
128
- } = props;
129
- const isControlled = controlledValue !== void 0;
130
- const [internalValue, setInternalValue] = useState(() => {
131
- return (defaultValue || "").padEnd(length, "_");
132
- });
133
- const [internalError, setInternalError] = useState(null);
134
- const [focusedIndex, setFocusedIndex] = useState(0);
135
- const completedRef = useRef(null);
136
- const debounceTimerRef = useRef(null);
137
- const currentValue = isControlled ? controlledValue || "".padEnd(length, "_") : internalValue;
138
- const currentError = controlledError !== void 0 ? controlledError : internalError;
139
- const runValidation = useCallback(
140
- (value) => {
141
- const filledLength = value.replace(/_/g, "").length;
142
- if (filledLength < length) {
143
- return null;
144
- }
145
- if (validate) {
146
- return validate(value);
147
- }
148
- if (type === "numeric") {
149
- const numericPattern = /^\d+$/;
150
- const cleanValue = value.replace(/_/g, "");
151
- if (!numericPattern.test(cleanValue)) {
152
- return "Code must contain only digits";
153
- }
154
- } else if (type === "alphanumeric") {
155
- const alphanumericPattern = /^[A-Za-z0-9]+$/;
156
- const cleanValue = value.replace(/_/g, "");
157
- if (!alphanumericPattern.test(cleanValue)) {
158
- return "Code must contain only letters and numbers";
159
- }
160
- } else if (type === "custom" && pattern) {
161
- const cleanValue = value.replace(/_/g, "");
162
- for (const char of cleanValue) {
163
- if (!pattern.test(char)) {
164
- return "Invalid character in code";
165
- }
166
- }
167
- }
168
- return null;
169
- },
170
- [length, type, pattern, validate]
171
- );
172
- const updateValue = useCallback(
173
- (newValue) => {
174
- if (!isControlled) {
175
- setInternalValue(newValue);
176
- }
177
- onChange?.(newValue);
178
- const validationError = runValidation(newValue);
179
- if (!isControlled) {
180
- setInternalError(validationError);
181
- }
182
- const filledLength = newValue.replace(/_/g, "").length;
183
- const isComplete2 = filledLength === length;
184
- if (isComplete2 && !validationError && completedRef.current !== newValue) {
185
- completedRef.current = newValue;
186
- if (debounceTimerRef.current) {
187
- clearTimeout(debounceTimerRef.current);
188
- }
189
- debounceTimerRef.current = setTimeout(() => {
190
- onComplete?.(newValue.replace(/_/g, ""));
191
- }, 200);
192
- }
193
- if (!isComplete2 && completedRef.current) {
194
- completedRef.current = null;
195
- }
196
- },
197
- [isControlled, length, onChange, onComplete, runValidation]
198
- );
199
- const handleChange = useCallback(
200
- (e) => {
201
- if (disabled) return;
202
- const inputValue = e.target.value;
203
- const newChar = inputValue[inputValue.length - 1] || "";
204
- let isValid = false;
205
- if (type === "numeric") {
206
- isValid = /^\d$/.test(newChar);
207
- } else if (type === "alphanumeric") {
208
- isValid = /^[A-Za-z0-9]$/.test(newChar);
209
- } else if (type === "custom" && pattern) {
210
- isValid = pattern.test(newChar);
211
- } else {
212
- isValid = true;
213
- }
214
- if (!isValid) {
215
- return;
216
- }
217
- const valueArray = currentValue.split("");
218
- valueArray[focusedIndex] = newChar;
219
- const newValue = valueArray.join("");
220
- updateValue(newValue);
221
- if (focusedIndex < length - 1) {
222
- setFocusedIndex(focusedIndex + 1);
223
- }
224
- },
225
- [disabled, type, pattern, currentValue, focusedIndex, length, updateValue]
226
- );
227
- const handlePaste = useCallback(
228
- async (e) => {
229
- if (disabled || readOnly) return;
230
- e.preventDefault();
231
- const pastedText = e.clipboardData.getData("text/plain").trim();
232
- if (!pastedText) return;
233
- if (props.onPaste) {
234
- const shouldProceed = await props.onPaste(pastedText);
235
- if (shouldProceed === false) return;
236
- }
237
- let validChars = "";
238
- for (const char of pastedText) {
239
- if (validChars.length >= length) break;
240
- let isValid = false;
241
- if (type === "numeric") {
242
- isValid = /^\d$/.test(char);
243
- } else if (type === "alphanumeric") {
244
- isValid = /^[A-Za-z0-9]$/.test(char);
245
- } else if (type === "custom" && pattern) {
246
- isValid = pattern.test(char);
247
- } else {
248
- isValid = true;
249
- }
250
- if (isValid) {
251
- validChars += char;
252
- }
253
- }
254
- const newValue = validChars.padEnd(length, "_");
255
- updateValue(newValue);
256
- const firstEmptyIndex = newValue.indexOf("_");
257
- setFocusedIndex(firstEmptyIndex === -1 ? length - 1 : firstEmptyIndex);
258
- },
259
- [disabled, readOnly, props, length, type, pattern, updateValue]
260
- );
261
- const clear = useCallback(() => {
262
- const emptyValue = "".padEnd(length, "_");
263
- updateValue(emptyValue);
264
- setFocusedIndex(0);
265
- if (!isControlled) {
266
- setInternalError(null);
267
- }
268
- completedRef.current = null;
269
- }, [length, updateValue, isControlled]);
270
- const setValue = useCallback(
271
- (newValue) => {
272
- const paddedValue = newValue.padEnd(length, "_").slice(0, length);
273
- updateValue(paddedValue);
274
- const firstEmptyIndex = paddedValue.indexOf("_");
275
- setFocusedIndex(firstEmptyIndex === -1 ? length - 1 : firstEmptyIndex);
276
- },
277
- [length, updateValue]
278
- );
279
- const validateCurrent = useCallback(() => {
280
- return runValidation(currentValue);
281
- }, [currentValue, runValidation]);
282
- const isComplete = currentValue.replace(/_/g, "").length === length;
283
- const { handleKeyDown } = useOTPKeyboard({
284
- value: currentValue,
285
- length,
286
- focusedIndex,
287
- onChange: updateValue,
288
- setFocusedIndex,
289
- disabled,
290
- readOnly
291
- });
292
- useEffect(() => {
293
- if (isControlled && controlledValue !== void 0) {
294
- const firstEmptyIndex = controlledValue.indexOf("_");
295
- if (firstEmptyIndex !== -1) {
296
- setFocusedIndex(firstEmptyIndex);
297
- }
298
- }
299
- }, [isControlled, controlledValue]);
300
- useEffect(() => {
301
- return () => {
302
- if (debounceTimerRef.current) {
303
- clearTimeout(debounceTimerRef.current);
304
- }
305
- };
306
- }, []);
307
- return {
308
- value: currentValue,
309
- focusedIndex,
310
- error: currentError,
311
- isComplete,
312
- handleChange,
313
- handleKeyDown,
314
- handlePaste,
315
- setFocusedIndex,
316
- clear,
317
- setValue,
318
- validate: validateCurrent
319
- };
320
- }
321
- var otpDigitVariants = cva(
322
- // Base styles - Applied to all variants
323
- [
324
- "inline-flex",
325
- "items-center",
326
- "justify-center",
327
- "rounded-md",
328
- "border-2",
329
- "font-semibold",
330
- "transition-all",
331
- "duration-200",
332
- "ease-in-out",
333
- "select-none",
334
- "tabindex-[-1]"
335
- // Not tabbable (hidden input handles focus)
336
- ],
337
- {
338
- variants: {
339
- /**
340
- * Size Variants
341
- * All sizes meet WCAG AAA touch target minimum (44x44px)
342
- */
343
- size: {
344
- /**
345
- * Small: 40×40px base + 4px padding = 44×44px touch target
346
- * Font: 16px (base size)
347
- * Use case: Compact layouts, mobile optimization
348
- */
349
- sm: [
350
- "h-10",
351
- // 40px
352
- "w-10",
353
- // 40px
354
- "text-base",
355
- // 16px
356
- "p-1"
357
- // 4px padding for touch target
358
- ],
359
- /**
360
- * Medium (default): 48×56px
361
- * Font: 20px (comfortable reading size)
362
- * Use case: Standard desktop/mobile layouts
363
- */
364
- md: [
365
- "h-14",
366
- // 56px
367
- "w-10 sm:w-12 md:w-14",
368
- // 48px
369
- "text-xl"
370
- // 20px
371
- ],
372
- /**
373
- * Large: 56×64px
374
- * Font: 24px (large reading size)
375
- * Use case: Accessibility focus, high-visibility needs
376
- */
377
- lg: [
378
- "h-16",
379
- // 64px
380
- "w-10 sm:w-12 md:w-16",
381
- // 56px
382
- "text-2xl"
383
- // 24px
384
- ]
385
- },
386
- /**
387
- * State Variants
388
- * All states meet WCAG AAA contrast (7:1 minimum)
389
- */
390
- state: {
391
- /**
392
- * Default: Standard input appearance
393
- * Border: --border
394
- * Background: --background
395
- * Text: --foreground
396
- */
397
- default: [
398
- "border-[var(--input)]",
399
- "bg-[var(--content-background)]",
400
- "text-[var(--content-foreground)]",
401
- "hover:border-[var(--input-hover)]"
402
- ],
403
- /**
404
- * Focus: Active digit being edited
405
- * Border: --primary
406
- * Ring: --ring (2px, 2px offset)
407
- * Contrast: 7:1 minimum
408
- */
409
- focus: [
410
- "border-[var(--input)]",
411
- "ring-2",
412
- "ring-[var(--primary)]",
413
- "ring-offset-2",
414
- "ring-offset-background",
415
- "outline-none"
416
- ],
417
- /**
418
- * Filled: Digit has been entered
419
- * Border: --primary with 50% opacity
420
- * Text: Bold weight for emphasis
421
- */
422
- filled: [
423
- "border-[var(--primary)]",
424
- "bg-[var(--content-background)]",
425
- "text-[var(--content-foreground)]",
426
- "font-bold"
427
- ],
428
- /**
429
- * Error: Validation failed
430
- * Border: --destructive
431
- * Background: --destructive with 10% opacity
432
- * Text: --destructive-foreground
433
- * Animation: Shake on error
434
- */
435
- error: [
436
- "border-[var(--destructive)]",
437
- "bg-[var(--content-background)]",
438
- "text-[var(--destructive-foreground)]",
439
- "animate-shake"
440
- ],
441
- /**
442
- * Success: Validation passed (optional)
443
- * Border: Green (or --success if available)
444
- * Background: Green with 10% opacity
445
- * May include checkmark icon
446
- */
447
- success: [
448
- "border-green-600",
449
- "bg-green-50",
450
- "text-green-900",
451
- "dark:border-green-500",
452
- "dark:bg-green-900/20",
453
- "dark:text-green-100"
454
- ],
455
- /**
456
- * Disabled: Input not interactive
457
- * Border: --border with 50% opacity
458
- * Background: --muted with 50% opacity
459
- * Text: --muted-foreground
460
- * Cursor: not-allowed
461
- * Opacity: 60%
462
- * Contrast: 4.5:1 minimum (AA standard for disabled)
463
- */
464
- disabled: [
465
- "border-[var(--accent-background)]",
466
- "bg-[var(--accent-background)]",
467
- "text-[var(--menu-muted)]",
468
- "cursor-not-allowed",
469
- "opacity-60",
470
- "hover:border-[var(--accent-background)]"
471
- // Prevent hover effect
472
- ]
473
- }
474
- },
475
- defaultVariants: {
476
- size: "md",
477
- state: "default"
478
- }
479
- }
480
- );
481
- var otpContainerVariants = cva(
482
- [
483
- "inline-flex",
484
- "flex-col",
485
- "gap-2"
486
- ],
487
- {
488
- variants: {
489
- /**
490
- * Container size variants
491
- * Affects spacing and layout
492
- */
493
- size: {
494
- sm: ["gap-1.5"],
495
- md: ["gap-2"],
496
- lg: ["gap-3"]
497
- }
498
- },
499
- defaultVariants: {
500
- size: "md"
501
- }
502
- }
503
- );
504
- var otpDigitGroupVariants = cva(
505
- [
506
- "flex",
507
- "items-center"
508
- ],
509
- {
510
- variants: {
511
- /**
512
- * Gap between digits
513
- */
514
- size: {
515
- sm: ["gap-1.5"],
516
- // 6px
517
- md: ["gap-2"],
518
- // 8px
519
- lg: ["gap-3"]
520
- // 12px
521
- }
522
- },
523
- defaultVariants: {
524
- size: "md"
525
- }
526
- }
527
- );
528
- var otpErrorVariants = cva([
529
- "text-sm",
530
- "font-medium",
531
- "text-[var(--destructive)]",
532
- "mt-1.5",
533
- "text-center"
534
- ]);
535
- var otpDescriptionVariants = cva([
536
- "text-sm",
537
- "text-[var(--menu-muted)]",
538
- "mt-1"
539
- ]);
540
- var OTPDigitComponent = ({
541
- value,
542
- focused,
543
- size = "md",
544
- state = "default",
545
- masked = false,
546
- className,
547
- index
548
- }) => {
549
- const isFilled = value !== "_" && value !== "";
550
- const computedState = focused && !state ? "focus" : isFilled && state === "default" ? "filled" : state;
551
- const displayValue = masked && isFilled ? "\u2022" : value === "_" ? "" : value;
552
- return /* @__PURE__ */ jsx(
553
- "div",
554
- {
555
- className: cn(
556
- otpDigitVariants({ size, state: computedState }),
557
- className
558
- ),
559
- role: "presentation",
560
- "aria-hidden": "true",
561
- "data-focused": focused,
562
- "data-filled": isFilled,
563
- "data-index": index,
564
- children: displayValue || /* @__PURE__ */ jsx("span", { className: "text-[var(--menu-muted)] opacity-40", children: "\u2022" })
565
- }
566
- );
567
- };
568
- var OTPDigit = memo(OTPDigitComponent);
569
- OTPDigit.displayName = "OTPDigit";
570
- var OTPInput = forwardRef((props, ref) => {
571
- const {
572
- label,
573
- description,
574
- size = "md",
575
- disabled = false,
576
- readOnly = false,
577
- mask = false,
578
- showSuccess = false,
579
- className,
580
- digitClassName,
581
- onFocus,
582
- onBlur,
583
- inputMode = "numeric",
584
- length = 6
585
- } = props;
586
- const {
587
- value,
588
- focusedIndex,
589
- error,
590
- isComplete,
591
- handleChange,
592
- handleKeyDown,
593
- handlePaste,
594
- setFocusedIndex,
595
- clear,
596
- setValue,
597
- validate
598
- } = useOTPInput(props);
599
- const inputRef = useRef(null);
600
- useImperativeHandle(ref, () => ({
601
- focus: () => inputRef.current?.focus(),
602
- blur: () => inputRef.current?.blur(),
603
- clear,
604
- setValue,
605
- getValue: () => value.replace(/_/g, ""),
606
- isComplete: () => isComplete,
607
- validate,
608
- getElement: () => inputRef.current
609
- }));
610
- const digits = value.split("");
611
- const getDigitState = (index) => {
612
- if (disabled) return "disabled";
613
- if (error) return "error";
614
- if (showSuccess && isComplete && !error) return "success";
615
- if (index === focusedIndex) return "focus";
616
- if (digits[index] !== "_") return "filled";
617
- return "default";
618
- };
619
- const handleFocusEvent = (e) => {
620
- onFocus?.(e);
621
- };
622
- const handleBlurEvent = (e) => {
623
- onBlur?.(e);
624
- };
625
- const handleDigitClick = (index) => {
626
- if (disabled || readOnly) return;
627
- setFocusedIndex(index);
628
- inputRef.current?.focus();
629
- };
630
- const handleDigitKeyDown = (e, index) => {
631
- if (e.key === "Enter" || e.key === " ") {
632
- e.preventDefault();
633
- handleDigitClick(index);
634
- }
635
- };
636
- const descriptionId = description ? `otp-description-${Math.random().toString(36).slice(2, 9)}` : void 0;
637
- const errorId = error ? `otp-error-${Math.random().toString(36).slice(2, 9)}` : void 0;
638
- return /* @__PURE__ */ jsxs("div", { className: cn(otpContainerVariants({ size }), className), children: [
639
- /* @__PURE__ */ jsx(
640
- "input",
641
- {
642
- ref: inputRef,
643
- type: "text",
644
- inputMode,
645
- value: value.replace(/_/g, ""),
646
- onChange: handleChange,
647
- onKeyDown: handleKeyDown,
648
- onPaste: handlePaste,
649
- onFocus: handleFocusEvent,
650
- onBlur: handleBlurEvent,
651
- disabled,
652
- readOnly,
653
- "aria-label": label,
654
- "aria-describedby": [descriptionId, errorId].filter(Boolean).join(" "),
655
- "aria-invalid": !!error,
656
- "aria-errormessage": errorId,
657
- className: "sr-only",
658
- autoComplete: "one-time-code",
659
- maxLength: length
660
- }
661
- ),
662
- /* @__PURE__ */ jsx(
663
- "div",
664
- {
665
- className: cn(otpDigitGroupVariants({ size })),
666
- role: "presentation",
667
- "aria-hidden": "true",
668
- children: digits.map((digit, index) => /* @__PURE__ */ jsx(
669
- "div",
670
- {
671
- onClick: () => handleDigitClick(index),
672
- onKeyDown: (e) => handleDigitKeyDown(e, index),
673
- role: "button",
674
- tabIndex: -1,
675
- className: "cursor-text",
676
- children: /* @__PURE__ */ jsx(
677
- OTPDigit,
678
- {
679
- value: digit,
680
- focused: index === focusedIndex,
681
- size,
682
- state: getDigitState(index),
683
- masked: mask,
684
- className: digitClassName,
685
- index
686
- }
687
- )
688
- },
689
- index
690
- ))
691
- }
692
- ),
693
- description && /* @__PURE__ */ jsx("p", { id: descriptionId, className: otpDescriptionVariants(), children: description }),
694
- error && /* @__PURE__ */ jsx(
695
- "p",
696
- {
697
- id: errorId,
698
- className: otpErrorVariants(),
699
- role: "alert",
700
- "aria-live": "assertive",
701
- children: error
702
- }
703
- ),
704
- /* @__PURE__ */ jsxs(
705
- "div",
706
- {
707
- role: "status",
708
- "aria-live": "polite",
709
- "aria-atomic": "true",
710
- className: "sr-only",
711
- children: [
712
- !isComplete && !error && /* @__PURE__ */ jsxs(Fragment, { children: [
713
- value.replace(/_/g, "").length,
714
- " of ",
715
- length,
716
- " digits entered"
717
- ] }),
718
- isComplete && !error && /* @__PURE__ */ jsx(Fragment, { children: "Verification code complete" })
719
- ]
720
- }
721
- )
722
- ] });
723
- });
724
- OTPInput.displayName = "OTPInput";
725
-
726
- export { OTPInput };
727
- //# sourceMappingURL=chunk-NSQ6MZJ6.mjs.map
728
- //# sourceMappingURL=chunk-NSQ6MZJ6.mjs.map