@expcat/tigercat-react 0.3.0 → 0.3.70

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 (375) hide show
  1. package/dist/{chunk-IAF24RKI.mjs → chunk-24U2DQRP.mjs} +1 -1
  2. package/dist/{chunk-IL2Y5RCX.mjs → chunk-2DW3WFZI.mjs} +95 -45
  3. package/dist/chunk-2EOXY2LP.mjs +353 -0
  4. package/dist/{chunk-6MGEGOYJ.js → chunk-2GKTVAAB.js} +24 -18
  5. package/dist/{chunk-HGTF6A46.mjs → chunk-3577FW3I.mjs} +58 -92
  6. package/dist/{chunk-GY6D4XS3.js → chunk-3GW3UAKB.js} +40 -98
  7. package/dist/{chunk-VD3IK5XT.mjs → chunk-3M2IG6IN.mjs} +2 -3
  8. package/dist/{chunk-T3GSXTDU.js → chunk-3NE6VZRY.js} +2 -3
  9. package/dist/chunk-3PV2MDST.mjs +95 -0
  10. package/dist/{chunk-36RRHNZD.js → chunk-3T7L3MHX.js} +33 -15
  11. package/dist/{chunk-IY4LEJYF.js → chunk-4PPTEEDI.js} +29 -30
  12. package/dist/{chunk-Z4Z3I74Q.mjs → chunk-4Y7YH32A.mjs} +37 -46
  13. package/dist/chunk-56KTCMRE.mjs +77 -0
  14. package/dist/chunk-5CLXOFRZ.mjs +248 -0
  15. package/dist/chunk-5P5M656V.mjs +75 -0
  16. package/dist/{chunk-Z6G4HABF.js → chunk-67FVBKBC.js} +58 -95
  17. package/dist/{chunk-KAEHFMTQ.mjs → chunk-6IH5QPTR.mjs} +121 -144
  18. package/dist/{chunk-C52ZCGYG.mjs → chunk-6PXNWGR5.mjs} +49 -65
  19. package/dist/chunk-6W6CRBBG.mjs +169 -0
  20. package/dist/{chunk-MQTHGPHF.js → chunk-72MWKUBC.js} +49 -42
  21. package/dist/{chunk-PT4WLSTJ.mjs → chunk-763M6U5U.mjs} +105 -65
  22. package/dist/{chunk-RTQNWZN4.mjs → chunk-77PE7OFK.mjs} +3 -5
  23. package/dist/{chunk-KPZTGRNA.js → chunk-7Z64GEMN.js} +51 -55
  24. package/dist/{chunk-3WPKVV4N.js → chunk-A3PYG3D6.js} +6 -39
  25. package/dist/chunk-AQ72JVUG.js +41 -0
  26. package/dist/{chunk-P4EFJIXU.mjs → chunk-AUP3PMDD.mjs} +18 -41
  27. package/dist/{chunk-PUDU34R4.mjs → chunk-AVUXDQYO.mjs} +26 -20
  28. package/dist/{chunk-HUZVBDHV.js → chunk-AY5Z3NIW.js} +15 -20
  29. package/dist/{chunk-67EK62HG.mjs → chunk-B3LRUKXM.mjs} +1 -1
  30. package/dist/{chunk-JAVDNFJD.js → chunk-C7UKFKVY.js} +26 -33
  31. package/dist/{chunk-TZ26HQAW.js → chunk-CI2WHAT2.js} +18 -38
  32. package/dist/{chunk-WYTHTJN3.mjs → chunk-CYZLGYY4.mjs} +112 -59
  33. package/dist/{chunk-NSGDRTSQ.mjs → chunk-D5KYIQWB.mjs} +6 -39
  34. package/dist/chunk-DQNA57CA.js +57 -0
  35. package/dist/{chunk-6575DOCV.mjs → chunk-DTQZPZSJ.mjs} +3 -3
  36. package/dist/{chunk-7P6PHSFM.js → chunk-DXXYPVJJ.js} +32 -35
  37. package/dist/{chunk-UFAXJVMD.js → chunk-EFLIFXZH.js} +3 -3
  38. package/dist/chunk-EHYSER2Z.js +144 -0
  39. package/dist/{chunk-JI7SFMUT.mjs → chunk-EIMAQHCQ.mjs} +29 -80
  40. package/dist/chunk-ENSLMM3L.mjs +68 -0
  41. package/dist/chunk-F24IF2QL.js +74 -0
  42. package/dist/{chunk-ZUUG3WOL.js → chunk-F4Q5QMX2.js} +171 -94
  43. package/dist/{chunk-V2HVHLBY.mjs → chunk-FE7PEZTI.mjs} +19 -39
  44. package/dist/chunk-FLYJVZED.mjs +30 -0
  45. package/dist/chunk-FMF2G6BJ.js +179 -0
  46. package/dist/{chunk-YIF5VX7K.mjs → chunk-FNDPGSEW.mjs} +14 -13
  47. package/dist/{chunk-HQLZL3XQ.mjs → chunk-FPNT7FV5.mjs} +3 -7
  48. package/dist/{chunk-YE2M2HNM.js → chunk-FSDZJD7M.js} +36 -45
  49. package/dist/{chunk-WKGCUR7O.mjs → chunk-FTY2W4L2.mjs} +7 -7
  50. package/dist/{chunk-4PTI6ZUK.js → chunk-GASFXURT.js} +93 -43
  51. package/dist/chunk-GB5G2CJY.js +96 -0
  52. package/dist/{chunk-LXA2YBAO.js → chunk-GJEWBALW.js} +2 -2
  53. package/dist/chunk-GNMOOYHG.js +250 -0
  54. package/dist/{chunk-GXTBCX3M.js → chunk-H5MZ54PM.js} +16 -39
  55. package/dist/{chunk-4TWHENPT.js → chunk-HB2UYJBY.js} +32 -17
  56. package/dist/{chunk-5HUYCSA4.mjs → chunk-HPXLUJFJ.mjs} +22 -19
  57. package/dist/chunk-HQ3QOT7H.js +33 -0
  58. package/dist/chunk-I5TCE5E7.js +32 -0
  59. package/dist/{chunk-QFVE7GKD.js → chunk-IBYIPXIO.js} +5 -26
  60. package/dist/{chunk-3XXXM4OB.mjs → chunk-IGE44BIS.mjs} +67 -23
  61. package/dist/{chunk-XRFK2IXM.js → chunk-IHH2O7YK.js} +6 -7
  62. package/dist/{chunk-4IO2M3ZJ.js → chunk-IOM7DWWQ.js} +17 -17
  63. package/dist/chunk-IP3MAJSH.mjs +55 -0
  64. package/dist/{chunk-OVWCTDAL.js → chunk-IRH2ZVD3.js} +37 -49
  65. package/dist/chunk-IVGKPD2L.mjs +39 -0
  66. package/dist/{chunk-CJJ56NVL.mjs → chunk-IXJMMM26.mjs} +16 -60
  67. package/dist/{chunk-MF3H7WWW.mjs → chunk-JNLX47UL.mjs} +33 -15
  68. package/dist/{chunk-L63N3LCG.js → chunk-JQNKI2ZZ.js} +79 -31
  69. package/dist/{chunk-X4F6NSI5.mjs → chunk-JUWFVIDP.mjs} +2 -2
  70. package/dist/{chunk-LADCWARG.mjs → chunk-JVTAKNRO.mjs} +17 -15
  71. package/dist/{chunk-2Y327ZU4.js → chunk-KAWE5LQZ.js} +80 -83
  72. package/dist/{chunk-TR246HQP.mjs → chunk-KMTERPME.mjs} +14 -18
  73. package/dist/chunk-LIV33O73.mjs +26 -0
  74. package/dist/{chunk-PVOQUXIB.mjs → chunk-LL6B4BHF.mjs} +4 -4
  75. package/dist/chunk-LXQOQJMU.js +79 -0
  76. package/dist/{chunk-HT2BXCEM.js → chunk-M46L73HR.js} +19 -19
  77. package/dist/{chunk-NMDNLB3C.mjs → chunk-MDZDPGRK.mjs} +30 -27
  78. package/dist/chunk-MWH6FCSE.js +97 -0
  79. package/dist/{chunk-YER7IQF4.mjs → chunk-N4EMXCRQ.mjs} +172 -95
  80. package/dist/{chunk-SIB4EHB6.js → chunk-NEP3CS6S.js} +111 -58
  81. package/dist/{chunk-FAZQT7YP.mjs → chunk-NJCKTIWB.mjs} +6 -6
  82. package/dist/{chunk-IIVRVCCP.mjs → chunk-NKKIJQMV.mjs} +53 -57
  83. package/dist/{chunk-MQXBU5YX.mjs → chunk-NQFHS4W2.mjs} +29 -21
  84. package/dist/chunk-NTODO3Q3.mjs +94 -0
  85. package/dist/chunk-NV3JUZ3N.js +57 -0
  86. package/dist/{chunk-NDOYQK2R.mjs → chunk-NZLOLMT2.mjs} +41 -99
  87. package/dist/chunk-O3W3OZ6V.js +37 -0
  88. package/dist/{chunk-IFY46RWU.js → chunk-OESNOOOT.js} +1 -2
  89. package/dist/{chunk-IWENGARY.mjs → chunk-OFBK35TK.mjs} +1 -1
  90. package/dist/{chunk-R7TOQU3U.js → chunk-OIUIR5ZR.js} +15 -59
  91. package/dist/{chunk-QEAC4MIG.mjs → chunk-OUAZM7NY.mjs} +12 -59
  92. package/dist/{chunk-R67R3TVA.mjs → chunk-OXT5RN55.mjs} +5 -5
  93. package/dist/{chunk-CIL2AC3F.js → chunk-OYCMGKQ7.js} +15 -23
  94. package/dist/{chunk-IQINYCU6.js → chunk-PR3PQUKM.js} +17 -15
  95. package/dist/chunk-PTEDJ6MA.js +29 -0
  96. package/dist/{chunk-D3I2SY7X.js → chunk-PWZB45Z7.js} +13 -60
  97. package/dist/{chunk-GZPMLPRW.js → chunk-PXPUPQRO.js} +2 -2
  98. package/dist/{chunk-OZLGNWET.js → chunk-Q57BYUUW.js} +12 -28
  99. package/dist/chunk-QAO5KANE.mjs +36 -0
  100. package/dist/chunk-QFYS5QIZ.mjs +142 -0
  101. package/dist/{chunk-AITVDDCE.mjs → chunk-QGCQAJGL.mjs} +81 -33
  102. package/dist/chunk-QIJG42YQ.mjs +54 -0
  103. package/dist/{chunk-JOHKSMJM.mjs → chunk-QLHFXYWA.mjs} +59 -96
  104. package/dist/{chunk-C5EFBJBR.js → chunk-QM4GOQDT.js} +119 -142
  105. package/dist/{chunk-PBJ2J2B3.js → chunk-QNRAM3CM.js} +2 -2
  106. package/dist/{chunk-Z5DDULTA.js → chunk-RARHRSPQ.js} +2 -2
  107. package/dist/{chunk-5QKMQRCW.js → chunk-RDIEZKV2.js} +28 -20
  108. package/dist/{chunk-OZLAGTZW.mjs → chunk-RGFSY3S2.mjs} +50 -43
  109. package/dist/{chunk-IYFSM2GA.mjs → chunk-RGZYYVQF.mjs} +26 -33
  110. package/dist/{chunk-3GD3LOII.mjs → chunk-RITTIFCJ.mjs} +1 -2
  111. package/dist/{chunk-Y2JOJ4D6.js → chunk-RKB2VUQO.js} +8 -10
  112. package/dist/{chunk-7SLNHUGJ.js → chunk-RNEL4XIO.js} +28 -79
  113. package/dist/{chunk-6ZTCBQJ7.mjs → chunk-RPTLVIBF.mjs} +17 -25
  114. package/dist/{chunk-5ZVSFIZD.js → chunk-RYWGELJ7.js} +2 -6
  115. package/dist/chunk-S4GNTA7V.mjs +176 -0
  116. package/dist/{chunk-VSF4DF7N.js → chunk-SAZ6V6DX.js} +21 -18
  117. package/dist/{chunk-Q3DPJHNM.js → chunk-SFALTVPS.js} +3 -5
  118. package/dist/{chunk-LZNG2HGC.mjs → chunk-SH6O6LDJ.mjs} +72 -30
  119. package/dist/{chunk-6E5UKM6O.js → chunk-SM7RDJFB.js} +104 -64
  120. package/dist/{chunk-DGBYGBLR.js → chunk-SOC74QA2.js} +32 -52
  121. package/dist/{chunk-KOLLAGRK.mjs → chunk-SQ7OL2X5.mjs} +2 -3
  122. package/dist/{chunk-VO4WDK4K.js → chunk-SSQOCZ6O.js} +1 -2
  123. package/dist/{chunk-KV4LLPAY.mjs → chunk-SW4I4X6E.mjs} +8 -10
  124. package/dist/{chunk-GQMYCYZ4.js → chunk-TDRINUMH.js} +31 -28
  125. package/dist/{chunk-DIZNY6N4.mjs → chunk-TGKNEMD4.mjs} +8 -8
  126. package/dist/{chunk-BAPR7UUR.mjs → chunk-TGPQ4KET.mjs} +13 -29
  127. package/dist/{chunk-3XKBDV2Q.mjs → chunk-TUA5PDRX.mjs} +7 -8
  128. package/dist/chunk-U3JOBIDU.js +355 -0
  129. package/dist/{chunk-CES6LGQ7.mjs → chunk-UE234MW4.mjs} +34 -37
  130. package/dist/{chunk-U4ZVEPYD.js → chunk-URM7QDHH.js} +14 -18
  131. package/dist/chunk-UZ7SBFQV.mjs +35 -0
  132. package/dist/{chunk-HGF2EL25.mjs → chunk-V5NIFF2F.mjs} +34 -54
  133. package/dist/{chunk-672SCJWZ.mjs → chunk-VCNZEQEB.mjs} +10 -10
  134. package/dist/{chunk-R7MS42PL.js → chunk-VCOBBJLP.js} +9 -9
  135. package/dist/{chunk-2TS6X5RA.js → chunk-VCULFIZ5.js} +7 -7
  136. package/dist/{chunk-N32MAX4A.js → chunk-W4TFISRK.js} +70 -28
  137. package/dist/{chunk-4MMT4EJJ.mjs → chunk-WAIXKROS.mjs} +17 -22
  138. package/dist/{chunk-YGOTPK2W.mjs → chunk-WGRYO5HX.mjs} +34 -19
  139. package/dist/{chunk-ZPWDDAFE.js → chunk-XID6T65A.js} +14 -13
  140. package/dist/chunk-XJ7U2W7S.mjs +27 -0
  141. package/dist/{chunk-ZN2BZCTI.js → chunk-XKDWDANG.js} +8 -8
  142. package/dist/{chunk-EI2GHMQS.js → chunk-XLVEI7GS.js} +15 -13
  143. package/dist/{chunk-6YKZAWNX.js → chunk-XWNVBCJA.js} +14 -14
  144. package/dist/{chunk-JW64IJP2.js → chunk-XWRJVNB6.js} +67 -23
  145. package/dist/{chunk-HDDBBZQH.js → chunk-YV6Y7C43.js} +48 -64
  146. package/dist/chunk-Z7SXK2KO.js +171 -0
  147. package/dist/{chunk-XS5JP2KO.mjs → chunk-ZFHTSHXS.mjs} +82 -85
  148. package/dist/{chunk-73DMQ2SR.mjs → chunk-ZGQOYCQT.mjs} +32 -44
  149. package/dist/{chunk-WDAMDVLU.mjs → chunk-ZIUOENTL.mjs} +6 -27
  150. package/dist/{chunk-GJKT2B56.js → chunk-ZTVATZB6.js} +58 -92
  151. package/dist/components/ActivityFeed.js +10 -10
  152. package/dist/components/ActivityFeed.mjs +8 -8
  153. package/dist/components/Alert.js +3 -2
  154. package/dist/components/Alert.mjs +2 -1
  155. package/dist/components/Anchor.js +4 -4
  156. package/dist/components/Anchor.mjs +1 -1
  157. package/dist/components/AnchorLink.js +4 -4
  158. package/dist/components/AnchorLink.mjs +2 -2
  159. package/dist/components/AreaChart.d.mts +3 -0
  160. package/dist/components/AreaChart.d.ts +3 -0
  161. package/dist/components/AreaChart.js +3 -3
  162. package/dist/components/AreaChart.mjs +1 -1
  163. package/dist/components/Avatar.d.mts +1 -1
  164. package/dist/components/Avatar.d.ts +1 -1
  165. package/dist/components/Avatar.js +2 -2
  166. package/dist/components/Avatar.mjs +1 -1
  167. package/dist/components/BackTop.js +3 -3
  168. package/dist/components/BackTop.mjs +1 -1
  169. package/dist/components/Badge.d.mts +0 -3
  170. package/dist/components/Badge.d.ts +0 -3
  171. package/dist/components/Badge.js +2 -2
  172. package/dist/components/Badge.mjs +1 -1
  173. package/dist/components/BarChart.js +3 -3
  174. package/dist/components/BarChart.mjs +1 -1
  175. package/dist/components/Breadcrumb.d.mts +0 -1
  176. package/dist/components/Breadcrumb.d.ts +0 -1
  177. package/dist/components/BreadcrumbItem.js +2 -2
  178. package/dist/components/BreadcrumbItem.mjs +1 -1
  179. package/dist/components/Button.js +2 -2
  180. package/dist/components/Button.mjs +1 -1
  181. package/dist/components/Card.js +2 -2
  182. package/dist/components/Card.mjs +1 -1
  183. package/dist/components/Carousel.js +2 -2
  184. package/dist/components/Carousel.mjs +1 -1
  185. package/dist/components/ChatWindow.js +7 -7
  186. package/dist/components/ChatWindow.mjs +5 -5
  187. package/dist/components/Checkbox.js +2 -2
  188. package/dist/components/Checkbox.mjs +1 -1
  189. package/dist/components/Col.js +3 -3
  190. package/dist/components/Col.mjs +2 -2
  191. package/dist/components/CollapsePanel.js +3 -3
  192. package/dist/components/CollapsePanel.mjs +1 -1
  193. package/dist/components/CommentThread.js +8 -8
  194. package/dist/components/CommentThread.mjs +6 -6
  195. package/dist/components/CropUpload.d.mts +52 -0
  196. package/dist/components/CropUpload.d.ts +52 -0
  197. package/dist/components/CropUpload.js +14 -0
  198. package/dist/components/CropUpload.mjs +5 -0
  199. package/dist/components/DataTableWithToolbar.js +8 -11
  200. package/dist/components/DataTableWithToolbar.mjs +6 -9
  201. package/dist/components/DatePicker.js +2 -2
  202. package/dist/components/DatePicker.mjs +1 -1
  203. package/dist/components/Descriptions.js +3 -3
  204. package/dist/components/Descriptions.mjs +1 -1
  205. package/dist/components/Divider.d.mts +1 -3
  206. package/dist/components/Divider.d.ts +1 -3
  207. package/dist/components/Divider.js +2 -2
  208. package/dist/components/Divider.mjs +1 -1
  209. package/dist/components/DonutChart.d.mts +6 -0
  210. package/dist/components/DonutChart.d.ts +6 -0
  211. package/dist/components/DonutChart.js +4 -4
  212. package/dist/components/DonutChart.mjs +2 -2
  213. package/dist/components/Drawer.js +2 -2
  214. package/dist/components/Drawer.mjs +1 -1
  215. package/dist/components/Dropdown.d.mts +1 -15
  216. package/dist/components/Dropdown.d.ts +1 -15
  217. package/dist/components/Dropdown.js +3 -3
  218. package/dist/components/Dropdown.mjs +1 -1
  219. package/dist/components/DropdownItem.js +3 -3
  220. package/dist/components/DropdownItem.mjs +2 -2
  221. package/dist/components/Form.d.mts +1 -0
  222. package/dist/components/Form.d.ts +1 -0
  223. package/dist/components/Form.js +3 -3
  224. package/dist/components/Form.mjs +1 -1
  225. package/dist/components/FormItem.js +3 -3
  226. package/dist/components/FormItem.mjs +2 -2
  227. package/dist/components/FormWizard.js +6 -6
  228. package/dist/components/FormWizard.mjs +4 -4
  229. package/dist/components/Icon.js +2 -2
  230. package/dist/components/Icon.mjs +1 -1
  231. package/dist/components/Image.d.mts +20 -0
  232. package/dist/components/Image.d.ts +20 -0
  233. package/dist/components/Image.js +13 -0
  234. package/dist/components/Image.mjs +4 -0
  235. package/dist/components/ImageCropper.d.mts +21 -0
  236. package/dist/components/ImageCropper.d.ts +21 -0
  237. package/dist/components/ImageCropper.js +10 -0
  238. package/dist/components/ImageCropper.mjs +1 -0
  239. package/dist/components/ImageGroup.d.mts +30 -0
  240. package/dist/components/ImageGroup.d.ts +30 -0
  241. package/dist/components/ImageGroup.js +16 -0
  242. package/dist/components/ImageGroup.mjs +3 -0
  243. package/dist/components/ImagePreview.d.mts +20 -0
  244. package/dist/components/ImagePreview.d.ts +20 -0
  245. package/dist/components/ImagePreview.js +11 -0
  246. package/dist/components/ImagePreview.mjs +2 -0
  247. package/dist/components/Input.d.mts +4 -7
  248. package/dist/components/Input.d.ts +4 -7
  249. package/dist/components/Input.js +2 -2
  250. package/dist/components/Input.mjs +1 -1
  251. package/dist/components/LineChart.js +3 -3
  252. package/dist/components/LineChart.mjs +1 -1
  253. package/dist/components/Link.js +2 -2
  254. package/dist/components/Link.mjs +1 -1
  255. package/dist/components/List.js +2 -4
  256. package/dist/components/List.mjs +1 -3
  257. package/dist/components/Loading.js +2 -2
  258. package/dist/components/Loading.mjs +1 -1
  259. package/dist/components/Menu.js +3 -3
  260. package/dist/components/Menu.mjs +1 -1
  261. package/dist/components/MenuItem.js +3 -3
  262. package/dist/components/MenuItem.mjs +2 -2
  263. package/dist/components/MenuItemGroup.js +4 -4
  264. package/dist/components/MenuItemGroup.mjs +3 -3
  265. package/dist/components/Message.d.mts +0 -18
  266. package/dist/components/Message.d.ts +0 -18
  267. package/dist/components/Message.js +5 -4
  268. package/dist/components/Message.mjs +2 -1
  269. package/dist/components/Modal.d.mts +15 -0
  270. package/dist/components/Modal.d.ts +15 -0
  271. package/dist/components/Modal.js +3 -2
  272. package/dist/components/Modal.mjs +2 -1
  273. package/dist/components/Notification.d.mts +0 -15
  274. package/dist/components/Notification.d.ts +0 -15
  275. package/dist/components/Notification.js +5 -4
  276. package/dist/components/Notification.mjs +2 -1
  277. package/dist/components/NotificationCenter.js +9 -10
  278. package/dist/components/NotificationCenter.mjs +7 -8
  279. package/dist/components/Pagination.js +3 -3
  280. package/dist/components/Pagination.mjs +1 -1
  281. package/dist/components/PieChart.js +3 -3
  282. package/dist/components/PieChart.mjs +1 -1
  283. package/dist/components/Popconfirm.d.mts +0 -26
  284. package/dist/components/Popconfirm.d.ts +0 -26
  285. package/dist/components/Popconfirm.js +3 -2
  286. package/dist/components/Popconfirm.mjs +2 -1
  287. package/dist/components/Popover.d.mts +0 -8
  288. package/dist/components/Popover.d.ts +0 -8
  289. package/dist/components/Popover.js +3 -2
  290. package/dist/components/Popover.mjs +2 -1
  291. package/dist/components/Progress.js +2 -2
  292. package/dist/components/Progress.mjs +1 -1
  293. package/dist/components/RadarChart.d.mts +8 -0
  294. package/dist/components/RadarChart.d.ts +8 -0
  295. package/dist/components/RadarChart.js +4 -3
  296. package/dist/components/RadarChart.mjs +2 -1
  297. package/dist/components/Radio.js +3 -3
  298. package/dist/components/Radio.mjs +2 -2
  299. package/dist/components/RadioGroup.js +3 -3
  300. package/dist/components/RadioGroup.mjs +1 -1
  301. package/dist/components/Row.js +3 -3
  302. package/dist/components/Row.mjs +1 -1
  303. package/dist/components/ScatterChart.js +3 -3
  304. package/dist/components/ScatterChart.mjs +1 -1
  305. package/dist/components/Select.js +2 -2
  306. package/dist/components/Select.mjs +1 -1
  307. package/dist/components/Sidebar.js +2 -2
  308. package/dist/components/Sidebar.mjs +1 -1
  309. package/dist/components/Skeleton.js +2 -2
  310. package/dist/components/Skeleton.mjs +1 -1
  311. package/dist/components/Slider.js +2 -2
  312. package/dist/components/Slider.mjs +1 -1
  313. package/dist/components/Space.js +2 -2
  314. package/dist/components/Space.mjs +1 -1
  315. package/dist/components/Steps.js +3 -3
  316. package/dist/components/Steps.mjs +1 -1
  317. package/dist/components/StepsItem.js +2 -2
  318. package/dist/components/StepsItem.mjs +1 -1
  319. package/dist/components/SubMenu.js +5 -5
  320. package/dist/components/SubMenu.mjs +4 -4
  321. package/dist/components/TabPane.d.mts +18 -3
  322. package/dist/components/TabPane.d.ts +18 -3
  323. package/dist/components/TabPane.js +2 -2
  324. package/dist/components/TabPane.mjs +1 -1
  325. package/dist/components/Table.js +2 -2
  326. package/dist/components/Table.mjs +1 -1
  327. package/dist/components/Tabs.d.mts +44 -2
  328. package/dist/components/Tabs.d.ts +44 -2
  329. package/dist/components/Tabs.js +3 -3
  330. package/dist/components/Tabs.mjs +1 -1
  331. package/dist/components/Tag.js +2 -2
  332. package/dist/components/Tag.mjs +1 -1
  333. package/dist/components/Text.js +2 -2
  334. package/dist/components/Text.mjs +1 -1
  335. package/dist/components/Textarea.js +2 -2
  336. package/dist/components/Textarea.mjs +1 -1
  337. package/dist/components/TimePicker.js +2 -2
  338. package/dist/components/TimePicker.mjs +1 -1
  339. package/dist/components/Timeline.js +2 -2
  340. package/dist/components/Timeline.mjs +1 -1
  341. package/dist/components/Tooltip.d.mts +1 -11
  342. package/dist/components/Tooltip.d.ts +1 -11
  343. package/dist/components/Tooltip.js +3 -2
  344. package/dist/components/Tooltip.mjs +2 -1
  345. package/dist/components/Tree.js +3 -3
  346. package/dist/components/Tree.mjs +1 -1
  347. package/dist/components/Upload.js +2 -2
  348. package/dist/components/Upload.mjs +1 -1
  349. package/dist/index.d.mts +5 -0
  350. package/dist/index.d.ts +5 -0
  351. package/dist/index.js +216 -185
  352. package/dist/index.mjs +76 -69
  353. package/package.json +2 -2
  354. package/dist/chunk-3OF7XPIQ.js +0 -90
  355. package/dist/chunk-427CM2U6.mjs +0 -76
  356. package/dist/chunk-6DYS4PJT.mjs +0 -99
  357. package/dist/chunk-6YDIBMCM.mjs +0 -33
  358. package/dist/chunk-A3DJSVTE.js +0 -68
  359. package/dist/chunk-AGUPZEUL.mjs +0 -35
  360. package/dist/chunk-CKUSQR2H.mjs +0 -41
  361. package/dist/chunk-CR4QK2AB.mjs +0 -88
  362. package/dist/chunk-EB6EDLJZ.mjs +0 -50
  363. package/dist/chunk-GW4EWT2K.mjs +0 -125
  364. package/dist/chunk-KELLYJZY.mjs +0 -148
  365. package/dist/chunk-KUCFT2OA.js +0 -43
  366. package/dist/chunk-QY6I7LU5.js +0 -127
  367. package/dist/chunk-STEIWBMF.mjs +0 -66
  368. package/dist/chunk-T4TJJMLM.mjs +0 -34
  369. package/dist/chunk-UG3I4PCY.js +0 -102
  370. package/dist/chunk-YESS6YKC.js +0 -37
  371. package/dist/chunk-YYGTJKP5.js +0 -39
  372. package/dist/chunk-ZPFZMXA6.js +0 -150
  373. package/dist/chunk-ZREFCRX3.js +0 -52
  374. package/dist/{chunk-MKWXJZ3T.js → chunk-QYYAXM5F.js} +1 -1
  375. package/dist/{chunk-WSJO2PIE.mjs → chunk-XZVQ3PJS.mjs} +1 -1
