@expcat/tigercat-react 1.4.0 → 1.5.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 (352) hide show
  1. package/dist/{chunk-WV5XHYW6.js → chunk-23XPDNCA.js} +6 -4
  2. package/dist/{chunk-UAM3RQY4.js → chunk-24NDLFPK.js} +22 -28
  3. package/dist/{chunk-NMKFR435.js → chunk-2LKX6CE7.js} +7 -4
  4. package/dist/{chunk-BEZO5IE4.js → chunk-2PV3F47T.js} +2 -2
  5. package/dist/{chunk-ANN5P7TJ.js → chunk-2ZA4MUO2.js} +72 -29
  6. package/dist/{chunk-H4AR4GXH.js → chunk-3NVMKDMH.js} +1 -8
  7. package/dist/{chunk-7CHTTM6D.js → chunk-3RQ3FHJ7.js} +2 -2
  8. package/dist/{chunk-ELRZ2ZHM.mjs → chunk-4DRJA5ZK.mjs} +15 -17
  9. package/dist/{chunk-J3N24I7A.mjs → chunk-4F3UTDFE.mjs} +24 -6
  10. package/dist/{chunk-56CTXEJS.mjs → chunk-4HMMH4XS.mjs} +24 -11
  11. package/dist/{chunk-ZQSMJS2Q.mjs → chunk-4MREOFVE.mjs} +3 -3
  12. package/dist/{chunk-EEF26RBA.mjs → chunk-4SU6D2E7.mjs} +15 -3
  13. package/dist/{chunk-ZZAR4IDS.js → chunk-4TPRBVW7.js} +19 -2
  14. package/dist/{chunk-NSEO2B74.mjs → chunk-4V5RL25M.mjs} +8 -5
  15. package/dist/{chunk-AUW7DCXL.js → chunk-5JYVN65W.js} +24 -6
  16. package/dist/{chunk-YRVAF2ID.js → chunk-5QLSTNA3.js} +7 -1
  17. package/dist/chunk-5SX2M3LU.mjs +319 -0
  18. package/dist/{chunk-FI53LYZ6.js → chunk-5UREMEDS.js} +24 -8
  19. package/dist/chunk-6LGCAGNG.js +312 -0
  20. package/dist/{chunk-KED5S2WG.mjs → chunk-6REMGSLS.mjs} +22 -11
  21. package/dist/{chunk-PNAWOJ32.js → chunk-6S5QOTXZ.js} +14 -2
  22. package/dist/{chunk-4AMSYFYC.js → chunk-6SG2N4WF.js} +7 -7
  23. package/dist/{chunk-YSGM22AH.mjs → chunk-6UIVNRAR.mjs} +7 -4
  24. package/dist/{chunk-IZGXDHPB.mjs → chunk-7RI5W465.mjs} +19 -25
  25. package/dist/{chunk-DCKBVRLI.js → chunk-7UZ7O7KX.js} +63 -16
  26. package/dist/{chunk-WZUADPYB.js → chunk-7YI5TAPT.js} +2 -5
  27. package/dist/chunk-AI4V7L6K.mjs +230 -0
  28. package/dist/chunk-AQOXANET.mjs +222 -0
  29. package/dist/{chunk-HHMYERHY.mjs → chunk-ATSI3UKS.mjs} +2 -1
  30. package/dist/{chunk-ZRHDNGWO.js → chunk-BR3WLDH7.js} +16 -2
  31. package/dist/{chunk-2Y5NIPHB.mjs → chunk-BRPOEVRT.mjs} +32 -3
  32. package/dist/{chunk-I7FEGKX2.mjs → chunk-CR4QBH46.mjs} +36 -11
  33. package/dist/{chunk-7U6VWD4H.mjs → chunk-CSJGNEHR.mjs} +2 -2
  34. package/dist/{chunk-ANBNSUSR.js → chunk-CXXOZLP4.js} +31 -21
  35. package/dist/{chunk-DVEK5SO6.mjs → chunk-D4X3NBAI.mjs} +8 -3
  36. package/dist/{chunk-QIL24WZD.mjs → chunk-DEQZZKY5.mjs} +12 -7
  37. package/dist/{chunk-TEYL5X56.js → chunk-DH4B2COV.js} +105 -36
  38. package/dist/{chunk-BONUUJU3.mjs → chunk-DJOFM2VO.mjs} +1 -8
  39. package/dist/{chunk-SQTOVSDU.mjs → chunk-DO3MVZZN.mjs} +12 -6
  40. package/dist/{chunk-SDZKL3IB.mjs → chunk-E355NVP7.mjs} +35 -14
  41. package/dist/{chunk-CNNEUJR2.js → chunk-ENJMHEQU.js} +44 -19
  42. package/dist/{chunk-BRA3PO53.js → chunk-FBIBHTBG.js} +2 -2
  43. package/dist/{chunk-P36GX65N.js → chunk-FCCHM2B4.js} +40 -4
  44. package/dist/{chunk-4LIDROT4.js → chunk-FFDK6PEP.js} +7 -4
  45. package/dist/{chunk-R2KUNFDN.mjs → chunk-GA4YOE57.mjs} +2 -2
  46. package/dist/{chunk-3E76U2RG.js → chunk-GADCSCH2.js} +33 -5
  47. package/dist/{chunk-JOB47R6Q.mjs → chunk-GCOA4AO6.mjs} +72 -29
  48. package/dist/{chunk-M6YXUNOU.mjs → chunk-GOUSXJEY.mjs} +2 -2
  49. package/dist/{chunk-GDPU5MYA.js → chunk-GPAY5F7D.js} +11 -6
  50. package/dist/{chunk-TNTOSFGN.mjs → chunk-GQPKHMHA.mjs} +1 -1
  51. package/dist/{chunk-NKSYX4R7.mjs → chunk-GTDLZF7K.mjs} +2 -2
  52. package/dist/{chunk-OXQOKKTP.mjs → chunk-H7D7UBDC.mjs} +2 -2
  53. package/dist/{chunk-KYNWNTGO.js → chunk-HFGTJEQW.js} +82 -29
  54. package/dist/{chunk-J6OZWT3P.js → chunk-HVAG26CK.js} +3 -3
  55. package/dist/{chunk-SLEXEH7R.mjs → chunk-HWZSMV2M.mjs} +3 -11
  56. package/dist/{chunk-EJKOUI26.js → chunk-I5UB4FN3.js} +3 -3
  57. package/dist/{chunk-NVI2P7VH.js → chunk-I6VHGILW.js} +21 -9
  58. package/dist/{chunk-EOU6WZTS.js → chunk-I7OSNH5T.js} +34 -5
  59. package/dist/{chunk-L24PPXLV.js → chunk-IFB3OECJ.js} +1 -0
  60. package/dist/{chunk-376X7SDZ.mjs → chunk-IXAPFTTD.mjs} +7 -6
  61. package/dist/{chunk-EHIXCFD7.js → chunk-JHRFG5PG.js} +57 -12
  62. package/dist/{chunk-3EB42WFR.mjs → chunk-KCPGFO5R.mjs} +2 -2
  63. package/dist/{chunk-G3PBQ4B4.mjs → chunk-KQ4ZKXXN.mjs} +52 -2
  64. package/dist/{chunk-MC26ORSN.js → chunk-KSXGH3FO.js} +7 -7
  65. package/dist/{chunk-X7JAYXPY.js → chunk-KVWSVDAJ.js} +4 -4
  66. package/dist/{chunk-OFRKYQOZ.mjs → chunk-LACDTZTE.mjs} +4 -4
  67. package/dist/{chunk-YH57D4AV.mjs → chunk-LAKPYMBZ.mjs} +1 -0
  68. package/dist/{chunk-6GU5NH5F.mjs → chunk-LBXNMCXN.mjs} +33 -5
  69. package/dist/{chunk-KGMVRIYC.mjs → chunk-LOM6NNQK.mjs} +29 -16
  70. package/dist/{chunk-WFWEMXO7.mjs → chunk-LUABLBKS.mjs} +83 -30
  71. package/dist/{chunk-K2TXT5HQ.js → chunk-M577W3TS.js} +101 -85
  72. package/dist/{chunk-3EDASNTG.js → chunk-MOYZF62V.js} +29 -16
  73. package/dist/{chunk-ZDNQGS4O.js → chunk-MQIVMK24.js} +4 -4
  74. package/dist/{chunk-WMPCN7OF.mjs → chunk-MZCGQED3.mjs} +15 -3
  75. package/dist/{chunk-KDXKF6B2.mjs → chunk-MZPKFMQC.mjs} +1 -1
  76. package/dist/{chunk-AG4HRAW2.mjs → chunk-NEHSCSQP.mjs} +2 -2
  77. package/dist/chunk-NG3OBMKV.js +319 -0
  78. package/dist/{chunk-RFHPG4KN.js → chunk-NGSJGXUZ.js} +15 -17
  79. package/dist/{chunk-WIWTY74F.mjs → chunk-NJHZQBA7.mjs} +16 -2
  80. package/dist/{chunk-EQD2U4KM.js → chunk-O2N7ITWQ.js} +63 -16
  81. package/dist/{chunk-NASC6XHN.mjs → chunk-O6YIPNXX.mjs} +24 -15
  82. package/dist/{chunk-VHGCWZ6V.mjs → chunk-OTRPN5ZG.mjs} +58 -13
  83. package/dist/{chunk-QIKR5EFI.js → chunk-OVJO5NYW.js} +4 -4
  84. package/dist/{chunk-KXT2TP6A.mjs → chunk-P2WQIVXD.mjs} +22 -10
  85. package/dist/{chunk-PT5T5F4H.js → chunk-PQF5VLNX.js} +22 -11
  86. package/dist/chunk-PQOUWJAT.mjs +211 -0
  87. package/dist/{chunk-OS6M3IZF.js → chunk-PSCPLUGP.js} +5 -13
  88. package/dist/{chunk-ULWT6W6M.mjs → chunk-PZB24FST.mjs} +10 -5
  89. package/dist/{chunk-BO45CU4Q.js → chunk-PZWI4YNN.js} +6 -4
  90. package/dist/{chunk-PFYK2V3E.js → chunk-Q2OXQNWU.js} +73 -9
  91. package/dist/{chunk-VM4ZQHT5.mjs → chunk-QANWBRNU.mjs} +59 -12
  92. package/dist/{chunk-XBM76P27.mjs → chunk-QFUIGOOM.mjs} +4 -2
  93. package/dist/{chunk-BN4ZKCAI.mjs → chunk-QKNORS26.mjs} +49 -36
  94. package/dist/{chunk-LROHXQWX.js → chunk-R4PMBWU3.js} +2 -2
  95. package/dist/chunk-R56UOY6C.js +222 -0
  96. package/dist/chunk-RNHC7BON.js +230 -0
  97. package/dist/{chunk-7PXALKLM.js → chunk-RRO752KE.js} +11 -10
  98. package/dist/{chunk-RVLV63SI.mjs → chunk-S4NGDDAM.mjs} +105 -36
  99. package/dist/{chunk-D5MQBUP2.js → chunk-SA3N2LUB.js} +22 -17
  100. package/dist/{chunk-BROIZ266.js → chunk-SFBSI3J7.js} +6 -3
  101. package/dist/{chunk-RVO6R37N.mjs → chunk-SHDQJ5BJ.mjs} +1 -1
  102. package/dist/{chunk-N2JYU4JI.js → chunk-SHU7L4NM.js} +52 -2
  103. package/dist/{chunk-M3MOSUZO.mjs → chunk-SI3P3V75.mjs} +16 -6
  104. package/dist/{chunk-UVMQJOTX.js → chunk-SK7PXSVE.js} +23 -14
  105. package/dist/{chunk-U356F7GU.js → chunk-SO2ADQTB.js} +52 -11
  106. package/dist/{chunk-NKKIJQMV.mjs → chunk-SPIPFOGD.mjs} +4 -2
  107. package/dist/{chunk-NQNHM4OL.mjs → chunk-SRC7JHME.mjs} +1 -1
  108. package/dist/{chunk-2RBHQBSG.js → chunk-SXTMVZ4W.js} +25 -12
  109. package/dist/{chunk-BEM7XG2L.js → chunk-SYJJKI7U.js} +35 -14
  110. package/dist/{chunk-RYNLPRUM.mjs → chunk-SYVMCKPR.mjs} +1 -1
  111. package/dist/{chunk-SY23FAXK.mjs → chunk-T6HNFCOW.mjs} +24 -8
  112. package/dist/{chunk-ZITBUGBH.mjs → chunk-TBMDIAZI.mjs} +59 -12
  113. package/dist/{chunk-B63GEB2Y.js → chunk-TIDVBSXR.js} +47 -34
  114. package/dist/{chunk-ZJI2VLIL.js → chunk-TLDTBCT6.js} +15 -3
  115. package/dist/{chunk-XFPJYKBQ.js → chunk-TN7GMDME.js} +13 -9
  116. package/dist/{chunk-M3FVPPMM.js → chunk-TO4SSBAJ.js} +17 -12
  117. package/dist/{chunk-XTQUPDRI.js → chunk-TPU6S7G7.js} +2 -2
  118. package/dist/{chunk-NEZ445D4.mjs → chunk-TRXNHYWB.mjs} +3 -3
  119. package/dist/{chunk-H6NC6SBX.js → chunk-TVEO2CFD.js} +2 -2
  120. package/dist/{chunk-6QQBMZQ6.mjs → chunk-U2ZXZ2KQ.mjs} +74 -10
  121. package/dist/{chunk-AVLIUHOS.mjs → chunk-U337RHJB.mjs} +4 -4
  122. package/dist/{chunk-VC26SAXB.js → chunk-UQZ4RLTI.js} +12 -6
  123. package/dist/{chunk-PXO2F2CS.mjs → chunk-V23KR23W.mjs} +47 -4
  124. package/dist/{chunk-BA6TJQZL.js → chunk-V3QEV3TL.js} +6 -6
  125. package/dist/{chunk-GG72T6JK.js → chunk-VOSN3IQC.js} +47 -4
  126. package/dist/{chunk-J4OQ2VRH.mjs → chunk-W6T3CG7U.mjs} +45 -4
  127. package/dist/{chunk-OTEM4FVX.mjs → chunk-WGKNAOW7.mjs} +11 -7
  128. package/dist/chunk-WLFLQB4R.mjs +312 -0
  129. package/dist/{chunk-W6AWN7BC.js → chunk-WLORVPTR.js} +4 -4
  130. package/dist/{chunk-J5N5OQWB.mjs → chunk-WOEX4S6J.mjs} +5 -2
  131. package/dist/{chunk-CAQPYJFA.mjs → chunk-WT72F56O.mjs} +1 -1
  132. package/dist/{chunk-7Z64GEMN.js → chunk-WTASPL6V.js} +3 -1
  133. package/dist/{chunk-2LYV6NBJ.mjs → chunk-WTIEJCRV.mjs} +7 -1
  134. package/dist/{chunk-L6KSO66F.mjs → chunk-WYPTAUCX.mjs} +2 -5
  135. package/dist/{chunk-CC5GFX6F.js → chunk-XKMZ5AMS.js} +2 -1
  136. package/dist/{chunk-WCTNQYXO.js → chunk-XMD7CQQ2.js} +12 -7
  137. package/dist/{chunk-7DUHHRAU.mjs → chunk-Y5X3G2LD.mjs} +41 -5
  138. package/dist/{chunk-ZA5EFHET.mjs → chunk-Z6BDNV3S.mjs} +18 -1
  139. package/dist/{chunk-UBP7HZSU.mjs → chunk-ZG2W4HS5.mjs} +6 -4
  140. package/dist/{chunk-UIIOZEUP.js → chunk-ZLCVJXGL.js} +4 -4
  141. package/dist/{chunk-CME2IFUT.mjs → chunk-ZLP4XEAO.mjs} +21 -16
  142. package/dist/{chunk-YID7J6ZK.js → chunk-ZXVLZKLT.js} +1 -1
  143. package/dist/components/ActivityFeed.js +6 -6
  144. package/dist/components/ActivityFeed.mjs +5 -5
  145. package/dist/components/AreaChart.js +4 -4
  146. package/dist/components/AreaChart.mjs +3 -3
  147. package/dist/components/AutoComplete.js +3 -2
  148. package/dist/components/AutoComplete.mjs +2 -1
  149. package/dist/components/BackTop.js +2 -2
  150. package/dist/components/BackTop.mjs +1 -1
  151. package/dist/components/Badge.js +3 -2
  152. package/dist/components/Badge.mjs +2 -1
  153. package/dist/components/BarChart.js +4 -4
  154. package/dist/components/BarChart.mjs +3 -3
  155. package/dist/components/Breadcrumb.d.mts +1 -1
  156. package/dist/components/Breadcrumb.d.ts +1 -1
  157. package/dist/components/Calendar.d.mts +2 -10
  158. package/dist/components/Calendar.d.ts +2 -10
  159. package/dist/components/Calendar.js +3 -2
  160. package/dist/components/Calendar.mjs +2 -1
  161. package/dist/components/Cascader.js +2 -2
  162. package/dist/components/Cascader.mjs +1 -1
  163. package/dist/components/ChartAxis.d.mts +1 -2
  164. package/dist/components/ChartAxis.d.ts +1 -2
  165. package/dist/components/ChartGrid.d.mts +1 -2
  166. package/dist/components/ChartGrid.d.ts +1 -2
  167. package/dist/components/ChartLegend.js +2 -2
  168. package/dist/components/ChartLegend.mjs +1 -1
  169. package/dist/components/ChartSeries.d.mts +1 -2
  170. package/dist/components/ChartSeries.d.ts +1 -2
  171. package/dist/components/ChartTooltip.js +2 -2
  172. package/dist/components/ChartTooltip.mjs +1 -1
  173. package/dist/components/ChatWindow.js +8 -6
  174. package/dist/components/ChatWindow.mjs +7 -5
  175. package/dist/components/CodeEditor.js +2 -2
  176. package/dist/components/CodeEditor.mjs +1 -1
  177. package/dist/components/CommentThread.js +6 -4
  178. package/dist/components/CommentThread.mjs +5 -3
  179. package/dist/components/CropUpload.d.mts +6 -2
  180. package/dist/components/CropUpload.d.ts +6 -2
  181. package/dist/components/CropUpload.js +4 -4
  182. package/dist/components/CropUpload.mjs +3 -3
  183. package/dist/components/DataTableWithToolbar.d.mts +1 -2
  184. package/dist/components/DataTableWithToolbar.d.ts +1 -2
  185. package/dist/components/DataTableWithToolbar.js +7 -6
  186. package/dist/components/DataTableWithToolbar.mjs +6 -5
  187. package/dist/components/DatePicker.js +3 -2
  188. package/dist/components/DatePicker.mjs +2 -1
  189. package/dist/components/DonutChart.js +5 -5
  190. package/dist/components/DonutChart.mjs +4 -4
  191. package/dist/components/Empty.js +3 -2
  192. package/dist/components/Empty.mjs +2 -1
  193. package/dist/components/FileManager.d.mts +3 -23
  194. package/dist/components/FileManager.d.ts +3 -23
  195. package/dist/components/FileManager.js +2 -2
  196. package/dist/components/FileManager.mjs +1 -1
  197. package/dist/components/FloatButton.js +2 -2
  198. package/dist/components/FloatButton.mjs +1 -1
  199. package/dist/components/Form.js +2 -2
  200. package/dist/components/Form.mjs +1 -1
  201. package/dist/components/FormItem.js +3 -3
  202. package/dist/components/FormItem.mjs +2 -2
  203. package/dist/components/FormWizard.js +3 -3
  204. package/dist/components/FormWizard.mjs +2 -2
  205. package/dist/components/FunnelChart.js +4 -4
  206. package/dist/components/FunnelChart.mjs +3 -3
  207. package/dist/components/GaugeChart.js +3 -2
  208. package/dist/components/GaugeChart.mjs +2 -1
  209. package/dist/components/HeatmapChart.js +3 -3
  210. package/dist/components/HeatmapChart.mjs +2 -2
  211. package/dist/components/Image.js +5 -4
  212. package/dist/components/Image.mjs +4 -3
  213. package/dist/components/ImageAnnotation.d.mts +1 -1
  214. package/dist/components/ImageAnnotation.d.ts +1 -1
  215. package/dist/components/ImageAnnotation.js +3 -2
  216. package/dist/components/ImageAnnotation.mjs +2 -1
  217. package/dist/components/ImageCropper.js +3 -2
  218. package/dist/components/ImageCropper.mjs +2 -1
  219. package/dist/components/ImageGroup.js +4 -3
  220. package/dist/components/ImageGroup.mjs +3 -2
  221. package/dist/components/ImagePreview.js +3 -2
  222. package/dist/components/ImagePreview.mjs +2 -1
  223. package/dist/components/ImageViewer.d.mts +2 -0
  224. package/dist/components/ImageViewer.d.ts +2 -0
  225. package/dist/components/ImageViewer.js +3 -2
  226. package/dist/components/ImageViewer.mjs +2 -1
  227. package/dist/components/InfiniteScroll.js +2 -2
  228. package/dist/components/InfiniteScroll.mjs +1 -1
  229. package/dist/components/Input.js +3 -2
  230. package/dist/components/Input.mjs +2 -1
  231. package/dist/components/InputNumber.js +3 -2
  232. package/dist/components/InputNumber.mjs +2 -1
  233. package/dist/components/Kanban.d.mts +5 -1
  234. package/dist/components/Kanban.d.ts +5 -1
  235. package/dist/components/Kanban.js +3 -3
  236. package/dist/components/Kanban.mjs +2 -2
  237. package/dist/components/LineChart.js +4 -4
  238. package/dist/components/LineChart.mjs +3 -3
  239. package/dist/components/List.d.mts +1 -2
  240. package/dist/components/List.d.ts +1 -2
  241. package/dist/components/List.js +3 -3
  242. package/dist/components/List.mjs +2 -2
  243. package/dist/components/Loading.js +2 -2
  244. package/dist/components/Loading.mjs +1 -1
  245. package/dist/components/MarkdownEditor.js +2 -2
  246. package/dist/components/MarkdownEditor.mjs +1 -1
  247. package/dist/components/Menu.d.mts +2 -2
  248. package/dist/components/Menu.d.ts +2 -2
  249. package/dist/components/MenuItem.d.mts +1 -1
  250. package/dist/components/MenuItem.d.ts +1 -1
  251. package/dist/components/MenuItemGroup.d.mts +1 -1
  252. package/dist/components/MenuItemGroup.d.ts +1 -1
  253. package/dist/components/Message.d.mts +2 -1
  254. package/dist/components/Message.d.ts +2 -1
  255. package/dist/components/Message.js +2 -2
  256. package/dist/components/Message.mjs +1 -1
  257. package/dist/components/Modal.js +2 -2
  258. package/dist/components/Modal.mjs +1 -1
  259. package/dist/components/NotificationCenter.js +6 -6
  260. package/dist/components/NotificationCenter.mjs +5 -5
  261. package/dist/components/PieChart.js +4 -4
  262. package/dist/components/PieChart.mjs +3 -3
  263. package/dist/components/QRCode.d.mts +2 -1
  264. package/dist/components/QRCode.d.ts +2 -1
  265. package/dist/components/QRCode.js +3 -2
  266. package/dist/components/QRCode.mjs +2 -1
  267. package/dist/components/RadarChart.js +4 -4
  268. package/dist/components/RadarChart.mjs +3 -3
  269. package/dist/components/Rate.js +2 -2
  270. package/dist/components/Rate.mjs +1 -1
  271. package/dist/components/Resizable.js +2 -2
  272. package/dist/components/Resizable.mjs +1 -1
  273. package/dist/components/Result.js +2 -2
  274. package/dist/components/Result.mjs +1 -1
  275. package/dist/components/RichTextEditor.js +2 -2
  276. package/dist/components/RichTextEditor.mjs +1 -1
  277. package/dist/components/ScatterChart.js +4 -4
  278. package/dist/components/ScatterChart.mjs +3 -3
  279. package/dist/components/Segmented.d.mts +1 -1
  280. package/dist/components/Segmented.d.ts +1 -1
  281. package/dist/components/Segmented.js +2 -2
  282. package/dist/components/Segmented.mjs +1 -1
  283. package/dist/components/Select.js +2 -2
  284. package/dist/components/Select.mjs +1 -1
  285. package/dist/components/Slider.js +2 -2
  286. package/dist/components/Slider.mjs +1 -1
  287. package/dist/components/Splitter.js +2 -2
  288. package/dist/components/Splitter.mjs +1 -1
  289. package/dist/components/Steps.js +2 -2
  290. package/dist/components/Steps.mjs +1 -1
  291. package/dist/components/StepsItem.js +2 -2
  292. package/dist/components/StepsItem.mjs +1 -1
  293. package/dist/components/SubMenu.d.mts +1 -1
  294. package/dist/components/SubMenu.d.ts +1 -1
  295. package/dist/components/SunburstChart.js +4 -4
  296. package/dist/components/SunburstChart.mjs +3 -3
  297. package/dist/components/TabPane.js +2 -2
  298. package/dist/components/TabPane.mjs +1 -1
  299. package/dist/components/Table.d.mts +2 -2
  300. package/dist/components/Table.d.ts +2 -2
  301. package/dist/components/Table.js +4 -4
  302. package/dist/components/Table.mjs +3 -3
  303. package/dist/components/Tabs.d.mts +0 -4
  304. package/dist/components/Tabs.d.ts +0 -4
  305. package/dist/components/Tabs.js +2 -2
  306. package/dist/components/Tabs.mjs +1 -1
  307. package/dist/components/Tag.js +3 -2
  308. package/dist/components/Tag.mjs +2 -1
  309. package/dist/components/TaskBoard.d.mts +3 -1
  310. package/dist/components/TaskBoard.d.ts +3 -1
  311. package/dist/components/TaskBoard.js +2 -2
  312. package/dist/components/TaskBoard.mjs +1 -1
  313. package/dist/components/Textarea.js +3 -2
  314. package/dist/components/Textarea.mjs +2 -1
  315. package/dist/components/TimePicker.js +2 -2
  316. package/dist/components/TimePicker.mjs +1 -1
  317. package/dist/components/Timeline.d.mts +5 -1
  318. package/dist/components/Timeline.d.ts +5 -1
  319. package/dist/components/Timeline.js +3 -2
  320. package/dist/components/Timeline.mjs +2 -1
  321. package/dist/components/Tour.js +4 -3
  322. package/dist/components/Tour.mjs +3 -2
  323. package/dist/components/Transfer.js +2 -2
  324. package/dist/components/Transfer.mjs +1 -1
  325. package/dist/components/Tree.js +3 -3
  326. package/dist/components/Tree.mjs +2 -2
  327. package/dist/components/TreeMapChart.js +4 -4
  328. package/dist/components/TreeMapChart.mjs +3 -3
  329. package/dist/components/Upload.js +2 -2
  330. package/dist/components/Upload.mjs +1 -1
  331. package/dist/components/VirtualList.js +2 -2
  332. package/dist/components/VirtualList.mjs +1 -1
  333. package/dist/components/VirtualTable.d.mts +7 -2
  334. package/dist/components/VirtualTable.d.ts +7 -2
  335. package/dist/components/VirtualTable.js +2 -2
  336. package/dist/components/VirtualTable.mjs +1 -1
  337. package/dist/index.d.mts +52 -53
  338. package/dist/index.d.ts +52 -53
  339. package/dist/index.js +81 -81
  340. package/dist/index.mjs +80 -80
  341. package/dist/{types-DaC4a0Ny.d.ts → types-CcgZY0mv.d.mts} +2 -2
  342. package/dist/{types-DaC4a0Ny.d.mts → types-CcgZY0mv.d.ts} +2 -2
  343. package/package.json +6 -6
  344. package/dist/chunk-5EVHVZG5.js +0 -131
  345. package/dist/chunk-AF2AEZKM.js +0 -165
  346. package/dist/chunk-CDRQSKXT.mjs +0 -195
  347. package/dist/chunk-EPJ6W4VI.mjs +0 -165
  348. package/dist/chunk-GYQ2DN6Z.mjs +0 -174
  349. package/dist/chunk-MTIGGMHG.mjs +0 -180
  350. package/dist/chunk-NDGA3N6H.js +0 -180
  351. package/dist/chunk-S5Y6UHAK.mjs +0 -131
  352. package/dist/chunk-T7KO6EVK.js +0 -174
