@kamod-ch/ui 1.0.1 → 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 (331) hide show
  1. package/README.md +15 -3
  2. package/dist/{Accordion-D1PiNspd.d.ts → Accordion-BiCBkB8o.d.ts} +7 -1
  3. package/dist/{AlertDialog-GadhKjPC.d.ts → AlertDialog-CZ2taZg4.d.ts} +3 -3
  4. package/dist/Button-OI3VvO-J.d.ts +84 -0
  5. package/dist/{Collapsible-CW1hQwqV.d.ts → Collapsible-BdQqvk35.d.ts} +6 -1
  6. package/dist/{ComboboxValue-BGfXgtZt.d.ts → ComboboxValue-Cq6zoDkt.d.ts} +1 -1
  7. package/dist/{Dialog-BOIteLfe.d.ts → Dialog-DdD1sMwk.d.ts} +12 -1
  8. package/dist/{DialogContent-cQHSRQdT.d.ts → DialogContent-YWzwWdSv.d.ts} +6 -1
  9. package/dist/{Drawer-CdjXZxxK.d.ts → Drawer-8xfn9KLf.d.ts} +2 -2
  10. package/dist/{Dropdown-CVbWVKok.d.ts → Dropdown-CzDJJgXQ.d.ts} +32 -27
  11. package/dist/{FieldTitle-aSgThW-B.d.ts → FieldTitle-hsI0Y6Zm.d.ts} +13 -13
  12. package/dist/{HoverCard-aVEEtkyO.d.ts → HoverCard-CBBr-tT9.d.ts} +14 -14
  13. package/dist/{Input-Cem05el9.d.ts → Input-C_X0Xpn2.d.ts} +11 -11
  14. package/dist/{PopoverTrigger-CH_Kx2mn.d.ts → PopoverTrigger-CIPAh0h0.d.ts} +14 -14
  15. package/dist/{RadioGroup-BaElzLwa.d.ts → RadioGroup-BDF3NaXQ.d.ts} +8 -8
  16. package/dist/{Sheet-DZ-p-aHY.d.ts → Sheet-DVt5iTiK.d.ts} +1 -1
  17. package/dist/SidebarProvider-CoVCItNd.d.ts +160 -0
  18. package/dist/{Switch-CTTkNdqF.d.ts → Switch-BcNJFeRY.d.ts} +8 -8
  19. package/dist/{Tabs-CR-thcs6.d.ts → Tabs-CrXH3YED.d.ts} +18 -9
  20. package/dist/{Textarea-DbKkduOG.d.ts → Textarea-CST17pYW.d.ts} +11 -11
  21. package/dist/Toggle-BgvkYUI8.d.ts +49 -0
  22. package/dist/{ToggleGroup-UeYHzQe7.d.ts → ToggleGroup-CqYICGsS.d.ts} +42 -42
  23. package/dist/Typography-Df9IVmw2.d.ts +64 -0
  24. package/dist/{chunk-ZM67EKZC.js → chunk-22G3DW5M.js} +4 -4
  25. package/dist/{chunk-ZM67EKZC.js.map → chunk-22G3DW5M.js.map} +1 -1
  26. package/dist/{chunk-BDK7CDEI.js → chunk-2F3PWEDR.js} +3 -3
  27. package/dist/{chunk-BDK7CDEI.js.map → chunk-2F3PWEDR.js.map} +1 -1
  28. package/dist/{chunk-ZHAGKFSO.js → chunk-2SPOI3MX.js} +3 -3
  29. package/dist/{chunk-ZHAGKFSO.js.map → chunk-2SPOI3MX.js.map} +1 -1
  30. package/dist/chunk-2UTJHQTS.js +162 -0
  31. package/dist/chunk-2UTJHQTS.js.map +1 -0
  32. package/dist/{chunk-NKKMM6CK.js → chunk-3AFRSB5R.js} +3 -3
  33. package/dist/{chunk-NKKMM6CK.js.map → chunk-3AFRSB5R.js.map} +1 -1
  34. package/dist/{chunk-LCMPFPBN.js → chunk-3ETRJPBL.js} +3 -3
  35. package/dist/{chunk-LCMPFPBN.js.map → chunk-3ETRJPBL.js.map} +1 -1
  36. package/dist/{chunk-WAPRVVDQ.js → chunk-3HBKDY64.js} +3 -3
  37. package/dist/{chunk-WAPRVVDQ.js.map → chunk-3HBKDY64.js.map} +1 -1
  38. package/dist/{chunk-PPYJQNE5.js → chunk-3XMFQKWB.js} +9 -5
  39. package/dist/chunk-3XMFQKWB.js.map +1 -0
  40. package/dist/{chunk-HCTZJYHK.js → chunk-4SQKSVBH.js} +6 -6
  41. package/dist/chunk-4SQKSVBH.js.map +1 -0
  42. package/dist/{chunk-ZVAW22GX.js → chunk-4ZFKDNSK.js} +3 -3
  43. package/dist/{chunk-ZVAW22GX.js.map → chunk-4ZFKDNSK.js.map} +1 -1
  44. package/dist/{chunk-IJ4ZRIR4.js → chunk-53FZEAOJ.js} +5 -5
  45. package/dist/{chunk-IJ4ZRIR4.js.map → chunk-53FZEAOJ.js.map} +1 -1
  46. package/dist/{chunk-BYG2ULS3.js → chunk-5ATODZ6L.js} +5 -7
  47. package/dist/chunk-5ATODZ6L.js.map +1 -0
  48. package/dist/{chunk-TXKPDNRD.js → chunk-5I7ULBDP.js} +3 -3
  49. package/dist/{chunk-TXKPDNRD.js.map → chunk-5I7ULBDP.js.map} +1 -1
  50. package/dist/{chunk-UEXTD7ZB.js → chunk-6HFTTHSY.js} +3 -3
  51. package/dist/{chunk-UEXTD7ZB.js.map → chunk-6HFTTHSY.js.map} +1 -1
  52. package/dist/{chunk-6RASPU5N.js → chunk-7LWAWZHM.js} +4 -11
  53. package/dist/chunk-7LWAWZHM.js.map +1 -0
  54. package/dist/{chunk-RHNI5UQO.js → chunk-A6ZZZFZN.js} +4 -4
  55. package/dist/{chunk-RHNI5UQO.js.map → chunk-A6ZZZFZN.js.map} +1 -1
  56. package/dist/{chunk-V63YIVKJ.js → chunk-APZXMU2X.js} +4 -4
  57. package/dist/{chunk-V63YIVKJ.js.map → chunk-APZXMU2X.js.map} +1 -1
  58. package/dist/{chunk-6FYSVMH7.js → chunk-AYLEWD77.js} +3 -3
  59. package/dist/{chunk-6FYSVMH7.js.map → chunk-AYLEWD77.js.map} +1 -1
  60. package/dist/{chunk-D3DQ4ICC.js → chunk-BZMD4EZC.js} +4 -11
  61. package/dist/chunk-BZMD4EZC.js.map +1 -0
  62. package/dist/{chunk-PU5J5EPY.js → chunk-C7TARE5T.js} +5 -5
  63. package/dist/{chunk-PU5J5EPY.js.map → chunk-C7TARE5T.js.map} +1 -1
  64. package/dist/{chunk-5FBD2NTR.js → chunk-DDRX6NNW.js} +6 -9
  65. package/dist/chunk-DDRX6NNW.js.map +1 -0
  66. package/dist/{chunk-HHLQYMPT.js → chunk-DUTKHOH3.js} +4 -4
  67. package/dist/{chunk-HHLQYMPT.js.map → chunk-DUTKHOH3.js.map} +1 -1
  68. package/dist/chunk-EBXTNL52.js +719 -0
  69. package/dist/chunk-EBXTNL52.js.map +1 -0
  70. package/dist/{chunk-STRBBF45.js → chunk-FOQ32NEP.js} +5 -5
  71. package/dist/chunk-FOQ32NEP.js.map +1 -0
  72. package/dist/{chunk-UIA74JVN.js → chunk-FXG53XY2.js} +5 -5
  73. package/dist/chunk-FXG53XY2.js.map +1 -0
  74. package/dist/{chunk-2KY7P27I.js → chunk-G7LTWXRN.js} +3 -3
  75. package/dist/{chunk-2KY7P27I.js.map → chunk-G7LTWXRN.js.map} +1 -1
  76. package/dist/{chunk-6BK3PIRX.js → chunk-GD3VBO44.js} +6 -6
  77. package/dist/{chunk-6BK3PIRX.js.map → chunk-GD3VBO44.js.map} +1 -1
  78. package/dist/{chunk-MD6HHORY.js → chunk-GPRE2VWB.js} +3 -3
  79. package/dist/{chunk-MD6HHORY.js.map → chunk-GPRE2VWB.js.map} +1 -1
  80. package/dist/{chunk-QZX3RFIC.js → chunk-HJF5AV4L.js} +11 -34
  81. package/dist/chunk-HJF5AV4L.js.map +1 -0
  82. package/dist/{chunk-QFDTG2ZJ.js → chunk-HWPROYKB.js} +3 -3
  83. package/dist/{chunk-QFDTG2ZJ.js.map → chunk-HWPROYKB.js.map} +1 -1
  84. package/dist/chunk-ISISDJ3Z.js +205 -0
  85. package/dist/chunk-ISISDJ3Z.js.map +1 -0
  86. package/dist/{chunk-7AJT2E2Y.js → chunk-IW43BO47.js} +57 -19
  87. package/dist/chunk-IW43BO47.js.map +1 -0
  88. package/dist/{chunk-CLEC2RMU.js → chunk-JKEILBHG.js} +3 -3
  89. package/dist/{chunk-CLEC2RMU.js.map → chunk-JKEILBHG.js.map} +1 -1
  90. package/dist/{chunk-TFLSEEM4.js → chunk-KCN3GXRK.js} +3 -3
  91. package/dist/{chunk-TFLSEEM4.js.map → chunk-KCN3GXRK.js.map} +1 -1
  92. package/dist/{chunk-EMUPVA2F.js → chunk-KHV3WV6T.js} +4 -4
  93. package/dist/{chunk-EMUPVA2F.js.map → chunk-KHV3WV6T.js.map} +1 -1
  94. package/dist/{chunk-G6TV6TF7.js → chunk-KJ5PYCJG.js} +4 -12
  95. package/dist/chunk-KJ5PYCJG.js.map +1 -0
  96. package/dist/{chunk-5KS2VSX2.js → chunk-LAM4GIME.js} +4 -4
  97. package/dist/chunk-LAM4GIME.js.map +1 -0
  98. package/dist/{chunk-OCLVMKVC.js → chunk-MDXTENZ4.js} +8 -31
  99. package/dist/chunk-MDXTENZ4.js.map +1 -0
  100. package/dist/{chunk-CP55TVOV.js → chunk-MJUKNUFV.js} +3 -3
  101. package/dist/{chunk-CP55TVOV.js.map → chunk-MJUKNUFV.js.map} +1 -1
  102. package/dist/{chunk-GGTDJEE2.js → chunk-MTNLY7AY.js} +3 -3
  103. package/dist/{chunk-GGTDJEE2.js.map → chunk-MTNLY7AY.js.map} +1 -1
  104. package/dist/{chunk-67J4KBOW.js → chunk-NBIBBLP6.js} +10 -52
  105. package/dist/chunk-NBIBBLP6.js.map +1 -0
  106. package/dist/chunk-NBP4J2QF.js +200 -0
  107. package/dist/chunk-NBP4J2QF.js.map +1 -0
  108. package/dist/{chunk-NGKQBNZ5.js → chunk-NJYJCMKY.js} +3 -3
  109. package/dist/{chunk-NGKQBNZ5.js.map → chunk-NJYJCMKY.js.map} +1 -1
  110. package/dist/{chunk-COPT6I2D.js → chunk-NSEY5IC6.js} +9 -10
  111. package/dist/chunk-NSEY5IC6.js.map +1 -0
  112. package/dist/{chunk-UARVH66B.js → chunk-O4PHGLXF.js} +5 -5
  113. package/dist/{chunk-UARVH66B.js.map → chunk-O4PHGLXF.js.map} +1 -1
  114. package/dist/{chunk-J4DMQV64.js → chunk-OCZC4PDM.js} +3 -3
  115. package/dist/{chunk-J4DMQV64.js.map → chunk-OCZC4PDM.js.map} +1 -1
  116. package/dist/{chunk-IQH3XSOI.js → chunk-ODYHA3O5.js} +4 -4
  117. package/dist/{chunk-IQH3XSOI.js.map → chunk-ODYHA3O5.js.map} +1 -1
  118. package/dist/chunk-OJEZZVZB.js +9 -0
  119. package/dist/{chunk-CMBERB5B.js.map → chunk-OJEZZVZB.js.map} +1 -1
  120. package/dist/{chunk-7IOAIEIA.js → chunk-OTXP2QJ7.js} +6 -6
  121. package/dist/{chunk-7IOAIEIA.js.map → chunk-OTXP2QJ7.js.map} +1 -1
  122. package/dist/{chunk-JSHUWI3C.js → chunk-OUVUK3E7.js} +9 -9
  123. package/dist/chunk-OUVUK3E7.js.map +1 -0
  124. package/dist/{chunk-3KB54OYF.js → chunk-P6ICWO5B.js} +3 -3
  125. package/dist/{chunk-3KB54OYF.js.map → chunk-P6ICWO5B.js.map} +1 -1
  126. package/dist/{chunk-GIU6BZTW.js → chunk-P7PPE4P5.js} +8 -11
  127. package/dist/chunk-P7PPE4P5.js.map +1 -0
  128. package/dist/{chunk-XGFJJ2YB.js → chunk-PVQUVEZV.js} +4 -11
  129. package/dist/chunk-PVQUVEZV.js.map +1 -0
  130. package/dist/{chunk-LCWXIQKA.js → chunk-Q3RL7TOY.js} +4 -4
  131. package/dist/chunk-Q3RL7TOY.js.map +1 -0
  132. package/dist/{chunk-5Q4RBIMZ.js → chunk-Q5B6ROW6.js} +3 -3
  133. package/dist/{chunk-5Q4RBIMZ.js.map → chunk-Q5B6ROW6.js.map} +1 -1
  134. package/dist/{chunk-262EK2XT.js → chunk-Q7ZDP6DS.js} +9 -7
  135. package/dist/chunk-Q7ZDP6DS.js.map +1 -0
  136. package/dist/{chunk-4IBTERDG.js → chunk-QFTOABOJ.js} +3 -3
  137. package/dist/{chunk-4IBTERDG.js.map → chunk-QFTOABOJ.js.map} +1 -1
  138. package/dist/{chunk-JURNPBSW.js → chunk-QINEFXUA.js} +3 -3
  139. package/dist/{chunk-JURNPBSW.js.map → chunk-QINEFXUA.js.map} +1 -1
  140. package/dist/{chunk-FIOKWIJP.js → chunk-QWSD34JA.js} +4 -4
  141. package/dist/{chunk-FIOKWIJP.js.map → chunk-QWSD34JA.js.map} +1 -1
  142. package/dist/{chunk-Q5IUIA6B.js → chunk-RLBAA7WW.js} +3 -3
  143. package/dist/{chunk-Q5IUIA6B.js.map → chunk-RLBAA7WW.js.map} +1 -1
  144. package/dist/{chunk-2BQ54337.js → chunk-SEC7UN45.js} +5 -5
  145. package/dist/chunk-SEC7UN45.js.map +1 -0
  146. package/dist/chunk-SIA46B4Q.js +9 -0
  147. package/dist/{chunk-RTIFG4XT.js.map → chunk-SIA46B4Q.js.map} +1 -1
  148. package/dist/{chunk-X4HPHMYW.js → chunk-TMPADU74.js} +4 -4
  149. package/dist/{chunk-X4HPHMYW.js.map → chunk-TMPADU74.js.map} +1 -1
  150. package/dist/{chunk-YTHUHPE5.js → chunk-USPWL4KC.js} +3 -3
  151. package/dist/{chunk-YTHUHPE5.js.map → chunk-USPWL4KC.js.map} +1 -1
  152. package/dist/{chunk-U2UNWXBC.js → chunk-VEQ7X2PO.js} +7 -6
  153. package/dist/chunk-VEQ7X2PO.js.map +1 -0
  154. package/dist/{chunk-YZLPO4B2.js → chunk-WRXXU5F6.js} +4 -11
  155. package/dist/chunk-WRXXU5F6.js.map +1 -0
  156. package/dist/{chunk-XNYAQZIB.js → chunk-X4B6I3M4.js} +4 -4
  157. package/dist/{chunk-XNYAQZIB.js.map → chunk-X4B6I3M4.js.map} +1 -1
  158. package/dist/{chunk-JNF7FDJO.js → chunk-XCYEWILH.js} +4 -4
  159. package/dist/{chunk-JNF7FDJO.js.map → chunk-XCYEWILH.js.map} +1 -1
  160. package/dist/{chunk-V2MG5Y5F.js → chunk-XGVQXRLA.js} +4 -4
  161. package/dist/chunk-XGVQXRLA.js.map +1 -0
  162. package/dist/chunk-XIANSPQO.js +11 -0
  163. package/dist/chunk-XIANSPQO.js.map +1 -0
  164. package/dist/{chunk-UNWEH4Z6.js → chunk-XOMPJYYA.js} +4 -4
  165. package/dist/chunk-XOMPJYYA.js.map +1 -0
  166. package/dist/{chunk-UXWUFNXY.js → chunk-XSYSV3R3.js} +3 -3
  167. package/dist/{chunk-UXWUFNXY.js.map → chunk-XSYSV3R3.js.map} +1 -1
  168. package/dist/{chunk-ERBGZZ2U.js → chunk-XZYJUJED.js} +4 -4
  169. package/dist/chunk-XZYJUJED.js.map +1 -0
  170. package/dist/{chunk-PFV7YIEP.js → chunk-Z4JNYSV3.js} +4 -4
  171. package/dist/{chunk-PFV7YIEP.js.map → chunk-Z4JNYSV3.js.map} +1 -1
  172. package/dist/{chunk-4V3WHQJE.js → chunk-ZLSCHWTN.js} +4 -4
  173. package/dist/{chunk-4V3WHQJE.js.map → chunk-ZLSCHWTN.js.map} +1 -1
  174. package/dist/chunk-ZQ2WOX4X.js +29 -0
  175. package/dist/chunk-ZQ2WOX4X.js.map +1 -0
  176. package/dist/{chunk-NILG56Z7.js → chunk-ZROHNZDC.js} +4 -4
  177. package/dist/{chunk-NILG56Z7.js.map → chunk-ZROHNZDC.js.map} +1 -1
  178. package/dist/{chunk-PGOCR4LG.js → chunk-ZVYCUG4N.js} +4 -4
  179. package/dist/chunk-ZVYCUG4N.js.map +1 -0
  180. package/dist/components/accordion/index.d.ts +2 -2
  181. package/dist/components/accordion/index.js +3 -2
  182. package/dist/components/alert/index.d.ts +26 -26
  183. package/dist/components/alert/index.js +2 -2
  184. package/dist/components/alert-dialog/index.d.ts +6 -5
  185. package/dist/components/alert-dialog/index.js +6 -6
  186. package/dist/components/aspect-ratio/index.js +2 -2
  187. package/dist/components/avatar/index.d.ts +11 -11
  188. package/dist/components/avatar/index.js +2 -2
  189. package/dist/components/badge/index.d.ts +112 -112
  190. package/dist/components/badge/index.js +2 -2
  191. package/dist/components/breadcrumb/index.js +2 -2
  192. package/dist/components/button/index.d.ts +51 -51
  193. package/dist/components/button/index.js +3 -3
  194. package/dist/components/button-group/index.js +2 -2
  195. package/dist/components/calendar/index.js +10 -10
  196. package/dist/components/card/index.d.ts +22 -22
  197. package/dist/components/card/index.js +2 -1
  198. package/dist/components/carousel/index.js +3 -3
  199. package/dist/components/chart/index.js +2 -2
  200. package/dist/components/checkbox/index.js +2 -2
  201. package/dist/components/collapsible/index.d.ts +2 -2
  202. package/dist/components/collapsible/index.js +3 -2
  203. package/dist/components/combobox/index.d.ts +2 -2
  204. package/dist/components/combobox/index.js +5 -5
  205. package/dist/components/command/index.js +7 -7
  206. package/dist/components/context-menu/index.d.ts +11 -11
  207. package/dist/components/context-menu/index.js +3 -3
  208. package/dist/components/data-table/index.js +3 -3
  209. package/dist/components/date-picker/index.js +6 -6
  210. package/dist/components/dialog/index.d.ts +26 -5
  211. package/dist/components/dialog/index.js +5 -5
  212. package/dist/components/direction/index.js +2 -2
  213. package/dist/components/drawer/index.d.ts +5 -4
  214. package/dist/components/drawer/index.js +5 -5
  215. package/dist/components/dropdown/index.d.ts +3 -3
  216. package/dist/components/dropdown/index.js +3 -3
  217. package/dist/components/dropzone/index.js +3 -3
  218. package/dist/components/empty/index.d.ts +6 -6
  219. package/dist/components/empty/index.js +2 -2
  220. package/dist/components/field/index.d.ts +2 -2
  221. package/dist/components/field/index.js +4 -4
  222. package/dist/components/hover-card/index.d.ts +2 -2
  223. package/dist/components/hover-card/index.js +2 -1
  224. package/dist/components/image/index.js +2 -2
  225. package/dist/components/input/index.d.ts +12 -12
  226. package/dist/components/input/index.js +3 -2
  227. package/dist/components/input-group/index.d.ts +56 -56
  228. package/dist/components/input-group/index.js +5 -5
  229. package/dist/components/input-otp/index.js +2 -2
  230. package/dist/components/item/index.d.ts +31 -31
  231. package/dist/components/item/index.js +3 -3
  232. package/dist/components/kbd/index.d.ts +8 -8
  233. package/dist/components/kbd/index.js +2 -2
  234. package/dist/components/label/index.d.ts +22 -22
  235. package/dist/components/label/index.js +3 -2
  236. package/dist/components/locale-segment-group/index.js +2 -2
  237. package/dist/components/menubar/index.js +3 -3
  238. package/dist/components/native-select/index.d.ts +34 -34
  239. package/dist/components/native-select/index.js +2 -1
  240. package/dist/components/navigation-menu/index.d.ts +2 -2
  241. package/dist/components/navigation-menu/index.js +3 -3
  242. package/dist/components/pagination/index.d.ts +1 -1
  243. package/dist/components/pagination/index.js +3 -3
  244. package/dist/components/popover/index.d.ts +22 -22
  245. package/dist/components/popover/index.js +4 -3
  246. package/dist/components/progress/index.js +2 -2
  247. package/dist/components/prose/index.js +2 -2
  248. package/dist/components/radio-group/index.d.ts +2 -2
  249. package/dist/components/radio-group/index.js +3 -3
  250. package/dist/components/scroll-area/index.js +2 -2
  251. package/dist/components/select/index.js +3 -3
  252. package/dist/components/selectable-card/index.js +3 -3
  253. package/dist/components/separator/index.d.ts +8 -8
  254. package/dist/components/separator/index.js +3 -2
  255. package/dist/components/sheet/index.d.ts +5 -4
  256. package/dist/components/sheet/index.js +5 -5
  257. package/dist/components/sidebar/index.d.ts +15 -10
  258. package/dist/components/sidebar/index.js +13 -1
  259. package/dist/components/skeleton/index.d.ts +22 -22
  260. package/dist/components/skeleton/index.js +2 -1
  261. package/dist/components/slider/index.js +2 -2
  262. package/dist/components/spinner/index.js +2 -2
  263. package/dist/components/switch/index.d.ts +1 -1
  264. package/dist/components/switch/index.js +2 -2
  265. package/dist/components/table/index.js +3 -3
  266. package/dist/components/tabs/index.d.ts +2 -2
  267. package/dist/components/tabs/index.js +3 -3
  268. package/dist/components/textarea/index.d.ts +12 -12
  269. package/dist/components/textarea/index.js +3 -2
  270. package/dist/components/theme-toggle/index.js +4 -4
  271. package/dist/components/toggle/index.d.ts +1 -1
  272. package/dist/components/toggle/index.js +2 -2
  273. package/dist/components/toggle-group/index.d.ts +2 -2
  274. package/dist/components/toggle-group/index.js +2 -2
  275. package/dist/components/typography/index.d.ts +2 -2
  276. package/dist/components/typography/index.js +2 -2
  277. package/dist/components/video/index.js +2 -2
  278. package/dist/index.d.ts +24 -24
  279. package/dist/index.js +80 -79
  280. package/dist/lib/interactive/index.js +1 -1
  281. package/dist/lib/utils.d.ts +2 -1
  282. package/dist/lib/utils.js +1 -1
  283. package/dist/{navigationMenuTriggerStyle-BWnESpon.d.ts → navigationMenuTriggerStyle-DUhqCYxO.d.ts} +1 -1
  284. package/dist/theme.css +16 -0
  285. package/dist/utils.d.ts +2 -0
  286. package/dist/utils.js +3 -0
  287. package/dist/utils.js.map +1 -0
  288. package/package.json +17 -13
  289. package/dist/Button-vQnkiVTI.d.ts +0 -84
  290. package/dist/SidebarProvider-IAihmyD7.d.ts +0 -46
  291. package/dist/Toggle-CseZl7XN.d.ts +0 -49
  292. package/dist/Typography-ccTtE182.d.ts +0 -64
  293. package/dist/chunk-262EK2XT.js.map +0 -1
  294. package/dist/chunk-2BQ54337.js.map +0 -1
  295. package/dist/chunk-5FBD2NTR.js.map +0 -1
  296. package/dist/chunk-5KS2VSX2.js.map +0 -1
  297. package/dist/chunk-67J4KBOW.js.map +0 -1
  298. package/dist/chunk-6RASPU5N.js.map +0 -1
  299. package/dist/chunk-7AJT2E2Y.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-MKG3UAP6.js +0 -347
  311. package/dist/chunk-MKG3UAP6.js.map +0 -1
  312. package/dist/chunk-MS2ZNYCJ.js +0 -9
  313. package/dist/chunk-MS2ZNYCJ.js.map +0 -1
  314. package/dist/chunk-OCLVMKVC.js.map +0 -1
  315. package/dist/chunk-PGOCR4LG.js.map +0 -1
  316. package/dist/chunk-PPYJQNE5.js.map +0 -1
  317. package/dist/chunk-QZX3RFIC.js.map +0 -1
  318. package/dist/chunk-R565SY7K.js +0 -69
  319. package/dist/chunk-R565SY7K.js.map +0 -1
  320. package/dist/chunk-RTIFG4XT.js +0 -9
  321. package/dist/chunk-STRBBF45.js.map +0 -1
  322. package/dist/chunk-U2UNWXBC.js.map +0 -1
  323. package/dist/chunk-UEGIKBX6.js +0 -385
  324. package/dist/chunk-UEGIKBX6.js.map +0 -1
  325. package/dist/chunk-UIA74JVN.js.map +0 -1
  326. package/dist/chunk-UNWEH4Z6.js.map +0 -1
  327. package/dist/chunk-V2MG5Y5F.js.map +0 -1
  328. package/dist/chunk-X2YUFNK7.js +0 -18
  329. package/dist/chunk-X2YUFNK7.js.map +0 -1
  330. package/dist/chunk-XGFJJ2YB.js.map +0 -1
  331. package/dist/chunk-YZLPO4B2.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-MS2ZNYCJ.js';