@@ -1,9 +1,10 @@
1
1
  import { useChartInteraction } from './chunk-3CDAG4HD.mjs';
2
2
  import { ChartCanvas } from './chunk-IS467WAO.mjs';
3
+ import { ChartLegend } from './chunk-Z6F67MJE.mjs';
3
4
  import { ChartSeries } from './chunk-SDLMB34Y.mjs';
4
5
  import { ChartTooltip } from './chunk-LVC43YX2.mjs';
5
6
  import { useMemo, useState, useCallback } from 'react';
6
- import { getChartInnerRect, getRadarAngles, getRadarPoints, polarToCartesian, createPolygonPath, getChartGridLineDasharray, DEFAULT_CHART_COLORS, classNames, chartGridLineClasses, chartAxisTickTextClasses } from '@expcat/tigercat-core';
7
+ import { resolveSeriesData, getChartInnerRect, getRadarAngles, getRadarPoints, polarToCartesian, createPolygonPath, RADAR_SPLIT_AREA_COLORS, getRadarLabelAlign, getChartGridLineDasharray, resolveChartPalette, resolveMultiSeriesTooltipContent, defaultRadarTooltipFormatter, buildChartLegendItems, classNames, chartGridLineClasses, chartAxisTickTextClasses } from '@expcat/tigercat-core';
7
8
  import { jsxs, jsx } from 'react/jsx-runtime';
