@expcat/tigercat-vue 2.1.2 → 2.1.4

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 (578) hide show
  1. package/README.md +19 -19
  2. package/dist/chunk-2EOVE7AX.mjs +398 -0
  3. package/dist/{chunk-3MO7A4GU.mjs → chunk-2HP6DX7Q.mjs} +21 -15
  4. package/dist/{chunk-BC74Z6IG.mjs → chunk-2J6F4OVC.mjs} +4 -16
  5. package/dist/{chunk-QZRSFGZZ.mjs → chunk-35JLHFUT.mjs} +19 -18
  6. package/dist/chunk-36CRSIXF.mjs +122 -0
  7. package/dist/{chunk-A5QYJSHK.mjs → chunk-3DFYNKHA.mjs} +86 -21
  8. package/dist/chunk-4337NE24.mjs +316 -0
  9. package/dist/chunk-45DXSHX6.mjs +140 -0
  10. package/dist/{chunk-UOJOJBEU.mjs → chunk-4GOTWNOO.mjs} +63 -51
  11. package/dist/chunk-4H3PX46K.mjs +287 -0
  12. package/dist/{chunk-PFIV5MXD.mjs → chunk-4INCDD5K.mjs} +16 -0
  13. package/dist/chunk-4JH6QUWR.mjs +408 -0
  14. package/dist/chunk-4KFAGTGA.mjs +499 -0
  15. package/dist/chunk-4KIZXFFG.mjs +155 -0
  16. package/dist/chunk-4KOKMAMY.mjs +133 -0
  17. package/dist/{chunk-Z2ZECCGD.mjs → chunk-4QMHNTUU.mjs} +9 -1
  18. package/dist/{chunk-IPGPLFUZ.mjs → chunk-4RJPEIBE.mjs} +163 -92
  19. package/dist/chunk-4SGEY2EB.mjs +236 -0
  20. package/dist/chunk-55BVZU4O.mjs +417 -0
  21. package/dist/{chunk-6GR5U4UB.mjs → chunk-56QJDQQF.mjs} +42 -10
  22. package/dist/chunk-5DBHUGYU.mjs +668 -0
  23. package/dist/chunk-5G47QDGH.mjs +47 -0
  24. package/dist/chunk-5G5CROE3.mjs +480 -0
  25. package/dist/chunk-5T5QNVKL.mjs +137 -0
  26. package/dist/{chunk-2TNZ4JNT.mjs → chunk-5VSSB4QF.mjs} +2 -21
  27. package/dist/{chunk-IFASMNTU.mjs → chunk-5XIHKQL7.mjs} +608 -518
  28. package/dist/chunk-63I4VHHU.mjs +161 -0
  29. package/dist/{chunk-WE4DGU2T.mjs → chunk-63QGROKA.mjs} +41 -15
  30. package/dist/chunk-64WXJ662.mjs +213 -0
  31. package/dist/chunk-66JX7T3H.mjs +420 -0
  32. package/dist/{chunk-SNNT64HK.mjs → chunk-6K5BLE4Q.mjs} +48 -20
  33. package/dist/chunk-6QMYRKPV.mjs +262 -0
  34. package/dist/{chunk-XFNHZ7SV.mjs → chunk-6RSCF4DV.mjs} +71 -51
  35. package/dist/{chunk-7LUATGJU.mjs → chunk-6XQGWPZJ.mjs} +97 -62
  36. package/dist/chunk-76VWECLZ.mjs +372 -0
  37. package/dist/{chunk-JIU5UEOU.mjs → chunk-7B6XJBIJ.mjs} +174 -146
  38. package/dist/{chunk-HWL36OCD.mjs → chunk-7G6YBK6O.mjs} +138 -92
  39. package/dist/{chunk-342DH5CF.mjs → chunk-7PLYHGMY.mjs} +35 -16
  40. package/dist/chunk-7WK6OSB5.mjs +578 -0
  41. package/dist/chunk-AFNJO6KJ.mjs +201 -0
  42. package/dist/chunk-AI6X2WFK.mjs +124 -0
  43. package/dist/chunk-ASQ5XLPR.mjs +713 -0
  44. package/dist/chunk-AZWRMAUF.mjs +337 -0
  45. package/dist/chunk-B4RZHDOU.mjs +565 -0
  46. package/dist/chunk-B5FXTGBV.mjs +81 -0
  47. package/dist/{chunk-46DEQQMB.mjs → chunk-BFIYTA3E.mjs} +9 -13
  48. package/dist/chunk-BKSYSJTM.mjs +586 -0
  49. package/dist/chunk-BLHE5KSM.mjs +198 -0
  50. package/dist/{chunk-IK2WHKDA.mjs → chunk-BW2SDXPE.mjs} +181 -163
  51. package/dist/chunk-CMYPAPF2.mjs +94 -0
  52. package/dist/{chunk-VFS5XAZ3.mjs → chunk-CSMFWD6T.mjs} +69 -30
  53. package/dist/chunk-CSRUF7G6.mjs +291 -0
  54. package/dist/{chunk-Q3PELK37.mjs → chunk-CW2A2SDU.mjs} +17 -1
  55. package/dist/{chunk-POWDTOMF.mjs → chunk-DU5F2EE7.mjs} +160 -127
  56. package/dist/chunk-DXL3YHRP.mjs +92 -0
  57. package/dist/chunk-DY2B4W52.mjs +370 -0
  58. package/dist/chunk-E2DXPILZ.mjs +474 -0
  59. package/dist/chunk-ED4EXBY6.mjs +428 -0
  60. package/dist/chunk-EL2B7DEV.mjs +316 -0
  61. package/dist/{chunk-H4DEIGEG.mjs → chunk-ETJ4QD6U.mjs} +195 -78
  62. package/dist/chunk-FEVDV3I6.mjs +22 -0
  63. package/dist/chunk-FM2P4ENM.mjs +765 -0
  64. package/dist/{chunk-RRLE7QRH.mjs → chunk-FZQAYEIU.mjs} +100 -66
  65. package/dist/{chunk-6GR3XC5V.mjs → chunk-G6R2CQRS.mjs} +158 -49
  66. package/dist/chunk-GGSM7VKL.mjs +348 -0
  67. package/dist/chunk-GHY4XGDM.mjs +446 -0
  68. package/dist/chunk-GXYTMCB7.mjs +379 -0
  69. package/dist/{chunk-P62TYR3M.mjs → chunk-H6EOA6Q6.mjs} +79 -44
  70. package/dist/{chunk-3ONCXHE5.mjs → chunk-H7IBRMXU.mjs} +48 -14
  71. package/dist/chunk-HFGELYYC.mjs +295 -0
  72. package/dist/{chunk-5OILGUNU.mjs → chunk-HNMVYUUZ.mjs} +138 -49
  73. package/dist/{chunk-GBPMQJJJ.mjs → chunk-HSKBYNCP.mjs} +57 -20
  74. package/dist/chunk-I4BT2CJO.mjs +520 -0
  75. package/dist/{chunk-NN6AINLG.mjs → chunk-I77GUQV4.mjs} +6 -4
  76. package/dist/chunk-IE5CXLWU.mjs +203 -0
  77. package/dist/{chunk-67VS6QHJ.mjs → chunk-IK6D7U2T.mjs} +143 -90
  78. package/dist/chunk-IO6I54M3.mjs +298 -0
  79. package/dist/{chunk-OYU47A57.mjs → chunk-IOSUZR6Z.mjs} +93 -56
  80. package/dist/{chunk-PJQTRDIG.mjs → chunk-IWIRPC5E.mjs} +136 -113
  81. package/dist/chunk-IX3VRRYB.mjs +60 -0
  82. package/dist/{chunk-B4MDHE3L.mjs → chunk-IZCJWB77.mjs} +131 -103
  83. package/dist/{chunk-VIIGYWUY.mjs → chunk-J4HGCSOE.mjs} +16 -15
  84. package/dist/{chunk-GSB4MNEX.mjs → chunk-JBFAACVC.mjs} +15 -1
  85. package/dist/chunk-JKMKCW57.mjs +96 -0
  86. package/dist/chunk-JOZYNAU6.mjs +131 -0
  87. package/dist/{chunk-SPFL55TF.mjs → chunk-JRDQVGMH.mjs} +34 -30
  88. package/dist/{chunk-JQSIWPNM.mjs → chunk-K46SNCCE.mjs} +36 -53
  89. package/dist/{chunk-YLO73TDM.mjs → chunk-KFWSS65S.mjs} +124 -44
  90. package/dist/{chunk-UNQO7EVG.mjs → chunk-KHA3HBEO.mjs} +29 -34
  91. package/dist/{chunk-626VUZ2Q.mjs → chunk-KIGQEL2O.mjs} +52 -41
  92. package/dist/chunk-KINOD42K.mjs +576 -0
  93. package/dist/chunk-KPWSO25U.mjs +139 -0
  94. package/dist/{chunk-FISKCPTN.mjs → chunk-L5ZHCFHX.mjs} +87 -46
  95. package/dist/{chunk-BOHE5URZ.mjs → chunk-LAT52FFS.mjs} +186 -155
  96. package/dist/chunk-LNKOYOX2.mjs +80 -0
  97. package/dist/chunk-LQP4TYEZ.mjs +307 -0
  98. package/dist/chunk-LSODMFHX.mjs +297 -0
  99. package/dist/chunk-M3H5WDQB.mjs +114 -0
  100. package/dist/chunk-M5ULTISP.mjs +142 -0
  101. package/dist/{chunk-TCV6YPH5.mjs → chunk-MKKYUGVP.mjs} +149 -106
  102. package/dist/{chunk-RRNQL6MJ.mjs → chunk-MWYNO42Z.mjs} +77 -73
  103. package/dist/chunk-NKUXUYVK.mjs +611 -0
  104. package/dist/chunk-NVL4UWPJ.mjs +500 -0
  105. package/dist/chunk-NWPALCKN.mjs +222 -0
  106. package/dist/{chunk-7XDNHGDA.mjs → chunk-OGKNRXUA.mjs} +24 -28
  107. package/dist/chunk-OGXSLKXD.mjs +182 -0
  108. package/dist/chunk-OKVAKVTR.mjs +8 -0
  109. package/dist/{chunk-BBNCP55O.mjs → chunk-ONMBVAXK.mjs} +85 -24
  110. package/dist/chunk-ONSDH4KJ.mjs +286 -0
  111. package/dist/{chunk-PMQSXEMT.mjs → chunk-OZZKYZD6.mjs} +24 -18
  112. package/dist/chunk-P7TCGBAE.mjs +109 -0
  113. package/dist/chunk-PJHLYJD5.mjs +64 -0
  114. package/dist/{chunk-JHFM6IFO.mjs → chunk-PVJDEAOW.mjs} +26 -12
  115. package/dist/chunk-QEWVTGKG.mjs +743 -0
  116. package/dist/chunk-QGESVML4.mjs +444 -0
  117. package/dist/chunk-QHOOB7IK.mjs +87 -0
  118. package/dist/{chunk-VL7GENWD.mjs → chunk-QNULT27U.mjs} +14 -20
  119. package/dist/{chunk-7PY6OQVE.mjs → chunk-QVVRQZUT.mjs} +24 -23
  120. package/dist/chunk-RF6WUEZE.mjs +588 -0
  121. package/dist/chunk-S3A7X7PP.mjs +123 -0
  122. package/dist/{chunk-H2SX7D23.mjs → chunk-S77CILEG.mjs} +48 -57
  123. package/dist/chunk-SEVE2FQJ.mjs +287 -0
  124. package/dist/{chunk-DRLQCY7R.mjs → chunk-SJ6Z7IMD.mjs} +184 -157
  125. package/dist/chunk-SJYR5CSS.mjs +528 -0
  126. package/dist/{chunk-HS4YQGZQ.mjs → chunk-SZO4WL42.mjs} +82 -26
  127. package/dist/{chunk-TBOXTAIA.mjs → chunk-T2ESVQNC.mjs} +31 -14
  128. package/dist/{chunk-M7EBWJZ5.mjs → chunk-T5UGCVQW.mjs} +26 -10
  129. package/dist/chunk-TOK2QAHM.mjs +405 -0
  130. package/dist/chunk-TQEN6GDE.mjs +348 -0
  131. package/dist/{chunk-AY7CGLMO.mjs → chunk-TWZHKFFE.mjs} +76 -50
  132. package/dist/chunk-TYJBLP5U.mjs +67 -0
  133. package/dist/{chunk-UXJRH72H.mjs → chunk-TYVMTJAK.mjs} +157 -158
  134. package/dist/{chunk-BGGHSTMP.mjs → chunk-TZRNMUWB.mjs} +38 -31
  135. package/dist/chunk-UDYEWEBD.mjs +351 -0
  136. package/dist/chunk-V3NTKQZN.mjs +818 -0
  137. package/dist/{chunk-V443QIJM.mjs → chunk-V4H2Z5ZO.mjs} +50 -30
  138. package/dist/chunk-V5AH52TD.mjs +374 -0
  139. package/dist/chunk-V5BSH3EF.mjs +241 -0
  140. package/dist/chunk-VA5YVPHW.mjs +31 -0
  141. package/dist/chunk-VCXYK54V.mjs +281 -0
  142. package/dist/{chunk-Q7Y22OFX.mjs → chunk-VFRB5L7W.mjs} +148 -58
  143. package/dist/chunk-VJ5OA6JN.mjs +116 -0
  144. package/dist/{chunk-B67RJSXR.mjs → chunk-VJR5UFDE.mjs} +72 -33
  145. package/dist/chunk-W4A6L2TC.mjs +161 -0
  146. package/dist/{chunk-6NYC7EY2.mjs → chunk-WQBCO22E.mjs} +171 -134
  147. package/dist/{chunk-M4FWWEMX.mjs → chunk-WT5FY6VG.mjs} +120 -103
  148. package/dist/{chunk-ASOJXXU6.mjs → chunk-WULBKPDO.mjs} +54 -14
  149. package/dist/chunk-X2FGWVNP.mjs +276 -0
  150. package/dist/{chunk-SJINC5NF.mjs → chunk-X7UK3A6Z.mjs} +46 -32
  151. package/dist/chunk-XCIQNTJN.mjs +418 -0
  152. package/dist/chunk-XEOI2KHJ.mjs +233 -0
  153. package/dist/chunk-XNBR5ETD.mjs +380 -0
  154. package/dist/{chunk-PWWWACHC.mjs → chunk-XOGS6MRO.mjs} +52 -100
  155. package/dist/chunk-YQYSWVVW.mjs +366 -0
  156. package/dist/chunk-ZBNUL3I3.mjs +180 -0
  157. package/dist/chunk-ZC6WO5VD.mjs +281 -0
  158. package/dist/chunk-ZHAIO7DA.mjs +921 -0
  159. package/dist/chunk-ZQCKZXQI.mjs +317 -0
  160. package/dist/chunk-ZQUNC2MI.mjs +528 -0
  161. package/dist/{chunk-AECXFT7D.mjs → chunk-ZT64YHUT.mjs} +34 -6
  162. package/dist/chunk-ZTALXP6T.mjs +62 -0
  163. package/dist/chunk-ZW2VXGO3.mjs +186 -0
  164. package/dist/components/ActivityFeed.d.mts +1 -1
  165. package/dist/components/ActivityFeed.mjs +14 -12
  166. package/dist/components/Affix.d.mts +8 -6
  167. package/dist/components/Affix.mjs +1 -1
  168. package/dist/components/Alert.d.mts +42 -11
  169. package/dist/components/Alert.mjs +3 -2
  170. package/dist/components/Anchor.d.mts +34 -90
  171. package/dist/components/Anchor.mjs +3 -1
  172. package/dist/components/AreaChart.d.mts +19 -11
  173. package/dist/components/AreaChart.mjs +11 -9
  174. package/dist/components/AutoComplete.d.mts +125 -35
  175. package/dist/components/AutoComplete.mjs +5 -4
  176. package/dist/components/Avatar.d.mts +72 -67
  177. package/dist/components/Avatar.mjs +4 -4
  178. package/dist/components/AvatarGroup.d.mts +12 -5
  179. package/dist/components/AvatarGroup.mjs +3 -3
  180. package/dist/components/BackTop.d.mts +31 -34
  181. package/dist/components/BackTop.mjs +2 -1
  182. package/dist/components/Badge.d.mts +2 -4
  183. package/dist/components/Badge.mjs +1 -3
  184. package/dist/components/BarChart.d.mts +27 -16
  185. package/dist/components/BarChart.mjs +11 -9
  186. package/dist/components/Breadcrumb.d.mts +42 -95
  187. package/dist/components/Breadcrumb.mjs +5 -3
  188. package/dist/components/Button.d.mts +13 -57
  189. package/dist/components/Button.mjs +2 -2
  190. package/dist/components/ButtonGroup.mjs +1 -1
  191. package/dist/components/Calendar.d.mts +56 -14
  192. package/dist/components/Calendar.mjs +2 -3
  193. package/dist/components/Card.d.mts +11 -67
  194. package/dist/components/Card.mjs +1 -1
  195. package/dist/components/Carousel.d.mts +9 -112
  196. package/dist/components/Carousel.mjs +3 -3
  197. package/dist/components/Cascader.d.mts +119 -60
  198. package/dist/components/Cascader.mjs +7 -8
  199. package/dist/components/ChartAxis.mjs +1 -1
  200. package/dist/components/ChartCanvas.d.mts +12 -2
  201. package/dist/components/ChartCanvas.mjs +1 -1
  202. package/dist/components/ChartGrid.d.mts +24 -0
  203. package/dist/components/ChartGrid.mjs +1 -1
  204. package/dist/components/ChartLegend.d.mts +9 -18
  205. package/dist/components/ChartLegend.mjs +2 -1
  206. package/dist/components/ChartSeries.d.mts +3 -3
  207. package/dist/components/ChartSeries.mjs +1 -1
  208. package/dist/components/ChartTooltip.d.mts +6 -5
  209. package/dist/components/ChartTooltip.mjs +2 -1
  210. package/dist/components/ChatWindow.d.mts +8 -10
  211. package/dist/components/ChatWindow.mjs +13 -12
  212. package/dist/components/Checkbox.d.mts +14 -65
  213. package/dist/components/Checkbox.mjs +3 -2
  214. package/dist/components/CheckboxGroup.d.mts +18 -49
  215. package/dist/components/CheckboxGroup.mjs +2 -1
  216. package/dist/components/Code.d.mts +1 -1
  217. package/dist/components/Code.mjs +2 -3
  218. package/dist/components/CodeEditor.d.mts +64 -16
  219. package/dist/components/CodeEditor.mjs +3 -1
  220. package/dist/components/Col.d.mts +10 -8
  221. package/dist/components/Col.mjs +1 -2
  222. package/dist/components/Collapse.d.mts +17 -8
  223. package/dist/components/Collapse.mjs +5 -3
  224. package/dist/components/CollapsePanel.d.mts +7 -6
  225. package/dist/components/CollapsePanel.mjs +2 -2
  226. package/dist/components/ColorPicker.d.mts +100 -19
  227. package/dist/components/ColorPicker.mjs +5 -4
  228. package/dist/components/ColorSwatch.d.mts +65 -5
  229. package/dist/components/ColorSwatch.mjs +3 -1
  230. package/dist/components/CommentThread.d.mts +14 -4
  231. package/dist/components/CommentThread.mjs +12 -11
  232. package/dist/components/ConfigProvider.d.mts +4 -10
  233. package/dist/components/ConfigProvider.mjs +1 -2
  234. package/dist/components/Container.d.mts +10 -32
  235. package/dist/components/Container.mjs +1 -1
  236. package/dist/components/Content.d.mts +11 -21
  237. package/dist/components/Content.mjs +2 -1
  238. package/dist/components/ContextMenu.d.mts +28 -9
  239. package/dist/components/ContextMenu.mjs +3 -2
  240. package/dist/components/Countdown.d.mts +33 -2
  241. package/dist/components/Countdown.mjs +1 -1
  242. package/dist/components/CronEditor.d.mts +23 -5
  243. package/dist/components/CronEditor.mjs +3 -3
  244. package/dist/components/CropUpload.d.mts +3 -2
  245. package/dist/components/CropUpload.mjs +9 -8
  246. package/dist/components/DataExport.d.mts +16 -5
  247. package/dist/components/DataExport.mjs +5 -5
  248. package/dist/components/DataTableWithToolbar.d.mts +255 -318
  249. package/dist/components/DataTableWithToolbar.mjs +20 -18
  250. package/dist/components/DatePicker.d.mts +140 -212
  251. package/dist/components/DatePicker.mjs +6 -5
  252. package/dist/components/Descriptions.d.mts +20 -82
  253. package/dist/components/Descriptions.mjs +2 -1
  254. package/dist/components/Divider.d.mts +20 -0
  255. package/dist/components/Divider.mjs +1 -1
  256. package/dist/components/DonutChart.d.mts +4 -291
  257. package/dist/components/DonutChart.mjs +9 -7
  258. package/dist/components/Drawer.d.mts +34 -47
  259. package/dist/components/Drawer.mjs +3 -4
  260. package/dist/components/Dropdown.d.mts +37 -133
  261. package/dist/components/Dropdown.mjs +3 -2
  262. package/dist/components/Empty.d.mts +1 -1
  263. package/dist/components/Empty.mjs +2 -3
  264. package/dist/components/FileManager.d.mts +41 -14
  265. package/dist/components/FileManager.mjs +3 -3
  266. package/dist/components/FloatButton.d.mts +43 -10
  267. package/dist/components/FloatButton.mjs +3 -1
  268. package/dist/components/Footer.d.mts +13 -23
  269. package/dist/components/Footer.mjs +1 -1
  270. package/dist/components/Form.d.mts +30 -98
  271. package/dist/components/Form.mjs +6 -5
  272. package/dist/components/FormItem.d.mts +5 -61
  273. package/dist/components/FormItem.mjs +4 -5
  274. package/dist/components/FormItemContext.d.mts +10 -2
  275. package/dist/components/FormWizard.d.mts +6 -21
  276. package/dist/components/FormWizard.mjs +8 -6
  277. package/dist/components/FunnelChart.d.mts +29 -3
  278. package/dist/components/FunnelChart.mjs +8 -6
  279. package/dist/components/Gantt.d.mts +34 -7
  280. package/dist/components/Gantt.mjs +3 -2
  281. package/dist/components/GaugeChart.d.mts +23 -4
  282. package/dist/components/GaugeChart.mjs +5 -3
  283. package/dist/components/Header.d.mts +3 -31
  284. package/dist/components/Header.mjs +1 -1
  285. package/dist/components/HeatmapChart.d.mts +34 -5
  286. package/dist/components/HeatmapChart.mjs +7 -4
  287. package/dist/components/Highlight.d.mts +3 -3
  288. package/dist/components/Highlight.mjs +1 -1
  289. package/dist/components/Icon.d.mts +6 -8
  290. package/dist/components/Icon.mjs +1 -1
  291. package/dist/components/Image.d.mts +67 -4
  292. package/dist/components/Image.mjs +6 -8
  293. package/dist/components/ImageAnnotation.d.mts +7 -4
  294. package/dist/components/ImageAnnotation.mjs +2 -3
  295. package/dist/components/ImageCompare.d.mts +5 -5
  296. package/dist/components/ImageCompare.mjs +2 -1
  297. package/dist/components/ImageCropper.d.mts +36 -6
  298. package/dist/components/ImageCropper.mjs +2 -3
  299. package/dist/components/ImageGroup.d.mts +17 -4
  300. package/dist/components/ImageGroup.mjs +4 -4
  301. package/dist/components/ImagePreview.d.mts +61 -19
  302. package/dist/components/ImagePreview.mjs +3 -3
  303. package/dist/components/ImageViewer.d.mts +92 -34
  304. package/dist/components/ImageViewer.mjs +4 -3
  305. package/dist/components/InfiniteScroll.d.mts +22 -14
  306. package/dist/components/InfiniteScroll.mjs +2 -3
  307. package/dist/components/Input.d.mts +2 -124
  308. package/dist/components/Input.mjs +4 -2
  309. package/dist/components/InputGroup.d.mts +0 -10
  310. package/dist/components/InputGroup.mjs +1 -1
  311. package/dist/components/InputNumber.d.mts +18 -42
  312. package/dist/components/InputNumber.mjs +4 -2
  313. package/dist/components/InputOTP.d.mts +6 -113
  314. package/dist/components/InputOTP.mjs +2 -3
  315. package/dist/components/Kanban.d.mts +5 -174
  316. package/dist/components/Kanban.mjs +3 -4
  317. package/dist/components/Kbd.d.mts +3 -3
  318. package/dist/components/Kbd.mjs +1 -1
  319. package/dist/components/Layout.d.mts +34 -15
  320. package/dist/components/Layout.mjs +3 -1
  321. package/dist/components/LineChart.d.mts +19 -11
  322. package/dist/components/LineChart.mjs +11 -9
  323. package/dist/components/Link.d.mts +4 -4
  324. package/dist/components/Link.mjs +1 -1
  325. package/dist/components/List.d.mts +24 -173
  326. package/dist/components/List.mjs +8 -5
  327. package/dist/components/Loading.d.mts +14 -12
  328. package/dist/components/Loading.mjs +3 -4
  329. package/dist/components/LoadingBar.d.mts +2 -3
  330. package/dist/components/LoadingBar.mjs +56 -67
  331. package/dist/components/LoadingBarContainer.d.mts +6 -5
  332. package/dist/components/LoadingBarContainer.mjs +2 -1
  333. package/dist/components/LoadingBarRoot.d.mts +1 -0
  334. package/dist/components/LoadingBarRoot.mjs +1 -1
  335. package/dist/components/MarkdownEditor.d.mts +49 -9
  336. package/dist/components/MarkdownEditor.mjs +3 -3
  337. package/dist/components/Marquee.d.mts +51 -11
  338. package/dist/components/Marquee.mjs +1 -1
  339. package/dist/components/MaskInput.d.mts +9 -86
  340. package/dist/components/MaskInput.mjs +4 -3
  341. package/dist/components/Masonry.d.mts +4 -8
  342. package/dist/components/Masonry.mjs +2 -1
  343. package/dist/components/Mentions.d.mts +133 -19
  344. package/dist/components/Mentions.mjs +5 -2
  345. package/dist/components/Menu.d.mts +75 -163
  346. package/dist/components/Menu.mjs +11 -4
  347. package/dist/components/Message.d.mts +1 -2
  348. package/dist/components/Message.mjs +53 -100
  349. package/dist/components/MessageContainer.d.mts +22 -7
  350. package/dist/components/MessageContainer.mjs +4 -2
  351. package/dist/components/MessageRoot.d.mts +1 -0
  352. package/dist/components/MessageRoot.mjs +1 -1
  353. package/dist/components/Modal.d.mts +40 -20
  354. package/dist/components/Modal.mjs +5 -6
  355. package/dist/components/NavigationMenu.d.mts +37 -25
  356. package/dist/components/NavigationMenu.mjs +6 -4
  357. package/dist/components/Notification.d.mts +1 -2
  358. package/dist/components/Notification.mjs +67 -162
  359. package/dist/components/NotificationCenter.d.mts +2 -2
  360. package/dist/components/NotificationCenter.mjs +15 -13
  361. package/dist/components/NotificationContainer.d.mts +31 -7
  362. package/dist/components/NotificationContainer.mjs +4 -2
  363. package/dist/components/NotificationRoot.d.mts +1 -0
  364. package/dist/components/NotificationRoot.mjs +1 -1
  365. package/dist/components/NumberKeyboard.d.mts +70 -11
  366. package/dist/components/NumberKeyboard.mjs +4 -3
  367. package/dist/components/OrgChart.d.mts +13 -8
  368. package/dist/components/OrgChart.mjs +3 -2
  369. package/dist/components/PageHeader.d.mts +33 -3
  370. package/dist/components/PageHeader.mjs +5 -4
  371. package/dist/components/Pagination.d.mts +5 -4
  372. package/dist/components/Pagination.mjs +2 -3
  373. package/dist/components/PieChart.d.mts +42 -11
  374. package/dist/components/PieChart.mjs +8 -6
  375. package/dist/components/Popconfirm.d.mts +33 -36
  376. package/dist/components/Popconfirm.mjs +7 -3
  377. package/dist/components/Popover.d.mts +26 -25
  378. package/dist/components/Popover.mjs +4 -3
  379. package/dist/components/PrintLayout.d.mts +60 -12
  380. package/dist/components/PrintLayout.mjs +2 -1
  381. package/dist/components/Progress.d.mts +3 -1
  382. package/dist/components/Progress.mjs +2 -1
  383. package/dist/components/QRCode.d.mts +2 -3
  384. package/dist/components/QRCode.mjs +2 -3
  385. package/dist/components/RadarChart.d.mts +34 -14
  386. package/dist/components/RadarChart.mjs +8 -6
  387. package/dist/components/Radio.d.mts +15 -66
  388. package/dist/components/Radio.mjs +3 -2
  389. package/dist/components/RadioGroup.d.mts +18 -53
  390. package/dist/components/RadioGroup.mjs +2 -1
  391. package/dist/components/Rate.d.mts +27 -0
  392. package/dist/components/Rate.mjs +2 -3
  393. package/dist/components/Resizable.d.mts +24 -2
  394. package/dist/components/Resizable.mjs +2 -1
  395. package/dist/components/Result.d.mts +12 -2
  396. package/dist/components/Result.mjs +2 -2
  397. package/dist/components/RichTextEditor.d.mts +49 -11
  398. package/dist/components/RichTextEditor.mjs +3 -3
  399. package/dist/components/Row.d.mts +12 -38
  400. package/dist/components/Row.mjs +3 -5
  401. package/dist/components/ScatterChart.d.mts +41 -5
  402. package/dist/components/ScatterChart.mjs +11 -11
  403. package/dist/components/ScrollArea.d.mts +15 -15
  404. package/dist/components/ScrollArea.mjs +2 -1
  405. package/dist/components/ScrollSpy.d.mts +21 -11
  406. package/dist/components/ScrollSpy.mjs +2 -1
  407. package/dist/components/Segmented.d.mts +18 -0
  408. package/dist/components/Segmented.mjs +2 -1
  409. package/dist/components/Select.d.mts +108 -140
  410. package/dist/components/Select.mjs +5 -4
  411. package/dist/components/Sidebar.d.mts +14 -41
  412. package/dist/components/Sidebar.mjs +3 -1
  413. package/dist/components/Signature.d.mts +70 -10
  414. package/dist/components/Signature.mjs +3 -3
  415. package/dist/components/Skeleton.d.mts +1 -1
  416. package/dist/components/Skeleton.mjs +1 -1
  417. package/dist/components/Slider.d.mts +13 -116
  418. package/dist/components/Slider.mjs +3 -1
  419. package/dist/components/Space.d.mts +18 -0
  420. package/dist/components/Space.mjs +1 -1
  421. package/dist/components/SplitButton.d.mts +17 -128
  422. package/dist/components/SplitButton.mjs +8 -5
  423. package/dist/components/Splitter.d.mts +1 -1
  424. package/dist/components/Splitter.mjs +3 -1
  425. package/dist/components/Spotlight.d.mts +18 -17
  426. package/dist/components/Spotlight.mjs +3 -4
  427. package/dist/components/Statistic.d.mts +11 -2
  428. package/dist/components/Statistic.mjs +2 -1
  429. package/dist/components/Stepper.d.mts +13 -7
  430. package/dist/components/Stepper.mjs +3 -1
  431. package/dist/components/Steps.d.mts +38 -6
  432. package/dist/components/Steps.mjs +7 -3
  433. package/dist/components/SunburstChart.d.mts +20 -3
  434. package/dist/components/SunburstChart.mjs +8 -6
  435. package/dist/components/Switch.d.mts +31 -43
  436. package/dist/components/Switch.mjs +2 -1
  437. package/dist/components/Table.d.mts +16 -87
  438. package/dist/components/Table.mjs +17 -11
  439. package/dist/components/Tabs.d.mts +7 -147
  440. package/dist/components/Tabs.mjs +7 -5
  441. package/dist/components/Tag.d.mts +51 -6
  442. package/dist/components/Tag.mjs +2 -3
  443. package/dist/components/TagsInput.d.mts +8 -79
  444. package/dist/components/TagsInput.mjs +5 -4
  445. package/dist/components/TaskBoard.d.mts +11 -17
  446. package/dist/components/TaskBoard.mjs +2 -3
  447. package/dist/components/Text.d.mts +5 -5
  448. package/dist/components/Text.mjs +1 -1
  449. package/dist/components/Textarea.d.mts +24 -130
  450. package/dist/components/Textarea.mjs +3 -2
  451. package/dist/components/TimePicker.d.mts +131 -228
  452. package/dist/components/TimePicker.mjs +5 -5
  453. package/dist/components/Timeline.d.mts +12 -37
  454. package/dist/components/Timeline.mjs +2 -3
  455. package/dist/components/Tooltip.d.mts +24 -21
  456. package/dist/components/Tooltip.mjs +4 -3
  457. package/dist/components/Tour.d.mts +38 -3
  458. package/dist/components/Tour.mjs +6 -5
  459. package/dist/components/Transfer.d.mts +73 -21
  460. package/dist/components/Transfer.mjs +6 -3
  461. package/dist/components/Tree.d.mts +110 -250
  462. package/dist/components/Tree.mjs +7 -4
  463. package/dist/components/TreeMapChart.d.mts +29 -3
  464. package/dist/components/TreeMapChart.mjs +8 -6
  465. package/dist/components/TreeSelect.d.mts +188 -81
  466. package/dist/components/TreeSelect.mjs +7 -9
  467. package/dist/components/Upload.d.mts +107 -145
  468. package/dist/components/Upload.mjs +8 -3
  469. package/dist/components/VirtualList.d.mts +31 -4
  470. package/dist/components/VirtualList.mjs +1 -1
  471. package/dist/components/VirtualTable.d.mts +21 -8
  472. package/dist/components/VirtualTable.mjs +2 -3
  473. package/dist/components/Watermark.d.mts +5 -5
  474. package/dist/components/Watermark.mjs +1 -1
  475. package/dist/composables/useChartInteraction.d.mts +14 -63
  476. package/dist/composables/useChartInteraction.mjs +1 -1
  477. package/dist/composables/useDrag.d.mts +5 -23
  478. package/dist/composables/useDrag.mjs +1 -1
  479. package/dist/composables/useFormController.d.mts +3 -15
  480. package/dist/composables/useFormController.mjs +1 -1
  481. package/dist/composables/useResponsiveChartSize.d.mts +16 -0
  482. package/dist/composables/useResponsiveChartSize.mjs +6 -0
  483. package/dist/index.d.mts +84 -81
  484. package/dist/index.mjs +1395 -207
  485. package/dist/props-QAuP2pUi.d.mts +61 -0
  486. package/package.json +18 -8
  487. package/dist/chunk-22NIOTDQ.mjs +0 -145
  488. package/dist/chunk-26QCTL2E.mjs +0 -180
  489. package/dist/chunk-2ZUEXCVJ.mjs +0 -58
  490. package/dist/chunk-36ZFDXKU.mjs +0 -307
  491. package/dist/chunk-3FPS7XVB.mjs +0 -164
  492. package/dist/chunk-3KAHJF7D.mjs +0 -268
  493. package/dist/chunk-3OCHBGPF.mjs +0 -835
  494. package/dist/chunk-42P6ZQ3J.mjs +0 -387
  495. package/dist/chunk-5C32WCQY.mjs +0 -325
  496. package/dist/chunk-6JAAXPBW.mjs +0 -254
  497. package/dist/chunk-6TTICJR4.mjs +0 -155
  498. package/dist/chunk-73Z7N7VG.mjs +0 -204
  499. package/dist/chunk-7C7SG3SS.mjs +0 -269
  500. package/dist/chunk-7FWNN6PO.mjs +0 -296
  501. package/dist/chunk-7TJE7OYH.mjs +0 -427
  502. package/dist/chunk-7VHXZX7Y.mjs +0 -997
  503. package/dist/chunk-AOLRZG4E.mjs +0 -347
  504. package/dist/chunk-BCU7GYF6.mjs +0 -476
  505. package/dist/chunk-BQK7LH2L.mjs +0 -441
  506. package/dist/chunk-BSOLH6R5.mjs +0 -129
  507. package/dist/chunk-CCC3S6LK.mjs +0 -345
  508. package/dist/chunk-CLTRADS7.mjs +0 -115
  509. package/dist/chunk-DP25XFAH.mjs +0 -45
  510. package/dist/chunk-E523VGZP.mjs +0 -279
  511. package/dist/chunk-EC62TY2Y.mjs +0 -300
  512. package/dist/chunk-FEQ7PZXI.mjs +0 -160
  513. package/dist/chunk-FHUGOSEY.mjs +0 -144
  514. package/dist/chunk-FIEECAJV.mjs +0 -312
  515. package/dist/chunk-FWO7RNGI.mjs +0 -892
  516. package/dist/chunk-GQOPDD44.mjs +0 -519
  517. package/dist/chunk-HAUG3OP5.mjs +0 -476
  518. package/dist/chunk-I7ZMDGAR.mjs +0 -95
  519. package/dist/chunk-JBS3AESR.mjs +0 -255
  520. package/dist/chunk-K3WTQBE4.mjs +0 -394
  521. package/dist/chunk-K5MHUMKR.mjs +0 -296
  522. package/dist/chunk-K5RYFPOQ.mjs +0 -852
  523. package/dist/chunk-KIPTVKU2.mjs +0 -104
  524. package/dist/chunk-KIUGJNQO.mjs +0 -783
  525. package/dist/chunk-LH2V2JMZ.mjs +0 -168
  526. package/dist/chunk-LRFKHJDU.mjs +0 -342
  527. package/dist/chunk-M3G6LJKZ.mjs +0 -76
  528. package/dist/chunk-MI6TL3CQ.mjs +0 -128
  529. package/dist/chunk-MYKKKVGK.mjs +0 -164
  530. package/dist/chunk-N2XV37BL.mjs +0 -783
  531. package/dist/chunk-NMAJD353.mjs +0 -851
  532. package/dist/chunk-P3VAY2IQ.mjs +0 -112
  533. package/dist/chunk-P7X46BAW.mjs +0 -308
  534. package/dist/chunk-PD2PKYJE.mjs +0 -213
  535. package/dist/chunk-PGF7HLLR.mjs +0 -145
  536. package/dist/chunk-PSGVG4TN.mjs +0 -229
  537. package/dist/chunk-PVPLDEC5.mjs +0 -39
  538. package/dist/chunk-QMECRLHW.mjs +0 -122
  539. package/dist/chunk-QWLD5FMJ.mjs +0 -67
  540. package/dist/chunk-QZLOF36M.mjs +0 -354
  541. package/dist/chunk-RANRYFUI.mjs +0 -461
  542. package/dist/chunk-RHQWQJ4I.mjs +0 -244
  543. package/dist/chunk-S4BKVFQ7.mjs +0 -192
  544. package/dist/chunk-S5RTMAQN.mjs +0 -230
  545. package/dist/chunk-SAC4PAG3.mjs +0 -426
  546. package/dist/chunk-SL5KAVZK.mjs +0 -47
  547. package/dist/chunk-SWCK7TM7.mjs +0 -124
  548. package/dist/chunk-SWMYIORV.mjs +0 -115
  549. package/dist/chunk-SX3NAN4M.mjs +0 -328
  550. package/dist/chunk-TC6ZPQFT.mjs +0 -150
  551. package/dist/chunk-TDBMAKTJ.mjs +0 -348
  552. package/dist/chunk-TGXBCKOU.mjs +0 -35
  553. package/dist/chunk-TPESRDUG.mjs +0 -207
  554. package/dist/chunk-TQDN67YN.mjs +0 -165
  555. package/dist/chunk-TSF5O3MA.mjs +0 -291
  556. package/dist/chunk-U6OGGZBY.mjs +0 -594
  557. package/dist/chunk-UGHLEKEZ.mjs +0 -370
  558. package/dist/chunk-UNTTADHL.mjs +0 -73
  559. package/dist/chunk-UR5F74ZB.mjs +0 -601
  560. package/dist/chunk-URPXBKK4.mjs +0 -392
  561. package/dist/chunk-UUWPSRNV.mjs +0 -337
  562. package/dist/chunk-VY6FVIOZ.mjs +0 -344
  563. package/dist/chunk-W2ICYZVU.mjs +0 -286
  564. package/dist/chunk-W3QOMJKQ.mjs +0 -322
  565. package/dist/chunk-WM4ESIHG.mjs +0 -83
  566. package/dist/chunk-WV25G4M3.mjs +0 -194
  567. package/dist/chunk-X5LJT76O.mjs +0 -255
  568. package/dist/chunk-XH63C62K.mjs +0 -434
  569. package/dist/chunk-Y2HO4IBQ.mjs +0 -150
  570. package/dist/chunk-YEHKQ3JZ.mjs +0 -114
  571. package/dist/chunk-YNXP34KO.mjs +0 -761
  572. package/dist/chunk-YVDTXHQ6.mjs +0 -156
  573. package/dist/chunk-YZBQ6IR7.mjs +0 -143
  574. package/dist/chunk-ZFJNCAZX.mjs +0 -758
  575. package/dist/chunk-ZFTRR3KW.mjs +0 -158
  576. package/dist/chunk-ZOP7PEKY.mjs +0 -234
  577. package/dist/chunk-ZWVA7HT3.mjs +0 -159
  578. /package/dist/{chunk-UEGNXN5B.mjs → chunk-W2FOU4XH.mjs} +0 -0