@@ -0,0 +1,319 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+ var _chunkTDODFBBOjs = require('./chunk-TDODFBBO.js');
4
+
5
+ // src/components/FileManager.tsx
6
+ var _react = require('react');
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+ var _tigercatcore = require('@expcat/tigercat-core');
33
+ var _jsxruntime = require('react/jsx-runtime');
34
+ var FileManager = ({
35
+ files = [],
36
+ viewMode = "list",
37
+ selectedKeys = [],
38
+ multiple = false,
39
+ columns,
40
+ sortField = "name",
41
+ sortOrder = "asc",
42
+ currentPath = [],
43
+ showHidden = false,
44
+ draggable = false,
45
+ loading = false,
46
+ emptyText,
47
+ searchable = false,
48
+ searchText = "",
49
+ className,
50
+ onSelect,
51
+ onOpen,
52
+ onNavigate,
53
+ onSelectedKeysChange,
54
+ onCurrentPathChange,
55
+ onSearchTextChange,
56
+ onReorder,
57
+ renderIcon,
58
+ locale
59
+ }) => {
60
+ const config = _chunkTDODFBBOjs.useTigerConfig.call(void 0, );
61
+ const mergedLocale = _react.useMemo.call(void 0,
62
+ () => _tigercatcore.mergeTigerLocale.call(void 0, config.locale, locale),
63
+ [config.locale, locale]
64
+ );
65
+ const [localSearch, setLocalSearch] = _react.useState.call(void 0, searchText);
66
+ const [focusedIndex, setFocusedIndex] = _react.useState.call(void 0, 0);
67
+ const contentRef = _react.useRef.call(void 0, null);
68
+ const dragFromIndex = _react.useRef.call(void 0, null);
69
+ const labels = _react.useMemo.call(void 0, () => _tigercatcore.getFileManagerLabels.call(void 0, mergedLocale), [mergedLocale]);
70
+ const metaColumns = _nullishCoalesce(columns, () => ( ["size", "modified"]));
71
+ const showSizeColumn = metaColumns.includes("size");
72
+ const showModifiedColumn = metaColumns.includes("modified");
73
+ const showTypeColumn = metaColumns.includes("type");
74
+ const model = _react.useMemo.call(void 0,
75
+ () => _tigercatcore.deriveFileManagerModel.call(void 0, {
76
+ files,
77
+ currentPath,
78
+ selectedKeys,
79
+ sortField,
80
+ sortOrder,
81
+ showHidden,
82
+ searchText: localSearch || searchText
83
+ }),
84
+ [files, currentPath, selectedKeys, sortField, sortOrder, showHidden, localSearch, searchText]
85
+ );
86
+ const containerClasses = _react.useMemo.call(void 0, () => _tigercatcore.getFileManagerContainerClasses.call(void 0, className), [className]);
87
+ const handleSelect = _react.useCallback.call(void 0,
88
+ (item) => {
89
+ if (item.disabled) return;
90
+ _optionalChain([onSelect, 'optionalCall', _ => _(item)]);
91
+ const keys = _tigercatcore.toggleFileSelection.call(void 0, selectedKeys, item.key, multiple);
92
+ _optionalChain([onSelectedKeysChange, 'optionalCall', _2 => _2(keys)]);
93
+ },
94
+ [selectedKeys, multiple, onSelect, onSelectedKeysChange]
95
+ );
96
+ const handleOpen = _react.useCallback.call(void 0,
97
+ (item) => {
98
+ const result = _tigercatcore.resolveFileOpen.call(void 0, item, currentPath);
99
+ if (!result) return;
100
+ if (result.type === "navigate") {
101
+ _optionalChain([onCurrentPathChange, 'optionalCall', _3 => _3(result.path)]);
102
+ _optionalChain([onNavigate, 'optionalCall', _4 => _4(result.path)]);
103
+ } else {
104
+ _optionalChain([onOpen, 'optionalCall', _5 => _5(result.item)]);
105
+ }
106
+ },
107
+ [currentPath, onOpen, onNavigate, onCurrentPathChange]
108
+ );
109
+ const navigateToBreadcrumb = _react.useCallback.call(void 0,
110
+ (index) => {
111
+ const newPath = _tigercatcore.sliceBreadcrumbPath.call(void 0, currentPath, index);
112
+ _optionalChain([onCurrentPathChange, 'optionalCall', _6 => _6(newPath)]);
113
+ _optionalChain([onNavigate, 'optionalCall', _7 => _7(newPath)]);
114
+ },
115
+ [currentPath, onNavigate, onCurrentPathChange]
116
+ );
117
+ const breadcrumbItems = [
118
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
119
+ "span",
120
+ {
121
+ className: _tigercatcore.fileManagerBreadcrumbItemClasses,
122
+ onClick: () => navigateToBreadcrumb(0),
123
+ children: labels.rootText
124
+ },
125
+ "root"
126
+ ),
127
+ ...currentPath.flatMap((seg, i) => [
128
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _tigercatcore.fileManagerBreadcrumbSeparatorClasses, children: "/" }, `sep-${i}`),
129
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
130
+ "span",
131
+ {
132
+ className: _tigercatcore.fileManagerBreadcrumbItemClasses,
133
+ onClick: () => navigateToBreadcrumb(i + 1),
134
+ children: seg
135
+ },
136
+ `path-${i}`
137
+ )
138
+ ])
139
+ ];
140
+ const contentClass = viewMode === "grid" ? `${_tigercatcore.fileManagerContentClasses} grid grid-cols-4 gap-2` : _tigercatcore.fileManagerContentClasses;
141
+ const firstEnabledIndex = model.processedItems.findIndex((item) => !item.disabled);
142
+ const focusedItem = focusedIndex >= 0 && !_optionalChain([model, 'access', _8 => _8.processedItems, 'access', _9 => _9[focusedIndex], 'optionalAccess', _10 => _10.disabled]) ? focusedIndex : firstEnabledIndex;
143
+ const focusItemAt = _react.useCallback.call(void 0, (index) => {
144
+ requestAnimationFrame(() => {
145
+ _optionalChain([contentRef, 'access', _11 => _11.current, 'optionalAccess', _12 => _12.querySelector, 'call', _13 => _13(`[data-option-index="${index}"]`), 'optionalAccess', _14 => _14.focus, 'call', _15 => _15()]);
146
+ });
147
+ }, []);
148
+ const moveFocus = _react.useCallback.call(void 0,
149
+ (current, direction) => {
150
+ if (model.processedItems.length === 0) return;
151
+ let next = current;
152
+ for (let i = 0; i < model.processedItems.length; i += 1) {
153
+ next = (next + direction + model.processedItems.length) % model.processedItems.length;
154
+ if (!_optionalChain([model, 'access', _16 => _16.processedItems, 'access', _17 => _17[next], 'optionalAccess', _18 => _18.disabled])) {
155
+ setFocusedIndex(next);
156
+ focusItemAt(next);
157
+ return;
158
+ }
159
+ }
160
+ },
161
+ [focusItemAt, model.processedItems]
162
+ );
163
+ const handleItemKeyDown = _react.useCallback.call(void 0,
164
+ (event, item, index) => {
165
+ switch (event.key) {
166
+ case "ArrowDown":
167
+ case "ArrowRight":
168
+ event.preventDefault();
169
+ moveFocus(index, 1);
170
+ return;
171
+ case "ArrowUp":
172
+ case "ArrowLeft":
173
+ event.preventDefault();
174
+ moveFocus(index, -1);
175
+ return;
176
+ case "Home":
177
+ event.preventDefault();
178
+ if (firstEnabledIndex >= 0) {
179
+ setFocusedIndex(firstEnabledIndex);
180
+ focusItemAt(firstEnabledIndex);
181
+ }
182
+ return;
183
+ case "End": {
184
+ event.preventDefault();
185
+ let lastEnabledIndex = -1;
186
+ for (let next = model.processedItems.length - 1; next >= 0; next -= 1) {
187
+ if (!_optionalChain([model, 'access', _19 => _19.processedItems, 'access', _20 => _20[next], 'optionalAccess', _21 => _21.disabled])) {
188
+ lastEnabledIndex = next;
189
+ break;
190
+ }
191
+ }
192
+ if (lastEnabledIndex >= 0) {
193
+ setFocusedIndex(lastEnabledIndex);
194
+ focusItemAt(lastEnabledIndex);
195
+ }
196
+ return;
197
+ }
198
+ case " ":
199
+ event.preventDefault();
200
+ handleSelect(item);
201
+ return;
202
+ case "Enter":
203
+ event.preventDefault();
204
+ handleSelect(item);
205
+ handleOpen(item);
206
+ return;
207
+ default:
208
+ return;
209
+ }
210
+ },
211
+ [firstEnabledIndex, focusItemAt, handleOpen, handleSelect, model.processedItems, moveFocus]
212
+ );
213
+ const handleDragStart = _react.useCallback.call(void 0,
214
+ (event, item, index) => {
215
+ if (!draggable || item.disabled) return;
216
+ dragFromIndex.current = index;
217
+ event.dataTransfer.effectAllowed = "move";
218
+ event.dataTransfer.setData("text/plain", String(_tigercatcore.toFileDragItem.call(void 0, item, index).id));
219
+ },
220
+ [draggable]
221
+ );
222
+ const handleDragOver = _react.useCallback.call(void 0,
223
+ (event) => {
224
+ if (!draggable || dragFromIndex.current === null) return;
225
+ event.preventDefault();
226
+ event.dataTransfer.dropEffect = "move";
227
+ },
228
+ [draggable]
229
+ );
230
+ const handleDrop = _react.useCallback.call(void 0,
231
+ (event, toIndex) => {
232
+ if (!draggable) return;
233
+ const fromIndex = dragFromIndex.current;
234
+ dragFromIndex.current = null;
235
+ if (fromIndex === null || fromIndex === toIndex) return;
236
+ event.preventDefault();
237
+ const items = model.processedItems;
238
+ const reordered = _tigercatcore.applyFileDragReorder.call(void 0, items, {
239
+ item: _tigercatcore.toFileDragItem.call(void 0, items[fromIndex], fromIndex),
240
+ fromIndex,
241
+ toIndex,
242
+ fromContainerId: "",
243
+ toContainerId: ""
244
+ });
245
+ _optionalChain([onReorder, 'optionalCall', _22 => _22(reordered, fromIndex, toIndex)]);
246
+ },
247
+ [draggable, model.processedItems, onReorder]
248
+ );
249
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _tigercatcore.classNames.call(void 0, containerClasses), children: [
250
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _tigercatcore.fileManagerToolbarClasses, children: [
251
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { className: _tigercatcore.fileManagerBreadcrumbClasses, "aria-label": "File path", children: breadcrumbItems }),
252
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
253
+ searchable && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
254
+ "input",
255
+ {
256
+ type: "text",
257
+ className: _tigercatcore.fileManagerSearchClasses,
258
+ placeholder: _tigercatcore.resolveLocaleText.call(void 0, "Search...", _optionalChain([mergedLocale, 'optionalAccess', _23 => _23.common, 'optionalAccess', _24 => _24.searchPlaceholder])),
259
+ value: localSearch,
260
+ onChange: (e) => {
261
+ setLocalSearch(e.target.value);
262
+ _optionalChain([onSearchTextChange, 'optionalCall', _25 => _25(e.target.value)]);
263
+ }
264
+ }
265
+ )
266
+ ] }),
267
+ model.processedItems.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
268
+ "div",
269
+ {
270
+ ref: contentRef,
271
+ className: contentClass,
272
+ role: "listbox",
273
+ "aria-multiselectable": multiple,
274
+ children: model.processedItems.map((item, index) => {
275
+ const isSelected = model.selectedSet.has(item.key);
276
+ const itemClass = _tigercatcore.getFileItemClasses.call(void 0, viewMode, isSelected);
277
+ const dragItem = draggable && !item.disabled ? _tigercatcore.toFileDragItem.call(void 0, item, index) : void 0;
278
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
279
+ "div",
280
+ {
281
+ className: itemClass,
282
+ role: "option",
283
+ "aria-selected": isSelected,
284
+ tabIndex: !item.disabled && index === focusedItem ? 0 : -1,
285
+ "data-option-index": index,
286
+ "data-disabled": item.disabled || void 0,
287
+ "data-drag-id": _optionalChain([dragItem, 'optionalAccess', _26 => _26.id]),
288
+ onFocus: () => {
289
+ if (!item.disabled) setFocusedIndex(index);
290
+ },
291
+ onKeyDown: (event) => handleItemKeyDown(event, item, index),
292
+ onClick: () => handleSelect(item),
293
+ onDoubleClick: () => handleOpen(item),
294
+ draggable: draggable && !item.disabled,
295
+ onDragStart: (event) => handleDragStart(event, item, index),
296
+ onDragOver: handleDragOver,
297
+ onDrop: (event) => handleDrop(event, index),
298
+ children: [
299
+ renderIcon ? renderIcon(item) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _tigercatcore.fileManagerItemIconClasses, "aria-hidden": "true", children: item.type === "folder" ? "\u{1F4C1}" : "\u{1F4C4}" }),
300
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _tigercatcore.fileManagerItemNameClasses, children: item.name }),
301
+ viewMode === "list" && showTypeColumn && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _tigercatcore.fileManagerItemMetaClasses, children: _nullishCoalesce(item.extension, () => ( item.type)) }),
302
+ viewMode === "list" && showSizeColumn && item.size !== void 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _tigercatcore.fileManagerItemMetaClasses, children: _tigercatcore.formatFileSizeLabel.call(void 0, item.size) }),
303
+ viewMode === "list" && showModifiedColumn && item.modified && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _tigercatcore.fileManagerItemMetaClasses, children: item.modified })
304
+ ]
305
+ },
306
+ item.key
307
+ );
308
+ })
309
+ }
310
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _tigercatcore.fileManagerEmptyClasses, children: _tigercatcore.resolveLocaleText.call(void 0, "Empty folder", emptyText, _optionalChain([mergedLocale, 'optionalAccess', _27 => _27.common, 'optionalAccess', _28 => _28.emptyText])) }),
311
+ loading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _tigercatcore.fileManagerLoadingClasses, children: _tigercatcore.resolveLocaleText.call(void 0, "Loading...", _optionalChain([mergedLocale, 'optionalAccess', _29 => _29.common, 'optionalAccess', _30 => _30.loadingText])) })
312
+ ] });
313
+ };
314
+ var FileManager_default = FileManager;
315
+
316
+
317
+
318
+
319
+ exports.FileManager = FileManager; exports.FileManager_default = FileManager_default;
@@ -26,6 +26,7 @@ var _react = require('react'); var _react2 = _interopRequireDefault(_react);
26
26
 
