@para-ui/core 5.0.0-beta.12 → 5.0.0-beta.13

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 (556) hide show
  1. package/AGENTS.md +315 -0
  2. package/AlignBox/component.json +89 -0
  3. package/Anchor/component.json +130 -0
  4. package/Argv/component.json +216 -0
  5. package/AutoBox/component.json +133 -0
  6. package/AutoButton/component.json +109 -0
  7. package/AutoTips/component.json +121 -0
  8. package/Badge/component.json +92 -0
  9. package/Breadcrumbs/component.json +142 -0
  10. package/Button/component.json +168 -0
  11. package/ButtonGroup/component.json +132 -0
  12. package/Card/component.json +162 -0
  13. package/Carousel/component.json +142 -0
  14. package/Cascader/component.json +196 -0
  15. package/Checkbox/component.json +138 -0
  16. package/CheckboxGroup/component.json +152 -0
  17. package/CodeEditor/component.json +189 -0
  18. package/Collapse/component.json +166 -0
  19. package/CollapseBox/component.json +84 -0
  20. package/CollapseLayout/component.json +155 -0
  21. package/ColorPicker/component.json +142 -0
  22. package/ComboSelect/component.json +181 -0
  23. package/Container/component.json +111 -0
  24. package/ContentBox/component.json +81 -0
  25. package/CopyText/component.json +118 -0
  26. package/CycleSelector/component.json +98 -0
  27. package/DatePicker/component.json +192 -0
  28. package/Descriptions/component.json +142 -0
  29. package/Desktop/component.json +171 -0
  30. package/DragVerify/component.json +114 -0
  31. package/Drawer/component.json +200 -0
  32. package/Dropdown/component.json +147 -0
  33. package/DynamicMultiBox/component.json +278 -0
  34. package/Empty/component.json +123 -0
  35. package/FieldForm/component.json +196 -0
  36. package/Form/component.json +161 -0
  37. package/FormItem/component.json +171 -0
  38. package/FunctionModal/component.json +197 -0
  39. package/Help/component.json +118 -0
  40. package/HelperText/component.json +126 -0
  41. package/Image/component.json +165 -0
  42. package/InputCode/component.json +191 -0
  43. package/InputLang/component.json +205 -0
  44. package/InputNumber/component.json +162 -0
  45. package/Label/component.json +126 -0
  46. package/Loading/component.json +91 -0
  47. package/Menu/component.json +180 -0
  48. package/Message/component.json +246 -0
  49. package/Modal/component.json +277 -0
  50. package/MultiBox/component.json +216 -0
  51. package/Notification/component.json +184 -0
  52. package/OperateBtn/component.json +134 -0
  53. package/PageHeader/component.json +112 -0
  54. package/Pagination/component.json +181 -0
  55. package/PasswordRules/component.json +105 -0
  56. package/PopConfirm/component.json +227 -0
  57. package/PopMenu/component.json +131 -0
  58. package/Popover/component.json +165 -0
  59. package/Progress/component.json +161 -0
  60. package/Prompt/component.json +144 -0
  61. package/Querying/component.json +96 -0
  62. package/QuickReply/component.json +129 -0
  63. package/Radio/component.json +136 -0
  64. package/RadioGroup/component.json +149 -0
  65. package/RangeInput/component.json +198 -0
  66. package/Result/component.json +104 -0
  67. package/ScrollBar/component.json +115 -0
  68. package/Search/component.json +177 -0
  69. package/Select/component.json +244 -0
  70. package/SelectInput/component.json +184 -0
  71. package/Selector/component.json +203 -0
  72. package/SelectorPicker/component.json +179 -0
  73. package/SingleBox/component.json +151 -0
  74. package/Slider/component.json +181 -0
  75. package/SortBox/component.json +108 -0
  76. package/Status/component.json +104 -0
  77. package/Stepper/component.json +129 -0
  78. package/Switch/component.json +207 -0
  79. package/Table/component.json +547 -0
  80. package/Tabs/component.json +227 -0
  81. package/Tag/component.json +221 -0
  82. package/TextEditor/component.json +186 -0
  83. package/TextField/component.json +290 -0
  84. package/TimePicker/component.json +176 -0
  85. package/Timeline/component.json +110 -0
  86. package/Title/component.json +156 -0
  87. package/ToggleButton/component.json +153 -0
  88. package/Tooltip/component.json +176 -0
  89. package/Transfer/component.json +157 -0
  90. package/Tree/component.json +512 -0
  91. package/Upload/component.json +450 -0
  92. package/ai-workflows/01-crud-list-multi-drawer.md +278 -0
  93. package/ai-workflows/02-rbac-operation-buttons.md +290 -0
  94. package/ai-workflows/03-complex-form-async-cascade.md +350 -0
  95. package/ai-workflows/04-array-field-form.md +281 -0
  96. package/ai-workflows/05-popconfirm-async-message-queue.md +333 -0
  97. package/ai-workflows/06-modal-drawer-form-workflow.md +385 -0
  98. package/ai-workflows/07-search-filter-table-trio.md +387 -0
  99. package/ai-workflows/08-table-advanced-features.md +365 -0
  100. package/ai-workflows/09-batch-operation-export-progress.md +367 -0
  101. package/ai-workflows/10-cross-component-state-coordination.md +412 -0
  102. package/es/AlignBox/component.json +89 -0
  103. package/es/AlignBox/index.css +1 -1
  104. package/es/AlignBox/index.d.ts +6 -2
  105. package/es/AlignBox/index.js +1 -1
  106. package/es/AlignBox/style/index.css +1 -1
  107. package/es/Anchor/anchorMenu/index.d.ts +2 -1
  108. package/es/Anchor/anchorMenu/index.js +36 -33
  109. package/es/Anchor/component.json +130 -0
  110. package/es/Anchor/index.js +50 -47
  111. package/es/Anchor/type.d.ts +8 -4
  112. package/es/Argv/component.json +216 -0
  113. package/es/Argv/index.d.ts +5 -6
  114. package/es/AutoBox/component.json +133 -0
  115. package/es/AutoBox/index.d.ts +3 -3
  116. package/es/AutoBox/index.js +1 -1
  117. package/es/AutoBox/protal.d.ts +2 -2
  118. package/es/AutoBox/protal.js +32 -29
  119. package/es/AutoButton/component.json +109 -0
  120. package/es/AutoButton/index.js +1 -1
  121. package/es/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  122. package/es/AutoTips/autoTipsMultiline/index.js +1 -1
  123. package/es/AutoTips/component.json +121 -0
  124. package/es/Badge/component.json +92 -0
  125. package/es/Breadcrumbs/component.json +142 -0
  126. package/es/Breadcrumbs/index.js +1 -1
  127. package/es/Button/SplitButton.d.ts +2 -2
  128. package/es/Button/component.json +168 -0
  129. package/es/Button/index.js +44 -44
  130. package/es/ButtonGroup/component.json +132 -0
  131. package/es/ButtonGroup/index.d.ts +1 -1
  132. package/es/Card/component.json +162 -0
  133. package/es/Card/index.d.ts +2 -2
  134. package/es/Card/index.js +2 -2
  135. package/es/Carousel/component.json +142 -0
  136. package/es/Carousel/index.d.ts +1 -1
  137. package/es/Cascader/component.json +196 -0
  138. package/es/Cascader/hooks/useEntities.js +7 -7
  139. package/es/Cascader/interface.d.ts +1 -0
  140. package/es/Cascader/utils/commonUtil.d.ts +1 -1
  141. package/es/Cascader/utils/commonUtil.js +16 -16
  142. package/es/Cascader/utils/treeUtil.d.ts +14 -5
  143. package/es/Cascader/utils/treeUtil.js +1 -1
  144. package/es/Checkbox/component.json +138 -0
  145. package/es/CheckboxGroup/component.json +152 -0
  146. package/es/CodeEditor/component.json +189 -0
  147. package/es/CodeEditor/index.d.ts +10 -9
  148. package/es/Collapse/component.json +166 -0
  149. package/es/Collapse/index.d.ts +1 -1
  150. package/es/Collapse/index.js +23 -22
  151. package/es/CollapseBox/component.json +84 -0
  152. package/es/CollapseLayout/component.json +155 -0
  153. package/es/ColorPicker/component.json +142 -0
  154. package/es/ComboSelect/component.json +181 -0
  155. package/es/ComboSelect/index.js +73 -68
  156. package/es/ComboSelect/interface.d.ts +2 -2
  157. package/es/ComboSelect/utils.d.ts +3 -3
  158. package/es/ComboSelect/utils.js +1 -1
  159. package/es/Container/component.json +111 -0
  160. package/es/ContentBox/component.json +81 -0
  161. package/es/CopyText/component.json +118 -0
  162. package/es/CycleSelector/component.json +98 -0
  163. package/es/CycleSelector/index.js +14 -13
  164. package/es/DatePicker/component.json +192 -0
  165. package/es/DatePicker/generatePicker/generateRangePicker.js +10 -10
  166. package/es/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  167. package/es/Descriptions/component.json +142 -0
  168. package/es/Descriptions/index.d.ts +1 -1
  169. package/es/Desktop/component.json +171 -0
  170. package/es/DragVerify/component.json +114 -0
  171. package/es/DragVerify/index.js +19 -19
  172. package/es/Drawer/component.json +200 -0
  173. package/es/Drawer/index.js +86 -86
  174. package/es/Drawer/interface.d.ts +1 -1
  175. package/es/Drawer/util.d.ts +1 -6
  176. package/es/Drawer/util.js +9 -6
  177. package/es/Dropdown/component.json +147 -0
  178. package/es/DynamicMultiBox/component.json +278 -0
  179. package/es/DynamicMultiBox/formItem.d.ts +1 -1
  180. package/es/DynamicMultiBox/rowForm.d.ts +2 -2
  181. package/es/Empty/component.json +123 -0
  182. package/es/Empty/index.css +1 -1
  183. package/es/Empty/index.d.ts +2 -2
  184. package/es/Empty/index.js +27 -26
  185. package/es/Empty/style/index.css +1 -1
  186. package/es/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  187. package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
  188. package/es/FieldForm/Form.d.ts +2 -2
  189. package/es/FieldForm/FormList.d.ts +2 -2
  190. package/es/FieldForm/component.json +196 -0
  191. package/es/FieldForm/context.d.ts +5 -1
  192. package/es/FieldForm/context.js +2 -2
  193. package/es/FieldForm/hooks/useForm.d.ts +4 -3
  194. package/es/FieldForm/hooks/useFormInstance.d.ts +1 -1
  195. package/es/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  196. package/es/FieldForm/hooks/useFormItemStatus.js +2 -2
  197. package/es/FieldForm/hooks/useItemRef.d.ts +1 -1
  198. package/es/FieldForm/hooks/useItemRef.js +6 -6
  199. package/es/Form/component.json +161 -0
  200. package/es/Form/index.d.ts +52 -49
  201. package/es/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  202. package/es/FormItem/compoments/defaultCompoments/index.js +12 -11
  203. package/es/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  204. package/es/FormItem/compoments/formFile/index.js +8 -8
  205. package/es/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  206. package/es/FormItem/compoments/formSelect/index.d.ts +1 -1
  207. package/es/FormItem/component.json +171 -0
  208. package/es/FormItem/index.d.ts +5 -5
  209. package/es/FormItem/index.js +23 -23
  210. package/es/FormItem/itemType.js +1 -1
  211. package/es/FunctionModal/component.json +197 -0
  212. package/es/FunctionModal/dialog.d.ts +1 -1
  213. package/es/FunctionModal/modalContext.d.ts +4 -1
  214. package/es/Help/component.json +118 -0
  215. package/es/HelperText/component.json +126 -0
  216. package/es/Image/component.json +165 -0
  217. package/es/InputCode/component.json +191 -0
  218. package/es/InputCode/index.d.ts +2 -2
  219. package/es/InputLang/component.json +205 -0
  220. package/es/InputLang/index.js +1 -1
  221. package/es/InputNumber/component.json +162 -0
  222. package/es/Label/component.json +126 -0
  223. package/es/Label/index.d.ts +2 -2
  224. package/es/Loading/component.json +91 -0
  225. package/es/Menu/component.json +180 -0
  226. package/es/Message/component.json +246 -0
  227. package/es/Message/index.d.ts +2 -2
  228. package/es/Message/index.js +2 -2
  229. package/es/Modal/Confirm/index.d.ts +1 -1
  230. package/es/Modal/component.json +277 -0
  231. package/es/Modal/index.d.ts +85 -5
  232. package/es/Modal/index.js +159 -122
  233. package/es/Modal/interface.d.ts +1 -0
  234. package/es/MultiBox/component.json +216 -0
  235. package/es/MultiBox/index.js +19 -14
  236. package/es/Notification/component.json +184 -0
  237. package/es/OperateBtn/component.json +134 -0
  238. package/es/OperateBtn/index.d.ts +3 -3
  239. package/es/PageHeader/component.json +112 -0
  240. package/es/Pagination/component.json +181 -0
  241. package/es/Pagination/index.js +15 -15
  242. package/es/PasswordRules/component.json +105 -0
  243. package/es/PasswordRules/index.d.ts +4 -4
  244. package/es/PopConfirm/component.json +227 -0
  245. package/es/PopConfirm/index.d.ts +1 -1
  246. package/es/PopConfirm/index.js +1 -1
  247. package/es/PopMenu/component.json +131 -0
  248. package/es/PopMenu/hooks.d.ts +1 -1
  249. package/es/PopMenu/index.js +8 -8
  250. package/es/Popover/component.json +165 -0
  251. package/es/Popover/index.js +1 -1
  252. package/es/Progress/component.json +161 -0
  253. package/es/Prompt/component.json +144 -0
  254. package/es/Querying/component.json +96 -0
  255. package/es/Querying/index.css +1 -1
  256. package/es/Querying/index.d.ts +2 -2
  257. package/es/Querying/index.js +20 -19
  258. package/es/Querying/style/index.css +1 -1
  259. package/es/QuickReply/component.json +129 -0
  260. package/es/QuickReply/index.d.ts +1 -1
  261. package/es/Radio/component.json +136 -0
  262. package/es/RadioGroup/component.json +149 -0
  263. package/es/RangeInput/component.json +198 -0
  264. package/es/RangeInput/index.js +1 -1
  265. package/es/Result/component.json +104 -0
  266. package/es/ScrollBar/component.json +115 -0
  267. package/es/Search/component.json +177 -0
  268. package/es/Search/index.d.ts +1 -1
  269. package/es/Select/component.json +244 -0
  270. package/es/Select/index.js +113 -113
  271. package/es/SelectInput/component.json +184 -0
  272. package/es/Selector/component.json +203 -0
  273. package/es/Selector/index.js +28 -27
  274. package/es/Selector/interface.d.ts +1 -1
  275. package/es/Selector/selectorMain/index.js +2 -2
  276. package/es/Selector/selectorNode/index.js +1 -1
  277. package/es/Selector/util.d.ts +2 -2
  278. package/es/SelectorPicker/component.json +179 -0
  279. package/es/SelectorPicker/index.d.ts +5 -5
  280. package/es/SelectorPicker/index.js +15 -15
  281. package/es/SingleBox/component.json +151 -0
  282. package/es/SingleBox/index.d.ts +2 -2
  283. package/es/Slider/component.json +181 -0
  284. package/es/SortBox/component.json +108 -0
  285. package/es/Status/component.json +104 -0
  286. package/es/Stepper/component.json +129 -0
  287. package/es/Stepper/index.d.ts +2 -2
  288. package/es/Switch/component.json +207 -0
  289. package/es/Switch/index.css +1 -1
  290. package/es/Switch/index.d.ts +3 -2
  291. package/es/Switch/index.js +60 -59
  292. package/es/Switch/style/index.css +1 -1
  293. package/es/Table/component.json +547 -0
  294. package/es/Table/index.d.ts +2 -2
  295. package/es/Table/index.js +414 -414
  296. package/es/Table/interface.d.ts +6 -0
  297. package/es/Tabs/component.json +227 -0
  298. package/es/Tag/component.json +221 -0
  299. package/es/Tag/index.css +1 -1
  300. package/es/Tag/index.d.ts +1 -1
  301. package/es/Tag/index.js +20 -20
  302. package/es/Tag/style/index.css +1 -1
  303. package/es/TextEditor/component.json +186 -0
  304. package/es/TextEditor/index.d.ts +5 -5
  305. package/es/TextField/component.json +290 -0
  306. package/es/TextField/index.d.ts +2 -2
  307. package/es/TimePicker/component.json +176 -0
  308. package/es/Timeline/component.json +110 -0
  309. package/es/Title/component.json +156 -0
  310. package/es/ToggleButton/component.json +153 -0
  311. package/es/Tooltip/component.json +176 -0
  312. package/es/Tooltip/index.js +58 -53
  313. package/es/Tooltip/interface.d.ts +14 -1
  314. package/es/Tooltip/utils.js +6 -6
  315. package/es/Transfer/component.json +157 -0
  316. package/es/Tree/component.json +512 -0
  317. package/es/Upload/component.json +450 -0
  318. package/es/Utils/type.d.ts +0 -2
  319. package/es/index.d.ts +2 -0
  320. package/es/index.js +1 -1
  321. package/es/locale/en_US.d.ts +361 -0
  322. package/es/locale/en_US.js +364 -0
  323. package/es/locale/index.d.ts +1 -723
  324. package/es/locale/index2.js +10 -0
  325. package/es/locale/zh_CN.d.ts +361 -0
  326. package/es/locale/zh_CN.js +364 -0
  327. package/lib/AlignBox/component.json +89 -0
  328. package/lib/AlignBox/index.css +1 -1
  329. package/lib/AlignBox/index.d.ts +6 -2
  330. package/lib/AlignBox/index.js +1 -1
  331. package/lib/AlignBox/style/index.css +1 -1
  332. package/lib/Anchor/anchorMenu/index.d.ts +2 -1
  333. package/lib/Anchor/anchorMenu/index.js +1 -1
  334. package/lib/Anchor/component.json +130 -0
  335. package/lib/Anchor/index.js +1 -1
  336. package/lib/Anchor/type.d.ts +8 -4
  337. package/lib/Argv/component.json +216 -0
  338. package/lib/Argv/index.d.ts +5 -6
  339. package/lib/AutoBox/component.json +133 -0
  340. package/lib/AutoBox/index.d.ts +3 -3
  341. package/lib/AutoBox/index.js +1 -1
  342. package/lib/AutoBox/protal.d.ts +2 -2
  343. package/lib/AutoBox/protal.js +1 -1
  344. package/lib/AutoButton/component.json +109 -0
  345. package/lib/AutoButton/index.js +1 -1
  346. package/lib/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  347. package/lib/AutoTips/autoTipsMultiline/index.js +1 -1
  348. package/lib/AutoTips/component.json +121 -0
  349. package/lib/Badge/component.json +92 -0
  350. package/lib/Breadcrumbs/component.json +142 -0
  351. package/lib/Breadcrumbs/index.js +1 -1
  352. package/lib/Button/SplitButton.d.ts +2 -2
  353. package/lib/Button/component.json +168 -0
  354. package/lib/Button/index.js +1 -1
  355. package/lib/ButtonGroup/component.json +132 -0
  356. package/lib/ButtonGroup/index.d.ts +1 -1
  357. package/lib/Card/component.json +162 -0
  358. package/lib/Card/index.d.ts +2 -2
  359. package/lib/Card/index.js +1 -1
  360. package/lib/Carousel/component.json +142 -0
  361. package/lib/Carousel/index.d.ts +1 -1
  362. package/lib/Cascader/component.json +196 -0
  363. package/lib/Cascader/hooks/useEntities.js +1 -1
  364. package/lib/Cascader/interface.d.ts +1 -0
  365. package/lib/Cascader/utils/commonUtil.d.ts +1 -1
  366. package/lib/Cascader/utils/commonUtil.js +1 -1
  367. package/lib/Cascader/utils/treeUtil.d.ts +14 -5
  368. package/lib/Cascader/utils/treeUtil.js +1 -1
  369. package/lib/Checkbox/component.json +138 -0
  370. package/lib/CheckboxGroup/component.json +152 -0
  371. package/lib/CodeEditor/component.json +189 -0
  372. package/lib/CodeEditor/index.d.ts +10 -9
  373. package/lib/Collapse/component.json +166 -0
  374. package/lib/Collapse/index.d.ts +1 -1
  375. package/lib/Collapse/index.js +1 -1
  376. package/lib/CollapseBox/component.json +84 -0
  377. package/lib/CollapseLayout/component.json +155 -0
  378. package/lib/ColorPicker/component.json +142 -0
  379. package/lib/ComboSelect/component.json +181 -0
  380. package/lib/ComboSelect/index.js +1 -1
  381. package/lib/ComboSelect/interface.d.ts +2 -2
  382. package/lib/ComboSelect/utils.d.ts +3 -3
  383. package/lib/ComboSelect/utils.js +1 -1
  384. package/lib/Container/component.json +111 -0
  385. package/lib/ContentBox/component.json +81 -0
  386. package/lib/CopyText/component.json +118 -0
  387. package/lib/CycleSelector/component.json +98 -0
  388. package/lib/CycleSelector/index.js +1 -1
  389. package/lib/DatePicker/component.json +192 -0
  390. package/lib/DatePicker/generatePicker/generateRangePicker.js +1 -1
  391. package/lib/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  392. package/lib/Descriptions/component.json +142 -0
  393. package/lib/Descriptions/index.d.ts +1 -1
  394. package/lib/Desktop/component.json +171 -0
  395. package/lib/DragVerify/component.json +114 -0
  396. package/lib/DragVerify/index.js +1 -1
  397. package/lib/Drawer/component.json +200 -0
  398. package/lib/Drawer/index.js +1 -1
  399. package/lib/Drawer/interface.d.ts +1 -1
  400. package/lib/Drawer/util.d.ts +1 -6
  401. package/lib/Drawer/util.js +1 -1
  402. package/lib/Dropdown/component.json +147 -0
  403. package/lib/DynamicMultiBox/component.json +278 -0
  404. package/lib/DynamicMultiBox/formItem.d.ts +1 -1
  405. package/lib/DynamicMultiBox/rowForm.d.ts +2 -2
  406. package/lib/Empty/component.json +123 -0
  407. package/lib/Empty/index.css +1 -1
  408. package/lib/Empty/index.d.ts +2 -2
  409. package/lib/Empty/index.js +1 -1
  410. package/lib/Empty/style/index.css +1 -1
  411. package/lib/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  412. package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
  413. package/lib/FieldForm/Form.d.ts +2 -2
  414. package/lib/FieldForm/FormList.d.ts +2 -2
  415. package/lib/FieldForm/component.json +196 -0
  416. package/lib/FieldForm/context.d.ts +5 -1
  417. package/lib/FieldForm/context.js +1 -1
  418. package/lib/FieldForm/hooks/useForm.d.ts +4 -3
  419. package/lib/FieldForm/hooks/useFormInstance.d.ts +1 -1
  420. package/lib/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  421. package/lib/FieldForm/hooks/useFormItemStatus.js +1 -1
  422. package/lib/FieldForm/hooks/useItemRef.d.ts +1 -1
  423. package/lib/FieldForm/hooks/useItemRef.js +1 -1
  424. package/lib/Form/component.json +161 -0
  425. package/lib/Form/index.d.ts +52 -49
  426. package/lib/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  427. package/lib/FormItem/compoments/defaultCompoments/index.js +1 -1
  428. package/lib/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  429. package/lib/FormItem/compoments/formFile/index.js +1 -1
  430. package/lib/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  431. package/lib/FormItem/compoments/formSelect/index.d.ts +1 -1
  432. package/lib/FormItem/component.json +171 -0
  433. package/lib/FormItem/index.d.ts +5 -5
  434. package/lib/FormItem/index.js +1 -1
  435. package/lib/FormItem/itemType.js +1 -1
  436. package/lib/FunctionModal/component.json +197 -0
  437. package/lib/FunctionModal/dialog.d.ts +1 -1
  438. package/lib/FunctionModal/modalContext.d.ts +4 -1
  439. package/lib/Help/component.json +118 -0
  440. package/lib/HelperText/component.json +126 -0
  441. package/lib/Image/component.json +165 -0
  442. package/lib/InputCode/component.json +191 -0
  443. package/lib/InputCode/index.d.ts +2 -2
  444. package/lib/InputLang/component.json +205 -0
  445. package/lib/InputLang/index.js +1 -1
  446. package/lib/InputNumber/component.json +162 -0
  447. package/lib/Label/component.json +126 -0
  448. package/lib/Label/index.d.ts +2 -2
  449. package/lib/Loading/component.json +91 -0
  450. package/lib/Menu/component.json +180 -0
  451. package/lib/Message/component.json +246 -0
  452. package/lib/Message/index.d.ts +2 -2
  453. package/lib/Message/index.js +1 -1
  454. package/lib/Modal/Confirm/index.d.ts +1 -1
  455. package/lib/Modal/component.json +277 -0
  456. package/lib/Modal/index.d.ts +85 -5
  457. package/lib/Modal/index.js +1 -1
  458. package/lib/Modal/interface.d.ts +1 -0
  459. package/lib/MultiBox/component.json +216 -0
  460. package/lib/MultiBox/index.js +1 -1
  461. package/lib/Notification/component.json +184 -0
  462. package/lib/OperateBtn/component.json +134 -0
  463. package/lib/OperateBtn/index.d.ts +3 -3
  464. package/lib/PageHeader/component.json +112 -0
  465. package/lib/Pagination/component.json +181 -0
  466. package/lib/Pagination/index.js +1 -1
  467. package/lib/PasswordRules/component.json +105 -0
  468. package/lib/PasswordRules/index.d.ts +4 -4
  469. package/lib/PopConfirm/component.json +227 -0
  470. package/lib/PopConfirm/index.d.ts +1 -1
  471. package/lib/PopConfirm/index.js +1 -1
  472. package/lib/PopMenu/component.json +131 -0
  473. package/lib/PopMenu/hooks.d.ts +1 -1
  474. package/lib/PopMenu/index.js +1 -1
  475. package/lib/Popover/component.json +165 -0
  476. package/lib/Popover/index.js +1 -1
  477. package/lib/Progress/component.json +161 -0
  478. package/lib/Prompt/component.json +144 -0
  479. package/lib/Querying/component.json +96 -0
  480. package/lib/Querying/index.css +1 -1
  481. package/lib/Querying/index.d.ts +2 -2
  482. package/lib/Querying/index.js +1 -1
  483. package/lib/Querying/style/index.css +1 -1
  484. package/lib/QuickReply/component.json +129 -0
  485. package/lib/QuickReply/index.d.ts +1 -1
  486. package/lib/Radio/component.json +136 -0
  487. package/lib/RadioGroup/component.json +149 -0
  488. package/lib/RangeInput/component.json +198 -0
  489. package/lib/RangeInput/index.js +1 -1
  490. package/lib/Result/component.json +104 -0
  491. package/lib/ScrollBar/component.json +115 -0
  492. package/lib/Search/component.json +177 -0
  493. package/lib/Search/index.d.ts +1 -1
  494. package/lib/Select/component.json +244 -0
  495. package/lib/Select/index.js +1 -1
  496. package/lib/SelectInput/component.json +184 -0
  497. package/lib/Selector/component.json +203 -0
  498. package/lib/Selector/index.js +1 -1
  499. package/lib/Selector/interface.d.ts +1 -1
  500. package/lib/Selector/selectorMain/index.js +1 -1
  501. package/lib/Selector/selectorNode/index.js +1 -1
  502. package/lib/Selector/util.d.ts +2 -2
  503. package/lib/SelectorPicker/component.json +179 -0
  504. package/lib/SelectorPicker/index.d.ts +5 -5
  505. package/lib/SelectorPicker/index.js +1 -1
  506. package/lib/SingleBox/component.json +151 -0
  507. package/lib/SingleBox/index.d.ts +2 -2
  508. package/lib/Slider/component.json +181 -0
  509. package/lib/SortBox/component.json +108 -0
  510. package/lib/Status/component.json +104 -0
  511. package/lib/Stepper/component.json +129 -0
  512. package/lib/Stepper/index.d.ts +2 -2
  513. package/lib/Switch/component.json +207 -0
  514. package/lib/Switch/index.css +1 -1
  515. package/lib/Switch/index.d.ts +3 -2
  516. package/lib/Switch/index.js +1 -1
  517. package/lib/Switch/style/index.css +1 -1
  518. package/lib/Table/component.json +547 -0
  519. package/lib/Table/index.d.ts +2 -2
  520. package/lib/Table/index.js +1 -1
  521. package/lib/Table/interface.d.ts +6 -0
  522. package/lib/Tabs/component.json +227 -0
  523. package/lib/Tag/component.json +221 -0
  524. package/lib/Tag/index.css +1 -1
  525. package/lib/Tag/index.d.ts +1 -1
  526. package/lib/Tag/index.js +1 -1
  527. package/lib/Tag/style/index.css +1 -1
  528. package/lib/TextEditor/component.json +186 -0
  529. package/lib/TextEditor/index.d.ts +5 -5
  530. package/lib/TextField/component.json +290 -0
  531. package/lib/TextField/index.d.ts +2 -2
  532. package/lib/TimePicker/component.json +176 -0
  533. package/lib/Timeline/component.json +110 -0
  534. package/lib/Title/component.json +156 -0
  535. package/lib/ToggleButton/component.json +153 -0
  536. package/lib/Tooltip/component.json +176 -0
  537. package/lib/Tooltip/index.js +1 -1
  538. package/lib/Tooltip/interface.d.ts +14 -1
  539. package/lib/Tooltip/utils.js +1 -1
  540. package/lib/Transfer/component.json +157 -0
  541. package/lib/Tree/component.json +512 -0
  542. package/lib/Upload/component.json +450 -0
  543. package/lib/Utils/type.d.ts +0 -2
  544. package/lib/index.d.ts +2 -0
  545. package/lib/index.js +1 -1
  546. package/lib/locale/en_US.d.ts +361 -0
  547. package/lib/locale/en_US.js +2 -0
  548. package/lib/locale/index.d.ts +1 -723
  549. package/lib/locale/index2.js +2 -0
  550. package/lib/locale/zh_CN.d.ts +361 -0
  551. package/lib/locale/zh_CN.js +2 -0
  552. package/package.json +9 -3
  553. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  554. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
  555. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  556. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