1
+ import { cn } from './chunk-XIANSPQO.js';
2
2
  import { createContext } from 'preact';
3
3
  import { useMemo, useState, useContext } from 'preact/hooks';
4
4
  import { tv } from 'tailwind-variants';
@@ -110,7 +110,7 @@ var ToggleGroup = ({
110
110
  "data-size": resolvedSize,
111
111
  role: "group",
112
112
  "aria-orientation": orientation ?? "horizontal",
113
- class: cn(toggleGroup({ orientation, spacing, class: className })),
113
+ class: cn(toggleGroup({ orientation, spacing }), className),
114
114
  ...rest,
115
115
  children
116
116
  }
@@ -171,9 +171,7 @@ var ToggleGroupItem = ({
171
171
  "data-size": resolvedSize,
172
172
  "aria-pressed": pressed,
173
173
  disabled: isDisabled,
174
- class: cn(
175
- toggleGroupItem2({ variant: resolvedVariant, size: resolvedSize, class: className })
176
- ),
174
+ class: cn(toggleGroupItem2({ variant: resolvedVariant, size: resolvedSize }), className),
177
175
  onClick: (event) => {
178
176
  if (isDisabled) return;
179
177
  toggle(value);
@@ -192,5 +190,5 @@ var toggle_group_default = {
192
190
  };
193
191
 
194
192
  export { ToggleGroup, ToggleGroupItem, toggle_group_default };
195
- //# sourceMappingURL=chunk-BYG2ULS3.js.map
196
- //# sourceMappingURL=chunk-BYG2ULS3.js.map
193
+ //# sourceMappingURL=chunk-5ATODZ6L.js.map
194
+ //# sourceMappingURL=chunk-5ATODZ6L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/toggle-group/ToggleGroup.tsx","../src/components/toggle-group/ToggleGroupItem.tsx","../src/components/toggle-group/index.ts"],"names":["value","toggleGroupItem","tv","jsx"],"mappings":"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","file":"chunk-5ATODZ6L.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useMemo, useState } from \"preact/hooks\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\ntype ToggleGroupType = \"single\" | \"multiple\";\n\ntype ToggleGroupContextValue = {\n type: ToggleGroupType;\n values: string[];\n toggle: (value: string) => void;\n disabled: boolean;\n itemVariant?: ToggleGroupItemVariants[\"variant\"];\n itemSize?: ToggleGroupItemVariants[\"size\"];\n};\n\nconst ToggleGroupContext = createContext<ToggleGroupContextValue | null>(null);\n\nexport const useToggleGroup = () => {\n const context = useContext(ToggleGroupContext);\n if (!context) throw new Error(\"ToggleGroupItem must be used within ToggleGroup\");\n return context;\n};\n\nconst toggleGroup = tv({\n base: \"inline-flex items-center justify-center\",\n variants: {\n orientation: {\n horizontal: \"flex-row items-center\",\n vertical: \"flex-col items-start\",\n },\n spacing: {\n none: \"gap-0\",\n sm: \"gap-0.5\",\n default: \"gap-1\",\n lg: \"gap-1.5\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n spacing: \"sm\",\n },\n});\n\n// Used for `typeof toggleGroupItem` type extraction below — runtime usage is intentional.\n// oxlint-disable-next-line typescript/no-unused-vars\nconst toggleGroupItem = tv({\n variants: {\n variant: {\n default: undefined,\n outline: undefined,\n pill: undefined,\n },\n size: {\n sm: undefined,\n default: undefined,\n lg: undefined,\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n});\n\ntype ToggleGroupItemVariants = VariantProps<typeof toggleGroupItem>;\n\ntype ToggleGroupBaseProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, \"class\"> &\n VariantProps<typeof toggleGroup> &\n ToggleGroupItemVariants & {\n class?: string;\n type?: ToggleGroupType;\n defaultValue?: string | string[];\n value?: string | string[];\n onValueChange?: (value: string | string[]) => void;\n disabled?: boolean;\n children?: ComponentChildren;\n };\n\ntype SingleToggleGroupProps = ToggleGroupBaseProps & {\n type?: \"single\";\n onValueChange?: (value: string) => void;\n};\n\ntype MultipleToggleGroupProps = ToggleGroupBaseProps & {\n type: \"multiple\";\n onValueChange?: (value: string[]) => void;\n};\n\nexport type ToggleGroupProps = SingleToggleGroupProps | MultipleToggleGroupProps;\n\nconst toValueArray = (input?: string | string[]) => {\n if (Array.isArray(input)) return input;\n if (typeof input === \"string\") return [input];\n return [];\n};\n\nexport const ToggleGroup = ({\n class: className,\n type = \"single\",\n defaultValue,\n value,\n onValueChange,\n disabled = false,\n orientation,\n spacing,\n variant,\n size,\n children,\n ...rest\n}: ToggleGroupProps) => {\n const initial = useMemo(() => {\n if (Array.isArray(defaultValue)) return defaultValue;\n if (typeof defaultValue === \"string\") return [defaultValue];\n return [];\n }, [defaultValue]);\n const [internalValues, setInternalValues] = useState<string[]>(initial);\n const isControlled = value !== undefined;\n const values = isControlled ? toValueArray(value) : internalValues;\n\n const toggle = (value: string) => {\n const exists = values.includes(value);\n const nextValues =\n type === \"single\"\n ? exists\n ? []\n : [value]\n : exists\n ? values.filter((entry) => entry !== value)\n : [...values, value];\n\n if (!isControlled) {\n setInternalValues(nextValues);\n }\n\n if (onValueChange) {\n if (type === \"multiple\") {\n (onValueChange as (value: string[]) => void)(nextValues);\n } else {\n (onValueChange as (value: string) => void)(nextValues[0] ?? \"\");\n }\n }\n };\n\n const resolvedVariant = variant ?? \"default\";\n const resolvedSize = size ?? \"default\";\n\n return (\n <ToggleGroupContext.Provider\n value={{\n type,\n values,\n toggle,\n disabled,\n itemVariant: resolvedVariant,\n itemSize: resolvedSize,\n }}\n >\n {/* oxlint-disable-next-line jsx-a11y/role-supports-aria-props */}\n <div\n data-slot=\"toggle-group\"\n data-orientation={orientation ?? \"horizontal\"}\n data-variant={resolvedVariant}\n data-size={resolvedSize}\n role=\"group\"\n aria-orientation={orientation ?? \"horizontal\"}\n class={cn(toggleGroup({ orientation, spacing }), className)}\n {...rest}\n >\n {children}\n </div>\n </ToggleGroupContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\nimport { useToggleGroup } from \"./ToggleGroup\";\n\nconst toggleGroupItem = tv({\n base: [\n \"inline-flex items-center justify-center rounded-sm text-xs font-medium whitespace-nowrap\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-3.5\",\n \"data-[size=sm]:[&_svg:not([class*='size-'])]:size-3\",\n \"data-[size=lg]:[&_svg:not([class*='size-'])]:size-4\",\n \"select-none transition-all outline-none\",\n \"focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/45\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"data-[state=on]:bg-accent data-[state=on]:text-accent-foreground data-[state=on]:shadow-xs\",\n ],\n variants: {\n variant: {\n default: \"bg-transparent hover:bg-muted hover:text-muted-foreground\",\n outline:\n \"border border-input/80 bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/25 dark:border-input/80 dark:hover:bg-input/45\",\n pill: \"rounded-full border border-transparent bg-muted/60 hover:bg-muted\",\n },\n size: {\n sm: \"h-7 min-w-7 gap-0.5 px-1.5 text-[11px] leading-none\",\n default: \"h-8 min-w-8 gap-1 px-2\",\n lg: \"h-9 min-w-9 gap-1.5 px-2.5 text-sm\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n});\n\ntype ToggleGroupItemVariants = VariantProps<typeof toggleGroupItem>;\n\nexport type ToggleGroupItemProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"class\"> &\n ToggleGroupItemVariants & {\n class?: string;\n value: string;\n children?: ComponentChildren;\n };\n\nexport const ToggleGroupItem = ({\n class: className,\n value,\n variant,\n size,\n disabled,\n children,\n onClick,\n ...rest\n}: ToggleGroupItemProps) => {\n const { values, toggle, disabled: groupDisabled, itemVariant, itemSize } = useToggleGroup();\n const pressed = values.includes(value);\n const isDisabled = groupDisabled || disabled;\n const resolvedVariant = variant ?? itemVariant ?? \"default\";\n const resolvedSize = size ?? itemSize ?? \"default\";\n\n return (\n <button\n type=\"button\"\n data-slot=\"toggle-group-item\"\n data-state={pressed ? \"on\" : \"off\"}\n data-variant={resolvedVariant}\n data-size={resolvedSize}\n aria-pressed={pressed}\n disabled={isDisabled}\n class={cn(toggleGroupItem({ variant: resolvedVariant, size: resolvedSize }), className)}\n onClick={(event) => {\n if (isDisabled) return;\n toggle(value);\n onClick?.(event);\n }}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import { ToggleGroup } from \"./ToggleGroup\";\nimport { ToggleGroupItem } from \"./ToggleGroupItem\";\n\nexport { ToggleGroup, ToggleGroupItem };\n\nexport default {\n Root: ToggleGroup,\n Item: ToggleGroupItem,\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-MS2ZNYCJ.js';
1
+ import { cn } from './chunk-XIANSPQO.js';
2
2
  import { createContext } from 'preact';
3
3
  import { useContext, useId, useState, useEffect } from 'preact/hooks';
4
4
  import { jsx } from 'preact/jsx-runtime';
@@ -44,5 +44,5 @@ var RadioGroup = ({
44
44
  };
45
45
 
46
46
  export { RadioGroup, useRadioGroup };
47
- //# sourceMappingURL=chunk-TXKPDNRD.js.map
48
- //# sourceMappingURL=chunk-TXKPDNRD.js.map
47
+ //# sourceMappingURL=chunk-5I7ULBDP.js.map
48
+ //# sourceMappingURL=chunk-5I7ULBDP.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/radio-group/RadioGroup.tsx"],"names":[],"mappings":";;;;;AAaA,IAAM,iBAAA,GAAoB,cAA6C,IAAI,CAAA;AAEpE,IAAM,gBAAgB,MAAM;AACjC,EAAA,MAAM,OAAA,GAAU,WAAW,iBAAiB,CAAA;AAC5C,EAAA,IAAI,CAAC,OAAA,EAAS,MAAM,IAAI,MAAM,+CAA+C,CAAA;AAC7E,EAAA,OAAO,OAAA;AACT;AAYO,IAAM,aAAa,CAAC;AAAA,EACzB,IAAA,EAAM,QAAA;AAAA,EACN,YAAA;AAAA,EACA,KAAA,EAAO,SAAA;AAAA,EACP,aAAA;AAAA,EACA,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAuB;AACrB,EAAA,MAAM,SAAS,KAAA,EAAM;AACrB,EAAA,MAAM,IAAA,GAAO,QAAA,IAAY,CAAA,YAAA,EAAe,MAAM,CAAA,CAAA;AAC9C,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,QAAA;AAAA,IACxC,SAAA,KAAc,MAAA,GAAY,SAAA,GAAa,YAAA,IAAgB;AAAA,GACzD;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,cAAc,MAAA,EAAW;AAC3B,MAAA,gBAAA,CAAiB,SAAS,CAAA;AAAA,IAC5B;AAAA,EACF,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,MAAM,QAAA,GAAW,CAAC,IAAA,KAAiB;AACjC,IAAA,IAAI,cAAc,MAAA,EAAW;AAC3B,MAAA,gBAAA,CAAiB,IAAI,CAAA;AAAA,IACvB;AACA,IAAA,aAAA,GAAgB,IAAI,CAAA;AAAA,EACtB,CAAA;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,iBAAA,CAAkB,QAAA;AAAA,IAAlB;AAAA,MACC,OAAO,EAAE,KAAA,EAAO,eAAe,eAAA,EAAiB,SAAA,EAAW,UAAU,IAAA,EAAK;AAAA,MAE1E,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,IAAA,EAAK,YAAA,EAAa,WAAA,EAAU,aAAA,EAAc,KAAA,EAAO,EAAA,CAAG,YAAA,EAAc,SAAS,CAAA,EAAI,GAAG,MACpF,QAAA,EACH;AAAA;AAAA,GACF;AAEJ","file":"chunk-TXKPDNRD.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useEffect, useId, useState } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\n\ntype RadioGroupContextValue = {\n value: string | null;\n /** When set, selection follows this prop; otherwise local state is used. */\n controlledValue: string | undefined;\n setValue: (next: string) => void;\n name: string;\n};\n\nconst RadioGroupContext = createContext<RadioGroupContextValue | null>(null);\n\nexport const useRadioGroup = () => {\n const context = useContext(RadioGroupContext);\n if (!context) throw new Error(\"RadioGroupItem must be used inside RadioGroup\");\n return context;\n};\n\nexport type RadioGroupProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, \"class\"> & {\n /** When omitted, a stable unique name is generated (forms can still submit if you add name to inputs manually). */\n name?: string;\n defaultValue?: string;\n value?: string;\n onValueChange?: (next: string) => void;\n class?: string;\n children?: ComponentChildren;\n};\n\nexport const RadioGroup = ({\n name: nameProp,\n defaultValue,\n value: valueProp,\n onValueChange,\n class: className,\n children,\n ...rest\n}: RadioGroupProps) => {\n const autoId = useId();\n const name = nameProp ?? `radio-group-${autoId}`;\n const [internalValue, setInternalValue] = useState<string | null>(\n valueProp !== undefined ? valueProp : (defaultValue ?? null),\n );\n\n useEffect(() => {\n if (valueProp !== undefined) {\n setInternalValue(valueProp);\n }\n }, [valueProp]);\n\n const setValue = (next: string) => {\n if (valueProp === undefined) {\n setInternalValue(next);\n }\n onValueChange?.(next);\n };\n\n return (\n <RadioGroupContext.Provider\n value={{ value: internalValue, controlledValue: valueProp, setValue, name }}\n >\n <div role=\"radiogroup\" data-slot=\"radio-group\" class={cn(\"grid gap-3\", className)} {...rest}>\n {children}\n </div>\n </RadioGroupContext.Provider>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/components/radio-group/RadioGroup.tsx"],"names":[],"mappings":";;;;;AAaA,IAAM,iBAAA,GAAoB,cAA6C,IAAI,CAAA;AAEpE,IAAM,gBAAgB,MAAM;AACjC,EAAA,MAAM,OAAA,GAAU,WAAW,iBAAiB,CAAA;AAC5C,EAAA,IAAI,CAAC,OAAA,EAAS,MAAM,IAAI,MAAM,+CAA+C,CAAA;AAC7E,EAAA,OAAO,OAAA;AACT;AAYO,IAAM,aAAa,CAAC;AAAA,EACzB,IAAA,EAAM,QAAA;AAAA,EACN,YAAA;AAAA,EACA,KAAA,EAAO,SAAA;AAAA,EACP,aAAA;AAAA,EACA,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAuB;AACrB,EAAA,MAAM,SAAS,KAAA,EAAM;AACrB,EAAA,MAAM,IAAA,GAAO,QAAA,IAAY,CAAA,YAAA,EAAe,MAAM,CAAA,CAAA;AAC9C,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,QAAA;AAAA,IACxC,SAAA,KAAc,MAAA,GAAY,SAAA,GAAa,YAAA,IAAgB;AAAA,GACzD;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,cAAc,MAAA,EAAW;AAC3B,MAAA,gBAAA,CAAiB,SAAS,CAAA;AAAA,IAC5B;AAAA,EACF,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,MAAM,QAAA,GAAW,CAAC,IAAA,KAAiB;AACjC,IAAA,IAAI,cAAc,MAAA,EAAW;AAC3B,MAAA,gBAAA,CAAiB,IAAI,CAAA;AAAA,IACvB;AACA,IAAA,aAAA,GAAgB,IAAI,CAAA;AAAA,EACtB,CAAA;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,iBAAA,CAAkB,QAAA;AAAA,IAAlB;AAAA,MACC,OAAO,EAAE,KAAA,EAAO,eAAe,eAAA,EAAiB,SAAA,EAAW,UAAU,IAAA,EAAK;AAAA,MAE1E,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,IAAA,EAAK,YAAA,EAAa,WAAA,EAAU,aAAA,EAAc,KAAA,EAAO,EAAA,CAAG,YAAA,EAAc,SAAS,CAAA,EAAI,GAAG,MACpF,QAAA,EACH;AAAA;AAAA,GACF;AAEJ","file":"chunk-5I7ULBDP.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useEffect, useId, useState } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\n\ntype RadioGroupContextValue = {\n value: string | null;\n /** When set, selection follows this prop; otherwise local state is used. */\n controlledValue: string | undefined;\n setValue: (next: string) => void;\n name: string;\n};\n\nconst RadioGroupContext = createContext<RadioGroupContextValue | null>(null);\n\nexport const useRadioGroup = () => {\n const context = useContext(RadioGroupContext);\n if (!context) throw new Error(\"RadioGroupItem must be used inside RadioGroup\");\n return context;\n};\n\nexport type RadioGroupProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, \"class\"> & {\n /** When omitted, a stable unique name is generated (forms can still submit if you add name to inputs manually). */\n name?: string;\n defaultValue?: string;\n value?: string;\n onValueChange?: (next: string) => void;\n class?: string;\n children?: ComponentChildren;\n};\n\nexport const RadioGroup = ({\n name: nameProp,\n defaultValue,\n value: valueProp,\n onValueChange,\n class: className,\n children,\n ...rest\n}: RadioGroupProps) => {\n const autoId = useId();\n const name = nameProp ?? `radio-group-${autoId}`;\n const [internalValue, setInternalValue] = useState<string | null>(\n valueProp !== undefined ? valueProp : (defaultValue ?? null),\n );\n\n useEffect(() => {\n if (valueProp !== undefined) {\n setInternalValue(valueProp);\n }\n }, [valueProp]);\n\n const setValue = (next: string) => {\n if (valueProp === undefined) {\n setInternalValue(next);\n }\n onValueChange?.(next);\n };\n\n return (\n <RadioGroupContext.Provider\n value={{ value: internalValue, controlledValue: valueProp, setValue, name }}\n >\n <div role=\"radiogroup\" data-slot=\"radio-group\" class={cn(\"grid gap-3\", className)} {...rest}>\n {children}\n </div>\n </RadioGroupContext.Provider>\n );\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-MS2ZNYCJ.js';
1
+ import { cn } from './chunk-XIANSPQO.js';
2
2
  import { jsx, jsxs } from 'preact/jsx-runtime';
3
3
  import { isValidElement, cloneElement } from 'preact';
4
4
 
@@ -104,5 +104,5 @@ var BreadcrumbSeparator = ({
104
104
  );
105
105
 
106
106
  export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator };
107
- //# sourceMappingURL=chunk-UEXTD7ZB.js.map
108
- //# sourceMappingURL=chunk-UEXTD7ZB.js.map
107
+ //# sourceMappingURL=chunk-6HFTTHSY.js.map
108
+ //# sourceMappingURL=chunk-6HFTTHSY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/breadcrumb/Breadcrumb.tsx","../src/components/breadcrumb/BreadcrumbEllipsis.tsx","../src/components/breadcrumb/BreadcrumbItem.tsx","../src/components/breadcrumb/BreadcrumbLink.tsx","../src/components/breadcrumb/BreadcrumbList.tsx","../src/components/breadcrumb/BreadcrumbPage.tsx","../src/components/breadcrumb/BreadcrumbSeparator.tsx"],"names":["jsx"],"mappings":"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","file":"chunk-UEXTD7ZB.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type BreadcrumbProps = JSX.HTMLAttributes<HTMLElement> & {\n children?: ComponentChildren;\n};\n\nexport const Breadcrumb = ({ class: className, children, ...rest }: BreadcrumbProps) => (\n <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" class={cn(className)} {...rest}>\n {children}\n </nav>\n);\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type BreadcrumbEllipsisProps = JSX.HTMLAttributes<HTMLSpanElement>;\n\nexport const BreadcrumbEllipsis = ({ class: className, ...rest }: BreadcrumbEllipsisProps) => (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n class={cn(\"flex size-9 items-center justify-center\", className)}\n {...rest}\n >\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"size-4\" aria-hidden=\"true\">\n <circle cx=\"5\" cy=\"12\" r=\"2\" />\n <circle cx=\"12\" cy=\"12\" r=\"2\" />\n <circle cx=\"19\" cy=\"12\" r=\"2\" />\n </svg>\n <span class=\"sr-only\">More</span>\n </span>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type BreadcrumbItemProps = JSX.HTMLAttributes<HTMLLIElement> & {\n children?: ComponentChildren;\n};\n\nexport const BreadcrumbItem = ({ class: className, children, ...rest }: BreadcrumbItemProps) => (\n <li\n data-slot=\"breadcrumb-item\"\n class={cn(\"inline-flex items-center gap-1.5\", className)}\n {...rest}\n >\n {children}\n </li>\n);\n","import { type ComponentChildren, cloneElement, isValidElement, type JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type BreadcrumbLinkProps = JSX.AnchorHTMLAttributes<HTMLAnchorElement> & {\n children?: ComponentChildren;\n asChild?: boolean;\n};\n\nconst linkClass = \"hover:text-foreground transition-colors\";\n\nexport const BreadcrumbLink = ({\n asChild = false,\n class: className,\n children,\n ...rest\n}: BreadcrumbLinkProps) => {\n const mergedClass = cn(linkClass, className);\n\n if (asChild) {\n if (!isValidElement(children)) {\n return null;\n }\n\n const childProps = (children.props ?? {}) as JSX.HTMLAttributes<HTMLElement> & {\n class?: string;\n className?: string;\n };\n\n return cloneElement(children, {\n ...(rest as JSX.HTMLAttributes<HTMLElement>),\n ...childProps,\n class: cn(mergedClass, childProps.class, childProps.className),\n \"data-slot\": \"breadcrumb-link\",\n });\n }\n\n return (\n <a data-slot=\"breadcrumb-link\" class={mergedClass} {...rest}>\n {children}\n </a>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type BreadcrumbListProps = JSX.HTMLAttributes<HTMLOListElement> & {\n children?: ComponentChildren;\n};\n\nexport const BreadcrumbList = ({ class: className, children, ...rest }: BreadcrumbListProps) => (\n <ol\n data-slot=\"breadcrumb-list\"\n class={cn(\n \"text-muted-foreground flex flex-wrap items-center gap-1.5 break-words text-sm\",\n className,\n )}\n {...rest}\n >\n {children}\n </ol>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type BreadcrumbPageProps = JSX.HTMLAttributes<HTMLSpanElement> & {\n children?: ComponentChildren;\n};\n\nexport const BreadcrumbPage = ({ class: className, children, ...rest }: BreadcrumbPageProps) => (\n <span\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n data-slot=\"breadcrumb-page\"\n class={cn(\"text-foreground font-medium\", className)}\n {...rest}\n >\n {children}\n </span>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type BreadcrumbSeparatorProps = JSX.HTMLAttributes<HTMLLIElement> & {\n children?: ComponentChildren;\n};\n\nexport const BreadcrumbSeparator = ({\n class: className,\n children,\n ...rest\n}: BreadcrumbSeparatorProps) => (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class={cn(\"[&>svg]:size-3.5\", className)}\n {...rest}\n >\n {children ?? (\n <svg\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=\"shrink-0 rtl:rotate-180\"\n aria-hidden=\"true\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n )}\n </li>\n);\n"]}
1
+ {"version":3,"sources":["../src/components/breadcrumb/Breadcrumb.tsx","../src/components/breadcrumb/BreadcrumbEllipsis.tsx","../src/components/breadcrumb/BreadcrumbItem.tsx","../src/components/breadcrumb/BreadcrumbLink.tsx","../src/components/breadcrumb/BreadcrumbList.tsx","../src/components/breadcrumb/BreadcrumbPage.tsx","../src/components/breadcrumb/BreadcrumbSeparator.tsx"],"names":["jsx"],"mappings":"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","file":"chunk-6HFTTHSY.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type BreadcrumbProps = JSX.HTMLAttributes<HTMLElement> & {\n children?: ComponentChildren;\n};\n\nexport const Breadcrumb = ({ class: className, children, ...rest }: BreadcrumbProps) => (\n <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" class={cn(className)} {...rest}>\n {children}\n </nav>\n);\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type BreadcrumbEllipsisProps = JSX.HTMLAttributes<HTMLSpanElement>;\n\nexport const BreadcrumbEllipsis = ({ class: className, ...rest }: BreadcrumbEllipsisProps) => (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n class={cn(\"flex size-9 items-center justify-center\", className)}\n {...rest}\n >\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"size-4\" aria-hidden=\"true\">\n <circle cx=\"5\" cy=\"12\" r=\"2\" />\n <circle cx=\"12\" cy=\"12\" r=\"2\" />\n <circle cx=\"19\" cy=\"12\" r=\"2\" />\n </svg>\n <span class=\"sr-only\">More</span>\n </span>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type BreadcrumbItemProps = JSX.HTMLAttributes<HTMLLIElement> & {\n children?: ComponentChildren;\n};\n\nexport const BreadcrumbItem = ({ class: className, children, ...rest }: BreadcrumbItemProps) => (\n <li\n data-slot=\"breadcrumb-item\"\n class={cn(\"inline-flex items-center gap-1.5\", className)}\n {...rest}\n >\n {children}\n </li>\n);\n","import { type ComponentChildren, cloneElement, isValidElement, type JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type BreadcrumbLinkProps = JSX.AnchorHTMLAttributes<HTMLAnchorElement> & {\n children?: ComponentChildren;\n asChild?: boolean;\n};\n\nconst linkClass = \"hover:text-foreground transition-colors\";\n\nexport const BreadcrumbLink = ({\n asChild = false,\n class: className,\n children,\n ...rest\n}: BreadcrumbLinkProps) => {\n const mergedClass = cn(linkClass, className);\n\n if (asChild) {\n if (!isValidElement(children)) {\n return null;\n }\n\n const childProps = (children.props ?? {}) as JSX.HTMLAttributes<HTMLElement> & {\n class?: string;\n className?: string;\n };\n\n return cloneElement(children, {\n ...(rest as JSX.HTMLAttributes<HTMLElement>),\n ...childProps,\n class: cn(mergedClass, childProps.class, childProps.className),\n \"data-slot\": \"breadcrumb-link\",\n });\n }\n\n return (\n <a data-slot=\"breadcrumb-link\" class={mergedClass} {...rest}>\n {children}\n </a>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type BreadcrumbListProps = JSX.HTMLAttributes<HTMLOListElement> & {\n children?: ComponentChildren;\n};\n\nexport const BreadcrumbList = ({ class: className, children, ...rest }: BreadcrumbListProps) => (\n <ol\n data-slot=\"breadcrumb-list\"\n class={cn(\n \"text-muted-foreground flex flex-wrap items-center gap-1.5 break-words text-sm\",\n className,\n )}\n {...rest}\n >\n {children}\n </ol>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type BreadcrumbPageProps = JSX.HTMLAttributes<HTMLSpanElement> & {\n children?: ComponentChildren;\n};\n\nexport const BreadcrumbPage = ({ class: className, children, ...rest }: BreadcrumbPageProps) => (\n <span\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n data-slot=\"breadcrumb-page\"\n class={cn(\"text-foreground font-medium\", className)}\n {...rest}\n >\n {children}\n </span>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type BreadcrumbSeparatorProps = JSX.HTMLAttributes<HTMLLIElement> & {\n children?: ComponentChildren;\n};\n\nexport const BreadcrumbSeparator = ({\n class: className,\n children,\n ...rest\n}: BreadcrumbSeparatorProps) => (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n class={cn(\"[&>svg]:size-3.5\", className)}\n {...rest}\n >\n {children ?? (\n <svg\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=\"shrink-0 rtl:rotate-180\"\n aria-hidden=\"true\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n )}\n </li>\n);\n"]}
@@ -1,7 +1,7 @@
1
+ import { cn } from './chunk-XIANSPQO.js';
1
2
  import { tv } from 'tailwind-variants';
2
3
  import { jsx } from 'preact/jsx-runtime';
3
4
 
4
- // src/components/input/Input.tsx
5
5
  var input = tv({
6
6
  base: [
7
7
  "border-input dark:bg-input/30 text-foreground min-w-0 w-full rounded-md border bg-transparent shadow-xs",
@@ -17,15 +17,8 @@ var input = tv({
17
17
  },
18
18
  defaultVariants: { size: "md" }
19
19
  });
20
- var Input = ({ size, class: className, ...rest }) => /* @__PURE__ */ jsx(
21
- "input",
22
- {
23
- class: input({ size, class: className }),
24
- "data-slot": "input",
25
- ...rest
26
- }
27
- );
20
+ var Input = ({ size, class: className, ...rest }) => /* @__PURE__ */ jsx("input", { class: cn(input({ size }), className), "data-slot": "input", ...rest });
28
21
 
29
22
  export { Input, input };
30
- //# sourceMappingURL=chunk-6RASPU5N.js.map
31
- //# sourceMappingURL=chunk-6RASPU5N.js.map
23
+ //# sourceMappingURL=chunk-7LWAWZHM.js.map
24
+ //# sourceMappingURL=chunk-7LWAWZHM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/input/Input.tsx"],"names":[],"mappings":";;;;AAIO,IAAM,QAAQ,EAAA,CAAG;AAAA,EACtB,IAAA,EAAM;AAAA,IACJ,yGAAA;AAAA,IACA,4HAAA;AAAA,IACA,mDAAA;AAAA,IACA,yHAAA;AAAA,IACA,iDAAA;AAAA,IACA,oEAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,MAAM,EAAE,EAAA,EAAI,sBAAsB,EAAA,EAAI,kBAAA,EAAoB,IAAI,sBAAA;AAAuB,GACvF;AAAA,EACA,eAAA,EAAiB,EAAE,IAAA,EAAM,IAAA;AAC3B,CAAC;AAKM,IAAM,KAAA,GAAQ,CAAC,EAAE,IAAA,EAAM,OAAO,SAAA,EAAW,GAAG,IAAA,EAAK,qBACtD,GAAA,CAAC,OAAA,EAAA,EAAM,OAAO,EAAA,CAAG,KAAA,CAAM,EAAE,IAAA,EAAM,CAAA,EAAG,SAAS,CAAA,EAAG,WAAA,EAAU,OAAA,EAAS,GAAG,IAAA,EAAM","file":"chunk-7LWAWZHM.js","sourcesContent":["import type { JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\nexport const input = tv({\n base: [\n \"border-input dark:bg-input/30 text-foreground min-w-0 w-full rounded-md border bg-transparent shadow-xs\",\n \"outline-none focus-visible:border-outline focus-visible:ring-outline/50 transition-[color,box-shadow] focus-visible:ring-3\",\n \"selection:bg-primary/20 selection:text-foreground\",\n \"file:text-foreground file:my-auto file:me-4 file:h-full file:border-0 file:bg-transparent file:text-sm file:font-medium\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"aria-invalid:border-error aria-invalid:focus-visible:ring-error/40\",\n \"peer placeholder:text-muted-foreground\",\n ],\n variants: {\n size: { sm: \"h-7 px-2.5 text-sm\", md: \"h-8 px-3 text-sm\", lg: \"h-9 px-3.5 text-base\" },\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport type InputProps = Omit<JSX.InputHTMLAttributes<HTMLInputElement>, \"size\"> &\n VariantProps<typeof input>;\n\nexport const Input = ({ size, class: className, ...rest }: InputProps) => (\n <input class={cn(input({ size }), className)} data-slot=\"input\" {...rest} />\n);\n"]}
@@ -1,5 +1,5 @@
1
- import { createIdFactory, createDismissableLayer } from './chunk-PPYJQNE5.js';
2
- import { cn } from './chunk-MS2ZNYCJ.js';
1
+ import { createIdFactory, createDismissableLayer } from './chunk-3XMFQKWB.js';
2
+ import { cn } from './chunk-XIANSPQO.js';
3
3
  import { signal } from '@preact/signals';
4
4
  import { useMemo, useRef, useEffect, useContext } from 'preact/hooks';
5
5
  import { createContext } from 'preact';
@@ -451,5 +451,5 @@ var menubar_default = {
451
451
  };
452
452
 
453
453
  export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, menubar_default };
454
- //# sourceMappingURL=chunk-RHNI5UQO.js.map
455
- //# sourceMappingURL=chunk-RHNI5UQO.js.map
454
+ //# sourceMappingURL=chunk-A6ZZZFZN.js.map
455
+ //# sourceMappingURL=chunk-A6ZZZFZN.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/menubar/menubar-context.tsx","../src/components/menubar/Menubar.tsx","../src/components/menubar/MenubarCheckboxItem.tsx","../src/components/menubar/MenubarContent.tsx","../src/components/menubar/MenubarGroup.tsx","../src/components/menubar/MenubarItem.tsx","../src/components/menubar/MenubarLabel.tsx","../src/components/menubar/MenubarMenu.tsx","../src/components/menubar/MenubarRadioGroup.tsx","../src/components/menubar/MenubarRadioItem.tsx","../src/components/menubar/MenubarSeparator.tsx","../src/components/menubar/MenubarShortcut.tsx","../src/components/menubar/MenubarSub.tsx","../src/components/menubar/MenubarSubContent.tsx","../src/components/menubar/MenubarSubTrigger.tsx","../src/components/menubar/MenubarTrigger.tsx","../src/components/menubar/index.ts"],"names":["jsx","useMemo","signal","useEffect","jsxs"],"mappings":"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","file":"chunk-RHNI5UQO.js","sourcesContent":["import { type signal } from \"@preact/signals\";\nimport { createContext } from \"preact\";\nimport { useContext } from \"preact/hooks\";\n\nexport type MenubarRootContextValue = {\n openMenuId: ReturnType<typeof signal<string | null>>;\n setOpenMenuId: (id: string | null) => void;\n rootRef: { current: HTMLDivElement | null };\n};\n\nexport const MenubarRootContext = createContext<MenubarRootContextValue | null>(null);\n\nexport const useMenubarRoot = () => {\n const ctx = useContext(MenubarRootContext);\n if (!ctx) throw new Error(\"Menubar components must be used within Menubar\");\n return ctx;\n};\n\nexport type MenubarMenuContextValue = {\n menuId: string;\n};\n\nexport const MenubarMenuContext = createContext<MenubarMenuContextValue | null>(null);\n\nexport const useMenubarMenu = () => {\n const ctx = useContext(MenubarMenuContext);\n if (!ctx) throw new Error(\"MenubarTrigger and MenubarContent must be inside MenubarMenu\");\n return ctx;\n};\n\nexport type MenubarRadioContextValue = {\n selected: ReturnType<typeof signal<string>>;\n controlledValue: string | undefined;\n setValue: (next: string) => void;\n};\n\nexport const MenubarRadioContext = createContext<MenubarRadioContextValue | null>(null);\n\nexport const useMenubarRadio = () => {\n const ctx = useContext(MenubarRadioContext);\n if (!ctx) throw new Error(\"MenubarRadioItem must be inside MenubarRadioGroup\");\n return ctx;\n};\n\nexport type MenubarSubContextValue = {\n open: ReturnType<typeof signal<boolean>>;\n setOpen: (next: boolean) => void;\n};\n\nexport const MenubarSubContext = createContext<MenubarSubContextValue | null>(null);\n\nexport const useMenubarSub = () => {\n const ctx = useContext(MenubarSubContext);\n if (!ctx) throw new Error(\"MenubarSub parts must be inside MenubarSub\");\n return ctx;\n};\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useEffect, useMemo, useRef } from \"preact/hooks\";\nimport { createDismissableLayer } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { MenubarRootContext } from \"./menubar-context\";\n\nexport type MenubarProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n dir?: \"ltr\" | \"rtl\";\n};\n\nexport const Menubar = ({ class: className, children, dir, ...rest }: MenubarProps) => {\n const openMenuId = useMemo(() => signal<string | null>(null), []);\n const rootRef = useRef<HTMLDivElement | null>(null);\n\n const ctx = useMemo(\n () => ({\n openMenuId,\n setOpenMenuId: (id: string | null) => {\n openMenuId.value = id;\n },\n rootRef,\n }),\n [openMenuId],\n );\n\n useEffect(() => {\n const layer = createDismissableLayer({\n root: () => rootRef.current,\n open: () => openMenuId.value != null,\n onDismiss: () => {\n openMenuId.value = null;\n },\n });\n return () => layer.dispose();\n }, [openMenuId]);\n\n return (\n <MenubarRootContext.Provider value={ctx}>\n <div\n ref={rootRef}\n data-slot=\"menubar\"\n role=\"menubar\"\n dir={dir}\n class={cn(\n \"flex h-9 items-center gap-0 rounded-md border border-border bg-background p-1 shadow-xs\",\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n </MenubarRootContext.Provider>\n );\n};\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useMemo } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\n\nexport type MenubarCheckboxItemProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n children?: ComponentChildren;\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n};\n\nconst CheckIcon = () => (\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=\"M20 6 9 17l-5-5\" />\n </svg>\n);\n\nexport const MenubarCheckboxItem = ({\n class: className,\n children,\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n disabled,\n onClick,\n ...rest\n}: MenubarCheckboxItemProps) => {\n const internal = useMemo(() => signal(defaultChecked), []);\n const checked = controlledChecked !== undefined ? controlledChecked : internal.value;\n\n const setChecked = (next: boolean) => {\n if (controlledChecked === undefined) internal.value = next;\n onCheckedChange?.(next);\n };\n\n return (\n <button\n type=\"button\"\n role=\"menuitemcheckbox\"\n data-slot=\"menubar-checkbox-item\"\n aria-checked={checked}\n disabled={disabled}\n class={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 ps-8 pe-2 text-start text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n className,\n )}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n setChecked(!checked);\n }}\n {...rest}\n >\n <span class=\"absolute start-2 flex size-3.5 items-center justify-center\">\n {checked ? <CheckIcon /> : null}\n </span>\n {children}\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useMenubarMenu, useMenubarRoot } from \"./menubar-context\";\n\nexport type MenubarContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const MenubarContent = ({ class: className, children, ...rest }: MenubarContentProps) => {\n const root = useMenubarRoot();\n const { menuId } = useMenubarMenu();\n const open = root.openMenuId.value === menuId;\n\n if (!open) return null;\n\n return (\n <div\n role=\"menu\"\n data-slot=\"menubar-content\"\n data-state=\"open\"\n class={cn(\n \"absolute start-0 top-full z-50 mt-1 min-w-48 rounded-md border border-border bg-popover p-0 text-popover-foreground shadow-md outline-none\",\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type MenubarGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const MenubarGroup = ({ class: className, children, ...rest }: MenubarGroupProps) => (\n <div role=\"group\" data-slot=\"menubar-group\" class={cn(\"p-1\", className)} {...rest}>\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useMenubarRoot } from \"./menubar-context\";\n\nexport type MenubarItemProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n children?: ComponentChildren;\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n};\n\nexport const MenubarItem = ({\n class: className,\n inset = false,\n variant = \"default\",\n children,\n disabled,\n onClick,\n ...rest\n}: MenubarItemProps) => {\n const root = useMenubarRoot();\n\n return (\n <button\n type=\"button\"\n role=\"menuitem\"\n data-slot=\"menubar-item\"\n data-inset={inset ? \"true\" : undefined}\n data-variant={variant}\n disabled={disabled}\n class={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-start text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n inset && \"ps-8\",\n variant === \"destructive\" &&\n \"text-destructive focus:bg-destructive/10 focus:text-destructive\",\n className,\n )}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n root.setOpenMenuId(null);\n }}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type MenubarLabelProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const MenubarLabel = ({ class: className, children, ...rest }: MenubarLabelProps) => (\n <div\n data-slot=\"menubar-label\"\n class={cn(\"px-2 py-1.5 text-sm font-medium text-muted-foreground\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useMemo } from \"preact/hooks\";\nimport { createIdFactory } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { MenubarMenuContext } from \"./menubar-context\";\n\nconst nextMenuId = createIdFactory(\"menubar-menu\");\n\nexport type MenubarMenuProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n /** Optional stable id; auto-generated when omitted. */\n value?: string;\n};\n\nexport const MenubarMenu = ({\n class: className,\n children,\n value: valueProp,\n ...rest\n}: MenubarMenuProps) => {\n const menuId = useMemo(() => nextMenuId(valueProp), [valueProp]);\n\n return (\n <MenubarMenuContext.Provider value={{ menuId }}>\n <div data-slot=\"menubar-menu\" class={cn(\"relative flex\", className)} {...rest}>\n {children}\n </div>\n </MenubarMenuContext.Provider>\n );\n};\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useEffect, useMemo } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { MenubarRadioContext } from \"./menubar-context\";\n\nexport type MenubarRadioGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n};\n\nexport const MenubarRadioGroup = ({\n class: className,\n children,\n value: controlledValue,\n defaultValue = \"\",\n onValueChange,\n ...rest\n}: MenubarRadioGroupProps) => {\n const selected = useMemo(() => signal(controlledValue ?? defaultValue), []);\n\n useEffect(() => {\n if (controlledValue !== undefined) selected.value = controlledValue;\n }, [controlledValue, selected]);\n\n const ctx = useMemo(\n () => ({\n selected,\n controlledValue,\n setValue: (next: string) => {\n if (controlledValue === undefined) selected.value = next;\n onValueChange?.(next);\n },\n }),\n [controlledValue, onValueChange, selected],\n );\n\n return (\n <MenubarRadioContext.Provider value={ctx}>\n <div role=\"group\" data-slot=\"menubar-radio-group\" class={cn(\"p-1\", className)} {...rest}>\n {children}\n </div>\n </MenubarRadioContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useMenubarRadio } from \"./menubar-context\";\n\nexport type MenubarRadioItemProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n children?: ComponentChildren;\n value: string;\n};\n\nconst CircleIcon = ({ filled }: { filled: boolean }) => (\n <span class=\"flex size-3.5 items-center justify-center\" aria-hidden>\n {filled ? (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"size-2 fill-current\">\n <circle cx=\"12\" cy=\"12\" r=\"6\" />\n </svg>\n ) : (\n <span class=\"size-2 rounded-full border border-current opacity-60\" />\n )}\n </span>\n);\n\nexport const MenubarRadioItem = ({\n class: className,\n value,\n children,\n disabled,\n onClick,\n ...rest\n}: MenubarRadioItemProps) => {\n const radio = useMenubarRadio();\n const current =\n radio.controlledValue !== undefined ? radio.controlledValue : radio.selected.value;\n const checked = current === value;\n\n return (\n <button\n type=\"button\"\n role=\"menuitemradio\"\n data-slot=\"menubar-radio-item\"\n aria-checked={checked}\n disabled={disabled}\n class={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 ps-8 pe-2 text-start text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n className,\n )}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n radio.setValue(value);\n }}\n {...rest}\n >\n <span class=\"absolute start-2 flex size-3.5 items-center justify-center text-foreground\">\n <CircleIcon filled={checked} />\n </span>\n {children}\n </button>\n );\n};\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type MenubarSeparatorProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const MenubarSeparator = ({ class: className, ...rest }: MenubarSeparatorProps) => (\n <div\n role=\"separator\"\n data-slot=\"menubar-separator\"\n class={cn(\"mx-1 my-1 h-px bg-border\", className)}\n {...rest}\n />\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type MenubarShortcutProps = JSX.HTMLAttributes<HTMLSpanElement> & {\n children?: ComponentChildren;\n};\n\nexport const MenubarShortcut = ({ class: className, children, ...rest }: MenubarShortcutProps) => (\n <span\n data-slot=\"menubar-shortcut\"\n class={cn(\"ms-auto text-xs tracking-widest text-muted-foreground\", className)}\n {...rest}\n >\n {children}\n </span>\n);\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useMemo } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { MenubarSubContext } from \"./menubar-context\";\n\nexport type MenubarSubProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const MenubarSub = ({ class: className, children, ...rest }: MenubarSubProps) => {\n const open = useMemo(() => signal(false), []);\n\n const ctx = useMemo(\n () => ({\n open,\n setOpen: (next: boolean) => {\n open.value = next;\n },\n }),\n [open],\n );\n\n return (\n <MenubarSubContext.Provider value={ctx}>\n <div\n data-slot=\"menubar-sub\"\n class={cn(\"relative\", className)}\n onPointerLeave={() => {\n open.value = false;\n }}\n {...rest}\n >\n {children}\n </div>\n </MenubarSubContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useMenubarSub } from \"./menubar-context\";\n\nexport type MenubarSubContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const MenubarSubContent = ({\n class: className,\n children,\n onPointerEnter,\n ...rest\n}: MenubarSubContentProps) => {\n const sub = useMenubarSub();\n\n if (!sub.open.value) return null;\n\n return (\n <div\n role=\"menu\"\n data-slot=\"menubar-sub-content\"\n data-state=\"open\"\n class={cn(\n \"absolute start-full top-0 z-50 min-w-40 rounded-md border border-border bg-popover p-0 text-popover-foreground shadow-md outline-none ms-1 rtl:me-1 rtl:ms-0\",\n className,\n )}\n onPointerEnter={(e) => {\n onPointerEnter?.(e);\n sub.setOpen(true);\n }}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useMenubarSub } from \"./menubar-context\";\n\nconst ChevronRight = ({ class: className }: { class?: string }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class={cn(\"size-4 shrink-0 rtl:rotate-180\", className)}\n aria-hidden\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n);\n\nexport type MenubarSubTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n children?: ComponentChildren;\n};\n\nexport const MenubarSubTrigger = ({\n class: className,\n children,\n onClick,\n onPointerEnter,\n ...rest\n}: MenubarSubTriggerProps) => {\n const sub = useMenubarSub();\n const open = sub.open.value;\n\n return (\n <button\n type=\"button\"\n role=\"menuitem\"\n data-slot=\"menubar-sub-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n aria-expanded={open}\n aria-haspopup=\"menu\"\n class={cn(\n \"flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-start text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n className,\n )}\n onPointerEnter={(e) => {\n onPointerEnter?.(e);\n if (e.defaultPrevented) return;\n sub.setOpen(true);\n }}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n sub.setOpen(!open);\n }}\n {...rest}\n >\n {children}\n <ChevronRight class=\"ms-auto\" />\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useMenubarMenu, useMenubarRoot } from \"./menubar-context\";\n\nexport type MenubarTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n children?: ComponentChildren;\n};\n\nexport const MenubarTrigger = ({\n class: className,\n children,\n onClick,\n ...rest\n}: MenubarTriggerProps) => {\n const root = useMenubarRoot();\n const { menuId } = useMenubarMenu();\n const open = root.openMenuId.value === menuId;\n\n return (\n <button\n type=\"button\"\n data-slot=\"menubar-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n aria-expanded={open}\n aria-haspopup=\"menu\"\n class={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1 text-sm font-medium outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n className,\n )}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n root.setOpenMenuId(open ? null : menuId);\n }}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import { Menubar } from \"./Menubar\";\nimport { MenubarCheckboxItem } from \"./MenubarCheckboxItem\";\nimport { MenubarContent } from \"./MenubarContent\";\nimport { MenubarGroup } from \"./MenubarGroup\";\nimport { MenubarItem } from \"./MenubarItem\";\nimport { MenubarLabel } from \"./MenubarLabel\";\nimport { MenubarMenu } from \"./MenubarMenu\";\nimport { MenubarRadioGroup } from \"./MenubarRadioGroup\";\nimport { MenubarRadioItem } from \"./MenubarRadioItem\";\nimport { MenubarSeparator } from \"./MenubarSeparator\";\nimport { MenubarShortcut } from \"./MenubarShortcut\";\nimport { MenubarSub } from \"./MenubarSub\";\nimport { MenubarSubContent } from \"./MenubarSubContent\";\nimport { MenubarSubTrigger } from \"./MenubarSubTrigger\";\nimport { MenubarTrigger } from \"./MenubarTrigger\";\n\nexport type { MenubarProps } from \"./Menubar\";\nexport type { MenubarCheckboxItemProps } from \"./MenubarCheckboxItem\";\nexport type { MenubarContentProps } from \"./MenubarContent\";\nexport type { MenubarGroupProps } from \"./MenubarGroup\";\nexport type { MenubarItemProps } from \"./MenubarItem\";\nexport type { MenubarLabelProps } from \"./MenubarLabel\";\nexport type { MenubarMenuProps } from \"./MenubarMenu\";\nexport type { MenubarRadioGroupProps } from \"./MenubarRadioGroup\";\nexport type { MenubarRadioItemProps } from \"./MenubarRadioItem\";\nexport type { MenubarSeparatorProps } from \"./MenubarSeparator\";\nexport type { MenubarShortcutProps } from \"./MenubarShortcut\";\nexport type { MenubarSubProps } from \"./MenubarSub\";\nexport type { MenubarSubContentProps } from \"./MenubarSubContent\";\nexport type { MenubarSubTriggerProps } from \"./MenubarSubTrigger\";\nexport type { MenubarTriggerProps } from \"./MenubarTrigger\";\nexport {\n Menubar,\n MenubarCheckboxItem,\n MenubarContent,\n MenubarGroup,\n MenubarItem,\n MenubarLabel,\n MenubarMenu,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSeparator,\n MenubarShortcut,\n MenubarSub,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarTrigger,\n};\n\nexport default {\n Root: Menubar,\n Menu: MenubarMenu,\n Trigger: MenubarTrigger,\n Content: MenubarContent,\n Group: MenubarGroup,\n Item: MenubarItem,\n Label: MenubarLabel,\n Separator: MenubarSeparator,\n Shortcut: MenubarShortcut,\n CheckboxItem: MenubarCheckboxItem,\n RadioGroup: MenubarRadioGroup,\n RadioItem: MenubarRadioItem,\n Sub: MenubarSub,\n SubTrigger: MenubarSubTrigger,\n SubContent: MenubarSubContent,\n};\n"]}
1
+ {"version":3,"sources":["../src/components/menubar/menubar-context.tsx","../src/components/menubar/Menubar.tsx","../src/components/menubar/MenubarCheckboxItem.tsx","../src/components/menubar/MenubarContent.tsx","../src/components/menubar/MenubarGroup.tsx","../src/components/menubar/MenubarItem.tsx","../src/components/menubar/MenubarLabel.tsx","../src/components/menubar/MenubarMenu.tsx","../src/components/menubar/MenubarRadioGroup.tsx","../src/components/menubar/MenubarRadioItem.tsx","../src/components/menubar/MenubarSeparator.tsx","../src/components/menubar/MenubarShortcut.tsx","../src/components/menubar/MenubarSub.tsx","../src/components/menubar/MenubarSubContent.tsx","../src/components/menubar/MenubarSubTrigger.tsx","../src/components/menubar/MenubarTrigger.tsx","../src/components/menubar/index.ts"],"names":["jsx","useMemo","signal","useEffect","jsxs"],"mappings":"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","file":"chunk-A6ZZZFZN.js","sourcesContent":["import { type signal } from \"@preact/signals\";\nimport { createContext } from \"preact\";\nimport { useContext } from \"preact/hooks\";\n\nexport type MenubarRootContextValue = {\n openMenuId: ReturnType<typeof signal<string | null>>;\n setOpenMenuId: (id: string | null) => void;\n rootRef: { current: HTMLDivElement | null };\n};\n\nexport const MenubarRootContext = createContext<MenubarRootContextValue | null>(null);\n\nexport const useMenubarRoot = () => {\n const ctx = useContext(MenubarRootContext);\n if (!ctx) throw new Error(\"Menubar components must be used within Menubar\");\n return ctx;\n};\n\nexport type MenubarMenuContextValue = {\n menuId: string;\n};\n\nexport const MenubarMenuContext = createContext<MenubarMenuContextValue | null>(null);\n\nexport const useMenubarMenu = () => {\n const ctx = useContext(MenubarMenuContext);\n if (!ctx) throw new Error(\"MenubarTrigger and MenubarContent must be inside MenubarMenu\");\n return ctx;\n};\n\nexport type MenubarRadioContextValue = {\n selected: ReturnType<typeof signal<string>>;\n controlledValue: string | undefined;\n setValue: (next: string) => void;\n};\n\nexport const MenubarRadioContext = createContext<MenubarRadioContextValue | null>(null);\n\nexport const useMenubarRadio = () => {\n const ctx = useContext(MenubarRadioContext);\n if (!ctx) throw new Error(\"MenubarRadioItem must be inside MenubarRadioGroup\");\n return ctx;\n};\n\nexport type MenubarSubContextValue = {\n open: ReturnType<typeof signal<boolean>>;\n setOpen: (next: boolean) => void;\n};\n\nexport const MenubarSubContext = createContext<MenubarSubContextValue | null>(null);\n\nexport const useMenubarSub = () => {\n const ctx = useContext(MenubarSubContext);\n if (!ctx) throw new Error(\"MenubarSub parts must be inside MenubarSub\");\n return ctx;\n};\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useEffect, useMemo, useRef } from \"preact/hooks\";\nimport { createDismissableLayer } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { MenubarRootContext } from \"./menubar-context\";\n\nexport type MenubarProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n dir?: \"ltr\" | \"rtl\";\n};\n\nexport const Menubar = ({ class: className, children, dir, ...rest }: MenubarProps) => {\n const openMenuId = useMemo(() => signal<string | null>(null), []);\n const rootRef = useRef<HTMLDivElement | null>(null);\n\n const ctx = useMemo(\n () => ({\n openMenuId,\n setOpenMenuId: (id: string | null) => {\n openMenuId.value = id;\n },\n rootRef,\n }),\n [openMenuId],\n );\n\n useEffect(() => {\n const layer = createDismissableLayer({\n root: () => rootRef.current,\n open: () => openMenuId.value != null,\n onDismiss: () => {\n openMenuId.value = null;\n },\n });\n return () => layer.dispose();\n }, [openMenuId]);\n\n return (\n <MenubarRootContext.Provider value={ctx}>\n <div\n ref={rootRef}\n data-slot=\"menubar\"\n role=\"menubar\"\n dir={dir}\n class={cn(\n \"flex h-9 items-center gap-0 rounded-md border border-border bg-background p-1 shadow-xs\",\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n </MenubarRootContext.Provider>\n );\n};\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useMemo } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\n\nexport type MenubarCheckboxItemProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n children?: ComponentChildren;\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n};\n\nconst CheckIcon = () => (\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=\"M20 6 9 17l-5-5\" />\n </svg>\n);\n\nexport const MenubarCheckboxItem = ({\n class: className,\n children,\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n disabled,\n onClick,\n ...rest\n}: MenubarCheckboxItemProps) => {\n const internal = useMemo(() => signal(defaultChecked), []);\n const checked = controlledChecked !== undefined ? controlledChecked : internal.value;\n\n const setChecked = (next: boolean) => {\n if (controlledChecked === undefined) internal.value = next;\n onCheckedChange?.(next);\n };\n\n return (\n <button\n type=\"button\"\n role=\"menuitemcheckbox\"\n data-slot=\"menubar-checkbox-item\"\n aria-checked={checked}\n disabled={disabled}\n class={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 ps-8 pe-2 text-start text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n className,\n )}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n setChecked(!checked);\n }}\n {...rest}\n >\n <span class=\"absolute start-2 flex size-3.5 items-center justify-center\">\n {checked ? <CheckIcon /> : null}\n </span>\n {children}\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useMenubarMenu, useMenubarRoot } from \"./menubar-context\";\n\nexport type MenubarContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const MenubarContent = ({ class: className, children, ...rest }: MenubarContentProps) => {\n const root = useMenubarRoot();\n const { menuId } = useMenubarMenu();\n const open = root.openMenuId.value === menuId;\n\n if (!open) return null;\n\n return (\n <div\n role=\"menu\"\n data-slot=\"menubar-content\"\n data-state=\"open\"\n class={cn(\n \"absolute start-0 top-full z-50 mt-1 min-w-48 rounded-md border border-border bg-popover p-0 text-popover-foreground shadow-md outline-none\",\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type MenubarGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const MenubarGroup = ({ class: className, children, ...rest }: MenubarGroupProps) => (\n <div role=\"group\" data-slot=\"menubar-group\" class={cn(\"p-1\", className)} {...rest}>\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useMenubarRoot } from \"./menubar-context\";\n\nexport type MenubarItemProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n children?: ComponentChildren;\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n};\n\nexport const MenubarItem = ({\n class: className,\n inset = false,\n variant = \"default\",\n children,\n disabled,\n onClick,\n ...rest\n}: MenubarItemProps) => {\n const root = useMenubarRoot();\n\n return (\n <button\n type=\"button\"\n role=\"menuitem\"\n data-slot=\"menubar-item\"\n data-inset={inset ? \"true\" : undefined}\n data-variant={variant}\n disabled={disabled}\n class={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-start text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n inset && \"ps-8\",\n variant === \"destructive\" &&\n \"text-destructive focus:bg-destructive/10 focus:text-destructive\",\n className,\n )}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n root.setOpenMenuId(null);\n }}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type MenubarLabelProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const MenubarLabel = ({ class: className, children, ...rest }: MenubarLabelProps) => (\n <div\n data-slot=\"menubar-label\"\n class={cn(\"px-2 py-1.5 text-sm font-medium text-muted-foreground\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useMemo } from \"preact/hooks\";\nimport { createIdFactory } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { MenubarMenuContext } from \"./menubar-context\";\n\nconst nextMenuId = createIdFactory(\"menubar-menu\");\n\nexport type MenubarMenuProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n /** Optional stable id; auto-generated when omitted. */\n value?: string;\n};\n\nexport const MenubarMenu = ({\n class: className,\n children,\n value: valueProp,\n ...rest\n}: MenubarMenuProps) => {\n const menuId = useMemo(() => nextMenuId(valueProp), [valueProp]);\n\n return (\n <MenubarMenuContext.Provider value={{ menuId }}>\n <div data-slot=\"menubar-menu\" class={cn(\"relative flex\", className)} {...rest}>\n {children}\n </div>\n </MenubarMenuContext.Provider>\n );\n};\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useEffect, useMemo } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { MenubarRadioContext } from \"./menubar-context\";\n\nexport type MenubarRadioGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n};\n\nexport const MenubarRadioGroup = ({\n class: className,\n children,\n value: controlledValue,\n defaultValue = \"\",\n onValueChange,\n ...rest\n}: MenubarRadioGroupProps) => {\n const selected = useMemo(() => signal(controlledValue ?? defaultValue), []);\n\n useEffect(() => {\n if (controlledValue !== undefined) selected.value = controlledValue;\n }, [controlledValue, selected]);\n\n const ctx = useMemo(\n () => ({\n selected,\n controlledValue,\n setValue: (next: string) => {\n if (controlledValue === undefined) selected.value = next;\n onValueChange?.(next);\n },\n }),\n [controlledValue, onValueChange, selected],\n );\n\n return (\n <MenubarRadioContext.Provider value={ctx}>\n <div role=\"group\" data-slot=\"menubar-radio-group\" class={cn(\"p-1\", className)} {...rest}>\n {children}\n </div>\n </MenubarRadioContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useMenubarRadio } from \"./menubar-context\";\n\nexport type MenubarRadioItemProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n children?: ComponentChildren;\n value: string;\n};\n\nconst CircleIcon = ({ filled }: { filled: boolean }) => (\n <span class=\"flex size-3.5 items-center justify-center\" aria-hidden>\n {filled ? (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"size-2 fill-current\">\n <circle cx=\"12\" cy=\"12\" r=\"6\" />\n </svg>\n ) : (\n <span class=\"size-2 rounded-full border border-current opacity-60\" />\n )}\n </span>\n);\n\nexport const MenubarRadioItem = ({\n class: className,\n value,\n children,\n disabled,\n onClick,\n ...rest\n}: MenubarRadioItemProps) => {\n const radio = useMenubarRadio();\n const current =\n radio.controlledValue !== undefined ? radio.controlledValue : radio.selected.value;\n const checked = current === value;\n\n return (\n <button\n type=\"button\"\n role=\"menuitemradio\"\n data-slot=\"menubar-radio-item\"\n aria-checked={checked}\n disabled={disabled}\n class={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 ps-8 pe-2 text-start text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n className,\n )}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n radio.setValue(value);\n }}\n {...rest}\n >\n <span class=\"absolute start-2 flex size-3.5 items-center justify-center text-foreground\">\n <CircleIcon filled={checked} />\n </span>\n {children}\n </button>\n );\n};\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type MenubarSeparatorProps = JSX.HTMLAttributes<HTMLDivElement>;\n\nexport const MenubarSeparator = ({ class: className, ...rest }: MenubarSeparatorProps) => (\n <div\n role=\"separator\"\n data-slot=\"menubar-separator\"\n class={cn(\"mx-1 my-1 h-px bg-border\", className)}\n {...rest}\n />\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type MenubarShortcutProps = JSX.HTMLAttributes<HTMLSpanElement> & {\n children?: ComponentChildren;\n};\n\nexport const MenubarShortcut = ({ class: className, children, ...rest }: MenubarShortcutProps) => (\n <span\n data-slot=\"menubar-shortcut\"\n class={cn(\"ms-auto text-xs tracking-widest text-muted-foreground\", className)}\n {...rest}\n >\n {children}\n </span>\n);\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useMemo } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { MenubarSubContext } from \"./menubar-context\";\n\nexport type MenubarSubProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const MenubarSub = ({ class: className, children, ...rest }: MenubarSubProps) => {\n const open = useMemo(() => signal(false), []);\n\n const ctx = useMemo(\n () => ({\n open,\n setOpen: (next: boolean) => {\n open.value = next;\n },\n }),\n [open],\n );\n\n return (\n <MenubarSubContext.Provider value={ctx}>\n <div\n data-slot=\"menubar-sub\"\n class={cn(\"relative\", className)}\n onPointerLeave={() => {\n open.value = false;\n }}\n {...rest}\n >\n {children}\n </div>\n </MenubarSubContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useMenubarSub } from \"./menubar-context\";\n\nexport type MenubarSubContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const MenubarSubContent = ({\n class: className,\n children,\n onPointerEnter,\n ...rest\n}: MenubarSubContentProps) => {\n const sub = useMenubarSub();\n\n if (!sub.open.value) return null;\n\n return (\n <div\n role=\"menu\"\n data-slot=\"menubar-sub-content\"\n data-state=\"open\"\n class={cn(\n \"absolute start-full top-0 z-50 min-w-40 rounded-md border border-border bg-popover p-0 text-popover-foreground shadow-md outline-none ms-1 rtl:me-1 rtl:ms-0\",\n className,\n )}\n onPointerEnter={(e) => {\n onPointerEnter?.(e);\n sub.setOpen(true);\n }}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useMenubarSub } from \"./menubar-context\";\n\nconst ChevronRight = ({ class: className }: { class?: string }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class={cn(\"size-4 shrink-0 rtl:rotate-180\", className)}\n aria-hidden\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n);\n\nexport type MenubarSubTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n children?: ComponentChildren;\n};\n\nexport const MenubarSubTrigger = ({\n class: className,\n children,\n onClick,\n onPointerEnter,\n ...rest\n}: MenubarSubTriggerProps) => {\n const sub = useMenubarSub();\n const open = sub.open.value;\n\n return (\n <button\n type=\"button\"\n role=\"menuitem\"\n data-slot=\"menubar-sub-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n aria-expanded={open}\n aria-haspopup=\"menu\"\n class={cn(\n \"flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-start text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n className,\n )}\n onPointerEnter={(e) => {\n onPointerEnter?.(e);\n if (e.defaultPrevented) return;\n sub.setOpen(true);\n }}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n sub.setOpen(!open);\n }}\n {...rest}\n >\n {children}\n <ChevronRight class=\"ms-auto\" />\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useMenubarMenu, useMenubarRoot } from \"./menubar-context\";\n\nexport type MenubarTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n children?: ComponentChildren;\n};\n\nexport const MenubarTrigger = ({\n class: className,\n children,\n onClick,\n ...rest\n}: MenubarTriggerProps) => {\n const root = useMenubarRoot();\n const { menuId } = useMenubarMenu();\n const open = root.openMenuId.value === menuId;\n\n return (\n <button\n type=\"button\"\n data-slot=\"menubar-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n aria-expanded={open}\n aria-haspopup=\"menu\"\n class={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1 text-sm font-medium outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n className,\n )}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n root.setOpenMenuId(open ? null : menuId);\n }}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import { Menubar } from \"./Menubar\";\nimport { MenubarCheckboxItem } from \"./MenubarCheckboxItem\";\nimport { MenubarContent } from \"./MenubarContent\";\nimport { MenubarGroup } from \"./MenubarGroup\";\nimport { MenubarItem } from \"./MenubarItem\";\nimport { MenubarLabel } from \"./MenubarLabel\";\nimport { MenubarMenu } from \"./MenubarMenu\";\nimport { MenubarRadioGroup } from \"./MenubarRadioGroup\";\nimport { MenubarRadioItem } from \"./MenubarRadioItem\";\nimport { MenubarSeparator } from \"./MenubarSeparator\";\nimport { MenubarShortcut } from \"./MenubarShortcut\";\nimport { MenubarSub } from \"./MenubarSub\";\nimport { MenubarSubContent } from \"./MenubarSubContent\";\nimport { MenubarSubTrigger } from \"./MenubarSubTrigger\";\nimport { MenubarTrigger } from \"./MenubarTrigger\";\n\nexport type { MenubarProps } from \"./Menubar\";\nexport type { MenubarCheckboxItemProps } from \"./MenubarCheckboxItem\";\nexport type { MenubarContentProps } from \"./MenubarContent\";\nexport type { MenubarGroupProps } from \"./MenubarGroup\";\nexport type { MenubarItemProps } from \"./MenubarItem\";\nexport type { MenubarLabelProps } from \"./MenubarLabel\";\nexport type { MenubarMenuProps } from \"./MenubarMenu\";\nexport type { MenubarRadioGroupProps } from \"./MenubarRadioGroup\";\nexport type { MenubarRadioItemProps } from \"./MenubarRadioItem\";\nexport type { MenubarSeparatorProps } from \"./MenubarSeparator\";\nexport type { MenubarShortcutProps } from \"./MenubarShortcut\";\nexport type { MenubarSubProps } from \"./MenubarSub\";\nexport type { MenubarSubContentProps } from \"./MenubarSubContent\";\nexport type { MenubarSubTriggerProps } from \"./MenubarSubTrigger\";\nexport type { MenubarTriggerProps } from \"./MenubarTrigger\";\nexport {\n Menubar,\n MenubarCheckboxItem,\n MenubarContent,\n MenubarGroup,\n MenubarItem,\n MenubarLabel,\n MenubarMenu,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSeparator,\n MenubarShortcut,\n MenubarSub,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarTrigger,\n};\n\nexport default {\n Root: Menubar,\n Menu: MenubarMenu,\n Trigger: MenubarTrigger,\n Content: MenubarContent,\n Group: MenubarGroup,\n Item: MenubarItem,\n Label: MenubarLabel,\n Separator: MenubarSeparator,\n Shortcut: MenubarShortcut,\n CheckboxItem: MenubarCheckboxItem,\n RadioGroup: MenubarRadioGroup,\n RadioItem: MenubarRadioItem,\n Sub: MenubarSub,\n SubTrigger: MenubarSubTrigger,\n SubContent: MenubarSubContent,\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { createIdFactory, createDismissableLayer } from './chunk-PPYJQNE5.js';
2
- import { cn } from './chunk-MS2ZNYCJ.js';
1
+ import { createIdFactory, createDismissableLayer } from './chunk-3XMFQKWB.js';
2
+ import { cn } from './chunk-XIANSPQO.js';
3
3
  import { signal } from '@preact/signals';
4
4
  import { useMemo, useRef, useEffect, useContext } from 'preact/hooks';
5
5
  import { createContext, isValidElement, cloneElement } from 'preact';
@@ -322,5 +322,5 @@ var navigation_menu_default = {
322
322
  };
323
323
 
324
324
  export { NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, navigationMenuTriggerStyle, navigation_menu_default };
325
- //# sourceMappingURL=chunk-V63YIVKJ.js.map
326
- //# sourceMappingURL=chunk-V63YIVKJ.js.map
325
+ //# sourceMappingURL=chunk-APZXMU2X.js.map
326
+ //# sourceMappingURL=chunk-APZXMU2X.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/navigation-menu/navigation-menu-context.tsx","../src/components/navigation-menu/NavigationMenu.tsx","../src/components/navigation-menu/NavigationMenuContent.tsx","../src/components/navigation-menu/NavigationMenuItem.tsx","../src/components/navigation-menu/NavigationMenuLink.tsx","../src/components/navigation-menu/NavigationMenuList.tsx","../src/components/navigation-menu/navigationMenuTriggerStyle.ts","../src/components/navigation-menu/NavigationMenuTrigger.tsx","../src/components/navigation-menu/index.ts"],"names":["jsx","useMemo"],"mappings":"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","file":"chunk-V63YIVKJ.js","sourcesContent":["import { type signal } from \"@preact/signals\";\nimport { createContext } from \"preact\";\nimport { useContext } from \"preact/hooks\";\n\nexport type NavigationMenuRootContextValue = {\n openValue: ReturnType<typeof signal<string | null>>;\n delayDuration: number;\n skipDelayDuration: number;\n rootRef: { current: HTMLElement | null };\n openTimerRef: { current: ReturnType<typeof setTimeout> | null };\n closeTimerRef: { current: ReturnType<typeof setTimeout> | null };\n lastOpenAtRef: { current: number };\n requestOpen: (itemValue: string) => void;\n requestClose: (delayMs?: number) => void;\n clearTimers: () => void;\n toggleItem: (itemValue: string) => void;\n};\n\nexport const NavigationMenuRootContext = createContext<NavigationMenuRootContextValue | null>(null);\n\nexport const useNavigationMenuRoot = () => {\n const ctx = useContext(NavigationMenuRootContext);\n if (!ctx) throw new Error(\"NavigationMenu subcomponents must be used within NavigationMenu\");\n return ctx;\n};\n\nexport type NavigationMenuItemContextValue = {\n value: string;\n};\n\nexport const NavigationMenuItemContext = createContext<NavigationMenuItemContextValue | null>(null);\n\nexport const useNavigationMenuItemCtx = () => {\n const ctx = useContext(NavigationMenuItemContext);\n if (!ctx)\n throw new Error(\n \"NavigationMenuTrigger and NavigationMenuContent must be inside NavigationMenuItem\",\n );\n return ctx;\n};\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useEffect, useMemo, useRef } from \"preact/hooks\";\nimport { createDismissableLayer } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport {\n NavigationMenuRootContext,\n type NavigationMenuRootContextValue,\n} from \"./navigation-menu-context\";\n\nexport type NavigationMenuProps = JSX.HTMLAttributes<HTMLElement> & {\n children?: ComponentChildren;\n /** Delay before opening a submenu on hover (ms). */\n delayDuration?: number;\n /** After opening, subsequent opens skip the delay for this many ms. */\n skipDelayDuration?: number;\n /** Passed to the root `nav` for RTL. */\n dir?: \"ltr\" | \"rtl\";\n};\n\nexport const NavigationMenu = ({\n class: className,\n children,\n delayDuration = 200,\n skipDelayDuration = 300,\n dir,\n ...rest\n}: NavigationMenuProps) => {\n const openValue = useMemo(() => signal<string | null>(null), []);\n const rootRef = useRef<HTMLElement | null>(null);\n const openTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const closeTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const lastOpenAtRef = useRef(0);\n\n const ctx = useMemo<NavigationMenuRootContextValue>(() => {\n const clearTimers = () => {\n if (openTimerRef.current) {\n clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }\n if (closeTimerRef.current) {\n clearTimeout(closeTimerRef.current);\n closeTimerRef.current = null;\n }\n };\n\n return {\n openValue,\n delayDuration,\n skipDelayDuration,\n rootRef,\n openTimerRef,\n closeTimerRef,\n lastOpenAtRef,\n clearTimers,\n requestOpen: (itemValue: string) => {\n clearTimers();\n const now = Date.now();\n const skip = now - lastOpenAtRef.current < skipDelayDuration && lastOpenAtRef.current > 0;\n const run = () => {\n openValue.value = itemValue;\n lastOpenAtRef.current = Date.now();\n };\n if (skip || delayDuration <= 0) {\n run();\n } else {\n openTimerRef.current = setTimeout(run, delayDuration);\n }\n },\n requestClose: (delayMs = 120) => {\n clearTimers();\n closeTimerRef.current = setTimeout(() => {\n openValue.value = null;\n closeTimerRef.current = null;\n }, delayMs);\n },\n toggleItem: (itemValue: string) => {\n clearTimers();\n openValue.value = openValue.value === itemValue ? null : itemValue;\n if (openValue.value) lastOpenAtRef.current = Date.now();\n },\n };\n }, [openValue, delayDuration, skipDelayDuration]);\n\n useEffect(() => {\n ctx.delayDuration = delayDuration;\n ctx.skipDelayDuration = skipDelayDuration;\n }, [ctx, delayDuration, skipDelayDuration]);\n\n useEffect(() => {\n const layer = createDismissableLayer({\n root: () => rootRef.current,\n open: () => openValue.value != null,\n onDismiss: () => {\n openValue.value = null;\n },\n });\n return () => layer.dispose();\n }, [openValue]);\n\n return (\n <NavigationMenuRootContext.Provider value={ctx}>\n <nav\n ref={rootRef}\n data-slot=\"navigation-menu\"\n aria-label=\"Main\"\n dir={dir}\n class={cn(\"relative z-10 flex max-w-max flex-1 items-center justify-center\", className)}\n {...rest}\n >\n {children}\n </nav>\n </NavigationMenuRootContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useNavigationMenuItemCtx, useNavigationMenuRoot } from \"./navigation-menu-context\";\n\nexport type NavigationMenuContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const NavigationMenuContent = ({\n class: className,\n children,\n onPointerEnter,\n onPointerLeave,\n ...rest\n}: NavigationMenuContentProps) => {\n const root = useNavigationMenuRoot();\n const { value } = useNavigationMenuItemCtx();\n const open = root.openValue.value === value;\n\n const handlePointerEnter = (e: JSX.TargetedPointerEvent<HTMLDivElement>) => {\n onPointerEnter?.(e);\n root.clearTimers();\n };\n\n const handlePointerLeave = (e: JSX.TargetedPointerEvent<HTMLDivElement>) => {\n onPointerLeave?.(e);\n if (e.defaultPrevented) return;\n root.requestClose();\n };\n\n return (\n <div\n data-slot=\"navigation-menu-content\"\n data-state={open ? \"open\" : \"closed\"}\n class={cn(\n \"absolute start-0 top-full z-50 mt-1.5 w-max origin-top-start overflow-hidden rounded-md border border-border bg-popover p-2 text-popover-foreground shadow-md outline-none\",\n \"transition-[opacity,transform] duration-200\",\n open\n ? \"pointer-events-auto visible opacity-100\"\n : \"pointer-events-none invisible opacity-0\",\n className,\n )}\n onPointerEnter={handlePointerEnter}\n onPointerLeave={handlePointerLeave}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useMemo } from \"preact/hooks\";\nimport { createIdFactory } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { NavigationMenuItemContext } from \"./navigation-menu-context\";\n\nconst nextItemValue = createIdFactory(\"nm-item\");\n\nexport type NavigationMenuItemProps = JSX.HTMLAttributes<HTMLLIElement> & {\n children?: ComponentChildren;\n /** Stable id for this branch; auto-generated when omitted. */\n value?: string;\n};\n\nexport const NavigationMenuItem = ({\n class: className,\n children,\n value: valueProp,\n ...rest\n}: NavigationMenuItemProps) => {\n const value = useMemo(() => nextItemValue(valueProp), [valueProp]);\n\n return (\n <NavigationMenuItemContext.Provider value={{ value }}>\n <li data-slot=\"navigation-menu-item\" class={cn(\"relative\", className)} {...rest}>\n {children}\n </li>\n </NavigationMenuItemContext.Provider>\n );\n};\n","import { type ComponentChildren, cloneElement, isValidElement, type JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useNavigationMenuItemCtx, useNavigationMenuRoot } from \"./navigation-menu-context\";\n\nexport type NavigationMenuLinkProps = JSX.AnchorHTMLAttributes<HTMLAnchorElement> & {\n active?: boolean;\n children?: ComponentChildren;\n asChild?: boolean;\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 NavigationMenuLink = ({\n class: className,\n active = false,\n asChild = false,\n children,\n onClick,\n ref: outerRef,\n ...rest\n}: NavigationMenuLinkProps) => {\n const root = useNavigationMenuRoot();\n const { value } = useNavigationMenuItemCtx();\n const open = root.openValue.value === value;\n\n const linkClass = cn(\n \"block select-none rounded-sm px-3 py-2 text-sm no-underline outline-none transition-colors\",\n \"hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground\",\n active ? \"bg-accent text-accent-foreground\" : \"\",\n className,\n );\n\n const handleClick = (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n onClick?.(event as JSX.TargetedMouseEvent<HTMLAnchorElement>);\n if (event.defaultPrevented) return;\n root.clearTimers();\n root.openValue.value = null;\n };\n\n if (asChild) {\n if (!isValidElement(children)) return null;\n const childProps = (children.props ?? {}) as JSX.HTMLAttributes<HTMLElement> & {\n ref?: unknown;\n onClick?: (event: JSX.TargetedMouseEvent<HTMLElement>) => void;\n class?: string;\n className?: string;\n };\n const mergedClass = cn(linkClass, childProps.class, childProps.className);\n return cloneElement(children, {\n ...(childProps as Record<string, unknown>),\n ...(rest as Record<string, unknown>),\n \"data-slot\": \"navigation-menu-link\",\n \"data-active\": active ? \"\" : undefined,\n \"data-state\": open ? \"open\" : \"closed\",\n class: mergedClass,\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 <a\n ref={(node) => callRef(outerRef, node)}\n data-slot=\"navigation-menu-link\"\n data-active={active ? \"\" : undefined}\n data-state={open ? \"open\" : \"closed\"}\n aria-current={active ? \"page\" : undefined}\n class={linkClass}\n onClick={(e) => handleClick(e as unknown as JSX.TargetedMouseEvent<HTMLElement>)}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type NavigationMenuListProps = JSX.HTMLAttributes<HTMLUListElement> & {\n children?: ComponentChildren;\n};\n\nexport const NavigationMenuList = ({\n class: className,\n children,\n ...rest\n}: NavigationMenuListProps) => (\n <ul\n data-slot=\"navigation-menu-list\"\n class={cn(\"group flex flex-1 list-none items-center justify-center gap-1\", className)}\n {...rest}\n >\n {children}\n </ul>\n);\n","import { tv } from \"tailwind-variants\";\n\n/** Matches shadcn `navigationMenuTriggerStyle()` for use on `NavigationMenuLink` with `asChild`. */\nexport const navigationMenuTriggerStyle = tv({\n base: [\n \"group inline-flex h-9 w-max items-center justify-center gap-1 rounded-md bg-background px-4 py-2 text-sm font-medium outline-none\",\n \"transition-[color,box-shadow] hover:bg-accent hover:text-accent-foreground\",\n \"focus:bg-accent focus:text-accent-foreground focus-visible:ring-[3px] focus-visible:ring-outline/50 focus-visible:outline-1\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"data-[state=open]:bg-accent/50 data-[state=open]:text-accent-foreground data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent\",\n ],\n});\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useNavigationMenuItemCtx, useNavigationMenuRoot } from \"./navigation-menu-context\";\nimport { navigationMenuTriggerStyle } from \"./navigationMenuTriggerStyle\";\n\nconst ChevronDownIcon = ({ class: className }: { class?: string }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden\n class={cn(\n \"size-4 shrink-0 transition duration-200 group-data-[state=open]:rotate-180 rtl:-rotate-180 group-data-[state=open]:rtl:rotate-0\",\n className,\n )}\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n);\n\nexport type NavigationMenuTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n children?: ComponentChildren;\n};\n\nexport const NavigationMenuTrigger = ({\n class: className,\n children,\n onClick,\n onPointerEnter,\n onPointerLeave,\n ...rest\n}: NavigationMenuTriggerProps) => {\n const root = useNavigationMenuRoot();\n const { value } = useNavigationMenuItemCtx();\n const open = root.openValue.value === value;\n\n const handlePointerEnter = (e: JSX.TargetedPointerEvent<HTMLButtonElement>) => {\n onPointerEnter?.(e);\n if (e.defaultPrevented) return;\n root.requestOpen(value);\n };\n\n const handlePointerLeave = (e: JSX.TargetedPointerEvent<HTMLButtonElement>) => {\n onPointerLeave?.(e);\n if (e.defaultPrevented) return;\n root.requestClose();\n };\n\n const handleClick = (e: JSX.TargetedMouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n root.toggleItem(value);\n };\n\n return (\n <button\n type=\"button\"\n data-slot=\"navigation-menu-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n aria-expanded={open}\n class={cn(navigationMenuTriggerStyle(), \"group\", className)}\n onPointerEnter={handlePointerEnter}\n onPointerLeave={handlePointerLeave}\n onClick={handleClick}\n {...rest}\n >\n {children}\n <ChevronDownIcon />\n </button>\n );\n};\n","import { NavigationMenu } from \"./NavigationMenu\";\nimport { NavigationMenuContent } from \"./NavigationMenuContent\";\nimport { NavigationMenuItem } from \"./NavigationMenuItem\";\nimport { NavigationMenuLink } from \"./NavigationMenuLink\";\nimport { NavigationMenuList } from \"./NavigationMenuList\";\nimport { NavigationMenuTrigger } from \"./NavigationMenuTrigger\";\nimport { navigationMenuTriggerStyle } from \"./navigationMenuTriggerStyle\";\n\nexport type { NavigationMenuProps } from \"./NavigationMenu\";\nexport type { NavigationMenuContentProps } from \"./NavigationMenuContent\";\nexport type { NavigationMenuItemProps } from \"./NavigationMenuItem\";\nexport type { NavigationMenuLinkProps } from \"./NavigationMenuLink\";\nexport type { NavigationMenuListProps } from \"./NavigationMenuList\";\nexport type { NavigationMenuTriggerProps } from \"./NavigationMenuTrigger\";\nexport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n navigationMenuTriggerStyle,\n};\n\nexport default {\n Root: NavigationMenu,\n List: NavigationMenuList,\n Item: NavigationMenuItem,\n Link: NavigationMenuLink,\n Trigger: NavigationMenuTrigger,\n Content: NavigationMenuContent,\n};\n"]}
1
+ {"version":3,"sources":["../src/components/navigation-menu/navigation-menu-context.tsx","../src/components/navigation-menu/NavigationMenu.tsx","../src/components/navigation-menu/NavigationMenuContent.tsx","../src/components/navigation-menu/NavigationMenuItem.tsx","../src/components/navigation-menu/NavigationMenuLink.tsx","../src/components/navigation-menu/NavigationMenuList.tsx","../src/components/navigation-menu/navigationMenuTriggerStyle.ts","../src/components/navigation-menu/NavigationMenuTrigger.tsx","../src/components/navigation-menu/index.ts"],"names":["jsx","useMemo"],"mappings":"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","file":"chunk-APZXMU2X.js","sourcesContent":["import { type signal } from \"@preact/signals\";\nimport { createContext } from \"preact\";\nimport { useContext } from \"preact/hooks\";\n\nexport type NavigationMenuRootContextValue = {\n openValue: ReturnType<typeof signal<string | null>>;\n delayDuration: number;\n skipDelayDuration: number;\n rootRef: { current: HTMLElement | null };\n openTimerRef: { current: ReturnType<typeof setTimeout> | null };\n closeTimerRef: { current: ReturnType<typeof setTimeout> | null };\n lastOpenAtRef: { current: number };\n requestOpen: (itemValue: string) => void;\n requestClose: (delayMs?: number) => void;\n clearTimers: () => void;\n toggleItem: (itemValue: string) => void;\n};\n\nexport const NavigationMenuRootContext = createContext<NavigationMenuRootContextValue | null>(null);\n\nexport const useNavigationMenuRoot = () => {\n const ctx = useContext(NavigationMenuRootContext);\n if (!ctx) throw new Error(\"NavigationMenu subcomponents must be used within NavigationMenu\");\n return ctx;\n};\n\nexport type NavigationMenuItemContextValue = {\n value: string;\n};\n\nexport const NavigationMenuItemContext = createContext<NavigationMenuItemContextValue | null>(null);\n\nexport const useNavigationMenuItemCtx = () => {\n const ctx = useContext(NavigationMenuItemContext);\n if (!ctx)\n throw new Error(\n \"NavigationMenuTrigger and NavigationMenuContent must be inside NavigationMenuItem\",\n );\n return ctx;\n};\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useEffect, useMemo, useRef } from \"preact/hooks\";\nimport { createDismissableLayer } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport {\n NavigationMenuRootContext,\n type NavigationMenuRootContextValue,\n} from \"./navigation-menu-context\";\n\nexport type NavigationMenuProps = JSX.HTMLAttributes<HTMLElement> & {\n children?: ComponentChildren;\n /** Delay before opening a submenu on hover (ms). */\n delayDuration?: number;\n /** After opening, subsequent opens skip the delay for this many ms. */\n skipDelayDuration?: number;\n /** Passed to the root `nav` for RTL. */\n dir?: \"ltr\" | \"rtl\";\n};\n\nexport const NavigationMenu = ({\n class: className,\n children,\n delayDuration = 200,\n skipDelayDuration = 300,\n dir,\n ...rest\n}: NavigationMenuProps) => {\n const openValue = useMemo(() => signal<string | null>(null), []);\n const rootRef = useRef<HTMLElement | null>(null);\n const openTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const closeTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const lastOpenAtRef = useRef(0);\n\n const ctx = useMemo<NavigationMenuRootContextValue>(() => {\n const clearTimers = () => {\n if (openTimerRef.current) {\n clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }\n if (closeTimerRef.current) {\n clearTimeout(closeTimerRef.current);\n closeTimerRef.current = null;\n }\n };\n\n return {\n openValue,\n delayDuration,\n skipDelayDuration,\n rootRef,\n openTimerRef,\n closeTimerRef,\n lastOpenAtRef,\n clearTimers,\n requestOpen: (itemValue: string) => {\n clearTimers();\n const now = Date.now();\n const skip = now - lastOpenAtRef.current < skipDelayDuration && lastOpenAtRef.current > 0;\n const run = () => {\n openValue.value = itemValue;\n lastOpenAtRef.current = Date.now();\n };\n if (skip || delayDuration <= 0) {\n run();\n } else {\n openTimerRef.current = setTimeout(run, delayDuration);\n }\n },\n requestClose: (delayMs = 120) => {\n clearTimers();\n closeTimerRef.current = setTimeout(() => {\n openValue.value = null;\n closeTimerRef.current = null;\n }, delayMs);\n },\n toggleItem: (itemValue: string) => {\n clearTimers();\n openValue.value = openValue.value === itemValue ? null : itemValue;\n if (openValue.value) lastOpenAtRef.current = Date.now();\n },\n };\n }, [openValue, delayDuration, skipDelayDuration]);\n\n useEffect(() => {\n ctx.delayDuration = delayDuration;\n ctx.skipDelayDuration = skipDelayDuration;\n }, [ctx, delayDuration, skipDelayDuration]);\n\n useEffect(() => {\n const layer = createDismissableLayer({\n root: () => rootRef.current,\n open: () => openValue.value != null,\n onDismiss: () => {\n openValue.value = null;\n },\n });\n return () => layer.dispose();\n }, [openValue]);\n\n return (\n <NavigationMenuRootContext.Provider value={ctx}>\n <nav\n ref={rootRef}\n data-slot=\"navigation-menu\"\n aria-label=\"Main\"\n dir={dir}\n class={cn(\"relative z-10 flex max-w-max flex-1 items-center justify-center\", className)}\n {...rest}\n >\n {children}\n </nav>\n </NavigationMenuRootContext.Provider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useNavigationMenuItemCtx, useNavigationMenuRoot } from \"./navigation-menu-context\";\n\nexport type NavigationMenuContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const NavigationMenuContent = ({\n class: className,\n children,\n onPointerEnter,\n onPointerLeave,\n ...rest\n}: NavigationMenuContentProps) => {\n const root = useNavigationMenuRoot();\n const { value } = useNavigationMenuItemCtx();\n const open = root.openValue.value === value;\n\n const handlePointerEnter = (e: JSX.TargetedPointerEvent<HTMLDivElement>) => {\n onPointerEnter?.(e);\n root.clearTimers();\n };\n\n const handlePointerLeave = (e: JSX.TargetedPointerEvent<HTMLDivElement>) => {\n onPointerLeave?.(e);\n if (e.defaultPrevented) return;\n root.requestClose();\n };\n\n return (\n <div\n data-slot=\"navigation-menu-content\"\n data-state={open ? \"open\" : \"closed\"}\n class={cn(\n \"absolute start-0 top-full z-50 mt-1.5 w-max origin-top-start overflow-hidden rounded-md border border-border bg-popover p-2 text-popover-foreground shadow-md outline-none\",\n \"transition-[opacity,transform] duration-200\",\n open\n ? \"pointer-events-auto visible opacity-100\"\n : \"pointer-events-none invisible opacity-0\",\n className,\n )}\n onPointerEnter={handlePointerEnter}\n onPointerLeave={handlePointerLeave}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useMemo } from \"preact/hooks\";\nimport { createIdFactory } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { NavigationMenuItemContext } from \"./navigation-menu-context\";\n\nconst nextItemValue = createIdFactory(\"nm-item\");\n\nexport type NavigationMenuItemProps = JSX.HTMLAttributes<HTMLLIElement> & {\n children?: ComponentChildren;\n /** Stable id for this branch; auto-generated when omitted. */\n value?: string;\n};\n\nexport const NavigationMenuItem = ({\n class: className,\n children,\n value: valueProp,\n ...rest\n}: NavigationMenuItemProps) => {\n const value = useMemo(() => nextItemValue(valueProp), [valueProp]);\n\n return (\n <NavigationMenuItemContext.Provider value={{ value }}>\n <li data-slot=\"navigation-menu-item\" class={cn(\"relative\", className)} {...rest}>\n {children}\n </li>\n </NavigationMenuItemContext.Provider>\n );\n};\n","import { type ComponentChildren, cloneElement, isValidElement, type JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useNavigationMenuItemCtx, useNavigationMenuRoot } from \"./navigation-menu-context\";\n\nexport type NavigationMenuLinkProps = JSX.AnchorHTMLAttributes<HTMLAnchorElement> & {\n active?: boolean;\n children?: ComponentChildren;\n asChild?: boolean;\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 NavigationMenuLink = ({\n class: className,\n active = false,\n asChild = false,\n children,\n onClick,\n ref: outerRef,\n ...rest\n}: NavigationMenuLinkProps) => {\n const root = useNavigationMenuRoot();\n const { value } = useNavigationMenuItemCtx();\n const open = root.openValue.value === value;\n\n const linkClass = cn(\n \"block select-none rounded-sm px-3 py-2 text-sm no-underline outline-none transition-colors\",\n \"hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground\",\n active ? \"bg-accent text-accent-foreground\" : \"\",\n className,\n );\n\n const handleClick = (event: JSX.TargetedMouseEvent<HTMLElement>) => {\n onClick?.(event as JSX.TargetedMouseEvent<HTMLAnchorElement>);\n if (event.defaultPrevented) return;\n root.clearTimers();\n root.openValue.value = null;\n };\n\n if (asChild) {\n if (!isValidElement(children)) return null;\n const childProps = (children.props ?? {}) as JSX.HTMLAttributes<HTMLElement> & {\n ref?: unknown;\n onClick?: (event: JSX.TargetedMouseEvent<HTMLElement>) => void;\n class?: string;\n className?: string;\n };\n const mergedClass = cn(linkClass, childProps.class, childProps.className);\n return cloneElement(children, {\n ...(childProps as Record<string, unknown>),\n ...(rest as Record<string, unknown>),\n \"data-slot\": \"navigation-menu-link\",\n \"data-active\": active ? \"\" : undefined,\n \"data-state\": open ? \"open\" : \"closed\",\n class: mergedClass,\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 <a\n ref={(node) => callRef(outerRef, node)}\n data-slot=\"navigation-menu-link\"\n data-active={active ? \"\" : undefined}\n data-state={open ? \"open\" : \"closed\"}\n aria-current={active ? \"page\" : undefined}\n class={linkClass}\n onClick={(e) => handleClick(e as unknown as JSX.TargetedMouseEvent<HTMLElement>)}\n {...rest}\n >\n {children}\n </a>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type NavigationMenuListProps = JSX.HTMLAttributes<HTMLUListElement> & {\n children?: ComponentChildren;\n};\n\nexport const NavigationMenuList = ({\n class: className,\n children,\n ...rest\n}: NavigationMenuListProps) => (\n <ul\n data-slot=\"navigation-menu-list\"\n class={cn(\"group flex flex-1 list-none items-center justify-center gap-1\", className)}\n {...rest}\n >\n {children}\n </ul>\n);\n","import { tv } from \"tailwind-variants\";\n\n/** Matches shadcn `navigationMenuTriggerStyle()` for use on `NavigationMenuLink` with `asChild`. */\nexport const navigationMenuTriggerStyle = tv({\n base: [\n \"group inline-flex h-9 w-max items-center justify-center gap-1 rounded-md bg-background px-4 py-2 text-sm font-medium outline-none\",\n \"transition-[color,box-shadow] hover:bg-accent hover:text-accent-foreground\",\n \"focus:bg-accent focus:text-accent-foreground focus-visible:ring-[3px] focus-visible:ring-outline/50 focus-visible:outline-1\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"data-[state=open]:bg-accent/50 data-[state=open]:text-accent-foreground data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent\",\n ],\n});\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useNavigationMenuItemCtx, useNavigationMenuRoot } from \"./navigation-menu-context\";\nimport { navigationMenuTriggerStyle } from \"./navigationMenuTriggerStyle\";\n\nconst ChevronDownIcon = ({ class: className }: { class?: string }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden\n class={cn(\n \"size-4 shrink-0 transition duration-200 group-data-[state=open]:rotate-180 rtl:-rotate-180 group-data-[state=open]:rtl:rotate-0\",\n className,\n )}\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n);\n\nexport type NavigationMenuTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n children?: ComponentChildren;\n};\n\nexport const NavigationMenuTrigger = ({\n class: className,\n children,\n onClick,\n onPointerEnter,\n onPointerLeave,\n ...rest\n}: NavigationMenuTriggerProps) => {\n const root = useNavigationMenuRoot();\n const { value } = useNavigationMenuItemCtx();\n const open = root.openValue.value === value;\n\n const handlePointerEnter = (e: JSX.TargetedPointerEvent<HTMLButtonElement>) => {\n onPointerEnter?.(e);\n if (e.defaultPrevented) return;\n root.requestOpen(value);\n };\n\n const handlePointerLeave = (e: JSX.TargetedPointerEvent<HTMLButtonElement>) => {\n onPointerLeave?.(e);\n if (e.defaultPrevented) return;\n root.requestClose();\n };\n\n const handleClick = (e: JSX.TargetedMouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n root.toggleItem(value);\n };\n\n return (\n <button\n type=\"button\"\n data-slot=\"navigation-menu-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n aria-expanded={open}\n class={cn(navigationMenuTriggerStyle(), \"group\", className)}\n onPointerEnter={handlePointerEnter}\n onPointerLeave={handlePointerLeave}\n onClick={handleClick}\n {...rest}\n >\n {children}\n <ChevronDownIcon />\n </button>\n );\n};\n","import { NavigationMenu } from \"./NavigationMenu\";\nimport { NavigationMenuContent } from \"./NavigationMenuContent\";\nimport { NavigationMenuItem } from \"./NavigationMenuItem\";\nimport { NavigationMenuLink } from \"./NavigationMenuLink\";\nimport { NavigationMenuList } from \"./NavigationMenuList\";\nimport { NavigationMenuTrigger } from \"./NavigationMenuTrigger\";\nimport { navigationMenuTriggerStyle } from \"./navigationMenuTriggerStyle\";\n\nexport type { NavigationMenuProps } from \"./NavigationMenu\";\nexport type { NavigationMenuContentProps } from \"./NavigationMenuContent\";\nexport type { NavigationMenuItemProps } from \"./NavigationMenuItem\";\nexport type { NavigationMenuLinkProps } from \"./NavigationMenuLink\";\nexport type { NavigationMenuListProps } from \"./NavigationMenuList\";\nexport type { NavigationMenuTriggerProps } from \"./NavigationMenuTrigger\";\nexport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n navigationMenuTriggerStyle,\n};\n\nexport default {\n Root: NavigationMenu,\n List: NavigationMenuList,\n Item: NavigationMenuItem,\n Link: NavigationMenuLink,\n Trigger: NavigationMenuTrigger,\n Content: NavigationMenuContent,\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-MS2ZNYCJ.js';
1
+ import { cn } from './chunk-XIANSPQO.js';
2
2
  import { jsx } from 'preact/jsx-runtime';
3
3
 
4
4
  var Video = ({ class: className, controls = true, children, ...rest }) => (
@@ -17,5 +17,5 @@ var Video = ({ class: className, controls = true, children, ...rest }) => (
17
17
  );
18
18
 
19
19
  export { Video };
20
- //# sourceMappingURL=chunk-6FYSVMH7.js.map
21
- //# sourceMappingURL=chunk-6FYSVMH7.js.map
20
+ //# sourceMappingURL=chunk-AYLEWD77.js.map
21
+ //# sourceMappingURL=chunk-AYLEWD77.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/video/Video.tsx"],"names":[],"mappings":";;;AAOO,IAAM,KAAA,GAAQ,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,GAAW,IAAA,EAAM,QAAA,EAAU,GAAG,IAAA,EAAK;AAAA;AAAA;AAAA,kBAG3E,GAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,OAAA;AAAA,MACV,KAAA,EAAO,EAAA,CAAG,gCAAA,EAAkC,SAAS,CAAA;AAAA,MACrD,QAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA;AACH","file":"chunk-6FYSVMH7.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type VideoProps = JSX.VideoHTMLAttributes<HTMLVideoElement> & {\n children?: ComponentChildren;\n};\n\nexport const Video = ({ class: className, controls = true, children, ...rest }: VideoProps) => (\n // Captions are the consumer's responsibility (passed as <track> via children).\n // oxlint-disable-next-line jsx-a11y/media-has-caption\n <video\n data-slot=\"video\"\n class={cn(\"block w-full rounded-md border\", className)}\n controls={controls}\n {...rest}\n >\n {children}\n </video>\n);\n"]}
1
+ {"version":3,"sources":["../src/components/video/Video.tsx"],"names":[],"mappings":";;;AAOO,IAAM,KAAA,GAAQ,CAAC,EAAE,KAAA,EAAO,WAAW,QAAA,GAAW,IAAA,EAAM,QAAA,EAAU,GAAG,IAAA,EAAK;AAAA;AAAA;AAAA,kBAG3E,GAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,OAAA;AAAA,MACV,KAAA,EAAO,EAAA,CAAG,gCAAA,EAAkC,SAAS,CAAA;AAAA,MACrD,QAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA;AACH","file":"chunk-AYLEWD77.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type VideoProps = JSX.VideoHTMLAttributes<HTMLVideoElement> & {\n children?: ComponentChildren;\n};\n\nexport const Video = ({ class: className, controls = true, children, ...rest }: VideoProps) => (\n // Captions are the consumer's responsibility (passed as <track> via children).\n // oxlint-disable-next-line jsx-a11y/media-has-caption\n <video\n data-slot=\"video\"\n class={cn(\"block w-full rounded-md border\", className)}\n controls={controls}\n {...rest}\n >\n {children}\n </video>\n);\n"]}
@@ -1,7 +1,7 @@
1
+ import { cn } from './chunk-XIANSPQO.js';
1
2
  import { tv } from 'tailwind-variants';
2
3
  import { jsx } from 'preact/jsx-runtime';
3
4
 
4
- // src/components/label/Label.tsx
5
5
  var label = tv({
6
6
  base: [
7
7
  "text-foreground select-none font-medium leading-none",
@@ -11,15 +11,8 @@ var label = tv({
11
11
  variants: { size: { sm: "text-sm", md: "text-base", lg: "text-lg" } },
12
12
  defaultVariants: { size: "sm" }
13
13
  });
14
- var Label = ({ size, class: className, ...rest }) => /* @__PURE__ */ jsx(
15
- "label",
16
- {
17
- class: label({ size, class: className }),
18
- "data-slot": "label",
19
- ...rest
20
- }
21
- );
14
+ var Label = ({ size, class: className, ...rest }) => /* @__PURE__ */ jsx("label", { class: cn(label({ size }), className), "data-slot": "label", ...rest });
22
15
 
23
16
  export { Label, label };
24
- //# sourceMappingURL=chunk-D3DQ4ICC.js.map
25
- //# sourceMappingURL=chunk-D3DQ4ICC.js.map
17
+ //# sourceMappingURL=chunk-BZMD4EZC.js.map
18
+ //# sourceMappingURL=chunk-BZMD4EZC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/label/Label.tsx"],"names":[],"mappings":";;;;AAIO,IAAM,QAAQ,EAAA,CAAG;AAAA,EACtB,IAAA,EAAM;AAAA,IACJ,sDAAA;AAAA,IACA,2DAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU,EAAE,IAAA,EAAM,EAAE,EAAA,EAAI,WAAW,EAAA,EAAI,WAAA,EAAa,EAAA,EAAI,SAAA,EAAU,EAAE;AAAA,EACpE,eAAA,EAAiB,EAAE,IAAA,EAAM,IAAA;AAC3B,CAAC;AAKM,IAAM,KAAA,GAAQ,CAAC,EAAE,IAAA,EAAM,OAAO,SAAA,EAAW,GAAG,IAAA,EAAK,qBACtD,GAAA,CAAC,OAAA,EAAA,EAAM,OAAO,EAAA,CAAG,KAAA,CAAM,EAAE,IAAA,EAAM,CAAA,EAAG,SAAS,CAAA,EAAG,WAAA,EAAU,OAAA,EAAS,GAAG,IAAA,EAAM","file":"chunk-BZMD4EZC.js","sourcesContent":["import type { JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../../lib/utils\";\n\nexport const label = tv({\n base: [\n \"text-foreground select-none font-medium leading-none\",\n \"peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n \"has-[+:disabled]:cursor-not-allowed has-[+:disabled]:opacity-70\",\n ],\n variants: { size: { sm: \"text-sm\", md: \"text-base\", lg: \"text-lg\" } },\n defaultVariants: { size: \"sm\" },\n});\n\nexport type LabelProps = Omit<JSX.LabelHTMLAttributes<HTMLLabelElement>, \"size\"> &\n VariantProps<typeof label>;\n\nexport const Label = ({ size, class: className, ...rest }: LabelProps) => (\n <label class={cn(label({ size }), className)} data-slot=\"label\" {...rest} />\n);\n"]}