@expcat/tigercat-react 0.3.0 → 0.3.69

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 (343) 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-6MGEGOYJ.js → chunk-2GKTVAAB.js} +24 -18
  4. package/dist/{chunk-HGTF6A46.mjs → chunk-3577FW3I.mjs} +58 -92
  5. package/dist/{chunk-GY6D4XS3.js → chunk-3GW3UAKB.js} +40 -98
  6. package/dist/{chunk-VD3IK5XT.mjs → chunk-3M2IG6IN.mjs} +2 -3
  7. package/dist/{chunk-T3GSXTDU.js → chunk-3NE6VZRY.js} +2 -3
  8. package/dist/chunk-3PV2MDST.mjs +95 -0
  9. package/dist/{chunk-36RRHNZD.js → chunk-3T7L3MHX.js} +33 -15
  10. package/dist/{chunk-IY4LEJYF.js → chunk-4PPTEEDI.js} +29 -30
  11. package/dist/{chunk-Z4Z3I74Q.mjs → chunk-4Y7YH32A.mjs} +37 -46
  12. package/dist/chunk-56KTCMRE.mjs +77 -0
  13. package/dist/chunk-5P5M656V.mjs +75 -0
  14. package/dist/{chunk-Z6G4HABF.js → chunk-67FVBKBC.js} +58 -95
  15. package/dist/{chunk-KAEHFMTQ.mjs → chunk-6IH5QPTR.mjs} +121 -144
  16. package/dist/{chunk-C52ZCGYG.mjs → chunk-6PXNWGR5.mjs} +49 -65
  17. package/dist/{chunk-MQTHGPHF.js → chunk-72MWKUBC.js} +49 -42
  18. package/dist/{chunk-PT4WLSTJ.mjs → chunk-763M6U5U.mjs} +105 -65
  19. package/dist/{chunk-RTQNWZN4.mjs → chunk-77PE7OFK.mjs} +3 -5
  20. package/dist/{chunk-KPZTGRNA.js → chunk-7Z64GEMN.js} +51 -55
  21. package/dist/{chunk-3WPKVV4N.js → chunk-A3PYG3D6.js} +6 -39
  22. package/dist/chunk-AQ72JVUG.js +41 -0
  23. package/dist/{chunk-P4EFJIXU.mjs → chunk-AUP3PMDD.mjs} +18 -41
  24. package/dist/{chunk-PUDU34R4.mjs → chunk-AVUXDQYO.mjs} +26 -20
  25. package/dist/{chunk-HUZVBDHV.js → chunk-AY5Z3NIW.js} +15 -20
  26. package/dist/{chunk-67EK62HG.mjs → chunk-B3LRUKXM.mjs} +1 -1
  27. package/dist/{chunk-JAVDNFJD.js → chunk-C7UKFKVY.js} +26 -33
  28. package/dist/{chunk-TZ26HQAW.js → chunk-CI2WHAT2.js} +18 -38
  29. package/dist/{chunk-WYTHTJN3.mjs → chunk-CYZLGYY4.mjs} +112 -59
  30. package/dist/{chunk-NSGDRTSQ.mjs → chunk-D5KYIQWB.mjs} +6 -39
  31. package/dist/chunk-DQNA57CA.js +57 -0
  32. package/dist/{chunk-6575DOCV.mjs → chunk-DTQZPZSJ.mjs} +3 -3
  33. package/dist/{chunk-7P6PHSFM.js → chunk-DXXYPVJJ.js} +32 -35
  34. package/dist/{chunk-UFAXJVMD.js → chunk-EFLIFXZH.js} +3 -3
  35. package/dist/{chunk-JI7SFMUT.mjs → chunk-EIMAQHCQ.mjs} +29 -80
  36. package/dist/chunk-ENSLMM3L.mjs +68 -0
  37. package/dist/chunk-F24IF2QL.js +74 -0
  38. package/dist/{chunk-ZUUG3WOL.js → chunk-F4Q5QMX2.js} +171 -94
  39. package/dist/{chunk-V2HVHLBY.mjs → chunk-FE7PEZTI.mjs} +19 -39
  40. package/dist/chunk-FLYJVZED.mjs +30 -0
  41. package/dist/chunk-FMF2G6BJ.js +179 -0
  42. package/dist/{chunk-YIF5VX7K.mjs → chunk-FNDPGSEW.mjs} +14 -13
  43. package/dist/{chunk-HQLZL3XQ.mjs → chunk-FPNT7FV5.mjs} +3 -7
  44. package/dist/{chunk-YE2M2HNM.js → chunk-FSDZJD7M.js} +36 -45
  45. package/dist/{chunk-4PTI6ZUK.js → chunk-GASFXURT.js} +93 -43
  46. package/dist/chunk-GB5G2CJY.js +96 -0
  47. package/dist/{chunk-LXA2YBAO.js → chunk-GJEWBALW.js} +2 -2
  48. package/dist/{chunk-GXTBCX3M.js → chunk-H5MZ54PM.js} +16 -39
  49. package/dist/{chunk-4TWHENPT.js → chunk-HB2UYJBY.js} +32 -17
  50. package/dist/{chunk-5HUYCSA4.mjs → chunk-HPXLUJFJ.mjs} +22 -19
  51. package/dist/chunk-HQ3QOT7H.js +33 -0
  52. package/dist/chunk-I5TCE5E7.js +32 -0
  53. package/dist/{chunk-QFVE7GKD.js → chunk-IBYIPXIO.js} +5 -26
  54. package/dist/{chunk-3XXXM4OB.mjs → chunk-IGE44BIS.mjs} +67 -23
  55. package/dist/{chunk-XRFK2IXM.js → chunk-IHH2O7YK.js} +6 -7
  56. package/dist/chunk-IP3MAJSH.mjs +55 -0
  57. package/dist/{chunk-OVWCTDAL.js → chunk-IRH2ZVD3.js} +37 -49
  58. package/dist/chunk-IVGKPD2L.mjs +39 -0
  59. package/dist/{chunk-CJJ56NVL.mjs → chunk-IXJMMM26.mjs} +16 -60
  60. package/dist/{chunk-4IO2M3ZJ.js → chunk-J3HKED4B.js} +17 -17
  61. package/dist/{chunk-MF3H7WWW.mjs → chunk-JNLX47UL.mjs} +33 -15
  62. package/dist/{chunk-L63N3LCG.js → chunk-JQNKI2ZZ.js} +79 -31
  63. package/dist/{chunk-X4F6NSI5.mjs → chunk-JUWFVIDP.mjs} +2 -2
  64. package/dist/{chunk-LADCWARG.mjs → chunk-JVTAKNRO.mjs} +17 -15
  65. package/dist/{chunk-2Y327ZU4.js → chunk-KAWE5LQZ.js} +80 -83
  66. package/dist/{chunk-TR246HQP.mjs → chunk-KMTERPME.mjs} +14 -18
  67. package/dist/chunk-LIV33O73.mjs +26 -0
  68. package/dist/{chunk-PVOQUXIB.mjs → chunk-LL6B4BHF.mjs} +4 -4
  69. package/dist/chunk-LXQOQJMU.js +79 -0
  70. package/dist/{chunk-HT2BXCEM.js → chunk-M46L73HR.js} +19 -19
  71. package/dist/{chunk-NMDNLB3C.mjs → chunk-MDZDPGRK.mjs} +30 -27
  72. package/dist/{chunk-WKGCUR7O.mjs → chunk-MTL2QUM3.mjs} +7 -7
  73. package/dist/chunk-MWH6FCSE.js +97 -0
  74. package/dist/{chunk-YER7IQF4.mjs → chunk-N4EMXCRQ.mjs} +172 -95
  75. package/dist/{chunk-SIB4EHB6.js → chunk-NEP3CS6S.js} +111 -58
  76. package/dist/{chunk-FAZQT7YP.mjs → chunk-NJCKTIWB.mjs} +6 -6
  77. package/dist/{chunk-IIVRVCCP.mjs → chunk-NKKIJQMV.mjs} +53 -57
  78. package/dist/{chunk-MQXBU5YX.mjs → chunk-NQFHS4W2.mjs} +29 -21
  79. package/dist/chunk-NTODO3Q3.mjs +94 -0
  80. package/dist/{chunk-NDOYQK2R.mjs → chunk-NZLOLMT2.mjs} +41 -99
  81. package/dist/chunk-O3W3OZ6V.js +37 -0
  82. package/dist/{chunk-IFY46RWU.js → chunk-OESNOOOT.js} +1 -2
  83. package/dist/{chunk-IWENGARY.mjs → chunk-OFBK35TK.mjs} +1 -1
  84. package/dist/{chunk-R7TOQU3U.js → chunk-OIUIR5ZR.js} +15 -59
  85. package/dist/{chunk-QEAC4MIG.mjs → chunk-OUAZM7NY.mjs} +12 -59
  86. package/dist/{chunk-R67R3TVA.mjs → chunk-OXT5RN55.mjs} +5 -5
  87. package/dist/{chunk-CIL2AC3F.js → chunk-OYCMGKQ7.js} +15 -23
  88. package/dist/{chunk-IQINYCU6.js → chunk-PR3PQUKM.js} +17 -15
  89. package/dist/chunk-PTEDJ6MA.js +29 -0
  90. package/dist/{chunk-D3I2SY7X.js → chunk-PWZB45Z7.js} +13 -60
  91. package/dist/{chunk-GZPMLPRW.js → chunk-PXPUPQRO.js} +2 -2
  92. package/dist/{chunk-OZLGNWET.js → chunk-Q57BYUUW.js} +12 -28
  93. package/dist/chunk-QAO5KANE.mjs +36 -0
  94. package/dist/{chunk-AITVDDCE.mjs → chunk-QGCQAJGL.mjs} +81 -33
  95. package/dist/{chunk-JOHKSMJM.mjs → chunk-QLHFXYWA.mjs} +59 -96
  96. package/dist/{chunk-C5EFBJBR.js → chunk-QM4GOQDT.js} +119 -142
  97. package/dist/{chunk-PBJ2J2B3.js → chunk-QNRAM3CM.js} +2 -2
  98. package/dist/{chunk-Z5DDULTA.js → chunk-RARHRSPQ.js} +2 -2
  99. package/dist/{chunk-5QKMQRCW.js → chunk-RDIEZKV2.js} +28 -20
  100. package/dist/{chunk-OZLAGTZW.mjs → chunk-RGFSY3S2.mjs} +50 -43
  101. package/dist/{chunk-IYFSM2GA.mjs → chunk-RGZYYVQF.mjs} +26 -33
  102. package/dist/{chunk-3GD3LOII.mjs → chunk-RITTIFCJ.mjs} +1 -2
  103. package/dist/{chunk-Y2JOJ4D6.js → chunk-RKB2VUQO.js} +8 -10
  104. package/dist/{chunk-7SLNHUGJ.js → chunk-RNEL4XIO.js} +28 -79
  105. package/dist/{chunk-6ZTCBQJ7.mjs → chunk-RPTLVIBF.mjs} +17 -25
  106. package/dist/{chunk-5ZVSFIZD.js → chunk-RYWGELJ7.js} +2 -6
  107. package/dist/chunk-S4GNTA7V.mjs +176 -0
  108. package/dist/{chunk-VSF4DF7N.js → chunk-SAZ6V6DX.js} +21 -18
  109. package/dist/{chunk-Q3DPJHNM.js → chunk-SFALTVPS.js} +3 -5
  110. package/dist/{chunk-LZNG2HGC.mjs → chunk-SH6O6LDJ.mjs} +72 -30
  111. package/dist/{chunk-6E5UKM6O.js → chunk-SM7RDJFB.js} +104 -64
  112. package/dist/{chunk-DGBYGBLR.js → chunk-SOC74QA2.js} +32 -52
  113. package/dist/{chunk-KOLLAGRK.mjs → chunk-SQ7OL2X5.mjs} +2 -3
  114. package/dist/{chunk-VO4WDK4K.js → chunk-SSQOCZ6O.js} +1 -2
  115. package/dist/{chunk-KV4LLPAY.mjs → chunk-SW4I4X6E.mjs} +8 -10
  116. package/dist/{chunk-GQMYCYZ4.js → chunk-TDRINUMH.js} +31 -28
  117. package/dist/{chunk-DIZNY6N4.mjs → chunk-TGKNEMD4.mjs} +8 -8
  118. package/dist/{chunk-BAPR7UUR.mjs → chunk-TGPQ4KET.mjs} +13 -29
  119. package/dist/{chunk-3XKBDV2Q.mjs → chunk-TUA5PDRX.mjs} +7 -8
  120. package/dist/{chunk-CES6LGQ7.mjs → chunk-UE234MW4.mjs} +34 -37
  121. package/dist/{chunk-U4ZVEPYD.js → chunk-URM7QDHH.js} +14 -18
  122. package/dist/chunk-UZ7SBFQV.mjs +35 -0
  123. package/dist/{chunk-HGF2EL25.mjs → chunk-V5NIFF2F.mjs} +34 -54
  124. package/dist/{chunk-672SCJWZ.mjs → chunk-VCNZEQEB.mjs} +10 -10
  125. package/dist/{chunk-R7MS42PL.js → chunk-VCOBBJLP.js} +9 -9
  126. package/dist/{chunk-2TS6X5RA.js → chunk-VCULFIZ5.js} +7 -7
  127. package/dist/{chunk-N32MAX4A.js → chunk-W4TFISRK.js} +70 -28
  128. package/dist/{chunk-4MMT4EJJ.mjs → chunk-WAIXKROS.mjs} +17 -22
  129. package/dist/{chunk-YGOTPK2W.mjs → chunk-WGRYO5HX.mjs} +34 -19
  130. package/dist/{chunk-ZPWDDAFE.js → chunk-XID6T65A.js} +14 -13
  131. package/dist/chunk-XJ7U2W7S.mjs +27 -0
  132. package/dist/{chunk-ZN2BZCTI.js → chunk-XKDWDANG.js} +8 -8
  133. package/dist/{chunk-EI2GHMQS.js → chunk-XLVEI7GS.js} +15 -13
  134. package/dist/{chunk-6YKZAWNX.js → chunk-XWNVBCJA.js} +14 -14
  135. package/dist/{chunk-JW64IJP2.js → chunk-XWRJVNB6.js} +67 -23
  136. package/dist/{chunk-HDDBBZQH.js → chunk-YV6Y7C43.js} +48 -64
  137. package/dist/{chunk-XS5JP2KO.mjs → chunk-ZFHTSHXS.mjs} +82 -85
  138. package/dist/{chunk-73DMQ2SR.mjs → chunk-ZGQOYCQT.mjs} +32 -44
  139. package/dist/{chunk-WDAMDVLU.mjs → chunk-ZIUOENTL.mjs} +6 -27
  140. package/dist/{chunk-GJKT2B56.js → chunk-ZTVATZB6.js} +58 -92
  141. package/dist/components/ActivityFeed.js +10 -10
  142. package/dist/components/ActivityFeed.mjs +8 -8
  143. package/dist/components/Alert.js +3 -2
  144. package/dist/components/Alert.mjs +2 -1
  145. package/dist/components/Anchor.js +4 -4
  146. package/dist/components/Anchor.mjs +1 -1
  147. package/dist/components/AnchorLink.js +4 -4
  148. package/dist/components/AnchorLink.mjs +2 -2
  149. package/dist/components/AreaChart.d.mts +3 -0
  150. package/dist/components/AreaChart.d.ts +3 -0
  151. package/dist/components/AreaChart.js +3 -3
  152. package/dist/components/AreaChart.mjs +1 -1
  153. package/dist/components/Avatar.d.mts +1 -1
  154. package/dist/components/Avatar.d.ts +1 -1
  155. package/dist/components/Avatar.js +2 -2
  156. package/dist/components/Avatar.mjs +1 -1
  157. package/dist/components/BackTop.js +3 -3
  158. package/dist/components/BackTop.mjs +1 -1
  159. package/dist/components/Badge.d.mts +0 -3
  160. package/dist/components/Badge.d.ts +0 -3
  161. package/dist/components/Badge.js +2 -2
  162. package/dist/components/Badge.mjs +1 -1
  163. package/dist/components/BarChart.js +3 -3
  164. package/dist/components/BarChart.mjs +1 -1
  165. package/dist/components/Breadcrumb.d.mts +0 -1
  166. package/dist/components/Breadcrumb.d.ts +0 -1
  167. package/dist/components/BreadcrumbItem.js +2 -2
  168. package/dist/components/BreadcrumbItem.mjs +1 -1
  169. package/dist/components/Button.js +2 -2
  170. package/dist/components/Button.mjs +1 -1
  171. package/dist/components/Card.js +2 -2
  172. package/dist/components/Card.mjs +1 -1
  173. package/dist/components/Carousel.js +2 -2
  174. package/dist/components/Carousel.mjs +1 -1
  175. package/dist/components/ChatWindow.js +7 -7
  176. package/dist/components/ChatWindow.mjs +5 -5
  177. package/dist/components/Checkbox.js +2 -2
  178. package/dist/components/Checkbox.mjs +1 -1
  179. package/dist/components/Col.js +3 -3
  180. package/dist/components/Col.mjs +2 -2
  181. package/dist/components/CollapsePanel.js +3 -3
  182. package/dist/components/CollapsePanel.mjs +1 -1
  183. package/dist/components/CommentThread.js +8 -8
  184. package/dist/components/CommentThread.mjs +6 -6
  185. package/dist/components/DataTableWithToolbar.js +8 -11
  186. package/dist/components/DataTableWithToolbar.mjs +6 -9
  187. package/dist/components/DatePicker.js +2 -2
  188. package/dist/components/DatePicker.mjs +1 -1
  189. package/dist/components/Descriptions.js +3 -3
  190. package/dist/components/Descriptions.mjs +1 -1
  191. package/dist/components/Divider.d.mts +1 -3
  192. package/dist/components/Divider.d.ts +1 -3
  193. package/dist/components/Divider.js +2 -2
  194. package/dist/components/Divider.mjs +1 -1
  195. package/dist/components/DonutChart.d.mts +6 -0
  196. package/dist/components/DonutChart.d.ts +6 -0
  197. package/dist/components/DonutChart.js +4 -4
  198. package/dist/components/DonutChart.mjs +2 -2
  199. package/dist/components/Drawer.js +2 -2
  200. package/dist/components/Drawer.mjs +1 -1
  201. package/dist/components/Dropdown.d.mts +1 -15
  202. package/dist/components/Dropdown.d.ts +1 -15
  203. package/dist/components/Dropdown.js +3 -3
  204. package/dist/components/Dropdown.mjs +1 -1
  205. package/dist/components/DropdownItem.js +3 -3
  206. package/dist/components/DropdownItem.mjs +2 -2
  207. package/dist/components/Form.d.mts +1 -0
  208. package/dist/components/Form.d.ts +1 -0
  209. package/dist/components/Form.js +3 -3
  210. package/dist/components/Form.mjs +1 -1
  211. package/dist/components/FormItem.js +3 -3
  212. package/dist/components/FormItem.mjs +2 -2
  213. package/dist/components/FormWizard.js +6 -6
  214. package/dist/components/FormWizard.mjs +4 -4
  215. package/dist/components/Icon.js +2 -2
  216. package/dist/components/Icon.mjs +1 -1
  217. package/dist/components/Input.d.mts +4 -7
  218. package/dist/components/Input.d.ts +4 -7
  219. package/dist/components/Input.js +2 -2
  220. package/dist/components/Input.mjs +1 -1
  221. package/dist/components/LineChart.js +3 -3
  222. package/dist/components/LineChart.mjs +1 -1
  223. package/dist/components/Link.js +2 -2
  224. package/dist/components/Link.mjs +1 -1
  225. package/dist/components/List.js +2 -4
  226. package/dist/components/List.mjs +1 -3
  227. package/dist/components/Loading.js +2 -2
  228. package/dist/components/Loading.mjs +1 -1
  229. package/dist/components/Menu.js +3 -3
  230. package/dist/components/Menu.mjs +1 -1
  231. package/dist/components/MenuItem.js +3 -3
  232. package/dist/components/MenuItem.mjs +2 -2
  233. package/dist/components/MenuItemGroup.js +4 -4
  234. package/dist/components/MenuItemGroup.mjs +3 -3
  235. package/dist/components/Message.d.mts +0 -18
  236. package/dist/components/Message.d.ts +0 -18
  237. package/dist/components/Message.js +5 -4
  238. package/dist/components/Message.mjs +2 -1
  239. package/dist/components/Modal.d.mts +15 -0
  240. package/dist/components/Modal.d.ts +15 -0
  241. package/dist/components/Modal.js +3 -2
  242. package/dist/components/Modal.mjs +2 -1
  243. package/dist/components/Notification.d.mts +0 -15
  244. package/dist/components/Notification.d.ts +0 -15
  245. package/dist/components/Notification.js +5 -4
  246. package/dist/components/Notification.mjs +2 -1
  247. package/dist/components/NotificationCenter.js +9 -10
  248. package/dist/components/NotificationCenter.mjs +7 -8
  249. package/dist/components/Pagination.js +3 -3
  250. package/dist/components/Pagination.mjs +1 -1
  251. package/dist/components/PieChart.js +3 -3
  252. package/dist/components/PieChart.mjs +1 -1
  253. package/dist/components/Popconfirm.d.mts +0 -26
  254. package/dist/components/Popconfirm.d.ts +0 -26
  255. package/dist/components/Popconfirm.js +3 -2
  256. package/dist/components/Popconfirm.mjs +2 -1
  257. package/dist/components/Popover.d.mts +0 -8
  258. package/dist/components/Popover.d.ts +0 -8
  259. package/dist/components/Popover.js +3 -2
  260. package/dist/components/Popover.mjs +2 -1
  261. package/dist/components/Progress.js +2 -2
  262. package/dist/components/Progress.mjs +1 -1
  263. package/dist/components/RadarChart.d.mts +8 -0
  264. package/dist/components/RadarChart.d.ts +8 -0
  265. package/dist/components/RadarChart.js +4 -3
  266. package/dist/components/RadarChart.mjs +2 -1
  267. package/dist/components/Radio.js +3 -3
  268. package/dist/components/Radio.mjs +2 -2
  269. package/dist/components/RadioGroup.js +3 -3
  270. package/dist/components/RadioGroup.mjs +1 -1
  271. package/dist/components/Row.js +3 -3
  272. package/dist/components/Row.mjs +1 -1
  273. package/dist/components/ScatterChart.js +3 -3
  274. package/dist/components/ScatterChart.mjs +1 -1
  275. package/dist/components/Select.js +2 -2
  276. package/dist/components/Select.mjs +1 -1
  277. package/dist/components/Sidebar.js +2 -2
  278. package/dist/components/Sidebar.mjs +1 -1
  279. package/dist/components/Skeleton.js +2 -2
  280. package/dist/components/Skeleton.mjs +1 -1
  281. package/dist/components/Slider.js +2 -2
  282. package/dist/components/Slider.mjs +1 -1
  283. package/dist/components/Space.js +2 -2
  284. package/dist/components/Space.mjs +1 -1
  285. package/dist/components/Steps.js +3 -3
  286. package/dist/components/Steps.mjs +1 -1
  287. package/dist/components/StepsItem.js +2 -2
  288. package/dist/components/StepsItem.mjs +1 -1
  289. package/dist/components/SubMenu.js +5 -5
  290. package/dist/components/SubMenu.mjs +4 -4
  291. package/dist/components/TabPane.d.mts +18 -3
  292. package/dist/components/TabPane.d.ts +18 -3
  293. package/dist/components/TabPane.js +2 -2
  294. package/dist/components/TabPane.mjs +1 -1
  295. package/dist/components/Table.js +2 -2
  296. package/dist/components/Table.mjs +1 -1
  297. package/dist/components/Tabs.d.mts +44 -2
  298. package/dist/components/Tabs.d.ts +44 -2
  299. package/dist/components/Tabs.js +3 -3
  300. package/dist/components/Tabs.mjs +1 -1
  301. package/dist/components/Tag.js +2 -2
  302. package/dist/components/Tag.mjs +1 -1
  303. package/dist/components/Text.js +2 -2
  304. package/dist/components/Text.mjs +1 -1
  305. package/dist/components/Textarea.js +2 -2
  306. package/dist/components/Textarea.mjs +1 -1
  307. package/dist/components/TimePicker.js +2 -2
  308. package/dist/components/TimePicker.mjs +1 -1
  309. package/dist/components/Timeline.js +2 -2
  310. package/dist/components/Timeline.mjs +1 -1
  311. package/dist/components/Tooltip.d.mts +1 -11
  312. package/dist/components/Tooltip.d.ts +1 -11
  313. package/dist/components/Tooltip.js +3 -2
  314. package/dist/components/Tooltip.mjs +2 -1
  315. package/dist/components/Tree.js +3 -3
  316. package/dist/components/Tree.mjs +1 -1
  317. package/dist/components/Upload.js +2 -2
  318. package/dist/components/Upload.mjs +1 -1
  319. package/dist/index.js +152 -150
  320. package/dist/index.mjs +71 -69
  321. package/package.json +2 -2
  322. package/dist/chunk-3OF7XPIQ.js +0 -90
  323. package/dist/chunk-427CM2U6.mjs +0 -76
  324. package/dist/chunk-6DYS4PJT.mjs +0 -99
  325. package/dist/chunk-6YDIBMCM.mjs +0 -33
  326. package/dist/chunk-A3DJSVTE.js +0 -68
  327. package/dist/chunk-AGUPZEUL.mjs +0 -35
  328. package/dist/chunk-CKUSQR2H.mjs +0 -41
  329. package/dist/chunk-CR4QK2AB.mjs +0 -88
  330. package/dist/chunk-EB6EDLJZ.mjs +0 -50
  331. package/dist/chunk-GW4EWT2K.mjs +0 -125
  332. package/dist/chunk-KELLYJZY.mjs +0 -148
  333. package/dist/chunk-KUCFT2OA.js +0 -43
  334. package/dist/chunk-QY6I7LU5.js +0 -127
  335. package/dist/chunk-STEIWBMF.mjs +0 -66
  336. package/dist/chunk-T4TJJMLM.mjs +0 -34
  337. package/dist/chunk-UG3I4PCY.js +0 -102
  338. package/dist/chunk-YESS6YKC.js +0 -37
  339. package/dist/chunk-YYGTJKP5.js +0 -39
  340. package/dist/chunk-ZPFZMXA6.js +0 -150
  341. package/dist/chunk-ZREFCRX3.js +0 -52
  342. package/dist/{chunk-MKWXJZ3T.js → chunk-QYYAXM5F.js} +1 -1
  343. package/dist/{chunk-WSJO2PIE.mjs → chunk-XZVQ3PJS.mjs} +1 -1