8
9
 
9
10
  var RadarChart = ({
@@ -43,21 +44,31 @@ var RadarChart = ({
43
44
  legendFormatter,
44
45
  legendMarkerSize = 10,
45
46
  legendGap = 8,
46
- strokeColor = DEFAULT_CHART_COLORS[0],
47
+ strokeColor,
47
48
  strokeWidth = 2,
48
- fillColor = DEFAULT_CHART_COLORS[0],
49
+ fillColor,
49
50
  fillOpacity = 0.2,
50
51
  showPoints = true,
51
52
  pointSize = 3,
52
53
  pointColor,
54
+ gridShape = "polygon",
55
+ showSplitArea = false,
56
+ splitAreaOpacity = 0.06,
57
+ splitAreaColors,
58
+ pointBorderWidth = 2,
59
+ pointBorderColor = "#fff",
60
+ pointHoverSize,
61
+ labelAutoAlign = true,
53
62
  title,
54
63
  desc,
55
64
  className
56
65
  }) => {
57
- const resolvedSeries = useMemo(() => {
58
- if (series && series.length > 0) return series;
59
- return [{ data: data ?? [] }];
60
- }, [series, data]);
66
+ const resolvedSeries = useMemo(
67
+ () => resolveSeriesData(series, data, {
68
+ data: []
69
+ }),
70
+ [series, data]
71
+ );
61
72
  const {
62
73
  resolvedHoveredIndex: _resolvedHoveredIndex,
63
74
  resolvedSelectedIndex: _resolvedSelectedIndex,
@@ -66,7 +77,11 @@ var RadarChart = ({
66
77
  handleMouseEnter: handleHoverEnter,
67
78
  handleMouseMove,
68
79
  handleMouseLeave: handleHoverLeave,
69
- handleClick: handleSelectIndex
80
+ handleClick: handleSelectIndex,
81
+ handleLegendClick,
82
+ handleLegendHover,
83
+ handleLegendLeave,
84
+ wrapperClasses
70
85
  } = useChartInteraction({
71
86
  hoverable,
72
87
  hoveredIndexProp,
@@ -148,10 +163,30 @@ var RadarChart = ({
148
163
  const resolvedLevels = Math.max(1, Math.floor(levels));
149
164
  return Array.from({ length: resolvedLevels }, (_, index) => {
150
165
  const levelRadius = radius * ((index + 1) / resolvedLevels);
166
+ if (gridShape === "circle") {
167
+ return { type: "circle", cx, cy, r: levelRadius };
168
+ }
151
169
  const ringPoints = angles.map((angle) => polarToCartesian(cx, cy, levelRadius, angle));
152
- return createPolygonPath(ringPoints);
170
+ return { type: "polygon", d: createPolygonPath(ringPoints), cx, cy, r: levelRadius };
153
171
  });
154
- }, [showGrid, levels, angles, radius, cx, cy]);
172
+ }, [showGrid, levels, angles, radius, cx, cy, gridShape]);
173
+ const splitAreaPaths = useMemo(() => {
174
+ if (!showSplitArea || angles.length === 0) return [];
175
+ const resolvedLevels = Math.max(1, Math.floor(levels));
176
+ const areaColors = splitAreaColors && splitAreaColors.length > 0 ? splitAreaColors : RADAR_SPLIT_AREA_COLORS;
177
+ return Array.from({ length: resolvedLevels }, (_, index) => {
178
+ const outerIndex = resolvedLevels - 1 - index;
179
+ const outerRadius = radius * ((outerIndex + 1) / resolvedLevels);
180
+ const innerRadius = radius * (outerIndex / resolvedLevels);
181
+ const color = areaColors[outerIndex % areaColors.length];
182
+ if (gridShape === "circle") {
183
+ return { type: "circle-ring", cx, cy, outerRadius, innerRadius, color };
184
+ }
185
+ const outerPoints = angles.map((angle) => polarToCartesian(cx, cy, outerRadius, angle));
186
+ const innerPoints = outerIndex > 0 ? angles.map((angle) => polarToCartesian(cx, cy, innerRadius, angle)) : [];
187
+ return { type: "polygon-ring", outerPoints, innerPoints, color };
188
+ });
189
+ }, [showSplitArea, levels, angles, radius, cx, cy, gridShape, splitAreaColors, splitAreaOpacity]);
155
190
  const axisLines = useMemo(() => {
156
191
  if (!showAxis || angles.length === 0) return [];
157
192
  return angles.map((angle) => {
@@ -170,13 +205,16 @@ var RadarChart = ({
170
205
  return axisData.map((datum, index) => {
171
206
  const angle = angles[index];
172
207
  const position = polarToCartesian(cx, cy, radius + labelOffset, angle);
208
+ const align = labelAutoAlign ? getRadarLabelAlign(angle) : { textAnchor: "middle", dominantBaseline: "middle" };
173
209
  return {
174
210
  x: position.x,
175
211
  y: position.y,
176
- text: formatLabel(datum, index)
212
+ text: formatLabel(datum, index),
213
+ textAnchor: align.textAnchor,
214
+ dominantBaseline: align.dominantBaseline
177
215
  };
178
216
  });
179
- }, [showLabels, axisData, angles, cx, cy, radius, labelOffset, labelFormatter]);
217
+ }, [showLabels, axisData, angles, cx, cy, radius, labelOffset, labelFormatter, labelAutoAlign]);
180
218
  const levelLabels = useMemo(() => {
181
219
  if (!showLevelLabels || !showGrid || angles.length === 0) return [];
182
220
  const resolvedLevels = Math.max(1, Math.floor(levels));
@@ -205,47 +243,25 @@ var RadarChart = ({
205
243
  levelLabelFormatter
206
244
  ]);
207
245
  const dasharray = getChartGridLineDasharray(gridLineStyle);
208
- const palette = useMemo(
209
- () => colors && colors.length > 0 ? colors : [...DEFAULT_CHART_COLORS],
210
- [colors]
246
+ const palette = useMemo(() => resolveChartPalette(colors), [colors]);
247
+ const tooltipContent = useMemo(
248
+ () => resolveMultiSeriesTooltipContent(
249
+ hoveredPoint,
250
+ resolvedSeries,
251
+ tooltipFormatter,
252
+ defaultRadarTooltipFormatter
253
+ ),
254
+ [hoveredPoint, resolvedSeries, tooltipFormatter]
211
255
  );
212
- const formatTooltip = useMemo(
213
- () => tooltipFormatter ?? ((datum, seriesIndex, index, series2) => {
214
- const label = datum.label ?? `#${index + 1}`;
215
- const value = datum.value;
216
- const name = series2?.name ?? `Series ${seriesIndex + 1}`;
217
- return `${name} \xB7 ${label}: ${value}`;
256
+ const legendItems = useMemo(
257
+ () => buildChartLegendItems({
258
+ data: resolvedSeries,
259
+ palette,
260
+ activeIndex: resolvedActiveIndex,
261
+ getLabel: (s, i) => legendFormatter ? legendFormatter(s, i) : s.name ?? `Series ${i + 1}`,
262
+ getColor: (s, i) => s.color ?? palette[i % palette.length]
218
263
  }),
219
- [tooltipFormatter]
220
- );
221
- const tooltipContent = useMemo(() => {
222
- if (!hoveredPoint) return "";
223
- const { seriesIndex, pointIndex } = hoveredPoint;
224
- const series2 = resolvedSeries[seriesIndex];
225
- if (!series2) return "";
226
- const datum = series2.data[pointIndex];
227
- if (!datum) return "";
228
- return formatTooltip(datum, seriesIndex, pointIndex, series2);
229
- }, [hoveredPoint, resolvedSeries, formatTooltip]);
230
- const resolvedLegendItems = useMemo(
231
- () => resolvedSeries.map((item, index) => {
232
- const color = item.color ?? palette[index % palette.length];
233
- const label = legendFormatter ? legendFormatter(item, index) : item.name ?? `Series ${index + 1}`;
234
- return {
235
- index,
236
- label,
237
- color
238
- };
239
- }),
240
- [resolvedSeries, palette, legendFormatter]
241
- );
242
- const legendContainerClasses = classNames(
243
- "flex flex-wrap",
244
- legendPosition === "right" ? "flex-col gap-2" : "flex-row gap-3"
245
- );
246
- const wrapperClasses = classNames(
247
- "inline-flex",
248
- legendPosition === "right" ? "flex-row items-start gap-4" : "flex-col gap-2"
264
+ [resolvedSeries, palette, resolvedActiveIndex, legendFormatter]
249
265
  );
250
266
  const chart = /* @__PURE__ */ jsxs(
251
267
  ChartCanvas,
@@ -257,17 +273,80 @@ var RadarChart = ({
257
273
  desc,
258
274
  className: classNames(className),
259
275
  children: [
260
- gridPaths.map((path, index) => /* @__PURE__ */ jsx(
261
- "path",
262
- {
263
- d: path,
264
- className: chartGridLineClasses,
265
- fill: "none",
266
- strokeWidth: gridStrokeWidth,
267
- strokeDasharray: dasharray
268
- },
269
- `grid-${index}`
270
- )),
276
+ splitAreaPaths.map((area, index) => {
277
+ if (area.type === "circle-ring") {
278
+ return /* @__PURE__ */ jsxs("g", { children: [
279
+ /* @__PURE__ */ jsx(
280
+ "circle",
281
+ {
282
+ cx: area.cx,
283
+ cy: area.cy,
284
+ r: area.outerRadius,
285
+ fill: area.color,
286
+ fillOpacity: splitAreaOpacity,
287
+ stroke: "none",
288
+ "data-radar-split-area": "true"
289
+ }
290
+ ),
291
+ area.innerRadius > 0 ? /* @__PURE__ */ jsx(
292
+ "circle",
293
+ {
294
+ cx: area.cx,
295
+ cy: area.cy,
296
+ r: area.innerRadius,
297
+ fill: "var(--tiger-bg,#fff)",
298
+ stroke: "none"
299
+ }
300
+ ) : null
301
+ ] }, `split-${index}`);
302
+ }
303
+ const outerPath = createPolygonPath(area.outerPoints);
304
+ return /* @__PURE__ */ jsxs("g", { children: [
305
+ outerPath ? /* @__PURE__ */ jsx(
306
+ "path",
307
+ {
308
+ d: outerPath,
309
+ fill: area.color,
310
+ fillOpacity: splitAreaOpacity,
311
+ stroke: "none",
312
+ "data-radar-split-area": "true"
313
+ }
314
+ ) : null,
315
+ area.innerPoints.length > 0 ? /* @__PURE__ */ jsx(
316
+ "path",
317
+ {
318
+ d: createPolygonPath(area.innerPoints),
319
+ fill: "var(--tiger-bg,#fff)",
320
+ stroke: "none"
321
+ }
322
+ ) : null
323
+ ] }, `split-${index}`);
324
+ }),
325
+ gridPaths.map(
326
+ (grid, index) => grid.type === "circle" ? /* @__PURE__ */ jsx(
327
+ "circle",
328
+ {
329
+ cx: grid.cx,
330
+ cy: grid.cy,
331
+ r: grid.r,
332
+ className: chartGridLineClasses,
333
+ fill: "none",
334
+ strokeWidth: gridStrokeWidth,
335
+ strokeDasharray: dasharray
336
+ },
337
+ `grid-${index}`
338
+ ) : /* @__PURE__ */ jsx(
339
+ "path",
340
+ {
341
+ d: grid.d,
342
+ className: chartGridLineClasses,
343
+ fill: "none",
344
+ strokeWidth: gridStrokeWidth,
345
+ strokeDasharray: dasharray
346
+ },
347
+ `grid-${index}`
348
+ )
349
+ ),
271
350
  axisLines.map((line, index) => /* @__PURE__ */ jsx(
272
351
  "line",
273
352
  {
@@ -283,8 +362,8 @@ var RadarChart = ({
283
362
  )),
284
363
  seriesPoints.map((item, seriesIndex) => {
285
364
  const seriesColor = item.series.color ?? palette[seriesIndex % palette.length];
286
- const resolvedStrokeColor = item.series.strokeColor ?? seriesColor ?? strokeColor;
287
- const resolvedFillColor = item.series.fillColor ?? seriesColor ?? fillColor;
365
+ const resolvedStrokeColor = item.series.strokeColor ?? seriesColor ?? strokeColor ?? palette[0];
366
+ const resolvedFillColor = item.series.fillColor ?? seriesColor ?? fillColor ?? palette[0];
288
367
  const resolvedFillOpacity = item.series.fillOpacity ?? fillOpacity;
289
368
  const resolvedStrokeWidth = item.series.strokeWidth ?? strokeWidth;
290
369
  const resolvedShowPoints = item.series.showPoints ?? showPoints;
@@ -320,19 +399,32 @@ var RadarChart = ({
320
399
  fillOpacity: resolvedFillOpacity,
321
400
  stroke: resolvedStrokeColor,
322
401
  strokeWidth: resolvedStrokeWidth,
402
+ strokeLinejoin: "round",
403
+ className: "transition-[fill-opacity,filter] duration-200 ease-out",
404
+ style: resolvedActiveIndex === seriesIndex ? { filter: "drop-shadow(0 2px 6px rgba(0,0,0,0.15))" } : void 0,
323
405
  "data-radar-area": "true",
324
406
  "data-series-index": seriesIndex
325
407
  }
326
408
  ) : null,
327
409
  resolvedShowPoints ? item.points.map((point) => {
410
+ const isHoveredPoint = hoveredPoint?.seriesIndex === seriesIndex && hoveredPoint?.pointIndex === point.index;
411
+ const hoverSize = pointHoverSize ?? resolvedPointSize + 2;
412
+ const currentSize = isHoveredPoint ? hoverSize : point.data.size ?? resolvedPointSize;
413
+ const resolvedBorderWidth = item.series.pointBorderWidth ?? pointBorderWidth;
414
+ const resolvedBorderColor = item.series.pointBorderColor ?? pointBorderColor;
328
415
  return /* @__PURE__ */ jsx(
329
416
  "circle",
330
417
  {
331
418
  cx: point.x,
332
419
  cy: point.y,
333
- r: point.data.size ?? resolvedPointSize,
420
+ r: currentSize,
334
421
  fill: point.data.color ?? resolvedPointColor ?? resolvedStrokeColor,
335
- className: showTooltip && hoverable ? "cursor-pointer" : void 0,
422
+ stroke: resolvedBorderColor,
423
+ strokeWidth: resolvedBorderWidth,
424
+ className: classNames(
425
+ showTooltip && hoverable ? "cursor-pointer" : void 0,
426
+ "transition-[r] duration-150 ease-out"
427
+ ),
336
428
  "data-radar-point": "true",
337
429
  "data-series-index": seriesIndex,
338
430
  "data-point-index": point.index,
@@ -354,8 +446,8 @@ var RadarChart = ({
354
446
  x: label.x,
355
447
  y: label.y,
356
448
  className: chartAxisTickTextClasses,
357
- textAnchor: "middle",
358
- dominantBaseline: "middle",
449
+ textAnchor: label.textAnchor,
450
+ dominantBaseline: label.dominantBaseline,
359
451
  children: label.text
360
452
  },
361
453
  `label-${index}`
@@ -393,34 +485,19 @@ var RadarChart = ({
393
485
  }
394
486
  return /* @__PURE__ */ jsxs("div", { className: wrapperClasses, children: [
395
487
  chart,
396
- /* @__PURE__ */ jsx("div", { className: legendContainerClasses, children: resolvedLegendItems.map((item) => /* @__PURE__ */ jsxs(
397
- "button",
488
+ /* @__PURE__ */ jsx(
489
+ ChartLegend,
398
490
  {
399
- type: "button",
400
- className: classNames(
401
- "flex items-center gap-2 text-sm text-gray-600",
402
- selectable ? "cursor-pointer" : "cursor-default"
403
- ),
404
- onClick: selectable ? () => handleSelectIndex(item.index) : void 0,
405
- onMouseEnter: hoverable ? (e) => handleHoverEnter(item.index, e) : void 0,
406
- onMouseLeave: hoverable ? handlePointLeave : void 0,
407
- children: [
408
- /* @__PURE__ */ jsx(
409
- "span",
410
- {
411
- className: "inline-block rounded-full",
412
- style: {
413
- width: `${legendMarkerSize}px`,
414
- height: `${legendMarkerSize}px`,
415
- backgroundColor: item.color
416
- }
417
- }
418
- ),
419
- /* @__PURE__ */ jsx("span", { style: { marginRight: `${legendGap}px` }, children: item.label })
420
- ]
421
- },
422
- `legend-${item.index}`
423
- )) }),
491
+ items: legendItems,
492
+ position: legendPosition,
493
+ markerSize: legendMarkerSize,
494
+ gap: legendGap,
495
+ interactive: hoverable || selectable,
496
+ onItemClick: handleLegendClick,
497
+ onItemHover: handleLegendHover,
498
+ onItemLeave: handleLegendLeave
499
+ }
500
+ ),
424
501
  tooltip
425
502
  ] });
426
503
  };
@@ -52,6 +52,10 @@ var LineChart = ({
52
52
  legendMarkerSize = 10,
53
53
  legendGap = 8,
54
54
  showTooltip = true,
55
+ showArea = false,
56
+ areaOpacity = 0.15,
57
+ pointHollow = false,
58
+ animated = false,
55
59
  tooltipFormatter,
56
60
  legendFormatter,
57
61
  title,
@@ -66,15 +70,15 @@ var LineChart = ({
66
70
  }) => {
67
71
  const [hoveredPointInfo, setHoveredPointInfo] = react.useState(null);
68
72
  const [tooltipPosition, setTooltipPosition] = react.useState({ x: 0, y: 0 });
73
+ const gradientPrefix = react.useMemo(() => tigercatCore.getLineGradientPrefix(), []);
69
74
  const innerRect = react.useMemo(
70
75
  () => tigercatCore.getChartInnerRect(width, height, padding),
71
76
  [width, height, padding]
72
77
  );
73
- const resolvedSeries = react.useMemo(() => {
74
- if (series && series.length > 0) return series;
75
- if (data && data.length > 0) return [{ data }];
76
- return [];
77
- }, [series, data]);
78
+ const resolvedSeries = react.useMemo(
79
+ () => tigercatCore.resolveSeriesData(series, data),
80
+ [series, data]
81
+ );
78
82
  const {
79
83
  activeIndex,
80
84
  handleMouseEnter: handleSeriesHoverEnter,
@@ -115,7 +119,7 @@ var LineChart = ({
115
119
  return tigercatCore.createLinearScale(extent, [0, innerRect.width]);
116
120
  } else {
117
121
  const categories = [...new Set(xValues.map(String))];
118
- return tigercatCore.createPointScale(categories, [0, innerRect.width], { padding: 0.1 });
122
+ return tigercatCore.createPointScale(categories, [0, innerRect.width], { padding: 0 });
119
123
  }
120
124
  }, [xScaleProp, isXNumeric, xValues, innerRect.width]);
121
125
  const resolvedYScale = react.useMemo(() => {
@@ -123,12 +127,9 @@ var LineChart = ({
123
127
  const extent = tigercatCore.getNumberExtent(yValues, { includeZero });
124
128
  return tigercatCore.createLinearScale(extent, [innerRect.height, 0]);
125
129
  }, [yScaleProp, yValues, includeZero, innerRect.height]);
126
- const resolvedShowXAxis = showAxis && showXAxis;
127
- const resolvedShowYAxis = showAxis && showYAxis;
128
- const palette = react.useMemo(
129
- () => colors && colors.length > 0 ? colors : [...tigercatCore.DEFAULT_CHART_COLORS],
130
- [colors]
131
- );
130
+ const shouldShowXAxis = showAxis && showXAxis;
131
+ const shouldShowYAxis = showAxis && showYAxis;
132
+ const palette = react.useMemo(() => tigercatCore.resolveChartPalette(colors), [colors]);
132
133
  const seriesData = react.useMemo(
133
134
  () => resolvedSeries.map((s, seriesIndex) => {
134
135
  const color = s.color ?? palette[seriesIndex % palette.length];
@@ -139,6 +140,8 @@ var LineChart = ({
139
140
  pointIndex
140
141
  }));
141
142
  const linePath = tigercatCore.createLinePath(points, curve);
143
+ const seriesShowArea = s.showArea ?? showArea;
144
+ const areaPath = seriesShowArea ? tigercatCore.createAreaPath(points, innerRect.height, curve) : "";
142
145
  const opacity = tigercatCore.getChartElementOpacity(seriesIndex, activeIndex, {
143
146
  activeOpacity,
144
147
  inactiveOpacity
@@ -148,13 +151,17 @@ var LineChart = ({
148
151
  seriesIndex,
149
152
  color,
150
153
  linePath,
154
+ areaPath,
155
+ showArea: seriesShowArea,
156
+ areaOpacity: s.areaOpacity ?? areaOpacity,
151
157
  points,
152
158
  opacity,
153
159
  strokeWidth: s.strokeWidth ?? strokeWidth,
154
160
  strokeDasharray: s.strokeDasharray,
155
161
  showPoints: s.showPoints ?? showPoints,
156
162
  pointSize: s.pointSize ?? pointSize,
157
- pointColor: s.pointColor ?? color
163
+ pointColor: s.pointColor ?? color,
164
+ pointHollow: s.pointHollow ?? pointHollow
158
165
  };
159
166
  }),
160
167
  [
@@ -168,34 +175,32 @@ var LineChart = ({
168
175
  inactiveOpacity,
169
176
  strokeWidth,
170
177
  showPoints,
171
- pointSize
178
+ pointSize,
179
+ showArea,
180
+ areaOpacity,
181
+ pointHollow,
182
+ innerRect.height
172
183
  ]
173
184
  );
174
185
  const legendItems = react.useMemo(
175
- () => resolvedSeries.map((s, index) => ({
176
- index,
177
- label: legendFormatter ? legendFormatter(s, index) : s.name ?? `Series ${index + 1}`,
178
- color: s.color ?? palette[index % palette.length],
179
- active: activeIndex === null || activeIndex === index
180
- })),
186
+ () => tigercatCore.buildChartLegendItems({
187
+ data: resolvedSeries,
188
+ palette,
189
+ activeIndex,
190
+ getLabel: (s, i) => legendFormatter ? legendFormatter(s, i) : s.name ?? `Series ${i + 1}`,
191
+ getColor: (s, i) => s.color ?? palette[i % palette.length]
192
+ }),
181
193
  [resolvedSeries, legendFormatter, palette, activeIndex]
182
194
  );
183
- const formatTooltip = react.useCallback(
184
- (datum, seriesIndex, _pointIndex, s) => {
185
- if (tooltipFormatter) return tooltipFormatter(datum, seriesIndex, _pointIndex, s);
186
- const seriesName = s?.name ?? `Series ${seriesIndex + 1}`;
187
- const label = datum.label ?? String(datum.x);
188
- return `${seriesName} \xB7 ${label}: ${datum.y}`;
189
- },
190
- [tooltipFormatter]
195
+ const tooltipContent = react.useMemo(
196
+ () => tigercatCore.resolveMultiSeriesTooltipContent(
197
+ hoveredPointInfo,
198
+ resolvedSeries,
199
+ tooltipFormatter,
200
+ tigercatCore.defaultSeriesXYTooltipFormatter
201
+ ),
202
+ [hoveredPointInfo, resolvedSeries, tooltipFormatter]
191
203
  );
192
- const tooltipContent = react.useMemo(() => {
193
- if (!hoveredPointInfo) return "";
194
- const { seriesIndex, pointIndex } = hoveredPointInfo;
195
- const s = resolvedSeries[seriesIndex];
196
- const datum = s?.data[pointIndex];
197
- return datum ? formatTooltip(datum, seriesIndex, pointIndex, s) : "";
198
- }, [hoveredPointInfo, resolvedSeries, formatTooltip]);
199
204
  const handlePointMouseEnter = react.useCallback(
200
205
  (seriesIndex, pointIndex, event) => {
201
206
  setHoveredPointInfo({ seriesIndex, pointIndex });
@@ -237,6 +242,32 @@ var LineChart = ({
237
242
  desc,
238
243
  className: tigercatCore.classNames(className),
239
244
  children: [
245
+ (seriesData.some((sd) => sd.showArea) || animated) && /* @__PURE__ */ jsxRuntime.jsxs("defs", { children: [
246
+ animated && /* @__PURE__ */ jsxRuntime.jsx("style", { children: `
247
+ .tiger-line-animated {
248
+ animation: tiger-line-draw 1.2s cubic-bezier(.4,0,.2,1) forwards;
249
+ }
250
+ @keyframes tiger-line-draw {
251
+ from { stroke-dashoffset: 1; }
252
+ to { stroke-dashoffset: 0; }
253
+ }
254
+ ` }),
255
+ seriesData.filter((sd) => sd.showArea).map((sd) => /* @__PURE__ */ jsxRuntime.jsxs(
256
+ "linearGradient",
257
+ {
258
+ id: `${gradientPrefix}-${sd.seriesIndex}`,
259
+ x1: "0",
260
+ y1: "0",
261
+ x2: "0",
262
+ y2: "1",
263
+ children: [
264
+ /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "0%", stopColor: sd.color, stopOpacity: sd.areaOpacity }),
265
+ /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "100%", stopColor: sd.color, stopOpacity: 0.02 })
266
+ ]
267
+ },
268
+ `area-grad-${sd.seriesIndex}`
269
+ ))
270
+ ] }),
240
271
  showGrid && /* @__PURE__ */ jsxRuntime.jsx(
241
272
  chunk3QFHVAZT_js.ChartGrid,
242
273
  {
@@ -251,7 +282,7 @@ var LineChart = ({
251
282
  strokeWidth: gridStrokeWidth
252
283
  }
253
284
  ),
254
- resolvedShowXAxis && /* @__PURE__ */ jsxRuntime.jsx(
285
+ shouldShowXAxis && /* @__PURE__ */ jsxRuntime.jsx(
255
286
  chunkE5GD3H7L_js.ChartAxis,
256
287
  {
257
288
  scale: resolvedXScale,
@@ -263,7 +294,7 @@ var LineChart = ({
263
294
  label: xAxisLabel
264
295
  }
265
296
  ),
266
- resolvedShowYAxis && /* @__PURE__ */ jsxRuntime.jsx(
297
+ shouldShowYAxis && /* @__PURE__ */ jsxRuntime.jsx(
267
298
  chunkE5GD3H7L_js.ChartAxis,
268
299
  {
269
300
  scale: resolvedYScale,
@@ -288,6 +319,16 @@ var LineChart = ({
288
319
  tabIndex: selectable ? 0 : void 0,
289
320
  onKeyDown: (e) => handleKeyDown(e, sd.seriesIndex),
290
321
  children: [
322
+ sd.showArea && sd.areaPath && /* @__PURE__ */ jsxRuntime.jsx(
323
+ "path",
324
+ {
325
+ d: sd.areaPath,
326
+ fill: `url(#${gradientPrefix}-${sd.seriesIndex})`,
327
+ stroke: "none",
328
+ className: "transition-opacity duration-300",
329
+ "data-area-series": sd.seriesIndex
330
+ }
331
+ ),
291
332
  /* @__PURE__ */ jsxRuntime.jsx(
292
333
  "path",
293
334
  {
@@ -295,32 +336,44 @@ var LineChart = ({
295
336
  fill: "none",
296
337
  stroke: sd.color,
297
338
  strokeWidth: sd.strokeWidth,
298
- strokeDasharray: sd.strokeDasharray,
339
+ strokeDasharray: animated ? sd.strokeDasharray ?? "1" : sd.strokeDasharray,
340
+ strokeDashoffset: animated ? "1" : void 0,
299
341
  strokeLinecap: "round",
300
342
  strokeLinejoin: "round",
301
- className: "transition-opacity duration-150",
343
+ pathLength: animated ? 1 : void 0,
344
+ className: tigercatCore.classNames(
345
+ "transition-opacity duration-200",
346
+ animated && "tiger-line-animated"
347
+ ),
302
348
  "data-line-series": sd.seriesIndex
303
349
  }
304
350
  ),
305
- sd.showPoints && sd.points.map((point) => /* @__PURE__ */ jsxRuntime.jsx(
306
- "circle",
307
- {
308
- cx: point.x,
309
- cy: point.y,
310
- r: sd.pointSize,
311
- fill: sd.pointColor,
312
- className: "transition-all duration-150",
313
- "data-point-index": point.pointIndex,
314
- onMouseEnter: (e) => handlePointMouseEnter(sd.seriesIndex, point.pointIndex, e),
315
- onMouseMove: handlePointMouseMove,
316
- onMouseLeave: handlePointMouseLeave,
317
- onClick: (e) => {
318
- e.stopPropagation();
319
- handlePointClick(sd.seriesIndex, point.pointIndex);
320
- }
321
- },
322
- `point-${sd.seriesIndex}-${point.pointIndex}`
323
- ))
351
+ sd.showPoints && sd.points.map((point) => {
352
+ const isHovered = hoveredPointInfo?.seriesIndex === sd.seriesIndex && hoveredPointInfo?.pointIndex === point.pointIndex;
353
+ const hoverSize = sd.pointSize + 2;
354
+ return /* @__PURE__ */ jsxRuntime.jsx(
355
+ "circle",
356
+ {
357
+ cx: point.x,
358
+ cy: point.y,
359
+ r: isHovered ? hoverSize : sd.pointSize,
360
+ fill: sd.pointHollow ? "white" : sd.pointColor,
361
+ stroke: sd.pointHollow ? sd.pointColor : "none",
362
+ strokeWidth: sd.pointHollow ? 2 : 0,
363
+ className: "transition-all duration-200 ease-out",
364
+ style: isHovered ? { filter: `drop-shadow(0 0 4px ${sd.color})` } : void 0,
365
+ "data-point-index": point.pointIndex,
366
+ onMouseEnter: (e) => handlePointMouseEnter(sd.seriesIndex, point.pointIndex, e),
367
+ onMouseMove: handlePointMouseMove,
368
+ onMouseLeave: handlePointMouseLeave,
369
+ onClick: (e) => {
370
+ e.stopPropagation();
371
+ handlePointClick(sd.seriesIndex, point.pointIndex);
372
+ }
373
+ },
374
+ `point-${sd.seriesIndex}-${point.pointIndex}`
375
+ );
376
+ })
324
377
  ]
325
378
  },
326
379
  `series-${sd.seriesIndex}`
@@ -1,9 +1,9 @@
1
- import { Tabs, TabPane } from './chunk-C52ZCGYG.mjs';
2
- import { List } from './chunk-BAPR7UUR.mjs';
3
- import { Button } from './chunk-STEIWBMF.mjs';
4
- import { Loading } from './chunk-PUDU34R4.mjs';
5
- import { Text } from './chunk-6YDIBMCM.mjs';
6
- import { Card } from './chunk-VD3IK5XT.mjs';
1
+ import { Tabs, TabPane } from './chunk-6PXNWGR5.mjs';
2
+ import { List } from './chunk-TGPQ4KET.mjs';
3
+ import { Button } from './chunk-ENSLMM3L.mjs';
4
+ import { Loading } from './chunk-AVUXDQYO.mjs';
5
+ import { Text } from './chunk-LIV33O73.mjs';
6
+ import { Card } from './chunk-3M2IG6IN.mjs';
7
7
  import { useMemo, useState, useEffect } from 'react';
8
8
  import { buildNotificationGroups, classNames, formatActivityTime } from '@expcat/tigercat-core';
9
9
  import { jsx, jsxs } from 'react/jsx-runtime';