@expcat/tigercat-react 2.1.2 → 2.1.4

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 (592) hide show
  1. package/README.md +13 -19
  2. package/dist/{chunk-4C2X5PZO.mjs → chunk-25BKSXTX.mjs} +209 -98
  3. package/dist/{chunk-IGBQGR6G.mjs → chunk-2AVHOPKK.mjs} +112 -54
  4. package/dist/{chunk-34VGG7AK.mjs → chunk-2AVQQGL2.mjs} +6 -5
  5. package/dist/{chunk-Y6557RWE.mjs → chunk-2BRMZBQ2.mjs} +43 -15
  6. package/dist/chunk-2IOF3EC7.mjs +314 -0
  7. package/dist/chunk-2MKDIXBP.mjs +768 -0
  8. package/dist/chunk-2PC625DX.mjs +88 -0
  9. package/dist/chunk-2QJGXENY.mjs +85 -0
  10. package/dist/chunk-2SN5JTST.mjs +99 -0
  11. package/dist/chunk-2STETY2J.mjs +160 -0
  12. package/dist/{chunk-CN3QXWK3.mjs → chunk-2W4SH2IG.mjs} +53 -44
  13. package/dist/{chunk-GR3Y3XWP.mjs → chunk-34BU3D7L.mjs} +21 -3
  14. package/dist/{chunk-OTBXERJD.mjs → chunk-3C62ULJT.mjs} +35 -32
  15. package/dist/chunk-3J2AUNWT.mjs +326 -0
  16. package/dist/chunk-3KBFOO2E.mjs +139 -0
  17. package/dist/{chunk-2YBLMVDT.mjs → chunk-3QSO6YK5.mjs} +40 -47
  18. package/dist/chunk-3QXXNK5X.mjs +274 -0
  19. package/dist/{chunk-YJ5T4XZN.mjs → chunk-3WP4PGHF.mjs} +24 -25
  20. package/dist/chunk-4BJCH6FI.mjs +454 -0
  21. package/dist/{chunk-QB5472NM.mjs → chunk-4DFN6RZ4.mjs} +25 -26
  22. package/dist/{chunk-YNDPQVEK.mjs → chunk-4ED2QCE6.mjs} +69 -36
  23. package/dist/chunk-4IVRLBKW.mjs +101 -0
  24. package/dist/{chunk-N2D7NPEW.mjs → chunk-4JVXADTJ.mjs} +30 -22
  25. package/dist/chunk-4KZETZUH.mjs +143 -0
  26. package/dist/chunk-4ZFZCNX5.mjs +96 -0
  27. package/dist/{chunk-3HHEVMHE.mjs → chunk-532OVXLV.mjs} +73 -66
  28. package/dist/{chunk-TQ6RIFWR.mjs → chunk-57IHCV62.mjs} +30 -14
  29. package/dist/chunk-5D6BOIZB.mjs +104 -0
  30. package/dist/chunk-5J7EDMS7.mjs +13 -0
  31. package/dist/{chunk-AUD3VOLO.mjs → chunk-5TQFSORK.mjs} +115 -76
  32. package/dist/chunk-5XI3Q6A6.mjs +279 -0
  33. package/dist/{chunk-NT7GW2FD.mjs → chunk-635ACZQW.mjs} +3 -2
  34. package/dist/chunk-6L7RWLOU.mjs +620 -0
  35. package/dist/chunk-6NJMDDL6.mjs +244 -0
  36. package/dist/chunk-6R66IQ5V.mjs +214 -0
  37. package/dist/chunk-73OFTRG5.mjs +550 -0
  38. package/dist/chunk-7H7EKANG.mjs +145 -0
  39. package/dist/chunk-7QM2ZC52.mjs +256 -0
  40. package/dist/chunk-7VPMOGN3.mjs +205 -0
  41. package/dist/chunk-A2PQJEII.mjs +826 -0
  42. package/dist/{chunk-F2ITBDUS.mjs → chunk-A4JRK5SM.mjs} +43 -22
  43. package/dist/chunk-ACHXTII7.mjs +290 -0
  44. package/dist/chunk-ACV7IV3W.mjs +339 -0
  45. package/dist/chunk-B2IFWWM5.mjs +352 -0
  46. package/dist/chunk-BKIINKEY.mjs +138 -0
  47. package/dist/{chunk-OKYMTHFQ.mjs → chunk-BKSYS4D6.mjs} +74 -77
  48. package/dist/chunk-BNC4MMVG.mjs +427 -0
  49. package/dist/chunk-BP24PM37.mjs +397 -0
  50. package/dist/chunk-BVSR27AF.mjs +287 -0
  51. package/dist/chunk-C6FS67EL.mjs +260 -0
  52. package/dist/chunk-CKKOBWER.mjs +182 -0
  53. package/dist/chunk-CMOSTUC3.mjs +296 -0
  54. package/dist/{chunk-FNK2VWPP.mjs → chunk-CQGDJU2H.mjs} +59 -25
  55. package/dist/chunk-CQQRB4QZ.mjs +364 -0
  56. package/dist/chunk-DDSY5FPV.mjs +442 -0
  57. package/dist/chunk-DJLVNYZD.mjs +967 -0
  58. package/dist/chunk-DNDJAR2I.mjs +38 -0
  59. package/dist/chunk-E7OUCJ3U.mjs +34 -0
  60. package/dist/{chunk-FLYJVZED.mjs → chunk-ED7QR6PJ.mjs} +2 -2
  61. package/dist/chunk-EFZDKSTJ.mjs +279 -0
  62. package/dist/chunk-EK7R3MIN.mjs +365 -0
  63. package/dist/chunk-EVO4YVSD.mjs +545 -0
  64. package/dist/{chunk-2XZHYYZ2.mjs → chunk-FTLA6FRU.mjs} +770 -661
  65. package/dist/{chunk-7EXOY7GD.mjs → chunk-FVA5VKN2.mjs} +25 -15
  66. package/dist/{chunk-EW43YBPV.mjs → chunk-G4Y25JES.mjs} +66 -31
  67. package/dist/{chunk-ZJWUBR2X.mjs → chunk-G5NPND2T.mjs} +18 -2
  68. package/dist/{chunk-L5KAXWQI.mjs → chunk-GF7W2FTZ.mjs} +18 -2
  69. package/dist/{chunk-U4M3DC2P.mjs → chunk-GOIJNJ5D.mjs} +17 -1
  70. package/dist/chunk-H3UEVWOO.mjs +348 -0
  71. package/dist/chunk-HAG7TGPS.mjs +157 -0
  72. package/dist/chunk-HEVB53MU.mjs +41 -0
  73. package/dist/{chunk-2YOP55OF.mjs → chunk-HKPRHDW4.mjs} +244 -229
  74. package/dist/{chunk-FPQMJFFM.mjs → chunk-IELUUOM4.mjs} +15 -7
  75. package/dist/chunk-ION7IDAW.mjs +297 -0
  76. package/dist/chunk-IR45LOEZ.mjs +376 -0
  77. package/dist/chunk-ITC2NU25.mjs +35 -0
  78. package/dist/chunk-IWXG4346.mjs +637 -0
  79. package/dist/{chunk-YH7FKFRM.mjs → chunk-IXMQQ6PV.mjs} +173 -189
  80. package/dist/chunk-J3BDVC5F.mjs +107 -0
  81. package/dist/chunk-JVLLOOEE.mjs +248 -0
  82. package/dist/chunk-JX2WKSVM.mjs +80 -0
  83. package/dist/chunk-KDO5PUMV.mjs +368 -0
  84. package/dist/{chunk-DECUASRW.mjs → chunk-KDXNJN6C.mjs} +134 -102
  85. package/dist/chunk-KEFHL7CJ.mjs +403 -0
  86. package/dist/chunk-KJHPPPB2.mjs +21 -0
  87. package/dist/chunk-KJSNUS45.mjs +23 -0
  88. package/dist/chunk-KTBAJ3TL.mjs +408 -0
  89. package/dist/{chunk-XJ7U2W7S.mjs → chunk-LHHRNRND.mjs} +7 -3
  90. package/dist/chunk-LKTM4NU4.mjs +315 -0
  91. package/dist/{chunk-2JMI7TCM.mjs → chunk-LMSEOGKK.mjs} +2 -11
  92. package/dist/{chunk-VJWSKJLJ.mjs → chunk-LPVE2LX3.mjs} +34 -21
  93. package/dist/chunk-LTIICOWN.mjs +115 -0
  94. package/dist/chunk-MADQ6KHD.mjs +116 -0
  95. package/dist/{chunk-X4L3W7RQ.mjs → chunk-MF6LOOXR.mjs} +34 -21
  96. package/dist/chunk-NFDR7KTS.mjs +597 -0
  97. package/dist/chunk-NNDEPQJG.mjs +172 -0
  98. package/dist/{chunk-QU3QXUTC.mjs → chunk-NPXT436C.mjs} +89 -70
  99. package/dist/chunk-NRLES2YZ.mjs +174 -0
  100. package/dist/chunk-NTCVAVYZ.mjs +182 -0
  101. package/dist/chunk-O3O5GBBY.mjs +181 -0
  102. package/dist/chunk-O7DJWXII.mjs +112 -0
  103. package/dist/{chunk-CUAXRBKO.mjs → chunk-OP77MPGN.mjs} +22 -12
  104. package/dist/chunk-OTABJT7Z.mjs +61 -0
  105. package/dist/{chunk-HKAZXG74.mjs → chunk-OU2AV7DY.mjs} +110 -23
  106. package/dist/chunk-OZ4WH3GE.mjs +431 -0
  107. package/dist/{chunk-Y3SGFGN6.mjs → chunk-P44HJQNB.mjs} +16 -2
  108. package/dist/chunk-PBF5TEF4.mjs +236 -0
  109. package/dist/chunk-PQPO7XSV.mjs +483 -0
  110. package/dist/chunk-PTKNRNH6.mjs +34 -0
  111. package/dist/chunk-PV237GAZ.mjs +226 -0
  112. package/dist/chunk-Q4TGJNVU.mjs +857 -0
  113. package/dist/chunk-QCRTRRBD.mjs +556 -0
  114. package/dist/{chunk-XT43B7ZI.mjs → chunk-QIGZOYBF.mjs} +28 -13
  115. package/dist/chunk-QUF2UX52.mjs +343 -0
  116. package/dist/chunk-R2VBVZIH.mjs +20 -0
  117. package/dist/chunk-R45ZPU5J.mjs +19 -0
  118. package/dist/chunk-REJVXLW5.mjs +97 -0
  119. package/dist/chunk-RLUBTLOT.mjs +80 -0
  120. package/dist/chunk-RNH2I23I.mjs +341 -0
  121. package/dist/chunk-RUIFGSVN.mjs +141 -0
  122. package/dist/{chunk-WTHWLCRL.mjs → chunk-S37KEELR.mjs} +39 -28
  123. package/dist/chunk-S3B5QPUA.mjs +76 -0
  124. package/dist/chunk-S5GHNXGQ.mjs +350 -0
  125. package/dist/{chunk-54HN5BXW.mjs → chunk-SCN6UULA.mjs} +148 -97
  126. package/dist/chunk-SGKPZW57.mjs +457 -0
  127. package/dist/{chunk-AYFKHWJS.mjs → chunk-SOVB7HJF.mjs} +127 -111
  128. package/dist/{chunk-SDLMB34Y.mjs → chunk-ST4NN6XV.mjs} +5 -3
  129. package/dist/{chunk-ZATZRXMW.mjs → chunk-SUHSOVWP.mjs} +68 -62
  130. package/dist/chunk-TTYKX6G4.mjs +355 -0
  131. package/dist/chunk-UJTAHHQT.mjs +41 -0
  132. package/dist/chunk-UK5NGPTQ.mjs +62 -0
  133. package/dist/chunk-UMJIDEXI.mjs +261 -0
  134. package/dist/chunk-UNT7WJ2M.mjs +943 -0
  135. package/dist/chunk-UOF324U6.mjs +80 -0
  136. package/dist/chunk-UTVZUCKK.mjs +61 -0
  137. package/dist/chunk-UVI5JN47.mjs +863 -0
  138. package/dist/chunk-UWQBY3CL.mjs +331 -0
  139. package/dist/chunk-V6FJYERX.mjs +501 -0
  140. package/dist/chunk-VDBLI5Y3.mjs +33 -0
  141. package/dist/chunk-VE3PZFFT.mjs +161 -0
  142. package/dist/{chunk-R7YZ6FKP.mjs → chunk-VGWFHVJ7.mjs} +231 -207
  143. package/dist/chunk-VW6RNQK4.mjs +152 -0
  144. package/dist/chunk-WBESWSTS.mjs +121 -0
  145. package/dist/chunk-WCIUNNIN.mjs +108 -0
  146. package/dist/chunk-WFLXJOFU.mjs +124 -0
  147. package/dist/chunk-WN6ZHQTI.mjs +129 -0
  148. package/dist/chunk-WPRXOO6N.mjs +90 -0
  149. package/dist/{chunk-XZVQ3PJS.mjs → chunk-WQMOFDAY.mjs} +9 -18
  150. package/dist/chunk-WWDZAWTS.mjs +497 -0
  151. package/dist/chunk-WWZZRB7H.mjs +121 -0
  152. package/dist/chunk-X3KXJKLM.mjs +297 -0
  153. package/dist/chunk-X7NF2HZV.mjs +551 -0
  154. package/dist/{chunk-M6ZPTGBV.mjs → chunk-XAYOEQGB.mjs} +69 -46
  155. package/dist/chunk-XE34TOCS.mjs +294 -0
  156. package/dist/chunk-XI6KQAHW.mjs +256 -0
  157. package/dist/chunk-XYW6RTRB.mjs +217 -0
  158. package/dist/chunk-XZFHPHV5.mjs +75 -0
  159. package/dist/chunk-YDIEWFBM.mjs +361 -0
  160. package/dist/chunk-YDO3V3SK.mjs +70 -0
  161. package/dist/chunk-YUFKPLCK.mjs +320 -0
  162. package/dist/{chunk-CC7IOSNI.mjs → chunk-Z3AD5DZX.mjs} +101 -76
  163. package/dist/chunk-ZG6WST55.mjs +188 -0
  164. package/dist/chunk-ZZJVJUO4.mjs +158 -0
  165. package/dist/components/ActivityFeed.d.mts +2 -0
  166. package/dist/components/ActivityFeed.mjs +13 -12
  167. package/dist/components/Affix.d.mts +1 -2
  168. package/dist/components/Affix.mjs +1 -1
  169. package/dist/components/Alert.d.mts +5 -5
  170. package/dist/components/Alert.mjs +3 -2
  171. package/dist/components/Anchor.d.mts +11 -38
  172. package/dist/components/Anchor.mjs +3 -1
  173. package/dist/components/AreaChart.mjs +11 -9
  174. package/dist/components/AspectRatio.mjs +1 -1
  175. package/dist/components/AutoComplete.d.mts +11 -10
  176. package/dist/components/AutoComplete.mjs +6 -4
  177. package/dist/components/Avatar.d.mts +5 -6
  178. package/dist/components/Avatar.mjs +3 -4
  179. package/dist/components/AvatarGroup.d.mts +2 -3
  180. package/dist/components/AvatarGroup.mjs +2 -3
  181. package/dist/components/BackTop.d.mts +4 -13
  182. package/dist/components/BackTop.mjs +2 -1
  183. package/dist/components/Badge.d.mts +3 -1
  184. package/dist/components/Badge.mjs +1 -3
  185. package/dist/components/BarChart.mjs +11 -9
  186. package/dist/components/Breadcrumb.d.mts +11 -18
  187. package/dist/components/Breadcrumb.mjs +2 -1
  188. package/dist/components/Button.d.mts +3 -2
  189. package/dist/components/Button.mjs +2 -2
  190. package/dist/components/ButtonGroup.mjs +1 -1
  191. package/dist/components/Calendar.d.mts +3 -2
  192. package/dist/components/Calendar.mjs +3 -3
  193. package/dist/components/Card.d.mts +6 -22
  194. package/dist/components/Card.mjs +1 -1
  195. package/dist/components/Carousel.d.mts +1 -24
  196. package/dist/components/Carousel.mjs +3 -4
  197. package/dist/components/Cascader.d.mts +19 -13
  198. package/dist/components/Cascader.mjs +6 -4
  199. package/dist/components/ChartAxis.mjs +1 -1
  200. package/dist/components/ChartCanvas.d.mts +3 -2
  201. package/dist/components/ChartCanvas.mjs +1 -1
  202. package/dist/components/ChartGrid.d.mts +1 -1
  203. package/dist/components/ChartGrid.mjs +1 -1
  204. package/dist/components/ChartLegend.d.mts +3 -10
  205. package/dist/components/ChartLegend.mjs +2 -1
  206. package/dist/components/ChartSeries.d.mts +2 -2
  207. package/dist/components/ChartSeries.mjs +1 -1
  208. package/dist/components/ChartTooltip.d.mts +2 -1
  209. package/dist/components/ChartTooltip.mjs +2 -1
  210. package/dist/components/ChatWindow.d.mts +6 -4
  211. package/dist/components/ChatWindow.mjs +13 -13
  212. package/dist/components/Checkbox.d.mts +3 -40
  213. package/dist/components/Checkbox.mjs +4 -3
  214. package/dist/components/CheckboxGroup.d.mts +3 -19
  215. package/dist/components/CheckboxGroup.mjs +3 -2
  216. package/dist/components/Code.d.mts +3 -1
  217. package/dist/components/Code.mjs +2 -3
  218. package/dist/components/CodeEditor.d.mts +10 -7
  219. package/dist/components/CodeEditor.mjs +4 -1
  220. package/dist/components/Col.d.mts +1 -1
  221. package/dist/components/Col.mjs +1 -2
  222. package/dist/components/Collapse.d.mts +7 -10
  223. package/dist/components/Collapse.mjs +1 -1
  224. package/dist/components/CollapsePanel.d.mts +1 -13
  225. package/dist/components/CollapsePanel.mjs +2 -2
  226. package/dist/components/ColorPicker.d.mts +11 -7
  227. package/dist/components/ColorPicker.mjs +10 -6
  228. package/dist/components/ColorSwatch.d.mts +8 -1
  229. package/dist/components/ColorSwatch.mjs +4 -1
  230. package/dist/components/CommentThread.mjs +12 -12
  231. package/dist/components/ConfigProvider.d.mts +4 -14
  232. package/dist/components/ConfigProvider.mjs +1 -2
  233. package/dist/components/Container.d.mts +2 -2
  234. package/dist/components/Container.mjs +1 -1
  235. package/dist/components/Content.d.mts +2 -1
  236. package/dist/components/Content.mjs +2 -1
  237. package/dist/components/ContextMenu.d.mts +3 -2
  238. package/dist/components/ContextMenu.mjs +3 -2
  239. package/dist/components/Countdown.d.mts +7 -1
  240. package/dist/components/Countdown.mjs +1 -1
  241. package/dist/components/CronEditor.d.mts +4 -6
  242. package/dist/components/CronEditor.mjs +4 -3
  243. package/dist/components/CropUpload.d.mts +6 -39
  244. package/dist/components/CropUpload.mjs +11 -8
  245. package/dist/components/DataExport.d.mts +8 -4
  246. package/dist/components/DataExport.mjs +6 -5
  247. package/dist/components/DataTableWithToolbar.d.mts +20 -20
  248. package/dist/components/DataTableWithToolbar.mjs +21 -19
  249. package/dist/components/DatePicker.d.mts +11 -5
  250. package/dist/components/DatePicker.mjs +7 -5
  251. package/dist/components/Descriptions.d.mts +5 -43
  252. package/dist/components/Descriptions.mjs +2 -1
  253. package/dist/components/Divider.d.mts +3 -3
  254. package/dist/components/Divider.mjs +1 -1
  255. package/dist/components/DonutChart.d.mts +0 -6
  256. package/dist/components/DonutChart.mjs +9 -6
  257. package/dist/components/Drawer.d.mts +1 -6
  258. package/dist/components/Drawer.mjs +4 -4
  259. package/dist/components/Dropdown.d.mts +4 -18
  260. package/dist/components/Dropdown.mjs +4 -2
  261. package/dist/components/Empty.d.mts +1 -1
  262. package/dist/components/Empty.mjs +2 -3
  263. package/dist/components/FileManager.d.mts +2 -1
  264. package/dist/components/FileManager.mjs +4 -4
  265. package/dist/components/FloatButton.d.mts +5 -9
  266. package/dist/components/FloatButton.mjs +9 -3
  267. package/dist/components/Footer.d.mts +2 -1
  268. package/dist/components/Footer.mjs +1 -1
  269. package/dist/components/Form.d.mts +15 -64
  270. package/dist/components/Form.mjs +2 -3
  271. package/dist/components/FormItem.d.mts +1 -6
  272. package/dist/components/FormItem.mjs +4 -5
  273. package/dist/components/FormItemContext.d.mts +9 -1
  274. package/dist/components/FormWizard.d.mts +9 -2
  275. package/dist/components/FormWizard.mjs +8 -6
  276. package/dist/components/FunnelChart.d.mts +1 -2
  277. package/dist/components/FunnelChart.mjs +12 -7
  278. package/dist/components/Gantt.d.mts +1 -1
  279. package/dist/components/Gantt.mjs +3 -2
  280. package/dist/components/GaugeChart.d.mts +1 -1
  281. package/dist/components/GaugeChart.mjs +9 -5
  282. package/dist/components/Header.d.mts +1 -1
  283. package/dist/components/Header.mjs +1 -1
  284. package/dist/components/HeatmapChart.d.mts +2 -2
  285. package/dist/components/HeatmapChart.mjs +11 -6
  286. package/dist/components/Highlight.mjs +1 -1
  287. package/dist/components/Icon.d.mts +1 -1
  288. package/dist/components/Icon.mjs +1 -1
  289. package/dist/components/Image.d.mts +4 -2
  290. package/dist/components/Image.mjs +7 -7
  291. package/dist/components/ImageAnnotation.d.mts +3 -2
  292. package/dist/components/ImageAnnotation.mjs +3 -3
  293. package/dist/components/ImageCompare.mjs +3 -1
  294. package/dist/components/ImageCropper.d.mts +2 -7
  295. package/dist/components/ImageCropper.mjs +3 -3
  296. package/dist/components/ImageGroup.d.mts +6 -12
  297. package/dist/components/ImageGroup.mjs +4 -5
  298. package/dist/components/ImagePreview.d.mts +2 -12
  299. package/dist/components/ImagePreview.mjs +3 -4
  300. package/dist/components/ImageViewer.d.mts +5 -0
  301. package/dist/components/ImageViewer.mjs +4 -3
  302. package/dist/components/InfiniteScroll.d.mts +2 -12
  303. package/dist/components/InfiniteScroll.mjs +2 -3
  304. package/dist/components/Input.d.mts +3 -30
  305. package/dist/components/Input.mjs +5 -3
  306. package/dist/components/InputGroup.d.mts +0 -1
  307. package/dist/components/InputGroup.mjs +1 -1
  308. package/dist/components/InputNumber.d.mts +4 -13
  309. package/dist/components/InputNumber.mjs +5 -3
  310. package/dist/components/InputOTP.d.mts +4 -22
  311. package/dist/components/InputOTP.mjs +3 -4
  312. package/dist/components/Kanban.d.mts +13 -46
  313. package/dist/components/Kanban.mjs +4 -4
  314. package/dist/components/Kbd.mjs +1 -1
  315. package/dist/components/Layout.d.mts +1 -1
  316. package/dist/components/Layout.mjs +2 -1
  317. package/dist/components/LineChart.mjs +11 -9
  318. package/dist/components/Link.d.mts +1 -1
  319. package/dist/components/Link.mjs +1 -1
  320. package/dist/components/List.d.mts +8 -111
  321. package/dist/components/List.mjs +12 -7
  322. package/dist/components/Loading.d.mts +1 -0
  323. package/dist/components/Loading.mjs +3 -4
  324. package/dist/components/LoadingBar.d.mts +2 -3
  325. package/dist/components/LoadingBar.mjs +56 -83
  326. package/dist/components/LoadingBarContainer.d.mts +1 -1
  327. package/dist/components/LoadingBarContainer.mjs +2 -1
  328. package/dist/components/LoadingBarRoot.d.mts +3 -3
  329. package/dist/components/LoadingBarRoot.mjs +1 -1
  330. package/dist/components/MarkdownEditor.d.mts +7 -4
  331. package/dist/components/MarkdownEditor.mjs +4 -4
  332. package/dist/components/Marquee.mjs +1 -1
  333. package/dist/components/MaskInput.d.mts +3 -23
  334. package/dist/components/MaskInput.mjs +5 -2
  335. package/dist/components/Masonry.d.mts +0 -1
  336. package/dist/components/Masonry.mjs +1 -1
  337. package/dist/components/Mentions.d.mts +10 -10
  338. package/dist/components/Mentions.mjs +6 -2
  339. package/dist/components/Menu.d.mts +16 -59
  340. package/dist/components/Menu.mjs +6 -2
  341. package/dist/components/Message.d.mts +1 -2
  342. package/dist/components/Message.mjs +55 -120
  343. package/dist/components/MessageContainer.d.mts +6 -0
  344. package/dist/components/MessageContainer.mjs +4 -2
  345. package/dist/components/MessageRoot.d.mts +2 -2
  346. package/dist/components/MessageRoot.mjs +1 -1
  347. package/dist/components/Modal.d.mts +7 -23
  348. package/dist/components/Modal.mjs +6 -6
  349. package/dist/components/NavigationMenu.d.mts +11 -7
  350. package/dist/components/NavigationMenu.mjs +3 -2
  351. package/dist/components/Notification.d.mts +1 -2
  352. package/dist/components/Notification.mjs +72 -163
  353. package/dist/components/NotificationCenter.mjs +14 -13
  354. package/dist/components/NotificationContainer.d.mts +6 -0
  355. package/dist/components/NotificationContainer.mjs +4 -2
  356. package/dist/components/NotificationRoot.d.mts +3 -3
  357. package/dist/components/NotificationRoot.mjs +1 -1
  358. package/dist/components/NumberKeyboard.d.mts +4 -4
  359. package/dist/components/NumberKeyboard.mjs +5 -3
  360. package/dist/components/OrgChart.mjs +3 -2
  361. package/dist/components/PageHeader.d.mts +3 -1
  362. package/dist/components/PageHeader.mjs +5 -4
  363. package/dist/components/Pagination.mjs +2 -3
  364. package/dist/components/PieChart.mjs +8 -5
  365. package/dist/components/Popconfirm.d.mts +18 -7
  366. package/dist/components/Popconfirm.mjs +8 -3
  367. package/dist/components/Popover.d.mts +14 -5
  368. package/dist/components/Popover.mjs +5 -3
  369. package/dist/components/PrintLayout.d.mts +7 -12
  370. package/dist/components/PrintLayout.mjs +2 -1
  371. package/dist/components/Progress.mjs +2 -1
  372. package/dist/components/QRCode.d.mts +3 -11
  373. package/dist/components/QRCode.mjs +2 -3
  374. package/dist/components/RadarChart.d.mts +0 -16
  375. package/dist/components/RadarChart.mjs +8 -6
  376. package/dist/components/Radio.d.mts +2 -11
  377. package/dist/components/Radio.mjs +4 -3
  378. package/dist/components/RadioGroup.d.mts +3 -11
  379. package/dist/components/RadioGroup.mjs +3 -2
  380. package/dist/components/Rate.d.mts +4 -7
  381. package/dist/components/Rate.mjs +3 -3
  382. package/dist/components/Resizable.d.mts +6 -2
  383. package/dist/components/Resizable.mjs +3 -1
  384. package/dist/components/Result.d.mts +6 -2
  385. package/dist/components/Result.mjs +2 -2
  386. package/dist/components/RichTextEditor.d.mts +6 -16
  387. package/dist/components/RichTextEditor.mjs +4 -4
  388. package/dist/components/Row.d.mts +2 -6
  389. package/dist/components/Row.mjs +3 -5
  390. package/dist/components/ScatterChart.mjs +11 -11
  391. package/dist/components/ScrollArea.d.mts +3 -2
  392. package/dist/components/ScrollArea.mjs +2 -1
  393. package/dist/components/ScrollSpy.d.mts +5 -4
  394. package/dist/components/ScrollSpy.mjs +3 -1
  395. package/dist/components/Segmented.d.mts +2 -3
  396. package/dist/components/Segmented.mjs +3 -1
  397. package/dist/components/Select.d.mts +18 -5
  398. package/dist/components/Select.mjs +6 -4
  399. package/dist/components/Sidebar.d.mts +1 -1
  400. package/dist/components/Sidebar.mjs +3 -1
  401. package/dist/components/Signature.d.mts +5 -2
  402. package/dist/components/Signature.mjs +4 -3
  403. package/dist/components/Skeleton.d.mts +1 -1
  404. package/dist/components/Skeleton.mjs +1 -1
  405. package/dist/components/Slider.d.mts +3 -5
  406. package/dist/components/Slider.mjs +4 -1
  407. package/dist/components/Space.d.mts +5 -1
  408. package/dist/components/Space.mjs +1 -1
  409. package/dist/components/SplitButton.d.mts +1 -21
  410. package/dist/components/SplitButton.mjs +8 -5
  411. package/dist/components/Splitter.d.mts +2 -2
  412. package/dist/components/Splitter.mjs +2 -1
  413. package/dist/components/Spotlight.d.mts +4 -3
  414. package/dist/components/Spotlight.mjs +4 -5
  415. package/dist/components/Statistic.d.mts +5 -2
  416. package/dist/components/Statistic.mjs +2 -1
  417. package/dist/components/Stepper.d.mts +3 -5
  418. package/dist/components/Stepper.mjs +4 -2
  419. package/dist/components/Steps.d.mts +4 -1
  420. package/dist/components/Steps.mjs +2 -1
  421. package/dist/components/SunburstChart.d.mts +1 -2
  422. package/dist/components/SunburstChart.mjs +12 -7
  423. package/dist/components/Switch.d.mts +3 -8
  424. package/dist/components/Switch.mjs +3 -2
  425. package/dist/components/Table.d.mts +2 -2
  426. package/dist/components/Table.mjs +18 -12
  427. package/dist/components/Tabs.d.mts +6 -94
  428. package/dist/components/Tabs.mjs +2 -3
  429. package/dist/components/Tag.d.mts +13 -2
  430. package/dist/components/Tag.mjs +2 -3
  431. package/dist/components/TagsInput.d.mts +3 -26
  432. package/dist/components/TagsInput.mjs +6 -5
  433. package/dist/components/TaskBoard.d.mts +1 -3
  434. package/dist/components/TaskBoard.mjs +3 -3
  435. package/dist/components/Text.d.mts +4 -2
  436. package/dist/components/Text.mjs +1 -1
  437. package/dist/components/Textarea.d.mts +3 -0
  438. package/dist/components/Textarea.mjs +4 -3
  439. package/dist/components/TimePicker.d.mts +22 -19
  440. package/dist/components/TimePicker.mjs +6 -5
  441. package/dist/components/Timeline.d.mts +7 -27
  442. package/dist/components/Timeline.mjs +2 -3
  443. package/dist/components/Tooltip.d.mts +12 -2
  444. package/dist/components/Tooltip.mjs +5 -3
  445. package/dist/components/Tour.d.mts +8 -4
  446. package/dist/components/Tour.mjs +7 -5
  447. package/dist/components/Transfer.d.mts +8 -10
  448. package/dist/components/Transfer.mjs +7 -3
  449. package/dist/components/Tree.d.mts +30 -175
  450. package/dist/components/Tree.mjs +8 -4
  451. package/dist/components/TreeMapChart.d.mts +1 -2
  452. package/dist/components/TreeMapChart.mjs +12 -7
  453. package/dist/components/TreeSelect.d.mts +18 -9
  454. package/dist/components/TreeSelect.mjs +7 -5
  455. package/dist/components/Upload.d.mts +9 -9
  456. package/dist/components/Upload.mjs +9 -4
  457. package/dist/components/VirtualList.d.mts +7 -4
  458. package/dist/components/VirtualList.mjs +1 -1
  459. package/dist/components/VirtualTable.d.mts +8 -6
  460. package/dist/components/VirtualTable.mjs +2 -3
  461. package/dist/components/Watermark.d.mts +1 -1
  462. package/dist/components/Watermark.mjs +1 -1
  463. package/dist/hooks/useChartInteraction.d.mts +5 -56
  464. package/dist/hooks/useChartInteraction.mjs +1 -1
  465. package/dist/hooks/useControlledState.d.mts +25 -22
  466. package/dist/hooks/useControlledState.mjs +1 -1
  467. package/dist/hooks/useDrag.d.mts +3 -21
  468. package/dist/hooks/useDrag.mjs +1 -1
  469. package/dist/hooks/useFormController.d.mts +3 -16
  470. package/dist/hooks/useFormController.mjs +1 -1
  471. package/dist/hooks/useResponsiveChartSize.d.mts +15 -0
  472. package/dist/hooks/useResponsiveChartSize.mjs +6 -0
  473. package/dist/index.d.mts +20 -17
  474. package/dist/index.mjs +1387 -200
  475. package/dist/types-C11UWmeK.d.mts +10 -0
  476. package/package.json +23 -8
  477. package/dist/chunk-246DAUEF.mjs +0 -181
  478. package/dist/chunk-2HKFQ74Z.mjs +0 -127
  479. package/dist/chunk-2JYJPNW3.mjs +0 -280
  480. package/dist/chunk-32MCQMBJ.mjs +0 -332
  481. package/dist/chunk-3G5EJRD4.mjs +0 -152
  482. package/dist/chunk-3GPGSNOQ.mjs +0 -258
  483. package/dist/chunk-3LACOSJQ.mjs +0 -65
  484. package/dist/chunk-3LDDXHW2.mjs +0 -217
  485. package/dist/chunk-3O3AQLNS.mjs +0 -172
  486. package/dist/chunk-3QNIFKVF.mjs +0 -232
  487. package/dist/chunk-5P5M656V.mjs +0 -81
  488. package/dist/chunk-5SEMRHBD.mjs +0 -327
  489. package/dist/chunk-5TE7KLE5.mjs +0 -92
  490. package/dist/chunk-5ZYZQXEM.mjs +0 -188
  491. package/dist/chunk-677VSTPW.mjs +0 -72
  492. package/dist/chunk-6H5Y7Y6E.mjs +0 -148
  493. package/dist/chunk-6RMBUZZE.mjs +0 -240
  494. package/dist/chunk-6SEPT4C5.mjs +0 -57
  495. package/dist/chunk-6UIVNRAR.mjs +0 -188
  496. package/dist/chunk-72CJNKDY.mjs +0 -222
  497. package/dist/chunk-AKNWUI7K.mjs +0 -82
  498. package/dist/chunk-ALSOPYM5.mjs +0 -705
  499. package/dist/chunk-AYHP2OAX.mjs +0 -14
  500. package/dist/chunk-BBK37UMR.mjs +0 -134
  501. package/dist/chunk-BUXHI6UK.mjs +0 -701
  502. package/dist/chunk-BXAH2GH3.mjs +0 -64
  503. package/dist/chunk-BYD7EAWK.mjs +0 -211
  504. package/dist/chunk-CFQKUMZV.mjs +0 -26
  505. package/dist/chunk-CRIEUKMD.mjs +0 -322
  506. package/dist/chunk-CT36XD5I.mjs +0 -412
  507. package/dist/chunk-CVYA3MI2.mjs +0 -653
  508. package/dist/chunk-D3KP72UC.mjs +0 -802
  509. package/dist/chunk-EAAWB3CK.mjs +0 -142
  510. package/dist/chunk-EG7EMDKK.mjs +0 -108
  511. package/dist/chunk-EPWAROC2.mjs +0 -73
  512. package/dist/chunk-FDKWHP2K.mjs +0 -352
  513. package/dist/chunk-FQS24AUH.mjs +0 -241
  514. package/dist/chunk-GBEDWXLL.mjs +0 -127
  515. package/dist/chunk-GOQ6ZG7H.mjs +0 -67
  516. package/dist/chunk-GV4F6X3C.mjs +0 -266
  517. package/dist/chunk-HAXRHSCN.mjs +0 -291
  518. package/dist/chunk-HLS4CHWX.mjs +0 -30
  519. package/dist/chunk-HS6KUPTI.mjs +0 -177
  520. package/dist/chunk-I2BENK5X.mjs +0 -149
  521. package/dist/chunk-I5TELDUV.mjs +0 -78
  522. package/dist/chunk-IIWUQK2P.mjs +0 -109
  523. package/dist/chunk-IXV5YBCZ.mjs +0 -65
  524. package/dist/chunk-J76R2S62.mjs +0 -161
  525. package/dist/chunk-JZZPLKTW.mjs +0 -173
  526. package/dist/chunk-KCPGFO5R.mjs +0 -51
  527. package/dist/chunk-KDURW5AS.mjs +0 -231
  528. package/dist/chunk-KKN7KLTB.mjs +0 -84
  529. package/dist/chunk-KQ4ZKXXN.mjs +0 -118
  530. package/dist/chunk-KRDHM5KB.mjs +0 -259
  531. package/dist/chunk-MEFARVQI.mjs +0 -25
  532. package/dist/chunk-MFPVVGNA.mjs +0 -248
  533. package/dist/chunk-MJVSZ2UJ.mjs +0 -276
  534. package/dist/chunk-MOWK7CND.mjs +0 -120
  535. package/dist/chunk-MYI3FPG4.mjs +0 -251
  536. package/dist/chunk-NADODEZX.mjs +0 -285
  537. package/dist/chunk-NJWTZ5MO.mjs +0 -688
  538. package/dist/chunk-NLGLBTSM.mjs +0 -138
  539. package/dist/chunk-NXJMVH26.mjs +0 -194
  540. package/dist/chunk-O6VYD4E4.mjs +0 -508
  541. package/dist/chunk-O7TV5OKS.mjs +0 -143
  542. package/dist/chunk-OJ6SHHOZ.mjs +0 -234
  543. package/dist/chunk-OL3RXYMG.mjs +0 -46
  544. package/dist/chunk-OO562MFD.mjs +0 -80
  545. package/dist/chunk-OPHYFC5W.mjs +0 -52
  546. package/dist/chunk-OQ6Z6U7R.mjs +0 -135
  547. package/dist/chunk-OQLP452R.mjs +0 -468
  548. package/dist/chunk-OXGAZPPS.mjs +0 -147
  549. package/dist/chunk-OZ5XLR22.mjs +0 -182
  550. package/dist/chunk-PAS347EX.mjs +0 -109
  551. package/dist/chunk-PD6Q36OO.mjs +0 -471
  552. package/dist/chunk-PMQJ6AYT.mjs +0 -100
  553. package/dist/chunk-PY2VUNEJ.mjs +0 -494
  554. package/dist/chunk-Q5JTIICP.mjs +0 -108
  555. package/dist/chunk-QOAOOD53.mjs +0 -318
  556. package/dist/chunk-RE5ZLA5D.mjs +0 -268
  557. package/dist/chunk-RGVU4EMA.mjs +0 -531
  558. package/dist/chunk-RQSQXQN6.mjs +0 -100
  559. package/dist/chunk-RRGPDFDI.mjs +0 -255
  560. package/dist/chunk-RUQ3F3MV.mjs +0 -333
  561. package/dist/chunk-S2V3HGLZ.mjs +0 -733
  562. package/dist/chunk-SEOG5AGS.mjs +0 -72
  563. package/dist/chunk-SHT4TU3T.mjs +0 -32
  564. package/dist/chunk-SJ5RFU2O.mjs +0 -21
  565. package/dist/chunk-SPIPFOGD.mjs +0 -322
  566. package/dist/chunk-SVIJ2UZA.mjs +0 -186
  567. package/dist/chunk-SXWEFZOF.mjs +0 -766
  568. package/dist/chunk-TDFLUDRM.mjs +0 -283
  569. package/dist/chunk-TEVEXDY2.mjs +0 -570
  570. package/dist/chunk-TGXBCKOU.mjs +0 -35
  571. package/dist/chunk-TO6MZFNQ.mjs +0 -186
  572. package/dist/chunk-TULQETJ5.mjs +0 -45
  573. package/dist/chunk-U2ZXZ2KQ.mjs +0 -213
  574. package/dist/chunk-U7RLVY67.mjs +0 -303
  575. package/dist/chunk-UHK2ISKR.mjs +0 -282
  576. package/dist/chunk-UYQBXVFE.mjs +0 -72
  577. package/dist/chunk-V7HJ5HLC.mjs +0 -412
  578. package/dist/chunk-VSFDT2RS.mjs +0 -46
  579. package/dist/chunk-W7BC4I2Y.mjs +0 -68
  580. package/dist/chunk-WK45IRP7.mjs +0 -93
  581. package/dist/chunk-WX5VUIGT.mjs +0 -22
  582. package/dist/chunk-X6C6MNG5.mjs +0 -240
  583. package/dist/chunk-XVHTJQ4T.mjs +0 -140
  584. package/dist/chunk-Y5X3G2LD.mjs +0 -115
  585. package/dist/chunk-Y6UH3EKE.mjs +0 -328
  586. package/dist/chunk-YN5ZIWCE.mjs +0 -19
  587. package/dist/chunk-YORCCCQX.mjs +0 -83
  588. package/dist/chunk-YSIXURBW.mjs +0 -116
  589. package/dist/chunk-Z23KOLNU.mjs +0 -326
  590. package/dist/chunk-Z3CRHC5F.mjs +0 -430
  591. package/dist/types-0oVwMXtR.d.mts +0 -33
  592. /package/dist/{chunk-5JETWHLJ.mjs → chunk-7P4R3NVO.mjs} +0 -0
