@kamod-ch/ui 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +12 -0
  3. package/dist/{Accordion-D1PiNspd.d.ts → Accordion-BiCBkB8o.d.ts} +7 -1
  4. package/dist/{AlertDialog-GadhKjPC.d.ts → AlertDialog-CZ2taZg4.d.ts} +3 -3
  5. package/dist/Button-OI3VvO-J.d.ts +84 -0
  6. package/dist/{Collapsible-CW1hQwqV.d.ts → Collapsible-BdQqvk35.d.ts} +6 -1
  7. package/dist/{ComboboxValue-BGfXgtZt.d.ts → ComboboxValue-Cq6zoDkt.d.ts} +1 -1
  8. package/dist/{Dialog-BOIteLfe.d.ts → Dialog-DdD1sMwk.d.ts} +12 -1
  9. package/dist/{DialogContent-cQHSRQdT.d.ts → DialogContent-YWzwWdSv.d.ts} +6 -1
  10. package/dist/{Drawer-CdjXZxxK.d.ts → Drawer-8xfn9KLf.d.ts} +2 -2
  11. package/dist/{Dropdown-CVbWVKok.d.ts → Dropdown-CzDJJgXQ.d.ts} +32 -27
  12. package/dist/{FieldTitle-aSgThW-B.d.ts → FieldTitle-hsI0Y6Zm.d.ts} +13 -13
  13. package/dist/{HoverCard-aVEEtkyO.d.ts → HoverCard-CBBr-tT9.d.ts} +14 -14
  14. package/dist/{Input-Cem05el9.d.ts → Input-C_X0Xpn2.d.ts} +11 -11
  15. package/dist/{PopoverTrigger-CH_Kx2mn.d.ts → PopoverTrigger-CIPAh0h0.d.ts} +14 -14
  16. package/dist/{RadioGroup-BaElzLwa.d.ts → RadioGroup-BDF3NaXQ.d.ts} +8 -8
  17. package/dist/{Sheet-DZ-p-aHY.d.ts → Sheet-DVt5iTiK.d.ts} +1 -1
  18. package/dist/{SidebarProvider-Bx7-BdQn.d.ts → SidebarProvider-CoVCItNd.d.ts} +18 -18
  19. package/dist/{Switch-CTTkNdqF.d.ts → Switch-BcNJFeRY.d.ts} +8 -8
  20. package/dist/{Tabs-CR-thcs6.d.ts → Tabs-CrXH3YED.d.ts} +18 -9
  21. package/dist/{Textarea-DbKkduOG.d.ts → Textarea-CST17pYW.d.ts} +11 -11
  22. package/dist/Toggle-BgvkYUI8.d.ts +49 -0
  23. package/dist/{ToggleGroup-UeYHzQe7.d.ts → ToggleGroup-CqYICGsS.d.ts} +42 -42
  24. package/dist/Typography-Df9IVmw2.d.ts +64 -0
  25. package/dist/{chunk-ZM67EKZC.js → chunk-22G3DW5M.js} +4 -4
  26. package/dist/{chunk-ZM67EKZC.js.map → chunk-22G3DW5M.js.map} +1 -1
  27. package/dist/{chunk-BDK7CDEI.js → chunk-2F3PWEDR.js} +3 -3
  28. package/dist/{chunk-BDK7CDEI.js.map → chunk-2F3PWEDR.js.map} +1 -1
  29. package/dist/{chunk-ZHAGKFSO.js → chunk-2SPOI3MX.js} +3 -3
  30. package/dist/{chunk-ZHAGKFSO.js.map → chunk-2SPOI3MX.js.map} +1 -1
  31. package/dist/chunk-2UTJHQTS.js +162 -0
  32. package/dist/chunk-2UTJHQTS.js.map +1 -0
  33. package/dist/{chunk-NKKMM6CK.js → chunk-3AFRSB5R.js} +3 -3
  34. package/dist/{chunk-NKKMM6CK.js.map → chunk-3AFRSB5R.js.map} +1 -1
  35. package/dist/{chunk-LCMPFPBN.js → chunk-3ETRJPBL.js} +3 -3
  36. package/dist/{chunk-LCMPFPBN.js.map → chunk-3ETRJPBL.js.map} +1 -1
  37. package/dist/{chunk-WAPRVVDQ.js → chunk-3HBKDY64.js} +3 -3
  38. package/dist/{chunk-WAPRVVDQ.js.map → chunk-3HBKDY64.js.map} +1 -1
  39. package/dist/{chunk-PPYJQNE5.js → chunk-3XMFQKWB.js} +9 -5
  40. package/dist/chunk-3XMFQKWB.js.map +1 -0
  41. package/dist/{chunk-HCTZJYHK.js → chunk-4SQKSVBH.js} +6 -6
  42. package/dist/chunk-4SQKSVBH.js.map +1 -0
  43. package/dist/{chunk-ZVAW22GX.js → chunk-4ZFKDNSK.js} +3 -3
  44. package/dist/{chunk-ZVAW22GX.js.map → chunk-4ZFKDNSK.js.map} +1 -1
  45. package/dist/{chunk-IJ4ZRIR4.js → chunk-53FZEAOJ.js} +5 -5
  46. package/dist/{chunk-IJ4ZRIR4.js.map → chunk-53FZEAOJ.js.map} +1 -1
  47. package/dist/{chunk-BYG2ULS3.js → chunk-5ATODZ6L.js} +5 -7
  48. package/dist/chunk-5ATODZ6L.js.map +1 -0
  49. package/dist/{chunk-TXKPDNRD.js → chunk-5I7ULBDP.js} +3 -3
  50. package/dist/{chunk-TXKPDNRD.js.map → chunk-5I7ULBDP.js.map} +1 -1
  51. package/dist/{chunk-UEXTD7ZB.js → chunk-6HFTTHSY.js} +3 -3
  52. package/dist/{chunk-UEXTD7ZB.js.map → chunk-6HFTTHSY.js.map} +1 -1
  53. package/dist/{chunk-6RASPU5N.js → chunk-7LWAWZHM.js} +4 -11
  54. package/dist/chunk-7LWAWZHM.js.map +1 -0
  55. package/dist/{chunk-RHNI5UQO.js → chunk-A6ZZZFZN.js} +4 -4
  56. package/dist/{chunk-RHNI5UQO.js.map → chunk-A6ZZZFZN.js.map} +1 -1
  57. package/dist/{chunk-V63YIVKJ.js → chunk-APZXMU2X.js} +4 -4
  58. package/dist/{chunk-V63YIVKJ.js.map → chunk-APZXMU2X.js.map} +1 -1
  59. package/dist/{chunk-6FYSVMH7.js → chunk-AYLEWD77.js} +3 -3
  60. package/dist/{chunk-6FYSVMH7.js.map → chunk-AYLEWD77.js.map} +1 -1
  61. package/dist/{chunk-D3DQ4ICC.js → chunk-BZMD4EZC.js} +4 -11
  62. package/dist/chunk-BZMD4EZC.js.map +1 -0
  63. package/dist/{chunk-PU5J5EPY.js → chunk-C7TARE5T.js} +5 -5
  64. package/dist/{chunk-PU5J5EPY.js.map → chunk-C7TARE5T.js.map} +1 -1
  65. package/dist/{chunk-5FBD2NTR.js → chunk-DDRX6NNW.js} +6 -9
  66. package/dist/chunk-DDRX6NNW.js.map +1 -0
  67. package/dist/{chunk-HHLQYMPT.js → chunk-DUTKHOH3.js} +4 -4
  68. package/dist/{chunk-HHLQYMPT.js.map → chunk-DUTKHOH3.js.map} +1 -1
  69. package/dist/{chunk-24QD2FTA.js → chunk-EBXTNL52.js} +12 -15
  70. package/dist/chunk-EBXTNL52.js.map +1 -0
  71. package/dist/{chunk-STRBBF45.js → chunk-FOQ32NEP.js} +5 -5
  72. package/dist/chunk-FOQ32NEP.js.map +1 -0
  73. package/dist/{chunk-UIA74JVN.js → chunk-FXG53XY2.js} +5 -5
  74. package/dist/chunk-FXG53XY2.js.map +1 -0
  75. package/dist/{chunk-2KY7P27I.js → chunk-G7LTWXRN.js} +3 -3
  76. package/dist/{chunk-2KY7P27I.js.map → chunk-G7LTWXRN.js.map} +1 -1
  77. package/dist/{chunk-6BK3PIRX.js → chunk-GD3VBO44.js} +6 -6
  78. package/dist/{chunk-6BK3PIRX.js.map → chunk-GD3VBO44.js.map} +1 -1
  79. package/dist/{chunk-MD6HHORY.js → chunk-GPRE2VWB.js} +3 -3
  80. package/dist/{chunk-MD6HHORY.js.map → chunk-GPRE2VWB.js.map} +1 -1
  81. package/dist/{chunk-QZX3RFIC.js → chunk-HJF5AV4L.js} +11 -34
  82. package/dist/chunk-HJF5AV4L.js.map +1 -0
  83. package/dist/{chunk-QFDTG2ZJ.js → chunk-HWPROYKB.js} +3 -3
  84. package/dist/{chunk-QFDTG2ZJ.js.map → chunk-HWPROYKB.js.map} +1 -1
  85. package/dist/chunk-ISISDJ3Z.js +205 -0
  86. package/dist/chunk-ISISDJ3Z.js.map +1 -0
  87. package/dist/{chunk-3LIT5GWF.js → chunk-IW43BO47.js} +57 -19
  88. package/dist/chunk-IW43BO47.js.map +1 -0
  89. package/dist/{chunk-CLEC2RMU.js → chunk-JKEILBHG.js} +3 -3
  90. package/dist/{chunk-CLEC2RMU.js.map → chunk-JKEILBHG.js.map} +1 -1
  91. package/dist/{chunk-TFLSEEM4.js → chunk-KCN3GXRK.js} +3 -3
  92. package/dist/{chunk-TFLSEEM4.js.map → chunk-KCN3GXRK.js.map} +1 -1
  93. package/dist/{chunk-EMUPVA2F.js → chunk-KHV3WV6T.js} +4 -4
  94. package/dist/{chunk-EMUPVA2F.js.map → chunk-KHV3WV6T.js.map} +1 -1
  95. package/dist/{chunk-G6TV6TF7.js → chunk-KJ5PYCJG.js} +4 -12
  96. package/dist/chunk-KJ5PYCJG.js.map +1 -0
  97. package/dist/{chunk-5KS2VSX2.js → chunk-LAM4GIME.js} +4 -4
  98. package/dist/chunk-LAM4GIME.js.map +1 -0
  99. package/dist/{chunk-OCLVMKVC.js → chunk-MDXTENZ4.js} +8 -31
  100. package/dist/chunk-MDXTENZ4.js.map +1 -0
  101. package/dist/{chunk-CP55TVOV.js → chunk-MJUKNUFV.js} +3 -3
  102. package/dist/{chunk-CP55TVOV.js.map → chunk-MJUKNUFV.js.map} +1 -1
  103. package/dist/{chunk-GGTDJEE2.js → chunk-MTNLY7AY.js} +3 -3
  104. package/dist/{chunk-GGTDJEE2.js.map → chunk-MTNLY7AY.js.map} +1 -1
  105. package/dist/{chunk-67J4KBOW.js → chunk-NBIBBLP6.js} +10 -52
  106. package/dist/chunk-NBIBBLP6.js.map +1 -0
  107. package/dist/chunk-NBP4J2QF.js +200 -0
  108. package/dist/chunk-NBP4J2QF.js.map +1 -0
  109. package/dist/{chunk-NGKQBNZ5.js → chunk-NJYJCMKY.js} +3 -3
  110. package/dist/{chunk-NGKQBNZ5.js.map → chunk-NJYJCMKY.js.map} +1 -1
  111. package/dist/{chunk-COPT6I2D.js → chunk-NSEY5IC6.js} +9 -10
  112. package/dist/chunk-NSEY5IC6.js.map +1 -0
  113. package/dist/{chunk-UARVH66B.js → chunk-O4PHGLXF.js} +5 -5
  114. package/dist/{chunk-UARVH66B.js.map → chunk-O4PHGLXF.js.map} +1 -1
  115. package/dist/{chunk-J4DMQV64.js → chunk-OCZC4PDM.js} +3 -3
  116. package/dist/{chunk-J4DMQV64.js.map → chunk-OCZC4PDM.js.map} +1 -1
  117. package/dist/{chunk-IQH3XSOI.js → chunk-ODYHA3O5.js} +4 -4
  118. package/dist/{chunk-IQH3XSOI.js.map → chunk-ODYHA3O5.js.map} +1 -1
  119. package/dist/chunk-OJEZZVZB.js +9 -0
  120. package/dist/{chunk-CMBERB5B.js.map → chunk-OJEZZVZB.js.map} +1 -1
  121. package/dist/{chunk-7IOAIEIA.js → chunk-OTXP2QJ7.js} +6 -6
  122. package/dist/{chunk-7IOAIEIA.js.map → chunk-OTXP2QJ7.js.map} +1 -1
  123. package/dist/{chunk-JSHUWI3C.js → chunk-OUVUK3E7.js} +9 -9
  124. package/dist/chunk-OUVUK3E7.js.map +1 -0
  125. package/dist/{chunk-3KB54OYF.js → chunk-P6ICWO5B.js} +3 -3
  126. package/dist/{chunk-3KB54OYF.js.map → chunk-P6ICWO5B.js.map} +1 -1
  127. package/dist/{chunk-GIU6BZTW.js → chunk-P7PPE4P5.js} +8 -11
  128. package/dist/chunk-P7PPE4P5.js.map +1 -0
  129. package/dist/{chunk-XGFJJ2YB.js → chunk-PVQUVEZV.js} +4 -11
  130. package/dist/chunk-PVQUVEZV.js.map +1 -0
  131. package/dist/{chunk-LCWXIQKA.js → chunk-Q3RL7TOY.js} +4 -4
  132. package/dist/chunk-Q3RL7TOY.js.map +1 -0
  133. package/dist/{chunk-5Q4RBIMZ.js → chunk-Q5B6ROW6.js} +3 -3
  134. package/dist/{chunk-5Q4RBIMZ.js.map → chunk-Q5B6ROW6.js.map} +1 -1
  135. package/dist/{chunk-262EK2XT.js → chunk-Q7ZDP6DS.js} +9 -7
  136. package/dist/chunk-Q7ZDP6DS.js.map +1 -0
  137. package/dist/{chunk-4IBTERDG.js → chunk-QFTOABOJ.js} +3 -3
  138. package/dist/{chunk-4IBTERDG.js.map → chunk-QFTOABOJ.js.map} +1 -1
  139. package/dist/{chunk-JURNPBSW.js → chunk-QINEFXUA.js} +3 -3
  140. package/dist/{chunk-JURNPBSW.js.map → chunk-QINEFXUA.js.map} +1 -1
  141. package/dist/{chunk-FIOKWIJP.js → chunk-QWSD34JA.js} +4 -4
  142. package/dist/{chunk-FIOKWIJP.js.map → chunk-QWSD34JA.js.map} +1 -1
  143. package/dist/{chunk-Q5IUIA6B.js → chunk-RLBAA7WW.js} +3 -3
  144. package/dist/{chunk-Q5IUIA6B.js.map → chunk-RLBAA7WW.js.map} +1 -1
  145. package/dist/{chunk-MJQ6R345.js → chunk-SEC7UN45.js} +5 -5
  146. package/dist/chunk-SEC7UN45.js.map +1 -0
  147. package/dist/chunk-SIA46B4Q.js +9 -0
  148. package/dist/{chunk-RTIFG4XT.js.map → chunk-SIA46B4Q.js.map} +1 -1
  149. package/dist/{chunk-X4HPHMYW.js → chunk-TMPADU74.js} +4 -4
  150. package/dist/{chunk-X4HPHMYW.js.map → chunk-TMPADU74.js.map} +1 -1
  151. package/dist/{chunk-YTHUHPE5.js → chunk-USPWL4KC.js} +3 -3
  152. package/dist/{chunk-YTHUHPE5.js.map → chunk-USPWL4KC.js.map} +1 -1
  153. package/dist/{chunk-U2UNWXBC.js → chunk-VEQ7X2PO.js} +7 -6
  154. package/dist/chunk-VEQ7X2PO.js.map +1 -0
  155. package/dist/{chunk-YZLPO4B2.js → chunk-WRXXU5F6.js} +4 -11
  156. package/dist/chunk-WRXXU5F6.js.map +1 -0
  157. package/dist/{chunk-XNYAQZIB.js → chunk-X4B6I3M4.js} +4 -4
  158. package/dist/{chunk-XNYAQZIB.js.map → chunk-X4B6I3M4.js.map} +1 -1
  159. package/dist/{chunk-JNF7FDJO.js → chunk-XCYEWILH.js} +4 -4
  160. package/dist/{chunk-JNF7FDJO.js.map → chunk-XCYEWILH.js.map} +1 -1
  161. package/dist/{chunk-V2MG5Y5F.js → chunk-XGVQXRLA.js} +4 -4
  162. package/dist/chunk-XGVQXRLA.js.map +1 -0
  163. package/dist/chunk-XIANSPQO.js +11 -0
  164. package/dist/chunk-XIANSPQO.js.map +1 -0
  165. package/dist/{chunk-UNWEH4Z6.js → chunk-XOMPJYYA.js} +4 -4
  166. package/dist/chunk-XOMPJYYA.js.map +1 -0
  167. package/dist/{chunk-UXWUFNXY.js → chunk-XSYSV3R3.js} +3 -3
  168. package/dist/{chunk-UXWUFNXY.js.map → chunk-XSYSV3R3.js.map} +1 -1
  169. package/dist/{chunk-ERBGZZ2U.js → chunk-XZYJUJED.js} +4 -4
  170. package/dist/chunk-XZYJUJED.js.map +1 -0
  171. package/dist/{chunk-PFV7YIEP.js → chunk-Z4JNYSV3.js} +4 -4
  172. package/dist/{chunk-PFV7YIEP.js.map → chunk-Z4JNYSV3.js.map} +1 -1
  173. package/dist/{chunk-4V3WHQJE.js → chunk-ZLSCHWTN.js} +4 -4
  174. package/dist/{chunk-4V3WHQJE.js.map → chunk-ZLSCHWTN.js.map} +1 -1
  175. package/dist/chunk-ZQ2WOX4X.js +29 -0
  176. package/dist/chunk-ZQ2WOX4X.js.map +1 -0
  177. package/dist/{chunk-NILG56Z7.js → chunk-ZROHNZDC.js} +4 -4
  178. package/dist/{chunk-NILG56Z7.js.map → chunk-ZROHNZDC.js.map} +1 -1
  179. package/dist/{chunk-PGOCR4LG.js → chunk-ZVYCUG4N.js} +4 -4
  180. package/dist/chunk-ZVYCUG4N.js.map +1 -0
  181. package/dist/components/accordion/index.d.ts +2 -2
  182. package/dist/components/accordion/index.js +3 -2
  183. package/dist/components/alert/index.d.ts +26 -26
  184. package/dist/components/alert/index.js +2 -2
  185. package/dist/components/alert-dialog/index.d.ts +6 -5
  186. package/dist/components/alert-dialog/index.js +6 -6
  187. package/dist/components/aspect-ratio/index.js +2 -2
  188. package/dist/components/avatar/index.d.ts +11 -11
  189. package/dist/components/avatar/index.js +2 -2
  190. package/dist/components/badge/index.d.ts +112 -112
  191. package/dist/components/badge/index.js +2 -2
  192. package/dist/components/breadcrumb/index.js +2 -2
  193. package/dist/components/button/index.d.ts +51 -51
  194. package/dist/components/button/index.js +3 -3
  195. package/dist/components/button-group/index.js +2 -2
  196. package/dist/components/calendar/index.js +10 -10
  197. package/dist/components/card/index.d.ts +22 -22
  198. package/dist/components/card/index.js +2 -1
  199. package/dist/components/carousel/index.js +3 -3
  200. package/dist/components/chart/index.js +2 -2
  201. package/dist/components/checkbox/index.js +2 -2
  202. package/dist/components/collapsible/index.d.ts +2 -2
  203. package/dist/components/collapsible/index.js +3 -2
  204. package/dist/components/combobox/index.d.ts +2 -2
  205. package/dist/components/combobox/index.js +5 -5
  206. package/dist/components/command/index.js +7 -7
  207. package/dist/components/context-menu/index.d.ts +11 -11
  208. package/dist/components/context-menu/index.js +3 -3
  209. package/dist/components/data-table/index.js +3 -3
  210. package/dist/components/date-picker/index.js +6 -6
  211. package/dist/components/dialog/index.d.ts +26 -5
  212. package/dist/components/dialog/index.js +5 -5
  213. package/dist/components/direction/index.js +2 -2
  214. package/dist/components/drawer/index.d.ts +5 -4
  215. package/dist/components/drawer/index.js +5 -5
  216. package/dist/components/dropdown/index.d.ts +3 -3
  217. package/dist/components/dropdown/index.js +3 -3
  218. package/dist/components/dropzone/index.js +3 -3
  219. package/dist/components/empty/index.d.ts +6 -6
  220. package/dist/components/empty/index.js +2 -2
  221. package/dist/components/field/index.d.ts +2 -2
  222. package/dist/components/field/index.js +4 -4
  223. package/dist/components/hover-card/index.d.ts +2 -2
  224. package/dist/components/hover-card/index.js +2 -1
  225. package/dist/components/image/index.js +2 -2
  226. package/dist/components/input/index.d.ts +12 -12
  227. package/dist/components/input/index.js +3 -2
  228. package/dist/components/input-group/index.d.ts +56 -56
  229. package/dist/components/input-group/index.js +5 -5
  230. package/dist/components/input-otp/index.js +2 -2
  231. package/dist/components/item/index.d.ts +31 -31
  232. package/dist/components/item/index.js +3 -3
  233. package/dist/components/kbd/index.d.ts +8 -8
  234. package/dist/components/kbd/index.js +2 -2
  235. package/dist/components/label/index.d.ts +22 -22
  236. package/dist/components/label/index.js +3 -2
  237. package/dist/components/locale-segment-group/index.js +2 -2
  238. package/dist/components/menubar/index.js +3 -3
  239. package/dist/components/native-select/index.d.ts +34 -34
  240. package/dist/components/native-select/index.js +2 -1
  241. package/dist/components/navigation-menu/index.d.ts +2 -2
  242. package/dist/components/navigation-menu/index.js +3 -3
  243. package/dist/components/pagination/index.d.ts +1 -1
  244. package/dist/components/pagination/index.js +3 -3
  245. package/dist/components/popover/index.d.ts +22 -22
  246. package/dist/components/popover/index.js +4 -3
  247. package/dist/components/progress/index.js +2 -2
  248. package/dist/components/prose/index.js +2 -2
  249. package/dist/components/radio-group/index.d.ts +2 -2
  250. package/dist/components/radio-group/index.js +3 -3
  251. package/dist/components/scroll-area/index.js +2 -2
  252. package/dist/components/select/index.js +3 -3
  253. package/dist/components/selectable-card/index.js +3 -3
  254. package/dist/components/separator/index.d.ts +8 -8
  255. package/dist/components/separator/index.js +3 -2
  256. package/dist/components/sheet/index.d.ts +5 -4
  257. package/dist/components/sheet/index.js +5 -5
  258. package/dist/components/sidebar/index.d.ts +3 -3
  259. package/dist/components/sidebar/index.js +10 -10
  260. package/dist/components/skeleton/index.d.ts +22 -22
  261. package/dist/components/skeleton/index.js +2 -1
  262. package/dist/components/slider/index.js +2 -2
  263. package/dist/components/spinner/index.js +2 -2
  264. package/dist/components/switch/index.d.ts +1 -1
  265. package/dist/components/switch/index.js +2 -2
  266. package/dist/components/table/index.js +3 -3
  267. package/dist/components/tabs/index.d.ts +2 -2
  268. package/dist/components/tabs/index.js +3 -3
  269. package/dist/components/textarea/index.d.ts +12 -12
  270. package/dist/components/textarea/index.js +3 -2
  271. package/dist/components/theme-toggle/index.js +4 -4
  272. package/dist/components/toggle/index.d.ts +1 -1
  273. package/dist/components/toggle/index.js +2 -2
  274. package/dist/components/toggle-group/index.d.ts +2 -2
  275. package/dist/components/toggle-group/index.js +2 -2
  276. package/dist/components/typography/index.d.ts +2 -2
  277. package/dist/components/typography/index.js +2 -2
  278. package/dist/components/video/index.js +2 -2
  279. package/dist/index.d.ts +24 -24
  280. package/dist/index.js +79 -78
  281. package/dist/lib/interactive/index.js +1 -1
  282. package/dist/lib/utils.d.ts +2 -1
  283. package/dist/lib/utils.js +1 -1
  284. package/dist/{navigationMenuTriggerStyle-BWnESpon.d.ts → navigationMenuTriggerStyle-DUhqCYxO.d.ts} +1 -1
  285. package/dist/theme.css +16 -0
  286. package/dist/utils.d.ts +2 -0
  287. package/dist/utils.js +3 -0
  288. package/dist/utils.js.map +1 -0
  289. package/package.json +28 -25
  290. package/dist/Button-vQnkiVTI.d.ts +0 -84
  291. package/dist/Toggle-CseZl7XN.d.ts +0 -49
  292. package/dist/Typography-ccTtE182.d.ts +0 -64
  293. package/dist/chunk-24QD2FTA.js.map +0 -1
  294. package/dist/chunk-262EK2XT.js.map +0 -1
  295. package/dist/chunk-3LIT5GWF.js.map +0 -1
  296. package/dist/chunk-5FBD2NTR.js.map +0 -1
  297. package/dist/chunk-5KS2VSX2.js.map +0 -1
  298. package/dist/chunk-67J4KBOW.js.map +0 -1
  299. package/dist/chunk-6RASPU5N.js.map +0 -1
  300. package/dist/chunk-BYG2ULS3.js.map +0 -1
  301. package/dist/chunk-CMBERB5B.js +0 -9
  302. package/dist/chunk-COPT6I2D.js.map +0 -1
  303. package/dist/chunk-D3DQ4ICC.js.map +0 -1
  304. package/dist/chunk-ERBGZZ2U.js.map +0 -1
  305. package/dist/chunk-G6TV6TF7.js.map +0 -1
  306. package/dist/chunk-GIU6BZTW.js.map +0 -1
  307. package/dist/chunk-HCTZJYHK.js.map +0 -1
  308. package/dist/chunk-JSHUWI3C.js.map +0 -1
  309. package/dist/chunk-LCWXIQKA.js.map +0 -1
  310. package/dist/chunk-MJQ6R345.js.map +0 -1
  311. package/dist/chunk-MKG3UAP6.js +0 -347
  312. package/dist/chunk-MKG3UAP6.js.map +0 -1
  313. package/dist/chunk-MS2ZNYCJ.js +0 -9
  314. package/dist/chunk-MS2ZNYCJ.js.map +0 -1
  315. package/dist/chunk-OCLVMKVC.js.map +0 -1
  316. package/dist/chunk-PGOCR4LG.js.map +0 -1
  317. package/dist/chunk-PPYJQNE5.js.map +0 -1
  318. package/dist/chunk-QZX3RFIC.js.map +0 -1
  319. package/dist/chunk-RTIFG4XT.js +0 -9
  320. package/dist/chunk-STRBBF45.js.map +0 -1
  321. package/dist/chunk-U2UNWXBC.js.map +0 -1
  322. package/dist/chunk-UEGIKBX6.js +0 -385
  323. package/dist/chunk-UEGIKBX6.js.map +0 -1
  324. package/dist/chunk-UIA74JVN.js.map +0 -1
  325. package/dist/chunk-UNWEH4Z6.js.map +0 -1
  326. package/dist/chunk-V2MG5Y5F.js.map +0 -1
  327. package/dist/chunk-X2YUFNK7.js +0 -18
  328. package/dist/chunk-X2YUFNK7.js.map +0 -1
  329. package/dist/chunk-XGFJJ2YB.js.map +0 -1
  330. package/dist/chunk-YZLPO4B2.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/combobox/combobox-utils.ts","../src/components/combobox/combobox-context.tsx","../src/components/combobox/ComboboxChip.tsx","../src/components/combobox/ComboboxChips.tsx","../src/components/combobox/ComboboxChipsInput.tsx","../src/components/combobox/ComboboxClear.tsx","../src/components/combobox/ComboboxCommand.tsx","../src/components/combobox/ComboboxContent.tsx","../src/components/combobox/ComboboxInlineInput.tsx","../src/components/combobox/ComboboxInput.tsx","../src/components/combobox/ComboboxItem.tsx","../src/components/combobox/ComboboxList.tsx","../src/components/combobox/ComboboxTrigger.tsx","../src/components/combobox/ComboboxValue.tsx","../src/components/combobox/ComboboxSelect.tsx"],"names":["jsx","useLayoutEffect","jsxs","Fragment"],"mappings":"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","file":"chunk-PU5J5EPY.js","sourcesContent":["/** Flatten grouped `{ items: T[] }[]` shapes into leaf rows for selection lookup. */\nexport function flattenComboboxItems(items: readonly unknown[]): unknown[] {\n const out: unknown[] = [];\n for (const el of items) {\n if (el !== null && typeof el === \"object\" && \"items\" in el) {\n const sub = (el as { items: unknown }).items;\n if (Array.isArray(sub)) {\n out.push(...sub);\n continue;\n }\n }\n out.push(el);\n }\n return out;\n}\n\nexport function defaultComboboxItemKey(item: unknown): string {\n if (typeof item === \"string\" || typeof item === \"number\") return String(item);\n if (item && typeof item === \"object\" && \"value\" in item) {\n const v = (item as { value: unknown }).value;\n return v === undefined || v === null ? \"\" : String(v);\n }\n return JSON.stringify(item);\n}\n\nexport function defaultComboboxItemString(\n item: unknown,\n custom?: (item: unknown) => string,\n): string {\n if (custom) return custom(item);\n if (typeof item === \"string\") return item;\n if (item && typeof item === \"object\" && \"label\" in item) {\n const l = (item as { label: unknown }).label;\n return l === undefined || l === null ? \"\" : String(l);\n }\n return String(item);\n}\n","import { type Signal, signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useCallback, useContext, useLayoutEffect, useMemo, useRef, useState } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { Popover } from \"../popover/Popover\";\nimport {\n defaultComboboxItemKey,\n defaultComboboxItemString,\n flattenComboboxItems,\n} from \"./combobox-utils\";\n\nexport type ComboboxCommandNav = {\n moveHighlight: (delta: number) => void;\n activateHighlighted: () => void;\n};\n\nfunction normalizeInitialKeys(\n multiple: boolean,\n defaultValue: string | string[] | undefined,\n): string[] {\n if (defaultValue === undefined || defaultValue === \"\") return [];\n if (multiple) return Array.isArray(defaultValue) ? [...defaultValue] : [defaultValue];\n return typeof defaultValue === \"string\" ? [defaultValue] : [];\n}\n\nfunction keysFromValueProp(multiple: boolean, valueProp: string | string[] | undefined): string[] {\n if (valueProp === undefined) return [];\n if (multiple) return Array.isArray(valueProp) ? [...valueProp] : [];\n return typeof valueProp === \"string\" && valueProp ? [valueProp] : [];\n}\n\nexport type ComboboxContextValue = {\n items: readonly unknown[];\n leafItems: unknown[];\n itemToString: (item: unknown) => string;\n itemKey: (item: unknown) => string;\n selectedKeys: string[];\n /** First selected key; empty string if none (single-select ergonomics). */\n selectedKey: string;\n multiple: boolean;\n isSelected: (key: string) => boolean;\n selectByItem: (item: unknown) => void;\n toggleByItem: (item: unknown) => void;\n removeKey: (key: string) => void;\n clearSelection: () => void;\n placeholder: string;\n disabled: boolean;\n liftedFilter: boolean;\n filterQuery: Signal<string> | null;\n hasVisibleItems: Signal<boolean> | null;\n autoHighlight: boolean;\n showClear: boolean;\n closeOnSelect: boolean;\n comboboxListRef: { current: HTMLDivElement | null };\n commandNavRef: { current: ComboboxCommandNav | null };\n};\n\nconst ComboboxContext = createContext<ComboboxContextValue | null>(null);\n\nexport const useCombobox = () => {\n const ctx = useContext(ComboboxContext);\n if (!ctx) throw new Error(\"Combobox components must be used within Combobox\");\n return ctx;\n};\n\nexport function comboboxSelectionLabel(ctx: ComboboxContextValue): string {\n if (ctx.selectedKeys.length === 0) return \"\";\n const labels = ctx.selectedKeys.map((k) => {\n const it = ctx.leafItems.find((i) => ctx.itemKey(i) === k);\n return it !== undefined ? ctx.itemToString(it) : k;\n });\n return labels.join(\", \");\n}\n\nexport type ComboboxProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, \"children\"> & {\n items?: readonly unknown[];\n itemToStringValue?: (item: unknown) => string;\n itemKey?: (item: unknown) => string;\n value?: string | string[];\n defaultValue?: string | string[];\n /** Emits `string` when `multiple` is false, else `string[]`. */\n onValueChange?: (value: string | string[]) => void;\n placeholder?: string;\n disabled?: boolean;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n multiple?: boolean;\n /** Share filter text between trigger input and `Command` (Base UI–style single input + list in popover). */\n liftedFilter?: boolean;\n /** Highlight first match and enable ArrowUp/Down + Enter in filter inputs (requires `ComboboxCommand autoHighlight` or preset). */\n autoHighlight?: boolean;\n showClear?: boolean;\n /** When `multiple`, defaults to `false`; when single, defaults to `true`. */\n closeOnSelect?: boolean;\n children?: ComponentChildren;\n};\n\nexport const Combobox = ({\n items = [],\n itemToStringValue,\n itemKey: itemKeyProp,\n value: valueProp,\n defaultValue,\n onValueChange,\n placeholder = \"Select…\",\n disabled = false,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n multiple: multipleProp = false,\n liftedFilter = false,\n autoHighlight = false,\n showClear = false,\n closeOnSelect: closeOnSelectProp,\n class: className,\n children,\n ...rest\n}: ComboboxProps) => {\n const multiple = Boolean(multipleProp);\n const closeOnSelect = closeOnSelectProp ?? !multiple;\n\n const itemToString = useMemo(\n () => (item: unknown) => defaultComboboxItemString(item, itemToStringValue),\n [itemToStringValue],\n );\n const itemKey = useMemo(\n () => (item: unknown) => (itemKeyProp ? itemKeyProp(item) : defaultComboboxItemKey(item)),\n [itemKeyProp],\n );\n const leafItems = useMemo(() => flattenComboboxItems(items), [items]);\n\n const isValueControlled = valueProp !== undefined;\n const [internalKeys, setInternalKeys] = useState<string[]>(() =>\n normalizeInitialKeys(multiple, defaultValue),\n );\n\n const selectedKeys = isValueControlled ? keysFromValueProp(multiple, valueProp) : internalKeys;\n const selectedKey = selectedKeys[0] ?? \"\";\n\n const filterQuery = useMemo(() => (liftedFilter ? signal(\"\") : null), [liftedFilter]);\n const hasVisibleItemsSig = useMemo(() => (liftedFilter ? signal(true) : null), [liftedFilter]);\n const comboboxListRef = useMemo(() => ({ current: null as HTMLDivElement | null }), []);\n const commandNavRef = useMemo(() => ({ current: null as ComboboxCommandNav | null }), []);\n\n const isOpenRef = useRef(false);\n const selectedKeysRef = useRef(selectedKeys);\n selectedKeysRef.current = selectedKeys;\n\n const emitKeys = useCallback(\n (next: string[]) => {\n if (!isValueControlled) setInternalKeys(next);\n if (multiple) onValueChange?.(next);\n else onValueChange?.(next[0] ?? \"\");\n },\n [isValueControlled, multiple, onValueChange],\n );\n\n const selectByItem = useCallback(\n (item: unknown) => {\n const key = itemKey(item);\n emitKeys(key ? [key] : []);\n },\n [itemKey, emitKeys],\n );\n\n const toggleByItem = useCallback(\n (item: unknown) => {\n const key = itemKey(item);\n const exists = selectedKeysRef.current.includes(key);\n const next = exists\n ? selectedKeysRef.current.filter((k) => k !== key)\n : [...selectedKeysRef.current, key];\n emitKeys(next);\n },\n [itemKey, emitKeys],\n );\n\n const removeKey = useCallback(\n (key: string) => {\n emitKeys(selectedKeysRef.current.filter((k) => k !== key));\n },\n [emitKeys],\n );\n\n const clearSelection = useCallback(() => {\n emitKeys([]);\n }, [emitKeys]);\n\n const isSelected = useCallback(\n (key: string) => {\n return selectedKeys.includes(key);\n },\n [selectedKeys],\n );\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n isOpenRef.current = open;\n onOpenChange?.(open);\n if (!liftedFilter || !filterQuery) return;\n if (open) {\n filterQuery.value = \"\";\n } else if (multiple) {\n filterQuery.value = \"\";\n } else {\n const k = selectedKeysRef.current[0];\n if (!k) filterQuery.value = \"\";\n else {\n const it = leafItems.find((i) => itemKey(i) === k);\n filterQuery.value = it !== undefined ? itemToString(it) : k;\n }\n }\n },\n [liftedFilter, filterQuery, onOpenChange, multiple, leafItems, itemKey, itemToString],\n );\n\n useLayoutEffect(() => {\n if (!liftedFilter || !filterQuery || multiple || isOpenRef.current) return;\n const k = selectedKeys[0];\n if (!k) {\n filterQuery.value = \"\";\n return;\n }\n const it = leafItems.find((i) => itemKey(i) === k);\n filterQuery.value = it !== undefined ? itemToString(it) : k;\n }, [liftedFilter, filterQuery, multiple, selectedKeys, leafItems, itemKey, itemToString]);\n\n const contextValue = useMemo<ComboboxContextValue>(\n () => ({\n items,\n leafItems,\n itemToString,\n itemKey,\n selectedKeys,\n selectedKey,\n multiple,\n isSelected,\n selectByItem,\n toggleByItem,\n removeKey,\n clearSelection,\n placeholder,\n disabled,\n liftedFilter,\n filterQuery,\n hasVisibleItems: hasVisibleItemsSig,\n autoHighlight,\n showClear,\n closeOnSelect,\n comboboxListRef,\n commandNavRef,\n }),\n [\n items,\n leafItems,\n itemToString,\n itemKey,\n selectedKeys,\n selectedKey,\n multiple,\n isSelected,\n selectByItem,\n toggleByItem,\n removeKey,\n clearSelection,\n placeholder,\n disabled,\n liftedFilter,\n filterQuery,\n hasVisibleItemsSig,\n autoHighlight,\n showClear,\n closeOnSelect,\n comboboxListRef,\n commandNavRef,\n ],\n );\n\n return (\n <ComboboxContext.Provider value={contextValue}>\n <div data-slot=\"combobox\" class={cn(\"relative\", className)} {...rest}>\n <Popover open={openProp} defaultOpen={defaultOpen} onOpenChange={handleOpenChange}>\n {children}\n </Popover>\n </div>\n </ComboboxContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxChipProps = Omit<JSX.HTMLAttributes<HTMLSpanElement>, \"children\"> & {\n itemKey: string;\n children?: ComponentChildren;\n};\n\nexport const ComboboxChip = ({\n itemKey: chipKey,\n children,\n class: className,\n ...rest\n}: ComboboxChipProps) => {\n const ctx = useCombobox();\n return (\n <span\n data-slot=\"combobox-chip\"\n class={cn(\n \"bg-secondary text-secondary-foreground inline-flex max-w-full items-center gap-0.5 rounded-md px-2 py-0.5 text-xs\",\n className,\n )}\n {...rest}\n >\n <span class=\"min-w-0 truncate\">{children}</span>\n <button\n type=\"button\"\n class=\"text-muted-foreground hover:text-foreground shrink-0 rounded p-0.5 outline-none focus-visible:ring-2 focus-visible:ring-ring/50\"\n aria-label=\"Remove\"\n onClick={(event) => {\n event.stopPropagation();\n ctx.removeKey(chipKey);\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden\n >\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n </span>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { PopoverTrigger } from \"../popover/PopoverTrigger\";\n\nexport type ComboboxChipsProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\n/** Multi-select trigger row: wrap chips + `ComboboxChipsInput` (with `liftedFilter`). */\nexport const ComboboxChips = ({ class: className, children, ...rest }: ComboboxChipsProps) => (\n <PopoverTrigger asChild>\n <div\n data-slot=\"combobox-chips\"\n class={cn(\n \"border-input bg-background flex min-h-8 w-full min-w-44 flex-wrap items-center gap-1 rounded-md border px-2 py-1 shadow-xs outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50\",\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n </PopoverTrigger>\n);\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { usePopover } from \"../popover/Popover\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxChipsInputProps = JSX.InputHTMLAttributes<HTMLInputElement>;\n\n/** Filter field at the end of the chip row; requires `Combobox liftedFilter`. */\nexport const ComboboxChipsInput = ({\n class: className,\n onKeyDown,\n onInput,\n onFocus,\n ...rest\n}: ComboboxChipsInputProps) => {\n const ctx = useCombobox();\n const popover = usePopover();\n if (!ctx.filterQuery) {\n throw new Error(\"ComboboxChipsInput must be used with Combobox liftedFilter={true}\");\n }\n\n void ctx.filterQuery.value;\n void popover.open.value;\n\n return (\n <input\n {...rest}\n data-slot=\"combobox-chips-input\"\n class={cn(\n \"placeholder:text-muted-foreground min-w-[6rem] flex-1 border-0 bg-transparent px-1 py-1 text-sm outline-none\",\n className,\n )}\n value={ctx.filterQuery.value}\n onInput={(event) => {\n ctx.filterQuery!.value = event.currentTarget.value;\n popover.setOpen(true);\n onInput?.(event);\n }}\n onFocus={(event) => {\n onFocus?.(event);\n popover.setOpen(true);\n }}\n onKeyDown={(event) => {\n const nav = ctx.commandNavRef.current;\n if (ctx.autoHighlight && nav) {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n popover.setOpen(true);\n nav.moveHighlight(1);\n return;\n }\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n popover.setOpen(true);\n nav.moveHighlight(-1);\n return;\n }\n if (event.key === \"Enter\") {\n event.preventDefault();\n if (popover.open.value) nav.activateHighlighted();\n return;\n }\n }\n onKeyDown?.(event);\n }}\n />\n );\n};\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxClearProps = JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const ComboboxClear = ({ class: className, onClick, ...rest }: ComboboxClearProps) => {\n const ctx = useCombobox();\n const has = ctx.selectedKeys.length > 0;\n if (!has || !ctx.showClear) return null;\n\n return (\n <button\n type=\"button\"\n data-slot=\"combobox-clear\"\n aria-label=\"Clear selection\"\n class={cn(\n \"text-muted-foreground hover:text-foreground inline-flex size-7 shrink-0 items-center justify-center rounded-md outline-none focus-visible:ring-2 focus-visible:ring-ring/50\",\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n ctx.clearSelection();\n if (ctx.filterQuery) ctx.filterQuery.value = \"\";\n }}\n {...rest}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden\n >\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n );\n};\n","import { useLayoutEffect } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { Command, type CommandProps, useCommand } from \"../command/Command\";\nimport { useCombobox } from \"./combobox-context\";\n\nfunction CommandNavBridge() {\n const cmd = useCommand();\n const combo = useCombobox();\n const navRef = combo.commandNavRef;\n useLayoutEffect(() => {\n navRef.current = {\n moveHighlight: cmd.moveHighlight,\n activateHighlighted: cmd.activateHighlighted,\n };\n return () => {\n navRef.current = null;\n };\n }, [cmd.moveHighlight, cmd.activateHighlighted, navRef]);\n return null;\n}\n\nexport const ComboboxCommand = ({\n autoHighlight: autoHighlightProp,\n class: className,\n children,\n ...rest\n}: CommandProps) => {\n const ctx = useCombobox();\n const query = ctx.liftedFilter && ctx.filterQuery ? ctx.filterQuery : undefined;\n const hasVis = ctx.liftedFilter && ctx.hasVisibleItems ? ctx.hasVisibleItems : undefined;\n const autoHighlight = autoHighlightProp ?? ctx.autoHighlight;\n return (\n <Command\n {...rest}\n class={cn(\"rounded-lg border-0 bg-transparent shadow-none\", className)}\n autoHighlight={autoHighlight}\n query={query}\n hasVisibleItems={hasVis}\n >\n <CommandNavBridge />\n {children}\n </Command>\n );\n};\n\nexport type { CommandProps as ComboboxCommandProps };\n","import { cn } from \"../../lib/utils\";\nimport { usePopover } from \"../popover/Popover\";\nimport { PopoverContent, type PopoverContentProps } from \"../popover/PopoverContent\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport const ComboboxContent = ({\n forceMount: forceMountProp,\n class: className,\n ...rest\n}: PopoverContentProps) => {\n const popover = usePopover();\n const ctx = useCombobox();\n const forceMount = forceMountProp ?? ctx.liftedFilter;\n return (\n <PopoverContent\n forceMount={forceMount}\n class={cn(\n \"w-64 max-w-[calc(100vw-1.5rem)] gap-0 overflow-hidden p-0\",\n ctx.liftedFilter &&\n !popover.open.value &&\n \"pointer-events-none invisible max-h-0 min-h-0 border-0 p-0 opacity-0 shadow-none\",\n className,\n )}\n {...rest}\n />\n );\n};\n\nexport type { PopoverContentProps as ComboboxContentProps };\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { usePopover } from \"../popover/Popover\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxInlineInputProps = JSX.InputHTMLAttributes<HTMLInputElement>;\n\n/**\n * Base UI–style trigger: the visible field is the filter input; the list opens in `ComboboxContent`.\n * Requires `Combobox liftedFilter` (and usually `ComboboxTrigger asChild` wrapping a positioned container).\n */\nexport const ComboboxInlineInput = ({\n class: className,\n onKeyDown,\n onInput,\n onFocus,\n ...rest\n}: ComboboxInlineInputProps) => {\n const ctx = useCombobox();\n const popover = usePopover();\n if (!ctx.filterQuery) {\n throw new Error(\"ComboboxInlineInput must be used with Combobox liftedFilter={true}\");\n }\n\n void ctx.filterQuery.value;\n void popover.open.value;\n\n return (\n <input\n {...rest}\n data-slot=\"combobox-inline-input\"\n class={cn(\n \"border-input bg-background placeholder:text-muted-foreground flex h-10 w-full min-w-0 rounded-md border px-3 py-2 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n value={ctx.filterQuery.value}\n onInput={(event) => {\n ctx.filterQuery!.value = event.currentTarget.value;\n popover.setOpen(true);\n onInput?.(event);\n }}\n onFocus={(event) => {\n onFocus?.(event);\n popover.setOpen(true);\n }}\n onKeyDown={(event) => {\n const nav = ctx.commandNavRef.current;\n if (ctx.autoHighlight && nav) {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n popover.setOpen(true);\n nav.moveHighlight(1);\n return;\n }\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n popover.setOpen(true);\n nav.moveHighlight(-1);\n return;\n }\n if (event.key === \"Enter\") {\n event.preventDefault();\n if (popover.open.value) nav.activateHighlighted();\n return;\n }\n }\n onKeyDown?.(event);\n }}\n />\n );\n};\n","import { cn } from \"../../lib/utils\";\nimport { CommandInput, type CommandInputProps } from \"../command/CommandInput\";\n\nexport const ComboboxInput = ({ class: className, ...rest }: CommandInputProps) => (\n <CommandInput class={cn(className)} {...rest} />\n);\n\nexport type { CommandInputProps as ComboboxInputProps };\n","import { cn } from \"../../lib/utils\";\nimport { CommandItem, type CommandItemProps } from \"../command/CommandItem\";\nimport { usePopover } from \"../popover/Popover\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxItemProps = Omit<CommandItemProps, \"value\" | \"onSelect\"> & {\n item: unknown;\n};\n\nexport const ComboboxItem = ({\n item,\n class: className,\n children,\n disabled,\n onClick,\n ...rest\n}: ComboboxItemProps) => {\n const ctx = useCombobox();\n const popover = usePopover();\n const filterValue = ctx.itemToString(item);\n const key = ctx.itemKey(item);\n const selected = ctx.multiple ? ctx.selectedKeys.includes(key) : ctx.selectedKey === key;\n\n return (\n <CommandItem\n value={filterValue}\n disabled={disabled}\n class={cn(selected && \"bg-accent/60\", className)}\n onSelect={() => {\n if (ctx.multiple) {\n ctx.toggleByItem(item);\n if (ctx.closeOnSelect) popover.setOpen(false);\n } else {\n ctx.selectByItem(item);\n popover.setOpen(false);\n }\n }}\n onClick={onClick}\n {...rest}\n >\n {children}\n </CommandItem>\n );\n};\n","import type { ComponentChildren } from \"preact\";\nimport { CommandList, type CommandListProps } from \"../command/CommandList\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxListProps = Omit<CommandListProps, \"children\"> & {\n items?: readonly unknown[];\n children: ComponentChildren | ((item: unknown, index: number) => ComponentChildren);\n};\n\nexport const ComboboxList = ({\n items: itemsProp,\n children,\n onMount,\n ...rest\n}: ComboboxListProps) => {\n const ctx = useCombobox();\n const list = itemsProp !== undefined ? itemsProp : ctx.items;\n const body =\n typeof children === \"function\"\n ? list.map((item, index) =>\n (children as (i: unknown, idx: number) => ComponentChildren)(item, index),\n )\n : children;\n return (\n <CommandList\n {...rest}\n onMount={(el) => {\n ctx.comboboxListRef.current = el;\n onMount?.(el);\n }}\n >\n {body}\n </CommandList>\n );\n};\n","import { cn } from \"../../lib/utils\";\nimport { PopoverTrigger, type PopoverTriggerProps } from \"../popover/PopoverTrigger\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport const ComboboxTrigger = ({ class: className, disabled, ...rest }: PopoverTriggerProps) => {\n const ctx = useCombobox();\n return (\n <PopoverTrigger\n class={cn(\n \"border-input bg-background hover:bg-muted/50 flex h-8 w-full min-w-44 items-center justify-between gap-2 rounded-md border px-3 py-1 text-start text-sm font-normal shadow-xs outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n disabled={disabled ?? ctx.disabled}\n {...rest}\n />\n );\n};\n\nexport type { PopoverTriggerProps as ComboboxTriggerProps };\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { comboboxSelectionLabel, useCombobox } from \"./combobox-context\";\n\nexport type ComboboxValueProps = Omit<JSX.HTMLAttributes<HTMLSpanElement>, \"children\"> & {\n placeholder?: string;\n children?:\n | ((state: { label: string; empty: boolean; keys: string[] }) => ComponentChildren)\n | ComponentChildren;\n};\n\nexport const ComboboxValue = ({\n placeholder: placeholderProp,\n children,\n class: className,\n ...rest\n}: ComboboxValueProps) => {\n const ctx = useCombobox();\n const label = comboboxSelectionLabel(ctx);\n const empty = ctx.selectedKeys.length === 0;\n\n if (typeof children === \"function\") {\n return <>{children({ label, empty, keys: ctx.selectedKeys })}</>;\n }\n\n return (\n <span\n data-slot=\"combobox-value\"\n class={cn(\"truncate\", empty && \"text-muted-foreground\", className)}\n {...rest}\n >\n {empty ? (placeholderProp ?? ctx.placeholder) : label}\n </span>\n );\n};\n","import { cn } from \"../../lib/utils\";\nimport { ComboboxChip } from \"./ComboboxChip\";\nimport { ComboboxChips } from \"./ComboboxChips\";\nimport { ComboboxChipsInput } from \"./ComboboxChipsInput\";\nimport { ComboboxClear } from \"./ComboboxClear\";\nimport { ComboboxCommand } from \"./ComboboxCommand\";\nimport { ComboboxContent } from \"./ComboboxContent\";\nimport { ComboboxEmpty } from \"./ComboboxEmpty\";\nimport { ComboboxInlineInput } from \"./ComboboxInlineInput\";\nimport { ComboboxInput } from \"./ComboboxInput\";\nimport { ComboboxItem } from \"./ComboboxItem\";\nimport { ComboboxList } from \"./ComboboxList\";\nimport { ComboboxTrigger } from \"./ComboboxTrigger\";\nimport { ComboboxValue } from \"./ComboboxValue\";\nimport { Combobox, type ComboboxProps } from \"./combobox-context\";\n\nexport type ComboboxOption = { label: string; value: string };\n\nconst ChevronDownIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden\n class=\"shrink-0 opacity-50\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n);\n\nexport type ComboboxSelectProps = Omit<\n ComboboxProps,\n \"items\" | \"children\" | \"itemKey\" | \"itemToStringValue\"\n> & {\n options: ComboboxOption[];\n searchPlaceholder?: string;\n emptyText?: string;\n triggerClass?: string;\n};\n\n/** Preset around `{ label, value }[]`: button trigger, inline input trigger, multi chips, clear, and auto-highlight. */\nexport const ComboboxSelect = ({\n options,\n searchPlaceholder = \"Search…\",\n emptyText = \"No results found.\",\n triggerClass,\n showClear = false,\n autoHighlight = false,\n liftedFilter = false,\n multiple = false,\n class: className,\n placeholder,\n ...rest\n}: ComboboxSelectProps) => {\n const useLifted = Boolean(liftedFilter || multiple);\n\n if (multiple) {\n return (\n <Combobox\n class={className}\n items={options}\n itemKey={(o) => (o as ComboboxOption).value}\n itemToStringValue={(o) => (o as ComboboxOption).label}\n multiple\n liftedFilter\n autoHighlight={autoHighlight}\n showClear={showClear}\n placeholder={placeholder}\n {...rest}\n >\n <ComboboxChips class={triggerClass}>\n <ComboboxValue placeholder={placeholder ?? \"Select…\"}>\n {({ keys, empty }) => (\n <>\n {keys.map((k) => {\n const o = options.find((x) => x.value === k);\n if (!o) return null;\n return (\n <ComboboxChip key={k} itemKey={k}>\n {o.label}\n </ComboboxChip>\n );\n })}\n {empty ? (\n <span class=\"text-muted-foreground px-1 py-0.5 text-sm\">\n {placeholder ?? \"Select…\"}\n </span>\n ) : null}\n </>\n )}\n </ComboboxValue>\n {showClear ? <ComboboxClear class=\"shrink-0\" /> : null}\n <ComboboxChipsInput placeholder={searchPlaceholder} />\n </ComboboxChips>\n <ComboboxContent>\n <ComboboxCommand>\n <ComboboxEmpty>{emptyText}</ComboboxEmpty>\n <ComboboxList>\n {(opt) => {\n const o = opt as ComboboxOption;\n return (\n <ComboboxItem key={o.value} item={o}>\n {o.label}\n </ComboboxItem>\n );\n }}\n </ComboboxList>\n </ComboboxCommand>\n </ComboboxContent>\n </Combobox>\n );\n }\n\n if (useLifted) {\n return (\n <Combobox\n class={className}\n items={options}\n itemKey={(o) => (o as ComboboxOption).value}\n itemToStringValue={(o) => (o as ComboboxOption).label}\n liftedFilter\n autoHighlight={autoHighlight}\n showClear={showClear}\n placeholder={placeholder}\n {...rest}\n >\n <ComboboxTrigger asChild>\n <div class={cn(\"relative flex w-full min-w-44 items-center\", triggerClass)}>\n <ComboboxInlineInput placeholder={searchPlaceholder} class=\"pe-16\" />\n {showClear ? (\n <ComboboxClear class=\"absolute end-9 top-1/2 z-10 -translate-y-1/2\" />\n ) : null}\n <span class=\"pointer-events-none absolute end-3 top-1/2 -translate-y-1/2\">\n <ChevronDownIcon />\n </span>\n </div>\n </ComboboxTrigger>\n <ComboboxContent>\n <ComboboxCommand>\n <ComboboxEmpty>{emptyText}</ComboboxEmpty>\n <ComboboxList>\n {(opt) => {\n const o = opt as ComboboxOption;\n return (\n <ComboboxItem key={o.value} item={o}>\n {o.label}\n </ComboboxItem>\n );\n }}\n </ComboboxList>\n </ComboboxCommand>\n </ComboboxContent>\n </Combobox>\n );\n }\n\n return (\n <Combobox\n class={className}\n items={options}\n itemKey={(o) => (o as ComboboxOption).value}\n itemToStringValue={(o) => (o as ComboboxOption).label}\n autoHighlight={autoHighlight}\n showClear={showClear}\n placeholder={placeholder}\n {...rest}\n >\n <ComboboxTrigger class={cn(triggerClass)}>\n <ComboboxValue />\n <span class=\"ms-auto flex shrink-0 items-center gap-0.5\">\n {showClear ? <ComboboxClear /> : null}\n <ChevronDownIcon />\n </span>\n </ComboboxTrigger>\n <ComboboxContent>\n <ComboboxCommand>\n <ComboboxInput placeholder={searchPlaceholder} />\n <ComboboxEmpty>{emptyText}</ComboboxEmpty>\n <ComboboxList>\n {(opt) => {\n const o = opt as ComboboxOption;\n return (\n <ComboboxItem key={o.value} item={o}>\n {o.label}\n </ComboboxItem>\n );\n }}\n </ComboboxList>\n </ComboboxCommand>\n </ComboboxContent>\n </Combobox>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/components/combobox/combobox-utils.ts","../src/components/combobox/combobox-context.tsx","../src/components/combobox/ComboboxChip.tsx","../src/components/combobox/ComboboxChips.tsx","../src/components/combobox/ComboboxChipsInput.tsx","../src/components/combobox/ComboboxClear.tsx","../src/components/combobox/ComboboxCommand.tsx","../src/components/combobox/ComboboxContent.tsx","../src/components/combobox/ComboboxInlineInput.tsx","../src/components/combobox/ComboboxInput.tsx","../src/components/combobox/ComboboxItem.tsx","../src/components/combobox/ComboboxList.tsx","../src/components/combobox/ComboboxTrigger.tsx","../src/components/combobox/ComboboxValue.tsx","../src/components/combobox/ComboboxSelect.tsx"],"names":["jsx","useLayoutEffect","jsxs","Fragment"],"mappings":"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","file":"chunk-C7TARE5T.js","sourcesContent":["/** Flatten grouped `{ items: T[] }[]` shapes into leaf rows for selection lookup. */\nexport function flattenComboboxItems(items: readonly unknown[]): unknown[] {\n const out: unknown[] = [];\n for (const el of items) {\n if (el !== null && typeof el === \"object\" && \"items\" in el) {\n const sub = (el as { items: unknown }).items;\n if (Array.isArray(sub)) {\n out.push(...sub);\n continue;\n }\n }\n out.push(el);\n }\n return out;\n}\n\nexport function defaultComboboxItemKey(item: unknown): string {\n if (typeof item === \"string\" || typeof item === \"number\") return String(item);\n if (item && typeof item === \"object\" && \"value\" in item) {\n const v = (item as { value: unknown }).value;\n return v === undefined || v === null ? \"\" : String(v);\n }\n return JSON.stringify(item);\n}\n\nexport function defaultComboboxItemString(\n item: unknown,\n custom?: (item: unknown) => string,\n): string {\n if (custom) return custom(item);\n if (typeof item === \"string\") return item;\n if (item && typeof item === \"object\" && \"label\" in item) {\n const l = (item as { label: unknown }).label;\n return l === undefined || l === null ? \"\" : String(l);\n }\n return String(item);\n}\n","import { type Signal, signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useCallback, useContext, useLayoutEffect, useMemo, useRef, useState } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { Popover } from \"../popover/Popover\";\nimport {\n defaultComboboxItemKey,\n defaultComboboxItemString,\n flattenComboboxItems,\n} from \"./combobox-utils\";\n\nexport type ComboboxCommandNav = {\n moveHighlight: (delta: number) => void;\n activateHighlighted: () => void;\n};\n\nfunction normalizeInitialKeys(\n multiple: boolean,\n defaultValue: string | string[] | undefined,\n): string[] {\n if (defaultValue === undefined || defaultValue === \"\") return [];\n if (multiple) return Array.isArray(defaultValue) ? [...defaultValue] : [defaultValue];\n return typeof defaultValue === \"string\" ? [defaultValue] : [];\n}\n\nfunction keysFromValueProp(multiple: boolean, valueProp: string | string[] | undefined): string[] {\n if (valueProp === undefined) return [];\n if (multiple) return Array.isArray(valueProp) ? [...valueProp] : [];\n return typeof valueProp === \"string\" && valueProp ? [valueProp] : [];\n}\n\nexport type ComboboxContextValue = {\n items: readonly unknown[];\n leafItems: unknown[];\n itemToString: (item: unknown) => string;\n itemKey: (item: unknown) => string;\n selectedKeys: string[];\n /** First selected key; empty string if none (single-select ergonomics). */\n selectedKey: string;\n multiple: boolean;\n isSelected: (key: string) => boolean;\n selectByItem: (item: unknown) => void;\n toggleByItem: (item: unknown) => void;\n removeKey: (key: string) => void;\n clearSelection: () => void;\n placeholder: string;\n disabled: boolean;\n liftedFilter: boolean;\n filterQuery: Signal<string> | null;\n hasVisibleItems: Signal<boolean> | null;\n autoHighlight: boolean;\n showClear: boolean;\n closeOnSelect: boolean;\n comboboxListRef: { current: HTMLDivElement | null };\n commandNavRef: { current: ComboboxCommandNav | null };\n};\n\nconst ComboboxContext = createContext<ComboboxContextValue | null>(null);\n\nexport const useCombobox = () => {\n const ctx = useContext(ComboboxContext);\n if (!ctx) throw new Error(\"Combobox components must be used within Combobox\");\n return ctx;\n};\n\nexport function comboboxSelectionLabel(ctx: ComboboxContextValue): string {\n if (ctx.selectedKeys.length === 0) return \"\";\n const labels = ctx.selectedKeys.map((k) => {\n const it = ctx.leafItems.find((i) => ctx.itemKey(i) === k);\n return it !== undefined ? ctx.itemToString(it) : k;\n });\n return labels.join(\", \");\n}\n\nexport type ComboboxProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, \"children\"> & {\n items?: readonly unknown[];\n itemToStringValue?: (item: unknown) => string;\n itemKey?: (item: unknown) => string;\n value?: string | string[];\n defaultValue?: string | string[];\n /** Emits `string` when `multiple` is false, else `string[]`. */\n onValueChange?: (value: string | string[]) => void;\n placeholder?: string;\n disabled?: boolean;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n multiple?: boolean;\n /** Share filter text between trigger input and `Command` (Base UI–style single input + list in popover). */\n liftedFilter?: boolean;\n /** Highlight first match and enable ArrowUp/Down + Enter in filter inputs (requires `ComboboxCommand autoHighlight` or preset). */\n autoHighlight?: boolean;\n showClear?: boolean;\n /** When `multiple`, defaults to `false`; when single, defaults to `true`. */\n closeOnSelect?: boolean;\n children?: ComponentChildren;\n};\n\nexport const Combobox = ({\n items = [],\n itemToStringValue,\n itemKey: itemKeyProp,\n value: valueProp,\n defaultValue,\n onValueChange,\n placeholder = \"Select…\",\n disabled = false,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n multiple: multipleProp = false,\n liftedFilter = false,\n autoHighlight = false,\n showClear = false,\n closeOnSelect: closeOnSelectProp,\n class: className,\n children,\n ...rest\n}: ComboboxProps) => {\n const multiple = Boolean(multipleProp);\n const closeOnSelect = closeOnSelectProp ?? !multiple;\n\n const itemToString = useMemo(\n () => (item: unknown) => defaultComboboxItemString(item, itemToStringValue),\n [itemToStringValue],\n );\n const itemKey = useMemo(\n () => (item: unknown) => (itemKeyProp ? itemKeyProp(item) : defaultComboboxItemKey(item)),\n [itemKeyProp],\n );\n const leafItems = useMemo(() => flattenComboboxItems(items), [items]);\n\n const isValueControlled = valueProp !== undefined;\n const [internalKeys, setInternalKeys] = useState<string[]>(() =>\n normalizeInitialKeys(multiple, defaultValue),\n );\n\n const selectedKeys = isValueControlled ? keysFromValueProp(multiple, valueProp) : internalKeys;\n const selectedKey = selectedKeys[0] ?? \"\";\n\n const filterQuery = useMemo(() => (liftedFilter ? signal(\"\") : null), [liftedFilter]);\n const hasVisibleItemsSig = useMemo(() => (liftedFilter ? signal(true) : null), [liftedFilter]);\n const comboboxListRef = useMemo(() => ({ current: null as HTMLDivElement | null }), []);\n const commandNavRef = useMemo(() => ({ current: null as ComboboxCommandNav | null }), []);\n\n const isOpenRef = useRef(false);\n const selectedKeysRef = useRef(selectedKeys);\n selectedKeysRef.current = selectedKeys;\n\n const emitKeys = useCallback(\n (next: string[]) => {\n if (!isValueControlled) setInternalKeys(next);\n if (multiple) onValueChange?.(next);\n else onValueChange?.(next[0] ?? \"\");\n },\n [isValueControlled, multiple, onValueChange],\n );\n\n const selectByItem = useCallback(\n (item: unknown) => {\n const key = itemKey(item);\n emitKeys(key ? [key] : []);\n },\n [itemKey, emitKeys],\n );\n\n const toggleByItem = useCallback(\n (item: unknown) => {\n const key = itemKey(item);\n const exists = selectedKeysRef.current.includes(key);\n const next = exists\n ? selectedKeysRef.current.filter((k) => k !== key)\n : [...selectedKeysRef.current, key];\n emitKeys(next);\n },\n [itemKey, emitKeys],\n );\n\n const removeKey = useCallback(\n (key: string) => {\n emitKeys(selectedKeysRef.current.filter((k) => k !== key));\n },\n [emitKeys],\n );\n\n const clearSelection = useCallback(() => {\n emitKeys([]);\n }, [emitKeys]);\n\n const isSelected = useCallback(\n (key: string) => {\n return selectedKeys.includes(key);\n },\n [selectedKeys],\n );\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n isOpenRef.current = open;\n onOpenChange?.(open);\n if (!liftedFilter || !filterQuery) return;\n if (open) {\n filterQuery.value = \"\";\n } else if (multiple) {\n filterQuery.value = \"\";\n } else {\n const k = selectedKeysRef.current[0];\n if (!k) filterQuery.value = \"\";\n else {\n const it = leafItems.find((i) => itemKey(i) === k);\n filterQuery.value = it !== undefined ? itemToString(it) : k;\n }\n }\n },\n [liftedFilter, filterQuery, onOpenChange, multiple, leafItems, itemKey, itemToString],\n );\n\n useLayoutEffect(() => {\n if (!liftedFilter || !filterQuery || multiple || isOpenRef.current) return;\n const k = selectedKeys[0];\n if (!k) {\n filterQuery.value = \"\";\n return;\n }\n const it = leafItems.find((i) => itemKey(i) === k);\n filterQuery.value = it !== undefined ? itemToString(it) : k;\n }, [liftedFilter, filterQuery, multiple, selectedKeys, leafItems, itemKey, itemToString]);\n\n const contextValue = useMemo<ComboboxContextValue>(\n () => ({\n items,\n leafItems,\n itemToString,\n itemKey,\n selectedKeys,\n selectedKey,\n multiple,\n isSelected,\n selectByItem,\n toggleByItem,\n removeKey,\n clearSelection,\n placeholder,\n disabled,\n liftedFilter,\n filterQuery,\n hasVisibleItems: hasVisibleItemsSig,\n autoHighlight,\n showClear,\n closeOnSelect,\n comboboxListRef,\n commandNavRef,\n }),\n [\n items,\n leafItems,\n itemToString,\n itemKey,\n selectedKeys,\n selectedKey,\n multiple,\n isSelected,\n selectByItem,\n toggleByItem,\n removeKey,\n clearSelection,\n placeholder,\n disabled,\n liftedFilter,\n filterQuery,\n hasVisibleItemsSig,\n autoHighlight,\n showClear,\n closeOnSelect,\n comboboxListRef,\n commandNavRef,\n ],\n );\n\n return (\n <ComboboxContext.Provider value={contextValue}>\n <div data-slot=\"combobox\" class={cn(\"relative\", className)} {...rest}>\n <Popover open={openProp} defaultOpen={defaultOpen} onOpenChange={handleOpenChange}>\n {children}\n </Popover>\n </div>\n </ComboboxContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxChipProps = Omit<JSX.HTMLAttributes<HTMLSpanElement>, \"children\"> & {\n itemKey: string;\n children?: ComponentChildren;\n};\n\nexport const ComboboxChip = ({\n itemKey: chipKey,\n children,\n class: className,\n ...rest\n}: ComboboxChipProps) => {\n const ctx = useCombobox();\n return (\n <span\n data-slot=\"combobox-chip\"\n class={cn(\n \"bg-secondary text-secondary-foreground inline-flex max-w-full items-center gap-0.5 rounded-md px-2 py-0.5 text-xs\",\n className,\n )}\n {...rest}\n >\n <span class=\"min-w-0 truncate\">{children}</span>\n <button\n type=\"button\"\n class=\"text-muted-foreground hover:text-foreground shrink-0 rounded p-0.5 outline-none focus-visible:ring-2 focus-visible:ring-ring/50\"\n aria-label=\"Remove\"\n onClick={(event) => {\n event.stopPropagation();\n ctx.removeKey(chipKey);\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden\n >\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n </span>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { PopoverTrigger } from \"../popover/PopoverTrigger\";\n\nexport type ComboboxChipsProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\n/** Multi-select trigger row: wrap chips + `ComboboxChipsInput` (with `liftedFilter`). */\nexport const ComboboxChips = ({ class: className, children, ...rest }: ComboboxChipsProps) => (\n <PopoverTrigger asChild>\n <div\n data-slot=\"combobox-chips\"\n class={cn(\n \"border-input bg-background flex min-h-8 w-full min-w-44 flex-wrap items-center gap-1 rounded-md border px-2 py-1 shadow-xs outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50\",\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n </PopoverTrigger>\n);\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { usePopover } from \"../popover/Popover\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxChipsInputProps = JSX.InputHTMLAttributes<HTMLInputElement>;\n\n/** Filter field at the end of the chip row; requires `Combobox liftedFilter`. */\nexport const ComboboxChipsInput = ({\n class: className,\n onKeyDown,\n onInput,\n onFocus,\n ...rest\n}: ComboboxChipsInputProps) => {\n const ctx = useCombobox();\n const popover = usePopover();\n if (!ctx.filterQuery) {\n throw new Error(\"ComboboxChipsInput must be used with Combobox liftedFilter={true}\");\n }\n\n void ctx.filterQuery.value;\n void popover.open.value;\n\n return (\n <input\n {...rest}\n data-slot=\"combobox-chips-input\"\n class={cn(\n \"placeholder:text-muted-foreground min-w-[6rem] flex-1 border-0 bg-transparent px-1 py-1 text-sm outline-none\",\n className,\n )}\n value={ctx.filterQuery.value}\n onInput={(event) => {\n ctx.filterQuery!.value = event.currentTarget.value;\n popover.setOpen(true);\n onInput?.(event);\n }}\n onFocus={(event) => {\n onFocus?.(event);\n popover.setOpen(true);\n }}\n onKeyDown={(event) => {\n const nav = ctx.commandNavRef.current;\n if (ctx.autoHighlight && nav) {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n popover.setOpen(true);\n nav.moveHighlight(1);\n return;\n }\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n popover.setOpen(true);\n nav.moveHighlight(-1);\n return;\n }\n if (event.key === \"Enter\") {\n event.preventDefault();\n if (popover.open.value) nav.activateHighlighted();\n return;\n }\n }\n onKeyDown?.(event);\n }}\n />\n );\n};\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxClearProps = JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const ComboboxClear = ({ class: className, onClick, ...rest }: ComboboxClearProps) => {\n const ctx = useCombobox();\n const has = ctx.selectedKeys.length > 0;\n if (!has || !ctx.showClear) return null;\n\n return (\n <button\n type=\"button\"\n data-slot=\"combobox-clear\"\n aria-label=\"Clear selection\"\n class={cn(\n \"text-muted-foreground hover:text-foreground inline-flex size-7 shrink-0 items-center justify-center rounded-md outline-none focus-visible:ring-2 focus-visible:ring-ring/50\",\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n ctx.clearSelection();\n if (ctx.filterQuery) ctx.filterQuery.value = \"\";\n }}\n {...rest}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden\n >\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n );\n};\n","import { useLayoutEffect } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { Command, type CommandProps, useCommand } from \"../command/Command\";\nimport { useCombobox } from \"./combobox-context\";\n\nfunction CommandNavBridge() {\n const cmd = useCommand();\n const combo = useCombobox();\n const navRef = combo.commandNavRef;\n useLayoutEffect(() => {\n navRef.current = {\n moveHighlight: cmd.moveHighlight,\n activateHighlighted: cmd.activateHighlighted,\n };\n return () => {\n navRef.current = null;\n };\n }, [cmd.moveHighlight, cmd.activateHighlighted, navRef]);\n return null;\n}\n\nexport const ComboboxCommand = ({\n autoHighlight: autoHighlightProp,\n class: className,\n children,\n ...rest\n}: CommandProps) => {\n const ctx = useCombobox();\n const query = ctx.liftedFilter && ctx.filterQuery ? ctx.filterQuery : undefined;\n const hasVis = ctx.liftedFilter && ctx.hasVisibleItems ? ctx.hasVisibleItems : undefined;\n const autoHighlight = autoHighlightProp ?? ctx.autoHighlight;\n return (\n <Command\n {...rest}\n class={cn(\"rounded-lg border-0 bg-transparent shadow-none\", className)}\n autoHighlight={autoHighlight}\n query={query}\n hasVisibleItems={hasVis}\n >\n <CommandNavBridge />\n {children}\n </Command>\n );\n};\n\nexport type { CommandProps as ComboboxCommandProps };\n","import { cn } from \"../../lib/utils\";\nimport { usePopover } from \"../popover/Popover\";\nimport { PopoverContent, type PopoverContentProps } from \"../popover/PopoverContent\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport const ComboboxContent = ({\n forceMount: forceMountProp,\n class: className,\n ...rest\n}: PopoverContentProps) => {\n const popover = usePopover();\n const ctx = useCombobox();\n const forceMount = forceMountProp ?? ctx.liftedFilter;\n return (\n <PopoverContent\n forceMount={forceMount}\n class={cn(\n \"w-64 max-w-[calc(100vw-1.5rem)] gap-0 overflow-hidden p-0\",\n ctx.liftedFilter &&\n !popover.open.value &&\n \"pointer-events-none invisible max-h-0 min-h-0 border-0 p-0 opacity-0 shadow-none\",\n className,\n )}\n {...rest}\n />\n );\n};\n\nexport type { PopoverContentProps as ComboboxContentProps };\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { usePopover } from \"../popover/Popover\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxInlineInputProps = JSX.InputHTMLAttributes<HTMLInputElement>;\n\n/**\n * Base UI–style trigger: the visible field is the filter input; the list opens in `ComboboxContent`.\n * Requires `Combobox liftedFilter` (and usually `ComboboxTrigger asChild` wrapping a positioned container).\n */\nexport const ComboboxInlineInput = ({\n class: className,\n onKeyDown,\n onInput,\n onFocus,\n ...rest\n}: ComboboxInlineInputProps) => {\n const ctx = useCombobox();\n const popover = usePopover();\n if (!ctx.filterQuery) {\n throw new Error(\"ComboboxInlineInput must be used with Combobox liftedFilter={true}\");\n }\n\n void ctx.filterQuery.value;\n void popover.open.value;\n\n return (\n <input\n {...rest}\n data-slot=\"combobox-inline-input\"\n class={cn(\n \"border-input bg-background placeholder:text-muted-foreground flex h-10 w-full min-w-0 rounded-md border px-3 py-2 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n value={ctx.filterQuery.value}\n onInput={(event) => {\n ctx.filterQuery!.value = event.currentTarget.value;\n popover.setOpen(true);\n onInput?.(event);\n }}\n onFocus={(event) => {\n onFocus?.(event);\n popover.setOpen(true);\n }}\n onKeyDown={(event) => {\n const nav = ctx.commandNavRef.current;\n if (ctx.autoHighlight && nav) {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n popover.setOpen(true);\n nav.moveHighlight(1);\n return;\n }\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n popover.setOpen(true);\n nav.moveHighlight(-1);\n return;\n }\n if (event.key === \"Enter\") {\n event.preventDefault();\n if (popover.open.value) nav.activateHighlighted();\n return;\n }\n }\n onKeyDown?.(event);\n }}\n />\n );\n};\n","import { cn } from \"../../lib/utils\";\nimport { CommandInput, type CommandInputProps } from \"../command/CommandInput\";\n\nexport const ComboboxInput = ({ class: className, ...rest }: CommandInputProps) => (\n <CommandInput class={cn(className)} {...rest} />\n);\n\nexport type { CommandInputProps as ComboboxInputProps };\n","import { cn } from \"../../lib/utils\";\nimport { CommandItem, type CommandItemProps } from \"../command/CommandItem\";\nimport { usePopover } from \"../popover/Popover\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxItemProps = Omit<CommandItemProps, \"value\" | \"onSelect\"> & {\n item: unknown;\n};\n\nexport const ComboboxItem = ({\n item,\n class: className,\n children,\n disabled,\n onClick,\n ...rest\n}: ComboboxItemProps) => {\n const ctx = useCombobox();\n const popover = usePopover();\n const filterValue = ctx.itemToString(item);\n const key = ctx.itemKey(item);\n const selected = ctx.multiple ? ctx.selectedKeys.includes(key) : ctx.selectedKey === key;\n\n return (\n <CommandItem\n value={filterValue}\n disabled={disabled}\n class={cn(selected && \"bg-accent/60\", className)}\n onSelect={() => {\n if (ctx.multiple) {\n ctx.toggleByItem(item);\n if (ctx.closeOnSelect) popover.setOpen(false);\n } else {\n ctx.selectByItem(item);\n popover.setOpen(false);\n }\n }}\n onClick={onClick}\n {...rest}\n >\n {children}\n </CommandItem>\n );\n};\n","import type { ComponentChildren } from \"preact\";\nimport { CommandList, type CommandListProps } from \"../command/CommandList\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport type ComboboxListProps = Omit<CommandListProps, \"children\"> & {\n items?: readonly unknown[];\n children: ComponentChildren | ((item: unknown, index: number) => ComponentChildren);\n};\n\nexport const ComboboxList = ({\n items: itemsProp,\n children,\n onMount,\n ...rest\n}: ComboboxListProps) => {\n const ctx = useCombobox();\n const list = itemsProp !== undefined ? itemsProp : ctx.items;\n const body =\n typeof children === \"function\"\n ? list.map((item, index) =>\n (children as (i: unknown, idx: number) => ComponentChildren)(item, index),\n )\n : children;\n return (\n <CommandList\n {...rest}\n onMount={(el) => {\n ctx.comboboxListRef.current = el;\n onMount?.(el);\n }}\n >\n {body}\n </CommandList>\n );\n};\n","import { cn } from \"../../lib/utils\";\nimport { PopoverTrigger, type PopoverTriggerProps } from \"../popover/PopoverTrigger\";\nimport { useCombobox } from \"./combobox-context\";\n\nexport const ComboboxTrigger = ({ class: className, disabled, ...rest }: PopoverTriggerProps) => {\n const ctx = useCombobox();\n return (\n <PopoverTrigger\n class={cn(\n \"border-input bg-background hover:bg-muted/50 flex h-8 w-full min-w-44 items-center justify-between gap-2 rounded-md border px-3 py-1 text-start text-sm font-normal shadow-xs outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n disabled={disabled ?? ctx.disabled}\n {...rest}\n />\n );\n};\n\nexport type { PopoverTriggerProps as ComboboxTriggerProps };\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { comboboxSelectionLabel, useCombobox } from \"./combobox-context\";\n\nexport type ComboboxValueProps = Omit<JSX.HTMLAttributes<HTMLSpanElement>, \"children\"> & {\n placeholder?: string;\n children?:\n | ((state: { label: string; empty: boolean; keys: string[] }) => ComponentChildren)\n | ComponentChildren;\n};\n\nexport const ComboboxValue = ({\n placeholder: placeholderProp,\n children,\n class: className,\n ...rest\n}: ComboboxValueProps) => {\n const ctx = useCombobox();\n const label = comboboxSelectionLabel(ctx);\n const empty = ctx.selectedKeys.length === 0;\n\n if (typeof children === \"function\") {\n return <>{children({ label, empty, keys: ctx.selectedKeys })}</>;\n }\n\n return (\n <span\n data-slot=\"combobox-value\"\n class={cn(\"truncate\", empty && \"text-muted-foreground\", className)}\n {...rest}\n >\n {empty ? (placeholderProp ?? ctx.placeholder) : label}\n </span>\n );\n};\n","import { cn } from \"../../lib/utils\";\nimport { ComboboxChip } from \"./ComboboxChip\";\nimport { ComboboxChips } from \"./ComboboxChips\";\nimport { ComboboxChipsInput } from \"./ComboboxChipsInput\";\nimport { ComboboxClear } from \"./ComboboxClear\";\nimport { ComboboxCommand } from \"./ComboboxCommand\";\nimport { ComboboxContent } from \"./ComboboxContent\";\nimport { ComboboxEmpty } from \"./ComboboxEmpty\";\nimport { ComboboxInlineInput } from \"./ComboboxInlineInput\";\nimport { ComboboxInput } from \"./ComboboxInput\";\nimport { ComboboxItem } from \"./ComboboxItem\";\nimport { ComboboxList } from \"./ComboboxList\";\nimport { ComboboxTrigger } from \"./ComboboxTrigger\";\nimport { ComboboxValue } from \"./ComboboxValue\";\nimport { Combobox, type ComboboxProps } from \"./combobox-context\";\n\nexport type ComboboxOption = { label: string; value: string };\n\nconst ChevronDownIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden\n class=\"shrink-0 opacity-50\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n);\n\nexport type ComboboxSelectProps = Omit<\n ComboboxProps,\n \"items\" | \"children\" | \"itemKey\" | \"itemToStringValue\"\n> & {\n options: ComboboxOption[];\n searchPlaceholder?: string;\n emptyText?: string;\n triggerClass?: string;\n};\n\n/** Preset around `{ label, value }[]`: button trigger, inline input trigger, multi chips, clear, and auto-highlight. */\nexport const ComboboxSelect = ({\n options,\n searchPlaceholder = \"Search…\",\n emptyText = \"No results found.\",\n triggerClass,\n showClear = false,\n autoHighlight = false,\n liftedFilter = false,\n multiple = false,\n class: className,\n placeholder,\n ...rest\n}: ComboboxSelectProps) => {\n const useLifted = Boolean(liftedFilter || multiple);\n\n if (multiple) {\n return (\n <Combobox\n class={className}\n items={options}\n itemKey={(o) => (o as ComboboxOption).value}\n itemToStringValue={(o) => (o as ComboboxOption).label}\n multiple\n liftedFilter\n autoHighlight={autoHighlight}\n showClear={showClear}\n placeholder={placeholder}\n {...rest}\n >\n <ComboboxChips class={triggerClass}>\n <ComboboxValue placeholder={placeholder ?? \"Select…\"}>\n {({ keys, empty }) => (\n <>\n {keys.map((k) => {\n const o = options.find((x) => x.value === k);\n if (!o) return null;\n return (\n <ComboboxChip key={k} itemKey={k}>\n {o.label}\n </ComboboxChip>\n );\n })}\n {empty ? (\n <span class=\"text-muted-foreground px-1 py-0.5 text-sm\">\n {placeholder ?? \"Select…\"}\n </span>\n ) : null}\n </>\n )}\n </ComboboxValue>\n {showClear ? <ComboboxClear class=\"shrink-0\" /> : null}\n <ComboboxChipsInput placeholder={searchPlaceholder} />\n </ComboboxChips>\n <ComboboxContent>\n <ComboboxCommand>\n <ComboboxEmpty>{emptyText}</ComboboxEmpty>\n <ComboboxList>\n {(opt) => {\n const o = opt as ComboboxOption;\n return (\n <ComboboxItem key={o.value} item={o}>\n {o.label}\n </ComboboxItem>\n );\n }}\n </ComboboxList>\n </ComboboxCommand>\n </ComboboxContent>\n </Combobox>\n );\n }\n\n if (useLifted) {\n return (\n <Combobox\n class={className}\n items={options}\n itemKey={(o) => (o as ComboboxOption).value}\n itemToStringValue={(o) => (o as ComboboxOption).label}\n liftedFilter\n autoHighlight={autoHighlight}\n showClear={showClear}\n placeholder={placeholder}\n {...rest}\n >\n <ComboboxTrigger asChild>\n <div class={cn(\"relative flex w-full min-w-44 items-center\", triggerClass)}>\n <ComboboxInlineInput placeholder={searchPlaceholder} class=\"pe-16\" />\n {showClear ? (\n <ComboboxClear class=\"absolute end-9 top-1/2 z-10 -translate-y-1/2\" />\n ) : null}\n <span class=\"pointer-events-none absolute end-3 top-1/2 -translate-y-1/2\">\n <ChevronDownIcon />\n </span>\n </div>\n </ComboboxTrigger>\n <ComboboxContent>\n <ComboboxCommand>\n <ComboboxEmpty>{emptyText}</ComboboxEmpty>\n <ComboboxList>\n {(opt) => {\n const o = opt as ComboboxOption;\n return (\n <ComboboxItem key={o.value} item={o}>\n {o.label}\n </ComboboxItem>\n );\n }}\n </ComboboxList>\n </ComboboxCommand>\n </ComboboxContent>\n </Combobox>\n );\n }\n\n return (\n <Combobox\n class={className}\n items={options}\n itemKey={(o) => (o as ComboboxOption).value}\n itemToStringValue={(o) => (o as ComboboxOption).label}\n autoHighlight={autoHighlight}\n showClear={showClear}\n placeholder={placeholder}\n {...rest}\n >\n <ComboboxTrigger class={cn(triggerClass)}>\n <ComboboxValue />\n <span class=\"ms-auto flex shrink-0 items-center gap-0.5\">\n {showClear ? <ComboboxClear /> : null}\n <ChevronDownIcon />\n </span>\n </ComboboxTrigger>\n <ComboboxContent>\n <ComboboxCommand>\n <ComboboxInput placeholder={searchPlaceholder} />\n <ComboboxEmpty>{emptyText}</ComboboxEmpty>\n <ComboboxList>\n {(opt) => {\n const o = opt as ComboboxOption;\n return (\n <ComboboxItem key={o.value} item={o}>\n {o.label}\n </ComboboxItem>\n );\n }}\n </ComboboxList>\n </ComboboxCommand>\n </ComboboxContent>\n </Combobox>\n );\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-MS2ZNYCJ.js';
1
+ import { cn } from './chunk-XIANSPQO.js';
2
2
  import { isValidElement, cloneElement } from 'preact';
3
3
  import { tv } from 'tailwind-variants';
4
4
  import { jsx } from 'preact/jsx-runtime';
@@ -47,11 +47,8 @@ var Button = ({
47
47
  }) => {
48
48
  const resolvedVariant = variant ?? "default";
49
49
  const resolvedSize = size ?? "default";
50
- const resolvedClassName = button({
51
- variant: resolvedVariant,
52
- size: resolvedSize,
53
- class: className
54
- });
50
+ const variantClasses = button({ variant: resolvedVariant, size: resolvedSize });
51
+ const resolvedClassName = cn(variantClasses, className);
55
52
  if (asChild) {
56
53
  if (!isValidElement(children)) {
57
54
  const env = globalThis.process?.env?.NODE_ENV;
@@ -66,7 +63,7 @@ var Button = ({
66
63
  return cloneElement(children, {
67
64
  ...childProps,
68
65
  ...rest,
69
- class: cn(childProps.class, childProps.className, resolvedClassName),
66
+ class: cn(variantClasses, childProps.class, childProps.className, className),
70
67
  "data-slot": "button",
71
68
  "data-variant": resolvedVariant,
72
69
  "data-size": resolvedSize
@@ -99,5 +96,5 @@ var Button = ({
99
96
  };
100
97
 
101
98
  export { Button, button };
102
- //# sourceMappingURL=chunk-5FBD2NTR.js.map
103
- //# sourceMappingURL=chunk-5FBD2NTR.js.map
99
+ //# sourceMappingURL=chunk-DDRX6NNW.js.map
100
+ //# sourceMappingURL=chunk-DDRX6NNW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/button/Button.tsx"],"names":[],"mappings":"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","file":"chunk-DDRX6NNW.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 variantClasses = button({ variant: resolvedVariant, size: resolvedSize });\n const resolvedClassName = cn(variantClasses, className);\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(variantClasses, childProps.class, childProps.className, className),\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,7 +1,7 @@
1
1
  import { createPortal } from './chunk-B47B6KK6.js';
2
2
  import { createControllableSignal } from './chunk-C7WEQOUA.js';
3
- import { createIdFactory, createDismissableLayer, trapFocus, isPointerWithinModalDialogPanelSlop } from './chunk-PPYJQNE5.js';
4
- import { cn } from './chunk-MS2ZNYCJ.js';
3
+ import { createIdFactory, createDismissableLayer, trapFocus, isPointerWithinModalDialogPanelSlop } from './chunk-3XMFQKWB.js';
4
+ import { cn } from './chunk-XIANSPQO.js';
5
5
  import { signal } from '@preact/signals';
6
6
  import { createContext, isValidElement, cloneElement } from 'preact';
7
7
  import { useContext, useRef, useMemo, useEffect, useLayoutEffect } from 'preact/hooks';
@@ -473,5 +473,5 @@ var DialogTrigger = ({
473
473
  };
474
474
 
475
475
  export { Dialog, DialogClose, DialogContent, DialogDescription, DialogTitle, DialogTrigger, dialogViewportBleedClass, useDialog, useModalPanelA11y };
476
- //# sourceMappingURL=chunk-HHLQYMPT.js.map
477
- //# sourceMappingURL=chunk-HHLQYMPT.js.map
476
+ //# sourceMappingURL=chunk-DUTKHOH3.js.map
477
+ //# sourceMappingURL=chunk-DUTKHOH3.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/dialog/Dialog.tsx","../src/components/dialog/DialogClose.tsx","../src/components/dialog/useModalPanelA11y.ts","../src/components/dialog/DialogContent.tsx","../src/components/dialog/DialogDescription.tsx","../src/components/dialog/DialogTitle.tsx","../src/components/dialog/DialogTrigger.tsx"],"names":["jsx","useRef","useEffect","useMemo","useLayoutEffect","callRef","isValidElement","cloneElement"],"mappings":"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","file":"chunk-HHLQYMPT.js","sourcesContent":["import { type Signal, signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useEffect, useMemo, useRef } from \"preact/hooks\";\nimport { createDismissableLayer } from \"../../lib/interactive\";\nimport { createControllableSignal } from \"../../lib/signals\";\n\nconst SCROLL_LOCK_COUNT_ATTR = \"data-kamod-scroll-lock-count\";\nconst SCROLL_LOCK_BODY_OVERFLOW_ATTR = \"data-kamod-scroll-lock-body-overflow\";\nconst SCROLL_LOCK_HTML_OVERFLOW_ATTR = \"data-kamod-scroll-lock-html-overflow\";\nconst SCROLL_LOCK_BODY_PADDING_RIGHT_ATTR = \"data-kamod-scroll-lock-body-padding-right\";\nconst SCROLL_LOCK_HTML_SCROLLBAR_GUTTER_ATTR = \"data-kamod-scroll-lock-html-scrollbar-gutter\";\n\nconst lockDocumentScroll = () => {\n const body = document.body;\n const html = document.documentElement;\n const lockCount = Number.parseInt(body.getAttribute(SCROLL_LOCK_COUNT_ATTR) ?? \"0\", 10);\n\n if (lockCount === 0) {\n body.setAttribute(SCROLL_LOCK_BODY_OVERFLOW_ATTR, body.style.overflow);\n body.setAttribute(SCROLL_LOCK_BODY_PADDING_RIGHT_ATTR, body.style.paddingRight);\n html.setAttribute(SCROLL_LOCK_HTML_OVERFLOW_ATTR, html.style.overflow);\n html.setAttribute(SCROLL_LOCK_HTML_SCROLLBAR_GUTTER_ATTR, html.style.scrollbarGutter);\n\n const gutter = getComputedStyle(html).scrollbarGutter;\n const viewportUsesStableGutter = gutter === \"stable\" || gutter === \"stable both-edges\";\n\n if (viewportUsesStableGutter) {\n // Stylesheet `html { scrollbar-gutter: stable }` already reserves scrollbar width; do not\n // force `auto` or add body padding-right (that combo reintroduces the header “jump”).\n html.style.setProperty(\"--kamod-scroll-lock-gutter\", \"0px\");\n } else {\n // If the page does not use stable gutter, measure scrollbar width and pad like Radix/shadcn.\n html.style.scrollbarGutter = \"auto\";\n void html.offsetHeight;\n\n const scrollbarWidth = Math.max(0, window.innerWidth - document.documentElement.clientWidth);\n html.style.setProperty(\"--kamod-scroll-lock-gutter\", `${scrollbarWidth}px`);\n\n if (scrollbarWidth > 0) {\n body.style.paddingRight = `${scrollbarWidth}px`;\n }\n }\n\n html.style.overflow = \"hidden\";\n body.style.overflow = \"hidden\";\n html.setAttribute(\"data-kamod-scroll-lock\", \"\");\n }\n\n body.setAttribute(SCROLL_LOCK_COUNT_ATTR, String(lockCount + 1));\n\n return () => {\n const currentCount = Number.parseInt(body.getAttribute(SCROLL_LOCK_COUNT_ATTR) ?? \"0\", 10);\n const nextCount = Math.max(0, currentCount - 1);\n\n if (nextCount > 0) {\n body.setAttribute(SCROLL_LOCK_COUNT_ATTR, String(nextCount));\n return;\n }\n\n const previousBodyOverflow = body.getAttribute(SCROLL_LOCK_BODY_OVERFLOW_ATTR) ?? \"\";\n const previousHtmlOverflow = html.getAttribute(SCROLL_LOCK_HTML_OVERFLOW_ATTR) ?? \"\";\n const previousBodyPaddingRight = body.getAttribute(SCROLL_LOCK_BODY_PADDING_RIGHT_ATTR) ?? \"\";\n const previousHtmlScrollbarGutter =\n html.getAttribute(SCROLL_LOCK_HTML_SCROLLBAR_GUTTER_ATTR) ?? \"\";\n\n body.style.overflow = previousBodyOverflow;\n body.style.paddingRight = previousBodyPaddingRight;\n html.style.overflow = previousHtmlOverflow;\n if (previousHtmlScrollbarGutter === \"\") {\n html.style.removeProperty(\"scrollbar-gutter\");\n } else {\n html.style.scrollbarGutter = previousHtmlScrollbarGutter;\n }\n html.style.removeProperty(\"--kamod-scroll-lock-gutter\");\n html.removeAttribute(\"data-kamod-scroll-lock\");\n body.removeAttribute(SCROLL_LOCK_COUNT_ATTR);\n body.removeAttribute(SCROLL_LOCK_BODY_OVERFLOW_ATTR);\n body.removeAttribute(SCROLL_LOCK_BODY_PADDING_RIGHT_ATTR);\n html.removeAttribute(SCROLL_LOCK_HTML_OVERFLOW_ATTR);\n html.removeAttribute(SCROLL_LOCK_HTML_SCROLLBAR_GUTTER_ATTR);\n };\n};\n\nexport type DialogContextValue = {\n open: ReturnType<typeof signal<boolean>>;\n setOpen: (next: boolean) => void;\n triggerRef: { current: HTMLElement | null };\n titleId: Signal<string | undefined>;\n descriptionId: Signal<string | undefined>;\n};\n\nconst DialogContext = createContext<DialogContextValue | null>(null);\n\nexport const useDialog = () => {\n const context = useContext(DialogContext);\n if (!context) throw new Error(\"Dialog subcomponents must be used within Dialog\");\n return context;\n};\n\nexport type DialogProps = JSX.HTMLAttributes<HTMLDivElement> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** When true, locks document scroll while open (shadcn default). */\n lockBodyScroll?: boolean;\n children?: ComponentChildren;\n};\n\nexport const Dialog = ({\n defaultOpen = false,\n open: openProp,\n onOpenChange,\n lockBodyScroll = true,\n children,\n ...rest\n}: DialogProps) => {\n const onOpenChangeRef = useRef(onOpenChange);\n onOpenChangeRef.current = onOpenChange;\n const triggerRef = useRef<HTMLElement | null>(null);\n const titleId = useMemo(() => signal<string | undefined>(undefined), []);\n const descriptionId = useMemo(() => signal<string | undefined>(undefined), []);\n\n const controllable = useMemo(\n () =>\n createControllableSignal<boolean>({\n value: openProp,\n defaultValue: defaultOpen,\n onChange: (next) => onOpenChangeRef.current?.(next),\n }),\n [],\n );\n const open = controllable.state;\n\n // Controlled mode: keep the internal signal in sync before paint. If we only\n // sync in useEffect, the first commit can render DialogContent with open=false\n // while openProp is already true (portal stays unmounted / dismiss layer races).\n if (openProp !== undefined && open.value !== openProp) {\n open.value = openProp;\n }\n\n const setOpen = (next: boolean) => {\n const wasOpen = open.value;\n controllable.setState(next);\n if (wasOpen && !next) {\n const trigger = triggerRef.current;\n if (trigger && typeof trigger.focus === \"function\") {\n trigger.focus();\n }\n }\n };\n\n const rootRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const layer = createDismissableLayer({\n root: () => rootRef.current,\n open: () => open.value,\n onDismiss: () => {\n setOpen(false);\n },\n });\n return () => layer.dispose();\n }, []);\n\n useEffect(() => {\n if (!lockBodyScroll || typeof document === \"undefined\") return;\n if (!open.value) return;\n return lockDocumentScroll();\n }, [lockBodyScroll, open.value]);\n\n return (\n <DialogContext.Provider value={{ open, setOpen, triggerRef, titleId, descriptionId }}>\n <div ref={rootRef} data-slot=\"dialog\" data-state={open.value ? \"open\" : \"closed\"} {...rest}>\n {children}\n </div>\n </DialogContext.Provider>\n );\n};\n","import { type ComponentChildren, cloneElement, isValidElement, type JSX } from \"preact\";\nimport { useDialog } from \"./Dialog\";\n\nexport type DialogCloseProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n asChild?: boolean;\n children?: ComponentChildren;\n \"data-slot\"?: string;\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 DialogClose = ({\n asChild = false,\n children,\n onClick,\n ref: outerRef,\n \"data-slot\": dataSlot = \"dialog-close\",\n ...rest\n}: DialogCloseProps) => {\n const dialog = useDialog();\n\n const handleClick = (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n onClick?.(event as JSX.TargetedMouseEvent<HTMLButtonElement>);\n if (event.defaultPrevented) return;\n dialog.setOpen(false);\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 \"data-slot\": dataSlot,\n onClick: (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n childProps.onClick?.(event);\n handleClick(event);\n },\n ref: (node: HTMLElement | null) => {\n callRef(childProps.ref, node);\n callRef(outerRef, node);\n },\n } as never);\n }\n\n return (\n <button\n ref={(node) => {\n callRef(outerRef, node);\n }}\n type=\"button\"\n data-slot={dataSlot}\n onClick={(event) => handleClick(event as unknown as JSX.TargetedMouseEvent<HTMLElement>)}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import { useEffect, useRef } from \"preact/hooks\";\nimport { trapFocus } from \"../../lib/interactive\";\nimport { useDialog } from \"./Dialog\";\n\nexport const useModalPanelA11y = (open: boolean) => {\n const dialog = useDialog();\n const panelRef = useRef<HTMLDivElement | null>(null);\n\n const labelledBy = dialog.titleId.value;\n const describedBy = dialog.descriptionId.value;\n\n useEffect(() => {\n if (!open) return;\n const panel = panelRef.current;\n if (!panel) return;\n return trapFocus(panel);\n }, [open]);\n\n return {\n panelRef,\n labelledBy,\n describedBy,\n };\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { createPortal } from \"../../lib/createPortal\";\nimport { isPointerWithinModalDialogPanelSlop } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { useDialog } from \"./Dialog\";\nimport { DialogClose } from \"./DialogClose\";\nimport { useModalPanelA11y } from \"./useModalPanelA11y\";\n\n/**\n * `fixed inset-0` can miss edge pixels vs full-viewport overlays; explicit `100vw` / `100vh`\n * keeps the backdrop flush with the visual viewport.\n */\nexport const dialogViewportBleedClass =\n \"fixed left-0 top-0 h-screen min-h-[100dvh] w-screen min-w-[100vw]\";\n\nconst modalOverlayClass = [\n dialogViewportBleedClass,\n \"z-40 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-in fade-out\",\n].join(\" \");\n\nconst modalPanelBase = [\n \"fixed left-1/2 top-1/2 z-50 grid w-full max-w-[calc(100vw-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-6 shadow-lg outline-none\",\n \"rounded-lg sm:max-w-lg\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards\",\n \"fade-in zoom-in-95 fade-out zoom-out-95 duration-200\",\n \"max-h-[calc(100dvh-2rem)] overflow-y-auto overflow-x-hidden\",\n].join(\" \");\n\nexport type DialogContentPresentation = \"modal\" | \"slot\";\n\nexport type DialogContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n forceMount?: boolean;\n /**\n * `modal` — built-in overlay + centered panel + optional corner close.\n * `slot` — one portaled element only; use when **you** provide overlay + panel (legacy fullscreen `DialogContent` pattern with `fixed inset-0 …`).\n */\n presentation?: DialogContentPresentation;\n showCloseButton?: boolean;\n children?: ComponentChildren;\n \"data-slot\"?: string;\n};\n\n/**\n * Renders dialog body in a portal.\n *\n * - **modal (default):** Backdrop + centered panel; use `class` only for sizing (e.g. `sm:max-w-sm`).\n * - **slot:** Single root node — **required** for legacy/custom layouts that already implement `fixed inset-0` overlay + inner card (otherwise you stack two modals).\n */\nexport const DialogContent = ({\n forceMount = false,\n presentation = \"modal\",\n showCloseButton = true,\n class: className,\n children,\n onKeyDown,\n \"data-slot\": dataSlot = \"dialog-content\",\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n ...rest\n}: DialogContentProps) => {\n const dialog = useDialog();\n const isOpen = dialog.open.value;\n const { panelRef, labelledBy, describedBy } = useModalPanelA11y(isOpen || forceMount);\n if (!isOpen && !forceMount) return null;\n\n const state = isOpen ? \"open\" : \"closed\";\n const modalA11y = {\n \"aria-labelledby\": ariaLabelledBy ?? labelledBy,\n \"aria-describedby\": ariaDescribedBy ?? describedBy,\n };\n\n const handleKeyDown = (event: JSX.TargetedKeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n dialog.setOpen(false);\n }\n onKeyDown?.(event);\n };\n\n if (presentation === \"slot\") {\n const content = (\n <div\n ref={panelRef}\n role=\"dialog\"\n aria-modal=\"true\"\n tabIndex={-1}\n data-slot={dataSlot}\n data-kamod-root-dismissible=\"\"\n data-state={state}\n {...modalA11y}\n {...rest}\n onKeyDown={handleKeyDown}\n class={cn(className as string | undefined)}\n >\n {children}\n </div>\n );\n\n if (typeof document === \"undefined\") return content;\n return createPortal(content, document.body);\n }\n\n const tree = (\n <>\n <div\n aria-hidden=\"true\"\n data-slot=\"dialog-overlay\"\n data-state={state}\n class={modalOverlayClass}\n onPointerDown={(event) => {\n if (event.target !== event.currentTarget) return;\n if (isPointerWithinModalDialogPanelSlop(event)) return;\n dialog.setOpen(false);\n }}\n />\n <div\n ref={panelRef}\n role=\"dialog\"\n aria-modal=\"true\"\n tabIndex={-1}\n data-slot={dataSlot}\n data-state={state}\n {...rest}\n {...modalA11y}\n onKeyDown={handleKeyDown}\n class={cn(modalPanelBase, className as string | undefined)}\n >\n {showCloseButton ? (\n <DialogClose\n aria-label=\"Close\"\n data-slot=\"dialog-close\"\n class={cn(\n \"absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100\",\n \"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n \"disabled:pointer-events-none\",\n )}\n >\n <span class=\"sr-only\">Close</span>\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=\"size-4\"\n aria-hidden\n >\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </DialogClose>\n ) : null}\n {children}\n </div>\n </>\n );\n\n if (typeof document === \"undefined\") return tree;\n return createPortal(tree, document.body);\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useLayoutEffect, useMemo } from \"preact/hooks\";\nimport { createIdFactory } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { useDialog } from \"./Dialog\";\n\nconst nextDescriptionId = createIdFactory(\"dialog-description\");\n\nexport type DialogDescriptionProps = JSX.HTMLAttributes<HTMLParagraphElement> & {\n children?: ComponentChildren;\n};\n\nexport const DialogDescription = ({\n class: className,\n children,\n id: idProp,\n ...rest\n}: DialogDescriptionProps) => {\n const dialog = useDialog();\n const id = useMemo(() => {\n if (typeof idProp === \"string\") return idProp;\n return nextDescriptionId();\n }, [idProp]);\n\n useLayoutEffect(() => {\n dialog.descriptionId.value = id;\n return () => {\n if (dialog.descriptionId.value === id) {\n dialog.descriptionId.value = undefined;\n }\n };\n }, [dialog.descriptionId, id]);\n\n return (\n <p\n data-slot=\"dialog-description\"\n id={id}\n class={cn(\"text-muted-foreground text-sm\", className)}\n {...rest}\n >\n {children}\n </p>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useLayoutEffect, useMemo } from \"preact/hooks\";\nimport { createIdFactory } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { useDialog } from \"./Dialog\";\n\nconst nextTitleId = createIdFactory(\"dialog-title\");\n\nexport type DialogTitleProps = JSX.HTMLAttributes<HTMLHeadingElement> & {\n children?: ComponentChildren;\n};\n\nexport const DialogTitle = ({\n class: className,\n children,\n id: idProp,\n ...rest\n}: DialogTitleProps) => {\n const dialog = useDialog();\n const id = useMemo(() => {\n if (typeof idProp === \"string\") return idProp;\n return nextTitleId();\n }, [idProp]);\n\n useLayoutEffect(() => {\n dialog.titleId.value = id;\n return () => {\n if (dialog.titleId.value === id) {\n dialog.titleId.value = undefined;\n }\n };\n }, [dialog.titleId, id]);\n\n return (\n <h2\n data-slot=\"dialog-title\"\n id={id}\n class={cn(\"text-lg leading-none font-semibold tracking-tight\", className)}\n {...rest}\n >\n {children}\n </h2>\n );\n};\n","import { type ComponentChildren, cloneElement, isValidElement, type JSX } from \"preact\";\nimport { useDialog } from \"./Dialog\";\n\nexport type DialogTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n asChild?: boolean;\n children?: ComponentChildren;\n \"data-slot\"?: string;\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 DialogTrigger = ({\n asChild = false,\n children,\n onClick,\n onPointerDown,\n ref: outerRef,\n \"data-slot\": dataSlot = \"dialog-trigger\",\n ...rest\n}: DialogTriggerProps) => {\n const dialog = useDialog();\n\n const openDialog = () => {\n dialog.setOpen(true);\n };\n\n const handlePointerDown = (event: JSX.TargetedPointerEvent<HTMLElement>) => {\n onPointerDown?.(event as JSX.TargetedPointerEvent<HTMLButtonElement>);\n if (event.defaultPrevented) return;\n if (event.button === 0) {\n openDialog();\n }\n };\n\n const handleClick = (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n onClick?.(event as JSX.TargetedMouseEvent<HTMLButtonElement>);\n if (event.defaultPrevented) return;\n openDialog();\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 onPointerDown?: (event: JSX.TargetedPointerEvent<HTMLElement>) => void;\n };\n\n return cloneElement(children, {\n ...(childProps as Record<string, unknown>),\n ...(rest as Record<string, unknown>),\n \"aria-expanded\": dialog.open.value,\n \"data-slot\": dataSlot,\n onPointerDown: (event: JSX.TargetedPointerEvent<HTMLElement>) => {\n childProps.onPointerDown?.(event);\n handlePointerDown(event);\n },\n onClick: (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n childProps.onClick?.(event);\n handleClick(event);\n },\n ref: (node: HTMLElement | null) => {\n dialog.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 dialog.triggerRef.current = node;\n callRef(outerRef, node);\n }}\n {...rest}\n type=\"button\"\n data-slot={dataSlot}\n aria-expanded={dialog.open.value}\n onPointerDown={(event) => {\n if (event.button === 0) {\n openDialog();\n }\n onPointerDown?.(event);\n }}\n onClick={(event) => {\n openDialog();\n onClick?.(event);\n }}\n >\n {children}\n </button>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/components/dialog/Dialog.tsx","../src/components/dialog/DialogClose.tsx","../src/components/dialog/useModalPanelA11y.ts","../src/components/dialog/DialogContent.tsx","../src/components/dialog/DialogDescription.tsx","../src/components/dialog/DialogTitle.tsx","../src/components/dialog/DialogTrigger.tsx"],"names":["jsx","useRef","useEffect","useMemo","useLayoutEffect","callRef","isValidElement","cloneElement"],"mappings":"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","file":"chunk-DUTKHOH3.js","sourcesContent":["import { type Signal, signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useEffect, useMemo, useRef } from \"preact/hooks\";\nimport { createDismissableLayer } from \"../../lib/interactive\";\nimport { createControllableSignal } from \"../../lib/signals\";\n\nconst SCROLL_LOCK_COUNT_ATTR = \"data-kamod-scroll-lock-count\";\nconst SCROLL_LOCK_BODY_OVERFLOW_ATTR = \"data-kamod-scroll-lock-body-overflow\";\nconst SCROLL_LOCK_HTML_OVERFLOW_ATTR = \"data-kamod-scroll-lock-html-overflow\";\nconst SCROLL_LOCK_BODY_PADDING_RIGHT_ATTR = \"data-kamod-scroll-lock-body-padding-right\";\nconst SCROLL_LOCK_HTML_SCROLLBAR_GUTTER_ATTR = \"data-kamod-scroll-lock-html-scrollbar-gutter\";\n\nconst lockDocumentScroll = () => {\n const body = document.body;\n const html = document.documentElement;\n const lockCount = Number.parseInt(body.getAttribute(SCROLL_LOCK_COUNT_ATTR) ?? \"0\", 10);\n\n if (lockCount === 0) {\n body.setAttribute(SCROLL_LOCK_BODY_OVERFLOW_ATTR, body.style.overflow);\n body.setAttribute(SCROLL_LOCK_BODY_PADDING_RIGHT_ATTR, body.style.paddingRight);\n html.setAttribute(SCROLL_LOCK_HTML_OVERFLOW_ATTR, html.style.overflow);\n html.setAttribute(SCROLL_LOCK_HTML_SCROLLBAR_GUTTER_ATTR, html.style.scrollbarGutter);\n\n const gutter = getComputedStyle(html).scrollbarGutter;\n const viewportUsesStableGutter = gutter === \"stable\" || gutter === \"stable both-edges\";\n\n if (viewportUsesStableGutter) {\n // Stylesheet `html { scrollbar-gutter: stable }` already reserves scrollbar width; do not\n // force `auto` or add body padding-right (that combo reintroduces the header “jump”).\n html.style.setProperty(\"--kamod-scroll-lock-gutter\", \"0px\");\n } else {\n // If the page does not use stable gutter, measure scrollbar width and pad like Radix/shadcn.\n html.style.scrollbarGutter = \"auto\";\n void html.offsetHeight;\n\n const scrollbarWidth = Math.max(0, window.innerWidth - document.documentElement.clientWidth);\n html.style.setProperty(\"--kamod-scroll-lock-gutter\", `${scrollbarWidth}px`);\n\n if (scrollbarWidth > 0) {\n body.style.paddingRight = `${scrollbarWidth}px`;\n }\n }\n\n html.style.overflow = \"hidden\";\n body.style.overflow = \"hidden\";\n html.setAttribute(\"data-kamod-scroll-lock\", \"\");\n }\n\n body.setAttribute(SCROLL_LOCK_COUNT_ATTR, String(lockCount + 1));\n\n return () => {\n const currentCount = Number.parseInt(body.getAttribute(SCROLL_LOCK_COUNT_ATTR) ?? \"0\", 10);\n const nextCount = Math.max(0, currentCount - 1);\n\n if (nextCount > 0) {\n body.setAttribute(SCROLL_LOCK_COUNT_ATTR, String(nextCount));\n return;\n }\n\n const previousBodyOverflow = body.getAttribute(SCROLL_LOCK_BODY_OVERFLOW_ATTR) ?? \"\";\n const previousHtmlOverflow = html.getAttribute(SCROLL_LOCK_HTML_OVERFLOW_ATTR) ?? \"\";\n const previousBodyPaddingRight = body.getAttribute(SCROLL_LOCK_BODY_PADDING_RIGHT_ATTR) ?? \"\";\n const previousHtmlScrollbarGutter =\n html.getAttribute(SCROLL_LOCK_HTML_SCROLLBAR_GUTTER_ATTR) ?? \"\";\n\n body.style.overflow = previousBodyOverflow;\n body.style.paddingRight = previousBodyPaddingRight;\n html.style.overflow = previousHtmlOverflow;\n if (previousHtmlScrollbarGutter === \"\") {\n html.style.removeProperty(\"scrollbar-gutter\");\n } else {\n html.style.scrollbarGutter = previousHtmlScrollbarGutter;\n }\n html.style.removeProperty(\"--kamod-scroll-lock-gutter\");\n html.removeAttribute(\"data-kamod-scroll-lock\");\n body.removeAttribute(SCROLL_LOCK_COUNT_ATTR);\n body.removeAttribute(SCROLL_LOCK_BODY_OVERFLOW_ATTR);\n body.removeAttribute(SCROLL_LOCK_BODY_PADDING_RIGHT_ATTR);\n html.removeAttribute(SCROLL_LOCK_HTML_OVERFLOW_ATTR);\n html.removeAttribute(SCROLL_LOCK_HTML_SCROLLBAR_GUTTER_ATTR);\n };\n};\n\nexport type DialogContextValue = {\n open: ReturnType<typeof signal<boolean>>;\n setOpen: (next: boolean) => void;\n triggerRef: { current: HTMLElement | null };\n titleId: Signal<string | undefined>;\n descriptionId: Signal<string | undefined>;\n};\n\nconst DialogContext = createContext<DialogContextValue | null>(null);\n\nexport const useDialog = () => {\n const context = useContext(DialogContext);\n if (!context) throw new Error(\"Dialog subcomponents must be used within Dialog\");\n return context;\n};\n\nexport type DialogProps = JSX.HTMLAttributes<HTMLDivElement> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** When true, locks document scroll while open (shadcn default). */\n lockBodyScroll?: boolean;\n children?: ComponentChildren;\n};\n\nexport const Dialog = ({\n defaultOpen = false,\n open: openProp,\n onOpenChange,\n lockBodyScroll = true,\n children,\n ...rest\n}: DialogProps) => {\n const onOpenChangeRef = useRef(onOpenChange);\n onOpenChangeRef.current = onOpenChange;\n const triggerRef = useRef<HTMLElement | null>(null);\n const titleId = useMemo(() => signal<string | undefined>(undefined), []);\n const descriptionId = useMemo(() => signal<string | undefined>(undefined), []);\n\n const controllable = useMemo(\n () =>\n createControllableSignal<boolean>({\n value: openProp,\n defaultValue: defaultOpen,\n onChange: (next) => onOpenChangeRef.current?.(next),\n }),\n [],\n );\n const open = controllable.state;\n\n // Controlled mode: keep the internal signal in sync before paint. If we only\n // sync in useEffect, the first commit can render DialogContent with open=false\n // while openProp is already true (portal stays unmounted / dismiss layer races).\n if (openProp !== undefined && open.value !== openProp) {\n open.value = openProp;\n }\n\n const setOpen = (next: boolean) => {\n const wasOpen = open.value;\n controllable.setState(next);\n if (wasOpen && !next) {\n const trigger = triggerRef.current;\n if (trigger && typeof trigger.focus === \"function\") {\n trigger.focus();\n }\n }\n };\n\n const rootRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const layer = createDismissableLayer({\n root: () => rootRef.current,\n open: () => open.value,\n onDismiss: () => {\n setOpen(false);\n },\n });\n return () => layer.dispose();\n }, []);\n\n useEffect(() => {\n if (!lockBodyScroll || typeof document === \"undefined\") return;\n if (!open.value) return;\n return lockDocumentScroll();\n }, [lockBodyScroll, open.value]);\n\n return (\n <DialogContext.Provider value={{ open, setOpen, triggerRef, titleId, descriptionId }}>\n <div ref={rootRef} data-slot=\"dialog\" data-state={open.value ? \"open\" : \"closed\"} {...rest}>\n {children}\n </div>\n </DialogContext.Provider>\n );\n};\n","import { type ComponentChildren, cloneElement, isValidElement, type JSX } from \"preact\";\nimport { useDialog } from \"./Dialog\";\n\nexport type DialogCloseProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n asChild?: boolean;\n children?: ComponentChildren;\n \"data-slot\"?: string;\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 DialogClose = ({\n asChild = false,\n children,\n onClick,\n ref: outerRef,\n \"data-slot\": dataSlot = \"dialog-close\",\n ...rest\n}: DialogCloseProps) => {\n const dialog = useDialog();\n\n const handleClick = (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n onClick?.(event as JSX.TargetedMouseEvent<HTMLButtonElement>);\n if (event.defaultPrevented) return;\n dialog.setOpen(false);\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 \"data-slot\": dataSlot,\n onClick: (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n childProps.onClick?.(event);\n handleClick(event);\n },\n ref: (node: HTMLElement | null) => {\n callRef(childProps.ref, node);\n callRef(outerRef, node);\n },\n } as never);\n }\n\n return (\n <button\n ref={(node) => {\n callRef(outerRef, node);\n }}\n type=\"button\"\n data-slot={dataSlot}\n onClick={(event) => handleClick(event as unknown as JSX.TargetedMouseEvent<HTMLElement>)}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import { useEffect, useRef } from \"preact/hooks\";\nimport { trapFocus } from \"../../lib/interactive\";\nimport { useDialog } from \"./Dialog\";\n\nexport const useModalPanelA11y = (open: boolean) => {\n const dialog = useDialog();\n const panelRef = useRef<HTMLDivElement | null>(null);\n\n const labelledBy = dialog.titleId.value;\n const describedBy = dialog.descriptionId.value;\n\n useEffect(() => {\n if (!open) return;\n const panel = panelRef.current;\n if (!panel) return;\n return trapFocus(panel);\n }, [open]);\n\n return {\n panelRef,\n labelledBy,\n describedBy,\n };\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { createPortal } from \"../../lib/createPortal\";\nimport { isPointerWithinModalDialogPanelSlop } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { useDialog } from \"./Dialog\";\nimport { DialogClose } from \"./DialogClose\";\nimport { useModalPanelA11y } from \"./useModalPanelA11y\";\n\n/**\n * `fixed inset-0` can miss edge pixels vs full-viewport overlays; explicit `100vw` / `100vh`\n * keeps the backdrop flush with the visual viewport.\n */\nexport const dialogViewportBleedClass =\n \"fixed left-0 top-0 h-screen min-h-[100dvh] w-screen min-w-[100vw]\";\n\nconst modalOverlayClass = [\n dialogViewportBleedClass,\n \"z-40 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards fade-in fade-out\",\n].join(\" \");\n\nconst modalPanelBase = [\n \"fixed left-1/2 top-1/2 z-50 grid w-full max-w-[calc(100vw-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-6 shadow-lg outline-none\",\n \"rounded-lg sm:max-w-lg\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fill-mode-forwards\",\n \"fade-in zoom-in-95 fade-out zoom-out-95 duration-200\",\n \"max-h-[calc(100dvh-2rem)] overflow-y-auto overflow-x-hidden\",\n].join(\" \");\n\nexport type DialogContentPresentation = \"modal\" | \"slot\";\n\nexport type DialogContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n forceMount?: boolean;\n /**\n * `modal` — built-in overlay + centered panel + optional corner close.\n * `slot` — one portaled element only; use when **you** provide overlay + panel (legacy fullscreen `DialogContent` pattern with `fixed inset-0 …`).\n */\n presentation?: DialogContentPresentation;\n showCloseButton?: boolean;\n children?: ComponentChildren;\n \"data-slot\"?: string;\n};\n\n/**\n * Renders dialog body in a portal.\n *\n * - **modal (default):** Backdrop + centered panel; use `class` only for sizing (e.g. `sm:max-w-sm`).\n * - **slot:** Single root node — **required** for legacy/custom layouts that already implement `fixed inset-0` overlay + inner card (otherwise you stack two modals).\n */\nexport const DialogContent = ({\n forceMount = false,\n presentation = \"modal\",\n showCloseButton = true,\n class: className,\n children,\n onKeyDown,\n \"data-slot\": dataSlot = \"dialog-content\",\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n ...rest\n}: DialogContentProps) => {\n const dialog = useDialog();\n const isOpen = dialog.open.value;\n const { panelRef, labelledBy, describedBy } = useModalPanelA11y(isOpen || forceMount);\n if (!isOpen && !forceMount) return null;\n\n const state = isOpen ? \"open\" : \"closed\";\n const modalA11y = {\n \"aria-labelledby\": ariaLabelledBy ?? labelledBy,\n \"aria-describedby\": ariaDescribedBy ?? describedBy,\n };\n\n const handleKeyDown = (event: JSX.TargetedKeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n dialog.setOpen(false);\n }\n onKeyDown?.(event);\n };\n\n if (presentation === \"slot\") {\n const content = (\n <div\n ref={panelRef}\n role=\"dialog\"\n aria-modal=\"true\"\n tabIndex={-1}\n data-slot={dataSlot}\n data-kamod-root-dismissible=\"\"\n data-state={state}\n {...modalA11y}\n {...rest}\n onKeyDown={handleKeyDown}\n class={cn(className as string | undefined)}\n >\n {children}\n </div>\n );\n\n if (typeof document === \"undefined\") return content;\n return createPortal(content, document.body);\n }\n\n const tree = (\n <>\n <div\n aria-hidden=\"true\"\n data-slot=\"dialog-overlay\"\n data-state={state}\n class={modalOverlayClass}\n onPointerDown={(event) => {\n if (event.target !== event.currentTarget) return;\n if (isPointerWithinModalDialogPanelSlop(event)) return;\n dialog.setOpen(false);\n }}\n />\n <div\n ref={panelRef}\n role=\"dialog\"\n aria-modal=\"true\"\n tabIndex={-1}\n data-slot={dataSlot}\n data-state={state}\n {...rest}\n {...modalA11y}\n onKeyDown={handleKeyDown}\n class={cn(modalPanelBase, className as string | undefined)}\n >\n {showCloseButton ? (\n <DialogClose\n aria-label=\"Close\"\n data-slot=\"dialog-close\"\n class={cn(\n \"absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100\",\n \"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n \"disabled:pointer-events-none\",\n )}\n >\n <span class=\"sr-only\">Close</span>\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=\"size-4\"\n aria-hidden\n >\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </DialogClose>\n ) : null}\n {children}\n </div>\n </>\n );\n\n if (typeof document === \"undefined\") return tree;\n return createPortal(tree, document.body);\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useLayoutEffect, useMemo } from \"preact/hooks\";\nimport { createIdFactory } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { useDialog } from \"./Dialog\";\n\nconst nextDescriptionId = createIdFactory(\"dialog-description\");\n\nexport type DialogDescriptionProps = JSX.HTMLAttributes<HTMLParagraphElement> & {\n children?: ComponentChildren;\n};\n\nexport const DialogDescription = ({\n class: className,\n children,\n id: idProp,\n ...rest\n}: DialogDescriptionProps) => {\n const dialog = useDialog();\n const id = useMemo(() => {\n if (typeof idProp === \"string\") return idProp;\n return nextDescriptionId();\n }, [idProp]);\n\n useLayoutEffect(() => {\n dialog.descriptionId.value = id;\n return () => {\n if (dialog.descriptionId.value === id) {\n dialog.descriptionId.value = undefined;\n }\n };\n }, [dialog.descriptionId, id]);\n\n return (\n <p\n data-slot=\"dialog-description\"\n id={id}\n class={cn(\"text-muted-foreground text-sm\", className)}\n {...rest}\n >\n {children}\n </p>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useLayoutEffect, useMemo } from \"preact/hooks\";\nimport { createIdFactory } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { useDialog } from \"./Dialog\";\n\nconst nextTitleId = createIdFactory(\"dialog-title\");\n\nexport type DialogTitleProps = JSX.HTMLAttributes<HTMLHeadingElement> & {\n children?: ComponentChildren;\n};\n\nexport const DialogTitle = ({\n class: className,\n children,\n id: idProp,\n ...rest\n}: DialogTitleProps) => {\n const dialog = useDialog();\n const id = useMemo(() => {\n if (typeof idProp === \"string\") return idProp;\n return nextTitleId();\n }, [idProp]);\n\n useLayoutEffect(() => {\n dialog.titleId.value = id;\n return () => {\n if (dialog.titleId.value === id) {\n dialog.titleId.value = undefined;\n }\n };\n }, [dialog.titleId, id]);\n\n return (\n <h2\n data-slot=\"dialog-title\"\n id={id}\n class={cn(\"text-lg leading-none font-semibold tracking-tight\", className)}\n {...rest}\n >\n {children}\n </h2>\n );\n};\n","import { type ComponentChildren, cloneElement, isValidElement, type JSX } from \"preact\";\nimport { useDialog } from \"./Dialog\";\n\nexport type DialogTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n asChild?: boolean;\n children?: ComponentChildren;\n \"data-slot\"?: string;\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 DialogTrigger = ({\n asChild = false,\n children,\n onClick,\n onPointerDown,\n ref: outerRef,\n \"data-slot\": dataSlot = \"dialog-trigger\",\n ...rest\n}: DialogTriggerProps) => {\n const dialog = useDialog();\n\n const openDialog = () => {\n dialog.setOpen(true);\n };\n\n const handlePointerDown = (event: JSX.TargetedPointerEvent<HTMLElement>) => {\n onPointerDown?.(event as JSX.TargetedPointerEvent<HTMLButtonElement>);\n if (event.defaultPrevented) return;\n if (event.button === 0) {\n openDialog();\n }\n };\n\n const handleClick = (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n onClick?.(event as JSX.TargetedMouseEvent<HTMLButtonElement>);\n if (event.defaultPrevented) return;\n openDialog();\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 onPointerDown?: (event: JSX.TargetedPointerEvent<HTMLElement>) => void;\n };\n\n return cloneElement(children, {\n ...(childProps as Record<string, unknown>),\n ...(rest as Record<string, unknown>),\n \"aria-expanded\": dialog.open.value,\n \"data-slot\": dataSlot,\n onPointerDown: (event: JSX.TargetedPointerEvent<HTMLElement>) => {\n childProps.onPointerDown?.(event);\n handlePointerDown(event);\n },\n onClick: (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n childProps.onClick?.(event);\n handleClick(event);\n },\n ref: (node: HTMLElement | null) => {\n dialog.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 dialog.triggerRef.current = node;\n callRef(outerRef, node);\n }}\n {...rest}\n type=\"button\"\n data-slot={dataSlot}\n aria-expanded={dialog.open.value}\n onPointerDown={(event) => {\n if (event.button === 0) {\n openDialog();\n }\n onPointerDown?.(event);\n }}\n onClick={(event) => {\n openDialog();\n onClick?.(event);\n }}\n >\n {children}\n </button>\n );\n};\n"]}
@@ -1,11 +1,11 @@
1
1
  import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from './chunk-HTSAUMF5.js';
2
- import { Skeleton } from './chunk-YZLPO4B2.js';
3
- import { Sheet, SheetContent, SheetHeader } from './chunk-EMUPVA2F.js';
4
- import { Input } from './chunk-6RASPU5N.js';
5
- import { Separator } from './chunk-LCWXIQKA.js';
6
- import { DialogTitle, DialogDescription } from './chunk-HHLQYMPT.js';
7
- import { Button } from './chunk-5FBD2NTR.js';
8
- import { cn } from './chunk-MS2ZNYCJ.js';
2
+ import { Skeleton } from './chunk-WRXXU5F6.js';
3
+ import { Sheet, SheetContent, SheetHeader } from './chunk-KHV3WV6T.js';
4
+ import { Input } from './chunk-7LWAWZHM.js';
5
+ import { Separator } from './chunk-Q3RL7TOY.js';
6
+ import { DialogTitle, DialogDescription } from './chunk-DUTKHOH3.js';
7
+ import { Button } from './chunk-DDRX6NNW.js';
8
+ import { cn } from './chunk-XIANSPQO.js';
9
9
  import { createContext, isValidElement, cloneElement } from 'preact';
10
10
  import { useContext, useState, useCallback, useEffect, useMemo } from 'preact/hooks';
11
11
  import { jsx, jsxs } from 'preact/jsx-runtime';
@@ -429,11 +429,7 @@ var SidebarMenuButton = ({
429
429
  ...rest
430
430
  }) => {
431
431
  const { isMobile, state } = useSidebar();
432
- const classes = sidebarMenuButton({
433
- variant,
434
- size,
435
- class: className
436
- });
432
+ const classes = cn(sidebarMenuButton({ variant, size }), className);
437
433
  const button = asChild ? /* @__PURE__ */ jsx(
438
434
  Slot,
439
435
  {
@@ -688,13 +684,14 @@ var SidebarTrigger = ({ class: className, onClick, ...rest }) => {
688
684
  "data-slot": "sidebar-trigger",
689
685
  variant: "ghost",
690
686
  size: "icon",
687
+ type: "button",
691
688
  class: cn("size-7", className),
692
689
  "aria-label": "Toggle Sidebar",
690
+ ...rest,
693
691
  onClick: (event) => {
694
692
  onClick?.(event);
695
693
  toggleSidebar();
696
694
  },
697
- ...rest,
698
695
  children: [
699
696
  /* @__PURE__ */ jsx(PanelLeftIcon, {}),
700
697
  /* @__PURE__ */ jsx("span", { class: "sr-only", children: "Toggle Sidebar" })
@@ -718,5 +715,5 @@ var sidebar_default = {
718
715
  };
719
716
 
720
717
  export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, sidebar_default, useSidebar };
721
- //# sourceMappingURL=chunk-24QD2FTA.js.map
722
- //# sourceMappingURL=chunk-24QD2FTA.js.map
718
+ //# sourceMappingURL=chunk-EBXTNL52.js.map
719
+ //# sourceMappingURL=chunk-EBXTNL52.js.map