@expcat/tigercat-react 1.0.7 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (443) hide show
  1. package/dist/chunk-2EC4F7VG.js +134 -0
  2. package/dist/{chunk-NZNSUKPT.js → chunk-2HDQRMGU.js} +3 -21
  3. package/dist/{chunk-LVC43YX2.mjs → chunk-2IUTFPQQ.mjs} +6 -6
  4. package/dist/{chunk-LPNHBHS2.mjs → chunk-2LER76UK.mjs} +40 -5
  5. package/dist/{chunk-PXPUPQRO.js → chunk-2N3CQT4X.js} +23 -4
  6. package/dist/{chunk-BJ2GUKPU.mjs → chunk-2PLPUM5J.mjs} +7 -17
  7. package/dist/{chunk-C443YA4U.js → chunk-2QV56L36.js} +15 -11
  8. package/dist/{chunk-M375I56K.js → chunk-36ATCHP4.js} +5 -5
  9. package/dist/{chunk-AUP3PMDD.mjs → chunk-36WZNVQ5.mjs} +59 -50
  10. package/dist/{chunk-VHHEP5G7.js → chunk-3E76U2RG.js} +22 -2
  11. package/dist/chunk-3HPDLIX3.mjs +108 -0
  12. package/dist/{chunk-QHG7KJH6.js → chunk-3RRYDYVB.js} +23 -27
  13. package/dist/{chunk-3GW3UAKB.js → chunk-466OSPRM.js} +48 -8
  14. package/dist/{chunk-RUROWRB5.mjs → chunk-4G74P6YD.mjs} +4 -3
  15. package/dist/{chunk-AY5Z3NIW.js → chunk-4LIDROT4.js} +11 -7
  16. package/dist/chunk-4R5YXNU4.mjs +42 -0
  17. package/dist/{chunk-VVO4V4IK.js → chunk-4TEILQSN.js} +1 -1
  18. package/dist/{chunk-MQ5ZP5RW.mjs → chunk-4V2HSSQN.mjs} +5 -2
  19. package/dist/{chunk-D6BHFGTN.js → chunk-4YVXF45R.js} +3 -2
  20. package/dist/{chunk-HSHVLIEL.mjs → chunk-564WBQ77.mjs} +11 -11
  21. package/dist/{chunk-QO3GGQAV.mjs → chunk-5HFHHFQS.mjs} +25 -28
  22. package/dist/{chunk-SDWJSALH.js → chunk-5OLE7XM3.js} +156 -137
  23. package/dist/{chunk-DBNAL6G6.mjs → chunk-5OMSQ5PV.mjs} +72 -260
  24. package/dist/{chunk-YLZEOXFS.mjs → chunk-6GU5NH5F.mjs} +22 -2
  25. package/dist/{chunk-XEYP62CR.js → chunk-6LDJSFUQ.js} +71 -14
  26. package/dist/{chunk-RYW4CV7U.js → chunk-6N6CWBPP.js} +16 -6
  27. package/dist/{chunk-6P3JIUSI.mjs → chunk-6OOGL43U.mjs} +3 -2
  28. package/dist/{chunk-3CDAG4HD.mjs → chunk-6QML6T3Y.mjs} +20 -6
  29. package/dist/{chunk-BALJCZ62.mjs → chunk-6QQBMZQ6.mjs} +34 -43
  30. package/dist/{chunk-2XOFRGY6.js → chunk-6YBLWFP5.js} +34 -2
  31. package/dist/{chunk-VILZFNR7.js → chunk-7KNOOFRA.js} +70 -21
  32. package/dist/{chunk-ET5YJELZ.js → chunk-7P4MIU6I.js} +9 -8
  33. package/dist/{chunk-5CGXFQND.mjs → chunk-7Y5XUZJ4.mjs} +27 -11
  34. package/dist/{chunk-HU3VDVH6.js → chunk-A4PPPGJ5.js} +87 -60
  35. package/dist/{chunk-HCZA4LV6.mjs → chunk-A7DZX5X5.mjs} +2 -2
  36. package/dist/{chunk-VONFSF4S.mjs → chunk-AAI6EZZA.mjs} +19 -16
  37. package/dist/{chunk-KNBNE74O.js → chunk-ACQLSECT.js} +32 -4
  38. package/dist/{chunk-KQJYSG23.js → chunk-AIYOQ5MX.js} +8 -8
  39. package/dist/{chunk-EIMAQHCQ.mjs → chunk-AZDNGGV7.mjs} +14 -3
  40. package/dist/{chunk-67FVBKBC.js → chunk-B5TUTAVX.js} +72 -9
  41. package/dist/{chunk-2UQC3WOI.mjs → chunk-C745DPLU.mjs} +13 -4
  42. package/dist/chunk-CBWRSICK.mjs +929 -0
  43. package/dist/{chunk-N66WEQ6M.js → chunk-CBYJXDW4.js} +12 -13
  44. package/dist/{chunk-2EOXY2LP.mjs → chunk-CCDZLSOL.mjs} +70 -3
  45. package/dist/{chunk-4GV7UQJJ.js → chunk-CHPJPIW6.js} +26 -35
  46. package/dist/{chunk-ZD4BVRYG.mjs → chunk-CPQS3IFF.mjs} +1 -1
  47. package/dist/chunk-CVXDKGNX.mjs +312 -0
  48. package/dist/{chunk-YJ4W6DMX.mjs → chunk-D45GM4YH.mjs} +51 -29
  49. package/dist/{chunk-FXX3GD35.mjs → chunk-DAMJCFFS.mjs} +119 -15
  50. package/dist/{chunk-WK5QJO57.js → chunk-DBGPINKE.js} +74 -52
  51. package/dist/chunk-DKNVSQSV.mjs +64 -0
  52. package/dist/{chunk-CDT3P2ZN.js → chunk-DSLKTIPD.js} +20 -17
  53. package/dist/{chunk-4QJZT6QK.js → chunk-DUZM2SKR.js} +124 -99
  54. package/dist/{chunk-7BVXG3Z5.mjs → chunk-DVL53XDJ.mjs} +1 -1
  55. package/dist/{chunk-H3NLKNR4.mjs → chunk-DVUND2QM.mjs} +69 -46
  56. package/dist/{chunk-TMQA74FM.js → chunk-EF5ZTNHX.js} +34 -29
  57. package/dist/{chunk-RWZIWKZR.js → chunk-F7VY6ATM.js} +54 -32
  58. package/dist/{chunk-UBKOITHT.mjs → chunk-FQW26554.mjs} +30 -11
  59. package/dist/{chunk-DEQWHJLQ.mjs → chunk-FW3O54GP.mjs} +11 -7
  60. package/dist/chunk-G3PBQ4B4.mjs +60 -0
  61. package/dist/{chunk-HWWNBCFB.js → chunk-GAT4ZATZ.js} +17 -1
  62. package/dist/chunk-GDONQIOK.mjs +470 -0
  63. package/dist/{chunk-3KMKMAE3.mjs → chunk-GKJNQUTW.mjs} +20 -18
  64. package/dist/{chunk-TVJZB7ZC.js → chunk-GOGLPCUH.js} +122 -18
  65. package/dist/chunk-GOQ6ZG7H.mjs +56 -0
  66. package/dist/{chunk-BCNKTT5C.js → chunk-GRXBGL6Q.js} +18 -16
  67. package/dist/{chunk-XNMSECO4.mjs → chunk-GUHNLUZ3.mjs} +66 -16
  68. package/dist/{chunk-B3MNIAM5.mjs → chunk-GYQJJUJP.mjs} +29 -9
  69. package/dist/{chunk-IWP22YTF.js → chunk-HCKV7ONR.js} +3 -0
  70. package/dist/{chunk-I4SKKEU3.js → chunk-HR5GBE3P.js} +24 -27
  71. package/dist/{chunk-HUCBHFSL.mjs → chunk-HTXUF4RH.mjs} +6 -20
  72. package/dist/{chunk-EOYJLBFD.js → chunk-ITLA7OLQ.js} +6 -20
  73. package/dist/{chunk-INBSKSZG.mjs → chunk-ITVLIR7T.mjs} +57 -12
  74. package/dist/{chunk-FNDPGSEW.mjs → chunk-IXQAECFP.mjs} +87 -33
  75. package/dist/{chunk-34DLDOGP.mjs → chunk-IZTNHCIO.mjs} +5 -2
  76. package/dist/{chunk-73BP3WQN.mjs → chunk-J4OQ2VRH.mjs} +13 -31
  77. package/dist/{chunk-AJQPGAYL.js → chunk-JFOSDCCG.js} +5 -5
  78. package/dist/{chunk-6744DTEB.mjs → chunk-JSUDEK2D.mjs} +159 -140
  79. package/dist/{chunk-U3JOBIDU.js → chunk-K64M7IMP.js} +69 -2
  80. package/dist/{chunk-FPURO6QB.mjs → chunk-KGWPSVEQ.mjs} +5 -6
  81. package/dist/{chunk-OHIZYM65.mjs → chunk-KPACLRQH.mjs} +3 -6
  82. package/dist/chunk-KPRUZCKN.js +318 -0
  83. package/dist/{chunk-UE234MW4.mjs → chunk-KR3EVG7G.mjs} +4 -4
  84. package/dist/chunk-L5HVRTUO.js +935 -0
  85. package/dist/chunk-L6CL63GI.js +93 -0
  86. package/dist/{chunk-RNEL4XIO.js → chunk-LA3CJOWA.js} +13 -2
  87. package/dist/{chunk-EBLAM3YP.mjs → chunk-LE5VFMRR.mjs} +21 -12
  88. package/dist/{chunk-4QQZ5H4V.mjs → chunk-LQT6ZGME.mjs} +35 -30
  89. package/dist/{chunk-VAQDUVBP.mjs → chunk-LY2OTQ4E.mjs} +17 -1
  90. package/dist/{chunk-RRJTIKU6.mjs → chunk-M5GSLKUX.mjs} +13 -14
  91. package/dist/{chunk-TZNTHABR.js → chunk-M73NMNZX.js} +37 -6
  92. package/dist/{chunk-TKZO5UBH.js → chunk-MB3QU3US.js} +47 -2
  93. package/dist/{chunk-6E7FPBRR.mjs → chunk-ME5BLIFX.mjs} +73 -16
  94. package/dist/{chunk-ZDL3GE3Q.mjs → chunk-MO3V34YL.mjs} +67 -18
  95. package/dist/{chunk-H3JAEEEE.js → chunk-MOSVX52I.js} +72 -260
  96. package/dist/{chunk-2GKTVAAB.js → chunk-MPO7Y76D.js} +9 -3
  97. package/dist/{chunk-JLM4LBUS.js → chunk-MU6Z5DCI.js} +6 -3
  98. package/dist/{chunk-5MALB34H.js → chunk-MUUOE2NT.js} +31 -11
  99. package/dist/chunk-N2JYU4JI.js +62 -0
  100. package/dist/{chunk-C6WJ4GQW.js → chunk-NHBNPK5J.js} +40 -37
  101. package/dist/{chunk-JUWFVIDP.mjs → chunk-NQV2H4SC.mjs} +25 -6
  102. package/dist/{chunk-WAIXKROS.mjs → chunk-NSEO2B74.mjs} +12 -8
  103. package/dist/{chunk-2WBPUW75.mjs → chunk-O4JI4FC6.mjs} +39 -36
  104. package/dist/{chunk-SQ7OL2X5.mjs → chunk-OFTLPYYC.mjs} +30 -10
  105. package/dist/{chunk-JQK354YN.js → chunk-OFWK2B23.js} +234 -10
  106. package/dist/chunk-ONTRGV5T.js +159 -0
  107. package/dist/{chunk-IVGKPD2L.mjs → chunk-OPHYFC5W.mjs} +5 -5
  108. package/dist/{chunk-2LUDQBVY.mjs → chunk-OUARQFZ7.mjs} +4 -4
  109. package/dist/{chunk-DAR2BMMV.js → chunk-PFYK2V3E.js} +32 -41
  110. package/dist/{chunk-ZYPEO2KY.js → chunk-PGBKMW4Q.js} +30 -0
  111. package/dist/{chunk-DXXYPVJJ.js → chunk-PR5ZPB6J.js} +3 -3
  112. package/dist/{chunk-PNSWIJG3.mjs → chunk-PSYDHEXN.mjs} +36 -26
  113. package/dist/{chunk-CMGI5WHZ.js → chunk-PTWCIG3Y.js} +2 -2
  114. package/dist/{chunk-FHE4D56E.js → chunk-PVNHW3PY.js} +26 -9
  115. package/dist/{chunk-QLHFXYWA.mjs → chunk-QOEE2PW5.mjs} +73 -10
  116. package/dist/{chunk-AQ72JVUG.js → chunk-QQKP437L.js} +5 -5
  117. package/dist/{chunk-IOHPB4CF.js → chunk-QYJBMQ5P.js} +29 -10
  118. package/dist/{chunk-NZLOLMT2.mjs → chunk-RFB4M3WM.mjs} +50 -10
  119. package/dist/{chunk-TFPIRBHL.js → chunk-RLQITKTC.js} +26 -10
  120. package/dist/{chunk-7CAJK2ZK.mjs → chunk-RPSHILHD.mjs} +2 -2
  121. package/dist/{chunk-GX74TC62.js → chunk-RTHC4KWM.js} +2 -5
  122. package/dist/{chunk-65VXCN5N.js → chunk-SKMZTW3K.js} +56 -11
  123. package/dist/{chunk-VHWTMNQN.js → chunk-SO6POTSO.js} +10 -10
  124. package/dist/chunk-SQGFNVYT.js +222 -0
  125. package/dist/{chunk-RFPXIDAK.js → chunk-SR5OHSI7.js} +34 -24
  126. package/dist/{chunk-GBTKAKUD.mjs → chunk-SRNBEFJO.mjs} +24 -28
  127. package/dist/{chunk-SQK2CPSV.mjs → chunk-SXNHXUUF.mjs} +16 -5
  128. package/dist/{chunk-OE6WTZES.js → chunk-TLJD4GFY.js} +69 -19
  129. package/dist/{chunk-R5XY4EQL.js → chunk-TQOWIDQT.js} +8 -15
  130. package/dist/{chunk-IPLK4AIE.mjs → chunk-TR4DGL3U.mjs} +7 -6
  131. package/dist/{chunk-QAO5KANE.mjs → chunk-TULQETJ5.mjs} +4 -3
  132. package/dist/{chunk-4APNERYR.js → chunk-U356F7GU.js} +12 -30
  133. package/dist/{chunk-AGR3FM3V.js → chunk-UB6SHKPR.js} +8 -7
  134. package/dist/{chunk-Z6F67MJE.mjs → chunk-UBP7HZSU.mjs} +4 -3
  135. package/dist/{chunk-HZ5Z5Y2J.mjs → chunk-UJ5NMLZN.mjs} +13 -31
  136. package/dist/chunk-UKLVOR4E.js +67 -0
  137. package/dist/{chunk-CKFE2B36.js → chunk-ULODU52Q.js} +9 -19
  138. package/dist/{chunk-QQDKQLHJ.mjs → chunk-UPO4LLNK.mjs} +71 -49
  139. package/dist/chunk-V4JIZN3E.mjs +156 -0
  140. package/dist/{chunk-R3QWJ7GT.mjs → chunk-V5557VIB.mjs} +23 -6
  141. package/dist/{chunk-NG3GA5LF.js → chunk-VBBOH5HA.js} +2 -2
  142. package/dist/chunk-VBZE77VM.mjs +65 -0
  143. package/dist/{chunk-XLVEI7GS.js → chunk-VE3SYUMH.js} +3 -2
  144. package/dist/{chunk-SWF7GJYT.mjs → chunk-VHW7NWXM.mjs} +85 -58
  145. package/dist/{chunk-YHFBPSMF.js → chunk-VTOMFVSF.js} +72 -49
  146. package/dist/{chunk-QPGL4YEO.mjs → chunk-W7UGU2O6.mjs} +12 -24
  147. package/dist/{chunk-AYDTXJOR.mjs → chunk-WDRYAP7T.mjs} +18 -15
  148. package/dist/{chunk-AMOH5AMN.mjs → chunk-WFIQIBLC.mjs} +2 -2
  149. package/dist/{chunk-BR5OSUZT.mjs → chunk-WI4N5DD3.mjs} +38 -7
  150. package/dist/{chunk-TQEIMVJD.mjs → chunk-WK45IRP7.mjs} +28 -37
  151. package/dist/{chunk-HLJQZUIY.mjs → chunk-WNX4TH7U.mjs} +32 -4
  152. package/dist/{chunk-7MASYF4S.mjs → chunk-WT6CULN3.mjs} +12 -13
  153. package/dist/{chunk-6PBNFLM7.js → chunk-WV5XHYW6.js} +4 -3
  154. package/dist/{chunk-CQGAZ5JQ.js → chunk-X7WESYRG.js} +15 -4
  155. package/dist/{chunk-PUYT62KC.js → chunk-XAALCDGD.js} +5 -6
  156. package/dist/{chunk-YPHOVEVU.mjs → chunk-XATXFVKR.mjs} +8 -2
  157. package/dist/chunk-XHF3L4ET.mjs +132 -0
  158. package/dist/{chunk-QPOH6SOO.mjs → chunk-XISZACMA.mjs} +126 -101
  159. package/dist/{chunk-QYGBT4NL.js → chunk-XN43YK75.js} +16 -28
  160. package/dist/{chunk-H5MZ54PM.js → chunk-XPA2YCQO.js} +58 -49
  161. package/dist/{chunk-CHH7DWIO.js → chunk-XRNKHQTL.js} +7 -1
  162. package/dist/{chunk-WLIFEALE.mjs → chunk-XTSG362L.mjs} +29 -2
  163. package/dist/{chunk-KQZ4F7FZ.js → chunk-XTV5JLLC.js} +18 -4
  164. package/dist/{chunk-AHF6JE43.js → chunk-YACOKYDW.js} +21 -18
  165. package/dist/{chunk-4Q4GADHJ.js → chunk-YI6ORD3U.js} +40 -5
  166. package/dist/{chunk-ASALMHFI.js → chunk-YMKA4L3Z.js} +1 -6
  167. package/dist/{chunk-3JGOTJZM.js → chunk-YTLJPWXL.js} +4 -4
  168. package/dist/{chunk-XR6B2URW.js → chunk-Z52PUIAH.js} +22 -13
  169. package/dist/{chunk-AVUXDQYO.mjs → chunk-Z5B7VNEG.mjs} +10 -4
  170. package/dist/{chunk-3USEV7EV.js → chunk-ZDK4LEPB.js} +12 -13
  171. package/dist/chunk-ZDXIP33Y.js +58 -0
  172. package/dist/{chunk-XFJ5Q5PF.mjs → chunk-ZJWUBR2X.mjs} +2 -7
  173. package/dist/components/ActivityFeed.js +5 -4
  174. package/dist/components/ActivityFeed.mjs +3 -2
  175. package/dist/components/Affix.js +2 -2
  176. package/dist/components/Affix.mjs +1 -1
  177. package/dist/components/Anchor.d.mts +20 -1
  178. package/dist/components/Anchor.d.ts +20 -1
  179. package/dist/components/Anchor.js +8 -4
  180. package/dist/components/Anchor.mjs +1 -1
  181. package/dist/components/AnchorLink.d.mts +3 -23
  182. package/dist/components/AnchorLink.d.ts +3 -23
  183. package/dist/components/AnchorLink.js +3 -4
  184. package/dist/components/AnchorLink.mjs +1 -2
  185. package/dist/components/AreaChart.d.mts +2 -0
  186. package/dist/components/AreaChart.d.ts +2 -0
  187. package/dist/components/AreaChart.js +7 -7
  188. package/dist/components/AreaChart.mjs +5 -5
  189. package/dist/components/AutoComplete.js +2 -2
  190. package/dist/components/AutoComplete.mjs +1 -1
  191. package/dist/components/AvatarGroup.js +3 -3
  192. package/dist/components/AvatarGroup.mjs +1 -1
  193. package/dist/components/BackTop.js +3 -3
  194. package/dist/components/BackTop.mjs +1 -1
  195. package/dist/components/BarChart.js +7 -7
  196. package/dist/components/BarChart.mjs +5 -5
  197. package/dist/components/Breadcrumb.d.mts +18 -2
  198. package/dist/components/Breadcrumb.d.ts +18 -2
  199. package/dist/components/Breadcrumb.js +7 -3
  200. package/dist/components/Breadcrumb.mjs +1 -1
  201. package/dist/components/BreadcrumbItem.d.mts +3 -21
  202. package/dist/components/BreadcrumbItem.d.ts +3 -21
  203. package/dist/components/BreadcrumbItem.js +2 -3
  204. package/dist/components/BreadcrumbItem.mjs +1 -2
  205. package/dist/components/Button.js +2 -2
  206. package/dist/components/Button.mjs +1 -1
  207. package/dist/components/ButtonGroup.js +4 -4
  208. package/dist/components/ButtonGroup.mjs +1 -1
  209. package/dist/components/Carousel.js +2 -2
  210. package/dist/components/Carousel.mjs +1 -1
  211. package/dist/components/Cascader.js +2 -2
  212. package/dist/components/Cascader.mjs +1 -1
  213. package/dist/components/ChartCanvas.js +3 -3
  214. package/dist/components/ChartCanvas.mjs +1 -1
  215. package/dist/components/ChartLegend.js +3 -3
  216. package/dist/components/ChartLegend.mjs +1 -1
  217. package/dist/components/ChartTooltip.js +3 -3
  218. package/dist/components/ChartTooltip.mjs +1 -1
  219. package/dist/components/ChatWindow.js +5 -4
  220. package/dist/components/ChatWindow.mjs +3 -2
  221. package/dist/components/Code.js +3 -3
  222. package/dist/components/Code.mjs +1 -1
  223. package/dist/components/CodeEditor.d.mts +8 -1
  224. package/dist/components/CodeEditor.d.ts +8 -1
  225. package/dist/components/CodeEditor.js +3 -3
  226. package/dist/components/CodeEditor.mjs +1 -1
  227. package/dist/components/Col.js +3 -3
  228. package/dist/components/Col.mjs +2 -2
  229. package/dist/components/CollapsePanel.js +3 -3
  230. package/dist/components/CollapsePanel.mjs +1 -1
  231. package/dist/components/CommentThread.js +4 -4
  232. package/dist/components/CommentThread.mjs +2 -2
  233. package/dist/components/ConfigProvider.d.mts +3 -2
  234. package/dist/components/ConfigProvider.d.ts +3 -2
  235. package/dist/components/ConfigProvider.js +3 -3
  236. package/dist/components/ConfigProvider.mjs +1 -1
  237. package/dist/components/CropUpload.js +6 -6
  238. package/dist/components/CropUpload.mjs +5 -5
  239. package/dist/components/DataTableWithToolbar.d.mts +2 -7
  240. package/dist/components/DataTableWithToolbar.d.ts +2 -7
  241. package/dist/components/DataTableWithToolbar.js +6 -7
  242. package/dist/components/DataTableWithToolbar.mjs +4 -5
  243. package/dist/components/DatePicker.js +2 -2
  244. package/dist/components/DatePicker.mjs +1 -1
  245. package/dist/components/DonutChart.js +8 -8
  246. package/dist/components/DonutChart.mjs +6 -6
  247. package/dist/components/Drawer.js +3 -3
  248. package/dist/components/Drawer.mjs +2 -2
  249. package/dist/components/Dropdown.d.mts +10 -2
  250. package/dist/components/Dropdown.d.ts +10 -2
  251. package/dist/components/Dropdown.js +8 -5
  252. package/dist/components/Dropdown.mjs +2 -3
  253. package/dist/components/DropdownItem.js +4 -5
  254. package/dist/components/DropdownItem.mjs +3 -4
  255. package/dist/components/DropdownMenu.d.mts +3 -13
  256. package/dist/components/DropdownMenu.d.ts +3 -13
  257. package/dist/components/DropdownMenu.js +9 -2
  258. package/dist/components/DropdownMenu.mjs +2 -1
  259. package/dist/components/FileManager.js +3 -3
  260. package/dist/components/FileManager.mjs +1 -1
  261. package/dist/components/Form.d.mts +1 -0
  262. package/dist/components/Form.d.ts +1 -0
  263. package/dist/components/Form.js +3 -3
  264. package/dist/components/Form.mjs +1 -1
  265. package/dist/components/FormItem.js +3 -3
  266. package/dist/components/FormItem.mjs +2 -2
  267. package/dist/components/FormWizard.js +6 -6
  268. package/dist/components/FormWizard.mjs +4 -4
  269. package/dist/components/FunnelChart.js +6 -6
  270. package/dist/components/FunnelChart.mjs +5 -5
  271. package/dist/components/GaugeChart.js +3 -3
  272. package/dist/components/GaugeChart.mjs +2 -2
  273. package/dist/components/HeatmapChart.js +5 -5
  274. package/dist/components/HeatmapChart.mjs +4 -4
  275. package/dist/components/Image.js +5 -5
  276. package/dist/components/Image.mjs +4 -4
  277. package/dist/components/ImageCropper.js +2 -2
  278. package/dist/components/ImageCropper.mjs +1 -1
  279. package/dist/components/ImageGroup.js +5 -5
  280. package/dist/components/ImageGroup.mjs +3 -3
  281. package/dist/components/ImagePreview.js +3 -3
  282. package/dist/components/ImagePreview.mjs +2 -2
  283. package/dist/components/ImageViewer.js +2 -2
  284. package/dist/components/ImageViewer.mjs +1 -1
  285. package/dist/components/InfiniteScroll.js +3 -3
  286. package/dist/components/InfiniteScroll.mjs +1 -1
  287. package/dist/components/InputNumber.js +2 -2
  288. package/dist/components/InputNumber.mjs +1 -1
  289. package/dist/components/Kanban.js +5 -5
  290. package/dist/components/Kanban.mjs +3 -3
  291. package/dist/components/LineChart.js +7 -7
  292. package/dist/components/LineChart.mjs +5 -5
  293. package/dist/components/List.d.mts +22 -1
  294. package/dist/components/List.d.ts +22 -1
  295. package/dist/components/List.js +3 -2
  296. package/dist/components/List.mjs +2 -1
  297. package/dist/components/Loading.js +3 -2
  298. package/dist/components/Loading.mjs +2 -1
  299. package/dist/components/Mentions.js +3 -3
  300. package/dist/components/Mentions.mjs +1 -1
  301. package/dist/components/Menu.d.mts +43 -2
  302. package/dist/components/Menu.d.ts +43 -2
  303. package/dist/components/Menu.js +15 -3
  304. package/dist/components/Menu.mjs +1 -1
  305. package/dist/components/MenuItem.d.mts +3 -20
  306. package/dist/components/MenuItem.d.ts +3 -20
  307. package/dist/components/MenuItem.js +8 -3
  308. package/dist/components/MenuItem.mjs +1 -2
  309. package/dist/components/MenuItemGroup.d.mts +3 -16
  310. package/dist/components/MenuItemGroup.d.ts +3 -16
  311. package/dist/components/MenuItemGroup.js +8 -4
  312. package/dist/components/MenuItemGroup.mjs +1 -3
  313. package/dist/components/Modal.js +4 -4
  314. package/dist/components/Modal.mjs +3 -3
  315. package/dist/components/Notification.js +4 -4
  316. package/dist/components/Notification.mjs +1 -1
  317. package/dist/components/NotificationCenter.js +9 -7
  318. package/dist/components/NotificationCenter.mjs +7 -5
  319. package/dist/components/Pagination.d.mts +2 -2
  320. package/dist/components/Pagination.d.ts +2 -2
  321. package/dist/components/Pagination.js +3 -3
  322. package/dist/components/Pagination.mjs +1 -1
  323. package/dist/components/PieChart.js +7 -7
  324. package/dist/components/PieChart.mjs +5 -5
  325. package/dist/components/Popconfirm.js +4 -4
  326. package/dist/components/Popconfirm.mjs +3 -3
  327. package/dist/components/Popover.js +4 -4
  328. package/dist/components/Popover.mjs +3 -3
  329. package/dist/components/RadarChart.d.mts +3 -0
  330. package/dist/components/RadarChart.d.ts +3 -0
  331. package/dist/components/RadarChart.js +7 -7
  332. package/dist/components/RadarChart.mjs +5 -5
  333. package/dist/components/Resizable.js +3 -3
  334. package/dist/components/Resizable.mjs +1 -1
  335. package/dist/components/RichTextEditor.d.mts +10 -3
  336. package/dist/components/RichTextEditor.d.ts +10 -3
  337. package/dist/components/RichTextEditor.js +3 -3
  338. package/dist/components/RichTextEditor.mjs +1 -1
  339. package/dist/components/Row.js +3 -3
  340. package/dist/components/Row.mjs +1 -1
  341. package/dist/components/ScatterChart.js +7 -7
  342. package/dist/components/ScatterChart.mjs +5 -5
  343. package/dist/components/Segmented.js +2 -2
  344. package/dist/components/Segmented.mjs +1 -1
  345. package/dist/components/Select.js +2 -2
  346. package/dist/components/Select.mjs +1 -1
  347. package/dist/components/Splitter.js +3 -3
  348. package/dist/components/Splitter.mjs +1 -1
  349. package/dist/components/Statistic.js +2 -2
  350. package/dist/components/Statistic.mjs +1 -1
  351. package/dist/components/Stepper.js +2 -2
  352. package/dist/components/Stepper.mjs +1 -1
  353. package/dist/components/Steps.d.mts +32 -1
  354. package/dist/components/Steps.d.ts +32 -1
  355. package/dist/components/Steps.js +7 -3
  356. package/dist/components/Steps.mjs +1 -1
  357. package/dist/components/StepsItem.d.mts +3 -36
  358. package/dist/components/StepsItem.d.ts +3 -36
  359. package/dist/components/StepsItem.js +2 -2
  360. package/dist/components/StepsItem.mjs +1 -1
  361. package/dist/components/SubMenu.d.mts +3 -20
  362. package/dist/components/SubMenu.d.ts +3 -20
  363. package/dist/components/SubMenu.js +8 -5
  364. package/dist/components/SubMenu.mjs +1 -4
  365. package/dist/components/SunburstChart.js +6 -6
  366. package/dist/components/SunburstChart.mjs +5 -5
  367. package/dist/components/Switch.js +2 -2
  368. package/dist/components/Switch.mjs +1 -1
  369. package/dist/components/TabPane.d.mts +3 -57
  370. package/dist/components/TabPane.d.ts +3 -57
  371. package/dist/components/TabPane.js +2 -2
  372. package/dist/components/TabPane.mjs +1 -1
  373. package/dist/components/Table.d.mts +4 -59
  374. package/dist/components/Table.d.ts +4 -59
  375. package/dist/components/Table.js +2 -2
  376. package/dist/components/Table.mjs +1 -1
  377. package/dist/components/Tabs.d.mts +54 -1
  378. package/dist/components/Tabs.d.ts +54 -1
  379. package/dist/components/Tabs.js +7 -3
  380. package/dist/components/Tabs.mjs +1 -1
  381. package/dist/components/TaskBoard.js +4 -4
  382. package/dist/components/TaskBoard.mjs +2 -2
  383. package/dist/components/TimePicker.js +2 -2
  384. package/dist/components/TimePicker.mjs +1 -1
  385. package/dist/components/Tooltip.js +4 -4
  386. package/dist/components/Tooltip.mjs +3 -3
  387. package/dist/components/Transfer.js +2 -2
  388. package/dist/components/Transfer.mjs +1 -1
  389. package/dist/components/Tree.d.mts +19 -0
  390. package/dist/components/Tree.d.ts +19 -0
  391. package/dist/components/Tree.js +4 -3
  392. package/dist/components/Tree.mjs +2 -1
  393. package/dist/components/TreeMapChart.js +6 -6
  394. package/dist/components/TreeMapChart.mjs +5 -5
  395. package/dist/components/TreeSelect.js +2 -2
  396. package/dist/components/TreeSelect.mjs +1 -1
  397. package/dist/components/Upload.js +3 -3
  398. package/dist/components/Upload.mjs +2 -2
  399. package/dist/components/VirtualList.js +2 -2
  400. package/dist/components/VirtualList.mjs +1 -1
  401. package/dist/components/VirtualTable.js +3 -3
  402. package/dist/components/VirtualTable.mjs +1 -1
  403. package/dist/components/Watermark.js +2 -2
  404. package/dist/components/Watermark.mjs +1 -1
  405. package/dist/index.d.mts +32 -18
  406. package/dist/index.d.ts +32 -18
  407. package/dist/index.js +359 -210
  408. package/dist/index.mjs +243 -95
  409. package/dist/types-BT4oTXQ_.d.mts +31 -0
  410. package/dist/types-BT4oTXQ_.d.ts +31 -0
  411. package/package.json +13 -8
  412. package/dist/chunk-3NE6VZRY.js +0 -67
  413. package/dist/chunk-7YLVAZJQ.mjs +0 -47
  414. package/dist/chunk-A3PYG3D6.js +0 -107
  415. package/dist/chunk-B3LRUKXM.mjs +0 -65
  416. package/dist/chunk-B53R2U2R.mjs +0 -86
  417. package/dist/chunk-BKYE77F2.js +0 -171
  418. package/dist/chunk-CRSMECWE.mjs +0 -33
  419. package/dist/chunk-D5KYIQWB.mjs +0 -105
  420. package/dist/chunk-DUWAV47E.js +0 -42
  421. package/dist/chunk-DZGDCRBH.mjs +0 -30
  422. package/dist/chunk-EQWQXURG.js +0 -18
  423. package/dist/chunk-F6KHZNRS.js +0 -32
  424. package/dist/chunk-GJEWBALW.js +0 -38
  425. package/dist/chunk-GOUMB34F.mjs +0 -168
  426. package/dist/chunk-H36CWHUP.mjs +0 -30
  427. package/dist/chunk-HZHFFVP7.mjs +0 -63
  428. package/dist/chunk-IBYIPXIO.js +0 -88
  429. package/dist/chunk-IS467WAO.mjs +0 -39
  430. package/dist/chunk-MB7CJ32C.mjs +0 -878
  431. package/dist/chunk-OFBK35TK.mjs +0 -32
  432. package/dist/chunk-OWUGXP6K.js +0 -37
  433. package/dist/chunk-QBZODEIG.js +0 -49
  434. package/dist/chunk-R5P72RIT.js +0 -180
  435. package/dist/chunk-RARHRSPQ.js +0 -72
  436. package/dist/chunk-SIVJX7VU.mjs +0 -16
  437. package/dist/chunk-SMC2RV3V.mjs +0 -250
  438. package/dist/chunk-T5FAKJ6C.mjs +0 -49
  439. package/dist/chunk-XID6T65A.js +0 -163
  440. package/dist/chunk-XO6NSGV3.js +0 -884
  441. package/dist/chunk-Y3NDP56G.mjs +0 -174
  442. package/dist/chunk-Z6CRXABX.js +0 -88
  443. package/dist/chunk-ZIUOENTL.mjs +0 -85