@@ -0,0 +1,320 @@
1
+ import {
2
+ useFormContext
3
+ } from "./chunk-6NJMDDL6.mjs";
4
+ import {
5
+ FormItemControlProvider
6
+ } from "./chunk-F6T3OLTQ.mjs";
7
+ import {
8
+ renderOverlayPortal,
9
+ useAnchoredOverlay
10
+ } from "./chunk-OU2AV7DY.mjs";
11
+
12
+ // src/components/FormItem.tsx
13
+ import React, { useMemo, useEffect, useState, useCallback, useId, useRef } from "react";
14
+ import {
15
+ classNames,
16
+ devWarn,
17
+ extractFormChangeValue,
18
+ getFormItemAsteriskClasses,
19
+ getFormItemClasses,
20
+ getFormItemContentClasses,
21
+ getFormItemErrorBlockClasses,
22
+ getFormItemErrorClasses,
23
+ getFormItemErrorPopupClasses,
24
+ getFormItemFieldClasses,
25
+ getFormItemLabelClasses,
26
+ hasRequiredRule,
27
+ isFormItemGroupControl,
28
+ mergeAriaDescribedBy
29
+ } from "@expcat/tigercat-core";
30
+ import { jsx, jsxs } from "react/jsx-runtime";
31
+ var FIELD_CLASSES = getFormItemFieldClasses();
32
+ var ASTERISK_CLASSES = getFormItemAsteriskClasses();
33
+ var FormItem = ({
34
+ name,
35
+ label,
36
+ labelWidth,
37
+ required,
38
+ rules,
39
+ error: controlledError,
40
+ showMessage = true,
41
+ errorDisplayMode = "inline",
42
+ size,
43
+ children,
44
+ className,
45
+ style,
46
+ condition,
47
+ ...rest
48
+ }) => {
49
+ const formContext = useFormContext();
50
+ const [shakeTrigger, setShakeTrigger] = useState(0);
51
+ const [popupActive, setPopupActive] = useState(false);
52
+ const prevFormErrorRef = useRef("");
53
+ const contentRef = useRef(null);
54
+ const errorRef = useRef(null);
55
+ const reactId = useId();
56
+ const baseId = `tiger-form-item-${reactId}`;
57
+ const labelId = `${baseId}-label`;
58
+ const fieldId = `${baseId}-field`;
59
+ const errorId = `${baseId}-error`;
60
+ const actualSize = size || formContext?.size || "md";
61
+ const labelPosition = formContext?.labelPosition || "left";
62
+ const labelAlign = formContext?.labelAlign;
63
+ const conditionState = useMemo(() => {
64
+ if (!name || !formContext) {
65
+ return { shown: true, disabled: false, required: false };
66
+ }
67
+ return formContext.getFieldConditionState(name, condition);
68
+ }, [name, formContext, condition]);
69
+ const actualLabelWidth = useMemo(() => {
70
+ const width = labelWidth || formContext?.labelWidth;
71
+ if (typeof width === "number") {
72
+ return `${width}px`;
73
+ }
74
+ return width;
75
+ }, [labelWidth, formContext?.labelWidth]);
76
+ const fieldIsRequired = useMemo(() => {
77
+ if (required !== void 0) return required;
78
+ if (hasRequiredRule(rules)) return true;
79
+ if (name && hasRequiredRule(formContext?.rules?.[name])) return true;
80
+ return conditionState.required;
81
+ }, [required, rules, name, formContext?.rules, conditionState.required]);
82
+ const showAsterisk = fieldIsRequired && (formContext?.showRequiredAsterisk ?? true);
83
+ const formError = name ? formContext?.errorsByField[name] : void 0;
84
+ const errorMessage = controlledError !== void 0 ? controlledError : formError ?? "";
85
+ const hasError = !!errorMessage;
86
+ useEffect(() => {
87
+ if (errorMessage && errorMessage !== prevFormErrorRef.current) {
88
+ setShakeTrigger((prev) => prev + 1);
89
+ }
90
+ prevFormErrorRef.current = errorMessage;
91
+ }, [errorMessage]);
92
+ useEffect(() => {
93
+ if (!name || !formContext) {
94
+ return;
95
+ }
96
+ formContext.registerFieldRules(name, rules);
97
+ formContext.registerFieldCondition(name, condition);
98
+ return () => {
99
+ formContext.registerFieldRules(name, void 0);
100
+ formContext.registerFieldCondition(name, void 0);
101
+ };
102
+ }, [name, rules, condition, formContext]);
103
+ const handleBlur = useCallback(() => {
104
+ if (name && formContext) {
105
+ formContext.validateField(name, rules, "blur");
106
+ }
107
+ }, [name, formContext, rules]);
108
+ const handleValueChange = useCallback(
109
+ (next) => {
110
+ if (!name || !formContext) return;
111
+ formContext.updateValue(name, next);
112
+ formContext.validateField(name, rules, "change");
113
+ },
114
+ [name, formContext, rules]
115
+ );
116
+ const handleNativeChange = useCallback(
117
+ (argument) => {
118
+ const extracted = extractFormChangeValue(argument);
119
+ if (extracted.found) {
120
+ handleValueChange(extracted.value);
121
+ } else if (name && formContext) {
122
+ formContext.validateField(name, rules, "change");
123
+ }
124
+ },
125
+ [handleValueChange, name, formContext, rules]
126
+ );
127
+ const effectiveShowMessage = showMessage && (formContext?.inlineMessage ?? true);
128
+ const popupErrorVisible = effectiveShowMessage && hasError && errorDisplayMode === "popup" && popupActive;
129
+ const overlay = useAnchoredOverlay({
130
+ enabled: popupErrorVisible,
131
+ referenceRef: contentRef,
132
+ floatingRef: errorRef,
133
+ placement: "bottom-start",
134
+ offset: 4
135
+ });
136
+ const describedById = effectiveShowMessage && hasError ? errorId : void 0;
137
+ const fieldValue = name ? formContext?.getFieldValue(name) : void 0;
138
+ const controlDisabled = Boolean(
139
+ formContext?.disabled || formContext?.loading || conditionState.disabled
140
+ );
141
+ const childArray = React.Children.toArray(children);
142
+ const onlyChild = childArray.length === 1 ? childArray[0] : null;
143
+ const isNativeElement = React.isValidElement(onlyChild) && typeof onlyChild.type === "string";
144
+ const nativeId = isNativeElement ? onlyChild.props.id : void 0;
145
+ const effectiveFieldId = nativeId ?? fieldId;
146
+ const useGroup = childArray.length !== 1;
147
+ const isGroupControl = React.isValidElement(onlyChild) && isFormItemGroupControl(onlyChild.type);
148
+ const enhancedChild = useMemo(() => {
149
+ if (!isNativeElement || !React.isValidElement(onlyChild)) {
150
+ return children;
151
+ }
152
+ const nativeType = typeof onlyChild.props.type === "string" ? onlyChild.props.type.toLowerCase() : "";
153
+ const nextProps = {
154
+ id: effectiveFieldId,
155
+ name: onlyChild.props.name ?? name,
156
+ "aria-invalid": hasError ? true : onlyChild.props["aria-invalid"],
157
+ "aria-required": fieldIsRequired ? true : onlyChild.props["aria-required"],
158
+ disabled: controlDisabled ? true : onlyChild.props.disabled,
159
+ "aria-describedby": mergeAriaDescribedBy(onlyChild.props["aria-describedby"], describedById),
160
+ onBlur: (event) => {
161
+ onlyChild.props.onBlur?.(event);
162
+ handleBlur();
163
+ },
164
+ onChange: (event) => {
165
+ onlyChild.props.onChange?.(event);
166
+ handleNativeChange(event);
167
+ }
168
+ };
169
+ if (nativeType === "checkbox") {
170
+ nextProps.checked = Boolean(fieldValue);
171
+ } else if (nativeType === "radio") {
172
+ nextProps.checked = onlyChild.props.value === fieldValue;
173
+ } else if (fieldValue !== void 0) {
174
+ nextProps.value = fieldValue;
175
+ } else {
176
+ nextProps.value = onlyChild.props.value ?? "";
177
+ }
178
+ return React.cloneElement(onlyChild, nextProps);
179
+ }, [
180
+ isNativeElement,
181
+ onlyChild,
182
+ children,
183
+ effectiveFieldId,
184
+ name,
185
+ hasError,
186
+ fieldIsRequired,
187
+ controlDisabled,
188
+ describedById,
189
+ handleBlur,
190
+ handleNativeChange,
191
+ fieldValue
192
+ ]);
193
+ useEffect(() => {
194
+ if (useGroup && name) {
195
+ devWarn(
196
+ "FormItem.multipleControls",
197
+ "FormItem supports a single field control. Extra children do not receive value or validation bindings."
198
+ );
199
+ }
200
+ }, [useGroup, name]);
201
+ const controlValue = useMemo(
202
+ () => ({
203
+ id: effectiveFieldId,
204
+ labelId: label ? labelId : void 0,
205
+ name,
206
+ status: hasError ? "error" : void 0,
207
+ shakeTrigger: hasError ? shakeTrigger : void 0,
208
+ disabled: controlDisabled,
209
+ describedBy: describedById,
210
+ required: fieldIsRequired,
211
+ value: name ? fieldValue ?? "" : fieldValue,
212
+ onChange: handleValueChange,
213
+ onBlur: handleBlur
214
+ }),
215
+ [
216
+ effectiveFieldId,
217
+ label,
218
+ labelId,
219
+ name,
220
+ hasError,
221
+ shakeTrigger,
222
+ controlDisabled,
223
+ describedById,
224
+ fieldIsRequired,
225
+ fieldValue,
226
+ handleValueChange,
227
+ handleBlur
228
+ ]
229
+ );
230
+ const formItemClasses = classNames(
231
+ getFormItemClasses({
232
+ size: actualSize,
233
+ labelPosition,
234
+ hasError,
235
+ disabled: controlDisabled
236
+ }),
237
+ className
238
+ );
239
+ const labelClasses = getFormItemLabelClasses({
240
+ size: actualSize,
241
+ labelAlign,
242
+ labelPosition,
243
+ isRequired: showAsterisk
244
+ });
245
+ const labelStyles = labelPosition === "top" ? {} : actualLabelWidth ? { width: actualLabelWidth } : {};
246
+ const errorNode = (() => {
247
+ if (!effectiveShowMessage) return null;
248
+ if (errorDisplayMode === "block" && !hasError) return null;
249
+ if (errorDisplayMode === "popup" && !hasError) return null;
250
+ const errorClass = errorDisplayMode === "block" ? getFormItemErrorBlockClasses(actualSize) : errorDisplayMode === "popup" ? classNames(getFormItemErrorPopupClasses(), overlay.floatingClasses) : getFormItemErrorClasses(actualSize, { visible: hasError });
251
+ return renderOverlayPortal(
252
+ /* @__PURE__ */ jsx(
253
+ "div",
254
+ {
255
+ ref: errorRef,
256
+ id: hasError ? errorId : void 0,
257
+ role: hasError ? "alert" : void 0,
258
+ className: errorClass,
259
+ style: errorDisplayMode === "popup" ? overlay.floatingStyles : void 0,
260
+ "data-positioned": errorDisplayMode === "popup" ? overlay.positioned : void 0,
261
+ "aria-hidden": hasError ? void 0 : true,
262
+ children: hasError ? errorMessage : ""
263
+ }
264
+ ),
265
+ overlay.target,
266
+ errorDisplayMode !== "popup"
267
+ );
268
+ })();
269
+ if (!conditionState.shown) {
270
+ return null;
271
+ }
272
+ const fieldWrapperProps = useGroup ? {
273
+ role: "group",
274
+ "aria-labelledby": label ? labelId : void 0,
275
+ "aria-describedby": describedById,
276
+ "aria-invalid": hasError ? true : void 0
277
+ } : {};
278
+ return /* @__PURE__ */ jsxs("div", { className: formItemClasses, style, ...rest, children: [
279
+ label && /* @__PURE__ */ jsxs(
280
+ "label",
281
+ {
282
+ id: labelId,
283
+ className: labelClasses,
284
+ style: labelStyles,
285
+ htmlFor: isGroupControl ? void 0 : effectiveFieldId,
286
+ children: [
287
+ showAsterisk && /* @__PURE__ */ jsx("span", { className: ASTERISK_CLASSES, children: "*" }),
288
+ label
289
+ ]
290
+ }
291
+ ),
292
+ /* @__PURE__ */ jsxs(
293
+ "div",
294
+ {
295
+ ref: contentRef,
296
+ className: classNames(
297
+ getFormItemContentClasses(labelPosition),
298
+ errorDisplayMode === "popup" && "relative"
299
+ ),
300
+ onMouseEnter: () => setPopupActive(true),
301
+ onMouseLeave: () => setPopupActive(false),
302
+ onFocus: () => setPopupActive(true),
303
+ onBlur: (event) => {
304
+ if (!event.currentTarget.contains(event.relatedTarget)) {
305
+ setPopupActive(false);
306
+ }
307
+ },
308
+ children: [
309
+ /* @__PURE__ */ jsx("div", { className: FIELD_CLASSES, ...fieldWrapperProps, children: /* @__PURE__ */ jsx(FormItemControlProvider, { value: controlValue, children: enhancedChild }) }),
310
+ errorNode
311
+ ]
312
+ }
313
+ )
314
+ ] });
315
+ };
316
+ FormItem.displayName = "TigerFormItem";
317
+
318
+ export {
319
+ FormItem
320
+ };
@@ -1,25 +1,26 @@
1
1
  import {
2
- renderBodyPortal,
2
+ composeRefs
3
+ } from "./chunk-WWZZRB7H.mjs";
4
+ import {
5
+ renderOverlayPortal,
3
6
  useBodyScrollLock,
4
7
  useEscapeKey,
5
- useFocusTrap
6
- } from "./chunk-HKAZXG74.mjs";
8
+ useFocusTrap,
9
+ useOverlayPortalTarget
10
+ } from "./chunk-OU2AV7DY.mjs";
7
11
  import {
8
12
  useTigerConfig
9
- } from "./chunk-YSIXURBW.mjs";
13
+ } from "./chunk-RUIFGSVN.mjs";
10
14
 
