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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (565) hide show
  1. package/AGENTS.md +315 -0
  2. package/AlignBox/component.json +89 -0
  3. package/Anchor/component.json +130 -0
  4. package/Argv/component.json +216 -0
  5. package/AutoBox/component.json +133 -0
  6. package/AutoButton/component.json +109 -0
  7. package/AutoTips/component.json +121 -0
  8. package/Badge/component.json +92 -0
  9. package/Breadcrumbs/component.json +142 -0
  10. package/Button/component.json +168 -0
  11. package/ButtonGroup/component.json +132 -0
  12. package/Card/component.json +162 -0
  13. package/Carousel/component.json +142 -0
  14. package/Cascader/component.json +196 -0
  15. package/Checkbox/component.json +138 -0
  16. package/CheckboxGroup/component.json +152 -0
  17. package/CodeEditor/component.json +189 -0
  18. package/Collapse/component.json +166 -0
  19. package/CollapseBox/component.json +84 -0
  20. package/CollapseLayout/component.json +155 -0
  21. package/ColorPicker/component.json +142 -0
  22. package/ComboSelect/component.json +181 -0
  23. package/Container/component.json +111 -0
  24. package/ContentBox/component.json +81 -0
  25. package/CopyText/component.json +118 -0
  26. package/CycleSelector/component.json +98 -0
  27. package/DatePicker/component.json +192 -0
  28. package/Descriptions/component.json +142 -0
  29. package/Desktop/component.json +171 -0
  30. package/DragVerify/component.json +114 -0
  31. package/Drawer/component.json +200 -0
  32. package/Dropdown/component.json +147 -0
  33. package/DynamicMultiBox/component.json +278 -0
  34. package/Empty/component.json +123 -0
  35. package/FieldForm/component.json +196 -0
  36. package/Form/component.json +161 -0
  37. package/FormItem/component.json +171 -0
  38. package/FunctionModal/component.json +197 -0
  39. package/Help/component.json +118 -0
  40. package/HelperText/component.json +126 -0
  41. package/Image/component.json +165 -0
  42. package/InputCode/component.json +191 -0
  43. package/InputLang/component.json +205 -0
  44. package/InputNumber/component.json +162 -0
  45. package/Label/component.json +126 -0
  46. package/Loading/component.json +91 -0
  47. package/Menu/component.json +180 -0
  48. package/Message/component.json +246 -0
  49. package/Modal/component.json +277 -0
  50. package/MultiBox/component.json +216 -0
  51. package/Notification/component.json +184 -0
  52. package/OperateBtn/component.json +134 -0
  53. package/PageHeader/component.json +112 -0
  54. package/Pagination/component.json +181 -0
  55. package/PasswordRules/component.json +105 -0
  56. package/PopConfirm/component.json +227 -0
  57. package/PopMenu/component.json +131 -0
  58. package/Popover/component.json +165 -0
  59. package/Progress/component.json +161 -0
  60. package/Prompt/component.json +144 -0
  61. package/Querying/component.json +96 -0
  62. package/QuickReply/component.json +129 -0
  63. package/Radio/component.json +136 -0
  64. package/RadioGroup/component.json +149 -0
  65. package/RangeInput/component.json +198 -0
  66. package/Result/component.json +104 -0
  67. package/ScrollBar/component.json +115 -0
  68. package/Search/component.json +177 -0
  69. package/Select/component.json +244 -0
  70. package/SelectInput/component.json +184 -0
  71. package/Selector/component.json +203 -0
  72. package/SelectorPicker/component.json +179 -0
  73. package/SingleBox/component.json +151 -0
  74. package/Slider/component.json +181 -0
  75. package/SortBox/component.json +108 -0
  76. package/Status/component.json +104 -0
  77. package/Stepper/component.json +129 -0
  78. package/Switch/component.json +207 -0
  79. package/Table/component.json +547 -0
  80. package/Tabs/component.json +227 -0
  81. package/Tag/component.json +221 -0
  82. package/TextEditor/component.json +186 -0
  83. package/TextField/component.json +290 -0
  84. package/TimePicker/component.json +176 -0
  85. package/Timeline/component.json +110 -0
  86. package/Title/component.json +156 -0
  87. package/ToggleButton/component.json +153 -0
  88. package/Tooltip/component.json +176 -0
  89. package/Transfer/component.json +157 -0
  90. package/Tree/component.json +512 -0
  91. package/Upload/component.json +450 -0
  92. package/ai-workflows/01-crud-list-multi-drawer.md +278 -0
  93. package/ai-workflows/02-rbac-operation-buttons.md +290 -0
  94. package/ai-workflows/03-complex-form-async-cascade.md +350 -0
  95. package/ai-workflows/04-array-field-form.md +281 -0
  96. package/ai-workflows/05-popconfirm-async-message-queue.md +333 -0
  97. package/ai-workflows/06-modal-drawer-form-workflow.md +385 -0
  98. package/ai-workflows/07-search-filter-table-trio.md +387 -0
  99. package/ai-workflows/08-table-advanced-features.md +365 -0
  100. package/ai-workflows/09-batch-operation-export-progress.md +367 -0
  101. package/ai-workflows/10-cross-component-state-coordination.md +412 -0
  102. package/codemods/modal-onCancel-to-onDismiss.js +69 -0
  103. package/es/AlignBox/component.json +89 -0
  104. package/es/AlignBox/index.css +1 -1
  105. package/es/AlignBox/index.d.ts +6 -2
  106. package/es/AlignBox/index.js +1 -1
  107. package/es/AlignBox/style/index.css +1 -1
  108. package/es/Anchor/anchorMenu/index.d.ts +2 -1
  109. package/es/Anchor/anchorMenu/index.js +36 -33
  110. package/es/Anchor/component.json +130 -0
  111. package/es/Anchor/index.js +50 -47
  112. package/es/Anchor/type.d.ts +8 -4
  113. package/es/Argv/component.json +216 -0
  114. package/es/Argv/index.d.ts +5 -6
  115. package/es/AutoBox/component.json +133 -0
  116. package/es/AutoBox/index.d.ts +3 -3
  117. package/es/AutoBox/index.js +1 -1
  118. package/es/AutoBox/protal.d.ts +2 -2
  119. package/es/AutoBox/protal.js +32 -29
  120. package/es/AutoButton/component.json +109 -0
  121. package/es/AutoButton/index.js +1 -1
  122. package/es/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  123. package/es/AutoTips/autoTipsMultiline/index.js +1 -1
  124. package/es/AutoTips/component.json +121 -0
  125. package/es/Badge/component.json +92 -0
  126. package/es/Breadcrumbs/component.json +142 -0
  127. package/es/Breadcrumbs/index.js +1 -1
  128. package/es/Button/SplitButton.d.ts +2 -2
  129. package/es/Button/component.json +168 -0
  130. package/es/Button/index.js +44 -44
  131. package/es/ButtonGroup/component.json +132 -0
  132. package/es/ButtonGroup/index.d.ts +1 -1
  133. package/es/Card/component.json +162 -0
  134. package/es/Card/index.d.ts +2 -2
  135. package/es/Card/index.js +2 -2
  136. package/es/Carousel/component.json +142 -0
  137. package/es/Carousel/index.d.ts +1 -1
  138. package/es/Cascader/Cascader.js +188 -180
  139. package/es/Cascader/component.json +196 -0
  140. package/es/Cascader/hooks/useEntities.js +7 -7
  141. package/es/Cascader/interface.d.ts +1 -0
  142. package/es/Cascader/utils/commonUtil.d.ts +1 -1
  143. package/es/Cascader/utils/commonUtil.js +16 -16
  144. package/es/Cascader/utils/treeUtil.d.ts +14 -5
  145. package/es/Cascader/utils/treeUtil.js +1 -1
  146. package/es/Checkbox/component.json +138 -0
  147. package/es/CheckboxGroup/component.json +152 -0
  148. package/es/CodeEditor/component.json +189 -0
  149. package/es/CodeEditor/index.d.ts +10 -9
  150. package/es/Collapse/component.json +166 -0
  151. package/es/Collapse/index.d.ts +1 -1
  152. package/es/Collapse/index.js +41 -33
  153. package/es/CollapseBox/component.json +84 -0
  154. package/es/CollapseLayout/component.json +155 -0
  155. package/es/ColorPicker/component.json +142 -0
  156. package/es/ComboSelect/component.json +181 -0
  157. package/es/ComboSelect/index.js +299 -287
  158. package/es/ComboSelect/interface.d.ts +6 -3
  159. package/es/ComboSelect/utils.d.ts +3 -3
  160. package/es/ComboSelect/utils.js +1 -1
  161. package/es/Container/component.json +111 -0
  162. package/es/ContentBox/component.json +81 -0
  163. package/es/CopyText/component.json +118 -0
  164. package/es/CycleSelector/component.json +98 -0
  165. package/es/CycleSelector/index.js +14 -13
  166. package/es/DatePicker/component.json +192 -0
  167. package/es/DatePicker/generatePicker/generateRangePicker.d.ts +0 -8
  168. package/es/DatePicker/generatePicker/generateRangePicker.js +73 -65
  169. package/es/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  170. package/es/DatePicker/generatePicker/index.d.ts +11 -4
  171. package/es/Descriptions/component.json +142 -0
  172. package/es/Descriptions/index.d.ts +1 -1
  173. package/es/Desktop/component.json +171 -0
  174. package/es/DragVerify/component.json +114 -0
  175. package/es/DragVerify/index.js +19 -19
  176. package/es/Drawer/component.json +200 -0
  177. package/es/Drawer/index.js +86 -86
  178. package/es/Drawer/interface.d.ts +1 -1
  179. package/es/Drawer/util.d.ts +1 -6
  180. package/es/Drawer/util.js +9 -6
  181. package/es/Dropdown/component.json +147 -0
  182. package/es/DynamicMultiBox/component.json +278 -0
  183. package/es/DynamicMultiBox/formItem.d.ts +1 -1
  184. package/es/DynamicMultiBox/rowForm.d.ts +2 -2
  185. package/es/Empty/component.json +123 -0
  186. package/es/Empty/index.css +1 -1
  187. package/es/Empty/index.d.ts +2 -2
  188. package/es/Empty/index.js +27 -26
  189. package/es/Empty/style/index.css +1 -1
  190. package/es/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  191. package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
  192. package/es/FieldForm/Form.d.ts +2 -2
  193. package/es/FieldForm/FormList.d.ts +2 -2
  194. package/es/FieldForm/component.json +196 -0
  195. package/es/FieldForm/context.d.ts +5 -1
  196. package/es/FieldForm/context.js +2 -2
  197. package/es/FieldForm/hooks/useForm.d.ts +4 -3
  198. package/es/FieldForm/hooks/useFormInstance.d.ts +1 -1
  199. package/es/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  200. package/es/FieldForm/hooks/useFormItemStatus.js +2 -2
  201. package/es/FieldForm/hooks/useItemRef.d.ts +1 -1
  202. package/es/FieldForm/hooks/useItemRef.js +6 -6
  203. package/es/Form/component.json +161 -0
  204. package/es/Form/index.d.ts +52 -49
  205. package/es/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  206. package/es/FormItem/compoments/defaultCompoments/index.js +12 -11
  207. package/es/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  208. package/es/FormItem/compoments/formFile/index.js +8 -8
  209. package/es/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  210. package/es/FormItem/compoments/formSelect/index.d.ts +1 -1
  211. package/es/FormItem/component.json +171 -0
  212. package/es/FormItem/index.d.ts +5 -5
  213. package/es/FormItem/index.js +23 -23
  214. package/es/FormItem/itemType.js +1 -1
  215. package/es/FunctionModal/component.json +197 -0
  216. package/es/FunctionModal/dialog.d.ts +1 -1
  217. package/es/FunctionModal/modalContext.d.ts +4 -1
  218. package/es/Help/component.json +118 -0
  219. package/es/HelperText/component.json +126 -0
  220. package/es/Image/component.json +165 -0
  221. package/es/InputCode/component.json +191 -0
  222. package/es/InputCode/index.d.ts +2 -2
  223. package/es/InputLang/component.json +205 -0
  224. package/es/InputLang/index.js +1 -1
  225. package/es/InputNumber/component.json +162 -0
  226. package/es/Label/component.json +126 -0
  227. package/es/Label/index.d.ts +2 -2
  228. package/es/Loading/component.json +91 -0
  229. package/es/Menu/component.json +180 -0
  230. package/es/Message/component.json +246 -0
  231. package/es/Message/index.d.ts +2 -2
  232. package/es/Message/index.js +2 -2
  233. package/es/Modal/Confirm/index.d.ts +1 -1
  234. package/es/Modal/Confirm/index.js +81 -75
  235. package/es/Modal/component.json +277 -0
  236. package/es/Modal/index.d.ts +97 -6
  237. package/es/Modal/index.js +174 -122
  238. package/es/Modal/interface.d.ts +1 -0
  239. package/es/MultiBox/component.json +216 -0
  240. package/es/MultiBox/index.js +19 -14
  241. package/es/Notification/component.json +184 -0
  242. package/es/OperateBtn/component.json +134 -0
  243. package/es/OperateBtn/index.d.ts +3 -3
  244. package/es/PageHeader/component.json +112 -0
  245. package/es/Pagination/component.json +181 -0
  246. package/es/Pagination/index.js +15 -15
  247. package/es/PasswordRules/component.json +105 -0
  248. package/es/PasswordRules/index.d.ts +4 -4
  249. package/es/PopConfirm/component.json +227 -0
  250. package/es/PopConfirm/index.d.ts +1 -1
  251. package/es/PopConfirm/index.js +1 -1
  252. package/es/PopMenu/component.json +131 -0
  253. package/es/PopMenu/hooks.d.ts +1 -1
  254. package/es/PopMenu/index.js +8 -8
  255. package/es/Popover/component.json +165 -0
  256. package/es/Popover/index.js +1 -1
  257. package/es/Progress/component.json +161 -0
  258. package/es/Prompt/component.json +144 -0
  259. package/es/Querying/component.json +96 -0
  260. package/es/Querying/index.css +1 -1
  261. package/es/Querying/index.d.ts +2 -2
  262. package/es/Querying/index.js +20 -19
  263. package/es/Querying/style/index.css +1 -1
  264. package/es/QuickReply/component.json +129 -0
  265. package/es/QuickReply/index.d.ts +1 -1
  266. package/es/Radio/component.json +136 -0
  267. package/es/RadioGroup/component.json +149 -0
  268. package/es/RangeInput/component.json +198 -0
  269. package/es/RangeInput/index.js +1 -1
  270. package/es/Result/component.json +104 -0
  271. package/es/ScrollBar/component.json +115 -0
  272. package/es/Search/component.json +177 -0
  273. package/es/Search/index.d.ts +1 -1
  274. package/es/Select/component.json +244 -0
  275. package/es/Select/index.js +113 -113
  276. package/es/SelectInput/component.json +184 -0
  277. package/es/Selector/component.json +203 -0
  278. package/es/Selector/index.js +28 -27
  279. package/es/Selector/interface.d.ts +1 -1
  280. package/es/Selector/selectorMain/index.js +2 -2
  281. package/es/Selector/selectorNode/index.js +1 -1
  282. package/es/Selector/util.d.ts +2 -2
  283. package/es/SelectorPicker/component.json +179 -0
  284. package/es/SelectorPicker/index.d.ts +5 -5
  285. package/es/SelectorPicker/index.js +15 -15
  286. package/es/SingleBox/component.json +151 -0
  287. package/es/SingleBox/index.d.ts +2 -2
  288. package/es/Slider/component.json +181 -0
  289. package/es/SortBox/component.json +108 -0
  290. package/es/Status/component.json +104 -0
  291. package/es/Stepper/component.json +129 -0
  292. package/es/Stepper/index.d.ts +2 -2
  293. package/es/Switch/component.json +207 -0
  294. package/es/Switch/index.css +1 -1
  295. package/es/Switch/index.d.ts +3 -2
  296. package/es/Switch/index.js +60 -59
  297. package/es/Switch/style/index.css +1 -1
  298. package/es/Table/component.json +547 -0
  299. package/es/Table/index.d.ts +2 -2
  300. package/es/Table/index.js +414 -414
  301. package/es/Table/interface.d.ts +6 -0
  302. package/es/Tabs/component.json +227 -0
  303. package/es/Tag/component.json +221 -0
  304. package/es/Tag/index.css +1 -1
  305. package/es/Tag/index.d.ts +1 -1
  306. package/es/Tag/index.js +20 -20
  307. package/es/Tag/style/index.css +1 -1
  308. package/es/TextEditor/component.json +186 -0
  309. package/es/TextEditor/index.d.ts +5 -5
  310. package/es/TextField/component.json +290 -0
  311. package/es/TextField/index.d.ts +2 -2
  312. package/es/TimePicker/component.json +176 -0
  313. package/es/Timeline/component.json +110 -0
  314. package/es/Title/component.json +156 -0
  315. package/es/ToggleButton/component.json +153 -0
  316. package/es/Tooltip/component.json +176 -0
  317. package/es/Tooltip/index.js +74 -63
  318. package/es/Tooltip/interface.d.ts +14 -1
  319. package/es/Tooltip/utils.js +6 -6
  320. package/es/Transfer/component.json +157 -0
  321. package/es/Tree/component.json +512 -0
  322. package/es/Upload/component.json +450 -0
  323. package/es/Utils/type.d.ts +0 -2
  324. package/es/index.d.ts +2 -0
  325. package/es/index.js +1 -1
  326. package/es/locale/en_US.d.ts +361 -0
  327. package/es/locale/en_US.js +364 -0
  328. package/es/locale/index.d.ts +1 -723
  329. package/es/locale/index2.js +10 -0
  330. package/es/locale/zh_CN.d.ts +361 -0
  331. package/es/locale/zh_CN.js +364 -0
  332. package/lib/AlignBox/component.json +89 -0
  333. package/lib/AlignBox/index.css +1 -1
  334. package/lib/AlignBox/index.d.ts +6 -2
  335. package/lib/AlignBox/index.js +1 -1
  336. package/lib/AlignBox/style/index.css +1 -1
  337. package/lib/Anchor/anchorMenu/index.d.ts +2 -1
  338. package/lib/Anchor/anchorMenu/index.js +1 -1
  339. package/lib/Anchor/component.json +130 -0
  340. package/lib/Anchor/index.js +1 -1
  341. package/lib/Anchor/type.d.ts +8 -4
  342. package/lib/Argv/component.json +216 -0
  343. package/lib/Argv/index.d.ts +5 -6
  344. package/lib/AutoBox/component.json +133 -0
  345. package/lib/AutoBox/index.d.ts +3 -3
  346. package/lib/AutoBox/index.js +1 -1
  347. package/lib/AutoBox/protal.d.ts +2 -2
  348. package/lib/AutoBox/protal.js +1 -1
  349. package/lib/AutoButton/component.json +109 -0
  350. package/lib/AutoButton/index.js +1 -1
  351. package/lib/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  352. package/lib/AutoTips/autoTipsMultiline/index.js +1 -1
  353. package/lib/AutoTips/component.json +121 -0
  354. package/lib/Badge/component.json +92 -0
  355. package/lib/Breadcrumbs/component.json +142 -0
  356. package/lib/Breadcrumbs/index.js +1 -1
  357. package/lib/Button/SplitButton.d.ts +2 -2
  358. package/lib/Button/component.json +168 -0
  359. package/lib/Button/index.js +1 -1
  360. package/lib/ButtonGroup/component.json +132 -0
  361. package/lib/ButtonGroup/index.d.ts +1 -1
  362. package/lib/Card/component.json +162 -0
  363. package/lib/Card/index.d.ts +2 -2
  364. package/lib/Card/index.js +1 -1
  365. package/lib/Carousel/component.json +142 -0
  366. package/lib/Carousel/index.d.ts +1 -1
  367. package/lib/Cascader/Cascader.js +1 -1
  368. package/lib/Cascader/component.json +196 -0
  369. package/lib/Cascader/hooks/useEntities.js +1 -1
  370. package/lib/Cascader/interface.d.ts +1 -0
  371. package/lib/Cascader/utils/commonUtil.d.ts +1 -1
  372. package/lib/Cascader/utils/commonUtil.js +1 -1
  373. package/lib/Cascader/utils/treeUtil.d.ts +14 -5
  374. package/lib/Cascader/utils/treeUtil.js +1 -1
  375. package/lib/Checkbox/component.json +138 -0
  376. package/lib/CheckboxGroup/component.json +152 -0
  377. package/lib/CodeEditor/component.json +189 -0
  378. package/lib/CodeEditor/index.d.ts +10 -9
  379. package/lib/Collapse/component.json +166 -0
  380. package/lib/Collapse/index.d.ts +1 -1
  381. package/lib/Collapse/index.js +1 -1
  382. package/lib/CollapseBox/component.json +84 -0
  383. package/lib/CollapseLayout/component.json +155 -0
  384. package/lib/ColorPicker/component.json +142 -0
  385. package/lib/ComboSelect/component.json +181 -0
  386. package/lib/ComboSelect/index.js +1 -1
  387. package/lib/ComboSelect/interface.d.ts +6 -3
  388. package/lib/ComboSelect/utils.d.ts +3 -3
  389. package/lib/ComboSelect/utils.js +1 -1
  390. package/lib/Container/component.json +111 -0
  391. package/lib/ContentBox/component.json +81 -0
  392. package/lib/CopyText/component.json +118 -0
  393. package/lib/CycleSelector/component.json +98 -0
  394. package/lib/CycleSelector/index.js +1 -1
  395. package/lib/DatePicker/component.json +192 -0
  396. package/lib/DatePicker/generatePicker/generateRangePicker.d.ts +0 -8
  397. package/lib/DatePicker/generatePicker/generateRangePicker.js +1 -1
  398. package/lib/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  399. package/lib/DatePicker/generatePicker/index.d.ts +11 -4
  400. package/lib/Descriptions/component.json +142 -0
  401. package/lib/Descriptions/index.d.ts +1 -1
  402. package/lib/Desktop/component.json +171 -0
  403. package/lib/DragVerify/component.json +114 -0
  404. package/lib/DragVerify/index.js +1 -1
  405. package/lib/Drawer/component.json +200 -0
  406. package/lib/Drawer/index.js +1 -1
  407. package/lib/Drawer/interface.d.ts +1 -1
  408. package/lib/Drawer/util.d.ts +1 -6
  409. package/lib/Drawer/util.js +1 -1
  410. package/lib/Dropdown/component.json +147 -0
  411. package/lib/DynamicMultiBox/component.json +278 -0
  412. package/lib/DynamicMultiBox/formItem.d.ts +1 -1
  413. package/lib/DynamicMultiBox/rowForm.d.ts +2 -2
  414. package/lib/Empty/component.json +123 -0
  415. package/lib/Empty/index.css +1 -1
  416. package/lib/Empty/index.d.ts +2 -2
  417. package/lib/Empty/index.js +1 -1
  418. package/lib/Empty/style/index.css +1 -1
  419. package/lib/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  420. package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
  421. package/lib/FieldForm/Form.d.ts +2 -2
  422. package/lib/FieldForm/FormList.d.ts +2 -2
  423. package/lib/FieldForm/component.json +196 -0
  424. package/lib/FieldForm/context.d.ts +5 -1
  425. package/lib/FieldForm/context.js +1 -1
  426. package/lib/FieldForm/hooks/useForm.d.ts +4 -3
  427. package/lib/FieldForm/hooks/useFormInstance.d.ts +1 -1
  428. package/lib/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  429. package/lib/FieldForm/hooks/useFormItemStatus.js +1 -1
  430. package/lib/FieldForm/hooks/useItemRef.d.ts +1 -1
  431. package/lib/FieldForm/hooks/useItemRef.js +1 -1
  432. package/lib/Form/component.json +161 -0
  433. package/lib/Form/index.d.ts +52 -49
  434. package/lib/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  435. package/lib/FormItem/compoments/defaultCompoments/index.js +1 -1
  436. package/lib/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  437. package/lib/FormItem/compoments/formFile/index.js +1 -1
  438. package/lib/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  439. package/lib/FormItem/compoments/formSelect/index.d.ts +1 -1
  440. package/lib/FormItem/component.json +171 -0
  441. package/lib/FormItem/index.d.ts +5 -5
  442. package/lib/FormItem/index.js +1 -1
  443. package/lib/FormItem/itemType.js +1 -1
  444. package/lib/FunctionModal/component.json +197 -0
  445. package/lib/FunctionModal/dialog.d.ts +1 -1
  446. package/lib/FunctionModal/modalContext.d.ts +4 -1
  447. package/lib/Help/component.json +118 -0
  448. package/lib/HelperText/component.json +126 -0
  449. package/lib/Image/component.json +165 -0
  450. package/lib/InputCode/component.json +191 -0
  451. package/lib/InputCode/index.d.ts +2 -2
  452. package/lib/InputLang/component.json +205 -0
  453. package/lib/InputLang/index.js +1 -1
  454. package/lib/InputNumber/component.json +162 -0
  455. package/lib/Label/component.json +126 -0
  456. package/lib/Label/index.d.ts +2 -2
  457. package/lib/Loading/component.json +91 -0
  458. package/lib/Menu/component.json +180 -0
  459. package/lib/Message/component.json +246 -0
  460. package/lib/Message/index.d.ts +2 -2
  461. package/lib/Message/index.js +1 -1
  462. package/lib/Modal/Confirm/index.d.ts +1 -1
  463. package/lib/Modal/Confirm/index.js +1 -1
  464. package/lib/Modal/component.json +277 -0
  465. package/lib/Modal/index.d.ts +97 -6
  466. package/lib/Modal/index.js +1 -1
  467. package/lib/Modal/interface.d.ts +1 -0
  468. package/lib/MultiBox/component.json +216 -0
  469. package/lib/MultiBox/index.js +1 -1
  470. package/lib/Notification/component.json +184 -0
  471. package/lib/OperateBtn/component.json +134 -0
  472. package/lib/OperateBtn/index.d.ts +3 -3
  473. package/lib/PageHeader/component.json +112 -0
  474. package/lib/Pagination/component.json +181 -0
  475. package/lib/Pagination/index.js +1 -1
  476. package/lib/PasswordRules/component.json +105 -0
  477. package/lib/PasswordRules/index.d.ts +4 -4
  478. package/lib/PopConfirm/component.json +227 -0
  479. package/lib/PopConfirm/index.d.ts +1 -1
  480. package/lib/PopConfirm/index.js +1 -1
  481. package/lib/PopMenu/component.json +131 -0
  482. package/lib/PopMenu/hooks.d.ts +1 -1
  483. package/lib/PopMenu/index.js +1 -1
  484. package/lib/Popover/component.json +165 -0
  485. package/lib/Popover/index.js +1 -1
  486. package/lib/Progress/component.json +161 -0
  487. package/lib/Prompt/component.json +144 -0
  488. package/lib/Querying/component.json +96 -0
  489. package/lib/Querying/index.css +1 -1
  490. package/lib/Querying/index.d.ts +2 -2
  491. package/lib/Querying/index.js +1 -1
  492. package/lib/Querying/style/index.css +1 -1
  493. package/lib/QuickReply/component.json +129 -0
  494. package/lib/QuickReply/index.d.ts +1 -1
  495. package/lib/Radio/component.json +136 -0
  496. package/lib/RadioGroup/component.json +149 -0
  497. package/lib/RangeInput/component.json +198 -0
  498. package/lib/RangeInput/index.js +1 -1
  499. package/lib/Result/component.json +104 -0
  500. package/lib/ScrollBar/component.json +115 -0
  501. package/lib/Search/component.json +177 -0
  502. package/lib/Search/index.d.ts +1 -1
  503. package/lib/Select/component.json +244 -0
  504. package/lib/Select/index.js +1 -1
  505. package/lib/SelectInput/component.json +184 -0
  506. package/lib/Selector/component.json +203 -0
  507. package/lib/Selector/index.js +1 -1
  508. package/lib/Selector/interface.d.ts +1 -1
  509. package/lib/Selector/selectorMain/index.js +1 -1
  510. package/lib/Selector/selectorNode/index.js +1 -1
  511. package/lib/Selector/util.d.ts +2 -2
  512. package/lib/SelectorPicker/component.json +179 -0
  513. package/lib/SelectorPicker/index.d.ts +5 -5
  514. package/lib/SelectorPicker/index.js +1 -1
  515. package/lib/SingleBox/component.json +151 -0
  516. package/lib/SingleBox/index.d.ts +2 -2
  517. package/lib/Slider/component.json +181 -0
  518. package/lib/SortBox/component.json +108 -0
  519. package/lib/Status/component.json +104 -0
  520. package/lib/Stepper/component.json +129 -0
  521. package/lib/Stepper/index.d.ts +2 -2
  522. package/lib/Switch/component.json +207 -0
  523. package/lib/Switch/index.css +1 -1
  524. package/lib/Switch/index.d.ts +3 -2
  525. package/lib/Switch/index.js +1 -1
  526. package/lib/Switch/style/index.css +1 -1
  527. package/lib/Table/component.json +547 -0
  528. package/lib/Table/index.d.ts +2 -2
  529. package/lib/Table/index.js +1 -1
  530. package/lib/Table/interface.d.ts +6 -0
  531. package/lib/Tabs/component.json +227 -0
  532. package/lib/Tag/component.json +221 -0
  533. package/lib/Tag/index.css +1 -1
  534. package/lib/Tag/index.d.ts +1 -1
  535. package/lib/Tag/index.js +1 -1
  536. package/lib/Tag/style/index.css +1 -1
  537. package/lib/TextEditor/component.json +186 -0
  538. package/lib/TextEditor/index.d.ts +5 -5
  539. package/lib/TextField/component.json +290 -0
  540. package/lib/TextField/index.d.ts +2 -2
  541. package/lib/TimePicker/component.json +176 -0
  542. package/lib/Timeline/component.json +110 -0
  543. package/lib/Title/component.json +156 -0
  544. package/lib/ToggleButton/component.json +153 -0
  545. package/lib/Tooltip/component.json +176 -0
  546. package/lib/Tooltip/index.js +1 -1
  547. package/lib/Tooltip/interface.d.ts +14 -1
  548. package/lib/Tooltip/utils.js +1 -1
  549. package/lib/Transfer/component.json +157 -0
  550. package/lib/Tree/component.json +512 -0
  551. package/lib/Upload/component.json +450 -0
  552. package/lib/Utils/type.d.ts +0 -2
  553. package/lib/index.d.ts +2 -0
  554. package/lib/index.js +1 -1
  555. package/lib/locale/en_US.d.ts +361 -0
  556. package/lib/locale/en_US.js +2 -0
  557. package/lib/locale/index.d.ts +1 -723
  558. package/lib/locale/index2.js +2 -0
  559. package/lib/locale/zh_CN.d.ts +361 -0
  560. package/lib/locale/zh_CN.js +2 -0
  561. package/package.json +10 -3
  562. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  563. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
  564. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  565. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
