@expcat/tigercat-react 1.0.7 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (443) hide show
  1. package/dist/chunk-2EC4F7VG.js +134 -0
  2. package/dist/{chunk-NZNSUKPT.js → chunk-2HDQRMGU.js} +3 -21
  3. package/dist/{chunk-LVC43YX2.mjs → chunk-2IUTFPQQ.mjs} +6 -6
  4. package/dist/{chunk-LPNHBHS2.mjs → chunk-2LER76UK.mjs} +40 -5
  5. package/dist/{chunk-PXPUPQRO.js → chunk-2N3CQT4X.js} +23 -4
  6. package/dist/{chunk-BJ2GUKPU.mjs → chunk-2PLPUM5J.mjs} +7 -17
  7. package/dist/{chunk-C443YA4U.js → chunk-2QV56L36.js} +15 -11
  8. package/dist/{chunk-M375I56K.js → chunk-36ATCHP4.js} +5 -5
  9. package/dist/{chunk-AUP3PMDD.mjs → chunk-36WZNVQ5.mjs} +59 -50
  10. package/dist/{chunk-VHHEP5G7.js → chunk-3E76U2RG.js} +22 -2
  11. package/dist/chunk-3HPDLIX3.mjs +108 -0
  12. package/dist/{chunk-QHG7KJH6.js → chunk-3RRYDYVB.js} +23 -27
  13. package/dist/{chunk-3GW3UAKB.js → chunk-466OSPRM.js} +48 -8
  14. package/dist/{chunk-RUROWRB5.mjs → chunk-4G74P6YD.mjs} +4 -3
  15. package/dist/{chunk-AY5Z3NIW.js → chunk-4LIDROT4.js} +11 -7
  16. package/dist/chunk-4R5YXNU4.mjs +42 -0
  17. package/dist/{chunk-VVO4V4IK.js → chunk-4TEILQSN.js} +1 -1
  18. package/dist/{chunk-MQ5ZP5RW.mjs → chunk-4V2HSSQN.mjs} +5 -2
  19. package/dist/{chunk-D6BHFGTN.js → chunk-4YVXF45R.js} +3 -2
  20. package/dist/{chunk-HSHVLIEL.mjs → chunk-564WBQ77.mjs} +11 -11
  21. package/dist/{chunk-QO3GGQAV.mjs → chunk-5HFHHFQS.mjs} +25 -28
  22. package/dist/{chunk-SDWJSALH.js → chunk-5OLE7XM3.js} +156 -137
  23. package/dist/{chunk-DBNAL6G6.mjs → chunk-5OMSQ5PV.mjs} +72 -260
  24. package/dist/{chunk-YLZEOXFS.mjs → chunk-6GU5NH5F.mjs} +22 -2
  25. package/dist/{chunk-XEYP62CR.js → chunk-6LDJSFUQ.js} +71 -14
  26. package/dist/{chunk-RYW4CV7U.js → chunk-6N6CWBPP.js} +16 -6
  27. package/dist/{chunk-6P3JIUSI.mjs → chunk-6OOGL43U.mjs} +3 -2
  28. package/dist/{chunk-3CDAG4HD.mjs → chunk-6QML6T3Y.mjs} +20 -6
  29. package/dist/{chunk-BALJCZ62.mjs → chunk-6QQBMZQ6.mjs} +34 -43
  30. package/dist/{chunk-2XOFRGY6.js → chunk-6YBLWFP5.js} +34 -2
  31. package/dist/{chunk-VILZFNR7.js → chunk-7KNOOFRA.js} +70 -21
  32. package/dist/{chunk-ET5YJELZ.js → chunk-7P4MIU6I.js} +9 -8
  33. package/dist/{chunk-5CGXFQND.mjs → chunk-7Y5XUZJ4.mjs} +27 -11
  34. package/dist/{chunk-HU3VDVH6.js → chunk-A4PPPGJ5.js} +87 -60
  35. package/dist/{chunk-HCZA4LV6.mjs → chunk-A7DZX5X5.mjs} +2 -2
  36. package/dist/{chunk-VONFSF4S.mjs → chunk-AAI6EZZA.mjs} +19 -16
  37. package/dist/{chunk-KNBNE74O.js → chunk-ACQLSECT.js} +32 -4
  38. package/dist/{chunk-KQJYSG23.js → chunk-AIYOQ5MX.js} +8 -8
  39. package/dist/{chunk-EIMAQHCQ.mjs → chunk-AZDNGGV7.mjs} +14 -3
  40. package/dist/{chunk-67FVBKBC.js → chunk-B5TUTAVX.js} +72 -9
  41. package/dist/{chunk-2UQC3WOI.mjs → chunk-C745DPLU.mjs} +13 -4
  42. package/dist/chunk-CBWRSICK.mjs +929 -0
  43. package/dist/{chunk-N66WEQ6M.js → chunk-CBYJXDW4.js} +12 -13
  44. package/dist/{chunk-2EOXY2LP.mjs → chunk-CCDZLSOL.mjs} +70 -3
  45. package/dist/{chunk-4GV7UQJJ.js → chunk-CHPJPIW6.js} +26 -35
  46. package/dist/{chunk-ZD4BVRYG.mjs → chunk-CPQS3IFF.mjs} +1 -1
  47. package/dist/chunk-CVXDKGNX.mjs +312 -0
  48. package/dist/{chunk-YJ4W6DMX.mjs → chunk-D45GM4YH.mjs} +51 -29
  49. package/dist/{chunk-FXX3GD35.mjs → chunk-DAMJCFFS.mjs} +119 -15
  50. package/dist/{chunk-WK5QJO57.js → chunk-DBGPINKE.js} +74 -52
  51. package/dist/chunk-DKNVSQSV.mjs +64 -0
  52. package/dist/{chunk-CDT3P2ZN.js → chunk-DSLKTIPD.js} +20 -17
  53. package/dist/{chunk-4QJZT6QK.js → chunk-DUZM2SKR.js} +124 -99
  54. package/dist/{chunk-7BVXG3Z5.mjs → chunk-DVL53XDJ.mjs} +1 -1
  55. package/dist/{chunk-H3NLKNR4.mjs → chunk-DVUND2QM.mjs} +69 -46
  56. package/dist/{chunk-TMQA74FM.js → chunk-EF5ZTNHX.js} +34 -29
  57. package/dist/{chunk-RWZIWKZR.js → chunk-F7VY6ATM.js} +54 -32
  58. package/dist/{chunk-UBKOITHT.mjs → chunk-FQW26554.mjs} +30 -11
  59. package/dist/{chunk-DEQWHJLQ.mjs → chunk-FW3O54GP.mjs} +11 -7
  60. package/dist/chunk-G3PBQ4B4.mjs +60 -0
  61. package/dist/{chunk-HWWNBCFB.js → chunk-GAT4ZATZ.js} +17 -1
  62. package/dist/chunk-GDONQIOK.mjs +470 -0
  63. package/dist/{chunk-3KMKMAE3.mjs → chunk-GKJNQUTW.mjs} +20 -18
  64. package/dist/{chunk-TVJZB7ZC.js → chunk-GOGLPCUH.js} +122 -18
  65. package/dist/chunk-GOQ6ZG7H.mjs +56 -0
  66. package/dist/{chunk-BCNKTT5C.js → chunk-GRXBGL6Q.js} +18 -16
  67. package/dist/{chunk-XNMSECO4.mjs → chunk-GUHNLUZ3.mjs} +66 -16
  68. package/dist/{chunk-B3MNIAM5.mjs → chunk-GYQJJUJP.mjs} +29 -9
  69. package/dist/{chunk-IWP22YTF.js → chunk-HCKV7ONR.js} +3 -0
  70. package/dist/{chunk-I4SKKEU3.js → chunk-HR5GBE3P.js} +24 -27
  71. package/dist/{chunk-HUCBHFSL.mjs → chunk-HTXUF4RH.mjs} +6 -20
  72. package/dist/{chunk-EOYJLBFD.js → chunk-ITLA7OLQ.js} +6 -20
  73. package/dist/{chunk-INBSKSZG.mjs → chunk-ITVLIR7T.mjs} +57 -12
  74. package/dist/{chunk-FNDPGSEW.mjs → chunk-IXQAECFP.mjs} +87 -33
  75. package/dist/{chunk-34DLDOGP.mjs → chunk-IZTNHCIO.mjs} +5 -2
  76. package/dist/{chunk-73BP3WQN.mjs → chunk-J4OQ2VRH.mjs} +13 -31
  77. package/dist/{chunk-AJQPGAYL.js → chunk-JFOSDCCG.js} +5 -5
  78. package/dist/{chunk-6744DTEB.mjs → chunk-JSUDEK2D.mjs} +159 -140
  79. package/dist/{chunk-U3JOBIDU.js → chunk-K64M7IMP.js} +69 -2
  80. package/dist/{chunk-FPURO6QB.mjs → chunk-KGWPSVEQ.mjs} +5 -6
  81. package/dist/{chunk-OHIZYM65.mjs → chunk-KPACLRQH.mjs} +3 -6
  82. package/dist/chunk-KPRUZCKN.js +318 -0
  83. package/dist/{chunk-UE234MW4.mjs → chunk-KR3EVG7G.mjs} +4 -4
  84. package/dist/chunk-L5HVRTUO.js +935 -0
  85. package/dist/chunk-L6CL63GI.js +93 -0
  86. package/dist/{chunk-RNEL4XIO.js → chunk-LA3CJOWA.js} +13 -2
  87. package/dist/{chunk-EBLAM3YP.mjs → chunk-LE5VFMRR.mjs} +21 -12
  88. package/dist/{chunk-4QQZ5H4V.mjs → chunk-LQT6ZGME.mjs} +35 -30
  89. package/dist/{chunk-VAQDUVBP.mjs → chunk-LY2OTQ4E.mjs} +17 -1
  90. package/dist/{chunk-RRJTIKU6.mjs → chunk-M5GSLKUX.mjs} +13 -14
  91. package/dist/{chunk-TZNTHABR.js → chunk-M73NMNZX.js} +37 -6
  92. package/dist/{chunk-TKZO5UBH.js → chunk-MB3QU3US.js} +47 -2
  93. package/dist/{chunk-6E7FPBRR.mjs → chunk-ME5BLIFX.mjs} +73 -16
  94. package/dist/{chunk-ZDL3GE3Q.mjs → chunk-MO3V34YL.mjs} +67 -18
  95. package/dist/{chunk-H3JAEEEE.js → chunk-MOSVX52I.js} +72 -260
  96. package/dist/{chunk-2GKTVAAB.js → chunk-MPO7Y76D.js} +9 -3
  97. package/dist/{chunk-JLM4LBUS.js → chunk-MU6Z5DCI.js} +6 -3
  98. package/dist/{chunk-5MALB34H.js → chunk-MUUOE2NT.js} +31 -11
  99. package/dist/chunk-N2JYU4JI.js +62 -0
  100. package/dist/{chunk-C6WJ4GQW.js → chunk-NHBNPK5J.js} +40 -37
  101. package/dist/{chunk-JUWFVIDP.mjs → chunk-NQV2H4SC.mjs} +25 -6
  102. package/dist/{chunk-WAIXKROS.mjs → chunk-NSEO2B74.mjs} +12 -8
  103. package/dist/{chunk-2WBPUW75.mjs → chunk-O4JI4FC6.mjs} +39 -36
  104. package/dist/{chunk-SQ7OL2X5.mjs → chunk-OFTLPYYC.mjs} +30 -10
  105. package/dist/{chunk-JQK354YN.js → chunk-OFWK2B23.js} +234 -10
  106. package/dist/chunk-ONTRGV5T.js +159 -0
  107. package/dist/{chunk-IVGKPD2L.mjs → chunk-OPHYFC5W.mjs} +5 -5
  108. package/dist/{chunk-2LUDQBVY.mjs → chunk-OUARQFZ7.mjs} +4 -4
  109. package/dist/{chunk-DAR2BMMV.js → chunk-PFYK2V3E.js} +32 -41
  110. package/dist/{chunk-ZYPEO2KY.js → chunk-PGBKMW4Q.js} +30 -0
  111. package/dist/{chunk-DXXYPVJJ.js → chunk-PR5ZPB6J.js} +3 -3
  112. package/dist/{chunk-PNSWIJG3.mjs → chunk-PSYDHEXN.mjs} +36 -26
  113. package/dist/{chunk-CMGI5WHZ.js → chunk-PTWCIG3Y.js} +2 -2
  114. package/dist/{chunk-FHE4D56E.js → chunk-PVNHW3PY.js} +26 -9
  115. package/dist/{chunk-QLHFXYWA.mjs → chunk-QOEE2PW5.mjs} +73 -10
  116. package/dist/{chunk-AQ72JVUG.js → chunk-QQKP437L.js} +5 -5
  117. package/dist/{chunk-IOHPB4CF.js → chunk-QYJBMQ5P.js} +29 -10
  118. package/dist/{chunk-NZLOLMT2.mjs → chunk-RFB4M3WM.mjs} +50 -10
  119. package/dist/{chunk-TFPIRBHL.js → chunk-RLQITKTC.js} +26 -10
  120. package/dist/{chunk-7CAJK2ZK.mjs → chunk-RPSHILHD.mjs} +2 -2
  121. package/dist/{chunk-GX74TC62.js → chunk-RTHC4KWM.js} +2 -5
  122. package/dist/{chunk-65VXCN5N.js → chunk-SKMZTW3K.js} +56 -11
  123. package/dist/{chunk-VHWTMNQN.js → chunk-SO6POTSO.js} +10 -10
  124. package/dist/chunk-SQGFNVYT.js +222 -0
  125. package/dist/{chunk-RFPXIDAK.js → chunk-SR5OHSI7.js} +34 -24
  126. package/dist/{chunk-GBTKAKUD.mjs → chunk-SRNBEFJO.mjs} +24 -28
  127. package/dist/{chunk-SQK2CPSV.mjs → chunk-SXNHXUUF.mjs} +16 -5
  128. package/dist/{chunk-OE6WTZES.js → chunk-TLJD4GFY.js} +69 -19
  129. package/dist/{chunk-R5XY4EQL.js → chunk-TQOWIDQT.js} +8 -15
  130. package/dist/{chunk-IPLK4AIE.mjs → chunk-TR4DGL3U.mjs} +7 -6
  131. package/dist/{chunk-QAO5KANE.mjs → chunk-TULQETJ5.mjs} +4 -3
  132. package/dist/{chunk-4APNERYR.js → chunk-U356F7GU.js} +12 -30
  133. package/dist/{chunk-AGR3FM3V.js → chunk-UB6SHKPR.js} +8 -7
  134. package/dist/{chunk-Z6F67MJE.mjs → chunk-UBP7HZSU.mjs} +4 -3
  135. package/dist/{chunk-HZ5Z5Y2J.mjs → chunk-UJ5NMLZN.mjs} +13 -31
  136. package/dist/chunk-UKLVOR4E.js +67 -0
  137. package/dist/{chunk-CKFE2B36.js → chunk-ULODU52Q.js} +9 -19
  138. package/dist/{chunk-QQDKQLHJ.mjs → chunk-UPO4LLNK.mjs} +71 -49
  139. package/dist/chunk-V4JIZN3E.mjs +156 -0
  140. package/dist/{chunk-R3QWJ7GT.mjs → chunk-V5557VIB.mjs} +23 -6
  141. package/dist/{chunk-NG3GA5LF.js → chunk-VBBOH5HA.js} +2 -2
  142. package/dist/chunk-VBZE77VM.mjs +65 -0
  143. package/dist/{chunk-XLVEI7GS.js → chunk-VE3SYUMH.js} +3 -2
  144. package/dist/{chunk-SWF7GJYT.mjs → chunk-VHW7NWXM.mjs} +85 -58
  145. package/dist/{chunk-YHFBPSMF.js → chunk-VTOMFVSF.js} +72 -49
  146. package/dist/{chunk-QPGL4YEO.mjs → chunk-W7UGU2O6.mjs} +12 -24
  147. package/dist/{chunk-AYDTXJOR.mjs → chunk-WDRYAP7T.mjs} +18 -15
  148. package/dist/{chunk-AMOH5AMN.mjs → chunk-WFIQIBLC.mjs} +2 -2
  149. package/dist/{chunk-BR5OSUZT.mjs → chunk-WI4N5DD3.mjs} +38 -7
  150. package/dist/{chunk-TQEIMVJD.mjs → chunk-WK45IRP7.mjs} +28 -37
  151. package/dist/{chunk-HLJQZUIY.mjs → chunk-WNX4TH7U.mjs} +32 -4
  152. package/dist/{chunk-7MASYF4S.mjs → chunk-WT6CULN3.mjs} +12 -13
  153. package/dist/{chunk-6PBNFLM7.js → chunk-WV5XHYW6.js} +4 -3
  154. package/dist/{chunk-CQGAZ5JQ.js → chunk-X7WESYRG.js} +15 -4
  155. package/dist/{chunk-PUYT62KC.js → chunk-XAALCDGD.js} +5 -6
  156. package/dist/{chunk-YPHOVEVU.mjs → chunk-XATXFVKR.mjs} +8 -2
  157. package/dist/chunk-XHF3L4ET.mjs +132 -0
  158. package/dist/{chunk-QPOH6SOO.mjs → chunk-XISZACMA.mjs} +126 -101
  159. package/dist/{chunk-QYGBT4NL.js → chunk-XN43YK75.js} +16 -28
  160. package/dist/{chunk-H5MZ54PM.js → chunk-XPA2YCQO.js} +58 -49
  161. package/dist/{chunk-CHH7DWIO.js → chunk-XRNKHQTL.js} +7 -1
  162. package/dist/{chunk-WLIFEALE.mjs → chunk-XTSG362L.mjs} +29 -2
  163. package/dist/{chunk-KQZ4F7FZ.js → chunk-XTV5JLLC.js} +18 -4
  164. package/dist/{chunk-AHF6JE43.js → chunk-YACOKYDW.js} +21 -18
  165. package/dist/{chunk-4Q4GADHJ.js → chunk-YI6ORD3U.js} +40 -5
  166. package/dist/{chunk-ASALMHFI.js → chunk-YMKA4L3Z.js} +1 -6
  167. package/dist/{chunk-3JGOTJZM.js → chunk-YTLJPWXL.js} +4 -4
  168. package/dist/{chunk-XR6B2URW.js → chunk-Z52PUIAH.js} +22 -13
  169. package/dist/{chunk-AVUXDQYO.mjs → chunk-Z5B7VNEG.mjs} +10 -4
  170. package/dist/{chunk-3USEV7EV.js → chunk-ZDK4LEPB.js} +12 -13
  171. package/dist/chunk-ZDXIP33Y.js +58 -0
  172. package/dist/{chunk-XFJ5Q5PF.mjs → chunk-ZJWUBR2X.mjs} +2 -7
  173. package/dist/components/ActivityFeed.js +5 -4
  174. package/dist/components/ActivityFeed.mjs +3 -2
  175. package/dist/components/Affix.js +2 -2
  176. package/dist/components/Affix.mjs +1 -1
  177. package/dist/components/Anchor.d.mts +20 -1
  178. package/dist/components/Anchor.d.ts +20 -1
  179. package/dist/components/Anchor.js +8 -4
  180. package/dist/components/Anchor.mjs +1 -1
  181. package/dist/components/AnchorLink.d.mts +3 -23
  182. package/dist/components/AnchorLink.d.ts +3 -23
  183. package/dist/components/AnchorLink.js +3 -4
  184. package/dist/components/AnchorLink.mjs +1 -2
  185. package/dist/components/AreaChart.d.mts +2 -0
  186. package/dist/components/AreaChart.d.ts +2 -0
  187. package/dist/components/AreaChart.js +7 -7
  188. package/dist/components/AreaChart.mjs +5 -5
  189. package/dist/components/AutoComplete.js +2 -2
  190. package/dist/components/AutoComplete.mjs +1 -1
  191. package/dist/components/AvatarGroup.js +3 -3
  192. package/dist/components/AvatarGroup.mjs +1 -1
  193. package/dist/components/BackTop.js +3 -3
  194. package/dist/components/BackTop.mjs +1 -1
  195. package/dist/components/BarChart.js +7 -7
  196. package/dist/components/BarChart.mjs +5 -5
  197. package/dist/components/Breadcrumb.d.mts +18 -2
  198. package/dist/components/Breadcrumb.d.ts +18 -2
  199. package/dist/components/Breadcrumb.js +7 -3
  200. package/dist/components/Breadcrumb.mjs +1 -1
  201. package/dist/components/BreadcrumbItem.d.mts +3 -21
  202. package/dist/components/BreadcrumbItem.d.ts +3 -21
  203. package/dist/components/BreadcrumbItem.js +2 -3
  204. package/dist/components/BreadcrumbItem.mjs +1 -2
  205. package/dist/components/Button.js +2 -2
  206. package/dist/components/Button.mjs +1 -1
  207. package/dist/components/ButtonGroup.js +4 -4
  208. package/dist/components/ButtonGroup.mjs +1 -1
  209. package/dist/components/Carousel.js +2 -2
  210. package/dist/components/Carousel.mjs +1 -1
  211. package/dist/components/Cascader.js +2 -2
  212. package/dist/components/Cascader.mjs +1 -1
  213. package/dist/components/ChartCanvas.js +3 -3
  214. package/dist/components/ChartCanvas.mjs +1 -1
  215. package/dist/components/ChartLegend.js +3 -3
  216. package/dist/components/ChartLegend.mjs +1 -1
  217. package/dist/components/ChartTooltip.js +3 -3
  218. package/dist/components/ChartTooltip.mjs +1 -1
  219. package/dist/components/ChatWindow.js +5 -4
  220. package/dist/components/ChatWindow.mjs +3 -2
  221. package/dist/components/Code.js +3 -3
  222. package/dist/components/Code.mjs +1 -1
  223. package/dist/components/CodeEditor.d.mts +8 -1
  224. package/dist/components/CodeEditor.d.ts +8 -1
  225. package/dist/components/CodeEditor.js +3 -3
  226. package/dist/components/CodeEditor.mjs +1 -1
  227. package/dist/components/Col.js +3 -3
  228. package/dist/components/Col.mjs +2 -2
  229. package/dist/components/CollapsePanel.js +3 -3
  230. package/dist/components/CollapsePanel.mjs +1 -1
  231. package/dist/components/CommentThread.js +4 -4
  232. package/dist/components/CommentThread.mjs +2 -2
  233. package/dist/components/ConfigProvider.d.mts +3 -2
  234. package/dist/components/ConfigProvider.d.ts +3 -2
  235. package/dist/components/ConfigProvider.js +3 -3
  236. package/dist/components/ConfigProvider.mjs +1 -1
  237. package/dist/components/CropUpload.js +6 -6
  238. package/dist/components/CropUpload.mjs +5 -5
  239. package/dist/components/DataTableWithToolbar.d.mts +2 -7
  240. package/dist/components/DataTableWithToolbar.d.ts +2 -7
  241. package/dist/components/DataTableWithToolbar.js +6 -7
  242. package/dist/components/DataTableWithToolbar.mjs +4 -5
  243. package/dist/components/DatePicker.js +2 -2
  244. package/dist/components/DatePicker.mjs +1 -1
  245. package/dist/components/DonutChart.js +8 -8
  246. package/dist/components/DonutChart.mjs +6 -6
  247. package/dist/components/Drawer.js +3 -3
  248. package/dist/components/Drawer.mjs +2 -2
  249. package/dist/components/Dropdown.d.mts +10 -2
  250. package/dist/components/Dropdown.d.ts +10 -2
  251. package/dist/components/Dropdown.js +8 -5
  252. package/dist/components/Dropdown.mjs +2 -3
  253. package/dist/components/DropdownItem.js +4 -5
  254. package/dist/components/DropdownItem.mjs +3 -4
  255. package/dist/components/DropdownMenu.d.mts +3 -13
  256. package/dist/components/DropdownMenu.d.ts +3 -13
  257. package/dist/components/DropdownMenu.js +9 -2
  258. package/dist/components/DropdownMenu.mjs +2 -1
  259. package/dist/components/FileManager.js +3 -3
  260. package/dist/components/FileManager.mjs +1 -1
  261. package/dist/components/Form.d.mts +1 -0
  262. package/dist/components/Form.d.ts +1 -0
  263. package/dist/components/Form.js +3 -3
  264. package/dist/components/Form.mjs +1 -1
  265. package/dist/components/FormItem.js +3 -3
  266. package/dist/components/FormItem.mjs +2 -2
  267. package/dist/components/FormWizard.js +6 -6
  268. package/dist/components/FormWizard.mjs +4 -4
  269. package/dist/components/FunnelChart.js +6 -6
  270. package/dist/components/FunnelChart.mjs +5 -5
  271. package/dist/components/GaugeChart.js +3 -3
  272. package/dist/components/GaugeChart.mjs +2 -2
  273. package/dist/components/HeatmapChart.js +5 -5
  274. package/dist/components/HeatmapChart.mjs +4 -4
  275. package/dist/components/Image.js +5 -5
  276. package/dist/components/Image.mjs +4 -4
  277. package/dist/components/ImageCropper.js +2 -2
  278. package/dist/components/ImageCropper.mjs +1 -1
  279. package/dist/components/ImageGroup.js +5 -5
  280. package/dist/components/ImageGroup.mjs +3 -3
  281. package/dist/components/ImagePreview.js +3 -3
  282. package/dist/components/ImagePreview.mjs +2 -2
  283. package/dist/components/ImageViewer.js +2 -2
  284. package/dist/components/ImageViewer.mjs +1 -1
  285. package/dist/components/InfiniteScroll.js +3 -3
  286. package/dist/components/InfiniteScroll.mjs +1 -1
  287. package/dist/components/InputNumber.js +2 -2
  288. package/dist/components/InputNumber.mjs +1 -1
  289. package/dist/components/Kanban.js +5 -5
  290. package/dist/components/Kanban.mjs +3 -3
  291. package/dist/components/LineChart.js +7 -7
  292. package/dist/components/LineChart.mjs +5 -5
  293. package/dist/components/List.d.mts +22 -1
  294. package/dist/components/List.d.ts +22 -1
  295. package/dist/components/List.js +3 -2
  296. package/dist/components/List.mjs +2 -1
  297. package/dist/components/Loading.js +3 -2
  298. package/dist/components/Loading.mjs +2 -1
  299. package/dist/components/Mentions.js +3 -3
  300. package/dist/components/Mentions.mjs +1 -1
  301. package/dist/components/Menu.d.mts +43 -2
  302. package/dist/components/Menu.d.ts +43 -2
  303. package/dist/components/Menu.js +15 -3
  304. package/dist/components/Menu.mjs +1 -1
  305. package/dist/components/MenuItem.d.mts +3 -20
  306. package/dist/components/MenuItem.d.ts +3 -20
  307. package/dist/components/MenuItem.js +8 -3
  308. package/dist/components/MenuItem.mjs +1 -2
  309. package/dist/components/MenuItemGroup.d.mts +3 -16
  310. package/dist/components/MenuItemGroup.d.ts +3 -16
  311. package/dist/components/MenuItemGroup.js +8 -4
  312. package/dist/components/MenuItemGroup.mjs +1 -3
  313. package/dist/components/Modal.js +4 -4
  314. package/dist/components/Modal.mjs +3 -3
  315. package/dist/components/Notification.js +4 -4
  316. package/dist/components/Notification.mjs +1 -1
  317. package/dist/components/NotificationCenter.js +9 -7
  318. package/dist/components/NotificationCenter.mjs +7 -5
  319. package/dist/components/Pagination.d.mts +2 -2
  320. package/dist/components/Pagination.d.ts +2 -2
  321. package/dist/components/Pagination.js +3 -3
  322. package/dist/components/Pagination.mjs +1 -1
  323. package/dist/components/PieChart.js +7 -7
  324. package/dist/components/PieChart.mjs +5 -5
  325. package/dist/components/Popconfirm.js +4 -4
  326. package/dist/components/Popconfirm.mjs +3 -3
  327. package/dist/components/Popover.js +4 -4
  328. package/dist/components/Popover.mjs +3 -3
  329. package/dist/components/RadarChart.d.mts +3 -0
  330. package/dist/components/RadarChart.d.ts +3 -0
  331. package/dist/components/RadarChart.js +7 -7
  332. package/dist/components/RadarChart.mjs +5 -5
  333. package/dist/components/Resizable.js +3 -3
  334. package/dist/components/Resizable.mjs +1 -1
  335. package/dist/components/RichTextEditor.d.mts +10 -3
  336. package/dist/components/RichTextEditor.d.ts +10 -3
  337. package/dist/components/RichTextEditor.js +3 -3
  338. package/dist/components/RichTextEditor.mjs +1 -1
  339. package/dist/components/Row.js +3 -3
  340. package/dist/components/Row.mjs +1 -1
  341. package/dist/components/ScatterChart.js +7 -7
  342. package/dist/components/ScatterChart.mjs +5 -5
  343. package/dist/components/Segmented.js +2 -2
  344. package/dist/components/Segmented.mjs +1 -1
  345. package/dist/components/Select.js +2 -2
  346. package/dist/components/Select.mjs +1 -1
  347. package/dist/components/Splitter.js +3 -3
  348. package/dist/components/Splitter.mjs +1 -1
  349. package/dist/components/Statistic.js +2 -2
  350. package/dist/components/Statistic.mjs +1 -1
  351. package/dist/components/Stepper.js +2 -2
  352. package/dist/components/Stepper.mjs +1 -1
  353. package/dist/components/Steps.d.mts +32 -1
  354. package/dist/components/Steps.d.ts +32 -1
  355. package/dist/components/Steps.js +7 -3
  356. package/dist/components/Steps.mjs +1 -1
  357. package/dist/components/StepsItem.d.mts +3 -36
  358. package/dist/components/StepsItem.d.ts +3 -36
  359. package/dist/components/StepsItem.js +2 -2
  360. package/dist/components/StepsItem.mjs +1 -1
  361. package/dist/components/SubMenu.d.mts +3 -20
  362. package/dist/components/SubMenu.d.ts +3 -20
  363. package/dist/components/SubMenu.js +8 -5
  364. package/dist/components/SubMenu.mjs +1 -4
  365. package/dist/components/SunburstChart.js +6 -6
  366. package/dist/components/SunburstChart.mjs +5 -5
  367. package/dist/components/Switch.js +2 -2
  368. package/dist/components/Switch.mjs +1 -1
  369. package/dist/components/TabPane.d.mts +3 -57
  370. package/dist/components/TabPane.d.ts +3 -57
  371. package/dist/components/TabPane.js +2 -2
  372. package/dist/components/TabPane.mjs +1 -1
  373. package/dist/components/Table.d.mts +4 -59
  374. package/dist/components/Table.d.ts +4 -59
  375. package/dist/components/Table.js +2 -2
  376. package/dist/components/Table.mjs +1 -1
  377. package/dist/components/Tabs.d.mts +54 -1
  378. package/dist/components/Tabs.d.ts +54 -1
  379. package/dist/components/Tabs.js +7 -3
  380. package/dist/components/Tabs.mjs +1 -1
  381. package/dist/components/TaskBoard.js +4 -4
  382. package/dist/components/TaskBoard.mjs +2 -2
  383. package/dist/components/TimePicker.js +2 -2
  384. package/dist/components/TimePicker.mjs +1 -1
  385. package/dist/components/Tooltip.js +4 -4
  386. package/dist/components/Tooltip.mjs +3 -3
  387. package/dist/components/Transfer.js +2 -2
  388. package/dist/components/Transfer.mjs +1 -1
  389. package/dist/components/Tree.d.mts +19 -0
  390. package/dist/components/Tree.d.ts +19 -0
  391. package/dist/components/Tree.js +4 -3
  392. package/dist/components/Tree.mjs +2 -1
  393. package/dist/components/TreeMapChart.js +6 -6
  394. package/dist/components/TreeMapChart.mjs +5 -5
  395. package/dist/components/TreeSelect.js +2 -2
  396. package/dist/components/TreeSelect.mjs +1 -1
  397. package/dist/components/Upload.js +3 -3
  398. package/dist/components/Upload.mjs +2 -2
  399. package/dist/components/VirtualList.js +2 -2
  400. package/dist/components/VirtualList.mjs +1 -1
  401. package/dist/components/VirtualTable.js +3 -3
  402. package/dist/components/VirtualTable.mjs +1 -1
  403. package/dist/components/Watermark.js +2 -2
  404. package/dist/components/Watermark.mjs +1 -1
  405. package/dist/index.d.mts +32 -18
  406. package/dist/index.d.ts +32 -18
  407. package/dist/index.js +359 -210
  408. package/dist/index.mjs +243 -95
  409. package/dist/types-BT4oTXQ_.d.mts +31 -0
  410. package/dist/types-BT4oTXQ_.d.ts +31 -0
  411. package/package.json +13 -8
  412. package/dist/chunk-3NE6VZRY.js +0 -67
  413. package/dist/chunk-7YLVAZJQ.mjs +0 -47
  414. package/dist/chunk-A3PYG3D6.js +0 -107
  415. package/dist/chunk-B3LRUKXM.mjs +0 -65
  416. package/dist/chunk-B53R2U2R.mjs +0 -86
  417. package/dist/chunk-BKYE77F2.js +0 -171
  418. package/dist/chunk-CRSMECWE.mjs +0 -33
  419. package/dist/chunk-D5KYIQWB.mjs +0 -105
  420. package/dist/chunk-DUWAV47E.js +0 -42
  421. package/dist/chunk-DZGDCRBH.mjs +0 -30
  422. package/dist/chunk-EQWQXURG.js +0 -18
  423. package/dist/chunk-F6KHZNRS.js +0 -32
  424. package/dist/chunk-GJEWBALW.js +0 -38
  425. package/dist/chunk-GOUMB34F.mjs +0 -168
  426. package/dist/chunk-H36CWHUP.mjs +0 -30
  427. package/dist/chunk-HZHFFVP7.mjs +0 -63
  428. package/dist/chunk-IBYIPXIO.js +0 -88
  429. package/dist/chunk-IS467WAO.mjs +0 -39
  430. package/dist/chunk-MB7CJ32C.mjs +0 -878
  431. package/dist/chunk-OFBK35TK.mjs +0 -32
  432. package/dist/chunk-OWUGXP6K.js +0 -37
  433. package/dist/chunk-QBZODEIG.js +0 -49
  434. package/dist/chunk-R5P72RIT.js +0 -180
  435. package/dist/chunk-RARHRSPQ.js +0 -72
  436. package/dist/chunk-SIVJX7VU.mjs +0 -16
  437. package/dist/chunk-SMC2RV3V.mjs +0 -250
  438. package/dist/chunk-T5FAKJ6C.mjs +0 -49
  439. package/dist/chunk-XID6T65A.js +0 -163
  440. package/dist/chunk-XO6NSGV3.js +0 -884
  441. package/dist/chunk-Y3NDP56G.mjs +0 -174
  442. package/dist/chunk-Z6CRXABX.js +0 -88
  443. package/dist/chunk-ZIUOENTL.mjs +0 -85
