@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,144 @@
1
+ {
2
+ "name": "Prompt",
3
+ "category": "Feedback",
4
+ "description": "页面级信息提示条,支持 info/success/warn/error 四种类型及固定/反馈两种模式",
5
+ "semantic": {
6
+ "intent": [
7
+ "页面提示",
8
+ "信息通知"
9
+ ],
10
+ "useCases": [
11
+ "操作结果",
12
+ "系统通知",
13
+ "警告信息"
14
+ ],
15
+ "riskLevel": "low"
16
+ },
17
+ "variants": {
18
+ "error": {
19
+ "meaning": "错误提示"
20
+ },
21
+ "success": {
22
+ "meaning": "成功提示"
23
+ },
24
+ "warn": {
25
+ "meaning": "警告提示"
26
+ },
27
+ "info": {
28
+ "meaning": "信息提示"
29
+ }
30
+ },
31
+ "states": [
32
+ "visible",
33
+ "hidden"
34
+ ],
35
+ "idealProps": {
36
+ "type": {
37
+ "type": "enum",
38
+ "values": [
39
+ "error",
40
+ "success",
41
+ "warn",
42
+ "info"
43
+ ],
44
+ "default": "info",
45
+ "description": "信息类型,决定左侧图标和配色。⚠️ 警告类型值为 `'warn'`,不是 `'warning'`(与 Notification 的 IconType 不同,混用会 fallback 到默认样式)"
46
+ },
47
+ "status": {
48
+ "type": "enum",
49
+ "values": ["fixed", "feedback"],
50
+ "default": "fixed",
51
+ "required": false,
52
+ "description": "显示模式。fixed=常驻不可关闭(用于强制通知/系统公告);feedback=用户可手动关闭(关闭按钮由 closeIcon 控制)。⚠️ 核心 prop:不传时默认 fixed,即不显示关闭按钮、不可消除"
53
+ },
54
+ "title": {
55
+ "type": "string",
56
+ "description": "标题,显示在内容上方的粗体文字"
57
+ },
58
+ "content": {
59
+ "type": "string | string[]",
60
+ "description": "内容正文。传 string 为单行;传 string[] 为多行列表(每项换行展示)。⚠️ 传了 customContent 时此字段失效"
61
+ },
62
+ "customContent": {
63
+ "type": "ReactNode",
64
+ "required": false,
65
+ "description": "完全自定义内容区。传入后 content 失效,由 customContent 完整接管渲染"
66
+ },
67
+ "show": {
68
+ "type": "boolean",
69
+ "description": "是否展示 Prompt,false 时完全不渲染(内部 isShow state 由 show prop 驱动,初始为 true)"
70
+ },
71
+ "closeIcon": {
72
+ "type": "boolean",
73
+ "required": false,
74
+ "description": "是否展示关闭按钮。⚠️ 仅 status='feedback' 时有效,status='fixed' 时即使传 true 也不显示关闭按钮(src/Prompt/index.tsx:108 实证:closeIcon 只在 prompt-status-feedback-close 类下渲染)"
75
+ },
76
+ "hideIcon": {
77
+ "type": "boolean",
78
+ "required": false,
79
+ "description": "是否隐藏左侧类型图标(info/success/warn/error 对应的图标)"
80
+ },
81
+ "outline": {
82
+ "type": "boolean",
83
+ "required": false,
84
+ "description": "是否显示外边框"
85
+ },
86
+ "icon": {
87
+ "type": "ReactNode",
88
+ "required": false,
89
+ "description": "自定义左侧图标,传入后覆盖 type 对应的默认图标"
90
+ },
91
+ "onClose": {
92
+ "type": "() => void",
93
+ "description": "关闭按钮点击回调,status='feedback' 且 closeIcon=true 时有效;触发后组件内部自动隐藏(isShow=false),父组件可在此同步 state"
94
+ }
95
+ },
96
+ "do": [
97
+ "在页面顶部或卡片顶部显示,告知用户当前系统状态或操作结果",
98
+ "可关闭提示使用 status='feedback' + closeIcon=true,onClose 同步父组件 show state",
99
+ "警告类型使用 type='warn'(不是 'warning')",
100
+ "多条提示内容使用 content 数组,组件会自动逐行渲染"
101
+ ],
102
+ "dont": [
103
+ "同时显示多个 Prompt——多条提示应合并或用通知列表",
104
+ "内容过长——超长内容考虑 Modal 或独立页面,Prompt 适合单行到几行的简短提示",
105
+ "status='fixed' 时传 closeIcon=true 期望出现关闭按钮——fixed 模式下 closeIcon 静默失效"
106
+ ],
107
+ "events": {
108
+ "onClose": {
109
+ "signature": "() => void",
110
+ "asyncSupported": false,
111
+ "examples": [
112
+ "同步父组件隐藏状态:onClose={() => setShowPrompt(false)}",
113
+ "关闭后执行操作:onClose={() => { setShowPrompt(false); trackDismiss(); }}",
114
+ "show 受控写法:show={showPrompt} onClose={() => setShowPrompt(false)}"
115
+ ],
116
+ "commonMistakes": [
117
+ "只传 onClose 不传 status='feedback' + closeIcon=true——没有关闭按钮时 onClose 永远不会触发",
118
+ "期望 onClose 阻止 Prompt 自动隐藏——组件内部点击关闭后调 setIsShow(false) 然后再调 onClose,隐藏无法阻止",
119
+ "不传 show prop 而依赖 onClose 控制显示——初始渲染时 isShow=true,无法通过 onClose 来控制初始不显示;初始隐藏需 show=false"
120
+ ]
121
+ }
122
+ },
123
+ "typescriptPitfalls": [
124
+ {
125
+ "issue": "type='warning' 不存在,警告类型枚举值是 'warn'",
126
+ "wrong": "<Prompt type='warning' content='请注意...' /> // TS 类型报错('warning' 不在联合类型)",
127
+ "right": "<Prompt type='warn' content='请注意...' />"
128
+ },
129
+ {
130
+ "issue": "onClose 的类型是 Function(宽泛),严格模式下建议标注为 () => void",
131
+ "wrong": "const handleClose: (e: MouseEvent) => void = () => setShow(false); // 参数类型不匹配",
132
+ "right": "const handleClose: () => void = () => setShow(false); // onClose 签名是无参无返回值"
133
+ },
134
+ {
135
+ "issue": "closeIcon 仅在 status='feedback' 时有效,status='fixed'(默认)传 closeIcon 无按钮渲染",
136
+ "wrong": "<Prompt type='info' closeIcon onClose={() => setShow(false)} /> // status 默认 fixed,closeIcon 不生效",
137
+ "right": "<Prompt type='info' status='feedback' closeIcon onClose={() => setShow(false)} />"
138
+ }
139
+ ],
140
+ "mapping": {
141
+ "realComponent": "Prompt",
142
+ "adapter": null
143
+ }
144
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "name": "Querying",
3
+ "category": "Feedback",
4
+ "description": "查询中状态组件,用于数据搜索/加载中的空态占位提示",
5
+ "semantic": {
6
+ "intent": [
7
+ "加载提示",
8
+ "查询中"
9
+ ],
10
+ "useCases": [
11
+ "数据搜索",
12
+ "列表加载",
13
+ "初始化"
14
+ ],
15
+ "riskLevel": "low"
16
+ },
17
+ "variants": {
18
+ "large": {
19
+ "meaning": "大尺寸"
20
+ },
21
+ "small": {
22
+ "meaning": "小尺寸"
23
+ }
24
+ },
25
+ "states": [
26
+ "loading"
27
+ ],
28
+ "idealProps": {
29
+ "size": {
30
+ "type": "enum",
31
+ "values": [
32
+ "small",
33
+ "medium",
34
+ "large"
35
+ ],
36
+ "default": "large",
37
+ "description": "大小。三档统一为 small / medium / large(2026-05-08 跨组件命名 epic §3.1 选项 B 实施,medium 为新增视觉档,默认 large 不变,既有 small/large 调用零回归)"
38
+ },
39
+ "description": {
40
+ "type": "ReactNode",
41
+ "description": "描述文字;不传时使用 i18n 默认文案('查询中...'),传 null/'' 可隐藏"
42
+ },
43
+ "image": {
44
+ "type": "ReactNode",
45
+ "description": "图片/图标节点;传字符串时渲染为 <img src>;不传时使用内置 SVG 插图(large 用 LargeSearch,small 用 SmallSearch)"
46
+ },
47
+ "imageStyle": {
48
+ "type": "React.CSSProperties",
49
+ "description": "图片容器的内联样式(src/Querying/index.tsx:24 interface 实证)"
50
+ },
51
+ "customQuerying": {
52
+ "type": "React.ReactNode",
53
+ "description": "完全自定义整个 Querying 内容区;传入后 image / description / imageStyle 均被替换,组件只渲染此 ReactNode"
54
+ },
55
+ "className": {
56
+ "type": "string",
57
+ "description": "自定义类名"
58
+ },
59
+ "style": {
60
+ "type": "React.CSSProperties",
61
+ "description": "自定义样式"
62
+ }
63
+ },
64
+ "do": [
65
+ "在搜索或查询时显示,替换 Table/List 的空态区域",
66
+ "提供清晰的加载中提示——description 说明当前正在做什么(如「正在搜索...」)",
67
+ "使用 customQuerying 完全自定义布局,或通过 image + description 组合定制"
68
+ ],
69
+ "dont": [
70
+ "加载时间过长不给提示——超过 300ms 的异步操作应展示 Querying",
71
+ "与其他加载状态(Spinner/Skeleton)混用——同一容器内选用统一加载态组件",
72
+ "把 Querying 用于非加载场景(如「暂无数据」)——空数据场景应用 Empty 组件"
73
+ ],
74
+ "events": {},
75
+ "typescriptPitfalls": [
76
+ {
77
+ "issue": "description 不传 vs 传 undefined 行为一致,传空字符串会渲染空区块",
78
+ "wrong": "description='' // 空字符串被当作 truthy ReactNode 渲染,出现空白区域",
79
+ "right": "// 不传 description 或传 null/undefined 使用默认 i18n 文案\n<Querying /> // 显示默认 '查询中...'"
80
+ },
81
+ {
82
+ "issue": "image 传字符串时渲染为 <img src>,传 ReactNode 直接渲染——类型合法但行为不同",
83
+ "wrong": "image={svgComponent} // 若 svgComponent 是字符串路径则渲染 img,若是 JSX 则直接渲染",
84
+ "right": "image={<MySvgIcon />} // 明确传 ReactElement 直接渲染;传 URL 字符串时渲染 img"
85
+ },
86
+ {
87
+ "issue": "customQuerying 传入后 image/description/imageStyle 全部失效,不要混传",
88
+ "wrong": "<Querying customQuerying={<MyComp />} description='加载中' /> // description 被忽略",
89
+ "right": "// 要么用 customQuerying 完全接管,要么用 image+description 局部定制,不要混用"
90
+ }
91
+ ],
92
+ "mapping": {
93
+ "realComponent": "Querying",
94
+ "adapter": null
95
+ }
96
+ }
@@ -1 +1 @@
1
- @charset "UTF-8";.paraui-v4-querying{display:inline-flex;flex-direction:column;align-items:center}.paraui-v4-querying>.querying-image{line-height:0;overflow:hidden}.paraui-v4-querying>.querying-image img{width:100%}.paraui-v4-querying .querying-image-large{width:334px;height:238px}.paraui-v4-querying .querying-image-small{width:120px;height:80px}.paraui-v4-querying>.querying-description{line-height:17px;font-size:14px;font-weight:400;color:#1d2126}.paraui-v4-querying.paraui-v4-querying-large>.querying-description{margin-top:20px}.paraui-v4-querying.paraui-v4-querying-small>.querying-description{margin-top:10px;font-size:14px}
1
+ @charset "UTF-8";.paraui-v4-querying{display:inline-flex;flex-direction:column;align-items:center}.paraui-v4-querying>.querying-image{overflow:hidden;line-height:0}.paraui-v4-querying>.querying-image img{width:100%}.paraui-v4-querying .querying-image-large{width:334px;height:238px}.paraui-v4-querying .querying-image-medium{width:220px;height:150px}.paraui-v4-querying .querying-image-small{width:120px;height:80px}.paraui-v4-querying>.querying-description{font-size:14px;font-weight:400;line-height:17px;color:#1d2126}.paraui-v4-querying.paraui-v4-querying-large>.querying-description{margin-top:20px}.paraui-v4-querying.paraui-v4-querying-medium>.querying-description{margin-top:15px;font-size:14px}.paraui-v4-querying.paraui-v4-querying-small>.querying-description{margin-top:10px;font-size:14px}
@@ -5,7 +5,7 @@ export interface QueryingProps {
5
5
  /** style */
6
6
  style?: React.CSSProperties;
7
7
  /** 尺寸 */
8
- size?: 'large' | 'small';
8
+ size?: 'small' | 'medium' | 'large';
9
9
  /** 图片样式 */
10
10
  imageStyle?: React.CSSProperties;
11
11
  /** 图片 */
@@ -14,7 +14,7 @@ export interface QueryingProps {
14
14
  description?: React.ReactNode;
15
15
  /** 自定义节点 */
16
16
  customQuerying?: React.ReactNode;
17
- [name: string]: any;
17
+ [name: string]: unknown;
18
18
  }
19
19
  declare const Querying: FC<QueryingProps>;
20
20
  export default Querying;
@@ -1,43 +1,44 @@
1
1
  import { j as e } from "../_virtual/jsx-runtime.js";
2
2
  import p from "clsx";
3
- import { SmallSearch as d, LargeSearch as f } from "./images/index.js";
3
+ import { SmallSearch as f, LargeSearch as a } from "./images/index.js";
4
4
  import x from "../GlobalContext/useFormatMessage.js";
5
5
  import j from "./lang/index.js";
6
- import { $prefixCls as a } from "../GlobalContext/constant.js";
6
+ import { $prefixCls as l } from "../GlobalContext/constant.js";
7
7
  import q from "../Hooks/useGlobalProps.js";
8
8
  import './index.css';/* empty css */
9
9
  const h = {
10
- large: /* @__PURE__ */ e.jsx(f, {}),
11
- small: /* @__PURE__ */ e.jsx(d, {})
12
- }, z = (o) => {
10
+ large: /* @__PURE__ */ e.jsx(a, {}),
11
+ medium: /* @__PURE__ */ e.jsx(a, {}),
12
+ small: /* @__PURE__ */ e.jsx(f, {})
13
+ }, z = (t) => {
13
14
  const {
14
- className: l,
15
- style: g,
15
+ className: g,
16
+ style: c,
16
17
  size: r = "large",
17
- imageStyle: c,
18
+ imageStyle: u,
18
19
  image: s = h[r],
19
- description: m,
20
+ description: o,
20
21
  customQuerying: n
21
- } = q(o, "Querying"), u = x("Querying", j), i = typeof m < "u" ? m : u({ id: "querying" }), y = typeof i == "string" ? i : "querying";
22
- let t = null;
23
- return typeof s == "string" ? t = /* @__PURE__ */ e.jsx(
22
+ } = q(t, "Querying"), y = x("Querying", j), i = typeof o < "u" ? o : y({ id: "querying" }), d = typeof i == "string" ? i : "querying";
23
+ let m = null;
24
+ return typeof s == "string" ? m = /* @__PURE__ */ e.jsx(
24
25
  "img",
25
26
  {
26
27
  src: s,
27
- alt: y
28
+ alt: d
28
29
  }
29
- ) : t = s, /* @__PURE__ */ e.jsx(
30
+ ) : m = s, /* @__PURE__ */ e.jsx(
30
31
  "div",
31
32
  {
32
- className: p(`${a}-querying`, l, `${a}-querying-${r}`),
33
- style: g,
33
+ className: p(`${l}-querying`, g, `${l}-querying-${r}`),
34
+ style: c,
34
35
  children: n || /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
35
36
  /* @__PURE__ */ e.jsx(
36
37
  "div",
37
38
  {
38
- className: `querying-image ${o?.image ? "" : `querying-image-${r}`}`,
39
- style: c,
40
- children: t
39
+ className: `querying-image ${t?.image ? "" : `querying-image-${r}`}`,
40
+ style: u,
41
+ children: m
41
42
  }
42
43
  ),
43
44
  i && /* @__PURE__ */ e.jsx("div", { className: "querying-description", children: i })
@@ -1 +1 @@
1
- .paraui-v4-querying{display:inline-flex;flex-direction:column;align-items:center}.paraui-v4-querying>.querying-image{line-height:0;overflow:hidden}.paraui-v4-querying>.querying-image img{width:100%}.paraui-v4-querying .querying-image-large{width:334px;height:238px}.paraui-v4-querying .querying-image-small{width:120px;height:80px}.paraui-v4-querying>.querying-description{line-height:17px;font-size:14px;font-weight:400;color:#1d2126}.paraui-v4-querying.paraui-v4-querying-large>.querying-description{margin-top:20px}.paraui-v4-querying.paraui-v4-querying-small>.querying-description{margin-top:10px;font-size:14px}
1
+ .paraui-v4-querying{display:inline-flex;flex-direction:column;align-items:center}.paraui-v4-querying>.querying-image{overflow:hidden;line-height:0}.paraui-v4-querying>.querying-image img{width:100%}.paraui-v4-querying .querying-image-large{width:334px;height:238px}.paraui-v4-querying .querying-image-medium{width:220px;height:150px}.paraui-v4-querying .querying-image-small{width:120px;height:80px}.paraui-v4-querying>.querying-description{font-size:14px;font-weight:400;line-height:17px;color:#1d2126}.paraui-v4-querying.paraui-v4-querying-large>.querying-description{margin-top:20px}.paraui-v4-querying.paraui-v4-querying-medium>.querying-description{margin-top:15px;font-size:14px}.paraui-v4-querying.paraui-v4-querying-small>.querying-description{margin-top:10px;font-size:14px}
@@ -13,7 +13,7 @@ import { Plus as me } from "../../node_modules/@para-ui/icons/Plus/index.js";
13
13
  import { Drag as pe } from "../../node_modules/@para-ui/icons/Drag/index.js";
14
14
  import { Delete as he } from "../../node_modules/@para-ui/icons/Delete/index.js";
15
15
  import { EditOutline as fe } from "../../node_modules/@para-ui/icons/EditOutline/index.js";
16
- import { UUID as w } from "@paraview/lib";
16
+ import { UUID as w } from "@snack-kit/lib";
17
17
  import xe from "../../GlobalContext/useFormatMessage.js";
18
18
  import ke from "../lang/index.js";
19
19
  import './index.css';/* empty css */
@@ -0,0 +1,129 @@
1
+ {
2
+ "name": "QuickReply",
3
+ "category": "Data Entry",
4
+ "description": "快捷回复组件,集成预设内容选择浮层+文本编辑区,支持预设列表管理",
5
+ "semantic": {
6
+ "intent": [
7
+ "快捷回复",
8
+ "预设内容"
9
+ ],
10
+ "useCases": [
11
+ "客服会话",
12
+ "评论回复",
13
+ "问卷反馈"
14
+ ],
15
+ "riskLevel": "low"
16
+ },
17
+ "variants": {
18
+ "default": {
19
+ "meaning": "默认样式"
20
+ }
21
+ },
22
+ "states": [
23
+ "default"
24
+ ],
25
+ "idealProps": {
26
+ "list": {
27
+ "type": "QuickReplyCodeListProps[]",
28
+ "description": "快捷回复预设列表(QuickReplyCodeListProps = { label?: string; value?: string; [name: string]: any });每项至少需要 rowKey 对应字段(默认 id)作为唯一标识,以及 labelKey 字段(默认 label)作为显示文案"
29
+ },
30
+ "value": {
31
+ "type": "string",
32
+ "description": "**输入框文本受控值**(textarea 受控,不是被选中预设项的标识!);与 onChange 配对;**点击预设项时此值会被内部 onSelect handler 自动同步**(src/QuickReply/index.tsx:139-144 取 item[valueKey] 后 setValueCom)"
33
+ },
34
+ "defaultValue": {
35
+ "type": "string",
36
+ "description": "输入框非受控初始值"
37
+ },
38
+ "rowKey": {
39
+ "type": "string",
40
+ "default": "id",
41
+ "description": "list 项唯一标识字段名(默认 'id',与 React key 无关)"
42
+ },
43
+ "labelKey": {
44
+ "type": "string",
45
+ "default": "label",
46
+ "description": "list 项展示文案字段名"
47
+ },
48
+ "valueKey": {
49
+ "type": "string",
50
+ "default": "label",
51
+ "description": "list 项实际值字段名;⚠️ **默认 'label' 不是 'value'**——反直觉!这决定了点击预设时 onChange 回参取 list[i] 的哪个字段;若 list 项有 value 字段且想让 onChange 收到业务 code,必须显式 `valueKey='value'`(通过 quickReplyCodeProps 工厂透传给内嵌浮层实例)"
52
+ },
53
+ "rows": {
54
+ "type": "number",
55
+ "description": "输入框行数(textarea rows 属性)"
56
+ },
57
+ "placeholder": {
58
+ "type": "string",
59
+ "description": "输入框占位文案(默认 i18n '请输入')"
60
+ },
61
+ "quickReplyCodeProps": {
62
+ "type": "function",
63
+ "signature": "(type: 'select' | 'setting') => QuickReplyCodeProps",
64
+ "description": "工厂函数,分别给选择浮层('select')/ 管理浮层('setting')透传子组件参数(如 valueKey / add / edit / del / sort 等)"
65
+ },
66
+ "renderQuickReplyBtn": {
67
+ "type": "ReactNode",
68
+ "description": "自定义触发按钮节点(默认为「快捷回复」文字按钮)"
69
+ },
70
+ "onChange": {
71
+ "type": "(val: string) => void",
72
+ "description": "**输入框文本变化回调**——两种触发场景共用一个回调:① 用户键入文字 ② **用户点击预设项**(内部 onSelect handler 取 item[valueKey] 后自动调 onChange);所以「点击预设填入输入框」是默认行为,**无需也不存在 QuickReply 顶层 onSelect prop**"
73
+ },
74
+ "onChangeList": {
75
+ "type": "(arr: QuickReplyCodeListProps[]) => void",
76
+ "description": "用户在管理浮层中增删改后触发(注意:QuickReplyCode 子组件自己的同语义回调叫 onChange,QuickReply 顶层叫 onChangeList——跨层级看 onChange 务必区分)"
77
+ }
78
+ },
79
+ "do": [
80
+ "在需要快速输入预设内容的场景使用,list 每项至少有 rowKey 字段(默认 id)和 labelKey 字段(默认 label)",
81
+ "支持编辑和管理预设内容——onChangeList 里持久化更新后的 list",
82
+ "valueKey 默认是 'label',若预设项有独立 value 字段(业务 code)且需要 onChange 收到此值,通过 quickReplyCodeProps 显式传 valueKey='value'",
83
+ "value 受控写法:value={text} onChange={(val) => setText(val)}——点击预设或手动输入都触发 onChange"
84
+ ],
85
+ "dont": [
86
+ "预设内容过多不做分类——超过 20 条考虑搜索或分组",
87
+ "忽略用户自定义需求——提供管理浮层(onChangeList)让用户自己维护预设",
88
+ "期待 QuickReply 顶层有 onSelect prop(它已封装在内部——点击预设直接触发顶层 onChange,无需 onSelect)",
89
+ "把外部 string[] 直接传给 list(必须 map 成 QuickReplyCodeListProps[] 形状:每项至少有 id 和 label 字段)",
90
+ "假设 onChange 与 onChangeList 等价(onChange 是输入框文本回调 string,onChangeList 是 list 增删改后的数组回调——跨子层级 QuickReplyCode.onChange 又是 list 回调,易混)"
91
+ ],
92
+ "events": {
93
+ "onChange": {
94
+ "signature": "(val: string) => void",
95
+ "asyncSupported": false,
96
+ "examples": [
97
+ "受控绑定:value={text} onChange={(val) => setText(val)}",
98
+ "点击预设自动填入:onChange 会在点击预设项时被调用,val = item[valueKey](默认取 item.label)",
99
+ "区分键入与预设选择:无法区分,两种场景均调同一 onChange;如需区分,用 quickReplyCodeProps 工厂中的 onSelect 替换逻辑"
100
+ ],
101
+ "commonMistakes": [
102
+ "期望 QuickReply 顶层有 onSelect——点击预设触发的是 onChange,不存在独立的 onSelect",
103
+ "valueKey 默认 'label' 导致 onChange 收到 label 文案而非业务 id——需显式 valueKey='value'",
104
+ "onChange 和 onChangeList 混淆——onChange 是 string 回调(输入框文本),onChangeList 是 QuickReplyCodeListProps[] 回调(预设列表变化)"
105
+ ]
106
+ }
107
+ },
108
+ "typescriptPitfalls": [
109
+ {
110
+ "issue": "valueKey 默认 'label' 不是 'value',点击预设后 onChange 收到的是 label 文案",
111
+ "wrong": "// list 有 value 字段但未配 valueKey:\nlist={[{ id: '1', label: '您好', value: 'hello' }]}\n// 点击后 onChange 回传 '您好'(label),不是 'hello'(value)",
112
+ "right": "quickReplyCodeProps={() => ({ valueKey: 'value' })} // 两个浮层实例都透传 valueKey='value'"
113
+ },
114
+ {
115
+ "issue": "list 每项必须有 rowKey 对应字段(默认 id),缺少会导致删除/排序等操作异常",
116
+ "wrong": "list={[{ label: '您好' }, { label: '谢谢' }]} // 缺少 id 字段,rowKey 默认 'id'",
117
+ "right": "list={[{ id: '1', label: '您好' }, { id: '2', label: '谢谢' }]}"
118
+ },
119
+ {
120
+ "issue": "quickReplyCodeProps 是工厂函数,不是对象,接受 'select'|'setting' 参数",
121
+ "wrong": "quickReplyCodeProps={{ add: false, edit: false }} // TS 报错,类型是函数",
122
+ "right": "quickReplyCodeProps={(type) => type === 'select' ? { add: false } : { add: true, edit: true }}"
123
+ }
124
+ ],
125
+ "mapping": {
126
+ "realComponent": "QuickReply",
127
+ "adapter": null
128
+ }
129
+ }
@@ -3,7 +3,7 @@ import { default as QuickReplyCode } from './QuickReplyCode';
3
3
  export interface QuickReplyCodeListProps {
4
4
  label?: string;
5
5
  value?: string;
6
- [name: string]: any;
6
+ [name: string]: unknown;
7
7
  }
8
8
  export interface QuickReplyCodeProps {
9
9
  /** 样式class */
@@ -0,0 +1,136 @@
1
+ {
2
+ "name": "Radio",
3
+ "category": "Data Entry",
4
+ "description": "单选框,用于在多个选项中选择一个,支持受控/非受控及 disabled tooltip",
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
+ "group": {
22
+ "meaning": "单选框组"
23
+ },
24
+ "button": {
25
+ "meaning": "按钮样式单选"
26
+ }
27
+ },
28
+ "states": [
29
+ "checked",
30
+ "unchecked",
31
+ "disabled"
32
+ ],
33
+ "idealProps": {
34
+ "checked": {
35
+ "type": "boolean",
36
+ "description": "受控选中态;父维护 state · 互斥实现:`checked={selectedValue === thisValue}`;**onChange 仅 unchecked → checked 单向触发**(单选框选中后无法 UI 取消)"
37
+ },
38
+ "defaultChecked": {
39
+ "type": "boolean",
40
+ "description": "非受控初始选中态;首次渲染后内部维护;onChange 仍单向触发"
41
+ },
42
+ "disabled": {
43
+ "type": "boolean",
44
+ "default": false,
45
+ "description": "禁用(无法点击/触发 onChange);**本组件无 readOnly prop**,只读场景用 disabled+CSS 灰度覆盖"
46
+ },
47
+ "label": {
48
+ "type": "ReactNode",
49
+ "description": "标题文案;支持 ReactNode(AutoTips 包裹可实现超长截断+hover 显示完整,详见 codeString.ts labelOverflowRadio)"
50
+ },
51
+ "labelTooltip": {
52
+ "type": "LabelTooltipProps",
53
+ "description": "**帮助图标式 tooltip**:label 旁渲染 ? 图标 · hover 显示 tooltip;**不是文字截断省略**(截断需配 AutoTips 包 label · 见 codeString.ts)"
54
+ },
55
+ "width": {
56
+ "type": "string",
57
+ "description": "组件外层容器宽度;常用配合 label 截断(`width='100px'`)"
58
+ },
59
+ "onChange": {
60
+ "type": "(e: React.MouseEvent<HTMLLabelElement>, checked: boolean) => void",
61
+ "description": "选中态变化回调(src/Radio/index.tsx:38 interface 实证,签名为 MouseEvent on HTMLLabelElement,非 ChangeEvent);**仅在 unchecked → checked 单向触发一次**;第二参数 checked = 切换后的新状态(本组件场景下永远为 true)"
62
+ },
63
+ "size": {
64
+ "type": "enum",
65
+ "values": ["small", "medium", "large"],
66
+ "default": "large",
67
+ "description": "单选框大小(src/Radio/index.tsx:24,46,77 实证:default='large';控制 CSS 类 paraui-v4-radio-{size})"
68
+ },
69
+ "disabledTooltip": {
70
+ "type": "TooltipProps",
71
+ "description": "禁用状态下的 Tooltip 配置(src/Radio/index.tsx:34-35,136-142 实证:disabled 时将整个 Radio 包裹在 Tooltip 内,透传全部 TooltipProps,字段名 `title` 作为提示内容)"
72
+ },
73
+ "inputProps": {
74
+ "type": "React.InputHTMLAttributes<HTMLInputElement>",
75
+ "description": "内层原生 radio input 的额外 props(src/Radio/index.tsx:36,118 实证:透传到 `<input type='radio' {...props.inputProps} />`,可用于设置 name/value 等原生属性)"
76
+ },
77
+ "className": {
78
+ "type": "string",
79
+ "description": "自定义类名(src/Radio/index.tsx:14,43 实证,追加到根 label 元素的 className)"
80
+ },
81
+ "style": {
82
+ "type": "React.CSSProperties",
83
+ "description": "自定义样式(src/Radio/index.tsx:16,51,102 实证,透传到根 label 元素的 style;与 width prop 合并)"
84
+ }
85
+ },
86
+ "do": [
87
+ "选项较少(< 5)时优先展示所有选项而非使用 Select",
88
+ "Radio Group 能够清晰展示所有可用选项",
89
+ "**多 Radio 互斥**:父维护 `useState<string> selectedValue` · 每个 Radio 用 `checked={selectedValue === thisValue}` + onChange 触发后 `setSelectedValue(thisValue)`(完整示例见 docs/view/radio/codeString.ts multiRadioGroup)",
90
+ "**label 超长截断 + hover 完整显示**:用 `AutoTips` 包 label,如 `<Radio label={<AutoTips tipMaxWidth='none'>超长 label</AutoTips>} width='180px' />`"
91
+ ],
92
+ "dont": [
93
+ "在可以多选的场景使用 Radio",
94
+ "Radio 选中后无法取消(设计上应保持选中状态;若需 on/off 切换语义请用 Checkbox)",
95
+ "**期望 onChange 在选中后再次点击会再触发(单向触发,只在 unchecked → checked 触发一次)**",
96
+ "**依赖 labelTooltip 实现 label 文字截断省略**(labelTooltip 只是 ? 帮助图标 tooltip · 不截断;截断用 AutoTips 包 label)",
97
+ "**期望 Radio 有 readOnly prop**(无;只读用 disabled + CSS)"
98
+ ],
99
+ "events": {
100
+ "onChange": {
101
+ "signature": "(e: React.MouseEvent<HTMLLabelElement>, checked: boolean) => void",
102
+ "asyncSupported": false,
103
+ "examples": [
104
+ "受控互斥:onChange={(e, checked) => { if (checked) setSelectedValue(thisValue); }}",
105
+ "非受控监听:onChange={(e, checked) => console.log('选中', checked)} // checked 永远为 true",
106
+ "阻止冒泡:onChange={(e, checked) => { e.stopPropagation(); setSelected(checked); }}"
107
+ ],
108
+ "commonMistakes": [
109
+ "期望回调签名是 (e: ChangeEvent<HTMLInputElement>) → 实际是 MouseEvent<HTMLLabelElement>,监听 e.target 行为不同",
110
+ "期望 checked 参数可以是 false(已选后再次点击)——onChange 只在 unchecked→checked 触发,checked 永远为 true",
111
+ "用 onChange 做「取消选中」逻辑——Radio 无法通过点击取消选中;需要 toggle 语义请用 Checkbox"
112
+ ]
113
+ }
114
+ },
115
+ "typescriptPitfalls": [
116
+ {
117
+ "issue": "onChange 签名是 MouseEvent on HTMLLabelElement,不是 ChangeEvent<HTMLInputElement>",
118
+ "wrong": "onChange={(e: React.ChangeEvent<HTMLInputElement>) => setValue(e.target.checked)} // 类型不匹配",
119
+ "right": "onChange={(e: React.MouseEvent<HTMLLabelElement>, checked: boolean) => { if (checked) setValue(thisValue); }}"
120
+ },
121
+ {
122
+ "issue": "disabledTooltip 的类型是 TooltipProps(完整对象),不是字符串",
123
+ "wrong": "disabledTooltip='此项不可选' // 类型报错,应传对象",
124
+ "right": "disabledTooltip={{ title: '此项不可选', placement: 'top' }}"
125
+ },
126
+ {
127
+ "issue": "size 默认值是 'large'(不是 'medium'),与 antd/MUI 业界惯例不同",
128
+ "wrong": "// 不传 size 期望得到中等大小\n<Radio label='选项' /> // 实际渲染 large 尺寸",
129
+ "right": "<Radio label='选项' size='medium' /> // 明确指定 size 避免布局意外"
130
+ }
131
+ ],
132
+ "mapping": {
133
+ "realComponent": "Radio",
134
+ "adapter": null
135
+ }
136
+ }