@@ -29,49 +29,44 @@ var FileManager = ({
29
29
  renderIcon
30
30
  }) => {
31
31
  const [localSearch, setLocalSearch] = react.useState(searchText);
32
- const currentItems = react.useMemo(() => tigercatCore.navigateToFolder(files, currentPath), [files, currentPath]);
33
- const processedItems = react.useMemo(() => {
34
- let items = tigercatCore.filterHiddenFiles(currentItems, showHidden);
35
- const search = localSearch || searchText;
36
- if (search) {
37
- items = tigercatCore.filterFileItems(items, search);
38
- }
39
- return tigercatCore.sortFileItems(items, sortField, sortOrder);
40
- }, [currentItems, showHidden, localSearch, searchText, sortField, sortOrder]);
41
- const selectedSet = react.useMemo(() => new Set(selectedKeys), [selectedKeys]);
32
+ const model = react.useMemo(
33
+ () => tigercatCore.deriveFileManagerModel({
34
+ files,
35
+ currentPath,
36
+ selectedKeys,
37
+ sortField,
38
+ sortOrder,
39
+ showHidden,
40
+ searchText: localSearch || searchText
41
+ }),
42
+ [files, currentPath, selectedKeys, sortField, sortOrder, showHidden, localSearch, searchText]
43
+ );
42
44
  const containerClasses = react.useMemo(() => tigercatCore.getFileManagerContainerClasses(className), [className]);
43
45
  const handleSelect = react.useCallback(
44
46
  (item) => {
45
47
  if (item.disabled) return;
46
48
  onSelect?.(item);
47
- const keys = [...selectedKeys];
48
- const idx = keys.indexOf(item.key);
49
- if (idx >= 0) {
50
- keys.splice(idx, 1);
51
- } else {
52
- if (!multiple) keys.length = 0;
53
- keys.push(item.key);
54
- }
49
+ const keys = tigercatCore.toggleFileSelection(selectedKeys, item.key, multiple);
55
50
  onSelectedKeysChange?.(keys);
56
51
  },
57
52
  [selectedKeys, multiple, onSelect, onSelectedKeysChange]
58
53
  );
59
54
  const handleOpen = react.useCallback(
60
55
  (item) => {
61
- if (item.disabled) return;
62
- if (item.type === "folder") {
63
- const newPath = [...currentPath, item.name];
64
- onCurrentPathChange?.(newPath);
65
- onNavigate?.(newPath);
56
+ const result = tigercatCore.resolveFileOpen(item, currentPath);
57
+ if (!result) return;
58
+ if (result.type === "navigate") {
59
+ onCurrentPathChange?.(result.path);
60
+ onNavigate?.(result.path);
66
61
  } else {
67
- onOpen?.(item);
62
+ onOpen?.(result.item);
68
63
  }
69
64
  },
70
65
  [currentPath, onOpen, onNavigate, onCurrentPathChange]
71
66
  );
72
67
  const navigateToBreadcrumb = react.useCallback(
73
68
  (index) => {
74
- const newPath = currentPath.slice(0, index);
69
+ const newPath = tigercatCore.sliceBreadcrumbPath(currentPath, index);
75
70
  onCurrentPathChange?.(newPath);
76
71
  onNavigate?.(newPath);
77
72
  },
@@ -119,9 +114,10 @@ var FileManager = ({
119
114
  }
120
115
  )
121
116
  ] }),
