@para-ui/core 5.0.0-beta.12 → 5.0.0-beta.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (565) hide show
  1. package/AGENTS.md +315 -0
  2. package/AlignBox/component.json +89 -0
  3. package/Anchor/component.json +130 -0
  4. package/Argv/component.json +216 -0
  5. package/AutoBox/component.json +133 -0
  6. package/AutoButton/component.json +109 -0
  7. package/AutoTips/component.json +121 -0
  8. package/Badge/component.json +92 -0
  9. package/Breadcrumbs/component.json +142 -0
  10. package/Button/component.json +168 -0
  11. package/ButtonGroup/component.json +132 -0
  12. package/Card/component.json +162 -0
  13. package/Carousel/component.json +142 -0
  14. package/Cascader/component.json +196 -0
  15. package/Checkbox/component.json +138 -0
  16. package/CheckboxGroup/component.json +152 -0
  17. package/CodeEditor/component.json +189 -0
  18. package/Collapse/component.json +166 -0
  19. package/CollapseBox/component.json +84 -0
  20. package/CollapseLayout/component.json +155 -0
  21. package/ColorPicker/component.json +142 -0
  22. package/ComboSelect/component.json +181 -0
  23. package/Container/component.json +111 -0
  24. package/ContentBox/component.json +81 -0
  25. package/CopyText/component.json +118 -0
  26. package/CycleSelector/component.json +98 -0
  27. package/DatePicker/component.json +192 -0
  28. package/Descriptions/component.json +142 -0
  29. package/Desktop/component.json +171 -0
  30. package/DragVerify/component.json +114 -0
  31. package/Drawer/component.json +200 -0
  32. package/Dropdown/component.json +147 -0
  33. package/DynamicMultiBox/component.json +278 -0
  34. package/Empty/component.json +123 -0
  35. package/FieldForm/component.json +196 -0
  36. package/Form/component.json +161 -0
  37. package/FormItem/component.json +171 -0
  38. package/FunctionModal/component.json +197 -0
  39. package/Help/component.json +118 -0
  40. package/HelperText/component.json +126 -0
  41. package/Image/component.json +165 -0
  42. package/InputCode/component.json +191 -0
  43. package/InputLang/component.json +205 -0
  44. package/InputNumber/component.json +162 -0
  45. package/Label/component.json +126 -0
  46. package/Loading/component.json +91 -0
  47. package/Menu/component.json +180 -0
  48. package/Message/component.json +246 -0
  49. package/Modal/component.json +277 -0
  50. package/MultiBox/component.json +216 -0
  51. package/Notification/component.json +184 -0
  52. package/OperateBtn/component.json +134 -0
  53. package/PageHeader/component.json +112 -0
  54. package/Pagination/component.json +181 -0
  55. package/PasswordRules/component.json +105 -0
  56. package/PopConfirm/component.json +227 -0
  57. package/PopMenu/component.json +131 -0
  58. package/Popover/component.json +165 -0
  59. package/Progress/component.json +161 -0
  60. package/Prompt/component.json +144 -0
  61. package/Querying/component.json +96 -0
  62. package/QuickReply/component.json +129 -0
  63. package/Radio/component.json +136 -0
  64. package/RadioGroup/component.json +149 -0
  65. package/RangeInput/component.json +198 -0
  66. package/Result/component.json +104 -0
  67. package/ScrollBar/component.json +115 -0
  68. package/Search/component.json +177 -0
  69. package/Select/component.json +244 -0
  70. package/SelectInput/component.json +184 -0
  71. package/Selector/component.json +203 -0
  72. package/SelectorPicker/component.json +179 -0
  73. package/SingleBox/component.json +151 -0
  74. package/Slider/component.json +181 -0
  75. package/SortBox/component.json +108 -0
  76. package/Status/component.json +104 -0
  77. package/Stepper/component.json +129 -0
  78. package/Switch/component.json +207 -0
  79. package/Table/component.json +547 -0
  80. package/Tabs/component.json +227 -0
  81. package/Tag/component.json +221 -0
  82. package/TextEditor/component.json +186 -0
  83. package/TextField/component.json +290 -0
  84. package/TimePicker/component.json +176 -0
  85. package/Timeline/component.json +110 -0
  86. package/Title/component.json +156 -0
  87. package/ToggleButton/component.json +153 -0
  88. package/Tooltip/component.json +176 -0
  89. package/Transfer/component.json +157 -0
  90. package/Tree/component.json +512 -0
  91. package/Upload/component.json +450 -0
  92. package/ai-workflows/01-crud-list-multi-drawer.md +278 -0
  93. package/ai-workflows/02-rbac-operation-buttons.md +290 -0
  94. package/ai-workflows/03-complex-form-async-cascade.md +350 -0
  95. package/ai-workflows/04-array-field-form.md +281 -0
  96. package/ai-workflows/05-popconfirm-async-message-queue.md +333 -0
  97. package/ai-workflows/06-modal-drawer-form-workflow.md +385 -0
  98. package/ai-workflows/07-search-filter-table-trio.md +387 -0
  99. package/ai-workflows/08-table-advanced-features.md +365 -0
  100. package/ai-workflows/09-batch-operation-export-progress.md +367 -0
  101. package/ai-workflows/10-cross-component-state-coordination.md +412 -0
  102. package/codemods/modal-onCancel-to-onDismiss.js +69 -0
  103. package/es/AlignBox/component.json +89 -0
  104. package/es/AlignBox/index.css +1 -1
  105. package/es/AlignBox/index.d.ts +6 -2
  106. package/es/AlignBox/index.js +1 -1
  107. package/es/AlignBox/style/index.css +1 -1
  108. package/es/Anchor/anchorMenu/index.d.ts +2 -1
  109. package/es/Anchor/anchorMenu/index.js +36 -33
  110. package/es/Anchor/component.json +130 -0
  111. package/es/Anchor/index.js +50 -47
  112. package/es/Anchor/type.d.ts +8 -4
  113. package/es/Argv/component.json +216 -0
  114. package/es/Argv/index.d.ts +5 -6
  115. package/es/AutoBox/component.json +133 -0
  116. package/es/AutoBox/index.d.ts +3 -3
  117. package/es/AutoBox/index.js +1 -1
  118. package/es/AutoBox/protal.d.ts +2 -2
  119. package/es/AutoBox/protal.js +32 -29
  120. package/es/AutoButton/component.json +109 -0
  121. package/es/AutoButton/index.js +1 -1
  122. package/es/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  123. package/es/AutoTips/autoTipsMultiline/index.js +1 -1
  124. package/es/AutoTips/component.json +121 -0
  125. package/es/Badge/component.json +92 -0
  126. package/es/Breadcrumbs/component.json +142 -0
  127. package/es/Breadcrumbs/index.js +1 -1
  128. package/es/Button/SplitButton.d.ts +2 -2
  129. package/es/Button/component.json +168 -0
  130. package/es/Button/index.js +44 -44
  131. package/es/ButtonGroup/component.json +132 -0
  132. package/es/ButtonGroup/index.d.ts +1 -1
  133. package/es/Card/component.json +162 -0
  134. package/es/Card/index.d.ts +2 -2
  135. package/es/Card/index.js +2 -2
  136. package/es/Carousel/component.json +142 -0
  137. package/es/Carousel/index.d.ts +1 -1
  138. package/es/Cascader/Cascader.js +188 -180
  139. package/es/Cascader/component.json +196 -0
  140. package/es/Cascader/hooks/useEntities.js +7 -7
  141. package/es/Cascader/interface.d.ts +1 -0
  142. package/es/Cascader/utils/commonUtil.d.ts +1 -1
  143. package/es/Cascader/utils/commonUtil.js +16 -16
  144. package/es/Cascader/utils/treeUtil.d.ts +14 -5
  145. package/es/Cascader/utils/treeUtil.js +1 -1
  146. package/es/Checkbox/component.json +138 -0
  147. package/es/CheckboxGroup/component.json +152 -0
  148. package/es/CodeEditor/component.json +189 -0
  149. package/es/CodeEditor/index.d.ts +10 -9
  150. package/es/Collapse/component.json +166 -0
  151. package/es/Collapse/index.d.ts +1 -1
  152. package/es/Collapse/index.js +41 -33
  153. package/es/CollapseBox/component.json +84 -0
  154. package/es/CollapseLayout/component.json +155 -0
  155. package/es/ColorPicker/component.json +142 -0
  156. package/es/ComboSelect/component.json +181 -0
  157. package/es/ComboSelect/index.js +299 -287
  158. package/es/ComboSelect/interface.d.ts +6 -3
  159. package/es/ComboSelect/utils.d.ts +3 -3
  160. package/es/ComboSelect/utils.js +1 -1
  161. package/es/Container/component.json +111 -0
  162. package/es/ContentBox/component.json +81 -0
  163. package/es/CopyText/component.json +118 -0
  164. package/es/CycleSelector/component.json +98 -0
  165. package/es/CycleSelector/index.js +14 -13
  166. package/es/DatePicker/component.json +192 -0
  167. package/es/DatePicker/generatePicker/generateRangePicker.d.ts +0 -8
  168. package/es/DatePicker/generatePicker/generateRangePicker.js +73 -65
  169. package/es/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  170. package/es/DatePicker/generatePicker/index.d.ts +11 -4
  171. package/es/Descriptions/component.json +142 -0
  172. package/es/Descriptions/index.d.ts +1 -1
  173. package/es/Desktop/component.json +171 -0
  174. package/es/DragVerify/component.json +114 -0
  175. package/es/DragVerify/index.js +19 -19
  176. package/es/Drawer/component.json +200 -0
  177. package/es/Drawer/index.js +86 -86
  178. package/es/Drawer/interface.d.ts +1 -1
  179. package/es/Drawer/util.d.ts +1 -6
  180. package/es/Drawer/util.js +9 -6
  181. package/es/Dropdown/component.json +147 -0
  182. package/es/DynamicMultiBox/component.json +278 -0
  183. package/es/DynamicMultiBox/formItem.d.ts +1 -1
  184. package/es/DynamicMultiBox/rowForm.d.ts +2 -2
  185. package/es/Empty/component.json +123 -0
  186. package/es/Empty/index.css +1 -1
  187. package/es/Empty/index.d.ts +2 -2
  188. package/es/Empty/index.js +27 -26
  189. package/es/Empty/style/index.css +1 -1
  190. package/es/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  191. package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
  192. package/es/FieldForm/Form.d.ts +2 -2
  193. package/es/FieldForm/FormList.d.ts +2 -2
  194. package/es/FieldForm/component.json +196 -0
  195. package/es/FieldForm/context.d.ts +5 -1
  196. package/es/FieldForm/context.js +2 -2
  197. package/es/FieldForm/hooks/useForm.d.ts +4 -3
  198. package/es/FieldForm/hooks/useFormInstance.d.ts +1 -1
  199. package/es/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  200. package/es/FieldForm/hooks/useFormItemStatus.js +2 -2
  201. package/es/FieldForm/hooks/useItemRef.d.ts +1 -1
  202. package/es/FieldForm/hooks/useItemRef.js +6 -6
  203. package/es/Form/component.json +161 -0
  204. package/es/Form/index.d.ts +52 -49
  205. package/es/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  206. package/es/FormItem/compoments/defaultCompoments/index.js +12 -11
  207. package/es/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  208. package/es/FormItem/compoments/formFile/index.js +8 -8
  209. package/es/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  210. package/es/FormItem/compoments/formSelect/index.d.ts +1 -1
  211. package/es/FormItem/component.json +171 -0
  212. package/es/FormItem/index.d.ts +5 -5
  213. package/es/FormItem/index.js +23 -23
  214. package/es/FormItem/itemType.js +1 -1
  215. package/es/FunctionModal/component.json +197 -0
  216. package/es/FunctionModal/dialog.d.ts +1 -1
  217. package/es/FunctionModal/modalContext.d.ts +4 -1
  218. package/es/Help/component.json +118 -0
  219. package/es/HelperText/component.json +126 -0
  220. package/es/Image/component.json +165 -0
  221. package/es/InputCode/component.json +191 -0
  222. package/es/InputCode/index.d.ts +2 -2
  223. package/es/InputLang/component.json +205 -0
  224. package/es/InputLang/index.js +1 -1
  225. package/es/InputNumber/component.json +162 -0
  226. package/es/Label/component.json +126 -0
  227. package/es/Label/index.d.ts +2 -2
  228. package/es/Loading/component.json +91 -0
  229. package/es/Menu/component.json +180 -0
  230. package/es/Message/component.json +246 -0
  231. package/es/Message/index.d.ts +2 -2
  232. package/es/Message/index.js +2 -2
  233. package/es/Modal/Confirm/index.d.ts +1 -1
  234. package/es/Modal/Confirm/index.js +81 -75
  235. package/es/Modal/component.json +277 -0
  236. package/es/Modal/index.d.ts +97 -6
  237. package/es/Modal/index.js +174 -122
  238. package/es/Modal/interface.d.ts +1 -0
  239. package/es/MultiBox/component.json +216 -0
  240. package/es/MultiBox/index.js +19 -14
  241. package/es/Notification/component.json +184 -0
  242. package/es/OperateBtn/component.json +134 -0
  243. package/es/OperateBtn/index.d.ts +3 -3
  244. package/es/PageHeader/component.json +112 -0
  245. package/es/Pagination/component.json +181 -0
  246. package/es/Pagination/index.js +15 -15
  247. package/es/PasswordRules/component.json +105 -0
  248. package/es/PasswordRules/index.d.ts +4 -4
  249. package/es/PopConfirm/component.json +227 -0
  250. package/es/PopConfirm/index.d.ts +1 -1
  251. package/es/PopConfirm/index.js +1 -1
  252. package/es/PopMenu/component.json +131 -0
  253. package/es/PopMenu/hooks.d.ts +1 -1
  254. package/es/PopMenu/index.js +8 -8
  255. package/es/Popover/component.json +165 -0
  256. package/es/Popover/index.js +1 -1
  257. package/es/Progress/component.json +161 -0
  258. package/es/Prompt/component.json +144 -0
  259. package/es/Querying/component.json +96 -0
  260. package/es/Querying/index.css +1 -1
  261. package/es/Querying/index.d.ts +2 -2
  262. package/es/Querying/index.js +20 -19
  263. package/es/Querying/style/index.css +1 -1
  264. package/es/QuickReply/component.json +129 -0
  265. package/es/QuickReply/index.d.ts +1 -1
  266. package/es/Radio/component.json +136 -0
  267. package/es/RadioGroup/component.json +149 -0
  268. package/es/RangeInput/component.json +198 -0
  269. package/es/RangeInput/index.js +1 -1
  270. package/es/Result/component.json +104 -0
  271. package/es/ScrollBar/component.json +115 -0
  272. package/es/Search/component.json +177 -0
  273. package/es/Search/index.d.ts +1 -1
  274. package/es/Select/component.json +244 -0
  275. package/es/Select/index.js +113 -113
  276. package/es/SelectInput/component.json +184 -0
  277. package/es/Selector/component.json +203 -0
  278. package/es/Selector/index.js +28 -27
  279. package/es/Selector/interface.d.ts +1 -1
  280. package/es/Selector/selectorMain/index.js +2 -2
  281. package/es/Selector/selectorNode/index.js +1 -1
  282. package/es/Selector/util.d.ts +2 -2
  283. package/es/SelectorPicker/component.json +179 -0
  284. package/es/SelectorPicker/index.d.ts +5 -5
  285. package/es/SelectorPicker/index.js +15 -15
  286. package/es/SingleBox/component.json +151 -0
  287. package/es/SingleBox/index.d.ts +2 -2
  288. package/es/Slider/component.json +181 -0
  289. package/es/SortBox/component.json +108 -0
  290. package/es/Status/component.json +104 -0
  291. package/es/Stepper/component.json +129 -0
  292. package/es/Stepper/index.d.ts +2 -2
  293. package/es/Switch/component.json +207 -0
  294. package/es/Switch/index.css +1 -1
  295. package/es/Switch/index.d.ts +3 -2
  296. package/es/Switch/index.js +60 -59
  297. package/es/Switch/style/index.css +1 -1
  298. package/es/Table/component.json +547 -0
  299. package/es/Table/index.d.ts +2 -2
  300. package/es/Table/index.js +414 -414
  301. package/es/Table/interface.d.ts +6 -0
  302. package/es/Tabs/component.json +227 -0
  303. package/es/Tag/component.json +221 -0
  304. package/es/Tag/index.css +1 -1
  305. package/es/Tag/index.d.ts +1 -1
  306. package/es/Tag/index.js +20 -20
  307. package/es/Tag/style/index.css +1 -1
  308. package/es/TextEditor/component.json +186 -0
  309. package/es/TextEditor/index.d.ts +5 -5
  310. package/es/TextField/component.json +290 -0
  311. package/es/TextField/index.d.ts +2 -2
  312. package/es/TimePicker/component.json +176 -0
  313. package/es/Timeline/component.json +110 -0
  314. package/es/Title/component.json +156 -0
  315. package/es/ToggleButton/component.json +153 -0
  316. package/es/Tooltip/component.json +176 -0
  317. package/es/Tooltip/index.js +74 -63
  318. package/es/Tooltip/interface.d.ts +14 -1
  319. package/es/Tooltip/utils.js +6 -6
  320. package/es/Transfer/component.json +157 -0
  321. package/es/Tree/component.json +512 -0
  322. package/es/Upload/component.json +450 -0
  323. package/es/Utils/type.d.ts +0 -2
  324. package/es/index.d.ts +2 -0
  325. package/es/index.js +1 -1
  326. package/es/locale/en_US.d.ts +361 -0
  327. package/es/locale/en_US.js +364 -0
  328. package/es/locale/index.d.ts +1 -723
  329. package/es/locale/index2.js +10 -0
  330. package/es/locale/zh_CN.d.ts +361 -0
  331. package/es/locale/zh_CN.js +364 -0
  332. package/lib/AlignBox/component.json +89 -0
  333. package/lib/AlignBox/index.css +1 -1
  334. package/lib/AlignBox/index.d.ts +6 -2
  335. package/lib/AlignBox/index.js +1 -1
  336. package/lib/AlignBox/style/index.css +1 -1
  337. package/lib/Anchor/anchorMenu/index.d.ts +2 -1
  338. package/lib/Anchor/anchorMenu/index.js +1 -1
  339. package/lib/Anchor/component.json +130 -0
  340. package/lib/Anchor/index.js +1 -1
  341. package/lib/Anchor/type.d.ts +8 -4
  342. package/lib/Argv/component.json +216 -0
  343. package/lib/Argv/index.d.ts +5 -6
  344. package/lib/AutoBox/component.json +133 -0
  345. package/lib/AutoBox/index.d.ts +3 -3
  346. package/lib/AutoBox/index.js +1 -1
  347. package/lib/AutoBox/protal.d.ts +2 -2
  348. package/lib/AutoBox/protal.js +1 -1
  349. package/lib/AutoButton/component.json +109 -0
  350. package/lib/AutoButton/index.js +1 -1
  351. package/lib/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  352. package/lib/AutoTips/autoTipsMultiline/index.js +1 -1
  353. package/lib/AutoTips/component.json +121 -0
  354. package/lib/Badge/component.json +92 -0
  355. package/lib/Breadcrumbs/component.json +142 -0
  356. package/lib/Breadcrumbs/index.js +1 -1
  357. package/lib/Button/SplitButton.d.ts +2 -2
  358. package/lib/Button/component.json +168 -0
  359. package/lib/Button/index.js +1 -1
  360. package/lib/ButtonGroup/component.json +132 -0
  361. package/lib/ButtonGroup/index.d.ts +1 -1
  362. package/lib/Card/component.json +162 -0
  363. package/lib/Card/index.d.ts +2 -2
  364. package/lib/Card/index.js +1 -1
  365. package/lib/Carousel/component.json +142 -0
  366. package/lib/Carousel/index.d.ts +1 -1
  367. package/lib/Cascader/Cascader.js +1 -1
  368. package/lib/Cascader/component.json +196 -0
  369. package/lib/Cascader/hooks/useEntities.js +1 -1
  370. package/lib/Cascader/interface.d.ts +1 -0
  371. package/lib/Cascader/utils/commonUtil.d.ts +1 -1
  372. package/lib/Cascader/utils/commonUtil.js +1 -1
  373. package/lib/Cascader/utils/treeUtil.d.ts +14 -5
  374. package/lib/Cascader/utils/treeUtil.js +1 -1
  375. package/lib/Checkbox/component.json +138 -0
  376. package/lib/CheckboxGroup/component.json +152 -0
  377. package/lib/CodeEditor/component.json +189 -0
  378. package/lib/CodeEditor/index.d.ts +10 -9
  379. package/lib/Collapse/component.json +166 -0
  380. package/lib/Collapse/index.d.ts +1 -1
  381. package/lib/Collapse/index.js +1 -1
  382. package/lib/CollapseBox/component.json +84 -0
  383. package/lib/CollapseLayout/component.json +155 -0
  384. package/lib/ColorPicker/component.json +142 -0
  385. package/lib/ComboSelect/component.json +181 -0
  386. package/lib/ComboSelect/index.js +1 -1
  387. package/lib/ComboSelect/interface.d.ts +6 -3
  388. package/lib/ComboSelect/utils.d.ts +3 -3
  389. package/lib/ComboSelect/utils.js +1 -1
  390. package/lib/Container/component.json +111 -0
  391. package/lib/ContentBox/component.json +81 -0
  392. package/lib/CopyText/component.json +118 -0
  393. package/lib/CycleSelector/component.json +98 -0
  394. package/lib/CycleSelector/index.js +1 -1
  395. package/lib/DatePicker/component.json +192 -0
  396. package/lib/DatePicker/generatePicker/generateRangePicker.d.ts +0 -8
  397. package/lib/DatePicker/generatePicker/generateRangePicker.js +1 -1
  398. package/lib/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  399. package/lib/DatePicker/generatePicker/index.d.ts +11 -4
  400. package/lib/Descriptions/component.json +142 -0
  401. package/lib/Descriptions/index.d.ts +1 -1
  402. package/lib/Desktop/component.json +171 -0
  403. package/lib/DragVerify/component.json +114 -0
  404. package/lib/DragVerify/index.js +1 -1
  405. package/lib/Drawer/component.json +200 -0
  406. package/lib/Drawer/index.js +1 -1
  407. package/lib/Drawer/interface.d.ts +1 -1
  408. package/lib/Drawer/util.d.ts +1 -6
  409. package/lib/Drawer/util.js +1 -1
  410. package/lib/Dropdown/component.json +147 -0
  411. package/lib/DynamicMultiBox/component.json +278 -0
  412. package/lib/DynamicMultiBox/formItem.d.ts +1 -1
  413. package/lib/DynamicMultiBox/rowForm.d.ts +2 -2
  414. package/lib/Empty/component.json +123 -0
  415. package/lib/Empty/index.css +1 -1
  416. package/lib/Empty/index.d.ts +2 -2
  417. package/lib/Empty/index.js +1 -1
  418. package/lib/Empty/style/index.css +1 -1
  419. package/lib/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  420. package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
  421. package/lib/FieldForm/Form.d.ts +2 -2
  422. package/lib/FieldForm/FormList.d.ts +2 -2
  423. package/lib/FieldForm/component.json +196 -0
  424. package/lib/FieldForm/context.d.ts +5 -1
  425. package/lib/FieldForm/context.js +1 -1
  426. package/lib/FieldForm/hooks/useForm.d.ts +4 -3
  427. package/lib/FieldForm/hooks/useFormInstance.d.ts +1 -1
  428. package/lib/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  429. package/lib/FieldForm/hooks/useFormItemStatus.js +1 -1
  430. package/lib/FieldForm/hooks/useItemRef.d.ts +1 -1
  431. package/lib/FieldForm/hooks/useItemRef.js +1 -1
  432. package/lib/Form/component.json +161 -0
  433. package/lib/Form/index.d.ts +52 -49
  434. package/lib/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  435. package/lib/FormItem/compoments/defaultCompoments/index.js +1 -1
  436. package/lib/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  437. package/lib/FormItem/compoments/formFile/index.js +1 -1
  438. package/lib/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  439. package/lib/FormItem/compoments/formSelect/index.d.ts +1 -1
  440. package/lib/FormItem/component.json +171 -0
  441. package/lib/FormItem/index.d.ts +5 -5
  442. package/lib/FormItem/index.js +1 -1
  443. package/lib/FormItem/itemType.js +1 -1
  444. package/lib/FunctionModal/component.json +197 -0
  445. package/lib/FunctionModal/dialog.d.ts +1 -1
  446. package/lib/FunctionModal/modalContext.d.ts +4 -1
  447. package/lib/Help/component.json +118 -0
  448. package/lib/HelperText/component.json +126 -0
  449. package/lib/Image/component.json +165 -0
  450. package/lib/InputCode/component.json +191 -0
  451. package/lib/InputCode/index.d.ts +2 -2
  452. package/lib/InputLang/component.json +205 -0
  453. package/lib/InputLang/index.js +1 -1
  454. package/lib/InputNumber/component.json +162 -0
  455. package/lib/Label/component.json +126 -0
  456. package/lib/Label/index.d.ts +2 -2
  457. package/lib/Loading/component.json +91 -0
  458. package/lib/Menu/component.json +180 -0
  459. package/lib/Message/component.json +246 -0
  460. package/lib/Message/index.d.ts +2 -2
  461. package/lib/Message/index.js +1 -1
  462. package/lib/Modal/Confirm/index.d.ts +1 -1
  463. package/lib/Modal/Confirm/index.js +1 -1
  464. package/lib/Modal/component.json +277 -0
  465. package/lib/Modal/index.d.ts +97 -6
  466. package/lib/Modal/index.js +1 -1
  467. package/lib/Modal/interface.d.ts +1 -0
  468. package/lib/MultiBox/component.json +216 -0
  469. package/lib/MultiBox/index.js +1 -1
  470. package/lib/Notification/component.json +184 -0
  471. package/lib/OperateBtn/component.json +134 -0
  472. package/lib/OperateBtn/index.d.ts +3 -3
  473. package/lib/PageHeader/component.json +112 -0
  474. package/lib/Pagination/component.json +181 -0
  475. package/lib/Pagination/index.js +1 -1
  476. package/lib/PasswordRules/component.json +105 -0
  477. package/lib/PasswordRules/index.d.ts +4 -4
  478. package/lib/PopConfirm/component.json +227 -0
  479. package/lib/PopConfirm/index.d.ts +1 -1
  480. package/lib/PopConfirm/index.js +1 -1
  481. package/lib/PopMenu/component.json +131 -0
  482. package/lib/PopMenu/hooks.d.ts +1 -1
  483. package/lib/PopMenu/index.js +1 -1
  484. package/lib/Popover/component.json +165 -0
  485. package/lib/Popover/index.js +1 -1
  486. package/lib/Progress/component.json +161 -0
  487. package/lib/Prompt/component.json +144 -0
  488. package/lib/Querying/component.json +96 -0
  489. package/lib/Querying/index.css +1 -1
  490. package/lib/Querying/index.d.ts +2 -2
  491. package/lib/Querying/index.js +1 -1
  492. package/lib/Querying/style/index.css +1 -1
  493. package/lib/QuickReply/component.json +129 -0
  494. package/lib/QuickReply/index.d.ts +1 -1
  495. package/lib/Radio/component.json +136 -0
  496. package/lib/RadioGroup/component.json +149 -0
  497. package/lib/RangeInput/component.json +198 -0
  498. package/lib/RangeInput/index.js +1 -1
  499. package/lib/Result/component.json +104 -0
  500. package/lib/ScrollBar/component.json +115 -0
  501. package/lib/Search/component.json +177 -0
  502. package/lib/Search/index.d.ts +1 -1
  503. package/lib/Select/component.json +244 -0
  504. package/lib/Select/index.js +1 -1
  505. package/lib/SelectInput/component.json +184 -0
  506. package/lib/Selector/component.json +203 -0
  507. package/lib/Selector/index.js +1 -1
  508. package/lib/Selector/interface.d.ts +1 -1
  509. package/lib/Selector/selectorMain/index.js +1 -1
  510. package/lib/Selector/selectorNode/index.js +1 -1
  511. package/lib/Selector/util.d.ts +2 -2
  512. package/lib/SelectorPicker/component.json +179 -0
  513. package/lib/SelectorPicker/index.d.ts +5 -5
  514. package/lib/SelectorPicker/index.js +1 -1
  515. package/lib/SingleBox/component.json +151 -0
  516. package/lib/SingleBox/index.d.ts +2 -2
  517. package/lib/Slider/component.json +181 -0
  518. package/lib/SortBox/component.json +108 -0
  519. package/lib/Status/component.json +104 -0
  520. package/lib/Stepper/component.json +129 -0
  521. package/lib/Stepper/index.d.ts +2 -2
  522. package/lib/Switch/component.json +207 -0
  523. package/lib/Switch/index.css +1 -1
  524. package/lib/Switch/index.d.ts +3 -2
  525. package/lib/Switch/index.js +1 -1
  526. package/lib/Switch/style/index.css +1 -1
  527. package/lib/Table/component.json +547 -0
  528. package/lib/Table/index.d.ts +2 -2
  529. package/lib/Table/index.js +1 -1
  530. package/lib/Table/interface.d.ts +6 -0
  531. package/lib/Tabs/component.json +227 -0
  532. package/lib/Tag/component.json +221 -0
  533. package/lib/Tag/index.css +1 -1
  534. package/lib/Tag/index.d.ts +1 -1
  535. package/lib/Tag/index.js +1 -1
  536. package/lib/Tag/style/index.css +1 -1
  537. package/lib/TextEditor/component.json +186 -0
  538. package/lib/TextEditor/index.d.ts +5 -5
  539. package/lib/TextField/component.json +290 -0
  540. package/lib/TextField/index.d.ts +2 -2
  541. package/lib/TimePicker/component.json +176 -0
  542. package/lib/Timeline/component.json +110 -0
  543. package/lib/Title/component.json +156 -0
  544. package/lib/ToggleButton/component.json +153 -0
  545. package/lib/Tooltip/component.json +176 -0
  546. package/lib/Tooltip/index.js +1 -1
  547. package/lib/Tooltip/interface.d.ts +14 -1
  548. package/lib/Tooltip/utils.js +1 -1
  549. package/lib/Transfer/component.json +157 -0
  550. package/lib/Tree/component.json +512 -0
  551. package/lib/Upload/component.json +450 -0
  552. package/lib/Utils/type.d.ts +0 -2
  553. package/lib/index.d.ts +2 -0
  554. package/lib/index.js +1 -1
  555. package/lib/locale/en_US.d.ts +361 -0
  556. package/lib/locale/en_US.js +2 -0
  557. package/lib/locale/index.d.ts +1 -723
  558. package/lib/locale/index2.js +2 -0
  559. package/lib/locale/zh_CN.d.ts +361 -0
  560. package/lib/locale/zh_CN.js +2 -0
  561. package/package.json +10 -3
  562. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  563. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
  564. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  565. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n="__RC_CASCADER_SPLIT__",c="SHOW_PARENT",i="SHOW_CHILD",a="__rc_cascader_search_mark__";function s(t){return t.join(n)}function f(t){return t.map(s)}function u(t){return t.split(n)}function _(t){const{label:e,value:o,children:l}=t||{},r=o||"value";return{label:e||"label",value:r,key:r,children:l||"children"}}function h(t,e){return t.isLeaf??!t[e.children]?.length}function P(t){const e=t.parentElement;if(!e)return;const o=t.offsetTop-e.offsetTop;o-e.scrollTop<0?e.scrollTo({top:o}):o+t.offsetHeight-e.scrollTop>e.offsetHeight&&e.scrollTo({top:o+t.offsetHeight-e.offsetHeight})}function S(t,e){return t.map(o=>o[a]?.map(l=>l[e.value]))}exports.SEARCH_MARK=a;exports.SHOW_CHILD=i;exports.SHOW_PARENT=c;exports.VALUE_SPLIT=n;exports.fillFieldNames=_;exports.getFullPathKeys=S;exports.isLeaf=h;exports.scrollIntoParentView=P;exports.toPathKey=s;exports.toPathKeys=f;exports.toPathValueStr=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n="__RC_CASCADER_SPLIT__",c="SHOW_PARENT",i="SHOW_CHILD",a="__rc_cascader_search_mark__";function s(t){return t.join(n)}function f(t){return t.map(s)}function u(t){return t.split(n)}function _(t){const{label:e,value:o,children:r}=t||{},l=o||"value";return{label:e||"label",value:l,key:l,children:r||"children"}}function h(t,e){return t.isLeaf??!t[e.children]?.length}function P(t){const e=t.parentElement;if(!e)return;const o=t.offsetTop-e.offsetTop;o-e.scrollTop<0?e.scrollTo({top:o}):o+t.offsetHeight-e.scrollTop>e.offsetHeight&&e.scrollTo({top:o+t.offsetHeight-e.offsetHeight})}function S(t,e){return t.map(o=>o[a]?.map(l=>l[e.value]))}exports.SEARCH_MARK=a;exports.SHOW_CHILD=i;exports.SHOW_PARENT=c;exports.VALUE_SPLIT=n;exports.fillFieldNames=_;exports.getFullPathKeys=S;exports.isLeaf=h;exports.scrollIntoParentView=P;exports.toPathKey=s;exports.toPathKeys=f;exports.toPathValueStr=u;