@@ -0,0 +1,470 @@
1
+ import React, { createContext, useContext, useRef, useState, useCallback, useMemo, useEffect, useLayoutEffect } from 'react';
2
+ import { replaceKeys, toggleKey, classNames, getMenuClasses, initRovingTabIndex, isKeySelected, getMenuItemClasses, getMenuItemIndent, moveFocusInMenu, focusMenuEdge, menuItemGroupTitleClasses, isKeyOpen, createSubmenuHeightTransitionController, getSubMenuTitleClasses, submenuContentHorizontalClasses, submenuContentHorizontalNestedClasses, submenuContentPopupClasses, submenuContentInlineClasses, submenuContentVerticalClasses, focusFirstChildItem, menuItemIconClasses, getSubmenuPopupZIndex, getInitialSubmenuHeightTransitionStyle, submenuHeightTransitionClasses, getSubMenuExpandIconClasses } from '@expcat/tigercat-core';
3
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
+
5
+ // src/components/Menu.tsx
6
+ var MenuContext = createContext(null);
7
+ function useMenuContext() {
8
+ return useContext(MenuContext);
9
+ }
10
+ var Menu = ({
11
+ mode = "vertical",
12
+ theme = "light",
13
+ selectedKeys: controlledSelectedKeys,
14
+ defaultSelectedKeys = [],
15
+ openKeys: controlledOpenKeys,
16
+ defaultOpenKeys = [],
17
+ collapsed = false,
18
+ multiple = true,
19
+ inlineIndent = 24,
20
+ className,
21
+ style,
22
+ onSelect,
23
+ onOpenChange,
24
+ children
25
+ }) => {
26
+ const menuRef = useRef(null);
27
+ const [internalSelectedKeys, setInternalSelectedKeys] = useState(defaultSelectedKeys);
28
+ const [internalOpenKeys, setInternalOpenKeys] = useState(defaultOpenKeys);
29
+ const selectedKeys = controlledSelectedKeys !== void 0 ? controlledSelectedKeys : internalSelectedKeys;
30
+ const openKeys = controlledOpenKeys !== void 0 ? controlledOpenKeys : internalOpenKeys;
31
+ const handleSelect = useCallback(
32
+ (key) => {
33
+ const newSelectedKeys = replaceKeys(key, selectedKeys);
34
+ if (controlledSelectedKeys === void 0) {
35
+ setInternalSelectedKeys(newSelectedKeys);
36
+ }
37
+ onSelect?.(key, { selectedKeys: newSelectedKeys });
38
+ },
39
+ [controlledSelectedKeys, selectedKeys, onSelect]
40
+ );
41
+ const handleOpenChange = useCallback(
42
+ (key) => {
43
+ const toggled = toggleKey(key, openKeys);
44
+ const newOpenKeys = multiple ? toggled : toggled.includes(key) ? [key] : [];
45
+ if (controlledOpenKeys === void 0) {
46
+ setInternalOpenKeys(newOpenKeys);
47
+ }
48
+ onOpenChange?.(key, { openKeys: newOpenKeys });
49
+ },
50
+ [openKeys, multiple, controlledOpenKeys, onOpenChange]
51
+ );
52
+ const menuClasses = useMemo(() => {
53
+ return classNames(getMenuClasses(mode, theme, collapsed), className);
54
+ }, [mode, theme, collapsed, className]);
55
+ const contextValue = useMemo(
56
+ () => ({
57
+ mode,
58
+ theme,
59
+ collapsed,
60
+ inlineIndent,
61
+ selectedKeys,
62
+ openKeys,
63
+ handleSelect,
64
+ handleOpenChange
65
+ }),
66
+ [mode, theme, collapsed, inlineIndent, selectedKeys, openKeys, handleSelect, handleOpenChange]
67
+ );
68
+ useEffect(() => {
69
+ if (menuRef.current) initRovingTabIndex(menuRef.current);
70
+ }, [mode, collapsed, selectedKeys, openKeys]);
71
+ return /* @__PURE__ */ jsx(MenuContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
72
+ "ul",
73
+ {
74
+ ref: menuRef,
75
+ className: menuClasses,
76
+ style,
77
+ role: "menu",
78
+ "data-tiger-menu-root": "true",
79
+ "data-tiger-menu-mode": mode,
80
+ children
81
+ }
82
+ ) });
83
+ };
84
+ var MenuItem = ({
85
+ itemKey,
86
+ disabled = false,
87
+ icon,
88
+ className,
89
+ children,
90
+ level = 0,
91
+ collapsed: collapsedOverride
92
+ }) => {
93
+ const menuContext = useMenuContext();
94
+ if (!menuContext) {
95
+ console.warn("MenuItem must be used within Menu component");
96
+ }
97
+ const isSelected = !!menuContext && isKeySelected(itemKey, menuContext.selectedKeys);
98
+ const effectiveCollapsed = collapsedOverride ?? (menuContext ? menuContext.collapsed : false);
99
+ const itemClasses = classNames(
100
+ menuContext ? getMenuItemClasses(isSelected, disabled, menuContext.theme, effectiveCollapsed) : "flex items-center px-4 py-2 cursor-pointer transition-colors duration-200",
101
+ className
102
+ );
103
+ const indentStyle = menuContext && menuContext.mode === "inline" && level > 0 ? getMenuItemIndent(level, menuContext.inlineIndent) : {};
104
+ const handleClick = useCallback(() => {
105
+ if (!disabled && menuContext) {
106
+ menuContext.handleSelect(itemKey);
107
+ }
108
+ }, [disabled, menuContext, itemKey]);
109
+ const handleKeyDown = useCallback(
110
+ (event) => {
111
+ if (!menuContext) return;
112
+ const current = event.currentTarget;
113
+ const rootMenu = current.closest('ul[role="menu"]');
114
+ const isRoot = rootMenu?.dataset.tigerMenuRoot === "true";
115
+ const isHorizontalRoot = isRoot && menuContext.mode === "horizontal";
116
+ const nextKey = isHorizontalRoot ? "ArrowRight" : "ArrowDown";
117
+ const prevKey = isHorizontalRoot ? "ArrowLeft" : "ArrowUp";
118
+ if (event.key === nextKey) {
119
+ event.preventDefault();
120
+ moveFocusInMenu(current, 1);
121
+ return;
122
+ }
123
+ if (event.key === prevKey) {
124
+ event.preventDefault();
125
+ moveFocusInMenu(current, -1);
126
+ return;
127
+ }
128
+ if (event.key === "Home") {
129
+ event.preventDefault();
130
+ focusMenuEdge(current, "start");
131
+ return;
132
+ }
133
+ if (event.key === "End") {
134
+ event.preventDefault();
135
+ focusMenuEdge(current, "end");
136
+ return;
137
+ }
138
+ if (event.key === "Enter" || event.key === " ") {
139
+ event.preventDefault();
140
+ handleClick();
141
+ }
142
+ },
143
+ [menuContext, handleClick]
144
+ );
145
+ const renderIcon = () => {
146
+ if (!icon) return null;
147
+ if (typeof icon === "string") {
148
+ return /* @__PURE__ */ jsx("span", { className: menuItemIconClasses, dangerouslySetInnerHTML: { __html: icon } });
149
+ }
150
+ return /* @__PURE__ */ jsx("span", { className: menuItemIconClasses, children: icon });
151
+ };
152
+ const renderLabel = () => {
153
+ if (!effectiveCollapsed) return /* @__PURE__ */ jsx("span", { className: "flex-1", children });
154
+ if (!icon) {
155
+ const text = String(children || "");
156
+ return /* @__PURE__ */ jsx("span", { className: "flex-1 text-center", children: text.charAt(0).toUpperCase() });
157
+ }
158
+ return null;
159
+ };
160
+ return /* @__PURE__ */ jsx("li", { role: "none", children: /* @__PURE__ */ jsxs(
161
+ "button",
162
+ {
163
+ type: "button",
164
+ className: itemClasses,
165
+ style: indentStyle,
166
+ role: "menuitem",
167
+ "data-tiger-menuitem": "true",
168
+ "data-tiger-selected": isSelected ? "true" : "false",
169
+ "aria-current": isSelected ? "page" : void 0,
170
+ "aria-disabled": disabled ? "true" : void 0,
171
+ disabled,
172
+ tabIndex: -1,
173
+ onClick: handleClick,
174
+ onKeyDown: handleKeyDown,
175
+ children: [
176
+ renderIcon(),
177
+ renderLabel()
178
+ ]
179
+ }
180
+ ) });
181
+ };
182
+ function isComponentNamed(elementType, name) {
183
+ if (typeof elementType !== "function" && typeof elementType !== "object") return false;
184
+ const maybeFn = elementType;
185
+ return maybeFn.displayName === name || maybeFn.name === name;
186
+ }
187
+ var MenuItemGroup = ({
188
+ title,
189
+ className,
190
+ children,
191
+ level = 0
192
+ }) => {
193
+ const enhancedChildren = React.Children.map(children, (child) => {
194
+ if (!React.isValidElement(child)) return child;
195
+ if (child.type === MenuItem || isComponentNamed(child.type, "SubMenu")) {
196
+ return React.cloneElement(child, {
197
+ level
198
+ });
199
+ }
200
+ return child;
201
+ });
202
+ return /* @__PURE__ */ jsxs("li", { className: "list-none", children: [
203
+ title && /* @__PURE__ */ jsx("div", { className: menuItemGroupTitleClasses, children: title }),
204
+ /* @__PURE__ */ jsx("ul", { role: "group", className, children: enhancedChildren })
205
+ ] });
206
+ };
207
+ var ExpandIcon = ({ expanded }) => /* @__PURE__ */ jsx(
208
+ "svg",
209
+ {
210
+ className: getSubMenuExpandIconClasses(expanded),
211
+ width: "12",
212
+ height: "12",
213
+ viewBox: "0 0 12 12",
214
+ fill: "currentColor",
215
+ children: /* @__PURE__ */ jsx("path", { d: "M6 9L1.5 4.5L2.205 3.795L6 7.59L9.795 3.795L10.5 4.5L6 9Z" })
216
+ }
217
+ );
218
+ var SubMenu = ({
219
+ itemKey,
220
+ title = "",
221
+ icon,
222
+ disabled = false,
223
+ className,
224
+ level = 0,
225
+ children,
226
+ collapsed: collapsedOverride
227
+ }) => {
228
+ const menuContext = useMenuContext();
229
+ if (!menuContext) {
230
+ console.warn("SubMenu must be used within Menu component");
231
+ }
232
+ const [isHovered, setIsHovered] = useState(false);
233
+ const [isOpenByKeyboard, setIsOpenByKeyboard] = useState(false);
234
+ const submenuContentRef = useRef(null);
235
+ const heightTransitionRef = useRef(null);
236
+ const effectiveCollapsed = collapsedOverride ?? (menuContext ? menuContext.collapsed : false);
237
+ const isPopup = !!menuContext && (menuContext.mode === "horizontal" || menuContext.mode === "vertical" && effectiveCollapsed);
238
+ const isOpen = !!menuContext && isKeyOpen(itemKey, menuContext.openKeys);
239
+ const isExpanded = isPopup ? isHovered || isOpenByKeyboard : isOpen;
240
+ const isInlineOrVertical = menuContext?.mode !== "horizontal" && !isPopup;
241
+ const [hasRenderedInline, setHasRenderedInline] = useState(
242
+ () => isInlineOrVertical ? isExpanded : false
243
+ );
244
+ useEffect(() => {
245
+ if (!isInlineOrVertical || !isExpanded || hasRenderedInline) return;
246
+ setHasRenderedInline(true);
247
+ }, [hasRenderedInline, isExpanded, isInlineOrVertical]);
248
+ const disposeHeightTransition = useCallback(() => {
249
+ heightTransitionRef.current?.dispose();
250
+ heightTransitionRef.current = null;
251
+ }, []);
252
+ useEffect(() => disposeHeightTransition, [disposeHeightTransition]);
253
+ useLayoutEffect(() => {
254
+ if (!isInlineOrVertical || !hasRenderedInline || !submenuContentRef.current) {
255
+ disposeHeightTransition();
256
+ return;
257
+ }
258
+ if (!heightTransitionRef.current) {
259
+ heightTransitionRef.current = createSubmenuHeightTransitionController(
260
+ submenuContentRef.current,
261
+ { expanded: isExpanded }
262
+ );
263
+ return;
264
+ }
265
+ heightTransitionRef.current.update(isExpanded);
266
+ }, [disposeHeightTransition, hasRenderedInline, isExpanded, isInlineOrVertical]);
267
+ const titleClasses = useMemo(() => {
268
+ if (!menuContext) return "";
269
+ return classNames(getSubMenuTitleClasses(menuContext.theme, disabled), className);
270
+ }, [menuContext, disabled, className]);
271
+ const contentClasses = useMemo(() => {
272
+ if (!menuContext) return "";
273
+ if (menuContext.mode === "horizontal") {
274
+ return level === 0 ? submenuContentHorizontalClasses : submenuContentHorizontalNestedClasses;
275
+ }
276
+ if (isPopup) return submenuContentPopupClasses;
277
+ if (menuContext.mode === "inline") return submenuContentInlineClasses;
278
+ return submenuContentVerticalClasses;
279
+ }, [menuContext, isPopup, level]);
280
+ const handleTitleClick = useCallback(() => {
281
+ if (!menuContext || disabled) return;
282
+ if (menuContext.mode === "horizontal") return;
283
+ if (isPopup) {
284
+ setIsOpenByKeyboard((prev) => !prev);
285
+ setIsHovered(true);
286
+ return;
287
+ }
288
+ setHasRenderedInline(true);
289
+ menuContext.handleOpenChange(itemKey);
290
+ }, [disabled, menuContext, itemKey, isPopup]);
291
+ const handleMouseEnter = useCallback(() => {
292
+ if (menuContext?.mode === "horizontal" || isPopup) setIsHovered(true);
293
+ }, [menuContext, isPopup]);
294
+ const handleMouseLeave = useCallback(() => {
295
+ if (menuContext?.mode === "horizontal" || isPopup) {
296
+ setIsHovered(false);
297
+ setIsOpenByKeyboard(false);
298
+ }
299
+ }, [menuContext, isPopup]);
300
+ const openInline = useCallback(
301
+ (titleEl) => {
302
+ if (!menuContext) return;
303
+ setHasRenderedInline(true);
304
+ menuContext.handleOpenChange(itemKey);
305
+ setTimeout(() => focusFirstChildItem(titleEl), 0);
306
+ },
307
+ [menuContext, itemKey]
308
+ );
309
+ const handleTitleKeyDown = useCallback(
310
+ (event) => {
311
+ if (!menuContext || disabled) return;
312
+ const current = event.currentTarget;
313
+ const rootMenu = current.closest('ul[role="menu"]');
314
+ const isRoot = rootMenu?.dataset.tigerMenuRoot === "true";
315
+ const isHorizontalRoot = isRoot && menuContext.mode === "horizontal";
316
+ const nextKey = isHorizontalRoot ? "ArrowRight" : "ArrowDown";
317
+ const prevKey = isHorizontalRoot ? "ArrowLeft" : "ArrowUp";
318
+ if (event.key === nextKey) {
319
+ event.preventDefault();
320
+ moveFocusInMenu(current, 1);
321
+ return;
322
+ }
323
+ if (event.key === prevKey) {
324
+ event.preventDefault();
325
+ moveFocusInMenu(current, -1);
326
+ return;
327
+ }
328
+ if (event.key === "Home") {
329
+ event.preventDefault();
330
+ focusMenuEdge(current, "start");
331
+ return;
332
+ }
333
+ if (event.key === "End") {
334
+ event.preventDefault();
335
+ focusMenuEdge(current, "end");
336
+ return;
337
+ }
338
+ if (event.key === "Escape" || event.key === "ArrowLeft") {
339
+ if (menuContext.mode === "horizontal" || isPopup) {
340
+ event.preventDefault();
341
+ setIsOpenByKeyboard(false);
342
+ setIsHovered(false);
343
+ return;
344
+ }
345
+ if (isOpen) {
346
+ event.preventDefault();
347
+ menuContext.handleOpenChange(itemKey);
348
+ }
349
+ return;
350
+ }
351
+ if (event.key === "Enter" || event.key === " ") {
352
+ event.preventDefault();
353
+ if (menuContext.mode === "horizontal" || isPopup) {
354
+ setIsOpenByKeyboard(true);
355
+ return;
356
+ }
357
+ openInline(current);
358
+ return;
359
+ }
360
+ if (event.key === "ArrowRight" || event.key === "ArrowDown") {
361
+ if (menuContext.mode === "horizontal" || isPopup) {
362
+ event.preventDefault();
363
+ setIsOpenByKeyboard(true);
364
+ return;
365
+ }
366
+ if (!isOpen) {
367
+ event.preventDefault();
368
+ openInline(current);
369
+ }
370
+ }
371
+ },
372
+ [menuContext, disabled, isOpen, isPopup, openInline]
373
+ );
374
+ const indentStyle = !menuContext || menuContext.mode === "horizontal" || level === 0 ? {} : getMenuItemIndent(level, menuContext.inlineIndent);
375
+ if (!menuContext) return null;
376
+ const renderIcon = () => {
377
+ if (!icon) return null;
378
+ if (typeof icon === "string") {
379
+ return /* @__PURE__ */ jsx("span", { className: menuItemIconClasses, dangerouslySetInnerHTML: { __html: icon } });
380
+ }
381
+ return /* @__PURE__ */ jsx("span", { className: menuItemIconClasses, children: icon });
382
+ };
383
+ const renderTitle = () => {
384
+ if (!effectiveCollapsed) {
385
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
386
+ renderIcon(),
387
+ /* @__PURE__ */ jsx("span", { className: "flex-1", children: title }),
388
+ menuContext.mode !== "horizontal" && !isPopup && /* @__PURE__ */ jsx(ExpandIcon, { expanded: isExpanded })
389
+ ] });
390
+ } else if (!icon) {
391
+ return /* @__PURE__ */ jsx("span", { className: "flex-1 text-center", children: title.charAt(0).toUpperCase() });
392
+ } else {
393
+ return renderIcon();
394
+ }
395
+ };
396
+ const renderContent = () => {
397
+ const nextLevel = level + 1;
398
+ const enhancedChildren = React.Children.map(children, (child) => {
399
+ if (!React.isValidElement(child)) return child;
400
+ if (child.type === MenuItem || child.type === SubMenu || child.type === MenuItemGroup) {
401
+ return React.cloneElement(
402
+ child,
403
+ {
404
+ level: nextLevel
405
+ }
406
+ );
407
+ }
408
+ return child;
409
+ });
410
+ const popupZIndex = isPopup ? getSubmenuPopupZIndex(level) : {};
411
+ if (isPopup) {
412
+ return /* @__PURE__ */ jsx(
413
+ "ul",
414
+ {
415
+ className: contentClasses,
416
+ style: { display: isExpanded ? "block" : "none", ...popupZIndex },
417
+ role: "menu",
418
+ "aria-hidden": isExpanded ? void 0 : "true",
419
+ children: enhancedChildren
420
+ }
421
+ );
422
+ }
423
+ if (!hasRenderedInline) return null;
424
+ const isHidden = !isExpanded;
425
+ return /* @__PURE__ */ jsx(
426
+ "div",
427
+ {
428
+ ref: submenuContentRef,
429
+ className: submenuHeightTransitionClasses,
430
+ style: heightTransitionRef.current ? void 0 : getInitialSubmenuHeightTransitionStyle(isExpanded),
431
+ "aria-hidden": isHidden ? "true" : void 0,
432
+ "data-tiger-menu-hidden": isHidden ? "true" : void 0,
433
+ "data-tiger-submenu-motion": "height",
434
+ children: /* @__PURE__ */ jsx("ul", { className: contentClasses, role: "menu", children: enhancedChildren })
435
+ }
436
+ );
437
+ };
438
+ return /* @__PURE__ */ jsxs(
439
+ "li",
440
+ {
441
+ className: isPopup ? "relative" : "",
442
+ onMouseEnter: handleMouseEnter,
443
+ onMouseLeave: handleMouseLeave,
444
+ role: "none",
445
+ children: [
446
+ /* @__PURE__ */ jsx(
447
+ "button",
448
+ {
449
+ type: "button",
450
+ className: titleClasses,
451
+ style: indentStyle,
452
+ onClick: handleTitleClick,
453
+ onKeyDown: handleTitleKeyDown,
454
+ role: "menuitem",
455
+ "data-tiger-menuitem": "true",
456
+ "aria-expanded": isExpanded ? "true" : "false",
457
+ "aria-haspopup": "true",
458
+ "aria-disabled": disabled ? "true" : void 0,
459
+ disabled,
460
+ tabIndex: -1,
461
+ children: renderTitle()
462
+ }
463
+ ),
464
+ renderContent()
465
+ ]
466
+ }
467
+ );
468
+ };
469
+
470
+ export { Menu, MenuItem, MenuItemGroup, SubMenu, useMenuContext };
@@ -1,23 +1,25 @@
1
1
  import React, { useMemo } from 'react';
