@kamod-ch/ui 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +12 -0
  3. package/dist/{Accordion-D1PiNspd.d.ts → Accordion-BiCBkB8o.d.ts} +7 -1
  4. package/dist/{AlertDialog-GadhKjPC.d.ts → AlertDialog-CZ2taZg4.d.ts} +3 -3
  5. package/dist/Button-OI3VvO-J.d.ts +84 -0
  6. package/dist/{Collapsible-CW1hQwqV.d.ts → Collapsible-BdQqvk35.d.ts} +6 -1
  7. package/dist/{ComboboxValue-BGfXgtZt.d.ts → ComboboxValue-Cq6zoDkt.d.ts} +1 -1
  8. package/dist/{Dialog-BOIteLfe.d.ts → Dialog-DdD1sMwk.d.ts} +12 -1
  9. package/dist/{DialogContent-cQHSRQdT.d.ts → DialogContent-YWzwWdSv.d.ts} +6 -1
  10. package/dist/{Drawer-CdjXZxxK.d.ts → Drawer-8xfn9KLf.d.ts} +2 -2
  11. package/dist/{Dropdown-CVbWVKok.d.ts → Dropdown-CzDJJgXQ.d.ts} +32 -27
  12. package/dist/{FieldTitle-aSgThW-B.d.ts → FieldTitle-hsI0Y6Zm.d.ts} +13 -13
  13. package/dist/{HoverCard-aVEEtkyO.d.ts → HoverCard-CBBr-tT9.d.ts} +14 -14
  14. package/dist/{Input-Cem05el9.d.ts → Input-C_X0Xpn2.d.ts} +11 -11
  15. package/dist/{PopoverTrigger-CH_Kx2mn.d.ts → PopoverTrigger-CIPAh0h0.d.ts} +14 -14
  16. package/dist/{RadioGroup-BaElzLwa.d.ts → RadioGroup-BDF3NaXQ.d.ts} +8 -8
  17. package/dist/{Sheet-DZ-p-aHY.d.ts → Sheet-DVt5iTiK.d.ts} +1 -1
  18. package/dist/{SidebarProvider-Bx7-BdQn.d.ts → SidebarProvider-CoVCItNd.d.ts} +18 -18
  19. package/dist/{Switch-CTTkNdqF.d.ts → Switch-BcNJFeRY.d.ts} +8 -8
  20. package/dist/{Tabs-CR-thcs6.d.ts → Tabs-CrXH3YED.d.ts} +18 -9
  21. package/dist/{Textarea-DbKkduOG.d.ts → Textarea-CST17pYW.d.ts} +11 -11
  22. package/dist/Toggle-BgvkYUI8.d.ts +49 -0
  23. package/dist/{ToggleGroup-UeYHzQe7.d.ts → ToggleGroup-CqYICGsS.d.ts} +42 -42
  24. package/dist/Typography-Df9IVmw2.d.ts +64 -0
  25. package/dist/{chunk-ZM67EKZC.js → chunk-22G3DW5M.js} +4 -4
  26. package/dist/{chunk-ZM67EKZC.js.map → chunk-22G3DW5M.js.map} +1 -1
  27. package/dist/{chunk-BDK7CDEI.js → chunk-2F3PWEDR.js} +3 -3
  28. package/dist/{chunk-BDK7CDEI.js.map → chunk-2F3PWEDR.js.map} +1 -1
  29. package/dist/{chunk-ZHAGKFSO.js → chunk-2SPOI3MX.js} +3 -3
  30. package/dist/{chunk-ZHAGKFSO.js.map → chunk-2SPOI3MX.js.map} +1 -1
  31. package/dist/chunk-2UTJHQTS.js +162 -0
  32. package/dist/chunk-2UTJHQTS.js.map +1 -0
  33. package/dist/{chunk-NKKMM6CK.js → chunk-3AFRSB5R.js} +3 -3
  34. package/dist/{chunk-NKKMM6CK.js.map → chunk-3AFRSB5R.js.map} +1 -1
  35. package/dist/{chunk-LCMPFPBN.js → chunk-3ETRJPBL.js} +3 -3
  36. package/dist/{chunk-LCMPFPBN.js.map → chunk-3ETRJPBL.js.map} +1 -1
  37. package/dist/{chunk-WAPRVVDQ.js → chunk-3HBKDY64.js} +3 -3
  38. package/dist/{chunk-WAPRVVDQ.js.map → chunk-3HBKDY64.js.map} +1 -1
  39. package/dist/{chunk-PPYJQNE5.js → chunk-3XMFQKWB.js} +9 -5
  40. package/dist/chunk-3XMFQKWB.js.map +1 -0
  41. package/dist/{chunk-HCTZJYHK.js → chunk-4SQKSVBH.js} +6 -6
  42. package/dist/chunk-4SQKSVBH.js.map +1 -0
  43. package/dist/{chunk-ZVAW22GX.js → chunk-4ZFKDNSK.js} +3 -3
  44. package/dist/{chunk-ZVAW22GX.js.map → chunk-4ZFKDNSK.js.map} +1 -1
  45. package/dist/{chunk-IJ4ZRIR4.js → chunk-53FZEAOJ.js} +5 -5
  46. package/dist/{chunk-IJ4ZRIR4.js.map → chunk-53FZEAOJ.js.map} +1 -1
  47. package/dist/{chunk-BYG2ULS3.js → chunk-5ATODZ6L.js} +5 -7
  48. package/dist/chunk-5ATODZ6L.js.map +1 -0
  49. package/dist/{chunk-TXKPDNRD.js → chunk-5I7ULBDP.js} +3 -3
  50. package/dist/{chunk-TXKPDNRD.js.map → chunk-5I7ULBDP.js.map} +1 -1
  51. package/dist/{chunk-UEXTD7ZB.js → chunk-6HFTTHSY.js} +3 -3
  52. package/dist/{chunk-UEXTD7ZB.js.map → chunk-6HFTTHSY.js.map} +1 -1
  53. package/dist/{chunk-6RASPU5N.js → chunk-7LWAWZHM.js} +4 -11
  54. package/dist/chunk-7LWAWZHM.js.map +1 -0
  55. package/dist/{chunk-RHNI5UQO.js → chunk-A6ZZZFZN.js} +4 -4
  56. package/dist/{chunk-RHNI5UQO.js.map → chunk-A6ZZZFZN.js.map} +1 -1
  57. package/dist/{chunk-V63YIVKJ.js → chunk-APZXMU2X.js} +4 -4
  58. package/dist/{chunk-V63YIVKJ.js.map → chunk-APZXMU2X.js.map} +1 -1
  59. package/dist/{chunk-6FYSVMH7.js → chunk-AYLEWD77.js} +3 -3
  60. package/dist/{chunk-6FYSVMH7.js.map → chunk-AYLEWD77.js.map} +1 -1
  61. package/dist/{chunk-D3DQ4ICC.js → chunk-BZMD4EZC.js} +4 -11
  62. package/dist/chunk-BZMD4EZC.js.map +1 -0
  63. package/dist/{chunk-PU5J5EPY.js → chunk-C7TARE5T.js} +5 -5
  64. package/dist/{chunk-PU5J5EPY.js.map → chunk-C7TARE5T.js.map} +1 -1
  65. package/dist/{chunk-5FBD2NTR.js → chunk-DDRX6NNW.js} +6 -9
  66. package/dist/chunk-DDRX6NNW.js.map +1 -0
  67. package/dist/{chunk-HHLQYMPT.js → chunk-DUTKHOH3.js} +4 -4
  68. package/dist/{chunk-HHLQYMPT.js.map → chunk-DUTKHOH3.js.map} +1 -1
  69. package/dist/{chunk-24QD2FTA.js → chunk-EBXTNL52.js} +12 -15
  70. package/dist/chunk-EBXTNL52.js.map +1 -0
  71. package/dist/{chunk-STRBBF45.js → chunk-FOQ32NEP.js} +5 -5
  72. package/dist/chunk-FOQ32NEP.js.map +1 -0
  73. package/dist/{chunk-UIA74JVN.js → chunk-FXG53XY2.js} +5 -5
  74. package/dist/chunk-FXG53XY2.js.map +1 -0
  75. package/dist/{chunk-2KY7P27I.js → chunk-G7LTWXRN.js} +3 -3
  76. package/dist/{chunk-2KY7P27I.js.map → chunk-G7LTWXRN.js.map} +1 -1
  77. package/dist/{chunk-6BK3PIRX.js → chunk-GD3VBO44.js} +6 -6
  78. package/dist/{chunk-6BK3PIRX.js.map → chunk-GD3VBO44.js.map} +1 -1
  79. package/dist/{chunk-MD6HHORY.js → chunk-GPRE2VWB.js} +3 -3
  80. package/dist/{chunk-MD6HHORY.js.map → chunk-GPRE2VWB.js.map} +1 -1
  81. package/dist/{chunk-QZX3RFIC.js → chunk-HJF5AV4L.js} +11 -34
  82. package/dist/chunk-HJF5AV4L.js.map +1 -0
  83. package/dist/{chunk-QFDTG2ZJ.js → chunk-HWPROYKB.js} +3 -3
  84. package/dist/{chunk-QFDTG2ZJ.js.map → chunk-HWPROYKB.js.map} +1 -1
  85. package/dist/chunk-ISISDJ3Z.js +205 -0
  86. package/dist/chunk-ISISDJ3Z.js.map +1 -0
  87. package/dist/{chunk-3LIT5GWF.js → chunk-IW43BO47.js} +57 -19
  88. package/dist/chunk-IW43BO47.js.map +1 -0
  89. package/dist/{chunk-CLEC2RMU.js → chunk-JKEILBHG.js} +3 -3
  90. package/dist/{chunk-CLEC2RMU.js.map → chunk-JKEILBHG.js.map} +1 -1
  91. package/dist/{chunk-TFLSEEM4.js → chunk-KCN3GXRK.js} +3 -3
  92. package/dist/{chunk-TFLSEEM4.js.map → chunk-KCN3GXRK.js.map} +1 -1
  93. package/dist/{chunk-EMUPVA2F.js → chunk-KHV3WV6T.js} +4 -4
  94. package/dist/{chunk-EMUPVA2F.js.map → chunk-KHV3WV6T.js.map} +1 -1
  95. package/dist/{chunk-G6TV6TF7.js → chunk-KJ5PYCJG.js} +4 -12
  96. package/dist/chunk-KJ5PYCJG.js.map +1 -0
  97. package/dist/{chunk-5KS2VSX2.js → chunk-LAM4GIME.js} +4 -4
  98. package/dist/chunk-LAM4GIME.js.map +1 -0
  99. package/dist/{chunk-OCLVMKVC.js → chunk-MDXTENZ4.js} +8 -31
  100. package/dist/chunk-MDXTENZ4.js.map +1 -0
  101. package/dist/{chunk-CP55TVOV.js → chunk-MJUKNUFV.js} +3 -3
  102. package/dist/{chunk-CP55TVOV.js.map → chunk-MJUKNUFV.js.map} +1 -1
  103. package/dist/{chunk-GGTDJEE2.js → chunk-MTNLY7AY.js} +3 -3
  104. package/dist/{chunk-GGTDJEE2.js.map → chunk-MTNLY7AY.js.map} +1 -1
  105. package/dist/{chunk-67J4KBOW.js → chunk-NBIBBLP6.js} +10 -52
  106. package/dist/chunk-NBIBBLP6.js.map +1 -0
  107. package/dist/chunk-NBP4J2QF.js +200 -0
  108. package/dist/chunk-NBP4J2QF.js.map +1 -0
  109. package/dist/{chunk-NGKQBNZ5.js → chunk-NJYJCMKY.js} +3 -3
  110. package/dist/{chunk-NGKQBNZ5.js.map → chunk-NJYJCMKY.js.map} +1 -1
  111. package/dist/{chunk-COPT6I2D.js → chunk-NSEY5IC6.js} +9 -10
  112. package/dist/chunk-NSEY5IC6.js.map +1 -0
  113. package/dist/{chunk-UARVH66B.js → chunk-O4PHGLXF.js} +5 -5
  114. package/dist/{chunk-UARVH66B.js.map → chunk-O4PHGLXF.js.map} +1 -1
  115. package/dist/{chunk-J4DMQV64.js → chunk-OCZC4PDM.js} +3 -3
  116. package/dist/{chunk-J4DMQV64.js.map → chunk-OCZC4PDM.js.map} +1 -1
  117. package/dist/{chunk-IQH3XSOI.js → chunk-ODYHA3O5.js} +4 -4
  118. package/dist/{chunk-IQH3XSOI.js.map → chunk-ODYHA3O5.js.map} +1 -1
  119. package/dist/chunk-OJEZZVZB.js +9 -0
  120. package/dist/{chunk-CMBERB5B.js.map → chunk-OJEZZVZB.js.map} +1 -1
  121. package/dist/{chunk-7IOAIEIA.js → chunk-OTXP2QJ7.js} +6 -6
  122. package/dist/{chunk-7IOAIEIA.js.map → chunk-OTXP2QJ7.js.map} +1 -1
  123. package/dist/{chunk-JSHUWI3C.js → chunk-OUVUK3E7.js} +9 -9
  124. package/dist/chunk-OUVUK3E7.js.map +1 -0
  125. package/dist/{chunk-3KB54OYF.js → chunk-P6ICWO5B.js} +3 -3
  126. package/dist/{chunk-3KB54OYF.js.map → chunk-P6ICWO5B.js.map} +1 -1
  127. package/dist/{chunk-GIU6BZTW.js → chunk-P7PPE4P5.js} +8 -11
  128. package/dist/chunk-P7PPE4P5.js.map +1 -0
  129. package/dist/{chunk-XGFJJ2YB.js → chunk-PVQUVEZV.js} +4 -11
  130. package/dist/chunk-PVQUVEZV.js.map +1 -0
  131. package/dist/{chunk-LCWXIQKA.js → chunk-Q3RL7TOY.js} +4 -4
  132. package/dist/chunk-Q3RL7TOY.js.map +1 -0
  133. package/dist/{chunk-5Q4RBIMZ.js → chunk-Q5B6ROW6.js} +3 -3
  134. package/dist/{chunk-5Q4RBIMZ.js.map → chunk-Q5B6ROW6.js.map} +1 -1
  135. package/dist/{chunk-262EK2XT.js → chunk-Q7ZDP6DS.js} +9 -7
  136. package/dist/chunk-Q7ZDP6DS.js.map +1 -0
  137. package/dist/{chunk-4IBTERDG.js → chunk-QFTOABOJ.js} +3 -3
  138. package/dist/{chunk-4IBTERDG.js.map → chunk-QFTOABOJ.js.map} +1 -1
  139. package/dist/{chunk-JURNPBSW.js → chunk-QINEFXUA.js} +3 -3
  140. package/dist/{chunk-JURNPBSW.js.map → chunk-QINEFXUA.js.map} +1 -1
  141. package/dist/{chunk-FIOKWIJP.js → chunk-QWSD34JA.js} +4 -4
  142. package/dist/{chunk-FIOKWIJP.js.map → chunk-QWSD34JA.js.map} +1 -1
  143. package/dist/{chunk-Q5IUIA6B.js → chunk-RLBAA7WW.js} +3 -3
  144. package/dist/{chunk-Q5IUIA6B.js.map → chunk-RLBAA7WW.js.map} +1 -1
  145. package/dist/{chunk-MJQ6R345.js → chunk-SEC7UN45.js} +5 -5
  146. package/dist/chunk-SEC7UN45.js.map +1 -0
  147. package/dist/chunk-SIA46B4Q.js +9 -0
  148. package/dist/{chunk-RTIFG4XT.js.map → chunk-SIA46B4Q.js.map} +1 -1
  149. package/dist/{chunk-X4HPHMYW.js → chunk-TMPADU74.js} +4 -4
  150. package/dist/{chunk-X4HPHMYW.js.map → chunk-TMPADU74.js.map} +1 -1
  151. package/dist/{chunk-YTHUHPE5.js → chunk-USPWL4KC.js} +3 -3
  152. package/dist/{chunk-YTHUHPE5.js.map → chunk-USPWL4KC.js.map} +1 -1
  153. package/dist/{chunk-U2UNWXBC.js → chunk-VEQ7X2PO.js} +7 -6
  154. package/dist/chunk-VEQ7X2PO.js.map +1 -0
  155. package/dist/{chunk-YZLPO4B2.js → chunk-WRXXU5F6.js} +4 -11
  156. package/dist/chunk-WRXXU5F6.js.map +1 -0
  157. package/dist/{chunk-XNYAQZIB.js → chunk-X4B6I3M4.js} +4 -4
  158. package/dist/{chunk-XNYAQZIB.js.map → chunk-X4B6I3M4.js.map} +1 -1
  159. package/dist/{chunk-JNF7FDJO.js → chunk-XCYEWILH.js} +4 -4
  160. package/dist/{chunk-JNF7FDJO.js.map → chunk-XCYEWILH.js.map} +1 -1
  161. package/dist/{chunk-V2MG5Y5F.js → chunk-XGVQXRLA.js} +4 -4
  162. package/dist/chunk-XGVQXRLA.js.map +1 -0
  163. package/dist/chunk-XIANSPQO.js +11 -0
  164. package/dist/chunk-XIANSPQO.js.map +1 -0
  165. package/dist/{chunk-UNWEH4Z6.js → chunk-XOMPJYYA.js} +4 -4
  166. package/dist/chunk-XOMPJYYA.js.map +1 -0
  167. package/dist/{chunk-UXWUFNXY.js → chunk-XSYSV3R3.js} +3 -3
  168. package/dist/{chunk-UXWUFNXY.js.map → chunk-XSYSV3R3.js.map} +1 -1
  169. package/dist/{chunk-ERBGZZ2U.js → chunk-XZYJUJED.js} +4 -4
  170. package/dist/chunk-XZYJUJED.js.map +1 -0
  171. package/dist/{chunk-PFV7YIEP.js → chunk-Z4JNYSV3.js} +4 -4
  172. package/dist/{chunk-PFV7YIEP.js.map → chunk-Z4JNYSV3.js.map} +1 -1
  173. package/dist/{chunk-4V3WHQJE.js → chunk-ZLSCHWTN.js} +4 -4
  174. package/dist/{chunk-4V3WHQJE.js.map → chunk-ZLSCHWTN.js.map} +1 -1
  175. package/dist/chunk-ZQ2WOX4X.js +29 -0
  176. package/dist/chunk-ZQ2WOX4X.js.map +1 -0
  177. package/dist/{chunk-NILG56Z7.js → chunk-ZROHNZDC.js} +4 -4
  178. package/dist/{chunk-NILG56Z7.js.map → chunk-ZROHNZDC.js.map} +1 -1
  179. package/dist/{chunk-PGOCR4LG.js → chunk-ZVYCUG4N.js} +4 -4
  180. package/dist/chunk-ZVYCUG4N.js.map +1 -0
  181. package/dist/components/accordion/index.d.ts +2 -2
  182. package/dist/components/accordion/index.js +3 -2
  183. package/dist/components/alert/index.d.ts +26 -26
  184. package/dist/components/alert/index.js +2 -2
  185. package/dist/components/alert-dialog/index.d.ts +6 -5
  186. package/dist/components/alert-dialog/index.js +6 -6
  187. package/dist/components/aspect-ratio/index.js +2 -2
  188. package/dist/components/avatar/index.d.ts +11 -11
  189. package/dist/components/avatar/index.js +2 -2
  190. package/dist/components/badge/index.d.ts +112 -112
  191. package/dist/components/badge/index.js +2 -2
  192. package/dist/components/breadcrumb/index.js +2 -2
  193. package/dist/components/button/index.d.ts +51 -51
  194. package/dist/components/button/index.js +3 -3
  195. package/dist/components/button-group/index.js +2 -2
  196. package/dist/components/calendar/index.js +10 -10
  197. package/dist/components/card/index.d.ts +22 -22
  198. package/dist/components/card/index.js +2 -1
  199. package/dist/components/carousel/index.js +3 -3
  200. package/dist/components/chart/index.js +2 -2
  201. package/dist/components/checkbox/index.js +2 -2
  202. package/dist/components/collapsible/index.d.ts +2 -2
  203. package/dist/components/collapsible/index.js +3 -2
  204. package/dist/components/combobox/index.d.ts +2 -2
  205. package/dist/components/combobox/index.js +5 -5
  206. package/dist/components/command/index.js +7 -7
  207. package/dist/components/context-menu/index.d.ts +11 -11
  208. package/dist/components/context-menu/index.js +3 -3
  209. package/dist/components/data-table/index.js +3 -3
  210. package/dist/components/date-picker/index.js +6 -6
  211. package/dist/components/dialog/index.d.ts +26 -5
  212. package/dist/components/dialog/index.js +5 -5
  213. package/dist/components/direction/index.js +2 -2
  214. package/dist/components/drawer/index.d.ts +5 -4
  215. package/dist/components/drawer/index.js +5 -5
  216. package/dist/components/dropdown/index.d.ts +3 -3
  217. package/dist/components/dropdown/index.js +3 -3
  218. package/dist/components/dropzone/index.js +3 -3
  219. package/dist/components/empty/index.d.ts +6 -6
  220. package/dist/components/empty/index.js +2 -2
  221. package/dist/components/field/index.d.ts +2 -2
  222. package/dist/components/field/index.js +4 -4
  223. package/dist/components/hover-card/index.d.ts +2 -2
  224. package/dist/components/hover-card/index.js +2 -1
  225. package/dist/components/image/index.js +2 -2
  226. package/dist/components/input/index.d.ts +12 -12
  227. package/dist/components/input/index.js +3 -2
  228. package/dist/components/input-group/index.d.ts +56 -56
  229. package/dist/components/input-group/index.js +5 -5
  230. package/dist/components/input-otp/index.js +2 -2
  231. package/dist/components/item/index.d.ts +31 -31
  232. package/dist/components/item/index.js +3 -3
  233. package/dist/components/kbd/index.d.ts +8 -8
  234. package/dist/components/kbd/index.js +2 -2
  235. package/dist/components/label/index.d.ts +22 -22
  236. package/dist/components/label/index.js +3 -2
  237. package/dist/components/locale-segment-group/index.js +2 -2
  238. package/dist/components/menubar/index.js +3 -3
  239. package/dist/components/native-select/index.d.ts +34 -34
  240. package/dist/components/native-select/index.js +2 -1
  241. package/dist/components/navigation-menu/index.d.ts +2 -2
  242. package/dist/components/navigation-menu/index.js +3 -3
  243. package/dist/components/pagination/index.d.ts +1 -1
  244. package/dist/components/pagination/index.js +3 -3
  245. package/dist/components/popover/index.d.ts +22 -22
  246. package/dist/components/popover/index.js +4 -3
  247. package/dist/components/progress/index.js +2 -2
  248. package/dist/components/prose/index.js +2 -2
  249. package/dist/components/radio-group/index.d.ts +2 -2
  250. package/dist/components/radio-group/index.js +3 -3
  251. package/dist/components/scroll-area/index.js +2 -2
  252. package/dist/components/select/index.js +3 -3
  253. package/dist/components/selectable-card/index.js +3 -3
  254. package/dist/components/separator/index.d.ts +8 -8
  255. package/dist/components/separator/index.js +3 -2
  256. package/dist/components/sheet/index.d.ts +5 -4
  257. package/dist/components/sheet/index.js +5 -5
  258. package/dist/components/sidebar/index.d.ts +3 -3
  259. package/dist/components/sidebar/index.js +10 -10
  260. package/dist/components/skeleton/index.d.ts +22 -22
  261. package/dist/components/skeleton/index.js +2 -1
  262. package/dist/components/slider/index.js +2 -2
  263. package/dist/components/spinner/index.js +2 -2
  264. package/dist/components/switch/index.d.ts +1 -1
  265. package/dist/components/switch/index.js +2 -2
  266. package/dist/components/table/index.js +3 -3
  267. package/dist/components/tabs/index.d.ts +2 -2
  268. package/dist/components/tabs/index.js +3 -3
  269. package/dist/components/textarea/index.d.ts +12 -12
  270. package/dist/components/textarea/index.js +3 -2
  271. package/dist/components/theme-toggle/index.js +4 -4
  272. package/dist/components/toggle/index.d.ts +1 -1
  273. package/dist/components/toggle/index.js +2 -2
  274. package/dist/components/toggle-group/index.d.ts +2 -2
  275. package/dist/components/toggle-group/index.js +2 -2
  276. package/dist/components/typography/index.d.ts +2 -2
  277. package/dist/components/typography/index.js +2 -2
  278. package/dist/components/video/index.js +2 -2
  279. package/dist/index.d.ts +24 -24
  280. package/dist/index.js +79 -78
  281. package/dist/lib/interactive/index.js +1 -1
  282. package/dist/lib/utils.d.ts +2 -1
  283. package/dist/lib/utils.js +1 -1
  284. package/dist/{navigationMenuTriggerStyle-BWnESpon.d.ts → navigationMenuTriggerStyle-DUhqCYxO.d.ts} +1 -1
  285. package/dist/theme.css +16 -0
  286. package/dist/utils.d.ts +2 -0
  287. package/dist/utils.js +3 -0
  288. package/dist/utils.js.map +1 -0
  289. package/package.json +28 -25
  290. package/dist/Button-vQnkiVTI.d.ts +0 -84
  291. package/dist/Toggle-CseZl7XN.d.ts +0 -49
  292. package/dist/Typography-ccTtE182.d.ts +0 -64
  293. package/dist/chunk-24QD2FTA.js.map +0 -1
  294. package/dist/chunk-262EK2XT.js.map +0 -1
  295. package/dist/chunk-3LIT5GWF.js.map +0 -1
  296. package/dist/chunk-5FBD2NTR.js.map +0 -1
  297. package/dist/chunk-5KS2VSX2.js.map +0 -1
  298. package/dist/chunk-67J4KBOW.js.map +0 -1
  299. package/dist/chunk-6RASPU5N.js.map +0 -1
  300. package/dist/chunk-BYG2ULS3.js.map +0 -1
  301. package/dist/chunk-CMBERB5B.js +0 -9
  302. package/dist/chunk-COPT6I2D.js.map +0 -1
  303. package/dist/chunk-D3DQ4ICC.js.map +0 -1
  304. package/dist/chunk-ERBGZZ2U.js.map +0 -1
  305. package/dist/chunk-G6TV6TF7.js.map +0 -1
  306. package/dist/chunk-GIU6BZTW.js.map +0 -1
  307. package/dist/chunk-HCTZJYHK.js.map +0 -1
  308. package/dist/chunk-JSHUWI3C.js.map +0 -1
  309. package/dist/chunk-LCWXIQKA.js.map +0 -1
  310. package/dist/chunk-MJQ6R345.js.map +0 -1
  311. package/dist/chunk-MKG3UAP6.js +0 -347
  312. package/dist/chunk-MKG3UAP6.js.map +0 -1
  313. package/dist/chunk-MS2ZNYCJ.js +0 -9
  314. package/dist/chunk-MS2ZNYCJ.js.map +0 -1
  315. package/dist/chunk-OCLVMKVC.js.map +0 -1
  316. package/dist/chunk-PGOCR4LG.js.map +0 -1
  317. package/dist/chunk-PPYJQNE5.js.map +0 -1
  318. package/dist/chunk-QZX3RFIC.js.map +0 -1
  319. package/dist/chunk-RTIFG4XT.js +0 -9
  320. package/dist/chunk-STRBBF45.js.map +0 -1
  321. package/dist/chunk-U2UNWXBC.js.map +0 -1
  322. package/dist/chunk-UEGIKBX6.js +0 -385
  323. package/dist/chunk-UEGIKBX6.js.map +0 -1
  324. package/dist/chunk-UIA74JVN.js.map +0 -1
  325. package/dist/chunk-UNWEH4Z6.js.map +0 -1
  326. package/dist/chunk-V2MG5Y5F.js.map +0 -1
  327. package/dist/chunk-X2YUFNK7.js +0 -18
  328. package/dist/chunk-X2YUFNK7.js.map +0 -1
  329. package/dist/chunk-XGFJJ2YB.js.map +0 -1
  330. package/dist/chunk-YZLPO4B2.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/command/Command.tsx","../src/components/command/CommandEmpty.tsx","../src/components/command/CommandGroup.tsx","../src/components/command/CommandInput.tsx","../src/components/command/CommandItem.tsx","../src/components/command/CommandList.tsx","../src/components/command/CommandSeparator.tsx"],"names":["jsx"],"mappings":"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","file":"chunk-CP55TVOV.js","sourcesContent":["import { type Signal, signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useCallback, useContext, useMemo } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\n\nexport type CommandContextValue = {\n query: Signal<string>;\n hasVisibleItems: Signal<boolean>;\n autoHighlight: boolean;\n highlightedIndex: Signal<number>;\n listRef: { current: HTMLDivElement | null };\n moveHighlight: (delta: number) => void;\n activateHighlighted: () => void;\n};\n\nconst CommandContext = createContext<CommandContextValue | null>(null);\n\nexport const useCommand = () => {\n const context = useContext(CommandContext);\n if (!context) throw new Error(\"Command subcomponents must be used within Command\");\n return context;\n};\n\nexport type CommandProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n /** First visible item gets `data-highlighted`; enables ArrowUp/Down + Enter in `CommandInput`. */\n autoHighlight?: boolean;\n /** External filter signal (e.g. combobox inline input shares query with the list). */\n query?: Signal<string>;\n /** External visibility signal; updated by `CommandList` when provided. */\n hasVisibleItems?: Signal<boolean>;\n};\n\nexport const Command = ({\n class: className,\n children,\n autoHighlight = false,\n query: queryProp,\n hasVisibleItems: hasVisibleProp,\n ...rest\n}: CommandProps) => {\n const internalQuery = useMemo(() => signal(\"\"), []);\n const query = queryProp ?? internalQuery;\n const internalHas = useMemo(() => signal(true), []);\n const hasVisibleItems = hasVisibleProp ?? internalHas;\n const highlightedIndex = useMemo(() => signal(-1), []);\n const listRef = useMemo(() => ({ current: null as HTMLDivElement | null }), []);\n\n const moveHighlight = useCallback(\n (delta: number) => {\n const root = listRef.current;\n if (!root || !autoHighlight) return;\n const nodes = [\n ...root.querySelectorAll<HTMLElement>('[data-slot=\"command-item\"][data-match=\"true\"]'),\n ];\n if (nodes.length === 0) return;\n let idx = highlightedIndex.value;\n if (idx < 0) idx = delta > 0 ? 0 : nodes.length - 1;\n else idx = (idx + delta + nodes.length) % nodes.length;\n highlightedIndex.value = idx;\n },\n [autoHighlight, highlightedIndex, listRef],\n );\n\n const activateHighlighted = useCallback(() => {\n if (!autoHighlight) return;\n const root = listRef.current;\n if (!root) return;\n const nodes = [\n ...root.querySelectorAll<HTMLElement>('[data-slot=\"command-item\"][data-match=\"true\"]'),\n ];\n if (nodes.length === 0) return;\n let idx = highlightedIndex.value;\n if (idx < 0 || idx >= nodes.length) idx = 0;\n nodes[idx]?.click();\n }, [autoHighlight, highlightedIndex, listRef]);\n\n const contextValue = useMemo<CommandContextValue>(\n () => ({\n query,\n hasVisibleItems,\n autoHighlight,\n highlightedIndex,\n listRef,\n moveHighlight,\n activateHighlighted,\n }),\n [\n query,\n hasVisibleItems,\n autoHighlight,\n highlightedIndex,\n listRef,\n moveHighlight,\n activateHighlighted,\n ],\n );\n\n return (\n <CommandContext.Provider value={contextValue}>\n <div\n data-slot=\"command\"\n class={cn(\"w-full rounded-md border bg-popover text-popover-foreground\", className)}\n {...rest}\n >\n {children}\n </div>\n </CommandContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useCommand } from \"./Command\";\n\nexport type CommandEmptyProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const CommandEmpty = ({ children, class: className, ...rest }: CommandEmptyProps) => {\n const { query, hasVisibleItems } = useCommand();\n void hasVisibleItems.value;\n\n if (!(query.value ?? \"\").trim()) return null;\n if (hasVisibleItems.value) return null;\n\n return (\n <div\n data-slot=\"command-empty\"\n class={cn(\"p-2 text-sm text-muted-foreground\", className)}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type CommandGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n heading?: string;\n children?: ComponentChildren;\n};\n\nexport const CommandGroup = ({\n heading,\n class: className,\n children,\n ...rest\n}: CommandGroupProps) => (\n <div\n data-slot=\"command-group\"\n role=\"presentation\"\n class={cn(\"text-foreground overflow-hidden p-1\", className)}\n {...rest}\n >\n {heading ? (\n <div\n class=\"text-muted-foreground px-2 py-1.5 text-xs font-medium\"\n data-slot=\"command-group-heading\"\n >\n {heading}\n </div>\n ) : null}\n <div class=\"space-y-0.5\" role=\"group\">\n {children}\n </div>\n </div>\n);\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useCommand } from \"./Command\";\n\nexport type CommandInputProps = JSX.InputHTMLAttributes<HTMLInputElement>;\n\nexport const CommandInput = ({\n class: className,\n onInput,\n onKeyDown,\n ...rest\n}: CommandInputProps) => {\n const { query, autoHighlight, moveHighlight, activateHighlighted } = useCommand();\n void query.value;\n return (\n <input\n data-slot=\"command-input\"\n class={cn(\"h-10 w-full border-b bg-transparent px-3 text-sm outline-none\", className)}\n value={query.value}\n onInput={(event) => {\n query.value = event.currentTarget.value;\n onInput?.(event);\n }}\n onKeyDown={(event) => {\n if (autoHighlight) {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n moveHighlight(1);\n return;\n }\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n moveHighlight(-1);\n return;\n }\n if (event.key === \"Enter\") {\n event.preventDefault();\n activateHighlighted();\n return;\n }\n }\n onKeyDown?.(event);\n }}\n {...rest}\n />\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useCommand } from \"./Command\";\n\nexport type CommandItemProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n /** Used for case-insensitive filtering against the query. */\n value: string;\n children?: ComponentChildren;\n onSelect?: (value: string) => void;\n};\n\nexport const CommandItem = ({\n class: className,\n value,\n children,\n disabled,\n onClick,\n onSelect,\n ...rest\n}: CommandItemProps) => {\n const { query } = useCommand();\n const q = (query.value ?? \"\").trim().toLowerCase();\n const textMatch = !q || value.toLowerCase().includes(q);\n\n return (\n <button\n type=\"button\"\n data-slot=\"command-item\"\n data-match={textMatch ? \"true\" : \"false\"}\n disabled={disabled}\n class={cn(\n \"flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-start text-sm outline-none\",\n \"hover:bg-accent hover:text-accent-foreground\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[highlighted=true]:bg-accent data-[highlighted=true]:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n !textMatch && \"hidden\",\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n onSelect?.(value);\n }}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useLayoutEffect, useRef } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { useCommand } from \"./Command\";\n\nexport type CommandListProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n /** Notified when the list root mounts (e.g. combobox inline input forwards keyboard to the list). */\n onMount?: (el: HTMLDivElement | null) => void;\n};\n\nexport const CommandList = ({ class: className, children, onMount, ...rest }: CommandListProps) => {\n const { query, hasVisibleItems, autoHighlight, highlightedIndex, listRef } = useCommand();\n const prevQueryRef = useRef<string | null>(null);\n\n void query.value;\n void highlightedIndex.value;\n\n useLayoutEffect(() => {\n const root = listRef.current;\n if (!root) return;\n\n const nodes = [\n ...root.querySelectorAll<HTMLElement>('[data-slot=\"command-item\"][data-match=\"true\"]'),\n ];\n hasVisibleItems.value = nodes.length > 0;\n\n if (!autoHighlight) {\n root\n .querySelectorAll('[data-slot=\"command-item\"]')\n .forEach((el) => el.removeAttribute(\"data-highlighted\"));\n prevQueryRef.current = query.value;\n return;\n }\n\n const queryBumped = prevQueryRef.current !== query.value;\n prevQueryRef.current = query.value;\n\n let idx = highlightedIndex.value;\n if (queryBumped) {\n idx = nodes.length > 0 ? 0 : -1;\n highlightedIndex.value = idx;\n } else {\n if (nodes.length === 0) {\n highlightedIndex.value = -1;\n idx = -1;\n } else if (idx >= nodes.length) {\n idx = nodes.length - 1;\n highlightedIndex.value = idx;\n } else if (idx < 0) {\n idx = 0;\n highlightedIndex.value = idx;\n }\n }\n\n root\n .querySelectorAll('[data-slot=\"command-item\"]')\n .forEach((el) => el.removeAttribute(\"data-highlighted\"));\n if (idx >= 0 && nodes[idx]) {\n nodes[idx].setAttribute(\"data-highlighted\", \"true\");\n nodes[idx].scrollIntoView({ block: \"nearest\" });\n }\n }, [query.value, highlightedIndex.value, autoHighlight]);\n\n return (\n <div\n ref={(node) => {\n listRef.current = node;\n onMount?.(node);\n }}\n data-slot=\"command-list\"\n class={cn(\"max-h-72 overflow-y-auto overflow-x-hidden p-1\", className)}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type CommandSeparatorProps = JSX.HTMLAttributes<HTMLHRElement>;\n\nexport const CommandSeparator = ({ class: className, ...rest }: CommandSeparatorProps) => (\n <hr\n data-slot=\"command-separator\"\n class={cn(\"bg-border -mx-1 my-1 h-px border-0\", className)}\n {...rest}\n />\n);\n"]}
