@para-ui/core 5.0.0-beta.11 → 5.0.0-beta.13

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 (650) 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/es/AlignBox/component.json +89 -0
  103. package/es/AlignBox/index.css +1 -1
  104. package/es/AlignBox/index.d.ts +6 -2
  105. package/es/AlignBox/index.js +1 -1
  106. package/es/AlignBox/style/index.css +1 -1
  107. package/es/Anchor/anchorMenu/index.d.ts +2 -1
  108. package/es/Anchor/anchorMenu/index.js +36 -33
  109. package/es/Anchor/component.json +130 -0
  110. package/es/Anchor/index.js +52 -49
  111. package/es/Anchor/type.d.ts +8 -4
  112. package/es/Argv/component.json +216 -0
  113. package/es/Argv/dataGenerator/index.js +1 -1
  114. package/es/Argv/index.d.ts +5 -6
  115. package/es/Argv/index.js +1 -1
  116. package/es/AutoBox/component.json +133 -0
  117. package/es/AutoBox/index.d.ts +3 -3
  118. package/es/AutoBox/index.js +1 -1
  119. package/es/AutoBox/protal.d.ts +2 -2
  120. package/es/AutoBox/protal.js +33 -30
  121. package/es/AutoButton/component.json +109 -0
  122. package/es/AutoButton/index.js +1 -1
  123. package/es/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  124. package/es/AutoTips/autoTipsMultiline/index.js +1 -1
  125. package/es/AutoTips/component.json +121 -0
  126. package/es/AutoTips/index.js +1 -1
  127. package/es/Badge/component.json +92 -0
  128. package/es/Breadcrumbs/component.json +142 -0
  129. package/es/Breadcrumbs/index.js +1 -1
  130. package/es/Button/SplitButton.d.ts +2 -2
  131. package/es/Button/component.json +168 -0
  132. package/es/Button/index.js +44 -44
  133. package/es/ButtonGroup/component.json +132 -0
  134. package/es/ButtonGroup/index.d.ts +1 -1
  135. package/es/Card/component.json +162 -0
  136. package/es/Card/index.d.ts +2 -2
  137. package/es/Card/index.js +2 -2
  138. package/es/Carousel/component.json +142 -0
  139. package/es/Carousel/index.d.ts +1 -1
  140. package/es/Cascader/Cascader.js +1 -1
  141. package/es/Cascader/OptionList/Column.js +1 -1
  142. package/es/Cascader/OptionList/index.js +1 -1
  143. package/es/Cascader/component.json +196 -0
  144. package/es/Cascader/hooks/useEntities.js +7 -7
  145. package/es/Cascader/interface.d.ts +1 -0
  146. package/es/Cascader/utils/commonUtil.d.ts +1 -1
  147. package/es/Cascader/utils/commonUtil.js +16 -16
  148. package/es/Cascader/utils/treeUtil.d.ts +14 -5
  149. package/es/Cascader/utils/treeUtil.js +1 -1
  150. package/es/Checkbox/component.json +138 -0
  151. package/es/CheckboxGroup/component.json +152 -0
  152. package/es/CheckboxGroup/index.js +1 -1
  153. package/es/CodeEditor/component.json +189 -0
  154. package/es/CodeEditor/index.d.ts +11 -10
  155. package/es/CodeEditor/index.js +19 -19
  156. package/es/Collapse/component.json +166 -0
  157. package/es/Collapse/index.d.ts +1 -1
  158. package/es/Collapse/index.js +23 -22
  159. package/es/CollapseBox/component.json +84 -0
  160. package/es/CollapseLayout/component.json +155 -0
  161. package/es/ColorPicker/component.json +142 -0
  162. package/es/ComboSelect/component.json +181 -0
  163. package/es/ComboSelect/index.js +115 -109
  164. package/es/ComboSelect/interface.d.ts +2 -2
  165. package/es/ComboSelect/utils.d.ts +3 -3
  166. package/es/ComboSelect/utils.js +1 -1
  167. package/es/Container/component.json +111 -0
  168. package/es/ContentBox/component.json +81 -0
  169. package/es/CopyText/component.json +118 -0
  170. package/es/CycleSelector/component.json +98 -0
  171. package/es/CycleSelector/index.js +14 -13
  172. package/es/DatePicker/component.json +192 -0
  173. package/es/DatePicker/generatePicker/generateRangePicker.js +11 -11
  174. package/es/DatePicker/generatePicker/generateSinglePicker.js +2 -2
  175. package/es/Descriptions/component.json +142 -0
  176. package/es/Descriptions/index.d.ts +1 -1
  177. package/es/Desktop/component.json +171 -0
  178. package/es/Desktop/index.js +1 -1
  179. package/es/DragVerify/component.json +114 -0
  180. package/es/DragVerify/index.js +19 -19
  181. package/es/Drawer/component.json +200 -0
  182. package/es/Drawer/index.js +86 -86
  183. package/es/Drawer/interface.d.ts +1 -1
  184. package/es/Drawer/util.d.ts +1 -6
  185. package/es/Drawer/util.js +9 -6
  186. package/es/Dropdown/component.json +147 -0
  187. package/es/Dropdown/index.js +1 -1
  188. package/es/DynamicMultiBox/component.json +278 -0
  189. package/es/DynamicMultiBox/formItem.d.ts +1 -1
  190. package/es/DynamicMultiBox/index.js +1 -1
  191. package/es/DynamicMultiBox/rowForm.d.ts +2 -2
  192. package/es/Empty/component.json +123 -0
  193. package/es/Empty/index.css +1 -1
  194. package/es/Empty/index.d.ts +2 -2
  195. package/es/Empty/index.js +27 -26
  196. package/es/Empty/style/index.css +1 -1
  197. package/es/FieldForm/FieldFormItem/ItemHolder.js +1 -1
  198. package/es/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  199. package/es/FieldForm/FieldFormItem/StatusProvider.js +1 -1
  200. package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
  201. package/es/FieldForm/Form.d.ts +2 -2
  202. package/es/FieldForm/Form.js +1 -1
  203. package/es/FieldForm/FormItemInput.js +1 -1
  204. package/es/FieldForm/FormItemLabel.js +1 -1
  205. package/es/FieldForm/FormList.d.ts +2 -2
  206. package/es/FieldForm/component.json +196 -0
  207. package/es/FieldForm/context.d.ts +5 -1
  208. package/es/FieldForm/context.js +2 -2
  209. package/es/FieldForm/hooks/useForm.d.ts +4 -3
  210. package/es/FieldForm/hooks/useFormInstance.d.ts +1 -1
  211. package/es/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  212. package/es/FieldForm/hooks/useFormItemStatus.js +2 -2
  213. package/es/FieldForm/hooks/useItemRef.d.ts +1 -1
  214. package/es/FieldForm/hooks/useItemRef.js +6 -6
  215. package/es/Form/component.json +161 -0
  216. package/es/Form/index.d.ts +52 -49
  217. package/es/Form/index.js +1 -1
  218. package/es/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  219. package/es/FormItem/compoments/defaultCompoments/index.js +12 -11
  220. package/es/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  221. package/es/FormItem/compoments/formFile/index.js +8 -8
  222. package/es/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  223. package/es/FormItem/compoments/formSelect/index.d.ts +1 -1
  224. package/es/FormItem/component.json +171 -0
  225. package/es/FormItem/index.d.ts +5 -5
  226. package/es/FormItem/index.js +23 -23
  227. package/es/FormItem/itemType.js +1 -1
  228. package/es/FunctionModal/component.json +197 -0
  229. package/es/FunctionModal/dialog.d.ts +1 -1
  230. package/es/FunctionModal/modalContext.d.ts +4 -1
  231. package/es/GlobalContext/confirmLocale.js +1 -1
  232. package/es/GlobalContext/index.js +1 -1
  233. package/es/Help/component.json +118 -0
  234. package/es/HelperText/component.json +126 -0
  235. package/es/Image/PreviewGroup.js +1 -1
  236. package/es/Image/component.json +165 -0
  237. package/es/Image/index.js +1 -1
  238. package/es/InputCode/component.json +191 -0
  239. package/es/InputCode/index.d.ts +2 -2
  240. package/es/InputLang/component.json +205 -0
  241. package/es/InputLang/index.js +2 -2
  242. package/es/InputNumber/component.json +162 -0
  243. package/es/Label/component.json +126 -0
  244. package/es/Label/index.d.ts +2 -2
  245. package/es/Loading/component.json +91 -0
  246. package/es/Menu/component.json +180 -0
  247. package/es/Menu/verticalMenuList.js +1 -1
  248. package/es/Message/component.json +246 -0
  249. package/es/Message/index.d.ts +2 -2
  250. package/es/Message/index.js +2 -2
  251. package/es/Modal/Confirm/index.d.ts +1 -1
  252. package/es/Modal/Confirm/index.js +1 -1
  253. package/es/Modal/component.json +277 -0
  254. package/es/Modal/index.d.ts +85 -5
  255. package/es/Modal/index.js +159 -122
  256. package/es/Modal/interface.d.ts +1 -0
  257. package/es/MultiBox/component.json +216 -0
  258. package/es/MultiBox/index.js +19 -14
  259. package/es/Notification/component.json +184 -0
  260. package/es/OperateBtn/component.json +134 -0
  261. package/es/OperateBtn/index.d.ts +3 -3
  262. package/es/PageHeader/component.json +112 -0
  263. package/es/PageHeader/horizontalMeun.js +1 -1
  264. package/es/PageHeader/horizontalMeunRight.js +1 -1
  265. package/es/Pagination/component.json +181 -0
  266. package/es/Pagination/index.js +15 -15
  267. package/es/ParauiProvider/index.js +1 -1
  268. package/es/PasswordRules/component.json +105 -0
  269. package/es/PasswordRules/index.d.ts +4 -4
  270. package/es/PopConfirm/component.json +227 -0
  271. package/es/PopConfirm/index.d.ts +1 -1
  272. package/es/PopConfirm/index.js +1 -1
  273. package/es/PopMenu/component.json +131 -0
  274. package/es/PopMenu/hooks.d.ts +1 -1
  275. package/es/PopMenu/index.js +8 -8
  276. package/es/Popover/component.json +165 -0
  277. package/es/Popover/index.js +1 -1
  278. package/es/Progress/component.json +161 -0
  279. package/es/Prompt/component.json +144 -0
  280. package/es/Querying/component.json +96 -0
  281. package/es/Querying/index.css +1 -1
  282. package/es/Querying/index.d.ts +2 -2
  283. package/es/Querying/index.js +20 -19
  284. package/es/Querying/style/index.css +1 -1
  285. package/es/QuickReply/QuickReplyCode/index.js +1 -1
  286. package/es/QuickReply/component.json +129 -0
  287. package/es/QuickReply/index.d.ts +1 -1
  288. package/es/Radio/component.json +136 -0
  289. package/es/RadioGroup/component.json +149 -0
  290. package/es/RangeInput/component.json +198 -0
  291. package/es/RangeInput/index.js +20 -20
  292. package/es/Result/component.json +104 -0
  293. package/es/ScrollBar/component.json +115 -0
  294. package/es/Search/component.json +177 -0
  295. package/es/Search/index.d.ts +1 -1
  296. package/es/Select/component.json +244 -0
  297. package/es/Select/index.js +114 -114
  298. package/es/SelectInput/component.json +184 -0
  299. package/es/Selector/component.json +203 -0
  300. package/es/Selector/index.js +56 -50
  301. package/es/Selector/interface.d.ts +2 -2
  302. package/es/Selector/selectorData/index.js +1 -1
  303. package/es/Selector/selectorMain/index.js +3 -3
  304. package/es/Selector/selectorNode/index.js +1 -1
  305. package/es/Selector/util.d.ts +3 -3
  306. package/es/Selector/util.js +6 -12
  307. package/es/SelectorPicker/component.json +179 -0
  308. package/es/SelectorPicker/index.d.ts +5 -5
  309. package/es/SelectorPicker/index.js +15 -15
  310. package/es/SingleBox/component.json +151 -0
  311. package/es/SingleBox/index.d.ts +2 -2
  312. package/es/Slider/component.json +181 -0
  313. package/es/SortBox/component.json +108 -0
  314. package/es/Status/component.json +104 -0
  315. package/es/Stepper/component.json +129 -0
  316. package/es/Stepper/index.d.ts +2 -2
  317. package/es/Switch/component.json +207 -0
  318. package/es/Switch/index.css +1 -1
  319. package/es/Switch/index.d.ts +3 -2
  320. package/es/Switch/index.js +60 -59
  321. package/es/Switch/style/index.css +1 -1
  322. package/es/Table/component.json +547 -0
  323. package/es/Table/index.d.ts +2 -2
  324. package/es/Table/index.js +385 -382
  325. package/es/Table/interface.d.ts +30 -0
  326. package/es/Table/tableHead.js +1 -1
  327. package/es/Table/util.d.ts +1 -1
  328. package/es/Table/util.js +3 -12
  329. package/es/Tabs/component.json +227 -0
  330. package/es/Tag/component.json +221 -0
  331. package/es/Tag/index.css +1 -1
  332. package/es/Tag/index.d.ts +1 -1
  333. package/es/Tag/index.js +20 -20
  334. package/es/Tag/style/index.css +1 -1
  335. package/es/TextEditor/component.json +186 -0
  336. package/es/TextEditor/index.d.ts +5 -5
  337. package/es/TextEditor/index.js +1 -1
  338. package/es/TextField/component.json +290 -0
  339. package/es/TextField/index.d.ts +2 -2
  340. package/es/TextField/index.js +1 -1
  341. package/es/TimePicker/component.json +176 -0
  342. package/es/Timeline/component.json +110 -0
  343. package/es/Title/component.json +156 -0
  344. package/es/ToggleButton/component.json +153 -0
  345. package/es/ToggleButton/index.js +1 -1
  346. package/es/Tooltip/component.json +176 -0
  347. package/es/Tooltip/index.js +58 -53
  348. package/es/Tooltip/interface.d.ts +14 -1
  349. package/es/Tooltip/utils.js +6 -6
  350. package/es/Transfer/component.json +157 -0
  351. package/es/Tree/OperateBar/index.js +1 -1
  352. package/es/Tree/Tree.js +3 -3
  353. package/es/Tree/component.json +512 -0
  354. package/es/Tree/interface.d.ts +1 -1
  355. package/es/Upload/component.json +450 -0
  356. package/es/Upload/util.js +1 -1
  357. package/es/Utils/snack-kit-shims.d.ts +18 -0
  358. package/es/Utils/snack-kit-shims.js +19 -0
  359. package/es/Utils/type.d.ts +0 -2
  360. package/es/_virtual/index.js +5 -3
  361. package/es/_virtual/index2.js +2 -5
  362. package/es/index.d.ts +2 -0
  363. package/es/index.js +1 -1
  364. package/es/locale/en_US.d.ts +361 -0
  365. package/es/locale/en_US.js +364 -0
  366. package/es/locale/index.d.ts +1 -723
  367. package/es/locale/index2.js +10 -0
  368. package/es/locale/zh_CN.d.ts +361 -0
  369. package/es/locale/zh_CN.js +364 -0
  370. package/es/node_modules/classnames/index.js +1 -1
  371. package/lib/AlignBox/component.json +89 -0
  372. package/lib/AlignBox/index.css +1 -1
  373. package/lib/AlignBox/index.d.ts +6 -2
  374. package/lib/AlignBox/index.js +1 -1
  375. package/lib/AlignBox/style/index.css +1 -1
  376. package/lib/Anchor/anchorMenu/index.d.ts +2 -1
  377. package/lib/Anchor/anchorMenu/index.js +1 -1
  378. package/lib/Anchor/component.json +130 -0
  379. package/lib/Anchor/index.js +1 -1
  380. package/lib/Anchor/type.d.ts +8 -4
  381. package/lib/Argv/component.json +216 -0
  382. package/lib/Argv/dataGenerator/index.js +1 -1
  383. package/lib/Argv/index.d.ts +5 -6
  384. package/lib/Argv/index.js +1 -1
  385. package/lib/AutoBox/component.json +133 -0
  386. package/lib/AutoBox/index.d.ts +3 -3
  387. package/lib/AutoBox/index.js +1 -1
  388. package/lib/AutoBox/protal.d.ts +2 -2
  389. package/lib/AutoBox/protal.js +1 -1
  390. package/lib/AutoButton/component.json +109 -0
  391. package/lib/AutoButton/index.js +1 -1
  392. package/lib/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  393. package/lib/AutoTips/autoTipsMultiline/index.js +1 -1
  394. package/lib/AutoTips/component.json +121 -0
  395. package/lib/AutoTips/index.js +1 -1
  396. package/lib/Badge/component.json +92 -0
  397. package/lib/Breadcrumbs/component.json +142 -0
  398. package/lib/Breadcrumbs/index.js +1 -1
  399. package/lib/Button/SplitButton.d.ts +2 -2
  400. package/lib/Button/component.json +168 -0
  401. package/lib/Button/index.js +1 -1
  402. package/lib/ButtonGroup/component.json +132 -0
  403. package/lib/ButtonGroup/index.d.ts +1 -1
  404. package/lib/Card/component.json +162 -0
  405. package/lib/Card/index.d.ts +2 -2
  406. package/lib/Card/index.js +1 -1
  407. package/lib/Carousel/component.json +142 -0
  408. package/lib/Carousel/index.d.ts +1 -1
  409. package/lib/Cascader/Cascader.js +1 -1
  410. package/lib/Cascader/OptionList/Column.js +1 -1
  411. package/lib/Cascader/OptionList/index.js +1 -1
  412. package/lib/Cascader/component.json +196 -0
  413. package/lib/Cascader/hooks/useEntities.js +1 -1
  414. package/lib/Cascader/interface.d.ts +1 -0
  415. package/lib/Cascader/utils/commonUtil.d.ts +1 -1
  416. package/lib/Cascader/utils/commonUtil.js +1 -1
  417. package/lib/Cascader/utils/treeUtil.d.ts +14 -5
  418. package/lib/Cascader/utils/treeUtil.js +1 -1
  419. package/lib/Checkbox/component.json +138 -0
  420. package/lib/CheckboxGroup/component.json +152 -0
  421. package/lib/CheckboxGroup/index.js +1 -1
  422. package/lib/CodeEditor/component.json +189 -0
  423. package/lib/CodeEditor/index.d.ts +11 -10
  424. package/lib/CodeEditor/index.js +1 -1
  425. package/lib/Collapse/component.json +166 -0
  426. package/lib/Collapse/index.d.ts +1 -1
  427. package/lib/Collapse/index.js +1 -1
  428. package/lib/CollapseBox/component.json +84 -0
  429. package/lib/CollapseLayout/component.json +155 -0
  430. package/lib/ColorPicker/component.json +142 -0
  431. package/lib/ComboSelect/component.json +181 -0
  432. package/lib/ComboSelect/index.js +1 -1
  433. package/lib/ComboSelect/interface.d.ts +2 -2
  434. package/lib/ComboSelect/utils.d.ts +3 -3
  435. package/lib/ComboSelect/utils.js +1 -1
  436. package/lib/Container/component.json +111 -0
  437. package/lib/ContentBox/component.json +81 -0
  438. package/lib/CopyText/component.json +118 -0
  439. package/lib/CycleSelector/component.json +98 -0
  440. package/lib/CycleSelector/index.js +1 -1
  441. package/lib/DatePicker/component.json +192 -0
  442. package/lib/DatePicker/generatePicker/generateRangePicker.js +1 -1
  443. package/lib/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  444. package/lib/Descriptions/component.json +142 -0
  445. package/lib/Descriptions/index.d.ts +1 -1
  446. package/lib/Desktop/component.json +171 -0
  447. package/lib/Desktop/index.js +1 -1
  448. package/lib/DragVerify/component.json +114 -0
  449. package/lib/DragVerify/index.js +1 -1
  450. package/lib/Drawer/component.json +200 -0
  451. package/lib/Drawer/index.js +1 -1
  452. package/lib/Drawer/interface.d.ts +1 -1
  453. package/lib/Drawer/util.d.ts +1 -6
  454. package/lib/Drawer/util.js +1 -1
  455. package/lib/Dropdown/component.json +147 -0
  456. package/lib/Dropdown/index.js +1 -1
  457. package/lib/DynamicMultiBox/component.json +278 -0
  458. package/lib/DynamicMultiBox/formItem.d.ts +1 -1
  459. package/lib/DynamicMultiBox/index.js +1 -1
  460. package/lib/DynamicMultiBox/rowForm.d.ts +2 -2
  461. package/lib/Empty/component.json +123 -0
  462. package/lib/Empty/index.css +1 -1
  463. package/lib/Empty/index.d.ts +2 -2
  464. package/lib/Empty/index.js +1 -1
  465. package/lib/Empty/style/index.css +1 -1
  466. package/lib/FieldForm/FieldFormItem/ItemHolder.js +1 -1
  467. package/lib/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  468. package/lib/FieldForm/FieldFormItem/StatusProvider.js +1 -1
  469. package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
  470. package/lib/FieldForm/Form.d.ts +2 -2
  471. package/lib/FieldForm/Form.js +1 -1
  472. package/lib/FieldForm/FormItemInput.js +1 -1
  473. package/lib/FieldForm/FormItemLabel.js +1 -1
  474. package/lib/FieldForm/FormList.d.ts +2 -2
  475. package/lib/FieldForm/component.json +196 -0
  476. package/lib/FieldForm/context.d.ts +5 -1
  477. package/lib/FieldForm/context.js +1 -1
  478. package/lib/FieldForm/hooks/useForm.d.ts +4 -3
  479. package/lib/FieldForm/hooks/useFormInstance.d.ts +1 -1
  480. package/lib/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  481. package/lib/FieldForm/hooks/useFormItemStatus.js +1 -1
  482. package/lib/FieldForm/hooks/useItemRef.d.ts +1 -1
  483. package/lib/FieldForm/hooks/useItemRef.js +1 -1
  484. package/lib/Form/component.json +161 -0
  485. package/lib/Form/index.d.ts +52 -49
  486. package/lib/Form/index.js +1 -1
  487. package/lib/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  488. package/lib/FormItem/compoments/defaultCompoments/index.js +1 -1
  489. package/lib/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  490. package/lib/FormItem/compoments/formFile/index.js +1 -1
  491. package/lib/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  492. package/lib/FormItem/compoments/formSelect/index.d.ts +1 -1
  493. package/lib/FormItem/component.json +171 -0
  494. package/lib/FormItem/index.d.ts +5 -5
  495. package/lib/FormItem/index.js +1 -1
  496. package/lib/FormItem/itemType.js +1 -1
  497. package/lib/FunctionModal/component.json +197 -0
  498. package/lib/FunctionModal/dialog.d.ts +1 -1
  499. package/lib/FunctionModal/modalContext.d.ts +4 -1
  500. package/lib/GlobalContext/confirmLocale.js +1 -1
  501. package/lib/GlobalContext/index.js +1 -1
  502. package/lib/Help/component.json +118 -0
  503. package/lib/HelperText/component.json +126 -0
  504. package/lib/Image/PreviewGroup.js +1 -1
  505. package/lib/Image/component.json +165 -0
  506. package/lib/Image/index.js +1 -1
  507. package/lib/InputCode/component.json +191 -0
  508. package/lib/InputCode/index.d.ts +2 -2
  509. package/lib/InputLang/component.json +205 -0
  510. package/lib/InputLang/index.js +1 -1
  511. package/lib/InputNumber/component.json +162 -0
  512. package/lib/Label/component.json +126 -0
  513. package/lib/Label/index.d.ts +2 -2
  514. package/lib/Loading/component.json +91 -0
  515. package/lib/Menu/component.json +180 -0
  516. package/lib/Menu/verticalMenuList.js +1 -1
  517. package/lib/Message/component.json +246 -0
  518. package/lib/Message/index.d.ts +2 -2
  519. package/lib/Message/index.js +1 -1
  520. package/lib/Modal/Confirm/index.d.ts +1 -1
  521. package/lib/Modal/Confirm/index.js +1 -1
  522. package/lib/Modal/component.json +277 -0
  523. package/lib/Modal/index.d.ts +85 -5
  524. package/lib/Modal/index.js +1 -1
  525. package/lib/Modal/interface.d.ts +1 -0
  526. package/lib/MultiBox/component.json +216 -0
  527. package/lib/MultiBox/index.js +1 -1
  528. package/lib/Notification/component.json +184 -0
  529. package/lib/OperateBtn/component.json +134 -0
  530. package/lib/OperateBtn/index.d.ts +3 -3
  531. package/lib/PageHeader/component.json +112 -0
  532. package/lib/PageHeader/horizontalMeun.js +1 -1
  533. package/lib/PageHeader/horizontalMeunRight.js +1 -1
  534. package/lib/Pagination/component.json +181 -0
  535. package/lib/Pagination/index.js +1 -1
  536. package/lib/ParauiProvider/index.js +1 -1
  537. package/lib/PasswordRules/component.json +105 -0
  538. package/lib/PasswordRules/index.d.ts +4 -4
  539. package/lib/PopConfirm/component.json +227 -0
  540. package/lib/PopConfirm/index.d.ts +1 -1
  541. package/lib/PopConfirm/index.js +1 -1
  542. package/lib/PopMenu/component.json +131 -0
  543. package/lib/PopMenu/hooks.d.ts +1 -1
  544. package/lib/PopMenu/index.js +1 -1
  545. package/lib/Popover/component.json +165 -0
  546. package/lib/Popover/index.js +1 -1
  547. package/lib/Progress/component.json +161 -0
  548. package/lib/Prompt/component.json +144 -0
  549. package/lib/Querying/component.json +96 -0
  550. package/lib/Querying/index.css +1 -1
  551. package/lib/Querying/index.d.ts +2 -2
  552. package/lib/Querying/index.js +1 -1
  553. package/lib/Querying/style/index.css +1 -1
  554. package/lib/QuickReply/QuickReplyCode/index.js +1 -1
  555. package/lib/QuickReply/component.json +129 -0
  556. package/lib/QuickReply/index.d.ts +1 -1
  557. package/lib/Radio/component.json +136 -0
  558. package/lib/RadioGroup/component.json +149 -0
  559. package/lib/RangeInput/component.json +198 -0
  560. package/lib/RangeInput/index.js +1 -1
  561. package/lib/Result/component.json +104 -0
  562. package/lib/ScrollBar/component.json +115 -0
  563. package/lib/Search/component.json +177 -0
  564. package/lib/Search/index.d.ts +1 -1
  565. package/lib/Select/component.json +244 -0
  566. package/lib/Select/index.js +1 -1
  567. package/lib/SelectInput/component.json +184 -0
  568. package/lib/Selector/component.json +203 -0
  569. package/lib/Selector/index.js +1 -1
  570. package/lib/Selector/interface.d.ts +2 -2
  571. package/lib/Selector/selectorData/index.js +1 -1
  572. package/lib/Selector/selectorMain/index.js +1 -1
  573. package/lib/Selector/selectorNode/index.js +1 -1
  574. package/lib/Selector/util.d.ts +3 -3
  575. package/lib/Selector/util.js +1 -1
  576. package/lib/SelectorPicker/component.json +179 -0
  577. package/lib/SelectorPicker/index.d.ts +5 -5
  578. package/lib/SelectorPicker/index.js +1 -1
  579. package/lib/SingleBox/component.json +151 -0
  580. package/lib/SingleBox/index.d.ts +2 -2
  581. package/lib/Slider/component.json +181 -0
  582. package/lib/SortBox/component.json +108 -0
  583. package/lib/Status/component.json +104 -0
  584. package/lib/Stepper/component.json +129 -0
  585. package/lib/Stepper/index.d.ts +2 -2
  586. package/lib/Switch/component.json +207 -0
  587. package/lib/Switch/index.css +1 -1
  588. package/lib/Switch/index.d.ts +3 -2
  589. package/lib/Switch/index.js +1 -1
  590. package/lib/Switch/style/index.css +1 -1
  591. package/lib/Table/component.json +547 -0
  592. package/lib/Table/index.d.ts +2 -2
  593. package/lib/Table/index.js +1 -1
  594. package/lib/Table/interface.d.ts +30 -0
  595. package/lib/Table/tableHead.js +1 -1
  596. package/lib/Table/util.d.ts +1 -1
  597. package/lib/Table/util.js +1 -1
  598. package/lib/Tabs/component.json +227 -0
  599. package/lib/Tag/component.json +221 -0
  600. package/lib/Tag/index.css +1 -1
  601. package/lib/Tag/index.d.ts +1 -1
  602. package/lib/Tag/index.js +1 -1
  603. package/lib/Tag/style/index.css +1 -1
  604. package/lib/TextEditor/component.json +186 -0
  605. package/lib/TextEditor/index.d.ts +5 -5
  606. package/lib/TextEditor/index.js +1 -1
  607. package/lib/TextField/component.json +290 -0
  608. package/lib/TextField/index.d.ts +2 -2
  609. package/lib/TextField/index.js +1 -1
  610. package/lib/TimePicker/component.json +176 -0
  611. package/lib/Timeline/component.json +110 -0
  612. package/lib/Title/component.json +156 -0
  613. package/lib/ToggleButton/component.json +153 -0
  614. package/lib/ToggleButton/index.js +1 -1
  615. package/lib/Tooltip/component.json +176 -0
  616. package/lib/Tooltip/index.js +1 -1
  617. package/lib/Tooltip/interface.d.ts +14 -1
  618. package/lib/Tooltip/utils.js +1 -1
  619. package/lib/Transfer/component.json +157 -0
  620. package/lib/Tree/OperateBar/index.js +2 -2
  621. package/lib/Tree/Tree.js +1 -1
  622. package/lib/Tree/component.json +512 -0
  623. package/lib/Tree/interface.d.ts +1 -1
  624. package/lib/Upload/component.json +450 -0
  625. package/lib/Upload/util.js +1 -1
  626. package/lib/Utils/snack-kit-shims.d.ts +18 -0
  627. package/lib/Utils/snack-kit-shims.js +2 -0
  628. package/lib/Utils/type.d.ts +0 -2
  629. package/lib/_virtual/index.js +1 -1
  630. package/lib/_virtual/index2.js +1 -1
  631. package/lib/index.d.ts +2 -0
  632. package/lib/index.js +1 -1
  633. package/lib/locale/en_US.d.ts +361 -0
  634. package/lib/locale/en_US.js +2 -0
  635. package/lib/locale/index.d.ts +1 -723
  636. package/lib/locale/index2.js +2 -0
  637. package/lib/locale/zh_CN.d.ts +361 -0
  638. package/lib/locale/zh_CN.js +2 -0
  639. package/lib/node_modules/classnames/index.js +1 -1
  640. package/package.json +11 -4
  641. package/es/_virtual/index3.js +0 -5
  642. package/es/_virtual/index4.js +0 -5
  643. package/es/node_modules/@para-snack/core/dist/index.js +0 -5231
  644. package/lib/_virtual/index3.js +0 -2
  645. package/lib/_virtual/index4.js +0 -2
  646. package/lib/node_modules/@para-snack/core/dist/index.js +0 -20
  647. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  648. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
  649. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  650. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
