@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
@@ -1,12 +1,15 @@
1
1
  import {
2
2
  Modal
3
- } from "./chunk-M3MOSUZO.mjs";
3
+ } from "./chunk-SI3P3V75.mjs";
4
4
  import {
5
5
  ImageCropper
6
- } from "./chunk-SY23FAXK.mjs";
6
+ } from "./chunk-T6HNFCOW.mjs";
7
7
  import {
8
8
  Button
9
9
  } from "./chunk-5TE7KLE5.mjs";
10
+ import {
11
+ useTigerConfig
12
+ } from "./chunk-QAIBQHIO.mjs";
10
13
 
11
14
  // src/components/CropUpload.tsx
12
15
  import { useState, useRef, useCallback, useMemo } from "react";
@@ -18,21 +21,30 @@ import {
18
21
  validateUploadFile,
19
22
  readFileAsDataUrl,
20
23
  getCropperResult,
21
- isActivationKey
24
+ isActivationKey,
25
+ getImageEditorLabels,
26
+ mergeTigerLocale
22
27
  } from "@expcat/tigercat-core";
23
28
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
24
29
  var CropUpload = ({
30
+ locale,
25
31
  accept = "image/*",
26
32
  disabled = false,
27
33
  maxSize,
28
34
  cropperProps,
29
- modalTitle = "\u88C1\u526A\u56FE\u7247",
30
- modalWidth: _modalWidth = 520,
35
+ modalTitle,
36
+ modalWidth = 520,
31
37
  className,
32
38
  children,
33
39
  onCropComplete,
34
40
  onError
35
41
  }) => {
42
+ const config = useTigerConfig();
43
+ const mergedLocale = useMemo(
44
+ () => mergeTigerLocale(config.locale, locale),
45
+ [config.locale, locale]
46
+ );
47
+ const labels = useMemo(() => getImageEditorLabels(mergedLocale), [mergedLocale]);
36
48
  const fileInputRef = useRef(null);
37
49
  const cropperRef = useRef(null);
38
50
  const [modalVisible, setModalVisible] = useState(false);
@@ -112,7 +124,7 @@ var CropUpload = ({
112
124
  onClick: handleTriggerClick,
113
125
  role: "button",
114
126
  tabIndex: disabled ? -1 : 0,
115
- "aria-label": "Select image to crop and upload",
127
+ "aria-label": labels.selectImageAriaLabel,
116
128
  "aria-disabled": disabled ? "true" : void 0,
117
129
  onKeyDown: handleKeyDown,
118
130
  children: children || /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -135,7 +147,7 @@ var CropUpload = ({
135
147
  )
136
148
  }
137
149
  ),
138
- /* @__PURE__ */ jsx("span", { children: "\u9009\u62E9\u56FE\u7247" })
150
+ /* @__PURE__ */ jsx("span", { children: labels.selectImageText })
139
151
  ] })
140
152
  }
141
153
  ),
@@ -144,16 +156,17 @@ var CropUpload = ({
144
156
  {
145
157
  open: modalVisible,
146
158
  size: "lg",
147
- title: modalTitle,
159
+ width: modalWidth,
160
+ title: modalTitle ?? labels.cropModalTitle,
148
161
  className: "tiger-crop-upload-modal",
149
162
  closable: true,
150
163
  maskClosable: false,
151
164
  onClose: handleCancel,
152
165
  footer: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-3", children: [
153
- /* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: handleCancel, children: "\u53D6\u6D88" }),
154
- /* @__PURE__ */ jsx(Button, { onClick: handleConfirm, loading: cropping, children: "\u786E\u8BA4\u88C1\u526A" })
166
+ /* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: handleCancel, children: labels.cropCancelText }),
167
+ /* @__PURE__ */ jsx(Button, { onClick: handleConfirm, loading: cropping, children: labels.cropConfirmText })
155
168
  ] }),
