@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,84 @@
1
+ {
2
+ "name": "CollapseBox",
3
+ "category": "Layout",
4
+ "description": "折叠盒子,用于控制内容的展开/收起动画",
5
+ "semantic": {
6
+ "intent": [
7
+ "动画容器",
8
+ "展开收起"
9
+ ],
10
+ "useCases": [
11
+ "手风琴",
12
+ "下拉内容",
13
+ "详情展开"
14
+ ],
15
+ "riskLevel": "low"
16
+ },
17
+ "variants": {
18
+ "default": {
19
+ "meaning": "默认样式"
20
+ }
21
+ },
22
+ "states": [
23
+ "expanded",
24
+ "collapsed"
25
+ ],
26
+ "idealProps": {
27
+ "in": {
28
+ "type": "boolean",
29
+ "default": false,
30
+ "description": "【核心受控 prop】控制展开/收起状态;true=展开渲染 children,false=收起;父层需用 useState<boolean> 维护此状态(R21 §5.1 4 high 揭示此 prop 必须在 docs 显式列出)"
31
+ },
32
+ "children": {
33
+ "type": "React.ReactNode",
34
+ "description": "折叠区域内容;接受任意 ReactNode(多个并列元素亦可,内部已包 wrapper div 测高度)"
35
+ },
36
+ "collapsedHeight": {
37
+ "type": "string | number",
38
+ "default": "0px",
39
+ "description": "收起状态最小高度;默认 0px 等同完全隐藏;常用 '60px' 实现部分预览;与 unmountOnExit=true 同传时失效(子树被卸载)"
40
+ },
41
+ "unmountOnExit": {
42
+ "type": "boolean",
43
+ "default": false,
44
+ "description": "收起时是否卸载子节点(true=卸载,false=保留 DOM);与 collapsedHeight 互斥:true 时 collapsedHeight 无效"
45
+ },
46
+ "timeout": {
47
+ "type": "'auto' | number | { appear?: number; enter?: number; exit?: number }",
48
+ "default": "'auto'",
49
+ "description": "动画时长(ms);'auto' 按内容高度计算;number 时 enter/exit 共用;{enter, exit} 分别指定;不支持 'fast'/'slow' 字符串关键字"
50
+ }
51
+ },
52
+ "do": [
53
+ "用于需要平滑展开/收起动画的场景,通过 `in` prop 控制展开状态(父组件用 useState<boolean> 维护)",
54
+ "设置 collapsedHeight(如 '60px')实现内容预览折叠效果,同时保持收起时不完全消失",
55
+ "需要节省性能时设置 unmountOnExit=true,收起时卸载子树(但与 collapsedHeight 互斥——unmountOnExit=true 时 collapsedHeight 无效)"
56
+ ],
57
+ "dont": [
58
+ "同时设置 unmountOnExit=true 和 collapsedHeight——两者互斥,unmountOnExit=true 时子树卸载,collapsedHeight 无效",
59
+ "频繁(>10次/秒)切换 in 状态——动画计时器不会被提前中断,快速切换会产生视觉抖动",
60
+ "在不需要动画的场景使用(直接用 CSS display:none 或 conditional render 性能更好)"
61
+ ],
62
+ "events": {},
63
+ "typescriptPitfalls": [
64
+ {
65
+ "issue": "in prop 是关键字,需要用引号或通过变量传入;TypeScript 下直接写 in= 可能触发解析问题",
66
+ "wrong": "// 变量名与关键字冲突:\nconst in = true; // TS 语法错误,in 是保留关键字",
67
+ "right": "// 用非关键字变量名:\nconst isOpen = true; <CollapseBox in={isOpen}>"
68
+ },
69
+ {
70
+ "issue": "timeout 的对象形式类型是 { appear?: number; enter?: number; exit?: number },不支持字符串关键字",
71
+ "wrong": "<CollapseBox timeout='fast' /> // TS 报错:'fast' 不在联合类型中",
72
+ "right": "<CollapseBox timeout='auto' /> // 只有 'auto' 是字符串关键字;具体毫秒用 number"
73
+ },
74
+ {
75
+ "issue": "collapsedHeight 同时接受 string 和 number,number 类型会被转为带 px 后缀的字符串",
76
+ "wrong": "// 期望传百分比:\ncollapsedHeight={50} // 解析为 '50px' 而非 '50%'",
77
+ "right": "// 百分比需传字符串:\ncollapsedHeight='50%' // 或 collapsedHeight='60px'"
78
+ }
79
+ ],
80
+ "mapping": {
81
+ "realComponent": "CollapseBox",
82
+ "adapter": null
83
+ }
84
+ }
@@ -0,0 +1,155 @@
1
+ {
2
+ "name": "CollapseLayout",
3
+ "category": "Layout",
4
+ "description": "折叠布局,支持分区域折叠的布局组件",
5
+ "semantic": {
6
+ "intent": [
7
+ "分区布局",
8
+ "可伸缩面板"
9
+ ],
10
+ "useCases": [
11
+ "侧边栏",
12
+ "详情面板",
13
+ "代码编辑器"
14
+ ],
15
+ "riskLevel": "low"
16
+ },
17
+ "variants": {
18
+ "left": {
19
+ "meaning": "左侧折叠"
20
+ },
21
+ "right": {
22
+ "meaning": "右侧折叠"
23
+ },
24
+ "top": {
25
+ "meaning": "顶部折叠"
26
+ },
27
+ "bottom": {
28
+ "meaning": "底部折叠"
29
+ }
30
+ },
31
+ "states": [
32
+ "expanded",
33
+ "collapsed"
34
+ ],
35
+ "idealProps": {
36
+ "type": {
37
+ "type": "enum",
38
+ "values": [
39
+ "left",
40
+ "right",
41
+ "top",
42
+ "bottom"
43
+ ],
44
+ "default": "left",
45
+ "description": "可折叠侧(displayContent)的位置;left/top displayContent 在前,right/bottom 在后"
46
+ },
47
+ "open": {
48
+ "type": "boolean",
49
+ "default": false,
50
+ "description": "软受控展开状态;父改 open 强制同步,但用户点击不反向通知父端(双向同步需配合 onClickBtn)"
51
+ },
52
+ "zoomLength": {
53
+ "type": "number",
54
+ "default": 0,
55
+ "description": "可折叠侧最大尺寸(横向时宽,纵向时高,单位由 unit 决定);0=不显示可折叠侧"
56
+ },
57
+ "minDragLength": {
58
+ "type": "number",
59
+ "default": 100,
60
+ "description": "拖拽分隔条时的最小尺寸(单位固定 px,与 unit 无关)"
61
+ },
62
+ "unit": {
63
+ "type": "string",
64
+ "default": "px",
65
+ "description": "zoomLength / spacing 的尺寸单位(px/rem/%);不影响 minDragLength"
66
+ },
67
+ "spacing": {
68
+ "type": "number",
69
+ "default": 20,
70
+ "description": "defaultContent 与 displayContent 间距(单位同 unit)"
71
+ },
72
+ "defaultContent": {
73
+ "type": "ReactNode",
74
+ "description": "自适应侧内容(始终占据剩余空间)"
75
+ },
76
+ "displayContent": {
77
+ "type": "ReactNode",
78
+ "description": "可折叠侧内容(尺寸由 zoomLength / 拖拽决定)"
79
+ },
80
+ "showLabel": {
81
+ "type": "string",
82
+ "description": "收起态时按钮文字"
83
+ },
84
+ "hideLabel": {
85
+ "type": "string",
86
+ "description": "展开态时按钮文字"
87
+ },
88
+ "onClickBtn": {
89
+ "type": "function",
90
+ "signature": "(bol?: boolean, duration?: number) => void",
91
+ "description": "切换按钮回调;bol=新状态(true 展开),duration=动画 ms(内部根据可折叠侧尺寸计算)"
92
+ },
93
+ "onDragEnd": {
94
+ "type": "function",
95
+ "signature": "() => void",
96
+ "description": "用户拖拽分隔条结束回调(松开鼠标触发,不带新尺寸)"
97
+ }
98
+ },
99
+ "do": [
100
+ "用于需要可折叠侧边栏的场景(如代码编辑器左侧文件树)——传 type='left'、defaultContent=主内容、displayContent=侧栏内容、zoomLength=侧栏宽度",
101
+ "支持拖拽调整大小:用户拖动分隔条时组件内部更新 zoomLength;拖拽结束后通过 onDragEnd 回调通知父组件",
102
+ "配合 onClickBtn 监听折叠/展开按钮点击:onClickBtn(bol, duration) 的 bol=新展开状态,duration=动画毫秒数(按内容尺寸计算)"
103
+ ],
104
+ "dont": [
105
+ "嵌套多层 CollapseLayout(嵌套会导致 zoomLength/spacing 计算混乱)",
106
+ "把 open prop 当做完全受控——open 是软受控(父改 open 会同步),但用户点击按钮后不会反向通知父端;双向同步需配合 onClickBtn 回调"
107
+ ],
108
+ "events": {
109
+ "onClickBtn": {
110
+ "signature": "(bol?: boolean, duration?: number) => void",
111
+ "asyncSupported": false,
112
+ "examples": [
113
+ "监听展开/收起切换:onClickBtn={(isOpen, animMs) => { setOpen(isOpen); console.log('动画时长', animMs, 'ms'); }}",
114
+ "bol=true 表示点击后变为展开状态,bol=false 表示变为收起状态",
115
+ "duration 由组件内部根据可折叠侧当前尺寸计算(高度/宽度越大动画越长)"
116
+ ],
117
+ "commonMistakes": [
118
+ "期望 open prop 变化时触发 onClickBtn——只有用户点击按钮才触发,外部修改 open 不触发",
119
+ "假设 onClickBtn 不传时用户点击无效——不传 onClickBtn 时用户点击仍然工作,只是父端感知不到状态变化"
120
+ ]
121
+ },
122
+ "onDragEnd": {
123
+ "signature": "() => void",
124
+ "asyncSupported": false,
125
+ "examples": [
126
+ "拖拽结束后保存新尺寸:onDragEnd={() => saveLayout(constData.current.zoomLength)}",
127
+ "注意:onDragEnd 不携带新的 zoomLength 值,需在外部另行记录"
128
+ ],
129
+ "commonMistakes": [
130
+ "期望 onDragEnd 回调携带新的尺寸值——实际是无参回调,新尺寸由组件内部 constData.current.zoomLength 维护,外部感知需另起方案"
131
+ ]
132
+ }
133
+ },
134
+ "typescriptPitfalls": [
135
+ {
136
+ "issue": "zoomLength 和 spacing 的单位由 unit prop 决定,minDragLength 单位固定为 px",
137
+ "wrong": "// 错误:以为 minDragLength 受 unit='rem' 影响\nzoomLength={20} unit='rem' minDragLength={5} // minDragLength=5 依然是 px,不是 rem",
138
+ "right": "// minDragLength 始终 px,zoomLength/spacing 受 unit 影响:\nzoomLength={20} unit='rem' minDragLength={100} // 最小拖拽 100px"
139
+ },
140
+ {
141
+ "issue": "open prop 是软受控,不传时组件内部自维护展开状态",
142
+ "wrong": "// 仅传 open 不传 onClickBtn,以为可以完全受控\n<CollapseLayout open={externalOpen} /> // 用户点击后内部状态更新但外部 externalOpen 不变,下次 open 变化时会强制同步覆盖",
143
+ "right": "// 双向同步需配合 onClickBtn:\n<CollapseLayout open={isOpen} onClickBtn={(bol) => setIsOpen(!!bol)} />"
144
+ },
145
+ {
146
+ "issue": "defaultContent 和 displayContent 是 ReactNode 类型,不是 children",
147
+ "wrong": "<CollapseLayout><MySidebar /></CollapseLayout> // children 不渲染",
148
+ "right": "<CollapseLayout defaultContent={<MainContent />} displayContent={<Sidebar />} />"
149
+ }
150
+ ],
151
+ "mapping": {
152
+ "realComponent": "CollapseLayout",
153
+ "adapter": null
154
+ }
155
+ }
@@ -0,0 +1,142 @@
1
+ {
2
+ "name": "ColorPicker",
3
+ "category": "Data Entry",
4
+ "description": "颜色选择器,提供 SketchPicker/ChromePicker/SwatchesPicker/CompactPicker 四种变体,输出 hex/rgb/hsl 等多种格式",
5
+ "semantic": {
6
+ "intent": [
7
+ "颜色选择",
8
+ "主题定制"
9
+ ],
10
+ "useCases": [
11
+ "设计工具",
12
+ "个性化设置",
13
+ "图表配色"
14
+ ],
15
+ "riskLevel": "low"
16
+ },
17
+ "variants": {
18
+ "SketchPicker": {
19
+ "meaning": "default export · 完整调色板 + 预设色板 + clear/onClear 自定义清除按钮"
20
+ },
21
+ "ChromePicker": {
22
+ "meaning": "具名 export · Chrome 浏览器风格 + hex/rgb/hsl 切换 · 无 clear"
23
+ },
24
+ "SwatchesPicker": {
25
+ "meaning": "具名 export · 色样网格 · 无调色板/无透明度"
26
+ },
27
+ "CompactPicker": {
28
+ "meaning": "具名 export · 紧凑色板 + hex 输入 · 无透明度"
29
+ }
30
+ },
31
+ "states": [
32
+ "default"
33
+ ],
34
+ "idealProps": {
35
+ "color": {
36
+ "type": "string | HSLColor | RGBColor",
37
+ "description": "受控当前颜色;string 接受 hex(3/4/6/8 位)"
38
+ },
39
+ "onChange": {
40
+ "type": "function",
41
+ "signature": "(color: ColorResult, event?: ChangeEvent) => void",
42
+ "description": "实时颜色变化(每次拖动/输入都触发,高频);color 是 ColorResult { hex, rgb, hsl, hsv, source }"
43
+ },
44
+ "onChangeComplete": {
45
+ "type": "function",
46
+ "signature": "(color: ColorResult, event?: ChangeEvent) => void",
47
+ "description": "完成态回调(仅鼠标释放/失焦触发,低频);用于避免高频副作用"
48
+ },
49
+ "clear": {
50
+ "type": "boolean",
51
+ "default": false,
52
+ "description": "仅 SketchPicker 有效;开启右下角清除方块"
53
+ },
54
+ "onClear": {
55
+ "type": "function",
56
+ "signature": "() => void",
57
+ "description": "仅 SketchPicker;clear=true 时点击清除按钮触发,业务方需自行 setColor 重置"
58
+ },
59
+ "disableAlpha": {
60
+ "type": "boolean",
61
+ "default": false,
62
+ "description": "禁用透明度滑块(影响 ColorResult.rgb/hsl/hsv 是否含 a)"
63
+ },
64
+ "presetColors": {
65
+ "type": "string[]",
66
+ "description": "预设色板;传 [] 隐藏(SketchPicker/SwatchesPicker 有效)"
67
+ },
68
+ "width": {
69
+ "type": "string | number",
70
+ "description": "picker 整体宽度"
71
+ }
72
+ },
73
+ "do": [
74
+ "默认 export 为 SketchPicker(功能最完整);需要 Chrome 风格用 ChromePicker,紧凑色板用 CompactPicker,仅色样网格用 SwatchesPicker",
75
+ "高频更新场景(onChange 触发频繁)建议用 onChangeComplete 避免副作用(如 API 调用)被每次拖动触发",
76
+ "需要清除按钮:传 clear={true} + onClear 回调(仅 SketchPicker 支持);onClear 触发时自行 setColor 重置颜色值"
77
+ ],
78
+ "dont": [
79
+ "在移动端使用 SketchPicker / ChromePicker——触摸精度有限,改用 SwatchesPicker(固定色板)",
80
+ "忽略颜色对比度验证——选色后需业务方自行检查 WCAG 对比度",
81
+ "把 onChange 的 color 参数当 string 直接用——实际是 ColorResult 对象,取 hex 值需用 color.hex"
82
+ ],
83
+ "events": {
84
+ "onChange": {
85
+ "signature": "(color: ColorResult, event?: ChangeEvent) => void",
86
+ "asyncSupported": false,
87
+ "examples": [
88
+ "取 hex 值:<SketchPicker onChange={(color) => setHex(color.hex)} />",
89
+ "取 rgba:onChange={(color) => setRgba(`rgba(${color.rgb.r},${color.rgb.g},${color.rgb.b},${color.rgb.a})`)}",
90
+ "高频触发(每次拖动都触发),需要低频回调改用 onChangeComplete"
91
+ ],
92
+ "commonMistakes": [
93
+ "把 color 参数当 string 用——color 是 ColorResult 对象,取 hex 值需 color.hex(含 # 前缀),取 rgb 需 color.rgb.r/g/b",
94
+ "直接把 onChange 当 onChangeComplete 用——onChange 在拖动过程中高频触发,onChangeComplete 仅在鼠标释放时触发",
95
+ "disableAlpha=true 时仍期望 color.rgb.a 有值——禁用透明度后 a 字段可能为 undefined"
96
+ ]
97
+ },
98
+ "onChangeComplete": {
99
+ "signature": "(color: ColorResult, event?: ChangeEvent) => void",
100
+ "asyncSupported": false,
101
+ "examples": [
102
+ "低频保存:<SketchPicker onChangeComplete={(color) => saveColor(color.hex)} />",
103
+ "只在鼠标释放/输入失焦时触发,适合触发 API 调用或状态持久化"
104
+ ],
105
+ "commonMistakes": [
106
+ "把 onChangeComplete 和 onChange 都传,在 onChange 里做副作用——重复触发,只需传一个"
107
+ ]
108
+ },
109
+ "onClear": {
110
+ "signature": "() => void",
111
+ "asyncSupported": false,
112
+ "examples": [
113
+ "仅 SketchPicker 有效:<SketchPicker clear onClear={() => setColor(undefined)} />",
114
+ "onClear 触发时组件不自动清空 color prop,需业务方 setColor 重置"
115
+ ],
116
+ "commonMistakes": [
117
+ "ChromePicker/CompactPicker/SwatchesPicker 传 clear/onClear 无效——这两个 prop 仅 SketchPicker 支持"
118
+ ]
119
+ }
120
+ },
121
+ "typescriptPitfalls": [
122
+ {
123
+ "issue": "onChange 的 color 参数是 ColorResult 对象,不是字符串,直接作为 string 使用会 TS 报错",
124
+ "wrong": "onChange={(color) => setHex(color)} // color 是 ColorResult 对象,不是 string",
125
+ "right": "onChange={(color) => setHex(color.hex)} // 取 hex 字符串"
126
+ },
127
+ {
128
+ "issue": "clear/onClear 仅 SketchPicker(默认 export)支持,传给其他变体无效且 TS 可能报类型错误",
129
+ "wrong": "import { ChromePicker } from '@para-ui/core'; <ChromePicker clear onClear={...} /> // ChromePicker 无这两个 prop",
130
+ "right": "import ColorPicker from '@para-ui/core'; // 默认 export 是 SketchPicker\n<ColorPicker clear onClear={() => setColor(undefined)} />"
131
+ },
132
+ {
133
+ "issue": "presetColors 传 [] 隐藏预设色板,而非传 null/undefined",
134
+ "wrong": "<ColorPicker presetColors={null} /> // TS 类型错误:null 不是 string[]",
135
+ "right": "<ColorPicker presetColors={[]} /> // 传空数组隐藏预设色板区域"
136
+ }
137
+ ],
138
+ "mapping": {
139
+ "realComponent": "ColorPicker",
140
+ "adapter": null
141
+ }
142
+ }
@@ -0,0 +1,181 @@
1
+ {
2
+ "name": "ComboSelect",
3
+ "category": "Data Entry",
4
+ "description": "组合选择器,支持表格、树、列表多种模式",
5
+ "semantic": {
6
+ "intent": [
7
+ "复杂选择",
8
+ "多模式选择"
9
+ ],
10
+ "useCases": [
11
+ "人员选择",
12
+ "组织架构",
13
+ "资源选择"
14
+ ],
15
+ "riskLevel": "normal"
16
+ },
17
+ "variants": {
18
+ "table": {
19
+ "meaning": "表格模式"
20
+ },
21
+ "tree": {
22
+ "meaning": "树形模式"
23
+ },
24
+ "list": {
25
+ "meaning": "列表模式"
26
+ }
27
+ },
28
+ "states": [
29
+ "default",
30
+ "disabled",
31
+ "error"
32
+ ],
33
+ "idealProps": {
34
+ "mode": {
35
+ "type": "enum",
36
+ "values": [
37
+ "table",
38
+ "tree",
39
+ "list"
40
+ ],
41
+ "default": "table",
42
+ "description": "选择器模式;tree 启用 fullPath*,table 接受 TableProps,list 无 Table/Tree props"
43
+ },
44
+ "value": {
45
+ "type": "SelectOpt[] | SelectOpt",
46
+ "description": "受控值;checkable=true 数组(多选),checkable=false 单值(单选);字段名遵循 replaceFields"
47
+ },
48
+ "defaultValue": {
49
+ "type": "SelectOpt[] | SelectOpt",
50
+ "description": "非受控默认值,与 value 互斥;类型规则同 value"
51
+ },
52
+ "onChange": {
53
+ "type": "function",
54
+ "signature": "(options: SelectOpt[] | SelectOpt, originData?: TreeNodeProps[] | TreeNodeProps) => void",
55
+ "description": "value 变更回调;第二参 originData 是底层原数据透传(replaceFields 映射前的形态)"
56
+ },
57
+ "checkable": {
58
+ "type": "boolean",
59
+ "default": true,
60
+ "description": "单选 / 多选模式开关;直接影响 value/defaultValue/onChange 类型"
61
+ },
62
+ "replaceFields": {
63
+ "type": "object",
64
+ "default": "{ key: 'key', title: 'title', children: 'children' }",
65
+ "description": "入参字段映射;决定 value 里对象用什么字段名"
66
+ },
67
+ "outputFields": {
68
+ "type": "object",
69
+ "default": "{ outputKey: 'key', outputTitle: 'label' }",
70
+ "description": "出参字段映射(独立于 replaceFields);决定 onChange options 里字段名"
71
+ },
72
+ "showSearch": {
73
+ "type": "boolean",
74
+ "default": false,
75
+ "description": "显示搜索框;配合 realTimeSearch/searchPlaceholder/onSearch 使用"
76
+ },
77
+ "allowClear": {
78
+ "type": "boolean",
79
+ "default": false,
80
+ "description": "允许清空;触发 onClear 后组件自动清内部 state,父端需同步父 state"
81
+ },
82
+ "url": {
83
+ "type": "string",
84
+ "description": "远程数据源 URL;配合 ctx/method/params 一组使用,替代 TableProps.data / TreeProps.treeData"
85
+ },
86
+ "method": {
87
+ "type": "enum",
88
+ "values": [
89
+ "Get",
90
+ "Post"
91
+ ],
92
+ "default": "Get",
93
+ "description": "请求方法;注意首字母大写,不是 GET/POST"
94
+ }
95
+ },
96
+ "epics": [
97
+ "ComboSelect-api-rework-epic.md (R20 W-3 起草 · 议题 A 泛型化 / 议题 B 字段映射对称 / R21 user 评审)"
98
+ ],
99
+ "do": [
100
+ "用于需要复杂选择逻辑的场景(人员选择、组织架构、资源选择),简单场景用 Select",
101
+ "配合服务端搜索减少数据量(url + params + showSearch + onSearch)",
102
+ "checkable=false 单选时,value/onChange 的 options 是 SelectOpt 对象而非数组——不要用数组 API",
103
+ "replaceFields 和 outputFields 独立控制:replaceFields 控制入参字段映射,outputFields 控制 onChange 出参字段映射,两者不互通"
104
+ ],
105
+ "dont": [
106
+ "简单选择场景使用(应使用 Select,ComboSelect 引入了 Table/Tree 等重依赖)",
107
+ "数据量极大时不分页(远程模式需配合 TableProps.pagination 或分页参数控制)",
108
+ "不要假设 onOk 和 onChange 触发时机相同——showPopoverActions=true 时用 onOk/onCancel;不显示 footer 时只有 onChange"
109
+ ],
110
+ "events": {
111
+ "onChange": {
112
+ "signature": "(options: SelectOpt[] | SelectOpt, originData?: TreeNodeProps[] | TreeNodeProps) => void",
113
+ "asyncSupported": false,
114
+ "examples": [
115
+ "多选(checkable=true):options 是 SelectOpt[] 数组,每项含 outputFields 指定的字段",
116
+ "单选(checkable=false):options 是单个 SelectOpt 对象(不是数组),originData 是原始树节点",
117
+ "清空时(allowClear=true 触发 onClear):onChange 额外触发,checkable=true 时 options=[],checkable=false 时 options={}"
118
+ ],
119
+ "commonMistakes": [
120
+ "checkable=false 时把 options 当数组处理——单选模式 options 是 SelectOpt 对象,直接 .key 取值,不能 .map()",
121
+ "忽略 outputFields 对出参字段的影响——默认 outputFields={ outputKey:'key', outputTitle:'label' },出参对象的 key 名是 outputKey/outputTitle,不是原始的 replaceFields 字段名",
122
+ "假设 onOk 等价 onChange——showPopoverActions=false 时没有 onOk,所有变更走 onChange;showPopoverActions=true 时点「确定」才触发 onOk",
123
+ "onTagRemove 返回 false 阻止删除后仍期望 onChange 触发——src 实证(index.tsx:236)返回 false 时直接 return,不会触发 onChange"
124
+ ]
125
+ },
126
+ "onOk": {
127
+ "signature": "(options: SelectedOptions) => void",
128
+ "asyncSupported": false,
129
+ "examples": [
130
+ "showPopoverActions=true 时用户点「确定」按钮触发,options 为当前选中列表",
131
+ "适合「选择后需要二次确认」场景——弹框有确认/取消按钮"
132
+ ],
133
+ "commonMistakes": [
134
+ "showPopoverActions=false 时期望 onOk 触发——不会,此时直接监听 onChange",
135
+ "onOk 和 onChange 同时监听导致重复处理——showPopoverActions=true 时推荐只用 onOk,不依赖 onChange"
136
+ ]
137
+ },
138
+ "onSearch": {
139
+ "signature": "(searchKey: string) => void",
140
+ "asyncSupported": false,
141
+ "examples": [
142
+ "showSearch=true 时用户输入触发,searchKey 为当前输入字符串",
143
+ "服务端搜索:在 onSearch 中更新请求参数,配合 params 刷新数据"
144
+ ],
145
+ "commonMistakes": [
146
+ "不传 onSearch 时期望服务端搜索——不传则组件做客户端过滤(realTimeSearch=true 时),服务端搜索必须传 onSearch"
147
+ ]
148
+ }
149
+ },
150
+ "typescriptPitfalls": [
151
+ {
152
+ "issue": "checkable=false 单选时 onChange 的 options 是 SelectOpt 对象而非数组,直接用数组方法报错",
153
+ "wrong": "onChange={(options) => options.map(o => o.key)} // checkable=false 时 options 是对象,没有 .map()",
154
+ "right": "onChange={(options) => { if (Array.isArray(options)) { /* 多选 */ } else { /* 单选,options 是 SelectOpt */ } }}"
155
+ },
156
+ {
157
+ "issue": "method 字段首字母大写('Get'|'Post'),传 'GET'/'POST' 会被忽略",
158
+ "wrong": "method='GET' // 源码 interface 定义是 'Get' | 'Post',大小写不同",
159
+ "right": "method='Get' // 或 method='Post'(src/ComboSelect/interface.tsx 实证)"
160
+ },
161
+ {
162
+ "issue": "SelectOpt 是 { disabled?: boolean; closable?: boolean; [key: string]: any },索引签名允许任意字段,但不应假设 key/title 字段名——取决于 outputFields",
163
+ "wrong": "const key = options[0].key // 假设出参字段名是 key,实际由 outputFields.outputKey 决定",
164
+ "right": "const { outputKey = 'key' } = outputFields || {}; const key = options[0][outputKey];"
165
+ },
166
+ {
167
+ "issue": "value 类型随 checkable 变化,单独声明 useState 类型需要联合",
168
+ "wrong": "const [val, setVal] = useState<SelectOpt[]>() // checkable=false 时 value 是 SelectOpt,不是数组",
169
+ "right": "const [val, setVal] = useState<SelectOpt[] | SelectOpt | undefined>()"
170
+ },
171
+ {
172
+ "issue": "嵌套 TableProps 时必须用 Para UI 的 headData(不是 antd 的 columns),字段结构也不同",
173
+ "wrong": "TableProps={{ columns: [{ title: '姓名', dataIndex: 'title' }] }} // TS2353: 'columns' does not exist in type TableProps",
174
+ "right": "TableProps={{ headData: [{ name: 'title', label: '姓名', width: 200 }] }} // headData 每项用 { name, label, width? },name 对应数据字段 key,label 是表头显示文字"
175
+ }
176
+ ],
177
+ "mapping": {
178
+ "realComponent": "ComboSelect",
179
+ "adapter": null
180
+ }
181
+ }