2
- import { getSpinnerSVG, buttonDangerClasses, getButtonVariantClasses, classNames, buttonBaseClasses, buttonSizeClasses, buttonDisabledClasses } from '@expcat/tigercat-core';
3
- import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { buttonDangerClasses, getButtonVariantClasses, classNames, buttonBaseClasses, buttonSizeClasses, buttonDisabledClasses, getSpinnerSVG } from '@expcat/tigercat-core';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
4
 
5
5
  // src/components/Button.tsx
6
- var spinnerSvg = getSpinnerSVG("spinner");
7
- var DefaultSpinner = /* @__PURE__ */ jsx(
8
- "svg",
9
- {
10
- className: "animate-spin h-4 w-4",
11
- xmlns: "http://www.w3.org/2000/svg",
12
- fill: "none",
13
- viewBox: spinnerSvg.viewBox,
14
- "aria-hidden": "true",
15
- focusable: "false",
16
- children: spinnerSvg.elements.map(
17
- (el, index) => React.createElement(el.type, { key: index, ...el.attrs })
18
- )
19
- }
20
- );
6
+ var createDefaultSpinner = () => {
7
+ const spinnerSvg = getSpinnerSVG("spinner");
8
+ return /* @__PURE__ */ jsx(
9
+ "svg",
10
+ {
11
+ className: "animate-spin h-4 w-4",
12
+ xmlns: "http://www.w3.org/2000/svg",
13
+ fill: "none",
14
+ viewBox: spinnerSvg.viewBox,
15
+ "aria-hidden": "true",
16
+ focusable: "false",
17
+ children: spinnerSvg.elements.map(
18
+ (el, index) => React.createElement(el.type, { key: index, ...el.attrs })
19
+ )
20
+ }
21
+ );
22
+ };
21
23
  var Button = ({
22
24
  variant = "primary",
23
25
  size = "md",
@@ -62,7 +64,7 @@ var Button = ({
62
64
  onClick: isDisabled ? void 0 : onClick,
63
65
  type: htmlType,
64
66
  children: [
65
- loading && /* @__PURE__ */ jsx("span", { className: iconIsRight ? "ml-2 order-1" : "mr-2", children: loadingIcon ?? DefaultSpinner }),
67
+ loading && /* @__PURE__ */ jsx("span", { className: iconIsRight ? "ml-2 order-1" : "mr-2", children: loadingIcon ?? createDefaultSpinner() }),
66
68
  !loading && icon && /* @__PURE__ */ jsx("span", { className: iconIsRight ? "ml-2 order-1" : "mr-2", children: icon }),
67
69
  children
68
70
  ]