@mdigital_ui/ui 0.4.2 → 0.4.3

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 (481) hide show
  1. package/dist/accordion/index.d.ts.map +1 -1
  2. package/dist/accordion/index.js +3 -3
  3. package/dist/accordion/types.d.ts +2 -42
  4. package/dist/accordion/types.d.ts.map +1 -1
  5. package/dist/avatar/index.d.ts +0 -6
  6. package/dist/avatar/index.d.ts.map +1 -1
  7. package/dist/avatar/index.js +2 -2
  8. package/dist/avatar/types.d.ts +0 -48
  9. package/dist/avatar/types.d.ts.map +1 -1
  10. package/dist/badge/index.d.ts +1 -23
  11. package/dist/badge/index.d.ts.map +1 -1
  12. package/dist/badge/index.js +3 -3
  13. package/dist/badge/types.d.ts +1 -20
  14. package/dist/badge/types.d.ts.map +1 -1
  15. package/dist/breadcrumbs/index.d.ts.map +1 -1
  16. package/dist/breadcrumbs/index.js +7 -6
  17. package/dist/breadcrumbs/types.d.ts +3 -38
  18. package/dist/breadcrumbs/types.d.ts.map +1 -1
  19. package/dist/button/index.d.ts +1 -1
  20. package/dist/button/index.d.ts.map +1 -1
  21. package/dist/button/index.js +5 -5
  22. package/dist/button/types.d.ts +2 -8
  23. package/dist/button/types.d.ts.map +1 -1
  24. package/dist/button-group/index.d.ts +0 -28
  25. package/dist/button-group/index.d.ts.map +1 -1
  26. package/dist/button-group/index.js +2 -2
  27. package/dist/button-group/types.d.ts +0 -19
  28. package/dist/button-group/types.d.ts.map +1 -1
  29. package/dist/card/index.d.ts +0 -40
  30. package/dist/card/index.d.ts.map +1 -1
  31. package/dist/card/index.js +3 -3
  32. package/dist/card/types.d.ts +3 -29
  33. package/dist/card/types.d.ts.map +1 -1
  34. package/dist/carousel/index.d.ts +4 -0
  35. package/dist/carousel/index.d.ts.map +1 -1
  36. package/dist/carousel/index.js +2 -2
  37. package/dist/cascader/index.d.ts +0 -21
  38. package/dist/cascader/index.d.ts.map +1 -1
  39. package/dist/cascader/index.js +3 -3
  40. package/dist/cascader/types.d.ts +3 -89
  41. package/dist/cascader/types.d.ts.map +1 -1
  42. package/dist/checkbox/index.d.ts.map +1 -1
  43. package/dist/checkbox/index.js +3 -3
  44. package/dist/checkbox/types.d.ts +2 -2
  45. package/dist/checkbox/types.d.ts.map +1 -1
  46. package/dist/checkbox-group/index.d.ts.map +1 -1
  47. package/dist/checkbox-group/index.js +2 -2
  48. package/dist/checkbox-group/types.d.ts +0 -24
  49. package/dist/checkbox-group/types.d.ts.map +1 -1
  50. package/dist/{chunk-H6G4BUPA.js → chunk-2FYXBW4S.js} +201 -161
  51. package/dist/chunk-2FYXBW4S.js.map +1 -0
  52. package/dist/{chunk-KH577UDI.js → chunk-2OBMSB5S.js} +9 -6
  53. package/dist/chunk-2OBMSB5S.js.map +1 -0
  54. package/dist/{chunk-3BIV3QE2.js → chunk-3FXOQC6P.js} +60 -28
  55. package/dist/chunk-3FXOQC6P.js.map +1 -0
  56. package/dist/{chunk-YXLIGJTN.js → chunk-3KISIZGP.js} +6 -6
  57. package/dist/chunk-3KISIZGP.js.map +1 -0
  58. package/dist/{chunk-6G3BMY4N.js → chunk-3QD7AQX7.js} +76 -85
  59. package/dist/chunk-3QD7AQX7.js.map +1 -0
  60. package/dist/{chunk-ROA7BYGB.js → chunk-3YP7HY3Y.js} +7 -5
  61. package/dist/chunk-3YP7HY3Y.js.map +1 -0
  62. package/dist/{chunk-OLTQAMV2.js → chunk-442OQLPK.js} +9 -24
  63. package/dist/chunk-442OQLPK.js.map +1 -0
  64. package/dist/{chunk-OFUPJH35.js → chunk-4TEZWGX7.js} +3 -3
  65. package/dist/{chunk-OFUPJH35.js.map → chunk-4TEZWGX7.js.map} +1 -1
  66. package/dist/chunk-4WZDQI22.js +378 -0
  67. package/dist/chunk-4WZDQI22.js.map +1 -0
  68. package/dist/{chunk-TLNHWOQQ.js → chunk-54Z7XTJA.js} +30 -19
  69. package/dist/chunk-54Z7XTJA.js.map +1 -0
  70. package/dist/{chunk-64NHVOZS.js → chunk-5CIJ7UCP.js} +25 -15
  71. package/dist/chunk-5CIJ7UCP.js.map +1 -0
  72. package/dist/{chunk-ON2CMF6J.js → chunk-5XLCUGLQ.js} +14 -10
  73. package/dist/chunk-5XLCUGLQ.js.map +1 -0
  74. package/dist/{chunk-DUIL5BYS.js → chunk-62LTLXVG.js} +72 -48
  75. package/dist/chunk-62LTLXVG.js.map +1 -0
  76. package/dist/{chunk-G6NVGBYZ.js → chunk-6ZPCKFRS.js} +23 -22
  77. package/dist/chunk-6ZPCKFRS.js.map +1 -0
  78. package/dist/{chunk-N2WHJ3FI.js → chunk-7OYMEXY3.js} +7 -5
  79. package/dist/chunk-7OYMEXY3.js.map +1 -0
  80. package/dist/{chunk-ONGJXAYQ.js → chunk-AEPBQO7U.js} +6 -5
  81. package/dist/chunk-AEPBQO7U.js.map +1 -0
  82. package/dist/{chunk-UTWQ2FZK.js → chunk-AOXTD7QZ.js} +47 -93
  83. package/dist/chunk-AOXTD7QZ.js.map +1 -0
  84. package/dist/{chunk-ZJNGZCRB.js → chunk-BLFXVSZU.js} +54 -153
  85. package/dist/chunk-BLFXVSZU.js.map +1 -0
  86. package/dist/{chunk-VOODO2ZE.js → chunk-BMA4E3T6.js} +6 -14
  87. package/dist/chunk-BMA4E3T6.js.map +1 -0
  88. package/dist/{chunk-4FFVNUTK.js → chunk-BNHRUHI4.js} +7 -6
  89. package/dist/chunk-BNHRUHI4.js.map +1 -0
  90. package/dist/{chunk-3BZE6BBJ.js → chunk-C46VTIW7.js} +41 -23
  91. package/dist/chunk-C46VTIW7.js.map +1 -0
  92. package/dist/{chunk-BVO2BNFG.js → chunk-CHGABWIV.js} +3 -3
  93. package/dist/chunk-CHGABWIV.js.map +1 -0
  94. package/dist/chunk-DF2ICSNI.js +99 -0
  95. package/dist/chunk-DF2ICSNI.js.map +1 -0
  96. package/dist/chunk-DOI7OTYV.js +81 -0
  97. package/dist/chunk-DOI7OTYV.js.map +1 -0
  98. package/dist/{chunk-2TLOWZE4.js → chunk-DPIXBBXK.js} +40 -179
  99. package/dist/chunk-DPIXBBXK.js.map +1 -0
  100. package/dist/{chunk-OQFYIKWR.js → chunk-EC5DXYME.js} +21 -12
  101. package/dist/chunk-EC5DXYME.js.map +1 -0
  102. package/dist/{chunk-KJTMZJ7V.js → chunk-EHNWVQBL.js} +65 -48
  103. package/dist/chunk-EHNWVQBL.js.map +1 -0
  104. package/dist/{chunk-I32ZQUYY.js → chunk-F4GLUQOF.js} +9 -8
  105. package/dist/chunk-F4GLUQOF.js.map +1 -0
  106. package/dist/{chunk-GJPZOMFE.js → chunk-FCU2ENQQ.js} +63 -31
  107. package/dist/chunk-FCU2ENQQ.js.map +1 -0
  108. package/dist/{chunk-JWTWPZ32.js → chunk-FZXMRXWE.js} +10 -9
  109. package/dist/chunk-FZXMRXWE.js.map +1 -0
  110. package/dist/{chunk-LOYLJRCF.js → chunk-G27HGKWO.js} +15 -5
  111. package/dist/chunk-G27HGKWO.js.map +1 -0
  112. package/dist/{chunk-Y4XAXZHB.js → chunk-GGQF5PQN.js} +9 -8
  113. package/dist/chunk-GGQF5PQN.js.map +1 -0
  114. package/dist/chunk-GLJDHW73.js +24 -0
  115. package/dist/chunk-GLJDHW73.js.map +1 -0
  116. package/dist/{chunk-LX4FDH4J.js → chunk-GPSZJWU3.js} +10 -11
  117. package/dist/chunk-GPSZJWU3.js.map +1 -0
  118. package/dist/{chunk-6LYRMQOI.js → chunk-H6PCGSIT.js} +21 -16
  119. package/dist/chunk-H6PCGSIT.js.map +1 -0
  120. package/dist/{chunk-WRSG7WU5.js → chunk-HJITFPBT.js} +78 -94
  121. package/dist/chunk-HJITFPBT.js.map +1 -0
  122. package/dist/{chunk-HECAAILV.js → chunk-HRVOTFU4.js} +24 -16
  123. package/dist/chunk-HRVOTFU4.js.map +1 -0
  124. package/dist/{chunk-O3V3BTIJ.js → chunk-HSW64H23.js} +54 -87
  125. package/dist/chunk-HSW64H23.js.map +1 -0
  126. package/dist/{chunk-YS5AIY4A.js → chunk-K5RV3GF4.js} +6 -5
  127. package/dist/chunk-K5RV3GF4.js.map +1 -0
  128. package/dist/{chunk-2WZVD7P3.js → chunk-KZZJAZ5M.js} +6 -5
  129. package/dist/chunk-KZZJAZ5M.js.map +1 -0
  130. package/dist/{chunk-6HGUDHHE.js → chunk-L5BU2QTI.js} +3 -5
  131. package/dist/chunk-L5BU2QTI.js.map +1 -0
  132. package/dist/{chunk-C5IGZLIT.js → chunk-LM6CJZX5.js} +8 -22
  133. package/dist/chunk-LM6CJZX5.js.map +1 -0
  134. package/dist/{chunk-RFHTC6AH.js → chunk-LXHOS74B.js} +16 -38
  135. package/dist/chunk-LXHOS74B.js.map +1 -0
  136. package/dist/{chunk-674JC24S.js → chunk-MZDAQSI4.js} +27 -28
  137. package/dist/chunk-MZDAQSI4.js.map +1 -0
  138. package/dist/{chunk-3PWILVOE.js → chunk-NHM6DZOF.js} +35 -50
  139. package/dist/chunk-NHM6DZOF.js.map +1 -0
  140. package/dist/chunk-NZHKNUGE.js +96 -0
  141. package/dist/chunk-NZHKNUGE.js.map +1 -0
  142. package/dist/{chunk-2PNLIQYM.js → chunk-ON76IMMI.js} +3 -3
  143. package/dist/chunk-ON76IMMI.js.map +1 -0
  144. package/dist/{chunk-POLVJ36Y.js → chunk-QNLTSHMB.js} +13 -38
  145. package/dist/chunk-QNLTSHMB.js.map +1 -0
  146. package/dist/{chunk-7UCNBMCV.js → chunk-QZ67UOPR.js} +13 -19
  147. package/dist/chunk-QZ67UOPR.js.map +1 -0
  148. package/dist/{chunk-NGYLRX6F.js → chunk-RAS6HUEI.js} +2 -2
  149. package/dist/chunk-RAS6HUEI.js.map +1 -0
  150. package/dist/{chunk-R3TLU26W.js → chunk-S7R4NTOI.js} +9 -7
  151. package/dist/chunk-S7R4NTOI.js.map +1 -0
  152. package/dist/{chunk-L5UYN5LX.js → chunk-SHUHAORE.js} +78 -44
  153. package/dist/chunk-SHUHAORE.js.map +1 -0
  154. package/dist/{chunk-SGRACNBP.js → chunk-STAYOHDI.js} +13 -5
  155. package/dist/chunk-STAYOHDI.js.map +1 -0
  156. package/dist/{chunk-ERRZ2CSG.js → chunk-SUNCSPDF.js} +45 -74
  157. package/dist/chunk-SUNCSPDF.js.map +1 -0
  158. package/dist/{chunk-YJOLLSHH.js → chunk-TS2PG6Z4.js} +42 -34
  159. package/dist/chunk-TS2PG6Z4.js.map +1 -0
  160. package/dist/{chunk-X3YNHX77.js → chunk-U3RHF7QF.js} +32 -33
  161. package/dist/chunk-U3RHF7QF.js.map +1 -0
  162. package/dist/{chunk-GVVP5TZM.js → chunk-UIVOI7HE.js} +231 -197
  163. package/dist/chunk-UIVOI7HE.js.map +1 -0
  164. package/dist/{chunk-D4SUSZDN.js → chunk-USHR3MWQ.js} +13 -13
  165. package/dist/chunk-USHR3MWQ.js.map +1 -0
  166. package/dist/{chunk-764UKE6X.js → chunk-VIK6UTVN.js} +7 -6
  167. package/dist/chunk-VIK6UTVN.js.map +1 -0
  168. package/dist/{chunk-HUXODBIO.js → chunk-VKY3JXAQ.js} +42 -101
  169. package/dist/chunk-VKY3JXAQ.js.map +1 -0
  170. package/dist/{chunk-FZSCLZF6.js → chunk-VV3VO5TS.js} +64 -101
  171. package/dist/chunk-VV3VO5TS.js.map +1 -0
  172. package/dist/{chunk-ZIYA7TGX.js → chunk-W5L7C7WS.js} +12 -22
  173. package/dist/chunk-W5L7C7WS.js.map +1 -0
  174. package/dist/{chunk-GOLARX5K.js → chunk-X3CNTOKQ.js} +13 -10
  175. package/dist/chunk-X3CNTOKQ.js.map +1 -0
  176. package/dist/{chunk-EHWXPH76.js → chunk-XKDN5PWJ.js} +8 -6
  177. package/dist/chunk-XKDN5PWJ.js.map +1 -0
  178. package/dist/{chunk-HCOTO5WX.js → chunk-XWCWTPEM.js} +7 -8
  179. package/dist/chunk-XWCWTPEM.js.map +1 -0
  180. package/dist/{chunk-BPRCBPVJ.js → chunk-YSV5GQS7.js} +55 -17
  181. package/dist/chunk-YSV5GQS7.js.map +1 -0
  182. package/dist/{chunk-6JGNJI5T.js → chunk-ZNNIXMJZ.js} +35 -21
  183. package/dist/chunk-ZNNIXMJZ.js.map +1 -0
  184. package/dist/{chunk-CN74CNAN.js → chunk-ZZZGD5EF.js} +8 -22
  185. package/dist/chunk-ZZZGD5EF.js.map +1 -0
  186. package/dist/clipboard/index.d.ts.map +1 -1
  187. package/dist/clipboard/index.js +4 -4
  188. package/dist/clipboard/types.d.ts +2 -35
  189. package/dist/clipboard/types.d.ts.map +1 -1
  190. package/dist/collapse/index.d.ts.map +1 -1
  191. package/dist/collapse/index.js +3 -3
  192. package/dist/collapse/types.d.ts +2 -35
  193. package/dist/collapse/types.d.ts.map +1 -1
  194. package/dist/command/index.d.ts +39 -66
  195. package/dist/command/index.d.ts.map +1 -1
  196. package/dist/command/index.js +3 -3
  197. package/dist/command/types.d.ts +2 -2
  198. package/dist/command/types.d.ts.map +1 -1
  199. package/dist/context-menu/index.d.ts +1 -45
  200. package/dist/context-menu/index.d.ts.map +1 -1
  201. package/dist/context-menu/index.js +4 -3
  202. package/dist/context-menu/types.d.ts +9 -63
  203. package/dist/context-menu/types.d.ts.map +1 -1
  204. package/dist/date-picker/index.d.ts.map +1 -1
  205. package/dist/date-picker/index.js +4 -4
  206. package/dist/date-picker/types.d.ts +2 -2
  207. package/dist/date-picker/types.d.ts.map +1 -1
  208. package/dist/descriptions/index.d.ts.map +1 -1
  209. package/dist/descriptions/index.js +2 -2
  210. package/dist/divider/index.d.ts.map +1 -1
  211. package/dist/divider/index.js +3 -2
  212. package/dist/divider/types.d.ts +0 -12
  213. package/dist/divider/types.d.ts.map +1 -1
  214. package/dist/drawer/index.d.ts +4 -1
  215. package/dist/drawer/index.d.ts.map +1 -1
  216. package/dist/drawer/index.js +2 -2
  217. package/dist/drawer/types.d.ts +2 -145
  218. package/dist/drawer/types.d.ts.map +1 -1
  219. package/dist/dropdown/index.d.ts.map +1 -1
  220. package/dist/dropdown/index.js +6 -5
  221. package/dist/dropdown/types.d.ts +2 -71
  222. package/dist/dropdown/types.d.ts.map +1 -1
  223. package/dist/empty/index.d.ts.map +1 -1
  224. package/dist/empty/index.js +2 -2
  225. package/dist/empty/types.d.ts +3 -40
  226. package/dist/empty/types.d.ts.map +1 -1
  227. package/dist/fetching-overlay/index.d.ts.map +1 -1
  228. package/dist/fetching-overlay/index.js +4 -4
  229. package/dist/float-input/index.d.ts.map +1 -1
  230. package/dist/float-input/index.js +4 -4
  231. package/dist/float-input/types.d.ts +5 -10
  232. package/dist/float-input/types.d.ts.map +1 -1
  233. package/dist/grid/index.d.ts +1 -1
  234. package/dist/grid/index.d.ts.map +1 -1
  235. package/dist/grid/index.js +2 -2
  236. package/dist/grid/types.d.ts +1 -9
  237. package/dist/grid/types.d.ts.map +1 -1
  238. package/dist/hooks/index.d.ts +1 -0
  239. package/dist/hooks/index.d.ts.map +1 -1
  240. package/dist/hooks/useMenuNavigation.d.ts +18 -0
  241. package/dist/hooks/useMenuNavigation.d.ts.map +1 -0
  242. package/dist/image/index.d.ts.map +1 -1
  243. package/dist/image/index.js +2 -2
  244. package/dist/image/types.d.ts +2 -34
  245. package/dist/image/types.d.ts.map +1 -1
  246. package/dist/index.d.ts +2 -1
  247. package/dist/index.d.ts.map +1 -1
  248. package/dist/index.js +68 -67
  249. package/dist/index.js.map +1 -1
  250. package/dist/input/index.d.ts.map +1 -1
  251. package/dist/input/index.js +4 -4
  252. package/dist/input/types.d.ts +9 -4
  253. package/dist/input/types.d.ts.map +1 -1
  254. package/dist/input-group/index.d.ts.map +1 -1
  255. package/dist/input-group/index.js +2 -2
  256. package/dist/input-group/types.d.ts +7 -19
  257. package/dist/input-group/types.d.ts.map +1 -1
  258. package/dist/input-otp/index.d.ts.map +1 -1
  259. package/dist/input-otp/index.js +2 -2
  260. package/dist/input-otp/types.d.ts +3 -81
  261. package/dist/input-otp/types.d.ts.map +1 -1
  262. package/dist/input-password/index.d.ts.map +1 -1
  263. package/dist/input-password/index.js +5 -5
  264. package/dist/input-password/types.d.ts +0 -6
  265. package/dist/input-password/types.d.ts.map +1 -1
  266. package/dist/kbd/index.d.ts.map +1 -1
  267. package/dist/kbd/index.js +3 -3
  268. package/dist/kbd/types.d.ts +2 -17
  269. package/dist/kbd/types.d.ts.map +1 -1
  270. package/dist/link/index.d.ts +1 -1
  271. package/dist/link/index.d.ts.map +1 -1
  272. package/dist/link/index.js +2 -2
  273. package/dist/menubar/index.d.ts.map +1 -1
  274. package/dist/menubar/index.js +5 -4
  275. package/dist/modal/index.d.ts.map +1 -1
  276. package/dist/modal/index.js +2 -2
  277. package/dist/modal/types.d.ts +2 -44
  278. package/dist/modal/types.d.ts.map +1 -1
  279. package/dist/multi-select/index.d.ts.map +1 -1
  280. package/dist/multi-select/index.js +7 -6
  281. package/dist/multi-select/types.d.ts +2 -34
  282. package/dist/multi-select/types.d.ts.map +1 -1
  283. package/dist/navigation-menu/index.js +2 -2
  284. package/dist/notification/index.d.ts.map +1 -1
  285. package/dist/notification/index.js +3 -3
  286. package/dist/notification/types.d.ts +2 -62
  287. package/dist/notification/types.d.ts.map +1 -1
  288. package/dist/number-input/index.d.ts.map +1 -1
  289. package/dist/number-input/index.js +5 -5
  290. package/dist/number-input/types.d.ts +5 -2
  291. package/dist/number-input/types.d.ts.map +1 -1
  292. package/dist/pagination/index.d.ts.map +1 -1
  293. package/dist/pagination/index.js +4 -3
  294. package/dist/pagination/types.d.ts +3 -53
  295. package/dist/pagination/types.d.ts.map +1 -1
  296. package/dist/popover/index.d.ts +1 -1
  297. package/dist/popover/index.d.ts.map +1 -1
  298. package/dist/popover/index.js +3 -3
  299. package/dist/popover/types.d.ts +3 -17
  300. package/dist/popover/types.d.ts.map +1 -1
  301. package/dist/progress/index.d.ts.map +1 -1
  302. package/dist/progress/index.js +3 -2
  303. package/dist/progress/styles.d.ts +4 -5
  304. package/dist/progress/styles.d.ts.map +1 -1
  305. package/dist/progress/types.d.ts +2 -44
  306. package/dist/progress/types.d.ts.map +1 -1
  307. package/dist/radio/index.d.ts.map +1 -1
  308. package/dist/radio/index.js +3 -3
  309. package/dist/radio/types.d.ts +2 -2
  310. package/dist/radio/types.d.ts.map +1 -1
  311. package/dist/radio-group/index.d.ts.map +1 -1
  312. package/dist/radio-group/index.js +2 -2
  313. package/dist/radio-group/types.d.ts +0 -24
  314. package/dist/radio-group/types.d.ts.map +1 -1
  315. package/dist/rating/index.d.ts.map +1 -1
  316. package/dist/rating/index.js +2 -2
  317. package/dist/rating/types.d.ts +2 -2
  318. package/dist/rating/types.d.ts.map +1 -1
  319. package/dist/scroll-area/index.d.ts.map +1 -1
  320. package/dist/scroll-area/index.js +2 -2
  321. package/dist/select/index.d.ts.map +1 -1
  322. package/dist/select/index.js +7 -6
  323. package/dist/select/types.d.ts +8 -3
  324. package/dist/select/types.d.ts.map +1 -1
  325. package/dist/shared/useSelectBase.d.ts +4 -2
  326. package/dist/shared/useSelectBase.d.ts.map +1 -1
  327. package/dist/skeleton/index.d.ts.map +1 -1
  328. package/dist/skeleton/index.js +3 -3
  329. package/dist/skeleton/types.d.ts +1 -1
  330. package/dist/skeleton/types.d.ts.map +1 -1
  331. package/dist/slider/index.d.ts.map +1 -1
  332. package/dist/slider/index.js +3 -2
  333. package/dist/slider/types.d.ts +2 -36
  334. package/dist/slider/types.d.ts.map +1 -1
  335. package/dist/spinner/index.d.ts +2 -1
  336. package/dist/spinner/index.d.ts.map +1 -1
  337. package/dist/spinner/index.js +3 -3
  338. package/dist/spinner/types.d.ts +1 -1
  339. package/dist/spinner/types.d.ts.map +1 -1
  340. package/dist/stepper/index.d.ts.map +1 -1
  341. package/dist/stepper/index.js +3 -2
  342. package/dist/stepper/types.d.ts +3 -2
  343. package/dist/stepper/types.d.ts.map +1 -1
  344. package/dist/switch/index.d.ts.map +1 -1
  345. package/dist/switch/index.js +3 -3
  346. package/dist/switch/types.d.ts +2 -31
  347. package/dist/switch/types.d.ts.map +1 -1
  348. package/dist/table/index.d.ts.map +1 -1
  349. package/dist/table/index.js +11 -11
  350. package/dist/table/types.d.ts +2 -2
  351. package/dist/table/types.d.ts.map +1 -1
  352. package/dist/tabs/index.d.ts.map +1 -1
  353. package/dist/tabs/index.js +3 -3
  354. package/dist/tabs/types.d.ts +3 -53
  355. package/dist/tabs/types.d.ts.map +1 -1
  356. package/dist/tag/index.d.ts +1 -1
  357. package/dist/tag/index.d.ts.map +1 -1
  358. package/dist/tag/index.js +3 -3
  359. package/dist/tag/types.d.ts +1 -1
  360. package/dist/tag/types.d.ts.map +1 -1
  361. package/dist/textarea/index.d.ts.map +1 -1
  362. package/dist/textarea/index.js +2 -2
  363. package/dist/textarea/types.d.ts +3 -54
  364. package/dist/textarea/types.d.ts.map +1 -1
  365. package/dist/theme/types.d.ts +0 -12
  366. package/dist/theme/types.d.ts.map +1 -1
  367. package/dist/timeline/index.d.ts.map +1 -1
  368. package/dist/timeline/index.js +2 -2
  369. package/dist/toast/index.d.ts.map +1 -1
  370. package/dist/toast/index.js +3 -3
  371. package/dist/toast/types.d.ts +0 -6
  372. package/dist/toast/types.d.ts.map +1 -1
  373. package/dist/toggle/index.d.ts.map +1 -1
  374. package/dist/toggle/index.js +4 -3
  375. package/dist/toggle/types.d.ts +3 -26
  376. package/dist/toggle/types.d.ts.map +1 -1
  377. package/dist/toggle-group/index.d.ts.map +1 -1
  378. package/dist/toggle-group/index.js +4 -3
  379. package/dist/toggle-group/types.d.ts +3 -44
  380. package/dist/toggle-group/types.d.ts.map +1 -1
  381. package/dist/tooltip/index.d.ts.map +1 -1
  382. package/dist/tooltip/index.js +3 -3
  383. package/dist/tooltip/types.d.ts +2 -44
  384. package/dist/tooltip/types.d.ts.map +1 -1
  385. package/dist/transfer/index.d.ts.map +1 -1
  386. package/dist/transfer/index.js +4 -4
  387. package/dist/transfer/types.d.ts +0 -20
  388. package/dist/transfer/types.d.ts.map +1 -1
  389. package/dist/transfer/utils.d.ts.map +1 -1
  390. package/dist/tree/index.d.ts.map +1 -1
  391. package/dist/tree/index.js +2 -2
  392. package/dist/tree/types.d.ts +2 -73
  393. package/dist/tree/types.d.ts.map +1 -1
  394. package/dist/tree-select/index.d.ts.map +1 -1
  395. package/dist/tree-select/index.js +5 -5
  396. package/dist/tree-select/types.d.ts +3 -91
  397. package/dist/tree-select/types.d.ts.map +1 -1
  398. package/dist/types.d.ts +1 -35
  399. package/dist/types.d.ts.map +1 -1
  400. package/dist/upload/index.d.ts.map +1 -1
  401. package/dist/upload/index.js +3 -3
  402. package/dist/upload/types.d.ts +5 -32
  403. package/dist/upload/types.d.ts.map +1 -1
  404. package/dist/upload/utils.d.ts +1 -0
  405. package/dist/upload/utils.d.ts.map +1 -1
  406. package/dist/utils.d.ts +0 -39
  407. package/dist/utils.d.ts.map +1 -1
  408. package/dist/variants.d.ts +3 -314
  409. package/dist/variants.d.ts.map +1 -1
  410. package/package.json +1 -1
  411. package/styles/global.css +300 -977
  412. package/dist/chunk-2PNLIQYM.js.map +0 -1
  413. package/dist/chunk-2TLOWZE4.js.map +0 -1
  414. package/dist/chunk-2WZVD7P3.js.map +0 -1
  415. package/dist/chunk-3BIV3QE2.js.map +0 -1
  416. package/dist/chunk-3BZE6BBJ.js.map +0 -1
  417. package/dist/chunk-3PWILVOE.js.map +0 -1
  418. package/dist/chunk-4FFVNUTK.js.map +0 -1
  419. package/dist/chunk-64NHVOZS.js.map +0 -1
  420. package/dist/chunk-674JC24S.js.map +0 -1
  421. package/dist/chunk-6BAP6QUT.js +0 -72
  422. package/dist/chunk-6BAP6QUT.js.map +0 -1
  423. package/dist/chunk-6G3BMY4N.js.map +0 -1
  424. package/dist/chunk-6HGUDHHE.js.map +0 -1
  425. package/dist/chunk-6JGNJI5T.js.map +0 -1
  426. package/dist/chunk-6LYRMQOI.js.map +0 -1
  427. package/dist/chunk-6YOOKE6C.js +0 -138
  428. package/dist/chunk-6YOOKE6C.js.map +0 -1
  429. package/dist/chunk-764UKE6X.js.map +0 -1
  430. package/dist/chunk-7UCNBMCV.js.map +0 -1
  431. package/dist/chunk-BPRCBPVJ.js.map +0 -1
  432. package/dist/chunk-BVO2BNFG.js.map +0 -1
  433. package/dist/chunk-C5IGZLIT.js.map +0 -1
  434. package/dist/chunk-CN74CNAN.js.map +0 -1
  435. package/dist/chunk-D4SUSZDN.js.map +0 -1
  436. package/dist/chunk-DUIL5BYS.js.map +0 -1
  437. package/dist/chunk-EHWXPH76.js.map +0 -1
  438. package/dist/chunk-ERRZ2CSG.js.map +0 -1
  439. package/dist/chunk-EZGK67T6.js +0 -383
  440. package/dist/chunk-EZGK67T6.js.map +0 -1
  441. package/dist/chunk-FZSCLZF6.js.map +0 -1
  442. package/dist/chunk-G6NVGBYZ.js.map +0 -1
  443. package/dist/chunk-GJPZOMFE.js.map +0 -1
  444. package/dist/chunk-GOLARX5K.js.map +0 -1
  445. package/dist/chunk-GVVP5TZM.js.map +0 -1
  446. package/dist/chunk-H6G4BUPA.js.map +0 -1
  447. package/dist/chunk-HCOTO5WX.js.map +0 -1
  448. package/dist/chunk-HECAAILV.js.map +0 -1
  449. package/dist/chunk-HUXODBIO.js.map +0 -1
  450. package/dist/chunk-I32ZQUYY.js.map +0 -1
  451. package/dist/chunk-JWTWPZ32.js.map +0 -1
  452. package/dist/chunk-KH577UDI.js.map +0 -1
  453. package/dist/chunk-KJTMZJ7V.js.map +0 -1
  454. package/dist/chunk-L5UYN5LX.js.map +0 -1
  455. package/dist/chunk-LOYLJRCF.js.map +0 -1
  456. package/dist/chunk-LX4FDH4J.js.map +0 -1
  457. package/dist/chunk-N2WHJ3FI.js.map +0 -1
  458. package/dist/chunk-NGYLRX6F.js.map +0 -1
  459. package/dist/chunk-O3V3BTIJ.js.map +0 -1
  460. package/dist/chunk-OLTQAMV2.js.map +0 -1
  461. package/dist/chunk-ON2CMF6J.js.map +0 -1
  462. package/dist/chunk-ONGJXAYQ.js.map +0 -1
  463. package/dist/chunk-OQFYIKWR.js.map +0 -1
  464. package/dist/chunk-POLVJ36Y.js.map +0 -1
  465. package/dist/chunk-POXI7JJ4.js +0 -351
  466. package/dist/chunk-POXI7JJ4.js.map +0 -1
  467. package/dist/chunk-R3TLU26W.js.map +0 -1
  468. package/dist/chunk-RFHTC6AH.js.map +0 -1
  469. package/dist/chunk-ROA7BYGB.js.map +0 -1
  470. package/dist/chunk-SGRACNBP.js.map +0 -1
  471. package/dist/chunk-TLNHWOQQ.js.map +0 -1
  472. package/dist/chunk-UTWQ2FZK.js.map +0 -1
  473. package/dist/chunk-VOODO2ZE.js.map +0 -1
  474. package/dist/chunk-WRSG7WU5.js.map +0 -1
  475. package/dist/chunk-X3YNHX77.js.map +0 -1
  476. package/dist/chunk-Y4XAXZHB.js.map +0 -1
  477. package/dist/chunk-YJOLLSHH.js.map +0 -1
  478. package/dist/chunk-YS5AIY4A.js.map +0 -1
  479. package/dist/chunk-YXLIGJTN.js.map +0 -1
  480. package/dist/chunk-ZIYA7TGX.js.map +0 -1
  481. package/dist/chunk-ZJNGZCRB.js.map +0 -1