@@ -35,9 +35,11 @@ var Form = React.forwardRef(
35
35
  const [errors, setErrors] = React.useState([]);
36
36
  const [formValues, setFormValues] = React.useState(model);
37
37
  const fieldRulesRef = React__default.default.useRef({});
38
+ const formValuesRef = React__default.default.useRef(model);
38
39
  React__default.default.useEffect(() => {
39
40
  setFormValues(model);
40
41
  }, [model]);
42
+ formValuesRef.current = model;
41
43
  const registerFieldRules = React.useCallback(
42
44
  (fieldName, nextRules) => {
43
45
  if (!fieldName) {
@@ -57,15 +59,36 @@ var Form = React.forwardRef(
57
59
  const merged = { ...fromForm, ...fromItems };
58
60
  return Object.keys(merged).length > 0 ? merged : void 0;
59
61
  }, [rules]);
62
+ const resolveFieldRules = React.useCallback(
63
+ (fieldName, rulesOverride) => {
64
+ return rulesOverride ?? fieldRulesRef.current[fieldName] ?? rules?.[fieldName];
65
+ },
66
+ [rules]
67
+ );
68
+ const runFieldValidation = React.useCallback(
69
+ async (fieldName, rulesOverride, trigger) => {
70
+ const fieldRules = resolveFieldRules(fieldName, rulesOverride);
71
+ if (!fieldRules) {
72
+ return null;
73
+ }
74
+ const currentValues = formValuesRef.current;
75
+ const value = tigercatCore.getValueByPath(currentValues, fieldName);
76
+ return tigercatCore.validateField(fieldName, value, fieldRules, currentValues, trigger);
77
+ },
78
+ [resolveFieldRules]
79
+ );
60
80
  const validateField = React.useCallback(
61
81
  async (fieldName, rulesOverride, trigger) => {
62
- const fieldRules = rulesOverride ?? fieldRulesRef.current[fieldName] ?? rules?.[fieldName];
82
+ const fieldRules = resolveFieldRules(fieldName, rulesOverride);
63
83
  if (!fieldRules) {
64
84
  return;
65
85
  }
66
- const value = tigercatCore.getValueByPath(formValues, fieldName);
67
- const error = await tigercatCore.validateField(fieldName, value, fieldRules, formValues, trigger);
86
+ const error = await runFieldValidation(fieldName, rulesOverride, trigger);
68
87
  setErrors((prevErrors) => {
88
+ const existing = prevErrors.find((e) => e.field === fieldName);
89
+ const existingMessage = existing?.message ?? null;
90
+ if (!error && !existingMessage) return prevErrors;
91
+ if (error && error === existingMessage) return prevErrors;
69
92
  const filtered = prevErrors.filter((e) => e.field !== fieldName);
70
93
  if (error) {
71
94
  return [...filtered, { field: fieldName, message: error }];
@@ -74,18 +97,49 @@ var Form = React.forwardRef(
74
97
  });
75
98
  onValidate?.(fieldName, !error, error);
76
99
  },
77
- [rules, formValues, onValidate]
100
+ [resolveFieldRules, runFieldValidation, onValidate]
78
101
  );
79
- const validate = React.useCallback(async () => {
102
+ const runValidation = React.useCallback(async () => {
80
103
  const effectiveRules = getEffectiveRules();
81
104
  if (!effectiveRules) {
82
105
  setErrors([]);
83
- return true;
106
+ return { valid: true, errors: [] };
84
107
  }
85
- const result = await tigercatCore.validateForm(formValues, effectiveRules);
108
+ const result = await tigercatCore.validateForm(formValuesRef.current, effectiveRules);
86
109
  setErrors(result.errors);
110
+ return result;
111
+ }, [getEffectiveRules]);
112
+ const validate = React.useCallback(async () => {
113
+ const result = await runValidation();
87
114
  return result.valid;
88
- }, [getEffectiveRules, formValues]);
115
+ }, [runValidation]);
116
+ const validateFields = React.useCallback(
117
+ async (fieldNames) => {
118
+ if (!fieldNames || fieldNames.length === 0) {
119
+ return true;
120
+ }
121
+ const nextErrors = [];
122
+ const fieldSet = new Set(fieldNames);
123
+ for (const fieldName of fieldNames) {
124
+ const fieldRules = resolveFieldRules(fieldName);
125
+ if (!fieldRules) {
126
+ onValidate?.(fieldName, true, null);
127
+ continue;
128
+ }
129
+ const error = await runFieldValidation(fieldName);
130
+ if (error) {
131
+ nextErrors.push({ field: fieldName, message: error });
132
+ }
133
+ onValidate?.(fieldName, !error, error);
134
+ }
135
+ setErrors((prevErrors) => {
136
+ const filtered = prevErrors.filter((entry) => !fieldSet.has(entry.field));
137
+ return [...filtered, ...nextErrors];
138
+ });
139
+ return nextErrors.length === 0;
140
+ },
141
+ [resolveFieldRules, runFieldValidation, onValidate]
142
+ );
89
143
  const clearValidate = React.useCallback((fieldNames) => {
90
144
  if (!fieldNames) {
91
145
  setErrors([]);
@@ -135,31 +189,21 @@ var Form = React.forwardRef(
135
189
  const handleSubmit = React.useCallback(
136
190
  async (event) => {
137
191
  event.preventDefault();
138
- const effectiveRules = getEffectiveRules();
139
- if (!effectiveRules) {
140
- setErrors([]);
141
- onSubmit?.({ valid: true, values: formValues, errors: [] });
142
- return;
143
- }
144
- const result = await tigercatCore.validateForm(formValues, effectiveRules);
145
- setErrors(result.errors);
146
- onSubmit?.({
147
- valid: result.valid,
148
- values: formValues,
149
- errors: result.errors
150
- });
192
+ const result = await runValidation();
193
+ onSubmit?.({ ...result, values: formValuesRef.current });
151
194
  },
152
- [getEffectiveRules, formValues, onSubmit]
195
+ [runValidation, onSubmit]
153
196
  );
154
197
  React.useImperativeHandle(
155
198
  ref,
156
199
  () => ({
157
200
  validate,
201
+ validateFields,
158
202
  validateField,
159
203
  clearValidate,
160
204
  resetFields
161
205
  }),
162
- [validate, validateField, clearValidate, resetFields]
206
+ [validate, validateFields, validateField, clearValidate, resetFields]
163
207
  );
164
208
  const contextValue = React.useMemo(
165
209
  () => ({
@@ -43,39 +43,26 @@ var Tabs = ({
43
43
  const tabNavListClasses = React.useMemo(() => {
44
44
  return tigercatCore.getTabNavListClasses(tabPosition, centered);
45
45
  }, [tabPosition, centered]);
46
- const tabContentClasses = React.useMemo(() => {
47
- return tigercatCore.tabContentBaseClasses;
48
- }, []);
49
46
  const { tabItems, tabPanes, firstTabKey } = React.useMemo(() => {
50
47
  const items = [];
51
48
  const panes = [];
52
49
  let firstKey;
53
- const childrenArray = [];
54
50
  React__default.default.Children.forEach(children, (child) => {
55
- if (React__default.default.isValidElement(child) && child.type === TabPane) {
56
- childrenArray.push(child);
57
- }
58
- });
59
- const resolvedFirstKey = childrenArray[0]?.props.tabKey;
60
- if (resolvedFirstKey !== void 0) {
61
- firstKey = resolvedFirstKey;
62
- }
63
- const resolvedActiveKey = controlledActiveKey !== void 0 ? controlledActiveKey : defaultActiveKey !== void 0 ? defaultActiveKey : firstKey;
64
- childrenArray.forEach((child) => {
65
- if (React__default.default.isValidElement(child) && child.type === TabPane) {
66
- const key = child.props.tabKey;
67
- const tabId = `${idBase}-tab-${String(key)}`;
68
- const panelId = `${idBase}-panel-${String(key)}`;
69
- items.push(
70
- React__default.default.cloneElement(child, {
71
- renderMode: "tab",
72
- tabId,
73
- panelId,
74
- tabIndex: key === resolvedActiveKey ? 0 : -1
75
- })
76
- );
77
- panes.push(React__default.default.cloneElement(child, { renderMode: "pane", tabId, panelId }));
78
- }
51
+ if (!React__default.default.isValidElement(child) || child.type !== TabPane) return;
52
+ const key = child.props.tabKey;
53
+ if (firstKey === void 0) firstKey = key;
54
+ const resolvedActiveKey = controlledActiveKey ?? defaultActiveKey ?? firstKey;
55
+ const tabId = `${idBase}-tab-${String(key)}`;
56
+ const panelId = `${idBase}-panel-${String(key)}`;
57
+ items.push(
58
+ React__default.default.cloneElement(child, {
59
+ renderMode: "tab",
60
+ tabId,
61
+ panelId,
62
+ tabIndex: key === resolvedActiveKey ? 0 : -1
63
+ })
64
+ );
65
+ panes.push(React__default.default.cloneElement(child, { renderMode: "pane", tabId, panelId }));
79
66
  });
80
67
  return { tabItems: items, tabPanes: panes, firstTabKey: firstKey };
81
68
  }, [children, controlledActiveKey, defaultActiveKey, idBase]);
@@ -127,38 +114,35 @@ var Tabs = ({
127
114
  handleTabClose
128
115
  ]
129
116
  );
130
- const tabNavContent = /* @__PURE__ */ jsxRuntime.jsx("div", { className: tabNavClasses, role: "tablist", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: tabNavListClasses, children: [
131
- tabItems,
132
- type === "editable-card" && /* @__PURE__ */ jsxRuntime.jsx(
133
- "button",
134
- {
135
- type: "button",
136
- className: tigercatCore.tabAddButtonClasses,
137
- onClick: handleTabAdd,
138
- "aria-label": "Add tab",
139
- children: "+"
140
- }
141
- )
142
- ] }) });
143
- const tabContent = /* @__PURE__ */ jsxRuntime.jsx("div", { className: tabContentClasses, children: tabPanes });
144
- let content;
145
- if (tabPosition === "left" || tabPosition === "right") {
146
- content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
147
- tabNavContent,
148
- tabContent
149
- ] });
150
- } else if (tabPosition === "bottom") {
151
- content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
152
- tabContent,
153
- tabNavContent
154
- ] });
155
- } else {
156
- content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
157
- tabNavContent,
158
- tabContent
159
- ] });
160
- }
161
- return /* @__PURE__ */ jsxRuntime.jsx(TabsContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerClasses, style, children: content }) });
117
+ const tabNavContent = /* @__PURE__ */ jsxRuntime.jsx(
118
+ "div",
119
+ {
120
+ className: tabNavClasses,
121
+ role: "tablist",
122
+ "aria-orientation": tabPosition === "left" || tabPosition === "right" ? "vertical" : "horizontal",
123
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: tabNavListClasses, children: [
124
+ tabItems,
125
+ type === "editable-card" && /* @__PURE__ */ jsxRuntime.jsx(
126
+ "button",
127
+ {
128
+ type: "button",
129
+ className: tigercatCore.tabAddButtonClasses,
130
+ onClick: handleTabAdd,
131
+ "aria-label": "Add tab",
132
+ children: "+"
133
+ }
134
+ )
135
+ ] })
136
+ }
137
+ );
138
+ const tabContent = /* @__PURE__ */ jsxRuntime.jsx("div", { className: tigercatCore.tabContentBaseClasses, children: tabPanes });
139
+ return /* @__PURE__ */ jsxRuntime.jsx(TabsContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerClasses, style, children: tabPosition === "bottom" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
140
+ tabContent,
141
+ tabNavContent
142
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
143
+ tabNavContent,
144
+ tabContent
145
+ ] }) }) });
162
146
  };
