@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,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
+ }
@@ -0,0 +1,104 @@
1
+ {
2
+ "name": "Result",
3
+ "category": "Feedback",
4
+ "description": "用于反馈一系列操作任务的处理结果",
5
+ "semantic": {
6
+ "intent": [
7
+ "展示结果",
8
+ "引导下一步",
9
+ "明确状态"
10
+ ],
11
+ "useCases": [
12
+ "提交成功",
13
+ "提交失败",
14
+ "加载中"
15
+ ],
16
+ "riskLevel": "normal"
17
+ },
18
+ "variants": {
19
+ "success": {
20
+ "meaning": "成功(src 实装)"
21
+ },
22
+ "error": {
23
+ "meaning": "错误(src 实装)"
24
+ },
25
+ "loading": {
26
+ "meaning": "加载中(src 实装)"
27
+ },
28
+ "_blueprint_403": {
29
+ "meaning": "(蓝图 / src 未实装)无权限页 — 当前需用 icon 自定义模拟,见 discussions/Result-status-expansion-and-footer-epic.md"
30
+ },
31
+ "_blueprint_404": {
32
+ "meaning": "(蓝图 / src 未实装)未找到页 — 当前需用 icon 自定义模拟"
33
+ },
34
+ "_blueprint_500": {
35
+ "meaning": "(蓝图 / src 未实装)服务器错误页 — 当前需用 icon 自定义模拟"
36
+ },
37
+ "_blueprint_warning": {
38
+ "meaning": "(蓝图 / src 未实装)警告反馈 — 当前需用 icon 自定义模拟"
39
+ },
40
+ "_blueprint_info": {
41
+ "meaning": "(蓝图 / src 未实装)信息反馈 — 当前需用 icon 自定义模拟"
42
+ }
43
+ },
44
+ "states": [
45
+ "visible"
46
+ ],
47
+ "idealProps": {
48
+ "status": {
49
+ "type": "'success' | 'error' | 'loading'",
50
+ "values": ["success", "error", "loading"],
51
+ "description": "结果状态;⚠️ src 当前仅实装这 3 个枚举值(src/Result/index.tsx:22 实证);蓝图 404/403/500/warning/info 见 variants._blueprint_* 与 discussions/Result-status-expansion-and-footer-epic.md;业务侧需要这些状态时,用 icon 自定义模拟"
52
+ },
53
+ "title": {
54
+ "type": "ReactNode",
55
+ "description": "标题;src 内部经 AutoTips 包装,长文案自动 Tooltip"
56
+ },
57
+ "subTitle": {
58
+ "type": "ReactNode",
59
+ "description": "副标题;无 AutoTips 包装"
60
+ },
61
+ "icon": {
62
+ "type": "ReactNode",
63
+ "description": "自定义结果图标;优先级【高于】status 默认图标;src 内部包在 .icon-box 容器中"
64
+ },
65
+ "footer": {
66
+ "type": "ReactNode",
67
+ "description": "⚠️ 操作区(底部);prop 名是 footer(不是 extra)!component.json 历史版本写过 extra 是蓝图笔误,src 实际实装的是 footer(src/Result/index.tsx:30 实证);通常放 1-2 个按钮"
68
+ }
69
+ },
70
+ "do": [
71
+ "在关键环节(支付/提交)结束后用 Result 反馈结果",
72
+ "提供明确的返回或重试按钮(放在 footer 插槽)",
73
+ "shape: 404/403/500/warning 等业务状态,通过 icon 自定义图标 + title 文案表达",
74
+ "长 title 文案放心使用 — 组件内部经 AutoTips 自动 Tooltip"
75
+ ],
76
+ "dont": [
77
+ "**不要传 status='404' / '403' / '500' / 'warning' / 'info'** — src 当前仅 success/error/loading 3 枚举,会触发 tsc 类型错误",
78
+ "**不要用 extra prop** — 操作区是 footer(extra 是蓝图未实装)",
79
+ "在简单的操作反馈中使用 Result(应使用 Message)",
80
+ "在 footer 内放过多按钮(2 个为佳:主+次)"
81
+ ],
82
+ "events": {},
83
+ "typescriptPitfalls": [
84
+ {
85
+ "issue": "status 枚举仅有 3 个值,传 '404'/'403'/'500'/'warning'/'info' 触发 TS 类型错误",
86
+ "wrong": "<Result status='404' title='Not Found' /> // TS 报 '404' 不属于 'success' | 'error' | 'loading'",
87
+ "right": "<Result icon={<NotFoundIcon />} title='404 - Not Found' /> // 用 icon 自定义模拟"
88
+ },
89
+ {
90
+ "issue": "操作区插槽名是 footer,不是 extra(历史蓝图遗留 extra 但 src 未实装)",
91
+ "wrong": "<Result status='success' extra={<Button>返回</Button>} /> // extra prop 不存在,静默无效",
92
+ "right": "<Result status='success' footer={<Button>返回</Button>} /> // src/Result/index.tsx:30 实证 footer"
93
+ },
94
+ {
95
+ "issue": "icon 与 status 同时传时 icon 优先,status 图标被覆盖",
96
+ "wrong": "// 期望用 status 图标同时用自定义外层容器 → icon 覆盖 status 图标",
97
+ "right": "// 需要自定义图标时只传 icon,无需传 status;需要预设图标时只传 status,不传 icon"
98
+ }
99
+ ],
100
+ "mapping": {
101
+ "realComponent": "Result",
102
+ "adapter": null
103
+ }
104
+ }
@@ -0,0 +1,115 @@
1
+ {
2
+ "name": "ScrollBar",
3
+ "category": "Layout",
4
+ "description": "滚动条美化:既支持全局 CSS 主题(默认场景),也提供 stand-alone 自驱动组件(虚拟列表/Canvas 等高级场景)",
5
+ "semantic": {
6
+ "intent": [
7
+ "美化原生滚动条",
8
+ "自驱动滚动指示器"
9
+ ],
10
+ "useCases": [
11
+ "固定高度内容溢出滚动(模式 A)",
12
+ "横向画廊(模式 A)",
13
+ "侧边栏/抽屉内容(模式 A)",
14
+ "虚拟列表/Canvas 自定义滚动(模式 B)"
15
+ ],
16
+ "riskLevel": "low"
17
+ },
18
+ "variants": {
19
+ "themedNative": {
20
+ "meaning": "模式 A:全局 className 主题 + native overflow(99% 场景推荐);使用 className `paraui-v4-scrollbar-{small|medium|large}{-deep}?` + native overflow:auto,不需要 import 任何组件"
21
+ },
22
+ "selfDriven": {
23
+ "meaning": "模式 B:<ScrollBar> stand-alone 组件,业务侧自驱动 scroll state(虚拟列表/Canvas 高级场景);组件本身不接受 children"
24
+ }
25
+ },
26
+ "states": [
27
+ "default",
28
+ "scrolling"
29
+ ],
30
+ "idealProps": {
31
+ "type": {
32
+ "type": "'horizontal' | 'vertical'",
33
+ "values": ["horizontal", "vertical"],
34
+ "default": "'vertical'",
35
+ "description": "(模式 B)滚动条方向"
36
+ },
37
+ "size": {
38
+ "type": "'small' | 'medium' | 'large'",
39
+ "values": ["small", "medium", "large"],
40
+ "default": "'large'",
41
+ "description": "(模式 B)滚动条粗细;small/medium 同款细(4px),large 粗(8px)"
42
+ },
43
+ "color": {
44
+ "type": "'deep' | 'light'",
45
+ "values": ["deep", "light"],
46
+ "default": "'light'",
47
+ "description": "(模式 B)配色;light 浅背景,deep 深背景"
48
+ },
49
+ "scrollTotalLength": {
50
+ "type": "number",
51
+ "description": "(模式 B)内容总滚动距离(px);= contentTotalSize - visualWindowSize;业务侧从 scrollHeight - clientHeight 计算并传入"
52
+ },
53
+ "scrollLength": {
54
+ "type": "number",
55
+ "description": "(模式 B)当前滚动距离(px);业务侧从 native scrollTop/scrollLeft 同步进来;变化时组件移动滑块位置"
56
+ },
57
+ "onScroll": {
58
+ "type": "function",
59
+ "signature": "(val: number) => void",
60
+ "description": "(模式 B)用户拖拽滚动条时回调;val = 用户操作后业务侧应同步到 native 元素的 scrollTop/scrollLeft 值"
61
+ },
62
+ "themedClassName": {
63
+ "type": "string (literal)",
64
+ "description": "(模式 A)在 native overflow 容器上加 className,从下面选一个:'paraui-v4-scrollbar-small' / 'paraui-v4-scrollbar-medium' / 'paraui-v4-scrollbar-large' / '*-deep' 深色变体;src/Styles/scrollbar.scss 实现 ::-webkit-scrollbar-* 美化"
65
+ }
66
+ },
67
+ "do": [
68
+ "默认场景(限高容器 + 子内容溢出)用模式 A:className 主题 + native overflow:auto",
69
+ "横向滚动用 overflowX:auto + className 'paraui-v4-scrollbar-small' 等主题",
70
+ "虚拟列表 / Canvas 等业务侧已有 scroll state 的场景用模式 B:<ScrollBar /> 组件 + scrollTotalLength + scrollLength",
71
+ "深色背景上的滚动条用 *-deep 变体(浅色背景上保持默认或显式 light)"
72
+ ],
73
+ "dont": [
74
+ "**不要给 <ScrollBar> 组件传 children**(它不是 scroll 容器,是 visual indicator)",
75
+ "不要在普通业务场景重复实现 scrollTotalLength/scrollLength 计算 — 用模式 A className 即可",
76
+ "不要嵌套两层 ScrollBar 容器(双滚动条体验差)",
77
+ "不要忘了模式 B 必须搭配 native overflow:hidden 的容器才能视觉上接管滚动"
78
+ ],
79
+ "events": {
80
+ "onScroll": {
81
+ "signature": "(val: number) => void",
82
+ "asyncSupported": false,
83
+ "examples": [
84
+ "用户拖拽滚动条时触发,val = 应同步到 native 元素的 scrollTop/scrollLeft 值",
85
+ "onScroll={(val) => { nativeRef.current.scrollTop = val; setScrollLength(val); }}",
86
+ "双向绑定:业务侧同时监听 native onScroll 更新 scrollLength prop,ScrollBar.onScroll 更新 native scrollTop"
87
+ ],
88
+ "commonMistakes": [
89
+ "只传 onScroll 未更新 native 元素的 scrollTop——val 是期望值,需业务侧手动同步到 DOM",
90
+ "onScroll 和 scrollLength 没有形成闭环——用户拖 scrollbar 时 onScroll 触发更新 scrollTop;native 滚动时 onScroll 不触发,需监听 native onScroll 更新 scrollLength"
91
+ ]
92
+ }
93
+ },
94
+ "typescriptPitfalls": [
95
+ {
96
+ "issue": "ScrollBar 组件的 Props interface 名是 Props(不是 ScrollBarProps),外部无法直接 import 类型",
97
+ "wrong": "import { ScrollBarProps } from '@para-ui/core/ScrollBar' // 类型未导出",
98
+ "right": "// 直接使用 JSX 不需要类型引用;如需类型可自行 declare 或用 React.ComponentProps<typeof ScrollBar>"
99
+ },
100
+ {
101
+ "issue": "scrollTotalLength 传错含义——应是「可滚动距离」不是「内容总高度」",
102
+ "wrong": "scrollTotalLength={contentHeight} // 期望传内容总高度——实际应传 scrollHeight - clientHeight",
103
+ "right": "scrollTotalLength={scrollHeight - clientHeight} // = contentTotalSize - visualWindowSize"
104
+ },
105
+ {
106
+ "issue": "模式 A(className 主题)不需要 import ScrollBar 组件,直接加 className 即可",
107
+ "wrong": "import ScrollBar from '@para-ui/core/ScrollBar'; <ScrollBar>...</ScrollBar> // ScrollBar 不接受 children",
108
+ "right": "<div className='paraui-v4-scrollbar-small' style={{overflowY: 'auto'}}>...</div> // 模式 A 不 import 组件"
109
+ }
110
+ ],
111
+ "mapping": {
112
+ "realComponent": "ScrollBar",
113
+ "adapter": null
114
+ }
115
+ }
@@ -0,0 +1,177 @@
1
+ {
2
+ "name": "Search",
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
+ "focused"
25
+ ],
26
+ "idealProps": {
27
+ "value": {
28
+ "type": "string",
29
+ "description": "受控输入值(src/Search/index.tsx:26 实证)。与 `defaultValue` 互斥——传 value 后为受控模式,内部 state 不自动更新,需配合 onChange 手动同步"
30
+ },
31
+ "defaultValue": {
32
+ "type": "string",
33
+ "description": "非受控初始值(src/Search/index.tsx:24 实证)。组件 mount 时一次性设置,之后内部管理输入 state。与 value 互斥——不要同时传"
34
+ },
35
+ "placeholder": {
36
+ "type": "string | ReactNode",
37
+ "description": "输入框占位文案(src/Search/index.tsx:22 实证,类型 ReactNode,实际用 string 即可)。默认空字符串"
38
+ },
39
+ "allowClear": {
40
+ "type": "boolean",
41
+ "default": true,
42
+ "description": "是否显示清空按钮(src/Search/index.tsx:28 实证,默认 true)。清空时触发 `onClear` 回调"
43
+ },
44
+ "onChange": {
45
+ "type": "function",
46
+ "signature": "(val: string, event: React.ChangeEvent<HTMLInputElement> | null) => void",
47
+ "description": "输入值变化回调(src/Search/index.tsx:30 实证签名,两参:val 字符串值 + event 原生事件)。⚠️ **第一参是 string 值,不是 event**——区别于原生 input onChange。当点击搜索按钮且未传 onClickBtn 时也会触发 onChange(event 此时为 null)"
48
+ },
49
+ "onClickBtn": {
50
+ "type": "function",
51
+ "signature": "(val: string) => void",
52
+ "description": "点击右侧搜索按钮的回调(src/Search/index.tsx:40 实证签名)。参数 val 为当前输入框的值。⚠️ **若不传 onClickBtn,点击按钮会 fallback 触发 onChange**(src:99-104)。`onClickRightIcon` 是其已废弃别名"
53
+ },
54
+ "onEnter": {
55
+ "type": "function",
56
+ "signature": "(event: React.KeyboardEvent<HTMLInputElement>) => void",
57
+ "description": "回车键按下的回调(src/Search/index.tsx:46 实证签名)。通常与 onClickBtn 配合覆盖「按钮触发搜索」和「回车触发搜索」两种路径"
58
+ },
59
+ "onClear": {
60
+ "type": "function",
61
+ "signature": "() => void",
62
+ "description": "点击清空按钮的回调(src/Search/index.tsx:44 实证签名,无参)。清空后输入框值变为空字符串;allowClear=true 时清空按钮才可见"
63
+ },
64
+ "onFocus": {
65
+ "type": "function",
66
+ "signature": "(event: React.FocusEvent<HTMLInputElement>) => void",
67
+ "description": "输入框获得焦点的回调(src/Search/index.tsx:34 实证签名)"
68
+ },
69
+ "onBlur": {
70
+ "type": "function",
71
+ "signature": "(event: React.FocusEvent<HTMLInputElement>) => void",
72
+ "description": "输入框失去焦点的回调(src/Search/index.tsx:32 实证签名)"
73
+ },
74
+ "size": {
75
+ "type": "enum",
76
+ "values": [
77
+ "small",
78
+ "medium",
79
+ "large"
80
+ ],
81
+ "default": "large",
82
+ "description": "控件大小(src/Search/index.tsx:18 实证,默认 large)"
83
+ },
84
+ "radius": {
85
+ "type": "boolean",
86
+ "default": false,
87
+ "description": "是否使用圆角样式(src/Search/index.tsx:20 实证)"
88
+ },
89
+ "onClickRightIcon": {
90
+ "type": "function",
91
+ "signature": "(val: string) => void",
92
+ "description": "⚠️ **已废弃,请使用 `onClickBtn`**(src/Search/index.tsx:41 注释实证)。点击输入框右侧图标的回调,与 onClickBtn 同时触发"
93
+ },
94
+ "onKeydown": {
95
+ "type": "function",
96
+ "signature": "(event: React.KeyboardEvent<HTMLInputElement>) => void",
97
+ "description": "键盘按下事件回调(src/Search/index.tsx:36 实证)。⚠️ **注意拼写:onKeydown(非 onKeyDown)**,prop 名首字母 d 小写"
98
+ },
99
+ "onKeyUp": {
100
+ "type": "function",
101
+ "signature": "(event: React.KeyboardEvent<HTMLInputElement>) => void",
102
+ "description": "键盘抬起事件回调(src/Search/index.tsx:38 实证)"
103
+ }
104
+ },
105
+ "do": [
106
+ "支持回车搜索:同时传 onEnter 和 onClickBtn 覆盖「回车触发」和「点击按钮触发」两条路径",
107
+ "提供清空按钮:allowClear 默认 true,清空时只触发 onClear,不触发 onChange",
108
+ "受控模式:传 value + onChange 实现受控;onChange 第一参是 string 值(不是 event)",
109
+ "非受控模式:只传 defaultValue,内部管理输入 state;不要同时传 value 和 defaultValue"
110
+ ],
111
+ "dont": [
112
+ "不要把 onChange 的第一参当 event 使用——Search.onChange 签名是 (val: string, event) 而非 antd Input.onChange 的 (event) 签名",
113
+ "不要忽略 onClickBtn 为空时点击搜索按钮的 fallback 行为——未传 onClickBtn 时点击会触发 onChange(event 为 null)",
114
+ "搜索时不给反馈(网络搜索场景应配合 loading 状态)"
115
+ ],
116
+ "events": {
117
+ "onChange": {
118
+ "signature": "(val: string, event: React.ChangeEvent<HTMLInputElement> | null) => void",
119
+ "asyncSupported": false,
120
+ "examples": [
121
+ "用户实时输入时触发,val 是当前输入框字符串值",
122
+ "点击右侧搜索按钮且未传 onClickBtn 时也触发,此时 event 为 null",
123
+ "受控用法:const [keyword, setKeyword] = useState(''); <Search value={keyword} onChange={(val) => setKeyword(val)} />"
124
+ ],
125
+ "commonMistakes": [
126
+ "误按 antd Input 习惯写 onChange={(e) => setValue(e.target.value)} — 第一参是 string 不是 event",
127
+ "期望清空按钮触发 onChange — 清空只触发 onClear,需同时监听 onClear 来清空外部 state",
128
+ "忘记 onClickBtn 未传时 onChange event 参数可能为 null — 应做 null 判断再访问 event.target"
129
+ ]
130
+ },
131
+ "onClickBtn": {
132
+ "signature": "(val: string) => void",
133
+ "asyncSupported": false,
134
+ "examples": [
135
+ "用户点击右侧搜索图标时触发,val 为当前输入框的值",
136
+ "通常与 onEnter 一起传:点击和回车都调用同一个 search 函数"
137
+ ],
138
+ "commonMistakes": [
139
+ "不传 onClickBtn 时点击按钮 fallback 触发 onChange(event=null)— 若只需按钮触发必须显式传 onClickBtn",
140
+ "与 onClickRightIcon 混淆 — onClickRightIcon 是 onClickBtn 的已废弃别名,二者同时触发"
141
+ ]
142
+ },
143
+ "onEnter": {
144
+ "signature": "(event: React.KeyboardEvent<HTMLInputElement>) => void",
145
+ "asyncSupported": false,
146
+ "examples": [
147
+ "用户在输入框按回车键触发,event 是 KeyboardEvent",
148
+ "取当前值:event.currentTarget.value 或从外部 state 直接读 keyword"
149
+ ],
150
+ "commonMistakes": [
151
+ "与 onClickBtn 语义重复时未合并为同一个函数 — 可在父组件定义 handleSearch 同时传给两个 prop",
152
+ "假设 onEnter 触发时 onChange 也会触发 — 回车不会触发 onChange,需在 onEnter 里单独处理搜索逻辑"
153
+ ]
154
+ }
155
+ },
156
+ "typescriptPitfalls": [
157
+ {
158
+ "issue": "onChange 签名与原生 input onChange 不同,第一参是 string 值而非 event",
159
+ "wrong": "onChange={(e) => setVal(e.target.value)} // TS 报 string 没有 .target 属性",
160
+ "right": "onChange={(val) => setVal(val)} // val: string 直接使用"
161
+ },
162
+ {
163
+ "issue": "onKeydown prop 名小写 d,不是 onKeyDown(驼峰 D)",
164
+ "wrong": "<Search onKeyDown={handler} /> // prop 名不存在,静默无效",
165
+ "right": "<Search onKeydown={handler} /> // src/Search/index.tsx:36 interface 实证 onKeydown 小写 d"
166
+ },
167
+ {
168
+ "issue": "onClickRightIcon 已废弃,运行时与 onClickBtn 同时触发造成双重执行",
169
+ "wrong": "<Search onClickRightIcon={handleSearch} /> // 废弃 API,src 注释明确不建议使用",
170
+ "right": "<Search onClickBtn={handleSearch} /> // 推荐替代 prop"
171
+ }
172
+ ],
173
+ "mapping": {
174
+ "realComponent": "Search",
175
+ "adapter": null
176
+ }
177
+ }