@@ -0,0 +1,180 @@
1
+ {
2
+ "name": "Menu",
3
+ "category": "Navigation",
4
+ "description": "为页面和功能提供导航的菜单列表",
5
+ "semantic": {
6
+ "intent": [
7
+ "页面导航",
8
+ "功能索引",
9
+ "模块切换"
10
+ ],
11
+ "useCases": [
12
+ "侧边栏导航",
13
+ "顶部菜单",
14
+ "系统功能入口"
15
+ ],
16
+ "riskLevel": "normal"
17
+ },
18
+ "variants": {
19
+ "vertical": {
20
+ "meaning": "垂直菜单(侧边)"
21
+ },
22
+ "horizontal": {
23
+ "meaning": "水平菜单(顶部)"
24
+ },
25
+ "inline": {
26
+ "meaning": "内嵌菜单"
27
+ }
28
+ },
29
+ "states": [
30
+ "expanded",
31
+ "collapsed",
32
+ "selected"
33
+ ],
34
+ "idealProps": {
35
+ "menuListProps": {
36
+ "type": "MenuListProps",
37
+ "description": "**菜单列表核心配置(src/Menu/index.tsx:19,71-82 实证,src/Menu/interface.ts:67-90 MenuListProps 定义)**。⚠️ **菜单数据源通过此 prop 的 `list` 字段传入,而非顶层 `list` prop**(顶层无 list prop)。MenuListProps 主要字段:`list: MenuChildrenProps[]`(菜单项数组)、`jumpIcon: ReactNode`(菜单分享图标)、`onClickJump: (item) => void`(分享点击回调)、`size`/`color`/`expansion`/`selectMenu`/`onClickMenu`/`shrinkOthers`(由 Menu 顶层 prop 自动下透,一般不需要在此重复传)",
38
+ "objectShape": {
39
+ "list": { "type": "MenuChildrenProps[]", "description": "菜单项数组(MenuChildrenProps 核心字段见下方 subComponents)" },
40
+ "jumpIcon": { "type": "ReactNode", "description": "菜单项右侧分享/跳转图标" },
41
+ "onClickJump": { "type": "(item: MenuChildrenProps) => void", "description": "点击分享图标回调" }
42
+ }
43
+ },
44
+ "selectMenu": {
45
+ "type": "string",
46
+ "description": "当前选中的菜单 key/path(src/Menu/index.tsx:21,77 实证:向下透传给 VerticalMenuList,与 MenuChildrenProps 的 path 字段比对高亮)"
47
+ },
48
+ "expansion": {
49
+ "type": "boolean",
50
+ "default": true,
51
+ "description": "是否展开菜单(src/Menu/index.tsx:20,31-33 实证:受控,变化后同步到内部 expansionCom state)"
52
+ },
53
+ "color": {
54
+ "type": "enum",
55
+ "values": ["deep", "light"],
56
+ "default": "deep",
57
+ "description": "菜单主题色(src/Menu/interface.ts:12 ColorType 实证:'deep'=深色主题,'light'=浅色主题;透传 CSS 类 paraui-v4-vertical-menu-{color})"
58
+ },
59
+ "size": {
60
+ "type": "enum",
61
+ "values": ["small", "large"],
62
+ "default": "large",
63
+ "description": "菜单尺寸(src/Menu/index.tsx:17,50 实证:控制 CSS 类 paraui-v4-vertical-menu-{size})"
64
+ },
65
+ "onClickMenu": {
66
+ "type": "function",
67
+ "signature": "(item: MenuChildrenProps | false) => void",
68
+ "description": "点击菜单项回调(src/Menu/interface.ts:173-174 MenuProps 实证:参数为点击的 MenuChildrenProps 对象或 false;false 表示点击了非叶子节点的折叠操作)"
69
+ },
70
+ "shrinkOthers": {
71
+ "type": "boolean",
72
+ "default": true,
73
+ "description": "展开一个菜单时自动收起其他展开的同级菜单(src/Menu/index.tsx:26,78 实证,透传给 VerticalMenuList)"
74
+ },
75
+ "logoProps": {
76
+ "type": "LogoProps",
77
+ "objectShape": {
78
+ "expansion": { "type": "boolean", "description": "Logo 展开/收起状态(由 Menu 自动传入,一般不手动传)" },
79
+ "render": { "type": "ReactNode", "description": "自定义 Logo 内容区域" },
80
+ "className": { "type": "string", "description": "Logo 区域自定义 class" }
81
+ },
82
+ "description": "Logo 区域配置(src/Menu/interface.ts:15-22 LogoProps 实证,src/Menu/index.tsx:18,57-66 实证:logoProps 存在时渲染 Logo 子组件)"
83
+ },
84
+ "footerExpansionProps": {
85
+ "type": "FooterExpansionProps",
86
+ "description": "底部展开/收起按钮区域配置(src/Menu/index.tsx:27,87-94 实证,src/Menu/interface.ts:127-145 FooterExpansionProps 定义)。主要字段:`expandIcon: ReactNode`(展开图标)、`shrinkIcon: ReactNode`(收起图标)、`render: ReactNode`(完全自定义底部内容替换默认按钮)、`version: ReactNode`(版本号显示)、`className: string`(底部区域 class)",
87
+ "objectShape": {
88
+ "expandIcon": { "type": "ReactNode", "description": "展开状态图标" },
89
+ "shrinkIcon": { "type": "ReactNode", "description": "收起状态图标" },
90
+ "render": { "type": "ReactNode", "description": "完全自定义底部内容" },
91
+ "version": { "type": "ReactNode", "description": "版本号展示" },
92
+ "className": { "type": "string", "description": "底部区域自定义 class" }
93
+ }
94
+ },
95
+ "showExpansion": {
96
+ "type": "boolean",
97
+ "default": true,
98
+ "description": "是否显示底部展开/收起按钮(src/Menu/index.tsx:28,87 实证:false 时 FooterExpansion 不渲染)"
99
+ },
100
+ "onClickExpansion": {
101
+ "type": "function",
102
+ "signature": "(expansion: boolean) => void",
103
+ "description": "点击底部展开/收起按钮回调(src/Menu/index.tsx:22,39-41 实证:参数为点击后新的展开状态 boolean)"
104
+ },
105
+ "className": {
106
+ "type": "string",
107
+ "description": "自定义类名(src/Menu/index.tsx:24,49 实证,追加到根容器 div)"
108
+ },
109
+ "style": {
110
+ "type": "React.CSSProperties",
111
+ "description": "自定义样式(src/Menu/index.tsx:25,100 实证,透传到根容器 div)"
112
+ }
113
+ },
114
+ "do": [
115
+ "保持菜单层级不要过深(建议不超过 3 级)",
116
+ "配置 shrinkOthers 以提升用户查找效率",
117
+ "使用 icon 辅助识别菜单项",
118
+ "**菜单数据通过 menuListProps.list 传入**(不是顶层 list prop):`<Menu menuListProps={{ list: menuData }} />`,menuData 是 MenuChildrenProps[] 数组",
119
+ "MenuChildrenProps 核心字段(src/Menu/interface.ts:25-63):`label: ReactNode`(菜单名),`path: string`(路径,与 selectMenu 比对高亮),`icon: ReactNode`(图标),`children: MenuChildrenProps[]`(子菜单),`type: 'redirect'|'router'|'iframe'|'snack'|'snackPage'`(菜单类型),`href: string`(a 标签地址),`badge: ReactNode`(标记)"
120
+ ],
121
+ "dont": [
122
+ "在菜单项中放置非导航类的复杂交互组件",
123
+ "过度使用动态生成的菜单导致性能问题",
124
+ "把菜单数据传给顶层 list prop——Menu 没有顶层 list prop,数据必须通过 menuListProps.list 传入"
125
+ ],
126
+ "events": {
127
+ "onClickMenu": {
128
+ "signature": "(item: MenuChildrenProps | false) => void",
129
+ "asyncSupported": false,
130
+ "examples": [
131
+ "点击叶子菜单项时 item 是该菜单项的 MenuChildrenProps 对象,包含 label/path/type 等字段",
132
+ "点击非叶子节点(有 children 的菜单项)展开/收起时,item 可能为 false",
133
+ "用 path 字段实现路由跳转:onClickMenu={(item) => item && item.path && navigate(item.path)}"
134
+ ],
135
+ "commonMistakes": [
136
+ "假设参数是字符串 key 或 path——实际是整个 MenuChildrenProps 对象或 false,需要取 item.path 或 item.label",
137
+ "不处理 item 为 false 的情况——点击有子菜单的父节点时 item 是 false,直接访问 item.path 会报错",
138
+ "假设 onClickMenu 只在叶子节点触发——父节点展开/收起时也会触发(item=false)"
139
+ ]
140
+ },
141
+ "onClickExpansion": {
142
+ "signature": "(expansion: boolean) => void",
143
+ "asyncSupported": false,
144
+ "examples": [
145
+ "点击底部展开/收起按钮时触发:expansion 是点击后新的展开状态",
146
+ "与 expansion prop 配合实现受控:onClickExpansion={(v) => setExpanded(v)}"
147
+ ],
148
+ "commonMistakes": [
149
+ "假设参数是事件对象 → 实际只有 boolean 一个参数(新的展开状态)",
150
+ "只传 expansion 不传 onClickExpansion → 底部按钮点击无响应(受控模式下 expansion 不更新)"
151
+ ]
152
+ }
153
+ },
154
+ "typescriptPitfalls": [
155
+ {
156
+ "issue": "onClickMenu 参数类型是 MenuChildrenProps | false,必须判空后才能访问其属性",
157
+ "wrong": "onClickMenu={(item) => navigate(item.path)} // item 可能是 false,直接访问 item.path 运行时报错",
158
+ "right": "onClickMenu={(item) => { if (item && item.path) navigate(item.path); }}"
159
+ },
160
+ {
161
+ "issue": "菜单数据通过 menuListProps.list 传入,顶层没有 list prop",
162
+ "wrong": "<Menu list={menuData} /> // TS 报错:list 不在 MenuProps 中",
163
+ "right": "<Menu menuListProps={{ list: menuData }} /> // menuData 是 MenuChildrenProps[] 类型"
164
+ },
165
+ {
166
+ "issue": "MenuChildrenProps 的 [name: string]: unknown 索引签名允许任意字段,但核心字段类型有约束",
167
+ "wrong": "const item: MenuChildrenProps = { label: '首页', type: 'page' } // 'page' 不在 MenuListTypeType 枚举中",
168
+ "right": "const item: MenuChildrenProps = { label: '首页', type: 'router', path: '/home' } // type: 'redirect'|'router'|'iframe'|'snack'|'snackPage'"
169
+ },
170
+ {
171
+ "issue": "color prop 只有 'deep' 和 'light' 两个有效值(ColorType),传其他字符串 TS 报错",
172
+ "wrong": "color='dark' // TS2322: Type '\"dark\"' is not assignable to type 'ColorType'",
173
+ "right": "color='deep' // 合法值: 'deep'(深色主题) | 'light'(浅色主题)"
174
+ }
175
+ ],
176
+ "mapping": {
177
+ "realComponent": "Menu",
178
+ "adapter": null
179
+ }
180
+ }
@@ -0,0 +1,246 @@
1
+ {
2
+ "name": "Message",
3
+ "category": "Feedback",
4
+ "description": "全局展示操作反馈信息(顶部条状提示)。**通过 4 个静态方法触发,非 React 组件挂载**。**关键 API 形态:`Message.{type}(config, duration?)` —— config 是 MsgTypeProps 对象或纯 string,duration 是【独立的第 2 参数】,不是 MsgTypeProps 的字段**(见 commonMisconceptions.M1)",
5
+ "semantic": {
6
+ "intent": [
7
+ "通知用户操作结果",
8
+ "瞬态状态提示",
9
+ "顶部条状反馈"
10
+ ],
11
+ "useCases": [
12
+ "提交成功 / 失败反馈",
13
+ "操作警告(无需用户确认的轻提示)",
14
+ "瞬态错误信息",
15
+ "loading 场景(workaround,无原生 loading 类型,见 limitations.L2)"
16
+ ],
17
+ "riskLevel": "low"
18
+ },
19
+ "protocolSummary": "**4 类型 × 2 参数签名**:\n```\nMessage.info(config, duration?)\nMessage.success(config, duration?)\nMessage.warn(config, duration?)\nMessage.error(config, duration?)\n```\n- `config: string | MsgTypeProps` —— 字符串(直接当 text)或对象(完整配置)\n- `duration?: number` —— **独立第 2 参数**(毫秒),默认 5000,传 0 / 负数 / NaN 时不自动关闭\n\n**3 个全局方法**:\n```\nMessage.clear() // 关闭当前所有 Message\nMessage.destroyAll() // clear 的别名\nMessage.config({ maxCount?, duration? }) // 修改全局默认值\n```",
20
+ "limitations": {
21
+ "L1_no_onClose_callback": {
22
+ "issue": "**MsgTypeProps 不支持 onClose / onDismiss / onAfterClose 回调** —— 用户手动关闭或自动关闭后无法触发回调",
23
+ "rootCause": "src/Message/index.tsx 未暴露 callback 字段",
24
+ "workaround": "如果业务需要'关闭后执行 X':\n1. **如果是自动关闭**:用 `setTimeout(handler, duration)` 自己计时(精度误差 ~50ms)\n2. **如果是手动关闭(close 按钮)**:Message 本身没法监听,需要换 Toast / Snackbar / Modal 组件"
25
+ },
26
+ "L2_no_loading_variant": {
27
+ "issue": "**没有 Message.loading 方法 / loading variant** —— variants 只有 info/success/warn/error 4 种",
28
+ "rootCause": "src/Message/index.tsx 未实现 loading 静态方法",
29
+ "workaround": "用 `Message.info({ text: '加载中...', icon: <Loading />, close: true }, 0)`(duration=0 不自动关闭),loading 完成后调 `Message.clear()` 关闭。**注意**:icon prop 需要传入 Loading 图标组件 ReactNode",
30
+ "alternative": "需要真正的 loading 视觉(spinner / 进度) → 用 Loading 组件 / Spin 组件,不要硬塞 Message"
31
+ }
32
+ },
33
+ "variants": {
34
+ "info": {
35
+ "meaning": "普通信息(蓝色 i 图标)"
36
+ },
37
+ "success": {
38
+ "meaning": "操作成功(绿色 ✓ 图标)"
39
+ },
40
+ "warn": {
41
+ "meaning": "警告(黄色 ! 图标)"
42
+ },
43
+ "error": {
44
+ "meaning": "错误(红色 × 图标)"
45
+ }
46
+ },
47
+ "states": [
48
+ "opening",
49
+ "closing"
50
+ ],
51
+ "idealProps": {
52
+ "text": {
53
+ "type": "string",
54
+ "description": "主文本(标题)。也可以把整个 config 简化成纯字符串:`Message.info('提交成功', 3000)` 等同于 `Message.info({ text: '提交成功' }, 3000)`"
55
+ },
56
+ "desc": {
57
+ "type": "string",
58
+ "description": "副描述文案;**出现时 text 会自动加粗变标题**,desc 作为下方说明文本"
59
+ },
60
+ "icon": {
61
+ "type": "ReactNode",
62
+ "description": "自定义图标(覆盖 type 默认图标)。loading 场景常传入 `<Loading />` 图标组件配合 duration=0。**与 hideIcon 互斥**(同时传 hideIcon 优先)"
63
+ },
64
+ "hideIcon": {
65
+ "type": "boolean",
66
+ "default": false,
67
+ "description": "隐藏图标,显示纯文本提示。**与 icon 互斥**"
68
+ },
69
+ "close": {
70
+ "type": "boolean",
71
+ "description": "**强制显示关闭按钮**。undefined 时按 duration 推断:duration>0 不显示关闭按钮(自动关闭即可),duration<=0 或 NaN 显示关闭按钮(需要用户手动关闭)"
72
+ },
73
+ "maxCount": {
74
+ "type": "number",
75
+ "default": "Infinity",
76
+ "description": "同时显示最大条数。per-call(MsgTypeProps.maxCount)或全局(Message.config({ maxCount: N }))"
77
+ },
78
+ "html": {
79
+ "type": "boolean",
80
+ "default": false,
81
+ "description": "是否把 text 当 innerHTML 渲染。**仅可信来源使用**(避免 XSS)"
82
+ },
83
+ "className": {
84
+ "type": "string",
85
+ "description": "提示容器的 className"
86
+ },
87
+ "style": {
88
+ "type": "React.CSSProperties",
89
+ "description": "提示容器的 style"
90
+ }
91
+ },
92
+ "staticMethods": {
93
+ "info": {
94
+ "signature": "(config: string | MsgTypeProps, duration?: number) => void",
95
+ "callExample": "// 正确:\nMessage.info('提交成功', 3000)\nMessage.info({ text: '提交成功', desc: '已保存到草稿' }, 3000)\nMessage.info({ text: '加载中', icon: <Loading />, close: true }, 0)\n\n// 错误(M1):\nMessage.info({ text: '提交成功', duration: 3000 }) // ❌ duration 不是 MsgTypeProps 的字段!"
96
+ },
97
+ "success": {
98
+ "signature": "(config: string | MsgTypeProps, duration?: number) => void"
99
+ },
100
+ "warn": {
101
+ "signature": "(config: string | MsgTypeProps, duration?: number) => void"
102
+ },
103
+ "error": {
104
+ "signature": "(config: string | MsgTypeProps, duration?: number) => void"
105
+ },
106
+ "clear": {
107
+ "signature": "() => void",
108
+ "description": "关闭当前页面所有 Message 实例"
109
+ },
110
+ "destroyAll": {
111
+ "signature": "() => void",
112
+ "description": "clear 的别名(deprecated 倾向 —— **新代码推荐 clear**)"
113
+ },
114
+ "config": {
115
+ "signature": "(config: { maxCount?: number; duration?: number }) => void",
116
+ "description": "修改全局默认值(影响后续 Message.{type} 调用)"
117
+ }
118
+ },
119
+ "commonMisconceptions": {
120
+ "M1": {
121
+ "wrong": "把 duration 写进 MsgTypeProps 对象: `Message.info({ text: '提交成功', duration: 3000 })`",
122
+ "result": "**TS 报错 TS2353 'duration does not exist in type MsgTypeProps'** —— R23 Message-005 fail 根因",
123
+ "fix": "duration 是 Message.{type}() 的**独立第 2 参数**: `Message.info({ text: '提交成功' }, 3000)` 或纯字符串形式 `Message.info('提交成功', 3000)`"
124
+ },
125
+ "M2": {
126
+ "wrong": "传 onClose / onDismiss / onAfterClose 回调期望关闭时触发: `Message.info({ text: '已删除', onClose: handleAfterClose })`",
127
+ "result": "**MsgTypeProps 无 callback 字段**——TS 报错 或者字段被静默忽略,handleAfterClose 永不触发(L1)",
128
+ "fix": "1. 自动关闭后回调:用 `setTimeout(handleAfterClose, duration)`(精度 ~50ms 误差)。2. 手动关闭监听:Message 不支持,换 Toast / Snackbar"
129
+ },
130
+ "M3": {
131
+ "wrong": "调用 `Message.loading('加载中...', 0)` 期望显示 loading 类型",
132
+ "result": "**Message 没有 loading 静态方法**(只有 info/success/warn/error)——runtime 报 `Message.loading is not a function`(L2)",
133
+ "fix": "用 `Message.info({ text: '加载中...', icon: <Loading />, close: true }, 0)` workaround(duration=0 + Loading 图标),完成后 `Message.clear()`。或者用真正的 Loading 组件而不是 Message"
134
+ },
135
+ "M4": {
136
+ "wrong": "默认 duration 是 0(永远不自动关闭): `Message.info('已保存')` 期望一直显示",
137
+ "result": "默认 duration = 5000 ms(自动 5 秒后关闭) —— `Message.info('已保存')` 会 5 秒后消失",
138
+ "fix": "想永久显示用 `Message.info('已保存', 0)` 或显式传 `0` / 负数 / NaN"
139
+ },
140
+ "M5": {
141
+ "wrong": "用 `Message.config({ duration: 0 })` 永久禁用全局自动关闭,然后期望每次 `Message.info('x')` 不自动消失",
142
+ "result": "**Message.config 修改的是全局默认值**,生效但 per-call 第 2 参数会覆盖。可以用,但容易和 per-call duration 互相覆盖出 bug",
143
+ "fix": "per-call 显式传 duration 更直观: `Message.info('x', 0)`。全局 config 适合统一调小默认 duration(如 3000)"
144
+ }
145
+ },
146
+ "completeExample": "// 1. 最基础:字符串简写 + 默认 5 秒自动关闭\nimport Message from '@para-ui/core/Message';\nMessage.info('提交成功');\nMessage.success('保存成功', 3000); // 3 秒后自动关闭\n\n// 2. 完整对象配置(text + desc + icon)\nMessage.info({\n text: '操作成功',\n desc: '订单 #1234 已提交,5 个工作日内处理完成'\n}, 8000);\n\n// 3. 不自动关闭 + 显示关闭按钮\nMessage.warn({\n text: '需要用户确认',\n close: true\n}, 0); // duration=0 不自动关闭\n\n// 4. loading 场景 workaround (L2)\nimport Loading from '@para-ui/icons/Loading';\nMessage.info({\n text: '上传中...',\n icon: <Loading />,\n close: false\n}, 0); // duration=0 不自动关闭\n// 上传完成后:\nawait uploadFile();\nMessage.clear();\nMessage.success('上传成功', 2000);\n\n// 5. 关闭回调 workaround (L1)\nMessage.info('已保存', 3000);\nsetTimeout(() => onAfterClose(), 3000); // 自己计时,精度 ~50ms\n\n// 6. 全局配置\nMessage.config({ duration: 3000, maxCount: 3 }); // 后续 Message 默认 3 秒,最多 3 条同显",
147
+ "do": [
148
+ "**优先用字符串简写**: `Message.info('提交成功', 3000)` —— 不需要对象时省心",
149
+ "**duration 永远是第 2 参数**(M1) —— 不要写在 MsgTypeProps 对象里",
150
+ "**长内容用 text + desc 双字段**,desc 出现时 text 自动加粗",
151
+ "**永久显示**:传 duration=0 / 负数 / NaN,通常配合 close=true 让用户手动关闭",
152
+ "**全局默认值调整**:用 Message.config({ duration, maxCount }),只在 app 启动时调一次",
153
+ "loading 场景:用 info + Loading icon + duration=0 workaround(L2)"
154
+ ],
155
+ "dont": [
156
+ "**不要**把 duration 写在 MsgTypeProps 对象里——是第 2 参数(M1,这是 R23 Message-005 fail 根因)",
157
+ "**不要**传 onClose / onDismiss 回调——MsgTypeProps 无 callback 字段(M2,L1)",
158
+ "**不要**调 Message.loading —— 不存在,用 info + icon workaround(M3,L2)",
159
+ "**不要**假设默认 duration 是 0——默认 5000 ms(M4)",
160
+ "在 Message 中展示过多文字 / 表单 / 复杂交互 —— 换 Modal",
161
+ "滥用 error 类型 —— 重要错误应结合页面内错误提示"
162
+ ],
163
+ "events": {
164
+ "info": {
165
+ "signature": "(config: string | MsgTypeProps, duration?: number) => void",
166
+ "asyncSupported": false,
167
+ "examples": [
168
+ "Message.info('操作成功') — 字符串简写,默认 5000ms 自动关闭",
169
+ "Message.info({ text: '操作成功', desc: '已保存到草稿' }, 3000) — 对象配置 + 独立 duration 第 2 参数",
170
+ "Message.info({ text: '加载中...', icon: <Loading />, close: true }, 0) — duration=0 不自动关闭,显示关闭按钮"
171
+ ],
172
+ "commonMistakes": [
173
+ "把 duration 写进 MsgTypeProps 对象:Message.info({ text: '成功', duration: 3000 }) → TS2353 报错,duration 不是 MsgTypeProps 字段",
174
+ "调用 Message.loading() → Message 没有 loading 方法,只有 info/success/warn/error,调用报 'not a function'",
175
+ "传 onClose/onAfterClose 回调 → MsgTypeProps 无 callback 字段,静默忽略,回调永不触发"
176
+ ]
177
+ },
178
+ "success": {
179
+ "signature": "(config: string | MsgTypeProps, duration?: number) => void",
180
+ "asyncSupported": false,
181
+ "examples": [
182
+ "Message.success('保存成功', 2000) — 2 秒后自动关闭",
183
+ "Message.success({ text: '上传完成', desc: '共 3 个文件' }) — 含副描述"
184
+ ],
185
+ "commonMistakes": [
186
+ "假设 success 和 info 签名不同 → 4 种类型签名完全相同,都是 (config, duration?) => void"
187
+ ]
188
+ },
189
+ "warn": {
190
+ "signature": "(config: string | MsgTypeProps, duration?: number) => void",
191
+ "asyncSupported": false,
192
+ "examples": [
193
+ "Message.warn({ text: '需要确认', close: true }, 0) — 永久显示 + 显示关闭按钮"
194
+ ],
195
+ "commonMistakes": [
196
+ "传 onClose 期望点击关闭按钮后回调 → 不支持 onClose,只能用 setTimeout 模拟"
197
+ ]
198
+ },
199
+ "error": {
200
+ "signature": "(config: string | MsgTypeProps, duration?: number) => void",
201
+ "asyncSupported": false,
202
+ "examples": [
203
+ "Message.error('操作失败,请重试', 8000) — 错误类型展示 8 秒"
204
+ ],
205
+ "commonMistakes": [
206
+ "假设 error 方法接受 Error 对象 → config 必须是 string 或 MsgTypeProps,需手动取 error.message"
207
+ ]
208
+ }
209
+ },
210
+ "typescriptPitfalls": [
211
+ {
212
+ "issue": "duration 是 Message.{type}() 的独立第 2 参数,不是 MsgTypeProps 对象的字段",
213
+ "wrong": "Message.info({ text: '操作成功', duration: 3000 }) // TS2353: 'duration' does not exist in type MsgTypeProps",
214
+ "right": "Message.info({ text: '操作成功' }, 3000) // 或 Message.info('操作成功', 3000)"
215
+ },
216
+ {
217
+ "issue": "MsgTypeProps 不含 onClose / onAfterClose / onDismiss 回调字段",
218
+ "wrong": "Message.success({ text: '已删除', onClose: () => refetch() }) // TS 报错 或 字段静默被忽略",
219
+ "right": "Message.success('已删除', 3000); setTimeout(() => refetch(), 3000); // 用 setTimeout 自己计时"
220
+ },
221
+ {
222
+ "issue": "Message 没有 loading 静态方法(只有 info/success/warn/error)",
223
+ "wrong": "Message.loading('上传中...') // 运行时 TypeError: Message.loading is not a function",
224
+ "right": "Message.info({ text: '上传中...', close: false }, 0); // duration=0 + 用 Message.clear?.() 关闭"
225
+ },
226
+ {
227
+ "issue": "MessageObject 导出的是对象实例,不是 React 组件,不能写 <Message> JSX",
228
+ "wrong": "import Message from '@para-ui/core/Message'; return <Message type='success' text='ok' />; // JSX 类型错误",
229
+ "right": "import { Message } from '@para-ui/core/Message'; Message.success('ok'); // 命令式调用,不是 JSX 渲染"
230
+ },
231
+ {
232
+ "issue": "从 @para-ui/core 直接导入 Message 拿到的是 JSX 组件(默认导出),不是 MessageObject,所有方法 success/error/info/warn/clear/config 均不存在",
233
+ "wrong": "import { Message } from '@para-ui/core'; // TS2339: Property 'success' does not exist on type '() => Element'",
234
+ "right": "import { Message } from '@para-ui/core/Message'; // 子路径导入拿到具名 MessageObject 实例"
235
+ },
236
+ {
237
+ "issue": "MessageObject 接口的 clear 和 config 是可选方法(带 ?),直接调用不加可选链会报 TS2722",
238
+ "wrong": "Message.clear(); // TS2722: Cannot invoke an object which is possibly 'undefined'\nMessage.config({ duration: 3000 }); // 同上",
239
+ "right": "Message.clear?.(); // 可选链调用\nMessage.config?.({ duration: 3000 }); // 或先检查: if (Message.config) Message.config({ duration: 3000 })"
240
+ }
241
+ ],
242
+ "mapping": {
243
+ "realComponent": "Message",
244
+ "adapter": null
245
+ }
246
+ }