@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,151 @@
1
+ {
2
+ "name": "SingleBox",
3
+ "category": "Data Entry",
4
+ "description": "逐行多值列表输入框(每行一个值,整体以 string[] 数组收集 · 支持自动补全)",
5
+ "semantic": {
6
+ "intent": [
7
+ "多值列表输入(逐行)",
8
+ "标签集合录入",
9
+ "自动补全"
10
+ ],
11
+ "useCases": [
12
+ "多关键词输入(每行一个)",
13
+ "标签批量录入",
14
+ "多值配置项"
15
+ ],
16
+ "riskLevel": "low"
17
+ },
18
+ "variants": {
19
+ "default": {
20
+ "meaning": "默认样式"
21
+ }
22
+ },
23
+ "states": [
24
+ "default",
25
+ "disabled",
26
+ "error"
27
+ ],
28
+ "idealProps": {
29
+ "value": {
30
+ "type": "array",
31
+ "itemType": "string",
32
+ "description": "受控值 string[],与 defaultValue 互斥(必须配合 onChange 同步)。**业务 string 单值桥接**(协议 SB1):`value={s ? [s] : []}`;**value=[] 行为**(协议 SB2):自动渲染一个空 input 行"
33
+ },
34
+ "defaultValue": {
35
+ "type": "array",
36
+ "itemType": "string",
37
+ "description": "非受控默认值,与 value 互斥,仅首次 mount 生效"
38
+ },
39
+ "onChange": {
40
+ "type": "function",
41
+ "signature": "(val: string[]) => void",
42
+ "description": "值变更回调,val 是当前所有行的完整数组快照。**业务 string 单值桥接**(协议 SB1):`(val) => setKeyword(val[0] ?? '')`;**val 永远至少 [''])**(协议 SB3);**disabled+受控**仍需传 onChange(空函数避免 warning)"
43
+ },
44
+ "fetchSuggestions": {
45
+ "type": "function",
46
+ "signature": "(val: string, cb: (data: any[]) => void) => void",
47
+ "description": "自动补全数据源,存在时每行 input 启用联想。cb 数据可为 string[](直接显示)或 {label, value}[](按 label 显示)"
48
+ },
49
+ "size": {
50
+ "type": "enum",
51
+ "values": [
52
+ "small",
53
+ "medium",
54
+ "large"
55
+ ],
56
+ "default": "large",
57
+ "description": "控件大小"
58
+ },
59
+ "disabled": {
60
+ "type": "boolean",
61
+ "default": false,
62
+ "description": "禁用整组输入,可配合 disabledTooltip 解释原因"
63
+ },
64
+ "required": {
65
+ "type": "boolean",
66
+ "default": false,
67
+ "description": "必填(透传到 Label 显示星号)"
68
+ },
69
+ "label": {
70
+ "type": "ReactNode",
71
+ "description": "标题"
72
+ },
73
+ "placeholder": {
74
+ "type": "ReactNode",
75
+ "description": "每行 input 占位"
76
+ },
77
+ "helperText": {
78
+ "type": "ReactNode | ReactNode[]",
79
+ "description": "错误文本,单值=所有行共享;数组=按行下标对应,空串项表示该行无错"
80
+ },
81
+ "disabledTooltip": {
82
+ "type": "TooltipProps",
83
+ "description": "禁用态下添加按钮的 tooltip 配置(仅 disabled=true 时生效)"
84
+ },
85
+ "otherProps": {
86
+ "type": "(index: number, val: string) => TextFieldProps",
87
+ "description": "每行 TextField 的额外 props;index 是行下标(0-based),返回对象展开到该行 TextField"
88
+ }
89
+ },
90
+ "crossPropInteractions": [
91
+ "value=[] / [''] = 渲染一个空 input 行(自动归一化)",
92
+ "业务 string ↔ SingleBox string[] 桥接 = 入站 [s] + 出站 val[0] ?? ''(协议 SB1)",
93
+ "disabled=true = 隐藏添加/删除按钮 + 所有 input 只读;受控仍需传 onChange",
94
+ "helperText[] 按行下标对应 + value[] 行数 = 错误信息可逐行显示",
95
+ "fetchSuggestions + otherProps = 联想 + 按行定制(如某行 maxLength)"
96
+ ],
97
+ "commonMisconceptions": [
98
+ "❌ SingleBox 是单值输入框 — 实际 value 是 string[](多行)",
99
+ "❌ value=[] 不显示输入框 — 自动渲染一个空 input 行",
100
+ "❌ 删除所有行后 onChange 给 [] — 实际最少 [''](组件保留一行)",
101
+ "❌ disabled+受控可省略 onChange — 仍需传(空函数)避免 React warning",
102
+ "❌ 业务 string 直接传 value — 必须 [s] 包装,onChange 取 val[0]"
103
+ ],
104
+ "do": [
105
+ "支持自动完成",
106
+ "提供建议列表",
107
+ "业务单值场景用 [s] 包装 value + (val) => val[0] ?? '' 出站桥接"
108
+ ],
109
+ "dont": [
110
+ "建议列表过长",
111
+ "忽略去重",
112
+ "把 SingleBox 当单值 TextField 用(它是多值列表,建议用 TextField)"
113
+ ],
114
+ "events": {
115
+ "onChange": {
116
+ "signature": "(val: string[]) => void",
117
+ "asyncSupported": false,
118
+ "examples": [
119
+ "val 是所有行当前值的完整数组快照,如 ['keyword1', 'keyword2', '']",
120
+ "业务单值桥接:onChange={(val) => setSingleKeyword(val[0] ?? '')}",
121
+ "删除最后一行后 val 仍是 [''](保留至少一行空 input)"
122
+ ],
123
+ "commonMistakes": [
124
+ "期望删除所有行后 onChange 返回 [] ——组件保留最少一行,val 永远是 [''] 或更多",
125
+ "disabled+受控时省略 onChange——仍需传(可传空函数)否则 React 报 prop 变化 warning",
126
+ "业务 string 直接传 value——必须 [s] 包装,onChange 取 val[0] ?? ''"
127
+ ]
128
+ }
129
+ },
130
+ "typescriptPitfalls": [
131
+ {
132
+ "issue": "value 类型是 string[],传单个 string 报 TS 类型不兼容",
133
+ "wrong": "value={keyword} // keyword: string,TS 报不兼容 string[]",
134
+ "right": "value={keyword ? [keyword] : ['']} // 桥接:string → string[]"
135
+ },
136
+ {
137
+ "issue": "helperText 传数组时数组下标必须与 value 数组行数对齐",
138
+ "wrong": "value={['a','b']} helperText={['err0']} // 仅第 0 行报错,第 1 行错误无文案但不会静默",
139
+ "right": "value={['a','b']} helperText={['err0', 'err1']} // 按行下标一一对应"
140
+ },
141
+ {
142
+ "issue": "otherProps 函数需要返回完整 TextFieldProps 对象,类型不对会扩散到每行 TextField",
143
+ "wrong": "otherProps={(i) => i === 0 ? { maxLength: 10 } : null} // null 不满足 TextFieldProps",
144
+ "right": "otherProps={(i) => i === 0 ? { maxLength: 10 } : {}} // 非目标行返回空对象"
145
+ }
146
+ ],
147
+ "mapping": {
148
+ "realComponent": "SingleBox",
149
+ "adapter": null
150
+ }
151
+ }
@@ -0,0 +1,181 @@
1
+ {
2
+ "name": "Slider",
3
+ "category": "Data Entry",
4
+ "description": "滑动输入条,用于在给定范围内选择一个值或范围",
5
+ "semantic": {
6
+ "intent": [
7
+ "数值调节",
8
+ "范围选择",
9
+ "模糊输入"
10
+ ],
11
+ "useCases": [
12
+ "音量调节",
13
+ "价格筛选",
14
+ "亮度调整"
15
+ ],
16
+ "riskLevel": "low"
17
+ },
18
+ "variants": {
19
+ "default": {
20
+ "meaning": "单滑块"
21
+ },
22
+ "range": {
23
+ "meaning": "双滑块范围选择"
24
+ }
25
+ },
26
+ "states": [
27
+ "default",
28
+ "disabled"
29
+ ],
30
+ "idealProps": {
31
+ "value": {
32
+ "type": "number | number[]",
33
+ "description": "当前取值;range 模式下传 [min, max] 数组"
34
+ },
35
+ "defaultValue": {
36
+ "type": "number | number[]",
37
+ "description": "默认取值"
38
+ },
39
+ "min": {
40
+ "type": "number",
41
+ "default": 0,
42
+ "description": "最小值"
43
+ },
44
+ "max": {
45
+ "type": "number",
46
+ "default": 100,
47
+ "description": "最大值"
48
+ },
49
+ "step": {
50
+ "type": "number",
51
+ "default": 1,
52
+ "description": "步长"
53
+ },
54
+ "range": {
55
+ "type": "boolean | { draggableTrack?: boolean }",
56
+ "description": "双滑块模式(核心 prop);传 true 时 value 变为 [min, max] 数组;传 { draggableTrack: true } 时允许拖拽整段轨道",
57
+ "default": false,
58
+ "required": false
59
+ },
60
+ "vertical": {
61
+ "type": "boolean",
62
+ "description": "垂直方向",
63
+ "default": false,
64
+ "required": false
65
+ },
66
+ "dots": {
67
+ "type": "boolean",
68
+ "description": "是否只能拖拽到刻度上(配合 marks 使用)",
69
+ "default": false,
70
+ "required": false
71
+ },
72
+ "tipFormatter": {
73
+ "type": "function",
74
+ "signature": "(value: number) => ReactNode | null",
75
+ "description": "格式化 Tooltip 显示;传 null 隐藏 Tooltip",
76
+ "required": false
77
+ },
78
+ "onAfterChange": {
79
+ "type": "function",
80
+ "signature": "(value: number | number[]) => void",
81
+ "description": "mouseup 时触发;与 onChange 区别:onChange 是拖拽过程中实时触发,onAfterChange 仅在释放后触发一次",
82
+ "required": false
83
+ },
84
+ "onChange": {
85
+ "type": "function",
86
+ "signature": "(value: number | number[]) => void",
87
+ "description": "值改变回调(拖拽过程实时触发);range 模式下 value 是 [min, max] 数组"
88
+ },
89
+ "disabled": {
90
+ "type": "boolean",
91
+ "default": false,
92
+ "description": "是否禁用"
93
+ },
94
+ "marks": {
95
+ "type": "object",
96
+ "objectShape": {
97
+ "[number]": { "type": "string | ReactNode", "description": "刻度值 → 显示标签,例:{ 0: '0°C', 26: '26°C', 100: '100°C' }" }
98
+ },
99
+ "completeExample": "{ 0: '0°C', 26: '26°C', 37: '37°C', 100: { style: { color: '#f50' }, label: <strong>100°C</strong> } }",
100
+ "description": "刻度标记"
101
+ },
102
+ "tooltipVisible": {
103
+ "type": "boolean",
104
+ "description": "Tooltip 是否可见"
105
+ },
106
+ "tooltipPlacement": {
107
+ "type": "enum",
108
+ "values": [
109
+ "top",
110
+ "bottom",
111
+ "left",
112
+ "right",
113
+ "topLeft",
114
+ "topRight",
115
+ "bottomLeft",
116
+ "bottomRight"
117
+ ],
118
+ "default": "top",
119
+ "description": "Tooltip 位置"
120
+ }
121
+ },
122
+ "do": [
123
+ "在需要快速调节数值且对精度要求不高时使用",
124
+ "使用 marks 辅助用户定位常用值(配合 dots=true 让用户只能拖到刻度位置)",
125
+ "受控用法:value + onChange 实现受控;range 模式 value 必须是 number[] 数组([min, max])",
126
+ "高精度场景搭配 InputNumber:onChange 实时同步到 InputNumber,onAfterChange 仅在释放后更新"
127
+ ],
128
+ "dont": [
129
+ "在需要极高精度输入的场景单纯依赖 Slider(应配合 InputNumber)",
130
+ "范围极小(如 0-1)时使用 Slider——步长精度和 UI 交互体验差",
131
+ "range 模式 value 传单 number 而非 number[]——会导致 rc-slider 报 PropTypes warning 并功能异常"
132
+ ],
133
+ "events": {
134
+ "onChange": {
135
+ "signature": "(value: number | number[]) => void",
136
+ "asyncSupported": false,
137
+ "examples": [
138
+ "单滑块:onChange={(val) => setVolume(val as number)}",
139
+ "范围滑块(range=true):onChange={(val) => setRange(val as number[])}",
140
+ "拖拽过程中实时触发,高频触发时应注意性能(可用 onAfterChange 替代)"
141
+ ],
142
+ "commonMistakes": [
143
+ "range 模式期望 value 是单 number——range=true 时 value 始终是 number[2]",
144
+ "混淆 onChange 和 onAfterChange——onChange 拖拽过程高频触发,onAfterChange 仅 mouseup 时触发一次",
145
+ "tipFormatter 传 null 后期望 onChange 仍提供 tooltip 展示——null 表示完全隐藏 tooltip"
146
+ ]
147
+ },
148
+ "onAfterChange": {
149
+ "signature": "(value: number | number[]) => void",
150
+ "asyncSupported": false,
151
+ "examples": [
152
+ "用户释放滑块时触发一次,适合触发网络请求或昂贵计算",
153
+ "range 模式:value 是 [min, max] 数组"
154
+ ],
155
+ "commonMistakes": [
156
+ "期望 onAfterChange 在拖拽过程中实时触发——只有 mouseup 时才触发,拖拽中用 onChange"
157
+ ]
158
+ }
159
+ },
160
+ "typescriptPitfalls": [
161
+ {
162
+ "issue": "range 模式 value/onChange 类型是 number[],非 range 模式是 number,混用报 TS 错",
163
+ "wrong": "range value={50} onChange={(v) => setVal(v)} // range=true 时 v 是 number[],赋给 number 报错",
164
+ "right": "range value={[20, 80]} onChange={(v) => setRange(v as number[])} // range=true 显式 as number[]"
165
+ },
166
+ {
167
+ "issue": "SliderSingleProps 和 SliderRangeProps 是 union 类型,直接展开 props 时 TS 可能报不兼容",
168
+ "wrong": "const sliderProps: SliderSingleProps = { range: true, value: [0,50] } // range=true 应用 SliderRangeProps",
169
+ "right": "const sliderProps: SliderRangeProps = { range: true, value: [0, 50], onChange: (v) => setRange(v) }"
170
+ },
171
+ {
172
+ "issue": "tipFormatter 传 null 和不传的行为不同",
173
+ "wrong": "tipFormatter={null} // 期望默认格式化显示——null 表示完全隐藏 tooltip",
174
+ "right": "tipFormatter={undefined} // 不传或 undefined 使用内置 toString 格式化;null 隐藏 tooltip"
175
+ }
176
+ ],
177
+ "mapping": {
178
+ "realComponent": "Slider",
179
+ "adapter": null
180
+ }
181
+ }
@@ -0,0 +1,108 @@
1
+ {
2
+ "name": "SortBox",
3
+ "category": "Data Entry",
4
+ "description": "排序盒子,支持拖拽排序;每行内置 Drag 图标作为拖拽 handle",
5
+ "semantic": {
6
+ "intent": [
7
+ "拖拽排序",
8
+ "列表排序"
9
+ ],
10
+ "useCases": [
11
+ "自定义排序",
12
+ "优先级调整",
13
+ "列表管理",
14
+ "待办排序"
15
+ ],
16
+ "riskLevel": "low"
17
+ },
18
+ "variants": {
19
+ "border": {
20
+ "meaning": "边框样式;每行细边框"
21
+ },
22
+ "none": {
23
+ "meaning": "无样式;清爽布局无边框无背景"
24
+ },
25
+ "fill": {
26
+ "meaning": "填充样式(默认);每行带填充背景"
27
+ }
28
+ },
29
+ "states": [
30
+ "default",
31
+ "dragging"
32
+ ],
33
+ "idealProps": {
34
+ "list": {
35
+ "type": "SortBoxListItemProps[]",
36
+ "itemSchema": {
37
+ "render": { "type": "ReactNode", "description": "该行渲染内容(任意 ReactNode,组件内部加 left padding 视觉)" },
38
+ "id": { "type": "string | number", "description": "建议显式提供,用于 react-sortablejs key 唯一;未提供时 fallback 到数组 index" }
39
+ },
40
+ "description": "排序列表数据;SortBoxListItemProps 是开放接口(src/SortBox/index.tsx:13 已 export):render?: ReactNode(该行渲染内容) + 任意扩展字段 [name]: unknown(挂业务模型,如 _todo / _card);id 字段建议显式提供(string|number),未提供时 src handleList line 82-84 用 array index fallback"
41
+ },
42
+ "onSort": {
43
+ "type": "function",
44
+ "signature": "(list: SortBoxListItemProps[]) => void",
45
+ "description": "排序变化回调;⚠️ list 参数 = 【排序后的完整数组】,不是 sort 映射对象 / 不是 diff;src/SortBox/index.tsx:78 实证。业务侧从 list 项的扩展字段(如 _todo)取回业务模型透传父组件"
46
+ },
47
+ "type": {
48
+ "type": "'border' | 'none' | 'fill'",
49
+ "values": ["border", "none", "fill"],
50
+ "default": "'fill'",
51
+ "description": "视觉类型;fill 填充背景 / border 细边框 / none 无视觉装饰"
52
+ },
53
+ "marginBottom": {
54
+ "type": "string",
55
+ "default": "'10px'",
56
+ "description": "相邻 sort-item 之间下边距;CSS 单位字符串"
57
+ }
58
+ },
59
+ "do": [
60
+ "把业务模型挂在 SortBoxListItemProps 扩展字段(如 _todo / _card),onSort 回调中取回",
61
+ "显式提供 id 字段(string|number,保证 react-sortablejs key 唯一)",
62
+ "render 字段装载该行 UI(任意 ReactNode,组件内部加 left padding 视觉)",
63
+ "保存用户排序结果(直接保存 nextList 排序或映射回业务 id 列表)"
64
+ ],
65
+ "dont": [
66
+ "**不要把 onSort 参数当 sort 映射对象用** — 它是排序后的完整数组",
67
+ "列表项过多(> 100)时性能差(react-sortablejs 限制)",
68
+ "拖拽 handle 是固定的 .sort-icon 右侧 Drag 图标 — 不要自己实现拖拽逻辑",
69
+ "不要在 render 内放复杂表单组件(拖拽冲突)"
70
+ ],
71
+ "events": {
72
+ "onSort": {
73
+ "signature": "(list: SortBoxListItemProps[]) => void",
74
+ "asyncSupported": false,
75
+ "examples": [
76
+ "排序结束后触发,list 是排序后的完整数组(新顺序)",
77
+ "取业务 id 列表:onSort={(newList) => setOrderIds(newList.map(it => it._id))}",
78
+ "替换父组件 state:onSort={(newList) => setItems(newList)}"
79
+ ],
80
+ "commonMistakes": [
81
+ "把 list 参数当 diff/映射对象用——它是排序后的完整数组,不是变更集合",
82
+ "不传 onSort 时期望 SortBox 自己维护顺序——SortBox 是受控组件,必须在 onSort 里更新外部 list state",
83
+ "忘记显式提供 list 项的 id 字段——不提供时 fallback 到 index,拖拽后 React key 可能冲突"
84
+ ]
85
+ }
86
+ },
87
+ "typescriptPitfalls": [
88
+ {
89
+ "issue": "SortBoxListItemProps 索引签名允许任意字段,但 render 字段是 ReactNode 不是 string",
90
+ "wrong": "list={[{ render: 'plain text', id: 1 }]} // render 是 ReactNode,但 TS 接受 string(因为 ReactNode 包含 string)",
91
+ "right": "list={[{ render: <span>内容</span>, id: 1 }]} // 推荐传 ReactNode 而非纯字符串"
92
+ },
93
+ {
94
+ "issue": "onSort 返回的 list 是同一个数组(splice 就地修改后复制),直接赋给受控 list 可能引发渲染问题",
95
+ "wrong": "onSort={(newList) => setList(newList)} // newList 是就地修改后的扩展数组",
96
+ "right": "onSort={(newList) => setList([...newList])} // 解构保证新引用触发重渲"
97
+ },
98
+ {
99
+ "issue": "SortBoxProps 的 list 类型是 SortBoxListItemProps[],扩展字段类型是 unknown",
100
+ "wrong": "onSort={(newList) => console.log(newList[0].myField.name)} // unknown 类型,.name 报错",
101
+ "right": "onSort={(newList) => { const item = newList[0] as MyItem; console.log(item.myField.name); }}"
102
+ }
103
+ ],
104
+ "mapping": {
105
+ "realComponent": "SortBox",
106
+ "adapter": null
107
+ }
108
+ }
@@ -0,0 +1,104 @@
1
+ {
2
+ "name": "Status",
3
+ "category": "Data Display",
4
+ "description": "状态标签,用于展示状态信息",
5
+ "semantic": {
6
+ "intent": [
7
+ "状态展示",
8
+ "信息标记"
9
+ ],
10
+ "useCases": [
11
+ "任务状态",
12
+ "审批状态",
13
+ "系统状态"
14
+ ],
15
+ "riskLevel": "low"
16
+ },
17
+ "variants": {
18
+ "info": {
19
+ "meaning": "信息"
20
+ },
21
+ "success": {
22
+ "meaning": "成功"
23
+ },
24
+ "warning": {
25
+ "meaning": "警告"
26
+ },
27
+ "error": {
28
+ "meaning": "错误"
29
+ },
30
+ "completed": {
31
+ "meaning": "完成"
32
+ }
33
+ },
34
+ "states": [
35
+ "default"
36
+ ],
37
+ "idealProps": {
38
+ "status": {
39
+ "type": "enum",
40
+ "values": [
41
+ "info",
42
+ "success",
43
+ "warning",
44
+ "error",
45
+ "completed"
46
+ ],
47
+ "default": "info",
48
+ "description": "状态"
49
+ },
50
+ "text": {
51
+ "type": "ReactNode",
52
+ "description": "文本"
53
+ },
54
+ "icon": {
55
+ "type": "ReactNode | 'success' | 'error'",
56
+ "description": "自定义状态图标(src/Status/index.tsx:23 实证:`ReactNode | iconType`,iconType = 'success' | 'error'——传字符串 'success'/'error' 时渲染内置 SVG 图标,传 ReactNode 时直接渲染;**icon 存在时 status 样式类不生效**,src:37 `status && !icon && ...` 实证)"
57
+ },
58
+ "color": {
59
+ "type": "string",
60
+ "description": "自定义状态圆点颜色(src/Status/index.tsx:29,67-73 实证)。⚠️ **仅在未传 icon 时生效**(默认圆点模式):传任意合法 CSS 颜色值(hex/rgb/色名),渲染为原色实心圆点 + 0.1 alpha 光晕背景;不传时由 status 对应预设 CSS 类控制颜色"
61
+ },
62
+ "className": {
63
+ "type": "string",
64
+ "description": "自定义类名(src/Status/index.tsx:25 interface 声明,透传到根 span 元素)"
65
+ },
66
+ "style": {
67
+ "type": "React.CSSProperties",
68
+ "description": "自定义样式(src/Status/index.tsx:27 interface 声明,透传到根 span 元素)"
69
+ }
70
+ },
71
+ "do": [
72
+ "使用语义化的颜色(info/success/warning/error/completed 对应不同预设圆点颜色)",
73
+ "保持状态文案简短(status-text 无宽度限制,过长影响布局)",
74
+ "自定义颜色时用 color prop 传 CSS 色值(hex/rgb/名称)——组件自动生成 0.1 alpha 光晕背景",
75
+ "需要图标型 Status 时传 icon='success' 或 icon='error' 使用内置 SVG;传 ReactNode 显示自定义图标"
76
+ ],
77
+ "dont": [
78
+ "状态颜色混乱(不同语义用了相同颜色导致用户混淆)",
79
+ "**不要同时传 icon 和 status**——icon 存在时 status 对应的 CSS 样式类不追加(src:37 实证 `status && !icon`),两者视觉上会冲突",
80
+ "不要把 icon 传 'warning'/'info'/'completed' 字符串——内置 icon 只有 'success' 和 'error' 两种,传其他字符串渲染 null"
81
+ ],
82
+ "events": {},
83
+ "typescriptPitfalls": [
84
+ {
85
+ "issue": "icon prop 类型是 ReactNode | 'success' | 'error',传其他字符串(如 'warning')TS 可能不报错但运行时渲染 null",
86
+ "wrong": "icon='warning' // 字符串不在 iconType 枚举内,switch 走 default 分支返回 null",
87
+ "right": "icon={<WarningIcon />} // 传 ReactNode;内置字符串仅 'success' | 'error'"
88
+ },
89
+ {
90
+ "issue": "status 和 icon 同时传时 status 样式类不生效(src:37 条件 `status && !icon`)",
91
+ "wrong": "<Status status='error' icon={<CustomIcon />} /> // 期望 error 颜色,实际 status class 未追加",
92
+ "right": "<Status icon={<CustomIcon />} /> // 纯自定义图标时只传 icon;需要预设色时只传 status"
93
+ },
94
+ {
95
+ "issue": "color prop 仅在未传 icon 时生效(圆点模式),传 icon 后 color 无视觉效果",
96
+ "wrong": "<Status icon='success' color='#ff0000' /> // 图标模式 color 不影响图标颜色",
97
+ "right": "<Status status='error' color='#ff0000' /> // color 在圆点模式(无 icon)下生效"
98
+ }
99
+ ],
100
+ "mapping": {
101
+ "realComponent": "Status",
102
+ "adapter": null
103
+ }
104
+ }