122
- processedItems.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: contentClass, role: "listbox", "aria-multiselectable": multiple, children: processedItems.map((item) => {
123
- const isSelected = selectedSet.has(item.key);
117
+ model.processedItems.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: contentClass, role: "listbox", "aria-multiselectable": multiple, children: model.processedItems.map((item, index) => {
118
+ const isSelected = model.selectedSet.has(item.key);
124
119
  const itemClass = tigercatCore.getFileItemClasses(viewMode, isSelected);
120
+ const dragItem = draggable && !item.disabled ? tigercatCore.toFileDragItem(item, index) : void 0;
125
121
  return /* @__PURE__ */ jsxRuntime.jsxs(
126
122
  "div",
127
123
  {
@@ -129,6 +125,7 @@ var FileManager = ({
129
125
  role: "option",
130
126
  "aria-selected": isSelected,
131
127
  "data-disabled": item.disabled || void 0,
128
+ "data-drag-id": dragItem?.id,
132
129
  onClick: () => handleSelect(item),
133
130
  onDoubleClick: () => handleOpen(item),
134
131
  draggable: draggable && !item.disabled,
@@ -1,7 +1,6 @@
1
- import { useEscapeKey } from './chunk-WLIFEALE.mjs';
1
+ import { useEscapeKey, useBodyScrollLock, useFocusTrap, renderBodyPortal } from './chunk-XTSG362L.mjs';
2
2
  import React, { useEffect, useCallback, useRef, useId, useMemo } from 'react';
3
- import { createPortal } from 'react-dom';
4
- import { ANIMATION_DURATION_MS, resolveLocaleText, captureActiveElement, focusFirst, restoreFocus, getFocusableElements, getFocusTrapNavigation, classNames, getDrawerContainerClasses, getDrawerMaskClasses, getDrawerPanelClasses, getDrawerHeaderClasses, getDrawerBodyClasses, getDrawerFooterClasses, getDrawerCloseButtonClasses, getDrawerTitleClasses, closeIconViewBox, closeIconPathD, closeIconPathStrokeWidth, closeIconPathStrokeLinejoin, closeIconPathStrokeLinecap } from '@expcat/tigercat-core';
3
+ import { shouldCloseOnMaskClick, ANIMATION_DURATION_MS, resolveLocaleText, captureActiveElement, focusFirst, restoreFocus, classNames, getDrawerContainerClasses, getDrawerMaskClasses, getDrawerPanelClasses, getDrawerHeaderClasses, getDrawerBodyClasses, getDrawerFooterClasses, getDrawerCloseButtonClasses, getDrawerTitleClasses, closeIconViewBox, closeIconPathD, closeIconPathStrokeWidth, closeIconPathStrokeLinejoin, closeIconPathStrokeLinecap } from '@expcat/tigercat-core';
5
4
  import { jsxs, jsx } from 'react/jsx-runtime';
6
5
 
7
6
  var CloseIcon = () => /* @__PURE__ */ jsx(
@@ -57,14 +56,14 @@ var Drawer = ({
57
56
  }, [onClose]);
58
57
  const handleMaskClick = useCallback(
59
58
  (event) => {
60
- if (!maskClosable) return;
61
- if (event.target === event.currentTarget) {
59
+ if (shouldCloseOnMaskClick(event, maskClosable)) {
62
60
  handleClose();
63
61
  }
64
62
  },
65
63
  [maskClosable, handleClose]
66
64
  );
67
65
  useEscapeKey({ enabled: open, onEscape: handleClose });
66
+ useBodyScrollLock({ enabled: open });
68
67
  const previousVisible = useRef(false);
69
68
  useEffect(() => {
70
69
  if (open === previousVisible.current) return;
@@ -107,16 +106,7 @@ var Drawer = ({
107
106
  }
108
107
  restoreFocus(previousActiveElementRef.current);
109
108
  }, [open]);
110
- const handleKeyDown = useCallback((event) => {
111
- if (event.key === "Tab" && dialogRef.current) {
112
- const focusables = getFocusableElements(dialogRef.current);
113
- const result = getFocusTrapNavigation(event.nativeEvent, focusables, document.activeElement);
114
- if (result.shouldHandle && result.next) {
115
- event.preventDefault();
116
- result.next.focus();
117
- }
118
- }
119
- }, []);
109
+ useFocusTrap({ enabled: open, containerRef: dialogRef });
120
110
  const containerClasses = classNames(getDrawerContainerClasses(), !open && "pointer-events-none");
121
111
  const maskClasses = getDrawerMaskClasses(open);
122
112
  const panelClasses = classNames(
@@ -166,7 +156,6 @@ var Drawer = ({
166
156
  "aria-labelledby": ariaLabelledby,
167
157
  tabIndex: -1,
168
158
  ref: dialogRef,
169
- onKeyDown: handleKeyDown,
170
159
  "data-tiger-drawer": "",
171
160
  children: [
172
161
  (title || header || closable) && /* @__PURE__ */ jsxs("div", { className: headerClasses, children: [
@@ -191,10 +180,7 @@ var Drawer = ({
191
180
  ]
192
181
  }
193
182
  );
194
- if (typeof document === "undefined") {
195
- return null;
196
- }
197
- return createPortal(drawerContent, document.body);
183
+ return renderBodyPortal(drawerContent);
198
184
  };
199
185
 
200
186
  export { Drawer };
@@ -1,8 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkZYPEO2KY_js = require('./chunk-ZYPEO2KY.js');
3
+ var chunkPGBKMW4Q_js = require('./chunk-PGBKMW4Q.js');
4
4
  var React = require('react');
5
- var reactDom = require('react-dom');
6
5
  var tigercatCore = require('@expcat/tigercat-core');
7
6
  var jsxRuntime = require('react/jsx-runtime');
8
7
 
@@ -63,14 +62,14 @@ var Drawer = ({
63
62
  }, [onClose]);
64
63
  const handleMaskClick = React.useCallback(
65
64
  (event) => {
66
- if (!maskClosable) return;
67
- if (event.target === event.currentTarget) {
65
+ if (tigercatCore.shouldCloseOnMaskClick(event, maskClosable)) {
68
66
  handleClose();
69
67
  }
70
68
  },
71
69
  [maskClosable, handleClose]
72
70
  );
73
- chunkZYPEO2KY_js.useEscapeKey({ enabled: open, onEscape: handleClose });
71
+ chunkPGBKMW4Q_js.useEscapeKey({ enabled: open, onEscape: handleClose });
72
+ chunkPGBKMW4Q_js.useBodyScrollLock({ enabled: open });
74
73
  const previousVisible = React.useRef(false);
75
74
  React.useEffect(() => {
76
75
  if (open === previousVisible.current) return;
@@ -113,16 +112,7 @@ var Drawer = ({
113
112
  }
114
113
  tigercatCore.restoreFocus(previousActiveElementRef.current);
115
114
  }, [open]);
116
- const handleKeyDown = React.useCallback((event) => {
117
- if (event.key === "Tab" && dialogRef.current) {
118
- const focusables = tigercatCore.getFocusableElements(dialogRef.current);
119
- const result = tigercatCore.getFocusTrapNavigation(event.nativeEvent, focusables, document.activeElement);
120
- if (result.shouldHandle && result.next) {
121
- event.preventDefault();
122
- result.next.focus();
123
- }
124
- }
125
- }, []);
115
+ chunkPGBKMW4Q_js.useFocusTrap({ enabled: open, containerRef: dialogRef });
126
116
  const containerClasses = tigercatCore.classNames(tigercatCore.getDrawerContainerClasses(), !open && "pointer-events-none");
127
117
  const maskClasses = tigercatCore.getDrawerMaskClasses(open);
128
118
  const panelClasses = tigercatCore.classNames(
@@ -172,7 +162,6 @@ var Drawer = ({
172
162
  "aria-labelledby": ariaLabelledby,
173
163
  tabIndex: -1,
174
164
  ref: dialogRef,
175
- onKeyDown: handleKeyDown,
176
165
  "data-tiger-drawer": "",
177
166
  children: [
178
167
  (title || header || closable) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: headerClasses, children: [
@@ -197,10 +186,7 @@ var Drawer = ({
197
186
  ]
198
187
  }
199
188
  );
200
- if (typeof document === "undefined") {
201
- return null;
202
- }
203
- return reactDom.createPortal(drawerContent, document.body);
189
+ return chunkPGBKMW4Q_js.renderBodyPortal(drawerContent);
204
190
  };
205
191
 
206
192
  exports.Drawer = Drawer;
@@ -1,5 +1,5 @@
1
1
  import { useRef, useState, useCallback, useEffect, useMemo } from 'react';
2
- import { isAtMin, isAtMax, classNames, getInputNumberWrapperClasses, getInputNumberStatusClasses, getInputNumberSizeClasses, getInputNumberFocusRingColor, getInputNumberInputClasses, getInputNumberSideButtonClasses, inputNumberMinusIconPathD, inputNumberPlusIconPathD, inputNumberControlsRightClasses, getInputNumberStepButtonClasses, inputNumberUpIconPathD, inputNumberDownIconPathD, stepValue, clampValue, formatPrecision } from '@expcat/tigercat-core';
2
+ import { createRafRepeatActionController, isAtMin, isAtMax, classNames, getInputNumberWrapperClasses, getInputNumberStatusClasses, getInputNumberSizeClasses, getInputNumberFocusRingColor, getInputNumberInputClasses, getInputNumberSideButtonClasses, inputNumberMinusIconPathD, inputNumberPlusIconPathD, inputNumberControlsRightClasses, getInputNumberStepButtonClasses, inputNumberUpIconPathD, inputNumberDownIconPathD, stepValue, clampValue, formatPrecision } from '@expcat/tigercat-core';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
 
5
5
  // src/components/InputNumber.tsx
@@ -30,6 +30,9 @@ var InputNumber = ({
30
30
  }) => {
31
31
  const isControlled = controlledValue !== void 0;
32
32
  const inputRef = useRef(null);
33
+ const repeatControllerRef = useRef(createRafRepeatActionController());
34
+ const repeatValueRef = useRef(null);
35
+ const suppressNextClickRef = useRef(false);
33
36
  const [focused, setFocused] = useState(false);
34
37
  const [internalValue, setInternalValue] = useState(
35
38
  defaultValue ?? controlledValue ?? null
@@ -61,6 +64,7 @@ var InputNumber = ({
61
64
  inputRef.current.focus();
62
65
  }
63
66
  }, [autoFocus]);
67
+ useEffect(() => () => repeatControllerRef.current.stop(), []);
64
68
  const commitValue = (val) => {
65
69
  let finalVal = val;
66
70
  if (finalVal !== null) {
@@ -75,10 +79,39 @@ var InputNumber = ({
75
79
  onChange?.(finalVal);
76
80
  setDisplayValue(toDisplayValue(finalVal));
77
81
  };
78
- const handleStep = (direction) => {
79
- if (disabled || readonly) return;
80
- const next = stepValue(currentValue, step, direction, min, max, precision);
82
+ const handleStep = (direction, baseValue = currentValue) => {
83
+ if (disabled || readonly) return baseValue ?? null;
84
+ const next = stepValue(baseValue, step, direction, min, max, precision);
81
85
  commitValue(next);
86
+ return next;
87
+ };
88
+ const handleStepClick = (direction) => {
89
+ if (suppressNextClickRef.current) {
90
+ suppressNextClickRef.current = false;
91
+ return;
92
+ }
93
+ handleStep(direction);
94
+ };
95
+ const startStepRepeat = (direction) => {
96
+ return (event) => {
97
+ event.preventDefault();
98
+ if (disabled || readonly) return;
99
+ if (direction === "down" && isAtMin(currentValue, min)) return;
100
+ if (direction === "up" && isAtMax(currentValue, max)) return;
101
+ suppressNextClickRef.current = true;
102
+ repeatValueRef.current = currentValue;
103
+ repeatControllerRef.current.start(() => {
104
+ const baseValue = repeatValueRef.current;
105
+ const nextValue = handleStep(direction, baseValue);
106
+ repeatValueRef.current = nextValue;
107
+ if (nextValue === baseValue) {
108
+ repeatControllerRef.current.stop();
109
+ }
110
+ });
111
+ };
112
+ };
113
+ const stopStepRepeat = () => {
114
+ repeatControllerRef.current.stop();
82
115
  };
83
116
  const handleInput = (e) => {
84
117
  setDisplayValue(e.target.value);
@@ -138,8 +171,11 @@ var InputNumber = ({
138
171
  "aria-label": "Decrease",
139
172
  className: getInputNumberSideButtonClasses("left", disabled || atMin),
140
173
  disabled: disabled || atMin,
141
- onMouseDown: (e) => e.preventDefault(),
142
- onClick: () => handleStep("down"),
174
+ onPointerDown: startStepRepeat("down"),
175
+ onPointerUp: stopStepRepeat,
176
+ onPointerLeave: stopStepRepeat,
177
+ onPointerCancel: stopStepRepeat,
178
+ onClick: () => handleStepClick("down"),
143
179
  children: /* @__PURE__ */ jsx(
144
180
  "svg",
145
181
  {
@@ -185,8 +221,11 @@ var InputNumber = ({
185
221
  "aria-label": "Increase",
186
222
  className: getInputNumberSideButtonClasses("right", disabled || atMax),
187
223
  disabled: disabled || atMax,
188
- onMouseDown: (e) => e.preventDefault(),
189
- onClick: () => handleStep("up"),
224
+ onPointerDown: startStepRepeat("up"),
225
+ onPointerUp: stopStepRepeat,
226
+ onPointerLeave: stopStepRepeat,
227
+ onPointerCancel: stopStepRepeat,
228
+ onClick: () => handleStepClick("up"),
190
229
  children: /* @__PURE__ */ jsx(
191
230
  "svg",
192
231
  {
@@ -210,8 +249,11 @@ var InputNumber = ({
210
249
  "aria-label": "Increase",
211
250
  className: getInputNumberStepButtonClasses("up", disabled || atMax),
212
251
  disabled: disabled || atMax,
213
- onMouseDown: (e) => e.preventDefault(),
214
- onClick: () => handleStep("up"),
252
+ onPointerDown: startStepRepeat("up"),
253
+ onPointerUp: stopStepRepeat,
254
+ onPointerLeave: stopStepRepeat,
255
+ onPointerCancel: stopStepRepeat,
256
+ onClick: () => handleStepClick("up"),
215
257
  children: /* @__PURE__ */ jsx(
216
258
  "svg",
217
259
  {
@@ -232,8 +274,11 @@ var InputNumber = ({
232
274
  "aria-label": "Decrease",
233
275
  className: getInputNumberStepButtonClasses("down", disabled || atMin),
234
276
  disabled: disabled || atMin,
235
- onMouseDown: (e) => e.preventDefault(),
236
- onClick: () => handleStep("down"),
277
+ onPointerDown: startStepRepeat("down"),
278
+ onPointerUp: stopStepRepeat,
279
+ onPointerLeave: stopStepRepeat,
280
+ onPointerCancel: stopStepRepeat,
281
+ onClick: () => handleStepClick("down"),
237
282
  children: /* @__PURE__ */ jsx(
238
283
  "svg",
239
284
  {
@@ -1,15 +1,76 @@
1
- import { createContext, useContext, useState, useRef, useMemo, useCallback, useEffect } from 'react';
2
- import { scrollToAnchor, classNames, getAnchorWrapperClasses, getAnchorInkContainerClasses, getAnchorInkActiveClasses, getAnchorLinkListClasses, findActiveAnchor } from '@expcat/tigercat-core';
3
- import { jsx, jsxs } from 'react/jsx-runtime';
1
+ import React, { createContext, useContext, useEffect, useMemo, useState, useRef, useCallback } from 'react';
2
+ import { classNames, getAnchorLinkClasses, scrollToAnchor, createAnchorObserver, getAnchorWrapperClasses, getAnchorInkContainerClasses, getAnchorInkActiveClasses, getAnchorLinkListClasses } from '@expcat/tigercat-core';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
4
 
5
5
  // src/components/Anchor.tsx
6
6
  var AnchorContext = createContext(null);
7
7
  function useAnchorContext() {
8
8
  return useContext(AnchorContext);
9
9
  }
10
+ var AnchorLink = ({
11
+ href,
12
+ title,
13
+ target,
14
+ className,
15
+ children,
16
+ ...props
17
+ }) => {
18
+ const anchorContext = useAnchorContext();
19
+ const register = anchorContext?.registerLink;
20
+ const unregister = anchorContext?.unregisterLink;
21
+ useEffect(() => {
22
+ if (href) {
23
+ register?.(href);
24
+ }
25
+ return () => {
26
+ unregister?.(href);
27
+ };
28
+ }, [href, register, unregister]);
29
+ const handleClick = (event) => {
30
+ event.preventDefault();
31
+ anchorContext?.handleLinkClick(href, event);
32
+ };
33
+ const linkClasses = useMemo(() => {
34
+ const isActive = anchorContext?.activeLink === href;
35
+ return classNames(getAnchorLinkClasses(isActive, className));
36
+ }, [anchorContext?.activeLink, href, className]);
37
+ const hasNestedLinks = React.Children.toArray(children).some(
38
+ (child) => React.isValidElement(child) && child.type === AnchorLink
39
+ );
40
+ if (hasNestedLinks) {
41
+ return /* @__PURE__ */ jsxs("div", { className: "anchor-link-wrapper", children: [
42
+ /* @__PURE__ */ jsx(
43
+ "a",
44
+ {
45
+ href,
46
+ target,
47
+ className: linkClasses,
48
+ "data-anchor-href": href,
49
+ onClick: handleClick,
50
+ ...props,
51
+ children: title
52
+ }
53
+ ),
54
+ /* @__PURE__ */ jsx("div", { className: "pl-3 mt-1 space-y-1", children })
55
+ ] });
56
+ }
57
+ const content = children ?? title;
58
+ return /* @__PURE__ */ jsx(
59
+ "a",
60
+ {
61
+ href,
62
+ target,
63
+ className: linkClasses,
64
+ "data-anchor-href": href,
65
+ onClick: handleClick,
66
+ ...props,
67
+ children: content
68
+ }
69
+ );
70
+ };
10
71
  var Anchor = ({
11
72
  affix = true,
12
- bounds = 5,
73
+ bounds: _bounds = 5,
13
74
  offsetTop = 0,
14
75
  showInkInFixed = false,
15
76
  targetOffset,
@@ -27,10 +88,13 @@ var Anchor = ({
27
88
  const anchorRef = useRef(null);
28
89
  const inkRef = useRef(null);
29
90
  const isScrollingRef = useRef(false);
30
- const animationFrameRef = useRef(null);
31
91
  const scrollTimeoutRef = useRef(null);
32
92
  const getContainerRef = useRef(getContainer);
33
93
  getContainerRef.current = getContainer;
94
+ const getCurrentAnchorRef = useRef(getCurrentAnchor);
95
+ getCurrentAnchorRef.current = getCurrentAnchor;
96
+ const onChangeRef = useRef(onChange);
97
+ onChangeRef.current = onChange;
34
98
  const scrollOffset = useMemo(() => targetOffset ?? offsetTop, [targetOffset, offsetTop]);
35
99
  const registerLink = useCallback((href) => {
36
100
  setLinks((prevLinks) => {
@@ -65,44 +129,34 @@ var Anchor = ({
65
129
  [onClick, scrollTo]
66
130
  );
67
131
  useEffect(() => {
68
- let container = null;
69
- let handleScroll = null;
132
+ let stop = null;
70
133
  const timeoutId = setTimeout(() => {
71
- container = getContainerRef.current();
72
- handleScroll = () => {
73
- if (isScrollingRef.current) return;
74
- if (animationFrameRef.current !== null) {
75
- cancelAnimationFrame(animationFrameRef.current);
76
- }
77
- animationFrameRef.current = requestAnimationFrame(() => {
78
- const currentContainer = getContainerRef.current();
79
- const newActiveLink = findActiveAnchor(links, currentContainer, bounds, scrollOffset);
80
- const finalActiveLink = getCurrentAnchor ? getCurrentAnchor(newActiveLink) : newActiveLink;
81
- setActiveLink((prevActiveLink) => {
82
- if (finalActiveLink !== prevActiveLink) {
83
- onChange?.(finalActiveLink);
134
+ const container = getContainerRef.current();
135
+ const root = container === window ? null : container;
136
+ stop = createAnchorObserver(links, {
137
+ offsetTop: scrollOffset,
138
+ root,
139
+ onChange: (newActiveLink) => {
140
+ if (isScrollingRef.current) return;
141
+ const finalActiveLink = getCurrentAnchorRef.current ? getCurrentAnchorRef.current(newActiveLink) : newActiveLink;
142
+ setActiveLink((prev) => {
143
+ if (finalActiveLink !== prev) {
144
+ onChangeRef.current?.(finalActiveLink);
84
145
  return finalActiveLink;
85
146
  }
86
- return prevActiveLink;
147
+ return prev;
87
148
  });
88
- });
89
- };
90
- container.addEventListener("scroll", handleScroll, { passive: true });
91
- handleScroll();
149
+ }
150
+ });
92
151
  }, 0);
93
152
  return () => {
94
153
  clearTimeout(timeoutId);
95
- if (container && handleScroll) {
96
- container.removeEventListener("scroll", handleScroll);
97
- }
98
- if (animationFrameRef.current !== null) {
99
- cancelAnimationFrame(animationFrameRef.current);
100
- }
154
+ stop?.();
101
155
  if (scrollTimeoutRef.current !== null) {
102
156
  clearTimeout(scrollTimeoutRef.current);
103
157
  }
104
158
  };
105
- }, [links, bounds, scrollOffset, getCurrentAnchor, onChange]);
159
+ }, [links, scrollOffset]);
106
160
  useEffect(() => {
107
161
  if (!inkRef.current || !anchorRef.current || !activeLink) {
108
162
  return;
@@ -156,4 +210,4 @@ var Anchor = ({
156
210
  };
157
211
  var Anchor_default = Anchor;
158
212
 
159
- export { Anchor, Anchor_default, useAnchorContext };
213
+ export { Anchor, AnchorLink, Anchor_default, useAnchorContext };
@@ -1,5 +1,5 @@
1
- import React, { createContext, forwardRef, useState, useCallback, useImperativeHandle, useMemo, useContext } from 'react';
2
- import { createFormHistory, getValueByPath, validateField, getDependentFields, validateForm, pushFormHistory, undoFormHistory, redoFormHistory, canRedo, canUndo, classNames } from '@expcat/tigercat-core';
1
+ import React, { createContext, forwardRef, useState, useMemo, useCallback, useImperativeHandle, useContext } from 'react';
2
+ import { createFormErrorMap, createFormHistory, getValueByPath, validateField, getDependentFields, validateForm, pushFormHistory, undoFormHistory, redoFormHistory, canRedo, canUndo, classNames } from '@expcat/tigercat-core';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
 
5
5
  // src/components/Form.tsx
@@ -34,6 +34,7 @@ var Form = forwardRef(
34
34
  const [formValues, setFormValues] = useState(model);
35
35
  const fieldRulesRef = React.useRef({});
36
36
  const formValuesRef = React.useRef(model);
37
+ const errorsByField = useMemo(() => createFormErrorMap(errors), [errors]);
37
38
  const [historyState, setHistoryState] = useState(() => createFormHistory(model, maxHistorySize));
38
39
  React.useEffect(() => {
39
40
  setFormValues(model);
@@ -295,6 +296,7 @@ var Form = forwardRef(
295
296
  disabled,
296
297
  loading,
297
298
  errors,
299
+ errorsByField,
298
300
  registerFieldRules,
299
301
  validateField: validateField$1,
300
302
  clearValidate,
@@ -312,6 +314,7 @@ var Form = forwardRef(
312
314
  disabled,
313
315
  loading,
314
316
  errors,
317
+ errorsByField,
315
318
  registerFieldRules,
316
319
  validateField$1,
317
320
  clearValidate,
@@ -1,5 +1,5 @@
1
1
  import { useId, useState, useRef, useEffect, useMemo } from 'react';
2
- import { filterAutoCompleteOptions, classNames, autoCompleteBaseClasses, getAutoCompleteInputClasses, icon20ViewBox, closeSolidIcon20PathD, autoCompleteDropdownClasses, getAutoCompleteOptionClasses, autoCompleteEmptyStateClasses } from '@expcat/tigercat-core';
2
+ import { filterAutoCompleteOptions, classNames, autoCompleteBaseClasses, getPickerComboboxAria, getAutoCompleteInputClasses, icon20ViewBox, closeSolidIcon20PathD, autoCompleteDropdownClasses, getPickerListboxAria, getAutoCompleteOptionClasses, getPickerOptionAria, getPickerOptionId, autoCompleteEmptyStateClasses, getInitialPickerActiveIndex, getPickerNavigationIndex } from '@expcat/tigercat-core';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
 
5
5
  // src/components/AutoComplete.tsx
@@ -59,9 +59,7 @@ var AutoComplete = (props) => {
59
59
  function openDropdown() {
60
60
  if (disabled) return;
61
61
  setIsOpen(true);
62
- if (defaultActiveFirstOption && filteredOptions.length > 0) {
63
- setActiveIndex(0);
64
- }
62
+ setActiveIndex(getInitialPickerActiveIndex(filteredOptions, defaultActiveFirstOption));
65
63
  }
66
64
  function closeDropdown() {
67
65
  setIsOpen(false);
@@ -77,7 +75,7 @@ var AutoComplete = (props) => {
77
75
  }
78
76
  if (defaultActiveFirstOption) {
79
77
  const newFiltered = filterAutoCompleteOptions(options, val, filterOption);
80
- setActiveIndex(newFiltered.length > 0 ? 0 : -1);
78
+ setActiveIndex(getInitialPickerActiveIndex(newFiltered, true));
81
79
  }
82
80
  }
83
81
  function handleSelect(option) {
@@ -103,24 +101,11 @@ var AutoComplete = (props) => {
103
101
  }
104
102
  switch (e.key) {
105
103
  case "ArrowDown":
106
- e.preventDefault();
107
- if (filteredOptions.length > 0) {
108
- setActiveIndex((prev) => {
109
- let next = prev + 1;
110
- while (next < filteredOptions.length && filteredOptions[next].disabled) next++;
111
- return next < filteredOptions.length ? next : prev;
112
- });
113
- }
114
- break;
115
104
  case "ArrowUp":
105
+ case "Home":
106
+ case "End":
116
107
  e.preventDefault();
117
- if (filteredOptions.length > 0) {
118
- setActiveIndex((prev) => {
119
- let p = prev - 1;
120
- while (p >= 0 && filteredOptions[p].disabled) p--;
121
- return p >= 0 ? p : prev;
122
- });
123
- }
108
+ setActiveIndex((prev) => getPickerNavigationIndex(filteredOptions, prev, e.key));
124
109
  break;
125
110
  case "Enter":
126
111
  e.preventDefault();
@@ -155,11 +140,7 @@ var AutoComplete = (props) => {
155
140
  value: inputValue,
156
141
  placeholder,
157
142
  disabled,
158
- role: "combobox",
159
- "aria-expanded": isOpen,
160
- "aria-haspopup": "listbox",
161
- "aria-controls": isOpen ? listboxId : void 0,
162
- "aria-activedescendant": isOpen && activeIndex >= 0 ? `${listboxId}-option-${activeIndex}` : void 0,
143
+ ...getPickerComboboxAria({ expanded: isOpen, listboxId, activeIndex }),
163
144
  autoComplete: "off",
164
145
  onChange: handleInput,
165
146
  onFocus: openDropdown,
@@ -185,13 +166,14 @@ var AutoComplete = (props) => {
185
166
  )
186
167
  }
187
168
  ),
188
- isOpen && filteredOptions.length > 0 && /* @__PURE__ */ jsx("div", { id: listboxId, role: "listbox", className: autoCompleteDropdownClasses, children: filteredOptions.map((option, index) => /* @__PURE__ */ jsx(
169
+ isOpen && filteredOptions.length > 0 && /* @__PURE__ */ jsx("div", { ...getPickerListboxAria({ id: listboxId }), className: autoCompleteDropdownClasses, children: filteredOptions.map((option, index) => /* @__PURE__ */ jsx(
189
170
  "div",
190
171
  {
191
- id: `${listboxId}-option-${index}`,
192
- role: "option",
193
- "aria-selected": String(option.value) === String(value),
194
- "aria-disabled": option.disabled,
172
+ id: getPickerOptionId(listboxId, index),
173
+ ...getPickerOptionAria({
174
+ selected: String(option.value) === String(value),
175
+ disabled: !!option.disabled
176
+ }),
195
177
  className: getAutoCompleteOptionClasses(
196
178
  String(option.value) === String(value),
197
179
  !!option.disabled,
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkZYPEO2KY_js = require('./chunk-ZYPEO2KY.js');
3
+ var chunkPGBKMW4Q_js = require('./chunk-PGBKMW4Q.js');
4
4
  var react = require('react');
5
5
  var tigercatCore = require('@expcat/tigercat-core');
6
6
 
@@ -25,7 +25,7 @@ function usePopup(options) {
25
25
  x,
26
26
  y,
27
27
  placement: actualPlacement
28
- } = chunkZYPEO2KY_js.useFloating({
28
+ } = chunkPGBKMW4Q_js.useFloating({
29
29
  referenceRef: triggerRef,
30
30
  floatingRef,
31
31
  enabled: currentVisible,
@@ -50,13 +50,13 @@ function usePopup(options) {
50
50
  if (!disabled) setVisible(false);
51
51
  }, [disabled, setVisible]);
52
52
  const effectiveTrigger = multiTrigger ? trigger : "click";
53
- chunkZYPEO2KY_js.useClickOutside({
53
+ chunkPGBKMW4Q_js.useClickOutside({
54
54
  enabled: currentVisible && effectiveTrigger === "click",
55
- refs: [containerRef],
55
+ refs: [containerRef, floatingRef],
56
56
  onOutsideClick: () => setVisible(false),
57
57
  defer: true
58
58
  });
59
- chunkZYPEO2KY_js.useEscapeKey({
59
+ chunkPGBKMW4Q_js.useEscapeKey({
60
60
  enabled: currentVisible && effectiveTrigger !== "manual",
61
61
  onEscape: () => setVisible(false)
62
62
  });