163
147
  var TabPane = ({
164
148
  tabKey,
@@ -185,7 +169,7 @@ var TabPane = ({
185
169
  return closable !== void 0 ? closable : tabsContext.closable && tabsContext.type === "editable-card";
186
170
  }, [closable, tabsContext.closable, tabsContext.type]);
187
171
  const tabItemClasses = React.useMemo(() => {
188
- return tigercatCore.classNames(tigercatCore.getTabItemClasses(isActive, disabled, tabsContext.type, tabsContext.size));
172
+ return tigercatCore.getTabItemClasses(isActive, disabled, tabsContext.type, tabsContext.size);
189
173
  }, [isActive, disabled, tabsContext.type, tabsContext.size]);
190
174
  const tabPaneClasses = React.useMemo(() => {
191
175
  return tigercatCore.classNames(tigercatCore.getTabPaneClasses(isActive), className);
@@ -286,9 +270,9 @@ var TabPane = ({
286
270
  children: /* @__PURE__ */ jsxRuntime.jsx("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: tigercatCore.closeIconViewBox, children: /* @__PURE__ */ jsxRuntime.jsx(
287
271
  "path",
288
272
  {
289
- strokeLinecap: tigercatCore.closeIconPathStrokeLinecap,
290
- strokeLinejoin: tigercatCore.closeIconPathStrokeLinejoin,
291
- strokeWidth: tigercatCore.closeIconPathStrokeWidth,
273
+ strokeLinecap: "round",
274
+ strokeLinejoin: "round",
275
+ strokeWidth: "2",
292
276
  d: tigercatCore.closeIconPathD
293
277
  }
294
278
  ) })
@@ -1,5 +1,5 @@
1
- import { useState, useRef, useEffect } from 'react';
2
- import { parseDate, formatDate, getCalendarDays, getShortDayNames, getDatePickerLabels, getDatePickerInputClasses, getDatePickerIconButtonClasses, classNames, datePickerInputWrapperClasses, datePickerClearButtonClasses, CloseIconPath, CalendarIconPath, datePickerCalendarClasses, datePickerCalendarHeaderClasses, datePickerNavButtonClasses, ChevronLeftIconPath, formatMonthYear, datePickerMonthYearClasses, ChevronRightIconPath, datePickerCalendarGridClasses, datePickerDayNameClasses, isSameDay, normalizeDate, isToday, getDatePickerDayCellClasses, datePickerFooterClasses, datePickerFooterButtonClasses, datePickerBaseClasses, isDateInRange, icon20ViewBox } from '@expcat/tigercat-core';
1
+ import { useState, useRef, useMemo, useEffect } from 'react';
2
+ import { parseDate, formatDate, getCalendarDays, getShortDayNames, getDatePickerLabels, getDatePickerInputClasses, getDatePickerIconButtonClasses, classNames, datePickerInputWrapperClasses, datePickerClearButtonClasses, CloseIconPath, CalendarIconPath, datePickerCalendarClasses, datePickerCalendarHeaderClasses, datePickerNavButtonClasses, ChevronLeftIconPath, formatMonthYear, datePickerMonthYearClasses, ChevronRightIconPath, datePickerCalendarGridClasses, datePickerDayNameClasses, normalizeDate, isSameDay, isToday, getDatePickerDayCellClasses, datePickerFooterClasses, datePickerFooterButtonClasses, datePickerBaseClasses, isDateInRange, icon20ViewBox } from '@expcat/tigercat-core';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
 
5
5
  // src/components/DatePicker.tsx
@@ -80,8 +80,8 @@ var DatePicker = (props) => {
80
80
  const end = Array.isArray(tuple) ? parseDate(tuple[1]) : null;
81
81
  return [start, end];
82
82
  })();
83
- const minDateParsed = parseDate(props.minDate ?? null);
84
- const maxDateParsed = parseDate(props.maxDate ?? null);
83
+ const minDateParsed = useMemo(() => parseDate(props.minDate ?? null), [props.minDate]);
84
+ const maxDateParsed = useMemo(() => parseDate(props.maxDate ?? null), [props.maxDate]);
85
85
  const [viewingMonth, setViewingMonth] = useState(
86
86
  (selectedDate ?? selectedRange[0])?.getMonth() ?? (/* @__PURE__ */ new Date()).getMonth()
87
87
  );
@@ -104,14 +104,20 @@ var DatePicker = (props) => {
104
104
  if (!isRangeMode) return selectedDate !== null;
105
105
  return selectedRange[0] !== null || selectedRange[1] !== null;
106
106
  })();
107
- const calendarDays = getCalendarDays(viewingYear, viewingMonth);
108
- const dayNames = getShortDayNames(props.locale);
109
- const labels = getDatePickerLabels(props.locale, props.labels);
107
+ const calendarDays = useMemo(
108
+ () => getCalendarDays(viewingYear, viewingMonth),
109
+ [viewingYear, viewingMonth]
110
+ );
111
+ const dayNames = useMemo(() => getShortDayNames(props.locale), [props.locale]);
112
+ const labels = useMemo(
113
+ () => getDatePickerLabels(props.locale, props.labels),
114
+ [props.locale, props.labels]
115
+ );
110
116
  const toggleCalendar = () => {
111
117
  if (!disabled && !readonly) {
112
118
  setIsOpen(!isOpen);
113
119
  if (!isOpen) {
114
- restoreFocusRef.current = document.activeElement ?? null;
120
+ restoreFocusRef.current = inputRef.current ?? null;
115
121
  const baseDate = selectedDate ?? selectedRange[0];
116
122
  if (baseDate) {
117
123
  setViewingMonth(baseDate.getMonth());
@@ -256,11 +262,7 @@ var DatePicker = (props) => {
256
262
  setRangeValue([normalizedDate, null]);
257
263
  return;
258
264
  }
259
- if (normalizedDate < start) {
260
- setRangeValue([start, start]);
261
- } else {
262
- setRangeValue([start, normalizedDate]);
263
- }
265
+ setRangeValue([start, normalizedDate < start ? start : normalizedDate]);
264
266
  };
265
267
  const setToday = () => {
266
268
  selectDate(/* @__PURE__ */ new Date());
@@ -301,25 +303,14 @@ var DatePicker = (props) => {
301
303
  if (!date) return false;
302
304
  return date.getMonth() === viewingMonth;
303
305
  };
304
- const handleInputClick = () => {
305
- toggleCalendar();
306
- };
307
306
  useEffect(() => {
308
- const handleClickOutside = (event) => {
309
- if (calendarRef.current && inputWrapperRef.current && !calendarRef.current.contains(event.target) && !inputWrapperRef.current.contains(event.target)) {
310
- closeCalendar();
311
- }
312
- };
313
307
  if (isOpen) {
314
- document.addEventListener("click", handleClickOutside);
315
- return () => {
316
- document.removeEventListener("click", handleClickOutside);
308
+ const handleClickOutside = (event) => {
309
+ if (calendarRef.current && inputWrapperRef.current && !calendarRef.current.contains(event.target) && !inputWrapperRef.current.contains(event.target)) {
310
+ closeCalendar();
311
+ }
317
312
  };
318
- }
319
- }, [isOpen]);
320
- useEffect(() => {
321
- if (isOpen) {
322
- restoreFocusRef.current = document.activeElement ?? null;
313
+ document.addEventListener("click", handleClickOutside);
323
314
  const preferred = pendingFocusIsoRef.current ?? getPreferredFocusIso();
324
315
  pendingFocusIsoRef.current = null;
325
316
  setTimeout(() => {
@@ -327,11 +318,9 @@ var DatePicker = (props) => {
327
318
  const fallback = getFirstEnabledIsoInView();
328
319
  if (fallback) focusDateButtonByIso(fallback);
329
320
  }, 0);
330
- return;
321
+ return () => document.removeEventListener("click", handleClickOutside);
331
322
  }
332
- setTimeout(() => {
333
- restoreFocus();
334
- }, 0);
323
+ setTimeout(() => restoreFocus(), 0);
335
324
  }, [isOpen]);
336
325
  useEffect(() => {
337
326
  if (!isOpen) return;
@@ -344,8 +333,11 @@ var DatePicker = (props) => {
344
333
  if (fallback) focusDateButtonByIso(fallback);
345
334
  }, 0);
346
335
  }, [isOpen, viewingMonth, viewingYear]);
347
- const inputClasses = getDatePickerInputClasses(size, disabled || readonly);
348
- const iconButtonClasses = getDatePickerIconButtonClasses(size);
336
+ const inputClasses = useMemo(
337
+ () => getDatePickerInputClasses(size, disabled || readonly),
338
+ [size, disabled, readonly]
339
+ );
340
+ const iconButtonClasses = useMemo(() => getDatePickerIconButtonClasses(size), [size]);
349
341
  return /* @__PURE__ */ jsxs("div", { className: classNames(datePickerBaseClasses, props.className), ...divProps, children: [
350
342
  /* @__PURE__ */ jsxs("div", { ref: inputWrapperRef, className: datePickerInputWrapperClasses, children: [
351
343
  /* @__PURE__ */ jsx(
@@ -361,7 +353,7 @@ var DatePicker = (props) => {
361
353
  required,
362
354
  name: props.name,
363
355
  id: props.id,
364
- onClick: handleInputClick,
356
+ onClick: toggleCalendar,
365
357
  "aria-label": placeholder || "Select date"
366
358
  }
367
359
  ),
@@ -421,55 +413,60 @@ var DatePicker = (props) => {
421
413
  )
422
414
  ] }),
423
415
  /* @__PURE__ */ jsx("div", { className: datePickerCalendarGridClasses, role: "row", children: dayNames.map((day) => /* @__PURE__ */ jsx("div", { className: datePickerDayNameClasses, role: "columnheader", children: day }, day)) }),
424
- /* @__PURE__ */ jsx(
425
- "div",
426
- {
427
- className: datePickerCalendarGridClasses,
428
- role: "grid",
429
- "aria-rowcount": 6,
430
- "aria-colcount": 7,
431
- children: calendarDays.map((date, index) => {
432
- if (!date) return null;
433
- const [rangeStart, rangeEnd] = selectedRange;
434
- const isRangeStart = isRangeMode && rangeStart ? isSameDay(date, rangeStart) : false;
435
- const isRangeEnd = isRangeMode && rangeEnd ? isSameDay(date, rangeEnd) : false;
436
- const isInRange = isRangeMode && rangeStart && rangeEnd && normalizeDate(date) >= normalizeDate(rangeStart) && normalizeDate(date) <= normalizeDate(rangeEnd);
437
- const isSelected = !isRangeMode ? selectedDate ? isSameDay(date, selectedDate) : false : isRangeStart || isRangeEnd;
438
- const isCurrentMonthDay = isCurrentMonth(date);
439
- const isTodayDay = isToday(date);
440
- const isSelectingRangeEnd = isRangeMode && Boolean(rangeStart) && !rangeEnd;
441
- const isBeforeRangeStart = isSelectingRangeEnd && rangeStart && normalizeDate(date) < normalizeDate(rangeStart);
442
- const isDisabled = isDateDisabled(date) || Boolean(isBeforeRangeStart);
443
- const iso = formatDate(date, "yyyy-MM-dd");
444
- return /* @__PURE__ */ jsx(
445
- "button",
446
- {
447
- type: "button",
448
- className: getDatePickerDayCellClasses(
449
- isCurrentMonthDay,
450
- isSelected,
451
- isTodayDay,
452
- isDisabled,
453
- Boolean(isInRange),
454
- Boolean(isRangeStart),
455
- Boolean(isRangeEnd)
456
- ),
457
- disabled: isDisabled,
458
- onClick: () => selectDate(date),
459
- role: "gridcell",
460
- "data-date": iso,
461
- onFocus: () => setActiveDateIso(iso),
462
- tabIndex: activeDateIso === iso && !isDisabled ? 0 : -1,
463
- "aria-label": iso,
464
- "aria-selected": isSelected,
465
- "aria-current": isTodayDay ? "date" : void 0,
466
- children: date.getDate()
467
- },
468
- index
469
- );
470
- })
471
- }
472
- ),
416
+ (() => {
417
+ const [rangeStart, rangeEnd] = selectedRange;
418
+ const normStart = rangeStart ? normalizeDate(rangeStart) : null;
419
+ const normEnd = rangeEnd ? normalizeDate(rangeEnd) : null;
420
+ const isSelectingEnd = isRangeMode && Boolean(rangeStart) && !rangeEnd;
421
+ return /* @__PURE__ */ jsx(
422
+ "div",
423
+ {
424
+ className: datePickerCalendarGridClasses,
425
+ role: "grid",
426
+ "aria-rowcount": 6,
427
+ "aria-colcount": 7,
428
+ children: calendarDays.map((date, index) => {
429
+ if (!date) return null;
430
+ const normDate = normalizeDate(date);
431
+ const isRangeStart = isRangeMode && rangeStart ? isSameDay(date, rangeStart) : false;
432
+ const isRangeEnd = isRangeMode && rangeEnd ? isSameDay(date, rangeEnd) : false;
433
+ const isInRange = isRangeMode && normStart && normEnd && normDate >= normStart && normDate <= normEnd;
434
+ const isSelected = !isRangeMode ? selectedDate ? isSameDay(date, selectedDate) : false : isRangeStart || isRangeEnd;
435
+ const isCurrentMonthDay = isCurrentMonth(date);
436
+ const isTodayDay = isToday(date);
437
+ const isBeforeRangeStart = isSelectingEnd && normStart && normDate < normStart;
438
+ const isDisabled = isDateDisabled(date) || Boolean(isBeforeRangeStart);
439
+ const iso = formatDate(date, "yyyy-MM-dd");
440
+ return /* @__PURE__ */ jsx(
441
+ "button",
442
+ {
443
+ type: "button",
444
+ className: getDatePickerDayCellClasses(
445
+ isCurrentMonthDay,
446
+ isSelected,
447
+ isTodayDay,
448
+ isDisabled,
449
+ Boolean(isInRange),
450
+ Boolean(isRangeStart),
451
+ Boolean(isRangeEnd)
452
+ ),
453
+ disabled: isDisabled,
454
+ onClick: () => selectDate(date),
455
+ role: "gridcell",
456
+ "data-date": iso,
457
+ onFocus: () => setActiveDateIso(iso),
458
+ tabIndex: activeDateIso === iso && !isDisabled ? 0 : -1,
459
+ "aria-label": iso,
460
+ "aria-selected": isSelected,
461
+ "aria-current": isTodayDay ? "date" : void 0,
462
+ children: date.getDate()
463
+ },
464
+ index
465
+ );
466
+ })
467
+ }
468
+ );
469
+ })(),
473
470
  isRangeMode && /* @__PURE__ */ jsxs("div", { className: datePickerFooterClasses, children: [
474
471
  /* @__PURE__ */ jsx("button", { type: "button", className: datePickerFooterButtonClasses, onClick: setToday, children: labels.today }),
475
472
  /* @__PURE__ */ jsx(
@@ -1,22 +1,12 @@
1
- import { Table } from './chunk-HGTF6A46.mjs';
2
- import { Pagination } from './chunk-NDOYQK2R.mjs';
3
- import { DropdownItem } from './chunk-IAF24RKI.mjs';
4
- import { Dropdown } from './chunk-YGOTPK2W.mjs';
5
- import { DropdownMenu } from './chunk-SIVJX7VU.mjs';
6
- import { Input } from './chunk-6ZTCBQJ7.mjs';
7
- import { Button } from './chunk-STEIWBMF.mjs';
1
+ import { Table } from './chunk-3577FW3I.mjs';
2
+ import { Select } from './chunk-MDZDPGRK.mjs';
3
+ import { Pagination } from './chunk-NZLOLMT2.mjs';
4
+ import { Input } from './chunk-RPTLVIBF.mjs';
5
+ import { Button } from './chunk-ENSLMM3L.mjs';
8
6
  import { useState, useEffect, useMemo } from 'react';
9
7
  import { classNames } from '@expcat/tigercat-core';
10
8
  import { jsxs, jsx } from 'react/jsx-runtime';
11
9
 
12
- var resolveFilterLabel = (filter, value) => {
13
- const option = filter.options.find((item) => item.value === value);
14
- if (option) return `${filter.label}: ${option.label}`;
15
- if (value !== null && value !== void 0 && value !== "") {
16
- return `${filter.label}: ${String(value)}`;
17
- }
18
- return filter.placeholder ?? filter.label;
19
- };
20
10
  var DataTableWithToolbar = ({
21
11
  toolbar,
22
12
  onSearchChange,
@@ -113,9 +103,9 @@ var DataTableWithToolbar = ({
113
103
  };
114
104
  const renderToolbar = () => {
115
105
  if (!hasSearch && !hasFilters && !hasBulkActions) return null;
116
- return /* @__PURE__ */ jsxs("div", { className: "tiger-data-table-toolbar flex flex-wrap items-center gap-2", children: [
117
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 flex-wrap", children: [
118
- hasSearch ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
106
+ return /* @__PURE__ */ jsxs("div", { className: "tiger-data-table-toolbar flex flex-wrap items-center gap-2 pb-3", children: [
107
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 flex-wrap flex-1 min-w-0", children: [
108
+ hasSearch ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 w-full sm:w-auto sm:min-w-[200px] sm:max-w-[320px]", children: [
119
109
  /* @__PURE__ */ jsx(
120
110
  Input,
121
111
  {
@@ -136,7 +126,7 @@ var DataTableWithToolbar = ({
136
126
  {
137
127
  size: "sm",
138
128
  variant: "primary",
139
- className: "whitespace-nowrap",
129
+ className: "whitespace-nowrap shrink-0",
140
130
  onClick: handleSearchSubmit,
141
131
  disabled: !onSearch && !toolbar?.onSearch,
142
132
  children: toolbar?.searchButtonText ?? "\u641C\u7D22"
@@ -145,35 +135,33 @@ var DataTableWithToolbar = ({
145
135
  ] }) : null,
146
136
  hasFilters ? toolbar?.filters?.map((filter) => {
147
137
  const currentValue = resolvedFilters[filter.key];
148
- const triggerLabel = resolveFilterLabel(filter, currentValue);
149
138
  const clearable = filter.clearable !== false;
150
- const clearLabel = filter.clearLabel ?? "\u5168\u90E8";
151
- const isActive = currentValue !== null && currentValue !== void 0 && currentValue !== "";
152
- return /* @__PURE__ */ jsxs(Dropdown, { trigger: "click", children: [
153
- /* @__PURE__ */ jsx(
154
- Button,
155
- {
156
- size: "sm",
157
- variant: isActive ? "secondary" : "outline",
158
- className: "whitespace-nowrap",
159
- children: triggerLabel
160
- }
161
- ),
162
- /* @__PURE__ */ jsxs(DropdownMenu, { children: [
163
- clearable ? /* @__PURE__ */ jsx(DropdownItem, { onClick: () => handleFilterSelect(filter, null), children: clearLabel }) : null,
164
- filter.options.map((option) => /* @__PURE__ */ jsx(
165
- DropdownItem,
139
+ return /* @__PURE__ */ jsx(
140
+ "div",
141
+ {
142
+ className: "w-full sm:w-auto sm:min-w-[120px] sm:max-w-[180px]",
143
+ children: /* @__PURE__ */ jsx(
144
+ Select,
166
145
  {
167
- onClick: () => handleFilterSelect(filter, option.value),
168
- children: option.label
169
- },
170
- String(option.value)
171
- ))
172
- ] })
173
- ] }, filter.key);
146
+ size: "sm",
147
+ options: filter.options.map((opt) => ({
148
+ label: opt.label,
149
+ value: opt.value
150
+ })),
151
+ value: currentValue ?? void 0,
152
+ placeholder: filter.placeholder ?? filter.label,
153
+ clearable,
154
+ onChange: (value) => {
155
+ handleFilterSelect(filter, value ?? null);
156
+ }
157
+ }
158
+ )
159
+ },
160
+ filter.key
161
+ );
174
162
  }) : null
175
163
  ] }),
176
- hasBulkActions ? /* @__PURE__ */ jsxs("div", { className: "ml-auto flex items-center gap-2 flex-wrap", children: [
164
+ hasBulkActions ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 flex-wrap ml-auto shrink-0", children: [
177
165
  selectedCount > 0 ? /* @__PURE__ */ jsxs("span", { className: "text-sm text-[var(--tiger-text-muted,#6b7280)]", children: [
178
166
  bulkLabel,
179
167
  " ",