156
- children: imageSrc && /* @__PURE__ */ jsx(ImageCropper, { ref: cropperRef, src: imageSrc, ...cropperProps })
169
+ children: imageSrc && /* @__PURE__ */ jsx(ImageCropper, { ref: cropperRef, src: imageSrc, locale, ...cropperProps })
157
170
  }
158
171
  )
159
172
  ] });
@@ -88,8 +88,8 @@ var Cascader = (props) => {
88
88
  const isSearchMode = showSearch && searchQuery.length > 0;
89
89
  const flattenedOptions = useMemo(() => {
90
90
  if (!showSearch) return [];
91
- return flattenCascaderOptions(options);
92
- }, [showSearch, options]);
91
+ return flattenCascaderOptions(options, [], [], changeOnSelect);
92
+ }, [showSearch, options, changeOnSelect]);
93
93
  const searchResults = useMemo(() => {
94
94
  if (!isSearchMode) return [];
95
95
  return filterCascaderOptions(flattenedOptions, searchQuery, showSearch);
@@ -270,7 +270,7 @@ var Cascader = (props) => {
270
270
  disabled: item.disabled
271
271
  }),
272
272
  onClick: () => handleSearchResultClick(item.valuePath, item.disabled),
273
- children: item.label
273
+ children: typeof showSearch === "object" && showSearch.render ? showSearch.render(searchQuery, item.path) : item.label
274
274
  },
275
275
  item.valuePath.join(",")
276
276
  )) })
@@ -1,5 +1,9 @@
1
+ import {
2
+ useTigerConfig
3
+ } from "./chunk-QAIBQHIO.mjs";
4
+
1
5
  // src/components/Badge.tsx
2
- import React from "react";
6
+ import React, { useMemo } from "react";
3
7
  import {
4
8
  classNames,
5
9
  getBadgeVariantClasses,
@@ -10,11 +14,14 @@ import {
10
14
  badgeWrapperClasses,
11
15
  badgePositionClasses,
12
16
  formatBadgeContent,
13
- shouldHideBadge
17
+ shouldHideBadge,
18
+ getStatusLabels,
19
+ mergeTigerLocale
14
20
  } from "@expcat/tigercat-core";
15
21
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
16
22
  var Badge = React.memo(
17
23
  ({
24
+ locale,
18
25
  variant = "danger",
19
26
  size = "md",
20
27
  type = "number",
@@ -28,6 +35,11 @@ var Badge = React.memo(
28
35
  ["aria-label"]: ariaLabelProp,
29
36
  ...props
30
37
  }) => {
38
+ const config = useTigerConfig();
39
+ const labels = useMemo(
40
+ () => getStatusLabels(mergeTigerLocale(config.locale, locale)),
41
+ [config.locale, locale]
42
+ );
31
43
  const isDot = type === "dot";
32
44
  const isHidden = shouldHideBadge(content, type, showZero);
33
45
  const displayContent = formatBadgeContent(content, max, showZero);
@@ -39,7 +51,7 @@ var Badge = React.memo(
39
51
  !standalone && badgePositionClasses[position],
40
52
  className
41
53
  );
42
- const computedAriaLabel = ariaLabelProp ?? (isDot ? "notification" : type === "number" ? `${displayContent} notifications` : `${displayContent ?? ""}`);
54
+ const computedAriaLabel = ariaLabelProp ?? (isDot ? labels.badgeLabel : type === "number" ? labels.badgeCountLabel.replace("{count}", String(displayContent)) : `${displayContent ?? ""}`);
43
55
  if (isHidden) {
44
56
  return standalone ? null : /* @__PURE__ */ jsx(Fragment, { children });
45
57
  }
@@ -1,4 +1,8 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/components/Timeline.tsx
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/Timeline.tsx
2
6
  var _react = require('react');
3
7
 
4
8
 
@@ -12,6 +16,8 @@ var _react = require('react');
12
16
 
13
17
 
14
18
 
19
+
20
+
15
21
  var _tigercatcore = require('@expcat/tigercat-core');
16
22
  var _jsxruntime = require('react/jsx-runtime');
17
23
  var Timeline = ({
@@ -24,8 +30,14 @@ var Timeline = ({
24
30
  renderItem,
25
31
  renderDot: customRenderDot,
26
32
  className,
33
+ locale,
27
34
  ...ulProps
28
35
  }) => {
36
+ const config = _chunkTDODFBBOjs.useTigerConfig.call(void 0, );
37
+ const mergedLocale = _react.useMemo.call(void 0,
38
+ () => _tigercatcore.mergeTigerLocale.call(void 0, config.locale, locale),
39
+ [config.locale, locale]
40
+ );
29
41
  const processedItems = _react.useMemo.call(void 0, () => {
30
42
  let result = reverse ? [...items].reverse() : [...items];
31
43
  if (mode === "alternate") {
@@ -88,9 +100,14 @@ var Timeline = ({
88
100
  const itemClasses = _tigercatcore.getTimelineItemClasses.call(void 0, mode, position, true);
89
101
  const headClasses = _tigercatcore.getTimelineHeadClasses.call(void 0, mode);
90
102
  const contentClasses = _tigercatcore.getTimelineContentClasses.call(void 0, mode, position);
103
+ const pendingText = _tigercatcore.resolveLocaleText.call(void 0,
104
+ "Loading...",
105
+ _optionalChain([mergedLocale, 'optionalAccess', _ => _.timeline, 'optionalAccess', _2 => _2.pendingText]),
106
+ _optionalChain([mergedLocale, 'optionalAccess', _3 => _3.common, 'optionalAccess', _4 => _4.loadingText])
107
+ );
91
108
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "li", { className: itemClasses, children: [
92
109
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: headClasses, children: renderDotElement({}, true) }),
93
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: contentClasses, children: pendingContent || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _tigercatcore.timelineDescriptionClasses, children: "Loading..." }) })
110
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: contentClasses, children: pendingContent || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _tigercatcore.timelineDescriptionClasses, children: pendingText }) })
94
111
  ] }, "pending");
95
112
  };