2
2
  //# sourceMappingURL=commonUtil.js.map
@@ -2,8 +2,17 @@ import { SingleValueType, DefaultOptionType, InternalFieldNames, ShowCheckedStra
2
2
  import { GetEntities } from '../hooks/useEntities';
3
3
  declare type Key = string | number;
4
4
  export declare type GetKey<RecordType> = (record: RecordType, index?: number) => Key;
5
- type DataEntity = any;
6
- type DataNode = any;
5
+ type DataNode = DefaultOptionType;
6
+ interface DataEntity {
7
+ node: DataNode;
8
+ nodes: DataNode[];
9
+ index?: number;
10
+ pos: string;
11
+ key: Key;
12
+ level: number;
13
+ parent?: DataEntity;
14
+ children?: DataEntity[];
15
+ }
7
16
  interface TraverseDataNodesConfig {
8
17
  childrenPropName?: string;
9
18
  externalGetKey?: ExternalGetKey;
@@ -28,7 +37,7 @@ export declare function toPathOptions(valueCells: SingleValueType, options: Defa
28
37
  option: DefaultOptionType;
29
38
  }[];
30
39
  export declare function convertDataToEntities(dataNodes: DataNode[], { initWrapper, processEntity, onProcessFinished, externalGetKey, childrenPropName, fieldNames }?: {
31
- initWrapper?: (wrapper: any) => Wrapper;
40
+ initWrapper?: (wrapper: Wrapper) => Wrapper;
32
41
  processEntity?: (entity: DataEntity, wrapper: Wrapper) => void;
33
42
  onProcessFinished?: (wrapper: Wrapper) => void;
34
43
  externalGetKey?: ExternalGetKey;
@@ -37,8 +46,8 @@ export declare function convertDataToEntities(dataNodes: DataNode[], { initWrapp
37
46
  },
38
47
  /** @deprecated Use `config.externalGetKey` instead */
39
48
  legacyExternalGetKey?: ExternalGetKey): {
40
- posEntities: any;
41
- keyEntities: any;
49
+ posEntities: Record<string, DataEntity>;
50
+ keyEntities: Record<Key, DataEntity>;
42
51
  };
43
52
  export declare function traverseDataNodes(dataNodes: DataNode[], callback: (data: {
44
53
  node: DataNode;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("rc-tree/lib/utils/treeUtil"),O=require("./commonUtil.js");function b(l,s,o){const t=new Set(l),u=s();return l.filter(n=>{const i=u[n],d=i?i.parent:null,f=i?i.children:null;return i&&i.node.disabled?!0:o===O.SHOW_CHILD?!(f&&f.some(c=>c.key&&t.has(c.key))):!(d&&!d.node.disabled&&t.has(d.key))})}function D(l,s,o,t=!1){let u=s;const n=[];for(let i=0;i<l.length;i+=1){const d=l[i],f=u?.findIndex(y=>{const a=y[o.value];return t?String(a)===String(d):a===d}),c=f!==-1?u?.[f]:null;n.push({value:c?.[o.value]??d,index:f,option:c}),u=c?.[o.children]}return n}function G(l,{initWrapper:s,processEntity:o,onProcessFinished:t,externalGetKey:u,childrenPropName:n,fieldNames:i}={},d){const f=u||d,c={},y={};let a={posEntities:c,keyEntities:y};return s&&(a=s(a)||a),K(l,e=>{const{node:p,index:h,pos:g,key:v,parentPos:m,level:P,nodes:k}=e,r={node:p,nodes:k,index:h,key:v,pos:g,level:P},E=S.getKey(v,g);c[g]=r,y[E]=r,r.parent=c[m],r.parent&&(r.parent.children=r.parent.children||[],r.parent.children.push(r)),o&&o(r,a)},{externalGetKey:f,childrenPropName:n,fieldNames:i}),t&&t(a),a}function K(l,s,o){let t={};typeof o=="object"?t=o:t={externalGetKey:o},t=t||{};const{childrenPropName:u,externalGetKey:n,fieldNames:i}=t,{key:d,children:f}=N(i),c=u||f;let y;n?typeof n=="string"?y=e=>e[n]:typeof n=="function"&&(y=e=>n(e)):y=(e,p)=>S.getKey(e[d],p);function a(e,p,h,g){const v=e?e[c]:l,m=e?x(h.pos,p):"0",P=e?[...g,e]:[];if(e){const k=y(e,m),r={node:e,index:p,pos:m,key:k,parentPos:h?.node?h.pos:null,level:h.level+1,nodes:P};s(r)}v&&v.forEach((k,r)=>{a(k,r,{node:e,pos:m,level:h?h.level+1:-1},P)})}a(null)}function x(l,s){return`${l}-${s}`}function N(l){const{title:s,_title:o,key:t,children:u}=l||{},n=s||"title";return{title:n,_title:o||[n],key:t||"key",children:u||"children"}}exports.convertDataToEntities=G;exports.fillFieldNames=N;exports.formatStrategyValues=b;exports.getPosition=x;exports.toPathOptions=D;exports.traverseDataNodes=K;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("rc-tree/lib/utils/treeUtil"),O=require("./commonUtil.js");function b(l,s,o){const t=new Set(l),u=s();return l.filter(n=>{const i=u[n],d=i?i.parent:null,f=i?i.children:null;return i&&i.node.disabled?!0:o===O.SHOW_CHILD?!(f&&f.some(c=>c.key&&t.has(c.key))):!(d&&!d.node.disabled&&t.has(d.key))})}function D(l,s,o,t=!1){let u=s;const n=[];for(let i=0;i<l.length;i+=1){const d=l[i],f=u?.findIndex(y=>{const a=y[o.value];return t?String(a)===String(d):a===d}),c=f!==-1?u?.[f]:null;n.push({value:c?.[o.value]??d,index:f,option:c}),u=c?.[o.children]}return n}function G(l,{initWrapper:s,processEntity:o,onProcessFinished:t,externalGetKey:u,childrenPropName:n,fieldNames:i}={},d){const f=u||d,c={},y={};let a={posEntities:c,keyEntities:y};return s&&(a=s(a)||a),K(l,e=>{const{node:p,index:h,pos:g,key:v,parentPos:m,level:P,nodes:k}=e,r={node:p,nodes:k,index:h,key:v,pos:g,level:P},E=S.getKey(v,g);c[g]=r,y[E]=r,r.parent=c[m],r.parent&&(r.parent.children=r.parent.children||[],r.parent.children.push(r)),o&&o(r,a)},{externalGetKey:f,childrenPropName:n,fieldNames:i}),t&&t(a),a}function K(l,s,o){let t={};typeof o=="object"?t=o:t={externalGetKey:o},t=t||{};const{childrenPropName:u,externalGetKey:n,fieldNames:i}=t,{key:d,children:f}=N(i),c=u||f;let y;n?typeof n=="string"?y=e=>e[n]:typeof n=="function"&&(y=e=>n(e)):y=(e,p)=>S.getKey(e[d],p);function a(e,p,h,g){const v=e?e[c]:l,m=e?x(h.pos,p):"0",P=e?[...g??[],e]:[];if(e){const k=y(e,m),r={node:e,index:p,pos:m,key:k,parentPos:h?.node?h.pos:null,level:h.level+1,nodes:P};s(r)}v&&v.forEach((k,r)=>{a(k,r,{node:e,pos:m,level:h?h.level+1:-1},P)})}a(null)}function x(l,s){return`${l}-${s}`}function N(l){const{title:s,_title:o,key:t,children:u}=l||{},n=s||"title";return{title:n,_title:o||[n],key:t||"key",children:u||"children"}}exports.convertDataToEntities=G;exports.fillFieldNames=N;exports.formatStrategyValues=b;exports.getPosition=x;exports.toPathOptions=D;exports.traverseDataNodes=K;
2
2
  //# sourceMappingURL=treeUtil.js.map
@@ -0,0 +1,138 @@
1
+ {
2
+ "name": "Checkbox",
3
+ "category": "Data Entry",
4
+ "description": "多选框,用于在多个选项中选择一个或多个",
5
+ "semantic": {
6
+ "intent": [
7
+ "多项选择",
8
+ "状态切换",
9
+ "同意协议"
10
+ ],
11
+ "useCases": [
12
+ "过滤器",
13
+ "权限配置",
14
+ "表单录入"
15
+ ],
16
+ "riskLevel": "low"
17
+ },
18
+ "variants": {
19
+ "default": {
20
+ "meaning": "独立多选框"
21
+ },
22
+ "group": {
23
+ "meaning": "多选框组"
24
+ }
25
+ },
26
+ "states": [
27
+ "checked",
28
+ "unchecked",
29
+ "indeterminate",
30
+ "disabled"
31
+ ],
32
+ "idealProps": {
33
+ "checked": {
34
+ "type": "boolean",
35
+ "description": "是否选中"
36
+ },
37
+ "defaultChecked": {
38
+ "type": "boolean",
39
+ "default": false,
40
+ "description": "初始是否选中"
41
+ },
42
+ "disabled": {
43
+ "type": "boolean",
44
+ "default": false,
45
+ "description": "是否禁用"
46
+ },
47
+ "onChange": {
48
+ "type": "function",
49
+ "signature": "(e: React.MouseEvent<HTMLLabelElement>, checked: boolean) => void",
50
+ "description": "变化时回调(src/Checkbox/index.tsx:40 interface 实证:签名为 MouseEvent on HTMLLabelElement;indeterminate=true 时 checked 参数永远为 true;正常场景 checked 为切换后的新状态)"
51
+ },
52
+ "indeterminate": {
53
+ "type": "boolean",
54
+ "default": false,
55
+ "description": "不确定状态(src/Checkbox/index.tsx:36,51,90 实证:仅控制样式——追加 paraui-v4-checkbox-indeterminate 类,并使 onChange 固定传 checked=true;不影响内部 checked state 的实际计算)"
56
+ },
57
+ "label": {
58
+ "type": "ReactNode",
59
+ "description": "显示的文本(src/Checkbox/index.tsx:20 实证:类型为 ReactNode,支持字符串/ReactNode;label 为 null/''/undefined 时不渲染 Label 组件,src:137-139 实证)"
60
+ },
61
+ "size": {
62
+ "type": "enum",
63
+ "values": ["small", "medium", "large"],
64
+ "default": "large",
65
+ "description": "多选框大小(src/Checkbox/index.tsx:24,48,88 实证:默认 'large',控制 CSS 类 paraui-v4-checkbox-{size})"
66
+ },
67
+ "width": {
68
+ "type": "string",
69
+ "description": "组件外层容器宽度(src/Checkbox/index.tsx:18,52,117 实证:写入根 label 的 style.width,与 style prop 合并)"
70
+ },
71
+ "labelTooltip": {
72
+ "type": "LabelTooltipProps",
73
+ "description": "label 旁的帮助图标 tooltip 配置(src/Checkbox/index.tsx:22,47,92-93 实证:tooltipType 字段会追加到根容器类名;className/helpClassName 字段控制额外样式;透传给内部 Label 组件)"
74
+ },
75
+ "disabledTooltip": {
76
+ "type": "TooltipProps",
77
+ "description": "禁用状态下的 Tooltip 配置(src/Checkbox/index.tsx:34-35,150-156 实证:存在 disabledTooltip 时将整个 Checkbox 包裹在 Tooltip 内,disabled 固定为 true,透传全部 TooltipProps)"
78
+ },
79
+ "inputProps": {
80
+ "type": "React.InputHTMLAttributes<HTMLInputElement>",
81
+ "description": "内层原生 checkbox input 的额外 props(src/Checkbox/index.tsx:38,133 实证:透传到 `<input type='checkbox' {...props.inputProps} />`)"
82
+ },
83
+ "className": {
84
+ "type": "string",
85
+ "description": "自定义类名(src/Checkbox/index.tsx:14,45 实证,追加到根 label 元素)"
86
+ },
87
+ "style": {
88
+ "type": "React.CSSProperties",
89
+ "description": "自定义样式(src/Checkbox/index.tsx:16,54,116 实证,与 width prop 合并后透传到根 label 元素)"
90
+ }
91
+ },
92
+ "do": [
93
+ "使用 Checkbox Group 处理一组相关的选项",
94
+ "明确 Label 的含义",
95
+ "受控用 checked + onChange,非受控用 defaultChecked;二者不要混用"
96
+ ],
97
+ "dont": [
98
+ "在单选场景中使用 Checkbox(应使用 Radio)",
99
+ "Checkbox 选项过多导致布局混乱"
100
+ ],
101
+ "events": {
102
+ "onChange": {
103
+ "signature": "(e: React.MouseEvent<HTMLLabelElement>, checked: boolean) => void",
104
+ "asyncSupported": false,
105
+ "examples": [
106
+ "基础受控:onChange={(e, checked) => setChecked(checked)}",
107
+ "indeterminate 模式下 checked 永远为 true:onChange={(e, checked) => { if (indeterminate) setIndeterminate(false); setChecked(checked); }}",
108
+ "非受控+监听:onChange={(e, checked) => analytics.track('checkbox', { checked })}"
109
+ ],
110
+ "commonMistakes": [
111
+ "期望 onChange 签名是 (e: React.ChangeEvent<HTMLInputElement>) => void(antd 风格)——Checkbox 实际签名第一参是 MouseEvent on HTMLLabelElement,不是 ChangeEvent",
112
+ "期望通过 e.target.checked 获取新状态——e.target 是 label 元素,checked 字段是第二参,不要从 e.target 取",
113
+ "indeterminate=true 时期望 checked 随用户操作在 true/false 切换——indeterminate 模式下 src 固定传 checked=true,需业务方在 onChange 里手动管理状态"
114
+ ]
115
+ }
116
+ },
117
+ "typescriptPitfalls": [
118
+ {
119
+ "issue": "onChange 第一参是 MouseEvent on HTMLLabelElement,不是 ChangeEvent on HTMLInputElement",
120
+ "wrong": "// antd 风格,期望 ChangeEvent\nonChange={(e: React.ChangeEvent<HTMLInputElement>) => setChecked(e.target.checked)} // 类型不匹配",
121
+ "right": "// para-ui Checkbox onChange 签名\nonChange={(e: React.MouseEvent<HTMLLabelElement>, checked: boolean) => setChecked(checked)}"
122
+ },
123
+ {
124
+ "issue": "defaultChecked 只在 mount 时读取一次(useEffect 依赖 []),后续引用变化不重新初始化",
125
+ "wrong": "// 期望 defaultChecked 动态更新\n<Checkbox defaultChecked={serverValue} /> // serverValue 异步返回后不会重新初始化",
126
+ "right": "// 需要动态初始化用受控 checked + 外部 state\n<Checkbox checked={checked} onChange={(e, v) => setChecked(v)} />"
127
+ },
128
+ {
129
+ "issue": "disabledTooltip 类型是 TooltipProps(整个 Tooltip 的 props 对象),不是简单字符串",
130
+ "wrong": "<Checkbox disabled disabledTooltip='权限不足' /> // 字符串不符合 TooltipProps",
131
+ "right": "<Checkbox disabled disabledTooltip={{ title: '权限不足', placement: 'top' }} />"
132
+ }
133
+ ],
134
+ "mapping": {
135
+ "realComponent": "Checkbox",
136
+ "adapter": null
137
+ }
138
+ }
@@ -0,0 +1,152 @@
1
+ {
2
+ "name": "CheckboxGroup",
3
+ "category": "Data Entry",
4
+ "description": "复选框组,管理一组 Checkbox,支持泛型约束选中值类型。**支持泛型**:`<CheckboxGroup<'apple' | 'banana'>>` 让 value / defaultValue / onChange 入参类型推断为业务字面量;默认 `T extends string | number = string | number`",
5
+ "semantic": {
6
+ "intent": [
7
+ "多选",
8
+ "批量选择",
9
+ "权限配置"
10
+ ],
11
+ "useCases": [
12
+ "权限选择",
13
+ "标签选择",
14
+ "多选过滤"
15
+ ],
16
+ "riskLevel": "low"
17
+ },
18
+ "variants": {
19
+ "default": {
20
+ "meaning": "默认横向布局"
21
+ },
22
+ "column": {
23
+ "meaning": "纵向布局(row=false)"
24
+ }
25
+ },
26
+ "states": [
27
+ "default",
28
+ "disabled",
29
+ "error"
30
+ ],
31
+ "idealProps": {
32
+ "list": {
33
+ "type": "CheckboxListProps[] | CheckboxListProps[][]",
34
+ "required": true,
35
+ "description": "选项数据;CheckboxListProps extends CheckboxProps,必须含 `name: string | number`(唯一标识,选中后 onChange 收到的 value 数组中的元素即为各项的 name)。支持二维数组实现分行布局(每个子数组为一行)"
36
+ },
37
+ "value": {
38
+ "type": "T[]",
39
+ "description": "受控选中值数组;与 onChange 配合实现受控模式;不传时退化为非受控(由 defaultValue 初始化)"
40
+ },
41
+ "defaultValue": {
42
+ "type": "T[]",
43
+ "description": "非受控初始值(仅挂载时生效一次);src/CheckboxGroup/index.tsx:73-75 useEffect 实证:defaultValue 变化后不重新同步"
44
+ },
45
+ "onChange": {
46
+ "type": "(val: T[]) => void",
47
+ "description": "选中值变化回调;val 为当前全部选中项的 name 值数组;src/CheckboxGroup/index.tsx:98 实证,无 event 参数"
48
+ },
49
+ "id": {
50
+ "type": "string",
51
+ "default": "name",
52
+ "description": "**指定读取 list 子项哪个字段作为唯一标识**(src/CheckboxGroup/index.tsx:65 默认值实证);大多数情况无需修改,除非 list 每项用 id/key 等字段作为唯一标识"
53
+ },
54
+ "row": {
55
+ "type": "boolean",
56
+ "default": true,
57
+ "description": "布局方式;true=横向(checkbox 并排),false=纵向(每项独占一行)"
58
+ },
59
+ "disabled": {
60
+ "type": "boolean",
61
+ "default": false,
62
+ "description": "全局禁用(src/CheckboxGroup/index.tsx:175 实证:`disabled={Boolean(disabled || singleItem.disabled)}`);单项也可通过 CheckboxListProps.disabled 独立禁用"
63
+ },
64
+ "size": {
65
+ "type": "enum",
66
+ "values": ["small", "medium", "large"],
67
+ "default": "large",
68
+ "description": "尺寸;透传给内部每个 Checkbox"
69
+ },
70
+ "label": {
71
+ "type": "ReactNode",
72
+ "description": "组件标题(展示在 checkbox 列表上方)"
73
+ },
74
+ "required": {
75
+ "type": "boolean",
76
+ "description": "是否显示必填标记(在 label 旁展示星号)"
77
+ },
78
+ "error": {
79
+ "type": "boolean",
80
+ "description": "错误状态(来自 HelperTextDetailProps,配合 helperText 展示错误文案)"
81
+ },
82
+ "helperText": {
83
+ "type": "string",
84
+ "description": "辅助文本(error=true 时显示为红色错误文案)"
85
+ },
86
+ "spacing": {
87
+ "type": "string",
88
+ "default": "32px",
89
+ "description": "横向布局(row=true)时各 checkbox 间距"
90
+ },
91
+ "itemWidth": {
92
+ "type": "string",
93
+ "description": "每个 checkbox 的宽度"
94
+ },
95
+ "className": {
96
+ "type": "string",
97
+ "description": "根容器自定义类名"
98
+ },
99
+ "style": {
100
+ "type": "React.CSSProperties",
101
+ "description": "根容器自定义样式"
102
+ }
103
+ },
104
+ "do": [
105
+ "list 每项必须包含 `name` 字段(默认 id='name'),值将作为 onChange 返回数组中的元素;若用其他字段,需显式传 id 配置",
106
+ "受控模式:同时传 value + onChange,父组件维护 state;非受控模式:只传 defaultValue,不传 value",
107
+ "需要全选/反选功能:父组件维护 value state,全选时 onChange([all names]),反选时 onChange([])",
108
+ "禁用单项:在 list 子项里传 `disabled: true`;全局禁用:在 CheckboxGroup 顶层传 `disabled`"
109
+ ],
110
+ "dont": [
111
+ "list 子项漏写 name 字段——CheckboxGroup 内部靠 list[i][id] 取值,缺失 name 导致 onChange 返回 undefined 元素",
112
+ "选项超多(>20项)不分行——改用二维数组 list(每个子数组为一行)或搭配 Select 多选",
113
+ "混用受控(value)和非受控(defaultValue)——value 存在时 defaultValue 被忽略,只用一种模式"
114
+ ],
115
+ "events": {
116
+ "onChange": {
117
+ "signature": "(val: T[]) => void",
118
+ "asyncSupported": false,
119
+ "examples": [
120
+ "基本受控:const [selected, setSelected] = useState<string[]>([]); <CheckboxGroup value={selected} onChange={setSelected} />",
121
+ "onChange 回调返回当前全部选中项的 name 值数组,点击已选项则从数组中移除,点击未选项则追加",
122
+ "泛型约束:<CheckboxGroup<'read' | 'write'> value={perms} onChange={setPerms} /> 让 TS 精确推断 val 类型"
123
+ ],
124
+ "commonMistakes": [
125
+ "假设 onChange 签名类似原生 checkbox 的 (e: ChangeEvent) => void——实际是 (val: T[]) => void,无 event 参数",
126
+ "假设 onChange 返回单个被点击的项——实际是全部选中项的数组",
127
+ "传了 value 但不传 onChange,导致 CheckboxGroup 变成只读(受控模式下 value 被外部锁死)"
128
+ ]
129
+ }
130
+ },
131
+ "typescriptPitfalls": [
132
+ {
133
+ "issue": "list 子项缺少 name 字段时 TS 不报错但运行时 onChange 返回 undefined",
134
+ "wrong": "list={[{ label: '苹果', value: 'apple' }]} // value 字段不是 id,name 字段缺失",
135
+ "right": "list={[{ label: '苹果', name: 'apple' }]} // 默认 id='name',用 name 字段作为唯一标识"
136
+ },
137
+ {
138
+ "issue": "泛型参数缺失时 value/defaultValue 推断为 (string|number)[] 失去精确类型",
139
+ "wrong": "// 没有泛型,无法约束 val 只能是 'read' | 'write'\n<CheckboxGroup value={perms} onChange={(val) => setPerms(val)} />",
140
+ "right": "<CheckboxGroup<'read' | 'write'> value={perms} onChange={(val) => setPerms(val)} /> // val 类型精确推断为 ('read' | 'write')[]"
141
+ },
142
+ {
143
+ "issue": "defaultValue 只在组件挂载时读取一次,后续修改不会触发重新同步",
144
+ "wrong": "// 期望通过修改 defaultValue 重置 checkboxGroup\n<CheckboxGroup defaultValue={initialValues} /> // 后续 initialValues 变化不会更新 UI",
145
+ "right": "// 需要外部重置时改用受控模式:value + onChange + 父组件 setState\n<CheckboxGroup value={selectedValues} onChange={setSelectedValues} />"
146
+ }
147
+ ],
148
+ "mapping": {
149
+ "realComponent": "CheckboxGroup",
150
+ "adapter": null
151
+ }
152
+ }
@@ -0,0 +1,189 @@
1
+ {
2
+ "name": "CodeEditor",
3
+ "category": "Data Display",
4
+ "description": "代码编辑器,基于 Monaco Editor。⚠️ 命名警告:**editorLanguage** 是真实代码语言 prop(如 'json'/'typescript'),**language** 是 i18n 字典对象(对象类型,非字符串)。两者极易混淆,务必确认你要的是 editorLanguage(代码高亮)而非 language(界面 i18n)。",
5
+ "semantic": {
6
+ "intent": [
7
+ "代码编辑",
8
+ "代码展示",
9
+ "高亮显示"
10
+ ],
11
+ "useCases": [
12
+ "配置编辑",
13
+ "脚本编写",
14
+ "日志查看"
15
+ ],
16
+ "riskLevel": "high"
17
+ },
18
+ "variants": {
19
+ "default": {
20
+ "meaning": "标准编辑器"
21
+ }
22
+ },
23
+ "states": [
24
+ "default",
25
+ "disabled",
26
+ "readonly"
27
+ ],
28
+ "idealProps": {
29
+ "value": {
30
+ "type": "string",
31
+ "default": "''",
32
+ "description": "编辑器代码内容(**既是初始值又是受控通道**);src/CodeEditor/index.tsx:253 useEffect 监听 value 变化 → snackClass.setValue 同步;**无独立 defaultValue prop** — 不受控写法:value={initialCode} 父不维护 state;受控写法:父维护 state + onChange 中 setState"
33
+ },
34
+ "editorLanguage": {
35
+ "type": "'html' | 'xml' | 'javascript' | 'css' | 'less' | 'scss' | 'json' | 'typescript' | 'java' | 'mysql' | 'go' | 'shell' | 'python' | 'c' | string",
36
+ "values": ["plaintext", "html", "xml", "javascript", "css", "less", "scss", "json", "typescript", "java", "mysql", "go", "shell", "python", "c"],
37
+ "default": "javascript",
38
+ "seeAlso": "language (i18n 字典 — 极易混淆,务必区分)",
39
+ "description": "编辑器语言(真实代码 mode);src/CodeEditor/index.tsx:127。注意:这是真实编辑器语言 prop,**不是** `language` — `language` 是 i18n 字典对象,二者勿混。**业务包装组件场景**:若包装层 Props 接口用 `language: string` 命名,内部必须 `<CodeEditor editorLanguage={props.language} />` 显式映射,禁止直接 `<CodeEditor language={props.language} />`(类型不匹配 + 运行时无高亮)"
40
+ },
41
+ "language": {
42
+ "type": "{ [name: string]: { [name: string]: any } }",
43
+ "seeAlso": "editorLanguage (代码语言 — 极易混淆,务必区分)",
44
+ "description": "国际化字典(i18n 多语 UI 文案);src/CodeEditor/index.tsx:153。R18 sub-agent 100% 把这个当 editorLanguage 用 → 已通过此条 desc 明确区分。类型为**对象**,若误传字符串(如 `language=\"typescript\"`)tsc 会报错"
45
+ },
46
+ "theme": {
47
+ "type": "enum",
48
+ "values": [
49
+ "vs-dark",
50
+ "vs-light"
51
+ ],
52
+ "default": "vs-light",
53
+ "description": "主题"
54
+ },
55
+ "onChange": {
56
+ "type": "(val: string) => void",
57
+ "description": "代码内容改变回调(**单参签名,不暴露 Monaco event 第二参** — src/CodeEditor/index.tsx:343 onChangeCom 只透传 val)"
58
+ },
59
+ "onChangeLanguage": {
60
+ "type": "(val: string) => void",
61
+ "description": "编辑器语言切换回调"
62
+ },
63
+ "onMounted": {
64
+ "type": "(snackClass: CodeEditorSnackClassProps) => void",
65
+ "description": "编辑器加载完成回调(只触发一次);snackClass 暴露 editor / setValue / setDisabled / formatDocument / insertCode 等动态方法"
66
+ },
67
+ "monacoEditorProps": {
68
+ "type": "Record<string, any>",
69
+ "description": "Monaco Editor 原生 props 复写;**真实 prop 名是 monacoEditorProps 不是 options**;只读场景可用 monacoEditorProps={{options:{readOnly:true}}},但 disabled 已覆盖常见整体只读"
70
+ },
71
+ "width": {
72
+ "type": "string",
73
+ "default": "100%",
74
+ "description": "宽(默认 100% → 父容器无显式尺寸时编辑器渲染为 0 × 0 不可见;demo 必须 `<div style={{width,height}}>` 包裹)"
75
+ },
76
+ "height": {
77
+ "type": "string",
78
+ "default": "100%",
79
+ "description": "高(默认 100%;同 width 注意事项)"
80
+ },
81
+ "disabled": {
82
+ "type": "boolean",
83
+ "default": "false",
84
+ "description": "禁用 / 整体只读(**无独立 readOnly prop;disabled 即官方只读入口**);src/CodeEditor/index.tsx:257 useEffect setDisabled 同步。**onChange 在 disabled 场景**:TS 类型上 onChange 仍为可选(不传不会 tsc 报错),但为表达\"明确不期望变更\"建议显式 `onChange={() => undefined}` 占位"
85
+ },
86
+ "codeSnippet": {
87
+ "type": "CodeSnippetProps[]",
88
+ "itemSchema": {
89
+ "label": { "type": "string", "description": "片段显示名" },
90
+ "insertCode": { "type": "string", "description": "插入的代码文本" },
91
+ "codePos": { "type": "object", "description": "插入位置 { startLineNumber, startColumn, endLineNumber, endColumn }" }
92
+ },
93
+ "description": "代码片段列表;CodeSnippetProps = { label?: string; insertCode?: string; codePos?: CodeSnippetPosProps; [name: string]: any }"
94
+ },
95
+ "suggestions": {
96
+ "type": "SuggestionsPorps[]",
97
+ "itemSchema": {
98
+ "label": { "type": "string", "required": true, "description": "提示显示文本" },
99
+ "kind": { "type": "CompletionItemKind (enum number)", "description": "提示前图标类型(0=Method, 1=Function, 17=Keyword, 27=Snippet 等枚举数字)" },
100
+ "insertText": { "type": "string", "description": "选中后插入的文本(默认同 label)" },
101
+ "detail": { "type": "string", "description": "提示内容后的说明文字" }
102
+ },
103
+ "description": "代码补全提示项;SuggestionsPorps = { label: string; kind?: CompletionItemKind; insertText?: string; detail?: string }"
104
+ },
105
+ "topRightRender": {
106
+ "type": "ReactNode",
107
+ "description": "导航右边自定义渲染(可放按钮等)"
108
+ },
109
+ "help": {
110
+ "type": "ReactNode",
111
+ "description": "帮助内容"
112
+ }
113
+ },
114
+ "do": [
115
+ "用于复杂配置编辑或代码展示——轻量输入用 TextField,CodeEditor 有较重的 Monaco 加载成本",
116
+ "父容器必须设置明确的宽高(width/height 默认 100%,父容器无尺寸时编辑器渲染为 0×0 不可见)",
117
+ "需要命令式控制(插入代码/格式化/设值):通过 onMounted 获取 snackClass 实例(含 setValue/formatDocument/insertCode 等方法)",
118
+ "区分 editorLanguage(代码高亮语言,字符串如 'json')和 language(i18n 字典对象)——两者极易混淆"
119
+ ],
120
+ "dont": [
121
+ "在简单文本输入中使用 CodeEditor(改用 TextField/TextArea)",
122
+ "把 language prop 当 editorLanguage 用——language 是 i18n 字典对象,传字符串会 tsc 报类型错误 + 无高亮",
123
+ "未给父容器设置固定尺寸就使用 100% 宽高——父容器塌陷时编辑器不可见",
124
+ "加载超大文件(>1MB)——Monaco 渲染性能下降明显"
125
+ ],
126
+ "events": {
127
+ "onChange": {
128
+ "signature": "(val: string) => void",
129
+ "asyncSupported": false,
130
+ "examples": [
131
+ "实时同步编辑器内容:<CodeEditor onChange={(val) => setCode(val)} />",
132
+ "onChange 只传 val(字符串),不暴露 Monaco 原生 event 第二参数——src/CodeEditor/index.tsx:343 onChangeCom 只透传 val",
133
+ "disabled 模式下不触发 onChange(snackClass.setDisabled 后编辑器变只读)"
134
+ ],
135
+ "commonMistakes": [
136
+ "假设 onChange 签名类似 Monaco 原生的 (value, event) => void——para-ui CodeEditor 只透传 val,无第二参数",
137
+ "disabled=true 时仍期望 onChange 触发——disabled 后编辑器整体只读,onChange 不会被调用",
138
+ "与 language 混淆:传 onChange 时以为可以用 language prop 设语言——language 是 i18n,代码语言用 editorLanguage"
139
+ ]
140
+ },
141
+ "onChangeLanguage": {
142
+ "signature": "(val: string) => void",
143
+ "asyncSupported": false,
144
+ "examples": [
145
+ "监听用户切换语言:<CodeEditor onChangeLanguage={(lang) => console.log('切换到', lang)} />",
146
+ "与 onChange 独立触发,语言切换不触发 onChange",
147
+ "隐藏语言下拉时(hideSelectLanguage=true)此回调永不触发"
148
+ ],
149
+ "commonMistakes": [
150
+ "期望 onChangeLanguage 在 editorLanguage prop 变化时触发——只在用户操作下拉框时触发,外部 prop 变化不触发",
151
+ "hideSelectLanguage=true 后仍期望 onChangeLanguage 能用——下拉框隐藏后用户无法触发语言切换"
152
+ ]
153
+ },
154
+ "onMounted": {
155
+ "signature": "(snackClass: CodeEditorSnackClassProps) => void",
156
+ "asyncSupported": false,
157
+ "examples": [
158
+ "获取实例后命令式操作:onMounted={(snack) => { snackRef.current = snack; snack.setValue('// 初始代码'); }}",
159
+ "onMounted 只触发一次(组件挂载 + Monaco 初始化完毕后);ref 后续可调 setValue/formatDocument/insertCode",
160
+ "snackClass 暴露的方法:setValue(val)、setDisabled(bool)、formatDocument()、insertCode(text, pos?)、updateSnackModules(key, val)"
161
+ ],
162
+ "commonMistakes": [
163
+ "在 onMounted 之前就调 snackRef.current.setValue——Monaco 未初始化完毕时 snackClass 为 undefined",
164
+ "每次 value prop 变化都调 snackClass.setValue——value prop 已自动同步,双写会导致光标跳回行首"
165
+ ]
166
+ }
167
+ },
168
+ "typescriptPitfalls": [
169
+ {
170
+ "issue": "language prop 是 i18n 字典对象,不是代码语言字符串,传字符串会 tsc 报错",
171
+ "wrong": "<CodeEditor language=\"typescript\" /> // tsc 报 Type 'string' is not assignable to type 'object'",
172
+ "right": "<CodeEditor editorLanguage=\"typescript\" /> // editorLanguage 是代码高亮语言"
173
+ },
174
+ {
175
+ "issue": "monacoEditorProps 的真实 prop 名是 monacoEditorProps,不是 options 或 editorOptions",
176
+ "wrong": "<CodeEditor options={{ readOnly: true }} /> // 无效,options 不是 CodeEditorProps 字段",
177
+ "right": "<CodeEditor monacoEditorProps={{ readOnly: true }} /> // 复写 Monaco Editor 原生 props"
178
+ },
179
+ {
180
+ "issue": "父容器无明确尺寸时 width/height='100%' 导致编辑器不可见",
181
+ "wrong": "// 父容器无高度:\n<div><CodeEditor /></div> // 编辑器渲染为 0×0,页面看不到",
182
+ "right": "<div style={{ width: 800, height: 400 }}><CodeEditor /></div> // 父容器必须有明确尺寸"
183
+ }
184
+ ],
185
+ "mapping": {
186
+ "realComponent": "CodeEditor",
187
+ "adapter": null
188
+ }
189
+ }
@@ -1,5 +1,6 @@
1
1
  import { default as React, FunctionComponent, ReactNode } from 'react';
2
2
  import { Snack } from '@snack-kit/core';
3
+ import type * as monaco from 'monaco-editor';
3
4
  export type CodeEditorLanguageType = 'plaintext' | 'html' | 'xml' | 'javascript' | 'css' | 'less' | 'scss' | 'json' | 'typescript' | 'java' | 'mysql' | 'go' | 'shell' | 'python' | 'c' | string;
4
5
  export declare enum CompletionItemKind {
5
6
  Method = 0,
@@ -40,13 +41,13 @@ export interface SuggestionsPorps {
40
41
  insertText?: string;
41
42
  /** 提示内容后的说明 */
42
43
  detail?: string;
43
- [name: string]: any;
44
+ [name: string]: unknown;
44
45
  }
45
46
  export interface CodeSnippetProps {
46
47
  label?: string;
47
48
  insertCode?: string;
48
49
  codePos?: CodeSnippetPosProps;
49
- [name: string]: any;
50
+ [name: string]: unknown;
50
51
  }
51
52
  export interface CodeSnippetPosProps {
52
53
  startLineNumber: number;
@@ -107,7 +108,7 @@ export interface CodeEditorProps {
107
108
  /** 提示字符 */
108
109
  triggerCharacters?: string[];
109
110
  /** 复写编辑器属性 */
110
- monacoEditorProps?: Record<string, any>;
111
+ monacoEditorProps?: Record<string, unknown>;
111
112
  /** 代码片段 */
112
113
  codeSnippet?: CodeSnippetProps[];
113
114
  /** 帮组 */
@@ -117,7 +118,7 @@ export interface CodeEditorProps {
117
118
  /** 国际化 */
118
119
  language?: {
119
120
  [name: string]: {
120
- [name: string]: any;
121
+ [name: string]: unknown;
121
122
  };
122
123
  };
123
124
  /** 点击代码片段 */
@@ -130,10 +131,10 @@ export interface CodeEditorProps {
130
131
  onMounted?: (snackClass: CodeEditorSnackClassProps) => void;
131
132
  }
132
133
  export interface CodeEditorSnackClassProps extends Snack {
133
- /** 编辑器对象 */
134
- editor: any;
135
- /** 语言实例 补全代码 */
136
- monacoProviderRef: any;
134
+ /** 编辑器对象(Monaco 标准 IStandaloneCodeEditor) */
135
+ editor: monaco.editor.IStandaloneCodeEditor;
136
+ /** 语言实例 补全代码(Monaco language provider 注册返回的 disposable) */
137
+ monacoProviderRef: monaco.IDisposable;
137
138
  /** 设置值 */
138
139
  setValue: (val: string) => void;
139
140
  /** 设置禁用 */
@@ -152,7 +153,7 @@ export interface CodeEditorSnackClassProps extends Snack {
152
153
  endColumn: number;
153
154
  }) => void;
154
155
  /** 改变snack模块props */
155
- updateSnackModules: (key: string, val: any) => void;
156
+ updateSnackModules: (key: string, val: unknown) => void;
156
157
  }
157
158
  declare const CodeEditor: FunctionComponent<CodeEditorProps>;
158
159
  export default CodeEditor;