@kamod-ch/ui 0.2.1

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 (415) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +183 -0
  3. package/dist/Accordion-D1PiNspd.d.ts +39 -0
  4. package/dist/AlertDialog-ALB541qy.d.ts +64 -0
  5. package/dist/Button-vQnkiVTI.d.ts +84 -0
  6. package/dist/CalendarDateTimePanel-B3J8OlSc.d.ts +79 -0
  7. package/dist/Carousel-BUB4DVuh.d.ts +48 -0
  8. package/dist/Chart-Ax22S5_N.d.ts +10 -0
  9. package/dist/Checkbox-DBbLYq6Q.d.ts +12 -0
  10. package/dist/Collapsible-CW1hQwqV.d.ts +34 -0
  11. package/dist/ComboboxValue-BGfXgtZt.d.ts +135 -0
  12. package/dist/CommandSeparator-wZRCsqsT.d.ts +47 -0
  13. package/dist/DataTable-zNTTdYVU.d.ts +13 -0
  14. package/dist/DatePicker-AFAYh5Ca.d.ts +20 -0
  15. package/dist/Dialog-BOIteLfe.d.ts +28 -0
  16. package/dist/DialogContent-CK1t4m4e.d.ts +24 -0
  17. package/dist/DialogHeader-CYT7iUDq.d.ts +13 -0
  18. package/dist/DialogTitle-CerJD0oA.d.ts +13 -0
  19. package/dist/Direction-25ZOt0gW.d.ts +24 -0
  20. package/dist/Drawer-B3pZMn5j.d.ts +41 -0
  21. package/dist/Dropdown-CVbWVKok.d.ts +143 -0
  22. package/dist/FieldTitle-aSgThW-B.d.ts +100 -0
  23. package/dist/HoverCard-aVEEtkyO.d.ts +52 -0
  24. package/dist/Input-Cem05el9.d.ts +27 -0
  25. package/dist/Menubar-DwYDW4w2.d.ts +88 -0
  26. package/dist/PopoverTrigger-CH_Kx2mn.d.ts +43 -0
  27. package/dist/Progress-BGij8Hob.d.ts +13 -0
  28. package/dist/RadioGroup-BaElzLwa.d.ts +40 -0
  29. package/dist/ScrollArea-B-vILe3g.d.ts +16 -0
  30. package/dist/Select-B_mNVh70.d.ts +51 -0
  31. package/dist/Separator-DCQYrnpB.d.ts +9 -0
  32. package/dist/Sheet-s0xRF22F.d.ts +29 -0
  33. package/dist/SidebarProvider-IAihmyD7.d.ts +46 -0
  34. package/dist/Slider-BQLMBpYs.d.ts +16 -0
  35. package/dist/Switch-CTTkNdqF.d.ts +31 -0
  36. package/dist/Tabs-CR-thcs6.d.ts +47 -0
  37. package/dist/Textarea-DbKkduOG.d.ts +27 -0
  38. package/dist/ThemeToggle-DfiEM1dZ.d.ts +9 -0
  39. package/dist/Toggle-CseZl7XN.d.ts +49 -0
  40. package/dist/ToggleGroup-UeYHzQe7.d.ts +137 -0
  41. package/dist/Tooltip-Ba3GxE7u.d.ts +40 -0
  42. package/dist/Typography-ccTtE182.d.ts +64 -0
  43. package/dist/chunk-26CRIZXP.js +244 -0
  44. package/dist/chunk-26CRIZXP.js.map +1 -0
  45. package/dist/chunk-2BQ54337.js +282 -0
  46. package/dist/chunk-2BQ54337.js.map +1 -0
  47. package/dist/chunk-2HZCH73K.js +109 -0
  48. package/dist/chunk-2HZCH73K.js.map +1 -0
  49. package/dist/chunk-2KY7P27I.js +64 -0
  50. package/dist/chunk-2KY7P27I.js.map +1 -0
  51. package/dist/chunk-3DNIMQX6.js +78 -0
  52. package/dist/chunk-3DNIMQX6.js.map +1 -0
  53. package/dist/chunk-3KB54OYF.js +81 -0
  54. package/dist/chunk-3KB54OYF.js.map +1 -0
  55. package/dist/chunk-4BJJOHZT.js +477 -0
  56. package/dist/chunk-4BJJOHZT.js.map +1 -0
  57. package/dist/chunk-4IBTERDG.js +9 -0
  58. package/dist/chunk-4IBTERDG.js.map +1 -0
  59. package/dist/chunk-4V3WHQJE.js +510 -0
  60. package/dist/chunk-4V3WHQJE.js.map +1 -0
  61. package/dist/chunk-5FBD2NTR.js +103 -0
  62. package/dist/chunk-5FBD2NTR.js.map +1 -0
  63. package/dist/chunk-5KS2VSX2.js +94 -0
  64. package/dist/chunk-5KS2VSX2.js.map +1 -0
  65. package/dist/chunk-5Q4RBIMZ.js +25 -0
  66. package/dist/chunk-5Q4RBIMZ.js.map +1 -0
  67. package/dist/chunk-67J4KBOW.js +124 -0
  68. package/dist/chunk-67J4KBOW.js.map +1 -0
  69. package/dist/chunk-6BK3PIRX.js +151 -0
  70. package/dist/chunk-6BK3PIRX.js.map +1 -0
  71. package/dist/chunk-6FYSVMH7.js +21 -0
  72. package/dist/chunk-6FYSVMH7.js.map +1 -0
  73. package/dist/chunk-6RASPU5N.js +31 -0
  74. package/dist/chunk-6RASPU5N.js.map +1 -0
  75. package/dist/chunk-7AJT2E2Y.js +624 -0
  76. package/dist/chunk-7AJT2E2Y.js.map +1 -0
  77. package/dist/chunk-7IOAIEIA.js +102 -0
  78. package/dist/chunk-7IOAIEIA.js.map +1 -0
  79. package/dist/chunk-7MITRFPE.js +192 -0
  80. package/dist/chunk-7MITRFPE.js.map +1 -0
  81. package/dist/chunk-BDK7CDEI.js +22 -0
  82. package/dist/chunk-BDK7CDEI.js.map +1 -0
  83. package/dist/chunk-BQP4UA44.js +18 -0
  84. package/dist/chunk-BQP4UA44.js.map +1 -0
  85. package/dist/chunk-BYG2ULS3.js +196 -0
  86. package/dist/chunk-BYG2ULS3.js.map +1 -0
  87. package/dist/chunk-C7WEQOUA.js +26 -0
  88. package/dist/chunk-C7WEQOUA.js.map +1 -0
  89. package/dist/chunk-CLEC2RMU.js +8 -0
  90. package/dist/chunk-CLEC2RMU.js.map +1 -0
  91. package/dist/chunk-CMBERB5B.js +9 -0
  92. package/dist/chunk-CMBERB5B.js.map +1 -0
  93. package/dist/chunk-COPT6I2D.js +122 -0
  94. package/dist/chunk-COPT6I2D.js.map +1 -0
  95. package/dist/chunk-CP55TVOV.js +271 -0
  96. package/dist/chunk-CP55TVOV.js.map +1 -0
  97. package/dist/chunk-D3DQ4ICC.js +25 -0
  98. package/dist/chunk-D3DQ4ICC.js.map +1 -0
  99. package/dist/chunk-ERBGZZ2U.js +26 -0
  100. package/dist/chunk-ERBGZZ2U.js.map +1 -0
  101. package/dist/chunk-FIOKWIJP.js +361 -0
  102. package/dist/chunk-FIOKWIJP.js.map +1 -0
  103. package/dist/chunk-G6TV6TF7.js +95 -0
  104. package/dist/chunk-G6TV6TF7.js.map +1 -0
  105. package/dist/chunk-GGTDJEE2.js +15 -0
  106. package/dist/chunk-GGTDJEE2.js.map +1 -0
  107. package/dist/chunk-GIU6BZTW.js +173 -0
  108. package/dist/chunk-GIU6BZTW.js.map +1 -0
  109. package/dist/chunk-HAAXVB3R.js +34 -0
  110. package/dist/chunk-HAAXVB3R.js.map +1 -0
  111. package/dist/chunk-HTSAUMF5.js +398 -0
  112. package/dist/chunk-HTSAUMF5.js.map +1 -0
  113. package/dist/chunk-IJ4ZRIR4.js +182 -0
  114. package/dist/chunk-IJ4ZRIR4.js.map +1 -0
  115. package/dist/chunk-J4DMQV64.js +340 -0
  116. package/dist/chunk-J4DMQV64.js.map +1 -0
  117. package/dist/chunk-JKXSX67K.js +95 -0
  118. package/dist/chunk-JKXSX67K.js.map +1 -0
  119. package/dist/chunk-JNF7FDJO.js +633 -0
  120. package/dist/chunk-JNF7FDJO.js.map +1 -0
  121. package/dist/chunk-JURNPBSW.js +70 -0
  122. package/dist/chunk-JURNPBSW.js.map +1 -0
  123. package/dist/chunk-LCMPFPBN.js +141 -0
  124. package/dist/chunk-LCMPFPBN.js.map +1 -0
  125. package/dist/chunk-LCWXIQKA.js +36 -0
  126. package/dist/chunk-LCWXIQKA.js.map +1 -0
  127. package/dist/chunk-LFJF3M6M.js +171 -0
  128. package/dist/chunk-LFJF3M6M.js.map +1 -0
  129. package/dist/chunk-MD6HHORY.js +524 -0
  130. package/dist/chunk-MD6HHORY.js.map +1 -0
  131. package/dist/chunk-MJG6UKD4.js +83 -0
  132. package/dist/chunk-MJG6UKD4.js.map +1 -0
  133. package/dist/chunk-MKG3UAP6.js +347 -0
  134. package/dist/chunk-MKG3UAP6.js.map +1 -0
  135. package/dist/chunk-MS2ZNYCJ.js +9 -0
  136. package/dist/chunk-MS2ZNYCJ.js.map +1 -0
  137. package/dist/chunk-NGKQBNZ5.js +29 -0
  138. package/dist/chunk-NGKQBNZ5.js.map +1 -0
  139. package/dist/chunk-NKKMM6CK.js +56 -0
  140. package/dist/chunk-NKKMM6CK.js.map +1 -0
  141. package/dist/chunk-OCLVMKVC.js +110 -0
  142. package/dist/chunk-OCLVMKVC.js.map +1 -0
  143. package/dist/chunk-PFV7YIEP.js +104 -0
  144. package/dist/chunk-PFV7YIEP.js.map +1 -0
  145. package/dist/chunk-PGOCR4LG.js +216 -0
  146. package/dist/chunk-PGOCR4LG.js.map +1 -0
  147. package/dist/chunk-PPYJQNE5.js +159 -0
  148. package/dist/chunk-PPYJQNE5.js.map +1 -0
  149. package/dist/chunk-PU5J5EPY.js +733 -0
  150. package/dist/chunk-PU5J5EPY.js.map +1 -0
  151. package/dist/chunk-PZS2D2QM.js +32 -0
  152. package/dist/chunk-PZS2D2QM.js.map +1 -0
  153. package/dist/chunk-Q5IUIA6B.js +9 -0
  154. package/dist/chunk-Q5IUIA6B.js.map +1 -0
  155. package/dist/chunk-QFDTG2ZJ.js +176 -0
  156. package/dist/chunk-QFDTG2ZJ.js.map +1 -0
  157. package/dist/chunk-QZX3RFIC.js +165 -0
  158. package/dist/chunk-QZX3RFIC.js.map +1 -0
  159. package/dist/chunk-R565SY7K.js +69 -0
  160. package/dist/chunk-R565SY7K.js.map +1 -0
  161. package/dist/chunk-RHNI5UQO.js +455 -0
  162. package/dist/chunk-RHNI5UQO.js.map +1 -0
  163. package/dist/chunk-ROKLAZHC.js +550 -0
  164. package/dist/chunk-ROKLAZHC.js.map +1 -0
  165. package/dist/chunk-RTIFG4XT.js +9 -0
  166. package/dist/chunk-RTIFG4XT.js.map +1 -0
  167. package/dist/chunk-TFLSEEM4.js +88 -0
  168. package/dist/chunk-TFLSEEM4.js.map +1 -0
  169. package/dist/chunk-U2UNWXBC.js +242 -0
  170. package/dist/chunk-U2UNWXBC.js.map +1 -0
  171. package/dist/chunk-UEGIKBX6.js +385 -0
  172. package/dist/chunk-UEGIKBX6.js.map +1 -0
  173. package/dist/chunk-UEXTD7ZB.js +108 -0
  174. package/dist/chunk-UEXTD7ZB.js.map +1 -0
  175. package/dist/chunk-UNWEH4Z6.js +83 -0
  176. package/dist/chunk-UNWEH4Z6.js.map +1 -0
  177. package/dist/chunk-UXWUFNXY.js +8 -0
  178. package/dist/chunk-UXWUFNXY.js.map +1 -0
  179. package/dist/chunk-V2MG5Y5F.js +77 -0
  180. package/dist/chunk-V2MG5Y5F.js.map +1 -0
  181. package/dist/chunk-V63YIVKJ.js +326 -0
  182. package/dist/chunk-V63YIVKJ.js.map +1 -0
  183. package/dist/chunk-WAPRVVDQ.js +9 -0
  184. package/dist/chunk-WAPRVVDQ.js.map +1 -0
  185. package/dist/chunk-X4HPHMYW.js +17 -0
  186. package/dist/chunk-X4HPHMYW.js.map +1 -0
  187. package/dist/chunk-XGFJJ2YB.js +36 -0
  188. package/dist/chunk-XGFJJ2YB.js.map +1 -0
  189. package/dist/chunk-YJGECAOZ.js +18 -0
  190. package/dist/chunk-YJGECAOZ.js.map +1 -0
  191. package/dist/chunk-YTHUHPE5.js +51 -0
  192. package/dist/chunk-YTHUHPE5.js.map +1 -0
  193. package/dist/chunk-YTJRKLUR.js +76 -0
  194. package/dist/chunk-YTJRKLUR.js.map +1 -0
  195. package/dist/chunk-YVALXJRN.js +49 -0
  196. package/dist/chunk-YVALXJRN.js.map +1 -0
  197. package/dist/chunk-YZLPO4B2.js +33 -0
  198. package/dist/chunk-YZLPO4B2.js.map +1 -0
  199. package/dist/chunk-ZHAGKFSO.js +16 -0
  200. package/dist/chunk-ZHAGKFSO.js.map +1 -0
  201. package/dist/chunk-ZM67EKZC.js +135 -0
  202. package/dist/chunk-ZM67EKZC.js.map +1 -0
  203. package/dist/chunk-ZVAW22GX.js +50 -0
  204. package/dist/chunk-ZVAW22GX.js.map +1 -0
  205. package/dist/components/accordion/index.d.ts +12 -0
  206. package/dist/components/accordion/index.js +4 -0
  207. package/dist/components/accordion/index.js.map +1 -0
  208. package/dist/components/alert/index.d.ts +64 -0
  209. package/dist/components/alert/index.js +4 -0
  210. package/dist/components/alert/index.js.map +1 -0
  211. package/dist/components/alert-dialog/index.d.ts +22 -0
  212. package/dist/components/alert-dialog/index.js +9 -0
  213. package/dist/components/alert-dialog/index.js.map +1 -0
  214. package/dist/components/aspect-ratio/index.d.ts +11 -0
  215. package/dist/components/aspect-ratio/index.js +4 -0
  216. package/dist/components/aspect-ratio/index.js.map +1 -0
  217. package/dist/components/avatar/index.d.ts +53 -0
  218. package/dist/components/avatar/index.js +4 -0
  219. package/dist/components/avatar/index.js.map +1 -0
  220. package/dist/components/badge/index.d.ts +175 -0
  221. package/dist/components/badge/index.js +4 -0
  222. package/dist/components/badge/index.js.map +1 -0
  223. package/dist/components/breadcrumb/index.d.ts +38 -0
  224. package/dist/components/breadcrumb/index.js +4 -0
  225. package/dist/components/breadcrumb/index.js.map +1 -0
  226. package/dist/components/button/index.d.ts +72 -0
  227. package/dist/components/button/index.js +5 -0
  228. package/dist/components/button/index.js.map +1 -0
  229. package/dist/components/button-group/index.d.ts +21 -0
  230. package/dist/components/button-group/index.js +4 -0
  231. package/dist/components/button-group/index.js.map +1 -0
  232. package/dist/components/calendar/index.d.ts +7 -0
  233. package/dist/components/calendar/index.js +12 -0
  234. package/dist/components/calendar/index.js.map +1 -0
  235. package/dist/components/card/index.d.ts +80 -0
  236. package/dist/components/card/index.js +3 -0
  237. package/dist/components/card/index.js.map +1 -0
  238. package/dist/components/carousel/index.d.ts +15 -0
  239. package/dist/components/carousel/index.js +5 -0
  240. package/dist/components/carousel/index.js.map +1 -0
  241. package/dist/components/chart/index.d.ts +6 -0
  242. package/dist/components/chart/index.js +4 -0
  243. package/dist/components/chart/index.js.map +1 -0
  244. package/dist/components/checkbox/index.d.ts +7 -0
  245. package/dist/components/checkbox/index.js +4 -0
  246. package/dist/components/checkbox/index.js.map +1 -0
  247. package/dist/components/collapsible/index.d.ts +11 -0
  248. package/dist/components/collapsible/index.js +4 -0
  249. package/dist/components/collapsible/index.js.map +1 -0
  250. package/dist/components/combobox/index.d.ts +13 -0
  251. package/dist/components/combobox/index.js +7 -0
  252. package/dist/components/combobox/index.js.map +1 -0
  253. package/dist/components/command/index.d.ts +21 -0
  254. package/dist/components/command/index.js +10 -0
  255. package/dist/components/command/index.js.map +1 -0
  256. package/dist/components/context-menu/index.d.ts +114 -0
  257. package/dist/components/context-menu/index.js +5 -0
  258. package/dist/components/context-menu/index.js.map +1 -0
  259. package/dist/components/data-table/index.d.ts +6 -0
  260. package/dist/components/data-table/index.js +5 -0
  261. package/dist/components/data-table/index.js.map +1 -0
  262. package/dist/components/date-picker/index.d.ts +7 -0
  263. package/dist/components/date-picker/index.js +8 -0
  264. package/dist/components/date-picker/index.js.map +1 -0
  265. package/dist/components/dialog/index.d.ts +22 -0
  266. package/dist/components/dialog/index.js +8 -0
  267. package/dist/components/dialog/index.js.map +1 -0
  268. package/dist/components/direction/index.d.ts +7 -0
  269. package/dist/components/direction/index.js +4 -0
  270. package/dist/components/direction/index.js.map +1 -0
  271. package/dist/components/drawer/index.d.ts +19 -0
  272. package/dist/components/drawer/index.js +8 -0
  273. package/dist/components/drawer/index.js.map +1 -0
  274. package/dist/components/dropdown/index.d.ts +24 -0
  275. package/dist/components/dropdown/index.js +5 -0
  276. package/dist/components/dropdown/index.js.map +1 -0
  277. package/dist/components/dropzone/index.d.ts +26 -0
  278. package/dist/components/dropzone/index.js +5 -0
  279. package/dist/components/dropzone/index.js.map +1 -0
  280. package/dist/components/empty/index.d.ts +59 -0
  281. package/dist/components/empty/index.js +4 -0
  282. package/dist/components/empty/index.js.map +1 -0
  283. package/dist/components/field/index.d.ts +8 -0
  284. package/dist/components/field/index.js +6 -0
  285. package/dist/components/field/index.js.map +1 -0
  286. package/dist/components/hover-card/index.d.ts +12 -0
  287. package/dist/components/hover-card/index.js +3 -0
  288. package/dist/components/hover-card/index.js.map +1 -0
  289. package/dist/components/image/index.d.ts +6 -0
  290. package/dist/components/image/index.js +4 -0
  291. package/dist/components/image/index.js.map +1 -0
  292. package/dist/components/input/index.d.ts +27 -0
  293. package/dist/components/input/index.js +4 -0
  294. package/dist/components/input/index.js.map +1 -0
  295. package/dist/components/input-group/index.d.ts +132 -0
  296. package/dist/components/input-group/index.js +7 -0
  297. package/dist/components/input-group/index.js.map +1 -0
  298. package/dist/components/input-otp/index.d.ts +39 -0
  299. package/dist/components/input-otp/index.js +4 -0
  300. package/dist/components/input-otp/index.js.map +1 -0
  301. package/dist/components/item/index.d.ts +108 -0
  302. package/dist/components/item/index.js +5 -0
  303. package/dist/components/item/index.js.map +1 -0
  304. package/dist/components/kbd/index.d.ts +31 -0
  305. package/dist/components/kbd/index.js +4 -0
  306. package/dist/components/kbd/index.js.map +1 -0
  307. package/dist/components/label/index.d.ts +49 -0
  308. package/dist/components/label/index.js +4 -0
  309. package/dist/components/label/index.js.map +1 -0
  310. package/dist/components/locale-segment-group/index.d.ts +15 -0
  311. package/dist/components/locale-segment-group/index.js +4 -0
  312. package/dist/components/locale-segment-group/index.js.map +1 -0
  313. package/dist/components/menubar/index.d.ts +23 -0
  314. package/dist/components/menubar/index.js +5 -0
  315. package/dist/components/menubar/index.js.map +1 -0
  316. package/dist/components/native-select/index.d.ts +89 -0
  317. package/dist/components/native-select/index.js +3 -0
  318. package/dist/components/native-select/index.js.map +1 -0
  319. package/dist/components/navigation-menu/index.d.ts +15 -0
  320. package/dist/components/navigation-menu/index.js +5 -0
  321. package/dist/components/navigation-menu/index.js.map +1 -0
  322. package/dist/components/pagination/index.d.ts +44 -0
  323. package/dist/components/pagination/index.js +5 -0
  324. package/dist/components/pagination/index.js.map +1 -0
  325. package/dist/components/popover/index.d.ts +76 -0
  326. package/dist/components/popover/index.js +5 -0
  327. package/dist/components/popover/index.js.map +1 -0
  328. package/dist/components/progress/index.d.ts +6 -0
  329. package/dist/components/progress/index.js +4 -0
  330. package/dist/components/progress/index.js.map +1 -0
  331. package/dist/components/prose/index.d.ts +8 -0
  332. package/dist/components/prose/index.js +4 -0
  333. package/dist/components/prose/index.js.map +1 -0
  334. package/dist/components/radio-group/index.d.ts +11 -0
  335. package/dist/components/radio-group/index.js +5 -0
  336. package/dist/components/radio-group/index.js.map +1 -0
  337. package/dist/components/scroll-area/index.d.ts +11 -0
  338. package/dist/components/scroll-area/index.js +4 -0
  339. package/dist/components/scroll-area/index.js.map +1 -0
  340. package/dist/components/select/index.d.ts +17 -0
  341. package/dist/components/select/index.js +5 -0
  342. package/dist/components/select/index.js.map +1 -0
  343. package/dist/components/selectable-card/index.d.ts +11 -0
  344. package/dist/components/selectable-card/index.js +5 -0
  345. package/dist/components/selectable-card/index.js.map +1 -0
  346. package/dist/components/separator/index.d.ts +24 -0
  347. package/dist/components/separator/index.js +4 -0
  348. package/dist/components/separator/index.js.map +1 -0
  349. package/dist/components/sheet/index.d.ts +20 -0
  350. package/dist/components/sheet/index.js +8 -0
  351. package/dist/components/sheet/index.js.map +1 -0
  352. package/dist/components/sidebar/index.d.ts +16 -0
  353. package/dist/components/sidebar/index.js +3 -0
  354. package/dist/components/sidebar/index.js.map +1 -0
  355. package/dist/components/skeleton/index.d.ts +52 -0
  356. package/dist/components/skeleton/index.js +3 -0
  357. package/dist/components/skeleton/index.js.map +1 -0
  358. package/dist/components/slider/index.d.ts +7 -0
  359. package/dist/components/slider/index.js +4 -0
  360. package/dist/components/slider/index.js.map +1 -0
  361. package/dist/components/sonner/index.d.ts +7 -0
  362. package/dist/components/sonner/index.js +3 -0
  363. package/dist/components/sonner/index.js.map +1 -0
  364. package/dist/components/spinner/index.d.ts +10 -0
  365. package/dist/components/spinner/index.js +4 -0
  366. package/dist/components/spinner/index.js.map +1 -0
  367. package/dist/components/switch/index.d.ts +7 -0
  368. package/dist/components/switch/index.js +4 -0
  369. package/dist/components/switch/index.js.map +1 -0
  370. package/dist/components/table/index.d.ts +45 -0
  371. package/dist/components/table/index.js +5 -0
  372. package/dist/components/table/index.js.map +1 -0
  373. package/dist/components/tabs/index.d.ts +13 -0
  374. package/dist/components/tabs/index.js +5 -0
  375. package/dist/components/tabs/index.js.map +1 -0
  376. package/dist/components/textarea/index.d.ts +27 -0
  377. package/dist/components/textarea/index.js +4 -0
  378. package/dist/components/textarea/index.js.map +1 -0
  379. package/dist/components/theme-toggle/index.d.ts +6 -0
  380. package/dist/components/theme-toggle/index.js +6 -0
  381. package/dist/components/theme-toggle/index.js.map +1 -0
  382. package/dist/components/toast/index.d.ts +27 -0
  383. package/dist/components/toast/index.js +3 -0
  384. package/dist/components/toast/index.js.map +1 -0
  385. package/dist/components/toggle/index.d.ts +7 -0
  386. package/dist/components/toggle/index.js +4 -0
  387. package/dist/components/toggle/index.js.map +1 -0
  388. package/dist/components/toggle-group/index.d.ts +11 -0
  389. package/dist/components/toggle-group/index.js +4 -0
  390. package/dist/components/toggle-group/index.js.map +1 -0
  391. package/dist/components/tooltip/index.d.ts +12 -0
  392. package/dist/components/tooltip/index.js +3 -0
  393. package/dist/components/tooltip/index.js.map +1 -0
  394. package/dist/components/typography/index.d.ts +8 -0
  395. package/dist/components/typography/index.js +4 -0
  396. package/dist/components/typography/index.js.map +1 -0
  397. package/dist/components/video/index.d.ts +8 -0
  398. package/dist/components/video/index.js +4 -0
  399. package/dist/components/video/index.js.map +1 -0
  400. package/dist/index.d.ts +82 -0
  401. package/dist/index.js +83 -0
  402. package/dist/index.js.map +1 -0
  403. package/dist/lib/interactive/index.d.ts +44 -0
  404. package/dist/lib/interactive/index.js +3 -0
  405. package/dist/lib/interactive/index.js.map +1 -0
  406. package/dist/lib/signals/index.d.ts +15 -0
  407. package/dist/lib/signals/index.js +3 -0
  408. package/dist/lib/signals/index.js.map +1 -0
  409. package/dist/lib/utils.d.ts +5 -0
  410. package/dist/lib/utils.js +3 -0
  411. package/dist/lib/utils.js.map +1 -0
  412. package/dist/navigationMenuTriggerStyle-BWnESpon.d.ts +48 -0
  413. package/dist/sonner-store-Dfdxy8ba.d.ts +11 -0
  414. package/dist/theme.css +81 -0
  415. package/package.json +360 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/combobox/combobox-utils.ts","../src/components/combobox/combobox-context.tsx","../src/components/combobox/ComboboxChip.tsx","../src/components/combobox/ComboboxChips.tsx","../src/components/combobox/ComboboxChipsInput.tsx","../src/components/combobox/ComboboxClear.tsx","../src/components/combobox/ComboboxCommand.tsx","../src/components/combobox/ComboboxContent.tsx","../src/components/combobox/ComboboxInlineInput.tsx","../src/components/combobox/ComboboxInput.tsx","../src/components/combobox/ComboboxItem.tsx","../src/components/combobox/ComboboxList.tsx","../src/components/combobox/ComboboxTrigger.tsx","../src/components/combobox/ComboboxValue.tsx","../src/components/combobox/ComboboxSelect.tsx"],"names":["jsx","useLayoutEffect","jsxs","Fragment"],"mappings":"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","file":"chunk-PU5J5EPY.js","sourcesContent":["/** Flatten grouped `{ items: T[] }[]` shapes into leaf rows for selection lookup. */\nexport function flattenComboboxItems(items: readonly unknown[]): unknown[] {\n const out: unknown[] = [];\n for (const el of items) {\n if (el !== null && typeof el === \"object\" && \"items\" in el) {\n const sub = (el as { items: unknown }).items;\n if (Array.isArray(sub)) {\n out.push(...sub);\n continue;\n }\n }\n out.push(el);\n }\n return out;\n}\n\nexport function defaultComboboxItemKey(item: unknown): string {\n if (typeof item === \"string\" || typeof item === \"number\") return String(item);\n if (item && typeof item === \"object\" && \"value\" in item) {\n const v = (item as { value: unknown }).value;\n return v === undefined || v === null ? \"\" : String(v);\n }\n return JSON.stringify(item);\n}\n\nexport function defaultComboboxItemString(\n item: unknown,\n custom?: (item: unknown) => string,\n): string {\n if (custom) return custom(item);\n if (typeof item === \"string\") return item;\n if (item && typeof item === \"object\" && \"label\" in item) {\n const l = (item as { label: unknown }).label;\n return l === undefined || l === null ? \"\" : String(l);\n }\n return String(item);\n}\n","import { type Signal, signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useCallback, useContext, useLayoutEffect, useMemo, useRef, useState } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { Popover } from \"../popover/Popover\";\nimport {\n defaultComboboxItemKey,\n defaultComboboxItemString,\n flattenComboboxItems,\n} from \"./combobox-utils\";\n\nexport type ComboboxCommandNav = {\n moveHighlight: (delta: number) => void;\n activateHighlighted: () => void;\n};\n\nfunction normalizeInitialKeys(\n multiple: boolean,\n defaultValue: string | string[] | undefined,\n): string[] {\n if (defaultValue === undefined || defaultValue === \"\") return [];\n if (multiple) return Array.isArray(defaultValue) ? [...defaultValue] : [defaultValue];\n return typeof defaultValue === \"string\" ? [defaultValue] : [];\n}\n\nfunction keysFromValueProp(multiple: boolean, valueProp: string | string[] | undefined): string[] {\n if (valueProp === undefined) return [];\n if (multiple) return Array.isArray(valueProp) ? [...valueProp] : [];\n return typeof valueProp === \"string\" && valueProp ? [valueProp] : [];\n}\n\nexport type ComboboxContextValue = {\n items: readonly unknown[];\n leafItems: unknown[];\n itemToString: (item: unknown) => string;\n itemKey: (item: unknown) => string;\n selectedKeys: string[];\n /** First selected key; empty string if none (single-select ergonomics). */\n selectedKey: string;\n multiple: boolean;\n isSelected: (key: string) => boolean;\n selectByItem: (item: unknown) => void;\n toggleByItem: (item: unknown) => void;\n removeKey: (key: string) => void;\n clearSelection: () => void;\n placeholder: string;\n disabled: boolean;\n liftedFilter: boolean;\n filterQuery: Signal<string> | null;\n hasVisibleItems: Signal<boolean> | null;\n autoHighlight: boolean;\n showClear: boolean;\n closeOnSelect: boolean;\n comboboxListRef: { current: HTMLDivElement | null };\n commandNavRef: { current: ComboboxCommandNav | null };\n};\n\nconst ComboboxContext = createContext<ComboboxContextValue | null>(null);\n\nexport const useCombobox = () => {\n const ctx = useContext(ComboboxContext);\n if (!ctx) throw new Error(\"Combobox components must be used within Combobox\");\n return ctx;\n};\n\nexport function comboboxSelectionLabel(ctx: ComboboxContextValue): string {\n if (ctx.selectedKeys.length === 0) return \"\";\n const labels = ctx.selectedKeys.map((k) => {\n const it = ctx.leafItems.find((i) => ctx.itemKey(i) === k);\n return it !== undefined ? ctx.itemToString(it) : k;\n });\n return labels.join(\", \");\n}\n\nexport type ComboboxProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, \"children\"> & {\n items?: readonly unknown[];\n itemToStringValue?: (item: unknown) => string;\n itemKey?: (item: unknown) => string;\n value?: string | string[];\n defaultValue?: string | string[];\n /** Emits `string` when `multiple` is false, else `string[]`. */\n onValueChange?: (value: string | string[]) => void;\n placeholder?: string;\n disabled?: boolean;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n multiple?: boolean;\n /** Share filter text between trigger input and `Command` (Base UI–style single input + list in popover). */\n liftedFilter?: boolean;\n /** Highlight first match and enable ArrowUp/Down + Enter in filter inputs (requires `ComboboxCommand autoHighlight` or preset). */\n autoHighlight?: boolean;\n showClear?: boolean;\n /** When `multiple`, defaults to `false`; when single, defaults to `true`. */\n closeOnSelect?: boolean;\n children?: ComponentChildren;\n};\n\nexport const Combobox = ({\n items = [],\n itemToStringValue,\n itemKey: itemKeyProp,\n value: valueProp,\n defaultValue,\n onValueChange,\n placeholder = \"Select…\",\n disabled = false,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n multiple: multipleProp = false,\n liftedFilter = false,\n autoHighlight = false,\n showClear = false,\n closeOnSelect: closeOnSelectProp,\n class: className,\n children,\n ...rest\n}: ComboboxProps) => {\n const multiple = Boolean(multipleProp);\n const closeOnSelect = closeOnSelectProp ?? !multiple;\n\n const itemToString = useMemo(\n () => (item: unknown) => defaultComboboxItemString(item, itemToStringValue),\n [itemToStringValue],\n );\n const itemKey = useMemo(\n () => (item: unknown) => (itemKeyProp ? itemKeyProp(item) : defaultComboboxItemKey(item)),\n [itemKeyProp],\n );\n const leafItems = useMemo(() => flattenComboboxItems(items), [items]);\n\n const isValueControlled = valueProp !== undefined;\n const [internalKeys, setInternalKeys] = useState<string[]>(() =>\n normalizeInitialKeys(multiple, defaultValue),\n );\n\n const selectedKeys = isValueControlled ? keysFromValueProp(multiple, valueProp) : internalKeys;\n const selectedKey = selectedKeys[0] ?? \"\";\n\n const filterQuery = useMemo(() => (liftedFilter ? signal(\"\") : null), [liftedFilter]);\n const hasVisibleItemsSig = useMemo(() => (liftedFilter ? signal(true) : null), [liftedFilter]);\n const comboboxListRef = useMemo(() => ({ current: null as HTMLDivElement | null }), []);\n const commandNavRef = useMemo(() => ({ current: null as ComboboxCommandNav | null }), []);\n\n const isOpenRef = useRef(false);\n const selectedKeysRef = useRef(selectedKeys);\n selectedKeysRef.current = selectedKeys;\n\n const emitKeys = useCallback(\n (next: string[]) => {\n if (!isValueControlled) setInternalKeys(next);\n if (multiple) onValueChange?.(next);\n else onValueChange?.(next[0] ?? \"\");\n },\n [isValueControlled, multiple, onValueChange],\n );\n\n const selectByItem = useCallback(\n (item: unknown) => {\n const key = itemKey(item);\n emitKeys(key ? [key] : []);\n },\n [itemKey, emitKeys],\n );\n\n const toggleByItem = useCallback(\n (item: unknown) => {\n const key = itemKey(item);\n const exists = selectedKeysRef.current.includes(key);\n const next = exists\n ? selectedKeysRef.current.filter((k) => k !== key)\n : [...selectedKeysRef.current, key];\n emitKeys(next);\n },\n [itemKey, emitKeys],\n );\n\n const removeKey = useCallback(\n (key: string) => {\n emitKeys(selectedKeysRef.current.filter((k) => k !== key));\n },\n [emitKeys],\n );\n\n const clearSelection = useCallback(() => {\n emitKeys([]);\n }, [emitKeys]);\n\n const isSelected = useCallback(\n (key: string) => {\n return selectedKeys.includes(key);\n },\n [selectedKeys],\n );\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n isOpenRef.current = open;\n onOpenChange?.(open);\n if (!liftedFilter || !filterQuery) return;\n if (open) {\n filterQuery.value = \"\";\n } else if (multiple) {\n filterQuery.value = \"\";\n } else {\n const k = selectedKeysRef.current[0];\n if (!k) filterQuery.value = \"\";\n else {\n const it = leafItems.find((i) => itemKey(i) === k);\n filterQuery.value = it !== undefined ? itemToString(it) : k;\n }\n }\n },\n [liftedFilter, filterQuery, onOpenChange, multiple, leafItems, itemKey, itemToString],\n );\n\n useLayoutEffect(() => {\n if (!liftedFilter || !filterQuery || multiple || isOpenRef.current) return;\n const k = selectedKeys[0];\n if (!k) {\n filterQuery.value = \"\";\n return;\n }\n const it = leafItems.find((i) => itemKey(i) === k);\n filterQuery.value = it !== undefined ? itemToString(it) : k;\n }, [liftedFilter, filterQuery, multiple, selectedKeys, leafItems, itemKey, itemToString]);\n\n const contextValue = useMemo<ComboboxContextValue>(\n () => ({\n items,\n leafItems,\n itemToString,\n itemKey,\n selectedKeys,\n selectedKey,\n multiple,\n isSelected,\n selectByItem,\n toggleByItem,\n removeKey,\n clearSelection,\n placeholder,\n disabled,\n liftedFilter,\n filterQuery,\n hasVisibleItems: hasVisibleItemsSig,\n autoHighlight,\n showClear,\n closeOnSelect,\n comboboxListRef,\n commandNavRef,\n }),\n [\n items,\n leafItems,\n itemToString,\n itemKey,\n selectedKeys,\n selectedKey,\n multiple,\n isSelected,\n selectByItem,\n toggleByItem,\n removeKey,\n clearSelection,\n placeholder,\n disabled,\n liftedFilter,\n filterQuery,\n hasVisibleItemsSig,\n autoHighlight,\n showClear,\n closeOnSelect,\n comboboxListRef,\n commandNavRef,\n ],\n );\n\n return (\n <ComboboxContext.Provider value={contextValue}>\n <div data-slot=\"combobox\" class={cn(\"relative\", className)} {...rest}>\n <Popover open={openProp} defaultOpen={defaultOpen} onOpenChange={handleOpenChange}>\n {children}\n </Popover>\n </div>\n </ComboboxContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxChipProps = Omit<JSX.HTMLAttributes<HTMLSpanElement>, \"children\"> & {\n itemKey: string;\n children?: ComponentChildren;\n};\n\nexport const ComboboxChip = ({\n itemKey: chipKey,\n children,\n class: className,\n ...rest\n}: ComboboxChipProps) => {\n const ctx = useCombobox();\n return (\n <span\n data-slot=\"combobox-chip\"\n class={cn(\n \"bg-secondary text-secondary-foreground inline-flex max-w-full items-center gap-0.5 rounded-md px-2 py-0.5 text-xs\",\n className,\n )}\n {...rest}\n >\n <span class=\"min-w-0 truncate\">{children}</span>\n <button\n type=\"button\"\n class=\"text-muted-foreground hover:text-foreground shrink-0 rounded p-0.5 outline-none focus-visible:ring-2 focus-visible:ring-ring/50\"\n aria-label=\"Remove\"\n onClick={(event) => {\n event.stopPropagation();\n ctx.removeKey(chipKey);\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden\n >\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n </span>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { PopoverTrigger } from \"../popover/PopoverTrigger\";\n\nexport type ComboboxChipsProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\n/** Multi-select trigger row: wrap chips + `ComboboxChipsInput` (with `liftedFilter`). */\nexport const ComboboxChips = ({ class: className, children, ...rest }: ComboboxChipsProps) => (\n <PopoverTrigger asChild>\n <div\n data-slot=\"combobox-chips\"\n class={cn(\n \"border-input bg-background flex min-h-8 w-full min-w-44 flex-wrap items-center gap-1 rounded-md border px-2 py-1 shadow-xs outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50\",\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n </PopoverTrigger>\n);\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { usePopover } from \"../popover/Popover\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxChipsInputProps = JSX.InputHTMLAttributes<HTMLInputElement>;\n\n/** Filter field at the end of the chip row; requires `Combobox liftedFilter`. */\nexport const ComboboxChipsInput = ({\n class: className,\n onKeyDown,\n onInput,\n onFocus,\n ...rest\n}: ComboboxChipsInputProps) => {\n const ctx = useCombobox();\n const popover = usePopover();\n if (!ctx.filterQuery) {\n throw new Error(\"ComboboxChipsInput must be used with Combobox liftedFilter={true}\");\n }\n\n void ctx.filterQuery.value;\n void popover.open.value;\n\n return (\n <input\n {...rest}\n data-slot=\"combobox-chips-input\"\n class={cn(\n \"placeholder:text-muted-foreground min-w-[6rem] flex-1 border-0 bg-transparent px-1 py-1 text-sm outline-none\",\n className,\n )}\n value={ctx.filterQuery.value}\n onInput={(event) => {\n ctx.filterQuery!.value = event.currentTarget.value;\n popover.setOpen(true);\n onInput?.(event);\n }}\n onFocus={(event) => {\n onFocus?.(event);\n popover.setOpen(true);\n }}\n onKeyDown={(event) => {\n const nav = ctx.commandNavRef.current;\n if (ctx.autoHighlight && nav) {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n popover.setOpen(true);\n nav.moveHighlight(1);\n return;\n }\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n popover.setOpen(true);\n nav.moveHighlight(-1);\n return;\n }\n if (event.key === \"Enter\") {\n event.preventDefault();\n if (popover.open.value) nav.activateHighlighted();\n return;\n }\n }\n onKeyDown?.(event);\n }}\n />\n );\n};\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxClearProps = JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const ComboboxClear = ({ class: className, onClick, ...rest }: ComboboxClearProps) => {\n const ctx = useCombobox();\n const has = ctx.selectedKeys.length > 0;\n if (!has || !ctx.showClear) return null;\n\n return (\n <button\n type=\"button\"\n data-slot=\"combobox-clear\"\n aria-label=\"Clear selection\"\n class={cn(\n \"text-muted-foreground hover:text-foreground inline-flex size-7 shrink-0 items-center justify-center rounded-md outline-none focus-visible:ring-2 focus-visible:ring-ring/50\",\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n ctx.clearSelection();\n if (ctx.filterQuery) ctx.filterQuery.value = \"\";\n }}\n {...rest}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden\n >\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n );\n};\n","import { useLayoutEffect } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { Command, type CommandProps, useCommand } from \"../command/Command\";\nimport { useCombobox } from \"./combobox-context\";\n\nfunction CommandNavBridge() {\n const cmd = useCommand();\n const combo = useCombobox();\n const navRef = combo.commandNavRef;\n useLayoutEffect(() => {\n navRef.current = {\n moveHighlight: cmd.moveHighlight,\n activateHighlighted: cmd.activateHighlighted,\n };\n return () => {\n navRef.current = null;\n };\n }, [cmd.moveHighlight, cmd.activateHighlighted, navRef]);\n return null;\n}\n\nexport const ComboboxCommand = ({\n autoHighlight: autoHighlightProp,\n class: className,\n children,\n ...rest\n}: CommandProps) => {\n const ctx = useCombobox();\n const query = ctx.liftedFilter && ctx.filterQuery ? ctx.filterQuery : undefined;\n const hasVis = ctx.liftedFilter && ctx.hasVisibleItems ? ctx.hasVisibleItems : undefined;\n const autoHighlight = autoHighlightProp ?? ctx.autoHighlight;\n return (\n <Command\n {...rest}\n class={cn(\"rounded-lg border-0 bg-transparent shadow-none\", className)}\n autoHighlight={autoHighlight}\n query={query}\n hasVisibleItems={hasVis}\n >\n <CommandNavBridge />\n {children}\n </Command>\n );\n};\n\nexport type { CommandProps as ComboboxCommandProps };\n","import { cn } from \"../../lib/utils\";\nimport { usePopover } from \"../popover/Popover\";\nimport { PopoverContent, type PopoverContentProps } from \"../popover/PopoverContent\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport const ComboboxContent = ({\n forceMount: forceMountProp,\n class: className,\n ...rest\n}: PopoverContentProps) => {\n const popover = usePopover();\n const ctx = useCombobox();\n const forceMount = forceMountProp ?? ctx.liftedFilter;\n return (\n <PopoverContent\n forceMount={forceMount}\n class={cn(\n \"w-64 max-w-[calc(100vw-1.5rem)] gap-0 overflow-hidden p-0\",\n ctx.liftedFilter &&\n !popover.open.value &&\n \"pointer-events-none invisible max-h-0 min-h-0 border-0 p-0 opacity-0 shadow-none\",\n className,\n )}\n {...rest}\n />\n );\n};\n\nexport type { PopoverContentProps as ComboboxContentProps };\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { usePopover } from \"../popover/Popover\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxInlineInputProps = JSX.InputHTMLAttributes<HTMLInputElement>;\n\n/**\n * Base UI–style trigger: the visible field is the filter input; the list opens in `ComboboxContent`.\n * Requires `Combobox liftedFilter` (and usually `ComboboxTrigger asChild` wrapping a positioned container).\n */\nexport const ComboboxInlineInput = ({\n class: className,\n onKeyDown,\n onInput,\n onFocus,\n ...rest\n}: ComboboxInlineInputProps) => {\n const ctx = useCombobox();\n const popover = usePopover();\n if (!ctx.filterQuery) {\n throw new Error(\"ComboboxInlineInput must be used with Combobox liftedFilter={true}\");\n }\n\n void ctx.filterQuery.value;\n void popover.open.value;\n\n return (\n <input\n {...rest}\n data-slot=\"combobox-inline-input\"\n class={cn(\n \"border-input bg-background placeholder:text-muted-foreground flex h-10 w-full min-w-0 rounded-md border px-3 py-2 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n value={ctx.filterQuery.value}\n onInput={(event) => {\n ctx.filterQuery!.value = event.currentTarget.value;\n popover.setOpen(true);\n onInput?.(event);\n }}\n onFocus={(event) => {\n onFocus?.(event);\n popover.setOpen(true);\n }}\n onKeyDown={(event) => {\n const nav = ctx.commandNavRef.current;\n if (ctx.autoHighlight && nav) {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n popover.setOpen(true);\n nav.moveHighlight(1);\n return;\n }\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n popover.setOpen(true);\n nav.moveHighlight(-1);\n return;\n }\n if (event.key === \"Enter\") {\n event.preventDefault();\n if (popover.open.value) nav.activateHighlighted();\n return;\n }\n }\n onKeyDown?.(event);\n }}\n />\n );\n};\n","import { cn } from \"../../lib/utils\";\nimport { CommandInput, type CommandInputProps } from \"../command/CommandInput\";\n\nexport const ComboboxInput = ({ class: className, ...rest }: CommandInputProps) => (\n <CommandInput class={cn(className)} {...rest} />\n);\n\nexport type { CommandInputProps as ComboboxInputProps };\n","import { cn } from \"../../lib/utils\";\nimport { CommandItem, type CommandItemProps } from \"../command/CommandItem\";\nimport { usePopover } from \"../popover/Popover\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxItemProps = Omit<CommandItemProps, \"value\" | \"onSelect\"> & {\n item: unknown;\n};\n\nexport const ComboboxItem = ({\n item,\n class: className,\n children,\n disabled,\n onClick,\n ...rest\n}: ComboboxItemProps) => {\n const ctx = useCombobox();\n const popover = usePopover();\n const filterValue = ctx.itemToString(item);\n const key = ctx.itemKey(item);\n const selected = ctx.multiple ? ctx.selectedKeys.includes(key) : ctx.selectedKey === key;\n\n return (\n <CommandItem\n value={filterValue}\n disabled={disabled}\n class={cn(selected && \"bg-accent/60\", className)}\n onSelect={() => {\n if (ctx.multiple) {\n ctx.toggleByItem(item);\n if (ctx.closeOnSelect) popover.setOpen(false);\n } else {\n ctx.selectByItem(item);\n popover.setOpen(false);\n }\n }}\n onClick={onClick}\n {...rest}\n >\n {children}\n </CommandItem>\n );\n};\n","import type { ComponentChildren } from \"preact\";\nimport { CommandList, type CommandListProps } from \"../command/CommandList\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxListProps = Omit<CommandListProps, \"children\"> & {\n items?: readonly unknown[];\n children: ComponentChildren | ((item: unknown, index: number) => ComponentChildren);\n};\n\nexport const ComboboxList = ({\n items: itemsProp,\n children,\n onMount,\n ...rest\n}: ComboboxListProps) => {\n const ctx = useCombobox();\n const list = itemsProp !== undefined ? itemsProp : ctx.items;\n const body =\n typeof children === \"function\"\n ? list.map((item, index) =>\n (children as (i: unknown, idx: number) => ComponentChildren)(item, index),\n )\n : children;\n return (\n <CommandList\n {...rest}\n onMount={(el) => {\n ctx.comboboxListRef.current = el;\n onMount?.(el);\n }}\n >\n {body}\n </CommandList>\n );\n};\n","import { cn } from \"../../lib/utils\";\nimport { PopoverTrigger, type PopoverTriggerProps } from \"../popover/PopoverTrigger\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport const ComboboxTrigger = ({ class: className, disabled, ...rest }: PopoverTriggerProps) => {\n const ctx = useCombobox();\n return (\n <PopoverTrigger\n class={cn(\n \"border-input bg-background hover:bg-muted/50 flex h-8 w-full min-w-44 items-center justify-between gap-2 rounded-md border px-3 py-1 text-start text-sm font-normal shadow-xs outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n disabled={disabled ?? ctx.disabled}\n {...rest}\n />\n );\n};\n\nexport type { PopoverTriggerProps as ComboboxTriggerProps };\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { comboboxSelectionLabel, useCombobox } from \"./combobox-context\";\n\nexport type ComboboxValueProps = Omit<JSX.HTMLAttributes<HTMLSpanElement>, \"children\"> & {\n placeholder?: string;\n children?:\n | ((state: { label: string; empty: boolean; keys: string[] }) => ComponentChildren)\n | ComponentChildren;\n};\n\nexport const ComboboxValue = ({\n placeholder: placeholderProp,\n children,\n class: className,\n ...rest\n}: ComboboxValueProps) => {\n const ctx = useCombobox();\n const label = comboboxSelectionLabel(ctx);\n const empty = ctx.selectedKeys.length === 0;\n\n if (typeof children === \"function\") {\n return <>{children({ label, empty, keys: ctx.selectedKeys })}</>;\n }\n\n return (\n <span\n data-slot=\"combobox-value\"\n class={cn(\"truncate\", empty && \"text-muted-foreground\", className)}\n {...rest}\n >\n {empty ? (placeholderProp ?? ctx.placeholder) : label}\n </span>\n );\n};\n","import { cn } from \"../../lib/utils\";\nimport { ComboboxChip } from \"./ComboboxChip\";\nimport { ComboboxChips } from \"./ComboboxChips\";\nimport { ComboboxChipsInput } from \"./ComboboxChipsInput\";\nimport { ComboboxClear } from \"./ComboboxClear\";\nimport { ComboboxCommand } from \"./ComboboxCommand\";\nimport { ComboboxContent } from \"./ComboboxContent\";\nimport { ComboboxEmpty } from \"./ComboboxEmpty\";\nimport { ComboboxInlineInput } from \"./ComboboxInlineInput\";\nimport { ComboboxInput } from \"./ComboboxInput\";\nimport { ComboboxItem } from \"./ComboboxItem\";\nimport { ComboboxList } from \"./ComboboxList\";\nimport { ComboboxTrigger } from \"./ComboboxTrigger\";\nimport { ComboboxValue } from \"./ComboboxValue\";\nimport { Combobox, type ComboboxProps } from \"./combobox-context\";\n\nexport type ComboboxOption = { label: string; value: string };\n\nconst ChevronDownIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden\n class=\"shrink-0 opacity-50\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n);\n\nexport type ComboboxSelectProps = Omit<\n ComboboxProps,\n \"items\" | \"children\" | \"itemKey\" | \"itemToStringValue\"\n> & {\n options: ComboboxOption[];\n searchPlaceholder?: string;\n emptyText?: string;\n triggerClass?: string;\n};\n\n/** Preset around `{ label, value }[]`: button trigger, inline input trigger, multi chips, clear, and auto-highlight. */\nexport const ComboboxSelect = ({\n options,\n searchPlaceholder = \"Search…\",\n emptyText = \"No results found.\",\n triggerClass,\n showClear = false,\n autoHighlight = false,\n liftedFilter = false,\n multiple = false,\n class: className,\n placeholder,\n ...rest\n}: ComboboxSelectProps) => {\n const useLifted = Boolean(liftedFilter || multiple);\n\n if (multiple) {\n return (\n <Combobox\n class={className}\n items={options}\n itemKey={(o) => (o as ComboboxOption).value}\n itemToStringValue={(o) => (o as ComboboxOption).label}\n multiple\n liftedFilter\n autoHighlight={autoHighlight}\n showClear={showClear}\n placeholder={placeholder}\n {...rest}\n >\n <ComboboxChips class={triggerClass}>\n <ComboboxValue placeholder={placeholder ?? \"Select…\"}>\n {({ keys, empty }) => (\n <>\n {keys.map((k) => {\n const o = options.find((x) => x.value === k);\n if (!o) return null;\n return (\n <ComboboxChip key={k} itemKey={k}>\n {o.label}\n </ComboboxChip>\n );\n })}\n {empty ? (\n <span class=\"text-muted-foreground px-1 py-0.5 text-sm\">\n {placeholder ?? \"Select…\"}\n </span>\n ) : null}\n </>\n )}\n </ComboboxValue>\n {showClear ? <ComboboxClear class=\"shrink-0\" /> : null}\n <ComboboxChipsInput placeholder={searchPlaceholder} />\n </ComboboxChips>\n <ComboboxContent>\n <ComboboxCommand>\n <ComboboxEmpty>{emptyText}</ComboboxEmpty>\n <ComboboxList>\n {(opt) => {\n const o = opt as ComboboxOption;\n return (\n <ComboboxItem key={o.value} item={o}>\n {o.label}\n </ComboboxItem>\n );\n }}\n </ComboboxList>\n </ComboboxCommand>\n </ComboboxContent>\n </Combobox>\n );\n }\n\n if (useLifted) {\n return (\n <Combobox\n class={className}\n items={options}\n itemKey={(o) => (o as ComboboxOption).value}\n itemToStringValue={(o) => (o as ComboboxOption).label}\n liftedFilter\n autoHighlight={autoHighlight}\n showClear={showClear}\n placeholder={placeholder}\n {...rest}\n >\n <ComboboxTrigger asChild>\n <div class={cn(\"relative flex w-full min-w-44 items-center\", triggerClass)}>\n <ComboboxInlineInput placeholder={searchPlaceholder} class=\"pe-16\" />\n {showClear ? (\n <ComboboxClear class=\"absolute end-9 top-1/2 z-10 -translate-y-1/2\" />\n ) : null}\n <span class=\"pointer-events-none absolute end-3 top-1/2 -translate-y-1/2\">\n <ChevronDownIcon />\n </span>\n </div>\n </ComboboxTrigger>\n <ComboboxContent>\n <ComboboxCommand>\n <ComboboxEmpty>{emptyText}</ComboboxEmpty>\n <ComboboxList>\n {(opt) => {\n const o = opt as ComboboxOption;\n return (\n <ComboboxItem key={o.value} item={o}>\n {o.label}\n </ComboboxItem>\n );\n }}\n </ComboboxList>\n </ComboboxCommand>\n </ComboboxContent>\n </Combobox>\n );\n }\n\n return (\n <Combobox\n class={className}\n items={options}\n itemKey={(o) => (o as ComboboxOption).value}\n itemToStringValue={(o) => (o as ComboboxOption).label}\n autoHighlight={autoHighlight}\n showClear={showClear}\n placeholder={placeholder}\n {...rest}\n >\n <ComboboxTrigger class={cn(triggerClass)}>\n <ComboboxValue />\n <span class=\"ms-auto flex shrink-0 items-center gap-0.5\">\n {showClear ? <ComboboxClear /> : null}\n <ChevronDownIcon />\n </span>\n </ComboboxTrigger>\n <ComboboxContent>\n <ComboboxCommand>\n <ComboboxInput placeholder={searchPlaceholder} />\n <ComboboxEmpty>{emptyText}</ComboboxEmpty>\n <ComboboxList>\n {(opt) => {\n const o = opt as ComboboxOption;\n return (\n <ComboboxItem key={o.value} item={o}>\n {o.label}\n </ComboboxItem>\n );\n }}\n </ComboboxList>\n </ComboboxCommand>\n </ComboboxContent>\n </Combobox>\n );\n};\n"]}
@@ -0,0 +1,32 @@
1
+ import { Dialog, DialogContent } from './chunk-4BJJOHZT.js';
2
+ import { cn } from './chunk-MS2ZNYCJ.js';
3
+ import { jsx } from 'preact/jsx-runtime';
4
+
5
+ var CommandDialog = ({
6
+ open,
7
+ defaultOpen,
8
+ onOpenChange,
9
+ contentClass,
10
+ children
11
+ }) => /* @__PURE__ */ jsx(Dialog, { open, defaultOpen, onOpenChange, children: /* @__PURE__ */ jsx(
12
+ DialogContent,
13
+ {
14
+ showCloseButton: false,
15
+ class: contentClass ?? "gap-0 overflow-hidden p-0 sm:max-w-lg",
16
+ "data-slot": "command-dialog-content",
17
+ children
18
+ }
19
+ ) });
20
+ var CommandShortcut = ({ class: className, children, ...rest }) => /* @__PURE__ */ jsx(
21
+ "span",
22
+ {
23
+ "data-slot": "command-shortcut",
24
+ class: cn("text-muted-foreground ms-auto text-xs tracking-widest", className),
25
+ ...rest,
26
+ children
27
+ }
28
+ );
29
+
30
+ export { CommandDialog, CommandShortcut };
31
+ //# sourceMappingURL=chunk-PZS2D2QM.js.map
32
+ //# sourceMappingURL=chunk-PZS2D2QM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/command/CommandDialog.tsx","../src/components/command/CommandShortcut.tsx"],"names":["jsx"],"mappings":";;;;AAYO,IAAM,gBAAgB,CAAC;AAAA,EAC5B,IAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,qBACE,GAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAY,WAAA,EAA0B,YAAA,EAC5C,QAAA,kBAAA,GAAA;AAAA,EAAC,aAAA;AAAA,EAAA;AAAA,IACC,eAAA,EAAiB,KAAA;AAAA,IACjB,OAAO,YAAA,IAAgB,uCAAA;AAAA,IACvB,WAAA,EAAU,wBAAA;AAAA,IAET;AAAA;AACH,CAAA,EACF;ACpBK,IAAM,eAAA,GAAkB,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,IAAA,EAAK,qBACpEA,GAAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,kBAAA;AAAA,IACV,KAAA,EAAO,EAAA,CAAG,uDAAA,EAAyD,SAAS,CAAA;AAAA,IAC3E,GAAG,IAAA;AAAA,IAEH;AAAA;AACH","file":"chunk-PZS2D2QM.js","sourcesContent":["import type { ComponentChildren } from \"preact\";\nimport { Dialog, DialogContent } from \"../dialog\";\n\nexport type CommandDialogProps = {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: ComponentChildren;\n /** Passed to `DialogContent` for width (default command palette sizing). */\n contentClass?: string;\n};\n\nexport const CommandDialog = ({\n open,\n defaultOpen,\n onOpenChange,\n contentClass,\n children,\n}: CommandDialogProps) => (\n <Dialog open={open} defaultOpen={defaultOpen} onOpenChange={onOpenChange}>\n <DialogContent\n showCloseButton={false}\n class={contentClass ?? \"gap-0 overflow-hidden p-0 sm:max-w-lg\"}\n data-slot=\"command-dialog-content\"\n >\n {children}\n </DialogContent>\n </Dialog>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type CommandShortcutProps = JSX.HTMLAttributes<HTMLSpanElement> & {\n children?: ComponentChildren;\n};\n\nexport const CommandShortcut = ({ class: className, children, ...rest }: CommandShortcutProps) => (\n <span\n data-slot=\"command-shortcut\"\n class={cn(\"text-muted-foreground ms-auto text-xs tracking-widest\", className)}\n {...rest}\n >\n {children}\n </span>\n);\n"]}
@@ -0,0 +1,9 @@
1
+ import { textarea, Textarea } from './chunk-XGFJJ2YB.js';
2
+
3
+ // src/components/textarea/index.ts
4
+ var TextareaVariants = { textarea };
5
+ var textarea_default = Textarea;
6
+
7
+ export { TextareaVariants, textarea_default };
8
+ //# sourceMappingURL=chunk-Q5IUIA6B.js.map
9
+ //# sourceMappingURL=chunk-Q5IUIA6B.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/textarea/index.ts"],"names":[],"mappings":";;;AAEA,IAAM,gBAAA,GAAmB,EAAE,QAAA;AAI3B,IAAO,gBAAA,GAAQ","file":"chunk-Q5IUIA6B.js","sourcesContent":["import { Textarea, textarea } from \"./Textarea\";\n\nconst TextareaVariants = { textarea };\n\nexport { Textarea, TextareaVariants };\n\nexport default Textarea;\n"]}
@@ -0,0 +1,176 @@
1
+ import { cn } from './chunk-MS2ZNYCJ.js';
2
+ import { signal } from '@preact/signals';
3
+ import { useMemo, useRef, useContext } from 'preact/hooks';
4
+ import { createContext } from 'preact';
5
+ import { jsx, jsxs } from 'preact/jsx-runtime';
6
+
7
+ var InputOTPContext = createContext(null);
8
+ var useInputOTP = () => {
9
+ const ctx = useContext(InputOTPContext);
10
+ if (!ctx) throw new Error("InputOTPSlot and InputOTPGroup must be used within InputOTP");
11
+ return ctx;
12
+ };
13
+
14
+ // src/components/input-otp/patterns.ts
15
+ var REGEXP_ONLY_DIGITS = /^[0-9]*$/;
16
+ var REGEXP_ONLY_DIGITS_AND_CHARS = /^[a-zA-Z0-9]*$/;
17
+ var filterOtpValue = (raw, pattern) => {
18
+ if (!pattern) return raw;
19
+ if (pattern === REGEXP_ONLY_DIGITS) return raw.replace(/\D/g, "");
20
+ if (pattern === REGEXP_ONLY_DIGITS_AND_CHARS) return raw.replace(/[^a-zA-Z0-9]/g, "");
21
+ let out = "";
22
+ for (const ch of raw) {
23
+ const next = out + ch;
24
+ if (pattern.test(next)) out = next;
25
+ }
26
+ return out;
27
+ };
28
+ var activeSlotIndex = (focused, caret, len, max) => {
29
+ if (!focused) return -1;
30
+ if (len >= max) return max - 1;
31
+ return Math.min(Math.max(caret, 0), len, max - 1);
32
+ };
33
+ var InputOTP = ({
34
+ maxLength = 6,
35
+ value: controlledValue,
36
+ defaultValue = "",
37
+ onChange,
38
+ onValueChange,
39
+ pattern,
40
+ disabled = false,
41
+ id,
42
+ name,
43
+ autoComplete = "one-time-code",
44
+ class: className,
45
+ children,
46
+ dir,
47
+ "aria-label": ariaLabel,
48
+ ...rest
49
+ }) => {
50
+ const isControlled = controlledValue !== void 0;
51
+ const internal = useMemo(() => signal(defaultValue), []);
52
+ const focused = useMemo(() => signal(false), []);
53
+ const caretStart = useMemo(() => signal(0), []);
54
+ const inputRef = useRef(null);
55
+ const displayValue = isControlled ? controlledValue ?? "" : internal.value;
56
+ const bumpCaret = () => {
57
+ requestAnimationFrame(() => {
58
+ const el = inputRef.current;
59
+ const len = displayValue.length;
60
+ caretStart.value = el != null && typeof el.selectionStart === "number" ? el.selectionStart : len;
61
+ });
62
+ };
63
+ const emit = (next) => {
64
+ if (!isControlled) internal.value = next;
65
+ onChange?.(next);
66
+ onValueChange?.(next);
67
+ };
68
+ const handleInput = (event) => {
69
+ let next = filterOtpValue(event.currentTarget.value, pattern);
70
+ if (next.length > maxLength) next = next.slice(0, maxLength);
71
+ emit(next);
72
+ bumpCaret();
73
+ };
74
+ const activeIndex = activeSlotIndex(
75
+ focused.value,
76
+ caretStart.value,
77
+ displayValue.length,
78
+ maxLength
79
+ );
80
+ return /* @__PURE__ */ jsx(
81
+ InputOTPContext.Provider,
82
+ {
83
+ value: {
84
+ value: displayValue,
85
+ maxLength,
86
+ disabled,
87
+ focused: focused.value,
88
+ activeIndex,
89
+ inputRef
90
+ },
91
+ children: /* @__PURE__ */ jsx("div", { "data-slot": "input-otp", dir, class: cn("relative inline-flex", className), ...rest, children: /* @__PURE__ */ jsxs("div", { class: "relative inline-flex items-center", children: [
92
+ /* @__PURE__ */ jsx("div", { class: "pointer-events-none flex items-center gap-1", children }),
93
+ /* @__PURE__ */ jsx(
94
+ "input",
95
+ {
96
+ ref: inputRef,
97
+ id,
98
+ name,
99
+ type: "text",
100
+ autoComplete,
101
+ inputMode: pattern === REGEXP_ONLY_DIGITS ? "numeric" : "text",
102
+ disabled,
103
+ value: displayValue,
104
+ maxLength,
105
+ "aria-label": ariaLabel ?? "One-time password",
106
+ class: cn(
107
+ "absolute inset-0 z-20 h-full w-full cursor-default border-0 bg-transparent p-0 opacity-0 outline-none",
108
+ "focus-visible:outline-none"
109
+ ),
110
+ style: { caretColor: "transparent" },
111
+ onInput: handleInput,
112
+ onKeyDown: () => bumpCaret(),
113
+ onKeyUp: () => bumpCaret(),
114
+ onSelect: () => bumpCaret(),
115
+ onFocus: () => {
116
+ focused.value = true;
117
+ bumpCaret();
118
+ },
119
+ onBlur: () => {
120
+ focused.value = false;
121
+ },
122
+ onClick: () => bumpCaret()
123
+ }
124
+ )
125
+ ] }) })
126
+ }
127
+ );
128
+ };
129
+ var InputOTPGroup = ({ class: className, children, ...rest }) => /* @__PURE__ */ jsx(
130
+ "div",
131
+ {
132
+ role: "group",
133
+ "data-slot": "input-otp-group",
134
+ class: cn("inline-flex items-center gap-1", className),
135
+ ...rest,
136
+ children
137
+ }
138
+ );
139
+ var InputOTPSeparator = ({
140
+ class: className,
141
+ children,
142
+ ...rest
143
+ }) => /* @__PURE__ */ jsx(
144
+ "span",
145
+ {
146
+ role: "presentation",
147
+ "data-slot": "input-otp-separator",
148
+ class: cn("text-muted-foreground select-none", className),
149
+ ...rest,
150
+ children: children ?? "-"
151
+ }
152
+ );
153
+ var InputOTPSlot = ({ index, class: className, ...rest }) => {
154
+ const ctx = useInputOTP();
155
+ const char = ctx.value[index] ?? "";
156
+ const active = !ctx.disabled && ctx.focused && index === ctx.activeIndex;
157
+ return /* @__PURE__ */ jsx(
158
+ "span",
159
+ {
160
+ "data-slot": "input-otp-slot",
161
+ "data-active": active ? "true" : "false",
162
+ class: cn(
163
+ "relative flex size-10 items-center justify-center rounded-md border border-input bg-background font-mono text-sm tabular-nums shadow-xs transition-[box-shadow,border-color]",
164
+ "data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-[3px] data-[active=true]:ring-ring/50",
165
+ ctx.disabled && "opacity-50",
166
+ className
167
+ ),
168
+ ...rest,
169
+ children: char
170
+ }
171
+ );
172
+ };
173
+
174
+ export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS, filterOtpValue };
175
+ //# sourceMappingURL=chunk-QFDTG2ZJ.js.map
176
+ //# sourceMappingURL=chunk-QFDTG2ZJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/input-otp/input-otp-context.tsx","../src/components/input-otp/patterns.ts","../src/components/input-otp/InputOTP.tsx","../src/components/input-otp/InputOTPGroup.tsx","../src/components/input-otp/InputOTPSeparator.tsx","../src/components/input-otp/InputOTPSlot.tsx"],"names":["jsx"],"mappings":"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","file":"chunk-QFDTG2ZJ.js","sourcesContent":["import { createContext } from \"preact\";\nimport { useContext } from \"preact/hooks\";\nexport type InputOTPContextValue = {\n value: string;\n maxLength: number;\n disabled: boolean;\n focused: boolean;\n activeIndex: number;\n inputRef: { current: HTMLInputElement | null };\n};\n\nexport const InputOTPContext = createContext<InputOTPContextValue | null>(null);\n\nexport const useInputOTP = () => {\n const ctx = useContext(InputOTPContext);\n if (!ctx) throw new Error(\"InputOTPSlot and InputOTPGroup must be used within InputOTP\");\n return ctx;\n};\n","/** Digits only (0–9), for PIN / SMS codes. */\nexport const REGEXP_ONLY_DIGITS = /^[0-9]*$/;\n\n/** Letters and digits (ASCII), for alphanumeric OTPs. */\nexport const REGEXP_ONLY_DIGITS_AND_CHARS = /^[a-zA-Z0-9]*$/;\n\nexport const filterOtpValue = (raw: string, pattern?: RegExp): string => {\n if (!pattern) return raw;\n if (pattern === REGEXP_ONLY_DIGITS) return raw.replace(/\\D/g, \"\");\n if (pattern === REGEXP_ONLY_DIGITS_AND_CHARS) return raw.replace(/[^a-zA-Z0-9]/g, \"\");\n let out = \"\";\n for (const ch of raw) {\n const next = out + ch;\n if (pattern.test(next)) out = next;\n }\n return out;\n};\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useMemo, useRef } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { InputOTPContext } from \"./input-otp-context\";\nimport { filterOtpValue, REGEXP_ONLY_DIGITS } from \"./patterns\";\n\nexport type InputOTPProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onInput\" | \"onChange\"> & {\n maxLength?: number;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n onValueChange?: (value: string) => void;\n pattern?: RegExp;\n disabled?: boolean;\n id?: string;\n name?: string;\n autoComplete?: string;\n children?: ComponentChildren;\n};\n\nconst activeSlotIndex = (focused: boolean, caret: number, len: number, max: number): number => {\n if (!focused) return -1;\n if (len >= max) return max - 1;\n return Math.min(Math.max(caret, 0), len, max - 1);\n};\n\nexport const InputOTP = ({\n maxLength = 6,\n value: controlledValue,\n defaultValue = \"\",\n onChange,\n onValueChange,\n pattern,\n disabled = false,\n id,\n name,\n autoComplete = \"one-time-code\",\n class: className,\n children,\n dir,\n \"aria-label\": ariaLabel,\n ...rest\n}: InputOTPProps) => {\n const isControlled = controlledValue !== undefined;\n const internal = useMemo(() => signal(defaultValue), []);\n const focused = useMemo(() => signal(false), []);\n const caretStart = useMemo(() => signal(0), []);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const displayValue = isControlled ? (controlledValue ?? \"\") : internal.value;\n\n const bumpCaret = () => {\n requestAnimationFrame(() => {\n const el = inputRef.current;\n const len = displayValue.length;\n caretStart.value =\n el != null && typeof el.selectionStart === \"number\" ? el.selectionStart : len;\n });\n };\n\n const emit = (next: string) => {\n if (!isControlled) internal.value = next;\n onChange?.(next);\n onValueChange?.(next);\n };\n\n const handleInput = (event: JSX.TargetedEvent<HTMLInputElement>) => {\n let next = filterOtpValue(event.currentTarget.value, pattern);\n if (next.length > maxLength) next = next.slice(0, maxLength);\n emit(next);\n bumpCaret();\n };\n\n const activeIndex = activeSlotIndex(\n focused.value,\n caretStart.value,\n displayValue.length,\n maxLength,\n );\n\n return (\n <InputOTPContext.Provider\n value={{\n value: displayValue,\n maxLength,\n disabled,\n focused: focused.value,\n activeIndex,\n inputRef,\n }}\n >\n <div data-slot=\"input-otp\" dir={dir} class={cn(\"relative inline-flex\", className)} {...rest}>\n <div class=\"relative inline-flex items-center\">\n <div class=\"pointer-events-none flex items-center gap-1\">{children}</div>\n <input\n ref={inputRef}\n id={id}\n name={name}\n type=\"text\"\n autoComplete={autoComplete}\n inputMode={pattern === REGEXP_ONLY_DIGITS ? \"numeric\" : \"text\"}\n disabled={disabled}\n value={displayValue}\n maxLength={maxLength}\n aria-label={ariaLabel ?? \"One-time password\"}\n class={cn(\n \"absolute inset-0 z-20 h-full w-full cursor-default border-0 bg-transparent p-0 opacity-0 outline-none\",\n \"focus-visible:outline-none\",\n )}\n style={{ caretColor: \"transparent\" }}\n onInput={handleInput}\n onKeyDown={() => bumpCaret()}\n onKeyUp={() => bumpCaret()}\n onSelect={() => bumpCaret()}\n onFocus={() => {\n focused.value = true;\n bumpCaret();\n }}\n onBlur={() => {\n focused.value = false;\n }}\n onClick={() => bumpCaret()}\n />\n </div>\n </div>\n </InputOTPContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type InputOTPGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const InputOTPGroup = ({ class: className, children, ...rest }: InputOTPGroupProps) => (\n <div\n role=\"group\"\n data-slot=\"input-otp-group\"\n class={cn(\"inline-flex items-center gap-1\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type InputOTPSeparatorProps = JSX.HTMLAttributes<HTMLSpanElement> & {\n children?: ComponentChildren;\n};\n\nexport const InputOTPSeparator = ({\n class: className,\n children,\n ...rest\n}: InputOTPSeparatorProps) => (\n <span\n role=\"presentation\"\n data-slot=\"input-otp-separator\"\n class={cn(\"text-muted-foreground select-none\", className)}\n {...rest}\n >\n {children ?? \"-\"}\n </span>\n);\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useInputOTP } from \"./input-otp-context\";\n\nexport type InputOTPSlotProps = JSX.HTMLAttributes<HTMLSpanElement> & {\n index: number;\n};\n\nexport const InputOTPSlot = ({ index, class: className, ...rest }: InputOTPSlotProps) => {\n const ctx = useInputOTP();\n const char = ctx.value[index] ?? \"\";\n const active = !ctx.disabled && ctx.focused && index === ctx.activeIndex;\n\n return (\n <span\n data-slot=\"input-otp-slot\"\n data-active={active ? \"true\" : \"false\"}\n class={cn(\n \"relative flex size-10 items-center justify-center rounded-md border border-input bg-background font-mono text-sm tabular-nums shadow-xs transition-[box-shadow,border-color]\",\n \"data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-[3px] data-[active=true]:ring-ring/50\",\n ctx.disabled && \"opacity-50\",\n className,\n )}\n {...rest}\n >\n {char}\n </span>\n );\n};\n"]}
@@ -0,0 +1,165 @@
1
+ import { Textarea } from './chunk-XGFJJ2YB.js';
2
+ import { Input } from './chunk-6RASPU5N.js';
3
+ import { button } from './chunk-5FBD2NTR.js';
4
+ import { cn } from './chunk-MS2ZNYCJ.js';
5
+ import { tv } from 'tailwind-variants';
6
+ import { jsx } from 'preact/jsx-runtime';
7
+
8
+ var inputGroup = tv({
9
+ base: [
10
+ "border-input dark:bg-input/30 group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border transition-colors outline-none",
11
+ "has-[[data-slot=input-group-control]:focus-visible]:border-outline has-[[data-slot=input-group-control]:focus-visible]:ring-outline/50 has-[[data-slot=input-group-control]:focus-visible]:ring-3",
12
+ "has-[[data-slot][aria-invalid=true]]:border-error has-[[data-slot][aria-invalid=true]]:ring-error/40 has-[[data-slot][aria-invalid=true]]:ring-3",
13
+ "has-disabled:bg-input/50 has-disabled:opacity-50",
14
+ "has-[>textarea]:h-auto",
15
+ "has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col",
16
+ "has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col",
17
+ "has-[>[data-align=block-end]]:[&>[data-slot=input-group-control]]:pt-3",
18
+ "has-[>[data-align=block-start]]:[&>[data-slot=input-group-control]]:pb-3",
19
+ "has-[>[data-align=inline-end]]:[&>[data-slot=input-group-control]]:pr-1.5",
20
+ "has-[>[data-align=inline-start]]:[&>[data-slot=input-group-control]]:pl-1.5"
21
+ ]
22
+ });
23
+ var InputGroup = ({ class: className, children, ...rest }) => /* @__PURE__ */ jsx(
24
+ "div",
25
+ {
26
+ role: "group",
27
+ class: inputGroup({ class: className }),
28
+ "data-slot": "input-group",
29
+ ...rest,
30
+ children
31
+ }
32
+ );
33
+ var inputGroupAddon = tv({
34
+ base: [
35
+ "text-muted-foreground flex cursor-text items-center justify-center gap-2 text-sm font-medium select-none",
36
+ "group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-xs [&>svg:not([class*='size-'])]:size-4"
37
+ ],
38
+ variants: {
39
+ align: {
40
+ "inline-start": "order-first pl-2.5 has-[>button]:ml-[-0.3rem]",
41
+ "inline-end": "order-last pr-2.5 has-[>button]:mr-[-0.3rem]",
42
+ "block-start": "order-first w-full justify-start px-3 pt-2 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-2.5",
43
+ "block-end": "order-last w-full justify-start px-3 pb-2 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-2.5"
44
+ }
45
+ },
46
+ defaultVariants: {
47
+ align: "inline-start"
48
+ }
49
+ });
50
+ var InputGroupAddon = ({
51
+ align,
52
+ class: className,
53
+ children,
54
+ onClick,
55
+ ...rest
56
+ }) => /* @__PURE__ */ jsx(
57
+ "div",
58
+ {
59
+ role: "group",
60
+ "data-align": align,
61
+ class: inputGroupAddon({ align, class: className }),
62
+ "data-slot": "input-group-addon",
63
+ onClick: (event) => {
64
+ const target = event.target;
65
+ if (target?.closest("button")) {
66
+ onClick?.(event);
67
+ return;
68
+ }
69
+ const root = event.currentTarget.parentElement;
70
+ const control = root?.querySelector("input, textarea");
71
+ control?.focus();
72
+ onClick?.(event);
73
+ },
74
+ ...rest,
75
+ children
76
+ }
77
+ );
78
+ var inputGroupButton = tv({
79
+ base: "gap-2 shadow-none",
80
+ variants: {
81
+ size: {
82
+ sm: "h-8 px-2",
83
+ "icon-xs": "size-6 rounded-full p-0 has-[>svg]:p-0",
84
+ "icon-sm": "size-8 rounded-full p-0 has-[>svg]:p-0"
85
+ }
86
+ },
87
+ defaultVariants: {
88
+ size: "sm"
89
+ }
90
+ });
91
+ var InputGroupButton = ({
92
+ type = "button",
93
+ variant = "ghost",
94
+ size,
95
+ class: className,
96
+ children,
97
+ ...rest
98
+ }) => /* @__PURE__ */ jsx(
99
+ "button",
100
+ {
101
+ type,
102
+ class: `${button({ variant, size, class: className })} ${inputGroupButton({ size })}`,
103
+ "data-slot": "input-group-button",
104
+ ...rest,
105
+ children
106
+ }
107
+ );
108
+ var inputGroupInput = tv({
109
+ base: [
110
+ "h-full flex-1 rounded-none border-0 shadow-none ring-0 outline-none focus-visible:ring-0",
111
+ "disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent"
112
+ ]
113
+ });
114
+ var InputGroupInput = ({ class: className, ...rest }) => /* @__PURE__ */ jsx(
115
+ Input,
116
+ {
117
+ class: inputGroupInput({ class: className }),
118
+ "data-slot": "input-group-control",
119
+ ...rest
120
+ }
121
+ );
122
+ var InputGroupText = ({ class: className, children, ...rest }) => /* @__PURE__ */ jsx(
123
+ "span",
124
+ {
125
+ "data-slot": "input-group-text",
126
+ class: cn("text-muted-foreground text-sm", className),
127
+ ...rest,
128
+ children
129
+ }
130
+ );
131
+ var inputGroupTextarea = tv({
132
+ base: [
133
+ "h-full flex-1 resize-none rounded-none border-0 shadow-none ring-0 outline-none focus-visible:ring-0",
134
+ "disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent"
135
+ ]
136
+ });
137
+ var InputGroupTextarea = ({ class: className, ...rest }) => /* @__PURE__ */ jsx(
138
+ Textarea,
139
+ {
140
+ class: inputGroupTextarea({ class: className }),
141
+ "data-slot": "input-group-control",
142
+ ...rest
143
+ }
144
+ );
145
+
146
+ // src/components/input-group/index.ts
147
+ var InputGroupVariants = {
148
+ inputGroup,
149
+ inputGroupAddon,
150
+ inputGroupButton,
151
+ inputGroupInput,
152
+ inputGroupTextarea
153
+ };
154
+ var input_group_default = {
155
+ Root: InputGroup,
156
+ Addon: InputGroupAddon,
157
+ Button: InputGroupButton,
158
+ Input: InputGroupInput,
159
+ Text: InputGroupText,
160
+ Textarea: InputGroupTextarea
161
+ };
162
+
163
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputGroupVariants, input_group_default };
164
+ //# sourceMappingURL=chunk-QZX3RFIC.js.map
165
+ //# sourceMappingURL=chunk-QZX3RFIC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/input-group/InputGroup.tsx","../src/components/input-group/InputGroupAddon.tsx","../src/components/input-group/InputGroupButton.tsx","../src/components/input-group/InputGroupInput.tsx","../src/components/input-group/InputGroupText.tsx","../src/components/input-group/InputGroupTextarea.tsx","../src/components/input-group/index.ts"],"names":["tv","jsx"],"mappings":"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","file":"chunk-QZX3RFIC.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\n\nexport const inputGroup = tv({\n base: [\n \"border-input dark:bg-input/30 group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border transition-colors outline-none\",\n \"has-[[data-slot=input-group-control]:focus-visible]:border-outline has-[[data-slot=input-group-control]:focus-visible]:ring-outline/50 has-[[data-slot=input-group-control]:focus-visible]:ring-3\",\n \"has-[[data-slot][aria-invalid=true]]:border-error has-[[data-slot][aria-invalid=true]]:ring-error/40 has-[[data-slot][aria-invalid=true]]:ring-3\",\n \"has-disabled:bg-input/50 has-disabled:opacity-50\",\n \"has-[>textarea]:h-auto\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col\",\n \"has-[>[data-align=block-end]]:[&>[data-slot=input-group-control]]:pt-3\",\n \"has-[>[data-align=block-start]]:[&>[data-slot=input-group-control]]:pb-3\",\n \"has-[>[data-align=inline-end]]:[&>[data-slot=input-group-control]]:pr-1.5\",\n \"has-[>[data-align=inline-start]]:[&>[data-slot=input-group-control]]:pl-1.5\",\n ],\n});\n\nexport type InputGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const InputGroup = ({ class: className, children, ...rest }: InputGroupProps) => (\n <div\n role=\"group\"\n class={inputGroup({ class: className as string | undefined })}\n data-slot=\"input-group\"\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nexport const inputGroupAddon = tv({\n base: [\n \"text-muted-foreground flex cursor-text items-center justify-center gap-2 text-sm font-medium select-none\",\n \"group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-xs [&>svg:not([class*='size-'])]:size-4\",\n ],\n variants: {\n align: {\n \"inline-start\": \"order-first pl-2.5 has-[>button]:ml-[-0.3rem]\",\n \"inline-end\": \"order-last pr-2.5 has-[>button]:mr-[-0.3rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-3 pt-2 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-2.5\",\n \"block-end\":\n \"order-last w-full justify-start px-3 pb-2 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-2.5\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n});\n\nexport type InputGroupAddonProps = JSX.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof inputGroupAddon> & {\n children?: ComponentChildren;\n };\n\nexport const InputGroupAddon = ({\n align,\n class: className,\n children,\n onClick,\n ...rest\n}: InputGroupAddonProps) => (\n <div\n role=\"group\"\n data-align={align}\n class={inputGroupAddon({ align, class: className as string | undefined })}\n data-slot=\"input-group-addon\"\n onClick={(event) => {\n const target = event.target as HTMLElement | null;\n if (target?.closest(\"button\")) {\n onClick?.(event);\n return;\n }\n\n const root = event.currentTarget.parentElement;\n const control = root?.querySelector(\"input, textarea\") as\n | HTMLInputElement\n | HTMLTextAreaElement\n | null;\n control?.focus();\n onClick?.(event);\n }}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { button } from \"../button/Button\";\n\nexport const inputGroupButton = tv({\n base: \"gap-2 shadow-none\",\n variants: {\n size: {\n sm: \"h-8 px-2\",\n \"icon-xs\": \"size-6 rounded-full p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 rounded-full p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"sm\",\n },\n});\n\nexport type InputGroupButtonProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> &\n VariantProps<typeof button> &\n VariantProps<typeof inputGroupButton> & {\n children?: ComponentChildren;\n };\n\nexport const InputGroupButton = ({\n type = \"button\",\n variant = \"ghost\",\n size,\n class: className,\n children,\n ...rest\n}: InputGroupButtonProps) => (\n <button\n type={type}\n class={`${button({ variant, size, class: className as string | undefined })} ${inputGroupButton({ size })}`}\n data-slot=\"input-group-button\"\n {...rest}\n >\n {children}\n </button>\n);\n","import { tv } from \"tailwind-variants\";\nimport { Input, type InputProps } from \"../input/Input\";\n\nexport const inputGroupInput = tv({\n base: [\n \"h-full flex-1 rounded-none border-0 shadow-none ring-0 outline-none focus-visible:ring-0\",\n \"disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n ],\n});\n\nexport type InputGroupInputProps = InputProps;\n\nexport const InputGroupInput = ({ class: className, ...rest }: InputGroupInputProps) => (\n <Input\n class={inputGroupInput({ class: className as string | undefined })}\n data-slot=\"input-group-control\"\n {...rest}\n />\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type InputGroupTextProps = JSX.HTMLAttributes<HTMLSpanElement> & {\n children?: ComponentChildren;\n};\n\nexport const InputGroupText = ({ class: className, children, ...rest }: InputGroupTextProps) => (\n <span\n data-slot=\"input-group-text\"\n class={cn(\"text-muted-foreground text-sm\", className)}\n {...rest}\n >\n {children}\n </span>\n);\n","import { tv } from \"tailwind-variants\";\nimport { Textarea, type TextareaProps } from \"../textarea/Textarea\";\n\nexport const inputGroupTextarea = tv({\n base: [\n \"h-full flex-1 resize-none rounded-none border-0 shadow-none ring-0 outline-none focus-visible:ring-0\",\n \"disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n ],\n});\n\nexport type InputGroupTextareaProps = TextareaProps;\n\nexport const InputGroupTextarea = ({ class: className, ...rest }: InputGroupTextareaProps) => (\n <Textarea\n class={inputGroupTextarea({ class: className as string | undefined })}\n data-slot=\"input-group-control\"\n {...rest}\n />\n);\n","import { InputGroup, inputGroup } from \"./InputGroup\";\nimport { InputGroupAddon, inputGroupAddon } from \"./InputGroupAddon\";\nimport { InputGroupButton, inputGroupButton } from \"./InputGroupButton\";\nimport { InputGroupInput, inputGroupInput } from \"./InputGroupInput\";\nimport { InputGroupText } from \"./InputGroupText\";\nimport { InputGroupTextarea, inputGroupTextarea } from \"./InputGroupTextarea\";\n\nconst InputGroupVariants = {\n inputGroup,\n inputGroupAddon,\n inputGroupButton,\n inputGroupInput,\n inputGroupTextarea,\n};\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n InputGroupVariants,\n};\n\nexport default {\n Root: InputGroup,\n Addon: InputGroupAddon,\n Button: InputGroupButton,\n Input: InputGroupInput,\n Text: InputGroupText,\n Textarea: InputGroupTextarea,\n};\n"]}