@para-ui/core 5.0.0-beta.9 → 5.0.0

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 (730) 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/ExpressionInput/component.json +79 -0
  36. package/FieldForm/component.json +196 -0
  37. package/Form/component.json +161 -0
  38. package/FormItem/component.json +171 -0
  39. package/FunctionModal/component.json +197 -0
  40. package/Help/component.json +118 -0
  41. package/HelperText/component.json +126 -0
  42. package/Image/component.json +165 -0
  43. package/InputCode/component.json +191 -0
  44. package/InputLang/component.json +205 -0
  45. package/InputNumber/component.json +162 -0
  46. package/Label/component.json +126 -0
  47. package/Loading/component.json +91 -0
  48. package/Menu/component.json +180 -0
  49. package/Message/component.json +246 -0
  50. package/Modal/component.json +277 -0
  51. package/MultiBox/component.json +216 -0
  52. package/Notification/component.json +184 -0
  53. package/OperateBtn/component.json +134 -0
  54. package/PageHeader/component.json +112 -0
  55. package/Pagination/component.json +181 -0
  56. package/PasswordRules/component.json +105 -0
  57. package/PopConfirm/component.json +227 -0
  58. package/PopMenu/component.json +131 -0
  59. package/Popover/component.json +165 -0
  60. package/Progress/component.json +161 -0
  61. package/Prompt/component.json +144 -0
  62. package/Querying/component.json +96 -0
  63. package/QuickReply/component.json +129 -0
  64. package/Radio/component.json +136 -0
  65. package/RadioGroup/component.json +149 -0
  66. package/RangeInput/component.json +198 -0
  67. package/Result/component.json +104 -0
  68. package/ScrollBar/component.json +115 -0
  69. package/Search/component.json +177 -0
  70. package/Select/component.json +244 -0
  71. package/SelectInput/component.json +184 -0
  72. package/Selector/component.json +203 -0
  73. package/SelectorPicker/component.json +179 -0
  74. package/SingleBox/component.json +151 -0
  75. package/Slider/component.json +181 -0
  76. package/SortBox/component.json +108 -0
  77. package/Status/component.json +104 -0
  78. package/Stepper/component.json +129 -0
  79. package/Switch/component.json +207 -0
  80. package/Table/component.json +547 -0
  81. package/Tabs/component.json +227 -0
  82. package/Tag/component.json +221 -0
  83. package/TextEditor/component.json +186 -0
  84. package/TextField/component.json +290 -0
  85. package/TimePicker/component.json +176 -0
  86. package/Timeline/component.json +110 -0
  87. package/Title/component.json +156 -0
  88. package/ToggleButton/component.json +153 -0
  89. package/Tooltip/component.json +176 -0
  90. package/Transfer/component.json +157 -0
  91. package/Tree/component.json +512 -0
  92. package/Upload/component.json +450 -0
  93. package/ai-workflows/01-crud-list-multi-drawer.md +278 -0
  94. package/ai-workflows/02-rbac-operation-buttons.md +290 -0
  95. package/ai-workflows/03-complex-form-async-cascade.md +350 -0
  96. package/ai-workflows/04-array-field-form.md +281 -0
  97. package/ai-workflows/05-popconfirm-async-message-queue.md +333 -0
  98. package/ai-workflows/06-modal-drawer-form-workflow.md +385 -0
  99. package/ai-workflows/07-search-filter-table-trio.md +387 -0
  100. package/ai-workflows/08-table-advanced-features.md +365 -0
  101. package/ai-workflows/09-batch-operation-export-progress.md +367 -0
  102. package/ai-workflows/10-cross-component-state-coordination.md +412 -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 +52 -49
  112. package/es/Anchor/type.d.ts +8 -4
  113. package/es/Argv/batchEdit/index.js +1 -1
  114. package/es/Argv/component.json +216 -0
  115. package/es/Argv/dataGenerator/index.js +1 -1
  116. package/es/Argv/index.d.ts +5 -6
  117. package/es/Argv/index.js +1 -1
  118. package/es/AutoBox/component.json +133 -0
  119. package/es/AutoBox/index.d.ts +3 -3
  120. package/es/AutoBox/index.js +1 -1
  121. package/es/AutoBox/protal.d.ts +2 -2
  122. package/es/AutoBox/protal.js +33 -30
  123. package/es/AutoButton/component.json +109 -0
  124. package/es/AutoButton/index.js +1 -1
  125. package/es/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  126. package/es/AutoTips/autoTipsMultiline/index.js +1 -1
  127. package/es/AutoTips/component.json +121 -0
  128. package/es/AutoTips/index.js +1 -1
  129. package/es/Badge/component.json +92 -0
  130. package/es/Breadcrumbs/component.json +142 -0
  131. package/es/Breadcrumbs/index.js +1 -1
  132. package/es/Button/SplitButton.d.ts +2 -2
  133. package/es/Button/component.json +168 -0
  134. package/es/Button/index.js +44 -44
  135. package/es/ButtonGroup/component.json +132 -0
  136. package/es/ButtonGroup/index.d.ts +1 -1
  137. package/es/Card/component.json +162 -0
  138. package/es/Card/index.d.ts +2 -2
  139. package/es/Card/index.js +2 -2
  140. package/es/Carousel/component.json +142 -0
  141. package/es/Carousel/index.d.ts +1 -1
  142. package/es/Cascader/Cascader.js +1 -1
  143. package/es/Cascader/OptionList/Column.js +1 -1
  144. package/es/Cascader/OptionList/index.js +1 -1
  145. package/es/Cascader/component.json +196 -0
  146. package/es/Cascader/hooks/useEntities.js +7 -7
  147. package/es/Cascader/interface.d.ts +1 -0
  148. package/es/Cascader/utils/commonUtil.d.ts +1 -1
  149. package/es/Cascader/utils/commonUtil.js +16 -16
  150. package/es/Cascader/utils/treeUtil.d.ts +14 -5
  151. package/es/Cascader/utils/treeUtil.js +1 -1
  152. package/es/Checkbox/component.json +138 -0
  153. package/es/CheckboxGroup/component.json +152 -0
  154. package/es/CheckboxGroup/index.js +1 -1
  155. package/es/CodeEditor/component.json +189 -0
  156. package/es/CodeEditor/index.d.ts +11 -10
  157. package/es/CodeEditor/index.js +25 -25
  158. package/es/Collapse/component.json +166 -0
  159. package/es/Collapse/index.d.ts +1 -1
  160. package/es/Collapse/index.js +23 -22
  161. package/es/CollapseBox/component.json +84 -0
  162. package/es/CollapseLayout/component.json +155 -0
  163. package/es/ColorPicker/component.json +142 -0
  164. package/es/ComboSelect/component.json +181 -0
  165. package/es/ComboSelect/index.js +115 -109
  166. package/es/ComboSelect/interface.d.ts +2 -2
  167. package/es/ComboSelect/utils.d.ts +3 -3
  168. package/es/ComboSelect/utils.js +1 -1
  169. package/es/Container/component.json +111 -0
  170. package/es/ContentBox/component.json +81 -0
  171. package/es/CopyText/component.json +118 -0
  172. package/es/CycleSelector/component.json +98 -0
  173. package/es/CycleSelector/index.js +14 -13
  174. package/es/DatePicker/component.json +192 -0
  175. package/es/DatePicker/generatePicker/generateRangePicker.js +11 -11
  176. package/es/DatePicker/generatePicker/generateSinglePicker.js +2 -2
  177. package/es/Descriptions/component.json +142 -0
  178. package/es/Descriptions/index.d.ts +1 -1
  179. package/es/Desktop/component.json +171 -0
  180. package/es/Desktop/index.js +1 -1
  181. package/es/DragVerify/component.json +114 -0
  182. package/es/DragVerify/index.js +19 -19
  183. package/es/Drawer/component.json +200 -0
  184. package/es/Drawer/index.js +86 -86
  185. package/es/Drawer/interface.d.ts +1 -1
  186. package/es/Drawer/util.d.ts +1 -6
  187. package/es/Drawer/util.js +9 -6
  188. package/es/Dropdown/component.json +147 -0
  189. package/es/Dropdown/index.js +1 -1
  190. package/es/DynamicMultiBox/component.json +278 -0
  191. package/es/DynamicMultiBox/formItem.d.ts +1 -1
  192. package/es/DynamicMultiBox/index.js +1 -1
  193. package/es/DynamicMultiBox/rowForm.d.ts +2 -2
  194. package/es/Empty/component.json +123 -0
  195. package/es/Empty/index.css +1 -1
  196. package/es/Empty/index.d.ts +2 -2
  197. package/es/Empty/index.js +27 -26
  198. package/es/Empty/style/index.css +1 -1
  199. package/es/ExpressionInput/HighlightOverlay.d.ts +8 -0
  200. package/es/ExpressionInput/HighlightOverlay.js +27 -0
  201. package/es/ExpressionInput/Popup.d.ts +19 -0
  202. package/es/ExpressionInput/Popup.js +93 -0
  203. package/es/ExpressionInput/component.json +79 -0
  204. package/es/ExpressionInput/detectChainAtCursor.d.ts +17 -0
  205. package/es/ExpressionInput/detectChainAtCursor.js +31 -0
  206. package/es/ExpressionInput/filterCandidatesByPartial.d.ts +2 -0
  207. package/es/ExpressionInput/filterCandidatesByPartial.js +15 -0
  208. package/es/ExpressionInput/highlightSegments.d.ts +9 -0
  209. package/es/ExpressionInput/highlightSegments.js +14 -0
  210. package/es/ExpressionInput/index.css +1 -0
  211. package/es/ExpressionInput/index.d.ts +5 -0
  212. package/es/ExpressionInput/index.js +178 -0
  213. package/es/ExpressionInput/interface.d.ts +52 -0
  214. package/es/ExpressionInput/isExpressionValue.d.ts +5 -0
  215. package/es/ExpressionInput/isExpressionValue.js +18 -0
  216. package/es/ExpressionInput/lang/en_US.d.ts +4 -0
  217. package/es/ExpressionInput/lang/en_US.js +7 -0
  218. package/es/ExpressionInput/lang/index.d.ts +9 -0
  219. package/es/ExpressionInput/lang/index.js +10 -0
  220. package/es/ExpressionInput/lang/zh_CN.d.ts +4 -0
  221. package/es/ExpressionInput/lang/zh_CN.js +7 -0
  222. package/es/ExpressionInput/style/css.js +1 -0
  223. package/es/ExpressionInput/style/index.css +1 -0
  224. package/es/ExpressionInput/style/index.js +1 -0
  225. package/es/ExpressionInput/useExpressionInput.d.ts +26 -0
  226. package/es/ExpressionInput/useExpressionInput.js +59 -0
  227. package/es/FieldForm/FieldFormItem/ItemHolder.js +1 -1
  228. package/es/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  229. package/es/FieldForm/FieldFormItem/StatusProvider.js +1 -1
  230. package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
  231. package/es/FieldForm/Form.d.ts +2 -2
  232. package/es/FieldForm/Form.js +1 -1
  233. package/es/FieldForm/FormItemInput.js +1 -1
  234. package/es/FieldForm/FormItemLabel.js +1 -1
  235. package/es/FieldForm/FormList.d.ts +2 -2
  236. package/es/FieldForm/component.json +196 -0
  237. package/es/FieldForm/context.d.ts +5 -1
  238. package/es/FieldForm/context.js +2 -2
  239. package/es/FieldForm/hooks/useForm.d.ts +4 -3
  240. package/es/FieldForm/hooks/useFormInstance.d.ts +1 -1
  241. package/es/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  242. package/es/FieldForm/hooks/useFormItemStatus.js +2 -2
  243. package/es/FieldForm/hooks/useItemRef.d.ts +1 -1
  244. package/es/FieldForm/hooks/useItemRef.js +6 -6
  245. package/es/Form/component.json +161 -0
  246. package/es/Form/index.d.ts +52 -49
  247. package/es/Form/index.js +1 -1
  248. package/es/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  249. package/es/FormItem/compoments/defaultCompoments/index.js +12 -11
  250. package/es/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  251. package/es/FormItem/compoments/formFile/index.js +8 -8
  252. package/es/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  253. package/es/FormItem/compoments/formSelect/index.d.ts +1 -1
  254. package/es/FormItem/component.json +171 -0
  255. package/es/FormItem/index.d.ts +5 -5
  256. package/es/FormItem/index.js +23 -23
  257. package/es/FormItem/itemType.js +1 -1
  258. package/es/FunctionModal/component.json +197 -0
  259. package/es/FunctionModal/dialog.d.ts +1 -1
  260. package/es/FunctionModal/modalContext.d.ts +4 -1
  261. package/es/GlobalContext/confirmLocale.js +1 -1
  262. package/es/GlobalContext/index.js +1 -1
  263. package/es/Help/component.json +118 -0
  264. package/es/HelperText/component.json +126 -0
  265. package/es/Image/PreviewGroup.js +1 -1
  266. package/es/Image/component.json +165 -0
  267. package/es/Image/index.js +1 -1
  268. package/es/InputCode/component.json +191 -0
  269. package/es/InputCode/index.d.ts +2 -2
  270. package/es/InputCode/index.js +1 -1
  271. package/es/InputLang/component.json +205 -0
  272. package/es/InputLang/index.js +2 -2
  273. package/es/InputNumber/component.json +162 -0
  274. package/es/InputNumber/index.d.ts +13 -7
  275. package/es/InputNumber/index.js +152 -144
  276. package/es/Label/component.json +126 -0
  277. package/es/Label/index.d.ts +2 -2
  278. package/es/Loading/component.json +91 -0
  279. package/es/Menu/component.json +180 -0
  280. package/es/Menu/verticalMenuList.js +1 -1
  281. package/es/Message/component.json +246 -0
  282. package/es/Message/index.d.ts +2 -2
  283. package/es/Message/index.js +19 -19
  284. package/es/Modal/Confirm/index.d.ts +1 -1
  285. package/es/Modal/Confirm/index.js +1 -1
  286. package/es/Modal/component.json +277 -0
  287. package/es/Modal/index.d.ts +85 -5
  288. package/es/Modal/index.js +159 -122
  289. package/es/Modal/interface.d.ts +1 -0
  290. package/es/MultiBox/component.json +216 -0
  291. package/es/MultiBox/index.js +19 -14
  292. package/es/Notification/component.json +184 -0
  293. package/es/OperateBtn/component.json +134 -0
  294. package/es/OperateBtn/index.d.ts +3 -3
  295. package/es/PageHeader/component.json +112 -0
  296. package/es/PageHeader/horizontalMeun.js +1 -1
  297. package/es/PageHeader/horizontalMeunRight.js +1 -1
  298. package/es/Pagination/component.json +181 -0
  299. package/es/Pagination/index.js +15 -15
  300. package/es/ParauiProvider/index.js +1 -1
  301. package/es/PasswordRules/component.json +105 -0
  302. package/es/PasswordRules/index.d.ts +4 -4
  303. package/es/PopConfirm/component.json +227 -0
  304. package/es/PopConfirm/index.d.ts +1 -1
  305. package/es/PopConfirm/index.js +1 -1
  306. package/es/PopMenu/component.json +131 -0
  307. package/es/PopMenu/hooks.d.ts +1 -1
  308. package/es/PopMenu/index.js +8 -8
  309. package/es/Popover/component.json +165 -0
  310. package/es/Popover/index.js +1 -1
  311. package/es/Progress/component.json +161 -0
  312. package/es/Prompt/component.json +144 -0
  313. package/es/Querying/component.json +96 -0
  314. package/es/Querying/index.css +1 -1
  315. package/es/Querying/index.d.ts +2 -2
  316. package/es/Querying/index.js +20 -19
  317. package/es/Querying/style/index.css +1 -1
  318. package/es/QuickReply/QuickReplyCode/index.js +1 -1
  319. package/es/QuickReply/component.json +129 -0
  320. package/es/QuickReply/index.d.ts +1 -1
  321. package/es/Radio/component.json +136 -0
  322. package/es/RadioGroup/component.json +149 -0
  323. package/es/RangeInput/component.json +198 -0
  324. package/es/RangeInput/index.d.ts +15 -7
  325. package/es/RangeInput/index.js +120 -103
  326. package/es/Result/component.json +104 -0
  327. package/es/ScrollBar/component.json +115 -0
  328. package/es/Search/component.json +177 -0
  329. package/es/Search/index.d.ts +1 -1
  330. package/es/Select/component.json +244 -0
  331. package/es/Select/index.d.ts +11 -8
  332. package/es/Select/index.js +441 -438
  333. package/es/SelectInput/component.json +184 -0
  334. package/es/SelectInput/index.d.ts +4 -4
  335. package/es/SelectInput/index.js +8 -8
  336. package/es/Selector/component.json +203 -0
  337. package/es/Selector/index.js +56 -50
  338. package/es/Selector/interface.d.ts +2 -2
  339. package/es/Selector/selectorData/index.js +1 -1
  340. package/es/Selector/selectorMain/index.js +3 -3
  341. package/es/Selector/selectorNode/index.js +1 -1
  342. package/es/Selector/util.d.ts +3 -3
  343. package/es/Selector/util.js +6 -12
  344. package/es/SelectorPicker/component.json +179 -0
  345. package/es/SelectorPicker/index.d.ts +5 -5
  346. package/es/SelectorPicker/index.js +15 -15
  347. package/es/SingleBox/component.json +151 -0
  348. package/es/SingleBox/index.d.ts +2 -2
  349. package/es/Slider/component.json +181 -0
  350. package/es/SortBox/component.json +108 -0
  351. package/es/Status/component.json +104 -0
  352. package/es/Stepper/component.json +129 -0
  353. package/es/Stepper/index.d.ts +2 -2
  354. package/es/Switch/component.json +207 -0
  355. package/es/Switch/index.css +1 -1
  356. package/es/Switch/index.d.ts +3 -2
  357. package/es/Switch/index.js +60 -59
  358. package/es/Switch/style/index.css +1 -1
  359. package/es/Table/component.json +547 -0
  360. package/es/Table/index.d.ts +2 -2
  361. package/es/Table/index.js +385 -382
  362. package/es/Table/interface.d.ts +30 -0
  363. package/es/Table/tableHead.js +1 -1
  364. package/es/Table/util.d.ts +1 -1
  365. package/es/Table/util.js +3 -12
  366. package/es/Tabs/component.json +227 -0
  367. package/es/Tag/component.json +221 -0
  368. package/es/Tag/index.css +1 -1
  369. package/es/Tag/index.d.ts +1 -1
  370. package/es/Tag/index.js +20 -20
  371. package/es/Tag/style/index.css +1 -1
  372. package/es/TextEditor/component.json +186 -0
  373. package/es/TextEditor/index.d.ts +5 -5
  374. package/es/TextEditor/index.js +1 -1
  375. package/es/TextField/component.json +290 -0
  376. package/es/TextField/index.d.ts +2 -2
  377. package/es/TextField/index.js +1 -1
  378. package/es/TimePicker/component.json +176 -0
  379. package/es/Timeline/component.json +110 -0
  380. package/es/Title/component.json +156 -0
  381. package/es/ToggleButton/component.json +153 -0
  382. package/es/ToggleButton/index.js +1 -1
  383. package/es/Tooltip/component.json +176 -0
  384. package/es/Tooltip/index.js +58 -53
  385. package/es/Tooltip/interface.d.ts +14 -1
  386. package/es/Tooltip/utils.js +6 -6
  387. package/es/Transfer/component.json +157 -0
  388. package/es/Tree/OperateBar/index.js +1 -1
  389. package/es/Tree/Tree.js +3 -3
  390. package/es/Tree/component.json +512 -0
  391. package/es/Tree/interface.d.ts +1 -1
  392. package/es/Upload/component.json +450 -0
  393. package/es/Upload/util.js +1 -1
  394. package/es/Utils/snack-kit-shims.d.ts +18 -0
  395. package/es/Utils/snack-kit-shims.js +19 -0
  396. package/es/Utils/type.d.ts +0 -6
  397. package/es/_virtual/index.js +5 -3
  398. package/es/_virtual/index2.js +2 -5
  399. package/es/index.d.ts +4 -0
  400. package/es/index.js +152 -150
  401. package/es/locale/en-US.d.ts +3 -0
  402. package/es/locale/en-US.js +3 -0
  403. package/es/locale/en_US.d.ts +361 -0
  404. package/es/locale/en_US.js +364 -0
  405. package/es/locale/index.d.ts +1 -723
  406. package/es/locale/index2.js +10 -0
  407. package/es/locale/zh-CN.d.ts +3 -0
  408. package/es/locale/zh-CN.js +3 -0
  409. package/es/locale/zh_CN.d.ts +361 -0
  410. package/es/locale/zh_CN.js +364 -0
  411. package/es/node_modules/classnames/index.js +1 -1
  412. package/lib/AlignBox/component.json +89 -0
  413. package/lib/AlignBox/index.css +1 -1
  414. package/lib/AlignBox/index.d.ts +6 -2
  415. package/lib/AlignBox/index.js +1 -1
  416. package/lib/AlignBox/style/index.css +1 -1
  417. package/lib/Anchor/anchorMenu/index.d.ts +2 -1
  418. package/lib/Anchor/anchorMenu/index.js +1 -1
  419. package/lib/Anchor/component.json +130 -0
  420. package/lib/Anchor/index.js +1 -1
  421. package/lib/Anchor/type.d.ts +8 -4
  422. package/lib/Argv/component.json +216 -0
  423. package/lib/Argv/dataGenerator/index.js +1 -1
  424. package/lib/Argv/index.d.ts +5 -6
  425. package/lib/Argv/index.js +1 -1
  426. package/lib/AutoBox/component.json +133 -0
  427. package/lib/AutoBox/index.d.ts +3 -3
  428. package/lib/AutoBox/index.js +1 -1
  429. package/lib/AutoBox/protal.d.ts +2 -2
  430. package/lib/AutoBox/protal.js +1 -1
  431. package/lib/AutoButton/component.json +109 -0
  432. package/lib/AutoButton/index.js +1 -1
  433. package/lib/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  434. package/lib/AutoTips/autoTipsMultiline/index.js +1 -1
  435. package/lib/AutoTips/component.json +121 -0
  436. package/lib/AutoTips/index.js +1 -1
  437. package/lib/Badge/component.json +92 -0
  438. package/lib/Breadcrumbs/component.json +142 -0
  439. package/lib/Breadcrumbs/index.js +1 -1
  440. package/lib/Button/SplitButton.d.ts +2 -2
  441. package/lib/Button/component.json +168 -0
  442. package/lib/Button/index.js +1 -1
  443. package/lib/ButtonGroup/component.json +132 -0
  444. package/lib/ButtonGroup/index.d.ts +1 -1
  445. package/lib/Card/component.json +162 -0
  446. package/lib/Card/index.d.ts +2 -2
  447. package/lib/Card/index.js +1 -1
  448. package/lib/Carousel/component.json +142 -0
  449. package/lib/Carousel/index.d.ts +1 -1
  450. package/lib/Cascader/Cascader.js +1 -1
  451. package/lib/Cascader/OptionList/Column.js +1 -1
  452. package/lib/Cascader/OptionList/index.js +1 -1
  453. package/lib/Cascader/component.json +196 -0
  454. package/lib/Cascader/hooks/useEntities.js +1 -1
  455. package/lib/Cascader/interface.d.ts +1 -0
  456. package/lib/Cascader/utils/commonUtil.d.ts +1 -1
  457. package/lib/Cascader/utils/commonUtil.js +1 -1
  458. package/lib/Cascader/utils/treeUtil.d.ts +14 -5
  459. package/lib/Cascader/utils/treeUtil.js +1 -1
  460. package/lib/Checkbox/component.json +138 -0
  461. package/lib/CheckboxGroup/component.json +152 -0
  462. package/lib/CheckboxGroup/index.js +1 -1
  463. package/lib/CodeEditor/component.json +189 -0
  464. package/lib/CodeEditor/index.d.ts +11 -10
  465. package/lib/CodeEditor/index.js +1 -1
  466. package/lib/Collapse/component.json +166 -0
  467. package/lib/Collapse/index.d.ts +1 -1
  468. package/lib/Collapse/index.js +1 -1
  469. package/lib/CollapseBox/component.json +84 -0
  470. package/lib/CollapseLayout/component.json +155 -0
  471. package/lib/ColorPicker/component.json +142 -0
  472. package/lib/ComboSelect/component.json +181 -0
  473. package/lib/ComboSelect/index.js +1 -1
  474. package/lib/ComboSelect/interface.d.ts +2 -2
  475. package/lib/ComboSelect/utils.d.ts +3 -3
  476. package/lib/ComboSelect/utils.js +1 -1
  477. package/lib/Container/component.json +111 -0
  478. package/lib/ContentBox/component.json +81 -0
  479. package/lib/CopyText/component.json +118 -0
  480. package/lib/CycleSelector/component.json +98 -0
  481. package/lib/CycleSelector/index.js +1 -1
  482. package/lib/DatePicker/component.json +192 -0
  483. package/lib/DatePicker/generatePicker/generateRangePicker.js +1 -1
  484. package/lib/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  485. package/lib/Descriptions/component.json +142 -0
  486. package/lib/Descriptions/index.d.ts +1 -1
  487. package/lib/Desktop/component.json +171 -0
  488. package/lib/Desktop/index.js +1 -1
  489. package/lib/DragVerify/component.json +114 -0
  490. package/lib/DragVerify/index.js +1 -1
  491. package/lib/Drawer/component.json +200 -0
  492. package/lib/Drawer/index.js +1 -1
  493. package/lib/Drawer/interface.d.ts +1 -1
  494. package/lib/Drawer/util.d.ts +1 -6
  495. package/lib/Drawer/util.js +1 -1
  496. package/lib/Dropdown/component.json +147 -0
  497. package/lib/Dropdown/index.js +1 -1
  498. package/lib/DynamicMultiBox/component.json +278 -0
  499. package/lib/DynamicMultiBox/formItem.d.ts +1 -1
  500. package/lib/DynamicMultiBox/index.js +1 -1
  501. package/lib/DynamicMultiBox/rowForm.d.ts +2 -2
  502. package/lib/Empty/component.json +123 -0
  503. package/lib/Empty/index.css +1 -1
  504. package/lib/Empty/index.d.ts +2 -2
  505. package/lib/Empty/index.js +1 -1
  506. package/lib/Empty/style/index.css +1 -1
  507. package/lib/ExpressionInput/HighlightOverlay.d.ts +8 -0
  508. package/lib/ExpressionInput/HighlightOverlay.js +2 -0
  509. package/lib/ExpressionInput/Popup.d.ts +19 -0
  510. package/lib/ExpressionInput/Popup.js +2 -0
  511. package/lib/ExpressionInput/component.json +79 -0
  512. package/lib/ExpressionInput/detectChainAtCursor.d.ts +17 -0
  513. package/lib/ExpressionInput/detectChainAtCursor.js +2 -0
  514. package/lib/ExpressionInput/filterCandidatesByPartial.d.ts +2 -0
  515. package/lib/ExpressionInput/filterCandidatesByPartial.js +2 -0
  516. package/lib/ExpressionInput/highlightSegments.d.ts +9 -0
  517. package/lib/ExpressionInput/highlightSegments.js +2 -0
  518. package/lib/ExpressionInput/index.css +1 -0
  519. package/lib/ExpressionInput/index.d.ts +5 -0
  520. package/lib/ExpressionInput/index.js +2 -0
  521. package/lib/ExpressionInput/interface.d.ts +52 -0
  522. package/lib/ExpressionInput/isExpressionValue.d.ts +5 -0
  523. package/lib/ExpressionInput/isExpressionValue.js +2 -0
  524. package/lib/ExpressionInput/lang/en_US.d.ts +4 -0
  525. package/lib/ExpressionInput/lang/en_US.js +2 -0
  526. package/lib/ExpressionInput/lang/index.d.ts +9 -0
  527. package/lib/ExpressionInput/lang/index.js +2 -0
  528. package/lib/ExpressionInput/lang/zh_CN.d.ts +4 -0
  529. package/lib/ExpressionInput/lang/zh_CN.js +2 -0
  530. package/lib/ExpressionInput/style/css.js +1 -0
  531. package/lib/ExpressionInput/style/index.css +1 -0
  532. package/lib/ExpressionInput/style/index.js +1 -0
  533. package/lib/ExpressionInput/useExpressionInput.d.ts +26 -0
  534. package/lib/ExpressionInput/useExpressionInput.js +2 -0
  535. package/lib/FieldForm/FieldFormItem/ItemHolder.js +1 -1
  536. package/lib/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  537. package/lib/FieldForm/FieldFormItem/StatusProvider.js +1 -1
  538. package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
  539. package/lib/FieldForm/Form.d.ts +2 -2
  540. package/lib/FieldForm/Form.js +1 -1
  541. package/lib/FieldForm/FormItemInput.js +1 -1
  542. package/lib/FieldForm/FormItemLabel.js +1 -1
  543. package/lib/FieldForm/FormList.d.ts +2 -2
  544. package/lib/FieldForm/component.json +196 -0
  545. package/lib/FieldForm/context.d.ts +5 -1
  546. package/lib/FieldForm/context.js +1 -1
  547. package/lib/FieldForm/hooks/useForm.d.ts +4 -3
  548. package/lib/FieldForm/hooks/useFormInstance.d.ts +1 -1
  549. package/lib/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  550. package/lib/FieldForm/hooks/useFormItemStatus.js +1 -1
  551. package/lib/FieldForm/hooks/useItemRef.d.ts +1 -1
  552. package/lib/FieldForm/hooks/useItemRef.js +1 -1
  553. package/lib/Form/component.json +161 -0
  554. package/lib/Form/index.d.ts +52 -49
  555. package/lib/Form/index.js +1 -1
  556. package/lib/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  557. package/lib/FormItem/compoments/defaultCompoments/index.js +1 -1
  558. package/lib/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  559. package/lib/FormItem/compoments/formFile/index.js +1 -1
  560. package/lib/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  561. package/lib/FormItem/compoments/formSelect/index.d.ts +1 -1
  562. package/lib/FormItem/component.json +171 -0
  563. package/lib/FormItem/index.d.ts +5 -5
  564. package/lib/FormItem/index.js +1 -1
  565. package/lib/FormItem/itemType.js +1 -1
  566. package/lib/FunctionModal/component.json +197 -0
  567. package/lib/FunctionModal/dialog.d.ts +1 -1
  568. package/lib/FunctionModal/modalContext.d.ts +4 -1
  569. package/lib/GlobalContext/confirmLocale.js +1 -1
  570. package/lib/GlobalContext/index.js +1 -1
  571. package/lib/Help/component.json +118 -0
  572. package/lib/HelperText/component.json +126 -0
  573. package/lib/Image/PreviewGroup.js +1 -1
  574. package/lib/Image/component.json +165 -0
  575. package/lib/Image/index.js +1 -1
  576. package/lib/InputCode/component.json +191 -0
  577. package/lib/InputCode/index.d.ts +2 -2
  578. package/lib/InputLang/component.json +205 -0
  579. package/lib/InputLang/index.js +1 -1
  580. package/lib/InputNumber/component.json +162 -0
  581. package/lib/InputNumber/index.d.ts +13 -7
  582. package/lib/InputNumber/index.js +1 -1
  583. package/lib/Label/component.json +126 -0
  584. package/lib/Label/index.d.ts +2 -2
  585. package/lib/Loading/component.json +91 -0
  586. package/lib/Menu/component.json +180 -0
  587. package/lib/Menu/verticalMenuList.js +1 -1
  588. package/lib/Message/component.json +246 -0
  589. package/lib/Message/index.d.ts +2 -2
  590. package/lib/Message/index.js +1 -1
  591. package/lib/Modal/Confirm/index.d.ts +1 -1
  592. package/lib/Modal/Confirm/index.js +1 -1
  593. package/lib/Modal/component.json +277 -0
  594. package/lib/Modal/index.d.ts +85 -5
  595. package/lib/Modal/index.js +1 -1
  596. package/lib/Modal/interface.d.ts +1 -0
  597. package/lib/MultiBox/component.json +216 -0
  598. package/lib/MultiBox/index.js +1 -1
  599. package/lib/Notification/component.json +184 -0
  600. package/lib/OperateBtn/component.json +134 -0
  601. package/lib/OperateBtn/index.d.ts +3 -3
  602. package/lib/PageHeader/component.json +112 -0
  603. package/lib/PageHeader/horizontalMeun.js +1 -1
  604. package/lib/PageHeader/horizontalMeunRight.js +1 -1
  605. package/lib/Pagination/component.json +181 -0
  606. package/lib/Pagination/index.js +1 -1
  607. package/lib/ParauiProvider/index.js +1 -1
  608. package/lib/PasswordRules/component.json +105 -0
  609. package/lib/PasswordRules/index.d.ts +4 -4
  610. package/lib/PopConfirm/component.json +227 -0
  611. package/lib/PopConfirm/index.d.ts +1 -1
  612. package/lib/PopConfirm/index.js +1 -1
  613. package/lib/PopMenu/component.json +131 -0
  614. package/lib/PopMenu/hooks.d.ts +1 -1
  615. package/lib/PopMenu/index.js +1 -1
  616. package/lib/Popover/component.json +165 -0
  617. package/lib/Popover/index.js +1 -1
  618. package/lib/Progress/component.json +161 -0
  619. package/lib/Prompt/component.json +144 -0
  620. package/lib/Querying/component.json +96 -0
  621. package/lib/Querying/index.css +1 -1
  622. package/lib/Querying/index.d.ts +2 -2
  623. package/lib/Querying/index.js +1 -1
  624. package/lib/Querying/style/index.css +1 -1
  625. package/lib/QuickReply/QuickReplyCode/index.js +1 -1
  626. package/lib/QuickReply/component.json +129 -0
  627. package/lib/QuickReply/index.d.ts +1 -1
  628. package/lib/Radio/component.json +136 -0
  629. package/lib/RadioGroup/component.json +149 -0
  630. package/lib/RangeInput/component.json +198 -0
  631. package/lib/RangeInput/index.d.ts +15 -7
  632. package/lib/RangeInput/index.js +1 -1
  633. package/lib/Result/component.json +104 -0
  634. package/lib/ScrollBar/component.json +115 -0
  635. package/lib/Search/component.json +177 -0
  636. package/lib/Search/index.d.ts +1 -1
  637. package/lib/Select/component.json +244 -0
  638. package/lib/Select/index.d.ts +11 -8
  639. package/lib/Select/index.js +1 -1
  640. package/lib/SelectInput/component.json +184 -0
  641. package/lib/SelectInput/index.d.ts +4 -4
  642. package/lib/SelectInput/index.js +1 -1
  643. package/lib/Selector/component.json +203 -0
  644. package/lib/Selector/index.js +1 -1
  645. package/lib/Selector/interface.d.ts +2 -2
  646. package/lib/Selector/selectorData/index.js +1 -1
  647. package/lib/Selector/selectorMain/index.js +1 -1
  648. package/lib/Selector/selectorNode/index.js +1 -1
  649. package/lib/Selector/util.d.ts +3 -3
  650. package/lib/Selector/util.js +1 -1
  651. package/lib/SelectorPicker/component.json +179 -0
  652. package/lib/SelectorPicker/index.d.ts +5 -5
  653. package/lib/SelectorPicker/index.js +1 -1
  654. package/lib/SingleBox/component.json +151 -0
  655. package/lib/SingleBox/index.d.ts +2 -2
  656. package/lib/Slider/component.json +181 -0
  657. package/lib/SortBox/component.json +108 -0
  658. package/lib/Status/component.json +104 -0
  659. package/lib/Stepper/component.json +129 -0
  660. package/lib/Stepper/index.d.ts +2 -2
  661. package/lib/Switch/component.json +207 -0
  662. package/lib/Switch/index.css +1 -1
  663. package/lib/Switch/index.d.ts +3 -2
  664. package/lib/Switch/index.js +1 -1
  665. package/lib/Switch/style/index.css +1 -1
  666. package/lib/Table/component.json +547 -0
  667. package/lib/Table/index.d.ts +2 -2
  668. package/lib/Table/index.js +1 -1
  669. package/lib/Table/interface.d.ts +30 -0
  670. package/lib/Table/tableHead.js +1 -1
  671. package/lib/Table/util.d.ts +1 -1
  672. package/lib/Table/util.js +1 -1
  673. package/lib/Tabs/component.json +227 -0
  674. package/lib/Tag/component.json +221 -0
  675. package/lib/Tag/index.css +1 -1
  676. package/lib/Tag/index.d.ts +1 -1
  677. package/lib/Tag/index.js +1 -1
  678. package/lib/Tag/style/index.css +1 -1
  679. package/lib/TextEditor/component.json +186 -0
  680. package/lib/TextEditor/index.d.ts +5 -5
  681. package/lib/TextEditor/index.js +1 -1
  682. package/lib/TextField/component.json +290 -0
  683. package/lib/TextField/index.d.ts +2 -2
  684. package/lib/TextField/index.js +1 -1
  685. package/lib/TimePicker/component.json +176 -0
  686. package/lib/Timeline/component.json +110 -0
  687. package/lib/Title/component.json +156 -0
  688. package/lib/ToggleButton/component.json +153 -0
  689. package/lib/ToggleButton/index.js +1 -1
  690. package/lib/Tooltip/component.json +176 -0
  691. package/lib/Tooltip/index.js +1 -1
  692. package/lib/Tooltip/interface.d.ts +14 -1
  693. package/lib/Tooltip/utils.js +1 -1
  694. package/lib/Transfer/component.json +157 -0
  695. package/lib/Tree/OperateBar/index.js +2 -2
  696. package/lib/Tree/Tree.js +1 -1
  697. package/lib/Tree/component.json +512 -0
  698. package/lib/Tree/interface.d.ts +1 -1
  699. package/lib/Upload/component.json +450 -0
  700. package/lib/Upload/util.js +1 -1
  701. package/lib/Utils/snack-kit-shims.d.ts +18 -0
  702. package/lib/Utils/snack-kit-shims.js +2 -0
  703. package/lib/Utils/type.d.ts +0 -6
  704. package/lib/_virtual/index.js +1 -1
  705. package/lib/_virtual/index2.js +1 -1
  706. package/lib/index.d.ts +4 -0
  707. package/lib/index.js +1 -1
  708. package/lib/locale/en-US.d.ts +3 -0
  709. package/lib/locale/en-US.js +1 -1
  710. package/lib/locale/en_US.d.ts +361 -0
  711. package/lib/locale/en_US.js +2 -0
  712. package/lib/locale/index.d.ts +1 -723
  713. package/lib/locale/index2.js +2 -0
  714. package/lib/locale/zh-CN.d.ts +3 -0
  715. package/lib/locale/zh-CN.js +1 -1
  716. package/lib/locale/zh_CN.d.ts +361 -0
  717. package/lib/locale/zh_CN.js +2 -0
  718. package/lib/node_modules/classnames/index.js +1 -1
  719. package/package.json +24 -4
  720. package/es/_virtual/index3.js +0 -5
  721. package/es/_virtual/index4.js +0 -5
  722. package/es/node_modules/@para-snack/core/dist/index.js +0 -5231
  723. package/lib/_virtual/index3.js +0 -2
  724. package/lib/_virtual/index4.js +0 -2
  725. package/lib/node_modules/@para-snack/core/dist/index.js +0 -20
  726. /package/es/{InputCode → CodeEditor}/index.css +0 -0
  727. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  728. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
  729. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  730. /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
