@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,168 @@
1
+ {
2
+ "name": "Button",
3
+ "category": "Basic",
4
+ "description": "用于触发用户操作的按钮组件",
5
+ "semantic": {
6
+ "intent": [
7
+ "提交",
8
+ "确认",
9
+ "触发操作",
10
+ "导航"
11
+ ],
12
+ "useCases": [
13
+ "表单提交",
14
+ "弹窗确认",
15
+ "页面主操作",
16
+ "表格操作栏"
17
+ ],
18
+ "riskLevel": "normal"
19
+ },
20
+ "variants": {
21
+ "contained": {
22
+ "meaning": "主要操作,强调引导用户点击",
23
+ "constraints": [
24
+ "一个操作区域通常只放置一个 contained 按钮"
25
+ ]
26
+ },
27
+ "outlined": {
28
+ "meaning": "次要操作,作为一个替代选择"
29
+ },
30
+ "text": {
31
+ "meaning": "最轻量级的操作,通常用于表格行内或辅助位置"
32
+ }
33
+ },
34
+ "modifiers": {
35
+ "danger": {
36
+ "meaning": "高风险操作标识(如删除、重置),与 variant 正交——可与 contained/outlined/text 任一组合",
37
+ "constraints": [
38
+ "建议配合二次确认(如 PopConfirm)使用,但非强制"
39
+ ]
40
+ }
41
+ },
42
+ "states": [
43
+ "default",
44
+ "disabled",
45
+ "loading"
46
+ ],
47
+ "idealProps": {
48
+ "variant": {
49
+ "type": "enum",
50
+ "values": [
51
+ "contained",
52
+ "outlined",
53
+ "text"
54
+ ],
55
+ "default": "contained"
56
+ },
57
+ "size": {
58
+ "type": "enum",
59
+ "values": [
60
+ "small",
61
+ "medium",
62
+ "large"
63
+ ],
64
+ "default": "large",
65
+ "description": "按钮尺寸。**注意:默认 large**(与 antd/MUI 业界惯例 medium 不同——这是 para-ui 的设计选择,DEFECT-003 wont-fix 留设计评审)。如需业界默认尺寸请显式传 size='medium'"
66
+ },
67
+ "loading": {
68
+ "type": "boolean | { delay: number }",
69
+ "default": false,
70
+ "description": "载入状态。loading=true 时按钮显示 loading 图标 + 自动加 disabled 属性(**隐含 disabled,onClick 不触发**)——与 antd/MUI 惯例一致。`loading={delay: ms}`:loading spinner 最短可见时长(delay 毫秒),防止快速请求场景闪烁",
71
+ "behaviorNote": "v5.x DEFECT-001 修复:之前需要 `disabled={loading}` 双写防御,**现在 loading=true 已自动隐含 disabled(onClick 不触发),无需再写 disabled={loading}**——双写不造成 bug 但属于冗余代码。零破坏:src 业务 0 引用此 prop;docs 仅 1 处示例不受影响"
72
+ },
73
+ "disabled": {
74
+ "type": "boolean",
75
+ "default": false
76
+ },
77
+ "danger": {
78
+ "type": "boolean",
79
+ "default": false,
80
+ "description": "危险操作修饰符;与 variant 正交(可与 contained/outlined/text 任一组合)。详见顶层 modifiers.danger"
81
+ },
82
+ "startIcon": {
83
+ "type": "ReactNode",
84
+ "description": "前置图标"
85
+ },
86
+ "endIcon": {
87
+ "type": "ReactNode",
88
+ "description": "后置图标"
89
+ },
90
+ "href": {
91
+ "type": "string",
92
+ "description": "跳转链接,传入此属性时行为类似 a 标签"
93
+ },
94
+ "target": {
95
+ "type": "string",
96
+ "description": "链接打开方式"
97
+ },
98
+ "toolTipTitle": {
99
+ "type": "ReactNode",
100
+ "description": "**hover 悬停提示(最简快捷写法)——仅 disabled=false 时生效**。src 内 toolTipTitle 路径把 Tooltip `disabled={disabled}` 透传,因此按钮禁用时 Tooltip 同时被禁用(tooltip 不显示)。⚠️ Tooltip 相关共有 3 个 prop(toolTipTitle / TooltipProps / disabledTooltip),命名风格不一致 + 职责重叠是已知问题(DEFECT-002,独立 epic 评审中——src 内 134+ 处使用)。**优先级(src 实证)**:① disabled=true + disabledTooltip 有值 → 走 disabledTooltip 路径;② toolTipTitle 非空 → 显示 Tooltip(disabled=false 时);③ TooltipProps 覆盖 toolTipTitle 的 arrow/placement 等样式参数。**结论:disabled 状态的悬停提示必须用 disabledTooltip,toolTipTitle 在 disabled=true 时不显示**。**传 undefined / null / false 时等价于不传,不渲染 Tooltip wrapper,不影响点击区域**"
101
+ },
102
+ "disabledTooltip": {
103
+ "type": "{ title: ReactNode; placement?: string; arrow?: boolean; [key: string]: any }",
104
+ "description": "**disabled=true 时的悬停提示**(toolTipTitle 在 disabled=true 时不生效,需用此 prop)。TooltipProps 核心字段:`title: ReactNode`(必填)/ `placement?`(弹出方向,默认 'top')/ `arrow?: boolean`(箭头)。**最简写法**:`disabledTooltip={{ title: '不可操作原因' }}`"
105
+ },
106
+ "children": {
107
+ "type": "ReactNode",
108
+ "description": "**按钮文案或内容(正式 prop)**。通过 React 标准 children 传入;可传字符串或 ReactNode,与 startIcon/endIcon 可同时使用。ButtonProps extends ButtonOrAnchorAttributes(继承自 React.ButtonHTMLAttributes),children 是标准 React prop——不单独在此处列出不代表不支持"
109
+ }
110
+ },
111
+ "do": [
112
+ "主要操作使用 contained",
113
+ "重要但非主要操作使用 outlined",
114
+ "危险操作必须明确标识(danger 属性)",
115
+ "表单提交场景传 `type='submit'`(默认 `type='button'` 防意外表单提交;Button 通过 restProps 透传 HTML 原生 button 属性,`type='submit'` 会覆盖默认值生效)。⚠️ **type 是 HTML native attribute · 只接受 'button' / 'submit' / 'reset'。若你想用 antd 风格 `type='primary'` · paraui 对应是 `variant='contained'`;若你想 antd `type='default'` · paraui 用 `variant='outlined'`;若 antd `type='danger'` · paraui 用 `danger={true}`(modifier · 与 variant 正交)**",
116
+ "disabled 状态需要悬停提示时用 disabledTooltip(toolTipTitle 在 disabled=true 时不显示)",
117
+ "loading 状态无需额外写 disabled={loading}——loading=true 已自动隐含 disabled(DEFECT-001 修复)",
118
+ "**ButtonProps extends ButtonOrAnchorAttributes**(src/Button/index.tsx:21):所有原生 button/a 属性均可安全透传,TypeScript 严格模式下不会类型报错——`type='submit'` / `name` / `form`(关联 form id)/ `disabled` / `aria-*` 等均可用"
119
+ ],
120
+ "dont": [
121
+ "在同一区域放置过多 contained 按钮",
122
+ "使用 disabled 按钮作为唯一的禁用反馈(应配合 Tooltip 解释原因)",
123
+ "❌ 不要用 `type='primary'` / `type='default'` / `type='danger'`(antd 风格)· paraui 用 `variant='contained'` / `variant='outlined'` / `danger={true}`(modifier 与 variant 正交)",
124
+ "❌ 不要用 `color='primary'`(MUI 风格)· paraui 用 variant + danger 拆分语义"
125
+ ],
126
+ "events": {
127
+ "onClick": {
128
+ "signature": "(event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void",
129
+ "asyncSupported": false,
130
+ "examples": [
131
+ "基本点击处理:onClick={() => handleSubmit()}",
132
+ "需要阻止冒泡:onClick={(e) => { e.stopPropagation(); doAction(); }}",
133
+ "loading 状态下 onClick 不触发(已自动隐含 disabled):无需 onClick 里手动判断 isLoading"
134
+ ],
135
+ "commonMistakes": [
136
+ "loading=true 时期望 onClick 还触发——loading 自动隐含 disabled,onClick 被屏蔽;无需再写 disabled={loading}",
137
+ "disabled=true 时用 toolTipTitle 做禁用提示——disabled 状态下 toolTipTitle 不显示;需改用 disabledTooltip prop",
138
+ "在 href 模式(传了 href)下期望 onClick 阻止跳转——渲染为 <a>,onClick 里需 e.preventDefault() 才能阻止"
139
+ ]
140
+ }
141
+ },
142
+ "typescriptPitfalls": [
143
+ {
144
+ "issue": "variant 不是 antd 的 type,不接受 'primary'/'default'/'danger',只接受 'contained'/'outlined'/'text'",
145
+ "wrong": "// antd 风格:\n<Button type='primary'>提交</Button> // 这里 type 是 HTML button type,不是样式!",
146
+ "right": "// para-ui 风格:\n<Button variant='contained'>提交</Button> // 主要操作用 contained\n<Button variant='outlined'>取消</Button> // 次要操作用 outlined\n<Button danger>删除</Button> // 危险操作加 danger modifier"
147
+ },
148
+ {
149
+ "issue": "type prop 是 HTML 原生 button type('button'|'submit'|'reset'),不是样式 variant",
150
+ "wrong": "<Button type='primary'>提交</Button> // TypeScript 报错:'primary' 不在 'button'|'submit'|'reset' 联合类型",
151
+ "right": "<Button variant='contained' type='submit'>提交</Button> // type 只管 form 提交行为,默认 'button'"
152
+ },
153
+ {
154
+ "issue": "loading 的对象形式需要传 { delay: number },不能传其他结构",
155
+ "wrong": "loading={{ duration: 300 }} // TS 类型报错:对象形式只接受 { delay: number }",
156
+ "right": "loading={{ delay: 300 }} // delay 是 loading spinner 最短可见毫秒数"
157
+ },
158
+ {
159
+ "issue": "disabledTooltip 的 title 字段必填,TooltipProps 的 disabled 字段含义是'禁用 tooltip 本身'——不要传 disabled",
160
+ "wrong": "disabledTooltip={{ disabled: true, title: '...' }} // disabled 是 Tooltip 的开关,传 true 反而不显示",
161
+ "right": "disabledTooltip={{ title: '不可操作原因' }} // 只需 title,Button disabled=true 时自动触发"
162
+ }
163
+ ],
164
+ "mapping": {
165
+ "realComponent": "Button",
166
+ "adapter": null
167
+ }
168
+ }
@@ -11,32 +11,32 @@ const z = (b) => {
11
11
  variant: N = "contained",
12
12
  size: T = "large",
13
13
  className: p,
14
- disabled: o = !1,
15
- children: r,
14
+ disabled: s = !1,
15
+ children: l,
16
16
  startIcon: e,
17
- endIcon: s,
18
- loading: i = !1,
17
+ endIcon: o,
18
+ loading: c = !1,
19
19
  toolTipTitle: x = "",
20
20
  TooltipProps: B,
21
21
  danger: L = !1,
22
22
  href: h,
23
23
  target: j,
24
- disabledTooltip: l,
24
+ disabledTooltip: a,
25
25
  ...f
26
- } = b, [c, m] = y(!1), d = "href" in b, a = () => P(
26
+ } = b, [r, m] = y(!1), d = "href" in b, i = () => P(
27
27
  `${n}-button`,
28
28
  p,
29
29
  `${n}-button-${N}`,
30
30
  `${n}-button-${T}`,
31
- c && `${n}-button-loading`,
32
- L && !o && `${n}-button-dangerous`,
31
+ r && `${n}-button-loading`,
32
+ L && !s && `${n}-button-dangerous`,
33
33
  d && `${n}-button-link`,
34
- d && o && `${n}-button-link-disabled`
34
+ d && s && `${n}-button-link-disabled`
35
35
  ), u = (k) => {
36
- if (!c)
37
- return k === "start" && e ? /* @__PURE__ */ t.jsx("span", { className: "button-icon", children: e }) : k === "end" && s ? /* @__PURE__ */ t.jsx("span", { className: "button-icon button-icon-end", children: s }) : null;
38
- if (typeof i == "object") {
39
- const v = i.delay || 0;
36
+ if (!r)
37
+ return k === "start" && e ? /* @__PURE__ */ t.jsx("span", { className: "button-icon", children: e }) : k === "end" && o ? /* @__PURE__ */ t.jsx("span", { className: "button-icon button-icon-end", children: o }) : null;
38
+ if (typeof c == "object") {
39
+ const v = c.delay || 0;
40
40
  setTimeout(() => m(!1), v);
41
41
  }
42
42
  return k === "start" ? /* @__PURE__ */ t.jsx("span", { className: "button-icon button-icon-loading", children: /* @__PURE__ */ t.jsx(C, {}) }) : null;
@@ -46,34 +46,34 @@ const z = (b) => {
46
46
  ...f,
47
47
  href: h,
48
48
  target: j,
49
- className: a(),
49
+ className: i(),
50
50
  children: [
51
51
  u("start"),
52
- r && /* @__PURE__ */ t.jsx("span", { className: "button-label", children: r }),
52
+ l && /* @__PURE__ */ t.jsx("span", { className: "button-label", children: l }),
53
53
  u("end")
54
54
  ]
55
55
  }
56
56
  ) : /* @__PURE__ */ t.jsxs(
57
57
  "button",
58
58
  {
59
- disabled: o,
59
+ disabled: s || r,
60
60
  type: "button",
61
- className: a(),
61
+ className: i(),
62
62
  ...f,
63
63
  children: [
64
64
  u("start"),
65
- r && /* @__PURE__ */ t.jsx("span", { className: "button-label", children: r }),
65
+ l && /* @__PURE__ */ t.jsx("span", { className: "button-label", children: l }),
66
66
  u("end")
67
67
  ]
68
68
  }
69
69
  );
70
70
  return I(() => {
71
- m(!!i);
72
- }, [i]), o && l ? /* @__PURE__ */ t.jsx(
71
+ m(!!c);
72
+ }, [c]), s && a ? /* @__PURE__ */ t.jsx(
73
73
  g,
74
74
  {
75
75
  disabled: !0,
76
- ...l,
76
+ ...a,
77
77
  children: /* @__PURE__ */ t.jsx("span", { className: `${n}-button--disabled`, children: $() })
78
78
  }
79
79
  ) : x ? /* @__PURE__ */ t.jsx(
@@ -82,9 +82,9 @@ const z = (b) => {
82
82
  arrow: !1,
83
83
  placement: "bottomLeft",
84
84
  ...B,
85
- disabled: o,
85
+ disabled: s,
86
86
  title: x,
87
- children: o ? /* @__PURE__ */ t.jsx("span", { className: `${n}-button--disabled`, children: $() }) : $()
87
+ children: s ? /* @__PURE__ */ t.jsx("span", { className: `${n}-button--disabled`, children: $() }) : $()
88
88
  }
89
89
  ) : $();
