erp-pro-ui 0.1.0 → 0.1.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 (793) hide show
  1. package/README.md +544 -188
  2. package/dist/accordion.cjs +3 -0
  3. package/dist/accordion.d.ts +2 -0
  4. package/dist/accordion.mjs +2 -0
  5. package/dist/alert.cjs +3 -0
  6. package/dist/alert.d.ts +2 -0
  7. package/dist/alert.mjs +2 -0
  8. package/dist/animated-content.cjs +3 -0
  9. package/dist/animated-content.d.ts +2 -0
  10. package/dist/animated-content.mjs +2 -0
  11. package/dist/animations.css +91 -0
  12. package/dist/ascii-text.cjs +3 -0
  13. package/dist/ascii-text.d.ts +2 -0
  14. package/dist/ascii-text.mjs +2 -0
  15. package/dist/background-gradient-animation.cjs +4 -0
  16. package/dist/background-gradient-animation.d.ts +2 -0
  17. package/dist/background-gradient-animation.mjs +2 -0
  18. package/dist/button-hover-border-gradient.cjs +3 -0
  19. package/dist/button-hover-border-gradient.d.ts +2 -0
  20. package/dist/button-hover-border-gradient.mjs +2 -0
  21. package/dist/button.cjs +3 -0
  22. package/dist/button.d.ts +2 -0
  23. package/dist/button.mjs +2 -0
  24. package/dist/calendar.cjs +3 -0
  25. package/dist/calendar.d.ts +2 -0
  26. package/dist/calendar.mjs +2 -0
  27. package/dist/card.cjs +3 -0
  28. package/dist/card.d.ts +2 -0
  29. package/dist/card.mjs +2 -0
  30. package/dist/carousel.cjs +3 -0
  31. package/dist/carousel.d.ts +2 -0
  32. package/dist/carousel.mjs +2 -0
  33. package/dist/catalog.cjs +308 -0
  34. package/dist/catalog.cjs.map +1 -0
  35. package/dist/catalog.d.ts +496 -0
  36. package/dist/catalog.d.ts.map +1 -0
  37. package/dist/catalog.mjs +304 -0
  38. package/dist/catalog.mjs.map +1 -0
  39. package/dist/charts.cjs +11 -0
  40. package/dist/charts.d.ts +2 -0
  41. package/dist/charts.mjs +2 -0
  42. package/dist/checkbox.cjs +3 -0
  43. package/dist/checkbox.d.ts +2 -0
  44. package/dist/checkbox.mjs +2 -0
  45. package/dist/chip.cjs +3 -0
  46. package/dist/chip.d.ts +2 -0
  47. package/dist/chip.mjs +2 -0
  48. package/dist/chroma-grid.cjs +3 -0
  49. package/dist/chroma-grid.d.ts +2 -0
  50. package/dist/chroma-grid.mjs +2 -0
  51. package/dist/chunks/HoverBorderGradient-DVFEIXFQ.mjs +69 -0
  52. package/dist/chunks/HoverBorderGradient-DVFEIXFQ.mjs.map +1 -0
  53. package/dist/chunks/HoverBorderGradient-Df3PKpw6.cjs +75 -0
  54. package/dist/chunks/HoverBorderGradient-Df3PKpw6.cjs.map +1 -0
  55. package/dist/chunks/accordion-Cbt-SJhj.mjs +66 -0
  56. package/dist/chunks/accordion-Cbt-SJhj.mjs.map +1 -0
  57. package/dist/chunks/accordion-pfJR8YYA.cjs +72 -0
  58. package/dist/chunks/accordion-pfJR8YYA.cjs.map +1 -0
  59. package/dist/chunks/alert-CtdLy4Hv.mjs +40 -0
  60. package/dist/chunks/alert-CtdLy4Hv.mjs.map +1 -0
  61. package/dist/chunks/alert-Dvz1GoL5.cjs +46 -0
  62. package/dist/chunks/alert-Dvz1GoL5.cjs.map +1 -0
  63. package/dist/chunks/animated-content-C1uNg1xO.mjs +292 -0
  64. package/dist/chunks/animated-content-C1uNg1xO.mjs.map +1 -0
  65. package/dist/chunks/animated-content-CttSmLWV.cjs +298 -0
  66. package/dist/chunks/animated-content-CttSmLWV.cjs.map +1 -0
  67. package/dist/chunks/ascii-text-C5tyNsR3.mjs +511 -0
  68. package/dist/chunks/ascii-text-C5tyNsR3.mjs.map +1 -0
  69. package/dist/chunks/ascii-text-DlmArZXh.cjs +519 -0
  70. package/dist/chunks/ascii-text-DlmArZXh.cjs.map +1 -0
  71. package/dist/chunks/background-gradient-animation-BL-lnrJe.mjs +144 -0
  72. package/dist/chunks/background-gradient-animation-BL-lnrJe.mjs.map +1 -0
  73. package/dist/chunks/background-gradient-animation-CXV9GDH8.cjs +156 -0
  74. package/dist/chunks/background-gradient-animation-CXV9GDH8.cjs.map +1 -0
  75. package/dist/chunks/button-B0Lhj0AS.mjs +42 -0
  76. package/dist/chunks/button-B0Lhj0AS.mjs.map +1 -0
  77. package/dist/chunks/button-CZL6kFzT.cjs +48 -0
  78. package/dist/chunks/button-CZL6kFzT.cjs.map +1 -0
  79. package/dist/chunks/button-hover-border-gradient-CSHXM5Cm.cjs +24 -0
  80. package/dist/chunks/button-hover-border-gradient-CSHXM5Cm.cjs.map +1 -0
  81. package/dist/chunks/button-hover-border-gradient-CvoM60wz.mjs +18 -0
  82. package/dist/chunks/button-hover-border-gradient-CvoM60wz.mjs.map +1 -0
  83. package/dist/chunks/calendar-BarcG6x_.mjs +137 -0
  84. package/dist/chunks/calendar-BarcG6x_.mjs.map +1 -0
  85. package/dist/chunks/calendar-xrGmvukr.cjs +143 -0
  86. package/dist/chunks/calendar-xrGmvukr.cjs.map +1 -0
  87. package/dist/chunks/card-CcIF6z2H.mjs +24 -0
  88. package/dist/chunks/card-CcIF6z2H.mjs.map +1 -0
  89. package/dist/chunks/card-gt-HZh0h.cjs +30 -0
  90. package/dist/chunks/card-gt-HZh0h.cjs.map +1 -0
  91. package/dist/chunks/carousel-Cq5uwqQt.cjs +313 -0
  92. package/dist/chunks/carousel-Cq5uwqQt.cjs.map +1 -0
  93. package/dist/chunks/carousel-DJdqBVRK.mjs +307 -0
  94. package/dist/chunks/carousel-DJdqBVRK.mjs.map +1 -0
  95. package/dist/chunks/charts-BpElnsoR.cjs +687 -0
  96. package/dist/chunks/charts-BpElnsoR.cjs.map +1 -0
  97. package/dist/chunks/charts-DugYWvEf.mjs +632 -0
  98. package/dist/chunks/charts-DugYWvEf.mjs.map +1 -0
  99. package/dist/chunks/checkbox-DvwlGwWe.mjs +53 -0
  100. package/dist/chunks/checkbox-DvwlGwWe.mjs.map +1 -0
  101. package/dist/chunks/checkbox-yHuSw-hV.cjs +59 -0
  102. package/dist/chunks/checkbox-yHuSw-hV.cjs.map +1 -0
  103. package/dist/chunks/chip-BGSUmnlO.mjs +139 -0
  104. package/dist/chunks/chip-BGSUmnlO.mjs.map +1 -0
  105. package/dist/chunks/chip-DcBji__g.cjs +145 -0
  106. package/dist/chunks/chip-DcBji__g.cjs.map +1 -0
  107. package/dist/chunks/chroma-grid-9E9j1s9I.cjs +221 -0
  108. package/dist/chunks/chroma-grid-9E9j1s9I.cjs.map +1 -0
  109. package/dist/chunks/chroma-grid-Cdeql_2C.mjs +215 -0
  110. package/dist/chunks/chroma-grid-Cdeql_2C.mjs.map +1 -0
  111. package/dist/chunks/chunk-B_GkZjkl.cjs +28 -0
  112. package/dist/chunks/color-palette-BLvDnCOD.cjs +754 -0
  113. package/dist/chunks/color-palette-BLvDnCOD.cjs.map +1 -0
  114. package/dist/chunks/color-palette-CXlCDiZz.mjs +748 -0
  115. package/dist/chunks/color-palette-CXlCDiZz.mjs.map +1 -0
  116. package/dist/chunks/combobox-BXu3s0dt.cjs +139 -0
  117. package/dist/chunks/combobox-BXu3s0dt.cjs.map +1 -0
  118. package/dist/chunks/combobox-CjK-qG4k.mjs +132 -0
  119. package/dist/chunks/combobox-CjK-qG4k.mjs.map +1 -0
  120. package/dist/chunks/data-table-9HELVsYR.cjs +1154 -0
  121. package/dist/chunks/data-table-9HELVsYR.cjs.map +1 -0
  122. package/dist/chunks/data-table-DyEQn9Yj.mjs +1123 -0
  123. package/dist/chunks/data-table-DyEQn9Yj.mjs.map +1 -0
  124. package/dist/chunks/date-picker-D8gaaMlJ.mjs +135 -0
  125. package/dist/chunks/date-picker-D8gaaMlJ.mjs.map +1 -0
  126. package/dist/chunks/date-picker-W9om1j7A.cjs +141 -0
  127. package/dist/chunks/date-picker-W9om1j7A.cjs.map +1 -0
  128. package/dist/chunks/dialog-CYFiWN8M.cjs +396 -0
  129. package/dist/chunks/dialog-CYFiWN8M.cjs.map +1 -0
  130. package/dist/chunks/dialog-DUWnV9tN.mjs +390 -0
  131. package/dist/chunks/dialog-DUWnV9tN.mjs.map +1 -0
  132. package/dist/chunks/drawer-CLjsYdxN.cjs +128 -0
  133. package/dist/chunks/drawer-CLjsYdxN.cjs.map +1 -0
  134. package/dist/chunks/drawer-D82Jz6KO.mjs +122 -0
  135. package/dist/chunks/drawer-D82Jz6KO.mjs.map +1 -0
  136. package/dist/chunks/form-B2vcaHwh.mjs +161 -0
  137. package/dist/chunks/form-B2vcaHwh.mjs.map +1 -0
  138. package/dist/chunks/form-CzH9GQc6.cjs +203 -0
  139. package/dist/chunks/form-CzH9GQc6.cjs.map +1 -0
  140. package/dist/chunks/gradual-blur-B9GoY8o1.cjs +65 -0
  141. package/dist/chunks/gradual-blur-B9GoY8o1.cjs.map +1 -0
  142. package/dist/chunks/gradual-blur-Bl3dOMEz.mjs +59 -0
  143. package/dist/chunks/gradual-blur-Bl3dOMEz.mjs.map +1 -0
  144. package/dist/chunks/hover-card-v0QwmVBU.cjs +191 -0
  145. package/dist/chunks/hover-card-v0QwmVBU.cjs.map +1 -0
  146. package/dist/chunks/hover-card-xqwpmZNm.mjs +185 -0
  147. package/dist/chunks/hover-card-xqwpmZNm.mjs.map +1 -0
  148. package/dist/chunks/icons-BxIzP2jd.cjs +1717 -0
  149. package/dist/chunks/icons-BxIzP2jd.cjs.map +1 -0
  150. package/dist/chunks/icons-DuumN7z-.mjs +1429 -0
  151. package/dist/chunks/icons-DuumN7z-.mjs.map +1 -0
  152. package/dist/chunks/input-D9qZNqXV.cjs +99 -0
  153. package/dist/chunks/input-D9qZNqXV.cjs.map +1 -0
  154. package/dist/chunks/input-wNqevfQ4.mjs +87 -0
  155. package/dist/chunks/input-wNqevfQ4.mjs.map +1 -0
  156. package/dist/chunks/label-BWPEGVam.cjs +32 -0
  157. package/dist/chunks/label-BWPEGVam.cjs.map +1 -0
  158. package/dist/chunks/label-KPA-yYOF.mjs +26 -0
  159. package/dist/chunks/label-KPA-yYOF.mjs.map +1 -0
  160. package/dist/chunks/loading-S1TdIrbB.mjs +259 -0
  161. package/dist/chunks/loading-S1TdIrbB.mjs.map +1 -0
  162. package/dist/chunks/loading-q7IEg56I.cjs +313 -0
  163. package/dist/chunks/loading-q7IEg56I.cjs.map +1 -0
  164. package/dist/chunks/multi-select-combobox-ELSH_Xr4.mjs +132 -0
  165. package/dist/chunks/multi-select-combobox-ELSH_Xr4.mjs.map +1 -0
  166. package/dist/chunks/multi-select-combobox-UW0X15W7.cjs +139 -0
  167. package/dist/chunks/multi-select-combobox-UW0X15W7.cjs.map +1 -0
  168. package/dist/chunks/otp-input-B6zzOEqw.cjs +186 -0
  169. package/dist/chunks/otp-input-B6zzOEqw.cjs.map +1 -0
  170. package/dist/chunks/otp-input-Bg4nQG6x.mjs +180 -0
  171. package/dist/chunks/otp-input-Bg4nQG6x.mjs.map +1 -0
  172. package/dist/chunks/overlay-DWNTyQzK.cjs +60 -0
  173. package/dist/chunks/overlay-DWNTyQzK.cjs.map +1 -0
  174. package/dist/chunks/overlay-TycCIFOu.mjs +54 -0
  175. package/dist/chunks/overlay-TycCIFOu.mjs.map +1 -0
  176. package/dist/chunks/password-strength-meter-CbNSBuh_.mjs +99 -0
  177. package/dist/chunks/password-strength-meter-CbNSBuh_.mjs.map +1 -0
  178. package/dist/chunks/password-strength-meter-DxMV6GAs.cjs +105 -0
  179. package/dist/chunks/password-strength-meter-DxMV6GAs.cjs.map +1 -0
  180. package/dist/chunks/progress-bar-C1OvQ-NI.cjs +96 -0
  181. package/dist/chunks/progress-bar-C1OvQ-NI.cjs.map +1 -0
  182. package/dist/chunks/progress-bar-C9FZDrju.mjs +89 -0
  183. package/dist/chunks/progress-bar-C9FZDrju.mjs.map +1 -0
  184. package/dist/chunks/radio-C9w_CoiY.mjs +44 -0
  185. package/dist/chunks/radio-C9w_CoiY.mjs.map +1 -0
  186. package/dist/chunks/radio-jMHDvaMY.cjs +50 -0
  187. package/dist/chunks/radio-jMHDvaMY.cjs.map +1 -0
  188. package/dist/chunks/select-D71tk6-I.mjs +152 -0
  189. package/dist/chunks/select-D71tk6-I.mjs.map +1 -0
  190. package/dist/chunks/select-WC_kPqUP.cjs +158 -0
  191. package/dist/chunks/select-WC_kPqUP.cjs.map +1 -0
  192. package/dist/chunks/skeleton-BhYWOp0Q.mjs +215 -0
  193. package/dist/chunks/skeleton-BhYWOp0Q.mjs.map +1 -0
  194. package/dist/chunks/skeleton-DTXpHYYB.cjs +221 -0
  195. package/dist/chunks/skeleton-DTXpHYYB.cjs.map +1 -0
  196. package/dist/chunks/spinners-BBCWD2gw.mjs +11 -0
  197. package/dist/chunks/spinners-BBCWD2gw.mjs.map +1 -0
  198. package/dist/chunks/spinners-BL4ERCCw.cjs +17 -0
  199. package/dist/chunks/spinners-BL4ERCCw.cjs.map +1 -0
  200. package/dist/chunks/splash-cursor-BVSmbcIX.cjs +279 -0
  201. package/dist/chunks/splash-cursor-BVSmbcIX.cjs.map +1 -0
  202. package/dist/chunks/splash-cursor-rSrTnawZ.mjs +273 -0
  203. package/dist/chunks/splash-cursor-rSrTnawZ.mjs.map +1 -0
  204. package/dist/chunks/spotlight-card-BpZLMOp6.mjs +104 -0
  205. package/dist/chunks/spotlight-card-BpZLMOp6.mjs.map +1 -0
  206. package/dist/chunks/spotlight-card-DS1dy1W3.cjs +110 -0
  207. package/dist/chunks/spotlight-card-DS1dy1W3.cjs.map +1 -0
  208. package/dist/chunks/stepper-D4yQsQB0.mjs +261 -0
  209. package/dist/chunks/stepper-D4yQsQB0.mjs.map +1 -0
  210. package/dist/chunks/stepper-fY-Sx72k.cjs +267 -0
  211. package/dist/chunks/stepper-fY-Sx72k.cjs.map +1 -0
  212. package/dist/chunks/sun-to-moon-button-B2Aje05o.mjs +186 -0
  213. package/dist/chunks/sun-to-moon-button-B2Aje05o.mjs.map +1 -0
  214. package/dist/chunks/sun-to-moon-button-BmFwRBye.cjs +192 -0
  215. package/dist/chunks/sun-to-moon-button-BmFwRBye.cjs.map +1 -0
  216. package/dist/chunks/switch-C5otDb4c.cjs +64 -0
  217. package/dist/chunks/switch-C5otDb4c.cjs.map +1 -0
  218. package/dist/chunks/switch-DOVl_i_s.mjs +58 -0
  219. package/dist/chunks/switch-DOVl_i_s.mjs.map +1 -0
  220. package/dist/chunks/textarea-CAUsyu4-.cjs +63 -0
  221. package/dist/chunks/textarea-CAUsyu4-.cjs.map +1 -0
  222. package/dist/chunks/textarea-CU5C-Zw9.mjs +57 -0
  223. package/dist/chunks/textarea-CU5C-Zw9.mjs.map +1 -0
  224. package/dist/chunks/theme-7DWLxJK_.cjs +68 -0
  225. package/dist/chunks/theme-7DWLxJK_.cjs.map +1 -0
  226. package/dist/chunks/theme-BceKeYhw.mjs +56 -0
  227. package/dist/chunks/theme-BceKeYhw.mjs.map +1 -0
  228. package/dist/chunks/toast-CvfP7PUP.mjs +339 -0
  229. package/dist/chunks/toast-CvfP7PUP.mjs.map +1 -0
  230. package/dist/chunks/toast-Ds7_19Ap.cjs +369 -0
  231. package/dist/chunks/toast-Ds7_19Ap.cjs.map +1 -0
  232. package/dist/chunks/tooltip-efHETBo1.mjs +199 -0
  233. package/dist/chunks/tooltip-efHETBo1.mjs.map +1 -0
  234. package/dist/chunks/tooltip-nkIqViGk.cjs +205 -0
  235. package/dist/chunks/tooltip-nkIqViGk.cjs.map +1 -0
  236. package/dist/chunks/typography-CLu6Hx9j.mjs +83 -0
  237. package/dist/chunks/typography-CLu6Hx9j.mjs.map +1 -0
  238. package/dist/chunks/typography-DaLu9tty.cjs +90 -0
  239. package/dist/chunks/typography-DaLu9tty.cjs.map +1 -0
  240. package/dist/chunks/utils-B4SmmY4J.cjs +2019 -0
  241. package/dist/chunks/utils-B4SmmY4J.cjs.map +1 -0
  242. package/dist/chunks/utils-ati1KkDb.mjs +2002 -0
  243. package/dist/chunks/utils-ati1KkDb.mjs.map +1 -0
  244. package/dist/color-palette.cjs +3 -0
  245. package/dist/color-palette.d.ts +2 -0
  246. package/dist/color-palette.mjs +2 -0
  247. package/dist/colors.css +153 -0
  248. package/dist/combobox.cjs +3 -0
  249. package/dist/combobox.d.ts +2 -0
  250. package/dist/combobox.mjs +2 -0
  251. package/dist/components/data-display/card/Card.d.ts.map +1 -0
  252. package/dist/components/data-display/card/index.d.ts.map +1 -0
  253. package/dist/components/data-display/card/types.d.ts +5 -0
  254. package/dist/components/data-display/card/types.d.ts.map +1 -0
  255. package/dist/components/data-display/charts/AreaChart.d.ts.map +1 -0
  256. package/dist/components/data-display/charts/BarChart.d.ts.map +1 -0
  257. package/dist/components/data-display/charts/NeonLineChart.d.ts.map +1 -0
  258. package/dist/components/data-display/charts/PieChart.d.ts.map +1 -0
  259. package/dist/components/data-display/charts/StackedBarChart.d.ts.map +1 -0
  260. package/dist/components/data-display/charts/ThinBreakdownBar.d.ts.map +1 -0
  261. package/dist/components/data-display/charts/chartPalette.d.ts +10 -0
  262. package/dist/components/data-display/charts/chartPalette.d.ts.map +1 -0
  263. package/dist/components/data-display/charts/index.d.ts +14 -0
  264. package/dist/components/data-display/charts/index.d.ts.map +1 -0
  265. package/dist/components/data-display/chip/Chip.d.ts.map +1 -0
  266. package/dist/components/data-display/chip/index.d.ts.map +1 -0
  267. package/dist/components/data-display/color-palette/ColorPalette.d.ts.map +1 -0
  268. package/dist/components/data-display/color-palette/index.d.ts.map +1 -0
  269. package/dist/components/data-display/color-palette/types.d.ts +14 -0
  270. package/dist/components/data-display/color-palette/types.d.ts.map +1 -0
  271. package/dist/components/{basics → data-display}/data-table/DataTable.d.ts +27 -11
  272. package/dist/components/data-display/data-table/DataTable.d.ts.map +1 -0
  273. package/dist/components/data-display/data-table/index.d.ts +4 -0
  274. package/dist/components/data-display/data-table/index.d.ts.map +1 -0
  275. package/dist/components/data-display/index.d.ts +10 -0
  276. package/dist/components/data-display/index.d.ts.map +1 -0
  277. package/dist/components/{basics → data-display}/loading/Loading.d.ts +7 -7
  278. package/dist/components/data-display/loading/Loading.d.ts.map +1 -0
  279. package/dist/components/data-display/loading/index.d.ts.map +1 -0
  280. package/dist/components/data-display/loading/types.d.ts +25 -0
  281. package/dist/components/data-display/loading/types.d.ts.map +1 -0
  282. package/dist/components/data-display/progress-bar/ProgressBar.d.ts +18 -0
  283. package/dist/components/data-display/progress-bar/ProgressBar.d.ts.map +1 -0
  284. package/dist/components/data-display/progress-bar/index.d.ts +3 -0
  285. package/dist/components/data-display/progress-bar/index.d.ts.map +1 -0
  286. package/dist/components/data-display/skeleton/Skeleton.d.ts.map +1 -0
  287. package/dist/components/data-display/skeleton/index.d.ts.map +1 -0
  288. package/dist/components/effects/animated-content/AnimatedContent.d.ts.map +1 -0
  289. package/dist/components/effects/animated-content/index.d.ts.map +1 -0
  290. package/dist/components/effects/animated-content/types.d.ts +45 -0
  291. package/dist/components/effects/animated-content/types.d.ts.map +1 -0
  292. package/dist/components/effects/ascii-text/ASCIIText.d.ts.map +1 -0
  293. package/dist/components/effects/ascii-text/index.d.ts.map +1 -0
  294. package/dist/components/effects/background-gradient-animation/BackgroundGradientAnimation.d.ts.map +1 -0
  295. package/dist/components/effects/background-gradient-animation/BackgroundGradientAnimationDemo.d.ts.map +1 -0
  296. package/dist/components/effects/background-gradient-animation/index.d.ts.map +1 -0
  297. package/dist/components/effects/border-beam/BorderBeam.d.ts +12 -0
  298. package/dist/components/effects/border-beam/BorderBeam.d.ts.map +1 -0
  299. package/dist/components/effects/border-beam/index.d.ts +3 -0
  300. package/dist/components/effects/border-beam/index.d.ts.map +1 -0
  301. package/dist/components/effects/button-hover-border-gradient/ButtonHoverBorderGradient.d.ts.map +1 -0
  302. package/dist/components/effects/button-hover-border-gradient/index.d.ts.map +1 -0
  303. package/dist/components/effects/chroma-grid/ChromaGrid.d.ts.map +1 -0
  304. package/dist/components/effects/chroma-grid/index.d.ts +3 -0
  305. package/dist/components/effects/chroma-grid/index.d.ts.map +1 -0
  306. package/dist/components/effects/chroma-grid/types.d.ts +50 -0
  307. package/dist/components/effects/chroma-grid/types.d.ts.map +1 -0
  308. package/dist/components/{basics → effects}/gradual-blur/GradualBlur.d.ts +1 -1
  309. package/dist/components/effects/gradual-blur/GradualBlur.d.ts.map +1 -0
  310. package/dist/components/effects/gradual-blur/index.d.ts +3 -0
  311. package/dist/components/effects/gradual-blur/index.d.ts.map +1 -0
  312. package/dist/components/effects/gradual-blur/types.d.ts +28 -0
  313. package/dist/components/effects/gradual-blur/types.d.ts.map +1 -0
  314. package/dist/components/effects/hover-border-gradient/HoverBorderGradient.d.ts.map +1 -0
  315. package/dist/components/effects/hover-border-gradient/index.d.ts.map +1 -0
  316. package/dist/components/effects/index.d.ts +12 -0
  317. package/dist/components/effects/index.d.ts.map +1 -0
  318. package/dist/components/effects/splash-cursor/SplashCursor.d.ts.map +1 -0
  319. package/dist/components/effects/splash-cursor/index.d.ts.map +1 -0
  320. package/dist/components/effects/splash-cursor/types.d.ts +40 -0
  321. package/dist/components/effects/splash-cursor/types.d.ts.map +1 -0
  322. package/dist/components/effects/spotlight-card/SpotlightCard.d.ts.map +1 -0
  323. package/dist/components/effects/spotlight-card/index.d.ts +3 -0
  324. package/dist/components/effects/spotlight-card/index.d.ts.map +1 -0
  325. package/dist/components/effects/spotlight-card/types.d.ts +26 -0
  326. package/dist/components/effects/spotlight-card/types.d.ts.map +1 -0
  327. package/dist/components/effects/sun-to-moon-button/SunToMoonButton.d.ts +5 -0
  328. package/dist/components/effects/sun-to-moon-button/SunToMoonButton.d.ts.map +1 -0
  329. package/dist/components/effects/sun-to-moon-button/index.d.ts.map +1 -0
  330. package/dist/components/feedback/alert/Alert.d.ts.map +1 -0
  331. package/dist/components/feedback/alert/index.d.ts.map +1 -0
  332. package/dist/components/feedback/alert/types.d.ts +11 -0
  333. package/dist/components/feedback/alert/types.d.ts.map +1 -0
  334. package/dist/components/feedback/index.d.ts +2 -0
  335. package/dist/components/feedback/index.d.ts.map +1 -0
  336. package/dist/components/{basics/Button → forms/button}/Button.d.ts +1 -1
  337. package/dist/components/forms/button/Button.d.ts.map +1 -0
  338. package/dist/components/forms/button/index.d.ts.map +1 -0
  339. package/dist/components/forms/button/types.d.ts +14 -0
  340. package/dist/components/forms/button/types.d.ts.map +1 -0
  341. package/dist/components/forms/calendar/Calendar.d.ts.map +1 -0
  342. package/dist/components/forms/calendar/index.d.ts.map +1 -0
  343. package/dist/components/forms/calendar/types.d.ts +20 -0
  344. package/dist/components/forms/calendar/types.d.ts.map +1 -0
  345. package/dist/components/forms/checkbox/Checkbox.d.ts.map +1 -0
  346. package/dist/components/forms/checkbox/index.d.ts.map +1 -0
  347. package/dist/components/forms/checkbox/types.d.ts +8 -0
  348. package/dist/components/forms/checkbox/types.d.ts.map +1 -0
  349. package/dist/components/{basics → forms}/combobox/Combobox.d.ts +1 -1
  350. package/dist/components/forms/combobox/Combobox.d.ts.map +1 -0
  351. package/dist/components/forms/combobox/index.d.ts.map +1 -0
  352. package/dist/components/forms/date-picker/DatePicker.d.ts.map +1 -0
  353. package/dist/components/forms/date-picker/index.d.ts +3 -0
  354. package/dist/components/forms/date-picker/index.d.ts.map +1 -0
  355. package/dist/components/forms/date-picker/types.d.ts +21 -0
  356. package/dist/components/forms/date-picker/types.d.ts.map +1 -0
  357. package/dist/components/forms/form/Form.d.ts.map +1 -0
  358. package/dist/components/forms/form/index.d.ts.map +1 -0
  359. package/dist/components/forms/form/types.d.ts +47 -0
  360. package/dist/components/forms/form/types.d.ts.map +1 -0
  361. package/dist/components/forms/index.d.ts +15 -0
  362. package/dist/components/forms/index.d.ts.map +1 -0
  363. package/dist/components/forms/input/Input.d.ts.map +1 -0
  364. package/dist/components/{basics → forms}/input/index.d.ts +1 -0
  365. package/dist/components/forms/input/index.d.ts.map +1 -0
  366. package/dist/components/forms/input/types.d.ts.map +1 -0
  367. package/dist/components/forms/label/Label.d.ts.map +1 -0
  368. package/dist/components/forms/label/index.d.ts.map +1 -0
  369. package/dist/components/forms/label/types.d.ts +5 -0
  370. package/dist/components/forms/label/types.d.ts.map +1 -0
  371. package/dist/components/{basics → forms}/multi-select-combobox/MultiSelectCombobox.d.ts +1 -1
  372. package/dist/components/forms/multi-select-combobox/MultiSelectCombobox.d.ts.map +1 -0
  373. package/dist/components/forms/multi-select-combobox/index.d.ts +3 -0
  374. package/dist/components/forms/multi-select-combobox/index.d.ts.map +1 -0
  375. package/dist/components/forms/otp-input/OTPInput.d.ts.map +1 -0
  376. package/dist/components/forms/otp-input/index.d.ts +3 -0
  377. package/dist/components/{basics/skeleton → forms/otp-input}/index.d.ts.map +1 -1
  378. package/dist/components/forms/otp-input/types.d.ts +2 -0
  379. package/dist/components/forms/otp-input/types.d.ts.map +1 -0
  380. package/dist/components/forms/password-strength-meter/PasswordCriteria.d.ts.map +1 -0
  381. package/dist/components/forms/password-strength-meter/PasswordStrengthMeter.d.ts +5 -0
  382. package/dist/components/forms/password-strength-meter/PasswordStrengthMeter.d.ts.map +1 -0
  383. package/dist/components/forms/password-strength-meter/index.d.ts +3 -0
  384. package/dist/components/forms/password-strength-meter/index.d.ts.map +1 -0
  385. package/dist/components/forms/radio/Radio.d.ts.map +1 -0
  386. package/dist/components/forms/radio/index.d.ts.map +1 -0
  387. package/dist/components/forms/radio/types.d.ts +11 -0
  388. package/dist/components/forms/radio/types.d.ts.map +1 -0
  389. package/dist/components/forms/select/Select.d.ts.map +1 -0
  390. package/dist/components/forms/select/index.d.ts.map +1 -0
  391. package/dist/components/forms/select/types.d.ts +15 -0
  392. package/dist/components/forms/select/types.d.ts.map +1 -0
  393. package/dist/components/forms/switch/Switch.d.ts.map +1 -0
  394. package/dist/components/forms/switch/index.d.ts.map +1 -0
  395. package/dist/components/forms/switch/types.d.ts +6 -0
  396. package/dist/components/forms/switch/types.d.ts.map +1 -0
  397. package/dist/components/forms/textarea/Textarea.d.ts.map +1 -0
  398. package/dist/components/forms/textarea/index.d.ts.map +1 -0
  399. package/dist/components/forms/textarea/types.d.ts +7 -0
  400. package/dist/components/forms/textarea/types.d.ts.map +1 -0
  401. package/dist/components/icons/AlertCircleIcon.d.ts +9 -0
  402. package/dist/components/icons/AlertCircleIcon.d.ts.map +1 -0
  403. package/dist/components/icons/AlertTriangleIcon.d.ts +9 -0
  404. package/dist/components/icons/AlertTriangleIcon.d.ts.map +1 -0
  405. package/dist/components/icons/AudioWaveIcon.d.ts +9 -0
  406. package/dist/components/icons/AudioWaveIcon.d.ts.map +1 -0
  407. package/dist/components/icons/CheckCircleIcon.d.ts +9 -0
  408. package/dist/components/icons/CheckCircleIcon.d.ts.map +1 -0
  409. package/dist/components/icons/ColumnsIcon.d.ts +9 -0
  410. package/dist/components/icons/ColumnsIcon.d.ts.map +1 -0
  411. package/dist/components/icons/FilterIcon.d.ts +9 -0
  412. package/dist/components/icons/FilterIcon.d.ts.map +1 -0
  413. package/dist/components/icons/FilterProfileIcon.d.ts +9 -0
  414. package/dist/components/icons/FilterProfileIcon.d.ts.map +1 -0
  415. package/dist/components/icons/FilterXIcon.d.ts +9 -0
  416. package/dist/components/icons/FilterXIcon.d.ts.map +1 -0
  417. package/dist/components/icons/InfoCircleIcon.d.ts +9 -0
  418. package/dist/components/icons/InfoCircleIcon.d.ts.map +1 -0
  419. package/dist/components/icons/LoaderIcon.d.ts +10 -0
  420. package/dist/components/icons/LoaderIcon.d.ts.map +1 -0
  421. package/dist/components/icons/MailIcon.d.ts +9 -0
  422. package/dist/components/icons/MailIcon.d.ts.map +1 -0
  423. package/dist/components/icons/PlayIcon.d.ts +9 -0
  424. package/dist/components/icons/PlayIcon.d.ts.map +1 -0
  425. package/dist/components/icons/QuestionCircleIcon.d.ts +9 -0
  426. package/dist/components/icons/QuestionCircleIcon.d.ts.map +1 -0
  427. package/dist/components/icons/RefreshIcon.d.ts +9 -0
  428. package/dist/components/icons/RefreshIcon.d.ts.map +1 -0
  429. package/dist/components/icons/RingLoaderIcon.d.ts +11 -0
  430. package/dist/components/icons/RingLoaderIcon.d.ts.map +1 -0
  431. package/dist/components/icons/SelectionIcon.d.ts +9 -0
  432. package/dist/components/icons/SelectionIcon.d.ts.map +1 -0
  433. package/dist/components/icons/XCircleIcon.d.ts +9 -0
  434. package/dist/components/icons/XCircleIcon.d.ts.map +1 -0
  435. package/dist/components/icons/ZapIcon.d.ts +9 -0
  436. package/dist/components/icons/ZapIcon.d.ts.map +1 -0
  437. package/dist/components/icons/index.d.ts +18 -0
  438. package/dist/components/icons/index.d.ts.map +1 -1
  439. package/dist/components/{basics → navigation}/accordion/Accordion.d.ts +1 -1
  440. package/dist/components/navigation/accordion/Accordion.d.ts.map +1 -0
  441. package/dist/components/{basics → navigation}/accordion/index.d.ts +1 -1
  442. package/dist/components/navigation/accordion/index.d.ts.map +1 -0
  443. package/dist/components/navigation/accordion/types.d.ts +18 -0
  444. package/dist/components/navigation/accordion/types.d.ts.map +1 -0
  445. package/dist/components/navigation/carousel/Carousel.d.ts.map +1 -0
  446. package/dist/components/navigation/carousel/index.d.ts.map +1 -0
  447. package/dist/components/navigation/carousel/types.d.ts +64 -0
  448. package/dist/components/navigation/carousel/types.d.ts.map +1 -0
  449. package/dist/components/navigation/index.d.ts +4 -0
  450. package/dist/components/navigation/index.d.ts.map +1 -0
  451. package/dist/components/navigation/stepper/Stepper.d.ts.map +1 -0
  452. package/dist/components/navigation/stepper/index.d.ts.map +1 -0
  453. package/dist/components/navigation/stepper/types.d.ts +83 -0
  454. package/dist/components/navigation/stepper/types.d.ts.map +1 -0
  455. package/dist/components/overlays/dialog/Dialog.d.ts.map +1 -0
  456. package/dist/components/overlays/dialog/index.d.ts +3 -0
  457. package/dist/components/overlays/dialog/index.d.ts.map +1 -0
  458. package/dist/components/{basics → overlays}/dialog/types.d.ts +18 -18
  459. package/dist/components/overlays/dialog/types.d.ts.map +1 -0
  460. package/dist/components/overlays/drawer/Drawer.d.ts.map +1 -0
  461. package/dist/components/overlays/drawer/index.d.ts +3 -0
  462. package/dist/components/overlays/drawer/index.d.ts.map +1 -0
  463. package/dist/components/overlays/drawer/types.d.ts +12 -0
  464. package/dist/components/overlays/drawer/types.d.ts.map +1 -0
  465. package/dist/components/overlays/hover-card/HoverCard.d.ts.map +1 -0
  466. package/dist/components/overlays/hover-card/index.d.ts +3 -0
  467. package/dist/components/overlays/hover-card/index.d.ts.map +1 -0
  468. package/dist/components/overlays/hover-card/types.d.ts +2 -0
  469. package/dist/components/overlays/hover-card/types.d.ts.map +1 -0
  470. package/dist/components/overlays/index.d.ts +6 -0
  471. package/dist/components/overlays/index.d.ts.map +1 -0
  472. package/dist/components/overlays/toast/Toast.d.ts.map +1 -0
  473. package/dist/components/overlays/toast/index.d.ts.map +1 -0
  474. package/dist/components/overlays/toast/types.d.ts +2 -0
  475. package/dist/components/overlays/toast/types.d.ts.map +1 -0
  476. package/dist/components/overlays/tooltip/Tooltip.d.ts.map +1 -0
  477. package/dist/components/overlays/tooltip/index.d.ts.map +1 -0
  478. package/dist/components/overlays/tooltip/types.d.ts +27 -0
  479. package/dist/components/overlays/tooltip/types.d.ts.map +1 -0
  480. package/dist/components/spinners/Audio.d.ts.map +1 -1
  481. package/dist/components/spinners/index.d.ts +2 -0
  482. package/dist/components/spinners/index.d.ts.map +1 -0
  483. package/dist/components/text-animations/{BlurText → blur-text}/BlurText.d.ts +2 -2
  484. package/dist/components/text-animations/blur-text/BlurText.d.ts.map +1 -0
  485. package/dist/components/text-animations/blur-text/index.d.ts.map +1 -0
  486. package/dist/components/{basics/typography → typography}/Typography.d.ts +5 -5
  487. package/dist/components/typography/Typography.d.ts.map +1 -0
  488. package/dist/components/typography/index.d.ts +3 -0
  489. package/dist/components/typography/index.d.ts.map +1 -0
  490. package/dist/contexts/ThemeContext.d.ts +2 -15
  491. package/dist/contexts/ThemeContext.d.ts.map +1 -1
  492. package/dist/data-table.cjs +7 -0
  493. package/dist/data-table.d.ts +2 -0
  494. package/dist/data-table.mjs +2 -0
  495. package/dist/date-picker.cjs +3 -0
  496. package/dist/date-picker.d.ts +2 -0
  497. package/dist/date-picker.mjs +2 -0
  498. package/dist/dialog.cjs +3 -0
  499. package/dist/dialog.d.ts +2 -0
  500. package/dist/dialog.mjs +2 -0
  501. package/dist/docs.cjs +699 -0
  502. package/dist/docs.cjs.map +1 -0
  503. package/dist/docs.d.ts +257 -0
  504. package/dist/docs.d.ts.map +1 -0
  505. package/dist/docs.mjs +691 -0
  506. package/dist/docs.mjs.map +1 -0
  507. package/dist/drawer.cjs +3 -0
  508. package/dist/drawer.d.ts +2 -0
  509. package/dist/drawer.mjs +2 -0
  510. package/dist/fonts/geist/Geist-Black.woff2 +0 -0
  511. package/dist/fonts/geist/Geist-Bold.woff2 +0 -0
  512. package/dist/fonts/geist/Geist-ExtraBold.woff2 +0 -0
  513. package/dist/fonts/geist/Geist-ExtraLight.woff2 +0 -0
  514. package/dist/fonts/geist/Geist-Light.woff2 +0 -0
  515. package/dist/fonts/geist/Geist-Medium.woff2 +0 -0
  516. package/dist/fonts/geist/Geist-Regular.woff2 +0 -0
  517. package/dist/fonts/geist/Geist-SemiBold.woff2 +0 -0
  518. package/dist/fonts/geist/Geist-Thin.woff2 +0 -0
  519. package/dist/fonts/geist/Geist[wght].woff2 +0 -0
  520. package/dist/fonts.css +84 -0
  521. package/dist/form.cjs +9 -0
  522. package/dist/form.d.ts +2 -0
  523. package/dist/form.mjs +2 -0
  524. package/dist/foundation.css +30 -0
  525. package/dist/foundations/index.d.ts +2 -0
  526. package/dist/foundations/index.d.ts.map +1 -0
  527. package/dist/foundations/theme/ThemeProvider.d.ts +17 -0
  528. package/dist/foundations/theme/ThemeProvider.d.ts.map +1 -0
  529. package/dist/foundations/theme/index.d.ts +3 -0
  530. package/dist/foundations/theme/index.d.ts.map +1 -0
  531. package/dist/gradual-blur.cjs +3 -0
  532. package/dist/gradual-blur.d.ts +2 -0
  533. package/dist/gradual-blur.mjs +2 -0
  534. package/dist/hover-border-gradient.cjs +3 -0
  535. package/dist/hover-border-gradient.d.ts +2 -0
  536. package/dist/hover-border-gradient.mjs +2 -0
  537. package/dist/hover-card.cjs +3 -0
  538. package/dist/hover-card.d.ts +2 -0
  539. package/dist/hover-card.mjs +2 -0
  540. package/dist/icons.cjs +50 -0
  541. package/dist/icons.d.ts +2 -0
  542. package/dist/icons.mjs +2 -0
  543. package/dist/index.cjs +188 -12516
  544. package/dist/index.cjs.map +1 -1
  545. package/dist/index.d.ts +74 -76
  546. package/dist/index.d.ts.map +1 -1
  547. package/dist/index.mjs +67 -12500
  548. package/dist/index.mjs.map +1 -1
  549. package/dist/input.cjs +4 -0
  550. package/dist/input.d.ts +2 -0
  551. package/dist/input.mjs +2 -0
  552. package/dist/label.cjs +3 -0
  553. package/dist/label.d.ts +2 -0
  554. package/dist/label.mjs +2 -0
  555. package/dist/loading.cjs +11 -0
  556. package/dist/loading.d.ts +2 -0
  557. package/dist/loading.mjs +2 -0
  558. package/dist/multi-select-combobox.cjs +3 -0
  559. package/dist/multi-select-combobox.d.ts +2 -0
  560. package/dist/multi-select-combobox.mjs +2 -0
  561. package/dist/otp-input.cjs +3 -0
  562. package/dist/otp-input.d.ts +2 -0
  563. package/dist/otp-input.mjs +2 -0
  564. package/dist/password-strength-meter.cjs +3 -0
  565. package/dist/password-strength-meter.d.ts +2 -0
  566. package/dist/password-strength-meter.mjs +2 -0
  567. package/dist/progress-bar.cjs +3 -0
  568. package/dist/progress-bar.d.ts +2 -0
  569. package/dist/progress-bar.mjs +2 -0
  570. package/dist/radio.cjs +3 -0
  571. package/dist/radio.d.ts +2 -0
  572. package/dist/radio.mjs +2 -0
  573. package/dist/select.cjs +3 -0
  574. package/dist/select.d.ts +2 -0
  575. package/dist/select.mjs +2 -0
  576. package/dist/skeleton.cjs +3 -0
  577. package/dist/skeleton.d.ts +2 -0
  578. package/dist/skeleton.mjs +2 -0
  579. package/dist/spinners.cjs +3 -0
  580. package/dist/spinners.d.ts +2 -0
  581. package/dist/spinners.mjs +2 -0
  582. package/dist/splash-cursor.cjs +3 -0
  583. package/dist/splash-cursor.d.ts +2 -0
  584. package/dist/splash-cursor.mjs +2 -0
  585. package/dist/spotlight-card.cjs +3 -0
  586. package/dist/spotlight-card.d.ts +2 -0
  587. package/dist/spotlight-card.mjs +2 -0
  588. package/dist/stepper.cjs +3 -0
  589. package/dist/stepper.d.ts +2 -0
  590. package/dist/stepper.mjs +2 -0
  591. package/dist/styles.css +6 -0
  592. package/dist/sun-to-moon-button.cjs +3 -0
  593. package/dist/sun-to-moon-button.d.ts +2 -0
  594. package/dist/sun-to-moon-button.mjs +2 -0
  595. package/dist/switch.cjs +3 -0
  596. package/dist/switch.d.ts +2 -0
  597. package/dist/switch.mjs +2 -0
  598. package/dist/textarea.cjs +3 -0
  599. package/dist/textarea.d.ts +2 -0
  600. package/dist/textarea.mjs +2 -0
  601. package/dist/theme.cjs +4 -0
  602. package/dist/theme.d.ts +2 -0
  603. package/dist/theme.mjs +2 -0
  604. package/dist/toast.cjs +11 -0
  605. package/dist/toast.d.ts +6 -0
  606. package/dist/toast.mjs +2 -0
  607. package/dist/tokens.css +592 -0
  608. package/dist/tooltip.cjs +3 -0
  609. package/dist/tooltip.d.ts +2 -0
  610. package/dist/tooltip.mjs +2 -0
  611. package/dist/typography.cjs +3 -0
  612. package/dist/typography.d.ts +2 -0
  613. package/dist/typography.mjs +2 -0
  614. package/dist/utils/generateUniqueKey.d.ts.map +1 -1
  615. package/dist/utils.cjs +5 -0
  616. package/dist/utils.d.ts +2 -0
  617. package/dist/utils.mjs +2 -0
  618. package/package.json +252 -106
  619. package/dist/components/Button.d.ts +0 -8
  620. package/dist/components/Button.d.ts.map +0 -1
  621. package/dist/components/basics/Button/Button.d.ts.map +0 -1
  622. package/dist/components/basics/Button/index.d.ts.map +0 -1
  623. package/dist/components/basics/accordion/Accordion.d.ts.map +0 -1
  624. package/dist/components/basics/accordion/index.d.ts.map +0 -1
  625. package/dist/components/basics/alert/Alert.d.ts.map +0 -1
  626. package/dist/components/basics/alert/index.d.ts.map +0 -1
  627. package/dist/components/basics/animated-content/AnimatedContent.d.ts.map +0 -1
  628. package/dist/components/basics/animated-content/index.d.ts.map +0 -1
  629. package/dist/components/basics/background-gradient-animation/BackgroundGradientAnimation.d.ts.map +0 -1
  630. package/dist/components/basics/background-gradient-animation/BackgroundGradientAnimationDemo.d.ts.map +0 -1
  631. package/dist/components/basics/background-gradient-animation/index.d.ts.map +0 -1
  632. package/dist/components/basics/button-hover-border-gradient/ButtonHoverBorderGradient.d.ts.map +0 -1
  633. package/dist/components/basics/button-hover-border-gradient/index.d.ts.map +0 -1
  634. package/dist/components/basics/calendar/Calendar.d.ts.map +0 -1
  635. package/dist/components/basics/calendar/index.d.ts.map +0 -1
  636. package/dist/components/basics/card/Card.d.ts.map +0 -1
  637. package/dist/components/basics/card/index.d.ts.map +0 -1
  638. package/dist/components/basics/carousel/Carousel.d.ts.map +0 -1
  639. package/dist/components/basics/carousel/index.d.ts.map +0 -1
  640. package/dist/components/basics/charts/AreaChart.d.ts.map +0 -1
  641. package/dist/components/basics/charts/BarChart.d.ts.map +0 -1
  642. package/dist/components/basics/charts/NeonLineChart.d.ts.map +0 -1
  643. package/dist/components/basics/charts/PieChart.d.ts.map +0 -1
  644. package/dist/components/basics/charts/StackedBarChart.d.ts.map +0 -1
  645. package/dist/components/basics/charts/ThinBreakdownBar.d.ts.map +0 -1
  646. package/dist/components/basics/checkbox/Checkbox.d.ts.map +0 -1
  647. package/dist/components/basics/checkbox/index.d.ts.map +0 -1
  648. package/dist/components/basics/chip/Chip.d.ts.map +0 -1
  649. package/dist/components/basics/chip/index.d.ts.map +0 -1
  650. package/dist/components/basics/chroma-grid/ChromaGrid.d.ts.map +0 -1
  651. package/dist/components/basics/chroma-grid/index.d.ts +0 -3
  652. package/dist/components/basics/chroma-grid/index.d.ts.map +0 -1
  653. package/dist/components/basics/colo-palette/ColorPalette.d.ts.map +0 -1
  654. package/dist/components/basics/colo-palette/index.d.ts.map +0 -1
  655. package/dist/components/basics/combobox/Combobox.d.ts.map +0 -1
  656. package/dist/components/basics/combobox/index.d.ts.map +0 -1
  657. package/dist/components/basics/data-table/DataTable.d.ts.map +0 -1
  658. package/dist/components/basics/data-table/index.d.ts +0 -4
  659. package/dist/components/basics/data-table/index.d.ts.map +0 -1
  660. package/dist/components/basics/date-picker/DatePicker.d.ts.map +0 -1
  661. package/dist/components/basics/date-picker/index.d.ts +0 -3
  662. package/dist/components/basics/date-picker/index.d.ts.map +0 -1
  663. package/dist/components/basics/dialog/Dialog.d.ts.map +0 -1
  664. package/dist/components/basics/dialog/types.d.ts.map +0 -1
  665. package/dist/components/basics/drawer/Drawer.d.ts.map +0 -1
  666. package/dist/components/basics/drawer/index.d.ts +0 -3
  667. package/dist/components/basics/drawer/index.d.ts.map +0 -1
  668. package/dist/components/basics/form/Form.d.ts.map +0 -1
  669. package/dist/components/basics/form/index.d.ts.map +0 -1
  670. package/dist/components/basics/gradual-blur/GradualBlur.d.ts.map +0 -1
  671. package/dist/components/basics/gradual-blur/index.d.ts +0 -3
  672. package/dist/components/basics/gradual-blur/index.d.ts.map +0 -1
  673. package/dist/components/basics/hover-border-gradient/HoverBorderGradient.d.ts.map +0 -1
  674. package/dist/components/basics/hover-border-gradient/index.d.ts.map +0 -1
  675. package/dist/components/basics/hover-card/HoverCard.d.ts.map +0 -1
  676. package/dist/components/basics/hover-card/index.d.ts +0 -3
  677. package/dist/components/basics/hover-card/index.d.ts.map +0 -1
  678. package/dist/components/basics/input/Input.d.ts.map +0 -1
  679. package/dist/components/basics/input/index.d.ts.map +0 -1
  680. package/dist/components/basics/input/types.d.ts.map +0 -1
  681. package/dist/components/basics/label/Label.d.ts.map +0 -1
  682. package/dist/components/basics/label/index.d.ts.map +0 -1
  683. package/dist/components/basics/loading/Loading.d.ts.map +0 -1
  684. package/dist/components/basics/loading/index.d.ts.map +0 -1
  685. package/dist/components/basics/multi-select-combobox/MultiSelectCombobox.d.ts.map +0 -1
  686. package/dist/components/basics/multi-select-combobox/index.d.ts +0 -3
  687. package/dist/components/basics/multi-select-combobox/index.d.ts.map +0 -1
  688. package/dist/components/basics/otp-Input/OTPInput.d.ts.map +0 -1
  689. package/dist/components/basics/otp-Input/index.d.ts +0 -3
  690. package/dist/components/basics/otp-Input/index.d.ts.map +0 -1
  691. package/dist/components/basics/password-strength-meter/PasswordCriteria.d.ts.map +0 -1
  692. package/dist/components/basics/password-strength-meter/PasswordStrengthMeter.d.ts +0 -6
  693. package/dist/components/basics/password-strength-meter/PasswordStrengthMeter.d.ts.map +0 -1
  694. package/dist/components/basics/preview/Preview.d.ts +0 -2
  695. package/dist/components/basics/preview/Preview.d.ts.map +0 -1
  696. package/dist/components/basics/preview/index.d.ts +0 -2
  697. package/dist/components/basics/preview/index.d.ts.map +0 -1
  698. package/dist/components/basics/radio/Radio.d.ts.map +0 -1
  699. package/dist/components/basics/radio/index.d.ts.map +0 -1
  700. package/dist/components/basics/select/Select.d.ts.map +0 -1
  701. package/dist/components/basics/select/index.d.ts.map +0 -1
  702. package/dist/components/basics/skeleton/Skeleton.d.ts.map +0 -1
  703. package/dist/components/basics/splashCursor/SplashCursor.d.ts.map +0 -1
  704. package/dist/components/basics/splashCursor/index.d.ts.map +0 -1
  705. package/dist/components/basics/spotlight-card/SpotlightCard.d.ts.map +0 -1
  706. package/dist/components/basics/spotlight-card/index.d.ts +0 -3
  707. package/dist/components/basics/spotlight-card/index.d.ts.map +0 -1
  708. package/dist/components/basics/stepper/Stepper.d.ts.map +0 -1
  709. package/dist/components/basics/stepper/index.d.ts.map +0 -1
  710. package/dist/components/basics/sun-to-moon-button/SunToMoonButton.d.ts +0 -4
  711. package/dist/components/basics/sun-to-moon-button/SunToMoonButton.d.ts.map +0 -1
  712. package/dist/components/basics/sun-to-moon-button/index.d.ts.map +0 -1
  713. package/dist/components/basics/switch/Switch.d.ts.map +0 -1
  714. package/dist/components/basics/switch/index.d.ts.map +0 -1
  715. package/dist/components/basics/textarea/Textarea.d.ts.map +0 -1
  716. package/dist/components/basics/textarea/index.d.ts.map +0 -1
  717. package/dist/components/basics/toast/Toast.d.ts.map +0 -1
  718. package/dist/components/basics/toast/index.d.ts.map +0 -1
  719. package/dist/components/basics/tooltip/Tooltip.d.ts.map +0 -1
  720. package/dist/components/basics/tooltip/index.d.ts.map +0 -1
  721. package/dist/components/basics/typography/Typography.d.ts.map +0 -1
  722. package/dist/components/text-animations/ASCIIText/ASCIIText.d.ts.map +0 -1
  723. package/dist/components/text-animations/ASCIIText/index.d.ts.map +0 -1
  724. package/dist/components/text-animations/BlurText/BlurText.d.ts.map +0 -1
  725. package/dist/components/text-animations/BlurText/index.d.ts.map +0 -1
  726. /package/dist/components/{basics → data-display}/card/Card.d.ts +0 -0
  727. /package/dist/components/{basics → data-display}/card/index.d.ts +0 -0
  728. /package/dist/components/{basics → data-display}/charts/AreaChart.d.ts +0 -0
  729. /package/dist/components/{basics → data-display}/charts/BarChart.d.ts +0 -0
  730. /package/dist/components/{basics → data-display}/charts/NeonLineChart.d.ts +0 -0
  731. /package/dist/components/{basics → data-display}/charts/PieChart.d.ts +0 -0
  732. /package/dist/components/{basics → data-display}/charts/StackedBarChart.d.ts +0 -0
  733. /package/dist/components/{basics → data-display}/charts/ThinBreakdownBar.d.ts +0 -0
  734. /package/dist/components/{basics → data-display}/chip/Chip.d.ts +0 -0
  735. /package/dist/components/{basics → data-display}/chip/index.d.ts +0 -0
  736. /package/dist/components/{basics/colo-palette → data-display/color-palette}/ColorPalette.d.ts +0 -0
  737. /package/dist/components/{basics/colo-palette → data-display/color-palette}/index.d.ts +0 -0
  738. /package/dist/components/{basics → data-display}/loading/index.d.ts +0 -0
  739. /package/dist/components/{basics → data-display}/skeleton/Skeleton.d.ts +0 -0
  740. /package/dist/components/{basics → data-display}/skeleton/index.d.ts +0 -0
  741. /package/dist/components/{basics → effects}/animated-content/AnimatedContent.d.ts +0 -0
  742. /package/dist/components/{basics → effects}/animated-content/index.d.ts +0 -0
  743. /package/dist/components/{text-animations/ASCIIText → effects/ascii-text}/ASCIIText.d.ts +0 -0
  744. /package/dist/components/{text-animations/ASCIIText → effects/ascii-text}/index.d.ts +0 -0
  745. /package/dist/components/{basics → effects}/background-gradient-animation/BackgroundGradientAnimation.d.ts +0 -0
  746. /package/dist/components/{basics → effects}/background-gradient-animation/BackgroundGradientAnimationDemo.d.ts +0 -0
  747. /package/dist/components/{basics → effects}/background-gradient-animation/index.d.ts +0 -0
  748. /package/dist/components/{basics → effects}/button-hover-border-gradient/ButtonHoverBorderGradient.d.ts +0 -0
  749. /package/dist/components/{basics → effects}/button-hover-border-gradient/index.d.ts +0 -0
  750. /package/dist/components/{basics → effects}/chroma-grid/ChromaGrid.d.ts +0 -0
  751. /package/dist/components/{basics → effects}/hover-border-gradient/HoverBorderGradient.d.ts +0 -0
  752. /package/dist/components/{basics → effects}/hover-border-gradient/index.d.ts +0 -0
  753. /package/dist/components/{basics/splashCursor → effects/splash-cursor}/SplashCursor.d.ts +0 -0
  754. /package/dist/components/{basics/splashCursor → effects/splash-cursor}/index.d.ts +0 -0
  755. /package/dist/components/{basics → effects}/spotlight-card/SpotlightCard.d.ts +0 -0
  756. /package/dist/components/{basics → effects}/sun-to-moon-button/index.d.ts +0 -0
  757. /package/dist/components/{basics → feedback}/alert/Alert.d.ts +0 -0
  758. /package/dist/components/{basics → feedback}/alert/index.d.ts +0 -0
  759. /package/dist/components/{basics/Button → forms/button}/index.d.ts +0 -0
  760. /package/dist/components/{basics → forms}/calendar/Calendar.d.ts +0 -0
  761. /package/dist/components/{basics → forms}/calendar/index.d.ts +0 -0
  762. /package/dist/components/{basics → forms}/checkbox/Checkbox.d.ts +0 -0
  763. /package/dist/components/{basics → forms}/checkbox/index.d.ts +0 -0
  764. /package/dist/components/{basics → forms}/combobox/index.d.ts +0 -0
  765. /package/dist/components/{basics → forms}/date-picker/DatePicker.d.ts +0 -0
  766. /package/dist/components/{basics → forms}/form/Form.d.ts +0 -0
  767. /package/dist/components/{basics → forms}/form/index.d.ts +0 -0
  768. /package/dist/components/{basics → forms}/input/Input.d.ts +0 -0
  769. /package/dist/components/{basics → forms}/input/types.d.ts +0 -0
  770. /package/dist/components/{basics → forms}/label/Label.d.ts +0 -0
  771. /package/dist/components/{basics → forms}/label/index.d.ts +0 -0
  772. /package/dist/components/{basics/otp-Input → forms/otp-input}/OTPInput.d.ts +0 -0
  773. /package/dist/components/{basics → forms}/password-strength-meter/PasswordCriteria.d.ts +0 -0
  774. /package/dist/components/{basics → forms}/radio/Radio.d.ts +0 -0
  775. /package/dist/components/{basics → forms}/radio/index.d.ts +0 -0
  776. /package/dist/components/{basics → forms}/select/Select.d.ts +0 -0
  777. /package/dist/components/{basics → forms}/select/index.d.ts +0 -0
  778. /package/dist/components/{basics → forms}/switch/Switch.d.ts +0 -0
  779. /package/dist/components/{basics → forms}/switch/index.d.ts +0 -0
  780. /package/dist/components/{basics → forms}/textarea/Textarea.d.ts +0 -0
  781. /package/dist/components/{basics → forms}/textarea/index.d.ts +0 -0
  782. /package/dist/components/{basics → navigation}/carousel/Carousel.d.ts +0 -0
  783. /package/dist/components/{basics → navigation}/carousel/index.d.ts +0 -0
  784. /package/dist/components/{basics → navigation}/stepper/Stepper.d.ts +0 -0
  785. /package/dist/components/{basics → navigation}/stepper/index.d.ts +0 -0
  786. /package/dist/components/{basics → overlays}/dialog/Dialog.d.ts +0 -0
  787. /package/dist/components/{basics → overlays}/drawer/Drawer.d.ts +0 -0
  788. /package/dist/components/{basics → overlays}/hover-card/HoverCard.d.ts +0 -0
  789. /package/dist/components/{basics → overlays}/toast/Toast.d.ts +0 -0
  790. /package/dist/components/{basics → overlays}/toast/index.d.ts +0 -0
  791. /package/dist/components/{basics → overlays}/tooltip/Tooltip.d.ts +0 -0
  792. /package/dist/components/{basics → overlays}/tooltip/index.d.ts +0 -0
  793. /package/dist/components/text-animations/{BlurText → blur-text}/index.d.ts +0 -0