+ }
@@ -1,9 +1,9 @@
1
- import { default as React, FunctionComponent, ReactNode } from 'react';
1
+ import { default as React, ReactNode } from 'react';
2
2
  import { LabelTooltipProps } from '../Label';
3
3
  import { InputNumberProps } from '../InputNumber';
4
4
  import { HelperTextDetailProps } from '../HelperText';
5
5
  import { TooltipProps } from '../Tooltip';
6
- export interface RangeInputProps extends HelperTextDetailProps {
6
+ export interface RangeInputProps<Clearable extends boolean = false> extends HelperTextDetailProps {
7
7
  /** 样式class */
8
8
  className?: string;
9
9
  /** style */
@@ -22,10 +22,16 @@ export interface RangeInputProps extends HelperTextDetailProps {
22
22
  * 禁用提示
23
23
  */
24
24
  disabledTooltip?: TooltipProps | [TooltipProps, TooltipProps];
25
+ /**
26
+ * 是否允许清空(清空后 onChange 回传 null);
27
+ * 默认 false 时 value/defaultValue/onChange 入参收敛为 number,子 InputNumber 由 RangeInput 内部以 clearable 模式承载临时 null 状态;
28
+ * 显式 true 时全链路类型放宽到 number | null,沿用历史行为
29
+ */
30
+ clearable?: Clearable;
25
31
  /** 默认值 不受控 */
26
- defaultValue?: [number | null, number | null];
32
+ defaultValue?: Clearable extends true ? [number | null, number | null] : [number | undefined, number | undefined];
27
33
  /** 默认值 */
28
- value?: [number | null, number | null];
34
+ value?: Clearable extends true ? [number | null, number | null] : [number | undefined, number | undefined];
29
35
  /** 中间符号 */
30
36
  separator?: ReactNode;
31
37
  /** 单位 */
@@ -40,8 +46,10 @@ export interface RangeInputProps extends HelperTextDetailProps {
40
46
  otherProps?: [InputNumberProps, InputNumberProps];
41
47
  /**
42
48
  * 改变值
43
- * */
44
- onChange?: (val: [number | null, number | null], index: number) => void;
49
+ * @param val 当前 value 数组
50
+ * @param index 触发改变的输入框下标;index === -1 表示由 RangeInput 内部 swap 触发,[0]/[1] 同时变化
51
+ */
52
+ onChange?: (val: Clearable extends true ? [number | null, number | null] : [number, number], index: number) => void;
45
53
  /** 失去焦点 */
46
54
  onBlur?: (event: React.FocusEvent<HTMLInputElement>, index: number) => void;
47
55
  /** 得到焦点 */
@@ -49,5 +57,5 @@ export interface RangeInputProps extends HelperTextDetailProps {
49
57
  /** 回车事件 */
50
58
  onEnter?: (event: React.KeyboardEvent<HTMLInputElement>, index: number) => void;
51
59
  }
52
- export declare const RangeInput: FunctionComponent<RangeInputProps>;
60
+ export declare function RangeInput<C extends boolean = false>(props: RangeInputProps<C>): JSX.Element;
53
61
  export default RangeInput;