@kamod-ch/ui 1.1.0 → 1.3.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 (336) 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/TreeProvider-Cpu8yo3y.d.ts +270 -0
  25. package/dist/Typography-Df9IVmw2.d.ts +64 -0
  26. package/dist/{chunk-ZM67EKZC.js → chunk-22G3DW5M.js} +4 -4
  27. package/dist/{chunk-ZM67EKZC.js.map → chunk-22G3DW5M.js.map} +1 -1
  28. package/dist/{chunk-BDK7CDEI.js → chunk-2F3PWEDR.js} +3 -3
  29. package/dist/{chunk-BDK7CDEI.js.map → chunk-2F3PWEDR.js.map} +1 -1
  30. package/dist/{chunk-ZHAGKFSO.js → chunk-2SPOI3MX.js} +3 -3
  31. package/dist/{chunk-ZHAGKFSO.js.map → chunk-2SPOI3MX.js.map} +1 -1
  32. package/dist/chunk-2UTJHQTS.js +162 -0
  33. package/dist/chunk-2UTJHQTS.js.map +1 -0
  34. package/dist/{chunk-NKKMM6CK.js → chunk-3AFRSB5R.js} +3 -3
  35. package/dist/{chunk-NKKMM6CK.js.map → chunk-3AFRSB5R.js.map} +1 -1
  36. package/dist/{chunk-LCMPFPBN.js → chunk-3ETRJPBL.js} +3 -3
  37. package/dist/{chunk-LCMPFPBN.js.map → chunk-3ETRJPBL.js.map} +1 -1
  38. package/dist/{chunk-WAPRVVDQ.js → chunk-3HBKDY64.js} +3 -3
  39. package/dist/{chunk-WAPRVVDQ.js.map → chunk-3HBKDY64.js.map} +1 -1
  40. package/dist/{chunk-PPYJQNE5.js → chunk-3XMFQKWB.js} +9 -5
  41. package/dist/chunk-3XMFQKWB.js.map +1 -0
  42. package/dist/{chunk-HCTZJYHK.js → chunk-4SQKSVBH.js} +6 -6
  43. package/dist/chunk-4SQKSVBH.js.map +1 -0
  44. package/dist/{chunk-ZVAW22GX.js → chunk-4ZFKDNSK.js} +3 -3
  45. package/dist/{chunk-ZVAW22GX.js.map → chunk-4ZFKDNSK.js.map} +1 -1
  46. package/dist/{chunk-IJ4ZRIR4.js → chunk-53FZEAOJ.js} +5 -5
  47. package/dist/{chunk-IJ4ZRIR4.js.map → chunk-53FZEAOJ.js.map} +1 -1
  48. package/dist/{chunk-BYG2ULS3.js → chunk-5ATODZ6L.js} +5 -7
  49. package/dist/chunk-5ATODZ6L.js.map +1 -0
  50. package/dist/{chunk-TXKPDNRD.js → chunk-5I7ULBDP.js} +3 -3
  51. package/dist/{chunk-TXKPDNRD.js.map → chunk-5I7ULBDP.js.map} +1 -1
  52. package/dist/{chunk-UEXTD7ZB.js → chunk-6HFTTHSY.js} +3 -3
  53. package/dist/{chunk-UEXTD7ZB.js.map → chunk-6HFTTHSY.js.map} +1 -1
  54. package/dist/{chunk-6RASPU5N.js → chunk-7LWAWZHM.js} +4 -11
  55. package/dist/chunk-7LWAWZHM.js.map +1 -0
  56. package/dist/{chunk-RHNI5UQO.js → chunk-A6ZZZFZN.js} +4 -4
  57. package/dist/{chunk-RHNI5UQO.js.map → chunk-A6ZZZFZN.js.map} +1 -1
  58. package/dist/{chunk-V63YIVKJ.js → chunk-APZXMU2X.js} +4 -4
  59. package/dist/{chunk-V63YIVKJ.js.map → chunk-APZXMU2X.js.map} +1 -1
  60. package/dist/{chunk-6FYSVMH7.js → chunk-AYLEWD77.js} +3 -3
  61. package/dist/{chunk-6FYSVMH7.js.map → chunk-AYLEWD77.js.map} +1 -1
  62. package/dist/{chunk-D3DQ4ICC.js → chunk-BZMD4EZC.js} +4 -11
  63. package/dist/chunk-BZMD4EZC.js.map +1 -0
  64. package/dist/{chunk-PU5J5EPY.js → chunk-C7TARE5T.js} +5 -5
  65. package/dist/{chunk-PU5J5EPY.js.map → chunk-C7TARE5T.js.map} +1 -1
  66. package/dist/{chunk-5FBD2NTR.js → chunk-DDRX6NNW.js} +6 -9
  67. package/dist/chunk-DDRX6NNW.js.map +1 -0
  68. package/dist/{chunk-HHLQYMPT.js → chunk-DUTKHOH3.js} +4 -4
  69. package/dist/{chunk-HHLQYMPT.js.map → chunk-DUTKHOH3.js.map} +1 -1
  70. package/dist/{chunk-24QD2FTA.js → chunk-EBXTNL52.js} +12 -15
  71. package/dist/chunk-EBXTNL52.js.map +1 -0
  72. package/dist/{chunk-STRBBF45.js → chunk-FOQ32NEP.js} +5 -5
  73. package/dist/chunk-FOQ32NEP.js.map +1 -0
  74. package/dist/{chunk-UIA74JVN.js → chunk-FXG53XY2.js} +5 -5
  75. package/dist/chunk-FXG53XY2.js.map +1 -0
  76. package/dist/{chunk-2KY7P27I.js → chunk-G7LTWXRN.js} +3 -3
  77. package/dist/{chunk-2KY7P27I.js.map → chunk-G7LTWXRN.js.map} +1 -1
  78. package/dist/{chunk-6BK3PIRX.js → chunk-GD3VBO44.js} +6 -6
  79. package/dist/{chunk-6BK3PIRX.js.map → chunk-GD3VBO44.js.map} +1 -1
  80. package/dist/{chunk-MD6HHORY.js → chunk-GPRE2VWB.js} +3 -3
  81. package/dist/{chunk-MD6HHORY.js.map → chunk-GPRE2VWB.js.map} +1 -1
  82. package/dist/{chunk-QZX3RFIC.js → chunk-HJF5AV4L.js} +11 -34
  83. package/dist/chunk-HJF5AV4L.js.map +1 -0
  84. package/dist/{chunk-QFDTG2ZJ.js → chunk-HWPROYKB.js} +3 -3
  85. package/dist/{chunk-QFDTG2ZJ.js.map → chunk-HWPROYKB.js.map} +1 -1
  86. package/dist/chunk-ISISDJ3Z.js +205 -0
  87. package/dist/chunk-ISISDJ3Z.js.map +1 -0
  88. package/dist/{chunk-3LIT5GWF.js → chunk-IW43BO47.js} +57 -19
  89. package/dist/chunk-IW43BO47.js.map +1 -0
  90. package/dist/{chunk-CLEC2RMU.js → chunk-JKEILBHG.js} +3 -3
  91. package/dist/{chunk-CLEC2RMU.js.map → chunk-JKEILBHG.js.map} +1 -1
  92. package/dist/{chunk-TFLSEEM4.js → chunk-KCN3GXRK.js} +3 -3
  93. package/dist/{chunk-TFLSEEM4.js.map → chunk-KCN3GXRK.js.map} +1 -1
  94. package/dist/{chunk-EMUPVA2F.js → chunk-KHV3WV6T.js} +4 -4
  95. package/dist/{chunk-EMUPVA2F.js.map → chunk-KHV3WV6T.js.map} +1 -1
  96. package/dist/{chunk-G6TV6TF7.js → chunk-KJ5PYCJG.js} +4 -12
  97. package/dist/chunk-KJ5PYCJG.js.map +1 -0
  98. package/dist/{chunk-5KS2VSX2.js → chunk-LAM4GIME.js} +4 -4
  99. package/dist/chunk-LAM4GIME.js.map +1 -0
  100. package/dist/{chunk-OCLVMKVC.js → chunk-MDXTENZ4.js} +8 -31
  101. package/dist/chunk-MDXTENZ4.js.map +1 -0
  102. package/dist/{chunk-CP55TVOV.js → chunk-MJUKNUFV.js} +3 -3
  103. package/dist/{chunk-CP55TVOV.js.map → chunk-MJUKNUFV.js.map} +1 -1
  104. package/dist/{chunk-GGTDJEE2.js → chunk-MTNLY7AY.js} +3 -3
  105. package/dist/{chunk-GGTDJEE2.js.map → chunk-MTNLY7AY.js.map} +1 -1
  106. package/dist/{chunk-67J4KBOW.js → chunk-NBIBBLP6.js} +10 -52
  107. package/dist/chunk-NBIBBLP6.js.map +1 -0
  108. package/dist/chunk-NBP4J2QF.js +200 -0
  109. package/dist/chunk-NBP4J2QF.js.map +1 -0
  110. package/dist/{chunk-NGKQBNZ5.js → chunk-NJYJCMKY.js} +3 -3
  111. package/dist/{chunk-NGKQBNZ5.js.map → chunk-NJYJCMKY.js.map} +1 -1
  112. package/dist/{chunk-COPT6I2D.js → chunk-NSEY5IC6.js} +9 -10
  113. package/dist/chunk-NSEY5IC6.js.map +1 -0
  114. package/dist/{chunk-UARVH66B.js → chunk-O4PHGLXF.js} +5 -5
  115. package/dist/{chunk-UARVH66B.js.map → chunk-O4PHGLXF.js.map} +1 -1
  116. package/dist/{chunk-J4DMQV64.js → chunk-OCZC4PDM.js} +3 -3
  117. package/dist/{chunk-J4DMQV64.js.map → chunk-OCZC4PDM.js.map} +1 -1
  118. package/dist/{chunk-IQH3XSOI.js → chunk-ODYHA3O5.js} +4 -4
  119. package/dist/{chunk-IQH3XSOI.js.map → chunk-ODYHA3O5.js.map} +1 -1
  120. package/dist/chunk-OJEZZVZB.js +9 -0
  121. package/dist/{chunk-CMBERB5B.js.map → chunk-OJEZZVZB.js.map} +1 -1
  122. package/dist/{chunk-7IOAIEIA.js → chunk-OTXP2QJ7.js} +6 -6
  123. package/dist/{chunk-7IOAIEIA.js.map → chunk-OTXP2QJ7.js.map} +1 -1
  124. package/dist/{chunk-JSHUWI3C.js → chunk-OUVUK3E7.js} +9 -9
  125. package/dist/chunk-OUVUK3E7.js.map +1 -0
  126. package/dist/{chunk-3KB54OYF.js → chunk-P6ICWO5B.js} +3 -3
  127. package/dist/{chunk-3KB54OYF.js.map → chunk-P6ICWO5B.js.map} +1 -1
  128. package/dist/{chunk-GIU6BZTW.js → chunk-P7PPE4P5.js} +8 -11
  129. package/dist/chunk-P7PPE4P5.js.map +1 -0
  130. package/dist/{chunk-XGFJJ2YB.js → chunk-PVQUVEZV.js} +4 -11
  131. package/dist/chunk-PVQUVEZV.js.map +1 -0
  132. package/dist/{chunk-LCWXIQKA.js → chunk-Q3RL7TOY.js} +4 -4
  133. package/dist/chunk-Q3RL7TOY.js.map +1 -0
  134. package/dist/{chunk-5Q4RBIMZ.js → chunk-Q5B6ROW6.js} +3 -3
  135. package/dist/{chunk-5Q4RBIMZ.js.map → chunk-Q5B6ROW6.js.map} +1 -1
  136. package/dist/{chunk-262EK2XT.js → chunk-Q7ZDP6DS.js} +9 -7
  137. package/dist/chunk-Q7ZDP6DS.js.map +1 -0
  138. package/dist/{chunk-4IBTERDG.js → chunk-QFTOABOJ.js} +3 -3
  139. package/dist/{chunk-4IBTERDG.js.map → chunk-QFTOABOJ.js.map} +1 -1
  140. package/dist/{chunk-JURNPBSW.js → chunk-QINEFXUA.js} +3 -3
  141. package/dist/{chunk-JURNPBSW.js.map → chunk-QINEFXUA.js.map} +1 -1
  142. package/dist/{chunk-FIOKWIJP.js → chunk-QWSD34JA.js} +4 -4
  143. package/dist/{chunk-FIOKWIJP.js.map → chunk-QWSD34JA.js.map} +1 -1
  144. package/dist/{chunk-Q5IUIA6B.js → chunk-RLBAA7WW.js} +3 -3
  145. package/dist/{chunk-Q5IUIA6B.js.map → chunk-RLBAA7WW.js.map} +1 -1
  146. package/dist/{chunk-MJQ6R345.js → chunk-SEC7UN45.js} +5 -5
  147. package/dist/chunk-SEC7UN45.js.map +1 -0
  148. package/dist/chunk-SIA46B4Q.js +9 -0
  149. package/dist/{chunk-RTIFG4XT.js.map → chunk-SIA46B4Q.js.map} +1 -1
  150. package/dist/{chunk-X4HPHMYW.js → chunk-TMPADU74.js} +4 -4
  151. package/dist/{chunk-X4HPHMYW.js.map → chunk-TMPADU74.js.map} +1 -1
  152. package/dist/{chunk-YTHUHPE5.js → chunk-USPWL4KC.js} +3 -3
  153. package/dist/{chunk-YTHUHPE5.js.map → chunk-USPWL4KC.js.map} +1 -1
  154. package/dist/{chunk-U2UNWXBC.js → chunk-VEQ7X2PO.js} +7 -6
  155. package/dist/chunk-VEQ7X2PO.js.map +1 -0
  156. package/dist/{chunk-YZLPO4B2.js → chunk-WRXXU5F6.js} +4 -11
  157. package/dist/chunk-WRXXU5F6.js.map +1 -0
  158. package/dist/{chunk-XNYAQZIB.js → chunk-X4B6I3M4.js} +4 -4
  159. package/dist/{chunk-XNYAQZIB.js.map → chunk-X4B6I3M4.js.map} +1 -1
  160. package/dist/{chunk-JNF7FDJO.js → chunk-XCYEWILH.js} +4 -4
  161. package/dist/{chunk-JNF7FDJO.js.map → chunk-XCYEWILH.js.map} +1 -1
  162. package/dist/{chunk-V2MG5Y5F.js → chunk-XGVQXRLA.js} +4 -4
  163. package/dist/chunk-XGVQXRLA.js.map +1 -0
  164. package/dist/chunk-XIANSPQO.js +11 -0
  165. package/dist/chunk-XIANSPQO.js.map +1 -0
  166. package/dist/{chunk-UNWEH4Z6.js → chunk-XOMPJYYA.js} +4 -4
  167. package/dist/chunk-XOMPJYYA.js.map +1 -0
  168. package/dist/{chunk-UXWUFNXY.js → chunk-XSYSV3R3.js} +3 -3
  169. package/dist/{chunk-UXWUFNXY.js.map → chunk-XSYSV3R3.js.map} +1 -1
  170. package/dist/{chunk-ERBGZZ2U.js → chunk-XZYJUJED.js} +4 -4
  171. package/dist/chunk-XZYJUJED.js.map +1 -0
  172. package/dist/chunk-YMKC3H55.js +921 -0
  173. package/dist/chunk-YMKC3H55.js.map +1 -0
  174. package/dist/{chunk-PFV7YIEP.js → chunk-Z4JNYSV3.js} +4 -4
  175. package/dist/{chunk-PFV7YIEP.js.map → chunk-Z4JNYSV3.js.map} +1 -1
  176. package/dist/{chunk-4V3WHQJE.js → chunk-ZLSCHWTN.js} +4 -4
  177. package/dist/{chunk-4V3WHQJE.js.map → chunk-ZLSCHWTN.js.map} +1 -1
  178. package/dist/chunk-ZQ2WOX4X.js +29 -0
  179. package/dist/chunk-ZQ2WOX4X.js.map +1 -0
  180. package/dist/{chunk-NILG56Z7.js → chunk-ZROHNZDC.js} +4 -4
  181. package/dist/{chunk-NILG56Z7.js.map → chunk-ZROHNZDC.js.map} +1 -1
  182. package/dist/{chunk-PGOCR4LG.js → chunk-ZVYCUG4N.js} +4 -4
  183. package/dist/chunk-ZVYCUG4N.js.map +1 -0
  184. package/dist/components/accordion/index.d.ts +2 -2
  185. package/dist/components/accordion/index.js +3 -2
  186. package/dist/components/alert/index.d.ts +26 -26
  187. package/dist/components/alert/index.js +2 -2
  188. package/dist/components/alert-dialog/index.d.ts +6 -5
  189. package/dist/components/alert-dialog/index.js +6 -6
  190. package/dist/components/aspect-ratio/index.js +2 -2
  191. package/dist/components/avatar/index.d.ts +11 -11
  192. package/dist/components/avatar/index.js +2 -2
  193. package/dist/components/badge/index.d.ts +112 -112
  194. package/dist/components/badge/index.js +2 -2
  195. package/dist/components/breadcrumb/index.js +2 -2
  196. package/dist/components/button/index.d.ts +51 -51
  197. package/dist/components/button/index.js +3 -3
  198. package/dist/components/button-group/index.js +2 -2
  199. package/dist/components/calendar/index.js +10 -10
  200. package/dist/components/card/index.d.ts +22 -22
  201. package/dist/components/card/index.js +2 -1
  202. package/dist/components/carousel/index.js +3 -3
  203. package/dist/components/chart/index.js +2 -2
  204. package/dist/components/checkbox/index.js +2 -2
  205. package/dist/components/collapsible/index.d.ts +2 -2
  206. package/dist/components/collapsible/index.js +3 -2
  207. package/dist/components/combobox/index.d.ts +2 -2
  208. package/dist/components/combobox/index.js +5 -5
  209. package/dist/components/command/index.js +7 -7
  210. package/dist/components/context-menu/index.d.ts +11 -11
  211. package/dist/components/context-menu/index.js +3 -3
  212. package/dist/components/data-table/index.js +3 -3
  213. package/dist/components/date-picker/index.js +6 -6
  214. package/dist/components/dialog/index.d.ts +26 -5
  215. package/dist/components/dialog/index.js +5 -5
  216. package/dist/components/direction/index.js +2 -2
  217. package/dist/components/drawer/index.d.ts +5 -4
  218. package/dist/components/drawer/index.js +5 -5
  219. package/dist/components/dropdown/index.d.ts +3 -3
  220. package/dist/components/dropdown/index.js +3 -3
  221. package/dist/components/dropzone/index.js +3 -3
  222. package/dist/components/empty/index.d.ts +6 -6
  223. package/dist/components/empty/index.js +2 -2
  224. package/dist/components/field/index.d.ts +2 -2
  225. package/dist/components/field/index.js +4 -4
  226. package/dist/components/hover-card/index.d.ts +2 -2
  227. package/dist/components/hover-card/index.js +2 -1
  228. package/dist/components/image/index.js +2 -2
  229. package/dist/components/input/index.d.ts +12 -12
  230. package/dist/components/input/index.js +3 -2
  231. package/dist/components/input-group/index.d.ts +56 -56
  232. package/dist/components/input-group/index.js +5 -5
  233. package/dist/components/input-otp/index.js +2 -2
  234. package/dist/components/item/index.d.ts +31 -31
  235. package/dist/components/item/index.js +3 -3
  236. package/dist/components/kbd/index.d.ts +8 -8
  237. package/dist/components/kbd/index.js +2 -2
  238. package/dist/components/label/index.d.ts +22 -22
  239. package/dist/components/label/index.js +3 -2
  240. package/dist/components/locale-segment-group/index.js +2 -2
  241. package/dist/components/menubar/index.js +3 -3
  242. package/dist/components/native-select/index.d.ts +34 -34
  243. package/dist/components/native-select/index.js +2 -1
  244. package/dist/components/navigation-menu/index.d.ts +2 -2
  245. package/dist/components/navigation-menu/index.js +3 -3
  246. package/dist/components/pagination/index.d.ts +1 -1
  247. package/dist/components/pagination/index.js +3 -3
  248. package/dist/components/popover/index.d.ts +22 -22
  249. package/dist/components/popover/index.js +4 -3
  250. package/dist/components/progress/index.js +2 -2
  251. package/dist/components/prose/index.js +2 -2
  252. package/dist/components/radio-group/index.d.ts +2 -2
  253. package/dist/components/radio-group/index.js +3 -3
  254. package/dist/components/scroll-area/index.js +2 -2
  255. package/dist/components/select/index.js +3 -3
  256. package/dist/components/selectable-card/index.js +3 -3
  257. package/dist/components/separator/index.d.ts +8 -8
  258. package/dist/components/separator/index.js +3 -2
  259. package/dist/components/sheet/index.d.ts +5 -4
  260. package/dist/components/sheet/index.js +5 -5
  261. package/dist/components/sidebar/index.d.ts +3 -3
  262. package/dist/components/sidebar/index.js +10 -10
  263. package/dist/components/skeleton/index.d.ts +22 -22
  264. package/dist/components/skeleton/index.js +2 -1
  265. package/dist/components/slider/index.js +2 -2
  266. package/dist/components/spinner/index.js +2 -2
  267. package/dist/components/switch/index.d.ts +1 -1
  268. package/dist/components/switch/index.js +2 -2
  269. package/dist/components/table/index.js +3 -3
  270. package/dist/components/tabs/index.d.ts +2 -2
  271. package/dist/components/tabs/index.js +3 -3
  272. package/dist/components/textarea/index.d.ts +12 -12
  273. package/dist/components/textarea/index.js +3 -2
  274. package/dist/components/theme-toggle/index.js +4 -4
  275. package/dist/components/toggle/index.d.ts +1 -1
  276. package/dist/components/toggle/index.js +2 -2
  277. package/dist/components/toggle-group/index.d.ts +2 -2
  278. package/dist/components/toggle-group/index.js +2 -2
  279. package/dist/components/tree/index.d.ts +24 -0
  280. package/dist/components/tree/index.js +5 -0
  281. package/dist/components/tree/index.js.map +1 -0
  282. package/dist/components/typography/index.d.ts +2 -2
  283. package/dist/components/typography/index.js +2 -2
  284. package/dist/components/video/index.js +2 -2
  285. package/dist/index.d.ts +25 -24
  286. package/dist/index.js +80 -78
  287. package/dist/lib/interactive/index.js +1 -1
  288. package/dist/lib/utils.d.ts +2 -1
  289. package/dist/lib/utils.js +1 -1
  290. package/dist/{navigationMenuTriggerStyle-BWnESpon.d.ts → navigationMenuTriggerStyle-DUhqCYxO.d.ts} +1 -1
  291. package/dist/theme.css +16 -0
  292. package/dist/utils.d.ts +2 -0
  293. package/dist/utils.js +3 -0
  294. package/dist/utils.js.map +1 -0
  295. package/package.json +34 -25
  296. package/dist/Button-vQnkiVTI.d.ts +0 -84
  297. package/dist/Toggle-CseZl7XN.d.ts +0 -49
  298. package/dist/Typography-ccTtE182.d.ts +0 -64
  299. package/dist/chunk-24QD2FTA.js.map +0 -1
  300. package/dist/chunk-262EK2XT.js.map +0 -1
  301. package/dist/chunk-3LIT5GWF.js.map +0 -1
  302. package/dist/chunk-5FBD2NTR.js.map +0 -1
  303. package/dist/chunk-5KS2VSX2.js.map +0 -1
  304. package/dist/chunk-67J4KBOW.js.map +0 -1
  305. package/dist/chunk-6RASPU5N.js.map +0 -1
  306. package/dist/chunk-BYG2ULS3.js.map +0 -1
  307. package/dist/chunk-CMBERB5B.js +0 -9
  308. package/dist/chunk-COPT6I2D.js.map +0 -1
  309. package/dist/chunk-D3DQ4ICC.js.map +0 -1
  310. package/dist/chunk-ERBGZZ2U.js.map +0 -1
  311. package/dist/chunk-G6TV6TF7.js.map +0 -1
  312. package/dist/chunk-GIU6BZTW.js.map +0 -1
  313. package/dist/chunk-HCTZJYHK.js.map +0 -1
  314. package/dist/chunk-JSHUWI3C.js.map +0 -1
  315. package/dist/chunk-LCWXIQKA.js.map +0 -1
  316. package/dist/chunk-MJQ6R345.js.map +0 -1
  317. package/dist/chunk-MKG3UAP6.js +0 -347
  318. package/dist/chunk-MKG3UAP6.js.map +0 -1
  319. package/dist/chunk-MS2ZNYCJ.js +0 -9
  320. package/dist/chunk-MS2ZNYCJ.js.map +0 -1
  321. package/dist/chunk-OCLVMKVC.js.map +0 -1
  322. package/dist/chunk-PGOCR4LG.js.map +0 -1
  323. package/dist/chunk-PPYJQNE5.js.map +0 -1
  324. package/dist/chunk-QZX3RFIC.js.map +0 -1
  325. package/dist/chunk-RTIFG4XT.js +0 -9
  326. package/dist/chunk-STRBBF45.js.map +0 -1
  327. package/dist/chunk-U2UNWXBC.js.map +0 -1
  328. package/dist/chunk-UEGIKBX6.js +0 -385
  329. package/dist/chunk-UEGIKBX6.js.map +0 -1
  330. package/dist/chunk-UIA74JVN.js.map +0 -1
  331. package/dist/chunk-UNWEH4Z6.js.map +0 -1
  332. package/dist/chunk-V2MG5Y5F.js.map +0 -1
  333. package/dist/chunk-X2YUFNK7.js +0 -18
  334. package/dist/chunk-X2YUFNK7.js.map +0 -1
  335. package/dist/chunk-XGFJJ2YB.js.map +0 -1
  336. package/dist/chunk-YZLPO4B2.js.map +0 -1
