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,132 @@
1
+ import { n as mergeClassNames } from "./utils-ati1KkDb.mjs";
2
+ import { J as CheckIcon, N as ChevronDownIcon, q as CloseIcon } from "./icons-DuumN7z-.mjs";
3
+ import { useEffect, useRef, useState } from "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { motion, useMotionTemplate, useMotionValue } from "framer-motion";
6
+ //#region src/components/forms/multi-select-combobox/MultiSelectCombobox.tsx
7
+ var MultiSelectCombobox = ({ options, value = [], onChange, placeholder = "Select...", className, bgClassName = "bg-background-secondary" }) => {
8
+ const [open, setOpen] = useState(false);
9
+ const [search, setSearch] = useState("");
10
+ const [visible, setVisible] = useState(false);
11
+ const ref = useRef(null);
12
+ const mouseX = useMotionValue(0);
13
+ const mouseY = useMotionValue(0);
14
+ const radius = 100;
15
+ const filteredOptions = options.filter((opt) => opt.label.toLowerCase().includes(search.toLowerCase()));
16
+ useEffect(() => {
17
+ const handleClick = (e) => {
18
+ if (ref.current && !ref.current.contains(e.target)) {
19
+ setOpen(false);
20
+ setSearch("");
21
+ }
22
+ };
23
+ if (open) document.addEventListener("mousedown", handleClick);
24
+ return () => document.removeEventListener("mousedown", handleClick);
25
+ }, [open]);
26
+ const handleMouseMove = (event) => {
27
+ const { left, top } = event.currentTarget.getBoundingClientRect();
28
+ mouseX.set(event.clientX - left);
29
+ mouseY.set(event.clientY - top);
30
+ };
31
+ const handleOptionClick = (optionValue) => {
32
+ if (value.includes(optionValue)) onChange(value.filter((v) => v !== optionValue));
33
+ else onChange([...value, optionValue]);
34
+ };
35
+ const handleRemoveTag = (optionValue, e) => {
36
+ e.stopPropagation();
37
+ onChange(value.filter((v) => v !== optionValue));
38
+ };
39
+ const selectedLabels = value.map((v) => options.find((opt) => opt.value === v)?.label).filter(Boolean);
40
+ return /* @__PURE__ */ jsxs("div", {
41
+ ref,
42
+ className: mergeClassNames("relative w-full", className),
43
+ tabIndex: 0,
44
+ children: [/* @__PURE__ */ jsx(motion.div, {
45
+ style: { backgroundImage: useMotionTemplate`
46
+ radial-gradient(
47
+ ${visible ? `${radius}px` : "0px"} circle at ${mouseX}px ${mouseY}px,
48
+ var(--ds-color-accent),
49
+ transparent 90%
50
+ )
51
+ ` },
52
+ onMouseMove: handleMouseMove,
53
+ onMouseEnter: () => setVisible(true),
54
+ onMouseLeave: () => setVisible(false),
55
+ className: "group/multi-combobox rounded-lg border-border p-[2px] transition duration-300 hover:border-accent",
56
+ children: /* @__PURE__ */ jsxs("div", {
57
+ className: mergeClassNames("shadow-input flex min-h-10 w-full cursor-pointer items-center justify-between rounded-md border border-input px-3 py-2 text-sm text-foreground transition duration-400 ease-in-out group-hover/multi-combobox:shadow-none", bgClassName),
58
+ onClick: () => {
59
+ setOpen((o) => {
60
+ if (o) setSearch("");
61
+ return !o;
62
+ });
63
+ },
64
+ children: [/* @__PURE__ */ jsx("div", {
65
+ className: "flex flex-1 flex-wrap gap-1",
66
+ children: selectedLabels.length > 0 ? selectedLabels.map((label, index) => /* @__PURE__ */ jsxs("span", {
67
+ className: "inline-flex items-center gap-1 rounded-md bg-accent-subtle px-2 py-0.5 text-xs font-medium text-accent",
68
+ children: [label, /* @__PURE__ */ jsx("button", {
69
+ type: "button",
70
+ onClick: (e) => handleRemoveTag(value[index], e),
71
+ className: "ml-0.5 rounded-full p-0.5 transition-colors hover:bg-accent/10",
72
+ children: /* @__PURE__ */ jsx(CloseIcon, {
73
+ className: "w-3 h-3",
74
+ "aria-hidden": "true"
75
+ })
76
+ })]
77
+ }, value[index])) : /* @__PURE__ */ jsx("span", {
78
+ className: "text-muted-foreground",
79
+ children: placeholder
80
+ })
81
+ }), /* @__PURE__ */ jsx("span", {
82
+ className: mergeClassNames("ml-2 shrink-0 text-muted-foreground transition-transform duration-300", open ? "rotate-180" : "rotate-0"),
83
+ children: /* @__PURE__ */ jsx(ChevronDownIcon, {
84
+ width: 24,
85
+ height: 24,
86
+ color: "currentColor",
87
+ className: "h-5 w-5"
88
+ })
89
+ })]
90
+ })
91
+ }), open && /* @__PURE__ */ jsxs("div", {
92
+ className: "absolute right-0 left-0 z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-border bg-background-secondary shadow-3 backdrop-blur-xl transition",
93
+ children: [/* @__PURE__ */ jsx("div", {
94
+ className: "sticky top-0 z-10 rounded-t-lg border-b border-border-muted bg-elevated/95 backdrop-blur-sm",
95
+ children: /* @__PURE__ */ jsx("input", {
96
+ autoFocus: true,
97
+ className: "w-full bg-transparent px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-accent",
98
+ placeholder: "Type to search...",
99
+ value: search,
100
+ onChange: (e) => setSearch(e.target.value),
101
+ onClick: (e) => e.stopPropagation()
102
+ })
103
+ }), /* @__PURE__ */ jsxs("div", {
104
+ className: "max-h-80 flex-1 overflow-auto",
105
+ children: [filteredOptions.length === 0 && /* @__PURE__ */ jsx("div", {
106
+ className: "p-3 text-center text-muted-foreground text-sm",
107
+ children: "No options found"
108
+ }), filteredOptions.map((option) => {
109
+ const isSelected = value.includes(option.value);
110
+ return /* @__PURE__ */ jsxs("div", {
111
+ className: mergeClassNames("flex cursor-pointer items-center gap-2 px-3 py-2 text-sm transition", isSelected ? "bg-accent-subtle text-accent" : "text-foreground hover:bg-accent hover:text-on-accent"),
112
+ onClick: () => handleOptionClick(option.value),
113
+ children: [/* @__PURE__ */ jsx("span", {
114
+ className: mergeClassNames("flex h-4 w-4 items-center justify-center rounded border transition", isSelected ? "border-accent bg-accent text-on-accent" : "border-border"),
115
+ children: isSelected && /* @__PURE__ */ jsx(CheckIcon, {
116
+ width: 12,
117
+ height: 12
118
+ })
119
+ }), /* @__PURE__ */ jsx("span", {
120
+ className: "flex-1",
121
+ children: option.label
122
+ })]
123
+ }, option.value);
124
+ })]
125
+ })]
126
+ })]
127
+ });
128
+ };
129
+ //#endregion
130
+ export { MultiSelectCombobox as t };
131
+
132
+ //# sourceMappingURL=multi-select-combobox-ELSH_Xr4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-select-combobox-ELSH_Xr4.mjs","names":[],"sources":["../../src/components/forms/multi-select-combobox/MultiSelectCombobox.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"framer-motion\";\n\nimport { CheckIcon, ChevronDownIcon, CloseIcon } from \"../../icons\";\nimport { mergeClassNames } from \"../../../utils\";\n\nexport interface MultiSelectOption {\n label: string;\n value: string;\n}\n\nexport interface MultiSelectComboboxProps {\n options: MultiSelectOption[];\n value: string[];\n onChange: (values: string[]) => void;\n placeholder?: string;\n className?: string;\n bgClassName?: string;\n}\n\nconst MultiSelectCombobox: React.FC<MultiSelectComboboxProps> = ({\n options,\n value = [],\n onChange,\n placeholder = \"Select...\",\n className,\n bgClassName = \"bg-background-secondary\",\n}) => {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [visible, setVisible] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const radius = 100;\n\n // Filter options by search\n const filteredOptions = options.filter((opt) =>\n opt.label.toLowerCase().includes(search.toLowerCase()),\n );\n\n // Close dropdown on outside click\n useEffect(() => {\n const handleClick = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n setSearch(\"\");\n }\n };\n if (open) {\n document.addEventListener(\"mousedown\", handleClick);\n }\n return () => document.removeEventListener(\"mousedown\", handleClick);\n }, [open]);\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const { left, top } = event.currentTarget.getBoundingClientRect();\n mouseX.set(event.clientX - left);\n mouseY.set(event.clientY - top);\n };\n\n const handleOptionClick = (optionValue: string) => {\n if (value.includes(optionValue)) {\n onChange(value.filter((v) => v !== optionValue));\n } else {\n onChange([...value, optionValue]);\n }\n };\n\n const handleRemoveTag = (optionValue: string, e: React.MouseEvent) => {\n e.stopPropagation();\n onChange(value.filter((v) => v !== optionValue));\n };\n\n const selectedLabels = value\n .map((v) => options.find((opt) => opt.value === v)?.label)\n .filter(Boolean);\n\n return (\n <div\n ref={ref}\n className={mergeClassNames(\"relative w-full\", className)}\n tabIndex={0}\n >\n <motion.div\n style={{\n backgroundImage: useMotionTemplate`\n radial-gradient(\n ${visible ? `${radius}px` : \"0px\"} circle at ${mouseX}px ${mouseY}px,\n var(--ds-color-accent),\n transparent 90%\n )\n `,\n }}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n className=\"group/multi-combobox rounded-lg border-border p-[2px] transition duration-300 hover:border-accent\"\n >\n <div\n className={mergeClassNames(\n \"shadow-input flex min-h-10 w-full cursor-pointer items-center justify-between rounded-md border border-input px-3 py-2 text-sm text-foreground transition duration-400 ease-in-out group-hover/multi-combobox:shadow-none\",\n bgClassName,\n )}\n onClick={() => {\n setOpen((o) => {\n if (o) setSearch(\"\");\n return !o;\n });\n }}\n >\n <div className=\"flex flex-1 flex-wrap gap-1\">\n {selectedLabels.length > 0 ? (\n selectedLabels.map((label, index) => (\n <span\n key={value[index]}\n className=\"inline-flex items-center gap-1 rounded-md bg-accent-subtle px-2 py-0.5 text-xs font-medium text-accent\"\n >\n {label}\n <button\n type=\"button\"\n onClick={(e) => handleRemoveTag(value[index], e)}\n className=\"ml-0.5 rounded-full p-0.5 transition-colors hover:bg-accent/10\"\n >\n <CloseIcon className=\"w-3 h-3\" aria-hidden=\"true\" />\n </button>\n </span>\n ))\n ) : (\n <span className=\"text-muted-foreground\">{placeholder}</span>\n )}\n </div>\n <span\n className={mergeClassNames(\n \"ml-2 shrink-0 text-muted-foreground transition-transform duration-300\",\n open ? \"rotate-180\" : \"rotate-0\",\n )}\n >\n <ChevronDownIcon\n width={24}\n height={24}\n color=\"currentColor\"\n className=\"h-5 w-5\"\n />\n </span>\n </div>\n </motion.div>\n {open && (\n <div className=\"absolute right-0 left-0 z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-border bg-background-secondary shadow-3 backdrop-blur-xl transition\">\n {/* Sticky search input */}\n <div className=\"sticky top-0 z-10 rounded-t-lg border-b border-border-muted bg-elevated/95 backdrop-blur-sm\">\n <input\n autoFocus\n className=\"w-full bg-transparent px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-accent\"\n placeholder=\"Type to search...\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n {/* Scrollable options */}\n <div className=\"max-h-80 flex-1 overflow-auto\">\n {filteredOptions.length === 0 && (\n <div className=\"p-3 text-center text-muted-foreground text-sm\">\n No options found\n </div>\n )}\n {filteredOptions.map((option) => {\n const isSelected = value.includes(option.value);\n return (\n <div\n key={option.value}\n className={mergeClassNames(\n \"flex cursor-pointer items-center gap-2 px-3 py-2 text-sm transition\",\n isSelected\n ? \"bg-accent-subtle text-accent\"\n : \"text-foreground hover:bg-accent hover:text-on-accent\",\n )}\n onClick={() => handleOptionClick(option.value)}\n >\n <span\n className={mergeClassNames(\n \"flex h-4 w-4 items-center justify-center rounded border transition\",\n isSelected\n ? \"border-accent bg-accent text-on-accent\"\n : \"border-border\",\n )}\n >\n {isSelected && <CheckIcon width={12} height={12} />}\n </span>\n <span className=\"flex-1\">{option.label}</span>\n </div>\n );\n })}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default MultiSelectCombobox;\n"],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ const require_chunk = require("./chunk-B_GkZjkl.cjs");
2
+ const require_utils = require("./utils-B4SmmY4J.cjs");
3
+ const require_icons = require("./icons-BxIzP2jd.cjs");
4
+ let react = require("react");
5
+ react = require_chunk.__toESM(react);
6
+ let react_jsx_runtime = require("react/jsx-runtime");
7
+ let framer_motion = require("framer-motion");
8
+ //#region src/components/forms/multi-select-combobox/MultiSelectCombobox.tsx
9
+ var MultiSelectCombobox = ({ options, value = [], onChange, placeholder = "Select...", className, bgClassName = "bg-background-secondary" }) => {
10
+ const [open, setOpen] = (0, react.useState)(false);
11
+ const [search, setSearch] = (0, react.useState)("");
12
+ const [visible, setVisible] = (0, react.useState)(false);
13
+ const ref = (0, react.useRef)(null);
14
+ const mouseX = (0, framer_motion.useMotionValue)(0);
15
+ const mouseY = (0, framer_motion.useMotionValue)(0);
16
+ const radius = 100;
17
+ const filteredOptions = options.filter((opt) => opt.label.toLowerCase().includes(search.toLowerCase()));
18
+ (0, react.useEffect)(() => {
19
+ const handleClick = (e) => {
20
+ if (ref.current && !ref.current.contains(e.target)) {
21
+ setOpen(false);
22
+ setSearch("");
23
+ }
24
+ };
25
+ if (open) document.addEventListener("mousedown", handleClick);
26
+ return () => document.removeEventListener("mousedown", handleClick);
27
+ }, [open]);
28
+ const handleMouseMove = (event) => {
29
+ const { left, top } = event.currentTarget.getBoundingClientRect();
30
+ mouseX.set(event.clientX - left);
31
+ mouseY.set(event.clientY - top);
32
+ };
33
+ const handleOptionClick = (optionValue) => {
34
+ if (value.includes(optionValue)) onChange(value.filter((v) => v !== optionValue));
35
+ else onChange([...value, optionValue]);
36
+ };
37
+ const handleRemoveTag = (optionValue, e) => {
38
+ e.stopPropagation();
39
+ onChange(value.filter((v) => v !== optionValue));
40
+ };
41
+ const selectedLabels = value.map((v) => options.find((opt) => opt.value === v)?.label).filter(Boolean);
42
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
43
+ ref,
44
+ className: require_utils.mergeClassNames("relative w-full", className),
45
+ tabIndex: 0,
46
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(framer_motion.motion.div, {
47
+ style: { backgroundImage: framer_motion.useMotionTemplate`
48
+ radial-gradient(
49
+ ${visible ? `${radius}px` : "0px"} circle at ${mouseX}px ${mouseY}px,
50
+ var(--ds-color-accent),
51
+ transparent 90%
52
+ )
53
+ ` },
54
+ onMouseMove: handleMouseMove,
55
+ onMouseEnter: () => setVisible(true),
56
+ onMouseLeave: () => setVisible(false),
57
+ className: "group/multi-combobox rounded-lg border-border p-[2px] transition duration-300 hover:border-accent",
58
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
59
+ className: require_utils.mergeClassNames("shadow-input flex min-h-10 w-full cursor-pointer items-center justify-between rounded-md border border-input px-3 py-2 text-sm text-foreground transition duration-400 ease-in-out group-hover/multi-combobox:shadow-none", bgClassName),
60
+ onClick: () => {
61
+ setOpen((o) => {
62
+ if (o) setSearch("");
63
+ return !o;
64
+ });
65
+ },
66
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
67
+ className: "flex flex-1 flex-wrap gap-1",
68
+ children: selectedLabels.length > 0 ? selectedLabels.map((label, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
69
+ className: "inline-flex items-center gap-1 rounded-md bg-accent-subtle px-2 py-0.5 text-xs font-medium text-accent",
70
+ children: [label, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
71
+ type: "button",
72
+ onClick: (e) => handleRemoveTag(value[index], e),
73
+ className: "ml-0.5 rounded-full p-0.5 transition-colors hover:bg-accent/10",
74
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.CloseIcon, {
75
+ className: "w-3 h-3",
76
+ "aria-hidden": "true"
77
+ })
78
+ })]
79
+ }, value[index])) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
80
+ className: "text-muted-foreground",
81
+ children: placeholder
82
+ })
83
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
84
+ className: require_utils.mergeClassNames("ml-2 shrink-0 text-muted-foreground transition-transform duration-300", open ? "rotate-180" : "rotate-0"),
85
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.ChevronDownIcon, {
86
+ width: 24,
87
+ height: 24,
88
+ color: "currentColor",
89
+ className: "h-5 w-5"
90
+ })
91
+ })]
92
+ })
93
+ }), open && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
94
+ className: "absolute right-0 left-0 z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-border bg-background-secondary shadow-3 backdrop-blur-xl transition",
95
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
96
+ className: "sticky top-0 z-10 rounded-t-lg border-b border-border-muted bg-elevated/95 backdrop-blur-sm",
97
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
98
+ autoFocus: true,
99
+ className: "w-full bg-transparent px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-accent",
100
+ placeholder: "Type to search...",
101
+ value: search,
102
+ onChange: (e) => setSearch(e.target.value),
103
+ onClick: (e) => e.stopPropagation()
104
+ })
105
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
106
+ className: "max-h-80 flex-1 overflow-auto",
107
+ children: [filteredOptions.length === 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
108
+ className: "p-3 text-center text-muted-foreground text-sm",
109
+ children: "No options found"
110
+ }), filteredOptions.map((option) => {
111
+ const isSelected = value.includes(option.value);
112
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
113
+ className: require_utils.mergeClassNames("flex cursor-pointer items-center gap-2 px-3 py-2 text-sm transition", isSelected ? "bg-accent-subtle text-accent" : "text-foreground hover:bg-accent hover:text-on-accent"),
114
+ onClick: () => handleOptionClick(option.value),
115
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
116
+ className: require_utils.mergeClassNames("flex h-4 w-4 items-center justify-center rounded border transition", isSelected ? "border-accent bg-accent text-on-accent" : "border-border"),
117
+ children: isSelected && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.CheckIcon, {
118
+ width: 12,
119
+ height: 12
120
+ })
121
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
122
+ className: "flex-1",
123
+ children: option.label
124
+ })]
125
+ }, option.value);
126
+ })]
127
+ })]
128
+ })]
129
+ });
130
+ };
131
+ //#endregion
132
+ Object.defineProperty(exports, "MultiSelectCombobox", {
133
+ enumerable: true,
134
+ get: function() {
135
+ return MultiSelectCombobox;
136
+ }
137
+ });
138
+
139
+ //# sourceMappingURL=multi-select-combobox-UW0X15W7.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-select-combobox-UW0X15W7.cjs","names":[],"sources":["../../src/components/forms/multi-select-combobox/MultiSelectCombobox.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"framer-motion\";\n\nimport { CheckIcon, ChevronDownIcon, CloseIcon } from \"../../icons\";\nimport { mergeClassNames } from \"../../../utils\";\n\nexport interface MultiSelectOption {\n label: string;\n value: string;\n}\n\nexport interface MultiSelectComboboxProps {\n options: MultiSelectOption[];\n value: string[];\n onChange: (values: string[]) => void;\n placeholder?: string;\n className?: string;\n bgClassName?: string;\n}\n\nconst MultiSelectCombobox: React.FC<MultiSelectComboboxProps> = ({\n options,\n value = [],\n onChange,\n placeholder = \"Select...\",\n className,\n bgClassName = \"bg-background-secondary\",\n}) => {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [visible, setVisible] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const radius = 100;\n\n // Filter options by search\n const filteredOptions = options.filter((opt) =>\n opt.label.toLowerCase().includes(search.toLowerCase()),\n );\n\n // Close dropdown on outside click\n useEffect(() => {\n const handleClick = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n setSearch(\"\");\n }\n };\n if (open) {\n document.addEventListener(\"mousedown\", handleClick);\n }\n return () => document.removeEventListener(\"mousedown\", handleClick);\n }, [open]);\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const { left, top } = event.currentTarget.getBoundingClientRect();\n mouseX.set(event.clientX - left);\n mouseY.set(event.clientY - top);\n };\n\n const handleOptionClick = (optionValue: string) => {\n if (value.includes(optionValue)) {\n onChange(value.filter((v) => v !== optionValue));\n } else {\n onChange([...value, optionValue]);\n }\n };\n\n const handleRemoveTag = (optionValue: string, e: React.MouseEvent) => {\n e.stopPropagation();\n onChange(value.filter((v) => v !== optionValue));\n };\n\n const selectedLabels = value\n .map((v) => options.find((opt) => opt.value === v)?.label)\n .filter(Boolean);\n\n return (\n <div\n ref={ref}\n className={mergeClassNames(\"relative w-full\", className)}\n tabIndex={0}\n >\n <motion.div\n style={{\n backgroundImage: useMotionTemplate`\n radial-gradient(\n ${visible ? `${radius}px` : \"0px\"} circle at ${mouseX}px ${mouseY}px,\n var(--ds-color-accent),\n transparent 90%\n )\n `,\n }}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n className=\"group/multi-combobox rounded-lg border-border p-[2px] transition duration-300 hover:border-accent\"\n >\n <div\n className={mergeClassNames(\n \"shadow-input flex min-h-10 w-full cursor-pointer items-center justify-between rounded-md border border-input px-3 py-2 text-sm text-foreground transition duration-400 ease-in-out group-hover/multi-combobox:shadow-none\",\n bgClassName,\n )}\n onClick={() => {\n setOpen((o) => {\n if (o) setSearch(\"\");\n return !o;\n });\n }}\n >\n <div className=\"flex flex-1 flex-wrap gap-1\">\n {selectedLabels.length > 0 ? (\n selectedLabels.map((label, index) => (\n <span\n key={value[index]}\n className=\"inline-flex items-center gap-1 rounded-md bg-accent-subtle px-2 py-0.5 text-xs font-medium text-accent\"\n >\n {label}\n <button\n type=\"button\"\n onClick={(e) => handleRemoveTag(value[index], e)}\n className=\"ml-0.5 rounded-full p-0.5 transition-colors hover:bg-accent/10\"\n >\n <CloseIcon className=\"w-3 h-3\" aria-hidden=\"true\" />\n </button>\n </span>\n ))\n ) : (\n <span className=\"text-muted-foreground\">{placeholder}</span>\n )}\n </div>\n <span\n className={mergeClassNames(\n \"ml-2 shrink-0 text-muted-foreground transition-transform duration-300\",\n open ? \"rotate-180\" : \"rotate-0\",\n )}\n >\n <ChevronDownIcon\n width={24}\n height={24}\n color=\"currentColor\"\n className=\"h-5 w-5\"\n />\n </span>\n </div>\n </motion.div>\n {open && (\n <div className=\"absolute right-0 left-0 z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-border bg-background-secondary shadow-3 backdrop-blur-xl transition\">\n {/* Sticky search input */}\n <div className=\"sticky top-0 z-10 rounded-t-lg border-b border-border-muted bg-elevated/95 backdrop-blur-sm\">\n <input\n autoFocus\n className=\"w-full bg-transparent px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-accent\"\n placeholder=\"Type to search...\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n {/* Scrollable options */}\n <div className=\"max-h-80 flex-1 overflow-auto\">\n {filteredOptions.length === 0 && (\n <div className=\"p-3 text-center text-muted-foreground text-sm\">\n No options found\n </div>\n )}\n {filteredOptions.map((option) => {\n const isSelected = value.includes(option.value);\n return (\n <div\n key={option.value}\n className={mergeClassNames(\n \"flex cursor-pointer items-center gap-2 px-3 py-2 text-sm transition\",\n isSelected\n ? \"bg-accent-subtle text-accent\"\n : \"text-foreground hover:bg-accent hover:text-on-accent\",\n )}\n onClick={() => handleOptionClick(option.value)}\n >\n <span\n className={mergeClassNames(\n \"flex h-4 w-4 items-center justify-center rounded border transition\",\n isSelected\n ? \"border-accent bg-accent text-on-accent\"\n : \"border-border\",\n )}\n >\n {isSelected && <CheckIcon width={12} height={12} />}\n </span>\n <span className=\"flex-1\">{option.label}</span>\n </div>\n );\n })}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default MultiSelectCombobox;\n"],"mappings":";;;;;;;;AAoBA,IAAM,uBAA2D,EAC/D,SACA,QAAQ,EAAE,EACV,UACA,cAAc,aACd,WACA,cAAc,gCACV;CACJ,MAAM,CAAC,MAAM,YAAA,GAAA,MAAA,UAAoB,MAAM;CACvC,MAAM,CAAC,QAAQ,cAAA,GAAA,MAAA,UAAsB,GAAG;CACxC,MAAM,CAAC,SAAS,eAAA,GAAA,MAAA,UAAuB,MAAM;CAC7C,MAAM,OAAA,GAAA,MAAA,QAA6B,KAAK;CACxC,MAAM,UAAA,GAAA,cAAA,gBAAwB,EAAE;CAChC,MAAM,UAAA,GAAA,cAAA,gBAAwB,EAAE;CAChC,MAAM,SAAS;CAGf,MAAM,kBAAkB,QAAQ,QAAQ,QACtC,IAAI,MAAM,aAAa,CAAC,SAAS,OAAO,aAAa,CAAC,CACvD;AAGD,EAAA,GAAA,MAAA,iBAAgB;EACd,MAAM,eAAe,MAAkB;AACrC,OAAI,IAAI,WAAW,CAAC,IAAI,QAAQ,SAAS,EAAE,OAAe,EAAE;AAC1D,YAAQ,MAAM;AACd,cAAU,GAAG;;;AAGjB,MAAI,KACF,UAAS,iBAAiB,aAAa,YAAY;AAErD,eAAa,SAAS,oBAAoB,aAAa,YAAY;IAClE,CAAC,KAAK,CAAC;CAEV,MAAM,mBAAmB,UAA4C;EACnE,MAAM,EAAE,MAAM,QAAQ,MAAM,cAAc,uBAAuB;AACjE,SAAO,IAAI,MAAM,UAAU,KAAK;AAChC,SAAO,IAAI,MAAM,UAAU,IAAI;;CAGjC,MAAM,qBAAqB,gBAAwB;AACjD,MAAI,MAAM,SAAS,YAAY,CAC7B,UAAS,MAAM,QAAQ,MAAM,MAAM,YAAY,CAAC;MAEhD,UAAS,CAAC,GAAG,OAAO,YAAY,CAAC;;CAIrC,MAAM,mBAAmB,aAAqB,MAAwB;AACpE,IAAE,iBAAiB;AACnB,WAAS,MAAM,QAAQ,MAAM,MAAM,YAAY,CAAC;;CAGlD,MAAM,iBAAiB,MACpB,KAAK,MAAM,QAAQ,MAAM,QAAQ,IAAI,UAAU,EAAE,EAAE,MAAM,CACzD,OAAO,QAAQ;AAElB,QACE,iBAAA,GAAA,kBAAA,MAAC,OAAD;EACO;EACL,WAAW,cAAA,gBAAgB,mBAAmB,UAAU;EACxD,UAAU;YAHZ,CAKE,iBAAA,GAAA,kBAAA,KAAC,cAAA,OAAO,KAAR;GACE,OAAO,EACL,iBAAiB,cAAA,iBAAiB;;gBAE5B,UAAU,GAAG,OAAO,MAAM,MAAM,aAAa,OAAO,KAAK,OAAO;;;;aAKvE;GACD,aAAa;GACb,oBAAoB,WAAW,KAAK;GACpC,oBAAoB,WAAW,MAAM;GACrC,WAAU;aAEV,iBAAA,GAAA,kBAAA,MAAC,OAAD;IACE,WAAW,cAAA,gBACT,6NACA,YACD;IACD,eAAe;AACb,cAAS,MAAM;AACb,UAAI,EAAG,WAAU,GAAG;AACpB,aAAO,CAAC;OACR;;cATN,CAYE,iBAAA,GAAA,kBAAA,KAAC,OAAD;KAAK,WAAU;eACZ,eAAe,SAAS,IACvB,eAAe,KAAK,OAAO,UACzB,iBAAA,GAAA,kBAAA,MAAC,QAAD;MAEE,WAAU;gBAFZ,CAIG,OACD,iBAAA,GAAA,kBAAA,KAAC,UAAD;OACE,MAAK;OACL,UAAU,MAAM,gBAAgB,MAAM,QAAQ,EAAE;OAChD,WAAU;iBAEV,iBAAA,GAAA,kBAAA,KAAC,cAAA,WAAD;QAAW,WAAU;QAAU,eAAY;QAAS,CAAA;OAC7C,CAAA,CACJ;QAXA,MAAM,OAWN,CACP,GAEF,iBAAA,GAAA,kBAAA,KAAC,QAAD;MAAM,WAAU;gBAAyB;MAAmB,CAAA;KAE1D,CAAA,EACN,iBAAA,GAAA,kBAAA,KAAC,QAAD;KACE,WAAW,cAAA,gBACT,yEACA,OAAO,eAAe,WACvB;eAED,iBAAA,GAAA,kBAAA,KAAC,cAAA,iBAAD;MACE,OAAO;MACP,QAAQ;MACR,OAAM;MACN,WAAU;MACV,CAAA;KACG,CAAA,CACH;;GACK,CAAA,EACZ,QACC,iBAAA,GAAA,kBAAA,MAAC,OAAD;GAAK,WAAU;aAAf,CAEE,iBAAA,GAAA,kBAAA,KAAC,OAAD;IAAK,WAAU;cACb,iBAAA,GAAA,kBAAA,KAAC,SAAD;KACE,WAAA;KACA,WAAU;KACV,aAAY;KACZ,OAAO;KACP,WAAW,MAAM,UAAU,EAAE,OAAO,MAAM;KAC1C,UAAU,MAAM,EAAE,iBAAiB;KACnC,CAAA;IACE,CAAA,EAEN,iBAAA,GAAA,kBAAA,MAAC,OAAD;IAAK,WAAU;cAAf,CACG,gBAAgB,WAAW,KAC1B,iBAAA,GAAA,kBAAA,KAAC,OAAD;KAAK,WAAU;eAAgD;KAEzD,CAAA,EAEP,gBAAgB,KAAK,WAAW;KAC/B,MAAM,aAAa,MAAM,SAAS,OAAO,MAAM;AAC/C,YACE,iBAAA,GAAA,kBAAA,MAAC,OAAD;MAEE,WAAW,cAAA,gBACT,uEACA,aACI,iCACA,uDACL;MACD,eAAe,kBAAkB,OAAO,MAAM;gBARhD,CAUE,iBAAA,GAAA,kBAAA,KAAC,QAAD;OACE,WAAW,cAAA,gBACT,sEACA,aACI,2CACA,gBACL;iBAEA,cAAc,iBAAA,GAAA,kBAAA,KAAC,cAAA,WAAD;QAAW,OAAO;QAAI,QAAQ;QAAM,CAAA;OAC9C,CAAA,EACP,iBAAA,GAAA,kBAAA,KAAC,QAAD;OAAM,WAAU;iBAAU,OAAO;OAAa,CAAA,CAC1C;QApBC,OAAO,MAoBR;MAER,CACE;MACF;KAEJ"}
@@ -0,0 +1,186 @@
1
+ require("./chunk-B_GkZjkl.cjs");
2
+ let react = require("react");
3
+ let react_jsx_runtime = require("react/jsx-runtime");
4
+ //#region src/components/forms/otp-input/OTPInput.tsx
5
+ var sizeStyles = {
6
+ sm: "w-9 h-10 text-base",
7
+ md: "w-12 h-14 text-xl",
8
+ lg: "w-14 h-16 text-2xl"
9
+ };
10
+ var variantStyles = {
11
+ outlined: {
12
+ base: "border border-input bg-background-secondary rounded-lg shadow-input text-foreground",
13
+ focus: "focus:border-accent focus:ring-2 focus:ring-accent",
14
+ error: "border-destructive"
15
+ },
16
+ filled: {
17
+ base: "border border-transparent bg-accent-subtle rounded-lg text-foreground",
18
+ focus: "focus:border-accent focus:bg-background-secondary focus:ring-2 focus:ring-accent",
19
+ error: "bg-danger-subtle border-danger-border"
20
+ },
21
+ underlined: {
22
+ base: "border-b-2 border-border-strong bg-transparent rounded-none text-foreground",
23
+ focus: "focus:border-accent",
24
+ error: "border-destructive"
25
+ }
26
+ };
27
+ var OTPInput = (0, react.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__ */ (0, react_jsx_runtime.jsx)("span", {
28
+ className: "text-neutral-400 text-2xl mx-2",
29
+ children: "—"
30
+ }), separatorPositions = [], "aria-label": ariaLabel = "One-time password" }, ref) => {
31
+ const [values, setValues] = (0, react.useState)(() => {
32
+ return (controlledValue ?? defaultValue).split("").slice(0, length).concat(Array(length).fill("")).slice(0, length);
33
+ });
34
+ const inputRefs = (0, react.useRef)([]);
35
+ (0, react.useEffect)(() => {
36
+ if (controlledValue !== void 0) setValues(controlledValue.split("").slice(0, length).concat(Array(length).fill("")).slice(0, length));
37
+ }, [controlledValue, length]);
38
+ (0, react.useEffect)(() => {
39
+ if (autoFocus && inputRefs.current[0]) inputRefs.current[0].focus();
40
+ }, [autoFocus]);
41
+ const focusInput = (0, react.useCallback)((index) => {
42
+ if (index >= 0 && index < length && inputRefs.current[index]) {
43
+ inputRefs.current[index]?.focus();
44
+ inputRefs.current[index]?.select();
45
+ }
46
+ }, [length]);
47
+ const handleChange = (0, react.useCallback)((index, e) => {
48
+ const char = e.target.value.slice(-1);
49
+ if (type === "number" && char && !/^\d$/.test(char)) return;
50
+ const newValues = [...values];
51
+ newValues[index] = char;
52
+ setValues(newValues);
53
+ const otpValue = newValues.join("");
54
+ onChange?.(otpValue);
55
+ if (char && index < length - 1) focusInput(index + 1);
56
+ if (newValues.every((v) => v !== "") && newValues.length === length) onComplete?.(otpValue);
57
+ }, [
58
+ values,
59
+ onChange,
60
+ onComplete,
61
+ length,
62
+ type,
63
+ focusInput
64
+ ]);
65
+ const handleKeyDown = (0, react.useCallback)((index, e) => {
66
+ switch (e.key) {
67
+ case "Backspace":
68
+ e.preventDefault();
69
+ const newValues = [...values];
70
+ if (values[index]) {
71
+ newValues[index] = "";
72
+ setValues(newValues);
73
+ onChange?.(newValues.join(""));
74
+ } else if (index > 0) {
75
+ newValues[index - 1] = "";
76
+ setValues(newValues);
77
+ onChange?.(newValues.join(""));
78
+ focusInput(index - 1);
79
+ }
80
+ break;
81
+ case "ArrowLeft":
82
+ e.preventDefault();
83
+ focusInput(index - 1);
84
+ break;
85
+ case "ArrowRight":
86
+ e.preventDefault();
87
+ focusInput(index + 1);
88
+ break;
89
+ case "Delete":
90
+ e.preventDefault();
91
+ const deleteValues = [...values];
92
+ deleteValues[index] = "";
93
+ setValues(deleteValues);
94
+ onChange?.(deleteValues.join(""));
95
+ break;
96
+ }
97
+ }, [
98
+ values,
99
+ onChange,
100
+ focusInput
101
+ ]);
102
+ const handlePaste = (0, react.useCallback)((e) => {
103
+ e.preventDefault();
104
+ const pastedData = e.clipboardData.getData("text").slice(0, length);
105
+ if (type === "number" && !/^\d*$/.test(pastedData)) return;
106
+ const newValues = pastedData.split("").slice(0, length).concat(Array(length).fill("")).slice(0, length);
107
+ setValues(newValues);
108
+ const otpValue = newValues.join("");
109
+ onChange?.(otpValue);
110
+ const lastFilledIndex = newValues.findLastIndex((v) => v !== "");
111
+ focusInput(Math.min(lastFilledIndex + 1, length - 1));
112
+ if (newValues.every((v) => v !== "") && pastedData.length >= length) onComplete?.(otpValue);
113
+ }, [
114
+ length,
115
+ type,
116
+ onChange,
117
+ onComplete,
118
+ focusInput
119
+ ]);
120
+ const handleFocus = (0, react.useCallback)((e) => {
121
+ e.target.select();
122
+ }, []);
123
+ const renderInputs = () => {
124
+ const inputs = [];
125
+ for (let i = 0; i < length; i++) {
126
+ if (separatorPositions.includes(i) && i > 0) inputs.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
127
+ className: "flex items-center",
128
+ children: separator
129
+ }, `separator-${i}`));
130
+ inputs.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
131
+ ref: (el) => {
132
+ inputRefs.current[i] = el;
133
+ return () => {
134
+ inputRefs.current[i] = null;
135
+ };
136
+ },
137
+ type: mask ? "password" : "text",
138
+ inputMode: type === "number" ? "numeric" : "text",
139
+ pattern: type === "number" ? "\\d*" : void 0,
140
+ maxLength: 1,
141
+ value: values[i] || "",
142
+ placeholder,
143
+ disabled,
144
+ onChange: (e) => handleChange(i, e),
145
+ onKeyDown: (e) => handleKeyDown(i, e),
146
+ onPaste: handlePaste,
147
+ onFocus: handleFocus,
148
+ "aria-label": `${ariaLabel} digit ${i + 1}`,
149
+ className: `
150
+ text-center font-semibold outline-none transition-all
151
+ placeholder:text-muted-foreground
152
+ ${sizeStyles[size]}
153
+ ${variantStyles[variant].base}
154
+ ${!error ? variantStyles[variant].focus : ""}
155
+ ${error ? variantStyles[variant].error : ""}
156
+ ${disabled ? "opacity-50 cursor-not-allowed bg-muted" : ""}
157
+ ${inputClassName}
158
+ `
159
+ }, i));
160
+ }
161
+ return inputs;
162
+ };
163
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
164
+ ref,
165
+ className: `flex flex-col gap-2 ${className}`,
166
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
167
+ className: "flex items-center gap-2",
168
+ role: "group",
169
+ "aria-label": ariaLabel,
170
+ children: renderInputs()
171
+ }), error && errorMessage && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
172
+ className: "text-sm text-destructive",
173
+ children: errorMessage
174
+ })]
175
+ });
176
+ });
177
+ OTPInput.displayName = "OTPInput";
178
+ //#endregion
179
+ Object.defineProperty(exports, "OTPInput", {
180
+ enumerable: true,
181
+ get: function() {
182
+ return OTPInput;
183
+ }
184
+ });
185
+
186
+ //# sourceMappingURL=otp-input-B6zzOEqw.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otp-input-B6zzOEqw.cjs","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":"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"}