@@ -324,6 +324,12 @@ export interface TableProps<T = unknown> extends TableHeadBodyPublicProps<T> {
324
324
  * 内部刷新事件回调
325
325
  * */
326
326
  onRefreshCallback?: (type: 'empty' | 'refresh') => void;
327
+ /**
328
+ * 分页变化回调(DEFECT-003 修复)。本地 data 模式 + 远程 url 模式都触发;
329
+ * 用户切换页码或每页条数时调用——参数为新的 (page, size)。
330
+ * 未传时不影响任何现有行为;与远程模式 requestCallback 互不干扰,可同时使用。
331
+ * */
332
+ onPageChange?: (page: number, size: number) => void;
327
333
  }
328
334
  export interface ExpandableRowItem {
329
335
  /** 当前嵌套行id */
@@ -0,0 +1,227 @@
1
+ {
2
+ "name": "Tabs",
3
+ "category": "Navigation",
4
+ "description": "选项卡切换组件。**所有 mode 都渲染 data[].content**(src/Tabs/index.tsx:220 把 content 渲染到 TabPane 内部)——不存在『line/track 只渲染 tab 头』的差异,请放心把面板体放进 data[].content。",
5
+ "semantic": {
6
+ "intent": [
7
+ "内容切换",
8
+ "视图分组",
9
+ "平级导航"
10
+ ],
11
+ "useCases": [
12
+ "详情页多维度展示",
13
+ "配置面板",
14
+ "同级功能切换"
15
+ ],
16
+ "riskLevel": "normal"
17
+ },
18
+ "variants": {
19
+ "line": {
20
+ "meaning": "线条型 (默认) — 底部下划线指示当前激活"
21
+ },
22
+ "card": {
23
+ "meaning": "卡片型 — tab 头本身像独立卡片"
24
+ },
25
+ "editable-card": {
26
+ "meaning": "可编辑卡片型 — 自带新增 + 关闭按钮,与 editable=true 配套"
27
+ },
28
+ "track": {
29
+ "meaning": "轨道滑块型 — segmented control 风格"
30
+ },
31
+ "card-container": {
32
+ "meaning": "页签容器 — 整个面板被卡片包裹"
33
+ }
34
+ },
35
+ "states": [
36
+ "active",
37
+ "disabled"
38
+ ],
39
+ "idealProps": {
40
+ "data": {
41
+ "type": "TabProps<K>[]",
42
+ "itemSchema": {
43
+ "label": { "type": "ReactNode", "required": true, "description": "tab 头文案" },
44
+ "content": { "type": "ReactNode", "description": "面板内容,所有 mode 都渲染" },
45
+ "value": { "type": "K extends React.Key", "required": true, "description": "唯一标识,与 Tabs value/onChange 对应" },
46
+ "disabled": { "type": "boolean", "description": "是否禁用该 tab" },
47
+ "closable": { "type": "boolean", "description": "是否显示关闭按钮(editable 模式)" },
48
+ "disabledTooltip": { "type": "TooltipProps", "description": "hover 禁用 tab 时显示的 tooltip 配置" },
49
+ "showHelp": { "type": "boolean", "description": "是否显示帮助图标" },
50
+ "helpProps": { "type": "HelpProps", "description": "帮助图标配置" }
51
+ },
52
+ "description": "标签页配置数组。**每项 TabProps 完整字段**:label(tab 头文案)/ content(**面板内容,所有 mode 都渲染**)/ value(唯一 key,类型 K)/ disabled / closable / disabledTooltip(TooltipProps,hover 禁用 tab 时显示)/ showHelp / helpProps。content 不要外部用 `{activeKey === 'x' && <Body />}` 二次条件渲染——直接放在 data[].content 里"
53
+ },
54
+ "value": {
55
+ "type": "K extends React.Key",
56
+ "description": "当前激活的 tab value(受控)。Tabs 是泛型组件 `Tabs<K>`:默认 K = string,需传 string value 时业务端可写 `<Tabs<string>>`;data[].value 与 value 同类型"
57
+ },
58
+ "mode": {
59
+ "type": "enum",
60
+ "values": [
61
+ "line",
62
+ "card",
63
+ "editable-card",
64
+ "track",
65
+ "card-container"
66
+ ],
67
+ "default": "line",
68
+ "description": "外观模式 5 种取值(src/Tabs/index.tsx:19 TabsType);`type` prop 是 mode 的别名(src 优先 type ?? mode),二选一传"
69
+ },
70
+ "type": {
71
+ "type": "enum",
72
+ "values": [
73
+ "line",
74
+ "card",
75
+ "editable-card",
76
+ "track",
77
+ "card-container"
78
+ ],
79
+ "description": "mode 的别名;与 mode 二选一即可"
80
+ },
81
+ "size": {
82
+ "type": "'small' | 'medium' | 'large'",
83
+ "values": ["small", "medium", "large"],
84
+ "description": "尺寸"
85
+ },
86
+ "onChange": {
87
+ "type": "function",
88
+ "signature": "(activeKey: K, item?: TabProps<K>) => void",
89
+ "description": "切换面板的回调。**真实 2 参(activeKey + item)**——首参名 activeKey 不是 value;不带 event 第三参(区别于 antd)。K 默认 string;通过 Tabs<K> 收紧"
90
+ },
91
+ "onEdit": {
92
+ "type": "function",
93
+ "signature": "(item: TabProps<K>, event?: React.MouseEvent | React.KeyboardEvent | string | React.Key, action?: 'add' | 'remove') => void",
94
+ "description": "新增/删除面板的回调(3 参:item / event / action)。配合 editable / showAdd / closable"
95
+ },
96
+ "onAdd": {
97
+ "type": "function",
98
+ "signature": "(event?: React.MouseEvent) => void",
99
+ "description": "新增按钮回调;showAdd 为 true 或 editable 模式下生效"
100
+ },
101
+ "centered": {
102
+ "type": "boolean",
103
+ "default": false,
104
+ "description": "标签居中展示"
105
+ },
106
+ "tabPosition": {
107
+ "type": "'top' | 'right' | 'bottom' | 'left'",
108
+ "values": ["top", "right", "bottom", "left"],
109
+ "default": "'top'",
110
+ "description": "页签位置"
111
+ },
112
+ "editable": {
113
+ "type": "boolean",
114
+ "default": false,
115
+ "description": "可编辑标签(关闭 + 新增);通常与 mode='editable-card' 搭配"
116
+ },
117
+ "showAdd": {
118
+ "type": "boolean",
119
+ "default": false,
120
+ "description": "显示新增按钮"
121
+ },
122
+ "hideAdd": {
123
+ "type": "boolean",
124
+ "default": false,
125
+ "description": "在 editable 模式下隐藏新增按钮"
126
+ },
127
+ "addIcon": {
128
+ "type": "ReactNode",
129
+ "description": "自定义新增按钮图标(替换默认 + 图标);showAdd 或 editable 时生效"
130
+ },
131
+ "radio": {
132
+ "type": "boolean",
133
+ "default": false,
134
+ "description": "在每个 tab 头前加 radio 单选框(与 onRadioChange 配套)"
135
+ },
136
+ "showPopConfirm": {
137
+ "type": "boolean",
138
+ "default": false,
139
+ "description": "切换/删除 tab 前弹出确认框(src/Tabs/index.tsx:56 实证)。⚠️ **`editable=true` 或 `mode='editable-card'` 时有效**(两者满足其一即可触发可编辑态,src:133 `inType === 'editable-card' || editable` 实证)。配合 `popConfirmProps` 自定义确认框内容"
140
+ },
141
+ "popConfirmProps": {
142
+ "type": "PopConfirmProps",
143
+ "description": "控制切换确认弹窗的内容(src/Tabs/index.tsx:58 实证,类型 PopConfirmProps)。在 `showPopConfirm=true` 时生效,可配置 title / description / okText / cancelText 等 PopConfirm 支持的所有属性"
144
+ },
145
+ "onRadioChange": {
146
+ "type": "function",
147
+ "signature": "(radioValue: K) => void",
148
+ "description": "radio 单选框模式下切换选中项的回调(src/Tabs/index.tsx:72 实证签名)。⚠️ **需配合 `mode='card-container'` + `radio=true`**——Radio 组件仅在 card-container 模式下渲染(src:178 实证),其他 mode 下设置 radio=true 无效。K 类型与 Tabs<K> 泛型一致(默认 string)。**与 `onChange` 区分**:onChange 是 tab 切换回调,onRadioChange 是独立的 radio 选中回调"
149
+ }
150
+ },
151
+ "do": [
152
+ "把面板内容放在 data[].content——所有 mode 都会渲染 content,不要外部条件渲染",
153
+ "卡片型外观请直接传 mode='card'(不要退而求其次选 mode='card-container'——后者是『整个面板卡片包裹』,不是『tab 头卡片』)",
154
+ "可编辑标签使用 mode='editable-card' + editable={true};自定义新增图标用 addIcon prop",
155
+ "禁用 tab 的 hover 提示用 TabProps.disabledTooltip(不要给 label 包 <span title>)",
156
+ "受控用 value + onChange;onChange 第一参数是 activeKey,第二参数是 item,无 event 参数"
157
+ ],
158
+ "dont": [
159
+ "在 TabPane 中渲染过重的非首屏内容(应利用懒加载机制)",
160
+ "频繁切换 Tabs mode 导致布局抖动",
161
+ "不要假设『mode='line' 不渲染 content』——所有 mode 都渲染(src 实证)",
162
+ "不要按 antd 习惯传 onChange={(value, tabData, event) => ...}——本组件 2 参 (activeKey, item)",
163
+ "不要按 antd 习惯传 columns/items prop——本组件用 data;不要传 children TabPane——本组件用 data[].content"
164
+ ],
165
+ "events": {
166
+ "onChange": {
167
+ "signature": "(activeKey: K, item?: TabProps<K>) => void",
168
+ "asyncSupported": false,
169
+ "examples": [
170
+ "切换 tab:onChange={(key) => setActiveTab(key)}",
171
+ "利用第二参取 tab 数据:onChange={(key, item) => setTitle(item?.label)}",
172
+ "K 泛型约束:<Tabs<'home'|'profile'> onChange={(key) => ...} />,key 类型被收紧"
173
+ ],
174
+ "commonMistakes": [
175
+ "按 antd 习惯传 onChange={(value, tabData, event) => ...}——本组件仅 2 参 (activeKey, item),无 event 第三参",
176
+ "误以为首参名是 value——首参名是 activeKey(来自 rc-tabs 层),不是 value",
177
+ "忘记第二参 item 是可选的(data 为空或切换到非 data 渲染的 key 时 item 可能 undefined)"
178
+ ]
179
+ },
180
+ "onEdit": {
181
+ "signature": "(item: TabProps<K>, event?: React.MouseEvent | React.KeyboardEvent | string | React.Key, action?: 'add' | 'remove') => void",
182
+ "asyncSupported": false,
183
+ "examples": [
184
+ "新增:action='add', item 是空对象 {}",
185
+ "删除:action='remove', item 是被关闭的 TabProps<K> 项(包含 value/label 等字段)",
186
+ "删除实现:onEdit={(item, _, action) => action === 'remove' && setTabs(tabs.filter(t => t.value !== item.value))}"
187
+ ],
188
+ "commonMistakes": [
189
+ "新增分支期望 item.value 有值——add 时 item 是空对象 {},新 key 需业务侧生成",
190
+ "onEdit 在 editable=false + mode!='editable-card' 时传了但不触发——需满足 editable=true 或 mode='editable-card'"
191
+ ]
192
+ },
193
+ "onRadioChange": {
194
+ "signature": "(radioValue: K) => void",
195
+ "asyncSupported": false,
196
+ "examples": [
197
+ "card-container 模式 + radio=true 时,每个 tab 头前有 Radio,点击 radio 触发此回调",
198
+ "onRadioChange={(val) => setSelected(val)}"
199
+ ],
200
+ "commonMistakes": [
201
+ "不是 card-container + radio=true 模式时传了 onRadioChange——Radio 不渲染,回调永不触发",
202
+ "与 onChange 混淆——onChange 是 tab 激活切换,onRadioChange 是独立的 radio 选中"
203
+ ]
204
+ }
205
+ },
206
+ "typescriptPitfalls": [
207
+ {
208
+ "issue": "onChange 首参名是 activeKey 不是 value,直接解构 value 时 TS 不报错但语义不清",
209
+ "wrong": "onChange={(value) => setTab(value)} // 运行正确但命名误导",
210
+ "right": "onChange={(activeKey) => setTab(activeKey)} // 参数名与签名一致"
211
+ },
212
+ {
213
+ "issue": "data 是 TabProps<K>[] 而不是 RcTabsProps.items,两者不可直接互用",
214
+ "wrong": "// 从 antd 迁移时直接传 items={tabs}——para-ui Tabs 用 data prop 不是 items",
215
+ "right": "data={tabs} // TabProps 数组:[{ value: 'home', label: '首页', content: <Home /> }]"
216
+ },
217
+ {
218
+ "issue": "tabPosition prop 在 Omit<RcTabsProps, 'onChange'> 中保留,但 SCSS 可能不支持所有方向",
219
+ "wrong": "// 传 tabPosition='left' 期望左侧竖排 tab——需确认当前主题 SCSS 是否实现了 left 方向",
220
+ "right": "// 水平 top 位置已完整实现;非 top 方向使用前需自测 SCSS 效果"
221
+ }
222
+ ],
223
+ "mapping": {
224
+ "realComponent": "Tabs",
225
+ "adapter": null
226
+ }
227
+ }
@@ -0,0 +1,221 @@
1
+ {
2
+ "name": "Tag",
3
+ "category": "Data Display",
4
+ "description": "进行标记和分类的小标签,支持 4 种预设色 + 自定义色、描边/实色、closable 可关闭、editable 内置编辑模式、visible 显隐控制",
5
+ "semantic": {
6
+ "intent": [
7
+ "分类",
8
+ "标记",
9
+ "选择"
10
+ ],
11
+ "useCases": [
12
+ "文章标签",
13
+ "状态展示",
14
+ "筛选条件"
15
+ ],
16
+ "riskLevel": "low"
17
+ },
18
+ "variants": {
19
+ "normal": {
20
+ "meaning": "普通标签"
21
+ },
22
+ "outline": {
23
+ "meaning": "描边标签"
24
+ }
25
+ },
26
+ "states": [
27
+ "default",
28
+ "closable",
29
+ "visible",
30
+ "editable"
31
+ ],
32
+ "idealProps": {
33
+ "children": {
34
+ "type": "ReactNode",
35
+ "description": "**标签文案**(src 通过 PropsWithChildren 接收,与 props 分开)。直接作为 children 传入:`<Tag>已激活</Tag>`。**editable 模式下**:当 children 是 string 时会作为内嵌 input 的初始值(src/Tag/index.tsx:118-122 实证)"
36
+ },
37
+ "color": {
38
+ "type": "'blue' | 'green' | 'yellow' | 'red' | string",
39
+ "description": "标签颜色。**预设色(4 个)**:blue / green / yellow / red——会命中专门 CSS 类生成完整配色方案。**非预设值**(如 'gray' / hex / rgb())走 tinycolor 解析,渲染为带 0.1 alpha 的对应色背景 + 原色文字(无 hover/active 等专门 CSS)。**状态色推荐语义**(业界常见映射):green=success/激活、yellow=warning/待处理、red=error/危险、blue=info/默认;灰色场景建议传 hex '#808080' 或 '#999'。需求方若需要灰色等常用色,可以提议加入预设清单(src 改 PresetColors + 加专门样式)",
40
+ "_presetNote": "DEFECT 反查:src/Tag/index.tsx:67 PresetColors = ['blue','green','yellow','red'];非预设走 tinycolor 通用渲染但视觉效果有差异——不是 bug 是设计取舍"
41
+ },
42
+ "type": {
43
+ "type": "enum",
44
+ "values": [
45
+ "normal",
46
+ "outline"
47
+ ],
48
+ "default": "normal",
49
+ "description": "标签类型——normal 实色填充,outline 描边版(color 仍生效,但作为边框色 + 文字色,背景透明)"
50
+ },
51
+ "size": {
52
+ "type": "enum",
53
+ "values": [
54
+ "small",
55
+ "medium",
56
+ "large"
57
+ ],
58
+ "default": "small",
59
+ "description": "标签大小。三档统一为 small / medium / large(2026-05-08 跨组件命名 epic §3.1 选项 B 实施,medium 为新增视觉档,默认 small 不变,既有 small/large 调用零回归)"
60
+ },
61
+ "closable": {
62
+ "type": "boolean",
63
+ "default": false,
64
+ "description": "是否可关闭——开启后右侧自动渲染 ✕ 图标;自定义关闭图标传 closeIcon prop。**半受控行为**(src/Tag/index.tsx:175-178 实证):未传 visible prop 时点击 ✕ 自动 setVisible(false) 内部隐藏;传了 visible 后由父组件控制(点击 ✕ 仅触发 onClose 不自动隐藏)"
65
+ },
66
+ "onClose": {
67
+ "type": "function",
68
+ "signature": "(event: React.MouseEvent) => void",
69
+ "description": "关闭按钮点击回调(**完整签名带 React MouseEvent 参数**,src/Tag/index.tsx:36 实证)。**事件**:内部已 stopPropagation;如需阻止默认隐藏(visible 未受控场景),调用 event.preventDefault() 即可——src 检查 e.defaultPrevented 后跳过 setVisible(false)"
70
+ },
71
+ "closeIcon": {
72
+ "type": "ReactNode",
73
+ "description": "自定义关闭图标节点(替代默认 CloseIcon),仅在 closable=true 时渲染"
74
+ },
75
+ "visible": {
76
+ "type": "boolean",
77
+ "default": true,
78
+ "description": "是否显示标签。**受控**:传入后 Tag 显隐完全跟随 visible(onClose 后不会自动隐藏,由父组件 setState 控制)。**非受控**:不传时 onClose 后 src 内部 setVisible(false) 自动隐藏。如需完全不挂载 DOM,在父组件做条件渲染 `{isShown && <Tag />}` 而非依赖 visible prop(visible=false 时 DOM 仍渲染只是 CSS 隐藏)"
79
+ },
80
+ "icon": {
81
+ "type": "ReactNode",
82
+ "description": "**前置图标**(src/Tag/index.tsx:231-254 实证 icon 渲染在文案左侧;与 closeIcon 在右侧不同)。editable=true 时此 prop 被忽略(前缀位置改渲染 EditIcon)"
83
+ },
84
+ "editable": {
85
+ "type": "boolean",
86
+ "default": false,
87
+ "description": "**Tag 内置可编辑模式**——传 editable={true} 后,Tag 在前缀位置自动渲染编辑图标(EditIcon),点击图标会切换为内嵌 input;按 Enter 或失焦提交。**回调通过 tagChange prop 触发**:`tagChange?: (value: string) => void`。**初值来源**:children 为 string 时作为 input 初始值;不是 string 时初值为空字符串。无需手写原生 input。editable 模式下 children 仅作为编辑态进入时的 initialValue;父组件后续更新 children **不会刷新已激活 input**;父组件需通过 tagChange 回调维护 state"
88
+ },
89
+ "tagChange": {
90
+ "type": "function",
91
+ "signature": "(value: string) => void",
92
+ "description": "**editable=true 模式下 input 值变化的回调**(src/Tag/index.tsx:259 实证:每次 onChange 触发 = 实时键入回调,**不是 onBlur/Enter 才触发**)。提交动作仅控制是否退出编辑态,与 tagChange 触发频率无关"
93
+ },
94
+ "editInputClassName": {
95
+ "type": "string",
96
+ "description": "editable 模式下内嵌 input 的类名"
97
+ },
98
+ "editInputWidth": {
99
+ "type": "number",
100
+ "description": "editable 模式下内嵌 input 的宽度(默认根据内容自适应)"
101
+ },
102
+ "maxWidth": {
103
+ "type": "number | string",
104
+ "description": "标签最大宽度。超出时配合 AutoTips 显示 tooltip(不截断)"
105
+ },
106
+ "tipMaxWidth": {
107
+ "type": "number | string",
108
+ "description": "AutoTips tooltip 的最大宽度(src/Tag/index.tsx:56,310 实证:透传给 AutoTips 的 tipMaxWidth prop,控制文案截断时 tooltip 浮层宽度)"
109
+ },
110
+ "onEdit": {
111
+ "type": "function",
112
+ "signature": "(event: React.MouseEvent) => void",
113
+ "description": "编辑图标点击回调(src/Tag/index.tsx:38,198 实证:editable=true 时点击前缀 EditIcon 触发,可通过 event.preventDefault() 阻止切换为 input 编辑状态)"
114
+ },
115
+ "getWidth": {
116
+ "type": "function",
117
+ "signature": "(width: number) => void",
118
+ "description": "获取标签宽度回调(src/Tag/index.tsx:40,115 实证:挂载及 inputVisible 变化后通过 useEffect 将 tagRef 的 offsetWidth 传出)"
119
+ },
120
+ "marginBottom": {
121
+ "type": "string",
122
+ "description": "标签下边距(src/Tag/index.tsx:58,136 实证:inline style 直接透传,用于 TagGroup 等批量排列场景控制行间距)"
123
+ },
124
+ "marginRight": {
125
+ "type": "string",
126
+ "description": "标签右边距(src/Tag/index.tsx:60,137 实证:inline style 直接透传,用于 TagGroup 等批量排列场景控制列间距)"
127
+ },
128
+ "className": {
129
+ "type": "string",
130
+ "description": "自定义类名(src/Tag/index.tsx:48 interface 声明,透传到根 span 元素)"
131
+ }
132
+ },
133
+ "do": [
134
+ "使用颜色区分不同类型的标签——状态徽章推荐:green=激活/成功、yellow=警告/待处理、red=错误/危险、blue=信息/默认、灰色用 hex '#808080'",
135
+ "使用 closable 实现标签的删除交互(visible 受控时父组件 setState 移除;非受控时 src 内部自动隐藏)",
136
+ "需要可编辑标签时直接传 editable={true} + tagChange 回调——Tag 内置 EditIcon + input 渲染逻辑,**不需要在 children 内手写原生 <input>**;children 为 string 时作为 input 初始值",
137
+ "**跨组件引用 Tag 表达状态色**:在 Table render / Form 选项渲染等场景,用 `<Tag color='green'>已激活</Tag>` 而非 inline style 兜底——预设 4 色已覆盖大多数状态语义"
138
+ ],
139
+ "dont": [
140
+ "在 Tag 中放置过长的文本",
141
+ "滥用 Tag 作为按钮使用",
142
+ "**不要在 editable 模式同时传 icon**——editable=true 时前缀位置改渲染 EditIcon,icon prop 被忽略;如需图标 + 编辑混用,需自实现",
143
+ "不要假设非预设色(hex / rgb / 'gray')有完整 hover/active CSS——非预设走 tinycolor 0.1 alpha 渲染,无专门样式"
144
+ ],
145
+ "events": {
146
+ "onClose": {
147
+ "signature": "(event: React.MouseEvent) => void",
148
+ "asyncSupported": false,
149
+ "examples": [
150
+ "受控关闭:onClose={(e) => setVisible(false)}",
151
+ "阻止默认隐藏(非受控场景):onClose={(e) => { e.preventDefault(); /* 自定义逻辑 */ }}",
152
+ "受控模式父组件删除标签:onClose={() => setTags(prev => prev.filter(t => t.id !== id))}"
153
+ ],
154
+ "commonMistakes": [
155
+ "不传 visible prop 时期望 onClose 后标签仍显示——未传 visible 时 Tag 内部自动 setVisible(false);要阻止需调 e.preventDefault()",
156
+ "假设 onClose 只在显式关闭时触发——Tag 本体 stopPropagation,但父元素 onClick 不受影响",
157
+ "忘记在受控模式(传了 visible)中通过 onClose 更新父 state——Tag 不会自动隐藏,需父组件响应 onClose 更新 visible"
158
+ ]
159
+ },
160
+ "onEdit": {
161
+ "signature": "(event: React.MouseEvent) => void",
162
+ "asyncSupported": false,
163
+ "examples": [
164
+ "监听编辑图标点击:onEdit={(e) => console.log('edit clicked')}",
165
+ "阻止进入内置编辑态:onEdit={(e) => { e.preventDefault(); openCustomEditModal(); }}"
166
+ ],
167
+ "commonMistakes": [
168
+ "期望 onEdit 是编辑完成后的回调——onEdit 是点击编辑图标时触发;编辑完成回调是 tagChange",
169
+ "同时传 onEdit 和 editable 却期望自定义完全替代内置 input——onEdit 调 e.preventDefault() 才能阻止切换 input"
170
+ ]
171
+ },
172
+ "tagChange": {
173
+ "signature": "(value: string) => void",
174
+ "asyncSupported": false,
175
+ "examples": [
176
+ "实时同步编辑值:tagChange={(v) => setTagValue(v)}",
177
+ "受控:在 tagChange 中更新父组件 state,children 随之变化(editable 模式下 children 是初始值)"
178
+ ],
179
+ "commonMistakes": [
180
+ "假设 tagChange 是 onBlur/Enter 确认后触发——实际是实时 onChange(每次键入都触发)",
181
+ "不传 tagChange 期望 Tag 自己保存编辑值——编辑完成后父组件 children 不更新则下次进入编辑态仍是旧初始值"
182
+ ]
183
+ },
184
+ "getWidth": {
185
+ "signature": "(width: number) => void",
186
+ "asyncSupported": false,
187
+ "examples": [
188
+ "获取标签实际渲染宽度:getWidth={(w) => setTagWidth(w)}"
189
+ ],
190
+ "commonMistakes": [
191
+ "期望 getWidth 实时响应容器宽度变化——实际只在挂载时和 inputVisible 变化时触发(不是 ResizeObserver)"
192
+ ]
193
+ }
194
+ },
195
+ "typescriptPitfalls": [
196
+ {
197
+ "issue": "TagProps extends React.HTMLAttributes<HTMLSpanElement>,onClick 等原生事件直接透传,不需要单独声明",
198
+ "wrong": "// 以为 Tag 没有 onClick,外层包一个 div:<div onClick={handleClick}><Tag>文本</Tag></div>",
199
+ "right": "<Tag onClick={handleClick}>文本</Tag> // HTMLAttributes 的所有事件都可直接传"
200
+ },
201
+ {
202
+ "issue": "editable 模式下 children 只作为编辑态初始值,不是受控值——父组件更新 children 不刷新已激活 input",
203
+ "wrong": "// 期望 children 变化实时反映到编辑 input 中\n<Tag editable tagChange={setVal}>{controlledValue}</Tag> // editInputVisible 激活后 children 更新不生效",
204
+ "right": "// 用 key 或在 tagChange 回调中维护 state:\nconst [val, setVal] = useState(initialValue);\n<Tag editable tagChange={setVal}>{val}</Tag> // 父组件维护 val,但注意切换编辑时仍取最新 children 作初始值"
205
+ },
206
+ {
207
+ "issue": "非预设色(hex/rgb/'gray' 等)走 tinycolor 渲染,TS 不报错但无完整 hover/active CSS",
208
+ "wrong": "color='gray' // TS 接受(string 类型),但没有专门 CSS,只有 tinycolor 0.1 alpha 背景",
209
+ "right": "// 预设色(有完整 CSS):color='blue' | 'green' | 'yellow' | 'red'\n// 非预设色自定义(通用渲染):color='#808080' // 接受但无专门 hover/active 样式"
210
+ },
211
+ {
212
+ "issue": "closable 半受控行为:未传 visible 时 onClose 自动隐藏;传了 visible 则需父组件主动响应 onClose",
213
+ "wrong": "// 传了 visible 但不响应 onClose:\n<Tag closable visible={isVisible} onClose={() => {}}>文本</Tag> // 点关闭后 Tag 不隐藏",
214
+ "right": "// 受控:onClose 更新父组件 state\n<Tag closable visible={isVisible} onClose={() => setIsVisible(false)}>文本</Tag>"
215
+ }
216
+ ],
217
+ "mapping": {
218
+ "realComponent": "Tag",
219
+ "adapter": null
220
+ }
221
+ }
package/es/Tag/index.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";.paraui-v4-tag-outline.paraui-v4-tag{border:.5px solid rgb(92,101,115)}.paraui-v4-tag-outline.paraui-v4-tag-blue{border:.5px solid rgb(46,101,230)}.paraui-v4-tag-outline.paraui-v4-tag-green{border:.5px solid rgb(19,191,76)}.paraui-v4-tag-outline.paraui-v4-tag-yellow{border:.5px solid rgb(255,147,38)}.paraui-v4-tag-outline.paraui-v4-tag-red{border:.5px solid rgb(244,66,66)}.paraui-v4-tag-edit-input{height:24px;align-self:flex-start;font-size:14px;color:#1d2126;text-indent:8px;border:1px solid rgb(46,101,230);border-radius:4px}.paraui-v4-tag{vertical-align:bottom;display:inline-flex;justify-content:center;align-items:center;max-width:100%;height:24px;padding:0 10px;font-size:14px;color:#1d2126;white-space:nowrap;background:#eaecf1;border-radius:2px;line-height:18px}.paraui-v4-tag .tag-custom-icon:hover{background:none!important;cursor:default}.paraui-v4-tag .tag-close-icon:hover{background-color:#d4dae3}.paraui-v4-tag .tag-edit-icon{display:flex}.paraui-v4-tag.paraui-v4-tag-small{height:20px;font-size:12px;padding:0 6px}.paraui-v4-tag.paraui-v4-tag-small>svg{font-size:12px}.paraui-v4-tag.paraui-v4-tag-small>svg+.paraui-v4-auto-tips{margin-left:2px}.paraui-v4-tag.paraui-v4-tag-small .tag-close-icon{margin-left:2px}.paraui-v4-tag.paraui-v4-tag-small .tag-edit-icon{font-size:12px}.paraui-v4-tag>svg{color:inherit;font-size:16px}.paraui-v4-tag .tag-edit-icon{color:inherit;font-size:16px;cursor:pointer}.paraui-v4-tag .tag-edit-icon>svg{color:#1d2126}.paraui-v4-tag .tag-close-icon{margin-left:4px;color:inherit;font-size:16px;cursor:pointer}.paraui-v4-tag .tag-close-icon:hover{color:inherit}.paraui-v4-tag>svg+.paraui-v4-auto-tips{margin-left:4px}.paraui-v4-tag.paraui-v4-tag-has-color,.paraui-v4-tag.paraui-v4-tag-has-color svg,.paraui-v4-tag.paraui-v4-tag-has-color svg:hover{color:inherit}.paraui-v4-tag.paraui-v4-tag-blue{color:#2e65e6;background-color:#2e65e61a}.paraui-v4-tag.paraui-v4-tag-green{color:#13bf4c;background-color:#13bf4c1a}.paraui-v4-tag.paraui-v4-tag-yellow{color:#ff9326;background-color:#ff93261a}.paraui-v4-tag.paraui-v4-tag-red{color:#f44242;background-color:#f442421a}.paraui-v4-tag.paraui-v4-tag-hidden{display:none}.paraui-v4-tag-small svg{font-size:12px}.paraui-v4-tag-group{display:flex;align-items:center;flex-flow:row wrap}.paraui-v4-tag-group .tag-group-input{height:24px;align-self:flex-start;font-size:14px;color:#1d2126;text-indent:8px;border:1px solid rgb(46,101,230);border-radius:4px}.paraui-v4-tag-group .tag-group-input .tag-group-input-large{height:28px}.paraui-v4-tag-group .tag-group-new .tag-group-new-icon{padding:0 5px}.paraui-v4-tag-group .tag-group-add-btn{border:1px dashed rgb(212,218,227)}.paraui-v4-tag-group .tag-group-add-btn .tag-edit-icon{background:none!important}.paraui-v4-tag-group .tag-group-add-btn:hover{cursor:pointer}.paraui-v4-tag-group .tag-group-add-btn:hover svg{color:#2e65e6}.paraui-v4-tag-group .tag-group-add-btn:hover .tag-text{color:#2e65e6}
1
+ @charset "UTF-8";.paraui-v4-tag-outline.paraui-v4-tag{border:.5px solid rgb(92,101,115)}.paraui-v4-tag-outline.paraui-v4-tag-blue{border:.5px solid rgb(46,101,230)}.paraui-v4-tag-outline.paraui-v4-tag-green{border:.5px solid rgb(19,191,76)}.paraui-v4-tag-outline.paraui-v4-tag-yellow{border:.5px solid rgb(255,147,38)}.paraui-v4-tag-outline.paraui-v4-tag-red{border:.5px solid rgb(244,66,66)}.paraui-v4-tag-edit-input{align-self:flex-start;height:24px;font-size:14px;color:#1d2126;text-indent:8px;border:1px solid rgb(46,101,230);border-radius:4px}.paraui-v4-tag{display:inline-flex;align-items:center;justify-content:center;max-width:100%;height:24px;padding:0 10px;font-size:14px;line-height:18px;color:#1d2126;white-space:nowrap;vertical-align:bottom;background:#eaecf1;border-radius:2px}.paraui-v4-tag .tag-custom-icon:hover{cursor:default;background:none!important}.paraui-v4-tag .tag-close-icon:hover{background-color:#d4dae3}.paraui-v4-tag .tag-edit-icon{display:flex}.paraui-v4-tag.paraui-v4-tag-large{line-height:28px}.paraui-v4-tag.paraui-v4-tag-medium{line-height:24px}.paraui-v4-tag.paraui-v4-tag-small{height:20px;padding:0 6px;font-size:12px}.paraui-v4-tag.paraui-v4-tag-small>svg{font-size:12px}.paraui-v4-tag.paraui-v4-tag-small>svg+.paraui-v4-auto-tips{margin-left:2px}.paraui-v4-tag.paraui-v4-tag-small .tag-close-icon{margin-left:2px}.paraui-v4-tag.paraui-v4-tag-small .tag-edit-icon{font-size:12px}.paraui-v4-tag>svg{font-size:16px;color:inherit}.paraui-v4-tag .tag-edit-icon{font-size:16px;color:inherit;cursor:pointer}.paraui-v4-tag .tag-edit-icon>svg{color:#1d2126}.paraui-v4-tag .tag-close-icon{margin-left:4px;font-size:16px;color:inherit;cursor:pointer}.paraui-v4-tag .tag-close-icon:hover{color:inherit}.paraui-v4-tag>svg+.paraui-v4-auto-tips{margin-left:4px}.paraui-v4-tag.paraui-v4-tag-has-color,.paraui-v4-tag.paraui-v4-tag-has-color svg,.paraui-v4-tag.paraui-v4-tag-has-color svg:hover{color:inherit}.paraui-v4-tag.paraui-v4-tag-blue{color:#2e65e6;background-color:#2e65e61a}.paraui-v4-tag.paraui-v4-tag-green{color:#13bf4c;background-color:#13bf4c1a}.paraui-v4-tag.paraui-v4-tag-yellow{color:#ff9326;background-color:#ff93261a}.paraui-v4-tag.paraui-v4-tag-red{color:#f44242;background-color:#f442421a}.paraui-v4-tag.paraui-v4-tag-hidden{display:none}.paraui-v4-tag-small svg{font-size:12px}.paraui-v4-tag-group{display:flex;flex-flow:row wrap;align-items:center}.paraui-v4-tag-group .tag-group-input{align-self:flex-start;height:24px;font-size:14px;color:#1d2126;text-indent:8px;border:1px solid rgb(46,101,230);border-radius:4px}.paraui-v4-tag-group .tag-group-input .tag-group-input-large{height:28px}.paraui-v4-tag-group .tag-group-new .tag-group-new-icon{padding:0 5px}.paraui-v4-tag-group .tag-group-add-btn{border:1px dashed rgb(212,218,227)}.paraui-v4-tag-group .tag-group-add-btn .tag-edit-icon{background:none!important}.paraui-v4-tag-group .tag-group-add-btn:hover{cursor:pointer}.paraui-v4-tag-group .tag-group-add-btn:hover svg{color:#2e65e6}.paraui-v4-tag-group .tag-group-add-btn:hover .tag-text{color:#2e65e6}
package/es/Tag/index.d.ts CHANGED
@@ -30,7 +30,7 @@ export interface TagProps extends React.HTMLAttributes<HTMLSpanElement> {
30
30
  /** cls */
31
31
  className?: string;
32
32
  /** 大小 */
33
- size?: 'small' | 'large';
33
+ size?: 'small' | 'medium' | 'large';
34
34
  /** 编辑输入框样式 */
35
35
  editInputClassName?: string;
36
36
  /** 编辑输入框宽度 */
package/es/Tag/index.js CHANGED
@@ -1,18 +1,18 @@
1
1
  import { j as o } from "../_virtual/jsx-runtime.js";
2
2
  import { useState as r, useRef as A, useEffect as p } from "react";
3
3
  import "../node_modules/@para-ui/icons/SvgIcon/index.js";
4
- import { Close as le } from "../node_modules/@para-ui/icons/Close/index.js";
4
+ import { Close as ae } from "../node_modules/@para-ui/icons/Close/index.js";
5
5
  import { EditOutline as ce } from "../node_modules/@para-ui/icons/EditOutline/index.js";
6
6
  import F from "clsx";
7
7
  import { default as ke } from "./TagGroup.js";
8
8
  import { $prefixCls as n } from "../GlobalContext/constant.js";
9
9
  import ue from "../AutoTips/index.js";
10
- import g from "../node_modules/tinycolor2/esm/tinycolor.js";
10
+ import f from "../node_modules/tinycolor2/esm/tinycolor.js";
11
11
  import de from "../Hooks/useGlobalProps.js";
12
12
  import './index.css';/* empty css */
13
- const pe = ["blue", "green", "yellow", "red"], ge = (l) => {
13
+ const pe = ["blue", "green", "yellow", "red"], fe = (a) => {
14
14
  const {
15
- type: f = "normal",
15
+ type: g = "normal",
16
16
  className: G,
17
17
  children: s,
18
18
  icon: c,
@@ -25,7 +25,7 @@ const pe = ["blue", "green", "yellow", "red"], ge = (l) => {
25
25
  closeIcon: x,
26
26
  closable: D = !1,
27
27
  editable: v = !1,
28
- size: b = "larage",
28
+ size: b = "small",
29
29
  maxWidth: K,
30
30
  style: O,
31
31
  visible: E,
@@ -34,9 +34,9 @@ const pe = ["blue", "green", "yellow", "red"], ge = (l) => {
34
34
  marginBottom: I,
35
35
  marginRight: y,
36
36
  ...J
37
- } = de(l, "TagGroup"), [Q, j] = r(!0), [$, N] = r(!1), [R, k] = r(""), [M, U] = r(0), [X, u] = r(!1), [Y, d] = r(!1), Z = A(), i = A(null);
37
+ } = de(a, "TagGroup"), [Q, j] = r(!0), [$, N] = r(!1), [R, k] = r(""), [M, U] = r(0), [X, u] = r(!1), [Y, d] = r(!1), Z = A(), i = A(null);
38
38
  p(() => {
39
- "visible" in l && j(!!E);
39
+ "visible" in a && j(!!E);
40
40
  }, [E]), p(() => {
41
41
  if (!i.current) return;
42
42
  const { offsetWidth: e } = i.current;
@@ -44,33 +44,33 @@ const pe = ["blue", "green", "yellow", "red"], ge = (l) => {
44
44
  }, [i, $]), p(() => {
45
45
  typeof s == "string" && k(s);
46
46
  }, [s]);
47
- const a = () => t ? pe.includes(t) : !1, _ = {
48
- color: t && !a() ? t : void 0,
49
- backgroundColor: t && !a() ? g(t).setAlpha(0.1).toRgbString() : void 0,
50
- borderColor: t && !a() && f === "outline" ? t : void 0,
47
+ const l = () => t ? pe.includes(t) : !1, _ = {
48
+ color: t && !l() ? t : void 0,
49
+ backgroundColor: t && !l() ? f(t).setAlpha(0.1).toRgbString() : void 0,
50
+ borderColor: t && !l() && g === "outline" ? t : void 0,
51
51
  maxWidth: K,
52
52
  marginBottom: I,
53
53
  marginRight: y,
54
54
  ...O
55
55
  }, P = {
56
- backgroundColor: X ? g(t).setAlpha(0.1).toRgbString() : void 0,
56
+ backgroundColor: X ? f(t).setAlpha(0.1).toRgbString() : void 0,
57
57
  borderRadius: "2px"
58
58
  }, ee = {
59
- backgroundColor: Y ? g(t).setAlpha(0.1).toRgbString() : void 0,
59
+ backgroundColor: Y ? f(t).setAlpha(0.1).toRgbString() : void 0,
60
60
  marginRight: s ? b === "small" ? "2px" : "4px" : void 0,
61
61
  borderRadius: "2px"
62
62
  }, te = F(
63
63
  `${n}-tag`,
64
- `${n}-tag-${f}`,
64
+ `${n}-tag-${g}`,
65
65
  `${n}-tag-${b}`,
66
66
  G,
67
67
  {
68
68
  [`${n}-tag-has-color`]: t,
69
69
  [`${n}-tag-hidden`]: !Q,
70
- [`${n}-tag-${t}`]: a()
70
+ [`${n}-tag-${t}`]: l()
71
71
  }
72
72
  ), W = (e) => {
73
- e.stopPropagation(), B?.(e), u(!1), !e.defaultPrevented && ("visible" in l || j(!1));
73
+ e.stopPropagation(), B?.(e), u(!1), !e.defaultPrevented && ("visible" in a || j(!1));
74
74
  }, S = () => {
75
75
  u(!0);
76
76
  }, L = () => {
@@ -92,7 +92,7 @@ const pe = ["blue", "green", "yellow", "red"], ge = (l) => {
92
92
  children: x
93
93
  }
94
94
  ) : /* @__PURE__ */ o.jsx(
95
- le,
95
+ ae,
96
96
  {
97
97
  className: "tag-close-icon",
98
98
  style: P,
@@ -123,7 +123,7 @@ const pe = ["blue", "green", "yellow", "red"], ge = (l) => {
123
123
  N(!1);
124
124
  }, ie = (e) => {
125
125
  (e.keyCode === 13 || e.which === 13) && V();
126
- }, ae = () => {
126
+ }, le = () => {
127
127
  const e = F(`${n}-tag-edit-input`, z);
128
128
  return /* @__PURE__ */ o.jsx(
129
129
  "input",
@@ -145,7 +145,7 @@ const pe = ["blue", "green", "yellow", "red"], ge = (l) => {
145
145
  }
146
146
  );
147
147
  };
148
- return /* @__PURE__ */ o.jsx(o.Fragment, { children: $ ? ae() : /* @__PURE__ */ o.jsxs(
148
+ return /* @__PURE__ */ o.jsx(o.Fragment, { children: $ ? le() : /* @__PURE__ */ o.jsxs(
149
149
  "span",
150
150
  {
151
151
  ...J,
@@ -159,7 +159,7 @@ const pe = ["blue", "green", "yellow", "red"], ge = (l) => {
159
159
  ]
160
160
  }
161
161
  ) });
162
- }, $e = ge;
162
+ }, $e = fe;
163
163
  export {
164
164
  $e as Tag,
165
165
  ke as TagGroup,
@@ -1 +1 @@
1
- .paraui-v4-tag-outline.paraui-v4-tag{border:.5px solid #5c6573}.paraui-v4-tag-outline.paraui-v4-tag-blue{border:.5px solid #2e65e6}.paraui-v4-tag-outline.paraui-v4-tag-green{border:.5px solid #13bf4c}.paraui-v4-tag-outline.paraui-v4-tag-yellow{border:.5px solid #ff9326}.paraui-v4-tag-outline.paraui-v4-tag-red{border:.5px solid #f44242}.paraui-v4-tag-edit-input{height:24px;align-self:flex-start;font-size:14px;color:#1d2126;text-indent:8px;border:1px solid #2e65e6;border-radius:4px}.paraui-v4-tag{vertical-align:bottom;display:inline-flex;justify-content:center;align-items:center;max-width:100%;height:24px;padding:0 10px;font-size:14px;color:#1d2126;white-space:nowrap;background:#eaecf1;border-radius:2px;line-height:18px}.paraui-v4-tag .tag-custom-icon:hover{background:none !important;cursor:default}.paraui-v4-tag .tag-close-icon:hover{background-color:#d4dae3}.paraui-v4-tag .tag-edit-icon{display:flex}.paraui-v4-tag.paraui-v4-tag-small{height:20px;font-size:12px;padding:0 6px}.paraui-v4-tag.paraui-v4-tag-small>svg{font-size:12px}.paraui-v4-tag.paraui-v4-tag-small>svg+.paraui-v4-auto-tips{margin-left:2px}.paraui-v4-tag.paraui-v4-tag-small .tag-close-icon{margin-left:2px}.paraui-v4-tag.paraui-v4-tag-small .tag-edit-icon{font-size:12px}.paraui-v4-tag>svg{color:inherit;font-size:16px}.paraui-v4-tag .tag-edit-icon{color:inherit;font-size:16px;cursor:pointer}.paraui-v4-tag .tag-edit-icon>svg{color:#1d2126}.paraui-v4-tag .tag-close-icon{margin-left:4px;color:inherit;font-size:16px;cursor:pointer}.paraui-v4-tag .tag-close-icon:hover{color:inherit}.paraui-v4-tag>svg+.paraui-v4-auto-tips{margin-left:4px}.paraui-v4-tag.paraui-v4-tag-has-color,.paraui-v4-tag.paraui-v4-tag-has-color svg,.paraui-v4-tag.paraui-v4-tag-has-color svg:hover{color:inherit}.paraui-v4-tag.paraui-v4-tag-blue{color:#2e65e6;background-color:rgba(46,101,230,.1)}.paraui-v4-tag.paraui-v4-tag-green{color:#13bf4c;background-color:rgba(19,191,76,.1)}.paraui-v4-tag.paraui-v4-tag-yellow{color:#ff9326;background-color:rgba(255,147,38,.1)}.paraui-v4-tag.paraui-v4-tag-red{color:#f44242;background-color:rgba(244,66,66,.1)}.paraui-v4-tag.paraui-v4-tag-hidden{display:none}.paraui-v4-tag-small svg{font-size:12px}.paraui-v4-tag-group{display:flex;align-items:center;flex-flow:row wrap}.paraui-v4-tag-group .tag-group-input{height:24px;align-self:flex-start;font-size:14px;color:#1d2126;text-indent:8px;border:1px solid #2e65e6;border-radius:4px}.paraui-v4-tag-group .tag-group-input .tag-group-input-large{height:28px}.paraui-v4-tag-group .tag-group-new .tag-group-new-icon{padding:0 5px}.paraui-v4-tag-group .tag-group-add-btn{border:1px dashed #d4dae3}.paraui-v4-tag-group .tag-group-add-btn .tag-edit-icon{background:none !important}.paraui-v4-tag-group .tag-group-add-btn:hover{cursor:pointer}.paraui-v4-tag-group .tag-group-add-btn:hover svg{color:#2e65e6}.paraui-v4-tag-group .tag-group-add-btn:hover .tag-text{color:#2e65e6}
1
+ .paraui-v4-tag-outline.paraui-v4-tag{border:.5px solid #5c6573}.paraui-v4-tag-outline.paraui-v4-tag-blue{border:.5px solid #2e65e6}.paraui-v4-tag-outline.paraui-v4-tag-green{border:.5px solid #13bf4c}.paraui-v4-tag-outline.paraui-v4-tag-yellow{border:.5px solid #ff9326}.paraui-v4-tag-outline.paraui-v4-tag-red{border:.5px solid #f44242}.paraui-v4-tag-edit-input{align-self:flex-start;height:24px;font-size:14px;color:#1d2126;text-indent:8px;border:1px solid #2e65e6;border-radius:4px}.paraui-v4-tag{display:inline-flex;align-items:center;justify-content:center;max-width:100%;height:24px;padding:0 10px;font-size:14px;line-height:18px;color:#1d2126;white-space:nowrap;vertical-align:bottom;background:#eaecf1;border-radius:2px}.paraui-v4-tag .tag-custom-icon:hover{cursor:default;background:none !important}.paraui-v4-tag .tag-close-icon:hover{background-color:#d4dae3}.paraui-v4-tag .tag-edit-icon{display:flex}.paraui-v4-tag.paraui-v4-tag-large{line-height:28px}.paraui-v4-tag.paraui-v4-tag-medium{line-height:24px}.paraui-v4-tag.paraui-v4-tag-small{height:20px;padding:0 6px;font-size:12px}.paraui-v4-tag.paraui-v4-tag-small>svg{font-size:12px}.paraui-v4-tag.paraui-v4-tag-small>svg+.paraui-v4-auto-tips{margin-left:2px}.paraui-v4-tag.paraui-v4-tag-small .tag-close-icon{margin-left:2px}.paraui-v4-tag.paraui-v4-tag-small .tag-edit-icon{font-size:12px}.paraui-v4-tag>svg{font-size:16px;color:inherit}.paraui-v4-tag .tag-edit-icon{font-size:16px;color:inherit;cursor:pointer}.paraui-v4-tag .tag-edit-icon>svg{color:#1d2126}.paraui-v4-tag .tag-close-icon{margin-left:4px;font-size:16px;color:inherit;cursor:pointer}.paraui-v4-tag .tag-close-icon:hover{color:inherit}.paraui-v4-tag>svg+.paraui-v4-auto-tips{margin-left:4px}.paraui-v4-tag.paraui-v4-tag-has-color,.paraui-v4-tag.paraui-v4-tag-has-color svg,.paraui-v4-tag.paraui-v4-tag-has-color svg:hover{color:inherit}.paraui-v4-tag.paraui-v4-tag-blue{color:#2e65e6;background-color:rgba(46,101,230,.1)}.paraui-v4-tag.paraui-v4-tag-green{color:#13bf4c;background-color:rgba(19,191,76,.1)}.paraui-v4-tag.paraui-v4-tag-yellow{color:#ff9326;background-color:rgba(255,147,38,.1)}.paraui-v4-tag.paraui-v4-tag-red{color:#f44242;background-color:rgba(244,66,66,.1)}.paraui-v4-tag.paraui-v4-tag-hidden{display:none}.paraui-v4-tag-small svg{font-size:12px}.paraui-v4-tag-group{display:flex;flex-flow:row wrap;align-items:center}.paraui-v4-tag-group .tag-group-input{align-self:flex-start;height:24px;font-size:14px;color:#1d2126;text-indent:8px;border:1px solid #2e65e6;border-radius:4px}.paraui-v4-tag-group .tag-group-input .tag-group-input-large{height:28px}.paraui-v4-tag-group .tag-group-new .tag-group-new-icon{padding:0 5px}.paraui-v4-tag-group .tag-group-add-btn{border:1px dashed #d4dae3}.paraui-v4-tag-group .tag-group-add-btn .tag-edit-icon{background:none !important}.paraui-v4-tag-group .tag-group-add-btn:hover{cursor:pointer}.paraui-v4-tag-group .tag-group-add-btn:hover svg{color:#2e65e6}.paraui-v4-tag-group .tag-group-add-btn:hover .tag-text{color:#2e65e6}