@@ -0,0 +1,196 @@
1
+ {
2
+ "name": "Cascader",
3
+ "category": "Data Entry",
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
+ },
23
+ "states": [
24
+ "default",
25
+ "disabled",
26
+ "error",
27
+ "loading"
28
+ ],
29
+ "idealProps": {
30
+ "options": {
31
+ "type": "array",
32
+ "itemSchema": {
33
+ "label": { "type": "ReactNode", "required": true, "description": "选项显示文案" },
34
+ "value": { "type": "string | number | null", "description": "选项值" },
35
+ "children": { "type": "DefaultOptionType[]", "description": "子级选项,形成层级结构" },
36
+ "disabled": { "type": "boolean", "description": "是否禁用该选项" },
37
+ "disableCheckbox": { "type": "boolean", "description": "禁用 checkbox(checkable 模式)" },
38
+ "disableTitle": { "type": "string", "description": "禁用时 tooltip 提示文案" }
39
+ },
40
+ "description": "数据源,元素类型为 `DefaultOptionType`(包含 `label / value / children / disabled / disableTitle`;⚠️ `loading` 和 `isLeaf` **不在 DefaultOptionType 中**,是 loadData 场景扩展字段,需在业务类型中另声明)。业务自有节点类型对接三种推荐写法:(1) 泛型 `<Cascader<RegionNode> options={tree} />`(首选,Cascader 已暴露 `<OptionType extends BaseOptionType = DefaultOptionType>` 泛型);(2) 声明合并 `interface RegionNode extends DefaultOptionType { ... }`;(3) as 强转 `options={tree as DefaultOptionType[]}`(快速逃逸)。详见 docs/view/cascader/codeString.ts customOptionTypeCascader 示例。"
41
+ },
42
+ "value": {
43
+ "type": "(string | number)[]",
44
+ "description": "受控选中值;级联路径数组,每层一个值,如 `['guangdong', 'guangzhou']`。⚠️ 类型是 (string | number)[],不是 string[] 或 any[],传纯 string 路径需在调用侧 as string[]"
45
+ },
46
+ "defaultValue": {
47
+ "type": "(string | number)[]",
48
+ "description": "非受控初始选中值;格式同 value,如 `['guangdong', 'guangzhou']`。不要同时传 value + defaultValue"
49
+ },
50
+ "onChange": {
51
+ "type": "function",
52
+ "signature": "(value: (string | number)[], selectedOptions: DefaultOptionType[]) => void",
53
+ "description": "选中值改变回调。**完整签名**:第一参 value 是选中路径各级节点 value 组成的数组(如 ['guangdong', 'guangzhou']);第二参 selectedOptions 是路径各级节点完整对象数组。⚠️ **TS7006 陷阱(noImplicitAny)**:内联回调参数必须显式标注类型——`onChange={(value: (string | number)[]) => ...}` ✅;`onChange={(value) => ...}` ❌ 报 TS7006。**桥接 string[] 场景推荐写法**:`onChange={(value: (string | number)[]) => onPathChange(value as string[])}`"
54
+ },
55
+ "onDropdownVisibleChange": {
56
+ "type": "function",
57
+ "signature": "(visible: boolean) => void",
58
+ "description": "弹出层显示状态改变时的回调,visible=true 表示打开,false 表示关闭"
59
+ },
60
+ "changeOnSelect": {
61
+ "type": "boolean",
62
+ "default": false,
63
+ "description": "选择任一级即触发 onChange,无需选到末级"
64
+ },
65
+ "expandTrigger": {
66
+ "type": "enum",
67
+ "values": [
68
+ "click",
69
+ "hover"
70
+ ],
71
+ "default": "click",
72
+ "description": "展开触发方式"
73
+ },
74
+ "expandIcon": {
75
+ "type": "ReactNode",
76
+ "description": "展开箭头图标"
77
+ },
78
+ "loadingIcon": {
79
+ "type": "ReactNode",
80
+ "description": "异步加载状态图标"
81
+ },
82
+ "expandJoin": {
83
+ "type": "string",
84
+ "default": "/",
85
+ "description": "已选路径文本拼接符"
86
+ },
87
+ "fieldNames": {
88
+ "type": "object",
89
+ "default": "{ label: 'label', value: 'value', children: 'children' }",
90
+ "objectShape": {
91
+ "label": { "type": "string", "description": "数据中作为显示文案的字段名,默认 'label'" },
92
+ "value": { "type": "string", "description": "数据中作为值的字段名,默认 'value'" },
93
+ "children": { "type": "string", "description": "数据中作为子级的字段名,默认 'children'" }
94
+ },
95
+ "description": "自定义节点字段名映射"
96
+ },
97
+ "placeholder": {
98
+ "type": "string",
99
+ "default": "请选择",
100
+ "description": "占位符"
101
+ },
102
+ "disabled": {
103
+ "type": "boolean",
104
+ "default": false,
105
+ "description": "是否整体禁用"
106
+ },
107
+ "disabledTooltip": {
108
+ "type": "TooltipProps",
109
+ "description": "disabled 时悬浮于触发框的 Tooltip 配置"
110
+ },
111
+ "optionsTitle": {
112
+ "type": "Array<string | null>",
113
+ "default": "[]",
114
+ "description": "每级面板顶部标题文案,下标对应级数"
115
+ },
116
+ "checkable": {
117
+ "type": "boolean | ReactNode",
118
+ "default": false,
119
+ "description": "是否多选;true 显示 checkbox,传 ReactNode 自定义勾选图标"
120
+ },
121
+ "displayRender": {
122
+ "type": "function",
123
+ "signature": "(label: string[], selectedOptions?: DefaultOptionType[]) => ReactNode",
124
+ "description": "自定义触发框已选项渲染。label 是路径各级节点 label 的字符串数组(非单一字符串);selectedOptions 是路径各级节点完整对象数组"
125
+ },
126
+ "loadData": {
127
+ "type": "function",
128
+ "signature": "(selectedOptions: DefaultOptionType[]) => void",
129
+ "description": "异步加载下一级数据。触发条件:用户展开 isLeaf=false 且无 children 的节点。selectedOptions 为当前展开路径各级节点数组。在回调内修改数据源并通过外部 setState 更新 options(标准模式:setOptions([...options]))"
130
+ },
131
+ "notFoundContent": {
132
+ "type": "ReactNode",
133
+ "description": "options 为空或搜索无匹配时的空状态"
134
+ }
135
+ },
136
+ "do": [
137
+ "用于有明确层级关系的数据选择",
138
+ "数据量较大会延迟加载(loadData)",
139
+ "onChange 内联回调必须显式标注类型参数,避免 noImplicitAny 报错:onChange={(value: (string|number)[]) => ...}"
140
+ ],
141
+ "dont": [
142
+ "层级过深(>5级)导致横向滚动过长",
143
+ "在非层级数据中使用 Cascader(应使用 Select)"
144
+ ],
145
+ "events": {
146
+ "onChange": {
147
+ "signature": "(value: (string | number)[], selectedOptions: DefaultOptionType[]) => void",
148
+ "asyncSupported": false,
149
+ "examples": [
150
+ "基础用法:onChange={(value) => setPath(value)} // value 是路径各级 value 数组,如 ['guangdong', 'guangzhou']",
151
+ "获取完整路径对象:onChange={(value, selectedOptions) => setLabel(selectedOptions.map(o => o.label).join(' / '))}",
152
+ "桥接 string[] 类型:onChange={(value: (string|number)[]) => onPathChange(value as string[])}"
153
+ ],
154
+ "commonMistakes": [
155
+ "内联回调不标注参数类型导致 TS7006 noImplicitAny 报错——必须显式声明 value: (string|number)[]",
156
+ "期望 onChange 在 changeOnSelect=false 时每级展开都触发——只有选到末级(或 changeOnSelect=true 时任意级)才触发",
157
+ "用 value[value.length-1] 取最终叶节点值——这是最后一级的 value,但当 checkable 多选时 value 结构不同(多维数组)"
158
+ ]
159
+ },
160
+ "onDropdownVisibleChange": {
161
+ "signature": "(visible: boolean) => void",
162
+ "asyncSupported": false,
163
+ "examples": [
164
+ "弹出层打开时加载数据:onDropdownVisibleChange={(v) => { if (v && !loaded) fetchOptions(); }}",
165
+ "弹出层关闭时重置搜索:onDropdownVisibleChange={(v) => { if (!v) setSearch(''); }}",
166
+ "受控弹层:onDropdownVisibleChange={(v) => setOpen(v)}"
167
+ ],
168
+ "commonMistakes": [
169
+ "期望 onOpen / onClose 独立回调——Cascader 只有 onDropdownVisibleChange,通过 visible 参数区分",
170
+ "在 onDropdownVisibleChange 里直接 loadData——loadData prop 是每级展开时的异步回调,不是全局弹层回调",
171
+ "visible=false 时立即清空 options——关闭动画期间 Cascader 仍需 options 数据,过早清空会闪烁"
172
+ ]
173
+ }
174
+ },
175
+ "typescriptPitfalls": [
176
+ {
177
+ "issue": "onChange 内联回调参数必须显式标注类型,否则 noImplicitAny 报 TS7006",
178
+ "wrong": "<Cascader onChange={(value) => setV(value)} /> // TS7006: 'value' 参数隐式具有 'any' 类型",
179
+ "right": "<Cascader onChange={(value: (string | number)[]) => setV(value)} />"
180
+ },
181
+ {
182
+ "issue": "业务自有节点类型必须 extends BaseOptionType(含索引签名),否则泛型约束失败",
183
+ "wrong": "interface Region { label: string; value: string; code: string; } // 无索引签名\n<Cascader<Region> options={regions} /> // TS 报错:Region 不满足 BaseOptionType",
184
+ "right": "interface Region extends DefaultOptionType { code: string; } // 继承 DefaultOptionType 或直接继承 BaseOptionType"
185
+ },
186
+ {
187
+ "issue": "DefaultOptionType 的 loading 和 isLeaf 字段不在类型定义中——loadData 场景需扩展类型",
188
+ "wrong": "const node: DefaultOptionType = { label: '北京', value: 'bj', isLeaf: false }; // TS: isLeaf 不在 DefaultOptionType",
189
+ "right": "interface LazyOption extends DefaultOptionType { isLeaf?: boolean; loading?: boolean; }\nconst node: LazyOption = { label: '北京', value: 'bj', isLeaf: false };"
190
+ }
191
+ ],
192
+ "mapping": {
193
+ "realComponent": "Cascader",
194
+ "adapter": null
195
+ }
196
+ }
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react"),l=require("../utils/treeUtil.js"),f=require("../utils/commonUtil.js");function p(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,i.get?i:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const c=p(a),b=(e,n)=>{const t=c.useRef({options:null,info:null});return c.useCallback(()=>(t.current.options!==e&&(t.current.options=e,t.current.info=l.convertDataToEntities(e,{fieldNames:n,initWrapper:r=>({...r,pathKeyEntities:{}}),processEntity:(r,u)=>{const o=r.nodes.map(s=>s[n.value]).join(f.VALUE_SPLIT);u.pathKeyEntities[o]=r,r.key=o}})),t.current.info.pathKeyEntities),[n,e])};exports.default=b;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("react"),f=require("../utils/treeUtil.js"),p=require("../utils/commonUtil.js");function b(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,o.get?o:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const i=b(l),g=(e,n)=>{const t=i.useRef({options:null,info:null});return i.useCallback(()=>(t.current.options!==e&&(t.current.options=e,t.current.info=f.convertDataToEntities(e,{fieldNames:n,initWrapper:r=>({...r,pathKeyEntities:{}}),processEntity:(r,u)=>{const s=u,c=r.nodes.map(a=>a[n.value]).join(p.VALUE_SPLIT);s.pathKeyEntities[c]=r,r.key=c}})),t.current.info.pathKeyEntities),[n,e])};exports.default=g;
2
2
  //# sourceMappingURL=useEntities.js.map