27
27
 
28
28
 
29
+
29
30
  var _tigercatcore = require('@expcat/tigercat-core');
30
31
  var _jsxruntime = require('react/jsx-runtime');
31
32
  var TabsContext = _react.createContext.call(void 0, null);
@@ -43,8 +44,7 @@ var TabPane = ({
43
44
  children,
44
45
  renderMode = "pane",
45
46
  tabId,
46
- panelId,
47
- tabIndex
47
+ panelId
48
48
  }) => {
49
49
  const tabsContext = useTabsContext();
50
50
  if (!tabsContext) {
@@ -90,10 +90,8 @@ var TabPane = ({
90
90
  return;
91
91
  }
92
92
  const tabList = _optionalChain([event, 'access', _ => _.currentTarget, 'optionalAccess', _2 => _2.closest, 'call', _3 => _3('[role="tablist"]')]);
93
- const tabButtons = Array.from(
94
- _nullishCoalesce(_optionalChain([tabList, 'optionalAccess', _4 => _4.querySelectorAll, 'call', _5 => _5('[role="tab"]')]), () => ( []))
95
- );
96
- const enabled = tabButtons.filter((button) => !button.disabled);
93
+ const tabButtons = Array.from(_nullishCoalesce(_optionalChain([tabList, 'optionalAccess', _4 => _4.querySelectorAll, 'call', _5 => _5('[role="tab"]')]), () => ( [])));
94
+ const enabled = tabButtons.filter((button) => button.getAttribute("aria-disabled") !== "true");
97
95
  const currentIndex = enabled.findIndex((button) => button.id === tabId);
98
96
  if (currentIndex === -1) {
99
97
  return;
@@ -125,23 +123,22 @@ var TabPane = ({
125
123
  }
126
124
  };
127
125
  const handleClose = (event) => {
126
+ event.stopPropagation();
128
127
  if (!disabled) {
129
128
  tabsContext.handleTabClose(tabKey, event);
130
129
  }
131
130
  };
132
131
  if (renderMode === "tab") {
133
132
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
134
- "button",
133
+ "div",
135
134
  {
136
- type: "button",
137
135
  className: tabItemClasses,
138
136
  role: "tab",
139
137
  id: tabId,
140
138
  "aria-controls": panelId,
141
139
  "aria-selected": isActive,
142
140
  "aria-disabled": disabled,
143
- disabled,
144
- tabIndex: typeof tabIndex === "number" ? tabIndex : isActive ? 0 : -1,
141
+ tabIndex: disabled ? -1 : isActive ? 0 : -1,
145
142
  "data-tiger-tabs-id": tabsContext.idBase,
146
143
  "data-tiger-tab-key": typeof tabKey === "number" ? `n:${tabKey}` : `s:${tabKey}`,
147
144
  onClick: handleClick,
@@ -150,9 +147,9 @@ var TabPane = ({
150
147
  icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex items-center", children: icon }),
151
148
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: label }),
152
149
  isClosable && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
153
- "span",
150
+ "button",
154
151
  {
155
- role: "button",
152
+ type: "button",
156
153
  className: _tigercatcore.tabCloseButtonClasses,
157
154
  "aria-label": `Close ${String(label)}`,
158
155
  tabIndex: -1,
@@ -234,7 +231,6 @@ var Tabs = ({
234
231
  if (firstKey === void 0) firstKey = key;
235
232
  keys.push(key);
236
233
  if (!child.props.disabled) enabledKeys.push(key);
237
- const resolvedActiveKey = _nullishCoalesce(_nullishCoalesce(controlledActiveKey, () => ( defaultActiveKey)), () => ( firstKey));
238
234
  const tabId = `${idBase}-tab-${String(key)}`;
239
235
  const panelId = `${idBase}-panel-${String(key)}`;
240
236
  items.push(
@@ -242,8 +238,7 @@ var Tabs = ({
242
238
  key: `tab-${String(key)}`,
243
239
  renderMode: "tab",
244
240
  tabId,
245
- panelId,
246
- tabIndex: key === resolvedActiveKey ? 0 : -1
241
+ panelId
247
242
  })
248
243
  );
249
244
  panes.push(
@@ -262,7 +257,7 @@ var Tabs = ({
262
257
  tabKeys: keys,
263
258
  enabledTabKeys: enabledKeys
264
259
  };
265
- }, [children, controlledActiveKey, defaultActiveKey, idBase]);
260
+ }, [children, idBase]);
266
261
  const activeKey = controlledActiveKey !== void 0 ? controlledActiveKey : internalActiveKey !== void 0 ? internalActiveKey : firstTabKey;
267
262
  const activeTabIndex = _react.useMemo.call(void 0, () => tabKeys.indexOf(_nullishCoalesce(activeKey, () => ( ""))), [tabKeys, activeKey]);
268
263
  const handleTabClick = _react.useCallback.call(void 0,
@@ -281,9 +276,12 @@ var Tabs = ({
281
276
  const handleTabClose = _react.useCallback.call(void 0,
282
277
  (key, event) => {
283
278
  event.stopPropagation();
279
+ if (controlledActiveKey === void 0 && key === activeKey) {
280
+ setInternalActiveKey(_tigercatcore.getNextActiveKey.call(void 0, key, activeKey, tabKeys));
281
+ }
284
282
  _optionalChain([onEdit, 'optionalCall', _8 => _8({ targetKey: key, action: "remove" })]);
285
283
  },
286
- [onEdit]
284
+ [onEdit, controlledActiveKey, activeKey, tabKeys]
287
285
  );
288
286
  const handleTabAdd = _react.useCallback.call(void 0, () => {
289
287
  _optionalChain([onEdit, 'optionalCall', _9 => _9({ targetKey: void 0, action: "add" })]);
@@ -1,3 +1,7 @@
1
+ import {
2
+ useTigerConfig
3
+ } from "./chunk-QAIBQHIO.mjs";
4
+
1
5
  // src/components/Empty.tsx
2
6
  import { useMemo } from "react";
3
7
  import {
@@ -8,7 +12,8 @@ import {
8
12
  emptyActionsClasses,
9
13
  emptyIllustrationViewBox,
10
14
  emptyIllustrationPaths,
11
- getEmptyDescription
15
+ getEmptyDescription,
16
+ mergeTigerLocale
12
17
  } from "@expcat/tigercat-core";
13
18
  import { jsx, jsxs } from "react/jsx-runtime";
14
19
  var Empty = ({
@@ -19,9 +24,18 @@ var Empty = ({
19
24
  extra,
20
25
  className,
21
26
  children,
27
+ locale,
22
28
  ...props
23
29
  }) => {
24
- const descText = useMemo(() => description ?? getEmptyDescription(preset), [description, preset]);
30
+ const config = useTigerConfig();
31
+ const mergedLocale = useMemo(
32
+ () => mergeTigerLocale(config.locale, locale),
33
+ [config.locale, locale]
34
+ );
35
+ const descText = useMemo(
36
+ () => description ?? getEmptyDescription(preset, mergedLocale),
37
+ [description, preset, mergedLocale]
38
+ );
25
39
  const wrapperClasses = useMemo(() => classNames(emptyBaseClasses, className), [className]);
26
40
  return /* @__PURE__ */ jsxs("div", { className: wrapperClasses, ...props, children: [
27
41
  showImage && /* @__PURE__ */ jsx("div", { className: emptyImageClasses, children: image !== void 0 ? image : /* @__PURE__ */ jsx(
@@ -3,13 +3,13 @@
3
3
  var _chunkXTV5JLLCjs = require('./chunk-XTV5JLLC.js');
4
4
 
5
5
 
6
- var _chunkWV5XHYW6js = require('./chunk-WV5XHYW6.js');
6
+ var _chunk23XPDNCAjs = require('./chunk-23XPDNCA.js');
7
7
 
8
8
 
9
9
  var _chunkAX5XRD2Qjs = require('./chunk-AX5XRD2Q.js');
10
10
 
11
11
 
12
- var _chunkUVMQJOTXjs = require('./chunk-UVMQJOTX.js');
12
+ var _chunkSK7PXSVEjs = require('./chunk-SK7PXSVE.js');
13
13
 
14
14
 
15
15
  var _chunkE5GD3H7Ljs = require('./chunk-E5GD3H7L.js');
@@ -49,12 +49,12 @@ var LineChart = ({
49
49
  series,
50
50
  xScale: xScaleProp,
51
51
  yScale: yScaleProp,
52
- lineColor: _lineColor = "var(--tiger-primary,#2563eb)",
52
+ lineColor = "var(--tiger-primary,#2563eb)",
53
53
  strokeWidth = 2,
54
54
  curve = "linear",
55
55
  showPoints = true,
56
56
  pointSize = 4,
57
- pointColor: _pointColor,
57
+ pointColor,
58
58
  showGrid = true,
59
59
  showAxis = true,
60
60
  showXAxis = true,
@@ -112,8 +112,13 @@ var LineChart = ({
112
112
  [width, height, padding]
113
113
  );
114
114
  const resolvedSeries = _react.useMemo.call(void 0,
115
- () => _tigercatcore.resolveSeriesData.call(void 0, series, data),
116
- [series, data]
115
+ () => _tigercatcore.resolveSeriesData.call(void 0, series, data, {
116
+ // Single-series colors (`lineColor`/`pointColor`) seed the synthesized
117
+ // series so they take effect when only `data` is provided.
118
+ color: lineColor,
119
+ pointColor
120
+ }),
121
+ [series, data, lineColor, pointColor]
117
122
  );
118
123
  const {
119
124
  activeIndex,
@@ -259,9 +264,19 @@ var LineChart = ({
259
264
  setHoveredPointInfo(null);
260
265
  _optionalChain([onPointHover, 'optionalCall', _9 => _9(null, null, null)]);
261
266
  }, [onPointHover]);
267
+ const showPointTooltipFromElement = _react.useCallback.call(void 0,
268
+ (el, seriesIndex, pointIndex) => {
269
+ if (!hoverable) return;
270
+ const rect = el.getBoundingClientRect();
271
+ setHoveredPointInfo({ seriesIndex, pointIndex });
272
+ setTooltipPosition({ x: rect.left + rect.width / 2, y: rect.top + rect.height / 2 });
273
+ _optionalChain([onPointHover, 'optionalCall', _10 => _10(seriesIndex, pointIndex, _optionalChain([resolvedSeries, 'access', _11 => _11[seriesIndex], 'optionalAccess', _12 => _12.data, 'access', _13 => _13[pointIndex]]))]);
274
+ },
275
+ [hoverable, onPointHover, resolvedSeries]
276
+ );
262
277
  const handlePointClick = _react.useCallback.call(void 0,
263
278
  (seriesIndex, pointIndex) => {
264
- _optionalChain([onPointClick, 'optionalCall', _10 => _10(seriesIndex, pointIndex, _optionalChain([resolvedSeries, 'access', _11 => _11[seriesIndex], 'optionalAccess', _12 => _12.data, 'access', _13 => _13[pointIndex]]))]);
279
+ _optionalChain([onPointClick, 'optionalCall', _14 => _14(seriesIndex, pointIndex, _optionalChain([resolvedSeries, 'access', _15 => _15[seriesIndex], 'optionalAccess', _16 => _16.data, 'access', _17 => _17[pointIndex]]))]);
265
280
  handleSeriesSelect(seriesIndex);
266
281
  },
267
282
  [onPointClick, resolvedSeries, handleSeriesSelect]
@@ -275,6 +290,7 @@ var LineChart = ({
275
290
  },
276
291
  [selectable, handleSeriesSelect]
277
292
  );
293
+ const pointClickable = selectable || !!onPointClick;
278
294
  const chart = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
279
295
  _chunkUKLVOR4Ejs.ChartCanvas,
280
296
  {
@@ -435,8 +451,10 @@ var LineChart = ({
435
451
  }
436
452
  ),
437
453
  sd.showPoints && sd.points.map((point) => {
438
- const isHovered = _optionalChain([hoveredPointInfo, 'optionalAccess', _14 => _14.seriesIndex]) === sd.seriesIndex && _optionalChain([hoveredPointInfo, 'optionalAccess', _15 => _15.pointIndex]) === point.pointIndex;
454
+ const isHovered = _optionalChain([hoveredPointInfo, 'optionalAccess', _18 => _18.seriesIndex]) === sd.seriesIndex && _optionalChain([hoveredPointInfo, 'optionalAccess', _19 => _19.pointIndex]) === point.pointIndex;
439
455
  const hoverSize = sd.pointSize + 2;
456
+ const datum = _optionalChain([resolvedSeries, 'access', _20 => _20[sd.seriesIndex], 'optionalAccess', _21 => _21.data, 'optionalAccess', _22 => _22[point.pointIndex]]);
457
+ const pointInteractive = hoverable || pointClickable;
440
458
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
441
459
  "circle",
442
460
  {
@@ -446,17 +464,46 @@ var LineChart = ({
446
464
  fill: sd.pointHollow ? "white" : pointGradient ? `url(#${gradientPrefix}-point-${sd.seriesKey})` : sd.pointColor,
447
465
  stroke: sd.pointHollow ? sd.pointColor : "none",
448
466
  strokeWidth: sd.pointHollow ? 2 : 0,
449
- className: _tigercatcore.linePointTransitionClasses,
467
+ className: _tigercatcore.classNames.call(void 0,
468
+ _tigercatcore.linePointTransitionClasses,
469
+ pointInteractive && "cursor-pointer"
470
+ ),
450
471
  style: isHovered ? { filter: `drop-shadow(0 0 4px ${sd.color})` } : void 0,
472
+ role: pointInteractive ? "button" : "img",
473
+ "aria-label": _nullishCoalesce(_optionalChain([datum, 'optionalAccess', _23 => _23.label]), () => ( String(_nullishCoalesce(_optionalChain([datum, 'optionalAccess', _24 => _24.y]), () => ( ""))))),
474
+ tabIndex: pointInteractive ? 0 : void 0,
451
475
  "data-point-index": point.pointIndex,
452
476
  "data-series-key": sd.seriesKey,
453
- onMouseEnter: (e) => handlePointMouseEnter(sd.seriesIndex, point.pointIndex, e),
454
- onMouseMove: handlePointMouseMove,
455
- onMouseLeave: handlePointMouseLeave,
456
- onClick: (e) => {
477
+ onMouseEnter: hoverable ? (e) => handlePointMouseEnter(sd.seriesIndex, point.pointIndex, e) : void 0,
478
+ onMouseMove: hoverable ? handlePointMouseMove : void 0,
479
+ onMouseLeave: hoverable ? handlePointMouseLeave : void 0,
480
+ onClick: pointClickable ? (e) => {
457
481
  e.stopPropagation();
458
482
  handlePointClick(sd.seriesIndex, point.pointIndex);
459
- }
483
+ } : void 0,
484
+ onFocus: hoverable ? (e) => showPointTooltipFromElement(
485
+ e.currentTarget,
486
+ sd.seriesIndex,
487
+ point.pointIndex
488
+ ) : void 0,
489
+ onBlur: hoverable ? handlePointMouseLeave : void 0,
490
+ onKeyDown: pointInteractive ? (e) => {
491
+ if (e.key === "Enter" || e.key === " ") {
492
+ e.preventDefault();
493
+ e.stopPropagation();
494
+ if (pointClickable) {
495
+ handlePointClick(sd.seriesIndex, point.pointIndex);
496
+ } else {
497
+ showPointTooltipFromElement(
498
+ e.currentTarget,
499
+ sd.seriesIndex,
500
+ point.pointIndex
501
+ );
502
+ }
503
+ } else if (e.key === "Escape" && hoverable) {
504
+ handlePointMouseLeave();
505
+ }
506
+ } : void 0
460
507
  },
461
508
  `point-${sd.seriesKey}-${point.pointIndex}`
462
509
  );
@@ -469,7 +516,7 @@ var LineChart = ({
469
516
  }
470
517
  );
471
518
  const tooltip = showTooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
472
- _chunkUVMQJOTXjs.ChartTooltip,
519
+ _chunkSK7PXSVEjs.ChartTooltip,
473
520
  {
474
521
  content: tooltipContent,
475
522
  visible: hoveredPointInfo !== null && tooltipContent !== "",
@@ -486,7 +533,7 @@ var LineChart = ({
486
533
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: wrapperClasses, children: [
487
534
  chart,
488
535
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
489
- _chunkWV5XHYW6js.ChartLegend,
536
+ _chunk23XPDNCAjs.ChartLegend,
490
537
  {
491
538
  items: legendItems,
492
539
  position: legendPosition,
@@ -1,7 +1,12 @@
1
1
  // src/components/ChartTooltip.tsx
2
2
  import { useRef, useEffect, useState, useMemo } from "react";
3
3
  import { createPortal } from "react-dom";
4
- import { classNames, getChartTooltipTransform, isBrowser } from "@expcat/tigercat-core";
4
+ import {
5
+ classNames,
6
+ getChartTooltipTransform,
7
+ isBrowser,
8
+ resolveChartTooltipPosition
9
+ } from "@expcat/tigercat-core";
5
10
  import { jsx } from "react/jsx-runtime";
6
11
  var ChartTooltip = ({
7
12
  content,
@@ -14,24 +19,28 @@ var ChartTooltip = ({
14
19
  const [adjustedPosition, setAdjustedPosition] = useState({ x, y });
15
20
  useEffect(() => {
16
21
  if (!visible) return;
17
- let newX = x + 12;
18
- let newY = y - 8;
22
+ const initialPosition = resolveChartTooltipPosition({
23
+ x,
24
+ y,
25
+ rect: { width: 0, height: 0 },
26
+ viewport: {
27
+ width: typeof window === "undefined" ? 0 : window.innerWidth,
28
+ height: typeof window === "undefined" ? 0 : window.innerHeight
29
+ }
30
+ });
19
31
  const frameHandle = requestAnimationFrame(() => {
20
32
  if (!tooltipRef.current) return;
21
33
  const rect = tooltipRef.current.getBoundingClientRect();
22
- const viewportWidth = window.innerWidth;
23
- const viewportHeight = window.innerHeight;
24
- if (newX + rect.width > viewportWidth - 8) {
25
- newX = x - rect.width - 12;
26
- }
27
- if (newY + rect.height > viewportHeight - 8) {
28
- newY = y - rect.height - 8;
29
- }
30
- newX = Math.max(8, newX);
31
- newY = Math.max(8, newY);
32
- setAdjustedPosition({ x: newX, y: newY });
34
+ setAdjustedPosition(
35
+ resolveChartTooltipPosition({
36
+ x,
37
+ y,
38
+ rect,
39
+ viewport: { width: window.innerWidth, height: window.innerHeight }
40
+ })
41
+ );
33
42
  });
34
- setAdjustedPosition({ x: newX, y: newY });
43
+ setAdjustedPosition(initialPosition);
35
44
  return () => cancelAnimationFrame(frameHandle);
36
45
  }, [x, y, visible]);
37
46
  const tooltipClasses = useMemo(