@@ -0,0 +1,180 @@
1
+ import { forwardRef, useCallback, useEffect, useRef, useState } from "react";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ //#region src/components/forms/otp-input/OTPInput.tsx
4
+ var sizeStyles = {
5
+ sm: "w-9 h-10 text-base",
6
+ md: "w-12 h-14 text-xl",
7
+ lg: "w-14 h-16 text-2xl"
8
+ };
9
+ var variantStyles = {
10
+ outlined: {
11
+ base: "border border-input bg-background-secondary rounded-lg shadow-input text-foreground",
12
+ focus: "focus:border-accent focus:ring-2 focus:ring-accent",
13
+ error: "border-destructive"
14
+ },
15
+ filled: {
16
+ base: "border border-transparent bg-accent-subtle rounded-lg text-foreground",
17
+ focus: "focus:border-accent focus:bg-background-secondary focus:ring-2 focus:ring-accent",
18
+ error: "bg-danger-subtle border-danger-border"
19
+ },
20
+ underlined: {
21
+ base: "border-b-2 border-border-strong bg-transparent rounded-none text-foreground",
22
+ focus: "focus:border-accent",
23
+ error: "border-destructive"
24
+ }
25
+ };
26
+ var OTPInput = forwardRef(({ length = 6, onChange, onComplete, value: controlledValue, defaultValue = "", size = "md", variant = "outlined", disabled = false, error = false, errorMessage, placeholder = "", mask = false, autoFocus = false, type = "number", className = "", inputClassName = "", separator = /* @__PURE__ */ jsx("span", {
27
+ className: "text-neutral-400 text-2xl mx-2",
28
+ children: "—"
29
+ }), separatorPositions = [], "aria-label": ariaLabel = "One-time password" }, ref) => {
30
+ const [values, setValues] = useState(() => {
31
+ return (controlledValue ?? defaultValue).split("").slice(0, length).concat(Array(length).fill("")).slice(0, length);
32
+ });
33
+ const inputRefs = useRef([]);
34
+ useEffect(() => {
35
+ if (controlledValue !== void 0) setValues(controlledValue.split("").slice(0, length).concat(Array(length).fill("")).slice(0, length));
36
+ }, [controlledValue, length]);
37
+ useEffect(() => {
38
+ if (autoFocus && inputRefs.current[0]) inputRefs.current[0].focus();
39
+ }, [autoFocus]);
40
+ const focusInput = useCallback((index) => {
41
+ if (index >= 0 && index < length && inputRefs.current[index]) {
42
+ inputRefs.current[index]?.focus();
43
+ inputRefs.current[index]?.select();
44
+ }
45
+ }, [length]);
46
+ const handleChange = useCallback((index, e) => {
47
+ const char = e.target.value.slice(-1);
48
+ if (type === "number" && char && !/^\d$/.test(char)) return;
49
+ const newValues = [...values];
50
+ newValues[index] = char;
51
+ setValues(newValues);
52
+ const otpValue = newValues.join("");
53
+ onChange?.(otpValue);
54
+ if (char && index < length - 1) focusInput(index + 1);
55
+ if (newValues.every((v) => v !== "") && newValues.length === length) onComplete?.(otpValue);
56
+ }, [
57
+ values,
58
+ onChange,
59
+ onComplete,
60
+ length,
61
+ type,
62
+ focusInput
63
+ ]);
64
+ const handleKeyDown = useCallback((index, e) => {
65
+ switch (e.key) {
66
+ case "Backspace":
67
+ e.preventDefault();
68
+ const newValues = [...values];
69
+ if (values[index]) {
70
+ newValues[index] = "";
71
+ setValues(newValues);
72
+ onChange?.(newValues.join(""));
73
+ } else if (index > 0) {
74
+ newValues[index - 1] = "";
75
+ setValues(newValues);
76
+ onChange?.(newValues.join(""));
77
+ focusInput(index - 1);
78
+ }
79
+ break;
80
+ case "ArrowLeft":
81
+ e.preventDefault();
82
+ focusInput(index - 1);
83
+ break;
84
+ case "ArrowRight":
85
+ e.preventDefault();
86
+ focusInput(index + 1);
87
+ break;
88
+ case "Delete":
89
+ e.preventDefault();
90
+ const deleteValues = [...values];
91
+ deleteValues[index] = "";
92
+ setValues(deleteValues);
93
+ onChange?.(deleteValues.join(""));
94
+ break;
95
+ }
96
+ }, [
97
+ values,
98
+ onChange,
99
+ focusInput
100
+ ]);
101
+ const handlePaste = useCallback((e) => {
102
+ e.preventDefault();
103
+ const pastedData = e.clipboardData.getData("text").slice(0, length);
104
+ if (type === "number" && !/^\d*$/.test(pastedData)) return;
105
+ const newValues = pastedData.split("").slice(0, length).concat(Array(length).fill("")).slice(0, length);
106
+ setValues(newValues);
107
+ const otpValue = newValues.join("");
108
+ onChange?.(otpValue);
109
+ const lastFilledIndex = newValues.findLastIndex((v) => v !== "");
110
+ focusInput(Math.min(lastFilledIndex + 1, length - 1));
111
+ if (newValues.every((v) => v !== "") && pastedData.length >= length) onComplete?.(otpValue);
112
+ }, [
113
+ length,
114
+ type,
115
+ onChange,
116
+ onComplete,
117
+ focusInput
118
+ ]);
119
+ const handleFocus = useCallback((e) => {
120
+ e.target.select();
121
+ }, []);
122
+ const renderInputs = () => {
123
+ const inputs = [];
124
+ for (let i = 0; i < length; i++) {
125
+ if (separatorPositions.includes(i) && i > 0) inputs.push(/* @__PURE__ */ jsx("div", {
126
+ className: "flex items-center",
127
+ children: separator
128
+ }, `separator-${i}`));
129
+ inputs.push(/* @__PURE__ */ jsx("input", {
130
+ ref: (el) => {
131
+ inputRefs.current[i] = el;
132
+ return () => {
133
+ inputRefs.current[i] = null;
134
+ };
135
+ },
136
+ type: mask ? "password" : "text",
137
+ inputMode: type === "number" ? "numeric" : "text",
138
+ pattern: type === "number" ? "\\d*" : void 0,
139
+ maxLength: 1,
140
+ value: values[i] || "",
141
+ placeholder,
142
+ disabled,
143
+ onChange: (e) => handleChange(i, e),
144
+ onKeyDown: (e) => handleKeyDown(i, e),
145
+ onPaste: handlePaste,
146
+ onFocus: handleFocus,
147
+ "aria-label": `${ariaLabel} digit ${i + 1}`,
148
+ className: `
149
+ text-center font-semibold outline-none transition-all
150
+ placeholder:text-muted-foreground
151
+ ${sizeStyles[size]}
152
+ ${variantStyles[variant].base}
153
+ ${!error ? variantStyles[variant].focus : ""}
154
+ ${error ? variantStyles[variant].error : ""}
155
+ ${disabled ? "opacity-50 cursor-not-allowed bg-muted" : ""}
156
+ ${inputClassName}
157
+ `
158
+ }, i));
159
+ }
160
+ return inputs;
161
+ };
162
+ return /* @__PURE__ */ jsxs("div", {
163
+ ref,
164
+ className: `flex flex-col gap-2 ${className}`,
165
+ children: [/* @__PURE__ */ jsx("div", {
166
+ className: "flex items-center gap-2",
167
+ role: "group",
168
+ "aria-label": ariaLabel,
169
+ children: renderInputs()
170
+ }), error && errorMessage && /* @__PURE__ */ jsx("span", {
171
+ className: "text-sm text-destructive",
172
+ children: errorMessage
173
+ })]
174
+ });
175
+ });
176
+ OTPInput.displayName = "OTPInput";
177
+ //#endregion
178
+ export { OTPInput as t };
179
+
180
+ //# sourceMappingURL=otp-input-Bg4nQG6x.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otp-input-Bg4nQG6x.mjs","names":[],"sources":["../../src/components/forms/otp-input/OTPInput.tsx"],"sourcesContent":["import {\n forwardRef,\n useState,\n useRef,\n useCallback,\n useEffect,\n type KeyboardEvent,\n type ClipboardEvent,\n type ChangeEvent,\n} from \"react\";\n\nexport type OTPInputSize = \"sm\" | \"md\" | \"lg\";\nexport type OTPInputVariant = \"outlined\" | \"filled\" | \"underlined\";\n\nexport interface OTPInputProps {\n /** Number of OTP digits */\n length?: number;\n /** Callback when OTP value changes */\n onChange?: (value: string) => void;\n /** Callback when all digits are filled */\n onComplete?: (value: string) => void;\n /** The current value (controlled) */\n value?: string;\n /** Default value (uncontrolled) */\n defaultValue?: string;\n /** Size of the input boxes */\n size?: OTPInputSize;\n /** Visual variant */\n variant?: OTPInputVariant;\n /** Whether the input is disabled */\n disabled?: boolean;\n /** Whether there's an error */\n error?: boolean;\n /** Error message to display */\n errorMessage?: string;\n /** Placeholder character */\n placeholder?: string;\n /** Whether to mask the input (like password) */\n mask?: boolean;\n /** Whether to auto-focus the first input */\n autoFocus?: boolean;\n /** Input type - number only or alphanumeric */\n type?: \"number\" | \"text\";\n /** Custom className for the container */\n className?: string;\n /** Custom className for each input box */\n inputClassName?: string;\n /** Separator to show between groups of digits */\n separator?: React.ReactNode;\n /** Position(s) to show separator (e.g., [3] means after 3rd digit) */\n separatorPositions?: number[];\n /** Accessible label */\n \"aria-label\"?: string;\n}\n\nconst sizeStyles: Record<OTPInputSize, string> = {\n sm: \"w-9 h-10 text-base\",\n md: \"w-12 h-14 text-xl\",\n lg: \"w-14 h-16 text-2xl\",\n};\n\nconst variantStyles: Record<\n OTPInputVariant,\n { base: string; focus: string; error: string }\n> = {\n outlined: {\n base: \"border border-input bg-background-secondary rounded-lg shadow-input text-foreground\",\n focus: \"focus:border-accent focus:ring-2 focus:ring-accent\",\n error: \"border-destructive\",\n },\n filled: {\n base: \"border border-transparent bg-accent-subtle rounded-lg text-foreground\",\n focus:\n \"focus:border-accent focus:bg-background-secondary focus:ring-2 focus:ring-accent\",\n error: \"bg-danger-subtle border-danger-border\",\n },\n underlined: {\n base: \"border-b-2 border-border-strong bg-transparent rounded-none text-foreground\",\n focus: \"focus:border-accent\",\n error: \"border-destructive\",\n },\n};\n\nconst OTPInput = forwardRef<HTMLDivElement, OTPInputProps>(\n (\n {\n length = 6,\n onChange,\n onComplete,\n value: controlledValue,\n defaultValue = \"\",\n size = \"md\",\n variant = \"outlined\",\n disabled = false,\n error = false,\n errorMessage,\n placeholder = \"\",\n mask = false,\n autoFocus = false,\n type = \"number\",\n className = \"\",\n inputClassName = \"\",\n separator = <span className=\"text-neutral-400 text-2xl mx-2\">—</span>,\n separatorPositions = [],\n \"aria-label\": ariaLabel = \"One-time password\",\n },\n ref,\n ) => {\n const [values, setValues] = useState<string[]>(() => {\n const initial = controlledValue ?? defaultValue;\n return initial\n .split(\"\")\n .slice(0, length)\n .concat(Array(length).fill(\"\"))\n .slice(0, length);\n });\n\n const inputRefs = useRef<(HTMLInputElement | null)[]>([]);\n\n // Sync with controlled value\n useEffect(() => {\n if (controlledValue !== undefined) {\n const newValues = controlledValue\n .split(\"\")\n .slice(0, length)\n .concat(Array(length).fill(\"\"))\n .slice(0, length);\n setValues(newValues);\n }\n }, [controlledValue, length]);\n\n // Auto-focus first input\n useEffect(() => {\n if (autoFocus && inputRefs.current[0]) {\n inputRefs.current[0].focus();\n }\n }, [autoFocus]);\n\n const focusInput = useCallback(\n (index: number) => {\n if (index >= 0 && index < length && inputRefs.current[index]) {\n inputRefs.current[index]?.focus();\n inputRefs.current[index]?.select();\n }\n },\n [length],\n );\n\n const handleChange = useCallback(\n (index: number, e: ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n const char = inputValue.slice(-1);\n\n // Validate input based on type\n if (type === \"number\" && char && !/^\\d$/.test(char)) {\n return;\n }\n\n const newValues = [...values];\n newValues[index] = char;\n setValues(newValues);\n\n const otpValue = newValues.join(\"\");\n onChange?.(otpValue);\n\n // Move to next input if value entered\n if (char && index < length - 1) {\n focusInput(index + 1);\n }\n\n // Check if complete\n if (newValues.every((v) => v !== \"\") && newValues.length === length) {\n onComplete?.(otpValue);\n }\n },\n [values, onChange, onComplete, length, type, focusInput],\n );\n\n const handleKeyDown = useCallback(\n (index: number, e: KeyboardEvent<HTMLInputElement>) => {\n switch (e.key) {\n case \"Backspace\":\n e.preventDefault();\n const newValues = [...values];\n if (values[index]) {\n // Clear current value\n newValues[index] = \"\";\n setValues(newValues);\n onChange?.(newValues.join(\"\"));\n } else if (index > 0) {\n // Move to previous and clear\n newValues[index - 1] = \"\";\n setValues(newValues);\n onChange?.(newValues.join(\"\"));\n focusInput(index - 1);\n }\n break;\n case \"ArrowLeft\":\n e.preventDefault();\n focusInput(index - 1);\n break;\n case \"ArrowRight\":\n e.preventDefault();\n focusInput(index + 1);\n break;\n case \"Delete\":\n e.preventDefault();\n const deleteValues = [...values];\n deleteValues[index] = \"\";\n setValues(deleteValues);\n onChange?.(deleteValues.join(\"\"));\n break;\n }\n },\n [values, onChange, focusInput],\n );\n\n const handlePaste = useCallback(\n (e: ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n const pastedData = e.clipboardData.getData(\"text\").slice(0, length);\n\n // Validate pasted content\n if (type === \"number\" && !/^\\d*$/.test(pastedData)) {\n return;\n }\n\n const newValues = pastedData\n .split(\"\")\n .slice(0, length)\n .concat(Array(length).fill(\"\"))\n .slice(0, length);\n\n setValues(newValues);\n const otpValue = newValues.join(\"\");\n onChange?.(otpValue);\n\n // Focus last filled input or last input\n const lastFilledIndex = newValues.findLastIndex((v) => v !== \"\");\n focusInput(Math.min(lastFilledIndex + 1, length - 1));\n\n // Check if complete\n if (newValues.every((v) => v !== \"\") && pastedData.length >= length) {\n onComplete?.(otpValue);\n }\n },\n [length, type, onChange, onComplete, focusInput],\n );\n\n const handleFocus = useCallback((e: React.FocusEvent<HTMLInputElement>) => {\n e.target.select();\n }, []);\n\n const renderInputs = () => {\n const inputs: React.ReactNode[] = [];\n\n for (let i = 0; i < length; i++) {\n // Add separator if needed\n if (separatorPositions.includes(i) && i > 0) {\n inputs.push(\n <div key={`separator-${i}`} className=\"flex items-center\">\n {separator}\n </div>,\n );\n }\n\n inputs.push(\n <input\n key={i}\n ref={(el) => {\n inputRefs.current[i] = el;\n // React 19: Return cleanup function\n return () => {\n inputRefs.current[i] = null;\n };\n }}\n type={mask ? \"password\" : \"text\"}\n inputMode={type === \"number\" ? \"numeric\" : \"text\"}\n pattern={type === \"number\" ? \"\\\\d*\" : undefined}\n maxLength={1}\n value={values[i] || \"\"}\n placeholder={placeholder}\n disabled={disabled}\n onChange={(e) => handleChange(i, e)}\n onKeyDown={(e) => handleKeyDown(i, e)}\n onPaste={handlePaste}\n onFocus={handleFocus}\n aria-label={`${ariaLabel} digit ${i + 1}`}\n className={`\n text-center font-semibold outline-none transition-all\n placeholder:text-muted-foreground\n ${sizeStyles[size]}\n ${variantStyles[variant].base}\n ${!error ? variantStyles[variant].focus : \"\"}\n ${error ? variantStyles[variant].error : \"\"}\n ${disabled ? \"opacity-50 cursor-not-allowed bg-muted\" : \"\"}\n ${inputClassName}\n `}\n />,\n );\n }\n\n return inputs;\n };\n\n return (\n <div ref={ref} className={`flex flex-col gap-2 ${className}`}>\n <div\n className=\"flex items-center gap-2\"\n role=\"group\"\n aria-label={ariaLabel}\n >\n {renderInputs()}\n </div>\n {error && errorMessage && (\n <span className=\"text-sm text-destructive\">{errorMessage}</span>\n )}\n </div>\n );\n },\n);\n\nOTPInput.displayName = \"OTPInput\";\n\nexport default OTPInput;\nexport { OTPInput };\n"],"mappings":";;;AAuDA,IAAM,aAA2C;CAC/C,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAED,IAAM,gBAGF;CACF,UAAU;EACR,MAAM;EACN,OAAO;EACP,OAAO;EACR;CACD,QAAQ;EACN,MAAM;EACN,OACE;EACF,OAAO;EACR;CACD,YAAY;EACV,MAAM;EACN,OAAO;EACP,OAAO;EACR;CACF;AAED,IAAM,WAAW,YAEb,EACE,SAAS,GACT,UACA,YACA,OAAO,iBACP,eAAe,IACf,OAAO,MACP,UAAU,YACV,WAAW,OACX,QAAQ,OACR,cACA,cAAc,IACd,OAAO,OACP,YAAY,OACZ,OAAO,UACP,YAAY,IACZ,iBAAiB,IACjB,YAAY,oBAAC,QAAD;CAAM,WAAU;WAAiC;CAAQ,CAAA,EACrE,qBAAqB,EAAE,EACvB,cAAc,YAAY,uBAE5B,QACG;CACH,MAAM,CAAC,QAAQ,aAAa,eAAyB;AAEnD,UADgB,mBAAmB,cAEhC,MAAM,GAAG,CACT,MAAM,GAAG,OAAO,CAChB,OAAO,MAAM,OAAO,CAAC,KAAK,GAAG,CAAC,CAC9B,MAAM,GAAG,OAAO;GACnB;CAEF,MAAM,YAAY,OAAoC,EAAE,CAAC;AAGzD,iBAAgB;AACd,MAAI,oBAAoB,KAAA,EAMtB,WALkB,gBACf,MAAM,GAAG,CACT,MAAM,GAAG,OAAO,CAChB,OAAO,MAAM,OAAO,CAAC,KAAK,GAAG,CAAC,CAC9B,MAAM,GAAG,OAAO,CACC;IAErB,CAAC,iBAAiB,OAAO,CAAC;AAG7B,iBAAgB;AACd,MAAI,aAAa,UAAU,QAAQ,GACjC,WAAU,QAAQ,GAAG,OAAO;IAE7B,CAAC,UAAU,CAAC;CAEf,MAAM,aAAa,aAChB,UAAkB;AACjB,MAAI,SAAS,KAAK,QAAQ,UAAU,UAAU,QAAQ,QAAQ;AAC5D,aAAU,QAAQ,QAAQ,OAAO;AACjC,aAAU,QAAQ,QAAQ,QAAQ;;IAGtC,CAAC,OAAO,CACT;CAED,MAAM,eAAe,aAClB,OAAe,MAAqC;EAEnD,MAAM,OADa,EAAE,OAAO,MACJ,MAAM,GAAG;AAGjC,MAAI,SAAS,YAAY,QAAQ,CAAC,OAAO,KAAK,KAAK,CACjD;EAGF,MAAM,YAAY,CAAC,GAAG,OAAO;AAC7B,YAAU,SAAS;AACnB,YAAU,UAAU;EAEpB,MAAM,WAAW,UAAU,KAAK,GAAG;AACnC,aAAW,SAAS;AAGpB,MAAI,QAAQ,QAAQ,SAAS,EAC3B,YAAW,QAAQ,EAAE;AAIvB,MAAI,UAAU,OAAO,MAAM,MAAM,GAAG,IAAI,UAAU,WAAW,OAC3D,cAAa,SAAS;IAG1B;EAAC;EAAQ;EAAU;EAAY;EAAQ;EAAM;EAAW,CACzD;CAED,MAAM,gBAAgB,aACnB,OAAe,MAAuC;AACrD,UAAQ,EAAE,KAAV;GACE,KAAK;AACH,MAAE,gBAAgB;IAClB,MAAM,YAAY,CAAC,GAAG,OAAO;AAC7B,QAAI,OAAO,QAAQ;AAEjB,eAAU,SAAS;AACnB,eAAU,UAAU;AACpB,gBAAW,UAAU,KAAK,GAAG,CAAC;eACrB,QAAQ,GAAG;AAEpB,eAAU,QAAQ,KAAK;AACvB,eAAU,UAAU;AACpB,gBAAW,UAAU,KAAK,GAAG,CAAC;AAC9B,gBAAW,QAAQ,EAAE;;AAEvB;GACF,KAAK;AACH,MAAE,gBAAgB;AAClB,eAAW,QAAQ,EAAE;AACrB;GACF,KAAK;AACH,MAAE,gBAAgB;AAClB,eAAW,QAAQ,EAAE;AACrB;GACF,KAAK;AACH,MAAE,gBAAgB;IAClB,MAAM,eAAe,CAAC,GAAG,OAAO;AAChC,iBAAa,SAAS;AACtB,cAAU,aAAa;AACvB,eAAW,aAAa,KAAK,GAAG,CAAC;AACjC;;IAGN;EAAC;EAAQ;EAAU;EAAW,CAC/B;CAED,MAAM,cAAc,aACjB,MAAwC;AACvC,IAAE,gBAAgB;EAClB,MAAM,aAAa,EAAE,cAAc,QAAQ,OAAO,CAAC,MAAM,GAAG,OAAO;AAGnE,MAAI,SAAS,YAAY,CAAC,QAAQ,KAAK,WAAW,CAChD;EAGF,MAAM,YAAY,WACf,MAAM,GAAG,CACT,MAAM,GAAG,OAAO,CAChB,OAAO,MAAM,OAAO,CAAC,KAAK,GAAG,CAAC,CAC9B,MAAM,GAAG,OAAO;AAEnB,YAAU,UAAU;EACpB,MAAM,WAAW,UAAU,KAAK,GAAG;AACnC,aAAW,SAAS;EAGpB,MAAM,kBAAkB,UAAU,eAAe,MAAM,MAAM,GAAG;AAChE,aAAW,KAAK,IAAI,kBAAkB,GAAG,SAAS,EAAE,CAAC;AAGrD,MAAI,UAAU,OAAO,MAAM,MAAM,GAAG,IAAI,WAAW,UAAU,OAC3D,cAAa,SAAS;IAG1B;EAAC;EAAQ;EAAM;EAAU;EAAY;EAAW,CACjD;CAED,MAAM,cAAc,aAAa,MAA0C;AACzE,IAAE,OAAO,QAAQ;IAChB,EAAE,CAAC;CAEN,MAAM,qBAAqB;EACzB,MAAM,SAA4B,EAAE;AAEpC,OAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,KAAK;AAE/B,OAAI,mBAAmB,SAAS,EAAE,IAAI,IAAI,EACxC,QAAO,KACL,oBAAC,OAAD;IAA4B,WAAU;cACnC;IACG,EAFI,aAAa,IAEjB,CACP;AAGH,UAAO,KACL,oBAAC,SAAD;IAEE,MAAM,OAAO;AACX,eAAU,QAAQ,KAAK;AAEvB,kBAAa;AACX,gBAAU,QAAQ,KAAK;;;IAG3B,MAAM,OAAO,aAAa;IAC1B,WAAW,SAAS,WAAW,YAAY;IAC3C,SAAS,SAAS,WAAW,SAAS,KAAA;IACtC,WAAW;IACX,OAAO,OAAO,MAAM;IACP;IACH;IACV,WAAW,MAAM,aAAa,GAAG,EAAE;IACnC,YAAY,MAAM,cAAc,GAAG,EAAE;IACrC,SAAS;IACT,SAAS;IACT,cAAY,GAAG,UAAU,SAAS,IAAI;IACtC,WAAW;;;gBAGP,WAAW,MAAM;gBACjB,cAAc,SAAS,KAAK;gBAC5B,CAAC,QAAQ,cAAc,SAAS,QAAQ,GAAG;gBAC3C,QAAQ,cAAc,SAAS,QAAQ,GAAG;gBAC1C,WAAW,2CAA2C,GAAG;gBACzD,eAAe;;IAEnB,EA9BK,EA8BL,CACH;;AAGH,SAAO;;AAGT,QACE,qBAAC,OAAD;EAAU;EAAK,WAAW,uBAAuB;YAAjD,CACE,oBAAC,OAAD;GACE,WAAU;GACV,MAAK;GACL,cAAY;aAEX,cAAc;GACX,CAAA,EACL,SAAS,gBACR,oBAAC,QAAD;GAAM,WAAU;aAA4B;GAAoB,CAAA,CAE9D;;EAGX;AAED,SAAS,cAAc"}
@@ -0,0 +1,60 @@
1
+ require("./chunk-B_GkZjkl.cjs");
2
+ let react = require("react");
3
+ //#region src/components/shared/overlay.ts
4
+ var focusableSelectors = [
5
+ "a[href]",
6
+ "button:not([disabled])",
7
+ "textarea:not([disabled])",
8
+ "input:not([disabled])",
9
+ "select:not([disabled])",
10
+ "[tabindex]:not([tabindex=\"-1\"])"
11
+ ];
12
+ var useBodyScrollLock = (active) => {
13
+ (0, react.useEffect)(() => {
14
+ if (!active || typeof window === "undefined") return;
15
+ const { overflow } = document.body.style;
16
+ document.body.style.overflow = "hidden";
17
+ return () => {
18
+ document.body.style.overflow = overflow;
19
+ };
20
+ }, [active]);
21
+ };
22
+ var useFocusTrap = (containerRef, active) => {
23
+ (0, react.useEffect)(() => {
24
+ if (!active || typeof window === "undefined") return;
25
+ const container = containerRef.current;
26
+ if (!container) return;
27
+ const getFocusable = () => Array.from(container.querySelectorAll(focusableSelectors.join(","))).filter((el) => !el.hasAttribute("disabled") && !el.getAttribute("aria-hidden"));
28
+ const focusable = getFocusable();
29
+ const first = focusable[0];
30
+ const last = focusable[focusable.length - 1];
31
+ first?.focus();
32
+ const handleKeyDown = (event) => {
33
+ if (event.key !== "Tab" || focusable.length === 0) return;
34
+ if (event.shiftKey) {
35
+ if (document.activeElement === first) {
36
+ event.preventDefault();
37
+ (last || first)?.focus();
38
+ }
39
+ } else if (document.activeElement === last) {
40
+ event.preventDefault();
41
+ (first || last)?.focus();
42
+ }
43
+ };
44
+ container.addEventListener("keydown", handleKeyDown);
45
+ return () => container.removeEventListener("keydown", handleKeyDown);
46
+ }, [containerRef, active]);
47
+ };
48
+ var useOverlayEffects = (containerRef, active) => {
49
+ useBodyScrollLock(active);
50
+ useFocusTrap(containerRef, active);
51
+ };
52
+ //#endregion
53
+ Object.defineProperty(exports, "useOverlayEffects", {
54
+ enumerable: true,
55
+ get: function() {
56
+ return useOverlayEffects;
57
+ }
58
+ });
59
+
60
+ //# sourceMappingURL=overlay-DWNTyQzK.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay-DWNTyQzK.cjs","names":[],"sources":["../../src/components/shared/overlay.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport type { RefObject } from \"react\";\n\nconst focusableSelectors = [\n \"a[href]\",\n \"button:not([disabled])\",\n \"textarea:not([disabled])\",\n \"input:not([disabled])\",\n \"select:not([disabled])\",\n '[tabindex]:not([tabindex=\"-1\"])',\n];\n\nconst scheduleMicrotask = (callback: () => void) => {\n if (typeof queueMicrotask === \"function\") {\n queueMicrotask(callback);\n return;\n }\n Promise.resolve()\n .then(callback)\n .catch(() => {\n callback();\n });\n};\n\nexport const useBodyScrollLock = (active: boolean) => {\n useEffect(() => {\n if (!active || typeof window === \"undefined\") return;\n const { overflow } = document.body.style;\n document.body.style.overflow = \"hidden\";\n return () => {\n document.body.style.overflow = overflow;\n };\n }, [active]);\n};\n\nexport const useFocusTrap = (\n containerRef: RefObject<HTMLElement | null>,\n active: boolean,\n) => {\n useEffect(() => {\n if (!active || typeof window === \"undefined\") return;\n const container = containerRef.current;\n if (!container) return;\n\n const getFocusable = () =>\n Array.from(\n container.querySelectorAll<HTMLElement>(focusableSelectors.join(\",\")),\n ).filter(\n (el) => !el.hasAttribute(\"disabled\") && !el.getAttribute(\"aria-hidden\"),\n );\n\n const focusable = getFocusable();\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n first?.focus();\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key !== \"Tab\" || focusable.length === 0) return;\n if (event.shiftKey) {\n if (document.activeElement === first) {\n event.preventDefault();\n (last || first)?.focus();\n }\n } else if (document.activeElement === last) {\n event.preventDefault();\n (first || last)?.focus();\n }\n };\n\n container.addEventListener(\"keydown\", handleKeyDown);\n return () => container.removeEventListener(\"keydown\", handleKeyDown);\n }, [containerRef, active]);\n};\n\nexport const useOverlayEffects = (\n containerRef: RefObject<HTMLElement | null>,\n active: boolean,\n) => {\n useBodyScrollLock(active);\n useFocusTrap(containerRef, active);\n};\n\nexport const useOverlayTransition = (open: boolean, duration = 200) => {\n const [closing, setClosing] = useState(false);\n\n useEffect(() => {\n if (open) {\n return undefined;\n }\n\n scheduleMicrotask(() => setClosing(true));\n const timer = setTimeout(() => setClosing(false), duration);\n\n return () => {\n clearTimeout(timer);\n scheduleMicrotask(() => setClosing(false));\n };\n }, [open, duration]);\n\n const shouldRender = open || closing;\n const transitionState: \"open\" | \"closing\" | \"closed\" = open\n ? \"open\"\n : closing\n ? \"closing\"\n : \"closed\";\n\n return { shouldRender, transitionState };\n};\n"],"mappings":";;;AAGA,IAAM,qBAAqB;CACzB;CACA;CACA;CACA;CACA;CACA;CACD;AAcD,IAAa,qBAAqB,WAAoB;AACpD,EAAA,GAAA,MAAA,iBAAgB;AACd,MAAI,CAAC,UAAU,OAAO,WAAW,YAAa;EAC9C,MAAM,EAAE,aAAa,SAAS,KAAK;AACnC,WAAS,KAAK,MAAM,WAAW;AAC/B,eAAa;AACX,YAAS,KAAK,MAAM,WAAW;;IAEhC,CAAC,OAAO,CAAC;;AAGd,IAAa,gBACX,cACA,WACG;AACH,EAAA,GAAA,MAAA,iBAAgB;AACd,MAAI,CAAC,UAAU,OAAO,WAAW,YAAa;EAC9C,MAAM,YAAY,aAAa;AAC/B,MAAI,CAAC,UAAW;EAEhB,MAAM,qBACJ,MAAM,KACJ,UAAU,iBAA8B,mBAAmB,KAAK,IAAI,CAAC,CACtE,CAAC,QACC,OAAO,CAAC,GAAG,aAAa,WAAW,IAAI,CAAC,GAAG,aAAa,cAAc,CACxE;EAEH,MAAM,YAAY,cAAc;EAChC,MAAM,QAAQ,UAAU;EACxB,MAAM,OAAO,UAAU,UAAU,SAAS;AAC1C,SAAO,OAAO;EAEd,MAAM,iBAAiB,UAAyB;AAC9C,OAAI,MAAM,QAAQ,SAAS,UAAU,WAAW,EAAG;AACnD,OAAI,MAAM;QACJ,SAAS,kBAAkB,OAAO;AACpC,WAAM,gBAAgB;AACtB,MAAC,QAAQ,QAAQ,OAAO;;cAEjB,SAAS,kBAAkB,MAAM;AAC1C,UAAM,gBAAgB;AACtB,KAAC,SAAS,OAAO,OAAO;;;AAI5B,YAAU,iBAAiB,WAAW,cAAc;AACpD,eAAa,UAAU,oBAAoB,WAAW,cAAc;IACnE,CAAC,cAAc,OAAO,CAAC;;AAG5B,IAAa,qBACX,cACA,WACG;AACH,mBAAkB,OAAO;AACzB,cAAa,cAAc,OAAO"}
@@ -0,0 +1,54 @@
1
+ import { useEffect } from "react";
2
+ //#region src/components/shared/overlay.ts
3
+ var focusableSelectors = [
4
+ "a[href]",
5
+ "button:not([disabled])",
6
+ "textarea:not([disabled])",
7
+ "input:not([disabled])",
8
+ "select:not([disabled])",
9
+ "[tabindex]:not([tabindex=\"-1\"])"
10
+ ];
11
+ var useBodyScrollLock = (active) => {
12
+ useEffect(() => {
13
+ if (!active || typeof window === "undefined") return;
14
+ const { overflow } = document.body.style;
15
+ document.body.style.overflow = "hidden";
16
+ return () => {
17
+ document.body.style.overflow = overflow;
18
+ };
19
+ }, [active]);
20
+ };
21
+ var useFocusTrap = (containerRef, active) => {
22
+ useEffect(() => {
23
+ if (!active || typeof window === "undefined") return;
24
+ const container = containerRef.current;
25
+ if (!container) return;
26
+ const getFocusable = () => Array.from(container.querySelectorAll(focusableSelectors.join(","))).filter((el) => !el.hasAttribute("disabled") && !el.getAttribute("aria-hidden"));
27
+ const focusable = getFocusable();
28
+ const first = focusable[0];
29
+ const last = focusable[focusable.length - 1];
30
+ first?.focus();
31
+ const handleKeyDown = (event) => {
32
+ if (event.key !== "Tab" || focusable.length === 0) return;
33
+ if (event.shiftKey) {
34
+ if (document.activeElement === first) {
35
+ event.preventDefault();
36
+ (last || first)?.focus();
37
+ }
38
+ } else if (document.activeElement === last) {
39
+ event.preventDefault();
40
+ (first || last)?.focus();
41
+ }
42
+ };
43
+ container.addEventListener("keydown", handleKeyDown);
44
+ return () => container.removeEventListener("keydown", handleKeyDown);
45
+ }, [containerRef, active]);
46
+ };
47
+ var useOverlayEffects = (containerRef, active) => {
48
+ useBodyScrollLock(active);
49
+ useFocusTrap(containerRef, active);
50
+ };
51
+ //#endregion
52
+ export { useOverlayEffects as t };
53
+
54
+ //# sourceMappingURL=overlay-TycCIFOu.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay-TycCIFOu.mjs","names":[],"sources":["../../src/components/shared/overlay.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport type { RefObject } from \"react\";\n\nconst focusableSelectors = [\n \"a[href]\",\n \"button:not([disabled])\",\n \"textarea:not([disabled])\",\n \"input:not([disabled])\",\n \"select:not([disabled])\",\n '[tabindex]:not([tabindex=\"-1\"])',\n];\n\nconst scheduleMicrotask = (callback: () => void) => {\n if (typeof queueMicrotask === \"function\") {\n queueMicrotask(callback);\n return;\n }\n Promise.resolve()\n .then(callback)\n .catch(() => {\n callback();\n });\n};\n\nexport const useBodyScrollLock = (active: boolean) => {\n useEffect(() => {\n if (!active || typeof window === \"undefined\") return;\n const { overflow } = document.body.style;\n document.body.style.overflow = \"hidden\";\n return () => {\n document.body.style.overflow = overflow;\n };\n }, [active]);\n};\n\nexport const useFocusTrap = (\n containerRef: RefObject<HTMLElement | null>,\n active: boolean,\n) => {\n useEffect(() => {\n if (!active || typeof window === \"undefined\") return;\n const container = containerRef.current;\n if (!container) return;\n\n const getFocusable = () =>\n Array.from(\n container.querySelectorAll<HTMLElement>(focusableSelectors.join(\",\")),\n ).filter(\n (el) => !el.hasAttribute(\"disabled\") && !el.getAttribute(\"aria-hidden\"),\n );\n\n const focusable = getFocusable();\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n first?.focus();\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key !== \"Tab\" || focusable.length === 0) return;\n if (event.shiftKey) {\n if (document.activeElement === first) {\n event.preventDefault();\n (last || first)?.focus();\n }\n } else if (document.activeElement === last) {\n event.preventDefault();\n (first || last)?.focus();\n }\n };\n\n container.addEventListener(\"keydown\", handleKeyDown);\n return () => container.removeEventListener(\"keydown\", handleKeyDown);\n }, [containerRef, active]);\n};\n\nexport const useOverlayEffects = (\n containerRef: RefObject<HTMLElement | null>,\n active: boolean,\n) => {\n useBodyScrollLock(active);\n useFocusTrap(containerRef, active);\n};\n\nexport const useOverlayTransition = (open: boolean, duration = 200) => {\n const [closing, setClosing] = useState(false);\n\n useEffect(() => {\n if (open) {\n return undefined;\n }\n\n scheduleMicrotask(() => setClosing(true));\n const timer = setTimeout(() => setClosing(false), duration);\n\n return () => {\n clearTimeout(timer);\n scheduleMicrotask(() => setClosing(false));\n };\n }, [open, duration]);\n\n const shouldRender = open || closing;\n const transitionState: \"open\" | \"closing\" | \"closed\" = open\n ? \"open\"\n : closing\n ? \"closing\"\n : \"closed\";\n\n return { shouldRender, transitionState };\n};\n"],"mappings":";;AAGA,IAAM,qBAAqB;CACzB;CACA;CACA;CACA;CACA;CACA;CACD;AAcD,IAAa,qBAAqB,WAAoB;AACpD,iBAAgB;AACd,MAAI,CAAC,UAAU,OAAO,WAAW,YAAa;EAC9C,MAAM,EAAE,aAAa,SAAS,KAAK;AACnC,WAAS,KAAK,MAAM,WAAW;AAC/B,eAAa;AACX,YAAS,KAAK,MAAM,WAAW;;IAEhC,CAAC,OAAO,CAAC;;AAGd,IAAa,gBACX,cACA,WACG;AACH,iBAAgB;AACd,MAAI,CAAC,UAAU,OAAO,WAAW,YAAa;EAC9C,MAAM,YAAY,aAAa;AAC/B,MAAI,CAAC,UAAW;EAEhB,MAAM,qBACJ,MAAM,KACJ,UAAU,iBAA8B,mBAAmB,KAAK,IAAI,CAAC,CACtE,CAAC,QACC,OAAO,CAAC,GAAG,aAAa,WAAW,IAAI,CAAC,GAAG,aAAa,cAAc,CACxE;EAEH,MAAM,YAAY,cAAc;EAChC,MAAM,QAAQ,UAAU;EACxB,MAAM,OAAO,UAAU,UAAU,SAAS;AAC1C,SAAO,OAAO;EAEd,MAAM,iBAAiB,UAAyB;AAC9C,OAAI,MAAM,QAAQ,SAAS,UAAU,WAAW,EAAG;AACnD,OAAI,MAAM;QACJ,SAAS,kBAAkB,OAAO;AACpC,WAAM,gBAAgB;AACtB,MAAC,QAAQ,QAAQ,OAAO;;cAEjB,SAAS,kBAAkB,MAAM;AAC1C,UAAM,gBAAgB;AACtB,KAAC,SAAS,OAAO,OAAO;;;AAI5B,YAAU,iBAAiB,WAAW,cAAc;AACpD,eAAa,UAAU,oBAAoB,WAAW,cAAc;IACnE,CAAC,cAAc,OAAO,CAAC;;AAG5B,IAAa,qBACX,cACA,WACG;AACH,mBAAkB,OAAO;AACzB,cAAa,cAAc,OAAO"}
@@ -0,0 +1,99 @@
1
+ import { J as CheckIcon, q as CloseIcon } from "./icons-DuumN7z-.mjs";
2
+ import { useMemo } from "react";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/components/forms/password-strength-meter/PasswordCriteria.tsx
5
+ var PasswordCriteria = ({ password }) => {
6
+ return /* @__PURE__ */ jsx("div", {
7
+ className: "mt-2 space-y-1",
8
+ children: [
9
+ {
10
+ label: "At least 6 characters",
11
+ met: password.length >= 6
12
+ },
13
+ {
14
+ label: "Contains uppercase letter",
15
+ met: /[A-Z]/.test(password)
16
+ },
17
+ {
18
+ label: "Contains lowercase letter",
19
+ met: /[a-z]/.test(password)
20
+ },
21
+ {
22
+ label: "Contains a number",
23
+ met: /\d/.test(password)
24
+ },
25
+ {
26
+ label: "Contains special character",
27
+ met: /[^A-Za-z0-9]/.test(password)
28
+ }
29
+ ].map((item) => /* @__PURE__ */ jsxs("div", {
30
+ className: "flex items-center text-xs",
31
+ children: [item.met ? /* @__PURE__ */ jsx(CheckIcon, {
32
+ className: "mr-2 size-4 text-success",
33
+ title: "CheckIcon"
34
+ }) : /* @__PURE__ */ jsx(CloseIcon, {
35
+ className: "mr-2 size-4 text-neutral-400 dark:text-neutral-500",
36
+ title: "CloseIcon"
37
+ }), /* @__PURE__ */ jsx("span", {
38
+ className: item.met ? "text-success" : "text-neutral-500 dark:text-neutral-400",
39
+ children: item.label
40
+ })]
41
+ }, item.label))
42
+ });
43
+ };
44
+ //#endregion
45
+ //#region src/components/forms/password-strength-meter/PasswordStrengthMeter.tsx
46
+ function PasswordStrengthMeter({ password }) {
47
+ const getStrength = (pass) => {
48
+ const criteria = {
49
+ minLength: pass.length >= 6,
50
+ hasMixedCase: /[a-z]/.test(pass) && /[A-Z]/.test(pass),
51
+ hasNumber: /\d/.test(pass),
52
+ hasSpecialChar: /[^a-zA-Z\d]/.test(pass)
53
+ };
54
+ return Object.values(criteria).filter(Boolean).length;
55
+ };
56
+ const strength = useMemo(() => getStrength(password), [password]);
57
+ const getColor = (strength) => {
58
+ return [
59
+ "bg-danger",
60
+ "bg-danger",
61
+ "bg-warning",
62
+ "bg-warning",
63
+ "bg-success"
64
+ ][strength] || "bg-neutral-600";
65
+ };
66
+ const getStrengthText = (strength) => {
67
+ return [
68
+ "Very Weak",
69
+ "Weak",
70
+ "Fair",
71
+ "Good",
72
+ "Strong"
73
+ ][strength] || "Very Weak";
74
+ };
75
+ return /* @__PURE__ */ jsxs("div", {
76
+ className: "mt-2",
77
+ children: [
78
+ /* @__PURE__ */ jsxs("div", {
79
+ className: "mb-1 flex items-center justify-between",
80
+ children: [/* @__PURE__ */ jsx("span", {
81
+ className: "text-xs text-neutral-500 dark:text-neutral-400",
82
+ children: "Password strength"
83
+ }), /* @__PURE__ */ jsx("span", {
84
+ className: "text-xs text-neutral-500 dark:text-neutral-400",
85
+ children: getStrengthText(strength)
86
+ })]
87
+ }),
88
+ /* @__PURE__ */ jsx("div", {
89
+ className: "flex space-x-1",
90
+ children: Array.from({ length: 4 }, (_, index) => /* @__PURE__ */ jsx("div", { className: `h-1 w-1/4 rounded-full transition-colors duration-300 ${index < strength ? getColor(strength) : "bg-neutral-300 dark:bg-neutral-600"}` }, index))
91
+ }),
92
+ /* @__PURE__ */ jsx(PasswordCriteria, { password })
93
+ ]
94
+ });
95
+ }
96
+ //#endregion
97
+ export { PasswordStrengthMeter as t };
98
+
99
+ //# sourceMappingURL=password-strength-meter-CbNSBuh_.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password-strength-meter-CbNSBuh_.mjs","names":[],"sources":["../../src/components/forms/password-strength-meter/PasswordCriteria.tsx","../../src/components/forms/password-strength-meter/PasswordStrengthMeter.tsx"],"sourcesContent":["import { CheckIcon, CloseIcon } from \"../../icons\";\n\ninterface PasswordCriteriaProps {\n password: string;\n}\n\nexport const PasswordCriteria = ({ password }: PasswordCriteriaProps) => {\n const criteria = [\n { label: \"At least 6 characters\", met: password.length >= 6 },\n { label: \"Contains uppercase letter\", met: /[A-Z]/.test(password) },\n { label: \"Contains lowercase letter\", met: /[a-z]/.test(password) },\n { label: \"Contains a number\", met: /\\d/.test(password) },\n { label: \"Contains special character\", met: /[^A-Za-z0-9]/.test(password) },\n ];\n\n return (\n <div className=\"mt-2 space-y-1\">\n {criteria.map((item) => (\n <div key={item.label} className=\"flex items-center text-xs\">\n {item.met ? (\n <CheckIcon className=\"mr-2 size-4 text-success\" title=\"CheckIcon\" />\n ) : (\n <CloseIcon\n className=\"mr-2 size-4 text-neutral-400 dark:text-neutral-500\"\n title=\"CloseIcon\"\n />\n )}\n <span\n className={\n item.met\n ? \"text-success\"\n : \"text-neutral-500 dark:text-neutral-400\"\n }\n >\n {item.label}\n </span>\n </div>\n ))}\n </div>\n );\n};\n","import { useMemo } from \"react\";\n\nimport { PasswordCriteria } from \"./PasswordCriteria\";\n\nexport interface PasswordStrengthMeterProps {\n password: string;\n}\n\nexport function PasswordStrengthMeter({\n password,\n}: PasswordStrengthMeterProps) {\n // Calculate password strength using an object mapping approach\n const getStrength = (pass: string): number => {\n const criteria = {\n minLength: pass.length >= 6,\n hasMixedCase: /[a-z]/.test(pass) && /[A-Z]/.test(pass),\n hasNumber: /\\d/.test(pass),\n hasSpecialChar: /[^a-zA-Z\\d]/.test(pass),\n };\n\n // Count the number of criteria that pass\n return Object.values(criteria).filter(Boolean).length;\n };\n\n // Memoize the strength calculation to avoid unnecessary recalculations\n const strength = useMemo(() => getStrength(password), [password]);\n\n // Determine strength color based on the calculated strength\n const getColor = (strength: number): string => {\n const colors = [\n \"bg-danger\",\n \"bg-danger\",\n \"bg-warning\",\n \"bg-warning\",\n \"bg-success\",\n ];\n return colors[strength] || \"bg-neutral-600\";\n };\n\n // Get a text label corresponding to the password strength\n const getStrengthText = (strength: number): string => {\n const strengthLevels = [\"Very Weak\", \"Weak\", \"Fair\", \"Good\", \"Strong\"];\n return strengthLevels[strength] || \"Very Weak\";\n };\n\n return (\n <div className=\"mt-2\">\n {/* Strength Label */}\n <div className=\"mb-1 flex items-center justify-between\">\n <span className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n Password strength\n </span>\n <span className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n {getStrengthText(strength)}\n </span>\n </div>\n\n {/* Strength Meter */}\n <div className=\"flex space-x-1\">\n {Array.from({ length: 4 }, (_, index) => (\n <div\n key={index}\n className={`h-1 w-1/4 rounded-full transition-colors duration-300 ${\n index < strength\n ? getColor(strength)\n : \"bg-neutral-300 dark:bg-neutral-600\"\n }`}\n />\n ))}\n </div>\n\n <PasswordCriteria password={password} />\n </div>\n );\n}\n"],"mappings":";;;;AAMA,IAAa,oBAAoB,EAAE,eAAsC;AASvE,QACE,oBAAC,OAAD;EAAK,WAAU;YATA;GACf;IAAE,OAAO;IAAyB,KAAK,SAAS,UAAU;IAAG;GAC7D;IAAE,OAAO;IAA6B,KAAK,QAAQ,KAAK,SAAS;IAAE;GACnE;IAAE,OAAO;IAA6B,KAAK,QAAQ,KAAK,SAAS;IAAE;GACnE;IAAE,OAAO;IAAqB,KAAK,KAAK,KAAK,SAAS;IAAE;GACxD;IAAE,OAAO;IAA8B,KAAK,eAAe,KAAK,SAAS;IAAE;GAC5E,CAIa,KAAK,SACb,qBAAC,OAAD;GAAsB,WAAU;aAAhC,CACG,KAAK,MACJ,oBAAC,WAAD;IAAW,WAAU;IAA2B,OAAM;IAAc,CAAA,GAEpE,oBAAC,WAAD;IACE,WAAU;IACV,OAAM;IACN,CAAA,EAEJ,oBAAC,QAAD;IACE,WACE,KAAK,MACD,iBACA;cAGL,KAAK;IACD,CAAA,CACH;KAlBI,KAAK,MAkBT,CACN;EACE,CAAA;;;;AC9BV,SAAgB,sBAAsB,EACpC,YAC6B;CAE7B,MAAM,eAAe,SAAyB;EAC5C,MAAM,WAAW;GACf,WAAW,KAAK,UAAU;GAC1B,cAAc,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK;GACtD,WAAW,KAAK,KAAK,KAAK;GAC1B,gBAAgB,cAAc,KAAK,KAAK;GACzC;AAGD,SAAO,OAAO,OAAO,SAAS,CAAC,OAAO,QAAQ,CAAC;;CAIjD,MAAM,WAAW,cAAc,YAAY,SAAS,EAAE,CAAC,SAAS,CAAC;CAGjE,MAAM,YAAY,aAA6B;AAQ7C,SAPe;GACb;GACA;GACA;GACA;GACA;GACD,CACa,aAAa;;CAI7B,MAAM,mBAAmB,aAA6B;AAEpD,SADuB;GAAC;GAAa;GAAQ;GAAQ;GAAQ;GAAS,CAChD,aAAa;;AAGrC,QACE,qBAAC,OAAD;EAAK,WAAU;YAAf;GAEE,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,QAAD;KAAM,WAAU;eAAiD;KAE1D,CAAA,EACP,oBAAC,QAAD;KAAM,WAAU;eACb,gBAAgB,SAAS;KACrB,CAAA,CACH;;GAGN,oBAAC,OAAD;IAAK,WAAU;cACZ,MAAM,KAAK,EAAE,QAAQ,GAAG,GAAG,GAAG,UAC7B,oBAAC,OAAD,EAEE,WAAW,yDACT,QAAQ,WACJ,SAAS,SAAS,GAClB,wCAEN,EANK,MAML,CACF;IACE,CAAA;GAEN,oBAAC,kBAAD,EAA4B,UAAY,CAAA;GACpC"}
@@ -0,0 +1,105 @@
1
+ require("./chunk-B_GkZjkl.cjs");
2
+ const require_icons = require("./icons-BxIzP2jd.cjs");
3
+ let react = require("react");
4
+ let react_jsx_runtime = require("react/jsx-runtime");
5
+ //#region src/components/forms/password-strength-meter/PasswordCriteria.tsx
6
+ var PasswordCriteria = ({ password }) => {
7
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8
+ className: "mt-2 space-y-1",
9
+ children: [
10
+ {
11
+ label: "At least 6 characters",
12
+ met: password.length >= 6
13
+ },
14
+ {
15
+ label: "Contains uppercase letter",
16
+ met: /[A-Z]/.test(password)
17
+ },
18
+ {
19
+ label: "Contains lowercase letter",
20
+ met: /[a-z]/.test(password)
21
+ },
22
+ {
23
+ label: "Contains a number",
24
+ met: /\d/.test(password)
25
+ },
26
+ {
27
+ label: "Contains special character",
28
+ met: /[^A-Za-z0-9]/.test(password)
29
+ }
30
+ ].map((item) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
31
+ className: "flex items-center text-xs",
32
+ children: [item.met ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.CheckIcon, {
33
+ className: "mr-2 size-4 text-success",
34
+ title: "CheckIcon"
35
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.CloseIcon, {
36
+ className: "mr-2 size-4 text-neutral-400 dark:text-neutral-500",
37
+ title: "CloseIcon"
38
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
39
+ className: item.met ? "text-success" : "text-neutral-500 dark:text-neutral-400",
40
+ children: item.label
41
+ })]
42
+ }, item.label))
43
+ });
44
+ };
45
+ //#endregion
46
+ //#region src/components/forms/password-strength-meter/PasswordStrengthMeter.tsx
47
+ function PasswordStrengthMeter({ password }) {
48
+ const getStrength = (pass) => {
49
+ const criteria = {
50
+ minLength: pass.length >= 6,
51
+ hasMixedCase: /[a-z]/.test(pass) && /[A-Z]/.test(pass),
52
+ hasNumber: /\d/.test(pass),
53
+ hasSpecialChar: /[^a-zA-Z\d]/.test(pass)
54
+ };
55
+ return Object.values(criteria).filter(Boolean).length;
56
+ };
57
+ const strength = (0, react.useMemo)(() => getStrength(password), [password]);
58
+ const getColor = (strength) => {
59
+ return [
60
+ "bg-danger",
61
+ "bg-danger",
62
+ "bg-warning",
63
+ "bg-warning",
64
+ "bg-success"
65
+ ][strength] || "bg-neutral-600";
66
+ };
67
+ const getStrengthText = (strength) => {
68
+ return [
69
+ "Very Weak",
70
+ "Weak",
71
+ "Fair",
72
+ "Good",
73
+ "Strong"
74
+ ][strength] || "Very Weak";
75
+ };
76
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
77
+ className: "mt-2",
78
+ children: [
79
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
80
+ className: "mb-1 flex items-center justify-between",
81
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
82
+ className: "text-xs text-neutral-500 dark:text-neutral-400",
83
+ children: "Password strength"
84
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
85
+ className: "text-xs text-neutral-500 dark:text-neutral-400",
86
+ children: getStrengthText(strength)
87
+ })]
88
+ }),
89
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
90
+ className: "flex space-x-1",
91
+ children: Array.from({ length: 4 }, (_, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: `h-1 w-1/4 rounded-full transition-colors duration-300 ${index < strength ? getColor(strength) : "bg-neutral-300 dark:bg-neutral-600"}` }, index))
92
+ }),
93
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PasswordCriteria, { password })
94
+ ]
95
+ });
96
+ }
97
+ //#endregion
98
+ Object.defineProperty(exports, "PasswordStrengthMeter", {
99
+ enumerable: true,
100
+ get: function() {
101
+ return PasswordStrengthMeter;
102
+ }
103
+ });
104
+
105
+ //# sourceMappingURL=password-strength-meter-DxMV6GAs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password-strength-meter-DxMV6GAs.cjs","names":[],"sources":["../../src/components/forms/password-strength-meter/PasswordCriteria.tsx","../../src/components/forms/password-strength-meter/PasswordStrengthMeter.tsx"],"sourcesContent":["import { CheckIcon, CloseIcon } from \"../../icons\";\n\ninterface PasswordCriteriaProps {\n password: string;\n}\n\nexport const PasswordCriteria = ({ password }: PasswordCriteriaProps) => {\n const criteria = [\n { label: \"At least 6 characters\", met: password.length >= 6 },\n { label: \"Contains uppercase letter\", met: /[A-Z]/.test(password) },\n { label: \"Contains lowercase letter\", met: /[a-z]/.test(password) },\n { label: \"Contains a number\", met: /\\d/.test(password) },\n { label: \"Contains special character\", met: /[^A-Za-z0-9]/.test(password) },\n ];\n\n return (\n <div className=\"mt-2 space-y-1\">\n {criteria.map((item) => (\n <div key={item.label} className=\"flex items-center text-xs\">\n {item.met ? (\n <CheckIcon className=\"mr-2 size-4 text-success\" title=\"CheckIcon\" />\n ) : (\n <CloseIcon\n className=\"mr-2 size-4 text-neutral-400 dark:text-neutral-500\"\n title=\"CloseIcon\"\n />\n )}\n <span\n className={\n item.met\n ? \"text-success\"\n : \"text-neutral-500 dark:text-neutral-400\"\n }\n >\n {item.label}\n </span>\n </div>\n ))}\n </div>\n );\n};\n","import { useMemo } from \"react\";\n\nimport { PasswordCriteria } from \"./PasswordCriteria\";\n\nexport interface PasswordStrengthMeterProps {\n password: string;\n}\n\nexport function PasswordStrengthMeter({\n password,\n}: PasswordStrengthMeterProps) {\n // Calculate password strength using an object mapping approach\n const getStrength = (pass: string): number => {\n const criteria = {\n minLength: pass.length >= 6,\n hasMixedCase: /[a-z]/.test(pass) && /[A-Z]/.test(pass),\n hasNumber: /\\d/.test(pass),\n hasSpecialChar: /[^a-zA-Z\\d]/.test(pass),\n };\n\n // Count the number of criteria that pass\n return Object.values(criteria).filter(Boolean).length;\n };\n\n // Memoize the strength calculation to avoid unnecessary recalculations\n const strength = useMemo(() => getStrength(password), [password]);\n\n // Determine strength color based on the calculated strength\n const getColor = (strength: number): string => {\n const colors = [\n \"bg-danger\",\n \"bg-danger\",\n \"bg-warning\",\n \"bg-warning\",\n \"bg-success\",\n ];\n return colors[strength] || \"bg-neutral-600\";\n };\n\n // Get a text label corresponding to the password strength\n const getStrengthText = (strength: number): string => {\n const strengthLevels = [\"Very Weak\", \"Weak\", \"Fair\", \"Good\", \"Strong\"];\n return strengthLevels[strength] || \"Very Weak\";\n };\n\n return (\n <div className=\"mt-2\">\n {/* Strength Label */}\n <div className=\"mb-1 flex items-center justify-between\">\n <span className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n Password strength\n </span>\n <span className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n {getStrengthText(strength)}\n </span>\n </div>\n\n {/* Strength Meter */}\n <div className=\"flex space-x-1\">\n {Array.from({ length: 4 }, (_, index) => (\n <div\n key={index}\n className={`h-1 w-1/4 rounded-full transition-colors duration-300 ${\n index < strength\n ? getColor(strength)\n : \"bg-neutral-300 dark:bg-neutral-600\"\n }`}\n />\n ))}\n </div>\n\n <PasswordCriteria password={password} />\n </div>\n );\n}\n"],"mappings":";;;;;AAMA,IAAa,oBAAoB,EAAE,eAAsC;AASvE,QACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EAAK,WAAU;YATA;GACf;IAAE,OAAO;IAAyB,KAAK,SAAS,UAAU;IAAG;GAC7D;IAAE,OAAO;IAA6B,KAAK,QAAQ,KAAK,SAAS;IAAE;GACnE;IAAE,OAAO;IAA6B,KAAK,QAAQ,KAAK,SAAS;IAAE;GACnE;IAAE,OAAO;IAAqB,KAAK,KAAK,KAAK,SAAS;IAAE;GACxD;IAAE,OAAO;IAA8B,KAAK,eAAe,KAAK,SAAS;IAAE;GAC5E,CAIa,KAAK,SACb,iBAAA,GAAA,kBAAA,MAAC,OAAD;GAAsB,WAAU;aAAhC,CACG,KAAK,MACJ,iBAAA,GAAA,kBAAA,KAAC,cAAA,WAAD;IAAW,WAAU;IAA2B,OAAM;IAAc,CAAA,GAEpE,iBAAA,GAAA,kBAAA,KAAC,cAAA,WAAD;IACE,WAAU;IACV,OAAM;IACN,CAAA,EAEJ,iBAAA,GAAA,kBAAA,KAAC,QAAD;IACE,WACE,KAAK,MACD,iBACA;cAGL,KAAK;IACD,CAAA,CACH;KAlBI,KAAK,MAkBT,CACN;EACE,CAAA;;;;AC9BV,SAAgB,sBAAsB,EACpC,YAC6B;CAE7B,MAAM,eAAe,SAAyB;EAC5C,MAAM,WAAW;GACf,WAAW,KAAK,UAAU;GAC1B,cAAc,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK;GACtD,WAAW,KAAK,KAAK,KAAK;GAC1B,gBAAgB,cAAc,KAAK,KAAK;GACzC;AAGD,SAAO,OAAO,OAAO,SAAS,CAAC,OAAO,QAAQ,CAAC;;CAIjD,MAAM,YAAA,GAAA,MAAA,eAAyB,YAAY,SAAS,EAAE,CAAC,SAAS,CAAC;CAGjE,MAAM,YAAY,aAA6B;AAQ7C,SAPe;GACb;GACA;GACA;GACA;GACA;GACD,CACa,aAAa;;CAI7B,MAAM,mBAAmB,aAA6B;AAEpD,SADuB;GAAC;GAAa;GAAQ;GAAQ;GAAQ;GAAS,CAChD,aAAa;;AAGrC,QACE,iBAAA,GAAA,kBAAA,MAAC,OAAD;EAAK,WAAU;YAAf;GAEE,iBAAA,GAAA,kBAAA,MAAC,OAAD;IAAK,WAAU;cAAf,CACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;KAAM,WAAU;eAAiD;KAE1D,CAAA,EACP,iBAAA,GAAA,kBAAA,KAAC,QAAD;KAAM,WAAU;eACb,gBAAgB,SAAS;KACrB,CAAA,CACH;;GAGN,iBAAA,GAAA,kBAAA,KAAC,OAAD;IAAK,WAAU;cACZ,MAAM,KAAK,EAAE,QAAQ,GAAG,GAAG,GAAG,UAC7B,iBAAA,GAAA,kBAAA,KAAC,OAAD,EAEE,WAAW,yDACT,QAAQ,WACJ,SAAS,SAAS,GAClB,wCAEN,EANK,MAML,CACF;IACE,CAAA;GAEN,iBAAA,GAAA,kBAAA,KAAC,kBAAD,EAA4B,UAAY,CAAA;GACpC"}