11
15
  // src/components/Drawer.tsx
12
16
  import React, { useCallback, useEffect, useId, useMemo, useRef } from "react";
13
17
  import {
14
- ANIMATION_DURATION_MS,
15
- captureActiveElement,
16
18
  classNames,
17
19
  closeIconViewBox,
18
20
  closeIconPathD,
19
21
  closeIconPathStrokeLinecap,
20
22
  closeIconPathStrokeLinejoin,
21
23
  closeIconPathStrokeWidth,
22
- focusFirst,
23
24
  getDrawerMaskClasses,
24
25
  getDrawerContainerClasses,
25
26
  getDrawerPanelClasses,
@@ -30,13 +31,20 @@ import {
30
31
  getDrawerTitleClasses,
31
32
  getGestureTouchPoint,
32
33
  isDrawerSwipeCloseGesture,
33
- resolveLocaleText,
34
+ resolveDrawerPlacement,
35
+ getDrawerSwipeCloseDirection,
36
+ getDrawerLabels,
34
37
  resolveSwipeGesture,
35
- restoreFocus,
38
+ shouldRenderOverlay,
39
+ isOverlayVisuallyHidden,
40
+ scheduleOverlayLeave,
41
+ canStartOverlaySwipeClose,
42
+ OVERLAY_SWIPE_HANDLE_ATTR,
36
43
  shouldCloseOnMaskClick,
37
- mergeTigerLocale
44
+ mergeTigerLocale,
45
+ OVERLAY_Z_INDEX
38
46
  } from "@expcat/tigercat-core";
39
- import { jsx, jsxs } from "react/jsx-runtime";
47
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
40
48
  var CloseIcon = () => /* @__PURE__ */ jsx(
41
49
  "svg",
42
50
  {
@@ -45,6 +53,8 @@ var CloseIcon = () => /* @__PURE__ */ jsx(
45
53
  stroke: "currentColor",
46
54
  viewBox: closeIconViewBox,
47
55
  xmlns: "http://www.w3.org/2000/svg",
56
+ "aria-hidden": "true",
57
+ focusable: "false",
48
58
  children: /* @__PURE__ */ jsx(
49
59
  "path",
50
60
  {
@@ -56,7 +66,7 @@ var CloseIcon = () => /* @__PURE__ */ jsx(
56
66
  )
57
67
  }
58
68
  );
59
- var Drawer = ({
69
+ var Drawer = React.forwardRef(function Drawer2({
60
70
  open = false,
61
71
  placement = "right",
62
72
  size = "md",
@@ -66,12 +76,12 @@ var Drawer = ({
66
76
  closable = true,
67
77
  mask = true,
68
78
  maskClosable = true,
69
- zIndex = 1e3,
79
+ keyboard = true,
80
+ zIndex = OVERLAY_Z_INDEX.modal,
70
81
  className,
71
82
  bodyClassName,
72
83
  bodyPadding,
73
84
  destroyOnClose = false,
74
- deferDestroyOnClose = false,
75
85
  fullscreenOnMobile = true,
76
86
  panelClassName,
77
87
  panelStyle,
@@ -86,25 +96,44 @@ var Drawer = ({
86
96
  footer,
87
97
  style,
88
98
  ...rest
89
- }) => {
99
+ }, forwardedRef) {
90
100
  const config = useTigerConfig();
91
101
  const mergedLocale = useMemo(
92
102
  () => mergeTigerLocale(config.locale, locale),
93
103
  [config.locale, locale]
94
104
  );
95
- const [hasBeenOpened, setHasBeenOpened] = React.useState(open);
96
- const [deferredRendered, setDeferredRendered] = React.useState(open);
105
+ const [hasOpened, setHasOpened] = React.useState(open);
106
+ const [leaving, setLeaving] = React.useState(false);
107
+ const wasOpenRef = useRef(open);
108
+ const afterEnterRef = useRef(onAfterEnter);
109
+ const afterCloseRef = useRef(onAfterClose);
110
+ afterEnterRef.current = onAfterEnter;
111
+ afterCloseRef.current = onAfterClose;
97
112
  useEffect(() => {
98
113
  if (open) {
99
- setHasBeenOpened(true);
100
- setDeferredRendered(true);
101
- return;
102
- }
103
- if (destroyOnClose && !deferDestroyOnClose) {
104
- setDeferredRendered(false);
114
+ setHasOpened(true);
115
+ setLeaving(false);
116
+ wasOpenRef.current = true;
117
+ return scheduleOverlayLeave({
118
+ onFinish: () => afterEnterRef.current?.()
119
+ });
105
120
  }
106
- }, [destroyOnClose, deferDestroyOnClose, open]);
107
- const shouldRender = destroyOnClose ? deferDestroyOnClose ? deferredRendered : open : hasBeenOpened;
121
+ if (!wasOpenRef.current) return;
122
+ wasOpenRef.current = false;
123
+ setLeaving(true);
124
+ return scheduleOverlayLeave({
125
+ onFinish: () => {
126
+ setLeaving(false);
127
+ afterCloseRef.current?.();
128
+ }
129
+ });
130
+ }, [open]);
131
+ const shouldRender = shouldRenderOverlay({
132
+ open,
133
+ hasOpened,
134
+ leaving,
135
+ destroyOnClose
136
+ });
108
137
  const handleClose = useCallback(() => {
109
138
  onOpenChange?.(false);
110
139
  onClose?.();
@@ -118,71 +147,61 @@ var Drawer = ({
118
147
  [maskClosable, handleClose]
119
148
  );
120
149
  useBodyScrollLock({ enabled: open });
121
- const previousVisible = useRef(false);
122
- useEffect(() => {
123
- if (open === previousVisible.current) return;
124
- previousVisible.current = open;
125
- const timer = window.setTimeout(() => {
126
- if (open) {
127
- onAfterEnter?.();
128
- } else {
129
- onAfterClose?.();
130
- if (destroyOnClose && deferDestroyOnClose) {
131
- setDeferredRendered(false);
132
- }
133
- }
134
- }, ANIMATION_DURATION_MS);
135
- return () => window.clearTimeout(timer);
136
- }, [destroyOnClose, deferDestroyOnClose, open, onAfterEnter, onAfterClose]);
137
150
  const reactId = useId();
138
151
  const drawerId = useMemo(() => `tiger-drawer-${reactId}`, [reactId]);
139
152
  const titleId = `${drawerId}-title`;
153
+ const bodyId = `${drawerId}-body`;
140
154
  const overlayHostId = `${drawerId}-overlay-host`;
141
155
  const {
142
156
  ["aria-labelledby"]: _ariaLabelledby,
157
+ ["aria-label"]: ariaLabelFromRest,
158
+ ["aria-describedby"]: ariaDescribedbyFromRest,
143
159
  role: _role,
144
160
  tabIndex: _tabIndex,
145
161
  ...dialogDivProps
146
162
  } = rest;
147
- const ariaLabelledby = rest["aria-labelledby"] ?? (title || header ? titleId : void 0);
163
+ const drawerLabels = getDrawerLabels(mergedLocale, {
164
+ ...labels,
165
+ ...closeAriaLabel ? { closeAriaLabel } : {}
166
+ });
167
+ const hasTitle = Boolean(title || header);
168
+ const ariaLabelledby = rest["aria-labelledby"] ?? (hasTitle ? titleId : void 0);
169
+ const ariaLabel = ariaLabelFromRest ?? (hasTitle ? void 0 : drawerLabels.dialogAriaLabel);
170
+ const ariaDescribedby = ariaDescribedbyFromRest ?? (children ? bodyId : void 0);
171
+ const { anchorRef, target: portalTarget } = useOverlayPortalTarget();
148
172
  const dialogRef = useRef(null);
149
173
  const rootRef = useRef(null);
150
174
  const closeButtonRef = useRef(null);
151
- const previousActiveElementRef = useRef(null);
175
+ const bodyRef = useRef(null);
152
176
  const touchStartRef = useRef(null);
153
177
  const touchCurrentRef = useRef(null);
154
- useEscapeKey({ enabled: open, onEscape: handleClose, layerRef: rootRef });
155
- const resolvedCloseAriaLabel = resolveLocaleText(
156
- "Close drawer",
157
- closeAriaLabel,
158
- labels?.closeAriaLabel,
159
- mergedLocale?.drawer?.closeAriaLabel,
160
- mergedLocale?.common?.closeText
178
+ const swipeAllowedRef = useRef(false);
179
+ const resolvedPlacement = resolveDrawerPlacement(
180
+ placement,
181
+ mergedLocale?.direction === "rtl" ? "rtl" : "ltr"
161
182
  );
162
- useEffect(() => {
163
- if (open) {
164
- previousActiveElementRef.current = captureActiveElement();
165
- const timer = window.setTimeout(() => {
166
- focusFirst([closeButtonRef.current, dialogRef.current]);
167
- }, 0);
168
- return () => window.clearTimeout(timer);
169
- }
170
- restoreFocus(previousActiveElementRef.current);
171
- }, [open]);
172
- useFocusTrap({ enabled: open, containerRef: rootRef });
183
+ useEscapeKey({ enabled: open && keyboard, onEscape: handleClose, layerRef: rootRef });
184
+ const resolvedCloseAriaLabel = drawerLabels.closeAriaLabel;
185
+ useFocusTrap({ enabled: open, containerRef: rootRef, inert: true, autoFocus: true });
173
186
  const resetTouchGesture = useCallback(() => {
174
187
  touchStartRef.current = null;
175
188
  touchCurrentRef.current = null;
189
+ swipeAllowedRef.current = false;
176
190
  }, []);
177
191
  const handleTouchStart = useCallback(
178
192
  (event) => {
179
193
  dialogDivProps.onTouchStart?.(event);
180
194
  if (!open) return;
195
+ swipeAllowedRef.current = canStartOverlaySwipeClose({
196
+ target: event.target,
197
+ scrollContainer: bodyRef.current,
198
+ closeDirection: getDrawerSwipeCloseDirection(resolvedPlacement)
199
+ });
181
200
  const point = getGestureTouchPoint(event.touches);
182
201
  touchStartRef.current = point;
183
202
  touchCurrentRef.current = point;
184
203
  },
185
- [dialogDivProps, open]
204
+ [dialogDivProps, open, resolvedPlacement]
186
205
  );
187
206
  const handleTouchMove = useCallback(
188
207
  (event) => {
@@ -203,12 +222,13 @@ var Drawer = ({
203
222
  getGestureTouchPoint(event.changedTouches) ?? touchCurrentRef.current,
204
223
  { minDistance: 48, minVelocity: 0.15 }
205
224
  );
225
+ const allowed = swipeAllowedRef.current;
206
226
  resetTouchGesture();
207
- if (isDrawerSwipeCloseGesture(placement, gesture)) {
227
+ if (allowed && isDrawerSwipeCloseGesture(resolvedPlacement, gesture)) {
208
228
  handleClose();
209
229
  }
210
230
  },
211
- [dialogDivProps, handleClose, placement, resetTouchGesture]
231
+ [dialogDivProps, handleClose, resolvedPlacement, resetTouchGesture]
212
232
  );
213
233
  const handleTouchCancel = useCallback(
214
234
  (event) => {
@@ -217,10 +237,10 @@ var Drawer = ({
217
237
  },
218
238
  [dialogDivProps, resetTouchGesture]
219
239
  );
220
- const containerClasses = classNames(getDrawerContainerClasses(), !open && "pointer-events-none");
240
+ const containerClasses = getDrawerContainerClasses();
221
241
  const maskClasses = getDrawerMaskClasses(open);
222
242
  const panelClasses = classNames(
223
- getDrawerPanelClasses(placement, open, size, fullscreenOnMobile),
243
+ getDrawerPanelClasses(resolvedPlacement, open, size, fullscreenOnMobile),
224
244
  "flex flex-col",
225
245
  className,
226
246
  panelClassName
@@ -230,17 +250,17 @@ var Drawer = ({
230
250
  const footerClasses = getDrawerFooterClasses();
231
251
  const closeButtonClasses = getDrawerCloseButtonClasses();
232
252
  const titleClasses = getDrawerTitleClasses();
253
+ const anchor = /* @__PURE__ */ jsx("span", { ref: anchorRef, hidden: true });
233
254
  if (!shouldRender) {
234
- return null;
255
+ return anchor;
235
256
  }
236
- const isClosingBeforeDestroy = destroyOnClose && deferDestroyOnClose && !open;
237
257
  const drawerContent = /* @__PURE__ */ jsxs(
238
258
  "div",
239
259
  {
240
260
  ref: rootRef,
241
261
  className: containerClasses,
242
262
  style: { zIndex },
243
- hidden: !open && !isClosingBeforeDestroy,
263
+ hidden: isOverlayVisuallyHidden(open, leaving),
244
264
  "aria-hidden": !open ? "true" : void 0,
245
265
  "data-tiger-overlay-layer": "",
246
266
  "data-tiger-drawer-root": "",
@@ -262,24 +282,26 @@ var Drawer = ({
262
282
  ...panelStyle,
263
283
  ...style,
264
284
  ...width ? {
265
- [placement === "left" || placement === "right" ? "width" : "height"]: typeof width === "number" ? `${width}px` : width
285
+ [resolvedPlacement === "left" || resolvedPlacement === "right" ? "width" : "height"]: typeof width === "number" ? `${width}px` : width
266
286
  } : void 0
267
287
  },
268
288
  ...dialogDivProps,
269
289
  role: "dialog",
270
290
  "aria-modal": "true",
271
291
  "aria-labelledby": ariaLabelledby,
292
+ "aria-label": ariaLabel,
293
+ "aria-describedby": ariaDescribedby,
272
294
  "aria-owns": overlayHostId,
273
295
  tabIndex: -1,
274
- ref: dialogRef,
296
+ ref: composeRefs(forwardedRef, dialogRef),
275
297
  onTouchStart: handleTouchStart,
276
298
  onTouchMove: handleTouchMove,
277
299
  onTouchEnd: handleTouchEnd,
278
300
  onTouchCancel: handleTouchCancel,
279
301
  "data-tiger-drawer": "",
280
302
  children: [
281
- (title || header || closable) && /* @__PURE__ */ jsxs("div", { className: headerClasses, children: [
282
- (title || header) && /* @__PURE__ */ jsx("h3", { className: titleClasses, id: titleId, children: header || title }),
303
+ (title || header || closable) && /* @__PURE__ */ jsxs("div", { className: headerClasses, ...{ [OVERLAY_SWIPE_HANDLE_ATTR]: "" }, children: [
304
+ header ? /* @__PURE__ */ jsx("div", { className: titleClasses, id: titleId, children: header }) : title ? /* @__PURE__ */ jsx("h3", { className: titleClasses, id: titleId, children: title }) : null,
283
305
  closable && /* @__PURE__ */ jsx(
284
306
  "button",
285
307
  {
@@ -292,7 +314,7 @@ var Drawer = ({
292
314
  }
293
315
  )
294
316
  ] }),
295
- children && /* @__PURE__ */ jsx("div", { className: bodyClasses, children }),
317
+ children && /* @__PURE__ */ jsx("div", { className: bodyClasses, ref: bodyRef, id: bodyId, "data-tiger-drawer-body": "", children }),
296
318
  footer && /* @__PURE__ */ jsx("div", { className: footerClasses, children: footer })
297
319
  ]
298
320
  }
@@ -301,8 +323,11 @@ var Drawer = ({
301
323
  ]
302
324
  }
303
325
  );
304
- return renderBodyPortal(drawerContent);
305
- };
326
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
327
+ anchor,
328
+ renderOverlayPortal(drawerContent, portalTarget)
329
+ ] });
330
+ });
306
331
 
307
332
  export {
308
333
  Drawer