90
90
  }, E = (b) => {
@@ -92,33 +92,33 @@ const z = (b) => {
92
92
  variant: N = "contained",
93
93
  size: T = "large",
94
94
  toolTipTitle: p = "",
95
- children: o,
96
- className: r,
95
+ children: s,
96
+ className: l,
97
97
  disabled: e = !1,
98
- loading: s = !1,
99
- TooltipProps: i,
98
+ loading: o = !1,
99
+ TooltipProps: c,
100
100
  danger: x = !1,
101
101
  href: B,
102
102
  target: L,
103
103
  disabledTooltip: h,
104
104
  ...j
105
- } = b, [l, f] = y(!1), c = "href" in b, m = () => P(
105
+ } = b, [a, f] = y(!1), r = "href" in b, m = () => P(
106
106
  `${n}-button ${n}-icon-button`,
107
- r,
107
+ l,
108
108
  `${n}-icon-button-${N}`,
109
109
  `${n}-icon-button-${T}`,
110
- l && `${n}-icon-button-loading`,
110
+ a && `${n}-icon-button-loading`,
111
111
  x && !e && `${n}-icon-button-dangerous`,
112
- c && `${n}-button-link`,
113
- c && e && `${n}-button-link-disabled`
112
+ r && `${n}-button-link`,
113
+ r && e && `${n}-button-link-disabled`
114
114
  ), d = () => {
115
- if (!l) return o;
116
- if (typeof s == "object") {
117
- const u = s.delay || 0;
115
+ if (!a) return s;
116
+ if (typeof o == "object") {
117
+ const u = o.delay || 0;
118
118
  setTimeout(() => f(!1), u);
119
119
  }
120
120
  return /* @__PURE__ */ t.jsx("span", { className: "button-loading-icon", children: /* @__PURE__ */ t.jsx(C, {}) });
121
- }, a = () => c ? /* @__PURE__ */ t.jsx(
121
+ }, i = () => r ? /* @__PURE__ */ t.jsx(
122
122
  "a",
123
123
  {
124
124
  ...j,
@@ -131,33 +131,33 @@ const z = (b) => {
131
131
  "button",
132
132
  {
133
133
  ...j,
134
- disabled: e,
134
+ disabled: e || a,
135
135
  type: "button",
136
136
  className: m(),
137
137
  children: d()
138
138
  }
139
139
  );
140
140
  return I(() => {
141
- f(!!s);
142
- }, [s]), e && h ? /* @__PURE__ */ t.jsx(
141
+ f(!!o);
142
+ }, [o]), e && h ? /* @__PURE__ */ t.jsx(
143
143
  g,
144
144
  {
145
145
  disabled: !0,
146
146
  ...h,
147
- children: /* @__PURE__ */ t.jsx("span", { className: `${n}-button--disabled`, children: a() })
147
+ children: /* @__PURE__ */ t.jsx("span", { className: `${n}-button--disabled`, children: i() })
148
148
  }
149
149
  ) : p ? /* @__PURE__ */ t.jsx(
150
150
  g,
151
151
  {
152
152
  arrow: !1,
153
153
  placement: "bottomLeft",
154
- ...i,
154
+ ...c,
155
155
  disabled: e,
156
156
  title: p,
157
- children: e ? /* @__PURE__ */ t.jsx("span", { className: `${n}-button--disabled`, children: a() }) : a()
157
+ children: e ? /* @__PURE__ */ t.jsx("span", { className: `${n}-button--disabled`, children: i() }) : i()
158
158
  },
159
- +l
160
- ) : a();
159
+ +a
160
+ ) : i();
161
161
  }, S = z;
162
162
  S.IconButton = E;
163
163
  S.SplitButton = w;
@@ -0,0 +1,132 @@
1
+ {
2
+ "name": "ButtonGroup",
3
+ "category": "General",
4
+ "description": "按钮组,将多个按钮组合在一起",
5
+ "semantic": {
6
+ "intent": [
7
+ "操作分组",
8
+ "互斥选择"
9
+ ],
10
+ "useCases": [
11
+ "视图切换",
12
+ "格式化工具栏",
13
+ "分段控制"
14
+ ],
15
+ "riskLevel": "low"
16
+ },
17
+ "variants": {
18
+ "icon": {
19
+ "meaning": "图标模式"
20
+ },
21
+ "iconSplit": {
22
+ "meaning": "图标分割模式"
23
+ },
24
+ "text": {
25
+ "meaning": "文本模式"
26
+ }
27
+ },
28
+ "states": [
29
+ "default",
30
+ "disabled"
31
+ ],
32
+ "idealProps": {
33
+ "data": {
34
+ "type": "ButtonItem[]",
35
+ "itemSchema": {
36
+ "icon": { "type": "ReactNode", "description": "按钮图标" },
37
+ "text": { "type": "ReactNode", "description": "按钮文本(icon/iconSplit 模式下仅作 tooltip 默认值;text 模式下为显示文字)" },
38
+ "disabled": { "type": "boolean", "description": "单项禁用(覆盖组件级 disabled)" },
39
+ "toolTipTitle": { "type": "ReactNode", "description": "该项 tooltip 文案(优先级高于 text)" },
40
+ "variant": { "type": "'contained' | 'outlined' | 'text'", "description": "继承自 ButtonProps,text 模式下用于标识激活态" }
41
+ },
42
+ "description": "按钮组数据数组,每项 ButtonItem extends ButtonProps(来自 src/Button — 可用 variant / size / loading / type 等全部 Button 字段),额外含 ButtonGroup 专用字段 icon? / text? / toolTipTitle? + 索引签名透传业务字段;src/ButtonGroup/index.tsx:15。**text 字段双语义**:icon/iconSplit 模式下 text 仅作 tooltip 默认值(不显示为按钮文字),text 模式下 text 才是按钮显示文字。**ButtonItem.value 字段冲突**:继承自 Button 类型为 `string | number | readonly string[] | undefined`,**不是单纯 string** — 业务标识请用 viewId / actionKey / menuKey 等独有名避免 tsc 报错(R22 ButtonGroup-004 实证)。**data[].disabled** 是单项独立覆盖字段(boolean,非字符串)"
43
+ },
44
+ "mode": {
45
+ "type": "enum",
46
+ "values": [
47
+ "icon",
48
+ "iconSplit",
49
+ "text"
50
+ ],
51
+ "default": "icon",
52
+ "description": "按钮组模式(icon=纯图标 / iconSplit=分割可见 / text=纯文字)。**text 模式下 variant 切换有效**:variant='contained' 实心高亮 / variant='outlined' 描边弱化 — 配合外部 activeKey state 实现 tabs 视觉切换(组件无内置 active 状态)"
53
+ },
54
+ "layout": {
55
+ "type": "enum",
56
+ "values": [
57
+ "horizontal",
58
+ "vertical"
59
+ ],
60
+ "default": "horizontal",
61
+ "description": "布局方向"
62
+ },
63
+ "showToolTip": {
64
+ "type": "boolean",
65
+ "default": "false",
66
+ "description": "对每按钮显示 tooltip,未设 toolTipTitle 时自动用 text 作为提示;单项 toolTipTitle 优先级高于此自动逻辑"
67
+ },
68
+ "showIcon": {
69
+ "type": "boolean",
70
+ "default": "false",
71
+ "description": "text 模式下文字前显示 icon(icon/iconSplit 模式无效)"
72
+ },
73
+ "disabled": {
74
+ "type": "boolean",
75
+ "default": "false",
76
+ "description": "整组禁用;单项可通过 data[].disabled(**boolean,不是字符串 'true'**)单独覆盖;src/ButtonGroup/index.tsx:88 单项若未设则继承顶层"
77
+ },
78
+ "onClick": {
79
+ "type": "(item: ButtonItem, event?: React.MouseEvent) => void",
80
+ "description": "点击回调;**item 是被点击的整个 ButtonItem 对象**(含 data 项里的所有自定义字段,如业务 id / viewId 等)— 推荐做法:在 data 每项上挂 value / viewId 等业务字段,onClick 内 item.viewId 直取(不必维护 index → 业务 id 的映射)"
81
+ }
82
+ },
83
+ "do": [
84
+ "用于互斥或相关操作的分组",
85
+ "保持按钮数量适中(2-5)",
86
+ "在 data 每项透传业务字段(如 value / viewId / actionKey),onClick 内 item.业务字段 取值"
87
+ ],
88
+ "dont": [
89
+ "ButtonGroup 内放置不相关的操作",
90
+ "按钮过多导致布局拥挤",
91
+ "把 data[].disabled 传字符串 'true'(必须 boolean — runtime 行为不可信)",
92
+ "假设 ButtonGroup 有内置 active/selected 状态(无此 prop — tabs 切换需外部 state 维护 activeKey,根据 activeKey 在 data 项里切 variant: 'contained' | 'outlined')",
93
+ "把业务标识透传到 ButtonItem.value 字段(value 继承自 Button 是宽类型 `string | number | readonly string[] | undefined` — tsc 会报错;业务标识用 viewId / actionKey / menuKey 等独有名)"
94
+ ],
95
+ "events": {
96
+ "onClick": {
97
+ "signature": "(item: ButtonItem, event?: React.MouseEvent) => void",
98
+ "asyncSupported": false,
99
+ "examples": [
100
+ "通用点击入口:onClick={(item) => dispatch({ type: item.actionKey })}",
101
+ "获取被点击项的业务标识:onClick={(item) => navigate(item.viewId)}",
102
+ "需要事件对象:onClick={(item, event) => { event?.stopPropagation(); handleItem(item); }}"
103
+ ],
104
+ "commonMistakes": [
105
+ "期望 item 只是 index 或 key——item 是被点击的完整 ButtonItem 对象,含 data[] 中该项的所有字段",
106
+ "在 data 里用 ButtonItem.value 存业务 id——value 继承自 Button 是宽类型 string|number|readonly string[]|undefined,建议用 viewId/actionKey 等独有字段名",
107
+ "event 参数是可选的(签名 event?),回调内直接访问 event.target 前需检查 event 非 undefined"
108
+ ]
109
+ }
110
+ },
111
+ "typescriptPitfalls": [
112
+ {
113
+ "issue": "ButtonItem 继承自 ButtonProps,value 字段类型是 string|number|readonly string[]|undefined,不是单纯 string",
114
+ "wrong": "const items: ButtonItem[] = [{ icon: <Icon/>, text: '编辑', value: 'edit' }];\n// onClick 中:const id: string = item.value; // TS 报错:不可分配给 string",
115
+ "right": "// 使用自定义字段名避免冲突\nconst items: ButtonItem[] = [{ icon: <Icon/>, text: '编辑', actionKey: 'edit' }];\n// onClick 中:const key = (item as any).actionKey;"
116
+ },
117
+ {
118
+ "issue": "ButtonGroup 没有内置 active/selected 状态,需要外部 state 维护并通过 variant 切换视觉",
119
+ "wrong": "// 期望有 activeKey prop 自动高亮\n<ButtonGroup data={tabs} activeKey='tab1' /> // activeKey 不在 ButtonGroupProps,静默失效",
120
+ "right": "// 外部维护 activeKey,按需设置 variant\nconst [active, setActive] = useState('tab1');\n<ButtonGroup\n mode='text'\n data={tabs.map(t => ({ ...t, variant: t.id === active ? 'contained' : 'outlined' }))}\n onClick={(item) => setActive((item as any).id)}\n/>"
121
+ },
122
+ {
123
+ "issue": "data[].disabled 必须是 boolean,不能是字符串 'true',因为 ButtonGroup src 用 typeof _disabled === 'undefined' 做判断",
124
+ "wrong": "const items: ButtonItem[] = [{ text: '删除', disabled: 'true' as any }]; // 字符串 'true' 是 truthy,不是 boolean true",
125
+ "right": "const items: ButtonItem[] = [{ text: '删除', disabled: true }]; // 明确传 boolean"
126
+ }
127
+ ],
128
+ "mapping": {
129
+ "realComponent": "ButtonGroup",
130
+ "adapter": null
131
+ }
132
+ }
@@ -5,7 +5,7 @@ export interface ButtonItem extends ButtonProps {
5
5
  icon?: ReactNode;
6
6
  /** 文本*/
7
7
  text?: ReactNode;
8
- [key: string]: any;
8
+ [key: string]: unknown;
9
9
  }
10
10
  export interface ButtonGroupProps {
11
11
  /** 按钮组模式 */