@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
package/dist/lib/utils.js CHANGED
@@ -1,3 +1,3 @@
1
- export { cn } from '../chunk-MS2ZNYCJ.js';
1
+ export { cn } from '../chunk-XIANSPQO.js';
2
2
  //# sourceMappingURL=utils.js.map
3
3
  //# sourceMappingURL=utils.js.map
@@ -43,6 +43,6 @@ type NavigationMenuProps = JSX.HTMLAttributes<HTMLElement> & {
43
43
  declare const NavigationMenu: ({ class: className, children, delayDuration, skipDelayDuration, dir, ...rest }: NavigationMenuProps) => JSX.Element;
44
44
 
45
45
  /** Matches shadcn `navigationMenuTriggerStyle()` for use on `NavigationMenuLink` with `asChild`. */
46
- declare const navigationMenuTriggerStyle: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], unknown, unknown, undefined>>;
46
+ declare const navigationMenuTriggerStyle: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], {} | {}, undefined, tailwind_variants.TVReturnTypeLike<unknown, undefined>>;
47
47
 
48
48
  export { NavigationMenu as N, NavigationMenuContent as a, NavigationMenuItem as b, NavigationMenuLink as c, NavigationMenuList as d, NavigationMenuTrigger as e, type NavigationMenuProps as f, type NavigationMenuListProps as g, type NavigationMenuItemProps as h, type NavigationMenuLinkProps as i, type NavigationMenuTriggerProps as j, type NavigationMenuContentProps as k, navigationMenuTriggerStyle as n };
package/dist/theme.css CHANGED
@@ -31,6 +31,12 @@
31
31
  --radius-xl: calc(var(--radius) + 0.25rem);
32
32
  --radius-2xl: calc(var(--radius) + 0.5rem);
33
33
  --radius-3xl: calc(var(--radius) + 1rem);
34
+
35
+ --color-chart-1: var(--chart-1);
36
+ --color-chart-2: var(--chart-2);
37
+ --color-chart-3: var(--chart-3);
38
+ --color-chart-4: var(--chart-4);
39
+ --color-chart-5: var(--chart-5);
34
40
  }
35
41
 
36
42
  :root {
@@ -55,6 +61,11 @@
55
61
  --ring: var(--color-neutral-400);
56
62
  --outline: var(--color-neutral-400);
57
63
  --radius: 0.625rem;
64
+ --chart-1: var(--color-sky-500);
65
+ --chart-2: var(--color-emerald-500);
66
+ --chart-3: var(--color-violet-500);
67
+ --chart-4: var(--color-amber-500);
68
+ --chart-5: var(--color-rose-500);
58
69
  }
59
70
 
60
71
  .dark {
@@ -78,4 +89,9 @@
78
89
  --input: --alpha(var(--color-neutral-50) / 15%);
79
90
  --ring: var(--color-neutral-500);
80
91
  --outline: var(--color-neutral-500);
92
+ --chart-1: var(--color-sky-400);
93
+ --chart-2: var(--color-emerald-400);
94
+ --chart-3: var(--color-violet-400);
95
+ --chart-4: var(--color-amber-400);
96
+ --chart-5: var(--color-rose-400);
81
97
  }
@@ -0,0 +1,2 @@
1
+ export { cn } from './lib/utils.js';
2
+ export { ClassValue } from 'clsx';
package/dist/utils.js ADDED
@@ -0,0 +1,3 @@
1
+ export { cn } from './chunk-XIANSPQO.js';
2
+ //# sourceMappingURL=utils.js.map
3
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"utils.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kamod-ch/ui",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Lightweight Preact + Tailwind UI components: composable primitives you can customize, extend, and ship without a heavy runtime.",
5
5
  "keywords": [
6
6
  "components",
@@ -40,6 +40,10 @@
40
40
  "import": "./dist/index.js"
41
41
  },
42
42
  "./theme.css": "./dist/theme.css",