@@ -0,0 +1,921 @@
1
+ import {
2
+ SidebarContextKey
3
+ } from "./chunk-OKVAKVTR.mjs";
4
+ import {
5
+ Icon
6
+ } from "./chunk-OGKNRXUA.mjs";
7
+ import {
8
+ renderVueOverlayTeleport,
9
+ useVueAnchoredOverlay
10
+ } from "./chunk-VFRB5L7W.mjs";
11
+ import {
12
+ useTigerConfig
13
+ } from "./chunk-4GOTWNOO.mjs";
14
+
15
+ // src/components/Menu.ts
16
+ import {
17
+ defineComponent,
18
+ computed,
19
+ ref,
20
+ provide,
21
+ inject,
22
+ h,
23
+ watch,
24
+ nextTick,
25
+ onBeforeUnmount,
26
+ cloneVNode,
27
+ isVNode,
28
+ useId
29
+ } from "vue";
30
+ import {
31
+ classNames,
32
+ coerceClassValue,
33
+ createSubmenuHeightTransitionController,
34
+ devWarn,
35
+ focusFirstChildItem,
36
+ focusMenuEdge,
37
+ getMenuClasses,
38
+ getMenuCollapsedInitial,
39
+ getMenuItemClasses,
40
+ getMenuItemIndent,
41
+ getMenuItemKind,
42
+ getMenuListRole,
43
+ getMenuNavigationKeys,
44
+ getMenuPlainText,
45
+ getMenuPopupPlacement,
46
+ getSubMenuExpandIconClasses,
47
+ getSubMenuTitleClasses,
48
+ hasSelectedMenuDescendant,
49
+ isKeyOpen,
50
+ isKeySelected,
51
+ isMenuRoving,
52
+ isSubmenuPopup,
53
+ MENU_POPUP_HOVER_CLOSE_MS,
54
+ menuCollapsedIconClasses,
55
+ menuItemGroupTitleClasses,
56
+ menuItemIconClasses,
57
+ menuSearchEmptyClasses,
58
+ menuSearchFieldClasses,
59
+ menuSearchInputClasses,
60
+ mergeStyleValues,
61
+ mergeTigerLocale,
62
+ moveFocusInMenu,
63
+ nextOpenKeys,
64
+ nextSelectedKeys,
65
+ reconcileSearchOpenKeys,
66
+ resolveMenuCollapsed,
67
+ resolveMenuIconKind,
68
+ resolveMenuMode,
69
+ resolveSearchFilter,
70
+ sameMenuKey,
71
+ shouldIndentMenuItem,
72
+ submenuContentInlineClasses,
73
+ submenuContentPopupClasses,
74
+ submenuContentVerticalClasses,
75
+ submenuHeightTransitionClasses,
76
+ warnControlledSearchOpenKeys
77
+ } from "@expcat/tigercat-core";
78
+ var MenuContextKey = /* @__PURE__ */ Symbol("MenuContext");
79
+ var SubMenuScopeKey = /* @__PURE__ */ Symbol("SubMenuScope");
80
+ function useMenuContext() {
81
+ return inject(MenuContextKey, null);
82
+ }
83
+ function warnMissingMenuContext(component) {
84
+ devWarn(`Menu.${component}.context`, `${component} must be used within Menu component`);
85
+ }
86
+ function getVueSlotPlainText(nodes) {
87
+ if (!nodes || nodes.length === 0) return null;
88
+ return getMenuPlainText(
89
+ nodes.map((node) => typeof node.children === "string" ? node.children : node)
90
+ );
91
+ }
92
+ function asVNodeList(value) {
93
+ if (Array.isArray(value)) return value.filter(isVNode);
94
+ if (isVNode(value)) return [value];
95
+ return [];
96
+ }
97
+ function collectVueMenuKeys(nodes) {
98
+ if (!nodes) return [];
99
+ const keys = [];
100
+ const walk = (list) => {
101
+ for (const node of list) {
102
+ if (!isVNode(node)) continue;
103
+ const props = node.props ?? {};
104
+ if (props.itemKey != null) keys.push(props.itemKey);
105
+ const children = node.children;
106
+ if (Array.isArray(children)) walk(asVNodeList(children));
107
+ else if (children && typeof children === "object" && "default" in children) {
108
+ const inner = children.default?.();
109
+ walk(asVNodeList(inner));
110
+ }
111
+ }
112
+ };
113
+ walk(asVNodeList(nodes));
114
+ return keys;
115
+ }
116
+ function renderMenuIcon(icon, collapsed) {
117
+ const kind = resolveMenuIconKind(icon);
118
+ if (kind === "none") return null;
119
+ const iconClasses = collapsed ? menuCollapsedIconClasses : menuItemIconClasses;
120
+ if (kind === "name") {
121
+ return h("span", { class: iconClasses }, [h(Icon, { name: icon })]);
122
+ }
123
+ return h("span", { class: iconClasses }, [icon]);
124
+ }
125
+ function renderCollapsedLabel(text, icon) {
126
+ if (resolveMenuIconKind(icon) !== "none") {
127
+ return text ? [h("span", { class: "sr-only" }, text)] : [];
128
+ }
129
+ const initial = getMenuCollapsedInitial(text);
130
+ const nodes = [];
131
+ if (initial) {
132
+ nodes.push(h("span", { class: "flex-1 text-center", "aria-hidden": "true" }, initial));
133
+ }
134
+ if (text) nodes.push(h("span", { class: "sr-only" }, text));
135
+ return nodes;
136
+ }
137
+ function withChildProps(nodes, next, names) {
138
+ if (!nodes || nodes.length === 0) return nodes;
139
+ return nodes.map((node) => {
140
+ if (!isVNode(node)) return node;
141
+ const type = node.type;
142
+ const name = typeof type === "object" && type != null && "name" in type ? type.name : void 0;
143
+ if (typeof name !== "string" || !names.includes(name)) return node;
144
+ return cloneVNode(node, next);
145
+ });
146
+ }
147
+ var Menu = defineComponent({
148
+ name: "TigerMenu",
149
+ inheritAttrs: false,
150
+ props: {
151
+ items: { type: Array, default: void 0 },
152
+ mode: { type: String, default: "vertical" },
153
+ theme: { type: String, default: "light" },
154
+ selectedKeys: { type: Array, default: void 0 },
155
+ defaultSelectedKeys: { type: Array, default: () => [] },
156
+ openKeys: { type: Array, default: void 0 },
157
+ defaultOpenKeys: { type: Array, default: () => [] },
158
+ collapsed: { type: Boolean, default: void 0 },
159
+ multiple: { type: Boolean, default: true },
160
+ inlineIndent: { type: Number, default: 24 },
161
+ popupPortal: { type: Boolean, default: true },
162
+ className: { type: String, default: void 0 },
163
+ style: { type: Object, default: void 0 },
164
+ searchable: { type: Boolean, default: false },
165
+ searchValue: { type: String, default: void 0 },
166
+ defaultSearchValue: { type: String, default: "" },
167
+ searchPlaceholder: { type: String, default: void 0 },
168
+ emptyText: { type: String, default: void 0 },
169
+ filterMode: {
170
+ type: String,
171
+ default: "subtree"
172
+ }
173
+ },
174
+ emits: [
175
+ "update:selectedKeys",
176
+ "update:openKeys",
177
+ "update:searchValue",
178
+ "select",
179
+ "open-change",
180
+ "search"
181
+ ],
182
+ setup(props, { slots, emit, attrs }) {
183
+ const menuEl = ref(null);
184
+ const sidebarCtx = inject(SidebarContextKey, null);
185
+ const config = useTigerConfig();
186
+ const locale = computed(() => mergeTigerLocale(config.value.locale));
187
+ const dir = computed(() => config.value.direction === "rtl" ? "rtl" : "ltr");
188
+ const collapsed = computed(
189
+ () => resolveMenuCollapsed(props.mode, props.collapsed ?? sidebarCtx?.collapsed.value ?? false)
190
+ );
191
+ const resolvedMode = computed(() => resolveMenuMode(props.mode, collapsed.value));
192
+ const internalSelectedKeys = ref(props.defaultSelectedKeys);
193
+ const internalOpenKeys = ref(props.defaultOpenKeys);
194
+ const internalSearchValue = ref(props.defaultSearchValue);
195
+ const searchExpandKeys = ref([]);
196
+ const currentSelectedKeys = computed(
197
+ () => props.selectedKeys !== void 0 ? props.selectedKeys : internalSelectedKeys.value
198
+ );
199
+ const currentOpenKeys = computed(
200
+ () => props.openKeys !== void 0 ? props.openKeys : internalOpenKeys.value
201
+ );
202
+ const currentSearchValue = computed(
203
+ () => props.searchValue !== void 0 ? props.searchValue : internalSearchValue.value
204
+ );
205
+ const handleSelect = (key) => {
206
+ const next = nextSelectedKeys(currentSelectedKeys.value, key);
207
+ if (props.selectedKeys === void 0) internalSelectedKeys.value = next;
208
+ emit("update:selectedKeys", next);
209
+ emit("select", key, { selectedKeys: next });
210
+ };
211
+ const handleOpenChange = (key, open) => {
212
+ const next = nextOpenKeys({
213
+ current: currentOpenKeys.value,
214
+ key,
215
+ multiple: props.multiple,
216
+ open
217
+ });
218
+ if (props.openKeys === void 0) internalOpenKeys.value = next;
219
+ emit("update:openKeys", next);
220
+ emit("open-change", key, { openKeys: next });
221
+ };
222
+ const handleSearchInput = (event) => {
223
+ const value = event.target.value;
224
+ if (props.searchValue === void 0) internalSearchValue.value = value;
225
+ emit("update:searchValue", value);
226
+ emit("search", value);
227
+ };
228
+ const searchResult = computed(
229
+ () => resolveSearchFilter({
230
+ items: props.items,
231
+ query: currentSearchValue.value,
232
+ filterMode: props.filterMode
233
+ })
234
+ );
235
+ const filteredItems = computed(() => searchResult.value.filtered);
236
+ watch(
237
+ () => [currentSearchValue.value, searchResult.value.expandKeys],
238
+ () => {
239
+ const reconciled = reconcileSearchOpenKeys({
240
+ openKeys: currentOpenKeys.value,
241
+ previousSearchExpandKeys: searchExpandKeys.value,
242
+ nextSearchExpandKeys: searchResult.value.expandKeys
243
+ });
244
+ searchExpandKeys.value = reconciled.searchExpandKeys;
245
+ const current = currentOpenKeys.value;
246
+ const unchanged = reconciled.openKeys.length === current.length && reconciled.openKeys.every((key, index) => key === current[index]);
247
+ if (!unchanged) {
248
+ if (props.openKeys === void 0) internalOpenKeys.value = reconciled.openKeys;
249
+ emit("update:openKeys", reconciled.openKeys);
250
+ }
251
+ warnControlledSearchOpenKeys({
252
+ controlled: props.openKeys !== void 0,
253
+ openKeys: props.openKeys ?? reconciled.openKeys,
254
+ searchExpandKeys: reconciled.searchExpandKeys
255
+ });
256
+ },
257
+ { immediate: true }
258
+ );
259
+ const menuClasses = computed(
260
+ () => classNames(
261
+ getMenuClasses(resolvedMode.value, props.theme, collapsed.value),
262
+ props.className,
263
+ coerceClassValue(attrs.class)
264
+ )
265
+ );
266
+ const menuStyle = computed(() => mergeStyleValues(attrs.style, props.style));
267
+ const passthroughAttrs = computed(() => {
268
+ const { class: _class, style: _style, ...rest } = attrs;
269
+ return rest;
270
+ });
271
+ const tabStopKey = computed(() => {
272
+ if (resolvedMode.value !== "horizontal") return void 0;
273
+ const rootKeys = props.items && props.items.length > 0 ? props.items.map((item) => item.key).filter((key) => key != null) : collectVueMenuKeys(slots.default?.());
274
+ const selected = rootKeys.find((key) => isKeySelected(key, currentSelectedKeys.value));
275
+ return selected ?? rootKeys[0];
276
+ });
277
+ provide(MenuContextKey, {
278
+ mode: resolvedMode,
279
+ theme: computed(() => props.theme),
280
+ collapsed,
281
+ inlineIndent: computed(() => props.inlineIndent),
282
+ popupPortal: computed(() => props.popupPortal),
283
+ selectedKeys: currentSelectedKeys,
284
+ openKeys: currentOpenKeys,
285
+ dir,
286
+ handleSelect,
287
+ handleOpenChange,
288
+ tabStopKey
289
+ });
290
+ const handleSearchKeyDown = (event) => {
291
+ if (event.key !== "ArrowDown") return;
292
+ event.preventDefault();
293
+ menuEl.value?.querySelector('[data-tiger-menuitem="true"]')?.focus();
294
+ };
295
+ return () => {
296
+ const renderDataItem = (item) => {
297
+ const kind = getMenuItemKind(item);
298
+ if (kind === "divider") {
299
+ return h("li", {
300
+ key: item.key ?? item.label,
301
+ role: "separator",
302
+ class: "my-1 border-t border-[var(--tiger-border,#e5e7eb)]"
303
+ });
304
+ }
305
+ if (kind === "group") {
306
+ return h(
307
+ MenuItemGroup,
308
+ { key: item.key ?? item.title, title: item.title ?? item.label },
309
+ () => (item.children ?? []).map(renderDataItem)
310
+ );
311
+ }
312
+ if (kind === "submenu") {
313
+ return h(
314
+ SubMenu,
315
+ {
316
+ key: item.key,
317
+ itemKey: item.key ?? item.label ?? "",
318
+ title: item.label ?? item.title,
319
+ icon: item.icon,
320
+ disabled: item.disabled
321
+ },
322
+ () => (item.children ?? []).map(renderDataItem)
323
+ );
324
+ }
325
+ return h(
326
+ MenuItem,
327
+ {
328
+ key: item.key,
329
+ itemKey: item.key ?? item.label ?? "",
330
+ icon: item.icon,
331
+ disabled: item.disabled,
332
+ href: item.href
333
+ },
334
+ () => item.label
335
+ );
336
+ };
337
+ const dataChildren = filteredItems.value.map(renderDataItem);
338
+ const slotChildren = slots.default?.() ?? [];
339
+ const empty = props.items && props.items.length > 0 && dataChildren.length === 0 && slotChildren.length === 0;
340
+ return h(
341
+ "nav",
342
+ {
343
+ class: menuClasses.value,
344
+ style: menuStyle.value,
345
+ "data-tiger-menu": "",
346
+ "data-tiger-menu-mode": resolvedMode.value,
347
+ "data-tiger-menu-requested-mode": props.mode,
348
+ ...passthroughAttrs.value
349
+ },
350
+ [
351
+ props.searchable ? h("div", { class: menuSearchFieldClasses }, [
352
+ h("input", {
353
+ type: "search",
354
+ value: currentSearchValue.value,
355
+ placeholder: props.searchPlaceholder ?? locale.value?.common?.searchPlaceholder ?? "Search",
356
+ class: menuSearchInputClasses,
357
+ "aria-label": props.searchPlaceholder ?? locale.value?.common?.searchPlaceholder ?? "Search",
358
+ onInput: handleSearchInput,
359
+ onKeydown: handleSearchKeyDown
360
+ })
361
+ ]) : null,
362
+ empty ? h(
363
+ "div",
364
+ { class: menuSearchEmptyClasses },
365
+ props.emptyText ?? locale.value?.common?.emptyText ?? "No data"
366
+ ) : null,
367
+ h(
368
+ "ul",
369
+ {
370
+ ref: menuEl,
371
+ role: getMenuListRole(resolvedMode.value, { isRoot: true }),
372
+ "data-tiger-menu-root": "true",
373
+ "data-tiger-menu-list": "",
374
+ "data-tiger-menu-mode": resolvedMode.value
375
+ },
376
+ [...dataChildren, ...slotChildren]
377
+ )
378
+ ]
379
+ );
380
+ };
381
+ }
382
+ });
383
+ var Menu_default = Menu;
384
+ var MenuItem = defineComponent({
385
+ name: "TigerMenuItem",
386
+ inheritAttrs: false,
387
+ props: {
388
+ itemKey: { type: [String, Number], required: true },
389
+ disabled: { type: Boolean, default: false },
390
+ icon: { type: [String, Object] },
391
+ href: { type: String, default: void 0 },
392
+ level: { type: Number, default: 0 },
393
+ collapsed: { type: Boolean, default: void 0 },
394
+ className: { type: String, default: void 0 },
395
+ style: { type: Object, default: void 0 }
396
+ },
397
+ setup(props, { slots, attrs }) {
398
+ const menuContext = inject(MenuContextKey);
399
+ const submenuScope = inject(SubMenuScopeKey, null);
400
+ if (!menuContext) warnMissingMenuContext("MenuItem");
401
+ const isSelected = computed(
402
+ () => menuContext ? isKeySelected(props.itemKey, menuContext.selectedKeys.value) : false
403
+ );
404
+ const effectiveCollapsed = computed(
405
+ () => props.collapsed ?? (menuContext ? menuContext.collapsed.value : false)
406
+ );
407
+ const inPopup = computed(() => Boolean(submenuScope?.popup));
408
+ const roving = computed(
409
+ () => Boolean(
410
+ menuContext && isMenuRoving(menuContext.mode.value, { popup: inPopup.value, isRoot: !submenuScope })
411
+ )
412
+ );
413
+ const itemClasses = computed(() => {
414
+ if (!menuContext) {
415
+ return classNames(
416
+ "flex items-center px-4 py-2 cursor-pointer transition-colors duration-200"
417
+ );
418
+ }
419
+ return classNames(
420
+ getMenuItemClasses(
421
+ isSelected.value,
422
+ props.disabled,
423
+ menuContext.theme.value,
424
+ effectiveCollapsed.value
425
+ ),
426
+ props.className,
427
+ coerceClassValue(attrs.class)
428
+ );
429
+ });
430
+ const indentStyle = computed(() => {
431
+ if (!menuContext || !shouldIndentMenuItem(menuContext.mode.value, props.level)) return {};
432
+ return getMenuItemIndent(props.level, menuContext.inlineIndent.value);
433
+ });
434
+ const itemStyle = computed(() => mergeStyleValues(attrs.style, props.style, indentStyle.value));
435
+ const passthroughAttrs = computed(() => {
436
+ const { class: _class, style: _style, ...rest } = attrs;
437
+ return rest;
438
+ });
439
+ const handleClick = () => {
440
+ if (!props.disabled && menuContext) menuContext.handleSelect(props.itemKey);
441
+ };
442
+ const handleKeyDown = (event) => {
443
+ if (!menuContext) return;
444
+ const current = event.currentTarget;
445
+ const rootMenu = current.closest('[data-tiger-menu-root="true"]');
446
+ const isRoot = Boolean(rootMenu && current.closest("[data-tiger-menu-list]") === rootMenu);
447
+ const { nextKey, prevKey, closeKey } = getMenuNavigationKeys(
448
+ menuContext.mode.value,
449
+ isRoot,
450
+ menuContext.dir.value
451
+ );
452
+ if (event.key === nextKey) {
453
+ event.preventDefault();
454
+ moveFocusInMenu(current, 1);
455
+ return;
456
+ }
457
+ if (event.key === prevKey) {
458
+ event.preventDefault();
459
+ moveFocusInMenu(current, -1);
460
+ return;
461
+ }
462
+ if (event.key === "Home") {
463
+ event.preventDefault();
464
+ focusMenuEdge(current, "start");
465
+ return;
466
+ }
467
+ if (event.key === "End") {
468
+ event.preventDefault();
469
+ focusMenuEdge(current, "end");
470
+ return;
471
+ }
472
+ if ((event.key === "Escape" || event.key === closeKey) && submenuScope) {
473
+ event.preventDefault();
474
+ submenuScope.close();
475
+ submenuScope.titleEl.value?.focus();
476
+ }
477
+ };
478
+ return () => {
479
+ const slotNodes = slots.default?.() ?? [];
480
+ const label = getVueSlotPlainText(slotNodes);
481
+ const collapsed = effectiveCollapsed.value;
482
+ const children = collapsed ? [renderMenuIcon(props.icon, true), ...renderCollapsedLabel(label, props.icon)] : [renderMenuIcon(props.icon, false), h("span", { class: "flex-1" }, slotNodes)];
483
+ const inPopupMenu = inPopup.value;
484
+ const usesMenuRole = inPopupMenu || menuContext?.mode.value === "horizontal";
485
+ const role = usesMenuRole ? "menuitem" : void 0;
486
+ const tabIndex = props.disabled ? -1 : roving.value ? menuContext?.tabStopKey.value != null && sameMenuKey(props.itemKey, menuContext.tabStopKey.value) ? 0 : -1 : 0;
487
+ const shared = {
488
+ class: itemClasses.value,
489
+ style: itemStyle.value,
490
+ "data-tiger-menuitem": "true",
491
+ "data-tiger-selected": isSelected.value ? "true" : "false",
492
+ "aria-disabled": props.disabled ? "true" : void 0,
493
+ tabindex: tabIndex,
494
+ onClick: handleClick,
495
+ onKeydown: handleKeyDown,
496
+ role,
497
+ ...passthroughAttrs.value
498
+ };
499
+ const node = props.href ? h(
500
+ "a",
501
+ {
502
+ ...shared,
503
+ href: props.disabled ? void 0 : props.href,
504
+ "aria-current": isSelected.value ? "page" : void 0
505
+ },
506
+ children
507
+ ) : h(
508
+ "button",
509
+ {
510
+ ...shared,
511
+ type: "button",
512
+ disabled: props.disabled
513
+ },
514
+ children
515
+ );
516
+ return h("li", { role: usesMenuRole ? "none" : void 0 }, [node]);
517
+ };
518
+ }
519
+ });
520
+ var MenuItemGroup = defineComponent({
521
+ name: "TigerMenuItemGroup",
522
+ inheritAttrs: false,
523
+ props: {
524
+ title: { type: String, default: "" },
525
+ level: { type: Number, default: 0 },
526
+ collapsed: { type: Boolean, default: void 0 },
527
+ className: { type: String, default: void 0 },
528
+ style: { type: Object, default: void 0 }
529
+ },
530
+ setup(props, { slots, attrs }) {
531
+ const menuContext = inject(MenuContextKey, null);
532
+ const titleId = useId();
533
+ const groupClasses = computed(() => classNames(props.className, coerceClassValue(attrs.class)));
534
+ const groupStyle = computed(() => mergeStyleValues(attrs.style, props.style));
535
+ const passthroughAttrs = computed(() => {
536
+ const { class: _class, style: _style, ...rest } = attrs;
537
+ return rest;
538
+ });
539
+ const submenuScope = inject(SubMenuScopeKey, null);
540
+ const hidden = computed(() => props.collapsed ?? menuContext?.collapsed.value ?? false);
541
+ const usesMenuRole = computed(
542
+ () => Boolean(submenuScope?.popup) || menuContext?.mode.value === "horizontal"
543
+ );
544
+ const indentStyle = computed(() => {
545
+ if (!menuContext || !shouldIndentMenuItem(menuContext.mode.value, props.level))
546
+ return void 0;
547
+ return getMenuItemIndent(props.level, menuContext.inlineIndent.value);
548
+ });
549
+ return () => h("li", { role: usesMenuRole.value ? "none" : void 0 }, [
550
+ props.title ? h(
551
+ "div",
552
+ {
553
+ id: titleId,
554
+ class: classNames(menuItemGroupTitleClasses, hidden.value && "sr-only"),
555
+ style: indentStyle.value
556
+ },
557
+ props.title
558
+ ) : null,
559
+ slots.default ? h(
560
+ "ul",
561
+ {
562
+ role: usesMenuRole.value ? "group" : void 0,
563
+ class: groupClasses.value,
564
+ style: groupStyle.value,
565
+ "aria-labelledby": props.title ? titleId : void 0,
566
+ ...passthroughAttrs.value
567
+ },
568
+ withChildProps(
569
+ slots.default(),
570
+ { level: props.level, collapsed: props.collapsed },
571
+ ["TigerMenuItem", "TigerSubMenu"]
572
+ )
573
+ ) : null
574
+ ]);
575
+ }
576
+ });
577
+ var ExpandIcon = (expanded, popup) => h(
578
+ "svg",
579
+ {
580
+ class: getSubMenuExpandIconClasses(expanded, { popup }),
581
+ width: "12",
582
+ height: "12",
583
+ viewBox: "0 0 12 12",
584
+ fill: "currentColor",
585
+ "aria-hidden": "true",
586
+ focusable: "false"
587
+ },
588
+ [h("path", { d: "M6 9L1.5 4.5L2.205 3.795L6 7.59L9.795 3.795L10.5 4.5L6 9Z" })]
589
+ );
590
+ var SubMenu = defineComponent({
591
+ name: "TigerSubMenu",
592
+ inheritAttrs: false,
593
+ props: {
594
+ itemKey: { type: [String, Number], required: true },
595
+ title: { type: String, default: "" },
596
+ icon: { type: [String, Object] },
597
+ disabled: { type: Boolean, default: false },
598
+ level: { type: Number, default: 0 },
599
+ collapsed: { type: Boolean, default: void 0 },
600
+ className: { type: String, default: void 0 },
601
+ style: { type: Object, default: void 0 }
602
+ },
603
+ setup(props, { slots, attrs }) {
604
+ const menuContext = inject(MenuContextKey);
605
+ const parentScope = inject(SubMenuScopeKey, null);
606
+ if (!menuContext) warnMissingMenuContext("SubMenu");
607
+ const titleEl = ref(null);
608
+ const popupEl = ref(null);
609
+ const submenuContentEl = ref(null);
610
+ const titleId = useId();
611
+ const listId = useId();
612
+ let heightTransitionController = null;
613
+ let popupCloseTimer = null;
614
+ const effectiveCollapsed = computed(
615
+ () => props.collapsed ?? (menuContext ? menuContext.collapsed.value : false)
616
+ );
617
+ const isPopup = computed(
618
+ () => menuContext ? isSubmenuPopup(menuContext.mode.value, effectiveCollapsed.value) : false
619
+ );
620
+ const isOpen = computed(
621
+ () => menuContext ? isKeyOpen(props.itemKey, menuContext.openKeys.value) : false
622
+ );
623
+ const isExpanded = computed(() => isOpen.value);
624
+ const popupPortal = computed(() => Boolean(isPopup.value && menuContext?.popupPortal.value));
625
+ const hasRenderedInline = ref(!isPopup.value && isExpanded.value);
626
+ const popupPlacement = computed(
627
+ () => getMenuPopupPlacement(menuContext?.mode.value ?? "vertical", props.level)
628
+ );
629
+ const overlayEnabled = computed(() => isPopup.value && isExpanded.value);
630
+ const overlayOffset = computed(() => popupPortal.value ? 4 : 0);
631
+ const overlay = useVueAnchoredOverlay({
632
+ referenceRef: titleEl,
633
+ floatingRef: popupEl,
634
+ enabled: overlayEnabled,
635
+ placement: popupPlacement,
636
+ offset: overlayOffset,
637
+ portal: popupPortal,
638
+ dismissOnEscape: true,
639
+ dismissOnOutside: true,
640
+ onDismiss: () => {
641
+ menuContext?.handleOpenChange(props.itemKey, false);
642
+ }
643
+ });
644
+ const disposeHeightTransition = () => {
645
+ heightTransitionController?.dispose();
646
+ heightTransitionController = null;
647
+ };
648
+ watch(
649
+ [isPopup, isExpanded],
650
+ () => {
651
+ if (!isPopup.value && isExpanded.value) hasRenderedInline.value = true;
652
+ void nextTick(() => {
653
+ if (isPopup.value || !hasRenderedInline.value || !submenuContentEl.value) {
654
+ disposeHeightTransition();
655
+ return;
656
+ }
657
+ if (!heightTransitionController) {
658
+ heightTransitionController = createSubmenuHeightTransitionController(
659
+ submenuContentEl.value,
660
+ { expanded: isExpanded.value }
661
+ );
662
+ return;
663
+ }
664
+ heightTransitionController.update(isExpanded.value);
665
+ });
666
+ },
667
+ { immediate: true }
668
+ );
669
+ onBeforeUnmount(() => {
670
+ disposeHeightTransition();
671
+ if (popupCloseTimer) clearTimeout(popupCloseTimer);
672
+ });
673
+ const descendantKeys = computed(() => collectVueMenuKeys(slots.default?.()));
674
+ const childSelected = computed(
675
+ () => menuContext ? hasSelectedMenuDescendant(menuContext.selectedKeys.value, descendantKeys.value) : false
676
+ );
677
+ const titleClasses = computed(() => {
678
+ if (!menuContext) return "";
679
+ return classNames(
680
+ getSubMenuTitleClasses(menuContext.theme.value, props.disabled, {
681
+ collapsed: effectiveCollapsed.value,
682
+ childSelected: childSelected.value
683
+ }),
684
+ props.className,
685
+ coerceClassValue(attrs.class)
686
+ );
687
+ });
688
+ const indentStyle = computed(() => {
689
+ if (!menuContext || !shouldIndentMenuItem(menuContext.mode.value, props.level)) return {};
690
+ return getMenuItemIndent(props.level, menuContext.inlineIndent.value);
691
+ });
692
+ const titleStyle = computed(() => mergeStyleValues(attrs.style, props.style, indentStyle.value));
693
+ const passthroughAttrs = computed(() => {
694
+ const { class: _class, style: _style, ...rest } = attrs;
695
+ return rest;
696
+ });
697
+ const contentClasses = computed(() => {
698
+ if (!menuContext) return "";
699
+ if (isPopup.value) return submenuContentPopupClasses;
700
+ if (menuContext.mode.value === "inline") return submenuContentInlineClasses;
701
+ return submenuContentVerticalClasses;
702
+ });
703
+ const clearCloseTimer = () => {
704
+ if (popupCloseTimer) {
705
+ clearTimeout(popupCloseTimer);
706
+ popupCloseTimer = null;
707
+ }
708
+ };
709
+ const handleTitleClick = (event) => {
710
+ if (!menuContext || props.disabled) return;
711
+ if (!isPopup.value) hasRenderedInline.value = true;
712
+ const pointerType = "pointerType" in event ? event.pointerType : "";
713
+ if (isPopup.value && isExpanded.value && pointerType === "mouse") return;
714
+ menuContext.handleOpenChange(props.itemKey);
715
+ };
716
+ const handleMouseEnter = () => {
717
+ if (!menuContext || props.disabled || !isPopup.value) return;
718
+ clearCloseTimer();
719
+ menuContext.handleOpenChange(props.itemKey, true);
720
+ };
721
+ const handleMouseLeave = () => {
722
+ if (!menuContext || !isPopup.value) return;
723
+ clearCloseTimer();
724
+ popupCloseTimer = setTimeout(() => {
725
+ menuContext.handleOpenChange(props.itemKey, false);
726
+ }, MENU_POPUP_HOVER_CLOSE_MS);
727
+ };
728
+ const focusFirstChild = (title) => {
729
+ void nextTick(() => focusFirstChildItem(title, isPopup.value ? popupEl.value : null));
730
+ };
731
+ const handleTitleKeyDown = (event) => {
732
+ if (!menuContext || props.disabled) return;
733
+ const current = event.currentTarget;
734
+ const rootMenu = current.closest('[data-tiger-menu-root="true"]');
735
+ const isRoot = Boolean(rootMenu && current.closest("[data-tiger-menu-list]") === rootMenu);
736
+ const { nextKey, prevKey, openKey, closeKey } = getMenuNavigationKeys(
737
+ menuContext.mode.value,
738
+ isRoot,
739
+ menuContext.dir.value
740
+ );
741
+ if (event.key === nextKey) {
742
+ event.preventDefault();
743
+ moveFocusInMenu(current, 1);
744
+ return;
745
+ }
746
+ if (event.key === prevKey) {
747
+ event.preventDefault();
748
+ moveFocusInMenu(current, -1);
749
+ return;
750
+ }
751
+ if (event.key === "Home") {
752
+ event.preventDefault();
753
+ focusMenuEdge(current, "start");
754
+ return;
755
+ }
756
+ if (event.key === "End") {
757
+ event.preventDefault();
758
+ focusMenuEdge(current, "end");
759
+ return;
760
+ }
761
+ if (event.key === "Escape" || event.key === closeKey) {
762
+ if (isExpanded.value) {
763
+ event.preventDefault();
764
+ menuContext.handleOpenChange(props.itemKey, false);
765
+ return;
766
+ }
767
+ if (parentScope) {
768
+ event.preventDefault();
769
+ parentScope.close();
770
+ parentScope.titleEl.value?.focus();
771
+ }
772
+ return;
773
+ }
774
+ if (event.key === "Enter" || event.key === " ") {
775
+ event.preventDefault();
776
+ if (!isExpanded.value) {
777
+ hasRenderedInline.value = true;
778
+ menuContext.handleOpenChange(props.itemKey, true);
779
+ }
780
+ focusFirstChild(current);
781
+ return;
782
+ }
783
+ if (event.key === openKey || isPopup.value && event.key === "ArrowDown") {
784
+ event.preventDefault();
785
+ if (!isExpanded.value) {
786
+ hasRenderedInline.value = true;
787
+ menuContext.handleOpenChange(props.itemKey, true);
788
+ }
789
+ focusFirstChild(current);
790
+ }
791
+ };
792
+ const closeSelf = () => menuContext?.handleOpenChange(props.itemKey, false);
793
+ provide(SubMenuScopeKey, {
794
+ itemKey: props.itemKey,
795
+ get popup() {
796
+ return isPopup.value;
797
+ },
798
+ titleEl,
799
+ close: closeSelf
800
+ });
801
+ return () => {
802
+ if (!menuContext) return null;
803
+ const inPopup = Boolean(parentScope?.popup);
804
+ const roving = isMenuRoving(menuContext.mode.value, {
805
+ popup: inPopup,
806
+ isRoot: !parentScope
807
+ });
808
+ const isTabStop = !props.disabled && roving && menuContext.tabStopKey.value != null && sameMenuKey(props.itemKey, menuContext.tabStopKey.value);
809
+ const titleRole = inPopup || menuContext.mode.value === "horizontal" ? "menuitem" : void 0;
810
+ const listRole = getMenuListRole(menuContext.mode.value, { popup: isPopup.value });
811
+ const collapsed = effectiveCollapsed.value;
812
+ const titleChildren = collapsed ? [renderMenuIcon(props.icon, true), ...renderCollapsedLabel(props.title, props.icon)] : [
813
+ renderMenuIcon(props.icon, false),
814
+ h("span", { class: "flex-1" }, props.title),
815
+ ExpandIcon(isExpanded.value, isPopup.value)
816
+ ];
817
+ const childNodes = withChildProps(
818
+ slots.default?.(),
819
+ {
820
+ level: props.level + 1,
821
+ collapsed: isPopup.value ? false : void 0
822
+ },
823
+ ["TigerMenuItem", "TigerSubMenu", "TigerMenuItemGroup"]
824
+ );
825
+ const titleNode = h(
826
+ "button",
827
+ {
828
+ type: "button",
829
+ id: titleId,
830
+ ref: titleEl,
831
+ class: titleClasses.value,
832
+ style: titleStyle.value,
833
+ onClick: handleTitleClick,
834
+ onKeydown: handleTitleKeyDown,
835
+ role: titleRole,
836
+ "data-tiger-menuitem": "true",
837
+ "data-tiger-submenu-title": "",
838
+ "aria-expanded": isExpanded.value ? "true" : "false",
839
+ "aria-haspopup": isPopup.value ? "menu" : void 0,
840
+ "aria-controls": listId,
841
+ "aria-disabled": props.disabled ? "true" : void 0,
842
+ "data-state": isExpanded.value ? "open" : "closed",
843
+ disabled: props.disabled,
844
+ tabindex: props.disabled ? -1 : roving ? isTabStop ? 0 : -1 : 0,
845
+ ...passthroughAttrs.value
846
+ },
847
+ titleChildren
848
+ );
849
+ const popupContentNode = () => {
850
+ const node = h(
851
+ "ul",
852
+ {
853
+ ref: popupEl,
854
+ id: listId,
855
+ class: classNames(contentClasses.value, overlay.floatingClasses.value),
856
+ style: {
857
+ ...overlay.floatingStyles.value,
858
+ display: isExpanded.value ? "block" : "none"
859
+ },
860
+ "data-positioned": overlay.positioned.value,
861
+ role: listRole,
862
+ "aria-labelledby": titleId,
863
+ "aria-hidden": isExpanded.value ? void 0 : "true",
864
+ onMouseenter: handleMouseEnter,
865
+ onMouseleave: handleMouseLeave,
866
+ "data-tiger-menu-list": "",
867
+ "data-tiger-submenu-popup": ""
868
+ },
869
+ childNodes
870
+ );
871
+ return renderVueOverlayTeleport(node, overlay.target.value, !popupPortal.value);
872
+ };
873
+ const contentNode = isPopup.value ? popupContentNode() : hasRenderedInline.value ? h(
874
+ "div",
875
+ {
876
+ ref: submenuContentEl,
877
+ class: submenuHeightTransitionClasses,
878
+ "aria-hidden": isExpanded.value ? void 0 : "true",
879
+ "data-tiger-menu-hidden": isExpanded.value ? void 0 : "true",
880
+ "data-tiger-submenu-motion": "height"
881
+ },
882
+ [
883
+ h(
884
+ "ul",
885
+ {
886
+ id: listId,
887
+ class: contentClasses.value,
888
+ role: listRole,
889
+ "aria-labelledby": titleId,
890
+ "data-tiger-menu-list": ""
891
+ },
892
+ childNodes
893
+ )
894
+ ]
895
+ ) : null;
896
+ return h(
897
+ "li",
898
+ {
899
+ class: isPopup.value && !popupPortal.value ? "relative" : "",
900
+ onMouseenter: handleMouseEnter,
901
+ onMouseleave: handleMouseLeave,
902
+ role: inPopup || menuContext.mode.value === "horizontal" ? "none" : void 0,
903
+ "data-tiger-submenu": "",
904
+ "data-child-selected": childSelected.value ? "true" : void 0
905
+ },
906
+ [titleNode, contentNode]
907
+ );
908
+ };
909
+ }
910
+ });
911
+
912
+ export {
913
+ MenuContextKey,
914
+ SubMenuScopeKey,
915
+ useMenuContext,
916
+ Menu,
917
+ Menu_default,
918
+ MenuItem,
919
+ MenuItemGroup,
920
+ SubMenu
921
+ };