@@ -1,11 +1,41 @@
1
- import { Popover, PopoverTrigger, PopoverContent } from './chunk-C5IGZLIT.js';
2
- import { cn } from './chunk-NGYLRX6F.js';
1
+ import { Popover, PopoverTrigger, PopoverContent } from './chunk-LM6CJZX5.js';
2
+ import { useMenuNavigation } from './chunk-NZHKNUGE.js';
3
+ import { cn } from './chunk-RAS6HUEI.js';
3
4
  import { ChevronRight, Check, Circle } from 'lucide-react';
4
- import React, { useState, useCallback, useEffect } from 'react';
5
+ import React, { useState, useMemo, useCallback, useEffect } from 'react';
5
6
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
6
7
 
7
- var MenuItems = React.memo(({ items, classNames, onItemClick }) => {
8
+ var MenuItems = React.memo(({ items, classNames, onItemClick, onClose }) => {
8
9
  const [activeSubmenu, setActiveSubmenu] = useState(null);
10
+ const enabledIndices = useMemo(
11
+ () => items.map((item, i) => !item.separator && item.type !== "label" && !item.disabled ? i : -1).filter((i) => i !== -1),
12
+ [items]
13
+ );
14
+ const onMenuSelect = useCallback(
15
+ (index) => {
16
+ const item = items[index];
17
+ if (!item || item.children && item.children.length > 0) return;
18
+ onItemClick(item);
19
+ },
20
+ [items, onItemClick]
21
+ );
22
+ const { highlightedIndex, handleKeyDown, highlightFirst } = useMenuNavigation({
23
+ enabledIndices,
24
+ isOpen: true,
25
+ onClose,
26
+ onSelect: onMenuSelect
27
+ });
28
+ useEffect(() => {
29
+ highlightFirst();
30
+ }, [highlightFirst]);
31
+ useEffect(() => {
32
+ const listener = (e) => {
33
+ handleKeyDown(e);
34
+ e.stopImmediatePropagation();
35
+ };
36
+ document.addEventListener("keydown", listener);
37
+ return () => document.removeEventListener("keydown", listener);
38
+ }, [handleKeyDown]);
9
39
  return /* @__PURE__ */ jsx(Fragment, { children: items.map((item, idx) => {
10
40
  if (item.separator) {
11
41
  return /* @__PURE__ */ jsx(
@@ -35,6 +65,7 @@ var MenuItems = React.memo(({ items, classNames, onItemClick }) => {
35
65
  }
36
66
  const isCheckboxOrRadio = item.type === "checkbox" || item.type === "radio";
37
67
  const hasChildren = item.children && item.children.length > 0;
68
+ const isFocused = highlightedIndex === idx;
38
69
  if (hasChildren) {
39
70
  return /* @__PURE__ */ jsxs(
40
71
  Popover,
@@ -48,7 +79,8 @@ var MenuItems = React.memo(({ items, classNames, onItemClick }) => {
48
79
  "data-slot": "item",
49
80
  className: cn(
50
81
  "menubar_item relative flex items-center gap-2 px-3 py-2 text-sm cursor-pointer rounded-sm transition-colors mx-1",
51
- item.disabled ? "opacity-50 cursor-not-allowed" : "hover:bg-surface focus:bg-surface focus:outline-none",
82
+ item.disabled ? "opacity-50 cursor-not-allowed" : "hover:bg-surface focus-visible:bg-surface focus-visible:outline-none",
83
+ isFocused && !item.disabled && "bg-surface",
52
84
  classNames?.item
53
85
  ),
54
86
  role: "menuitem",
@@ -56,15 +88,6 @@ var MenuItems = React.memo(({ items, classNames, onItemClick }) => {
56
88
  "aria-haspopup": "menu",
57
89
  tabIndex: item.disabled ? -1 : 0,
58
90
  onMouseEnter: () => !item.disabled && setActiveSubmenu(item.key),
59
- onKeyDown: (e) => {
60
- if (e.key === "ArrowRight") {
61
- e.preventDefault();
62
- if (!item.disabled) setActiveSubmenu(item.key);
63
- } else if (e.key === "ArrowLeft") {
64
- e.preventDefault();
65
- setActiveSubmenu(null);
66
- }
67
- },
68
91
  children: [
69
92
  item.icon && /* @__PURE__ */ jsx("span", { className: "w-4 h-4 shrink-0", children: item.icon }),
70
93
  /* @__PURE__ */ jsx("span", { className: "flex-1", children: item.label }),
@@ -85,7 +108,7 @@ var MenuItems = React.memo(({ items, classNames, onItemClick }) => {
85
108
  ),
86
109
  onOpenAutoFocus: (e) => e.preventDefault(),
87
110
  onCloseAutoFocus: (e) => e.preventDefault(),
88
- children: /* @__PURE__ */ jsx(MenuItems, { items: item.children, classNames, onItemClick })
111
+ children: /* @__PURE__ */ jsx(MenuItems, { items: item.children, classNames, onItemClick, onClose })
89
112
  }
90
113
  )
91
114
  ]
@@ -99,7 +122,8 @@ var MenuItems = React.memo(({ items, classNames, onItemClick }) => {
99
122
  "data-slot": "item",
100
123
  className: cn(
101
124
  "menubar_item relative flex items-center gap-2 px-3 py-2 text-sm cursor-pointer rounded-sm transition-colors mx-1",
102
- item.disabled ? "opacity-50 cursor-not-allowed" : "hover:bg-surface focus:bg-surface focus:outline-none",
125
+ item.disabled ? "opacity-50 cursor-not-allowed" : "hover:bg-surface focus-visible:bg-surface focus-visible:outline-none",
126
+ isFocused && !item.disabled && "bg-surface",
103
127
  isCheckboxOrRadio && classNames?.checkboxItem,
104
128
  item.type === "radio" && classNames?.radioItem,
105
129
  classNames?.item
@@ -109,12 +133,6 @@ var MenuItems = React.memo(({ items, classNames, onItemClick }) => {
109
133
  "aria-checked": isCheckboxOrRadio ? item.checked : void 0,
110
134
  tabIndex: item.disabled ? -1 : 0,
111
135
  onClick: () => !item.disabled && onItemClick(item),
112
- onKeyDown: (e) => {
113
- if (e.key === "Enter" || e.key === " ") {
114
- e.preventDefault();
115
- if (!item.disabled) onItemClick(item);
116
- }
117
- },
118
136
  children: [
119
137
  isCheckboxOrRadio && /* @__PURE__ */ jsx("span", { className: "w-4 h-4 shrink-0", children: item.checked && /* @__PURE__ */ jsxs(Fragment, { children: [
120
138
  item.type === "checkbox" && /* @__PURE__ */ jsx(Check, { className: "w-4 h-4" }),
@@ -170,36 +188,47 @@ var Menubar = React.memo(({ menus, className, classNames, ref }) => {
170
188
  } else {
171
189
  item.onClick?.();
172
190
  }
173
- handleClose();
191
+ if (item.type !== "checkbox" && item.type !== "radio") {
192
+ handleClose();
193
+ }
174
194
  },
175
195
  [handleClose]
176
196
  );
177
197
  useEffect(() => {
178
198
  if (!activeMenu) return;
179
- const handleKeyDown = (e) => {
199
+ const handler = (e) => {
180
200
  const currentIndex = menus.findIndex((m) => m.key === activeMenu);
181
- if (e.key === "Escape") {
201
+ if (e.key === "ArrowRight") {
182
202
  e.preventDefault();
183
- handleClose();
184
- } else if (e.key === "ArrowRight") {
185
- const nextIndex = (currentIndex + 1) % menus.length;
186
- const nextMenu = menus[nextIndex];
187
- if (nextMenu && !nextMenu.disabled) {
188
- e.preventDefault();
203
+ e.stopImmediatePropagation();
204
+ let next = (currentIndex + 1) % menus.length;
205
+ let attempts = 0;
206
+ while (attempts < menus.length && menus[next]?.disabled) {
207
+ next = (next + 1) % menus.length;
208
+ attempts++;
209
+ }
210
+ const nextMenu = menus[next];
211
+ if (attempts < menus.length && nextMenu && !nextMenu.disabled) {
189
212
  setActiveMenu(nextMenu.key);
190
213
  }
191
214
  } else if (e.key === "ArrowLeft") {
192
- const prevIndex = currentIndex - 1 < 0 ? menus.length - 1 : currentIndex - 1;
193
- const prevMenu = menus[prevIndex];
194
- if (prevMenu && !prevMenu.disabled) {
195
- e.preventDefault();
215
+ e.preventDefault();
216
+ e.stopImmediatePropagation();
217
+ let prev = currentIndex - 1 < 0 ? menus.length - 1 : currentIndex - 1;
218
+ let attempts = 0;
219
+ while (attempts < menus.length && menus[prev]?.disabled) {
220
+ prev = prev - 1 < 0 ? menus.length - 1 : prev - 1;
221
+ attempts++;
222
+ }
223
+ const prevMenu = menus[prev];
224
+ if (attempts < menus.length && prevMenu && !prevMenu.disabled) {
196
225
  setActiveMenu(prevMenu.key);
197
226
  }
198
227
  }
199
228
  };
200
- document.addEventListener("keydown", handleKeyDown);
201
- return () => document.removeEventListener("keydown", handleKeyDown);
202
- }, [activeMenu, menus, handleClose]);
229
+ document.addEventListener("keydown", handler);
230
+ return () => document.removeEventListener("keydown", handler);
231
+ }, [activeMenu, menus]);
203
232
  return /* @__PURE__ */ jsx(
204
233
  "div",
205
234
  {
@@ -230,7 +259,7 @@ var Menubar = React.memo(({ menus, className, classNames, ref }) => {
230
259
  "data-slot": "trigger",
231
260
  className: cn(
232
261
  "menubar_trigger px-3 py-1.5 text-sm rounded-sm transition-colors",
233
- menu.disabled ? "opacity-50 cursor-not-allowed" : "hover:bg-surface focus:bg-surface focus:outline-none",
262
+ menu.disabled ? "opacity-50 cursor-not-allowed" : "hover:bg-surface focus-visible:bg-surface focus-visible:outline-none",
234
263
  activeMenu === menu.key && "bg-surface",
235
264
  classNames?.trigger
236
265
  ),
@@ -240,12 +269,6 @@ var Menubar = React.memo(({ menus, className, classNames, ref }) => {
240
269
  "aria-disabled": menu.disabled,
241
270
  onClick: () => handleMenuClick(menu.key, menu.disabled),
242
271
  onMouseEnter: () => handleMenuHover(menu.key, menu.disabled),
243
- onKeyDown: (e) => {
244
- if (e.key === "Enter" || e.key === " ") {
245
- e.preventDefault();
246
- handleMenuClick(menu.key, menu.disabled);
247
- }
248
- },
249
272
  children: menu.label
250
273
  }
251
274
  ) }),
@@ -273,7 +296,8 @@ var Menubar = React.memo(({ menus, className, classNames, ref }) => {
273
296
  {
274
297
  items: menu.items,
275
298
  classNames,
276
- onItemClick: handleItemClick
299
+ onItemClick: handleItemClick,
300
+ onClose: handleClose
277
301
  }
278
302
  )
279
303
  }
@@ -289,5 +313,5 @@ Menubar.displayName = "Menubar";
289
313
  var menubar_default = Menubar;
290
314
 
291
315
  export { menubar_default };
292
- //# sourceMappingURL=chunk-DUIL5BYS.js.map
293
- //# sourceMappingURL=chunk-DUIL5BYS.js.map
316
+ //# sourceMappingURL=chunk-62LTLXVG.js.map
317
+ //# sourceMappingURL=chunk-62LTLXVG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/menubar/index.tsx"],"names":[],"mappings":"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","file":"chunk-62LTLXVG.js","sourcesContent":["'use client'\n\nimport { ChevronRight, Check, Circle } from 'lucide-react'\nimport React, { useState, useCallback, useEffect, useMemo } from 'react'\n\nimport { useMenuNavigation } from '../hooks/useMenuNavigation'\nimport { Popover, PopoverTrigger, PopoverContent } from '../popover'\nimport { cn } from '../utils'\nimport type { MenubarProps, MenubarItem } from './types'\n\ninterface MenuItemsProps {\n items: MenubarItem[]\n classNames?: MenubarProps['classNames']\n onItemClick: (item: MenubarItem) => void\n onClose: () => void\n}\n\nconst MenuItems = React.memo<MenuItemsProps>(({ items, classNames, onItemClick, onClose }) => {\n const [activeSubmenu, setActiveSubmenu] = useState<string | null>(null)\n\n const enabledIndices = useMemo(\n () =>\n items\n .map((item, i) => (!item.separator && item.type !== 'label' && !item.disabled) ? i : -1)\n .filter((i) => i !== -1),\n [items],\n )\n\n const onMenuSelect = useCallback(\n (index: number) => {\n const item = items[index]\n if (!item || (item.children && item.children.length > 0)) return\n onItemClick(item)\n },\n [items, onItemClick],\n )\n\n const { highlightedIndex, handleKeyDown, highlightFirst } = useMenuNavigation({\n enabledIndices,\n isOpen: true,\n onClose,\n onSelect: onMenuSelect,\n })\n\n // Highlight first item on mount\n useEffect(() => {\n highlightFirst()\n }, [highlightFirst])\n\n // Document-level keyboard listener (content is in a portal)\n useEffect(() => {\n const listener = (e: KeyboardEvent) => {\n handleKeyDown(e)\n e.stopImmediatePropagation()\n }\n document.addEventListener('keydown', listener)\n return () => document.removeEventListener('keydown', listener)\n }, [handleKeyDown])\n\n return (\n <>\n {items.map((item, idx) => {\n if (item.separator) {\n return (\n <div\n key={item.key || `separator-${idx}`}\n data-slot=\"separator\"\n className={cn('menubar_separator h-px bg-border my-1', classNames?.separator)}\n role=\"separator\"\n />\n )\n }\n\n if (item.type === 'label') {\n return (\n <div\n key={item.key}\n data-slot=\"label\"\n className={cn(\n 'menubar_label px-3 py-1.5 text-xs font-semibold text-text-secondary',\n classNames?.label,\n )}\n role=\"presentation\"\n >\n {item.label}\n </div>\n )\n }\n\n const isCheckboxOrRadio = item.type === 'checkbox' || item.type === 'radio'\n const hasChildren = item.children && item.children.length > 0\n const isFocused = highlightedIndex === idx\n\n if (hasChildren) {\n return (\n <Popover\n key={item.key}\n open={activeSubmenu === item.key}\n onOpenChange={(open) => setActiveSubmenu(open ? item.key : null)}\n >\n <PopoverTrigger asChild>\n <div\n data-slot=\"item\"\n className={cn(\n 'menubar_item relative flex items-center gap-2 px-3 py-2 text-sm cursor-pointer rounded-sm transition-colors mx-1',\n item.disabled\n ? 'opacity-50 cursor-not-allowed'\n : 'hover:bg-surface focus-visible:bg-surface focus-visible:outline-none',\n isFocused && !item.disabled && 'bg-surface',\n classNames?.item,\n )}\n role=\"menuitem\"\n aria-disabled={item.disabled}\n aria-haspopup=\"menu\"\n tabIndex={item.disabled ? -1 : 0}\n onMouseEnter={() => !item.disabled && setActiveSubmenu(item.key)}\n >\n {item.icon && <span className=\"w-4 h-4 shrink-0\">{item.icon}</span>}\n <span className=\"flex-1\">{item.label}</span>\n <ChevronRight className=\"w-4 h-4 ml-2 shrink-0\" />\n </div>\n </PopoverTrigger>\n <PopoverContent\n side=\"right\"\n align=\"start\"\n sideOffset={4}\n data-slot=\"submenu\"\n className={cn(\n 'menubar_submenu min-w-[200px] w-auto p-1 rounded-md',\n classNames?.submenu,\n )}\n onOpenAutoFocus={(e) => e.preventDefault()}\n onCloseAutoFocus={(e) => e.preventDefault()}\n >\n <MenuItems items={item.children!} classNames={classNames} onItemClick={onItemClick} onClose={onClose} />\n </PopoverContent>\n </Popover>\n )\n }\n\n return (\n <div\n key={item.key}\n data-slot=\"item\"\n className={cn(\n 'menubar_item relative flex items-center gap-2 px-3 py-2 text-sm cursor-pointer rounded-sm transition-colors mx-1',\n item.disabled\n ? 'opacity-50 cursor-not-allowed'\n : 'hover:bg-surface focus-visible:bg-surface focus-visible:outline-none',\n isFocused && !item.disabled && 'bg-surface',\n isCheckboxOrRadio && classNames?.checkboxItem,\n item.type === 'radio' && classNames?.radioItem,\n classNames?.item,\n )}\n role={\n item.type === 'checkbox'\n ? 'menuitemcheckbox'\n : item.type === 'radio'\n ? 'menuitemradio'\n : 'menuitem'\n }\n aria-disabled={item.disabled}\n aria-checked={isCheckboxOrRadio ? item.checked : undefined}\n tabIndex={item.disabled ? -1 : 0}\n onClick={() => !item.disabled && onItemClick(item)}\n >\n {isCheckboxOrRadio && (\n <span className=\"w-4 h-4 shrink-0\">\n {item.checked && (\n <>\n {item.type === 'checkbox' && <Check className=\"w-4 h-4\" />}\n {item.type === 'radio' && <Circle className=\"w-4 h-4 fill-current\" />}\n </>\n )}\n </span>\n )}\n {item.icon && !isCheckboxOrRadio && (\n <span className=\"w-4 h-4 shrink-0\">{item.icon}</span>\n )}\n <span className=\"flex-1\">{item.label}</span>\n {item.shortcut && (\n <span\n data-slot=\"shortcut\"\n className={cn(\n 'menubar_shortcut text-xs text-text-secondary ml-auto',\n classNames?.shortcut,\n )}\n >\n {item.shortcut}\n </span>\n )}\n </div>\n )\n })}\n </>\n )\n})\n\nMenuItems.displayName = 'MenuItems'\n\nconst Menubar = React.memo<MenubarProps>(({ menus, className, classNames, ref }) => {\n const [activeMenu, setActiveMenu] = useState<string | null>(null)\n const [hoverMode, setHoverMode] = useState(false)\n\n const handleMenuClick = useCallback((menuKey: string, disabled?: boolean) => {\n if (disabled) return\n setActiveMenu((prev) => (prev === menuKey ? null : menuKey))\n setHoverMode(true)\n }, [])\n\n const handleMenuHover = useCallback(\n (menuKey: string, disabled?: boolean) => {\n if (disabled) return\n if (hoverMode && activeMenu !== null) {\n setActiveMenu(menuKey)\n }\n },\n [hoverMode, activeMenu],\n )\n\n const handleClose = useCallback(() => {\n setActiveMenu(null)\n setHoverMode(false)\n }, [])\n\n const handleItemClick = useCallback(\n (item: MenubarItem) => {\n if (item.type === 'checkbox') {\n item.onCheckedChange?.(!item.checked)\n } else if (item.type === 'radio') {\n item.onCheckedChange?.(true)\n } else {\n item.onClick?.()\n }\n if (item.type !== 'checkbox' && item.type !== 'radio') {\n handleClose()\n }\n },\n [handleClose],\n )\n\n // Top-level menu switching: ArrowLeft/Right and Escape\n useEffect(() => {\n if (!activeMenu) return\n\n const handler = (e: KeyboardEvent) => {\n const currentIndex = menus.findIndex((m) => m.key === activeMenu)\n\n if (e.key === 'ArrowRight') {\n e.preventDefault()\n e.stopImmediatePropagation()\n let next = (currentIndex + 1) % menus.length\n let attempts = 0\n while (attempts < menus.length && menus[next]?.disabled) {\n next = (next + 1) % menus.length\n attempts++\n }\n const nextMenu = menus[next]\n if (attempts < menus.length && nextMenu && !nextMenu.disabled) {\n setActiveMenu(nextMenu.key)\n }\n } else if (e.key === 'ArrowLeft') {\n e.preventDefault()\n e.stopImmediatePropagation()\n let prev = currentIndex - 1 < 0 ? menus.length - 1 : currentIndex - 1\n let attempts = 0\n while (attempts < menus.length && menus[prev]?.disabled) {\n prev = prev - 1 < 0 ? menus.length - 1 : prev - 1\n attempts++\n }\n const prevMenu = menus[prev]\n if (attempts < menus.length && prevMenu && !prevMenu.disabled) {\n setActiveMenu(prevMenu.key)\n }\n }\n }\n\n document.addEventListener('keydown', handler)\n return () => document.removeEventListener('keydown', handler)\n }, [activeMenu, menus])\n\n return (\n <div\n ref={ref}\n data-slot=\"root\"\n className={cn(\n 'menubar_root flex items-center gap-1 px-2 py-1 bg-background border-b border-border',\n className,\n classNames?.root,\n )}\n role=\"menubar\"\n >\n {menus.map((menu) => (\n <Popover\n key={menu.key}\n open={activeMenu === menu.key}\n onOpenChange={(open) => {\n if (open) {\n setActiveMenu(menu.key)\n setHoverMode(true)\n } else {\n handleClose()\n }\n }}\n >\n <PopoverTrigger asChild>\n <button\n data-slot=\"trigger\"\n className={cn(\n 'menubar_trigger px-3 py-1.5 text-sm rounded-sm transition-colors',\n menu.disabled\n ? 'opacity-50 cursor-not-allowed'\n : 'hover:bg-surface focus-visible:bg-surface focus-visible:outline-none',\n activeMenu === menu.key && 'bg-surface',\n classNames?.trigger,\n )}\n role=\"menuitem\"\n aria-haspopup=\"menu\"\n aria-expanded={activeMenu === menu.key}\n aria-disabled={menu.disabled}\n onClick={() => handleMenuClick(menu.key, menu.disabled)}\n onMouseEnter={() => handleMenuHover(menu.key, menu.disabled)}\n >\n {menu.label}\n </button>\n </PopoverTrigger>\n <PopoverContent\n side=\"bottom\"\n align=\"start\"\n sideOffset={2}\n data-slot=\"content\"\n className={cn(\n 'menubar_content min-w-[200px] w-auto p-1 rounded-md',\n classNames?.content,\n )}\n onOpenAutoFocus={(e) => e.preventDefault()}\n onCloseAutoFocus={(e) => e.preventDefault()}\n onPointerDownOutside={(e) => {\n const target = e.target as HTMLElement\n if (target.closest('[data-slot=\"root\"]')) {\n e.preventDefault()\n }\n }}\n >\n <MenuItems\n items={menu.items}\n classNames={classNames}\n onItemClick={handleItemClick}\n onClose={handleClose}\n />\n </PopoverContent>\n </Popover>\n ))}\n </div>\n )\n})\n\nMenubar.displayName = 'Menubar'\n\nexport type * from './types'\nexport default Menubar\n"]}
@@ -1,8 +1,9 @@
1
- import { Modal, ModalHeader, ModalTitle, ModalDescription, ModalContent } from './chunk-YXLIGJTN.js';
2
- import { cn, iconSizes } from './chunk-NGYLRX6F.js';
1
+ import { Modal, ModalHeader, ModalTitle, ModalDescription, ModalContent } from './chunk-3KISIZGP.js';
2
+ import { cn, iconSizes } from './chunk-RAS6HUEI.js';
3
3
  import { cva } from 'class-variance-authority';
4
4
  import { Command as Command$1 } from 'cmdk';
5
5
  import { SearchIcon } from 'lucide-react';
6
+ import * as React from 'react';
6
7
  import { jsx, jsxs } from 'react/jsx-runtime';
7
8
 
8
9
  var commandVariants = cva(
@@ -21,7 +22,7 @@ var commandVariants = cva(
21
22
  }
22
23
  }
23
24
  );
24
- var Command = ({
25
+ var Command = React.memo(({
25
26
  className,
26
27
  size = "md",
27
28
  classNames,
@@ -35,9 +36,9 @@ var Command = ({
35
36
  ...props
36
37
  }
37
38
  );
38
- };
39
+ });
39
40
  Command.displayName = "Command";
40
- var CommandModal = ({
41
+ var CommandModal = React.memo(({
41
42
  title = "Command Palette",
42
43
  description = "Search for a command to run...",
43
44
  children,
@@ -67,7 +68,7 @@ var CommandModal = ({
67
68
  }
68
69
  )
69
70
  ] });
70
- };
71
+ });
71
72
  CommandModal.displayName = "CommandModal";
72
73
  var commandInputVariants = cva(
73
74
  "flex w-full bg-transparent outline-hidden disabled:cursor-not-allowed disabled:opacity-50 placeholder:text-text-secondary/50 text-text-primary",
@@ -101,7 +102,7 @@ var commandInputWrapperVariants = cva(
101
102
  }
102
103
  }
103
104
  );
104
- var CommandInput = ({
105
+ var CommandInput = React.memo(({
105
106
  className,
106
107
  size = "md",
107
108
  classNames,
@@ -131,7 +132,7 @@ var CommandInput = ({
131
132
  ]
132
133
  }
133
134
  );
134
- };
135
+ });
135
136
  CommandInput.displayName = "CommandInput";
136
137
  var commandListVariants = cva(
137
138
  "scroll-py-1 overflow-x-hidden overflow-y-auto",
@@ -149,7 +150,7 @@ var commandListVariants = cva(
149
150
  }
150
151
  }
151
152
  );
152
- var CommandList = ({
153
+ var CommandList = React.memo(({
153
154
  className,
154
155
  size = "md",
155
156
  classNames,
@@ -163,7 +164,7 @@ var CommandList = ({
163
164
  ...props
164
165
  }
165
166
  );
166
- };
167
+ });
167
168
  CommandList.displayName = "CommandList";
168
169
  var commandEmptyVariants = cva("text-center text-text-secondary", {
169
170
  variants: {
@@ -178,7 +179,7 @@ var commandEmptyVariants = cva("text-center text-text-secondary", {
178
179
  size: "md"
179
180
  }
180
181
  });
181
- var CommandEmpty = ({
182
+ var CommandEmpty = React.memo(({
182
183
  size = "md",
183
184
  classNames,
184
185
  ...props
@@ -191,7 +192,7 @@ var CommandEmpty = ({
191
192
  ...props
192
193
  }
193
194
  );
194
- };
195
+ });
195
196
  CommandEmpty.displayName = "CommandEmpty";
196
197
  var commandGroupVariants = cva(
197
198
  "overflow-hidden text-text-primary [&_[cmdk-group-heading]]:text-text-secondary [&_[cmdk-group-heading]]:font-medium",
@@ -209,7 +210,7 @@ var commandGroupVariants = cva(
209
210
  }
210
211
  }
211
212
  );
212
- var CommandGroup = ({
213
+ var CommandGroup = React.memo(({
213
214
  className,
214
215
  size = "md",
215
216
  classNames,
@@ -223,7 +224,7 @@ var CommandGroup = ({
223
224
  ...props
224
225
  }
225
226
  );
226
- };
227
+ });
227
228
  CommandGroup.displayName = "CommandGroup";
228
229
  var commandSeparatorVariants = cva("bg-border h-px", {
229
230
  variants: {
@@ -238,7 +239,7 @@ var commandSeparatorVariants = cva("bg-border h-px", {
238
239
  size: "md"
239
240
  }
240
241
  });
241
- var CommandSeparator = ({
242
+ var CommandSeparator = React.memo(({
242
243
  className,
243
244
  size = "md",
244
245
  ...props
@@ -251,7 +252,7 @@ var CommandSeparator = ({
251
252
  ...props
252
253
  }
253
254
  );
254
- };
255
+ });
255
256
  CommandSeparator.displayName = "CommandSeparator";
256
257
  var commandSelectedColorClasses = {
257
258
  default: "data-[selected=true]:bg-surface data-[selected=true]:text-text-primary",
@@ -279,7 +280,7 @@ var commandItemVariants = cva(
279
280
  }
280
281
  }
281
282
  );
282
- var CommandItem = ({
283
+ var CommandItem = React.memo(({
283
284
  className,
284
285
  size = "md",
285
286
  color = "primary",
@@ -294,7 +295,7 @@ var CommandItem = ({
294
295
  ...props
295
296
  }
296
297
  );
297
- };
298
+ });
298
299
  CommandItem.displayName = "CommandItem";
299
300
  var commandShortcutVariants = cva(
300
301
  "ml-auto tracking-widest text-text-secondary opacity-60",
@@ -312,7 +313,7 @@ var commandShortcutVariants = cva(
312
313
  }
313
314
  }
314
315
  );
315
- var CommandShortcut = ({
316
+ var CommandShortcut = React.memo(({
316
317
  className,
317
318
  size = "md",
318
319
  classNames,
@@ -326,9 +327,9 @@ var CommandShortcut = ({
326
327
  ...props
327
328
  }
328
329
  );
329
- };
330
+ });
330
331
  CommandShortcut.displayName = "CommandShortcut";
331
332
 
332
333
  export { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandModal, CommandSeparator, CommandShortcut };
333
- //# sourceMappingURL=chunk-G6NVGBYZ.js.map
334
- //# sourceMappingURL=chunk-G6NVGBYZ.js.map
334
+ //# sourceMappingURL=chunk-6ZPCKFRS.js.map
335
+ //# sourceMappingURL=chunk-6ZPCKFRS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/command/index.tsx"],"names":["CommandPrimitive"],"mappings":"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","file":"chunk-6ZPCKFRS.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { SearchIcon } from 'lucide-react'\nimport * as React from 'react'\n\nimport { CommandSize, CommandClassNames } from './types'\n\nimport {\n Modal,\n ModalContent,\n ModalDescription,\n ModalHeader,\n ModalTitle,\n} from '../modal'\nimport { ComponentColor } from '../types'\nimport { cn, iconSizes } from '../utils'\n\nconst commandVariants = cva(\n 'flex h-full w-full flex-col overflow-hidden rounded-md bg-background text-text-primary',\n {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst Command = React.memo(({\n className,\n size = 'md',\n classNames,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive> & {\n size?: CommandSize\n classNames?: CommandClassNames\n}) => {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn('command_root', commandVariants({ size }), classNames?.root, className)}\n {...props}\n />\n )\n})\n\nCommand.displayName = 'Command'\n\nconst CommandModal = React.memo(({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n className,\n showCloseButton = true,\n size = 'md',\n ...props\n}: React.ComponentProps<typeof Modal> & {\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n size?: CommandSize\n}) => {\n return (\n <Modal {...props}>\n <ModalHeader className=\"sr-only\">\n <ModalTitle>{title}</ModalTitle>\n <ModalDescription>{description}</ModalDescription>\n </ModalHeader>\n <ModalContent\n className={cn('overflow-hidden p-0', className)}\n showCloseButton={showCloseButton}\n >\n <Command\n size={size}\n className=\"[&_[cmdk-group-heading]]:text-text-secondary [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0\"\n >\n {children}\n </Command>\n </ModalContent>\n </Modal>\n )\n})\n\nCommandModal.displayName = 'CommandModal'\n\nconst commandInputVariants = cva(\n 'flex w-full bg-transparent outline-hidden disabled:cursor-not-allowed disabled:opacity-50 placeholder:text-text-secondary/50 text-text-primary',\n {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst commandInputWrapperVariants = cva(\n 'flex items-center gap-2 border-b border-border px-3',\n {\n variants: {\n size: {\n xs: 'h-6',\n sm: 'h-8',\n md: 'h-10',\n lg: 'h-12',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst CommandInput = React.memo(({\n className,\n size = 'md',\n classNames,\n ...props\n}: Omit<React.ComponentProps<typeof CommandPrimitive.Input>, 'size'> & {\n size?: CommandSize\n classNames?: CommandClassNames\n}) => {\n return (\n <div\n data-slot=\"command-input-wrapper\"\n className={commandInputWrapperVariants({ size })}\n >\n <SearchIcon\n data-slot=\"command-input-icon\"\n className={cn('command_inputIcon', 'shrink-0 opacity-50 text-text-secondary', iconSizes[size], classNames?.inputIcon)}\n />\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn('command_input', commandInputVariants({ size }), classNames?.input, className)}\n {...props}\n />\n </div>\n )\n})\n\nCommandInput.displayName = 'CommandInput'\n\nconst commandListVariants = cva(\n 'scroll-py-1 overflow-x-hidden overflow-y-auto',\n {\n variants: {\n size: {\n xs: 'max-h-[150px]',\n sm: 'max-h-[200px]',\n md: 'max-h-[300px]',\n lg: 'max-h-[400px]',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst CommandList = React.memo(({\n className,\n size = 'md',\n classNames,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List> & {\n size?: CommandSize\n classNames?: CommandClassNames\n}) => {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn('command_list', commandListVariants({ size }), classNames?.list, className)}\n {...props}\n />\n )\n})\n\nCommandList.displayName = 'CommandList'\n\nconst commandEmptyVariants = cva('text-center text-text-secondary', {\n variants: {\n size: {\n xs: 'py-3 text-[10px]',\n sm: 'py-4 text-xs',\n md: 'py-6 text-sm',\n lg: 'py-8 text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst CommandEmpty = React.memo(({\n size = 'md',\n classNames,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty> & {\n size?: CommandSize\n classNames?: CommandClassNames\n}) => {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className={cn('command_empty', commandEmptyVariants({ size }), classNames?.empty)}\n {...props}\n />\n )\n})\n\nCommandEmpty.displayName = 'CommandEmpty'\n\nconst commandGroupVariants = cva(\n 'overflow-hidden text-text-primary [&_[cmdk-group-heading]]:text-text-secondary [&_[cmdk-group-heading]]:font-medium',\n {\n variants: {\n size: {\n xs: 'p-0.5 [&_[cmdk-group-heading]]:px-1 [&_[cmdk-group-heading]]:py-0.5 [&_[cmdk-group-heading]]:text-[9px]',\n sm: 'p-0.5 [&_[cmdk-group-heading]]:px-1.5 [&_[cmdk-group-heading]]:py-1 [&_[cmdk-group-heading]]:text-[10px]',\n md: 'p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs',\n lg: 'p-1.5 [&_[cmdk-group-heading]]:px-3 [&_[cmdk-group-heading]]:py-2 [&_[cmdk-group-heading]]:text-sm',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst CommandGroup = React.memo(({\n className,\n size = 'md',\n classNames,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group> & {\n size?: CommandSize\n classNames?: CommandClassNames\n}) => {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn('command_group', commandGroupVariants({ size }), classNames?.group, className)}\n {...props}\n />\n )\n})\n\nCommandGroup.displayName = 'CommandGroup'\n\nconst commandSeparatorVariants = cva('bg-border h-px', {\n variants: {\n size: {\n xs: '-mx-0',\n sm: '-mx-0.5',\n md: '-mx-1',\n lg: '-mx-1.5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst CommandSeparator = React.memo(({\n className,\n size = 'md',\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator> & {\n size?: CommandSize\n}) => {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn(commandSeparatorVariants({ size }), className)}\n {...props}\n />\n )\n})\n\nCommandSeparator.displayName = 'CommandSeparator'\n\nconst commandSelectedColorClasses: Record<ComponentColor, string> = {\n default: 'data-[selected=true]:bg-surface data-[selected=true]:text-text-primary',\n primary: 'data-[selected=true]:bg-primary/10 data-[selected=true]:text-primary',\n secondary: 'data-[selected=true]:bg-secondary/10 data-[selected=true]:text-secondary',\n accent: 'data-[selected=true]:bg-accent/10 data-[selected=true]:text-accent',\n success: 'data-[selected=true]:bg-success/10 data-[selected=true]:text-success',\n error: 'data-[selected=true]:bg-error/10 data-[selected=true]:text-error',\n warning: 'data-[selected=true]:bg-warning/10 data-[selected=true]:text-warning',\n info: 'data-[selected=true]:bg-info/10 data-[selected=true]:text-info',\n}\n\nconst commandItemVariants = cva(\n \"relative flex cursor-default items-center gap-2 rounded-sm outline-hidden select-none text-text-primary data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-text-secondary transition-colors\",\n {\n variants: {\n size: {\n xs: \"px-1 py-0.5 text-[10px] gap-1 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"px-1.5 py-1 text-xs gap-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n md: \"px-2 py-1.5 text-sm gap-2 [&_svg:not([class*='size-'])]:size-4\",\n lg: \"px-3 py-2 text-base gap-2.5 [&_svg:not([class*='size-'])]:size-5\",\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst CommandItem = React.memo(({\n className,\n size = 'md',\n color = 'primary',\n classNames,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item> & {\n size?: CommandSize\n color?: ComponentColor\n classNames?: CommandClassNames\n}) => {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn('command_item', commandItemVariants({ size }), commandSelectedColorClasses[color], classNames?.item, className)}\n {...props}\n />\n )\n})\n\nCommandItem.displayName = 'CommandItem'\n\nconst commandShortcutVariants = cva(\n 'ml-auto tracking-widest text-text-secondary opacity-60',\n {\n variants: {\n size: {\n xs: 'text-[9px]',\n sm: 'text-[10px]',\n md: 'text-xs',\n lg: 'text-sm',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst CommandShortcut = React.memo(({\n className,\n size = 'md',\n classNames,\n ...props\n}: React.ComponentProps<'span'> & {\n size?: CommandSize\n classNames?: CommandClassNames\n}) => {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn('command_shortcut', commandShortcutVariants({ size }), classNames?.shortcut, className)}\n {...props}\n />\n )\n})\n\nCommandShortcut.displayName = 'CommandShortcut'\n\nexport type * from './types'\nexport {\n Command,\n CommandModal,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-NGYLRX6F.js';
1
+ import { cn } from './chunk-RAS6HUEI.js';
2
2
  import React, { useRef, useState, useEffect } from 'react';
3
3
  import { Pagination } from 'swiper/modules';
4
4
  import { Swiper } from 'swiper/react';
@@ -61,6 +61,7 @@ var Carousel = React.memo(
61
61
  className,
62
62
  classNames,
63
63
  modules,
64
+ ariaLabel = "Carousel",
64
65
  ...props
65
66
  }) => {
66
67
  const swiperRef = useRef(null);
@@ -68,6 +69,7 @@ var Carousel = React.memo(
68
69
  return /* @__PURE__ */ jsxs(
69
70
  "div",
70
71
  {
72
+ "data-slot": "root",
71
73
  className: cn(
72
74
  "carousel_root",
73
75
  "relative h-full group",
@@ -76,7 +78,7 @@ var Carousel = React.memo(
76
78
  ),
77
79
  role: "region",
78
80
  "aria-roledescription": "carousel",
79
- "aria-label": "Image carousel",
81
+ "aria-label": ariaLabel,
80
82
  children: [
81
83
  withArrows && /* @__PURE__ */ jsx("div", { className: cn(
82
84
  "carousel_navigation",
@@ -95,7 +97,7 @@ var Carousel = React.memo(
95
97
  {
96
98
  loop,
97
99
  ...props,
98
- modules: [Pagination, ...modules || []],
100
+ modules: [...withPagination ? [Pagination] : [], ...modules || []],
99
101
  pagination: withPagination ? pagination : false,
100
102
  className: cn("carousel_wrapper", "relative", classNames?.wrapper),
101
103
  onBeforeInit: (swiper) => {
@@ -126,5 +128,5 @@ Carousel.displayName = "Carousel";
126
128
  var carousel_default = Carousel;
127
129
 
128
130
  export { carousel_default };
129
- //# sourceMappingURL=chunk-N2WHJ3FI.js.map
130
- //# sourceMappingURL=chunk-N2WHJ3FI.js.map
131
+ //# sourceMappingURL=chunk-7OYMEXY3.js.map
132
+ //# sourceMappingURL=chunk-7OYMEXY3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/carousel/carousel-navigation.tsx","../src/carousel/index.tsx"],"names":["useState","jsx"],"mappings":"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","file":"chunk-7OYMEXY3.js","sourcesContent":["'use client'\n\nimport { ChevronLeft, ChevronRight } from 'lucide-react'\nimport { Swiper as SwiperType } from 'swiper/types'\nimport { useEffect, useState } from 'react'\nimport { cn } from '../utils'\n\ninterface CarouselNavigationProps {\n type: 'next' | 'prev'\n swiper: SwiperType | null\n className?: string\n}\n\nexport function CarouselNavigation({ type, swiper, className }: CarouselNavigationProps) {\n const [slideConfig, setSlideConfig] = useState({\n isBeginning: true,\n isEnd: false,\n })\n\n useEffect(() => {\n if (!swiper) return\n\n const updateSlideState = () => {\n setSlideConfig({ isBeginning: swiper.isBeginning, isEnd: swiper.isEnd })\n }\n\n swiper.on('slideChange', updateSlideState)\n\n return () => {\n swiper.off('slideChange', updateSlideState)\n }\n }, [swiper])\n\n if (!swiper) return null\n if (slideConfig.isBeginning && type === 'prev') return null\n if (slideConfig.isEnd && type === 'next') return null\n\n return (\n <button\n type=\"button\"\n aria-label={type === 'next' ? 'Next slide' : 'Previous slide'}\n onClick={(e) => {\n e.stopPropagation()\n if (type === 'next') {\n swiper?.slideNext()\n } else {\n swiper?.slidePrev()\n }\n }}\n className={cn(\n 'flex items-center justify-center w-9 h-9 rounded-full border border-border bg-background shadow-sm hover:bg-surface transition cursor-pointer focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 outline-none',\n className\n )}\n >\n {type === 'next' ? <ChevronRight size={18} aria-hidden=\"true\" /> : <ChevronLeft size={18} aria-hidden=\"true\" />}\n </button>\n )\n}\n","'use client'\n\nimport React, { useRef, useState } from 'react'\nimport { Pagination } from 'swiper/modules'\nimport { Swiper, SwiperProps } from 'swiper/react'\nimport { PaginationOptions, Swiper as SwiperType } from 'swiper/types'\n\n// Swiper core styles - required for carousel to render correctly\nimport 'swiper/css'\nimport 'swiper/css/pagination'\n\nimport { cn } from '../utils'\nimport { CarouselNavigation } from './carousel-navigation'\n\nexport interface CarouselClassNames {\n /**\n * Class name for the root container\n */\n root?: string\n\n /**\n * Class name for the wrapper element\n */\n wrapper?: string\n\n /**\n * Class name for individual slides\n */\n slide?: string\n\n /**\n * Class name for the navigation container\n */\n navigation?: string\n\n /**\n * Class name for navigation buttons\n */\n navButton?: string\n\n /**\n * Class name for the pagination container\n */\n pagination?: string\n\n /**\n * Class name for pagination dots\n */\n dot?: string\n\n /**\n * Class name for active pagination dot\n */\n dotActive?: string\n}\n\nexport interface CarouselProps extends SwiperProps {\n withArrows?: boolean\n withPagination?: boolean\n children: React.ReactNode\n /**\n * ClassNames for component parts\n */\n classNames?: CarouselClassNames\n /**\n * Accessible label for the carousel\n */\n ariaLabel?: string\n}\n\nconst pagination: PaginationOptions = {\n clickable: true,\n horizontalClass: 'pagination',\n bulletActiveClass: 'bg-text-primary',\n bulletClass:\n 'inline-flex w-2.5 h-2.5 mx-1 rounded-full bg-border opacity-70 transition-[opacity,colors] duration-300 cursor-pointer hover:opacity-100',\n}\n\nconst Carousel = React.memo<CarouselProps>(\n ({\n withArrows = false,\n withPagination = false,\n children,\n loop = false,\n className,\n classNames,\n modules,\n ariaLabel = 'Carousel',\n ...props\n }) => {\n const swiperRef = useRef<SwiperType | null>(null)\n const [, setRenderTrigger] = useState(0)\n\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'carousel_root',\n 'relative h-full group',\n classNames?.root,\n className\n )}\n role=\"region\"\n aria-roledescription=\"carousel\"\n aria-label={ariaLabel}\n >\n {withArrows && (\n <div className={cn(\n 'carousel_navigation',\n 'absolute -translate-y-1/2 top-1/2 left-0 flex px-1 z-10 opacity-0 group-hover:opacity-100 transition-[opacity,colors] duration-200',\n classNames?.navigation\n )}>\n <CarouselNavigation\n type=\"prev\"\n swiper={swiperRef.current}\n className={cn('carousel_navButton', classNames?.navButton)}\n />\n </div>\n )}\n\n <Swiper\n loop={loop}\n {...props}\n modules={[...(withPagination ? [Pagination] : []), ...(modules || [])]}\n pagination={withPagination ? pagination : false}\n className={cn('carousel_wrapper', 'relative', classNames?.wrapper)}\n onBeforeInit={(swiper) => {\n swiperRef.current = swiper\n setRenderTrigger((x) => x + 1) // Trigger re-render to update navigation refs\n }}\n >\n {children}\n </Swiper>\n\n {withArrows && (\n <div className={cn(\n 'carousel_navigation',\n 'absolute -translate-y-1/2 top-1/2 right-0 flex px-1 z-10 opacity-0 group-hover:opacity-100 transition-[opacity,colors] duration-200',\n classNames?.navigation\n )}>\n <CarouselNavigation\n type=\"next\"\n swiper={swiperRef.current}\n className={cn('carousel_navButton', classNames?.navButton)}\n />\n </div>\n )}\n </div>\n )\n },\n)\n\nCarousel.displayName = 'Carousel'\n\nexport default Carousel\n"]}
@@ -1,6 +1,7 @@
1
- import { cn, iconSizes } from './chunk-NGYLRX6F.js';
1
+ import { cn, iconSizes } from './chunk-RAS6HUEI.js';
2
2
  import { cva } from 'class-variance-authority';
3
3
  import { ExternalLink } from 'lucide-react';
4
+ import React from 'react';
4
5
  import { jsxs, jsx } from 'react/jsx-runtime';
5
6
 
6
7
  var linkVariants = cva(
@@ -41,7 +42,7 @@ var linkVariants = cva(
41
42
  }
42
43
  }
43
44
  );
44
- var Link = ({
45
+ var Link = React.memo(({
45
46
  children,
46
47
  color = "default",
47
48
  size = "md",
@@ -135,10 +136,10 @@ var Link = ({
135
136
  ]
136
137
  }
137
138
  );
138
- };
139
+ });
139
140
  Link.displayName = "Link";
140
141
  var link_default = Link;
141
142
 
142
143
  export { link_default };
143
- //# sourceMappingURL=chunk-ONGJXAYQ.js.map
144
- //# sourceMappingURL=chunk-ONGJXAYQ.js.map
144
+ //# sourceMappingURL=chunk-AEPBQO7U.js.map
145
+ //# sourceMappingURL=chunk-AEPBQO7U.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/link/index.tsx"],"names":[],"mappings":"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","file":"chunk-AEPBQO7U.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { ExternalLink } from \"lucide-react\";\nimport React from \"react\";\n\nimport { cn, iconSizes } from \"../utils\";\nimport type { LinkProps, LinkSize } from \"./types\";\n\n/**\n * Link variants\n */\nconst linkVariants = cva(\n \"inline-flex items-center gap-1 font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n {\n variants: {\n color: {\n default: \"text-text-primary hover:text-text-primary/80\",\n primary: \"text-primary hover:text-primary/80\",\n secondary: \"text-secondary hover:text-secondary/80\",\n accent: \"text-accent hover:text-accent/80\",\n success: \"text-success hover:text-success/80\",\n error: \"text-error hover:text-error/80\",\n warning: \"text-warning hover:text-warning/80\",\n info: \"text-info hover:text-info/80\",\n },\n size: {\n xs: \"text-xs\",\n sm: \"text-sm\",\n md: \"text-base\",\n lg: \"text-lg\",\n },\n underline: {\n always: \"underline\",\n hover: \"no-underline hover:underline\",\n none: \"no-underline\",\n },\n disabled: {\n true: \"opacity-50 pointer-events-none cursor-not-allowed\",\n false: \"cursor-pointer\",\n },\n },\n defaultVariants: {\n color: \"default\",\n size: \"md\",\n underline: \"hover\",\n disabled: false,\n },\n },\n);\n\n/**\n * Link Component\n */\nconst Link = React.memo<LinkProps>(({\n children,\n color = \"default\",\n size = \"md\",\n underline = \"hover\",\n external = false,\n showExternalIcon = true,\n disabled = false,\n leftIcon,\n rightIcon,\n className,\n classNames,\n href,\n ref,\n onClick,\n ...props\n}) => {\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n if (disabled) {\n e.preventDefault();\n return;\n }\n onClick?.(e);\n };\n\n const externalProps = external\n ? {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n }\n : {};\n\n const showExternalIconRendered = external && showExternalIcon;\n\n return (\n <a\n ref={ref}\n href={disabled ? undefined : href}\n className={cn(\n \"link_root\",\n (leftIcon || rightIcon) && \"align-top\",\n linkVariants({\n color,\n size,\n underline,\n disabled,\n }),\n classNames?.root,\n className,\n )}\n onClick={handleClick}\n aria-disabled={disabled || undefined}\n data-slot=\"root\"\n {...externalProps}\n {...props}\n >\n {leftIcon && (\n <span\n className={cn(\n \"link_icon\",\n \"inline-flex items-center justify-center shrink-0\",\n iconSizes[size as LinkSize],\n classNames?.icon,\n )}\n data-slot=\"icon\"\n >\n {leftIcon}\n </span>\n )}\n {children}\n {rightIcon && (\n <span\n className={cn(\n \"link_icon\",\n \"inline-flex items-center justify-center shrink-0\",\n iconSizes[size as LinkSize],\n classNames?.icon,\n )}\n data-slot=\"icon\"\n >\n {rightIcon}\n </span>\n )}\n {showExternalIconRendered && (\n <ExternalLink\n className={cn(\n \"link_externalIcon\",\n iconSizes[size as LinkSize],\n classNames?.externalIcon,\n )}\n aria-label=\"Opens in new tab\"\n data-slot=\"externalIcon\"\n />\n )}\n </a>\n );\n});\n\nLink.displayName = \"Link\";\n\nexport type * from \"./types\";\nexport default Link;\n"]}