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

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 (565) 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/codemods/modal-onCancel-to-onDismiss.js +69 -0
  103. package/es/AlignBox/component.json +89 -0
  104. package/es/AlignBox/index.css +1 -1
  105. package/es/AlignBox/index.d.ts +6 -2
  106. package/es/AlignBox/index.js +1 -1
  107. package/es/AlignBox/style/index.css +1 -1
  108. package/es/Anchor/anchorMenu/index.d.ts +2 -1
  109. package/es/Anchor/anchorMenu/index.js +36 -33
  110. package/es/Anchor/component.json +130 -0
  111. package/es/Anchor/index.js +50 -47
  112. package/es/Anchor/type.d.ts +8 -4
  113. package/es/Argv/component.json +216 -0
  114. package/es/Argv/index.d.ts +5 -6
  115. package/es/AutoBox/component.json +133 -0
  116. package/es/AutoBox/index.d.ts +3 -3
  117. package/es/AutoBox/index.js +1 -1
  118. package/es/AutoBox/protal.d.ts +2 -2
  119. package/es/AutoBox/protal.js +32 -29
  120. package/es/AutoButton/component.json +109 -0
  121. package/es/AutoButton/index.js +1 -1
  122. package/es/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  123. package/es/AutoTips/autoTipsMultiline/index.js +1 -1
  124. package/es/AutoTips/component.json +121 -0
  125. package/es/Badge/component.json +92 -0
  126. package/es/Breadcrumbs/component.json +142 -0
  127. package/es/Breadcrumbs/index.js +1 -1
  128. package/es/Button/SplitButton.d.ts +2 -2
  129. package/es/Button/component.json +168 -0
  130. package/es/Button/index.js +44 -44
  131. package/es/ButtonGroup/component.json +132 -0
  132. package/es/ButtonGroup/index.d.ts +1 -1
  133. package/es/Card/component.json +162 -0
  134. package/es/Card/index.d.ts +2 -2
  135. package/es/Card/index.js +2 -2
  136. package/es/Carousel/component.json +142 -0
  137. package/es/Carousel/index.d.ts +1 -1
  138. package/es/Cascader/Cascader.js +188 -180
  139. package/es/Cascader/component.json +196 -0
  140. package/es/Cascader/hooks/useEntities.js +7 -7
  141. package/es/Cascader/interface.d.ts +1 -0
  142. package/es/Cascader/utils/commonUtil.d.ts +1 -1
  143. package/es/Cascader/utils/commonUtil.js +16 -16
  144. package/es/Cascader/utils/treeUtil.d.ts +14 -5
  145. package/es/Cascader/utils/treeUtil.js +1 -1
  146. package/es/Checkbox/component.json +138 -0
  147. package/es/CheckboxGroup/component.json +152 -0
  148. package/es/CodeEditor/component.json +189 -0
  149. package/es/CodeEditor/index.d.ts +10 -9
  150. package/es/Collapse/component.json +166 -0
  151. package/es/Collapse/index.d.ts +1 -1
  152. package/es/Collapse/index.js +41 -33
  153. package/es/CollapseBox/component.json +84 -0
  154. package/es/CollapseLayout/component.json +155 -0
  155. package/es/ColorPicker/component.json +142 -0
  156. package/es/ComboSelect/component.json +181 -0
  157. package/es/ComboSelect/index.js +299 -287
  158. package/es/ComboSelect/interface.d.ts +6 -3
  159. package/es/ComboSelect/utils.d.ts +3 -3
  160. package/es/ComboSelect/utils.js +1 -1
  161. package/es/Container/component.json +111 -0
  162. package/es/ContentBox/component.json +81 -0
  163. package/es/CopyText/component.json +118 -0
  164. package/es/CycleSelector/component.json +98 -0
  165. package/es/CycleSelector/index.js +14 -13
  166. package/es/DatePicker/component.json +192 -0
  167. package/es/DatePicker/generatePicker/generateRangePicker.d.ts +0 -8
  168. package/es/DatePicker/generatePicker/generateRangePicker.js +73 -65
  169. package/es/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  170. package/es/DatePicker/generatePicker/index.d.ts +11 -4
  171. package/es/Descriptions/component.json +142 -0
  172. package/es/Descriptions/index.d.ts +1 -1
  173. package/es/Desktop/component.json +171 -0
  174. package/es/DragVerify/component.json +114 -0
  175. package/es/DragVerify/index.js +19 -19
  176. package/es/Drawer/component.json +200 -0
  177. package/es/Drawer/index.js +86 -86
  178. package/es/Drawer/interface.d.ts +1 -1
  179. package/es/Drawer/util.d.ts +1 -6
  180. package/es/Drawer/util.js +9 -6
  181. package/es/Dropdown/component.json +147 -0
  182. package/es/DynamicMultiBox/component.json +278 -0
  183. package/es/DynamicMultiBox/formItem.d.ts +1 -1
  184. package/es/DynamicMultiBox/rowForm.d.ts +2 -2
  185. package/es/Empty/component.json +123 -0
  186. package/es/Empty/index.css +1 -1
  187. package/es/Empty/index.d.ts +2 -2
  188. package/es/Empty/index.js +27 -26
  189. package/es/Empty/style/index.css +1 -1
  190. package/es/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  191. package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
  192. package/es/FieldForm/Form.d.ts +2 -2
  193. package/es/FieldForm/FormList.d.ts +2 -2
  194. package/es/FieldForm/component.json +196 -0
  195. package/es/FieldForm/context.d.ts +5 -1
  196. package/es/FieldForm/context.js +2 -2
  197. package/es/FieldForm/hooks/useForm.d.ts +4 -3
  198. package/es/FieldForm/hooks/useFormInstance.d.ts +1 -1
  199. package/es/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  200. package/es/FieldForm/hooks/useFormItemStatus.js +2 -2
  201. package/es/FieldForm/hooks/useItemRef.d.ts +1 -1
  202. package/es/FieldForm/hooks/useItemRef.js +6 -6
  203. package/es/Form/component.json +161 -0
  204. package/es/Form/index.d.ts +52 -49
  205. package/es/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  206. package/es/FormItem/compoments/defaultCompoments/index.js +12 -11
  207. package/es/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  208. package/es/FormItem/compoments/formFile/index.js +8 -8
  209. package/es/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  210. package/es/FormItem/compoments/formSelect/index.d.ts +1 -1
  211. package/es/FormItem/component.json +171 -0
  212. package/es/FormItem/index.d.ts +5 -5
  213. package/es/FormItem/index.js +23 -23
  214. package/es/FormItem/itemType.js +1 -1
  215. package/es/FunctionModal/component.json +197 -0
  216. package/es/FunctionModal/dialog.d.ts +1 -1
  217. package/es/FunctionModal/modalContext.d.ts +4 -1
  218. package/es/Help/component.json +118 -0
  219. package/es/HelperText/component.json +126 -0
  220. package/es/Image/component.json +165 -0
  221. package/es/InputCode/component.json +191 -0
  222. package/es/InputCode/index.d.ts +2 -2
  223. package/es/InputLang/component.json +205 -0
  224. package/es/InputLang/index.js +1 -1
  225. package/es/InputNumber/component.json +162 -0
  226. package/es/Label/component.json +126 -0
  227. package/es/Label/index.d.ts +2 -2
  228. package/es/Loading/component.json +91 -0
  229. package/es/Menu/component.json +180 -0
  230. package/es/Message/component.json +246 -0
  231. package/es/Message/index.d.ts +2 -2
  232. package/es/Message/index.js +2 -2
  233. package/es/Modal/Confirm/index.d.ts +1 -1
  234. package/es/Modal/Confirm/index.js +81 -75
  235. package/es/Modal/component.json +277 -0
  236. package/es/Modal/index.d.ts +97 -6
  237. package/es/Modal/index.js +174 -122
  238. package/es/Modal/interface.d.ts +1 -0
  239. package/es/MultiBox/component.json +216 -0
  240. package/es/MultiBox/index.js +19 -14
  241. package/es/Notification/component.json +184 -0
  242. package/es/OperateBtn/component.json +134 -0
  243. package/es/OperateBtn/index.d.ts +3 -3
  244. package/es/PageHeader/component.json +112 -0
  245. package/es/Pagination/component.json +181 -0
  246. package/es/Pagination/index.js +15 -15
  247. package/es/PasswordRules/component.json +105 -0
  248. package/es/PasswordRules/index.d.ts +4 -4
  249. package/es/PopConfirm/component.json +227 -0
  250. package/es/PopConfirm/index.d.ts +1 -1
  251. package/es/PopConfirm/index.js +1 -1
  252. package/es/PopMenu/component.json +131 -0
  253. package/es/PopMenu/hooks.d.ts +1 -1
  254. package/es/PopMenu/index.js +8 -8
  255. package/es/Popover/component.json +165 -0
  256. package/es/Popover/index.js +1 -1
  257. package/es/Progress/component.json +161 -0
  258. package/es/Prompt/component.json +144 -0
  259. package/es/Querying/component.json +96 -0
  260. package/es/Querying/index.css +1 -1
  261. package/es/Querying/index.d.ts +2 -2
  262. package/es/Querying/index.js +20 -19
  263. package/es/Querying/style/index.css +1 -1
  264. package/es/QuickReply/component.json +129 -0
  265. package/es/QuickReply/index.d.ts +1 -1
  266. package/es/Radio/component.json +136 -0
  267. package/es/RadioGroup/component.json +149 -0
  268. package/es/RangeInput/component.json +198 -0
  269. package/es/RangeInput/index.js +1 -1
  270. package/es/Result/component.json +104 -0
  271. package/es/ScrollBar/component.json +115 -0
  272. package/es/Search/component.json +177 -0
  273. package/es/Search/index.d.ts +1 -1
  274. package/es/Select/component.json +244 -0
  275. package/es/Select/index.js +113 -113
  276. package/es/SelectInput/component.json +184 -0
  277. package/es/Selector/component.json +203 -0
  278. package/es/Selector/index.js +28 -27
  279. package/es/Selector/interface.d.ts +1 -1
  280. package/es/Selector/selectorMain/index.js +2 -2
  281. package/es/Selector/selectorNode/index.js +1 -1
  282. package/es/Selector/util.d.ts +2 -2
  283. package/es/SelectorPicker/component.json +179 -0
  284. package/es/SelectorPicker/index.d.ts +5 -5
  285. package/es/SelectorPicker/index.js +15 -15
  286. package/es/SingleBox/component.json +151 -0
  287. package/es/SingleBox/index.d.ts +2 -2
  288. package/es/Slider/component.json +181 -0
  289. package/es/SortBox/component.json +108 -0
  290. package/es/Status/component.json +104 -0
  291. package/es/Stepper/component.json +129 -0
  292. package/es/Stepper/index.d.ts +2 -2
  293. package/es/Switch/component.json +207 -0
  294. package/es/Switch/index.css +1 -1
  295. package/es/Switch/index.d.ts +3 -2
  296. package/es/Switch/index.js +60 -59
  297. package/es/Switch/style/index.css +1 -1
  298. package/es/Table/component.json +547 -0
  299. package/es/Table/index.d.ts +2 -2
  300. package/es/Table/index.js +414 -414
  301. package/es/Table/interface.d.ts +6 -0
  302. package/es/Tabs/component.json +227 -0
  303. package/es/Tag/component.json +221 -0
  304. package/es/Tag/index.css +1 -1
  305. package/es/Tag/index.d.ts +1 -1
  306. package/es/Tag/index.js +20 -20
  307. package/es/Tag/style/index.css +1 -1
  308. package/es/TextEditor/component.json +186 -0
  309. package/es/TextEditor/index.d.ts +5 -5
  310. package/es/TextField/component.json +290 -0
  311. package/es/TextField/index.d.ts +2 -2
  312. package/es/TimePicker/component.json +176 -0
  313. package/es/Timeline/component.json +110 -0
  314. package/es/Title/component.json +156 -0
  315. package/es/ToggleButton/component.json +153 -0
  316. package/es/Tooltip/component.json +176 -0
  317. package/es/Tooltip/index.js +74 -63
  318. package/es/Tooltip/interface.d.ts +14 -1
  319. package/es/Tooltip/utils.js +6 -6
  320. package/es/Transfer/component.json +157 -0
  321. package/es/Tree/component.json +512 -0
  322. package/es/Upload/component.json +450 -0
  323. package/es/Utils/type.d.ts +0 -2
  324. package/es/index.d.ts +2 -0
  325. package/es/index.js +1 -1
  326. package/es/locale/en_US.d.ts +361 -0
  327. package/es/locale/en_US.js +364 -0
  328. package/es/locale/index.d.ts +1 -723
  329. package/es/locale/index2.js +10 -0
  330. package/es/locale/zh_CN.d.ts +361 -0
  331. package/es/locale/zh_CN.js +364 -0
  332. package/lib/AlignBox/component.json +89 -0
  333. package/lib/AlignBox/index.css +1 -1
  334. package/lib/AlignBox/index.d.ts +6 -2
  335. package/lib/AlignBox/index.js +1 -1
  336. package/lib/AlignBox/style/index.css +1 -1
  337. package/lib/Anchor/anchorMenu/index.d.ts +2 -1
  338. package/lib/Anchor/anchorMenu/index.js +1 -1
  339. package/lib/Anchor/component.json +130 -0
  340. package/lib/Anchor/index.js +1 -1
  341. package/lib/Anchor/type.d.ts +8 -4
  342. package/lib/Argv/component.json +216 -0
  343. package/lib/Argv/index.d.ts +5 -6
  344. package/lib/AutoBox/component.json +133 -0
  345. package/lib/AutoBox/index.d.ts +3 -3
  346. package/lib/AutoBox/index.js +1 -1
  347. package/lib/AutoBox/protal.d.ts +2 -2
  348. package/lib/AutoBox/protal.js +1 -1
  349. package/lib/AutoButton/component.json +109 -0
  350. package/lib/AutoButton/index.js +1 -1
  351. package/lib/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  352. package/lib/AutoTips/autoTipsMultiline/index.js +1 -1
  353. package/lib/AutoTips/component.json +121 -0
  354. package/lib/Badge/component.json +92 -0
  355. package/lib/Breadcrumbs/component.json +142 -0
  356. package/lib/Breadcrumbs/index.js +1 -1
  357. package/lib/Button/SplitButton.d.ts +2 -2
  358. package/lib/Button/component.json +168 -0
  359. package/lib/Button/index.js +1 -1
  360. package/lib/ButtonGroup/component.json +132 -0
  361. package/lib/ButtonGroup/index.d.ts +1 -1
  362. package/lib/Card/component.json +162 -0
  363. package/lib/Card/index.d.ts +2 -2
  364. package/lib/Card/index.js +1 -1
  365. package/lib/Carousel/component.json +142 -0
  366. package/lib/Carousel/index.d.ts +1 -1
  367. package/lib/Cascader/Cascader.js +1 -1
  368. package/lib/Cascader/component.json +196 -0
  369. package/lib/Cascader/hooks/useEntities.js +1 -1
  370. package/lib/Cascader/interface.d.ts +1 -0
  371. package/lib/Cascader/utils/commonUtil.d.ts +1 -1
  372. package/lib/Cascader/utils/commonUtil.js +1 -1
  373. package/lib/Cascader/utils/treeUtil.d.ts +14 -5
  374. package/lib/Cascader/utils/treeUtil.js +1 -1
  375. package/lib/Checkbox/component.json +138 -0
  376. package/lib/CheckboxGroup/component.json +152 -0
  377. package/lib/CodeEditor/component.json +189 -0
  378. package/lib/CodeEditor/index.d.ts +10 -9
  379. package/lib/Collapse/component.json +166 -0
  380. package/lib/Collapse/index.d.ts +1 -1
  381. package/lib/Collapse/index.js +1 -1
  382. package/lib/CollapseBox/component.json +84 -0
  383. package/lib/CollapseLayout/component.json +155 -0
  384. package/lib/ColorPicker/component.json +142 -0
  385. package/lib/ComboSelect/component.json +181 -0
  386. package/lib/ComboSelect/index.js +1 -1
  387. package/lib/ComboSelect/interface.d.ts +6 -3
  388. package/lib/ComboSelect/utils.d.ts +3 -3
  389. package/lib/ComboSelect/utils.js +1 -1
  390. package/lib/Container/component.json +111 -0
  391. package/lib/ContentBox/component.json +81 -0
  392. package/lib/CopyText/component.json +118 -0
  393. package/lib/CycleSelector/component.json +98 -0
  394. package/lib/CycleSelector/index.js +1 -1
  395. package/lib/DatePicker/component.json +192 -0
  396. package/lib/DatePicker/generatePicker/generateRangePicker.d.ts +0 -8
  397. package/lib/DatePicker/generatePicker/generateRangePicker.js +1 -1
  398. package/lib/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  399. package/lib/DatePicker/generatePicker/index.d.ts +11 -4
  400. package/lib/Descriptions/component.json +142 -0
  401. package/lib/Descriptions/index.d.ts +1 -1
  402. package/lib/Desktop/component.json +171 -0
  403. package/lib/DragVerify/component.json +114 -0
  404. package/lib/DragVerify/index.js +1 -1
  405. package/lib/Drawer/component.json +200 -0
  406. package/lib/Drawer/index.js +1 -1
  407. package/lib/Drawer/interface.d.ts +1 -1
  408. package/lib/Drawer/util.d.ts +1 -6
  409. package/lib/Drawer/util.js +1 -1
  410. package/lib/Dropdown/component.json +147 -0
  411. package/lib/DynamicMultiBox/component.json +278 -0
  412. package/lib/DynamicMultiBox/formItem.d.ts +1 -1
  413. package/lib/DynamicMultiBox/rowForm.d.ts +2 -2
  414. package/lib/Empty/component.json +123 -0
  415. package/lib/Empty/index.css +1 -1
  416. package/lib/Empty/index.d.ts +2 -2
  417. package/lib/Empty/index.js +1 -1
  418. package/lib/Empty/style/index.css +1 -1
  419. package/lib/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  420. package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
  421. package/lib/FieldForm/Form.d.ts +2 -2
  422. package/lib/FieldForm/FormList.d.ts +2 -2
  423. package/lib/FieldForm/component.json +196 -0
  424. package/lib/FieldForm/context.d.ts +5 -1
  425. package/lib/FieldForm/context.js +1 -1
  426. package/lib/FieldForm/hooks/useForm.d.ts +4 -3
  427. package/lib/FieldForm/hooks/useFormInstance.d.ts +1 -1
  428. package/lib/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  429. package/lib/FieldForm/hooks/useFormItemStatus.js +1 -1
  430. package/lib/FieldForm/hooks/useItemRef.d.ts +1 -1
  431. package/lib/FieldForm/hooks/useItemRef.js +1 -1
  432. package/lib/Form/component.json +161 -0
  433. package/lib/Form/index.d.ts +52 -49
  434. package/lib/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  435. package/lib/FormItem/compoments/defaultCompoments/index.js +1 -1
  436. package/lib/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  437. package/lib/FormItem/compoments/formFile/index.js +1 -1
  438. package/lib/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  439. package/lib/FormItem/compoments/formSelect/index.d.ts +1 -1
  440. package/lib/FormItem/component.json +171 -0
  441. package/lib/FormItem/index.d.ts +5 -5
  442. package/lib/FormItem/index.js +1 -1
  443. package/lib/FormItem/itemType.js +1 -1
  444. package/lib/FunctionModal/component.json +197 -0
  445. package/lib/FunctionModal/dialog.d.ts +1 -1
  446. package/lib/FunctionModal/modalContext.d.ts +4 -1
  447. package/lib/Help/component.json +118 -0
  448. package/lib/HelperText/component.json +126 -0
  449. package/lib/Image/component.json +165 -0
  450. package/lib/InputCode/component.json +191 -0
  451. package/lib/InputCode/index.d.ts +2 -2
  452. package/lib/InputLang/component.json +205 -0
  453. package/lib/InputLang/index.js +1 -1
  454. package/lib/InputNumber/component.json +162 -0
  455. package/lib/Label/component.json +126 -0
  456. package/lib/Label/index.d.ts +2 -2
  457. package/lib/Loading/component.json +91 -0
  458. package/lib/Menu/component.json +180 -0
  459. package/lib/Message/component.json +246 -0
  460. package/lib/Message/index.d.ts +2 -2
  461. package/lib/Message/index.js +1 -1
  462. package/lib/Modal/Confirm/index.d.ts +1 -1
  463. package/lib/Modal/Confirm/index.js +1 -1
  464. package/lib/Modal/component.json +277 -0
  465. package/lib/Modal/index.d.ts +97 -6
  466. package/lib/Modal/index.js +1 -1
  467. package/lib/Modal/interface.d.ts +1 -0
  468. package/lib/MultiBox/component.json +216 -0
  469. package/lib/MultiBox/index.js +1 -1
  470. package/lib/Notification/component.json +184 -0
  471. package/lib/OperateBtn/component.json +134 -0
  472. package/lib/OperateBtn/index.d.ts +3 -3
  473. package/lib/PageHeader/component.json +112 -0
  474. package/lib/Pagination/component.json +181 -0
  475. package/lib/Pagination/index.js +1 -1
  476. package/lib/PasswordRules/component.json +105 -0
  477. package/lib/PasswordRules/index.d.ts +4 -4
  478. package/lib/PopConfirm/component.json +227 -0
  479. package/lib/PopConfirm/index.d.ts +1 -1
  480. package/lib/PopConfirm/index.js +1 -1
  481. package/lib/PopMenu/component.json +131 -0
  482. package/lib/PopMenu/hooks.d.ts +1 -1
  483. package/lib/PopMenu/index.js +1 -1
  484. package/lib/Popover/component.json +165 -0
  485. package/lib/Popover/index.js +1 -1
  486. package/lib/Progress/component.json +161 -0
  487. package/lib/Prompt/component.json +144 -0
  488. package/lib/Querying/component.json +96 -0
  489. package/lib/Querying/index.css +1 -1
  490. package/lib/Querying/index.d.ts +2 -2
  491. package/lib/Querying/index.js +1 -1
  492. package/lib/Querying/style/index.css +1 -1
  493. package/lib/QuickReply/component.json +129 -0
  494. package/lib/QuickReply/index.d.ts +1 -1
  495. package/lib/Radio/component.json +136 -0
  496. package/lib/RadioGroup/component.json +149 -0
  497. package/lib/RangeInput/component.json +198 -0
  498. package/lib/RangeInput/index.js +1 -1
  499. package/lib/Result/component.json +104 -0
  500. package/lib/ScrollBar/component.json +115 -0
  501. package/lib/Search/component.json +177 -0
  502. package/lib/Search/index.d.ts +1 -1
  503. package/lib/Select/component.json +244 -0
  504. package/lib/Select/index.js +1 -1
  505. package/lib/SelectInput/component.json +184 -0
  506. package/lib/Selector/component.json +203 -0
  507. package/lib/Selector/index.js +1 -1
  508. package/lib/Selector/interface.d.ts +1 -1
  509. package/lib/Selector/selectorMain/index.js +1 -1
  510. package/lib/Selector/selectorNode/index.js +1 -1
  511. package/lib/Selector/util.d.ts +2 -2
  512. package/lib/SelectorPicker/component.json +179 -0
  513. package/lib/SelectorPicker/index.d.ts +5 -5
  514. package/lib/SelectorPicker/index.js +1 -1
  515. package/lib/SingleBox/component.json +151 -0
  516. package/lib/SingleBox/index.d.ts +2 -2
  517. package/lib/Slider/component.json +181 -0
  518. package/lib/SortBox/component.json +108 -0
  519. package/lib/Status/component.json +104 -0
  520. package/lib/Stepper/component.json +129 -0
  521. package/lib/Stepper/index.d.ts +2 -2
  522. package/lib/Switch/component.json +207 -0
  523. package/lib/Switch/index.css +1 -1
  524. package/lib/Switch/index.d.ts +3 -2
  525. package/lib/Switch/index.js +1 -1
  526. package/lib/Switch/style/index.css +1 -1
  527. package/lib/Table/component.json +547 -0
  528. package/lib/Table/index.d.ts +2 -2
  529. package/lib/Table/index.js +1 -1
  530. package/lib/Table/interface.d.ts +6 -0
  531. package/lib/Tabs/component.json +227 -0
  532. package/lib/Tag/component.json +221 -0
  533. package/lib/Tag/index.css +1 -1
  534. package/lib/Tag/index.d.ts +1 -1
  535. package/lib/Tag/index.js +1 -1
  536. package/lib/Tag/style/index.css +1 -1
  537. package/lib/TextEditor/component.json +186 -0
  538. package/lib/TextEditor/index.d.ts +5 -5
  539. package/lib/TextField/component.json +290 -0
  540. package/lib/TextField/index.d.ts +2 -2
  541. package/lib/TimePicker/component.json +176 -0
  542. package/lib/Timeline/component.json +110 -0
  543. package/lib/Title/component.json +156 -0
  544. package/lib/ToggleButton/component.json +153 -0
  545. package/lib/Tooltip/component.json +176 -0
  546. package/lib/Tooltip/index.js +1 -1
  547. package/lib/Tooltip/interface.d.ts +14 -1
  548. package/lib/Tooltip/utils.js +1 -1
  549. package/lib/Transfer/component.json +157 -0
  550. package/lib/Tree/component.json +512 -0
  551. package/lib/Upload/component.json +450 -0
  552. package/lib/Utils/type.d.ts +0 -2
  553. package/lib/index.d.ts +2 -0
  554. package/lib/index.js +1 -1
  555. package/lib/locale/en_US.d.ts +361 -0
  556. package/lib/locale/en_US.js +2 -0
  557. package/lib/locale/index.d.ts +1 -723
  558. package/lib/locale/index2.js +2 -0
  559. package/lib/locale/zh_CN.d.ts +361 -0
  560. package/lib/locale/zh_CN.js +2 -0
  561. package/package.json +10 -3
  562. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  563. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
  564. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  565. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