96
113
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -8,7 +8,8 @@ import {
8
8
  backTopContainerClasses,
9
9
  backTopHiddenClasses,
10
10
  backTopVisibleClasses,
11
- backTopIconPath
11
+ backTopIconPath,
12
+ isBrowser
12
13
  } from "@expcat/tigercat-core";
13
14
  import { jsx } from "react/jsx-runtime";
14
15
  var DefaultIcon = () => /* @__PURE__ */ jsx(
@@ -24,7 +25,7 @@ var DefaultIcon = () => /* @__PURE__ */ jsx(
24
25
  children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: backTopIconPath })
25
26
  }
26
27
  );
27
- var getDefaultTarget = () => window;
28
+ var getDefaultTarget = () => isBrowser() ? window : null;
28
29
  var BackTop = ({
29
30
  visibilityHeight = 400,
30
31
  target = getDefaultTarget,
@@ -36,8 +37,10 @@ var BackTop = ({
36
37
  ...props
37
38
  }) => {
38
39
  const [visible, setVisible] = useState(false);
40
+ const [targetElement, setTargetElement] = useState(null);
39
41
  useEffect(() => {
40
42
  const el = target();
43
+ setTargetElement(el);
41
44
  if (!el) return;
42
45
  const visibilityController = createBackTopVisibilityController({
43
46
  target: el,
@@ -49,6 +52,7 @@ var BackTop = ({
49
52
  return () => {
50
53
  el.removeEventListener("scroll", visibilityController.schedule);
51
54
  visibilityController.cancel();
55
+ setTargetElement(null);
52
56
  };
53
57
  }, [target, visibilityHeight]);
54
58
  const handleClick = useCallback(
@@ -60,14 +64,13 @@ var BackTop = ({
60
64
  [target, duration, onClick]
61
65
  );
62
66
  const buttonClasses = useMemo(() => {
63
- const el = target();
64
- const positionClasses = !el || el === window ? backTopButtonClasses : backTopContainerClasses;
67
+ const positionClasses = !targetElement || targetElement === window ? backTopButtonClasses : backTopContainerClasses;
65
68
  return classNames(
66
69
  positionClasses,
67
70
  visible ? backTopVisibleClasses : backTopHiddenClasses,
68
71
  className
69
72
  );
70
- }, [target, visible, className]);
73
+ }, [targetElement, visible, className]);
71
74
  return /* @__PURE__ */ jsx(
72
75
  "button",
73
76
  {
@@ -1,4 +1,8 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/components/QRCode.tsx
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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/QRCode.tsx
2
6
  var _react = require('react');
3
7
  var _tigercatcore = require('@expcat/tigercat-core');
4
8
 
@@ -17,11 +21,25 @@ var QRCode = ({
17
21
  level: _level = "M",
18
22
  status = "active",
19
23
  onRefresh,
20
- className
24
+ className,
25
+ locale
21
26
  }) => {
27
+ const config = _chunkTDODFBBOjs.useTigerConfig.call(void 0, );
28
+ const mergedLocale = _react.useMemo.call(void 0,
29
+ () => _tigercatcore.mergeTigerLocale.call(void 0, config.locale, locale),
30
+ [config.locale, locale]
31
+ );
22
32
  const matrix = _react.useMemo.call(void 0, () => _tigercatcore.generateQRMatrix.call(void 0, value), [value]);
23
33
  const moduleSize = _react.useMemo.call(void 0, () => size / matrix.length, [size, matrix.length]);
24
34
  const containerClass = _tigercatcore.classNames.call(void 0, _tigercatcore.qrcodeContainerClasses, className);
35
+ const ariaLabel = _tigercatcore.resolveLocaleText.call(void 0, "QR Code", _optionalChain([mergedLocale, 'optionalAccess', _ => _.qrcode, 'optionalAccess', _2 => _2.ariaLabel]));
36
+ const expiredText = _tigercatcore.resolveLocaleText.call(void 0, "QR code expired", _optionalChain([mergedLocale, 'optionalAccess', _3 => _3.qrcode, 'optionalAccess', _4 => _4.expiredText]));
37
+ const refreshText = _tigercatcore.resolveLocaleText.call(void 0, "Refresh", _optionalChain([mergedLocale, 'optionalAccess', _5 => _5.qrcode, 'optionalAccess', _6 => _6.refreshText]));
38
+ const loadingText = _tigercatcore.resolveLocaleText.call(void 0,
39
+ "Loading...",
40
+ _optionalChain([mergedLocale, 'optionalAccess', _7 => _7.qrcode, 'optionalAccess', _8 => _8.loadingText]),
41
+ _optionalChain([mergedLocale, 'optionalAccess', _9 => _9.common, 'optionalAccess', _10 => _10.loadingText])
42
+ );
25
43
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: containerClass, style: { width: size, height: size }, children: [
26
44
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
27
45
  "svg",
@@ -31,7 +49,7 @@ var QRCode = ({
31
49
  viewBox: `0 0 ${size} ${size}`,
32
50
  xmlns: "http://www.w3.org/2000/svg",
33
51
  role: "img",
34
- "aria-label": "QR Code",
52
+ "aria-label": ariaLabel,
35
53
  children: [
36
54
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "rect", { width: size, height: size, fill: bgColor }),
37
55
  matrix.flatMap(
@@ -53,10 +71,10 @@ var QRCode = ({
53
71
  }
54
72
  ),
55
73
  status === "expired" && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _tigercatcore.qrcodeOverlayClasses, children: [
56
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _tigercatcore.qrcodeExpiredTextClasses, children: "QR code expired" }),
57
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _tigercatcore.qrcodeRefreshClasses, onClick: onRefresh, children: "Refresh" })
74
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _tigercatcore.qrcodeExpiredTextClasses, children: expiredText }),
75
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _tigercatcore.qrcodeRefreshClasses, onClick: onRefresh, children: refreshText })
58
76
  ] }),
59
- status === "loading" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _tigercatcore.qrcodeOverlayClasses, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm text-gray-500", children: "Loading..." }) })
77
+ status === "loading" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _tigercatcore.qrcodeOverlayClasses, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm text-gray-500", children: loadingText }) })
60
78
  ] });
61
79
  };
