@para-ui/core 5.0.0-beta.11 → 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 (650) 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 +52 -49
  111. package/es/Anchor/type.d.ts +8 -4
  112. package/es/Argv/component.json +216 -0
  113. package/es/Argv/dataGenerator/index.js +1 -1
  114. package/es/Argv/index.d.ts +5 -6
  115. package/es/Argv/index.js +1 -1
  116. package/es/AutoBox/component.json +133 -0
  117. package/es/AutoBox/index.d.ts +3 -3
  118. package/es/AutoBox/index.js +1 -1
  119. package/es/AutoBox/protal.d.ts +2 -2
  120. package/es/AutoBox/protal.js +33 -30
  121. package/es/AutoButton/component.json +109 -0
  122. package/es/AutoButton/index.js +1 -1
  123. package/es/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  124. package/es/AutoTips/autoTipsMultiline/index.js +1 -1
  125. package/es/AutoTips/component.json +121 -0
  126. package/es/AutoTips/index.js +1 -1
  127. package/es/Badge/component.json +92 -0
  128. package/es/Breadcrumbs/component.json +142 -0
  129. package/es/Breadcrumbs/index.js +1 -1
  130. package/es/Button/SplitButton.d.ts +2 -2
  131. package/es/Button/component.json +168 -0
  132. package/es/Button/index.js +44 -44
  133. package/es/ButtonGroup/component.json +132 -0
  134. package/es/ButtonGroup/index.d.ts +1 -1
  135. package/es/Card/component.json +162 -0
  136. package/es/Card/index.d.ts +2 -2
  137. package/es/Card/index.js +2 -2
  138. package/es/Carousel/component.json +142 -0
  139. package/es/Carousel/index.d.ts +1 -1
  140. package/es/Cascader/Cascader.js +1 -1
  141. package/es/Cascader/OptionList/Column.js +1 -1
  142. package/es/Cascader/OptionList/index.js +1 -1
  143. package/es/Cascader/component.json +196 -0
  144. package/es/Cascader/hooks/useEntities.js +7 -7
  145. package/es/Cascader/interface.d.ts +1 -0
  146. package/es/Cascader/utils/commonUtil.d.ts +1 -1
  147. package/es/Cascader/utils/commonUtil.js +16 -16
  148. package/es/Cascader/utils/treeUtil.d.ts +14 -5
  149. package/es/Cascader/utils/treeUtil.js +1 -1
  150. package/es/Checkbox/component.json +138 -0
  151. package/es/CheckboxGroup/component.json +152 -0
  152. package/es/CheckboxGroup/index.js +1 -1
  153. package/es/CodeEditor/component.json +189 -0
  154. package/es/CodeEditor/index.d.ts +11 -10
  155. package/es/CodeEditor/index.js +19 -19
  156. package/es/Collapse/component.json +166 -0
  157. package/es/Collapse/index.d.ts +1 -1
  158. package/es/Collapse/index.js +23 -22
  159. package/es/CollapseBox/component.json +84 -0
  160. package/es/CollapseLayout/component.json +155 -0
  161. package/es/ColorPicker/component.json +142 -0
  162. package/es/ComboSelect/component.json +181 -0
  163. package/es/ComboSelect/index.js +115 -109
  164. package/es/ComboSelect/interface.d.ts +2 -2
  165. package/es/ComboSelect/utils.d.ts +3 -3
  166. package/es/ComboSelect/utils.js +1 -1
  167. package/es/Container/component.json +111 -0
  168. package/es/ContentBox/component.json +81 -0
  169. package/es/CopyText/component.json +118 -0
  170. package/es/CycleSelector/component.json +98 -0
  171. package/es/CycleSelector/index.js +14 -13
  172. package/es/DatePicker/component.json +192 -0
  173. package/es/DatePicker/generatePicker/generateRangePicker.js +11 -11
  174. package/es/DatePicker/generatePicker/generateSinglePicker.js +2 -2
  175. package/es/Descriptions/component.json +142 -0
  176. package/es/Descriptions/index.d.ts +1 -1
  177. package/es/Desktop/component.json +171 -0
  178. package/es/Desktop/index.js +1 -1
  179. package/es/DragVerify/component.json +114 -0
  180. package/es/DragVerify/index.js +19 -19
  181. package/es/Drawer/component.json +200 -0
  182. package/es/Drawer/index.js +86 -86
  183. package/es/Drawer/interface.d.ts +1 -1
  184. package/es/Drawer/util.d.ts +1 -6
  185. package/es/Drawer/util.js +9 -6
  186. package/es/Dropdown/component.json +147 -0
  187. package/es/Dropdown/index.js +1 -1
  188. package/es/DynamicMultiBox/component.json +278 -0
  189. package/es/DynamicMultiBox/formItem.d.ts +1 -1
  190. package/es/DynamicMultiBox/index.js +1 -1
  191. package/es/DynamicMultiBox/rowForm.d.ts +2 -2
  192. package/es/Empty/component.json +123 -0
  193. package/es/Empty/index.css +1 -1
  194. package/es/Empty/index.d.ts +2 -2
  195. package/es/Empty/index.js +27 -26
  196. package/es/Empty/style/index.css +1 -1
  197. package/es/FieldForm/FieldFormItem/ItemHolder.js +1 -1
  198. package/es/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  199. package/es/FieldForm/FieldFormItem/StatusProvider.js +1 -1
  200. package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
  201. package/es/FieldForm/Form.d.ts +2 -2
  202. package/es/FieldForm/Form.js +1 -1
  203. package/es/FieldForm/FormItemInput.js +1 -1
  204. package/es/FieldForm/FormItemLabel.js +1 -1
  205. package/es/FieldForm/FormList.d.ts +2 -2
  206. package/es/FieldForm/component.json +196 -0
  207. package/es/FieldForm/context.d.ts +5 -1
  208. package/es/FieldForm/context.js +2 -2
  209. package/es/FieldForm/hooks/useForm.d.ts +4 -3
  210. package/es/FieldForm/hooks/useFormInstance.d.ts +1 -1
  211. package/es/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  212. package/es/FieldForm/hooks/useFormItemStatus.js +2 -2
  213. package/es/FieldForm/hooks/useItemRef.d.ts +1 -1
  214. package/es/FieldForm/hooks/useItemRef.js +6 -6
  215. package/es/Form/component.json +161 -0
  216. package/es/Form/index.d.ts +52 -49
  217. package/es/Form/index.js +1 -1
  218. package/es/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  219. package/es/FormItem/compoments/defaultCompoments/index.js +12 -11
  220. package/es/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  221. package/es/FormItem/compoments/formFile/index.js +8 -8
  222. package/es/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  223. package/es/FormItem/compoments/formSelect/index.d.ts +1 -1
  224. package/es/FormItem/component.json +171 -0
  225. package/es/FormItem/index.d.ts +5 -5
  226. package/es/FormItem/index.js +23 -23
  227. package/es/FormItem/itemType.js +1 -1
  228. package/es/FunctionModal/component.json +197 -0
  229. package/es/FunctionModal/dialog.d.ts +1 -1
  230. package/es/FunctionModal/modalContext.d.ts +4 -1
  231. package/es/GlobalContext/confirmLocale.js +1 -1
  232. package/es/GlobalContext/index.js +1 -1
  233. package/es/Help/component.json +118 -0
  234. package/es/HelperText/component.json +126 -0
  235. package/es/Image/PreviewGroup.js +1 -1
  236. package/es/Image/component.json +165 -0
  237. package/es/Image/index.js +1 -1
  238. package/es/InputCode/component.json +191 -0
  239. package/es/InputCode/index.d.ts +2 -2
  240. package/es/InputLang/component.json +205 -0
  241. package/es/InputLang/index.js +2 -2
  242. package/es/InputNumber/component.json +162 -0
  243. package/es/Label/component.json +126 -0
  244. package/es/Label/index.d.ts +2 -2
  245. package/es/Loading/component.json +91 -0
  246. package/es/Menu/component.json +180 -0
  247. package/es/Menu/verticalMenuList.js +1 -1
  248. package/es/Message/component.json +246 -0
  249. package/es/Message/index.d.ts +2 -2
  250. package/es/Message/index.js +2 -2
  251. package/es/Modal/Confirm/index.d.ts +1 -1
  252. package/es/Modal/Confirm/index.js +1 -1
  253. package/es/Modal/component.json +277 -0
  254. package/es/Modal/index.d.ts +85 -5
  255. package/es/Modal/index.js +159 -122
  256. package/es/Modal/interface.d.ts +1 -0
  257. package/es/MultiBox/component.json +216 -0
  258. package/es/MultiBox/index.js +19 -14
  259. package/es/Notification/component.json +184 -0
  260. package/es/OperateBtn/component.json +134 -0
  261. package/es/OperateBtn/index.d.ts +3 -3
  262. package/es/PageHeader/component.json +112 -0
  263. package/es/PageHeader/horizontalMeun.js +1 -1
  264. package/es/PageHeader/horizontalMeunRight.js +1 -1
  265. package/es/Pagination/component.json +181 -0
  266. package/es/Pagination/index.js +15 -15
  267. package/es/ParauiProvider/index.js +1 -1
  268. package/es/PasswordRules/component.json +105 -0
  269. package/es/PasswordRules/index.d.ts +4 -4
  270. package/es/PopConfirm/component.json +227 -0
  271. package/es/PopConfirm/index.d.ts +1 -1
  272. package/es/PopConfirm/index.js +1 -1
  273. package/es/PopMenu/component.json +131 -0
  274. package/es/PopMenu/hooks.d.ts +1 -1
  275. package/es/PopMenu/index.js +8 -8
  276. package/es/Popover/component.json +165 -0
  277. package/es/Popover/index.js +1 -1
  278. package/es/Progress/component.json +161 -0
  279. package/es/Prompt/component.json +144 -0
  280. package/es/Querying/component.json +96 -0
  281. package/es/Querying/index.css +1 -1
  282. package/es/Querying/index.d.ts +2 -2
  283. package/es/Querying/index.js +20 -19
  284. package/es/Querying/style/index.css +1 -1
  285. package/es/QuickReply/QuickReplyCode/index.js +1 -1
  286. package/es/QuickReply/component.json +129 -0
  287. package/es/QuickReply/index.d.ts +1 -1
  288. package/es/Radio/component.json +136 -0
  289. package/es/RadioGroup/component.json +149 -0
  290. package/es/RangeInput/component.json +198 -0
  291. package/es/RangeInput/index.js +20 -20
  292. package/es/Result/component.json +104 -0
  293. package/es/ScrollBar/component.json +115 -0
  294. package/es/Search/component.json +177 -0
  295. package/es/Search/index.d.ts +1 -1
  296. package/es/Select/component.json +244 -0
  297. package/es/Select/index.js +114 -114
  298. package/es/SelectInput/component.json +184 -0
  299. package/es/Selector/component.json +203 -0
  300. package/es/Selector/index.js +56 -50
  301. package/es/Selector/interface.d.ts +2 -2
  302. package/es/Selector/selectorData/index.js +1 -1
  303. package/es/Selector/selectorMain/index.js +3 -3
  304. package/es/Selector/selectorNode/index.js +1 -1
  305. package/es/Selector/util.d.ts +3 -3
  306. package/es/Selector/util.js +6 -12
  307. package/es/SelectorPicker/component.json +179 -0
  308. package/es/SelectorPicker/index.d.ts +5 -5
  309. package/es/SelectorPicker/index.js +15 -15
  310. package/es/SingleBox/component.json +151 -0
  311. package/es/SingleBox/index.d.ts +2 -2
  312. package/es/Slider/component.json +181 -0
  313. package/es/SortBox/component.json +108 -0
  314. package/es/Status/component.json +104 -0
  315. package/es/Stepper/component.json +129 -0
  316. package/es/Stepper/index.d.ts +2 -2
  317. package/es/Switch/component.json +207 -0
  318. package/es/Switch/index.css +1 -1
  319. package/es/Switch/index.d.ts +3 -2
  320. package/es/Switch/index.js +60 -59
  321. package/es/Switch/style/index.css +1 -1
  322. package/es/Table/component.json +547 -0
  323. package/es/Table/index.d.ts +2 -2
  324. package/es/Table/index.js +385 -382
  325. package/es/Table/interface.d.ts +30 -0
  326. package/es/Table/tableHead.js +1 -1
  327. package/es/Table/util.d.ts +1 -1
  328. package/es/Table/util.js +3 -12
  329. package/es/Tabs/component.json +227 -0
  330. package/es/Tag/component.json +221 -0
  331. package/es/Tag/index.css +1 -1
  332. package/es/Tag/index.d.ts +1 -1
  333. package/es/Tag/index.js +20 -20
  334. package/es/Tag/style/index.css +1 -1
  335. package/es/TextEditor/component.json +186 -0
  336. package/es/TextEditor/index.d.ts +5 -5
  337. package/es/TextEditor/index.js +1 -1
  338. package/es/TextField/component.json +290 -0
  339. package/es/TextField/index.d.ts +2 -2
  340. package/es/TextField/index.js +1 -1
  341. package/es/TimePicker/component.json +176 -0
  342. package/es/Timeline/component.json +110 -0
  343. package/es/Title/component.json +156 -0
  344. package/es/ToggleButton/component.json +153 -0
  345. package/es/ToggleButton/index.js +1 -1
  346. package/es/Tooltip/component.json +176 -0
  347. package/es/Tooltip/index.js +58 -53
  348. package/es/Tooltip/interface.d.ts +14 -1
  349. package/es/Tooltip/utils.js +6 -6
  350. package/es/Transfer/component.json +157 -0
  351. package/es/Tree/OperateBar/index.js +1 -1
  352. package/es/Tree/Tree.js +3 -3
  353. package/es/Tree/component.json +512 -0
  354. package/es/Tree/interface.d.ts +1 -1
  355. package/es/Upload/component.json +450 -0
  356. package/es/Upload/util.js +1 -1
  357. package/es/Utils/snack-kit-shims.d.ts +18 -0
  358. package/es/Utils/snack-kit-shims.js +19 -0
  359. package/es/Utils/type.d.ts +0 -2
  360. package/es/_virtual/index.js +5 -3
  361. package/es/_virtual/index2.js +2 -5
  362. package/es/index.d.ts +2 -0
  363. package/es/index.js +1 -1
  364. package/es/locale/en_US.d.ts +361 -0
  365. package/es/locale/en_US.js +364 -0
  366. package/es/locale/index.d.ts +1 -723
  367. package/es/locale/index2.js +10 -0
  368. package/es/locale/zh_CN.d.ts +361 -0
  369. package/es/locale/zh_CN.js +364 -0
  370. package/es/node_modules/classnames/index.js +1 -1
  371. package/lib/AlignBox/component.json +89 -0
  372. package/lib/AlignBox/index.css +1 -1
  373. package/lib/AlignBox/index.d.ts +6 -2
  374. package/lib/AlignBox/index.js +1 -1
  375. package/lib/AlignBox/style/index.css +1 -1
  376. package/lib/Anchor/anchorMenu/index.d.ts +2 -1
  377. package/lib/Anchor/anchorMenu/index.js +1 -1
  378. package/lib/Anchor/component.json +130 -0
  379. package/lib/Anchor/index.js +1 -1
  380. package/lib/Anchor/type.d.ts +8 -4
  381. package/lib/Argv/component.json +216 -0
  382. package/lib/Argv/dataGenerator/index.js +1 -1
  383. package/lib/Argv/index.d.ts +5 -6
  384. package/lib/Argv/index.js +1 -1
  385. package/lib/AutoBox/component.json +133 -0
  386. package/lib/AutoBox/index.d.ts +3 -3
  387. package/lib/AutoBox/index.js +1 -1
  388. package/lib/AutoBox/protal.d.ts +2 -2
  389. package/lib/AutoBox/protal.js +1 -1
  390. package/lib/AutoButton/component.json +109 -0
  391. package/lib/AutoButton/index.js +1 -1
  392. package/lib/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  393. package/lib/AutoTips/autoTipsMultiline/index.js +1 -1
  394. package/lib/AutoTips/component.json +121 -0
  395. package/lib/AutoTips/index.js +1 -1
  396. package/lib/Badge/component.json +92 -0
  397. package/lib/Breadcrumbs/component.json +142 -0
  398. package/lib/Breadcrumbs/index.js +1 -1
  399. package/lib/Button/SplitButton.d.ts +2 -2
  400. package/lib/Button/component.json +168 -0
  401. package/lib/Button/index.js +1 -1
  402. package/lib/ButtonGroup/component.json +132 -0
  403. package/lib/ButtonGroup/index.d.ts +1 -1
  404. package/lib/Card/component.json +162 -0
  405. package/lib/Card/index.d.ts +2 -2
  406. package/lib/Card/index.js +1 -1
  407. package/lib/Carousel/component.json +142 -0
  408. package/lib/Carousel/index.d.ts +1 -1
  409. package/lib/Cascader/Cascader.js +1 -1
  410. package/lib/Cascader/OptionList/Column.js +1 -1
  411. package/lib/Cascader/OptionList/index.js +1 -1
  412. package/lib/Cascader/component.json +196 -0
  413. package/lib/Cascader/hooks/useEntities.js +1 -1
  414. package/lib/Cascader/interface.d.ts +1 -0
  415. package/lib/Cascader/utils/commonUtil.d.ts +1 -1
  416. package/lib/Cascader/utils/commonUtil.js +1 -1
  417. package/lib/Cascader/utils/treeUtil.d.ts +14 -5
  418. package/lib/Cascader/utils/treeUtil.js +1 -1
  419. package/lib/Checkbox/component.json +138 -0
  420. package/lib/CheckboxGroup/component.json +152 -0
  421. package/lib/CheckboxGroup/index.js +1 -1
  422. package/lib/CodeEditor/component.json +189 -0
  423. package/lib/CodeEditor/index.d.ts +11 -10
  424. package/lib/CodeEditor/index.js +1 -1
  425. package/lib/Collapse/component.json +166 -0
  426. package/lib/Collapse/index.d.ts +1 -1
  427. package/lib/Collapse/index.js +1 -1
  428. package/lib/CollapseBox/component.json +84 -0
  429. package/lib/CollapseLayout/component.json +155 -0
  430. package/lib/ColorPicker/component.json +142 -0
  431. package/lib/ComboSelect/component.json +181 -0
  432. package/lib/ComboSelect/index.js +1 -1
  433. package/lib/ComboSelect/interface.d.ts +2 -2
  434. package/lib/ComboSelect/utils.d.ts +3 -3
  435. package/lib/ComboSelect/utils.js +1 -1
  436. package/lib/Container/component.json +111 -0
  437. package/lib/ContentBox/component.json +81 -0
  438. package/lib/CopyText/component.json +118 -0
  439. package/lib/CycleSelector/component.json +98 -0
  440. package/lib/CycleSelector/index.js +1 -1
  441. package/lib/DatePicker/component.json +192 -0
  442. package/lib/DatePicker/generatePicker/generateRangePicker.js +1 -1
  443. package/lib/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  444. package/lib/Descriptions/component.json +142 -0
  445. package/lib/Descriptions/index.d.ts +1 -1
  446. package/lib/Desktop/component.json +171 -0
  447. package/lib/Desktop/index.js +1 -1
  448. package/lib/DragVerify/component.json +114 -0
  449. package/lib/DragVerify/index.js +1 -1
  450. package/lib/Drawer/component.json +200 -0
  451. package/lib/Drawer/index.js +1 -1
  452. package/lib/Drawer/interface.d.ts +1 -1
  453. package/lib/Drawer/util.d.ts +1 -6
  454. package/lib/Drawer/util.js +1 -1
  455. package/lib/Dropdown/component.json +147 -0
  456. package/lib/Dropdown/index.js +1 -1
  457. package/lib/DynamicMultiBox/component.json +278 -0
  458. package/lib/DynamicMultiBox/formItem.d.ts +1 -1
  459. package/lib/DynamicMultiBox/index.js +1 -1
  460. package/lib/DynamicMultiBox/rowForm.d.ts +2 -2
  461. package/lib/Empty/component.json +123 -0
  462. package/lib/Empty/index.css +1 -1
  463. package/lib/Empty/index.d.ts +2 -2
  464. package/lib/Empty/index.js +1 -1
  465. package/lib/Empty/style/index.css +1 -1
  466. package/lib/FieldForm/FieldFormItem/ItemHolder.js +1 -1
  467. package/lib/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  468. package/lib/FieldForm/FieldFormItem/StatusProvider.js +1 -1
  469. package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
  470. package/lib/FieldForm/Form.d.ts +2 -2
  471. package/lib/FieldForm/Form.js +1 -1
  472. package/lib/FieldForm/FormItemInput.js +1 -1
  473. package/lib/FieldForm/FormItemLabel.js +1 -1
  474. package/lib/FieldForm/FormList.d.ts +2 -2
  475. package/lib/FieldForm/component.json +196 -0
  476. package/lib/FieldForm/context.d.ts +5 -1
  477. package/lib/FieldForm/context.js +1 -1
  478. package/lib/FieldForm/hooks/useForm.d.ts +4 -3
  479. package/lib/FieldForm/hooks/useFormInstance.d.ts +1 -1
  480. package/lib/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  481. package/lib/FieldForm/hooks/useFormItemStatus.js +1 -1
  482. package/lib/FieldForm/hooks/useItemRef.d.ts +1 -1
  483. package/lib/FieldForm/hooks/useItemRef.js +1 -1
  484. package/lib/Form/component.json +161 -0
  485. package/lib/Form/index.d.ts +52 -49
  486. package/lib/Form/index.js +1 -1
  487. package/lib/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  488. package/lib/FormItem/compoments/defaultCompoments/index.js +1 -1
  489. package/lib/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  490. package/lib/FormItem/compoments/formFile/index.js +1 -1
  491. package/lib/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  492. package/lib/FormItem/compoments/formSelect/index.d.ts +1 -1
  493. package/lib/FormItem/component.json +171 -0
  494. package/lib/FormItem/index.d.ts +5 -5
  495. package/lib/FormItem/index.js +1 -1
  496. package/lib/FormItem/itemType.js +1 -1
  497. package/lib/FunctionModal/component.json +197 -0
  498. package/lib/FunctionModal/dialog.d.ts +1 -1
  499. package/lib/FunctionModal/modalContext.d.ts +4 -1
  500. package/lib/GlobalContext/confirmLocale.js +1 -1
  501. package/lib/GlobalContext/index.js +1 -1
  502. package/lib/Help/component.json +118 -0
  503. package/lib/HelperText/component.json +126 -0
  504. package/lib/Image/PreviewGroup.js +1 -1
  505. package/lib/Image/component.json +165 -0
  506. package/lib/Image/index.js +1 -1
  507. package/lib/InputCode/component.json +191 -0
  508. package/lib/InputCode/index.d.ts +2 -2
  509. package/lib/InputLang/component.json +205 -0
  510. package/lib/InputLang/index.js +1 -1
  511. package/lib/InputNumber/component.json +162 -0
  512. package/lib/Label/component.json +126 -0
  513. package/lib/Label/index.d.ts +2 -2
  514. package/lib/Loading/component.json +91 -0
  515. package/lib/Menu/component.json +180 -0
  516. package/lib/Menu/verticalMenuList.js +1 -1
  517. package/lib/Message/component.json +246 -0
  518. package/lib/Message/index.d.ts +2 -2
  519. package/lib/Message/index.js +1 -1
  520. package/lib/Modal/Confirm/index.d.ts +1 -1
  521. package/lib/Modal/Confirm/index.js +1 -1
  522. package/lib/Modal/component.json +277 -0
  523. package/lib/Modal/index.d.ts +85 -5
  524. package/lib/Modal/index.js +1 -1
  525. package/lib/Modal/interface.d.ts +1 -0
  526. package/lib/MultiBox/component.json +216 -0
  527. package/lib/MultiBox/index.js +1 -1
  528. package/lib/Notification/component.json +184 -0
  529. package/lib/OperateBtn/component.json +134 -0
  530. package/lib/OperateBtn/index.d.ts +3 -3
  531. package/lib/PageHeader/component.json +112 -0
  532. package/lib/PageHeader/horizontalMeun.js +1 -1
  533. package/lib/PageHeader/horizontalMeunRight.js +1 -1
  534. package/lib/Pagination/component.json +181 -0
  535. package/lib/Pagination/index.js +1 -1
  536. package/lib/ParauiProvider/index.js +1 -1
  537. package/lib/PasswordRules/component.json +105 -0
  538. package/lib/PasswordRules/index.d.ts +4 -4
  539. package/lib/PopConfirm/component.json +227 -0
  540. package/lib/PopConfirm/index.d.ts +1 -1
  541. package/lib/PopConfirm/index.js +1 -1
  542. package/lib/PopMenu/component.json +131 -0
  543. package/lib/PopMenu/hooks.d.ts +1 -1
  544. package/lib/PopMenu/index.js +1 -1
  545. package/lib/Popover/component.json +165 -0
  546. package/lib/Popover/index.js +1 -1
  547. package/lib/Progress/component.json +161 -0
  548. package/lib/Prompt/component.json +144 -0
  549. package/lib/Querying/component.json +96 -0
  550. package/lib/Querying/index.css +1 -1
  551. package/lib/Querying/index.d.ts +2 -2
  552. package/lib/Querying/index.js +1 -1
  553. package/lib/Querying/style/index.css +1 -1
  554. package/lib/QuickReply/QuickReplyCode/index.js +1 -1
  555. package/lib/QuickReply/component.json +129 -0
  556. package/lib/QuickReply/index.d.ts +1 -1
  557. package/lib/Radio/component.json +136 -0
  558. package/lib/RadioGroup/component.json +149 -0
  559. package/lib/RangeInput/component.json +198 -0
  560. package/lib/RangeInput/index.js +1 -1
  561. package/lib/Result/component.json +104 -0
  562. package/lib/ScrollBar/component.json +115 -0
  563. package/lib/Search/component.json +177 -0
  564. package/lib/Search/index.d.ts +1 -1
  565. package/lib/Select/component.json +244 -0
  566. package/lib/Select/index.js +1 -1
  567. package/lib/SelectInput/component.json +184 -0
  568. package/lib/Selector/component.json +203 -0
  569. package/lib/Selector/index.js +1 -1
  570. package/lib/Selector/interface.d.ts +2 -2
  571. package/lib/Selector/selectorData/index.js +1 -1
  572. package/lib/Selector/selectorMain/index.js +1 -1
  573. package/lib/Selector/selectorNode/index.js +1 -1
  574. package/lib/Selector/util.d.ts +3 -3
  575. package/lib/Selector/util.js +1 -1
  576. package/lib/SelectorPicker/component.json +179 -0
  577. package/lib/SelectorPicker/index.d.ts +5 -5
  578. package/lib/SelectorPicker/index.js +1 -1
  579. package/lib/SingleBox/component.json +151 -0
  580. package/lib/SingleBox/index.d.ts +2 -2
  581. package/lib/Slider/component.json +181 -0
  582. package/lib/SortBox/component.json +108 -0
  583. package/lib/Status/component.json +104 -0
  584. package/lib/Stepper/component.json +129 -0
  585. package/lib/Stepper/index.d.ts +2 -2
  586. package/lib/Switch/component.json +207 -0
  587. package/lib/Switch/index.css +1 -1
  588. package/lib/Switch/index.d.ts +3 -2
  589. package/lib/Switch/index.js +1 -1
  590. package/lib/Switch/style/index.css +1 -1
  591. package/lib/Table/component.json +547 -0
  592. package/lib/Table/index.d.ts +2 -2
  593. package/lib/Table/index.js +1 -1
  594. package/lib/Table/interface.d.ts +30 -0
  595. package/lib/Table/tableHead.js +1 -1
  596. package/lib/Table/util.d.ts +1 -1
  597. package/lib/Table/util.js +1 -1
  598. package/lib/Tabs/component.json +227 -0
  599. package/lib/Tag/component.json +221 -0
  600. package/lib/Tag/index.css +1 -1
  601. package/lib/Tag/index.d.ts +1 -1
  602. package/lib/Tag/index.js +1 -1
  603. package/lib/Tag/style/index.css +1 -1
  604. package/lib/TextEditor/component.json +186 -0
  605. package/lib/TextEditor/index.d.ts +5 -5
  606. package/lib/TextEditor/index.js +1 -1
  607. package/lib/TextField/component.json +290 -0
  608. package/lib/TextField/index.d.ts +2 -2
  609. package/lib/TextField/index.js +1 -1
  610. package/lib/TimePicker/component.json +176 -0
  611. package/lib/Timeline/component.json +110 -0
  612. package/lib/Title/component.json +156 -0
  613. package/lib/ToggleButton/component.json +153 -0
  614. package/lib/ToggleButton/index.js +1 -1
  615. package/lib/Tooltip/component.json +176 -0
  616. package/lib/Tooltip/index.js +1 -1
  617. package/lib/Tooltip/interface.d.ts +14 -1
  618. package/lib/Tooltip/utils.js +1 -1
  619. package/lib/Transfer/component.json +157 -0
  620. package/lib/Tree/OperateBar/index.js +2 -2
  621. package/lib/Tree/Tree.js +1 -1
  622. package/lib/Tree/component.json +512 -0
  623. package/lib/Tree/interface.d.ts +1 -1
  624. package/lib/Upload/component.json +450 -0
  625. package/lib/Upload/util.js +1 -1
  626. package/lib/Utils/snack-kit-shims.d.ts +18 -0
  627. package/lib/Utils/snack-kit-shims.js +2 -0
  628. package/lib/Utils/type.d.ts +0 -2
  629. package/lib/_virtual/index.js +1 -1
  630. package/lib/_virtual/index2.js +1 -1
  631. package/lib/index.d.ts +2 -0
  632. package/lib/index.js +1 -1
  633. package/lib/locale/en_US.d.ts +361 -0
  634. package/lib/locale/en_US.js +2 -0
  635. package/lib/locale/index.d.ts +1 -723
  636. package/lib/locale/index2.js +2 -0
  637. package/lib/locale/zh_CN.d.ts +361 -0
  638. package/lib/locale/zh_CN.js +2 -0
  639. package/lib/node_modules/classnames/index.js +1 -1
  640. package/package.json +11 -4
  641. package/es/_virtual/index3.js +0 -5
  642. package/es/_virtual/index4.js +0 -5
  643. package/es/node_modules/@para-snack/core/dist/index.js +0 -5231
  644. package/lib/_virtual/index3.js +0 -2
  645. package/lib/_virtual/index4.js +0 -2
  646. package/lib/node_modules/@para-snack/core/dist/index.js +0 -20
  647. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  648. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
  649. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  650. /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
+ }