@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,149 @@
1
+ {
2
+ "name": "RadioGroup",
3
+ "category": "Data Entry",
4
+ "description": "单选框组,统一管理一组 Radio 的受控选中态,支持泛型约束和二维布局",
5
+ "semantic": {
6
+ "intent": [
7
+ "单选",
8
+ "互斥选择"
9
+ ],
10
+ "useCases": [
11
+ "选项切换",
12
+ "模式选择",
13
+ "单选配置"
14
+ ],
15
+ "riskLevel": "low"
16
+ },
17
+ "variants": {
18
+ "default": {
19
+ "meaning": "默认样式"
20
+ }
21
+ },
22
+ "states": [
23
+ "default",
24
+ "disabled"
25
+ ],
26
+ "idealProps": {
27
+ "list": {
28
+ "type": "RadioListProps[] | RadioListProps[][]",
29
+ "description": "选项数据(必填)。**RadioListProps extends RadioProps**(可含 label/disabled 等 Radio prop)。⚠️ 默认以 `item[id]` 取值(id prop 默认 'name'),list 每项必须有对应字段;传二维数组 `RadioListProps[][]` 时按行分组渲染"
30
+ },
31
+ "value": {
32
+ "type": "T",
33
+ "description": "当前选中值(受控);类型 T 由泛型推断(默认 unknown);与 list 项的 item[id] 字段值对比决定哪项选中"
34
+ },
35
+ "defaultValue": {
36
+ "type": "T",
37
+ "description": "默认选中值(非受控初始态);与 value 互斥——传 value 则受控"
38
+ },
39
+ "onChange": {
40
+ "type": "(val: T, item?: RadioListProps) => void",
41
+ "description": "值变化回调;val = item[id](即 list 项中 id 字段对应的值);item 是被点击的完整 list 项对象"
42
+ },
43
+ "id": {
44
+ "type": "string",
45
+ "default": "name",
46
+ "description": "**list 每项的取值字段名**(默认 'name',不是 'value')——RadioGroup 内部取 item[id] 作为选中值;⚠️ 这是常见混淆点:字段名是 'name' 不是 'value'"
47
+ },
48
+ "label": {
49
+ "type": "ReactNode",
50
+ "description": "组标题"
51
+ },
52
+ "labelTooltip": {
53
+ "type": "LabelTooltipProps",
54
+ "description": "组标题旁的帮助图标 tooltip"
55
+ },
56
+ "required": {
57
+ "type": "boolean",
58
+ "default": false,
59
+ "description": "是否必填(显示红色星号)"
60
+ },
61
+ "row": {
62
+ "type": "boolean",
63
+ "default": true,
64
+ "description": "布局方式;true=横向排列;false=纵向排列"
65
+ },
66
+ "spacing": {
67
+ "type": "string",
68
+ "default": "32px",
69
+ "description": "横向布局时每项之间的间距(CSS 值,如 '16px');row=false 时不生效"
70
+ },
71
+ "itemWidth": {
72
+ "type": "string",
73
+ "description": "每项的固定宽度(CSS 值,如 '120px');配合 row=false 的栅格对齐"
74
+ },
75
+ "size": {
76
+ "type": "enum",
77
+ "values": ["small", "medium", "large"],
78
+ "default": "large",
79
+ "description": "尺寸,透传给每个 Radio(src/RadioGroup/index.tsx:65 实证,default='large')"
80
+ },
81
+ "disabled": {
82
+ "type": "boolean",
83
+ "default": false,
84
+ "description": "全局禁用所有选项(优先于 list 每项的 disabled)"
85
+ },
86
+ "error": {
87
+ "type": "boolean",
88
+ "default": false,
89
+ "description": "错误状态(显示红色边框 + helperText 错误样式,来自 HelperTextDetailProps 继承)"
90
+ },
91
+ "helperText": {
92
+ "type": "ReactNode",
93
+ "default": "",
94
+ "description": "错误或提示文字(error=true 时红色显示,error=false 时灰色显示)"
95
+ },
96
+ "hideErrorDom": {
97
+ "type": "boolean",
98
+ "description": "是否隐藏错误文字 DOM(表单布局固定高度时防止错误文字撑开布局)"
99
+ }
100
+ },
101
+ "do": [
102
+ "配合 Radio 使用——RadioGroup 统一管理 checked 状态,无需每个 Radio 手动维护",
103
+ "选项数量适中(2-5),超出 5 个考虑 Select",
104
+ "list 项必须有 id 对应字段(默认 'name')作为选中值,如 `list={[{ name: 'a', label: '选项A' }]}` 且不传 id prop",
105
+ "支持泛型收窄类型:`<RadioGroup<'male' | 'female'>>` 让 value/onChange 类型推断更精确"
106
+ ],
107
+ "dont": [
108
+ "选项过多(应使用 Select)",
109
+ "忽略默认选中——至少通过 defaultValue 或 value 提供初始状态,否则所有项均未选中",
110
+ "以为 list 项的取值字段是 'value'——RadioGroup 默认取 item['name'],需要用 'value' 字段时需传 id='value'"
111
+ ],
112
+ "events": {
113
+ "onChange": {
114
+ "signature": "(val: T, item?: RadioListProps) => void",
115
+ "asyncSupported": false,
116
+ "examples": [
117
+ "受控写法:value={selected} onChange={(val) => setSelected(val)}",
118
+ "获取完整 item:onChange={(val, item) => { setSelected(val); logItem(item); }}",
119
+ "泛型收窄:<RadioGroup<'a' | 'b'> list={...} value={v} onChange={(val) => setV(val)}>"
120
+ ],
121
+ "commonMistakes": [
122
+ "假设 val 是 item.value——RadioGroup 取 item[id](默认 item.name),不是 item.value",
123
+ "不回写 value prop 导致选中态不更新——RadioGroup 是受控组件,onChange 后必须 setState 回写 value",
124
+ "list 项缺少 id 字段——id 默认 'name',list 项无 name 字段时 val 会是 undefined"
125
+ ]
126
+ }
127
+ },
128
+ "typescriptPitfalls": [
129
+ {
130
+ "issue": "id prop 指定取值字段名,默认是 'name' 不是 'value',混淆导致 onChange 收到 undefined",
131
+ "wrong": "// list 每项有 value 字段,但不传 id:\nlist={[{ value: 'male', label: '男' }]} // onChange 收到 undefined,因为取的是 item['name']",
132
+ "right": "// 方案A:list 项用 name 字段\nlist={[{ name: 'male', label: '男' }]}\n// 方案B:显式传 id='value'\n<RadioGroup id='value' list={[{ value: 'male', label: '男' }]} />"
133
+ },
134
+ {
135
+ "issue": "RadioGroup 泛型参数 T 默认 unknown,value/onChange 类型过宽,建议显式传泛型",
136
+ "wrong": "// T=unknown,onChange val 类型 unknown,需 as 强转:\nconst [v, setV] = useState<string>(); onChange={(val) => setV(val as string)}",
137
+ "right": "const [v, setV] = useState<string>(); <RadioGroup<string> value={v} onChange={(val) => setV(val)} />"
138
+ },
139
+ {
140
+ "issue": "list 支持二维数组分行,但每行内项的 onChange 逻辑相同——误以为二维数组需要特殊处理",
141
+ "wrong": "// 二维数组时自己实现 checked 逻辑\nlist={[[...], [...]]} value={v} onChange不传 // 组件已内部处理,不需要额外逻辑",
142
+ "right": "<RadioGroup list={[[item1, item2], [item3, item4]]} value={v} onChange={(val) => setV(val)} />"
143
+ }
144
+ ],
145
+ "mapping": {
146
+ "realComponent": "RadioGroup",
147
+ "adapter": null
148
+ }
149
+ }
@@ -0,0 +1,198 @@
1
+ {
2
+ "name": "RangeInput",
3
+ "category": "Data Entry",
4
+ "description": "范围输入框,两个 InputNumber 组成数值区间,自动 swap 防止 min>max",
5
+ "semantic": {
6
+ "intent": [
7
+ "范围输入",
8
+ "区间选择"
9
+ ],
10
+ "useCases": [
11
+ "价格区间",
12
+ "数量范围",
13
+ "时间范围"
14
+ ],
15
+ "riskLevel": "normal"
16
+ },
17
+ "variants": {
18
+ "default": {
19
+ "meaning": "默认样式"
20
+ }
21
+ },
22
+ "states": [
23
+ "default",
24
+ "disabled",
25
+ "error"
26
+ ],
27
+ "idealProps": {
28
+ "value": {
29
+ "type": "Clearable extends true ? [number | null, number | null] : [number | undefined, number | undefined]",
30
+ "description": "当前值(受控)。**类型随 clearable 泛型条件切换**(协议 RI1):clearable=true → `[number | null, number | null]`(任一端可 null 表示清空);clearable=false(默认)→ `[number | undefined, number | undefined]`(直接传 null TS 报错)"
31
+ },
32
+ "defaultValue": {
33
+ "type": "Clearable extends true ? [number | null, number | null] : [number | undefined, number | undefined]",
34
+ "description": "默认值(非受控);类型规则同 value(随 clearable 切换)"
35
+ },
36
+ "onChange": {
37
+ "type": "(val, index) => void",
38
+ "description": "值变化回调。**val 类型**:clearable=true → `[number | null, number | null]`;clearable=false → `[number, number]`。**index** 是触发输入框下标(0/1),index=-1 表示内部 swap 触发(min>max 自动交换)。**业务 [number, number] 桥接**:`(val) => onChange([val[0] ?? 0, val[1] ?? 0])`(协议 RI2)"
39
+ },
40
+ "clearable": {
41
+ "type": "boolean",
42
+ "default": false,
43
+ "description": "是否允许清空(协议 RI1)。**默认 false**;true 时全链路类型放宽到 `number | null`,清空后 onChange 回传含 null 的二元组(不是 null 本体);false 时类型收窄。**业务需要清空必须显式 `clearable={true}`**"
44
+ },
45
+ "size": {
46
+ "type": "enum",
47
+ "values": [
48
+ "small",
49
+ "medium",
50
+ "large"
51
+ ],
52
+ "default": "large",
53
+ "description": "控件大小(三档全部支持)"
54
+ },
55
+ "label": {
56
+ "type": "ReactNode",
57
+ "description": "组标题"
58
+ },
59
+ "labelTooltip": {
60
+ "type": "LabelTooltipProps",
61
+ "description": "标题旁帮助图标 tooltip"
62
+ },
63
+ "required": {
64
+ "type": "boolean",
65
+ "default": false,
66
+ "description": "是否必填(显示红色星号)"
67
+ },
68
+ "disabled": {
69
+ "type": "boolean | [boolean, boolean]",
70
+ "default": false,
71
+ "description": "禁用;boolean=两侧都禁;[boolean, boolean]=分别控制左右"
72
+ },
73
+ "disabledTooltip": {
74
+ "type": "TooltipProps | [TooltipProps, TooltipProps]",
75
+ "description": "禁用状态 tooltip;单值=两侧共享;数组=分别控制左右(src/RangeInput/index.tsx:34 interface 实证)"
76
+ },
77
+ "separator": {
78
+ "type": "ReactNode",
79
+ "default": "~",
80
+ "description": "中间分隔符"
81
+ },
82
+ "unit": {
83
+ "type": "ReactNode",
84
+ "description": "单位文本(显示在右侧)"
85
+ },
86
+ "placeholder": {
87
+ "type": "ReactNode | [ReactNode, ReactNode]",
88
+ "description": "占位文本;单值=两侧共享;数组=分别控制左右"
89
+ },
90
+ "warningMessage": {
91
+ "type": "ReactNode",
92
+ "description": "min>max 自动 swap 后展示的警告文案(swap 发生后显示 warnTime 毫秒)"
93
+ },
94
+ "warnTime": {
95
+ "type": "number",
96
+ "default": 2000,
97
+ "description": "warningMessage 自动消失时间(毫秒)"
98
+ },
99
+ "otherProps": {
100
+ "type": "[InputNumberProps, InputNumberProps]",
101
+ "description": "左右两个 InputNumber 的额外 props,分别透传(src/RangeInput/index.tsx:60 interface 实证)"
102
+ },
103
+ "error": {
104
+ "type": "boolean",
105
+ "default": false,
106
+ "description": "错误状态"
107
+ },
108
+ "helperText": {
109
+ "type": "ReactNode",
110
+ "description": "错误/提示文字"
111
+ },
112
+ "onBlur": {
113
+ "type": "(event: React.FocusEvent<HTMLInputElement>, index: number) => void",
114
+ "description": "失去焦点回调;index=0/1 区分左右;swap 逻辑在整体失焦后触发(rAF 延后)"
115
+ },
116
+ "onFocus": {
117
+ "type": "(event: React.FocusEvent<HTMLInputElement>, index: number) => void",
118
+ "description": "获得焦点回调;index=0/1 区分左右"
119
+ },
120
+ "onEnter": {
121
+ "type": "(event: React.KeyboardEvent<HTMLInputElement>, index: number) => void",
122
+ "description": "回车回调;index=0/1 区分左右"
123
+ }
124
+ },
125
+ "crossPropInteractions": [
126
+ "clearable=true + value 类型 = 全链路放宽 [number | null, number | null]",
127
+ "clearable=false(默认)+ value 类型 = 收窄 [number | undefined, number | undefined]",
128
+ "onChange val + index = index=0/1 触发位,-1 表示内部 swap(min>max 自动交换)",
129
+ "disabled [boolean, boolean] + disabledTooltip [TooltipProps, TooltipProps] = 分别控制左右",
130
+ "size + 三档全部支持 = small / medium / large(api.ts 与 component.json 已对齐)"
131
+ ],
132
+ "commonMisconceptions": [
133
+ "❌ 默认就能传 [null, null] 清空 — 必须显式 clearable={true}",
134
+ "❌ clearable=true 清空回传 null 本体 — 实际回传 [null, null] 二元组",
135
+ "❌ onChange 永远是 [number | null, number | null] — clearable=false 时实为 [number, number]",
136
+ "❌ size 只支持 small/large — 三档全部支持(api.ts 已修正)",
137
+ "❌ value desc 说「默认值 受控」— 历史 typo,实际是「当前值 受控」"
138
+ ],
139
+ "do": [
140
+ "校验最小值不能大于最大值——组件会在整体失焦后自动 swap,配合 warningMessage 提示用户",
141
+ "提供清晰的分隔符(默认 '~',可自定义如 ' 至 ')",
142
+ "业务需要清空功能时显式传 clearable={true}(类型全链路放宽)",
143
+ "业务 [number, number] 严格非 null 时不传 clearable(类型收窄保护,onChange 回参直接是 [number, number])"
144
+ ],
145
+ "dont": [
146
+ "忽略边界校验——min>max 时组件虽自动 swap,但最好在 onChange 里加业务层校验",
147
+ "不提示输入错误——配合 error + helperText 展示校验失败原因",
148
+ "默认 clearable=false 时传 [null, null](TS 报错)"
149
+ ],
150
+ "events": {
151
+ "onChange": {
152
+ "signature": "(val: [number | null, number | null] | [number, number], index: number) => void",
153
+ "asyncSupported": false,
154
+ "examples": [
155
+ "受控写法:value={range} onChange={(val, index) => setRange(val)}",
156
+ "区分触发位:onChange={(val, index) => { if (index === 0) validateMin(val[0]); else if (index === 1) validateMax(val[1]); else console.log('swap 触发'); }}",
157
+ "clearable=false 桥接:onChange={(val) => setBizRange([val[0] ?? 0, val[1] ?? 0])}"
158
+ ],
159
+ "commonMistakes": [
160
+ "index=-1 时 val 两端都变化(swap)——不能只看 val[index],index=-1 时应同时处理两端",
161
+ "clearable=false 时 onChange val 里出现 null——理论上不会,但渐进过渡期需兼容",
162
+ "忘记回写 value prop——RangeInput 是受控组件,onChange 后必须 setState 回写,否则页面回弹"
163
+ ]
164
+ },
165
+ "onBlur": {
166
+ "signature": "(event: React.FocusEvent<HTMLInputElement>, index: number) => void",
167
+ "asyncSupported": false,
168
+ "examples": [
169
+ "整体失焦时才触发 swap——左右切焦时 onBlur 会被调但 swap 不触发(rAF 检测 activeElement 仍在组件内)",
170
+ "onBlur={(e, index) => { if (!rootRef.current?.contains(document.activeElement)) doValidation(); }}"
171
+ ],
172
+ "commonMistakes": [
173
+ "在 onBlur 里立即读 value 期望拿到 swap 后的值——swap 是通过 rAF 异步触发,onBlur 调用时 swap 尚未执行"
174
+ ]
175
+ }
176
+ },
177
+ "typescriptPitfalls": [
178
+ {
179
+ "issue": "clearable=false(默认)时 value 类型是 [number | undefined, number | undefined],直接传 [null, null] TS 报错",
180
+ "wrong": "value={[null, null]} // clearable=false 时类型不允许 null",
181
+ "right": "<RangeInput<true> clearable value={[null, null]} /> // 显式泛型 true 或 clearable={true}"
182
+ },
183
+ {
184
+ "issue": "onChange val 类型随 clearable 泛型变化,不显式传泛型时 val 类型推断可能宽泛",
185
+ "wrong": "// clearable=false 但 onChange handler 写成接受 null:\nonChange={(val: [number | null, number | null]) => ...} // 与 clearable=false 合约不符",
186
+ "right": "// clearable=false(默认)\nonChange={(val: [number, number]) => setRange(val)}"
187
+ },
188
+ {
189
+ "issue": "disabled 支持 [boolean, boolean] 元组,但传普通 boolean[] 数组类型不精确",
190
+ "wrong": "const flags: boolean[] = [true, false]; <RangeInput disabled={flags} /> // 类型报错",
191
+ "right": "const flags: [boolean, boolean] = [true, false]; <RangeInput disabled={flags} />"
192
+ }
193
+ ],
194
+ "mapping": {
195
+ "realComponent": "RangeInput",
196
+ "adapter": null
197
+ }
198
+ }
@@ -60,7 +60,7 @@ function ge(o) {
60
60
  }