43
+ "./utils": {
44
+ "types": "./dist/utils.d.ts",
45
+ "import": "./dist/utils.js"
46
+ },
43
47
  "./lib/utils": {
44
48
  "types": "./dist/lib/utils.d.ts",
45
49
  "import": "./dist/lib/utils.js"
@@ -316,41 +320,30 @@
316
320
  "publishConfig": {
317
321
  "access": "public"
318
322
  },
319
- "scripts": {
320
- "prepublishOnly": "node ../../scripts/sync-package-readme.mjs",
321
- "build": "tsup && cp src/theme.css dist/theme.css",
322
- "test": "vitest run",
323
- "test:coverage": "vitest run --coverage",
324
- "test:watch": "vitest",
325
- "typecheck": "tsc --noEmit",
326
- "lint": "oxlint .",
327
- "publint": "publint",
328
- "attw": "attw --pack . --profile esm-only --exclude-entrypoints ./theme.css"
329
- },
330
323
  "dependencies": {
331
324
  "clsx": "^2.1.1",
332
325
  "embla-carousel": "^8.6.0",
333
326
  "embla-carousel-autoplay": "^8.6.0",
334
327
  "tailwind-merge": "^3.6.0",
335
- "tailwind-variants": "^3.2.2"
328
+ "tailwind-variants": "^3.3.1"
336
329
  },
337
330
  "devDependencies": {
338
- "@arethetypeswrong/cli": "^0.18.3",
339
- "@kamod-ch/themes": "workspace:*",
340
- "@preact/signals": "^2.9.1",
341
- "@testing-library/jest-dom": "^6.9.1",
331
+ "@arethetypeswrong/cli": "^0.18.5",
332
+ "@kamod-ch/themes": "0.2.1",
333
+ "@preact/signals": "^2.11.1",
334
+ "@testing-library/jest-dom": "^7.0.1",
342
335
  "@testing-library/preact": "^3.2.4",
343
- "@vitest/coverage-v8": "^4.1.8",
344
- "jsdom": "^29.1.1",
345
- "publint": "^0.3.21",
346
- "tailwindcss": "^4.3.0",
336
+ "@vitest/coverage-v8": "^4.1.11",
337
+ "jsdom": "^30.0.1",
338
+ "publint": "^0.3.24",
339
+ "tailwindcss": "^4.3.3",
347
340
  "tsup": "^8.5.1",
348
- "vitest": "^4.1.8"
341
+ "vitest": "^4.1.11"
349
342
  },
350
343
  "peerDependencies": {
351
344
  "@kamod-ch/themes": "^0.2.1",
352
- "@preact/signals": "^2.9.1",
353
- "preact": "^10.29.2"
345
+ "@preact/signals": "^2.11.1",
346
+ "preact": "^10.29.8"
354
347
  },
355
348
  "peerDependenciesMeta": {
356
349
  "@preact/signals": {
@@ -359,5 +352,15 @@
359
352
  },
360
353
  "engines": {
361
354
  "node": ">=20"
355
+ },
356
+ "scripts": {
357
+ "build": "tsup && cp src/theme.css dist/theme.css",
358
+ "test": "vitest run",
359
+ "test:coverage": "vitest run --coverage",
360
+ "test:watch": "vitest",
361
+ "typecheck": "tsc --noEmit",
362
+ "lint": "oxlint .",
363
+ "publint": "publint",
364
+ "attw": "attw --pack . --profile esm-only --exclude-entrypoints ./theme.css"
362
365
  }
363
- }
366
+ }
@@ -1,84 +0,0 @@
1
- import * as preact from 'preact';
2
- import { ComponentChildren, JSX } from 'preact';
3
- import * as tailwind_variants from 'tailwind-variants';
4
- import { VariantProps } from 'tailwind-variants';
5
-
6
- declare const button: tailwind_variants.TVReturnType<{
7
- variant: {
8
- default: string;
9
- secondary: string;
10
- inverse: string;
11
- outline: string;
12
- ghost: string;
13
- destructive: string;
14
- link: string;
15
- };
16
- size: {
17
- xxs: string;
18
- xs: string;
19
- sm: string;
20
- default: string;
21
- lg: string;
22
- icon: string;
23
- "icon-xs": string;
24
- "icon-sm": string;
25
- "icon-lg": string;
26
- };
27
- }, undefined, string[], {
28
- variant: {
29
- default: string;
30
- secondary: string;
31
- inverse: string;
32
- outline: string;
33
- ghost: string;
34
- destructive: string;
35
- link: string;
36
- };
37
- size: {
38
- xxs: string;
39
- xs: string;
40
- sm: string;
41
- default: string;
42
- lg: string;
43
- icon: string;
44
- "icon-xs": string;
45
- "icon-sm": string;
46
- "icon-lg": string;
47
- };
48
- }, undefined, tailwind_variants.TVReturnType<{
49
- variant: {
50
- default: string;
51
- secondary: string;
52
- inverse: string;
53
- outline: string;
54
- ghost: string;
55
- destructive: string;
56
- link: string;
57
- };
58
- size: {
59
- xxs: string;
60
- xs: string;
61
- sm: string;
62
- default: string;
63
- lg: string;
64
- icon: string;
65
- "icon-xs": string;
66
- "icon-sm": string;
67
- "icon-lg": string;
68
- };
69
- }, undefined, string[], unknown, unknown, undefined>>;
70
- type CommonProps = VariantProps<typeof button> & {
71
- class?: string;
72
- asChild?: boolean;
73
- children?: ComponentChildren;
74
- };
75
- type ButtonAsButton = CommonProps & JSX.ButtonHTMLAttributes<HTMLButtonElement> & {
76
- href?: undefined;
77
- };
78
- type ButtonAsAnchor = CommonProps & JSX.AnchorHTMLAttributes<HTMLAnchorElement> & {
79
- href: string;
80
- };
81
- type ButtonProps = ButtonAsButton | ButtonAsAnchor;
82
- declare const Button: ({ variant, size, asChild, class: className, children, ...rest }: ButtonProps) => JSX.Element | preact.VNode<{}> | null;
83
-
84
- export { Button as B, button as b };
@@ -1,49 +0,0 @@
1
- import * as tailwind_variants from 'tailwind-variants';
2
- import { VariantProps } from 'tailwind-variants';
3
- import { JSX, ComponentChildren } from 'preact';
4
-
5
- declare const toggle: tailwind_variants.TVReturnType<{
6
- variant: {
7
- default: string;
8
- outline: string;
9
- };
10
- size: {
11
- sm: string;
12
- default: string;
13
- lg: string;
14
- icon: string;
15
- };
16
- }, undefined, string[], {
17
- variant: {
18
- default: string;
19
- outline: string;
20
- };
21
- size: {
22
- sm: string;
23
- default: string;
24
- lg: string;
25
- icon: string;
26
- };
27
- }, undefined, tailwind_variants.TVReturnType<{
28
- variant: {
29
- default: string;
30
- outline: string;
31
- };
32
- size: {
33
- sm: string;
34
- default: string;
35
- lg: string;
36
- icon: string;
37
- };
38
- }, undefined, string[], unknown, unknown, undefined>>;
39
- type ToggleVariants = VariantProps<typeof toggle>;
40
- type ToggleProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, "class"> & ToggleVariants & {
41
- class?: string;
42
- defaultPressed?: boolean;
43
- pressed?: boolean;
44
- onPressedChange?: (next: boolean) => void;
45
- children?: ComponentChildren;
46
- };
47
- declare const Toggle: ({ defaultPressed, pressed, onPressedChange, variant, size, class: className, children, onClick, ...rest }: ToggleProps) => JSX.Element;
48
-
49
- export { Toggle as T };
@@ -1,64 +0,0 @@
1
- import * as tailwind_variants from 'tailwind-variants';
2
- import { VariantProps } from 'tailwind-variants';
3
- import { JSX, ComponentChildren } from 'preact';
4
-
5
- declare const typography: tailwind_variants.TVReturnType<{
6
- variant: {
7
- h1: string;
8
- h2: string;
9
- h3: string;
10
- h4: string;
11
- p: string;
12
- blockquote: string;
13
- code: string;
14
- inlineCode: string;
15
- list: string;
16
- table: string;
17
- lead: string;
18
- large: string;
19
- muted: string;
20
- small: string;
21
- };
22
- }, undefined, "text-foreground", {
23
- variant: {
24
- h1: string;
25
- h2: string;
26
- h3: string;
27
- h4: string;
28
- p: string;
29
- blockquote: string;
30
- code: string;
31
- inlineCode: string;
32
- list: string;
33
- table: string;
34
- lead: string;
35
- large: string;
36
- muted: string;
37
- small: string;
38
- };
39
- }, undefined, tailwind_variants.TVReturnType<{
40
- variant: {
41
- h1: string;
42
- h2: string;
43
- h3: string;
44
- h4: string;
45
- p: string;
46
- blockquote: string;
47
- code: string;
48
- inlineCode: string;
49
- list: string;
50
- table: string;
51
- lead: string;
52
- large: string;
53
- muted: string;
54
- small: string;
55
- };
56
- }, undefined, "text-foreground", unknown, unknown, undefined>>;
57
- type TypographyVariants = VariantProps<typeof typography>;
58
- type TypographyProps = JSX.HTMLAttributes<HTMLElementTagNameMap[keyof HTMLElementTagNameMap]> & TypographyVariants & {
59
- as?: keyof HTMLElementTagNameMap;
60
- children?: ComponentChildren;
61
- };
62
- declare const Typography: ({ as, variant, class: className, children, ...rest }: TypographyProps) => JSX.Element;
63
-
64
- export { Typography as T, type TypographyVariants as a, typography as t };
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/sidebar/use-mobile.ts","../src/components/sidebar/SidebarProvider.tsx","../src/components/sidebar/Sidebar.tsx","../src/components/sidebar/SidebarContent.tsx","../src/components/sidebar/SidebarFooter.tsx","../src/components/sidebar/slot.tsx","../src/components/sidebar/SidebarGroup.tsx","../src/components/sidebar/SidebarHeader.tsx","../src/components/sidebar/SidebarInset.tsx","../src/components/sidebar/SidebarMenu.tsx","../src/components/sidebar/SidebarRail.tsx","../src/components/sidebar/PanelLeftIcon.tsx","../src/components/sidebar/SidebarTrigger.tsx","../src/components/sidebar/index.ts"],"names":["useState","useEffect","jsx","jsxs","useMemo"],"mappings":"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","file":"chunk-24QD2FTA.js","sourcesContent":["import { useEffect, useState } from \"preact/hooks\";\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport const useIsMobile = () => {\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener(\"change\", onChange);\n onChange();\n return () => mql.removeEventListener(\"change\", onChange);\n }, []);\n\n return isMobile;\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useCallback, useContext, useEffect, useMemo, useState } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { TooltipProvider } from \"../tooltip\";\nimport { useIsMobile } from \"./use-mobile\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nexport const SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\nexport type SidebarContextValue = {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean | ((prev: boolean) => boolean)) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean | ((prev: boolean) => boolean)) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = createContext<SidebarContextValue | null>(null);\n\nexport const useSidebar = () => {\n const context = useContext(SidebarContext);\n if (!context) throw new Error(\"Sidebar components must be used within SidebarProvider\");\n return context;\n};\n\nexport type SidebarProviderProps = JSX.HTMLAttributes<HTMLDivElement> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: ComponentChildren;\n};\n\nexport const SidebarProvider = ({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n class: className,\n style,\n children,\n ...rest\n}: SidebarProviderProps) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = useState(false);\n const [_open, _setOpen] = useState(defaultOpen);\n const open = openProp ?? _open;\n\n const setOpen = useCallback(\n (value: boolean | ((prev: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n if (typeof document !== \"undefined\") {\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n }\n },\n [setOpenProp, open],\n );\n\n const toggleSidebar = useCallback(() => {\n if (isMobile) {\n setOpenMobile((prev) => !prev);\n } else {\n setOpen((prev) => !prev);\n }\n }, [isMobile, setOpen]);\n\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = useMemo<SidebarContextValue>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={{\n [\"--sidebar-width\" as string]: SIDEBAR_WIDTH,\n [\"--sidebar-width-icon\" as string]: SIDEBAR_WIDTH_ICON,\n ...(typeof style === \"object\" && style !== null ? style : {}),\n }}\n class={cn(\n \"group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar\",\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from \"../sheet\";\nimport { SIDEBAR_WIDTH_MOBILE, useSidebar } from \"./SidebarProvider\";\n\nexport type SidebarProps = JSX.HTMLAttributes<HTMLDivElement> & {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n children?: ComponentChildren;\n};\n\nexport const Sidebar = ({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n class: className,\n children,\n ...rest\n}: SidebarProps) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <div\n data-slot=\"sidebar\"\n class={cn(\n \"flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground\",\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n class={cn(\n \"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\",\n className,\n )}\n style={{ [\"--sidebar-width\" as string]: SIDEBAR_WIDTH_MOBILE }}\n side={side}\n >\n <SheetHeader class=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div class=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n class=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n <div\n data-slot=\"sidebar-gap\"\n class={cn(\n \"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n class={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className,\n )}\n {...rest}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n class=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type SidebarContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarContent = ({ class: className, children, ...rest }: SidebarContentProps) => (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n class={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type SidebarFooterProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarFooter = ({ class: className, children, ...rest }: SidebarFooterProps) => (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n class={cn(\"flex flex-col gap-2 p-2\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n","import { type ComponentChildren, cloneElement, isValidElement, type VNode } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\n/** Merge props onto a single element child (shadcn Slot / asChild). */\nexport const Slot = (props: Record<string, unknown> & { children?: ComponentChildren }) => {\n const { children, class: className, ...rest } = props;\n if (!isValidElement(children)) return null;\n const child = children as VNode<Record<string, unknown>>;\n const childProps = (child.props ?? {}) as Record<string, unknown>;\n return cloneElement(child, {\n ...rest,\n ...childProps,\n class: cn(\n className as string | undefined,\n childProps.class as string | undefined,\n childProps.className as string | undefined,\n ),\n });\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { Input, type InputProps } from \"../input/Input\";\nimport { Separator, type SeparatorProps } from \"../separator/Separator\";\nimport { Slot } from \"./slot\";\n\nexport type SidebarInputProps = InputProps;\n\nexport const SidebarInput = ({ class: className, ...rest }: SidebarInputProps) => (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n class={cn(\"h-8 w-full bg-background shadow-none\", className)}\n {...rest}\n />\n);\n\nexport type SidebarSeparatorProps = SeparatorProps;\n\nexport const SidebarSeparator = ({ class: className, ...rest }: SidebarSeparatorProps) => (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n class={cn(\"mx-2 w-auto bg-sidebar-border\", className)}\n {...rest}\n />\n);\n\nexport type SidebarGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarGroup = ({ class: className, children, ...rest }: SidebarGroupProps) => (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n class={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n\nexport type SidebarGroupLabelProps = JSX.HTMLAttributes<HTMLDivElement> & {\n asChild?: boolean;\n children?: ComponentChildren;\n};\n\nexport const SidebarGroupLabel = ({\n class: className,\n asChild = false,\n children,\n ...rest\n}: SidebarGroupLabelProps) => {\n const classes = cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className as string | undefined,\n );\n if (asChild) {\n return (\n <Slot\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n class={classes}\n {...(rest as Record<string, unknown>)}\n >\n {children}\n </Slot>\n );\n }\n return (\n <div data-slot=\"sidebar-group-label\" data-sidebar=\"group-label\" class={classes} {...rest}>\n {children}\n </div>\n );\n};\n\nexport type SidebarGroupActionProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n asChild?: boolean;\n children?: ComponentChildren;\n};\n\nexport const SidebarGroupAction = ({\n class: className,\n asChild = false,\n children,\n ...rest\n}: SidebarGroupActionProps) => {\n const classes = cn(\n \"absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className as string | undefined,\n );\n if (asChild) {\n return (\n <Slot\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n class={classes}\n {...(rest as Record<string, unknown>)}\n >\n {children}\n </Slot>\n );\n }\n return (\n <button\n type=\"button\"\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n class={classes}\n {...rest}\n >\n {children}\n </button>\n );\n};\n\nexport type SidebarGroupContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarGroupContent = ({\n class: className,\n children,\n ...rest\n}: SidebarGroupContentProps) => (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n class={cn(\"w-full text-sm\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type SidebarHeaderProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarHeader = ({ class: className, children, ...rest }: SidebarHeaderProps) => (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n class={cn(\"flex flex-col gap-2 p-2\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type SidebarInsetProps = JSX.HTMLAttributes<HTMLElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarInset = ({ class: className, children, ...rest }: SidebarInsetProps) => (\n <main\n data-slot=\"sidebar-inset\"\n class={cn(\n \"relative flex w-full flex-1 flex-col bg-background\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n className,\n )}\n {...rest}\n >\n {children}\n </main>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useMemo } from \"preact/hooks\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\nimport { Skeleton } from \"../skeleton\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../tooltip\";\nimport { useSidebar } from \"./SidebarProvider\";\nimport { Slot } from \"./slot\";\n\nexport type SidebarMenuProps = JSX.HTMLAttributes<HTMLUListElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarMenu = ({ class: className, children, ...rest }: SidebarMenuProps) => (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n class={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...rest}\n >\n {children}\n </ul>\n);\n\nexport type SidebarMenuItemProps = JSX.HTMLAttributes<HTMLLIElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarMenuItem = ({ class: className, children, ...rest }: SidebarMenuItemProps) => (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n class={cn(\"group/menu-item relative\", className)}\n {...rest}\n >\n {children}\n </li>\n);\n\nexport const sidebarMenuButton = tv({\n base: [\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding]\",\n \"group-has-data-[sidebar=menu-action]/menu-item:pr-8\",\n \"group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2!\",\n \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n \"focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground\",\n \"disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground\",\n \"data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground\",\n \"[&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n ],\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n});\n\nexport type SidebarMenuButtonProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> &\n VariantProps<typeof sidebarMenuButton> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | JSX.HTMLAttributes<HTMLDivElement>;\n children?: ComponentChildren;\n };\n\nexport const SidebarMenuButton = ({\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n class: className,\n children,\n ...rest\n}: SidebarMenuButtonProps) => {\n const { isMobile, state } = useSidebar();\n const classes = sidebarMenuButton({\n variant,\n size,\n class: className as string | undefined,\n });\n\n const button = asChild ? (\n <Slot\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n class={classes}\n {...(rest as Record<string, unknown>)}\n >\n {children}\n </Slot>\n ) : (\n <button\n type=\"button\"\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n class={classes}\n {...rest}\n >\n {children}\n </button>\n );\n\n if (!tooltip) return button;\n\n const tooltipProps =\n typeof tooltip === \"string\"\n ? { children: tooltip }\n : (tooltip as JSX.HTMLAttributes<HTMLDivElement>);\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltipProps}\n />\n </Tooltip>\n );\n};\n\nexport type SidebarMenuActionProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n asChild?: boolean;\n showOnHover?: boolean;\n children?: ComponentChildren;\n};\n\nexport const SidebarMenuAction = ({\n class: className,\n asChild = false,\n showOnHover = false,\n children,\n ...rest\n}: SidebarMenuActionProps) => {\n const classes = cn(\n \"absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform peer-hover/menu-button:text-sidebar-accent-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground data-[state=open]:opacity-100 md:opacity-0\",\n className as string | undefined,\n );\n if (asChild) {\n return (\n <Slot\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n class={classes}\n {...(rest as Record<string, unknown>)}\n >\n {children}\n </Slot>\n );\n }\n return (\n <button\n type=\"button\"\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n class={classes}\n {...rest}\n >\n {children}\n </button>\n );\n};\n\nexport type SidebarMenuBadgeProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarMenuBadge = ({\n class: className,\n children,\n ...rest\n}: SidebarMenuBadgeProps) => (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n class={cn(\n \"pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n);\n\nexport type SidebarMenuSkeletonProps = JSX.HTMLAttributes<HTMLDivElement> & {\n showIcon?: boolean;\n};\n\nexport const SidebarMenuSkeleton = ({\n class: className,\n showIcon = false,\n ...rest\n}: SidebarMenuSkeletonProps) => {\n const width = useMemo(() => `${Math.floor(Math.random() * 40) + 50}%`, []);\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n class={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...rest}\n >\n {showIcon ? <Skeleton class=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" /> : null}\n <Skeleton\n class=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={{ [\"--skeleton-width\" as string]: width }}\n />\n </div>\n );\n};\n\nexport type SidebarMenuSubProps = JSX.HTMLAttributes<HTMLUListElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarMenuSub = ({ class: className, children, ...rest }: SidebarMenuSubProps) => (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n class={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...rest}\n >\n {children}\n </ul>\n);\n\nexport type SidebarMenuSubItemProps = JSX.HTMLAttributes<HTMLLIElement> & {\n children?: ComponentChildren;\n};\n\nexport const SidebarMenuSubItem = ({\n class: className,\n children,\n ...rest\n}: SidebarMenuSubItemProps) => (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n class={cn(\"group/menu-sub-item relative\", className)}\n {...rest}\n >\n {children}\n </li>\n);\n\nexport type SidebarMenuSubButtonProps = JSX.AnchorHTMLAttributes<HTMLAnchorElement> & {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n children?: ComponentChildren;\n};\n\nexport const SidebarMenuSubButton = ({\n asChild = false,\n size = \"md\",\n isActive = false,\n class: className,\n children,\n ...rest\n}: SidebarMenuSubButtonProps) => {\n const classes = cn(\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className as string | undefined,\n );\n if (asChild) {\n return (\n <Slot\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n class={classes}\n {...(rest as Record<string, unknown>)}\n >\n {children}\n </Slot>\n );\n }\n return (\n <a\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n class={classes}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useSidebar } from \"./SidebarProvider\";\n\nexport type SidebarRailProps = JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const SidebarRail = ({ class: className, ...rest }: SidebarRailProps) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n type=\"button\"\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n class={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className,\n )}\n {...rest}\n />\n );\n};\n","import type { JSX } from \"preact\";\n\n/** Inline panel icon so @kamod-ch/ui stays free of lucide as a hard dependency. */\nexport const PanelLeftIcon = (props: JSX.SVGAttributes<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M9 3v18\" />\n </svg>\n);\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../button/Button\";\nimport { PanelLeftIcon } from \"./PanelLeftIcon\";\nimport { useSidebar } from \"./SidebarProvider\";\n\nexport type SidebarTriggerProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"size\"> & {\n class?: string;\n};\n\nexport const SidebarTrigger = ({ class: className, onClick, ...rest }: SidebarTriggerProps) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n class={cn(\"size-7\", className)}\n aria-label=\"Toggle Sidebar\"\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...rest}\n >\n <PanelLeftIcon />\n <span class=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n};\n","import { Sidebar } from \"./Sidebar\";\nimport { SidebarContent } from \"./SidebarContent\";\nimport { SidebarFooter } from \"./SidebarFooter\";\nimport {\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarInput,\n SidebarSeparator,\n} from \"./SidebarGroup\";\nimport { SidebarHeader } from \"./SidebarHeader\";\nimport { SidebarInset } from \"./SidebarInset\";\nimport {\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from \"./SidebarMenu\";\nimport { SidebarProvider, useSidebar } from \"./SidebarProvider\";\nimport { SidebarRail } from \"./SidebarRail\";\nimport { SidebarTrigger } from \"./SidebarTrigger\";\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n\nexport default {\n Provider: SidebarProvider,\n Root: Sidebar,\n Trigger: SidebarTrigger,\n Header: SidebarHeader,\n Content: SidebarContent,\n Footer: SidebarFooter,\n Inset: SidebarInset,\n Rail: SidebarRail,\n Group: SidebarGroup,\n Menu: SidebarMenu,\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/theme-toggle/ThemeToggle.tsx","../src/components/theme-toggle/index.ts"],"names":[],"mappings":"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","file":"chunk-262EK2XT.js","sourcesContent":["import { resolvedColorSchemeSignal, setColorScheme, syncThemeFromStorage } from \"@kamod-ch/themes\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useEffect } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../button\";\n\nexport type ThemeToggleProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"class\"> & {\n class?: string;\n children?: ComponentChildren;\n};\n\nconst SunIcon = ({ class: className }: { class?: string }) => (\n <svg\n class={cn(\"size-4 shrink-0\", className)}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\n <path d=\"M12 2v2\" />\n <path d=\"M12 20v2\" />\n <path d=\"m4.93 4.93 1.41 1.41\" />\n <path d=\"m17.66 17.66 1.41 1.41\" />\n <path d=\"M2 12h2\" />\n <path d=\"M20 12h2\" />\n <path d=\"m6.34 17.66-1.41 1.41\" />\n <path d=\"m19.07 4.93-1.41 1.41\" />\n </svg>\n);\n\nconst MoonIcon = ({ class: className }: { class?: string }) => (\n <svg\n class={cn(\"size-4 shrink-0\", className)}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z\" />\n </svg>\n);\n\nexport const ThemeToggle = ({ children, onClick, ...rest }: ThemeToggleProps) => {\n useEffect(() => {\n syncThemeFromStorage();\n }, []);\n\n const darkMode = resolvedColorSchemeSignal.value === \"dark\";\n\n return (\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon\"\n data-slot=\"theme-toggle\"\n data-state={darkMode ? \"dark\" : \"light\"}\n aria-label={children == null ? (darkMode ? \"Light mode\" : \"Dark mode\") : undefined}\n onClick={(event) => {\n const next = resolvedColorSchemeSignal.value === \"dark\" ? \"light\" : \"dark\";\n setColorScheme(next);\n onClick?.(event);\n }}\n {...rest}\n >\n {children ?? (darkMode ? <SunIcon /> : <MoonIcon />)}\n </Button>\n );\n};\n","import { ThemeToggle } from \"./ThemeToggle\";\n\nexport { ThemeToggle };\n\nexport default ThemeToggle;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/dropdown/Dropdown.tsx","../src/components/dropdown/DropdownCheckboxItem.tsx","../src/components/dropdown/DropdownContent.tsx","../src/components/dropdown/DropdownGroup.tsx","../src/components/dropdown/DropdownItem.tsx","../src/components/dropdown/DropdownLabel.tsx","../src/components/dropdown/DropdownPortal.tsx","../src/components/dropdown/dropdown-radio-context.tsx","../src/components/dropdown/DropdownRadioGroup.tsx","../src/components/dropdown/DropdownRadioItem.tsx","../src/components/dropdown/DropdownSeparator.tsx","../src/components/dropdown/DropdownShortcut.tsx","../src/components/dropdown/dropdown-sub-context.tsx","../src/components/dropdown/DropdownSub.tsx","../src/components/dropdown/DropdownSubContent.tsx","../src/components/dropdown/DropdownSubTrigger.tsx","../src/components/dropdown/DropdownTrigger.tsx","../src/components/dropdown/index.ts"],"names":["useMemo","signal","useEffect","jsx","tv","createContext","useContext","useRef","jsxs"],"mappings":";;;;;;;;AAiBA,IAAM,eAAA,GAAkB,cAA2C,IAAI,CAAA;AACvE,IAAM,cAAA,GAAiB,gBAAgB,gBAAgB,CAAA;AAEhD,IAAM,cAAc,MAAM;AAC/B,EAAA,MAAM,OAAA,GAAU,WAAW,eAAe,CAAA;AAC1C,EAAA,IAAI,CAAC,OAAA,EAAS,MAAM,IAAI,MAAM,qDAAqD,CAAA;AACnF,EAAA,OAAO,OAAA;AACT,CAAA;AAEA,IAAM,eAAe,EAAA,CAAG;AAAA,EACtB,IAAA,EAAM;AACR,CAAC,CAAA;AAOM,IAAM,WAAW,CAAC;AAAA,EACvB,WAAA,GAAc,KAAA;AAAA,EACd,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAqB;AACnB,EAAA,MAAM,OAAO,OAAA,CAAQ,MAAM,OAAO,WAAW,CAAA,EAAG,EAAE,CAAA;AAClD,EAAA,MAAM,OAAA,GAAU,OAA8B,IAAI,CAAA;AAClD,EAAA,MAAM,UAAA,GAAa,OAA2B,IAAI,CAAA;AAClD,EAAA,MAAM,UAAA,GAAa,OAA8B,IAAI,CAAA;AACrD,EAAA,MAAM,aAAa,OAAA,CAAQ,MAAM,cAAA,EAAe,EAAG,EAAE,CAAA;AAErD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,QAAQ,sBAAA,CAAuB;AAAA,MACnC,IAAA,EAAM,MAAM,OAAA,CAAQ,OAAA;AAAA,MACpB,IAAA,EAAM,MAAM,IAAA,CAAK,KAAA;AAAA,MACjB,WAAW,MAAM;AACf,QAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AAAA,MACf;AAAA,KACD,CAAA;AACD,IAAA,OAAO,MAAM,MAAM,OAAA,EAAQ;AAAA,EAC7B,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,uBACE,GAAA;AAAA,IAAC,eAAA,CAAgB,QAAA;AAAA,IAAhB;AAAA,MACC,KAAA,EAAO;AAAA,QACL,IAAA;AAAA,QACA,OAAA,EAAS,CAAC,IAAA,KAAS;AACjB,UAAA,IAAA,CAAK,KAAA,GAAQ,IAAA;AAAA,QACf,CAAA;AAAA,QACA,SAAA,EAAW,GAAG,UAAU,CAAA,QAAA,CAAA;AAAA,QACxB,SAAA,EAAW,GAAG,UAAU,CAAA,QAAA,CAAA;AAAA,QACxB,OAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,OAAA;AAAA,UACL,KAAA,EAAO,YAAA,CAAa,EAAE,KAAA,EAAO,WAAiC,CAAA;AAAA,UAC9D,WAAA,EAAU,UAAA;AAAA,UACV,YAAA,EAAY,IAAA,CAAK,KAAA,GAAQ,MAAA,GAAS,QAAA;AAAA,UACjC,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA;AACH;AAAA,GACF;AAEJ;ACpEO,IAAM,uBAAuB,CAAC;AAAA,EACnC,OAAA,EAAS,WAAA;AAAA,EACT,cAAA,GAAiB,KAAA;AAAA,EACjB,eAAA;AAAA,EACA,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAiC;AAC/B,EAAA,MAAM,WAAWA,OAAAA,CAAQ,MAAMC,OAAO,cAAc,CAAA,EAAG,EAAE,CAAA;AACzD,EAAA,MAAM,eAAe,WAAA,KAAgB,MAAA;AAErC,EAAAC,UAAU,MAAM;AACd,IAAA,IAAI,gBAAgB,MAAA,EAAW;AAC7B,MAAA,QAAA,CAAS,KAAA,GAAQ,WAAA;AAAA,IACnB;AAAA,EACF,CAAA,EAAG,CAAC,WAAA,EAAa,QAAQ,CAAC,CAAA;AAE1B,EAAA,MAAM,OAAA,GAAU,YAAA,GAAe,OAAA,CAAQ,WAAW,IAAI,QAAA,CAAS,KAAA;AAE/D,EAAA,uBACE,IAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,IAAA,EAAK,kBAAA;AAAA,MACL,WAAA,EAAU,wBAAA;AAAA,MACV,cAAA,EAAc,OAAA;AAAA,MACd,KAAA,EAAO,EAAA;AAAA,QACL,sJAAA;AAAA,QACA,2FAAA;AAAA,QACA,gEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,QAAA,OAAA,GAAU,KAAK,CAAA;AACf,QAAA,IAAI,MAAM,gBAAA,EAAkB;AAC5B,QAAA,MAAM,OAAO,CAAC,OAAA;AACd,QAAA,IAAI,CAAC,YAAA,EAAc;AACjB,UAAA,QAAA,CAAS,KAAA,GAAQ,IAAA;AAAA,QACnB;AACA,QAAA,eAAA,GAAkB,IAAI,CAAA;AAAA,MACxB,CAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAC,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,gFAAA;AAAA,YACN,aAAA,EAAW,IAAA;AAAA,YAEV,oCACCA,GAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,KAAA,EAAM,4BAAA;AAAA,gBACN,KAAA,EAAM,IAAA;AAAA,gBACN,MAAA,EAAO,IAAA;AAAA,gBACP,OAAA,EAAQ,WAAA;AAAA,gBACR,IAAA,EAAK,MAAA;AAAA,gBACL,MAAA,EAAO,cAAA;AAAA,gBACP,cAAA,EAAa,GAAA;AAAA,gBACb,gBAAA,EAAe,OAAA;AAAA,gBACf,iBAAA,EAAgB,OAAA;AAAA,gBAChB,KAAA,EAAM,UAAA;AAAA,gBAEN,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,iBAAA,EAAkB;AAAA;AAAA,aAC5B,GACE;AAAA;AAAA,SACN;AAAA,QACC;AAAA;AAAA;AAAA,GACH;AAEJ;AC9EA,IAAM,cAAA,GAAiB;AAAA,EACrB,GAAA,EAAK,aAAA;AAAA,EACL,MAAA,EAAQ,UAAA;AAAA,EACR,IAAA,EAAM,YAAA;AAAA,EACN,KAAA,EAAO;AACT,CAAA;AAEA,IAAM,WAAA,GAAc;AAAA,EAClB,QAAA,EAAU;AAAA,IACR,KAAA,EAAO,QAAA;AAAA,IACP,MAAA,EAAQ,2BAAA;AAAA,IACR,GAAA,EAAK;AAAA,GACP;AAAA,EACA,UAAA,EAAY;AAAA,IACV,KAAA,EAAO,OAAA;AAAA,IACP,MAAA,EAAQ,0BAAA;AAAA,IACR,GAAA,EAAK;AAAA;AAET,CAAA;AAEO,IAAM,kBAAkBC,EAAAA,CAAG;AAAA,EAChC,IAAA,EAAM;AAAA;AAAA,IAEJ,4LAAA;AAAA,IACA,yBAAA;AAAA,IACA,sHAAA;AAAA,IACA,wKAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,MAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAK,wBAAA;AAAA,MACL,KAAA,EAAO,sBAAA;AAAA,MACP,IAAA,EAAM;AAAA;AACR,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAWM,IAAM,kBAAkB,CAAC;AAAA,EAC9B,UAAA,GAAa,KAAA;AAAA,EACb,IAAA,GAAO,QAAA;AAAA,EACP,KAAA,GAAQ,OAAA;AAAA,EACR,UAAA,GAAa,CAAA;AAAA,EACb,KAAA,EAAO,SAAA;AAAA,EACP,KAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAA4B;AAC1B,EAAA,MAAM,WAAW,WAAA,EAAY;AAC7B,EAAA,IAAI,CAAC,QAAA,CAAS,IAAA,CAAK,KAAA,IAAS,CAAC,YAAY,OAAO,IAAA;AAEhD,EAAA,MAAM,UAAA,GAAa,IAAA,KAAS,KAAA,IAAS,IAAA,KAAS,QAAA;AAC9C,EAAA,MAAM,UAAA,GAAa,aAAa,WAAA,CAAY,QAAA,CAAS,KAAK,CAAA,GAAI,WAAA,CAAY,WAAW,KAAK,CAAA;AAC1F,EAAA,MAAM,cAAc,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,OAAO,KAAA,GAAQ,MAAA;AAC1E,EAAA,MAAM,WAAA,GACJ,IAAA,KAAS,QAAA,GACL,EAAE,SAAA,EAAW,CAAA,EAAG,UAAU,CAAA,EAAA,CAAA,EAAK,GAC/B,IAAA,KAAS,KAAA,GACP,EAAE,YAAA,EAAc,CAAA,EAAG,UAAU,CAAA,EAAA,CAAA,EAAK,GAClC,IAAA,KAAS,OAAA,GACP,EAAE,UAAA,EAAY,CAAA,EAAG,UAAU,CAAA,EAAA,CAAA,EAAK,GAChC,EAAE,WAAA,EAAa,CAAA,EAAG,UAAU,CAAA,EAAA,CAAA,EAAK;AAE3C,EAAA,uBACED,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,CAAC,IAAA,KAAS;AACb,QAAA,QAAA,CAAS,WAAW,OAAA,GAAU,IAAA;AAAA,MAChC,CAAA;AAAA,MACA,IAAI,QAAA,CAAS,SAAA;AAAA,MACb,IAAA,EAAK,MAAA;AAAA,MACL,QAAA,EAAU,EAAA;AAAA,MACV,mBAAiB,QAAA,CAAS,SAAA;AAAA,MAC1B,WAAA,EAAU,kBAAA;AAAA,MACV,WAAA,EAAW,IAAA;AAAA,MACX,YAAA,EAAY,KAAA;AAAA,MACZ,YAAA,EAAY,QAAA,CAAS,IAAA,CAAK,KAAA,GAAQ,MAAA,GAAS,QAAA;AAAA,MAC3C,KAAA,EAAO,CAAA,EAAG,cAAA,CAAe,IAAI,CAAC,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA,EAAI,eAAA,CAAgB,EAAE,IAAA,EAAM,KAAA,EAAO,SAAA,EAAiC,CAAC,CAAA,CAAA;AAAA,MACjH,OAAO,WAAA,GAAc,EAAE,GAAG,WAAA,EAAa,GAAG,aAAY,GAAI,WAAA;AAAA,MAC1D,SAAA,EAAW,CAAC,KAAA,KAAU;AACpB,QAAA,IAAI,KAAA,CAAM,QAAQ,QAAA,EAAU;AAC1B,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA,QAAA,CAAS,QAAQ,KAAK,CAAA;AACtB,UAAA,QAAA,CAAS,UAAA,CAAW,SAAS,KAAA,EAAM;AACnC,UAAA;AAAA,QACF;AACA,QAAA,SAAA,GAAY,KAAK,CAAA;AAAA,MACnB,CAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;ACvGO,IAAM,aAAA,GAAgB,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,IAAA,EAAK,qBAClEA,GAAAA,CAAC,SAAI,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAU,gBAAA,EAAiB,KAAA,EAAO,EAAA,CAAG,OAAO,SAAS,CAAA,EAAI,GAAG,IAAA,EAC3E,QAAA,EACH;ACNK,IAAM,eAAeC,EAAAA,CAAG;AAAA,EAC7B,IAAA,EAAM;AAAA,IACJ,wJAAA;AAAA,IACA,sEAAA;AAAA,IACA,8CAAA;AAAA,IACA,gEAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,OAAA,EAAS,EAAA;AAAA,MACT,WAAA,EACE;AAAA,KACJ;AAAA,IACA,KAAA,EAAO;AAAA,MACL,IAAA,EAAM;AAAA;AACR,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS,SAAA;AAAA,IACT,KAAA,EAAO;AAAA;AAEX,CAAC,CAAA;AAOM,IAAM,eAAe,CAAC;AAAA,EAC3B,KAAA,GAAQ,KAAA;AAAA,EACR,OAAA,GAAU,SAAA;AAAA,EACV,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAyB;AACvB,EAAA,MAAM,WAAW,WAAA,EAAY;AAC7B,EAAA,uBACED,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,IAAA,EAAK,UAAA;AAAA,MACL,WAAA,EAAU,eAAA;AAAA,MACV,YAAA,EAAY,QAAQ,MAAA,GAAS,MAAA;AAAA,MAC7B,cAAA,EAAc,OAAA;AAAA,MACd,OAAO,YAAA,CAAa,EAAE,OAAO,OAAA,EAAS,KAAA,EAAO,WAAiC,CAAA;AAAA,MAC9E,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,QAAA,OAAA,GAAU,KAAK,CAAA;AACf,QAAA,IAAI,MAAM,gBAAA,EAAkB;AAC5B,QAAA,QAAA,CAAS,QAAQ,KAAK,CAAA;AAAA,MACxB,CAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;ACpDO,IAAM,gBAAgB,CAAC;AAAA,EAC5B,KAAA,GAAQ,KAAA;AAAA,EACR,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,gBAAA;AAAA,IACV,YAAA,EAAY,QAAQ,MAAA,GAAS,MAAA;AAAA,IAC7B,KAAA,EAAO,EAAA;AAAA,MACL,yDAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAG,IAAA;AAAA,IAEH;AAAA;AACH;AClBK,IAAM,cAAA,GAAiB,CAAC,EAAE,QAAA,EAAU,GAAG,IAAA,EAAK,qBACjDA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,iBAAA,EAAmB,GAAG,MAClC,QAAA,EACH;ACDF,IAAM,oBAAA,GAAuBE,cAAgD,IAAI,CAAA;AAE1E,IAAM,wBAAwB,oBAAA,CAAqB,QAAA;AAEnD,IAAM,mBAAmB,MAAM;AACpC,EAAA,MAAM,GAAA,GAAMC,WAAW,oBAAoB,CAAA;AAC3C,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,0DAA0D,CAAA;AACpF,EAAA,OAAO,GAAA;AACT,CAAA;AAEO,IAAM,oBAAA,GAAuB,CAClC,YAAA,EACA,SAAA,EACA,aAAA,KAC8B;AAC9B,EAAA,MAAM,QAAA,GAAWN,QAAQ,MAAMC,MAAAA,CAAO,aAAa,YAAY,CAAA,EAAG,EAAE,CAAA;AACpE,EAAA,MAAM,aAAA,GAAgBM,OAAO,KAAK,CAAA;AAClC,EAAA,aAAA,CAAc,UAAU,SAAA,KAAc,MAAA;AAEtC,EAAAL,UAAU,MAAM;AACd,IAAA,IAAI,cAAc,MAAA,EAAW;AAC3B,MAAA,QAAA,CAAS,KAAA,GAAQ,SAAA;AAAA,IACnB;AAAA,EACF,CAAA,EAAG,CAAC,SAAA,EAAW,QAAQ,CAAC,CAAA;AAExB,EAAA,MAAM,gBAAA,GAAmBK,OAAO,aAAa,CAAA;AAC7C,EAAA,gBAAA,CAAiB,OAAA,GAAU,aAAA;AAE3B,EAAA,OAAOP,OAAAA;AAAA,IACL,OAAkC;AAAA,MAChC,KAAA,EAAO,QAAA;AAAA,MACP,QAAA,EAAU,CAAC,IAAA,KAAiB;AAC1B,QAAA,IAAI,CAAC,cAAc,OAAA,EAAS;AAC1B,UAAA,QAAA,CAAS,KAAA,GAAQ,IAAA;AAAA,QACnB;AACA,QAAA,gBAAA,CAAiB,UAAU,IAAI,CAAA;AAAA,MACjC;AAAA,KACF,CAAA;AAAA,IACA,CAAC,QAAQ;AAAA,GACX;AACF,CAAA;ACvCO,IAAM,qBAAqB,CAAC;AAAA,EACjC,KAAA;AAAA,EACA,YAAA,GAAe,EAAA;AAAA,EACf,aAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAA+B;AAC7B,EAAA,MAAM,GAAA,GAAM,oBAAA,CAAqB,YAAA,EAAc,KAAA,EAAO,aAAa,CAAA;AAEnE,EAAA,uBACEG,GAAAA,CAAC,qBAAA,EAAA,EAAsB,KAAA,EAAO,KAC5B,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,IAAA,EAAK,SAAQ,WAAA,EAAU,sBAAA,EAAwB,GAAG,IAAA,EACpD,UACH,CAAA,EACF,CAAA;AAEJ;AChBO,IAAM,oBAAoB,CAAC;AAAA,EAChC,KAAA;AAAA,EACA,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAA8B;AAC5B,EAAA,MAAM,WAAW,WAAA,EAAY;AAC7B,EAAA,MAAM,QAAQ,gBAAA,EAAiB;AAC/B,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,KAAA,CAAM,KAAA,KAAU,KAAA;AAEvC,EAAA,uBACEK,IAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,IAAA,EAAK,eAAA;AAAA,MACL,WAAA,EAAU,qBAAA;AAAA,MACV,cAAA,EAAc,QAAA;AAAA,MACd,KAAA,EAAO,EAAA;AAAA,QACL,sJAAA;AAAA,QACA,2FAAA;AAAA,QACA,gEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,QAAA,OAAA,GAAU,KAAK,CAAA;AACf,QAAA,IAAI,MAAM,gBAAA,EAAkB;AAC5B,QAAA,KAAA,CAAM,SAAS,KAAK,CAAA;AACpB,QAAA,QAAA,CAAS,QAAQ,KAAK,CAAA;AAAA,MACxB,CAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAL,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,gFAAA;AAAA,YACN,aAAA,EAAW,IAAA;AAAA,YAEV,qCAAWA,GAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAM,oCAAmC,CAAA,GAAK;AAAA;AAAA,SAClE;AAAA,QACC;AAAA;AAAA;AAAA,GACH;AAEJ;AC7CO,IAAM,iBAAA,GAAoB,CAAC,EAAE,KAAA,EAAO,WAAW,GAAG,IAAA,uBACvDA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,IAAA,EAAK,WAAA;AAAA,IACL,WAAA,EAAU,oBAAA;AAAA,IACV,KAAA,EAAO,EAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA;AAAA,IACjD,GAAG;AAAA;AACN;ACJK,IAAM,mBAAmB,CAAC;AAAA,EAC/B,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEA,GAAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,WAAA,EAAU,mBAAA;AAAA,IACV,KAAA,EAAO,EAAA,CAAG,kEAAA,EAAoE,SAAS,CAAA;AAAA,IACtF,GAAG,IAAA;AAAA,IAEH;AAAA;AACH;ACRF,IAAM,kBAAA,GAAqBE,cAA8C,IAAI,CAAA;AAEtE,IAAM,sBAAsB,CAAC;AAAA,EAClC,QAAA;AAAA,EACA;AACF,CAAA,qBAGMF,GAAAA,CAAC,kBAAA,CAAmB,QAAA,EAAnB,EAA4B,OAAe,QAAA,EAAS,CAAA;AAEpD,IAAM,iBAAiB,MAAM;AAClC,EAAA,MAAM,GAAA,GAAMG,WAAW,kBAAkB,CAAA;AACzC,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,wDAAwD,CAAA;AAClF,EAAA,OAAO,GAAA;AACT,CAAA;AAEO,IAAM,kBAAA,GAAqB,MAChCN,OAAAA,CAAQ,MAAM;AACZ,EAAA,MAAM,IAAA,GAAOC,OAAO,KAAK,CAAA;AACzB,EAAA,OAAO;AAAA,IACL,IAAA;AAAA,IACA,OAAA,EAAS,CAAC,IAAA,KAAS;AACjB,MAAA,IAAA,CAAK,KAAA,GAAQ,IAAA;AAAA,IACf;AAAA,GACF;AACF,CAAA,EAAG,EAAE,CAAA;AC3BA,IAAM,WAAA,GAAc,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,MAAK,KAAwB;AACxF,EAAA,MAAM,MAAM,kBAAA,EAAmB;AAE/B,EAAA,uBACEE,GAAAA,CAAC,mBAAA,EAAA,EAAoB,KAAA,EAAO,KAC1B,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,KAAA,EAAO,EAAA,CAAG,UAAA,EAAY,SAAS,CAAA;AAAA,MAC/B,gBAAgB,MAAM;AACpB,QAAA,GAAA,CAAI,QAAQ,KAAK,CAAA;AAAA,MACnB,CAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;ACfO,IAAM,qBAAqB,CAAC;AAAA,EACjC,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,cAAA;AAAA,EACA,IAAA,GAAO,YAAA;AAAA,EACP,GAAG;AACL,CAAA,KAA+B;AAC7B,EAAA,MAAM,MAAM,cAAA,EAAe;AAE3B,EAAA,IAAI,CAAC,GAAA,CAAI,IAAA,CAAK,KAAA,EAAO,OAAO,IAAA;AAE5B,EAAA,MAAM,YAAA,GACJ,IAAA,KAAS,cAAA,GACL,qCAAA,GACA,uCAAA;AAEN,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,MAAA;AAAA,MACL,WAAA,EAAU,sBAAA;AAAA,MACV,WAAA,EAAW,IAAA;AAAA,MACX,YAAA,EAAW,MAAA;AAAA,MACX,KAAA,EAAO,EAAA;AAAA,QACL,mPAAA;AAAA,QACA,YAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,cAAA,EAAgB,CAAC,CAAA,KAAM;AACrB,QAAA,cAAA,GAAiB,CAAC,CAAA;AAClB,QAAA,GAAA,CAAI,QAAQ,IAAI,CAAA;AAAA,MAClB,CAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AC1CA,IAAM,eAAe,CAAC,EAAE,KAAA,EAAO,SAAA,uBAC7BA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,KAAA,EAAM,4BAAA;AAAA,IACN,KAAA,EAAM,IAAA;AAAA,IACN,MAAA,EAAO,IAAA;AAAA,IACP,OAAA,EAAQ,WAAA;AAAA,IACR,IAAA,EAAK,MAAA;AAAA,IACL,MAAA,EAAO,cAAA;AAAA,IACP,cAAA,EAAa,GAAA;AAAA,IACb,gBAAA,EAAe,OAAA;AAAA,IACf,iBAAA,EAAgB,OAAA;AAAA,IAChB,KAAA,EAAO,EAAA,CAAG,kCAAA,EAAoC,SAAS,CAAA;AAAA,IACvD,aAAA,EAAW,IAAA;AAAA,IAEX,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,eAAA,EAAgB;AAAA;AAC1B,CAAA;AAOK,IAAM,qBAAqB,CAAC;AAAA,EACjC,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA;AAAA,EACA,GAAG;AACL,CAAA,KAA+B;AAC7B,EAAA,MAAM,MAAM,cAAA,EAAe;AAC3B,EAAA,MAAM,IAAA,GAAO,IAAI,IAAA,CAAK,KAAA;AAEtB,EAAA,uBACEK,IAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,IAAA,EAAK,UAAA;AAAA,MACL,WAAA,EAAU,sBAAA;AAAA,MACV,YAAA,EAAY,OAAO,MAAA,GAAS,QAAA;AAAA,MAC5B,eAAA,EAAe,IAAA;AAAA,MACf,eAAA,EAAc,MAAA;AAAA,MACd,KAAA,EAAO,EAAA;AAAA,QACL,iJAAA;AAAA,QACA,2FAAA;AAAA,QACA,sEAAA;AAAA,QACA,kBAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,cAAA,EAAgB,CAAC,CAAA,KAAM;AACrB,QAAA,cAAA,GAAiB,CAAC,CAAA;AAClB,QAAA,IAAI,EAAE,gBAAA,EAAkB;AACxB,QAAA,GAAA,CAAI,QAAQ,IAAI,CAAA;AAAA,MAClB,CAAA;AAAA,MACA,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,QAAA,OAAA,GAAU,CAAC,CAAA;AACX,QAAA,IAAI,EAAE,gBAAA,EAAkB;AACxB,QAAA,GAAA,CAAI,OAAA,CAAQ,CAAC,IAAI,CAAA;AAAA,MACnB,CAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACDL,GAAAA,CAAC,YAAA,EAAA,EAAa,KAAA,EAAM,SAAA,EAAU;AAAA;AAAA;AAAA,GAChC;AAEJ;AC/DA,IAAM,kBAAkBC,EAAAA,CAAG;AAAA,EACzB,IAAA,EAAM;AAAA,IACJ,gGAAA;AAAA,IACA,+FAAA;AAAA,IACA,kDAAA;AAAA,IACA,0FAAA;AAAA,IACA;AAAA;AAEJ,CAAC,CAAA;AAOD,IAAM,OAAA,GAAU,CAAwB,GAAA,EAAc,IAAA,KAAmB;AACvE,EAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,IAAA,GAAA,CAAI,IAAI,CAAA;AAAA,EACV,WAAW,GAAA,IAAO,OAAO,GAAA,KAAQ,QAAA,IAAY,aAAa,GAAA,EAAK;AAC7D,IAAC,IAA8B,OAAA,GAAU,IAAA;AAAA,EAC3C;AACF,CAAA;AAEO,IAAM,kBAAkB,CAAC;AAAA,EAC9B,OAAA,GAAU,KAAA;AAAA,EACV,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAA,EAAK,QAAA;AAAA,EACL,GAAG;AACL,CAAA,KAA4B;AAC1B,EAAA,MAAM,WAAW,WAAA,EAAY;AAE7B,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAA+C;AAClE,IAAA,OAAA,GAAU,KAAkD,CAAA;AAC5D,IAAA,IAAI,MAAM,gBAAA,EAAkB;AAC5B,IAAA,QAAA,CAAS,OAAA,CAAQ,CAAC,QAAA,CAAS,IAAA,CAAK,KAAK,CAAA;AAAA,EACvC,CAAA;AAEA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,IAAI,CAAC,cAAA,CAAe,QAAQ,CAAA,EAAG;AAC7B,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,UAAA,GAAc,QAAA,CAAS,KAAA,IAAS,EAAC;AAKvC,IAAA,OAAO,aAAa,QAAA,EAAU;AAAA,MAC5B,GAAI,UAAA;AAAA,MACJ,GAAI,IAAA;AAAA,MACJ,IAAI,QAAA,CAAS,SAAA;AAAA,MACb,iBAAiB,QAAA,CAAS,SAAA;AAAA,MAC1B,eAAA,EAAiB,MAAA;AAAA,MACjB,eAAA,EAAiB,SAAS,IAAA,CAAK,KAAA;AAAA,MAC/B,WAAA,EAAa,kBAAA;AAAA,MACb,YAAA,EAAc,QAAA,CAAS,IAAA,CAAK,KAAA,GAAQ,MAAA,GAAS,QAAA;AAAA,MAC7C,OAAA,EAAS,CAAC,KAAA,KAA+C;AACvD,QAAA,UAAA,CAAW,UAAU,KAAK,CAAA;AAC1B,QAAA,WAAA,CAAY,KAAK,CAAA;AAAA,MACnB,CAAA;AAAA,MACA,GAAA,EAAK,CAAC,IAAA,KAA6B;AACjC,QAAA,QAAA,CAAS,WAAW,OAAA,GAAU,IAAA;AAC9B,QAAA,OAAA,CAAQ,UAAA,CAAW,KAAK,IAAI,CAAA;AAC5B,QAAA,OAAA,CAAQ,UAAU,IAAI,CAAA;AAAA,MACxB;AAAA,KACQ,CAAA;AAAA,EACZ;AAEA,EAAA,uBACED,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,CAAC,IAAA,KAAS;AACb,QAAA,QAAA,CAAS,WAAW,OAAA,GAAU,IAAA;AAC9B,QAAA,OAAA,CAAQ,UAAU,IAAI,CAAA;AAAA,MACxB,CAAA;AAAA,MACA,IAAI,QAAA,CAAS,SAAA;AAAA,MACb,IAAA,EAAK,QAAA;AAAA,MACL,KAAA,EAAO,eAAA,CAAgB,EAAE,KAAA,EAAO,WAAiC,CAAA;AAAA,MACjE,WAAA,EAAU,kBAAA;AAAA,MACV,YAAA,EAAY,QAAA,CAAS,IAAA,CAAK,KAAA,GAAQ,MAAA,GAAS,QAAA;AAAA,MAC3C,iBAAe,QAAA,CAAS,SAAA;AAAA,MACxB,eAAA,EAAc,MAAA;AAAA,MACd,eAAA,EAAe,SAAS,IAAA,CAAK,KAAA;AAAA,MAC7B,OAAA,EAAS,CAAC,KAAA,KAAU,WAAA,CAAY,KAAuD,CAAA;AAAA,MACtF,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;;;AC5DA,IAAO,gBAAA,GAAQ;AAAA,EACb,IAAA,EAAM,QAAA;AAAA,EACN,OAAA,EAAS,eAAA;AAAA,EACT,OAAA,EAAS,eAAA;AAAA,EACT,IAAA,EAAM,YAAA;AAAA,EACN,KAAA,EAAO,aAAA;AAAA,EACP,SAAA,EAAW,iBAAA;AAAA,EACX,KAAA,EAAO,aAAA;AAAA,EACP,QAAA,EAAU,gBAAA;AAAA,EACV,GAAA,EAAK,WAAA;AAAA,EACL,UAAA,EAAY,kBAAA;AAAA,EACZ,UAAA,EAAY,kBAAA;AAAA,EACZ,MAAA,EAAQ,cAAA;AAAA,EACR,YAAA,EAAc,oBAAA;AAAA,EACd,UAAA,EAAY,kBAAA;AAAA,EACZ,SAAA,EAAW;AACb","file":"chunk-3LIT5GWF.js","sourcesContent":["import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useEffect, useMemo, useRef } from \"preact/hooks\";\nimport { tv } from \"tailwind-variants\";\nimport { createDismissableLayer, createIdFactory } from \"../../lib/interactive\";\n\nexport type DropdownContextValue = {\n open: ReturnType<typeof signal<boolean>>;\n setOpen: (next: boolean) => void;\n triggerId: string;\n contentId: string;\n rootRef: { current: HTMLDivElement | null };\n triggerRef: { current: HTMLElement | null };\n contentRef: { current: HTMLDivElement | null };\n};\n\nconst DropdownContext = createContext<DropdownContextValue | null>(null);\nconst nextDropdownId = createIdFactory(\"kamod-dropdown\");\n\nexport const useDropdown = () => {\n const context = useContext(DropdownContext);\n if (!context) throw new Error(\"Dropdown subcomponents must be used within Dropdown\");\n return context;\n};\n\nconst dropdownRoot = tv({\n base: \"relative inline-flex\",\n});\n\nexport type DropdownProps = JSX.HTMLAttributes<HTMLDivElement> & {\n defaultOpen?: boolean;\n children?: ComponentChildren;\n};\n\nexport const Dropdown = ({\n defaultOpen = false,\n class: className,\n children,\n ...rest\n}: DropdownProps) => {\n const open = useMemo(() => signal(defaultOpen), []);\n const rootRef = useRef<HTMLDivElement | null>(null);\n const triggerRef = useRef<HTMLElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const instanceId = useMemo(() => nextDropdownId(), []);\n\n useEffect(() => {\n const layer = createDismissableLayer({\n root: () => rootRef.current,\n open: () => open.value,\n onDismiss: () => {\n open.value = false;\n },\n });\n return () => layer.dispose();\n }, []);\n\n return (\n <DropdownContext.Provider\n value={{\n open,\n setOpen: (next) => {\n open.value = next;\n },\n triggerId: `${instanceId}-trigger`,\n contentId: `${instanceId}-content`,\n rootRef,\n triggerRef,\n contentRef,\n }}\n >\n <div\n ref={rootRef}\n class={dropdownRoot({ class: className as string | undefined })}\n data-slot=\"dropdown\"\n data-state={open.value ? \"open\" : \"closed\"}\n {...rest}\n >\n {children}\n </div>\n </DropdownContext.Provider>\n );\n};\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useEffect, useMemo } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\n\nexport type DropdownCheckboxItemProps = Omit<\n JSX.ButtonHTMLAttributes<HTMLButtonElement>,\n \"children\"\n> & {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n children?: ComponentChildren;\n};\n\nexport const DropdownCheckboxItem = ({\n checked: checkedProp,\n defaultChecked = false,\n onCheckedChange,\n class: className,\n children,\n onClick,\n ...rest\n}: DropdownCheckboxItemProps) => {\n const internal = useMemo(() => signal(defaultChecked), []);\n const isControlled = checkedProp !== undefined;\n\n useEffect(() => {\n if (checkedProp !== undefined) {\n internal.value = checkedProp;\n }\n }, [checkedProp, internal]);\n\n const checked = isControlled ? Boolean(checkedProp) : internal.value;\n\n return (\n <button\n type=\"button\"\n role=\"menuitemcheckbox\"\n data-slot=\"dropdown-checkbox-item\"\n aria-checked={checked}\n class={cn(\n \"relative flex w-full cursor-default select-none items-center gap-1 rounded-sm py-0.5 ps-7 pe-1.5 text-sm outline-none transition-colors duration-100\",\n \"hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n const next = !checked;\n if (!isControlled) {\n internal.value = next;\n }\n onCheckedChange?.(next);\n }}\n {...rest}\n >\n <span\n class=\"pointer-events-none absolute start-1.5 flex size-3 items-center justify-center\"\n aria-hidden\n >\n {checked ? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"size-3.5\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n ) : null}\n </span>\n {children}\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { useDropdown } from \"./Dropdown\";\n\nconst positionBySide = {\n top: \"bottom-full\",\n bottom: \"top-full\",\n left: \"right-full\",\n right: \"left-full\",\n} as const;\n\nconst alignByAxis = {\n vertical: {\n start: \"left-0\",\n center: \"left-1/2 -translate-x-1/2\",\n end: \"right-0\",\n },\n horizontal: {\n start: \"top-0\",\n center: \"top-1/2 -translate-y-1/2\",\n end: \"bottom-0\",\n },\n} as const;\n\nexport const dropdownContent = tv({\n base: [\n // overflow-x visible so DropdownSubContent (absolute start-full) is not clipped; keep vertical scroll for long menus\n \"bg-white text-popover-foreground z-50 flex min-w-[7rem] flex-col gap-0 overflow-x-visible overflow-y-auto rounded-lg p-px shadow-md outline-none ring-1 ring-foreground/10 dark:bg-popover\",\n \"dark:ring-foreground/15\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-100\",\n \"data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:duration-100\",\n \"absolute isolate max-h-96\",\n ],\n variants: {\n side: {\n bottom: \"slide-in-from-top-2\",\n top: \"slide-in-from-bottom-2\",\n right: \"slide-in-from-left-2\",\n left: \"slide-in-from-right-2\",\n },\n },\n defaultVariants: {\n side: \"bottom\",\n },\n});\n\nexport type DropdownContentProps = JSX.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof dropdownContent> & {\n forceMount?: boolean;\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n align?: \"start\" | \"center\" | \"end\";\n sideOffset?: number;\n children?: ComponentChildren;\n };\n\nexport const DropdownContent = ({\n forceMount = false,\n side = \"bottom\",\n align = \"start\",\n sideOffset = 4,\n class: className,\n style,\n children,\n onKeyDown,\n ...rest\n}: DropdownContentProps) => {\n const dropdown = useDropdown();\n if (!dropdown.open.value && !forceMount) return null;\n\n const isVertical = side === \"top\" || side === \"bottom\";\n const alignClass = isVertical ? alignByAxis.vertical[align] : alignByAxis.horizontal[align];\n const inlineStyle = typeof style === \"object\" && style !== null ? style : undefined;\n const offsetStyle: JSX.CSSProperties =\n side === \"bottom\"\n ? { marginTop: `${sideOffset}px` }\n : side === \"top\"\n ? { marginBottom: `${sideOffset}px` }\n : side === \"right\"\n ? { marginLeft: `${sideOffset}px` }\n : { marginRight: `${sideOffset}px` };\n\n return (\n <div\n ref={(node) => {\n dropdown.contentRef.current = node;\n }}\n id={dropdown.contentId}\n role=\"menu\"\n tabIndex={-1}\n aria-labelledby={dropdown.triggerId}\n data-slot=\"dropdown-content\"\n data-side={side}\n data-align={align}\n data-state={dropdown.open.value ? \"open\" : \"closed\"}\n class={`${positionBySide[side]} ${alignClass} ${dropdownContent({ side, class: className as string | undefined })}`}\n style={inlineStyle ? { ...offsetStyle, ...inlineStyle } : offsetStyle}\n onKeyDown={(event) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n dropdown.setOpen(false);\n dropdown.triggerRef.current?.focus();\n return;\n }\n onKeyDown?.(event);\n }}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type DropdownGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const DropdownGroup = ({ class: className, children, ...rest }: DropdownGroupProps) => (\n <div role=\"group\" data-slot=\"dropdown-group\" class={cn(\"p-1\", className)} {...rest}>\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { useDropdown } from \"./Dropdown\";\n\nexport const dropdownItem = tv({\n base: [\n \"relative flex w-full cursor-default select-none items-center gap-1 rounded-sm px-1 py-0.5 text-sm outline-none transition-colors duration-100 ease-out\",\n \"text-popover-foreground hover:bg-accent hover:text-accent-foreground\",\n \"focus:bg-accent focus: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-3.5\",\n ],\n variants: {\n variant: {\n default: \"\",\n destructive:\n \"text-destructive hover:bg-destructive/10 hover:text-destructive focus:bg-destructive/10 focus:text-destructive dark:focus:bg-destructive/20 [&_svg]:text-destructive\",\n },\n inset: {\n true: \"ps-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n inset: false,\n },\n});\n\nexport type DropdownItemProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> &\n VariantProps<typeof dropdownItem> & {\n children?: ComponentChildren;\n };\n\nexport const DropdownItem = ({\n inset = false,\n variant = \"default\",\n class: className,\n children,\n onClick,\n ...rest\n}: DropdownItemProps) => {\n const dropdown = useDropdown();\n return (\n <button\n type=\"button\"\n role=\"menuitem\"\n data-slot=\"dropdown-item\"\n data-inset={inset ? \"true\" : undefined}\n data-variant={variant}\n class={dropdownItem({ inset, variant, class: className as string | undefined })}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n dropdown.setOpen(false);\n }}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type DropdownLabelProps = JSX.HTMLAttributes<HTMLDivElement> & {\n inset?: boolean;\n children?: ComponentChildren;\n};\n\nexport const DropdownLabel = ({\n inset = false,\n class: className,\n children,\n ...rest\n}: DropdownLabelProps) => (\n <div\n data-slot=\"dropdown-label\"\n data-inset={inset ? \"true\" : undefined}\n class={cn(\n \"text-muted-foreground px-1 py-0.5 text-xs font-semibold\",\n inset && \"ps-6\",\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\n\n/** No-op wrapper for API parity with shadcn; content stays in the tree (no portal). */\nexport type DropdownPortalProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const DropdownPortal = ({ children, ...rest }: DropdownPortalProps) => (\n <div data-slot=\"dropdown-portal\" {...rest}>\n {children}\n </div>\n);\n","import { signal } from \"@preact/signals\";\nimport { createContext } from \"preact\";\nimport { useContext, useEffect, useMemo, useRef } from \"preact/hooks\";\n\nexport type DropdownRadioContextValue = {\n value: ReturnType<typeof signal<string>>;\n setValue: (next: string) => void;\n};\n\nconst DropdownRadioContext = createContext<DropdownRadioContextValue | null>(null);\n\nexport const DropdownRadioProvider = DropdownRadioContext.Provider;\n\nexport const useDropdownRadio = () => {\n const ctx = useContext(DropdownRadioContext);\n if (!ctx) throw new Error(\"DropdownRadioItem must be used within DropdownRadioGroup\");\n return ctx;\n};\n\nexport const useDropdownRadioRoot = (\n defaultValue: string,\n valueProp: string | undefined,\n onValueChange: ((v: string) => void) | undefined,\n): DropdownRadioContextValue => {\n const internal = useMemo(() => signal(valueProp ?? defaultValue), []);\n const controlledRef = useRef(false);\n controlledRef.current = valueProp !== undefined;\n\n useEffect(() => {\n if (valueProp !== undefined) {\n internal.value = valueProp;\n }\n }, [valueProp, internal]);\n\n const onValueChangeRef = useRef(onValueChange);\n onValueChangeRef.current = onValueChange;\n\n return useMemo(\n (): DropdownRadioContextValue => ({\n value: internal,\n setValue: (next: string) => {\n if (!controlledRef.current) {\n internal.value = next;\n }\n onValueChangeRef.current?.(next);\n },\n }),\n [internal],\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { DropdownRadioProvider, useDropdownRadioRoot } from \"./dropdown-radio-context\";\n\nexport type DropdownRadioGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n children?: ComponentChildren;\n};\n\nexport const DropdownRadioGroup = ({\n value,\n defaultValue = \"\",\n onValueChange,\n children,\n ...rest\n}: DropdownRadioGroupProps) => {\n const ctx = useDropdownRadioRoot(defaultValue, value, onValueChange);\n\n return (\n <DropdownRadioProvider value={ctx}>\n <div role=\"group\" data-slot=\"dropdown-radio-group\" {...rest}>\n {children}\n </div>\n </DropdownRadioProvider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useDropdown } from \"./Dropdown\";\nimport { useDropdownRadio } from \"./dropdown-radio-context\";\n\nexport type DropdownRadioItemProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n value: string;\n children?: ComponentChildren;\n};\n\nexport const DropdownRadioItem = ({\n value,\n class: className,\n children,\n onClick,\n ...rest\n}: DropdownRadioItemProps) => {\n const dropdown = useDropdown();\n const radio = useDropdownRadio();\n const selected = radio.value.value === value;\n\n return (\n <button\n type=\"button\"\n role=\"menuitemradio\"\n data-slot=\"dropdown-radio-item\"\n aria-checked={selected}\n class={cn(\n \"relative flex w-full cursor-default select-none items-center gap-1 rounded-sm py-0.5 ps-7 pe-1.5 text-sm outline-none transition-colors duration-100\",\n \"hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n radio.setValue(value);\n dropdown.setOpen(false);\n }}\n {...rest}\n >\n <span\n class=\"pointer-events-none absolute start-1.5 flex size-3 items-center justify-center\"\n aria-hidden\n >\n {selected ? <span class=\"size-1.5 rounded-full bg-current\" /> : null}\n </span>\n {children}\n </button>\n );\n};\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type DropdownSeparatorProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const DropdownSeparator = ({ class: className, ...rest }: DropdownSeparatorProps) => (\n <div\n role=\"separator\"\n data-slot=\"dropdown-separator\"\n class={cn(\"bg-border -mx-px my-px h-px\", className)}\n {...rest}\n />\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type DropdownShortcutProps = JSX.HTMLAttributes<HTMLSpanElement> & {\n children?: ComponentChildren;\n};\n\nexport const DropdownShortcut = ({\n class: className,\n children,\n ...rest\n}: DropdownShortcutProps) => (\n <span\n data-slot=\"dropdown-shortcut\"\n class={cn(\"text-muted-foreground ms-auto text-xs tracking-widest opacity-70\", className)}\n {...rest}\n >\n {children}\n </span>\n);\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useMemo } from \"preact/hooks\";\n\nexport type DropdownSubContextValue = {\n open: ReturnType<typeof signal<boolean>>;\n setOpen: (next: boolean) => void;\n};\n\nconst DropdownSubContext = createContext<DropdownSubContextValue | null>(null);\n\nexport const DropdownSubProvider = ({\n children,\n value,\n}: {\n children: ComponentChildren;\n value: DropdownSubContextValue;\n}) => <DropdownSubContext.Provider value={value}>{children}</DropdownSubContext.Provider>;\n\nexport const useDropdownSub = () => {\n const ctx = useContext(DropdownSubContext);\n if (!ctx) throw new Error(\"Dropdown subcomponents must be used within DropdownSub\");\n return ctx;\n};\n\nexport const useMemoDropdownSub = (): DropdownSubContextValue =>\n useMemo(() => {\n const open = signal(false);\n return {\n open,\n setOpen: (next) => {\n open.value = next;\n },\n };\n }, []);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { DropdownSubProvider, useMemoDropdownSub } from \"./dropdown-sub-context\";\n\nexport type DropdownSubProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const DropdownSub = ({ class: className, children, ...rest }: DropdownSubProps) => {\n const ctx = useMemoDropdownSub();\n\n return (\n <DropdownSubProvider value={ctx}>\n <div\n data-slot=\"dropdown-sub\"\n class={cn(\"relative\", className)}\n onPointerLeave={() => {\n ctx.setOpen(false);\n }}\n {...rest}\n >\n {children}\n </div>\n </DropdownSubProvider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useDropdownSub } from \"./dropdown-sub-context\";\n\nexport type DropdownSubContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n /** `inline-end` (default): opens toward inline end (right in LTR). `inline-start`: toward inline start (left in LTR) — use near the viewport edge to avoid horizontal page scroll. */\n side?: \"inline-end\" | \"inline-start\";\n};\n\nexport const DropdownSubContent = ({\n class: className,\n children,\n onPointerEnter,\n side = \"inline-end\",\n ...rest\n}: DropdownSubContentProps) => {\n const sub = useDropdownSub();\n\n if (!sub.open.value) return null;\n\n const sidePosition =\n side === \"inline-start\"\n ? \"end-full me-0.5 rtl:ms-0.5 rtl:me-0\"\n : \"start-full ms-0.5 rtl:me-0.5 rtl:ms-0\";\n\n return (\n <div\n role=\"menu\"\n data-slot=\"dropdown-sub-content\"\n data-side={side}\n data-state=\"open\"\n class={cn(\n \"absolute top-0 z-50 min-w-[7rem] max-h-[min(24rem,calc(100dvh-2rem))] overflow-x-hidden overflow-y-auto rounded-lg bg-white p-px text-popover-foreground shadow-md outline-none ring-1 ring-foreground/10 dark:bg-popover dark:ring-foreground/15\",\n sidePosition,\n className,\n )}\n onPointerEnter={(e) => {\n onPointerEnter?.(e);\n sub.setOpen(true);\n }}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useDropdownSub } from \"./dropdown-sub-context\";\n\nconst ChevronRight = ({ class: className }: { class?: string }) => (\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 stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class={cn(\"size-3.5 shrink-0 rtl:rotate-180\", className)}\n aria-hidden\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n);\n\nexport type DropdownSubTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n children?: ComponentChildren;\n};\n\nexport const DropdownSubTrigger = ({\n class: className,\n children,\n onClick,\n onPointerEnter,\n ...rest\n}: DropdownSubTriggerProps) => {\n const sub = useDropdownSub();\n const open = sub.open.value;\n\n return (\n <button\n type=\"button\"\n role=\"menuitem\"\n data-slot=\"dropdown-sub-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n aria-expanded={open}\n aria-haspopup=\"menu\"\n class={cn(\n \"flex w-full cursor-default select-none items-center gap-1 rounded-sm px-1 py-0.5 text-start text-sm outline-none transition-colors duration-100\",\n \"hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground\",\n \"data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n \"[&_svg]:shrink-0\",\n className,\n )}\n onPointerEnter={(e) => {\n onPointerEnter?.(e);\n if (e.defaultPrevented) return;\n sub.setOpen(true);\n }}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n sub.setOpen(!open);\n }}\n {...rest}\n >\n {children}\n <ChevronRight class=\"ms-auto\" />\n </button>\n );\n};\n","import { type ComponentChildren, cloneElement, isValidElement, type JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\nimport { useDropdown } from \"./Dropdown\";\n\nconst dropdownTrigger = tv({\n base: [\n \"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap\",\n \"focus-visible:ring-outline/50 transition-[color,box-shadow] outline-none focus-visible:ring-3\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground\",\n \"h-9 px-4 py-2\",\n ],\n});\n\nexport type DropdownTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n asChild?: boolean;\n children?: ComponentChildren;\n};\n\nconst callRef = <T extends HTMLElement>(ref: unknown, node: T | null) => {\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref && typeof ref === \"object\" && \"current\" in ref) {\n (ref as { current: T | null }).current = node;\n }\n};\n\nexport const DropdownTrigger = ({\n asChild = false,\n class: className,\n children,\n onClick,\n ref: outerRef,\n ...rest\n}: DropdownTriggerProps) => {\n const dropdown = useDropdown();\n\n const handleClick = (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n onClick?.(event as JSX.TargetedMouseEvent<HTMLButtonElement>);\n if (event.defaultPrevented) return;\n dropdown.setOpen(!dropdown.open.value);\n };\n\n if (asChild) {\n if (!isValidElement(children)) {\n return null;\n }\n\n const childProps = (children.props ?? {}) as JSX.HTMLAttributes<HTMLElement> & {\n ref?: unknown;\n onClick?: (event: JSX.TargetedMouseEvent<HTMLElement>) => void;\n };\n\n return cloneElement(children, {\n ...(childProps as Record<string, unknown>),\n ...(rest as Record<string, unknown>),\n id: dropdown.triggerId,\n \"aria-controls\": dropdown.contentId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": dropdown.open.value,\n \"data-slot\": \"dropdown-trigger\",\n \"data-state\": dropdown.open.value ? \"open\" : \"closed\",\n onClick: (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n childProps.onClick?.(event);\n handleClick(event);\n },\n ref: (node: HTMLElement | null) => {\n dropdown.triggerRef.current = node;\n callRef(childProps.ref, node);\n callRef(outerRef, node);\n },\n } as never);\n }\n\n return (\n <button\n ref={(node) => {\n dropdown.triggerRef.current = node;\n callRef(outerRef, node);\n }}\n id={dropdown.triggerId}\n type=\"button\"\n class={dropdownTrigger({ class: className as string | undefined })}\n data-slot=\"dropdown-trigger\"\n data-state={dropdown.open.value ? \"open\" : \"closed\"}\n aria-controls={dropdown.contentId}\n aria-haspopup=\"menu\"\n aria-expanded={dropdown.open.value}\n onClick={(event) => handleClick(event as unknown as JSX.TargetedMouseEvent<HTMLElement>)}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import { Dropdown } from \"./Dropdown\";\nimport { DropdownCheckboxItem } from \"./DropdownCheckboxItem\";\nimport { DropdownContent } from \"./DropdownContent\";\nimport { DropdownGroup } from \"./DropdownGroup\";\nimport { DropdownItem } from \"./DropdownItem\";\nimport { DropdownLabel } from \"./DropdownLabel\";\nimport { DropdownPortal } from \"./DropdownPortal\";\nimport { DropdownRadioGroup } from \"./DropdownRadioGroup\";\nimport { DropdownRadioItem } from \"./DropdownRadioItem\";\nimport { DropdownSeparator } from \"./DropdownSeparator\";\nimport { DropdownShortcut } from \"./DropdownShortcut\";\nimport { DropdownSub } from \"./DropdownSub\";\nimport { DropdownSubContent } from \"./DropdownSubContent\";\nimport { DropdownSubTrigger } from \"./DropdownSubTrigger\";\nimport { DropdownTrigger } from \"./DropdownTrigger\";\n\nexport {\n Dropdown,\n DropdownCheckboxItem,\n DropdownContent,\n DropdownGroup,\n DropdownItem,\n DropdownLabel,\n DropdownPortal,\n DropdownRadioGroup,\n DropdownRadioItem,\n DropdownSeparator,\n DropdownShortcut,\n DropdownSub,\n DropdownSubContent,\n DropdownSubTrigger,\n DropdownTrigger,\n};\n\nexport default {\n Root: Dropdown,\n Trigger: DropdownTrigger,\n Content: DropdownContent,\n Item: DropdownItem,\n Label: DropdownLabel,\n Separator: DropdownSeparator,\n Group: DropdownGroup,\n Shortcut: DropdownShortcut,\n Sub: DropdownSub,\n SubTrigger: DropdownSubTrigger,\n SubContent: DropdownSubContent,\n Portal: DropdownPortal,\n CheckboxItem: DropdownCheckboxItem,\n RadioGroup: DropdownRadioGroup,\n RadioItem: DropdownRadioItem,\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/button/Button.tsx"],"names":[],"mappings":";;;;;AAIO,IAAM,SAAS,EAAA,CAAG;AAAA,EACvB,IAAA,EAAM;AAAA,IACJ,+IAAA;AAAA,IACA,mHAAA;AAAA,IACA,oGAAA;AAAA,IACA,sFAAA;AAAA,IACA,+EAAA;AAAA,IACA,mFAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,OAAA,EAAS,iFAAA;AAAA,MACT,SAAA,EACE,8FAAA;AAAA,MACF,OAAA,EAAS,kFAAA;AAAA,MACT,OAAA,EACE,wLAAA;AAAA,MACF,KAAA,EAAO,oEAAA;AAAA,MACP,WAAA,EACE,kGAAA;AAAA,MACF,IAAA,EAAM;AAAA,KACR;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,GAAA,EAAK,8BAAA;AAAA,MACL,EAAA,EAAI,wBAAA;AAAA,MACJ,EAAA,EAAI,kBAAA;AAAA,MACJ,OAAA,EAAS,oBAAA;AAAA,MACT,EAAA,EAAI,iFAAA;AAAA,MACJ,IAAA,EAAM,QAAA;AAAA,MACN,SAAA,EAAW,+CAAA;AAAA,MACX,SAAA,EAAW,6CAAA;AAAA,MACX,SAAA,EAAW;AAAA;AACb,GACF;AAAA,EACA,eAAA,EAAiB,EAAE,OAAA,EAAS,SAAA,EAAW,MAAM,SAAA;AAC/C,CAAC;AAoBM,IAAM,SAAS,CAAC;AAAA,EACrB,OAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAmB;AACjB,EAAA,MAAM,kBAAkB,OAAA,IAAW,SAAA;AACnC,EAAA,MAAM,eAAe,IAAA,IAAQ,SAAA;AAC7B,EAAA,MAAM,oBAAoB,MAAA,CAAO;AAAA,IAC/B,OAAA,EAAS,eAAA;AAAA,IACT,IAAA,EAAM,YAAA;AAAA,IACN,KAAA,EAAO;AAAA,GACR,CAAA;AAED,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,IAAI,CAAC,cAAA,CAAe,QAAQ,CAAA,EAAG;AAC7B,MAAA,MAAM,GAAA,GAAO,UAAA,CAA6D,OAAA,EAAS,GAAA,EAC/E,QAAA;AACJ,MAAA,IAAI,QAAQ,YAAA,EAAc;AACxB,QAAA,OAAA,CAAQ,IAAA;AAAA,UACN,8EAAA,GAEE,OAAO,QAAA,GACP;AAAA,SACJ;AAAA,MACF;AACA,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,UAAA,GAAc,QAAA,CAAS,KAAA,IAAS,EAAC;AAKvC,IAAA,OAAO,aAAa,QAAA,EAAU;AAAA,MAC5B,GAAG,UAAA;AAAA,MACH,GAAI,IAAA;AAAA,MACJ,OAAO,EAAA,CAAG,UAAA,CAAW,KAAA,EAAO,UAAA,CAAW,WAAW,iBAAiB,CAAA;AAAA,MACnE,WAAA,EAAa,QAAA;AAAA,MACb,cAAA,EAAgB,eAAA;AAAA,MAChB,WAAA,EAAa;AAAA,KACd,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,MAAA,IAAU,IAAA,IAAQ,OAAO,IAAA,CAAK,SAAS,QAAA,EAAU;AACnD,IAAA,uBACE,GAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,iBAAA;AAAA,QACP,WAAA,EAAU,QAAA;AAAA,QACV,cAAA,EAAc,eAAA;AAAA,QACd,WAAA,EAAW,YAAA;AAAA,QACV,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,iBAAA;AAAA,MACP,WAAA,EAAU,QAAA;AAAA,MACV,cAAA,EAAc,eAAA;AAAA,MACd,WAAA,EAAW,YAAA;AAAA,MACV,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ","file":"chunk-5FBD2NTR.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 button = tv({\n base: [\n \"group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-lg bg-clip-padding text-sm font-medium whitespace-nowrap\",\n \"select-none transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50\",\n \"active:translate-y-px disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n \"aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20\",\n \"dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n \"has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n ],\n variants: {\n variant: {\n default: \"bg-primary text-background hover:bg-foreground/90 focus-visible:ring-outline/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/90 focus-visible:ring-secondary/50\",\n inverse: \"bg-foreground text-background hover:opacity-[0.85] focus-visible:ring-outline/50\",\n outline:\n \"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 border\",\n ghost: \"hover:bg-muted hover:text-foreground focus-visible:ring-outline/50\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-outline/50\",\n link: \"h-auto p-0 text-primary underline-offset-4 hover:underline active:translate-y-0 focus-visible:ring-0\",\n },\n size: {\n xxs: \"h-5 gap-1 px-1.5 text-[10px]\",\n xs: \"h-6 gap-1 px-2 text-xs\",\n sm: \"h-7 gap-1.5 px-3\",\n default: \"h-8 gap-1.5 px-2.5\",\n lg: \"h-9 gap-2 px-5 text-base has-[>svg]:px-4 [&_svg:not([class*='size-'])]:size-4.5\",\n icon: \"size-8\",\n \"icon-xs\": \"size-6 [&_svg:not([class*='size-'])]:size-3.5\",\n \"icon-sm\": \"size-7 [&_svg:not([class*='size-'])]:size-4\",\n \"icon-lg\": \"size-9 [&_svg:not([class*='size-'])]:size-5\",\n },\n },\n defaultVariants: { variant: \"default\", size: \"default\" },\n});\n\ntype CommonProps = VariantProps<typeof button> & {\n class?: string;\n asChild?: boolean;\n children?: ComponentChildren;\n};\n\ntype ButtonAsButton = CommonProps &\n JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n href?: undefined;\n };\n\ntype ButtonAsAnchor = CommonProps &\n JSX.AnchorHTMLAttributes<HTMLAnchorElement> & {\n href: string;\n };\n\nexport type ButtonProps = ButtonAsButton | ButtonAsAnchor;\n\nexport const Button = ({\n variant,\n size,\n asChild = false,\n class: className,\n children,\n ...rest\n}: ButtonProps) => {\n const resolvedVariant = variant ?? \"default\";\n const resolvedSize = size ?? \"default\";\n const resolvedClassName = button({\n variant: resolvedVariant,\n size: resolvedSize,\n class: className,\n });\n\n if (asChild) {\n if (!isValidElement(children)) {\n const env = (globalThis as { process?: { env?: { NODE_ENV?: string } } }).process?.env\n ?.NODE_ENV;\n if (env !== \"production\") {\n console.warn(\n \"[kamod-ui] <Button asChild> expects a single valid element child. \" +\n \"Received: \" +\n typeof children +\n \". Falling back to rendering nothing.\",\n );\n }\n return null;\n }\n\n const childProps = (children.props ?? {}) as JSX.HTMLAttributes<HTMLElement> & {\n class?: string;\n className?: string;\n };\n\n return cloneElement(children, {\n ...childProps,\n ...(rest as JSX.HTMLAttributes<HTMLElement>),\n class: cn(childProps.class, childProps.className, resolvedClassName),\n \"data-slot\": \"button\",\n \"data-variant\": resolvedVariant,\n \"data-size\": resolvedSize,\n });\n }\n\n if (\"href\" in rest && typeof rest.href === \"string\") {\n return (\n <a\n class={resolvedClassName}\n data-slot=\"button\"\n data-variant={resolvedVariant}\n data-size={resolvedSize}\n {...rest}\n >\n {children}\n </a>\n );\n }\n\n return (\n <button\n class={resolvedClassName}\n data-slot=\"button\"\n data-variant={resolvedVariant}\n data-size={resolvedSize}\n {...rest}\n >\n {children}\n </button>\n );\n};\n"]}