@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,244 @@
1
+ {
2
+ "name": "Select",
3
+ "category": "Form",
4
+ "description": "下拉选择器,支持单选、多选、搜索和树形数据",
5
+ "semantic": {
6
+ "intent": [
7
+ "选择选项",
8
+ "搜素选择",
9
+ "多选"
10
+ ],
11
+ "useCases": [
12
+ "表单选择",
13
+ "数据筛选",
14
+ "标签输入"
15
+ ],
16
+ "riskLevel": "normal"
17
+ },
18
+ "variants": {
19
+ "default": {
20
+ "meaning": "标准选择器"
21
+ },
22
+ "multiple": {
23
+ "meaning": "多选选择器"
24
+ },
25
+ "search": {
26
+ "meaning": "带搜索的选择器"
27
+ }
28
+ },
29
+ "states": [
30
+ "default",
31
+ "disabled",
32
+ "error",
33
+ "open",
34
+ "loading"
35
+ ],
36
+ "idealProps": {
37
+ "value": {
38
+ "type": "T | T[] | undefined",
39
+ "description": "当前选中的值(受控)。**Select 是泛型组件 `Select<T extends SelectOptionValue, Item extends SelectOptionBase>`**——传 `<Select<'zh-CN'|'en-US'>>` 收紧 value 类型避免 as 强转(DEFECT-003);single=undefined 表示无选中、multiple=[] 表示空选"
40
+ },
41
+ "defaultValue": {
42
+ "type": "T | T[]",
43
+ "description": "默认值(非受控);同时传 value + defaultValue 时以 value 为准"
44
+ },
45
+ "onChange": {
46
+ "type": "(val: T | T[] | undefined, e: React.SyntheticEvent) => void",
47
+ "description": "选中值变化回调。**签名 `(val: T | T[] | undefined, e: React.SyntheticEvent) => void`**(DEFECT-001:src/Select/index.tsx:151/168/240 实证 — 带 e、带泛型 T、明确清空时 val=undefined 而非 '' 或 null)。**multiple=false 时** val 为 `T | undefined`(单选清空 → undefined);**multiple=true 时** val 为 `T[]`(空数组 [] 表已清空)。第二参数 e 是合成事件,业务侧不需要可省略。**泛型用法见 docs/view/select/api.ts 顶部 \"泛型签名\" 注释段**"
48
+ },
49
+ "list": {
50
+ "type": "Item[]",
51
+ "description": "数据源。`Item extends SelectOptionBase`,即 `{ label?: ReactNode; value?: string|number|boolean; disabled?: boolean; children?: SelectOptionBase[] }`。**自定义字段名时(如 cityName/cityCode),interface 必须 extends SelectOptionBase 或加 `label?/value?` 可选字段,否则 TypeScript 报不兼容错误。** 推荐:`interface MyOption extends SelectOptionBase { cityName: string; cityCode: string }` 配合 `showName='cityName' showValue='cityCode'`"
52
+ },
53
+ "renderContent": {
54
+ "type": "function",
55
+ "signature": "(item: Item, type: boolean | 'more') => ReactNode",
56
+ "description": "自定义选项 / 选中态渲染(DEFECT-002)。**第二参数 type 三态**:`type === false` → 渲染选中态(在选择框中回显);`type === true` → 渲染下拉浮层中的每一项;`type === 'more'` → 渲染下拉浮层底部的『更多』占位项。historic 命名 isSelect 实际语义按 type 三态对应"
57
+ },
58
+ "placeholder": {
59
+ "type": "ReactNode",
60
+ "description": "选择框默认文字"
61
+ },
62
+ "disabled": {
63
+ "type": "boolean | any[]",
64
+ "default": false,
65
+ "description": "禁用控制。boolean=整体禁用;any[]=**禁用部分选项的 value 列表**(src 实证 `disabled.indexOf(val)`,传 value 数组而非 option 对象数组或索引)"
66
+ },
67
+ "allowClear": {
68
+ "type": "boolean",
69
+ "default": false,
70
+ "description": "支持清除"
71
+ },
72
+ "search": {
73
+ "type": "boolean",
74
+ "default": false,
75
+ "description": "是否使能搜索(不传 fetchSuggestions 时按 showName 字段做客户端 includes 子串匹配)"
76
+ },
77
+ "multiple": {
78
+ "type": "boolean",
79
+ "default": false,
80
+ "description": "是否多选"
81
+ },
82
+ "size": {
83
+ "type": "enum",
84
+ "values": [
85
+ "small",
86
+ "medium",
87
+ "large"
88
+ ],
89
+ "default": "large"
90
+ },
91
+ "label": {
92
+ "type": "ReactNode",
93
+ "description": "标签文本"
94
+ },
95
+ "labelMode": {
96
+ "type": "enum",
97
+ "values": [
98
+ "outside",
99
+ "inside"
100
+ ],
101
+ "default": "outside"
102
+ },
103
+ "showName": {
104
+ "type": "string",
105
+ "default": "label",
106
+ "required": false,
107
+ "description": "数据源的显示字段名,默认 'label'。⚠️ AI 常见错误:数据源字段名不是 label 时忘记传此 prop,导致下拉无文字或显示 undefined。正确做法:数据格式为 { name, id } 时传 showName='name'"
108
+ },
109
+ "showValue": {
110
+ "type": "string",
111
+ "default": "value",
112
+ "required": false,
113
+ "description": "数据源的取值字段名,默认 'value'。⚠️ AI 常见错误:数据源字段名不是 value 时忘记传此 prop,导致 onChange 返回 undefined 或选中异常。正确做法:数据格式为 { name, id } 时传 showValue='id'"
114
+ },
115
+ "childrenName": {
116
+ "type": "string",
117
+ "default": "children",
118
+ "required": false,
119
+ "description": "数据源的子级字段名,默认 'children',树形 Select 时使用。数据格式为 { name, id, subItems } 时传 childrenName='subItems'"
120
+ },
121
+ "fetchSuggestions": {
122
+ "type": "(inputValue: string, callback: (suggestions: any[]) => void) => void",
123
+ "required": false,
124
+ "description": "异步搜索回调,search=true 时生效。用户输入时触发,通过 callback 返回建议列表。⚠️ 传了 fetchSuggestions 则客户端 includes 过滤失效,建议列表完全由 callback 控制"
125
+ },
126
+ "searchModel": {
127
+ "type": "enum",
128
+ "values": ["outside", "inside"],
129
+ "default": "inside",
130
+ "required": false,
131
+ "description": "搜索框位置,outside=浮层外(触发框变搜索框)/ inside=浮层内(下拉顶部搜索框,默认)"
132
+ },
133
+ "onClear": {
134
+ "type": "() => void",
135
+ "required": false,
136
+ "description": "点击清空按钮时触发,allowClear=true 时有效"
137
+ },
138
+ "onEnterInput": {
139
+ "type": "(val: string) => void",
140
+ "required": false,
141
+ "description": "搜索框回车事件,val 为当前搜索框输入值"
142
+ }
143
+ },
144
+ "commonMisconceptions": [
145
+ "AI 常见错误:数据源字段名不是 label/value 时,忘记传 showName/showValue,导致下拉无数据或显示异常。正确做法:数据格式为 { name, id } 时,应传 showName='name' showValue='id'",
146
+ "AI 常见错误:自定义 interface(如 { cityName, cityCode })直接传给 list,TypeScript 报 '不满足 SelectOptionBase'——正确做法:interface MyOption extends SelectOptionBase { cityName: string; cityCode: string },或在 interface 里加 label?/value? 可选字段",
147
+ "AI 常见错误:onChange 单选清空时误以为 val 为 '' 或 null——实际为 undefined(DEFECT-001)",
148
+ "AI 常见错误:按 renderContent 参数名 isSelect 字面理解——实际按 type 三态(false=选中回显/true=下拉项/'more'=占位)(DEFECT-002)"
149
+ ],
150
+ "do": [
151
+ "选项过多时应当使用 search 开启搜索功能",
152
+ "使用 list 属性传入其数据源以优化性能",
153
+ "**显式收紧 value 泛型**:`<Select<'zh-CN'|'en-US'> value={lang} ... />`,避免 as 强转(DEFECT-003)",
154
+ "renderContent 用 type 取值区分三态:`type === false` 选中态、`type === true` 下拉项、`type === 'more'` 占位项",
155
+ "disabled 数组传 value 列表(不是 option 对象、不是索引)"
156
+ ],
157
+ "dont": [
158
+ "选项少于 5 个时建议优先使用 Radio.Group",
159
+ "直接在 options 中渲染过于复杂的 DOM 结构",
160
+ "不要假设 onChange 单选清空时 val 为 \\'\\\\'\\\\' 或 null——实际为 undefined(DEFECT-001)",
161
+ "不要按 renderContent 参数名 isSelect 字面理解——实际按 type 三态(DEFECT-002)"
162
+ ],
163
+ "events": {
164
+ "onChange": {
165
+ "signature": "(val: T | T[] | undefined, e: React.SyntheticEvent) => void",
166
+ "asyncSupported": false,
167
+ "examples": [
168
+ "单选时接收选中项 value(清空时 val 为 undefined,不是 '' 或 null)",
169
+ "多选时接收当前已选项的 value 数组(清空时 val 为 [])",
170
+ "结合泛型收紧类型:<Select<number> onChange={(val) => setId(val)} />(val 推断为 number | undefined)"
171
+ ],
172
+ "commonMistakes": [
173
+ "假设单选清空时 val 为 ''——实际为 undefined(src/Select/index.tsx:151 `onChange?: (val: T | undefined, e: React.SyntheticEvent) => void`)",
174
+ "忽略第二参数 e(SyntheticEvent),直接写 onChange={handleChange} 时 TypeScript 报签名不匹配——应写 (val, _e) => handle(val)",
175
+ "多选模式下假设 val 不会是数组——multiple=true 时 val 始终是 T[],即使只选了一项也是 [item]",
176
+ "假设 onChange 只在点击选项时触发——清空按钮(allowClear=true)也触发 onChange,此时 val 为 undefined 或 []"
177
+ ]
178
+ },
179
+ "onEnter": {
180
+ "signature": "(val: T | T[]) => void",
181
+ "asyncSupported": false,
182
+ "examples": [
183
+ "单选模式:用户在选中项后按回车,val 为当前选中的单值",
184
+ "多选模式:val 为当前已选的 T[] 数组"
185
+ ],
186
+ "commonMistakes": [
187
+ "与 onEnterInput 混淆——onEnter 是选中回车(在选项上回车),onEnterInput 是搜索框输入回车(val 为搜索字符串)",
188
+ "假设 onEnter 一定触发——仅在 search=true 或 input=true 模式下且搜索框/输入框有焦点时有效"
189
+ ]
190
+ },
191
+ "onClear": {
192
+ "signature": "() => void",
193
+ "asyncSupported": false,
194
+ "examples": [
195
+ "用户点击清空图标时触发(需 allowClear=true),此时 onChange 也会同时触发"
196
+ ],
197
+ "commonMistakes": [
198
+ "只监听 onClear 而不监听 onChange——受控模式下还需在 onChange 中同步清空 state",
199
+ "allowClear=false 时期望 onClear 触发——不会触发,清空按钮不显示"
200
+ ]
201
+ },
202
+ "onEnterInput": {
203
+ "signature": "(val: string) => void",
204
+ "asyncSupported": false,
205
+ "examples": [
206
+ "搜索框回车时触发,val 为当前输入的字符串——适合实现「按回车新建标签」场景"
207
+ ],
208
+ "commonMistakes": [
209
+ "与 onEnter 混淆——onEnterInput 是搜索输入框回车,onEnter 是选项选中回车"
210
+ ]
211
+ }
212
+ },
213
+ "typescriptPitfalls": [
214
+ {
215
+ "issue": "onChange 签名带第二参数 e: React.SyntheticEvent,直接传函数时签名不匹配",
216
+ "wrong": "onChange={setLang} // setLang: (val: string) => void,少了 e 参数",
217
+ "right": "onChange={(val, _e) => setLang(val ?? '')} // 显式声明,保持签名兼容"
218
+ },
219
+ {
220
+ "issue": "自定义数据结构未 extends SelectOptionBase,直接传给 list 报类型错误",
221
+ "wrong": "interface CityOpt { cityName: string; cityCode: string } // 无 label/value,不兼容 SelectOptionBase",
222
+ "right": "interface CityOpt extends SelectOptionBase { cityName: string; cityCode: string } // 配合 showName='cityName' showValue='cityCode'"
223
+ },
224
+ {
225
+ "issue": "disabled 传对象数组而非 value 列表,运行时选项不禁用",
226
+ "wrong": "disabled={[{ label: 'A', value: 'a' }]} // 传了整个 option 对象,indexOf 永远匹配不到",
227
+ "right": "disabled={['a', 'b']} // 传禁用项的 value(取值字段)列表(src 实证 disabled.indexOf(val))"
228
+ },
229
+ {
230
+ "issue": "多选模式 value 传单值而非数组,受控不生效",
231
+ "wrong": "<Select multiple value={'a'} /> // multiple=true 时 value 应为 T[]",
232
+ "right": "<Select multiple value={['a']} /> // 多选 value 始终是数组"
233
+ },
234
+ {
235
+ "issue": "renderContent 用 isSelect 命名的第二参数字面理解为 boolean,忽略 'more' 态",
236
+ "wrong": "renderContent={(item, isSelect) => isSelect ? <Selected /> : <Option />} // 漏掉 isSelect==='more' 分支",
237
+ "right": "renderContent={(item, type) => type === false ? <Selected /> : type === 'more' ? <MoreTag /> : <Option />}"
238
+ }
239
+ ],
240
+ "mapping": {
241
+ "realComponent": "Select",
242
+ "adapter": null
243
+ }
244
+ }
@@ -0,0 +1,184 @@
1
+ {
2
+ "name": "SelectInput",
3
+ "category": "Data Entry",
4
+ "description": "下拉输入框,结合下拉选择和文本输入",
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": "any",
30
+ "description": "受控值;multiple=true 时为数组,multiple=false(默认)时为单值;必须配合 onChange。**单值类型**:list 项 value 字段值(string / number 取决于 SelectOptionBase.value 实际类型)"
31
+ },
32
+ "defaultValue": {
33
+ "type": "any",
34
+ "description": "非受控默认值;类型规则同 value"
35
+ },
36
+ "onChange": {
37
+ "type": "(val, e) => void",
38
+ "description": "值变化回调。**实际签名**(协议 SI1):multiple=false → `(val: string | undefined, e: SyntheticEvent) => void`(清空时 val 为 undefined);multiple=true → `(val: string[], e) => void`。**val 是 list 项 value 字段值**(不是整个对象);业务 `(next: string) => void` 透传桥接:`onChange={(val) => onChange((val ?? '') as string)}` 显式过 undefined"
39
+ },
40
+ "list": {
41
+ "type": "SelectOptionBase[]",
42
+ "itemSchema": {
43
+ "label": { "type": "ReactNode", "required": true, "description": "选项显示文案" },
44
+ "value": { "type": "any", "required": true, "description": "选项值(onChange 回调的 val 是此字段值)" },
45
+ "children": { "type": "any[]", "description": "子选项" },
46
+ "disabled": { "type": "boolean", "description": "是否禁用" }
47
+ },
48
+ "description": "下拉选项数组;项 = `{ label: ReactNode, value: any, children?: any[], disabled?: boolean }`。空数组或不传时 showSelect 自动 false。**string[] 转换**(协议 SI5):`options.map(opt => ({label: opt, value: opt}))`"
49
+ },
50
+ "multiple": {
51
+ "type": "boolean",
52
+ "default": false,
53
+ "description": "多选模式;true 时 value 必须为数组"
54
+ },
55
+ "showSelect": {
56
+ "type": "boolean",
57
+ "description": "是否显示下拉浮层;未显式传时,有 list 自动 true,无 list 自动 false。显式 false 退化为纯输入框"
58
+ },
59
+ "showName": {
60
+ "type": "string",
61
+ "default": "label",
62
+ "description": "list 项中显示名字段名"
63
+ },
64
+ "showValue": {
65
+ "type": "string",
66
+ "default": "value",
67
+ "description": "list 项中选中值字段名"
68
+ },
69
+ "searchModel": {
70
+ "type": "'outside' | 'inside'",
71
+ "values": ["outside", "inside"],
72
+ "default": "inside",
73
+ "description": "搜索框位置(协议 SI3);outside=输入框永远显示在触发按钮位置(联想标签 / 主搜);inside=输入框在浮层展开后才显示(二级筛选)。**fetchSuggestions / 联想推荐 outside**"
74
+ },
75
+ "fetchSuggestions": {
76
+ "type": "(val: string, cb: (data: SelectOptionBase[]) => void) => void",
77
+ "description": "异步联想搜索;与 list 互斥。**搭配 searchModel='outside'**(协议 SI3 / SI4)"
78
+ },
79
+ "onEnterInput": {
80
+ "type": "(val: string) => void",
81
+ "description": "回车事件;val=当前输入框原始文本(非 list 项 value)。**输入新分类必传**(协议 SI4):用户输入下拉外文本时 onChange 不触发,只有 onEnterInput 能捕获"
82
+ },
83
+ "blurChangeValueBol": {
84
+ "type": "boolean",
85
+ "default": false,
86
+ "description": "失焦时是否将输入框文本写回 value;适合搜索式输入立即生效场景"
87
+ },
88
+ "labelMode": {
89
+ "type": "'outside' | 'inside'",
90
+ "values": ["outside", "inside"],
91
+ "default": "outside",
92
+ "description": "标题位置(注:此 prop 命名与 searchModel 不同语义)"
93
+ },
94
+ "overLine": {
95
+ "type": "boolean",
96
+ "default": false,
97
+ "description": "已选项是否换行;true=超出 chip 换行,false=单行 + 折叠 '+N'"
98
+ },
99
+ "disabled": {
100
+ "type": "boolean | any[]",
101
+ "description": "禁用;布尔禁全部,数组按 value 禁用部分选项"
102
+ },
103
+ "size": {
104
+ "type": "'small' | 'medium' | 'large'",
105
+ "values": ["small", "medium", "large"],
106
+ "default": "large",
107
+ "description": "尺寸"
108
+ }
109
+ },
110
+ "crossPropInteractions": [
111
+ "multiple + onChange 签名 = 两套 union(false 时 val 可 undefined / true 时 val: string[])",
112
+ "fetchSuggestions + searchModel = 推荐配 outside(协议 SI3)",
113
+ "showSelect=false → 强制 searchModel='outside'(纯输入框模式)",
114
+ "onEnterInput + outside = 输入新分类的标准组合(协议 SI4)",
115
+ "list 项 value + showValue = 决定 onChange val 实际类型"
116
+ ],
117
+ "commonMisconceptions": [
118
+ "❌ onChange 单参直接透传 `onChange={onChange}` — 实际是双参 + val 可 undefined,TS 不符",
119
+ "❌ onChange val 是整个 SelectOptionBase 对象 — 实际是 value 字段值",
120
+ "❌ outside 模式下纯输入回车自动 onChange — 实际需要 onEnterInput 捕获",
121
+ "❌ fetchSuggestions 默认走 outside — 默认 inside,需显式 searchModel='outside'",
122
+ "❌ string[] 直接传 list — 必须 map 成 SelectOptionBase[] {label, value}"
123
+ ],
124
+ "do": [
125
+ "在需要选择并输入的场景使用(比 Select 更自由,比 TextField 带下拉)",
126
+ "支持联想搜索:配合 fetchSuggestions + searchModel='outside' 实现外部输入即触发联想",
127
+ "输入新值回车捕获:配合 onEnterInput 处理用户输入了下拉列表外的文本场景",
128
+ "list 必须传 SelectOptionBase[]:string[] 数组先 map 成 `{label: opt, value: opt}` 形式"
129
+ ],
130
+ "dont": [
131
+ "选项过多时不分页(应配合 fetchSuggestions 做异步分页)",
132
+ "忽略键盘操作(onEnterInput 是捕获回车新建条目的关键入口)",
133
+ "直接把 string[] 传给 list——必须 map 成 `[{label, value}]` 形式(协议 SI5)"
134
+ ],
135
+ "events": {
136
+ "onChange": {
137
+ "signature": "(val: T | T[] | undefined, e: React.SyntheticEvent) => void",
138
+ "asyncSupported": false,
139
+ "examples": [
140
+ "单选时 val 为选中项 value 字段值(清空时 val 为 undefined,不是 '')",
141
+ "多选时 val 为已选项 value 字段值数组",
142
+ "受控桥接:onChange={(val) => setVal((val ?? '') as string)}"
143
+ ],
144
+ "commonMistakes": [
145
+ "直接传 onChange={setValue} 时 TS 报签名不匹配——需要 (val, _e) => setValue(val ?? '')",
146
+ "期望输入框回车触发 onChange——outside 模式下用户输入未选中选项时不触发 onChange,只触发 onEnterInput",
147
+ "误以为 val 是整个 SelectOptionBase 对象——val 是 value 字段值(由 showValue 决定)"
148
+ ]
149
+ },
150
+ "onEnterInput": {
151
+ "signature": "(val: string) => void",
152
+ "asyncSupported": false,
153
+ "examples": [
154
+ "用户在输入框回车时触发,val 为输入框的原始字符串",
155
+ "新建标签场景:onEnterInput={(newTag) => setTags([...tags, newTag])}"
156
+ ],
157
+ "commonMistakes": [
158
+ "与 onChange 混淆——onEnterInput 是捕获「选项外文本回车」,onChange 是选项选中",
159
+ "忘记传 onEnterInput 导致用户输入新值回车无任何响应"
160
+ ]
161
+ }
162
+ },
163
+ "typescriptPitfalls": [
164
+ {
165
+ "issue": "onChange 签名有第二参 e: SyntheticEvent,单参函数直接传报 TS 错误",
166
+ "wrong": "onChange={setVal} // setVal: (v: string) => void,缺少 e 参数",
167
+ "right": "onChange={(val, _e) => setVal(val ?? '')} // 显式声明两参,_e 忽略"
168
+ },
169
+ {
170
+ "issue": "list 传 string[] 直接报 TS 不兼容 SelectOptionBase[]",
171
+ "wrong": "list={['option1', 'option2']} // string 不满足 SelectOptionBase 接口",
172
+ "right": "list={['option1', 'option2'].map(s => ({ label: s, value: s }))} // 转换为 SelectOptionBase[]"
173
+ },
174
+ {
175
+ "issue": "SelectInput extends SelectProps(Single | Multiple 联合),在泛型 T 未能被推断时 onChange 的 val 参数可能隐式 any(TS7006),需要显式标注参数类型",
176
+ "wrong": "onChange={(val, _e) => setValue(val as string)} // TS7006: val 隐式 any(泛型推断失败时)",
177
+ "right": "// 单选模式:\nonChange={(val: string | undefined, _e: React.SyntheticEvent) => setValue(val)}\n// 多选模式:\nonChange={(val: string[], _e: React.SyntheticEvent) => setValues(val ?? [])}"
178
+ }
179
+ ],
180
+ "mapping": {
181
+ "realComponent": "SelectInput",
182
+ "adapter": null
183
+ }
184
+ }
@@ -0,0 +1,203 @@
1
+ {
2
+ "name": "Selector",
3
+ "category": "Data Entry",
4
+ "description": "选择器组件,支持分页、搜索、多选等功能",
5
+ "semantic": {
6
+ "intent": [
7
+ "复杂选择",
8
+ "数据筛选"
9
+ ],
10
+ "useCases": [
11
+ "人员选择",
12
+ "组织选择",
13
+ "资源分配"
14
+ ],
15
+ "riskLevel": "normal"
16
+ },
17
+ "variants": {
18
+ "lr": {
19
+ "meaning": "左右布局"
20
+ },
21
+ "tb": {
22
+ "meaning": "上下布局"
23
+ },
24
+ "list": {
25
+ "meaning": "列表布局"
26
+ }
27
+ },
28
+ "states": [
29
+ "default",
30
+ "disabled",
31
+ "error"
32
+ ],
33
+ "idealProps": {
34
+ "value": {
35
+ "type": "Record<string, any>[] | Record<string, any>",
36
+ "description": "受控值;radio 模式为单对象(初始无选可传 null),check 模式为对象数组;无 selectMode 时无效。**最小回显格式**(协议 S1):value 对象只需含 rowKey 字段即可匹配回显;外部 string[] keys 反查 = `items.filter(it => keys.includes(it[rowKey]))`"
37
+ },
38
+ "defaultValue": {
39
+ "type": "Record<string, any>[] | Record<string, any>",
40
+ "description": "非受控默认值;类型规则同 value"
41
+ },
42
+ "onChange": {
43
+ "type": "(val, node, rowData) => void",
44
+ "description": "值变化回调;**radio 模式 val 为 Record<string,any>**(单对象 / null),**check 模式 val 为 Record<string,any>[]**(数组 / null);node=出站处理后数据(若传 backDataFieldConfig 则字段映射)、rowData=原始;**出站 keys 提取**:`val.map(it => it[rowKey])`(协议 S1);onSelect 返回 true 时不触发"
45
+ },
46
+ "onSelect": {
47
+ "type": "(item, bol, isAllCheck) => boolean | Promise<boolean>",
48
+ "description": "勾选事件;返回 true 阻断 onChange(二次确认场景);先于 onChange 触发"
49
+ },
50
+ "layout": {
51
+ "type": "'lr' | 'tb' | 'list'",
52
+ "values": ["lr", "tb", "list"],
53
+ "default": "lr",
54
+ "description": "布局;lr=左右、tb=上下、list=纯列表(无已选区,适合内嵌)。**三种 layout 的 value/onChange 受控行为完全一致**(协议 S4),只有视觉差异"
55
+ },
56
+ "selectMode": {
57
+ "type": "'radio' | 'check'",
58
+ "values": ["radio", "check"],
59
+ "description": "选择模式;radio=单选;check=多选+全选;undefined=只读浏览"
60
+ },
61
+ "nodeMode": {
62
+ "type": "'leaf' | 'branch'",
63
+ "values": ["leaf", "branch"],
64
+ "default": "branch",
65
+ "description": "节点选择粒度;leaf=只选叶子;branch=分支/叶子皆可"
66
+ },
67
+ "rowKey": {
68
+ "type": "string",
69
+ "default": "'key'",
70
+ "description": "唯一标识字段(协议 S2);**影响 disabled/disabledChild 数组匹配 + value 对象匹配 + 缓存 + 出站 val.key**;data 用 id 时必须传 `rowKey='id'`"
71
+ },
72
+ "data": {
73
+ "type": "SelectorAnyJson[]",
74
+ "description": "本地数据源;与 url 互斥"
75
+ },
76
+ "url": {
77
+ "type": "string",
78
+ "description": "远程数据请求地址;搭配 method/params/paramsCallback 使用"
79
+ },
80
+ "pagination": {
81
+ "type": "boolean",
82
+ "default": false,
83
+ "description": "是否远程分页;仅 url 模式生效"
84
+ },
85
+ "search": {
86
+ "type": "boolean",
87
+ "default": false,
88
+ "description": "是否显示搜索框。**本地 data 模式内置关键词过滤无需 onSearch**(协议 S5);url 远程自动重发请求;自定义场景传 onSearch"
89
+ },
90
+ "searchTrigger": {
91
+ "type": "'onChange' | 'onEnter'",
92
+ "values": ["onChange", "onEnter"],
93
+ "default": "onChange",
94
+ "description": "搜索触发时机;onEnter 适合远程节流"
95
+ },
96
+ "fieldConfig": {
97
+ "type": "SelectorFieldConfigProps",
98
+ "description": "入站字段映射(mainTitle/subTitle/img/tag/info/children/parentId/key/type · 省略时自动应用默认值,详见 api.ts default 列)"
99
+ },
100
+ "backDataFieldConfig": {
101
+ "type": "SelectorFieldConfigProps",
102
+ "description": "出站字段映射;onChange 数据字段名转换;默认同 fieldConfig(出站字段名与入站一致)"
103
+ },
104
+ "disabled": {
105
+ "type": "string[] | boolean",
106
+ "default": false,
107
+ "description": "禁用;布尔禁全部,数组按 rowKey 禁用部分"
108
+ },
109
+ "isAllCheck": {
110
+ "type": "boolean",
111
+ "default": true,
112
+ "description": "复选模式下是否显示全选;仅 selectMode=check 生效"
113
+ }
114
+ },
115
+ "crossPropInteractions": [
116
+ "value + rowKey = 最小回显对象只需含 rowKey 字段(默认 'key')",
117
+ "selectMode + value 类型:radio→单对象/null,check→对象数组/null",
118
+ "layout='list' + value/onChange = 受控行为与 lr/tb 完全一致(协议 S4)",
119
+ "search + 本地 data = 内置过滤,无需 onSearch;+ url = 自动重发请求",
120
+ "rowKey + data + disabled[] = 三者用同一字段名匹配,改 rowKey 须全链路对齐"
121
+ ],
122
+ "commonMisconceptions": [
123
+ "❌ value 必须传完整对象(label/subTitle 等)— 仅需 rowKey 字段即可回显",
124
+ "❌ 本地 data + search 必须传 onSearch — 组件内置过滤,本地场景省略 onSearch",
125
+ "❌ layout='list' 不支持受控 value/onChange — 三种 layout 行为一致",
126
+ "❌ radio 模式初始无选不能传 null — 可传 null 或省略 value prop",
127
+ "❌ data 用 id 字段不改 rowKey — 必须传 rowKey='id' 否则静默 fail"
128
+ ],
129
+ "do": [
130
+ "支持服务端分页和搜索",
131
+ "提供面包屑导航",
132
+ "selectMode=check 多选场景显式传 value 数组 + onChange 接数组",
133
+ "data 本地数据源场景与 url 远程数据源场景二选一,不要同时传"
134
+ ],
135
+ "dont": [
136
+ "数据量大时不分页",
137
+ "忽略禁用状态",
138
+ "selectMode 切换为 radio 时仍把 value 设为数组(类型不匹配)",
139
+ "onSelect 返回 true 阻断 onChange 后忘记自行更新 value(导致 UI 与 state 不同步)"
140
+ ],
141
+ "events": {
142
+ "onChange": {
143
+ "signature": "(val: SelectorAnyJson[] | SelectorAnyJson | null, node: SelectorAnyJson, rowData: SelectorAnyJson) => void",
144
+ "asyncSupported": false,
145
+ "examples": [
146
+ "radio 模式:val 是单个 Record<string,any>,出站取 key 用 val[rowKey]",
147
+ "check 模式:val 是 Record<string,any>[],出站取 key 列表用 val.map(it => it[rowKey])",
148
+ "清空时 val 为 null——受控外部 string[] 兜底:setSelected(val ? val.map(it => it[rowKey]) : [])"
149
+ ],
150
+ "commonMistakes": [
151
+ "误把 val 当 rowKey string[] 使用——onChange 返回对象/数组,取 key 需 val[rowKey] 或 map",
152
+ "忘记 rowKey 对齐——data 用 id 字段时传了 rowKey='id' 但 onChange 还用 val.key 取值(实际是 val.id)",
153
+ "radio 模式期望 val 是数组——radio 模式 val 始终是单对象(或 null),不是 [item]"
154
+ ]
155
+ },
156
+ "onSelect": {
157
+ "signature": "(item: SelectorAnyJson | SelectorAnyJson[], bol: boolean, isAllCheck: boolean) => Promise<boolean | void> | (boolean | void)",
158
+ "asyncSupported": true,
159
+ "examples": [
160
+ "返回 true 阻断 onChange:二次确认场景在 onSelect 里弹 Dialog,确认后手动调用 onChange 逻辑",
161
+ "返回 void/false 不阻断,onChange 正常触发",
162
+ "全选时 item 是 SelectorAnyJson[](当前页所有项),isAllCheck=true"
163
+ ],
164
+ "commonMistakes": [
165
+ "返回 true 阻断 onChange 后忘记自行更新 value——UI 与 state 不同步",
166
+ "误以为 onSelect 和 onChange 是同一回调——onSelect 先触发且返回值控制是否触发 onChange"
167
+ ]
168
+ },
169
+ "onSearch": {
170
+ "signature": "(val: string, reqParams: SearchFuncProps) => Promise<SearchReqDataProps> | SearchReqDataProps",
171
+ "asyncSupported": true,
172
+ "examples": [
173
+ "自定义搜索:return { data: { data: filteredList } }(不分页)",
174
+ "分页搜索:return { data: { data: { list: arr, total: 100 } } }(pagination=true)"
175
+ ],
176
+ "commonMistakes": [
177
+ "本地 data 场景传了 onSearch——本地模式内置过滤无需 onSearch,传了会覆盖内置逻辑",
178
+ "返回格式错误:不分页应返回 data.data = SelectorAnyJson[],分页应返回 data.data = { list, total }"
179
+ ]
180
+ }
181
+ },
182
+ "typescriptPitfalls": [
183
+ {
184
+ "issue": "data 用非 key 字段作唯一 ID 时忘记传 rowKey,导致选中值匹配静默失败",
185
+ "wrong": "data={[{ id: '1', label: 'A' }]} value={[{ id: '1' }]} // 内部用 .key 匹配,id 字段被忽略",
186
+ "right": "data={[{ id: '1', label: 'A' }]} rowKey='id' value={[{ id: '1' }]} // rowKey 告知用 id 字段"
187
+ },
188
+ {
189
+ "issue": "radio 模式 value 传对象数组,check 模式 value 传单对象——类型反了",
190
+ "wrong": "selectMode='radio' value={[{ key: '1' }]} // radio 应为单对象",
191
+ "right": "selectMode='radio' value={{ key: '1' }} // 单对象;check 模式才用数组"
192
+ },
193
+ {
194
+ "issue": "disabled 数组传整个对象而非 rowKey 值列表,禁用匹配不生效",
195
+ "wrong": "disabled={[{ key: '1', label: 'A' }]} // src 内部 disabled.indexOf(item.key) 查 string/number",
196
+ "right": "disabled={['1', '2']} // 传 rowKey 值的 string[] 列表"
197
+ }
198
+ ],
199
+ "mapping": {
200
+ "realComponent": "Selector",
201
+ "adapter": null
202
+ }
203
+ }