62
80
  var QRCode_default = QRCode;
@@ -22,6 +22,7 @@ var _react = require('react');
22
22
 
23
23
 
24
24
 
25
+
25
26
  var _tigercatcore = require('@expcat/tigercat-core');
26
27
  var _jsxruntime = require('react/jsx-runtime');
27
28
  var Loading = ({
@@ -36,9 +37,14 @@ var Loading = ({
36
37
  lockScroll = true,
37
38
  className,
38
39
  style,
40
+ locale,
39
41
  ...props
40
42
  }) => {
41
43
  const config = _chunkTDODFBBOjs.useTigerConfig.call(void 0, );
44
+ const mergedLocale = _react.useMemo.call(void 0,
45
+ () => _tigercatcore.mergeTigerLocale.call(void 0, config.locale, locale),
46
+ [config.locale, locale]
47
+ );
42
48
  const [visible, setVisible] = _react.useState.call(void 0, delay <= 0);
43
49
  _react.useEffect.call(void 0, () => {
44
50
  _tigercatcore.injectLoadingAnimationStyles.call(void 0, );
@@ -121,7 +127,7 @@ var Loading = ({
121
127
  className: containerClasses,
122
128
  style: mergedStyle,
123
129
  role: "status",
124
- "aria-label": text || _tigercatcore.resolveLocaleText.call(void 0, "Loading", _optionalChain([config, 'access', _ => _.locale, 'optionalAccess', _2 => _2.common, 'optionalAccess', _3 => _3.loadingText])),
130
+ "aria-label": text || _tigercatcore.resolveLocaleText.call(void 0, "Loading", _optionalChain([mergedLocale, 'optionalAccess', _ => _.common, 'optionalAccess', _2 => _2.loadingText])),
125
131
  "aria-live": "polite",
126
132
  "aria-busy": true,
127
133
  ...props,
@@ -0,0 +1,319 @@
1
+ import {
2
+ useTigerConfig
3
+ } from "./chunk-QAIBQHIO.mjs";
4
+
5
+ // src/components/FileManager.tsx
6
+ import { useCallback, useMemo, useRef, useState } from "react";
7
+ import {
8
+ classNames,
9
+ getFileManagerContainerClasses,
10
+ getFileItemClasses,
11
+ deriveFileManagerModel,
12
+ toggleFileSelection,
13
+ resolveFileOpen,
14
+ sliceBreadcrumbPath,
15
+ toFileDragItem,
16
+ applyFileDragReorder,
17
+ formatFileSizeLabel,
18
+ getFileManagerLabels,
19
+ fileManagerToolbarClasses,
20
+ fileManagerBreadcrumbClasses,
21
+ fileManagerBreadcrumbItemClasses,
22
+ fileManagerBreadcrumbSeparatorClasses,
23
+ fileManagerContentClasses,
24
+ fileManagerItemIconClasses,
25
+ fileManagerItemNameClasses,
26
+ fileManagerItemMetaClasses,
27
+ fileManagerEmptyClasses,
28
+ fileManagerLoadingClasses,
29
+ fileManagerSearchClasses,
30
+ resolveLocaleText,
31
+ mergeTigerLocale
32
+ } from "@expcat/tigercat-core";
33
+ import { jsx, jsxs } from "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 = useTigerConfig();
61
+ const mergedLocale = useMemo(
62
+ () => mergeTigerLocale(config.locale, locale),
63
+ [config.locale, locale]
64
+ );
65
+ const [localSearch, setLocalSearch] = useState(searchText);
66
+ const [focusedIndex, setFocusedIndex] = useState(0);
67
+ const contentRef = useRef(null);
68
+ const dragFromIndex = useRef(null);
69
+ const labels = useMemo(() => getFileManagerLabels(mergedLocale), [mergedLocale]);
70
+ const metaColumns = columns ?? ["size", "modified"];
71
+ const showSizeColumn = metaColumns.includes("size");
72
+ const showModifiedColumn = metaColumns.includes("modified");
73
+ const showTypeColumn = metaColumns.includes("type");
74
+ const model = useMemo(
75
+ () => deriveFileManagerModel({
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 = useMemo(() => getFileManagerContainerClasses(className), [className]);
87
+ const handleSelect = useCallback(
88
+ (item) => {
89
+ if (item.disabled) return;
90
+ onSelect?.(item);
91
+ const keys = toggleFileSelection(selectedKeys, item.key, multiple);
92
+ onSelectedKeysChange?.(keys);
93
+ },
94
+ [selectedKeys, multiple, onSelect, onSelectedKeysChange]
95
+ );
96
+ const handleOpen = useCallback(
97
+ (item) => {
98
+ const result = resolveFileOpen(item, currentPath);
99
+ if (!result) return;
100
+ if (result.type === "navigate") {
101
+ onCurrentPathChange?.(result.path);
102
+ onNavigate?.(result.path);
103
+ } else {
104
+ onOpen?.(result.item);
105
+ }
106
+ },
107
+ [currentPath, onOpen, onNavigate, onCurrentPathChange]
108
+ );
109
+ const navigateToBreadcrumb = useCallback(
110
+ (index) => {
111
+ const newPath = sliceBreadcrumbPath(currentPath, index);
112
+ onCurrentPathChange?.(newPath);
113
+ onNavigate?.(newPath);
114
+ },
115
+ [currentPath, onNavigate, onCurrentPathChange]
116
+ );
117
+ const breadcrumbItems = [
118
+ /* @__PURE__ */ jsx(
119
+ "span",
120
+ {
121
+ className: fileManagerBreadcrumbItemClasses,
122
+ onClick: () => navigateToBreadcrumb(0),
123
+ children: labels.rootText
124
+ },
125
+ "root"
126
+ ),
127
+ ...currentPath.flatMap((seg, i) => [
128
+ /* @__PURE__ */ jsx("span", { className: fileManagerBreadcrumbSeparatorClasses, children: "/" }, `sep-${i}`),
129
+ /* @__PURE__ */ jsx(
130
+ "span",
131
+ {
132
+ className: fileManagerBreadcrumbItemClasses,
133
+ onClick: () => navigateToBreadcrumb(i + 1),
134
+ children: seg
135
+ },
136
+ `path-${i}`
137
+ )
138
+ ])
139
+ ];
140
+ const contentClass = viewMode === "grid" ? `${fileManagerContentClasses} grid grid-cols-4 gap-2` : fileManagerContentClasses;
141
+ const firstEnabledIndex = model.processedItems.findIndex((item) => !item.disabled);
142
+ const focusedItem = focusedIndex >= 0 && !model.processedItems[focusedIndex]?.disabled ? focusedIndex : firstEnabledIndex;
143
+ const focusItemAt = useCallback((index) => {
144
+ requestAnimationFrame(() => {
145
+ contentRef.current?.querySelector(`[data-option-index="${index}"]`)?.focus();
146
+ });
147
+ }, []);
148
+ const moveFocus = useCallback(
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 (!model.processedItems[next]?.disabled) {
155
+ setFocusedIndex(next);
156
+ focusItemAt(next);
157
+ return;
158
+ }
159
+ }
160
+ },
161
+ [focusItemAt, model.processedItems]
162
+ );
163
+ const handleItemKeyDown = useCallback(
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 (!model.processedItems[next]?.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 = useCallback(
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(toFileDragItem(item, index).id));
219
+ },
220
+ [draggable]
221
+ );
222
+ const handleDragOver = useCallback(
223
+ (event) => {
224
+ if (!draggable || dragFromIndex.current === null) return;
225
+ event.preventDefault();
226
+ event.dataTransfer.dropEffect = "move";
227
+ },
228
+ [draggable]
229
+ );
230
+ const handleDrop = useCallback(
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 = applyFileDragReorder(items, {
239
+ item: toFileDragItem(items[fromIndex], fromIndex),
240
+ fromIndex,
241
+ toIndex,
242
+ fromContainerId: "",
243
+ toContainerId: ""
244
+ });
245
+ onReorder?.(reordered, fromIndex, toIndex);
246
+ },
247
+ [draggable, model.processedItems, onReorder]
248
+ );
249
+ return /* @__PURE__ */ jsxs("div", { className: classNames(containerClasses), children: [
250
+ /* @__PURE__ */ jsxs("div", { className: fileManagerToolbarClasses, children: [
251
+ /* @__PURE__ */ jsx("nav", { className: fileManagerBreadcrumbClasses, "aria-label": "File path", children: breadcrumbItems }),
252
+ /* @__PURE__ */ jsx("div", { className: "flex-1" }),
253
+ searchable && /* @__PURE__ */ jsx(
254
+ "input",
255
+ {
256
+ type: "text",
257
+ className: fileManagerSearchClasses,
258
+ placeholder: resolveLocaleText("Search...", mergedLocale?.common?.searchPlaceholder),
259
+ value: localSearch,
260
+ onChange: (e) => {
261
+ setLocalSearch(e.target.value);
262
+ onSearchTextChange?.(e.target.value);
263
+ }
264
+ }
265
+ )
266
+ ] }),
267
+ model.processedItems.length > 0 ? /* @__PURE__ */ jsx(
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 = getFileItemClasses(viewMode, isSelected);
277
+ const dragItem = draggable && !item.disabled ? toFileDragItem(item, index) : void 0;
278
+ return /* @__PURE__ */ jsxs(
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": dragItem?.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__ */ jsx("span", { className: fileManagerItemIconClasses, "aria-hidden": "true", children: item.type === "folder" ? "\u{1F4C1}" : "\u{1F4C4}" }),
300
+ /* @__PURE__ */ jsx("span", { className: fileManagerItemNameClasses, children: item.name }),
301
+ viewMode === "list" && showTypeColumn && /* @__PURE__ */ jsx("span", { className: fileManagerItemMetaClasses, children: item.extension ?? item.type }),
302
+ viewMode === "list" && showSizeColumn && item.size !== void 0 && /* @__PURE__ */ jsx("span", { className: fileManagerItemMetaClasses, children: formatFileSizeLabel(item.size) }),
303
+ viewMode === "list" && showModifiedColumn && item.modified && /* @__PURE__ */ jsx("span", { className: fileManagerItemMetaClasses, children: item.modified })
304
+ ]
305
+ },
306
+ item.key
307
+ );
308
+ })
309
+ }
310
+ ) : /* @__PURE__ */ jsx("div", { className: fileManagerEmptyClasses, children: resolveLocaleText("Empty folder", emptyText, mergedLocale?.common?.emptyText) }),
311
+ loading && /* @__PURE__ */ jsx("div", { className: fileManagerLoadingClasses, children: resolveLocaleText("Loading...", mergedLocale?.common?.loadingText) })
312
+ ] });
313
+ };
314
+ var FileManager_default = FileManager;
315
+
316
+ export {
317
+ FileManager,
318
+ FileManager_default
319
+ };