@@ -0,0 +1 @@
1
+ export type { DefaultOptionType, BaseOptionType } from './Cascader';
@@ -15,4 +15,4 @@ export declare function toPathValueStr(pathKey: string): string[];
15
15
  export declare function fillFieldNames(fieldNames?: FieldNames): InternalFieldNames;
16
16
  export declare function isLeaf(option: DefaultOptionType, fieldNames: FieldNames): boolean;
17
17
  export declare function scrollIntoParentView(element: HTMLElement): void;
18
- export declare function getFullPathKeys(options: DefaultOptionType[], fieldNames: FieldNames): any[][];
18
+ export declare function getFullPathKeys(options: DefaultOptionType[], fieldNames: FieldNames): (SingleValueType | undefined)[];
@@ -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
+ }
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const l=require("../_virtual/jsx-runtime.js"),n=require("react"),q=require("../Checkbox/index.js"),L=require("../Label/index.js"),V=require("../HelperText/index.js"),A=require("@paraview/lib"),a=require("../GlobalContext/constant.js");;/* empty css */function N(c){const{label:h="",labelTooltip:i,spacing:m="32px",itemWidth:p,size:u="large",row:g=!0,disabled:x=!1,required:k=!1,error:j=!1,hideErrorDom:R,helperText:_="",id:d="name",list:$,className:C="",onChange:v,style:O}=c,[f,b]=n.useState([]);n.useEffect(()=>{c.defaultValue!==void 0&&b(c.defaultValue)},[]),n.useEffect(()=>{c.value!==void 0&&b(c.value)},[c.value]);const y=e=>(r,t)=>{const s=e[d],o=A.DeepClone(f);if(t)o.push(s);else{const w=o.indexOf(s);o.splice(w,1)}c.value===void 0&&b(o),v&&v(o)},S=()=>{if(h||k){const e=()=>{let r="checkbox-group-label";return i&&i.className&&(r+=` ${i.className}`),r};return l.jsxRuntimeExports.jsx(L.default,{label:h,required:k,...i,className:e()})}},E=(e,r,t)=>{const s={display:"inline-block",...e.style};return m&&g&&t.length!==r+1&&(s.marginRight=m),p&&(s.width=p),s},T=()=>{let e=`${a.$prefixCls}-checkbox-group`;return C&&(e+=` ${C}`),u&&(e+=` ${a.$prefixCls}-checkbox-group-${u}`),j&&(e+=` ${a.$prefixCls}-checkbox-group-error`),x&&(e+=` ${a.$prefixCls}-checkbox-group-disabled`),g?e+=` ${a.$prefixCls}-checkbox-group-row`:e+=` ${a.$prefixCls}-checkbox-group-column`,e};return l.jsxRuntimeExports.jsxs("div",{className:T(),style:O,children:[S(),l.jsxRuntimeExports.jsx("div",{className:"checkbox-group-content",children:$.map((e,r)=>{if(Array.isArray(e))return l.jsxRuntimeExports.jsx("div",{className:"checkbox-group-content-item",children:e.map((s,o)=>l.jsxRuntimeExports.jsx("span",{className:"checkbox-item-box",style:E(s,o,e),children:n.createElement(q.Checkbox,{...s,style:{},checked:f.indexOf(s[d])!==-1,size:u,disabled:!!(x||s.disabled),key:r,onChange:y(s)})},o))},r);const t=e;return l.jsxRuntimeExports.jsx("span",{className:"checkbox-item-box",style:E(t,r,$),children:n.createElement(q.Checkbox,{...t,style:{},checked:f.indexOf(t[d])!==-1,size:u,disabled:!!(x||t.disabled),key:r,onChange:y(t)})},r)})}),l.jsxRuntimeExports.jsx(V.default,{className:"checkbox-group-error-text",error:j,helperText:_,hideErrorDom:R})]})}exports.CheckboxGroup=N;exports.default=N;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const c=require("../_virtual/jsx-runtime.js"),n=require("react"),N=require("../Checkbox/index.js"),L=require("../Label/index.js"),V=require("../HelperText/index.js"),A=require("@snack-kit/lib"),a=require("../GlobalContext/constant.js");;/* empty css */function R(l){const{label:h="",labelTooltip:i,spacing:m="32px",itemWidth:p,size:u="large",row:g=!0,disabled:x=!1,required:k=!1,error:j=!1,hideErrorDom:q,helperText:_="",id:d="name",list:C,className:$="",onChange:v,style:O}=l,[f,b]=n.useState([]);n.useEffect(()=>{l.defaultValue!==void 0&&b(l.defaultValue)},[]),n.useEffect(()=>{l.value!==void 0&&b(l.value)},[l.value]);const y=e=>(t,r)=>{const s=e[d],o=A.DeepClone(f);if(r)o.push(s);else{const w=o.indexOf(s);o.splice(w,1)}l.value===void 0&&b(o),v&&v(o)},S=()=>{if(h||k){const e=()=>{let t="checkbox-group-label";return i&&i.className&&(t+=` ${i.className}`),t};return c.jsxRuntimeExports.jsx(L.default,{label:h,required:k,...i,className:e()})}},E=(e,t,r)=>{const s={display:"inline-block",...e.style};return m&&g&&r.length!==t+1&&(s.marginRight=m),p&&(s.width=p),s},T=()=>{let e=`${a.$prefixCls}-checkbox-group`;return $&&(e+=` ${$}`),u&&(e+=` ${a.$prefixCls}-checkbox-group-${u}`),j&&(e+=` ${a.$prefixCls}-checkbox-group-error`),x&&(e+=` ${a.$prefixCls}-checkbox-group-disabled`),g?e+=` ${a.$prefixCls}-checkbox-group-row`:e+=` ${a.$prefixCls}-checkbox-group-column`,e};return c.jsxRuntimeExports.jsxs("div",{className:T(),style:O,children:[S(),c.jsxRuntimeExports.jsx("div",{className:"checkbox-group-content",children:C.map((e,t)=>{if(Array.isArray(e))return c.jsxRuntimeExports.jsx("div",{className:"checkbox-group-content-item",children:e.map((s,o)=>c.jsxRuntimeExports.jsx("span",{className:"checkbox-item-box",style:E(s,o,e),children:n.createElement(N.Checkbox,{...s,style:{},checked:f.indexOf(s[d])!==-1,size:u,disabled:!!(x||s.disabled),key:t,onChange:y(s)})},o))},t);const r=e;return c.jsxRuntimeExports.jsx("span",{className:"checkbox-item-box",style:E(r,t,C),children:n.createElement(N.Checkbox,{...r,style:{},checked:f.indexOf(r[d])!==-1,size:u,disabled:!!(x||r.disabled),key:t,onChange:y(r)})},t)})}),c.jsxRuntimeExports.jsx(V.default,{className:"checkbox-group-error-text",error:j,helperText:_,hideErrorDom:q})]})}exports.CheckboxGroup=R;exports.default=R;
2
2
  //# sourceMappingURL=index.js.map