@@ -0,0 +1,290 @@
1
+ {
2
+ "name": "TextField",
3
+ "category": "Form",
4
+ "description": "用于文本输入的表单组件",
5
+ "semantic": {
6
+ "intent": [
7
+ "输入文本",
8
+ "搜索",
9
+ "密码输入",
10
+ "多行文本"
11
+ ],
12
+ "useCases": [
13
+ "表单填写",
14
+ "搜索栏",
15
+ "评论区",
16
+ "信息录入"
17
+ ],
18
+ "riskLevel": "normal"
19
+ },
20
+ "variants": {
21
+ "standard": {
22
+ "meaning": "标准输入框"
23
+ }
24
+ },
25
+ "states": [
26
+ "default",
27
+ "disabled",
28
+ "error",
29
+ "focus"
30
+ ],
31
+ "idealProps": {
32
+ "value": {
33
+ "type": "string | number",
34
+ "description": "受控模式:输入框的值。与 onChange 配合使用"
35
+ },
36
+ "defaultValue": {
37
+ "type": "string | number",
38
+ "description": "非受控模式:初始值(不传 value 时生效)"
39
+ },
40
+ "onChange": {
41
+ "type": "function",
42
+ "signature": "(event: React.ChangeEvent<HTMLInputElement>) => void",
43
+ "description": "值变化回调。从 event.target.value 取新值"
44
+ },
45
+ "label": {
46
+ "type": "ReactNode",
47
+ "description": "输入框标题"
48
+ },
49
+ "placeholder": {
50
+ "type": "string",
51
+ "description": "占位文本"
52
+ },
53
+ "disabled": {
54
+ "type": "boolean",
55
+ "default": false,
56
+ "description": "是否禁用"
57
+ },
58
+ "error": {
59
+ "type": "boolean",
60
+ "default": false,
61
+ "description": "是否显示错误状态"
62
+ },
63
+ "helperText": {
64
+ "type": "ReactNode",
65
+ "description": "辅助提示文本或错误信息(error=true 时显示红色)"
66
+ },
67
+ "type": {
68
+ "type": "enum",
69
+ "values": [
70
+ "text",
71
+ "password",
72
+ "number"
73
+ ],
74
+ "default": "text",
75
+ "description": "输入框类型。password 类型内置显示/隐藏切换图标"
76
+ },
77
+ "multiline": {
78
+ "type": "boolean",
79
+ "default": false,
80
+ "description": "是否为多行文本域(textarea)"
81
+ },
82
+ "rows": {
83
+ "type": "number",
84
+ "default": 4,
85
+ "description": "多行文本域的行数(multiline=true 时生效)"
86
+ },
87
+ "size": {
88
+ "type": "enum",
89
+ "values": [
90
+ "small",
91
+ "medium",
92
+ "large"
93
+ ],
94
+ "default": "large",
95
+ "description": "控件大小"
96
+ },
97
+ "allowClear": {
98
+ "type": "boolean",
99
+ "default": false,
100
+ "description": "是否显示清除按钮"
101
+ },
102
+ "limitLength": {
103
+ "type": "number",
104
+ "description": "最大字符长度限制(同步 api.ts 协议 A:**onBlur 失焦时**截断到 limitLength + 触发新 onChange,**输入阶段不阻断**;需实时阻断请用 onChange slice。同时在输入框右下渲染 current/limitLength 计数)"
105
+ },
106
+ "addonBefore": {
107
+ "type": "ReactNode",
108
+ "description": "前置内容(图标或文字)"
109
+ },
110
+ "addonAfter": {
111
+ "type": "ReactNode",
112
+ "description": "后置内容(图标或文字)"
113
+ },
114
+ "autoComplete": {
115
+ "type": "string",
116
+ "description": "浏览器自动填充控制。React 使用 camelCase 的 autoComplete(不是 autocomplete),对应 HTML autocomplete 属性。R5 §A1 升级:旧字段名 autocomplete 已废弃,必须使用 autoComplete。常用值:'off'=禁用自动填充;'on'=启用;'new-password'=禁用密码自动填充;'email'/'username' 等=按字段类型提示。❌ 错误:autocomplete='off'(旧写法,React 忽略);✅ 正确:autoComplete='off'"
117
+ },
118
+ "autoFocus": {
119
+ "type": "boolean",
120
+ "description": "自动获得焦点"
121
+ },
122
+ "name": {
123
+ "type": "string",
124
+ "description": "input name 属性,表单提交时使用"
125
+ },
126
+ "required": {
127
+ "type": "boolean",
128
+ "default": false,
129
+ "description": "是否必填(显示 * 标记)"
130
+ },
131
+ "labelMode": {
132
+ "type": "enum",
133
+ "values": ["outside", "inside"],
134
+ "default": "outside",
135
+ "description": "标题位置:outside(默认 · 标题在输入框上方)/ inside(标题作 floating label 嵌在输入框内,空态时与 placeholder 视觉位置重叠 · 聚焦或有值时上浮至框顶部 · 详见 api.ts 协议 H)"
136
+ },
137
+ "rightIcon": {
138
+ "type": "ReactNode",
139
+ "description": "输入框内部右侧图标。**与 onClickIcon 自动联动**(协议 F):点击此图标会触发 onClickIcon 回调,无需额外配置 showRightIcon=true"
140
+ },
141
+ "showRightIcon": {
142
+ "type": "boolean",
143
+ "default": true,
144
+ "description": "是否显示 rightIcon(默认 true · 仅在需要隐藏时传 false)"
145
+ },
146
+ "onClickIcon": {
147
+ "type": "function",
148
+ "signature": "(event: React.PointerEvent<HTMLSpanElement>) => void",
149
+ "description": "点击 rightIcon 区域回调。仅传 rightIcon 不传此 prop → 图标只装饰;两者配对使用语义清晰"
150
+ },
151
+ "onClear": {
152
+ "type": "function",
153
+ "signature": "() => void",
154
+ "description": "点击清空按钮回调(配合 allowClear=true 使用)。受控模式下 onClear 触发后**还会自动触发 onChange('')**;推荐 onClear 内显式 setKeyword('') 作为兜底"
155
+ },
156
+ "onEnter": {
157
+ "type": "function",
158
+ "signature": "(event: React.KeyboardEvent<HTMLInputElement>) => void",
159
+ "description": "按下回车键回调(独立于 onKeydown · 仅在 keyCode 13 时触发,便于实现回车搜索)"
160
+ },
161
+ "fetchSuggestions": {
162
+ "type": "function",
163
+ "signature": "(val: string, cb: (data: any[]) => void) => void",
164
+ "description": "返回输入建议的方法(异步搜索 / 联想)。在 cb 回调中传入数据数组;数据元素可为对象(配 showSelectName 指定回填字段)或单值"
165
+ },
166
+ "renderSelectItem": {
167
+ "type": "function",
168
+ "signature": "(item: any) => ReactNode",
169
+ "description": "自定义下拉列表每项的渲染(例如显示 name + 部门组合)。**与 showSelectName 互不影响** — 此 prop 控制下拉显示,showSelectName 独立控制回填字段"
170
+ },
171
+ "showSelectName": {
172
+ "type": "string",
173
+ "default": "value",
174
+ "description": "选中下拉项后回填到输入框的字段名(默认取 item.value;若数据结构是 {name, ...} 则传 'name')。与 renderSelectItem 协同时:下拉显示由 renderSelectItem 自定义,回填字段由 showSelectName 独立控制"
175
+ },
176
+ "onSelect": {
177
+ "type": "function",
178
+ "signature": "(item: any) => void",
179
+ "description": "选择下拉项回调。item 类型即为 fetchSuggestions cb 传入的数据元素(业务自定义,需 cast)"
180
+ },
181
+ "hideErrorDom": {
182
+ "type": "boolean | null",
183
+ "default": false,
184
+ "description": "true=非错误态不渲染 helperText 占位行(节省垂直空间);false=都渲染(默认 · 保持表单各行高度一致);null=完全不渲染该 dom 节点"
185
+ }
186
+ },
187
+ "protocolSummary": {
188
+ "A_limitLength": "字符计数 + onBlur 失焦截断(**非实时阻断**),实时阻断改用 onChange slice",
189
+ "B_allowClear_addonAfter": "可共存 — allowClear 在框内右侧,addonAfter 在框外独立后缀盒,不重叠",
190
+ "C_rightSlot_order": "渲染顺序 allowClear → limitMemo → rightIcon(框内),addonAfter 在框外",
191
+ "D_multiline_eventType": "multiline=true 时 event.target 实际是 HTMLTextAreaElement(api 表声明 InputElement 是简化),业务 cast 即可 — 对 onChange/onKeyUp/onKeydown/onFocus/onBlur 五个事件一致适用",
192
+ "E_onClear_controlled": "受控 onClear 触发后会自动触发 onChange(''),推荐父层兜底 setState('')",
193
+ "F_rightIcon_onClickIcon": "传入 rightIcon 后点击自动触发 onClickIcon(无需 showRightIcon=true)",
194
+ "G_no_inputProps_passthrough": "**TextField 不支持 inputProps 透传** — 原生 HTML 属性(如 maxLength)需用组件显式 prop 或 onChange 控制",
195
+ "H_labelMode_inside": "inside 模式 = floating label:空态 label 在框中央 · 聚焦/有值时上浮至框顶 · 与 placeholder 空态视觉重叠"
196
+ },
197
+ "crossPropInteractions": [
198
+ "rightIcon + onClickIcon = 配对使用(自动联动)",
199
+ "allowClear + addonAfter = 完全可共存(框内 + 框外)",
200
+ "fetchSuggestions + renderSelectItem + showSelectName = 三件套协同(取数 + 自定义渲染 + 回填字段)",
201
+ "limitLength = 失焦截断 + 计数显示(实时阻断请用 onChange slice)",
202
+ "multiline=true + 所有 event = event.target 实际是 HTMLTextAreaElement(api 简化为 InputElement,需 cast 才能用 textarea 特性)"
203
+ ],
204
+ "commonMisconceptions": [
205
+ "❌ inputProps={{ maxLength: N }} 透传 — 不支持,改用 onChange slice",
206
+ "❌ limitLength 会实时阻断键入 — 实际是 onBlur 截断",
207
+ "❌ allowClear 与 addonAfter 不能共存 — 完全可以共存",
208
+ "❌ rightIcon 需要 showRightIcon=true 才显示 — 默认即 true",
209
+ "❌ labelMode='inside' 时同时传 label 和 placeholder — 空态视觉重叠,推荐二选一"
210
+ ],
211
+ "do": [
212
+ "使用 label 清晰描述输入内容",
213
+ "输入错误时提供 clear 的 helperText 提示",
214
+ "密码输入框应使用 type='password'",
215
+ "multiline=true 时 event.target 实际是 HTMLTextAreaElement,需要 cast:`(e.target as HTMLTextAreaElement).value`",
216
+ "受控模式下 onClear 触发后还会自动触发 onChange(''),推荐在 onClear 中显式 setState('') 兜底"
217
+ ],
218
+ "dont": [
219
+ "在没有 label 的情况下仅依赖 placeholder",
220
+ "在单行输入框中输入过长内容(应切换 multiline)",
221
+ "不要用 inputProps={{ maxLength: N }} 透传 HTML 属性——TextField 不支持 inputProps 透传,实时字数限制用 onChange slice",
222
+ "不要期望 limitLength 实时阻断键入——limitLength 是 onBlur 失焦后截断,输入阶段不拦截"
223
+ ],
224
+ "events": {
225
+ "onChange": {
226
+ "signature": "(event: React.ChangeEvent<HTMLInputElement>) => void",
227
+ "asyncSupported": false,
228
+ "examples": [
229
+ "受控模式:onChange={(e) => setValue(e.target.value)}——从 event.target.value 取新值",
230
+ "multiline=true 时 event.target 实际是 HTMLTextAreaElement,需 cast:`(e.target as HTMLTextAreaElement).value`",
231
+ "与 limitLength 配合实时截断:onChange={(e) => setValue(e.target.value.slice(0, MAX_LEN))}"
232
+ ],
233
+ "commonMistakes": [
234
+ "假设 onChange 接收 value 字符串而非 React.ChangeEvent——与 antd Input 不同,这里签名是 event 对象,需 e.target.value 取值",
235
+ "multiline=true 时对 event.target 用 HTMLInputElement 方法(如 .selectionStart)——此时 event.target 是 HTMLTextAreaElement(src 实证:onChange 内部 cast 为 React.FocusEvent<HTMLInputElement>,但实际 target 是 textarea)",
236
+ "在 limitLength 场景只监听 onChange 而不处理 onBlur——limitLength 截断发生在 onBlur,onChange 阶段不截断",
237
+ "假设 onClear 点击后不触发 onChange——受控模式下点清空会先触发 onClear 再触发 onChange('')(src/TextField/index.tsx clickClean 函数实证)"
238
+ ]
239
+ },
240
+ "onEnter": {
241
+ "signature": "(event: React.KeyboardEvent<HTMLInputElement>) => void",
242
+ "asyncSupported": false,
243
+ "examples": [
244
+ "按 Enter 键触发搜索:onEnter={(e) => handleSearch(e.currentTarget.value)}",
245
+ "回车提交表单:onEnter={() => formRef.current.check?.()}"
246
+ ],
247
+ "commonMistakes": [
248
+ "与 onKeydown 混淆——onEnter 只在 keyCode===13 时触发,相当于 onKeydown 的 Enter 子集;如需监听所有键,用 onKeydown",
249
+ "multiline=true 时期望 onEnter 换行——onEnter 总是触发,需业务侧自行判断是否阻止换行(e.preventDefault())"
250
+ ]
251
+ },
252
+ "onBlur": {
253
+ "signature": "(event: React.FocusEvent<HTMLInputElement>) => void",
254
+ "asyncSupported": false,
255
+ "examples": [
256
+ "失焦校验:onBlur={() => validate(value)}",
257
+ "limitLength 截断时机:onBlur 后组件自动截断并触发 onChange(src 实证 handValueLimit)"
258
+ ],
259
+ "commonMistakes": [
260
+ "在 onBlur 里读 e.target.value 期望得到截断后的值——onBlur 触发时截断还没完成,截断结果通过后续 onChange 回来"
261
+ ]
262
+ }
263
+ },
264
+ "typescriptPitfalls": [
265
+ {
266
+ "issue": "onChange 签名是 React.ChangeEvent<HTMLInputElement> 而非 (value: string),直接传 setter 会报类型错误",
267
+ "wrong": "onChange={setValue} // setValue: (v: string) => void,签名不匹配",
268
+ "right": "onChange={(e) => setValue(e.target.value)}"
269
+ },
270
+ {
271
+ "issue": "multiline=true 时 event.target 实际是 HTMLTextAreaElement,但 Props 声明为 HTMLInputElement",
272
+ "wrong": "onChange={(e) => { const len = e.target.selectionStart; }} // selectionStart 在 multiline 时类型检查通过,但 cast 可能出错",
273
+ "right": "onChange={(e) => { if (multiline) { const ta = e.target as unknown as HTMLTextAreaElement; } else { const inp = e.target as HTMLInputElement; } }}"
274
+ },
275
+ {
276
+ "issue": "onKeydown(小写 d)不是 onKeyDown(驼峰 D),React 标准事件名不同",
277
+ "wrong": "onKeyDown={handleKey} // React 标准 prop,TextField 不接受——组件封装的 prop 是 onKeydown",
278
+ "right": "onKeydown={handleKey} // src/TextField/index.tsx TextFieldProps 接口定义的 prop 名是 onKeydown(小写 d)"
279
+ },
280
+ {
281
+ "issue": "autoComplete 必须驼峰(不是 autocomplete),否则 React 忽略",
282
+ "wrong": "autocomplete='off' // HTML 属性小写写法,React 会警告并忽略",
283
+ "right": "autoComplete='off' // src/TextField/index.tsx 实证:prop 名为 autoComplete(驼峰)"
284
+ }
285
+ ],
286
+ "mapping": {
287
+ "realComponent": "TextField",
288
+ "adapter": null
289
+ }
290
+ }
@@ -0,0 +1,176 @@
1
+ {
2
+ "name": "TimePicker",
3
+ "category": "Data Entry",
4
+ "description": "时间选择器,基于 DatePicker 封装,支持单时间选择与范围选择(RangePicker)",
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
+ "range": {
22
+ "meaning": "时间范围选择——用 TimePicker.RangePicker 或 TimePicker.TimeRangePicker(两者等价)"
23
+ }
24
+ },
25
+ "states": [
26
+ "default",
27
+ "disabled",
28
+ "error"
29
+ ],
30
+ "idealProps": {
31
+ "value": {
32
+ "type": "Dayjs | null",
33
+ "description": "受控时间值(Dayjs 对象);清空时传 null;与 onChange 配套使用"
34
+ },
35
+ "defaultValue": {
36
+ "type": "Dayjs",
37
+ "description": "非受控默认时间值;受控模式只传 value + onChange"
38
+ },
39
+ "format": {
40
+ "type": "string",
41
+ "default": "HH:mm:ss",
42
+ "description": "展示的时间格式,支持 'HH:mm' / 'HH:mm:ss' / 'hh:mm a'(12小时制)等"
43
+ },
44
+ "onChange": {
45
+ "type": "function",
46
+ "signature": "(time: Dayjs | null, timeString: string) => void",
47
+ "description": "时间发生变化的回调;清空时 time=null,timeString='';来自 rc-picker 继承"
48
+ },
49
+ "disabled": {
50
+ "type": "boolean",
51
+ "default": false,
52
+ "description": "是否禁用"
53
+ },
54
+ "disabledTooltip": {
55
+ "type": "TooltipProps",
56
+ "description": "禁用状态下的 Tooltip 配置(src/TimePicker/index.tsx:35);disabled=true 时触发 Tooltip 包裹",
57
+ "required": false
58
+ },
59
+ "placeholder": {
60
+ "type": "string",
61
+ "description": "输入框占位提示"
62
+ },
63
+ "use12Hours": {
64
+ "type": "boolean",
65
+ "default": false,
66
+ "description": "使用 12 小时制,开启时 format 建议配置为 'hh:mm a'"
67
+ },
68
+ "allowClear": {
69
+ "type": "boolean",
70
+ "default": true,
71
+ "description": "是否展示清除按钮(与 DatePicker 共享同一实现,默认 true)",
72
+ "required": false
73
+ },
74
+ "open": {
75
+ "type": "boolean",
76
+ "description": "受控控制面板是否打开",
77
+ "required": false
78
+ },
79
+ "onOpenChange": {
80
+ "type": "function",
81
+ "signature": "(open: boolean) => void",
82
+ "description": "面板打开/关闭回调",
83
+ "required": false
84
+ },
85
+ "disabledHours": {
86
+ "type": "function",
87
+ "signature": "() => number[]",
88
+ "description": "返回禁止选择的小时数组,例:() => [0,1,2,3] 禁止凌晨时段",
89
+ "required": false
90
+ },
91
+ "disabledMinutes": {
92
+ "type": "function",
93
+ "signature": "(selectedHour: number) => number[]",
94
+ "description": "返回禁止选择的分钟数组(依赖已选小时动态计算)",
95
+ "required": false
96
+ },
97
+ "disabledSeconds": {
98
+ "type": "function",
99
+ "signature": "(selectedHour: number, selectedMinute: number) => number[]",
100
+ "description": "返回禁止选择的秒数组",
101
+ "required": false
102
+ },
103
+ "showNow": {
104
+ "type": "boolean",
105
+ "description": "是否显示「此刻」快捷按钮",
106
+ "required": false
107
+ },
108
+ "addon": {
109
+ "type": "function",
110
+ "signature": "() => React.ReactNode",
111
+ "description": "面板底部额外内容(等价于 renderExtraFooter,优先级低于 renderExtraFooter);src/TimePicker/index.tsx:41-48",
112
+ "required": false
113
+ }
114
+ },
115
+ "do": [
116
+ "受控模式:传 value(Dayjs | null)+ onChange;清空时用 null 而不是空字符串",
117
+ "范围选择用 TimePicker.RangePicker(与 TimePicker.TimeRangePicker 等价)",
118
+ "禁用特定时间段用 disabledHours / disabledMinutes / disabledSeconds 组合",
119
+ "use12Hours=true 时同步设置 format='hh:mm a' 以保持展示一致",
120
+ "disabled=true 时可配合 disabledTooltip 提供操作权限提示"
121
+ ],
122
+ "dont": [
123
+ "在需要选时间段的场景使用两个 TimePicker——应用 TimePicker.RangePicker",
124
+ "传字符串给 value——value 必须是 Dayjs 对象或 null(非字符串)",
125
+ "忽略清空场景:onChange(null, '') 表示清空,直接存 time 会把 null 存入 state",
126
+ "rc-* 库 strict 校验可能报告额外 prop(已知边缘情况,非 metadata 错误)"
127
+ ],
128
+ "events": {
129
+ "onChange": {
130
+ "signature": "(time: Dayjs | null, timeString: string) => void",
131
+ "asyncSupported": false,
132
+ "examples": [
133
+ "时间选中时:time 为 Dayjs 对象,timeString 为 format 格式化字符串(如 '14:30:00')",
134
+ "清空时:time=null,timeString=''——需判断 null 避免存入 state",
135
+ "受控模式更新:onChange={(t) => setValue(t)} 同步更新 state"
136
+ ],
137
+ "commonMistakes": [
138
+ "只用 timeString 而忽略 time——timeString 是字符串,跨时区转换需用 Dayjs 对象",
139
+ "不处理 null:allowClear=true 用户点叉触发 onChange(null, ''),直接 setValue(time) 会存入 null",
140
+ "RangePicker 的 onChange 签名不同:(times: [Dayjs,Dayjs]|null, timeStrings:[string,string]) => void"
141
+ ]
142
+ },
143
+ "onOpenChange": {
144
+ "signature": "(open: boolean) => void",
145
+ "asyncSupported": false,
146
+ "examples": [
147
+ "面板弹出时触发 onOpenChange(true),关闭时触发 onOpenChange(false)",
148
+ "搭配 open 受控 prop 实现弹层自定义开关"
149
+ ],
150
+ "commonMistakes": [
151
+ "在 onOpenChange(false) 中提交表单——面板关闭不代表值已更新(需用 onChange 确认)"
152
+ ]
153
+ }
154
+ },
155
+ "typescriptPitfalls": [
156
+ {
157
+ "issue": "TimePicker value 必须是 Dayjs 对象,传字符串会导致展示异常",
158
+ "wrong": "value={'14:30:00'} // 字符串不是 Dayjs,内部格式化失败",
159
+ "right": "value={dayjs('14:30:00', 'HH:mm:ss')} // 用 dayjs() 转换;清空用 null"
160
+ },
161
+ {
162
+ "issue": "RangePicker 与 TimePicker 的 onChange 签名不同,混用导致类型错误",
163
+ "wrong": "// TimePicker.RangePicker 中用单时间签名\n<TimePicker.RangePicker onChange={(time: Dayjs) => ...} />",
164
+ "right": "<TimePicker.RangePicker onChange={(times: [Dayjs,Dayjs]|null, strs: [string,string]) => ...} />"
165
+ },
166
+ {
167
+ "issue": "rc-* 继承 prop(PickerTimeProps)在 strict 模式下可能报告未对齐,属已知边缘情况",
168
+ "wrong": "// 假设 strict 校验失败说明 metadata 写错——TimePicker/Tree 的 rc-* 继承是已知例外",
169
+ "right": "// strict 失败是已知情况;确认源码 prop 存在即可,不需要删除真实 prop"
170
+ }
171
+ ],
172
+ "mapping": {
173
+ "realComponent": "TimePicker",
174
+ "adapter": null
175
+ }
176
+ }
@@ -0,0 +1,110 @@
1
+ {
2
+ "name": "Timeline",
3
+ "category": "Data Display",
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
+ "right": {
23
+ "meaning": "右侧时间轴"
24
+ },
25
+ "alternate": {
26
+ "meaning": "交替时间轴"
27
+ },
28
+ "double": {
29
+ "meaning": "双侧时间轴(label 在左侧,内容在右侧)"
30
+ }
31
+ },
32
+ "states": [
33
+ "default",
34
+ "pending",
35
+ "disabled"
36
+ ],
37
+ "idealProps": {
38
+ "data": {
39
+ "type": "TimelineItemProps[]",
40
+ "description": "数据驱动模式(推荐):传入节点数组,组件内部自动渲染所有 TimelineItem;与 children JSX 方式二选一,data 优先(src/Timeline/index.tsx:118 renderItems 先判断 data?.length)",
41
+ "itemSchema": {
42
+ "content": { "type": "ReactNode", "description": "节点主体内容" },
43
+ "dotIcon": { "type": "ReactNode", "description": "自定义节点图标(对应 Timeline.Item 的 dot prop)" },
44
+ "label": { "type": "ReactNode", "description": "节点标签(仅 mode='double' 时在左侧显示)" },
45
+ "disabled": { "type": "boolean", "description": "是否禁用该节点(灰色样式)" },
46
+ "className": { "type": "string", "description": "自定义节点 className" }
47
+ }
48
+ },
49
+ "mode": {
50
+ "type": "enum",
51
+ "values": ["left", "alternate", "right", "double"],
52
+ "default": "left",
53
+ "description": "时间轴和内容的相对位置。⚠️ align prop 与 mode 同义(alias),同时传时 align 优先(src:50 `innerMode = align ?? mode`)"
54
+ },
55
+ "align": {
56
+ "type": "enum",
57
+ "values": ["left", "alternate", "right", "double"],
58
+ "description": "与 mode 同义,优先级高于 mode(src/Timeline/index.tsx:50);不建议同时传 mode 和 align"
59
+ },
60
+ "reverse": {
61
+ "type": "boolean",
62
+ "default": false,
63
+ "description": "节点排序取反(最新节点排最后变最前)"
64
+ },
65
+ "pending": {
66
+ "type": "ReactNode | boolean",
67
+ "default": null,
68
+ "description": "最后一个幽灵节点内容,传 true 显示空幽灵节点,传 ReactNode 显示自定义内容(物流'配送中'等场景)"
69
+ },
70
+ "pendingDot": {
71
+ "type": "ReactNode",
72
+ "description": "幽灵节点的时间轴点图标,配合 pending 使用"
73
+ }
74
+ },
75
+ "do": [
76
+ "优先使用 data 数组 prop(而非 JSX children)批量渲染节点,减少模板代码",
77
+ "使用 dotIcon / color 区分节点状态(绿色=成功、红色=失败、蓝色=进行中)",
78
+ "正在进行中的事项用 pending 幽灵节点展示(末尾加载动画语义)",
79
+ "需要展示日期标签时使用 mode='double' + item.label",
80
+ "最近的时间点通常排在最前面(配合 reverse=true 或数据倒序)"
81
+ ],
82
+ "dont": [
83
+ "在水平空间受限的区域使用 mode='alternate'——两侧都有内容需要足够宽度",
84
+ "不要同时传 mode 和 align——align 会覆盖 mode(src 实证)",
85
+ "节点内容过于复杂(嵌套 Table/Form 等)——Timeline 适合轻量文本+状态展示",
86
+ "不要依赖 items prop(当前 idealProps 是 data 不是 items——antd 命名差异)"
87
+ ],
88
+ "events": {},
89
+ "typescriptPitfalls": [
90
+ {
91
+ "issue": "data 数组中 dot/icon 字段名是 dotIcon 不是 dot",
92
+ "wrong": "data={[{ content: '已发货', dot: <Icon /> }]} // dot 在 data 数组中无效",
93
+ "right": "data={[{ content: '已发货', dotIcon: <Icon /> }]} // data 模式用 dotIcon;JSX 模式 <Timeline.Item dot={...}>"
94
+ },
95
+ {
96
+ "issue": "mode 和 align 同时传时 align 优先,mode 被忽略",
97
+ "wrong": "<Timeline mode='alternate' align='left'> // align='left' 覆盖 mode='alternate'",
98
+ "right": "// 只传其中一个\n<Timeline mode='alternate'> // 或 <Timeline align='left'>"
99
+ },
100
+ {
101
+ "issue": "TimelineItemProps 的 label 只在 mode='double' 时显示,其他模式传了也不渲染",
102
+ "wrong": "// mode='left' 下传 label 期望显示时间\ndata={[{ content: '审批通过', label: '2024-01-01' }]} // label 不会渲染",
103
+ "right": "// 需要显示 label 必须同时设置 mode='double'\n<Timeline mode='double' data={[{ content: '审批通过', label: '2024-01-01' }]} />"
104
+ }
105
+ ],
106
+ "mapping": {
107
+ "realComponent": "Timeline",
108
+ "adapter": null
109
+ }
110
+ }