61
61
  });
62
62
  }, Y = () => {
63
- clearTimeout(e.current.timer), N(!0), e.current.timer = setTimeout(() => {
63
+ clearTimeout(e.current.timer ?? void 0), N(!0), e.current.timer = setTimeout(() => {
64
64
  N(!1);
65
65
  }, K);
66
66
  }, B = (r) => (t) => {
@@ -0,0 +1,104 @@
1
+ {
2
+ "name": "Result",
3
+ "category": "Feedback",
4
+ "description": "用于反馈一系列操作任务的处理结果",
5
+ "semantic": {
6
+ "intent": [
7
+ "展示结果",
8
+ "引导下一步",
9
+ "明确状态"
10
+ ],
11
+ "useCases": [
12
+ "提交成功",
13
+ "提交失败",
14
+ "加载中"
15
+ ],
16
+ "riskLevel": "normal"
17
+ },
18
+ "variants": {
19
+ "success": {
20
+ "meaning": "成功(src 实装)"
21
+ },
22
+ "error": {
23
+ "meaning": "错误(src 实装)"
24
+ },
25
+ "loading": {
26
+ "meaning": "加载中(src 实装)"
27
+ },
28
+ "_blueprint_403": {
29
+ "meaning": "(蓝图 / src 未实装)无权限页 — 当前需用 icon 自定义模拟,见 discussions/Result-status-expansion-and-footer-epic.md"
30
+ },
31
+ "_blueprint_404": {
32
+ "meaning": "(蓝图 / src 未实装)未找到页 — 当前需用 icon 自定义模拟"
33
+ },
34
+ "_blueprint_500": {
35
+ "meaning": "(蓝图 / src 未实装)服务器错误页 — 当前需用 icon 自定义模拟"
36
+ },
37
+ "_blueprint_warning": {
38
+ "meaning": "(蓝图 / src 未实装)警告反馈 — 当前需用 icon 自定义模拟"
39
+ },
40
+ "_blueprint_info": {
41
+ "meaning": "(蓝图 / src 未实装)信息反馈 — 当前需用 icon 自定义模拟"
42
+ }
43
+ },
44
+ "states": [
45
+ "visible"
46
+ ],
47
+ "idealProps": {
48
+ "status": {
49
+ "type": "'success' | 'error' | 'loading'",
50
+ "values": ["success", "error", "loading"],
51
+ "description": "结果状态;⚠️ src 当前仅实装这 3 个枚举值(src/Result/index.tsx:22 实证);蓝图 404/403/500/warning/info 见 variants._blueprint_* 与 discussions/Result-status-expansion-and-footer-epic.md;业务侧需要这些状态时,用 icon 自定义模拟"
52
+ },
53
+ "title": {
54
+ "type": "ReactNode",
55
+ "description": "标题;src 内部经 AutoTips 包装,长文案自动 Tooltip"
56
+ },
57
+ "subTitle": {
58
+ "type": "ReactNode",
59
+ "description": "副标题;无 AutoTips 包装"
60
+ },
61
+ "icon": {
62
+ "type": "ReactNode",
63
+ "description": "自定义结果图标;优先级【高于】status 默认图标;src 内部包在 .icon-box 容器中"
64
+ },
65
+ "footer": {
66
+ "type": "ReactNode",
67
+ "description": "⚠️ 操作区(底部);prop 名是 footer(不是 extra)!component.json 历史版本写过 extra 是蓝图笔误,src 实际实装的是 footer(src/Result/index.tsx:30 实证);通常放 1-2 个按钮"
68
+ }
69
+ },
70
+ "do": [
71
+ "在关键环节(支付/提交)结束后用 Result 反馈结果",
72
+ "提供明确的返回或重试按钮(放在 footer 插槽)",
73
+ "shape: 404/403/500/warning 等业务状态,通过 icon 自定义图标 + title 文案表达",
74
+ "长 title 文案放心使用 — 组件内部经 AutoTips 自动 Tooltip"
75
+ ],
76
+ "dont": [
77
+ "**不要传 status='404' / '403' / '500' / 'warning' / 'info'** — src 当前仅 success/error/loading 3 枚举,会触发 tsc 类型错误",
78
+ "**不要用 extra prop** — 操作区是 footer(extra 是蓝图未实装)",
79
+ "在简单的操作反馈中使用 Result(应使用 Message)",
80
+ "在 footer 内放过多按钮(2 个为佳:主+次)"
81
+ ],
82
+ "events": {},
83
+ "typescriptPitfalls": [
84
+ {
85
+ "issue": "status 枚举仅有 3 个值,传 '404'/'403'/'500'/'warning'/'info' 触发 TS 类型错误",
86
+ "wrong": "<Result status='404' title='Not Found' /> // TS 报 '404' 不属于 'success' | 'error' | 'loading'",
87
+ "right": "<Result icon={<NotFoundIcon />} title='404 - Not Found' /> // 用 icon 自定义模拟"
88
+ },
89
+ {
90
+ "issue": "操作区插槽名是 footer,不是 extra(历史蓝图遗留 extra 但 src 未实装)",
91
+ "wrong": "<Result status='success' extra={<Button>返回</Button>} /> // extra prop 不存在,静默无效",
92
+ "right": "<Result status='success' footer={<Button>返回</Button>} /> // src/Result/index.tsx:30 实证 footer"
93
+ },
94
+ {
95
+ "issue": "icon 与 status 同时传时 icon 优先,status 图标被覆盖",
96
+ "wrong": "// 期望用 status 图标同时用自定义外层容器 → icon 覆盖 status 图标",
97
+ "right": "// 需要自定义图标时只传 icon,无需传 status;需要预设图标时只传 status,不传 icon"
98
+ }
99
+ ],
100
+ "mapping": {
101
+ "realComponent": "Result",
102
+ "adapter": null
103
+ }
104
+ }
@@ -0,0 +1,115 @@
1
+ {
2
+ "name": "ScrollBar",
3
+ "category": "Layout",
4
+ "description": "滚动条美化:既支持全局 CSS 主题(默认场景),也提供 stand-alone 自驱动组件(虚拟列表/Canvas 等高级场景)",
5
+ "semantic": {
6
+ "intent": [
7
+ "美化原生滚动条",
8
+ "自驱动滚动指示器"
9
+ ],
10
+ "useCases": [
11
+ "固定高度内容溢出滚动(模式 A)",
12
+ "横向画廊(模式 A)",
13
+ "侧边栏/抽屉内容(模式 A)",
14
+ "虚拟列表/Canvas 自定义滚动(模式 B)"
15
+ ],
16
+ "riskLevel": "low"
17
+ },
18
+ "variants": {
19
+ "themedNative": {
20
+ "meaning": "模式 A:全局 className 主题 + native overflow(99% 场景推荐);使用 className `paraui-v4-scrollbar-{small|medium|large}{-deep}?` + native overflow:auto,不需要 import 任何组件"
21
+ },
22
+ "selfDriven": {
23
+ "meaning": "模式 B:<ScrollBar> stand-alone 组件,业务侧自驱动 scroll state(虚拟列表/Canvas 高级场景);组件本身不接受 children"
24
+ }
25
+ },
26
+ "states": [
27
+ "default",
28
+ "scrolling"
29
+ ],
30
+ "idealProps": {
31
+ "type": {
32
+ "type": "'horizontal' | 'vertical'",
33
+ "values": ["horizontal", "vertical"],
34
+ "default": "'vertical'",
35
+ "description": "(模式 B)滚动条方向"
36
+ },
37
+ "size": {
38
+ "type": "'small' | 'medium' | 'large'",
39
+ "values": ["small", "medium", "large"],
40
+ "default": "'large'",
41
+ "description": "(模式 B)滚动条粗细;small/medium 同款细(4px),large 粗(8px)"
42
+ },
43
+ "color": {
44
+ "type": "'deep' | 'light'",
45
+ "values": ["deep", "light"],
46
+ "default": "'light'",
47
+ "description": "(模式 B)配色;light 浅背景,deep 深背景"
48
+ },
49
+ "scrollTotalLength": {
50
+ "type": "number",
51
+ "description": "(模式 B)内容总滚动距离(px);= contentTotalSize - visualWindowSize;业务侧从 scrollHeight - clientHeight 计算并传入"
52
+ },
53
+ "scrollLength": {
54
+ "type": "number",
55
+ "description": "(模式 B)当前滚动距离(px);业务侧从 native scrollTop/scrollLeft 同步进来;变化时组件移动滑块位置"
56
+ },
57
+ "onScroll": {
58
+ "type": "function",
59
+ "signature": "(val: number) => void",
60
+ "description": "(模式 B)用户拖拽滚动条时回调;val = 用户操作后业务侧应同步到 native 元素的 scrollTop/scrollLeft 值"
61
+ },
62
+ "themedClassName": {
63
+ "type": "string (literal)",
64
+ "description": "(模式 A)在 native overflow 容器上加 className,从下面选一个:'paraui-v4-scrollbar-small' / 'paraui-v4-scrollbar-medium' / 'paraui-v4-scrollbar-large' / '*-deep' 深色变体;src/Styles/scrollbar.scss 实现 ::-webkit-scrollbar-* 美化"
65
+ }
66
+ },
67
+ "do": [
68
+ "默认场景(限高容器 + 子内容溢出)用模式 A:className 主题 + native overflow:auto",
69
+ "横向滚动用 overflowX:auto + className 'paraui-v4-scrollbar-small' 等主题",
70
+ "虚拟列表 / Canvas 等业务侧已有 scroll state 的场景用模式 B:<ScrollBar /> 组件 + scrollTotalLength + scrollLength",
71
+ "深色背景上的滚动条用 *-deep 变体(浅色背景上保持默认或显式 light)"
72
+ ],
73
+ "dont": [
74
+ "**不要给 <ScrollBar> 组件传 children**(它不是 scroll 容器,是 visual indicator)",
75
+ "不要在普通业务场景重复实现 scrollTotalLength/scrollLength 计算 — 用模式 A className 即可",
76
+ "不要嵌套两层 ScrollBar 容器(双滚动条体验差)",
77
+ "不要忘了模式 B 必须搭配 native overflow:hidden 的容器才能视觉上接管滚动"
78
+ ],
79
+ "events": {
80
+ "onScroll": {
81
+ "signature": "(val: number) => void",
82
+ "asyncSupported": false,
83
+ "examples": [
84
+ "用户拖拽滚动条时触发,val = 应同步到 native 元素的 scrollTop/scrollLeft 值",
85
+ "onScroll={(val) => { nativeRef.current.scrollTop = val; setScrollLength(val); }}",
86
+ "双向绑定:业务侧同时监听 native onScroll 更新 scrollLength prop,ScrollBar.onScroll 更新 native scrollTop"
87
+ ],
88
+ "commonMistakes": [
89
+ "只传 onScroll 未更新 native 元素的 scrollTop——val 是期望值,需业务侧手动同步到 DOM",
90
+ "onScroll 和 scrollLength 没有形成闭环——用户拖 scrollbar 时 onScroll 触发更新 scrollTop;native 滚动时 onScroll 不触发,需监听 native onScroll 更新 scrollLength"
91
+ ]
92
+ }
93
+ },
94
+ "typescriptPitfalls": [
95
+ {
96
+ "issue": "ScrollBar 组件的 Props interface 名是 Props(不是 ScrollBarProps),外部无法直接 import 类型",
97
+ "wrong": "import { ScrollBarProps } from '@para-ui/core/ScrollBar' // 类型未导出",
98
+ "right": "// 直接使用 JSX 不需要类型引用;如需类型可自行 declare 或用 React.ComponentProps<typeof ScrollBar>"
99
+ },
100
+ {
101
+ "issue": "scrollTotalLength 传错含义——应是「可滚动距离」不是「内容总高度」",
102
+ "wrong": "scrollTotalLength={contentHeight} // 期望传内容总高度——实际应传 scrollHeight - clientHeight",
103
+ "right": "scrollTotalLength={scrollHeight - clientHeight} // = contentTotalSize - visualWindowSize"
104
+ },
105
+ {
106
+ "issue": "模式 A(className 主题)不需要 import ScrollBar 组件,直接加 className 即可",
107
+ "wrong": "import ScrollBar from '@para-ui/core/ScrollBar'; <ScrollBar>...</ScrollBar> // ScrollBar 不接受 children",
108
+ "right": "<div className='paraui-v4-scrollbar-small' style={{overflowY: 'auto'}}>...</div> // 模式 A 不 import 组件"
109
+ }
110
+ ],
111
+ "mapping": {
112
+ "realComponent": "ScrollBar",
113
+ "adapter": null
114
+ }
115
+ }