@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
@@ -1,878 +0,0 @@
1
- import React, { useState, useEffect, useMemo, useCallback } from 'react';
2
- import { getSpinnerSVG, getFixedColumnOffsets, filterDataAdvanced, filterData, sortData, paginateData, getRowKey, calculatePagination, exportTableToCsv, downloadCsv, groupDataByColumn, getExpandIconCellClasses, getTableHeaderClasses, getCheckboxCellClasses, classNames, getTableHeaderCellClasses, tableEmptyStateClasses, tableGroupHeaderClasses, getGroupHeaderCellClasses, getSimplePaginationContainerClasses, getSimplePaginationTotalClasses, getSimplePaginationControlsClasses, getSimplePaginationSelectClasses, getSimplePaginationButtonsWrapperClasses, getSimplePaginationButtonClasses, getSimplePaginationPageIndicatorClasses, tableSummaryRowClasses, getTableCellClasses, getTableWrapperClasses, tableExportButtonClasses, tableBaseClasses, tableLoadingOverlayClasses, editableCellInputClasses, getEditableCellClasses, getTableRowClasses, getExpandedRowClasses, getExpandedRowContentClasses, icon24ViewBox, lockClosedIcon24PathD, lockOpenIcon24PathD, icon16ViewBox, getSortIconClasses, sortAscIcon16PathD, sortDescIcon16PathD, sortBothIcon16PathD, getLoadingOverlaySpinnerClasses, getExpandIconClasses, expandChevronIcon16PathD } from '@expcat/tigercat-core';
3
- import { jsx, jsxs } from 'react/jsx-runtime';
4
-
5
- // src/components/Table.tsx
6
- var spinnerSvg = getSpinnerSVG("spinner");
7
- var SortIcon = ({ direction }) => {
8
- const active = direction !== null;
9
- const pathD = direction === "asc" ? sortAscIcon16PathD : direction === "desc" ? sortDescIcon16PathD : sortBothIcon16PathD;
10
- return /* @__PURE__ */ jsx(
11
- "svg",
12
- {
13
- className: getSortIconClasses(active),
14
- width: "16",
15
- height: "16",
16
- viewBox: icon16ViewBox,
17
- fill: "currentColor",
18
- children: /* @__PURE__ */ jsx("path", { d: pathD })
19
- }
20
- );
21
- };
22
- var LockIcon = ({ locked }) => {
23
- return /* @__PURE__ */ jsx("svg", { width: "14", height: "14", viewBox: icon24ViewBox, fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: locked ? lockClosedIcon24PathD : lockOpenIcon24PathD }) });
24
- };
25
- var ExpandIcon = ({ expanded }) => {
26
- return /* @__PURE__ */ jsx(
27
- "svg",
28
- {
29
- className: getExpandIconClasses(expanded),
30
- width: "16",
31
- height: "16",
32
- viewBox: icon16ViewBox,
33
- fill: "currentColor",
34
- "aria-hidden": "true",
35
- children: /* @__PURE__ */ jsx("path", { d: expandChevronIcon16PathD })
36
- }
37
- );
38
- };
39
- var LoadingSpinner = () => /* @__PURE__ */ jsx(
40
- "svg",
41
- {
42
- className: getLoadingOverlaySpinnerClasses(),
43
- xmlns: "http://www.w3.org/2000/svg",
44
- fill: "none",
45
- viewBox: spinnerSvg.viewBox,
46
- children: spinnerSvg.elements.map((el, index) => {
47
- if (el.type === "circle") return /* @__PURE__ */ jsx("circle", { ...el.attrs }, index);
48
- if (el.type === "path") return /* @__PURE__ */ jsx("path", { ...el.attrs }, index);
49
- return null;
50
- })
51
- }
52
- );
53
- function Table({
54
- columns,
55
- columnLockable = false,
56
- dataSource = [],
57
- sort,
58
- defaultSort,
59
- filters,
60
- defaultFilters,
61
- size = "md",
62
- bordered = false,
63
- striped = false,
64
- hoverable = true,
65
- loading = false,
66
- emptyText = "No data",
67
- pagination = {
68
- current: 1,
69
- pageSize: 10,
70
- total: 0,
71
- pageSizeOptions: [10, 20, 50, 100],
72
- showSizeChanger: true,
73
- showTotal: true
74
- },
75
- rowSelection,
76
- expandable,
77
- rowKey = "id",
78
- rowClassName,
79
- stickyHeader = false,
80
- maxHeight,
81
- tableLayout = "auto",
82
- // v0.6.0 props
83
- virtual = false,
84
- virtualHeight = 400,
85
- virtualItemHeight: _virtualItemHeight = 40,
86
- editable = false,
87
- editableCells,
88
- filterMode = "basic",
89
- advancedFilterRules = [],
90
- columnDraggable = false,
91
- summaryRow,
92
- groupBy,
93
- exportable = false,
94
- exportFilename = "export",
95
- onChange,
96
- onRowClick,
97
- onSelectionChange,
98
- onSortChange,
99
- onFilterChange,
100
- onPageChange,
101
- onExpandChange,
102
- onCellChange,
103
- onColumnOrderChange,
104
- onExport,
105
- className,
106
- ...props
107
- }) {
108
- const isSortControlled = sort !== void 0;
109
- const isFiltersControlled = filters !== void 0;
110
- const paginationConfig = pagination !== false && typeof pagination === "object" ? pagination : null;
111
- const isCurrentPageControlled = paginationConfig?.current !== void 0;
112
- const isPageSizeControlled = paginationConfig?.pageSize !== void 0;
113
- const isSelectionControlled = rowSelection?.selectedRowKeys !== void 0 && Array.isArray(rowSelection.selectedRowKeys);
114
- const isExpandControlled = expandable?.expandedRowKeys !== void 0 && Array.isArray(expandable.expandedRowKeys);
115
- const [uncontrolledSortState, setUncontrolledSortState] = useState(
116
- defaultSort ?? { key: null, direction: null }
117
- );
118
- const [uncontrolledFilterState, setUncontrolledFilterState] = useState(
119
- defaultFilters ?? {}
120
- );
121
- const [uncontrolledCurrentPage, setUncontrolledCurrentPage] = useState(
122
- () => paginationConfig?.defaultCurrent ?? paginationConfig?.current ?? 1
123
- );
124
- const [uncontrolledCurrentPageSize, setUncontrolledCurrentPageSize] = useState(
125
- () => paginationConfig?.defaultPageSize ?? paginationConfig?.pageSize ?? 10
126
- );
127
- const [uncontrolledSelectedRowKeys, setUncontrolledSelectedRowKeys] = useState(rowSelection?.defaultSelectedRowKeys ?? rowSelection?.selectedRowKeys ?? []);
128
- const [uncontrolledExpandedRowKeys, setUncontrolledExpandedRowKeys] = useState(expandable?.defaultExpandedRowKeys ?? expandable?.expandedRowKeys ?? []);
129
- const sortState = isSortControlled ? sort : uncontrolledSortState;
130
- const filterState = isFiltersControlled ? filters : uncontrolledFilterState;
131
- const currentPage = isCurrentPageControlled ? paginationConfig.current : uncontrolledCurrentPage;
132
- const currentPageSize = isPageSizeControlled ? paginationConfig.pageSize : uncontrolledCurrentPageSize;
133
- const selectedRowKeys = isSelectionControlled ? rowSelection.selectedRowKeys : uncontrolledSelectedRowKeys;
134
- const expandedRowKeys = isExpandControlled ? expandable.expandedRowKeys : uncontrolledExpandedRowKeys;
135
- useEffect(() => {
136
- if (isSortControlled && sort) {
137
- setUncontrolledSortState(sort);
138
- }
139
- }, [isSortControlled, sort?.key, sort?.direction]);
140
- useEffect(() => {
141
- if (isFiltersControlled && filters) {
142
- setUncontrolledFilterState(filters);
143
- }
144
- }, [isFiltersControlled, filters]);
145
- useEffect(() => {
146
- if (isCurrentPageControlled) {
147
- setUncontrolledCurrentPage(paginationConfig.current);
148
- }
149
- }, [isCurrentPageControlled, paginationConfig?.current]);
150
- useEffect(() => {
151
- if (isPageSizeControlled) {
152
- setUncontrolledCurrentPageSize(paginationConfig.pageSize);
153
- }
154
- }, [isPageSizeControlled, paginationConfig?.pageSize]);
155
- useEffect(() => {
156
- if (isSelectionControlled) {
157
- setUncontrolledSelectedRowKeys(rowSelection?.selectedRowKeys ?? []);
158
- }
159
- }, [isSelectionControlled, rowSelection?.selectedRowKeys]);
160
- useEffect(() => {
161
- if (isExpandControlled) {
162
- setUncontrolledExpandedRowKeys(expandable?.expandedRowKeys ?? []);
163
- }
164
- }, [isExpandControlled, expandable?.expandedRowKeys]);
165
- const [fixedOverrides, setFixedOverrides] = useState({});
166
- const displayColumns = useMemo(() => {
167
- return columns.map((column) => {
168
- const hasOverride = Object.prototype.hasOwnProperty.call(fixedOverrides, column.key);
169
- return {
170
- ...column,
171
- fixed: hasOverride ? fixedOverrides[column.key] : column.fixed
172
- };
173
- });
174
- }, [columns, fixedOverrides]);
175
- const totalColumnCount = useMemo(() => {
176
- let count = displayColumns.length;
177
- if (rowSelection && rowSelection.showCheckbox !== false) count++;
178
- if (expandable) count++;
179
- return count;
180
- }, [displayColumns.length, rowSelection, expandable]);
181
- const columnByKey = useMemo(() => {
182
- const map = {};
183
- for (const column of displayColumns) {
184
- map[column.key] = column;
185
- }
186
- return map;
187
- }, [displayColumns]);
188
- const fixedColumnsInfo = useMemo(() => {
189
- return getFixedColumnOffsets(displayColumns);
190
- }, [displayColumns]);
191
- const toggleColumnLock = useCallback(
192
- (columnKey) => {
193
- setFixedOverrides((prev) => {
194
- const original = columns.find((c) => c.key === columnKey)?.fixed;
195
- const current = Object.prototype.hasOwnProperty.call(prev, columnKey) ? prev[columnKey] : original;
196
- const isLocked = current === "left" || current === "right";
197
- return {
198
- ...prev,
199
- [columnKey]: isLocked ? false : "left"
200
- };
201
- });
202
- },
203
- [columns]
204
- );
205
- const processedData = useMemo(() => {
206
- let data = dataSource;
207
- if (filterMode === "advanced" && advancedFilterRules.length > 0) {
208
- data = filterDataAdvanced(data, advancedFilterRules);
209
- } else {
210
- data = filterData(data, filterState);
211
- }
212
- if (sortState.key && sortState.direction) {
213
- const column = columnByKey[sortState.key];
214
- data = sortData(data, sortState.key, sortState.direction, column?.sortFn);
215
- }
216
- return data;
217
- }, [dataSource, filterState, sortState, columnByKey, filterMode, advancedFilterRules]);
218
- const paginatedData = useMemo(() => {
219
- if (pagination === false) {
220
- return processedData;
221
- }
222
- return paginateData(processedData, currentPage, currentPageSize);
223
- }, [processedData, currentPage, currentPageSize, pagination]);
224
- const pageRowKeys = useMemo(
225
- () => paginatedData.map((record, index) => getRowKey(record, rowKey, index)),
226
- [paginatedData, rowKey]
227
- );
228
- const selectedRowKeySet = useMemo(
229
- () => new Set(selectedRowKeys),
230
- [selectedRowKeys]
231
- );
232
- const expandedRowKeySet = useMemo(
233
- () => new Set(expandedRowKeys),
234
- [expandedRowKeys]
235
- );
236
- const paginationInfo = useMemo(() => {
237
- if (pagination === false) {
238
- return null;
239
- }
240
- const total = processedData.length;
241
- return calculatePagination(total, currentPage, currentPageSize);
242
- }, [processedData.length, currentPage, currentPageSize, pagination]);
243
- const handleSort = useCallback(
244
- (columnKey) => {
245
- const column = columnByKey[columnKey];
246
- if (!column || !column.sortable) {
247
- return;
248
- }
249
- let newDirection = "asc";
250
- if (sortState.key === columnKey) {
251
- if (sortState.direction === "asc") {
252
- newDirection = "desc";
253
- } else if (sortState.direction === "desc") {
254
- newDirection = null;
255
- }
256
- }
257
- const newSortState = {
258
- key: newDirection ? columnKey : null,
259
- direction: newDirection
260
- };
261
- if (!isSortControlled) {
262
- setUncontrolledSortState(newSortState);
263
- }
264
- onSortChange?.(newSortState);
265
- onChange?.({
266
- sort: newSortState,
267
- filters: filterState,
268
- pagination: pagination !== false ? {
269
- current: currentPage,
270
- pageSize: currentPageSize
271
- } : null
272
- });
273
- },
274
- [
275
- columnByKey,
276
- sortState,
277
- filterState,
278
- currentPage,
279
- currentPageSize,
280
- pagination,
281
- isSortControlled,
282
- onSortChange,
283
- onChange
284
- ]
285
- );
286
- const handleFilter = useCallback(
287
- (columnKey, value) => {
288
- const newFilterState = {
289
- ...filterState,
290
- [columnKey]: value
291
- };
292
- if (!isFiltersControlled) {
293
- setUncontrolledFilterState(newFilterState);
294
- }
295
- setUncontrolledCurrentPage(1);
296
- onFilterChange?.(newFilterState);
297
- onChange?.({
298
- sort: sortState,
299
- filters: newFilterState,
300
- pagination: pagination !== false ? {
301
- current: 1,
302
- pageSize: currentPageSize
303
- } : null
304
- });
305
- },
306
- [
307
- filterState,
308
- sortState,
309
- currentPageSize,
310
- pagination,
311
- isFiltersControlled,
312
- onFilterChange,
313
- onChange
314
- ]
315
- );
316
- const handlePageChange = useCallback(
317
- (page) => {
318
- setUncontrolledCurrentPage(page);
319
- onPageChange?.({ current: page, pageSize: currentPageSize });
320
- onChange?.({
321
- sort: sortState,
322
- filters: filterState,
323
- pagination: {
324
- current: page,
325
- pageSize: currentPageSize
326
- }
327
- });
328
- },
329
- [currentPageSize, sortState, filterState, onPageChange, onChange]
330
- );
331
- const handlePageSizeChange = useCallback(
332
- (pageSize) => {
333
- setUncontrolledCurrentPageSize(pageSize);
334
- setUncontrolledCurrentPage(1);
335
- onPageChange?.({ current: 1, pageSize });
336
- onChange?.({
337
- sort: sortState,
338
- filters: filterState,
339
- pagination: {
340
- current: 1,
341
- pageSize
342
- }
343
- });
344
- },
345
- [sortState, filterState, onPageChange, onChange]
346
- );
347
- const handleToggleExpand = useCallback(
348
- (key, record) => {
349
- const isExpanded = expandedRowKeySet.has(key);
350
- const newKeys = isExpanded ? expandedRowKeys.filter((k) => k !== key) : [...expandedRowKeys, key];
351
- if (!isExpandControlled) {
352
- setUncontrolledExpandedRowKeys(newKeys);
353
- }
354
- onExpandChange?.(newKeys, record, !isExpanded);
355
- },
356
- [expandedRowKeySet, expandedRowKeys, isExpandControlled, onExpandChange]
357
- );
358
- const handleRowClick = useCallback(
359
- (record, index) => {
360
- onRowClick?.(record, index);
361
- if (expandable?.expandRowByClick) {
362
- const key = getRowKey(record, rowKey, index);
363
- const isExpandableRow = expandable?.rowExpandable ? expandable.rowExpandable(record) : true;
364
- if (isExpandableRow) {
365
- handleToggleExpand(key, record);
366
- }
367
- }
368
- },
369
- [onRowClick, expandable, rowKey, handleToggleExpand]
370
- );
371
- const handleSelectRow = useCallback(
372
- (key, checked) => {
373
- let newKeys;
374
- if (rowSelection?.type === "radio") {
375
- newKeys = checked ? [key] : [];
376
- } else {
377
- if (checked) {
378
- newKeys = [...selectedRowKeys, key];
379
- } else {
380
- newKeys = selectedRowKeys.filter((k) => k !== key);
381
- }
382
- }
383
- if (!isSelectionControlled) {
384
- setUncontrolledSelectedRowKeys(newKeys);
385
- }
386
- onSelectionChange?.(newKeys);
387
- },
388
- [rowSelection, selectedRowKeys, isSelectionControlled, onSelectionChange]
389
- );
390
- const handleSelectAll = useCallback(
391
- (checked) => {
392
- if (checked) {
393
- const newKeys = pageRowKeys;
394
- if (!isSelectionControlled) {
395
- setUncontrolledSelectedRowKeys(newKeys);
396
- }
397
- onSelectionChange?.(newKeys);
398
- } else {
399
- if (!isSelectionControlled) {
400
- setUncontrolledSelectedRowKeys([]);
401
- }
402
- onSelectionChange?.([]);
403
- }
404
- },
405
- [pageRowKeys, isSelectionControlled, onSelectionChange]
406
- );
407
- const allSelected = useMemo(() => {
408
- if (pageRowKeys.length === 0) {
409
- return false;
410
- }
411
- return pageRowKeys.every((key) => selectedRowKeySet.has(key));
412
- }, [pageRowKeys, selectedRowKeySet]);
413
- const someSelected = useMemo(() => {
414
- return selectedRowKeys.length > 0 && !allSelected;
415
- }, [selectedRowKeys.length, allSelected]);
416
- const [editingCell, setEditingCell] = useState(
417
- null
418
- );
419
- const [editingValue, setEditingValue] = useState("");
420
- const isCellEditable = useCallback(
421
- (columnKey, rowIndex) => {
422
- if (!editable) return false;
423
- if (!editableCells) return true;
424
- return !!editableCells.get(columnKey)?.has(rowIndex);
425
- },
426
- [editable, editableCells]
427
- );
428
- const startEditing = useCallback((rowIndex, columnKey, currentValue) => {
429
- setEditingCell({ rowIndex, columnKey });
430
- setEditingValue(String(currentValue ?? ""));
431
- }, []);
432
- const commitEdit = useCallback(() => {
433
- if (editingCell) {
434
- onCellChange?.(editingCell.rowIndex, editingCell.columnKey, editingValue);
435
- setEditingCell(null);
436
- }
437
- }, [editingCell, editingValue, onCellChange]);
438
- const cancelEdit = useCallback(() => {
439
- setEditingCell(null);
440
- }, []);
441
- const handleExport = useCallback(() => {
442
- const csv = exportTableToCsv(displayColumns, processedData);
443
- downloadCsv(csv, exportFilename);
444
- onExport?.(csv);
445
- }, [displayColumns, processedData, exportFilename, onExport]);
446
- const [dragColumnKey, setDragColumnKey] = useState(null);
447
- const handleDragStart = useCallback((columnKey) => {
448
- setDragColumnKey(columnKey);
449
- }, []);
450
- const handleDrop = useCallback(
451
- (targetKey) => {
452
- if (!dragColumnKey || dragColumnKey === targetKey) return;
453
- const cols = [...displayColumns];
454
- const fromIdx = cols.findIndex((c) => c.key === dragColumnKey);
455
- const toIdx = cols.findIndex((c) => c.key === targetKey);
456
- if (fromIdx >= 0 && toIdx >= 0) {
457
- const [moved] = cols.splice(fromIdx, 1);
458
- cols.splice(toIdx, 0, moved);
459
- onColumnOrderChange?.(cols);
460
- }
461
- setDragColumnKey(null);
462
- },
463
- [dragColumnKey, displayColumns, onColumnOrderChange]
464
- );
465
- const groupedData = useMemo(() => {
466
- if (!groupBy) return null;
467
- return groupDataByColumn(paginatedData, groupBy);
468
- }, [groupBy, paginatedData]);
469
- const renderTableHeader = useCallback(() => {
470
- const expandHeaderTh = expandable ? /* @__PURE__ */ jsx("th", { className: getExpandIconCellClasses(size), "aria-label": "Expand" }) : null;
471
- const expandAtStart = expandable?.expandIconPosition !== "end";
472
- return /* @__PURE__ */ jsx("thead", { className: getTableHeaderClasses(stickyHeader), children: /* @__PURE__ */ jsxs("tr", { children: [
473
- expandAtStart && expandHeaderTh,
474
- rowSelection && rowSelection.showCheckbox !== false && rowSelection.type !== "radio" && /* @__PURE__ */ jsx("th", { className: getCheckboxCellClasses(size), children: /* @__PURE__ */ jsx(
475
- "input",
476
- {
477
- type: "checkbox",
478
- className: "rounded border-gray-300 text-[var(--tiger-primary,#2563eb)] focus:ring-[var(--tiger-primary,#2563eb)]",
479
- checked: allSelected,
480
- ref: (el) => {
481
- if (el) el.indeterminate = someSelected;
482
- },
483
- onChange: (e) => handleSelectAll(e.target.checked)
484
- }
485
- ) }),
486
- displayColumns.map((column) => {
487
- const isSorted = sortState.key === column.key;
488
- const sortDirection = isSorted ? sortState.direction : null;
489
- const ariaSort = column.sortable ? sortDirection === "asc" ? "ascending" : sortDirection === "desc" ? "descending" : "none" : void 0;
490
- const isFixedLeft = column.fixed === "left";
491
- const isFixedRight = column.fixed === "right";
492
- const fixedStyle = isFixedLeft ? {
493
- position: "sticky",
494
- left: `${fixedColumnsInfo.leftOffsets[column.key] || 0}px`,
495
- zIndex: 15
496
- } : isFixedRight ? {
497
- position: "sticky",
498
- right: `${fixedColumnsInfo.rightOffsets[column.key] || 0}px`,
499
- zIndex: 15
500
- } : void 0;
501
- const widthStyle = column.width ? {
502
- width: typeof column.width === "number" ? `${column.width}px` : column.width
503
- } : void 0;
504
- const style = fixedStyle ? { ...widthStyle, ...fixedStyle } : widthStyle;
505
- return /* @__PURE__ */ jsxs(
506
- "th",
507
- {
508
- "aria-sort": ariaSort,
509
- className: classNames(
510
- getTableHeaderCellClasses(
511
- size,
512
- column.align || "left",
513
- !!column.sortable,
514
- column.headerClassName
515
- ),
516
- (isFixedLeft || isFixedRight) && "bg-[var(--tiger-surface-muted,#f9fafb)]"
517
- ),
518
- style,
519
- draggable: columnDraggable ? true : void 0,
520
- onDragStart: columnDraggable ? () => handleDragStart(column.key) : void 0,
521
- onDragOver: columnDraggable ? (e) => e.preventDefault() : void 0,
522
- onDrop: columnDraggable ? () => handleDrop(column.key) : void 0,
523
- onClick: column.sortable ? () => handleSort(column.key) : void 0,
524
- children: [
525
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
526
- column.renderHeader ? column.renderHeader() : column.title,
527
- columnLockable && /* @__PURE__ */ jsx(
528
- "button",
529
- {
530
- type: "button",
531
- "aria-label": column.fixed === "left" || column.fixed === "right" ? `Unlock column ${column.title}` : `Lock column ${column.title}`,
532
- className: classNames(
533
- "inline-flex items-center",
534
- column.fixed === "left" || column.fixed === "right" ? "text-[var(--tiger-primary,#2563eb)]" : "text-gray-400 hover:text-gray-700"
535
- ),
536
- onClick: (e) => {
537
- e.stopPropagation();
538
- toggleColumnLock(column.key);
539
- },
540
- children: /* @__PURE__ */ jsx(LockIcon, { locked: column.fixed === "left" || column.fixed === "right" })
541
- }
542
- ),
543
- column.sortable && /* @__PURE__ */ jsx(SortIcon, { direction: sortDirection })
544
- ] }),
545
- column.filter && /* @__PURE__ */ jsx("div", { className: "mt-2", children: column.filter.type === "select" && column.filter.options ? /* @__PURE__ */ jsxs(
546
- "select",
547
- {
548
- className: "w-full px-2 py-1 text-sm border border-gray-300 rounded",
549
- onChange: (e) => handleFilter(column.key, e.target.value),
550
- onClick: (e) => e.stopPropagation(),
551
- children: [
552
- /* @__PURE__ */ jsx("option", { value: "", children: "All" }),
553
- column.filter.options.map((opt) => /* @__PURE__ */ jsx("option", { value: opt.value, children: opt.label }, opt.value))
554
- ]
555
- }
556
- ) : /* @__PURE__ */ jsx(
557
- "input",
558
- {
559
- type: "text",
560
- className: "w-full px-2 py-1 text-sm border border-gray-300 rounded",
561
- placeholder: column.filter.placeholder || "Filter...",
562
- onInput: (e) => handleFilter(column.key, e.target.value),
563
- onClick: (e) => e.stopPropagation()
564
- }
565
- ) })
566
- ]
567
- },
568
- column.key
569
- );
570
- }),
571
- !expandAtStart && expandHeaderTh
572
- ] }) });
573
- }, [
574
- displayColumns,
575
- size,
576
- stickyHeader,
577
- sortState,
578
- rowSelection,
579
- expandable,
580
- allSelected,
581
- someSelected,
582
- handleSort,
583
- handleFilter,
584
- handleSelectAll,
585
- columnLockable,
586
- toggleColumnLock,
587
- fixedColumnsInfo,
588
- columnDraggable,
589
- handleDragStart,
590
- handleDrop
591
- ]);
592
- const renderTableBody = useCallback(() => {
593
- if (loading) {
594
- return null;
595
- }
596
- if (paginatedData.length === 0) {
597
- return /* @__PURE__ */ jsx("tbody", { children: /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", { colSpan: totalColumnCount, className: tableEmptyStateClasses, children: /* @__PURE__ */ jsx("div", { role: "status", "aria-live": "polite", children: emptyText }) }) }) });
598
- }
599
- const renderDataRow = (record, index) => {
600
- const key = pageRowKeys[index];
601
- const isSelected = selectedRowKeySet.has(key);
602
- const isExpanded = expandedRowKeySet.has(key);
603
- const isRowExpandable = expandable ? expandable.rowExpandable ? expandable.rowExpandable(record) : true : false;
604
- const rowClass = typeof rowClassName === "function" ? rowClassName(record, index) : rowClassName;
605
- const expandToggleCell = expandable ? /* @__PURE__ */ jsx("td", { className: getExpandIconCellClasses(size), children: isRowExpandable && /* @__PURE__ */ jsx(
606
- "button",
607
- {
608
- type: "button",
609
- className: "inline-flex items-center justify-center",
610
- "aria-label": isExpanded ? "Collapse row" : "Expand row",
611
- "aria-expanded": isExpanded,
612
- onClick: (e) => {
613
- e.stopPropagation();
614
- handleToggleExpand(key, record);
615
- },
616
- children: /* @__PURE__ */ jsx(ExpandIcon, { expanded: isExpanded })
617
- }
618
- ) }) : null;
619
- const expandAtStart = expandable?.expandIconPosition !== "end";
620
- const rowNode = /* @__PURE__ */ jsxs(
621
- "tr",
622
- {
623
- className: classNames(
624
- getTableRowClasses(hoverable, striped, index % 2 === 0, rowClass),
625
- fixedColumnsInfo.hasFixedColumns && "group"
626
- ),
627
- onClick: () => handleRowClick(record, index),
628
- children: [
629
- expandAtStart && expandToggleCell,
630
- rowSelection && rowSelection.showCheckbox !== false && /* @__PURE__ */ jsx("td", { className: getCheckboxCellClasses(size), children: /* @__PURE__ */ jsx(
631
- "input",
632
- {
633
- type: rowSelection?.type === "radio" ? "radio" : "checkbox",
634
- className: rowSelection?.type === "radio" ? "border-gray-300 text-[var(--tiger-primary,#2563eb)] focus:ring-[var(--tiger-primary,#2563eb)]" : "rounded border-gray-300 text-[var(--tiger-primary,#2563eb)] focus:ring-[var(--tiger-primary,#2563eb)]",
635
- checked: isSelected,
636
- disabled: rowSelection?.getCheckboxProps?.(record)?.disabled,
637
- onChange: (e) => handleSelectRow(key, e.target.checked),
638
- onClick: (e) => e.stopPropagation()
639
- }
640
- ) }),
641
- displayColumns.map((column) => {
642
- const dataKey = column.dataKey || column.key;
643
- const cellValue = record[dataKey];
644
- const isFixedLeft = column.fixed === "left";
645
- const isFixedRight = column.fixed === "right";
646
- const fixedStyle = isFixedLeft ? {
647
- position: "sticky",
648
- left: `${fixedColumnsInfo.leftOffsets[column.key] || 0}px`,
649
- zIndex: 10
650
- } : isFixedRight ? {
651
- position: "sticky",
652
- right: `${fixedColumnsInfo.rightOffsets[column.key] || 0}px`,
653
- zIndex: 10
654
- } : void 0;
655
- const widthStyle = column.width ? {
656
- width: typeof column.width === "number" ? `${column.width}px` : column.width
657
- } : void 0;
658
- const style = fixedStyle ? { ...widthStyle, ...fixedStyle } : widthStyle;
659
- const stickyBgClass = striped && index % 2 === 0 ? "bg-[var(--tiger-surface-muted,#f9fafb)]/50" : "bg-[var(--tiger-surface,#ffffff)]";
660
- const stickyCellClass = isFixedLeft || isFixedRight ? classNames(
661
- stickyBgClass,
662
- hoverable && "group-hover:bg-[var(--tiger-surface-muted,#f9fafb)]"
663
- ) : void 0;
664
- const isEditing = editingCell?.rowIndex === index && editingCell?.columnKey === column.key;
665
- const cellEditable = isCellEditable(column.key, index);
666
- return /* @__PURE__ */ jsx(
667
- "td",
668
- {
669
- className: classNames(
670
- getTableCellClasses(size, column.align || "left", column.className),
671
- stickyCellClass,
672
- cellEditable && getEditableCellClasses(!!isEditing)
673
- ),
674
- style,
675
- onDoubleClick: cellEditable ? () => startEditing(index, column.key, cellValue) : void 0,
676
- children: isEditing ? /* @__PURE__ */ jsx(
677
- "input",
678
- {
679
- className: editableCellInputClasses,
680
- value: editingValue,
681
- onChange: (e) => setEditingValue(e.target.value),
682
- onBlur: commitEdit,
683
- onKeyDown: (e) => {
684
- if (e.key === "Enter") commitEdit();
685
- if (e.key === "Escape") cancelEdit();
686
- },
687
- autoFocus: true
688
- }
689
- ) : column.render ? column.render(record, index) : cellValue
690
- },
691
- column.key
692
- );
693
- }),
694
- !expandAtStart && expandToggleCell
695
- ]
696
- },
697
- key
698
- );
699
- if (expandable && isExpanded && isRowExpandable) {
700
- const expandedContent = expandable.expandedRowRender ? expandable.expandedRowRender(record, index) : null;
701
- return /* @__PURE__ */ jsxs(React.Fragment, { children: [
702
- rowNode,
703
- /* @__PURE__ */ jsx("tr", { className: getExpandedRowClasses(), children: /* @__PURE__ */ jsx("td", { colSpan: totalColumnCount, className: getExpandedRowContentClasses(size), children: expandedContent }) }, `${key}-expanded`)
704
- ] }, key);
705
- }
706
- return rowNode;
707
- };
708
- if (groupedData) {
709
- return /* @__PURE__ */ jsx("tbody", { children: Array.from(groupedData.entries()).map(([groupKey, groupItems]) => /* @__PURE__ */ jsxs(React.Fragment, { children: [
710
- /* @__PURE__ */ jsx("tr", { className: tableGroupHeaderClasses, children: /* @__PURE__ */ jsxs("td", { colSpan: totalColumnCount, className: getGroupHeaderCellClasses(size), children: [
711
- groupKey,
712
- " (",
713
- groupItems.length,
714
- ")"
715
- ] }) }),
716
- groupItems.map((record, idx) => {
717
- const globalIndex = paginatedData.indexOf(record);
718
- return renderDataRow(record, globalIndex >= 0 ? globalIndex : idx);
719
- })
720
- ] }, `group-${groupKey}`)) });
721
- }
722
- return /* @__PURE__ */ jsx("tbody", { children: paginatedData.map((record, index) => renderDataRow(record, index)) });
723
- }, [
724
- loading,
725
- paginatedData,
726
- displayColumns,
727
- rowSelection,
728
- expandable,
729
- emptyText,
730
- pageRowKeys,
731
- selectedRowKeySet,
732
- expandedRowKeySet,
733
- totalColumnCount,
734
- rowClassName,
735
- hoverable,
736
- striped,
737
- size,
738
- handleRowClick,
739
- handleSelectRow,
740
- handleToggleExpand,
741
- fixedColumnsInfo,
742
- groupedData,
743
- editingCell,
744
- editingValue,
745
- isCellEditable,
746
- startEditing,
747
- commitEdit,
748
- cancelEdit
749
- ]);
750
- const renderPagination = useCallback(() => {
751
- if (pagination === false || !paginationInfo) {
752
- return null;
753
- }
754
- const { totalPages, startIndex, endIndex, hasNext, hasPrev } = paginationInfo;
755
- const total = processedData.length;
756
- const paginationConfig2 = pagination;
757
- return /* @__PURE__ */ jsxs("div", { className: getSimplePaginationContainerClasses(), children: [
758
- paginationConfig2.showTotal !== false && /* @__PURE__ */ jsx("div", { className: getSimplePaginationTotalClasses(), children: paginationConfig2.totalText ? paginationConfig2.totalText(total, [startIndex, endIndex]) : `Showing ${startIndex} to ${endIndex} of ${total} results` }),
759
- /* @__PURE__ */ jsxs("div", { className: getSimplePaginationControlsClasses(), children: [
760
- paginationConfig2.showSizeChanger !== false && /* @__PURE__ */ jsx(
761
- "select",
762
- {
763
- className: getSimplePaginationSelectClasses(),
764
- value: currentPageSize,
765
- onChange: (e) => handlePageSizeChange(Number(e.target.value)),
766
- children: (paginationConfig2.pageSizeOptions || [10, 20, 50, 100]).map((size2) => /* @__PURE__ */ jsxs("option", { value: size2, children: [
767
- size2,
768
- " / page"
769
- ] }, size2))
770
- }
771
- ),
772
- /* @__PURE__ */ jsxs("div", { className: getSimplePaginationButtonsWrapperClasses(), children: [
773
- /* @__PURE__ */ jsx(
774
- "button",
775
- {
776
- className: getSimplePaginationButtonClasses(!hasPrev),
777
- disabled: !hasPrev,
778
- onClick: () => handlePageChange(currentPage - 1),
779
- children: "Previous"
780
- }
781
- ),
782
- /* @__PURE__ */ jsxs("span", { className: getSimplePaginationPageIndicatorClasses(), children: [
783
- "Page ",
784
- currentPage,
785
- " of ",
786
- totalPages
787
- ] }),
788
- /* @__PURE__ */ jsx(
789
- "button",
790
- {
791
- className: getSimplePaginationButtonClasses(!hasNext),
792
- disabled: !hasNext,
793
- onClick: () => handlePageChange(currentPage + 1),
794
- children: "Next"
795
- }
796
- )
797
- ] })
798
- ] })
799
- ] });
800
- }, [
801
- pagination,
802
- paginationInfo,
803
- processedData.length,
804
- currentPage,
805
- currentPageSize,
806
- handlePageChange,
807
- handlePageSizeChange
808
- ]);
809
- const renderSummaryRow = useCallback(() => {
810
- if (!summaryRow?.show) return null;
811
- return /* @__PURE__ */ jsx("tfoot", { children: /* @__PURE__ */ jsxs("tr", { className: tableSummaryRowClasses, children: [
812
- rowSelection && rowSelection.showCheckbox !== false && /* @__PURE__ */ jsx("td", { className: getTableCellClasses(size, "left") }),
813
- expandable && /* @__PURE__ */ jsx("td", { className: getTableCellClasses(size, "left") }),
814
- displayColumns.map((column) => /* @__PURE__ */ jsx("td", { className: getTableCellClasses(size, column.align || "left"), children: summaryRow.data[column.dataKey || column.key] ?? "" }, column.key))
815
- ] }) });
816
- }, [summaryRow, displayColumns, size, rowSelection, expandable]);
817
- const wrapperStyle = useMemo(() => {
818
- if (virtual) {
819
- return {
820
- height: typeof virtualHeight === "number" ? `${virtualHeight}px` : virtualHeight,
821
- overflow: "auto"
822
- };
823
- }
824
- return maxHeight ? {
825
- maxHeight: typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight
826
- } : void 0;
827
- }, [maxHeight, virtual, virtualHeight]);
828
- return /* @__PURE__ */ jsxs(
829
- "div",
830
- {
831
- className: getTableWrapperClasses(
832
- bordered,
833
- maxHeight || (virtual ? virtualHeight : void 0)
834
- ),
835
- style: wrapperStyle,
836
- "aria-busy": loading,
837
- children: [
838
- exportable && /* @__PURE__ */ jsx("div", { className: "mb-2 flex justify-end", children: /* @__PURE__ */ jsx("button", { type: "button", className: tableExportButtonClasses, onClick: handleExport, children: "Export CSV" }) }),
839
- /* @__PURE__ */ jsxs(
840
- "table",
841
- {
842
- className: classNames(
843
- tableBaseClasses,
844
- tableLayout === "fixed" ? "table-fixed" : "table-auto",
845
- className
846
- ),
847
- ...props,
848
- style: fixedColumnsInfo.hasFixedColumns && fixedColumnsInfo.minTableWidth ? {
849
- ...props.style,
850
- minWidth: `${fixedColumnsInfo.minTableWidth}px`
851
- } : props.style,
852
- children: [
853
- renderTableHeader(),
854
- renderTableBody(),
855
- renderSummaryRow()
856
- ]
857
- }
858
- ),
859
- loading && /* @__PURE__ */ jsxs(
860
- "div",
861
- {
862
- className: tableLoadingOverlayClasses,
863
- role: "status",
864
- "aria-live": "polite",
865
- "aria-label": "Loading",
866
- children: [
867
- /* @__PURE__ */ jsx(LoadingSpinner, {}),
868
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Loading" })
869
- ]
870
- }
871
- ),
872
- renderPagination()
873
- ]
874
- }
875
- );
876
- }
877
-
878
- export { Table };