1
+ {"version":3,"sources":["../src/components/command/Command.tsx","../src/components/command/CommandEmpty.tsx","../src/components/command/CommandGroup.tsx","../src/components/command/CommandInput.tsx","../src/components/command/CommandItem.tsx","../src/components/command/CommandList.tsx","../src/components/command/CommandSeparator.tsx"],"names":["jsx"],"mappings":"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","file":"chunk-MJUKNUFV.js","sourcesContent":["import { type Signal, signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useCallback, useContext, useMemo } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\n\nexport type CommandContextValue = {\n query: Signal<string>;\n hasVisibleItems: Signal<boolean>;\n autoHighlight: boolean;\n highlightedIndex: Signal<number>;\n listRef: { current: HTMLDivElement | null };\n moveHighlight: (delta: number) => void;\n activateHighlighted: () => void;\n};\n\nconst CommandContext = createContext<CommandContextValue | null>(null);\n\nexport const useCommand = () => {\n const context = useContext(CommandContext);\n if (!context) throw new Error(\"Command subcomponents must be used within Command\");\n return context;\n};\n\nexport type CommandProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n /** First visible item gets `data-highlighted`; enables ArrowUp/Down + Enter in `CommandInput`. */\n autoHighlight?: boolean;\n /** External filter signal (e.g. combobox inline input shares query with the list). */\n query?: Signal<string>;\n /** External visibility signal; updated by `CommandList` when provided. */\n hasVisibleItems?: Signal<boolean>;\n};\n\nexport const Command = ({\n class: className,\n children,\n autoHighlight = false,\n query: queryProp,\n hasVisibleItems: hasVisibleProp,\n ...rest\n}: CommandProps) => {\n const internalQuery = useMemo(() => signal(\"\"), []);\n const query = queryProp ?? internalQuery;\n const internalHas = useMemo(() => signal(true), []);\n const hasVisibleItems = hasVisibleProp ?? internalHas;\n const highlightedIndex = useMemo(() => signal(-1), []);\n const listRef = useMemo(() => ({ current: null as HTMLDivElement | null }), []);\n\n const moveHighlight = useCallback(\n (delta: number) => {\n const root = listRef.current;\n if (!root || !autoHighlight) return;\n const nodes = [\n ...root.querySelectorAll<HTMLElement>('[data-slot=\"command-item\"][data-match=\"true\"]'),\n ];\n if (nodes.length === 0) return;\n let idx = highlightedIndex.value;\n if (idx < 0) idx = delta > 0 ? 0 : nodes.length - 1;\n else idx = (idx + delta + nodes.length) % nodes.length;\n highlightedIndex.value = idx;\n },\n [autoHighlight, highlightedIndex, listRef],\n );\n\n const activateHighlighted = useCallback(() => {\n if (!autoHighlight) return;\n const root = listRef.current;\n if (!root) return;\n const nodes = [\n ...root.querySelectorAll<HTMLElement>('[data-slot=\"command-item\"][data-match=\"true\"]'),\n ];\n if (nodes.length === 0) return;\n let idx = highlightedIndex.value;\n if (idx < 0 || idx >= nodes.length) idx = 0;\n nodes[idx]?.click();\n }, [autoHighlight, highlightedIndex, listRef]);\n\n const contextValue = useMemo<CommandContextValue>(\n () => ({\n query,\n hasVisibleItems,\n autoHighlight,\n highlightedIndex,\n listRef,\n moveHighlight,\n activateHighlighted,\n }),\n [\n query,\n hasVisibleItems,\n autoHighlight,\n highlightedIndex,\n listRef,\n moveHighlight,\n activateHighlighted,\n ],\n );\n\n return (\n <CommandContext.Provider value={contextValue}>\n <div\n data-slot=\"command\"\n class={cn(\"w-full rounded-md border bg-popover text-popover-foreground\", className)}\n {...rest}\n >\n {children}\n </div>\n </CommandContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useCommand } from \"./Command\";\n\nexport type CommandEmptyProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const CommandEmpty = ({ children, class: className, ...rest }: CommandEmptyProps) => {\n const { query, hasVisibleItems } = useCommand();\n void hasVisibleItems.value;\n\n if (!(query.value ?? \"\").trim()) return null;\n if (hasVisibleItems.value) return null;\n\n return (\n <div\n data-slot=\"command-empty\"\n class={cn(\"p-2 text-sm text-muted-foreground\", className)}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type CommandGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n heading?: string;\n children?: ComponentChildren;\n};\n\nexport const CommandGroup = ({\n heading,\n class: className,\n children,\n ...rest\n}: CommandGroupProps) => (\n <div\n data-slot=\"command-group\"\n role=\"presentation\"\n class={cn(\"text-foreground overflow-hidden p-1\", className)}\n {...rest}\n >\n {heading ? (\n <div\n class=\"text-muted-foreground px-2 py-1.5 text-xs font-medium\"\n data-slot=\"command-group-heading\"\n >\n {heading}\n </div>\n ) : null}\n <div class=\"space-y-0.5\" role=\"group\">\n {children}\n </div>\n </div>\n);\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useCommand } from \"./Command\";\n\nexport type CommandInputProps = JSX.InputHTMLAttributes<HTMLInputElement>;\n\nexport const CommandInput = ({\n class: className,\n onInput,\n onKeyDown,\n ...rest\n}: CommandInputProps) => {\n const { query, autoHighlight, moveHighlight, activateHighlighted } = useCommand();\n void query.value;\n return (\n <input\n data-slot=\"command-input\"\n class={cn(\"h-10 w-full border-b bg-transparent px-3 text-sm outline-none\", className)}\n value={query.value}\n onInput={(event) => {\n query.value = event.currentTarget.value;\n onInput?.(event);\n }}\n onKeyDown={(event) => {\n if (autoHighlight) {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n moveHighlight(1);\n return;\n }\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n moveHighlight(-1);\n return;\n }\n if (event.key === \"Enter\") {\n event.preventDefault();\n activateHighlighted();\n return;\n }\n }\n onKeyDown?.(event);\n }}\n {...rest}\n />\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useCommand } from \"./Command\";\n\nexport type CommandItemProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n /** Used for case-insensitive filtering against the query. */\n value: string;\n children?: ComponentChildren;\n onSelect?: (value: string) => void;\n};\n\nexport const CommandItem = ({\n class: className,\n value,\n children,\n disabled,\n onClick,\n onSelect,\n ...rest\n}: CommandItemProps) => {\n const { query } = useCommand();\n const q = (query.value ?? \"\").trim().toLowerCase();\n const textMatch = !q || value.toLowerCase().includes(q);\n\n return (\n <button\n type=\"button\"\n data-slot=\"command-item\"\n data-match={textMatch ? \"true\" : \"false\"}\n disabled={disabled}\n class={cn(\n \"flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-start text-sm outline-none\",\n \"hover:bg-accent hover:text-accent-foreground\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[highlighted=true]:bg-accent data-[highlighted=true]:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n !textMatch && \"hidden\",\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n onSelect?.(value);\n }}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useLayoutEffect, useRef } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { useCommand } from \"./Command\";\n\nexport type CommandListProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n /** Notified when the list root mounts (e.g. combobox inline input forwards keyboard to the list). */\n onMount?: (el: HTMLDivElement | null) => void;\n};\n\nexport const CommandList = ({ class: className, children, onMount, ...rest }: CommandListProps) => {\n const { query, hasVisibleItems, autoHighlight, highlightedIndex, listRef } = useCommand();\n const prevQueryRef = useRef<string | null>(null);\n\n void query.value;\n void highlightedIndex.value;\n\n useLayoutEffect(() => {\n const root = listRef.current;\n if (!root) return;\n\n const nodes = [\n ...root.querySelectorAll<HTMLElement>('[data-slot=\"command-item\"][data-match=\"true\"]'),\n ];\n hasVisibleItems.value = nodes.length > 0;\n\n if (!autoHighlight) {\n root\n .querySelectorAll('[data-slot=\"command-item\"]')\n .forEach((el) => el.removeAttribute(\"data-highlighted\"));\n prevQueryRef.current = query.value;\n return;\n }\n\n const queryBumped = prevQueryRef.current !== query.value;\n prevQueryRef.current = query.value;\n\n let idx = highlightedIndex.value;\n if (queryBumped) {\n idx = nodes.length > 0 ? 0 : -1;\n highlightedIndex.value = idx;\n } else {\n if (nodes.length === 0) {\n highlightedIndex.value = -1;\n idx = -1;\n } else if (idx >= nodes.length) {\n idx = nodes.length - 1;\n highlightedIndex.value = idx;\n } else if (idx < 0) {\n idx = 0;\n highlightedIndex.value = idx;\n }\n }\n\n root\n .querySelectorAll('[data-slot=\"command-item\"]')\n .forEach((el) => el.removeAttribute(\"data-highlighted\"));\n if (idx >= 0 && nodes[idx]) {\n nodes[idx].setAttribute(\"data-highlighted\", \"true\");\n nodes[idx].scrollIntoView({ block: \"nearest\" });\n }\n }, [query.value, highlightedIndex.value, autoHighlight]);\n\n return (\n <div\n ref={(node) => {\n listRef.current = node;\n onMount?.(node);\n }}\n data-slot=\"command-list\"\n class={cn(\"max-h-72 overflow-y-auto overflow-x-hidden p-1\", className)}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type CommandSeparatorProps = JSX.HTMLAttributes<HTMLHRElement>;\n\nexport const CommandSeparator = ({ class: className, ...rest }: CommandSeparatorProps) => (\n <hr\n data-slot=\"command-separator\"\n class={cn(\"bg-border -mx-1 my-1 h-px border-0\", className)}\n {...rest}\n />\n);\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-MS2ZNYCJ.js';
1
+ import { cn } from './chunk-XIANSPQO.js';
2
2
  import { jsxs, jsx } from 'preact/jsx-runtime';
3
3
 
4
4
  var Chart = ({ class: className, title, description, children, ...rest }) => /* @__PURE__ */ jsxs("div", { "data-slot": "chart", class: cn("rounded-md border p-4", className), ...rest, children: [
@@ -11,5 +11,5 @@ var Chart = ({ class: className, title, description, children, ...rest }) => /*
11
11
  var chart_default = Chart;
12
12
 
13
13
  export { Chart, chart_default };
14
- //# sourceMappingURL=chunk-GGTDJEE2.js.map
15
- //# sourceMappingURL=chunk-GGTDJEE2.js.map
14
+ //# sourceMappingURL=chunk-MTNLY7AY.js.map
15
+ //# sourceMappingURL=chunk-MTNLY7AY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/chart/Chart.tsx","../src/components/chart/index.ts"],"names":[],"mappings":";;;AASO,IAAM,KAAA,GAAQ,CAAC,EAAE,KAAA,EAAO,WAAW,KAAA,EAAO,WAAA,EAAa,UAAU,GAAG,IAAA,uBACzE,IAAA,CAAC,KAAA,EAAA,EAAI,aAAU,OAAA,EAAQ,KAAA,EAAO,GAAG,uBAAA,EAAyB,SAAS,CAAA,EAAI,GAAG,IAAA,EACvE,QAAA,EAAA;AAAA,EAAA,KAAA,mBAAQ,GAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAM,qBAAA,EAAuB,iBAAM,CAAA,GAAQ,IAAA;AAAA,EACvD,8BAAc,GAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAM,oCAAA,EAAsC,uBAAY,CAAA,GAAO,IAAA;AAAA,kBACjF,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,MAAA,EAAQ,QAAA,EAAS;AAAA,CAAA,EAC9B;;;ACVF,IAAO,aAAA,GAAQ","file":"chunk-GGTDJEE2.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ChartProps = JSX.HTMLAttributes<HTMLDivElement> & {\n title?: string;\n description?: string;\n children?: ComponentChildren;\n};\n\nexport const Chart = ({ class: className, title, description, children, ...rest }: ChartProps) => (\n <div data-slot=\"chart\" class={cn(\"rounded-md border p-4\", className)} {...rest}>\n {title ? <h3 class=\"text-sm font-medium\">{title}</h3> : null}\n {description ? <p class=\"mt-1 text-xs text-muted-foreground\">{description}</p> : null}\n <div class=\"mt-3\">{children}</div>\n </div>\n);\n","import { Chart } from \"./Chart\";\n\nexport { Chart };\n\nexport default Chart;\n"]}
1
+ {"version":3,"sources":["../src/components/chart/Chart.tsx","../src/components/chart/index.ts"],"names":[],"mappings":";;;AASO,IAAM,KAAA,GAAQ,CAAC,EAAE,KAAA,EAAO,WAAW,KAAA,EAAO,WAAA,EAAa,UAAU,GAAG,IAAA,uBACzE,IAAA,CAAC,KAAA,EAAA,EAAI,aAAU,OAAA,EAAQ,KAAA,EAAO,GAAG,uBAAA,EAAyB,SAAS,CAAA,EAAI,GAAG,IAAA,EACvE,QAAA,EAAA;AAAA,EAAA,KAAA,mBAAQ,GAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAM,qBAAA,EAAuB,iBAAM,CAAA,GAAQ,IAAA;AAAA,EACvD,8BAAc,GAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAM,oCAAA,EAAsC,uBAAY,CAAA,GAAO,IAAA;AAAA,kBACjF,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,MAAA,EAAQ,QAAA,EAAS;AAAA,CAAA,EAC9B;;;ACVF,IAAO,aAAA,GAAQ","file":"chunk-MTNLY7AY.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ChartProps = JSX.HTMLAttributes<HTMLDivElement> & {\n title?: string;\n description?: string;\n children?: ComponentChildren;\n};\n\nexport const Chart = ({ class: className, title, description, children, ...rest }: ChartProps) => (\n <div data-slot=\"chart\" class={cn(\"rounded-md border p-4\", className)} {...rest}>\n {title ? <h3 class=\"text-sm font-medium\">{title}</h3> : null}\n {description ? <p class=\"mt-1 text-xs text-muted-foreground\">{description}</p> : null}\n <div class=\"mt-3\">{children}</div>\n </div>\n);\n","import { Chart } from \"./Chart\";\n\nexport { Chart };\n\nexport default Chart;\n"]}
@@ -1,7 +1,7 @@
1
+ import { cn } from './chunk-XIANSPQO.js';
1
2
  import { tv } from 'tailwind-variants';
2
3
  import { jsx } from 'preact/jsx-runtime';
3
4
 
4
- // src/components/card/Card.tsx
5
5
  var card = tv({
6
6
  base: [
7
7
  "bg-card text-card-foreground group/card ring-border flex min-w-0 flex-col rounded-xl ring-1",
@@ -21,7 +21,7 @@ var card = tv({
21
21
  var Card = ({ class: className, size, children, ...rest }) => /* @__PURE__ */ jsx(
22
22
  "div",
23
23
  {
24
- class: card({ size, class: className }),
24
+ class: cn(card({ size }), className),
25
25
  "data-slot": "card",
26
26
  "data-size": size ?? "default",
27
27
  ...rest,
@@ -31,47 +31,19 @@ var Card = ({ class: className, size, children, ...rest }) => /* @__PURE__ */ js
31
31
  var cardAction = tv({
32
32
  base: "col-start-2 row-span-2 row-start-1 shrink-0 self-start justify-self-end"
33
33
  });
34
- var CardAction = ({ class: className, ...rest }) => /* @__PURE__ */ jsx(
35
- "div",
36
- {
37
- class: cardAction({ class: className }),
38
- "data-slot": "card-action",
39
- ...rest
40
- }
41
- );
34
+ var CardAction = ({ class: className, ...rest }) => /* @__PURE__ */ jsx("div", { class: cn(cardAction(), className), "data-slot": "card-action", ...rest });
42
35
  var cardContent = tv({
43
36
  base: "px-6 group-data-[size=sm]/card:px-4"
44
37
  });
45
- var CardContent = ({ class: className, ...rest }) => /* @__PURE__ */ jsx(
46
- "div",
47
- {
48
- class: cardContent({ class: className }),
49
- "data-slot": "card-content",
50
- ...rest
51
- }
52
- );
38
+ var CardContent = ({ class: className, ...rest }) => /* @__PURE__ */ jsx("div", { class: cn(cardContent(), className), "data-slot": "card-content", ...rest });
53
39
  var cardDescription = tv({
54
40
  base: "min-w-0 break-words text-muted-foreground text-sm group-data-[size=sm]/card:text-xs"
55
41
  });
56
- var CardDescription = ({ class: className, ...rest }) => /* @__PURE__ */ jsx(
57
- "div",
58
- {
59
- class: cardDescription({ class: className }),
60
- "data-slot": "card-description",
61
- ...rest
62
- }
63
- );
42
+ var CardDescription = ({ class: className, ...rest }) => /* @__PURE__ */ jsx("div", { class: cn(cardDescription(), className), "data-slot": "card-description", ...rest });
64
43
  var cardFooter = tv({
65
44
  base: "bg-muted/50 flex items-center rounded-b-xl border-t p-6 group-data-[size=sm]/card:p-4"
66
45
  });
67
- var CardFooter = ({ class: className, ...rest }) => /* @__PURE__ */ jsx(
68
- "div",
69
- {
70
- class: cardFooter({ class: className }),
71
- "data-slot": "card-footer",
72
- ...rest
73
- }
74
- );
46
+ var CardFooter = ({ class: className, ...rest }) => /* @__PURE__ */ jsx("div", { class: cn(cardFooter(), className), "data-slot": "card-footer", ...rest });
75
47
  var cardHeader = tv({
76
48
  base: [
77
49
  "@container/card-header grid w-full min-w-0 auto-rows-min items-start gap-1.5 px-6 group-data-[size=sm]/card:px-4",
@@ -79,25 +51,11 @@ var cardHeader = tv({
79
51
  "has-data-[slot=card-action]:grid-cols-[minmax(0,1fr)_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]"
80
52
  ]
81
53
  });
82
- var CardHeader = ({ class: className, ...rest }) => /* @__PURE__ */ jsx(
83
- "div",
84
- {
85
- class: cardHeader({ class: className }),
86
- "data-slot": "card-header",
87
- ...rest
88
- }
89
- );
54
+ var CardHeader = ({ class: className, ...rest }) => /* @__PURE__ */ jsx("div", { class: cn(cardHeader(), className), "data-slot": "card-header", ...rest });
90
55
  var cardTitle = tv({
91
56
  base: "font-heading min-w-0 break-words text-xl leading-snug font-semibold group-data-[size=sm]/card:text-base"
92
57
  });
93
- var CardTitle = ({ class: className, ...rest }) => /* @__PURE__ */ jsx(
94
- "div",
95
- {
96
- class: cardTitle({ class: className }),
97
- "data-slot": "card-title",
98
- ...rest
99
- }
100
- );
58
+ var CardTitle = ({ class: className, ...rest }) => /* @__PURE__ */ jsx("div", { class: cn(cardTitle(), className), "data-slot": "card-title", ...rest });
101
59
 
102
60
  // src/components/card/index.ts
103
61
  var CardVariants = {
@@ -120,5 +78,5 @@ var card_default = {
120
78
  };
121
79
 
122
80
  export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardVariants, card_default };
123
- //# sourceMappingURL=chunk-67J4KBOW.js.map
124
- //# sourceMappingURL=chunk-67J4KBOW.js.map
81
+ //# sourceMappingURL=chunk-NBIBBLP6.js.map
82
+ //# sourceMappingURL=chunk-NBIBBLP6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/card/Card.tsx","../src/components/card/CardAction.tsx","../src/components/card/CardContent.tsx","../src/components/card/CardDescription.tsx","../src/components/card/CardFooter.tsx","../src/components/card/CardHeader.tsx","../src/components/card/CardTitle.tsx","../src/components/card/index.ts"],"names":["tv","jsx"],"mappings":"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","file":"chunk-NBIBBLP6.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\nexport const card = tv({\n base: [\n \"bg-card text-card-foreground group/card ring-border flex min-w-0 flex-col rounded-xl ring-1\",\n \"has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0\",\n \"*:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl\",\n ],\n variants: {\n size: {\n default: \"gap-6 py-6\",\n sm: \"gap-4 py-4 text-sm\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n});\n\nexport type CardProps = JSX.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof card> & {\n children?: ComponentChildren;\n };\n\nexport const Card = ({ class: className, size, children, ...rest }: CardProps) => (\n <div\n class={cn(card({ size }), className)}\n data-slot=\"card\"\n data-size={size ?? \"default\"}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\nexport const cardAction = tv({\n base: \"col-start-2 row-span-2 row-start-1 shrink-0 self-start justify-self-end\",\n});\n\nexport type CardActionProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardAction = ({ class: className, ...rest }: CardActionProps) => (\n <div class={cn(cardAction(), className)} data-slot=\"card-action\" {...rest} />\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\nexport const cardContent = tv({\n base: \"px-6 group-data-[size=sm]/card:px-4\",\n});\n\nexport type CardContentProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardContent = ({ class: className, ...rest }: CardContentProps) => (\n <div class={cn(cardContent(), className)} data-slot=\"card-content\" {...rest} />\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\nexport const cardDescription = tv({\n base: \"min-w-0 break-words text-muted-foreground text-sm group-data-[size=sm]/card:text-xs\",\n});\n\nexport type CardDescriptionProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardDescription = ({ class: className, ...rest }: CardDescriptionProps) => (\n <div class={cn(cardDescription(), className)} data-slot=\"card-description\" {...rest} />\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\nexport const cardFooter = tv({\n base: \"bg-muted/50 flex items-center rounded-b-xl border-t p-6 group-data-[size=sm]/card:p-4\",\n});\n\nexport type CardFooterProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardFooter = ({ class: className, ...rest }: CardFooterProps) => (\n <div class={cn(cardFooter(), className)} data-slot=\"card-footer\" {...rest} />\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\nexport const cardHeader = tv({\n base: [\n \"@container/card-header grid w-full min-w-0 auto-rows-min items-start gap-1.5 px-6 group-data-[size=sm]/card:px-4\",\n // minmax(0,1fr) + min-w-0 on title/description keeps CardAction in the second column inside the card (flex preview children)\n \"has-data-[slot=card-action]:grid-cols-[minmax(0,1fr)_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]\",\n ],\n});\n\nexport type CardHeaderProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardHeader = ({ class: className, ...rest }: CardHeaderProps) => (\n <div class={cn(cardHeader(), className)} data-slot=\"card-header\" {...rest} />\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\nexport const cardTitle = tv({\n base: \"font-heading min-w-0 break-words text-xl leading-snug font-semibold group-data-[size=sm]/card:text-base\",\n});\n\nexport type CardTitleProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardTitle = ({ class: className, ...rest }: CardTitleProps) => (\n <div class={cn(cardTitle(), className)} data-slot=\"card-title\" {...rest} />\n);\n","import { Card, card } from \"./Card\";\nimport { CardAction, cardAction } from \"./CardAction\";\nimport { CardContent, cardContent } from \"./CardContent\";\nimport { CardDescription, cardDescription } from \"./CardDescription\";\nimport { CardFooter, cardFooter } from \"./CardFooter\";\nimport { CardHeader, cardHeader } from \"./CardHeader\";\nimport { CardTitle, cardTitle } from \"./CardTitle\";\n\nconst CardVariants = {\n card,\n cardAction,\n cardContent,\n cardDescription,\n cardFooter,\n cardHeader,\n cardTitle,\n};\n\nexport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n CardVariants,\n};\n\nexport default {\n Root: Card,\n Header: CardHeader,\n Footer: CardFooter,\n Title: CardTitle,\n Description: CardDescription,\n Content: CardContent,\n Action: CardAction,\n};\n"]}
@@ -0,0 +1,200 @@
1
+ import { useHeightDisclosureContent } from './chunk-ISISDJ3Z.js';
2
+ import { cn } from './chunk-XIANSPQO.js';
3
+ import { signal } from '@preact/signals';
4
+ import { createContext } from 'preact';
5
+ import { useMemo, useContext } from 'preact/hooks';
6
+ import { jsx, jsxs } from 'preact/jsx-runtime';
7
+
8
+ var AccordionContext = createContext(null);
9
+ var useAccordion = () => {
10
+ const context = useContext(AccordionContext);
11
+ if (!context) throw new Error("Accordion subcomponents must be used within Accordion");
12
+ return context;
13
+ };
14
+ var Accordion = ({
15
+ type = "single",
16
+ collapsible = true,
17
+ defaultValue,
18
+ children,
19
+ ...rest
20
+ }) => {
21
+ const openValues = useMemo(() => {
22
+ const initialSet = new Set(
23
+ defaultValue ? Array.isArray(defaultValue) ? defaultValue : [defaultValue] : []
24
+ );
25
+ return signal(initialSet);
26
+ }, []);
27
+ const context = {
28
+ type,
29
+ openValues,
30
+ toggleValue: (value) => {
31
+ const next = new Set(openValues.value);
32
+ const isOpen = next.has(value);
33
+ if (type === "single") {
34
+ if (isOpen && !collapsible) {
35
+ return;
36
+ }
37
+ next.clear();
38
+ if (!isOpen) next.add(value);
39
+ } else if (isOpen) {
40
+ next.delete(value);
41
+ } else {
42
+ next.add(value);
43
+ }
44
+ openValues.value = next;
45
+ }
46
+ };
47
+ return /* @__PURE__ */ jsx(AccordionContext.Provider, { value: context, children: /* @__PURE__ */ jsx("div", { "data-slot": "accordion", ...rest, children }) });
48
+ };
49
+ var AccordionItemContext = createContext(null);
50
+ var useAccordionItem = () => {
51
+ const context = useContext(AccordionItemContext);
52
+ if (!context) throw new Error("Accordion item subcomponents must be used within AccordionItem");
53
+ return context;
54
+ };
55
+ var AccordionItem = ({
56
+ value,
57
+ disabled = false,
58
+ children,
59
+ ...rest
60
+ }) => {
61
+ const { openValues } = useAccordion();
62
+ const isOpen = openValues.value.has(value);
63
+ return /* @__PURE__ */ jsx(AccordionItemContext.Provider, { value: { value, isOpen, disabled }, children: /* @__PURE__ */ jsx(
64
+ "div",
65
+ {
66
+ "data-slot": "accordion-item",
67
+ "data-state": isOpen ? "open" : "closed",
68
+ "data-disabled": disabled ? "" : void 0,
69
+ ...rest,
70
+ children
71
+ }
72
+ ) });
73
+ };
74
+ var AccordionContent = ({
75
+ forceMount = false,
76
+ duration = "320ms",
77
+ timingFunction = "cubic-bezier(0.22, 1, 0.36, 1)",
78
+ largeContentThreshold = 560,
79
+ children,
80
+ class: className,
81
+ style,
82
+ ...rest
83
+ }) => {
84
+ const { isOpen } = useAccordionItem();
85
+ const {
86
+ allowRender,
87
+ isAnimatingClose,
88
+ isAnimatingOpen,
89
+ outerRef,
90
+ innerRef,
91
+ handleTransitionEnd
92
+ } = useHeightDisclosureContent({
93
+ open: isOpen,
94
+ forceMount,
95
+ duration,
96
+ timingFunction,
97
+ largeContentThreshold
98
+ });
99
+ if (!allowRender) return null;
100
+ const mergedStyle = {
101
+ ...typeof style === "object" && style !== null && !Array.isArray(style) ? style : {},
102
+ ["--kamodui-accordion-duration"]: duration,
103
+ ["--kamodui-accordion-timing-function"]: timingFunction
104
+ };
105
+ return /* @__PURE__ */ jsx(
106
+ "div",
107
+ {
108
+ ref: outerRef,
109
+ "data-slot": "accordion-content",
110
+ "data-state": isOpen ? "open" : "closed",
111
+ onTransitionEnd: handleTransitionEnd,
112
+ style: mergedStyle,
113
+ class: cn(
114
+ "min-h-0 overflow-hidden",
115
+ (isAnimatingOpen || isAnimatingClose) && "will-change-[height]"
116
+ ),
117
+ "aria-hidden": !isOpen && !isAnimatingClose,
118
+ inert: !isOpen || void 0,
119
+ ...rest,
120
+ children: /* @__PURE__ */ jsx(
121
+ "div",
122
+ {
123
+ ref: innerRef,
124
+ "data-slot": "accordion-content-inner",
125
+ class: cn("min-h-0 min-w-0", className),
126
+ children
127
+ }
128
+ )
129
+ }
130
+ );
131
+ };
132
+ var DefaultIndicator = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", width: "16", height: "16", fill: "none", "aria-hidden": "true", focusable: "false", children: /* @__PURE__ */ jsx(
133
+ "path",
134
+ {
135
+ d: "M4 6l4 4 4-4",
136
+ stroke: "currentColor",
137
+ strokeWidth: "1.5",
138
+ strokeLinecap: "round",
139
+ strokeLinejoin: "round"
140
+ }
141
+ ) });
142
+ var AccordionTrigger = ({
143
+ hideIndicator = false,
144
+ indicator,
145
+ children,
146
+ class: className,
147
+ onClick,
148
+ ...rest
149
+ }) => {
150
+ const { toggleValue } = useAccordion();
151
+ const { value, isOpen, disabled } = useAccordionItem();
152
+ return /* @__PURE__ */ jsxs(
153
+ "button",
154
+ {
155
+ type: "button",
156
+ "data-slot": "accordion-trigger",
157
+ "aria-expanded": isOpen,
158
+ disabled,
159
+ "data-state": isOpen ? "open" : "closed",
160
+ class: cn(
161
+ "flex w-full items-center justify-between gap-2 rounded-md py-4 text-left text-sm font-medium outline-none transition-colors focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50",
162
+ !isOpen && "hover:bg-muted/40",
163
+ className
164
+ ),
165
+ onClick: (event) => {
166
+ if (disabled) return;
167
+ toggleValue(value);
168
+ onClick?.(event);
169
+ },
170
+ ...rest,
171
+ children: [
172
+ /* @__PURE__ */ jsx("span", { "data-slot": "accordion-trigger-label", class: "min-w-0 flex-1 text-start", children }),
173
+ !hideIndicator ? /* @__PURE__ */ jsx(
174
+ "span",
175
+ {
176
+ "data-slot": "accordion-trigger-indicator",
177
+ "data-state": isOpen ? "open" : "closed",
178
+ class: cn(
179
+ "shrink-0 text-muted-foreground transition-transform duration-200",
180
+ isOpen && "rotate-180"
181
+ ),
182
+ children: indicator ?? /* @__PURE__ */ jsx(DefaultIndicator, {})
183
+ }
184
+ ) : null
185
+ ]
186
+ }
187
+ );
188
+ };
189
+
190
+ // src/components/accordion/index.ts
191
+ var accordion_default = {
192
+ Root: Accordion,
193
+ Item: AccordionItem,
194
+ Trigger: AccordionTrigger,
195
+ Content: AccordionContent
196
+ };
197
+
198
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, accordion_default, useAccordionItem };
199
+ //# sourceMappingURL=chunk-NBP4J2QF.js.map
200
+ //# sourceMappingURL=chunk-NBP4J2QF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/accordion/Accordion.tsx","../src/components/accordion/AccordionItem.tsx","../src/components/accordion/AccordionContent.tsx","../src/components/accordion/AccordionTrigger.tsx","../src/components/accordion/index.ts"],"names":["createContext","useContext","jsx"],"mappings":"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","file":"chunk-NBP4J2QF.js","sourcesContent":["import { type Signal, signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useMemo } from \"preact/hooks\";\n\ntype AccordionType = \"single\" | \"multiple\";\n\ntype AccordionContextValue = {\n type: AccordionType;\n openValues: Signal<Set<string>>;\n toggleValue: (value: string) => void;\n};\n\nconst AccordionContext = createContext<AccordionContextValue | null>(null);\n\nexport const useAccordion = () => {\n const context = useContext(AccordionContext);\n if (!context) throw new Error(\"Accordion subcomponents must be used within Accordion\");\n return context;\n};\n\nexport type AccordionProps = JSX.HTMLAttributes<HTMLDivElement> & {\n type?: AccordionType;\n /** When `type=\"single\"`, `false` keeps one panel always open (clicking the open trigger does not close it). Default `true` matches common shadcn examples. */\n collapsible?: boolean;\n defaultValue?: string | string[];\n children?: ComponentChildren;\n};\n\nexport const Accordion = ({\n type = \"single\",\n collapsible = true,\n defaultValue,\n children,\n ...rest\n}: AccordionProps) => {\n const openValues = useMemo(() => {\n const initialSet = new Set<string>(\n defaultValue ? (Array.isArray(defaultValue) ? defaultValue : [defaultValue]) : [],\n );\n return signal(initialSet);\n }, []);\n\n const context: AccordionContextValue = {\n type,\n openValues,\n toggleValue: (value) => {\n const next = new Set(openValues.value);\n const isOpen = next.has(value);\n\n if (type === \"single\") {\n if (isOpen && !collapsible) {\n return;\n }\n next.clear();\n if (!isOpen) next.add(value);\n } else if (isOpen) {\n next.delete(value);\n } else {\n next.add(value);\n }\n\n openValues.value = next;\n },\n };\n\n return (\n <AccordionContext.Provider value={context}>\n <div data-slot=\"accordion\" {...rest}>\n {children}\n </div>\n </AccordionContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext } from \"preact/hooks\";\nimport { useAccordion } from \"./Accordion\";\n\ntype AccordionItemContextValue = {\n value: string;\n isOpen: boolean;\n disabled: boolean;\n};\n\nconst AccordionItemContext = createContext<AccordionItemContextValue | null>(null);\n\nexport const useAccordionItem = () => {\n const context = useContext(AccordionItemContext);\n if (!context) throw new Error(\"Accordion item subcomponents must be used within AccordionItem\");\n return context;\n};\n\nexport type AccordionItemProps = JSX.HTMLAttributes<HTMLDivElement> & {\n value: string;\n disabled?: boolean;\n children?: ComponentChildren;\n};\n\nexport const AccordionItem = ({\n value,\n disabled = false,\n children,\n ...rest\n}: AccordionItemProps) => {\n const { openValues } = useAccordion();\n const isOpen = openValues.value.has(value);\n\n return (\n <AccordionItemContext.Provider value={{ value, isOpen, disabled }}>\n <div\n data-slot=\"accordion-item\"\n data-state={isOpen ? \"open\" : \"closed\"}\n data-disabled={disabled ? \"\" : undefined}\n {...rest}\n >\n {children}\n </div>\n </AccordionItemContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useHeightDisclosureContent } from \"../../lib/disclosure/use-height-disclosure-content\";\nimport { cn } from \"../../lib/utils\";\nimport { useAccordionItem } from \"./AccordionItem\";\n\nexport type AccordionContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n forceMount?: boolean;\n /** Grid transition duration, e.g. `400ms` */\n duration?: string;\n /** CSS timing function, e.g. `cubic-bezier(0.4, 0, 0.2, 1)` */\n timingFunction?: string;\n /** Use max-height animation for very tall content to reduce micro-jank. */\n largeContentThreshold?: number;\n children?: ComponentChildren;\n};\n\nexport const AccordionContent = ({\n forceMount = false,\n duration = \"320ms\",\n timingFunction = \"cubic-bezier(0.22, 1, 0.36, 1)\",\n largeContentThreshold = 560,\n children,\n class: className,\n style,\n ...rest\n}: AccordionContentProps) => {\n const { isOpen } = useAccordionItem();\n const {\n allowRender,\n isAnimatingClose,\n isAnimatingOpen,\n outerRef,\n innerRef,\n handleTransitionEnd,\n } = useHeightDisclosureContent({\n open: isOpen,\n forceMount,\n duration,\n timingFunction,\n largeContentThreshold,\n });\n\n if (!allowRender) return null;\n\n const mergedStyle: JSX.CSSProperties = {\n ...(typeof style === \"object\" && style !== null && !Array.isArray(style)\n ? (style as JSX.CSSProperties)\n : {}),\n [\"--kamodui-accordion-duration\" as string]: duration,\n [\"--kamodui-accordion-timing-function\" as string]: timingFunction,\n };\n\n return (\n <div\n ref={outerRef}\n data-slot=\"accordion-content\"\n data-state={isOpen ? \"open\" : \"closed\"}\n onTransitionEnd={handleTransitionEnd}\n style={mergedStyle}\n class={cn(\n \"min-h-0 overflow-hidden\",\n (isAnimatingOpen || isAnimatingClose) && \"will-change-[height]\",\n )}\n aria-hidden={!isOpen && !isAnimatingClose}\n inert={!isOpen || undefined}\n {...rest}\n >\n <div\n ref={innerRef}\n data-slot=\"accordion-content-inner\"\n class={cn(\"min-h-0 min-w-0\", className)}\n >\n {children}\n </div>\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useAccordion } from \"./Accordion\";\nimport { useAccordionItem } from \"./AccordionItem\";\n\nexport type AccordionTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n hideIndicator?: boolean;\n indicator?: ComponentChildren;\n children?: ComponentChildren;\n};\n\nconst DefaultIndicator = () => (\n <svg viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\">\n <path\n d=\"M4 6l4 4 4-4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport const AccordionTrigger = ({\n hideIndicator = false,\n indicator,\n children,\n class: className,\n onClick,\n ...rest\n}: AccordionTriggerProps) => {\n const { toggleValue } = useAccordion();\n const { value, isOpen, disabled } = useAccordionItem();\n\n return (\n <button\n type=\"button\"\n data-slot=\"accordion-trigger\"\n aria-expanded={isOpen}\n disabled={disabled}\n data-state={isOpen ? \"open\" : \"closed\"}\n class={cn(\n \"flex w-full items-center justify-between gap-2 rounded-md py-4 text-left text-sm font-medium outline-none transition-colors focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50\",\n !isOpen && \"hover:bg-muted/40\",\n className,\n )}\n onClick={(event) => {\n if (disabled) return;\n toggleValue(value);\n onClick?.(event);\n }}\n {...rest}\n >\n <span data-slot=\"accordion-trigger-label\" class=\"min-w-0 flex-1 text-start\">\n {children}\n </span>\n {!hideIndicator ? (\n <span\n data-slot=\"accordion-trigger-indicator\"\n data-state={isOpen ? \"open\" : \"closed\"}\n class={cn(\n \"shrink-0 text-muted-foreground transition-transform duration-200\",\n isOpen && \"rotate-180\",\n )}\n >\n {indicator ?? <DefaultIndicator />}\n </span>\n ) : null}\n </button>\n );\n};\n","import { Accordion } from \"./Accordion\";\nimport { AccordionContent } from \"./AccordionContent\";\nimport { AccordionItem, useAccordionItem } from \"./AccordionItem\";\nimport { AccordionTrigger } from \"./AccordionTrigger\";\n\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger, useAccordionItem };\n\nexport default {\n Root: Accordion,\n Item: AccordionItem,\n Trigger: AccordionTrigger,\n Content: AccordionContent,\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-MS2ZNYCJ.js';
1
+ import { cn } from './chunk-XIANSPQO.js';
2
2
  import { jsx } from 'preact/jsx-runtime';
3
3
 
4
4
  var AspectRatio = ({
@@ -25,5 +25,5 @@ var AspectRatio = ({
25
25
  };
26
26
 
27
27
  export { AspectRatio };
28
- //# sourceMappingURL=chunk-NGKQBNZ5.js.map
29
- //# sourceMappingURL=chunk-NGKQBNZ5.js.map
28
+ //# sourceMappingURL=chunk-NJYJCMKY.js.map
29
+ //# sourceMappingURL=chunk-NJYJCMKY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/aspect-ratio/AspectRatio.tsx"],"names":[],"mappings":";;;AAUO,IAAM,cAAc,CAAC;AAAA,EAC1B,KAAA;AAAA,EACA,KAAA,EAAO,SAAA;AAAA,EACP,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAwB;AACtB,EAAA,MAAM,WAAA,GACJ,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,IAAA,IAAQ,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAA,GAAQ,MAAA;AAEjF,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,KAAA,EAAO,EAAA,CAAG,yCAAA,EAA2C,SAAS,CAAA;AAAA,MAC9D,KAAA,EAAO;AAAA,QACL,GAAG,WAAA;AAAA,QACH,WAAA,EAAa;AAAA,OACf;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ","file":"chunk-NGKQBNZ5.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type AspectRatioProps = JSX.HTMLAttributes<HTMLDivElement> & {\n /** Width ÷ height (e.g. `16 / 9`, `1`, `9 / 16`). Applied as CSS `aspect-ratio`. */\n ratio: number;\n children?: ComponentChildren;\n};\n\n/** Fixed-ratio box for media (CSS `aspect-ratio`; no Radix dependency). Children should use `h-full w-full object-cover` to fill. */\nexport const AspectRatio = ({\n ratio,\n class: className,\n style,\n children,\n ...rest\n}: AspectRatioProps) => {\n const styleObject =\n typeof style === \"object\" && style !== null && !Array.isArray(style) ? style : undefined;\n\n return (\n <div\n data-slot=\"aspect-ratio\"\n class={cn(\"relative w-full min-h-0 overflow-hidden\", className)}\n style={{\n ...styleObject,\n aspectRatio: ratio,\n }}\n {...rest}\n >\n {children}\n </div>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/components/aspect-ratio/AspectRatio.tsx"],"names":[],"mappings":";;;AAUO,IAAM,cAAc,CAAC;AAAA,EAC1B,KAAA;AAAA,EACA,KAAA,EAAO,SAAA;AAAA,EACP,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAwB;AACtB,EAAA,MAAM,WAAA,GACJ,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,IAAA,IAAQ,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAA,GAAQ,MAAA;AAEjF,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,KAAA,EAAO,EAAA,CAAG,yCAAA,EAA2C,SAAS,CAAA;AAAA,MAC9D,KAAA,EAAO;AAAA,QACL,GAAG,WAAA;AAAA,QACH,WAAA,EAAa;AAAA,OACf;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ","file":"chunk-NJYJCMKY.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type AspectRatioProps = JSX.HTMLAttributes<HTMLDivElement> & {\n /** Width ÷ height (e.g. `16 / 9`, `1`, `9 / 16`). Applied as CSS `aspect-ratio`. */\n ratio: number;\n children?: ComponentChildren;\n};\n\n/** Fixed-ratio box for media (CSS `aspect-ratio`; no Radix dependency). Children should use `h-full w-full object-cover` to fill. */\nexport const AspectRatio = ({\n ratio,\n class: className,\n style,\n children,\n ...rest\n}: AspectRatioProps) => {\n const styleObject =\n typeof style === \"object\" && style !== null && !Array.isArray(style) ? style : undefined;\n\n return (\n <div\n data-slot=\"aspect-ratio\"\n class={cn(\"relative w-full min-h-0 overflow-hidden\", className)}\n style={{\n ...styleObject,\n aspectRatio: ratio,\n }}\n {...rest}\n >\n {children}\n </div>\n );\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-MS2ZNYCJ.js';
1
+ import { cn } from './chunk-XIANSPQO.js';
2
2
  import { isValidElement, cloneElement } from 'preact';
3
3
  import { tv } from 'tailwind-variants';
4
4
  import { jsx } from 'preact/jsx-runtime';
@@ -63,28 +63,27 @@ var Badge = ({
63
63
  const resolvedSize = size ?? "md";
64
64
  const isHref = "href" in rest && typeof rest.href === "string";
65
65
  const isLink = Boolean(isHref);
66
- const resolvedClass = badge({
66
+ const variantClasses = badge({
67
67
  variant: resolvedVariant,
68
68
  size: resolvedSize,
69
- isLink,
70
- class: className
69
+ isLink
71
70
  });
71
+ const resolvedClass = cn(variantClasses, className);
72
72
  if (asChild) {
73
73
  if (!isValidElement(children)) {
74
74
  return null;
75
75
  }
76
76
  const childIsAnchor = children.type === "a";
77
77
  const childProps = children.props ?? {};
78
- const asChildClass = badge({
78
+ const asChildVariantClasses = badge({
79
79
  variant: resolvedVariant,
80
80
  size: resolvedSize,
81
- isLink: childIsAnchor,
82
- class: className
81
+ isLink: childIsAnchor
83
82
  });
84
83
  return cloneElement(children, {
85
84
  ...rest,
86
85
  ...childProps,
87
- class: cn(asChildClass, childProps.class, childProps.className),
86
+ class: cn(asChildVariantClasses, childProps.class, childProps.className, className),
88
87
  "data-slot": "badge",
89
88
  "data-variant": resolvedVariant
90
89
  });
@@ -118,5 +117,5 @@ var BadgeVariants = { badge };
118
117
  var badge_default = Badge;
119
118
 
120
119
  export { Badge, BadgeVariants, badge_default };
121
- //# sourceMappingURL=chunk-COPT6I2D.js.map
122
- //# sourceMappingURL=chunk-COPT6I2D.js.map
120
+ //# sourceMappingURL=chunk-NSEY5IC6.js.map
121
+ //# sourceMappingURL=chunk-NSEY5IC6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/badge/Badge.tsx","../src/components/badge/index.ts"],"names":[],"mappings":"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","file":"chunk-NSEY5IC6.js","sourcesContent":["import { type ComponentChildren, cloneElement, isValidElement, type JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\nexport const badge = tv({\n base: [\n \"group/badge inline-flex w-fit shrink-0 items-center justify-center gap-1.5 overflow-hidden rounded-full font-medium whitespace-nowrap\",\n \"[&+&]:ms-1.5\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0\",\n \"transition-all outline-none focus-visible:ring-3\",\n \"aria-invalid:border-destructive aria-invalid:focus-visible:ring-destructive/20\",\n \"dark:aria-invalid:border-destructive/50 dark:aria-invalid:focus-visible:ring-destructive/40\",\n \"has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5\",\n ],\n variants: {\n variant: {\n default: \"bg-foreground text-background focus-visible:ring-outline/50\",\n primary: \"bg-primary text-primary-foreground focus-visible:ring-primary/50\",\n secondary: \"bg-secondary text-secondary-foreground focus-visible:ring-secondary/50\",\n destructive: \"bg-destructive text-destructive-foreground focus-visible:ring-outline/50\",\n outline:\n \"border-border bg-background focus-visible:border-outline focus-visible:ring-outline/50 dark:bg-input/30 border\",\n ghost: \"bg-transparent text-foreground hover:bg-muted focus-visible:ring-outline/50\",\n link: \"h-auto rounded-none border-0 bg-transparent p-0 text-primary underline-offset-4 hover:underline focus-visible:ring-0\",\n info: \"bg-info text-info-foreground focus-visible:ring-info/50\",\n success: \"bg-success text-success-foreground focus-visible:ring-success/50\",\n warning: \"bg-warning text-warning-foreground focus-visible:ring-warning/50\",\n error: \"border border-error/60 bg-error/90 text-error-foreground focus-visible:ring-error/50\",\n },\n size: {\n xxs: \"px-2 py-0 text-[10px] leading-4 [&_svg:not([class*='size-'])]:size-2.5\",\n xs: \"px-2.5 py-0 text-xs leading-4 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"px-2.5 py-0.5 text-xs [&_svg:not([class*='size-'])]:size-3\",\n md: \"px-3 py-0.5 text-sm [&_svg:not([class*='size-'])]:size-4\",\n lg: \"px-4 py-1 text-base [&_svg:not([class*='size-'])]:size-4.5\",\n },\n isLink: { true: \"cursor-pointer\", false: \"\" },\n },\n compoundVariants: [\n { isLink: true, variant: \"default\", className: \"hover:bg-foreground/90\" },\n { isLink: true, variant: \"primary\", className: \"hover:bg-primary/90\" },\n { isLink: true, variant: \"secondary\", className: \"hover:bg-secondary/90\" },\n { isLink: true, variant: \"destructive\", className: \"hover:bg-destructive/90\" },\n { isLink: true, variant: \"outline\", className: \"hover:bg-muted\" },\n { isLink: true, variant: \"ghost\", className: \"hover:bg-muted\" },\n { isLink: true, variant: \"link\", className: \"hover:underline\" },\n { isLink: true, variant: \"info\", className: \"hover:bg-info/90\" },\n { isLink: true, variant: \"success\", className: \"hover:bg-success/90\" },\n { isLink: true, variant: \"warning\", className: \"hover:bg-warning/90\" },\n { isLink: true, variant: \"error\", className: \"hover:bg-error\" },\n ],\n defaultVariants: { variant: \"default\", size: \"md\", isLink: false },\n});\n\ntype BadgeCommon = VariantProps<typeof badge> & {\n class?: string;\n children?: ComponentChildren;\n asChild?: boolean;\n};\n\ntype BadgeAsSpan = BadgeCommon &\n JSX.HTMLAttributes<HTMLSpanElement> & {\n href?: undefined;\n };\n\ntype BadgeAsAnchor = BadgeCommon &\n JSX.AnchorHTMLAttributes<HTMLAnchorElement> & {\n href: string;\n };\n\nexport type BadgeProps = BadgeAsSpan | BadgeAsAnchor;\n\nexport const Badge = ({\n variant,\n size,\n class: className,\n children,\n asChild = false,\n ...rest\n}: BadgeProps) => {\n const resolvedVariant = variant ?? \"default\";\n const resolvedSize = size ?? \"md\";\n const isHref = \"href\" in rest && typeof rest.href === \"string\";\n const isLink = Boolean(isHref);\n\n const variantClasses = badge({\n variant: resolvedVariant,\n size: resolvedSize,\n isLink,\n });\n const resolvedClass = cn(variantClasses, className);\n\n if (asChild) {\n if (!isValidElement(children)) {\n return null;\n }\n\n const childIsAnchor = children.type === \"a\";\n const childProps = (children.props ?? {}) as JSX.HTMLAttributes<HTMLElement> & {\n class?: string;\n className?: string;\n };\n\n const asChildVariantClasses = badge({\n variant: resolvedVariant,\n size: resolvedSize,\n isLink: childIsAnchor,\n });\n\n return cloneElement(children, {\n ...(rest as JSX.HTMLAttributes<HTMLElement>),\n ...childProps,\n class: cn(asChildVariantClasses, childProps.class, childProps.className, className),\n \"data-slot\": \"badge\",\n \"data-variant\": resolvedVariant,\n });\n }\n\n if (isHref) {\n return (\n <a\n class={resolvedClass}\n data-slot=\"badge\"\n data-variant={resolvedVariant}\n {...(rest as JSX.AnchorHTMLAttributes<HTMLAnchorElement>)}\n >\n {children}\n </a>\n );\n }\n\n return (\n <span\n class={resolvedClass}\n data-slot=\"badge\"\n data-variant={resolvedVariant}\n {...(rest as JSX.HTMLAttributes<HTMLSpanElement>)}\n >\n {children}\n </span>\n );\n};\n","import { Badge, badge } from \"./Badge\";\n\nconst BadgeVariants = { badge };\n\nexport { Badge, BadgeVariants };\n\nexport default Badge;\n"]}
@@ -1,6 +1,6 @@
1
- import { Sheet, SheetContent, SheetFooter, SheetHeader } from './chunk-EMUPVA2F.js';
2
- import { DialogClose, DialogDescription, DialogTitle, DialogTrigger } from './chunk-HHLQYMPT.js';
3
- import { cn } from './chunk-MS2ZNYCJ.js';
1
+ import { Sheet, SheetContent, SheetFooter, SheetHeader } from './chunk-KHV3WV6T.js';
2
+ import { DialogClose, DialogDescription, DialogTitle, DialogTrigger } from './chunk-DUTKHOH3.js';
3
+ import { cn } from './chunk-XIANSPQO.js';
4
4
  import { createContext } from 'preact';
5
5
  import { useContext } from 'preact/hooks';
6
6
  import { jsx, jsxs } from 'preact/jsx-runtime';
@@ -72,5 +72,5 @@ var drawer_default = {
72
72
  };
73
73
 
74
74
  export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger, drawer_default };
75
- //# sourceMappingURL=chunk-UARVH66B.js.map
76
- //# sourceMappingURL=chunk-UARVH66B.js.map
75
+ //# sourceMappingURL=chunk-O4PHGLXF.js.map
76
+ //# sourceMappingURL=chunk-O4PHGLXF.js.map