@@ -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"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/switch/Switch.tsx","../src/components/switch/index.ts"],"names":[],"mappings":";;;;;AAKA,IAAM,aAAa,EAAA,CAAG;AAAA,EACpB,IAAA,EAAM;AAAA,IACJ,0GAAA;AAAA,IACA,6BAAA;AAAA,IACA,iDAAA;AAAA,IACA,iDAAA;AAAA,IACA,2IAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,OAAA,EAAS,UAAA;AAAA,MACT,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAED,IAAM,cAAc,EAAA,CAAG;AAAA,EACrB,IAAA,EAAM;AAAA,IACJ,sDAAA;AAAA,IACA,uCAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,OAAA,EAAS,2CAAA;AAAA,MACT,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAaM,IAAM,SAAS,CAAC;AAAA,EACrB,cAAA,GAAiB,KAAA;AAAA,EACjB,OAAA;AAAA,EACA,eAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAmB;AACjB,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,cAAc,CAAA;AAC/D,EAAA,MAAM,YAAA,GAAe,OAAO,OAAA,KAAY,SAAA;AACxC,EAAA,MAAM,WAAA,GAAc,eAAe,OAAA,GAAU,YAAA;AAE7C,EAAA,uBACE,IAAA,CAAC,MAAA,EAAA,EAAK,WAAA,EAAU,aAAA,EAAc,OAAM,gCAAA,EAClC,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,IAAA,EAAK,QAAA;AAAA,QACL,cAAA,EAAc,WAAA;AAAA,QACd,WAAA,EAAU,QAAA;AAAA,QACV,YAAA,EAAY,cAAc,SAAA,GAAY,WAAA;AAAA,QACtC,aAAW,IAAA,IAAQ,SAAA;AAAA,QACnB,KAAA,EAAO,GAAG,UAAA,CAAW,EAAE,MAAM,KAAA,EAAO,SAAA,EAAW,CAAC,CAAA;AAAA,QAChD,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,UAAA,MAAM,UAAU,CAAC,WAAA;AACjB,UAAA,IAAI,CAAC,YAAA,EAAc;AACjB,YAAA,eAAA,CAAgB,OAAO,CAAA;AAAA,UACzB;AACA,UAAA,eAAA,GAAkB,OAAO,CAAA;AACzB,UAAA,OAAA,GAAU,KAAK,CAAA;AAAA,QACjB,CAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,QAAA,kBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,cAAA;AAAA,YACV,aAAW,IAAA,IAAQ,SAAA;AAAA,YACnB,YAAA,EAAY,cAAc,SAAA,GAAY,WAAA;AAAA,YACtC,OAAO,EAAA,CAAG,WAAA,CAAY,EAAE,IAAA,EAAM,CAAC;AAAA;AAAA;AACjC;AAAA,KACF;AAAA,IACC,2BAAW,GAAA,CAAC,MAAA,EAAA,EAAK,WAAA,EAAU,cAAA,EAAgB,UAAS,CAAA,GAAU;AAAA,GAAA,EACjE,CAAA;AAEJ;;;AC7FA,IAAO,cAAA,GAAQ","file":"chunk-5KS2VSX2.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\nconst switchRoot = tv({\n base: [\n \"peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-xs\",\n \"outline-none transition-all\",\n \"focus-visible:ring-3 focus-visible:ring-ring/50\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=checked]:bg-primary data-[state=checked]:saturate-125 data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80\",\n \"aria-invalid:ring-destructive/20 aria-invalid:border-destructive\",\n ],\n variants: {\n size: {\n default: \"h-6 w-11\",\n sm: \"h-5 w-9\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n});\n\nconst switchThumb = tv({\n base: [\n \"pointer-events-none block rounded-full bg-background\",\n \"shadow-sm ring-0 transition-transform\",\n \"data-[state=unchecked]:translate-x-0\",\n ],\n variants: {\n size: {\n default: \"size-5 data-[state=checked]:translate-x-5\",\n sm: \"size-4 data-[state=checked]:translate-x-4\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n});\n\ntype SwitchVariants = VariantProps<typeof switchRoot>;\n\nexport type SwitchProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"class\"> &\n SwitchVariants & {\n class?: string;\n defaultChecked?: boolean;\n checked?: boolean;\n onCheckedChange?: (next: boolean) => void;\n children?: ComponentChildren;\n };\n\nexport const Switch = ({\n defaultChecked = false,\n checked,\n onCheckedChange,\n size,\n class: className,\n children,\n onClick,\n ...rest\n}: SwitchProps) => {\n const [localChecked, setLocalChecked] = useState(defaultChecked);\n const isControlled = typeof checked === \"boolean\";\n const nextChecked = isControlled ? checked : localChecked;\n\n return (\n <span data-slot=\"switch-root\" class=\"inline-flex items-center gap-2\">\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={nextChecked}\n data-slot=\"switch\"\n data-state={nextChecked ? \"checked\" : \"unchecked\"}\n data-size={size ?? \"default\"}\n class={cn(switchRoot({ size, class: className }))}\n onClick={(event) => {\n const updated = !nextChecked;\n if (!isControlled) {\n setLocalChecked(updated);\n }\n onCheckedChange?.(updated);\n onClick?.(event);\n }}\n {...rest}\n >\n <span\n data-slot=\"switch-thumb\"\n data-size={size ?? \"default\"}\n data-state={nextChecked ? \"checked\" : \"unchecked\"}\n class={cn(switchThumb({ size }))}\n />\n </button>\n {children ? <span data-slot=\"switch-label\">{children}</span> : null}\n </span>\n );\n};\n","import { Switch } from \"./Switch\";\n\nexport { Switch };\n\nexport default Switch;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/card/Card.tsx","../src/components/card/CardAction.tsx","../src/components/card/CardContent.tsx","../src/components/card/CardDescription.tsx","../src/components/card/CardFooter.tsx","../src/components/card/CardHeader.tsx","../src/components/card/CardTitle.tsx","../src/components/card/index.ts"],"names":["tv","jsx"],"mappings":"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","file":"chunk-67J4KBOW.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nexport const card = tv({\n base: [\n \"bg-card text-card-foreground group/card ring-border flex min-w-0 flex-col rounded-xl ring-1\",\n \"has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0\",\n \"*:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl\",\n ],\n variants: {\n size: {\n default: \"gap-6 py-6\",\n sm: \"gap-4 py-4 text-sm\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n});\n\nexport type CardProps = JSX.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof card> & {\n children?: ComponentChildren;\n };\n\nexport const Card = ({ class: className, size, children, ...rest }: CardProps) => (\n <div\n class={card({ size, class: className as string | undefined })}\n data-slot=\"card\"\n data-size={size ?? \"default\"}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\n\nexport const cardAction = tv({\n base: \"col-start-2 row-span-2 row-start-1 shrink-0 self-start justify-self-end\",\n});\n\nexport type CardActionProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardAction = ({ class: className, ...rest }: CardActionProps) => (\n <div\n class={cardAction({ class: className as string | undefined })}\n data-slot=\"card-action\"\n {...rest}\n />\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\n\nexport const cardContent = tv({\n base: \"px-6 group-data-[size=sm]/card:px-4\",\n});\n\nexport type CardContentProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardContent = ({ class: className, ...rest }: CardContentProps) => (\n <div\n class={cardContent({ class: className as string | undefined })}\n data-slot=\"card-content\"\n {...rest}\n />\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\n\nexport const cardDescription = tv({\n base: \"min-w-0 break-words text-muted-foreground text-sm group-data-[size=sm]/card:text-xs\",\n});\n\nexport type CardDescriptionProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardDescription = ({ class: className, ...rest }: CardDescriptionProps) => (\n <div\n class={cardDescription({ class: className as string | undefined })}\n data-slot=\"card-description\"\n {...rest}\n />\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\n\nexport const cardFooter = tv({\n base: \"bg-muted/50 flex items-center rounded-b-xl border-t p-6 group-data-[size=sm]/card:p-4\",\n});\n\nexport type CardFooterProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardFooter = ({ class: className, ...rest }: CardFooterProps) => (\n <div\n class={cardFooter({ class: className as string | undefined })}\n data-slot=\"card-footer\"\n {...rest}\n />\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\n\nexport const cardHeader = tv({\n base: [\n \"@container/card-header grid w-full min-w-0 auto-rows-min items-start gap-1.5 px-6 group-data-[size=sm]/card:px-4\",\n // minmax(0,1fr) + min-w-0 on title/description keeps CardAction in the second column inside the card (flex preview children)\n \"has-data-[slot=card-action]:grid-cols-[minmax(0,1fr)_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]\",\n ],\n});\n\nexport type CardHeaderProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardHeader = ({ class: className, ...rest }: CardHeaderProps) => (\n <div\n class={cardHeader({ class: className as string | undefined })}\n data-slot=\"card-header\"\n {...rest}\n />\n);\n","import type { JSX } from \"preact\";\nimport { tv } from \"tailwind-variants\";\n\nexport const cardTitle = tv({\n base: \"font-heading min-w-0 break-words text-xl leading-snug font-semibold group-data-[size=sm]/card:text-base\",\n});\n\nexport type CardTitleProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const CardTitle = ({ class: className, ...rest }: CardTitleProps) => (\n <div\n class={cardTitle({ class: className as string | undefined })}\n data-slot=\"card-title\"\n {...rest}\n />\n);\n","import { Card, card } from \"./Card\";\nimport { CardAction, cardAction } from \"./CardAction\";\nimport { CardContent, cardContent } from \"./CardContent\";\nimport { CardDescription, cardDescription } from \"./CardDescription\";\nimport { CardFooter, cardFooter } from \"./CardFooter\";\nimport { CardHeader, cardHeader } from \"./CardHeader\";\nimport { CardTitle, cardTitle } from \"./CardTitle\";\n\nconst CardVariants = {\n card,\n cardAction,\n cardContent,\n cardDescription,\n cardFooter,\n cardHeader,\n cardTitle,\n};\n\nexport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n CardVariants,\n};\n\nexport default {\n Root: Card,\n Header: CardHeader,\n Footer: CardFooter,\n Title: CardTitle,\n Description: CardDescription,\n Content: CardContent,\n Action: CardAction,\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/input/Input.tsx"],"names":[],"mappings":";;;;AAGO,IAAM,QAAQ,EAAA,CAAG;AAAA,EACtB,IAAA,EAAM;AAAA,IACJ,yGAAA;AAAA,IACA,4HAAA;AAAA,IACA,mDAAA;AAAA,IACA,yHAAA;AAAA,IACA,iDAAA;AAAA,IACA,oEAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,MAAM,EAAE,EAAA,EAAI,sBAAsB,EAAA,EAAI,kBAAA,EAAoB,IAAI,sBAAA;AAAuB,GACvF;AAAA,EACA,eAAA,EAAiB,EAAE,IAAA,EAAM,IAAA;AAC3B,CAAC;AAKM,IAAM,KAAA,GAAQ,CAAC,EAAE,IAAA,EAAM,OAAO,SAAA,EAAW,GAAG,MAAK,qBACtD,GAAA;AAAA,EAAC,OAAA;AAAA,EAAA;AAAA,IACC,OAAO,KAAA,CAAM,EAAE,IAAA,EAAM,KAAA,EAAO,WAAiC,CAAA;AAAA,IAC7D,WAAA,EAAU,OAAA;AAAA,IACT,GAAG;AAAA;AACN","file":"chunk-6RASPU5N.js","sourcesContent":["import type { JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nexport const input = tv({\n base: [\n \"border-input dark:bg-input/30 text-foreground min-w-0 w-full rounded-md border bg-transparent shadow-xs\",\n \"outline-none focus-visible:border-outline focus-visible:ring-outline/50 transition-[color,box-shadow] focus-visible:ring-3\",\n \"selection:bg-primary/20 selection:text-foreground\",\n \"file:text-foreground file:my-auto file:me-4 file:h-full file:border-0 file:bg-transparent file:text-sm file:font-medium\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"aria-invalid:border-error aria-invalid:focus-visible:ring-error/40\",\n \"peer placeholder:text-muted-foreground\",\n ],\n variants: {\n size: { sm: \"h-7 px-2.5 text-sm\", md: \"h-8 px-3 text-sm\", lg: \"h-9 px-3.5 text-base\" },\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport type InputProps = Omit<JSX.InputHTMLAttributes<HTMLInputElement>, \"size\"> &\n VariantProps<typeof input>;\n\nexport const Input = ({ size, class: className, ...rest }: InputProps) => (\n <input\n class={input({ size, class: className as string | undefined })}\n data-slot=\"input\"\n {...rest}\n />\n);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/toggle-group/ToggleGroup.tsx","../src/components/toggle-group/ToggleGroupItem.tsx","../src/components/toggle-group/index.ts"],"names":["value","toggleGroupItem","tv","jsx"],"mappings":"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","file":"chunk-BYG2ULS3.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useMemo, useState } from \"preact/hooks\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\ntype ToggleGroupType = \"single\" | \"multiple\";\n\ntype ToggleGroupContextValue = {\n type: ToggleGroupType;\n values: string[];\n toggle: (value: string) => void;\n disabled: boolean;\n itemVariant?: ToggleGroupItemVariants[\"variant\"];\n itemSize?: ToggleGroupItemVariants[\"size\"];\n};\n\nconst ToggleGroupContext = createContext<ToggleGroupContextValue | null>(null);\n\nexport const useToggleGroup = () => {\n const context = useContext(ToggleGroupContext);\n if (!context) throw new Error(\"ToggleGroupItem must be used within ToggleGroup\");\n return context;\n};\n\nconst toggleGroup = tv({\n base: \"inline-flex items-center justify-center\",\n variants: {\n orientation: {\n horizontal: \"flex-row items-center\",\n vertical: \"flex-col items-start\",\n },\n spacing: {\n none: \"gap-0\",\n sm: \"gap-0.5\",\n default: \"gap-1\",\n lg: \"gap-1.5\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n spacing: \"sm\",\n },\n});\n\n// Used for `typeof toggleGroupItem` type extraction below — runtime usage is intentional.\n// oxlint-disable-next-line typescript/no-unused-vars\nconst toggleGroupItem = tv({\n variants: {\n variant: {\n default: undefined,\n outline: undefined,\n pill: undefined,\n },\n size: {\n sm: undefined,\n default: undefined,\n lg: undefined,\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n});\n\ntype ToggleGroupItemVariants = VariantProps<typeof toggleGroupItem>;\n\ntype ToggleGroupBaseProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, \"class\"> &\n VariantProps<typeof toggleGroup> &\n ToggleGroupItemVariants & {\n class?: string;\n type?: ToggleGroupType;\n defaultValue?: string | string[];\n value?: string | string[];\n onValueChange?: (value: string | string[]) => void;\n disabled?: boolean;\n children?: ComponentChildren;\n };\n\ntype SingleToggleGroupProps = ToggleGroupBaseProps & {\n type?: \"single\";\n onValueChange?: (value: string) => void;\n};\n\ntype MultipleToggleGroupProps = ToggleGroupBaseProps & {\n type: \"multiple\";\n onValueChange?: (value: string[]) => void;\n};\n\nexport type ToggleGroupProps = SingleToggleGroupProps | MultipleToggleGroupProps;\n\nconst toValueArray = (input?: string | string[]) => {\n if (Array.isArray(input)) return input;\n if (typeof input === \"string\") return [input];\n return [];\n};\n\nexport const ToggleGroup = ({\n class: className,\n type = \"single\",\n defaultValue,\n value,\n onValueChange,\n disabled = false,\n orientation,\n spacing,\n variant,\n size,\n children,\n ...rest\n}: ToggleGroupProps) => {\n const initial = useMemo(() => {\n if (Array.isArray(defaultValue)) return defaultValue;\n if (typeof defaultValue === \"string\") return [defaultValue];\n return [];\n }, [defaultValue]);\n const [internalValues, setInternalValues] = useState<string[]>(initial);\n const isControlled = value !== undefined;\n const values = isControlled ? toValueArray(value) : internalValues;\n\n const toggle = (value: string) => {\n const exists = values.includes(value);\n const nextValues =\n type === \"single\"\n ? exists\n ? []\n : [value]\n : exists\n ? values.filter((entry) => entry !== value)\n : [...values, value];\n\n if (!isControlled) {\n setInternalValues(nextValues);\n }\n\n if (onValueChange) {\n if (type === \"multiple\") {\n (onValueChange as (value: string[]) => void)(nextValues);\n } else {\n (onValueChange as (value: string) => void)(nextValues[0] ?? \"\");\n }\n }\n };\n\n const resolvedVariant = variant ?? \"default\";\n const resolvedSize = size ?? \"default\";\n\n return (\n <ToggleGroupContext.Provider\n value={{\n type,\n values,\n toggle,\n disabled,\n itemVariant: resolvedVariant,\n itemSize: resolvedSize,\n }}\n >\n {/* oxlint-disable-next-line jsx-a11y/role-supports-aria-props */}\n <div\n data-slot=\"toggle-group\"\n data-orientation={orientation ?? \"horizontal\"}\n data-variant={resolvedVariant}\n data-size={resolvedSize}\n role=\"group\"\n aria-orientation={orientation ?? \"horizontal\"}\n class={cn(toggleGroup({ orientation, spacing, class: className }))}\n {...rest}\n >\n {children}\n </div>\n </ToggleGroupContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\nimport { useToggleGroup } from \"./ToggleGroup\";\n\nconst toggleGroupItem = tv({\n base: [\n \"inline-flex items-center justify-center rounded-sm text-xs font-medium whitespace-nowrap\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-3.5\",\n \"data-[size=sm]:[&_svg:not([class*='size-'])]:size-3\",\n \"data-[size=lg]:[&_svg:not([class*='size-'])]:size-4\",\n \"select-none transition-all outline-none\",\n \"focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/45\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"data-[state=on]:bg-accent data-[state=on]:text-accent-foreground data-[state=on]:shadow-xs\",\n ],\n variants: {\n variant: {\n default: \"bg-transparent hover:bg-muted hover:text-muted-foreground\",\n outline:\n \"border border-input/80 bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/25 dark:border-input/80 dark:hover:bg-input/45\",\n pill: \"rounded-full border border-transparent bg-muted/60 hover:bg-muted\",\n },\n size: {\n sm: \"h-7 min-w-7 gap-0.5 px-1.5 text-[11px] leading-none\",\n default: \"h-8 min-w-8 gap-1 px-2\",\n lg: \"h-9 min-w-9 gap-1.5 px-2.5 text-sm\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n});\n\ntype ToggleGroupItemVariants = VariantProps<typeof toggleGroupItem>;\n\nexport type ToggleGroupItemProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"class\"> &\n ToggleGroupItemVariants & {\n class?: string;\n value: string;\n children?: ComponentChildren;\n };\n\nexport const ToggleGroupItem = ({\n class: className,\n value,\n variant,\n size,\n disabled,\n children,\n onClick,\n ...rest\n}: ToggleGroupItemProps) => {\n const { values, toggle, disabled: groupDisabled, itemVariant, itemSize } = useToggleGroup();\n const pressed = values.includes(value);\n const isDisabled = groupDisabled || disabled;\n const resolvedVariant = variant ?? itemVariant ?? \"default\";\n const resolvedSize = size ?? itemSize ?? \"default\";\n\n return (\n <button\n type=\"button\"\n data-slot=\"toggle-group-item\"\n data-state={pressed ? \"on\" : \"off\"}\n data-variant={resolvedVariant}\n data-size={resolvedSize}\n aria-pressed={pressed}\n disabled={isDisabled}\n class={cn(\n toggleGroupItem({ variant: resolvedVariant, size: resolvedSize, class: className }),\n )}\n onClick={(event) => {\n if (isDisabled) return;\n toggle(value);\n onClick?.(event);\n }}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import { ToggleGroup } from \"./ToggleGroup\";\nimport { ToggleGroupItem } from \"./ToggleGroupItem\";\n\nexport { ToggleGroup, ToggleGroupItem };\n\nexport default {\n Root: ToggleGroup,\n Item: ToggleGroupItem,\n};\n"]}
@@ -1,9 +0,0 @@
1
- import { input, Input } from './chunk-6RASPU5N.js';
2
-
3
- // src/components/input/index.ts
4
- var InputVariants = { input };
5
- var input_default = Input;
6
-
7
- export { InputVariants, input_default };
8
- //# sourceMappingURL=chunk-CMBERB5B.js.map
9
- //# sourceMappingURL=chunk-CMBERB5B.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/badge/Badge.tsx","../src/components/badge/index.ts"],"names":[],"mappings":";;;;;AAIO,IAAM,QAAQ,EAAA,CAAG;AAAA,EACtB,IAAA,EAAM;AAAA,IACJ,uIAAA;AAAA,IACA,cAAA;AAAA,IACA,8CAAA;AAAA,IACA,kDAAA;AAAA,IACA,gFAAA;AAAA,IACA,6FAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,OAAA,EAAS,6DAAA;AAAA,MACT,OAAA,EAAS,kEAAA;AAAA,MACT,SAAA,EAAW,wEAAA;AAAA,MACX,WAAA,EAAa,0EAAA;AAAA,MACb,OAAA,EACE,gHAAA;AAAA,MACF,KAAA,EAAO,6EAAA;AAAA,MACP,IAAA,EAAM,sHAAA;AAAA,MACN,IAAA,EAAM,yDAAA;AAAA,MACN,OAAA,EAAS,kEAAA;AAAA,MACT,OAAA,EAAS,kEAAA;AAAA,MACT,KAAA,EAAO;AAAA,KACT;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,GAAA,EAAK,wEAAA;AAAA,MACL,EAAA,EAAI,oEAAA;AAAA,MACJ,EAAA,EAAI,4DAAA;AAAA,MACJ,EAAA,EAAI,0DAAA;AAAA,MACJ,EAAA,EAAI;AAAA,KACN;AAAA,IACA,MAAA,EAAQ,EAAE,IAAA,EAAM,gBAAA,EAAkB,OAAO,EAAA;AAAG,GAC9C;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,EAAE,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,SAAA,EAAW,WAAW,wBAAA,EAAyB;AAAA,IACxE,EAAE,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,SAAA,EAAW,WAAW,qBAAA,EAAsB;AAAA,IACrE,EAAE,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,WAAA,EAAa,WAAW,uBAAA,EAAwB;AAAA,IACzE,EAAE,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,aAAA,EAAe,WAAW,yBAAA,EAA0B;AAAA,IAC7E,EAAE,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,SAAA,EAAW,WAAW,gBAAA,EAAiB;AAAA,IAChE,EAAE,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,OAAA,EAAS,WAAW,gBAAA,EAAiB;AAAA,IAC9D,EAAE,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,MAAA,EAAQ,WAAW,iBAAA,EAAkB;AAAA,IAC9D,EAAE,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,MAAA,EAAQ,WAAW,kBAAA,EAAmB;AAAA,IAC/D,EAAE,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,SAAA,EAAW,WAAW,qBAAA,EAAsB;AAAA,IACrE,EAAE,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,SAAA,EAAW,WAAW,qBAAA,EAAsB;AAAA,IACrE,EAAE,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,OAAA,EAAS,WAAW,gBAAA;AAAiB,GAChE;AAAA,EACA,iBAAiB,EAAE,OAAA,EAAS,WAAW,IAAA,EAAM,IAAA,EAAM,QAAQ,KAAA;AAC7D,CAAC,CAAA;AAoBM,IAAM,QAAQ,CAAC;AAAA,EACpB,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,GAAG;AACL,CAAA,KAAkB;AAChB,EAAA,MAAM,kBAAkB,OAAA,IAAW,SAAA;AACnC,EAAA,MAAM,eAAe,IAAA,IAAQ,IAAA;AAC7B,EAAA,MAAM,MAAA,GAAS,MAAA,IAAU,IAAA,IAAQ,OAAO,KAAK,IAAA,KAAS,QAAA;AACtD,EAAA,MAAM,MAAA,GAAS,QAAQ,MAAM,CAAA;AAE7B,EAAA,MAAM,gBAAgB,KAAA,CAAM;AAAA,IAC1B,OAAA,EAAS,eAAA;AAAA,IACT,IAAA,EAAM,YAAA;AAAA,IACN,MAAA;AAAA,IACA,KAAA,EAAO;AAAA,GACR,CAAA;AAED,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,IAAI,CAAC,cAAA,CAAe,QAAQ,CAAA,EAAG;AAC7B,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,aAAA,GAAgB,SAAS,IAAA,KAAS,GAAA;AACxC,IAAA,MAAM,UAAA,GAAc,QAAA,CAAS,KAAA,IAAS,EAAC;AAKvC,IAAA,MAAM,eAAe,KAAA,CAAM;AAAA,MACzB,OAAA,EAAS,eAAA;AAAA,MACT,IAAA,EAAM,YAAA;AAAA,MACN,MAAA,EAAQ,aAAA;AAAA,MACR,KAAA,EAAO;AAAA,KACR,CAAA;AAED,IAAA,OAAO,aAAa,QAAA,EAAU;AAAA,MAC5B,GAAI,IAAA;AAAA,MACJ,GAAG,UAAA;AAAA,MACH,OAAO,EAAA,CAAG,YAAA,EAAc,UAAA,CAAW,KAAA,EAAO,WAAW,SAAS,CAAA;AAAA,MAC9D,WAAA,EAAa,OAAA;AAAA,MACb,cAAA,EAAgB;AAAA,KACjB,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,uBACE,GAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,aAAA;AAAA,QACP,WAAA,EAAU,OAAA;AAAA,QACV,cAAA,EAAc,eAAA;AAAA,QACb,GAAI,IAAA;AAAA,QAEJ;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,aAAA;AAAA,MACP,WAAA,EAAU,OAAA;AAAA,MACV,cAAA,EAAc,eAAA;AAAA,MACb,GAAI,IAAA;AAAA,MAEJ;AAAA;AAAA,GACH;AAEJ;;;AC5IA,IAAM,aAAA,GAAgB,EAAE,KAAA;AAIxB,IAAO,aAAA,GAAQ","file":"chunk-COPT6I2D.js","sourcesContent":["import { type ComponentChildren, cloneElement, isValidElement, type JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\nexport const badge = tv({\n base: [\n \"group/badge inline-flex w-fit shrink-0 items-center justify-center gap-1.5 overflow-hidden rounded-full font-medium whitespace-nowrap\",\n \"[&+&]:ms-1.5\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0\",\n \"transition-all outline-none focus-visible:ring-3\",\n \"aria-invalid:border-destructive aria-invalid:focus-visible:ring-destructive/20\",\n \"dark:aria-invalid:border-destructive/50 dark:aria-invalid:focus-visible:ring-destructive/40\",\n \"has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5\",\n ],\n variants: {\n variant: {\n default: \"bg-foreground text-background focus-visible:ring-outline/50\",\n primary: \"bg-primary text-primary-foreground focus-visible:ring-primary/50\",\n secondary: \"bg-secondary text-secondary-foreground focus-visible:ring-secondary/50\",\n destructive: \"bg-destructive text-destructive-foreground focus-visible:ring-outline/50\",\n outline:\n \"border-border bg-background focus-visible:border-outline focus-visible:ring-outline/50 dark:bg-input/30 border\",\n ghost: \"bg-transparent text-foreground hover:bg-muted focus-visible:ring-outline/50\",\n link: \"h-auto rounded-none border-0 bg-transparent p-0 text-primary underline-offset-4 hover:underline focus-visible:ring-0\",\n info: \"bg-info text-info-foreground focus-visible:ring-info/50\",\n success: \"bg-success text-success-foreground focus-visible:ring-success/50\",\n warning: \"bg-warning text-warning-foreground focus-visible:ring-warning/50\",\n error: \"border border-error/60 bg-error/90 text-error-foreground focus-visible:ring-error/50\",\n },\n size: {\n xxs: \"px-2 py-0 text-[10px] leading-4 [&_svg:not([class*='size-'])]:size-2.5\",\n xs: \"px-2.5 py-0 text-xs leading-4 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"px-2.5 py-0.5 text-xs [&_svg:not([class*='size-'])]:size-3\",\n md: \"px-3 py-0.5 text-sm [&_svg:not([class*='size-'])]:size-4\",\n lg: \"px-4 py-1 text-base [&_svg:not([class*='size-'])]:size-4.5\",\n },\n isLink: { true: \"cursor-pointer\", false: \"\" },\n },\n compoundVariants: [\n { isLink: true, variant: \"default\", className: \"hover:bg-foreground/90\" },\n { isLink: true, variant: \"primary\", className: \"hover:bg-primary/90\" },\n { isLink: true, variant: \"secondary\", className: \"hover:bg-secondary/90\" },\n { isLink: true, variant: \"destructive\", className: \"hover:bg-destructive/90\" },\n { isLink: true, variant: \"outline\", className: \"hover:bg-muted\" },\n { isLink: true, variant: \"ghost\", className: \"hover:bg-muted\" },\n { isLink: true, variant: \"link\", className: \"hover:underline\" },\n { isLink: true, variant: \"info\", className: \"hover:bg-info/90\" },\n { isLink: true, variant: \"success\", className: \"hover:bg-success/90\" },\n { isLink: true, variant: \"warning\", className: \"hover:bg-warning/90\" },\n { isLink: true, variant: \"error\", className: \"hover:bg-error\" },\n ],\n defaultVariants: { variant: \"default\", size: \"md\", isLink: false },\n});\n\ntype BadgeCommon = VariantProps<typeof badge> & {\n class?: string;\n children?: ComponentChildren;\n asChild?: boolean;\n};\n\ntype BadgeAsSpan = BadgeCommon &\n JSX.HTMLAttributes<HTMLSpanElement> & {\n href?: undefined;\n };\n\ntype BadgeAsAnchor = BadgeCommon &\n JSX.AnchorHTMLAttributes<HTMLAnchorElement> & {\n href: string;\n };\n\nexport type BadgeProps = BadgeAsSpan | BadgeAsAnchor;\n\nexport const Badge = ({\n variant,\n size,\n class: className,\n children,\n asChild = false,\n ...rest\n}: BadgeProps) => {\n const resolvedVariant = variant ?? \"default\";\n const resolvedSize = size ?? \"md\";\n const isHref = \"href\" in rest && typeof rest.href === \"string\";\n const isLink = Boolean(isHref);\n\n const resolvedClass = badge({\n variant: resolvedVariant,\n size: resolvedSize,\n isLink,\n class: className,\n });\n\n if (asChild) {\n if (!isValidElement(children)) {\n return null;\n }\n\n const childIsAnchor = children.type === \"a\";\n const childProps = (children.props ?? {}) as JSX.HTMLAttributes<HTMLElement> & {\n class?: string;\n className?: string;\n };\n\n const asChildClass = badge({\n variant: resolvedVariant,\n size: resolvedSize,\n isLink: childIsAnchor,\n class: className,\n });\n\n return cloneElement(children, {\n ...(rest as JSX.HTMLAttributes<HTMLElement>),\n ...childProps,\n class: cn(asChildClass, childProps.class, childProps.className),\n \"data-slot\": \"badge\",\n \"data-variant\": resolvedVariant,\n });\n }\n\n if (isHref) {\n return (\n <a\n class={resolvedClass}\n data-slot=\"badge\"\n data-variant={resolvedVariant}\n {...(rest as JSX.AnchorHTMLAttributes<HTMLAnchorElement>)}\n >\n {children}\n </a>\n );\n }\n\n return (\n <span\n class={resolvedClass}\n data-slot=\"badge\"\n data-variant={resolvedVariant}\n {...(rest as JSX.HTMLAttributes<HTMLSpanElement>)}\n >\n {children}\n </span>\n );\n};\n","import { Badge, badge } from \"./Badge\";\n\nconst BadgeVariants = { badge };\n\nexport { Badge, BadgeVariants };\n\nexport default Badge;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/label/Label.tsx"],"names":[],"mappings":";;;;AAGO,IAAM,QAAQ,EAAA,CAAG;AAAA,EACtB,IAAA,EAAM;AAAA,IACJ,sDAAA;AAAA,IACA,2DAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU,EAAE,IAAA,EAAM,EAAE,EAAA,EAAI,WAAW,EAAA,EAAI,WAAA,EAAa,EAAA,EAAI,SAAA,EAAU,EAAE;AAAA,EACpE,eAAA,EAAiB,EAAE,IAAA,EAAM,IAAA;AAC3B,CAAC;AAKM,IAAM,KAAA,GAAQ,CAAC,EAAE,IAAA,EAAM,OAAO,SAAA,EAAW,GAAG,MAAK,qBACtD,GAAA;AAAA,EAAC,OAAA;AAAA,EAAA;AAAA,IACC,OAAO,KAAA,CAAM,EAAE,IAAA,EAAM,KAAA,EAAO,WAAiC,CAAA;AAAA,IAC7D,WAAA,EAAU,OAAA;AAAA,IACT,GAAG;AAAA;AACN","file":"chunk-D3DQ4ICC.js","sourcesContent":["import type { JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nexport const label = tv({\n base: [\n \"text-foreground select-none font-medium leading-none\",\n \"peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n \"has-[+:disabled]:cursor-not-allowed has-[+:disabled]:opacity-70\",\n ],\n variants: { size: { sm: \"text-sm\", md: \"text-base\", lg: \"text-lg\" } },\n defaultVariants: { size: \"sm\" },\n});\n\nexport type LabelProps = Omit<JSX.LabelHTMLAttributes<HTMLLabelElement>, \"size\"> &\n VariantProps<typeof label>;\n\nexport const Label = ({ size, class: className, ...rest }: LabelProps) => (\n <label\n class={label({ size, class: className as string | undefined })}\n data-slot=\"label\"\n {...rest}\n />\n);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/kbd/Kbd.tsx","../src/components/kbd/KbdGroup.tsx"],"names":["jsx"],"mappings":";;;;AAGO,IAAM,MAAM,EAAA,CAAG;AAAA,EACpB,IAAA,EAAM;AAAA,IACJ,iGAAA;AAAA,IACA,gGAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,qDAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAOM,IAAM,GAAA,GAAM,CAAC,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,QAAA,EAAU,GAAG,IAAA,EAAK,qBAC9D,GAAA,CAAC,KAAA,EAAA,EAAI,aAAU,KAAA,EAAM,KAAA,EAAO,GAAA,CAAI,EAAE,IAAA,EAAM,KAAA,EAAO,WAAiC,CAAA,EAAI,GAAG,IAAA,EACpF,QAAA,EACH;ACrBK,IAAM,QAAA,GAAW,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,GAAG,MAAK,qBAC7DA,IAAC,MAAA,EAAA,EAAK,WAAA,EAAU,aAAY,KAAA,EAAO,EAAA,CAAG,kCAAkC,SAAS,CAAA,EAAI,GAAG,IAAA,EACrF,QAAA,EACH","file":"chunk-ERBGZZ2U.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nexport const kbd = tv({\n base: [\n \"pointer-events-none inline-flex select-none items-center justify-center gap-1 whitespace-nowrap\",\n \"rounded-md border border-border bg-muted font-mono font-medium text-muted-foreground shadow-xs\",\n \"data-[icon=inline-end]:translate-x-0.5\",\n ],\n variants: {\n size: {\n sm: \"h-5 min-h-5 min-w-5 px-1.5 text-[11px] leading-none\",\n md: \"h-6 min-h-6 min-w-6 px-2 text-xs leading-none\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type KbdProps = Omit<JSX.HTMLAttributes<HTMLElement>, \"size\"> &\n VariantProps<typeof kbd> & {\n children?: ComponentChildren;\n };\n\nexport const Kbd = ({ class: className, size, children, ...rest }: KbdProps) => (\n <kbd data-slot=\"kbd\" class={kbd({ size, class: className as string | undefined })} {...rest}>\n {children}\n </kbd>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type KbdGroupProps = JSX.HTMLAttributes<HTMLSpanElement> & {\n children?: ComponentChildren;\n};\n\nexport const KbdGroup = ({ class: className, children, ...rest }: KbdGroupProps) => (\n <span data-slot=\"kbd-group\" class={cn(\"inline-flex items-center gap-1\", className)} {...rest}>\n {children}\n </span>\n);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/native-select/NativeSelect.tsx","../src/components/native-select/NativeSelectOptGroup.tsx","../src/components/native-select/NativeSelectOption.tsx","../src/components/native-select/index.ts"],"names":["jsx"],"mappings":";;;;AAGO,IAAM,sBAAsB,EAAA,CAAG;AAAA,EACpC,IAAA,EAAM;AAAA;AAAA,IAEJ;AAAA;AAEJ,CAAC,CAAA;AAEM,IAAM,eAAe,EAAA,CAAG;AAAA,EAC7B,IAAA,EAAM;AAAA,IACJ,wIAAA;AAAA,IACA,4BAAA;AAAA,IACA,8HAAA;AAAA,IACA,4BAAA;AAAA,IACA,oFAAA;AAAA,IACA,iFAAA;AAAA,IACA,0DAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,4CAAA;AAAA,MACJ,EAAA,EAAI,6CAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAEM,IAAM,mBAAmB,EAAA,CAAG;AAAA,EACjC,IAAA,EAAM,CAAC,6EAA6E,CAAA;AAAA,EACpF,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,kBAAA;AAAA,MACJ,EAAA,EAAI,cAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAQM,IAAM,eAAe,CAAC;AAAA,EAC3B,KAAA,EAAO,SAAA;AAAA,EACP,IAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACE,IAAA,CAAC,SAAI,KAAA,EAAO,mBAAA,IAAuB,WAAA,EAAW,IAAA,EAAM,aAAU,uBAAA,EAC5D,QAAA,EAAA;AAAA,kBAAA,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,OAAO,YAAA,CAAa,EAAE,IAAA,EAAM,KAAA,EAAO,WAAiC,CAAA;AAAA,MACpE,WAAA,EAAU,eAAA;AAAA,MACT,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAAA,EACC,IAAA,oBACC,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,GAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,aAAA,EAAY,MAAA;AAAA,MACZ,KAAA,EAAO,gBAAA,CAAiB,EAAE,IAAA,EAAM,CAAA;AAAA,MAChC,WAAA,EAAU,oBAAA;AAAA,MAEV,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,cAAA,EAAe;AAAA;AAAA;AACzB,CAAA,EAEJ;AC7EK,IAAM,oBAAA,GAAuB,CAAC,EAAE,QAAA,EAAU,GAAG,IAAA,EAAK,qBACvDA,GAAAA,CAAC,UAAA,EAAA,EAAU,GAAG,IAAA,EAAO,QAAA,EAAS;ACDzB,IAAM,kBAAA,GAAqB,CAAC,EAAE,QAAA,EAAU,GAAG,IAAA,EAAK,qBACrDA,GAAAA,CAAC,QAAA,EAAA,EAAQ,GAAG,IAAA,EAAO,QAAA,EAAS;;;ACH9B,IAAM,oBAAA,GAAuB;AAAA,EAC3B,YAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF;AAIA,IAAO,qBAAA,GAAQ;AAAA,EACb,IAAA,EAAM,YAAA;AAAA,EACN,MAAA,EAAQ,kBAAA;AAAA,EACR,QAAA,EAAU;AACZ","file":"chunk-G6TV6TF7.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nexport const nativeSelectWrapper = tv({\n base: [\n /* min-w-0 + no w-fit: column flex + w-full on <select> must resolve to parent width (w-fit breaks that). */\n \"group/native-select relative isolate min-w-0 max-w-full has-[select:disabled]:opacity-50\",\n ],\n});\n\nexport const nativeSelect = tv({\n base: [\n \"border-input dark:bg-input/30 text-foreground ring-offset-background min-h-0 min-w-0 w-full rounded-md border bg-transparent shadow-xs\",\n \"invalid:text-foreground/85\",\n \"placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground appearance-none bg-none select-none\",\n \"[&_option]:text-foreground\",\n \"hover:border-foreground/20 transition-[color,box-shadow,border-color] outline-none\",\n \"focus-visible:border-outline focus-visible:ring-outline/50 focus-visible:ring-3\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed\",\n \"aria-invalid:border-error aria-invalid:focus-visible:ring-error/40 aria-invalid:focus-visible:ring-3\",\n ],\n variants: {\n size: {\n sm: \"min-h-8 py-1 pe-9 ps-2.5 text-sm leading-5\",\n md: \"min-h-9 py-1.5 pe-10 ps-3 text-sm leading-5\",\n lg: \"min-h-11 py-2 pe-11 ps-3.5 text-base leading-6\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport const nativeSelectIcon = tv({\n base: [\"text-muted-foreground pointer-events-none absolute top-1/2 -translate-y-1/2\"],\n variants: {\n size: {\n sm: \"end-2.5 size-3.5\",\n md: \"end-3 size-4\",\n lg: \"end-3.5 size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type NativeSelectProps = Omit<JSX.SelectHTMLAttributes<HTMLSelectElement>, \"size\"> &\n VariantProps<typeof nativeSelect> & {\n icon?: ComponentChildren;\n children?: ComponentChildren;\n };\n\nexport const NativeSelect = ({\n class: className,\n size,\n icon,\n children,\n ...rest\n}: NativeSelectProps) => (\n <div class={nativeSelectWrapper()} data-size={size} data-slot=\"native-select-wrapper\">\n <select\n class={nativeSelect({ size, class: className as string | undefined })}\n data-slot=\"native-select\"\n {...rest}\n >\n {children}\n </select>\n {icon ?? (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n class={nativeSelectIcon({ size })}\n data-slot=\"native-select-icon\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n )}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\n\nexport type NativeSelectOptGroupProps = JSX.OptgroupHTMLAttributes<HTMLOptGroupElement> & {\n children?: ComponentChildren;\n};\n\nexport const NativeSelectOptGroup = ({ children, ...rest }: NativeSelectOptGroupProps) => (\n <optgroup {...rest}>{children}</optgroup>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\n\nexport type NativeSelectOptionProps = JSX.OptionHTMLAttributes<HTMLOptionElement> & {\n children?: ComponentChildren;\n};\n\nexport const NativeSelectOption = ({ children, ...rest }: NativeSelectOptionProps) => (\n <option {...rest}>{children}</option>\n);\n","import { NativeSelect, nativeSelect, nativeSelectIcon, nativeSelectWrapper } from \"./NativeSelect\";\nimport { NativeSelectOptGroup } from \"./NativeSelectOptGroup\";\nimport { NativeSelectOption } from \"./NativeSelectOption\";\n\nconst NativeSelectVariants = {\n nativeSelect,\n nativeSelectIcon,\n nativeSelectWrapper,\n};\n\nexport { NativeSelect, NativeSelectOptGroup, NativeSelectOption, NativeSelectVariants };\n\nexport default {\n Root: NativeSelect,\n Option: NativeSelectOption,\n OptGroup: NativeSelectOptGroup,\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/item/Item.tsx","../src/components/item/ItemActions.tsx","../src/components/item/ItemContent.tsx","../src/components/item/ItemDescription.tsx","../src/components/item/ItemFooter.tsx","../src/components/item/ItemGroup.tsx","../src/components/item/ItemHeader.tsx","../src/components/item/ItemMedia.tsx","../src/components/item/ItemSeparator.tsx","../src/components/item/ItemTitle.tsx"],"names":["jsx","tv"],"mappings":"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","file":"chunk-GIU6BZTW.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 item = tv({\n base: [\n \"group/item flex flex-wrap items-center rounded-md border border-transparent text-sm outline-none transition-[color,background-color,box-shadow] duration-100\",\n \"[a]:transition-colors [a]:hover:bg-accent/50\",\n \"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\",\n ],\n variants: {\n variant: {\n default: \"bg-transparent hover:bg-muted/40\",\n outline: \"border-border hover:bg-accent/35\",\n muted: \"bg-muted/50 hover:bg-muted/65\",\n },\n size: {\n default: \"gap-4 p-4\",\n sm: \"gap-2.5 px-4 py-3\",\n xs: \"gap-2 px-3 py-2 text-xs\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n});\n\nexport type ItemProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, \"size\"> &\n VariantProps<typeof item> & {\n children?: ComponentChildren;\n asChild?: boolean;\n };\n\nexport const Item = ({\n variant,\n size,\n asChild = false,\n class: className,\n children,\n ...rest\n}: ItemProps) => {\n const resolvedVariant = variant ?? \"default\";\n const resolvedSize = size ?? \"default\";\n const resolvedClassName = item({\n variant: resolvedVariant,\n size: resolvedSize,\n class: className as string | undefined,\n });\n\n if (asChild) {\n if (!isValidElement(children)) {\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\": \"item\",\n \"data-variant\": resolvedVariant,\n \"data-size\": resolvedSize,\n });\n }\n\n return (\n <div\n data-slot=\"item\"\n data-variant={resolvedVariant}\n data-size={resolvedSize}\n class={resolvedClassName}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ItemActionsProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ItemActions = ({ class: className, children, ...rest }: ItemActionsProps) => (\n <div data-slot=\"item-actions\" class={cn(\"flex items-center gap-2\", className)} {...rest}>\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ItemContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ItemContent = ({ class: className, children, ...rest }: ItemContentProps) => (\n <div\n data-slot=\"item-content\"\n class={cn(\"flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ItemDescriptionProps = JSX.HTMLAttributes<HTMLParagraphElement> & {\n children?: ComponentChildren;\n};\n\nexport const ItemDescription = ({ class: className, children, ...rest }: ItemDescriptionProps) => (\n <p\n data-slot=\"item-description\"\n class={cn(\n \"text-muted-foreground line-clamp-2 text-balance text-sm font-normal leading-normal\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className,\n )}\n {...rest}\n >\n {children}\n </p>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ItemFooterProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ItemFooter = ({ class: className, children, ...rest }: ItemFooterProps) => (\n <div\n data-slot=\"item-footer\"\n class={cn(\"flex basis-full items-center justify-between gap-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 ItemGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ItemGroup = ({ class: className, children, ...rest }: ItemGroupProps) => (\n <div\n role=\"list\"\n data-slot=\"item-group\"\n class={cn(\"group/item-group flex flex-col\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ItemHeaderProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ItemHeader = ({ class: className, children, ...rest }: ItemHeaderProps) => (\n <div\n data-slot=\"item-header\"\n class={cn(\"flex basis-full items-center justify-between gap-2\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\nexport const itemMedia = tv({\n base: [\n \"flex shrink-0 items-center justify-center gap-2\",\n \"group-has-[[data-slot=item-description]]/item:translate-y-0.5 group-has-[[data-slot=item-description]]/item:self-start\",\n \"[&_svg]:pointer-events-none\",\n ],\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4\",\n image: \"size-10 overflow-hidden rounded-sm [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\nexport type ItemMediaProps = JSX.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof itemMedia> & {\n children?: ComponentChildren;\n };\n\nexport const ItemMedia = ({ variant, class: className, children, ...rest }: ItemMediaProps) => {\n const resolvedVariant = variant ?? \"default\";\n return (\n <div\n data-slot=\"item-media\"\n data-variant={resolvedVariant}\n class={cn(itemMedia({ variant: resolvedVariant, class: className as string | undefined }))}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import { cn } from \"../../lib/utils\";\nimport { Separator, type SeparatorProps } from \"../separator/Separator\";\n\nexport const ItemSeparator = ({ class: className, ...rest }: SeparatorProps) => (\n <Separator\n orientation=\"horizontal\"\n class={cn(\"my-0\", className)}\n data-slot=\"item-separator\"\n {...rest}\n />\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ItemTitleProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ItemTitle = ({ class: className, children, ...rest }: ItemTitleProps) => (\n <div\n data-slot=\"item-title\"\n class={cn(\"flex w-fit items-center gap-2 text-sm font-medium leading-snug\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/tabs/Tabs.tsx","../src/components/tabs/TabsContent.tsx","../src/components/tabs/TabsList.tsx","../src/components/tabs/TabsTrigger.tsx","../src/components/tabs/index.ts"],"names":["jsx"],"mappings":";;;;;;;AAeA,IAAM,WAAA,GAAc,cAAuC,IAAI,CAAA;AAExD,IAAM,UAAU,MAAM;AAC3B,EAAA,MAAM,OAAA,GAAU,WAAW,WAAW,CAAA;AACtC,EAAA,IAAI,CAAC,OAAA,EAAS,MAAM,IAAI,MAAM,6CAA6C,CAAA;AAC3E,EAAA,OAAO,OAAA;AACT,CAAA;AAiBA,IAAM,YAAA,uBAAmB,GAAA,EAA+B;AAExD,IAAM,oBAAA,GAAuB,CAAC,GAAA,EAAa,YAAA,KAA4C;AACrF,EAAA,MAAM,QAAA,GAAW,YAAA,CAAa,GAAA,CAAI,GAAG,CAAA;AACrC,EAAA,IAAI,UAAU,OAAO,QAAA;AAErB,EAAA,MAAM,OAAA,GAA6B;AAAA,IACjC,KAAA,EAAO,YAAA;AAAA,IACP,WAAA,sBAAiB,GAAA,EAAoB;AAAA,IACrC,cAAA,EAAgB;AAAA,GAClB;AACA,EAAA,YAAA,CAAa,GAAA,CAAI,KAAK,OAAO,CAAA;AAC7B,EAAA,OAAO,OAAA;AACT,CAAA;AAEO,IAAM,OAAO,CAAC;AAAA,EACnB,YAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA,GAAc,YAAA;AAAA,EACd,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAiB;AACf,EAAA,MAAM,CAAC,KAAA,EAAO,aAAa,CAAA,GAAI,SAAS,YAAY,CAAA;AACpD,EAAA,MAAM,MAAA,GAAS,QAAQ,MAAM,eAAA,CAAgB,MAAM,CAAA,EAAE,EAAG,EAAE,CAAA;AAC1D,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,MAAM,CAAC,QAAA,KAAqB,CAAA,EAAG,MAAM,CAAA,SAAA,EAAY,QAAQ,CAAA,CAAA,EAAI,CAAC,MAAM,CAAC,CAAA;AAC/F,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,MAAM,CAAC,QAAA,KAAqB,CAAA,EAAG,MAAM,CAAA,SAAA,EAAY,QAAQ,CAAA,CAAA,EAAI,CAAC,MAAM,CAAC,CAAA;AAC/F,EAAA,MAAM,QAAA,GAAW,CAAC,IAAA,KAAiB;AACjC,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,aAAA,CAAc,IAAI,CAAA;AAClB,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,SAAA,GAAY,oBAAA,CAAqB,OAAA,EAAS,KAAK,CAAA;AACrD,IAAA,IAAI,SAAA,CAAU,UAAU,IAAA,EAAM;AAE9B,IAAA,SAAA,CAAU,KAAA,GAAQ,IAAA;AAClB,IAAA,aAAA,CAAc,IAAI,CAAA;AAClB,IAAA,SAAA,CAAU,YAAY,OAAA,CAAQ,CAAC,UAAA,KAAe,UAAA,CAAW,IAAI,CAAC,CAAA;AAAA,EAChE,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,OAAA,EAAS;AAEd,IAAA,MAAM,SAAA,GAAY,oBAAA,CAAqB,OAAA,EAAS,YAAY,CAAA;AAC5D,IAAA,SAAA,CAAU,cAAA,IAAkB,CAAA;AAC5B,IAAA,aAAA,CAAc,UAAU,KAAK,CAAA;AAE7B,IAAA,MAAM,UAAA,GAA6B,CAAC,SAAA,KAAc;AAChD,MAAA,aAAA,CAAc,CAAC,YAAA,KAAiB;AAC9B,QAAA,IAAI,YAAA,KAAiB,WAAW,OAAO,YAAA;AACvC,QAAA,OAAO,SAAA;AAAA,MACT,CAAC,CAAA;AAAA,IACH,CAAA;AACA,IAAA,SAAA,CAAU,WAAA,CAAY,IAAI,UAAU,CAAA;AAEpC,IAAA,OAAO,MAAM;AACX,MAAA,SAAA,CAAU,WAAA,CAAY,OAAO,UAAU,CAAA;AACvC,MAAA,SAAA,CAAU,cAAA,IAAkB,CAAA;AAC5B,MAAA,IAAI,SAAA,CAAU,kBAAkB,CAAA,EAAG;AACjC,QAAA,YAAA,CAAa,OAAO,OAAO,CAAA;AAAA,MAC7B;AAAA,IACF,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,YAAA,EAAc,OAAO,CAAC,CAAA;AAE1B,EAAA,uBACE,GAAA,CAAC,WAAA,CAAY,QAAA,EAAZ,EAAqB,KAAA,EAAO,EAAE,KAAA,EAAO,QAAA,EAAU,WAAA,EAAa,MAAA,EAAQ,SAAA,EAAW,SAAA,EAAU,EACxF,QAAA,kBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAA,CAAG,YAAA,EAAc,SAAS,CAAA;AAAA,MACjC,WAAA,EAAU,MAAA;AAAA,MACV,kBAAA,EAAkB,WAAA;AAAA,MACjB,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;ACzGO,IAAM,cAAc,CAAC;AAAA,EAC1B,KAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,EAAA,EAAI,MAAA;AAAA,EACJ,GAAG;AACL,CAAA,KAAwB;AACtB,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,MAAA,GAAS,KAAK,KAAA,KAAU,KAAA;AAC9B,EAAA,MAAM,EAAA,GAAK,MAAA,IAAU,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA;AACzC,EAAA,MAAM,UAAA,GAAa,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA;AAEvC,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,UAAA,EAAY,OAAO,IAAA;AAEnC,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,UAAA;AAAA,MACL,EAAA;AAAA,MACA,iBAAA,EAAiB,UAAA;AAAA,MACjB,aAAA,EAAa,CAAC,MAAA,IAAU,MAAA;AAAA,MACxB,WAAA,EAAU,cAAA;AAAA,MACV,YAAA,EAAY,SAAS,QAAA,GAAW,UAAA;AAAA,MAChC,KAAA,EAAO,EAAA;AAAA,QACL,4FAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAU,CAAA;AAAA,MACV,MAAA,EAAQ,CAAC,MAAA,IAAU,UAAA,GAAa,IAAA,GAAO,MAAA;AAAA,MACtC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;ACvCA,IAAM,WAAW,EAAA,CAAG;AAAA,EAClB,IAAA,EAAM;AAAA,IACJ,2HAAA;AAAA,IACA,4DAAA;AAAA,IACA,oGAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,OAAA,EAAS,EAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AAOM,IAAM,QAAA,GAAW,CAAC,EAAE,OAAA,EAAS,OAAO,SAAA,EAAW,QAAA,EAAU,GAAG,IAAA,EAAK,KAAqB;AAC3F,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,SAAA;AAAA,MACL,oBAAkB,IAAA,CAAK,WAAA;AAAA,MACvB,OAAO,EAAA,CAAG,QAAA,CAAS,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,MAC1C,WAAA,EAAU,WAAA;AAAA,MACV,gBAAc,OAAA,IAAW,SAAA;AAAA,MACzB,oBAAkB,IAAA,CAAK,WAAA;AAAA,MACtB,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;ACnCO,IAAM,cAAc,CAAC;AAAA,EAC1B,KAAA;AAAA,EACA,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,EAAA,EAAI,MAAA;AAAA,EACJ,GAAG;AACL,CAAA,KAAwB;AACtB,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,MAAA,GAAS,KAAK,KAAA,KAAU,KAAA;AAC9B,EAAA,MAAM,EAAA,GAAK,MAAA,IAAU,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA;AACzC,EAAA,MAAM,UAAA,GAAa,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA;AAEvC,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,IAAA,EAAK,KAAA;AAAA,MACL,EAAA;AAAA,MACA,eAAA,EAAe,UAAA;AAAA,MACf,KAAA,EAAO,EAAA;AAAA,QACL,qPAAA;AAAA,QACA,yGAAA;AAAA,QACA,oGAAA;AAAA,QACA,gKAAA;AAAA,QACA,6EAAA;AAAA,QACA,0EAAA;AAAA,QACA,8NAAA;AAAA,QACA,qIAAA;AAAA,QACA,oQAAA;AAAA,QACA,mOAAA;AAAA,QACA,mFAAA;AAAA,QACA,yQAAA;AAAA,QACA,uJAAA;AAAA,QACA,6JAAA;AAAA,QACA,6JAAA;AAAA,QACA,6EAAA;AAAA,QACA,4KAAA;AAAA,QACA,iKAAA;AAAA,QACA,iJAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,WAAA,EAAU,cAAA;AAAA,MACV,YAAA,EAAY,SAAS,QAAA,GAAW,UAAA;AAAA,MAChC,aAAA,EAAa,SAAS,MAAA,GAAS,MAAA;AAAA,MAC/B,YAAA,EAAY,KAAA;AAAA,MACZ,oBAAkB,IAAA,CAAK,WAAA;AAAA,MACvB,eAAA,EAAe,MAAA;AAAA,MACf,QAAA,EAAU,SAAS,CAAA,GAAI,EAAA;AAAA,MACvB,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,QAAA,IAAA,CAAK,SAAS,KAAK,CAAA;AACnB,QAAA,OAAA,GAAU,KAAK,CAAA;AAAA,MACjB,CAAA;AAAA,MACA,SAAA,EAAW,CAAC,KAAA,KAAU;AACpB,QAAA,SAAA,GAAY,KAAK,CAAA;AACjB,QAAA,IAAI,MAAM,gBAAA,EAAkB;AAC5B,QAAA,IAAI,CAAC,CAAC,WAAA,EAAa,YAAA,EAAc,SAAA,EAAW,WAAA,EAAa,MAAA,EAAQ,KAAK,CAAA,CAAE,QAAA,CAAS,KAAA,CAAM,GAAG,CAAA;AACxF,UAAA;AAEF,QAAA,MAAM,OAAA,GAAU,KAAA,CAAM,aAAA,CAAc,OAAA,CAAQ,kBAAkB,CAAA;AAC9D,QAAA,IAAI,CAAC,OAAA,EAAS;AAEd,QAAA,MAAM,WAAW,KAAA,CAAM,IAAA;AAAA,UACrB,OAAA,CAAQ,iBAAoC,8BAA8B;AAAA,SAC5E;AACA,QAAA,MAAM,YAAA,GAAe,QAAA,CAAS,OAAA,CAAQ,KAAA,CAAM,aAAa,CAAA;AACzD,QAAA,IAAI,YAAA,KAAiB,EAAA,IAAM,QAAA,CAAS,MAAA,KAAW,CAAA,EAAG;AAElD,QAAA,MAAM,UAAA,GAAa,KAAK,WAAA,KAAgB,YAAA;AACxC,QAAA,IAAI,SAAA,GAAY,YAAA;AAEhB,QAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,MAAA,EAAQ,SAAA,GAAY,CAAA;AACtC,QAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,KAAA,EAAO,SAAA,GAAY,SAAS,MAAA,GAAS,CAAA;AACvD,QAAA,IAAI,KAAA,CAAM,QAAQ,YAAA,IAAgB,UAAA;AAChC,UAAA,SAAA,GAAA,CAAa,YAAA,GAAe,KAAK,QAAA,CAAS,MAAA;AAC5C,QAAA,IAAI,KAAA,CAAM,QAAQ,WAAA,IAAe,UAAA;AAC/B,UAAA,SAAA,GAAA,CAAa,YAAA,GAAe,CAAA,GAAI,QAAA,CAAS,MAAA,IAAU,QAAA,CAAS,MAAA;AAC9D,QAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,WAAA,IAAe,CAAC,UAAA;AAChC,UAAA,SAAA,GAAA,CAAa,YAAA,GAAe,KAAK,QAAA,CAAS,MAAA;AAC5C,QAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,SAAA,IAAa,CAAC,UAAA;AAC9B,UAAA,SAAA,GAAA,CAAa,YAAA,GAAe,CAAA,GAAI,QAAA,CAAS,MAAA,IAAU,QAAA,CAAS,MAAA;AAE9D,QAAA,IAAI,cAAc,YAAA,EAAc;AAChC,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,MAAM,IAAA,GAAO,SAAS,SAAS,CAAA;AAC/B,QAAA,IAAA,CAAK,KAAA,EAAM;AACX,QAAA,MAAM,SAAA,GAAY,IAAA,CAAK,YAAA,CAAa,YAAY,CAAA;AAChD,QAAA,IAAI,SAAA,EAAW,IAAA,CAAK,QAAA,CAAS,SAAS,CAAA;AAAA,MACxC,CAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;;;AChGA,IAAO,YAAA,GAAQ;AAAA,EACb,IAAA,EAAM,IAAA;AAAA,EACN,IAAA,EAAM,QAAA;AAAA,EACN,OAAA,EAAS,WAAA;AAAA,EACT,OAAA,EAAS;AACX","file":"chunk-HCTZJYHK.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useEffect, useMemo, useState } from \"preact/hooks\";\nimport { createIdFactory } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\n\ntype TabsContextValue = {\n value: string;\n setValue: (next: string) => void;\n orientation: \"horizontal\" | \"vertical\";\n baseId: string;\n triggerId: (tabValue: string) => string;\n contentId: (tabValue: string) => string;\n};\n\nconst TabsContext = createContext<TabsContextValue | null>(null);\n\nexport const useTabs = () => {\n const context = useContext(TabsContext);\n if (!context) throw new Error(\"Tabs subcomponents must be used within Tabs\");\n return context;\n};\n\nexport type TabsProps = JSX.HTMLAttributes<HTMLDivElement> & {\n defaultValue: string;\n syncKey?: string;\n orientation?: \"horizontal\" | \"vertical\";\n children?: ComponentChildren;\n};\n\ntype SyncSubscriber = (nextValue: string) => void;\n\ntype SyncRegistryEntry = {\n value: string;\n subscribers: Set<SyncSubscriber>;\n instancesCount: number;\n};\n\nconst syncRegistry = new Map<string, SyncRegistryEntry>();\n\nconst getOrCreateSyncEntry = (key: string, initialValue: string): SyncRegistryEntry => {\n const existing = syncRegistry.get(key);\n if (existing) return existing;\n\n const created: SyncRegistryEntry = {\n value: initialValue,\n subscribers: new Set<SyncSubscriber>(),\n instancesCount: 0,\n };\n syncRegistry.set(key, created);\n return created;\n};\n\nexport const Tabs = ({\n defaultValue,\n syncKey,\n orientation = \"horizontal\",\n class: className,\n children,\n ...rest\n}: TabsProps) => {\n const [value, setLocalValue] = useState(defaultValue);\n const baseId = useMemo(() => createIdFactory(\"tabs\")(), []);\n const triggerId = useMemo(() => (tabValue: string) => `${baseId}-trigger-${tabValue}`, [baseId]);\n const contentId = useMemo(() => (tabValue: string) => `${baseId}-content-${tabValue}`, [baseId]);\n const setValue = (next: string) => {\n if (!syncKey) {\n setLocalValue(next);\n return;\n }\n\n const syncEntry = getOrCreateSyncEntry(syncKey, value);\n if (syncEntry.value === next) return;\n\n syncEntry.value = next;\n setLocalValue(next);\n syncEntry.subscribers.forEach((subscriber) => subscriber(next));\n };\n\n useEffect(() => {\n if (!syncKey) return;\n\n const syncEntry = getOrCreateSyncEntry(syncKey, defaultValue);\n syncEntry.instancesCount += 1;\n setLocalValue(syncEntry.value);\n\n const subscriber: SyncSubscriber = (nextValue) => {\n setLocalValue((currentValue) => {\n if (currentValue === nextValue) return currentValue;\n return nextValue;\n });\n };\n syncEntry.subscribers.add(subscriber);\n\n return () => {\n syncEntry.subscribers.delete(subscriber);\n syncEntry.instancesCount -= 1;\n if (syncEntry.instancesCount <= 0) {\n syncRegistry.delete(syncKey);\n }\n };\n }, [defaultValue, syncKey]);\n\n return (\n <TabsContext.Provider value={{ value, setValue, orientation, baseId, triggerId, contentId }}>\n <div\n class={cn(\"group/tabs\", className)}\n data-slot=\"tabs\"\n data-orientation={orientation}\n {...rest}\n >\n {children}\n </div>\n </TabsContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useTabs } from \"./Tabs\";\n\nexport type TabsContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n value: string;\n forceMount?: boolean;\n children?: ComponentChildren;\n};\n\nexport const TabsContent = ({\n value,\n forceMount = false,\n class: className,\n children,\n id: idProp,\n ...rest\n}: TabsContentProps) => {\n const tabs = useTabs();\n const active = tabs.value === value;\n const id = idProp ?? tabs.contentId(value);\n const labelledBy = tabs.triggerId(value);\n\n if (!active && !forceMount) return null;\n\n return (\n <div\n role=\"tabpanel\"\n id={id}\n aria-labelledby={labelledBy}\n aria-hidden={!active || undefined}\n data-slot=\"tabs-content\"\n data-state={active ? \"active\" : \"inactive\"}\n class={cn(\n \"mt-2 outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className,\n )}\n tabIndex={0}\n hidden={!active && forceMount ? true : undefined}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\nimport { useTabs } from \"./Tabs\";\n\nconst tabsList = tv({\n base: [\n \"group/tabs-list inline-flex w-fit items-stretch justify-center gap-0.5 rounded-md bg-muted/80 p-0.5 text-muted-foreground\",\n \"ring-1 ring-inset ring-black/[0.04] dark:ring-white/[0.06]\",\n \"group-data-[orientation=horizontal]/tabs:h-9 group-data-[orientation=horizontal]/tabs:rounded-full\",\n \"group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col group-data-[orientation=vertical]/tabs:rounded-xl group-data-[orientation=vertical]/tabs:gap-0.5 group-data-[orientation=vertical]/tabs:p-1\",\n ],\n variants: {\n variant: {\n default: \"\",\n line: \"gap-1 rounded-none bg-transparent p-0 ring-0 group-data-[orientation=horizontal]/tabs:rounded-none\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\nexport type TabsListProps = JSX.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof tabsList> & {\n children?: ComponentChildren;\n };\n\nexport const TabsList = ({ variant, class: className, children, ...rest }: TabsListProps) => {\n const tabs = useTabs();\n\n return (\n <div\n role=\"tablist\"\n aria-orientation={tabs.orientation}\n class={cn(tabsList({ variant }), className)}\n data-slot=\"tabs-list\"\n data-variant={variant ?? \"default\"}\n data-orientation={tabs.orientation}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useTabs } from \"./Tabs\";\n\nexport type TabsTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n value: string;\n children?: ComponentChildren;\n};\n\nexport const TabsTrigger = ({\n value,\n class: className,\n children,\n onClick,\n onKeyDown,\n id: idProp,\n ...rest\n}: TabsTriggerProps) => {\n const tabs = useTabs();\n const active = tabs.value === value;\n const id = idProp ?? tabs.triggerId(value);\n const controlsId = tabs.contentId(value);\n\n return (\n <button\n type=\"button\"\n role=\"tab\"\n id={id}\n aria-controls={controlsId}\n class={cn(\n \"relative inline-flex h-full min-h-0 flex-1 items-center justify-center gap-1.5 border border-transparent px-3 py-1 text-sm whitespace-nowrap text-muted-foreground transition-[color,box-shadow,background-color,font-weight] duration-200 ease-out\",\n \"group-data-[orientation=horizontal]/tabs:rounded-full group-data-[orientation=vertical]/tabs:rounded-md\",\n \"group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start\",\n \"hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n \"disabled:pointer-events-none disabled:opacity-50 dark:hover:text-foreground\",\n \"group-data-[variant=default]/tabs-list:data-[state=inactive]:font-medium\",\n \"group-data-[variant=default]/tabs-list:data-[state=active]:bg-background group-data-[variant=default]/tabs-list:data-[state=active]:font-semibold group-data-[variant=default]/tabs-list:data-[state=active]:text-foreground\",\n \"group-data-[variant=default]/tabs-list:data-[state=active]:shadow-[0_1px_2px_-0.5px_rgb(0_0_0/0.06),0_1px_3px_-1px_rgb(0_0_0/0.08)]\",\n \"dark:group-data-[variant=default]/tabs-list:data-[state=active]:shadow-[0_1px_2px_-0.5px_rgb(0_0_0/0.35)] dark:group-data-[variant=default]/tabs-list:data-[state=active]:ring-1 dark:group-data-[variant=default]/tabs-list:data-[state=active]:ring-white/[0.08]\",\n \"group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:px-0 group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none dark:group-data-[variant=line]/tabs-list:data-[state=active]:ring-0\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n \"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:font-semibold group-data-[variant=line]/tabs-list:data-[state=active]:text-foreground\",\n \"group-data-[variant=line]/tabs-list:data-[state=inactive]:font-normal group-data-[variant=line]/tabs-list:data-[state=inactive]:text-muted-foreground\",\n \"dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent\",\n \"dark:group-data-[variant=default]/tabs-list:data-[state=active]:bg-input/30 dark:group-data-[variant=default]/tabs-list:data-[state=active]:text-foreground\",\n \"after:absolute after:bg-foreground after:opacity-0 after:transition-opacity\",\n \"group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5\",\n \"group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5\",\n \"group-data-[variant=line]/tabs-list:data-[state=active]:after:h-[2px] group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100\",\n className,\n )}\n data-slot=\"tabs-trigger\"\n data-state={active ? \"active\" : \"inactive\"}\n data-active={active ? \"true\" : undefined}\n data-value={value}\n data-orientation={tabs.orientation}\n aria-selected={active}\n tabIndex={active ? 0 : -1}\n onClick={(event) => {\n tabs.setValue(value);\n onClick?.(event);\n }}\n onKeyDown={(event) => {\n onKeyDown?.(event);\n if (event.defaultPrevented) return;\n if (![\"ArrowLeft\", \"ArrowRight\", \"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key))\n return;\n\n const tabList = event.currentTarget.closest('[role=\"tablist\"]');\n if (!tabList) return;\n\n const triggers = Array.from(\n tabList.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]:not([disabled])'),\n );\n const currentIndex = triggers.indexOf(event.currentTarget);\n if (currentIndex === -1 || triggers.length === 0) return;\n\n const horizontal = tabs.orientation === \"horizontal\";\n let nextIndex = currentIndex;\n\n if (event.key === \"Home\") nextIndex = 0;\n if (event.key === \"End\") nextIndex = triggers.length - 1;\n if (event.key === \"ArrowRight\" && horizontal)\n nextIndex = (currentIndex + 1) % triggers.length;\n if (event.key === \"ArrowLeft\" && horizontal)\n nextIndex = (currentIndex - 1 + triggers.length) % triggers.length;\n if (event.key === \"ArrowDown\" && !horizontal)\n nextIndex = (currentIndex + 1) % triggers.length;\n if (event.key === \"ArrowUp\" && !horizontal)\n nextIndex = (currentIndex - 1 + triggers.length) % triggers.length;\n\n if (nextIndex === currentIndex) return;\n event.preventDefault();\n const next = triggers[nextIndex];\n next.focus();\n const nextValue = next.getAttribute(\"data-value\");\n if (nextValue) tabs.setValue(nextValue);\n }}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import { Tabs } from \"./Tabs\";\nimport { TabsContent } from \"./TabsContent\";\nimport { TabsList } from \"./TabsList\";\nimport { TabsTrigger } from \"./TabsTrigger\";\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\n\nexport default {\n Root: Tabs,\n List: TabsList,\n Trigger: TabsTrigger,\n Content: TabsContent,\n};\n"]}