@para-ui/core 5.0.0-beta.8 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (735) hide show
  1. package/AGENTS.md +315 -0
  2. package/AlignBox/component.json +89 -0
  3. package/Anchor/component.json +130 -0
  4. package/Argv/component.json +216 -0
  5. package/AutoBox/component.json +133 -0
  6. package/AutoButton/component.json +109 -0
  7. package/AutoTips/component.json +121 -0
  8. package/Badge/component.json +92 -0
  9. package/Breadcrumbs/component.json +142 -0
  10. package/Button/component.json +168 -0
  11. package/ButtonGroup/component.json +132 -0
  12. package/Card/component.json +162 -0
  13. package/Carousel/component.json +142 -0
  14. package/Cascader/component.json +196 -0
  15. package/Checkbox/component.json +138 -0
  16. package/CheckboxGroup/component.json +152 -0
  17. package/CodeEditor/component.json +189 -0
  18. package/Collapse/component.json +166 -0
  19. package/CollapseBox/component.json +84 -0
  20. package/CollapseLayout/component.json +155 -0
  21. package/ColorPicker/component.json +142 -0
  22. package/ComboSelect/component.json +181 -0
  23. package/Container/component.json +111 -0
  24. package/ContentBox/component.json +81 -0
  25. package/CopyText/component.json +118 -0
  26. package/CycleSelector/component.json +98 -0
  27. package/DatePicker/component.json +192 -0
  28. package/Descriptions/component.json +142 -0
  29. package/Desktop/component.json +171 -0
  30. package/DragVerify/component.json +114 -0
  31. package/Drawer/component.json +200 -0
  32. package/Dropdown/component.json +147 -0
  33. package/DynamicMultiBox/component.json +278 -0
  34. package/Empty/component.json +123 -0
  35. package/ExpressionInput/component.json +79 -0
  36. package/FieldForm/component.json +196 -0
  37. package/Form/component.json +161 -0
  38. package/FormItem/component.json +171 -0
  39. package/FunctionModal/component.json +197 -0
  40. package/Help/component.json +118 -0
  41. package/HelperText/component.json +126 -0
  42. package/Image/component.json +165 -0
  43. package/InputCode/component.json +191 -0
  44. package/InputLang/component.json +205 -0
  45. package/InputNumber/component.json +162 -0
  46. package/Label/component.json +126 -0
  47. package/Loading/component.json +91 -0
  48. package/Menu/component.json +180 -0
  49. package/Message/component.json +246 -0
  50. package/Modal/component.json +277 -0
  51. package/MultiBox/component.json +216 -0
  52. package/Notification/component.json +184 -0
  53. package/OperateBtn/component.json +134 -0
  54. package/PageHeader/component.json +112 -0
  55. package/Pagination/component.json +181 -0
  56. package/PasswordRules/component.json +105 -0
  57. package/PopConfirm/component.json +227 -0
  58. package/PopMenu/component.json +131 -0
  59. package/Popover/component.json +165 -0
  60. package/Progress/component.json +161 -0
  61. package/Prompt/component.json +144 -0
  62. package/Querying/component.json +96 -0
  63. package/QuickReply/component.json +129 -0
  64. package/README.md +0 -5
  65. package/Radio/component.json +136 -0
  66. package/RadioGroup/component.json +149 -0
  67. package/RangeInput/component.json +198 -0
  68. package/Result/component.json +104 -0
  69. package/ScrollBar/component.json +115 -0
  70. package/Search/component.json +177 -0
  71. package/Select/component.json +244 -0
  72. package/SelectInput/component.json +184 -0
  73. package/Selector/component.json +203 -0
  74. package/SelectorPicker/component.json +179 -0
  75. package/SingleBox/component.json +151 -0
  76. package/Slider/component.json +181 -0
  77. package/SortBox/component.json +108 -0
  78. package/Status/component.json +104 -0
  79. package/Stepper/component.json +129 -0
  80. package/Switch/component.json +207 -0
  81. package/Table/component.json +547 -0
  82. package/Tabs/component.json +227 -0
  83. package/Tag/component.json +221 -0
  84. package/TextEditor/component.json +186 -0
  85. package/TextField/component.json +290 -0
  86. package/TimePicker/component.json +176 -0
  87. package/Timeline/component.json +110 -0
  88. package/Title/component.json +156 -0
  89. package/ToggleButton/component.json +153 -0
  90. package/Tooltip/component.json +176 -0
  91. package/Transfer/component.json +157 -0
  92. package/Tree/component.json +512 -0
  93. package/Upload/component.json +450 -0
  94. package/ai-workflows/01-crud-list-multi-drawer.md +278 -0
  95. package/ai-workflows/02-rbac-operation-buttons.md +290 -0
  96. package/ai-workflows/03-complex-form-async-cascade.md +350 -0
  97. package/ai-workflows/04-array-field-form.md +281 -0
  98. package/ai-workflows/05-popconfirm-async-message-queue.md +333 -0
  99. package/ai-workflows/06-modal-drawer-form-workflow.md +385 -0
  100. package/ai-workflows/07-search-filter-table-trio.md +387 -0
  101. package/ai-workflows/08-table-advanced-features.md +365 -0
  102. package/ai-workflows/09-batch-operation-export-progress.md +367 -0
  103. package/ai-workflows/10-cross-component-state-coordination.md +412 -0
  104. package/es/AlignBox/component.json +89 -0
  105. package/es/AlignBox/index.css +1 -1
  106. package/es/AlignBox/index.d.ts +6 -2
  107. package/es/AlignBox/index.js +1 -1
  108. package/es/AlignBox/style/index.css +1 -1
  109. package/es/Anchor/anchorMenu/index.d.ts +2 -1
  110. package/es/Anchor/anchorMenu/index.js +36 -33
  111. package/es/Anchor/component.json +130 -0
  112. package/es/Anchor/index.js +52 -49
  113. package/es/Anchor/type.d.ts +8 -4
  114. package/es/Argv/batchEdit/index.js +1 -1
  115. package/es/Argv/component.json +216 -0
  116. package/es/Argv/dataGenerator/index.js +1 -1
  117. package/es/Argv/index.d.ts +5 -6
  118. package/es/Argv/index.js +1 -1
  119. package/es/AutoBox/component.json +133 -0
  120. package/es/AutoBox/index.d.ts +3 -3
  121. package/es/AutoBox/index.js +1 -1
  122. package/es/AutoBox/protal.d.ts +2 -2
  123. package/es/AutoBox/protal.js +33 -30
  124. package/es/AutoButton/component.json +109 -0
  125. package/es/AutoButton/index.js +1 -1
  126. package/es/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  127. package/es/AutoTips/autoTipsMultiline/index.js +1 -1
  128. package/es/AutoTips/component.json +121 -0
  129. package/es/AutoTips/index.js +1 -1
  130. package/es/Badge/component.json +92 -0
  131. package/es/Breadcrumbs/component.json +142 -0
  132. package/es/Breadcrumbs/index.js +1 -1
  133. package/es/Button/SplitButton.d.ts +2 -2
  134. package/es/Button/component.json +168 -0
  135. package/es/Button/index.js +44 -44
  136. package/es/ButtonGroup/component.json +132 -0
  137. package/es/ButtonGroup/index.d.ts +1 -1
  138. package/es/Card/component.json +162 -0
  139. package/es/Card/index.d.ts +2 -2
  140. package/es/Card/index.js +2 -2
  141. package/es/Carousel/component.json +142 -0
  142. package/es/Carousel/index.d.ts +1 -1
  143. package/es/Cascader/Cascader.js +1 -1
  144. package/es/Cascader/OptionList/Column.js +1 -1
  145. package/es/Cascader/OptionList/index.js +1 -1
  146. package/es/Cascader/component.json +196 -0
  147. package/es/Cascader/hooks/useEntities.js +7 -7
  148. package/es/Cascader/interface.d.ts +1 -0
  149. package/es/Cascader/utils/commonUtil.d.ts +1 -1
  150. package/es/Cascader/utils/commonUtil.js +16 -16
  151. package/es/Cascader/utils/treeUtil.d.ts +14 -5
  152. package/es/Cascader/utils/treeUtil.js +1 -1
  153. package/es/Checkbox/component.json +138 -0
  154. package/es/CheckboxGroup/component.json +152 -0
  155. package/es/CheckboxGroup/index.js +1 -1
  156. package/es/CodeEditor/component.json +189 -0
  157. package/es/CodeEditor/index.d.ts +11 -10
  158. package/es/CodeEditor/index.js +25 -25
  159. package/es/Collapse/component.json +166 -0
  160. package/es/Collapse/index.d.ts +1 -1
  161. package/es/Collapse/index.js +23 -22
  162. package/es/CollapseBox/component.json +84 -0
  163. package/es/CollapseLayout/component.json +155 -0
  164. package/es/ColorPicker/component.json +142 -0
  165. package/es/ComboSelect/component.json +181 -0
  166. package/es/ComboSelect/index.js +115 -109
  167. package/es/ComboSelect/interface.d.ts +2 -2
  168. package/es/ComboSelect/utils.d.ts +3 -3
  169. package/es/ComboSelect/utils.js +1 -1
  170. package/es/Container/component.json +111 -0
  171. package/es/ContentBox/component.json +81 -0
  172. package/es/CopyText/component.json +118 -0
  173. package/es/CycleSelector/component.json +98 -0
  174. package/es/CycleSelector/index.js +14 -13
  175. package/es/DatePicker/component.json +192 -0
  176. package/es/DatePicker/generatePicker/generateRangePicker.js +11 -11
  177. package/es/DatePicker/generatePicker/generateSinglePicker.js +2 -2
  178. package/es/Descriptions/component.json +142 -0
  179. package/es/Descriptions/index.d.ts +1 -1
  180. package/es/Desktop/component.json +171 -0
  181. package/es/Desktop/index.js +1 -1
  182. package/es/DragVerify/component.json +114 -0
  183. package/es/DragVerify/index.js +19 -19
  184. package/es/Drawer/component.json +200 -0
  185. package/es/Drawer/index.js +86 -86
  186. package/es/Drawer/interface.d.ts +1 -1
  187. package/es/Drawer/util.d.ts +1 -6
  188. package/es/Drawer/util.js +9 -6
  189. package/es/Dropdown/component.json +147 -0
  190. package/es/Dropdown/index.js +1 -1
  191. package/es/DynamicMultiBox/component.json +278 -0
  192. package/es/DynamicMultiBox/formItem.d.ts +1 -1
  193. package/es/DynamicMultiBox/index.d.ts +2 -2
  194. package/es/DynamicMultiBox/index.js +1 -1
  195. package/es/DynamicMultiBox/interface.d.ts +76 -76
  196. package/es/DynamicMultiBox/rowForm.d.ts +2 -2
  197. package/es/Empty/component.json +123 -0
  198. package/es/Empty/index.css +1 -1
  199. package/es/Empty/index.d.ts +2 -2
  200. package/es/Empty/index.js +27 -26
  201. package/es/Empty/style/index.css +1 -1
  202. package/es/ExpressionInput/HighlightOverlay.d.ts +8 -0
  203. package/es/ExpressionInput/HighlightOverlay.js +27 -0
  204. package/es/ExpressionInput/Popup.d.ts +19 -0
  205. package/es/ExpressionInput/Popup.js +93 -0
  206. package/es/ExpressionInput/component.json +79 -0
  207. package/es/ExpressionInput/detectChainAtCursor.d.ts +17 -0
  208. package/es/ExpressionInput/detectChainAtCursor.js +31 -0
  209. package/es/ExpressionInput/filterCandidatesByPartial.d.ts +2 -0
  210. package/es/ExpressionInput/filterCandidatesByPartial.js +15 -0
  211. package/es/ExpressionInput/highlightSegments.d.ts +9 -0
  212. package/es/ExpressionInput/highlightSegments.js +14 -0
  213. package/es/ExpressionInput/index.css +1 -0
  214. package/es/ExpressionInput/index.d.ts +5 -0
  215. package/es/ExpressionInput/index.js +178 -0
  216. package/es/ExpressionInput/interface.d.ts +52 -0
  217. package/es/ExpressionInput/isExpressionValue.d.ts +5 -0
  218. package/es/ExpressionInput/isExpressionValue.js +18 -0
  219. package/es/ExpressionInput/lang/en_US.d.ts +4 -0
  220. package/es/ExpressionInput/lang/en_US.js +7 -0
  221. package/es/ExpressionInput/lang/index.d.ts +9 -0
  222. package/es/ExpressionInput/lang/index.js +10 -0
  223. package/es/ExpressionInput/lang/zh_CN.d.ts +4 -0
  224. package/es/ExpressionInput/lang/zh_CN.js +7 -0
  225. package/es/ExpressionInput/style/css.js +1 -0
  226. package/es/ExpressionInput/style/index.css +1 -0
  227. package/es/ExpressionInput/style/index.js +1 -0
  228. package/es/ExpressionInput/useExpressionInput.d.ts +26 -0
  229. package/es/ExpressionInput/useExpressionInput.js +59 -0
  230. package/es/FieldForm/FieldFormItem/ItemHolder.js +1 -1
  231. package/es/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  232. package/es/FieldForm/FieldFormItem/StatusProvider.js +1 -1
  233. package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
  234. package/es/FieldForm/Form.d.ts +2 -2
  235. package/es/FieldForm/Form.js +1 -1
  236. package/es/FieldForm/FormItemInput.js +1 -1
  237. package/es/FieldForm/FormItemLabel.js +1 -1
  238. package/es/FieldForm/FormList.d.ts +2 -2
  239. package/es/FieldForm/component.json +196 -0
  240. package/es/FieldForm/context.d.ts +5 -1
  241. package/es/FieldForm/context.js +2 -2
  242. package/es/FieldForm/hooks/useForm.d.ts +4 -3
  243. package/es/FieldForm/hooks/useFormInstance.d.ts +1 -1
  244. package/es/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  245. package/es/FieldForm/hooks/useFormItemStatus.js +2 -2
  246. package/es/FieldForm/hooks/useItemRef.d.ts +1 -1
  247. package/es/FieldForm/hooks/useItemRef.js +6 -6
  248. package/es/Form/component.json +161 -0
  249. package/es/Form/index.d.ts +52 -49
  250. package/es/Form/index.js +1 -1
  251. package/es/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  252. package/es/FormItem/compoments/defaultCompoments/index.js +12 -11
  253. package/es/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  254. package/es/FormItem/compoments/formFile/index.js +8 -8
  255. package/es/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  256. package/es/FormItem/compoments/formSelect/index.d.ts +1 -1
  257. package/es/FormItem/component.json +171 -0
  258. package/es/FormItem/index.d.ts +5 -5
  259. package/es/FormItem/index.js +23 -23
  260. package/es/FormItem/itemType.js +1 -1
  261. package/es/FunctionModal/component.json +197 -0
  262. package/es/FunctionModal/dialog.d.ts +1 -1
  263. package/es/FunctionModal/modalContext.d.ts +4 -1
  264. package/es/GlobalContext/confirmLocale.js +1 -1
  265. package/es/GlobalContext/index.js +1 -1
  266. package/es/Help/component.json +118 -0
  267. package/es/HelperText/component.json +126 -0
  268. package/es/Image/PreviewGroup.js +1 -1
  269. package/es/Image/component.json +165 -0
  270. package/es/Image/index.js +1 -1
  271. package/es/InputCode/component.json +191 -0
  272. package/es/InputCode/index.d.ts +2 -2
  273. package/es/InputCode/index.js +1 -1
  274. package/es/InputLang/component.json +205 -0
  275. package/es/InputLang/index.js +2 -2
  276. package/es/InputNumber/component.json +162 -0
  277. package/es/InputNumber/index.d.ts +13 -7
  278. package/es/InputNumber/index.js +152 -144
  279. package/es/Label/component.json +126 -0
  280. package/es/Label/index.d.ts +2 -2
  281. package/es/Loading/component.json +91 -0
  282. package/es/Menu/component.json +180 -0
  283. package/es/Menu/verticalMenuList.js +1 -1
  284. package/es/Message/component.json +246 -0
  285. package/es/Message/index.d.ts +2 -2
  286. package/es/Message/index.js +19 -19
  287. package/es/Modal/Confirm/index.d.ts +1 -1
  288. package/es/Modal/Confirm/index.js +1 -1
  289. package/es/Modal/component.json +277 -0
  290. package/es/Modal/index.d.ts +85 -5
  291. package/es/Modal/index.js +159 -122
  292. package/es/Modal/interface.d.ts +1 -0
  293. package/es/MultiBox/component.json +216 -0
  294. package/es/MultiBox/index.js +19 -14
  295. package/es/Notification/component.json +184 -0
  296. package/es/OperateBtn/component.json +134 -0
  297. package/es/OperateBtn/index.d.ts +3 -3
  298. package/es/PageHeader/component.json +112 -0
  299. package/es/PageHeader/horizontalMeun.js +1 -1
  300. package/es/PageHeader/horizontalMeunRight.js +1 -1
  301. package/es/Pagination/component.json +181 -0
  302. package/es/Pagination/index.js +15 -15
  303. package/es/ParauiProvider/index.js +1 -1
  304. package/es/PasswordRules/component.json +105 -0
  305. package/es/PasswordRules/index.d.ts +4 -4
  306. package/es/PopConfirm/component.json +227 -0
  307. package/es/PopConfirm/index.d.ts +1 -1
  308. package/es/PopConfirm/index.js +1 -1
  309. package/es/PopMenu/component.json +131 -0
  310. package/es/PopMenu/hooks.d.ts +1 -1
  311. package/es/PopMenu/index.js +8 -8
  312. package/es/Popover/component.json +165 -0
  313. package/es/Popover/index.js +1 -1
  314. package/es/Progress/component.json +161 -0
  315. package/es/Prompt/component.json +144 -0
  316. package/es/Querying/component.json +96 -0
  317. package/es/Querying/index.css +1 -1
  318. package/es/Querying/index.d.ts +2 -2
  319. package/es/Querying/index.js +20 -19
  320. package/es/Querying/style/index.css +1 -1
  321. package/es/QuickReply/QuickReplyCode/index.js +1 -1
  322. package/es/QuickReply/component.json +129 -0
  323. package/es/QuickReply/index.d.ts +1 -1
  324. package/es/Radio/component.json +136 -0
  325. package/es/RadioGroup/component.json +149 -0
  326. package/es/RangeInput/component.json +198 -0
  327. package/es/RangeInput/index.d.ts +15 -7
  328. package/es/RangeInput/index.js +120 -103
  329. package/es/Result/component.json +104 -0
  330. package/es/ScrollBar/component.json +115 -0
  331. package/es/Search/component.json +177 -0
  332. package/es/Search/index.d.ts +1 -1
  333. package/es/Select/component.json +244 -0
  334. package/es/Select/index.d.ts +11 -8
  335. package/es/Select/index.js +441 -438
  336. package/es/SelectInput/component.json +184 -0
  337. package/es/SelectInput/index.d.ts +4 -4
  338. package/es/SelectInput/index.js +8 -8
  339. package/es/Selector/component.json +203 -0
  340. package/es/Selector/index.js +56 -50
  341. package/es/Selector/interface.d.ts +2 -2
  342. package/es/Selector/selectorData/index.js +1 -1
  343. package/es/Selector/selectorMain/index.js +3 -3
  344. package/es/Selector/selectorNode/index.js +1 -1
  345. package/es/Selector/util.d.ts +3 -3
  346. package/es/Selector/util.js +6 -12
  347. package/es/SelectorPicker/component.json +179 -0
  348. package/es/SelectorPicker/index.d.ts +5 -5
  349. package/es/SelectorPicker/index.js +15 -15
  350. package/es/SingleBox/component.json +151 -0
  351. package/es/SingleBox/index.d.ts +2 -2
  352. package/es/Slider/component.json +181 -0
  353. package/es/SortBox/component.json +108 -0
  354. package/es/Status/component.json +104 -0
  355. package/es/Stepper/component.json +129 -0
  356. package/es/Stepper/index.d.ts +2 -2
  357. package/es/Switch/component.json +207 -0
  358. package/es/Switch/index.css +1 -1
  359. package/es/Switch/index.d.ts +3 -2
  360. package/es/Switch/index.js +60 -59
  361. package/es/Switch/style/index.css +1 -1
  362. package/es/Table/component.json +547 -0
  363. package/es/Table/index.d.ts +2 -2
  364. package/es/Table/index.js +385 -382
  365. package/es/Table/interface.d.ts +30 -0
  366. package/es/Table/tableHead.js +1 -1
  367. package/es/Table/util.d.ts +1 -1
  368. package/es/Table/util.js +3 -12
  369. package/es/Tabs/component.json +227 -0
  370. package/es/Tag/component.json +221 -0
  371. package/es/Tag/index.css +1 -1
  372. package/es/Tag/index.d.ts +1 -1
  373. package/es/Tag/index.js +20 -20
  374. package/es/Tag/style/index.css +1 -1
  375. package/es/TextEditor/component.json +186 -0
  376. package/es/TextEditor/index.d.ts +5 -5
  377. package/es/TextEditor/index.js +1 -1
  378. package/es/TextField/component.json +290 -0
  379. package/es/TextField/index.d.ts +2 -2
  380. package/es/TextField/index.js +1 -1
  381. package/es/TimePicker/component.json +176 -0
  382. package/es/Timeline/component.json +110 -0
  383. package/es/Title/component.json +156 -0
  384. package/es/ToggleButton/component.json +153 -0
  385. package/es/ToggleButton/index.js +1 -1
  386. package/es/Tooltip/component.json +176 -0
  387. package/es/Tooltip/index.js +58 -53
  388. package/es/Tooltip/interface.d.ts +14 -1
  389. package/es/Tooltip/utils.js +6 -6
  390. package/es/Transfer/component.json +157 -0
  391. package/es/Tree/OperateBar/index.js +1 -1
  392. package/es/Tree/Tree.js +3 -3
  393. package/es/Tree/component.json +512 -0
  394. package/es/Tree/interface.d.ts +1 -1
  395. package/es/Upload/component.json +450 -0
  396. package/es/Upload/util.js +1 -1
  397. package/es/Utils/snack-kit-shims.d.ts +18 -0
  398. package/es/Utils/snack-kit-shims.js +19 -0
  399. package/es/Utils/type.d.ts +0 -6
  400. package/es/_virtual/index.js +5 -3
  401. package/es/_virtual/index2.js +2 -5
  402. package/es/index.d.ts +4 -0
  403. package/es/index.js +152 -150
  404. package/es/locale/en-US.d.ts +3 -0
  405. package/es/locale/en-US.js +3 -0
  406. package/es/locale/en_US.d.ts +361 -0
  407. package/es/locale/en_US.js +364 -0
  408. package/es/locale/index.d.ts +1 -723
  409. package/es/locale/index2.js +10 -0
  410. package/es/locale/zh-CN.d.ts +3 -0
  411. package/es/locale/zh-CN.js +3 -0
  412. package/es/locale/zh_CN.d.ts +361 -0
  413. package/es/locale/zh_CN.js +364 -0
  414. package/es/node_modules/classnames/index.js +1 -1
  415. package/lib/AlignBox/component.json +89 -0
  416. package/lib/AlignBox/index.css +1 -1
  417. package/lib/AlignBox/index.d.ts +6 -2
  418. package/lib/AlignBox/index.js +1 -1
  419. package/lib/AlignBox/style/index.css +1 -1
  420. package/lib/Anchor/anchorMenu/index.d.ts +2 -1
  421. package/lib/Anchor/anchorMenu/index.js +1 -1
  422. package/lib/Anchor/component.json +130 -0
  423. package/lib/Anchor/index.js +1 -1
  424. package/lib/Anchor/type.d.ts +8 -4
  425. package/lib/Argv/component.json +216 -0
  426. package/lib/Argv/dataGenerator/index.js +1 -1
  427. package/lib/Argv/index.d.ts +5 -6
  428. package/lib/Argv/index.js +1 -1
  429. package/lib/AutoBox/component.json +133 -0
  430. package/lib/AutoBox/index.d.ts +3 -3
  431. package/lib/AutoBox/index.js +1 -1
  432. package/lib/AutoBox/protal.d.ts +2 -2
  433. package/lib/AutoBox/protal.js +1 -1
  434. package/lib/AutoButton/component.json +109 -0
  435. package/lib/AutoButton/index.js +1 -1
  436. package/lib/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  437. package/lib/AutoTips/autoTipsMultiline/index.js +1 -1
  438. package/lib/AutoTips/component.json +121 -0
  439. package/lib/AutoTips/index.js +1 -1
  440. package/lib/Badge/component.json +92 -0
  441. package/lib/Breadcrumbs/component.json +142 -0
  442. package/lib/Breadcrumbs/index.js +1 -1
  443. package/lib/Button/SplitButton.d.ts +2 -2
  444. package/lib/Button/component.json +168 -0
  445. package/lib/Button/index.js +1 -1
  446. package/lib/ButtonGroup/component.json +132 -0
  447. package/lib/ButtonGroup/index.d.ts +1 -1
  448. package/lib/Card/component.json +162 -0
  449. package/lib/Card/index.d.ts +2 -2
  450. package/lib/Card/index.js +1 -1
  451. package/lib/Carousel/component.json +142 -0
  452. package/lib/Carousel/index.d.ts +1 -1
  453. package/lib/Cascader/Cascader.js +1 -1
  454. package/lib/Cascader/OptionList/Column.js +1 -1
  455. package/lib/Cascader/OptionList/index.js +1 -1
  456. package/lib/Cascader/component.json +196 -0
  457. package/lib/Cascader/hooks/useEntities.js +1 -1
  458. package/lib/Cascader/interface.d.ts +1 -0
  459. package/lib/Cascader/utils/commonUtil.d.ts +1 -1
  460. package/lib/Cascader/utils/commonUtil.js +1 -1
  461. package/lib/Cascader/utils/treeUtil.d.ts +14 -5
  462. package/lib/Cascader/utils/treeUtil.js +1 -1
  463. package/lib/Checkbox/component.json +138 -0
  464. package/lib/CheckboxGroup/component.json +152 -0
  465. package/lib/CheckboxGroup/index.js +1 -1
  466. package/lib/CodeEditor/component.json +189 -0
  467. package/lib/CodeEditor/index.d.ts +11 -10
  468. package/lib/CodeEditor/index.js +1 -1
  469. package/lib/Collapse/component.json +166 -0
  470. package/lib/Collapse/index.d.ts +1 -1
  471. package/lib/Collapse/index.js +1 -1
  472. package/lib/CollapseBox/component.json +84 -0
  473. package/lib/CollapseLayout/component.json +155 -0
  474. package/lib/ColorPicker/component.json +142 -0
  475. package/lib/ComboSelect/component.json +181 -0
  476. package/lib/ComboSelect/index.js +1 -1
  477. package/lib/ComboSelect/interface.d.ts +2 -2
  478. package/lib/ComboSelect/utils.d.ts +3 -3
  479. package/lib/ComboSelect/utils.js +1 -1
  480. package/lib/Container/component.json +111 -0
  481. package/lib/ContentBox/component.json +81 -0
  482. package/lib/CopyText/component.json +118 -0
  483. package/lib/CycleSelector/component.json +98 -0
  484. package/lib/CycleSelector/index.js +1 -1
  485. package/lib/DatePicker/component.json +192 -0
  486. package/lib/DatePicker/generatePicker/generateRangePicker.js +1 -1
  487. package/lib/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  488. package/lib/Descriptions/component.json +142 -0
  489. package/lib/Descriptions/index.d.ts +1 -1
  490. package/lib/Desktop/component.json +171 -0
  491. package/lib/Desktop/index.js +1 -1
  492. package/lib/DragVerify/component.json +114 -0
  493. package/lib/DragVerify/index.js +1 -1
  494. package/lib/Drawer/component.json +200 -0
  495. package/lib/Drawer/index.js +1 -1
  496. package/lib/Drawer/interface.d.ts +1 -1
  497. package/lib/Drawer/util.d.ts +1 -6
  498. package/lib/Drawer/util.js +1 -1
  499. package/lib/Dropdown/component.json +147 -0
  500. package/lib/Dropdown/index.js +1 -1
  501. package/lib/DynamicMultiBox/component.json +278 -0
  502. package/lib/DynamicMultiBox/formItem.d.ts +1 -1
  503. package/lib/DynamicMultiBox/index.d.ts +2 -2
  504. package/lib/DynamicMultiBox/index.js +1 -1
  505. package/lib/DynamicMultiBox/interface.d.ts +76 -76
  506. package/lib/DynamicMultiBox/rowForm.d.ts +2 -2
  507. package/lib/Empty/component.json +123 -0
  508. package/lib/Empty/index.css +1 -1
  509. package/lib/Empty/index.d.ts +2 -2
  510. package/lib/Empty/index.js +1 -1
  511. package/lib/Empty/style/index.css +1 -1
  512. package/lib/ExpressionInput/HighlightOverlay.d.ts +8 -0
  513. package/lib/ExpressionInput/HighlightOverlay.js +2 -0
  514. package/lib/ExpressionInput/Popup.d.ts +19 -0
  515. package/lib/ExpressionInput/Popup.js +2 -0
  516. package/lib/ExpressionInput/component.json +79 -0
  517. package/lib/ExpressionInput/detectChainAtCursor.d.ts +17 -0
  518. package/lib/ExpressionInput/detectChainAtCursor.js +2 -0
  519. package/lib/ExpressionInput/filterCandidatesByPartial.d.ts +2 -0
  520. package/lib/ExpressionInput/filterCandidatesByPartial.js +2 -0
  521. package/lib/ExpressionInput/highlightSegments.d.ts +9 -0
  522. package/lib/ExpressionInput/highlightSegments.js +2 -0
  523. package/lib/ExpressionInput/index.css +1 -0
  524. package/lib/ExpressionInput/index.d.ts +5 -0
  525. package/lib/ExpressionInput/index.js +2 -0
  526. package/lib/ExpressionInput/interface.d.ts +52 -0
  527. package/lib/ExpressionInput/isExpressionValue.d.ts +5 -0
  528. package/lib/ExpressionInput/isExpressionValue.js +2 -0
  529. package/lib/ExpressionInput/lang/en_US.d.ts +4 -0
  530. package/lib/ExpressionInput/lang/en_US.js +2 -0
  531. package/lib/ExpressionInput/lang/index.d.ts +9 -0
  532. package/lib/ExpressionInput/lang/index.js +2 -0
  533. package/lib/ExpressionInput/lang/zh_CN.d.ts +4 -0
  534. package/lib/ExpressionInput/lang/zh_CN.js +2 -0
  535. package/lib/ExpressionInput/style/css.js +1 -0
  536. package/lib/ExpressionInput/style/index.css +1 -0
  537. package/lib/ExpressionInput/style/index.js +1 -0
  538. package/lib/ExpressionInput/useExpressionInput.d.ts +26 -0
  539. package/lib/ExpressionInput/useExpressionInput.js +2 -0
  540. package/lib/FieldForm/FieldFormItem/ItemHolder.js +1 -1
  541. package/lib/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  542. package/lib/FieldForm/FieldFormItem/StatusProvider.js +1 -1
  543. package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
  544. package/lib/FieldForm/Form.d.ts +2 -2
  545. package/lib/FieldForm/Form.js +1 -1
  546. package/lib/FieldForm/FormItemInput.js +1 -1
  547. package/lib/FieldForm/FormItemLabel.js +1 -1
  548. package/lib/FieldForm/FormList.d.ts +2 -2
  549. package/lib/FieldForm/component.json +196 -0
  550. package/lib/FieldForm/context.d.ts +5 -1
  551. package/lib/FieldForm/context.js +1 -1
  552. package/lib/FieldForm/hooks/useForm.d.ts +4 -3
  553. package/lib/FieldForm/hooks/useFormInstance.d.ts +1 -1
  554. package/lib/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  555. package/lib/FieldForm/hooks/useFormItemStatus.js +1 -1
  556. package/lib/FieldForm/hooks/useItemRef.d.ts +1 -1
  557. package/lib/FieldForm/hooks/useItemRef.js +1 -1
  558. package/lib/Form/component.json +161 -0
  559. package/lib/Form/index.d.ts +52 -49
  560. package/lib/Form/index.js +1 -1
  561. package/lib/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  562. package/lib/FormItem/compoments/defaultCompoments/index.js +1 -1
  563. package/lib/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  564. package/lib/FormItem/compoments/formFile/index.js +1 -1
  565. package/lib/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  566. package/lib/FormItem/compoments/formSelect/index.d.ts +1 -1
  567. package/lib/FormItem/component.json +171 -0
  568. package/lib/FormItem/index.d.ts +5 -5
  569. package/lib/FormItem/index.js +1 -1
  570. package/lib/FormItem/itemType.js +1 -1
  571. package/lib/FunctionModal/component.json +197 -0
  572. package/lib/FunctionModal/dialog.d.ts +1 -1
  573. package/lib/FunctionModal/modalContext.d.ts +4 -1
  574. package/lib/GlobalContext/confirmLocale.js +1 -1
  575. package/lib/GlobalContext/index.js +1 -1
  576. package/lib/Help/component.json +118 -0
  577. package/lib/HelperText/component.json +126 -0
  578. package/lib/Image/PreviewGroup.js +1 -1
  579. package/lib/Image/component.json +165 -0
  580. package/lib/Image/index.js +1 -1
  581. package/lib/InputCode/component.json +191 -0
  582. package/lib/InputCode/index.d.ts +2 -2
  583. package/lib/InputLang/component.json +205 -0
  584. package/lib/InputLang/index.js +1 -1
  585. package/lib/InputNumber/component.json +162 -0
  586. package/lib/InputNumber/index.d.ts +13 -7
  587. package/lib/InputNumber/index.js +1 -1
  588. package/lib/Label/component.json +126 -0
  589. package/lib/Label/index.d.ts +2 -2
  590. package/lib/Loading/component.json +91 -0
  591. package/lib/Menu/component.json +180 -0
  592. package/lib/Menu/verticalMenuList.js +1 -1
  593. package/lib/Message/component.json +246 -0
  594. package/lib/Message/index.d.ts +2 -2
  595. package/lib/Message/index.js +1 -1
  596. package/lib/Modal/Confirm/index.d.ts +1 -1
  597. package/lib/Modal/Confirm/index.js +1 -1
  598. package/lib/Modal/component.json +277 -0
  599. package/lib/Modal/index.d.ts +85 -5
  600. package/lib/Modal/index.js +1 -1
  601. package/lib/Modal/interface.d.ts +1 -0
  602. package/lib/MultiBox/component.json +216 -0
  603. package/lib/MultiBox/index.js +1 -1
  604. package/lib/Notification/component.json +184 -0
  605. package/lib/OperateBtn/component.json +134 -0
  606. package/lib/OperateBtn/index.d.ts +3 -3
  607. package/lib/PageHeader/component.json +112 -0
  608. package/lib/PageHeader/horizontalMeun.js +1 -1
  609. package/lib/PageHeader/horizontalMeunRight.js +1 -1
  610. package/lib/Pagination/component.json +181 -0
  611. package/lib/Pagination/index.js +1 -1
  612. package/lib/ParauiProvider/index.js +1 -1
  613. package/lib/PasswordRules/component.json +105 -0
  614. package/lib/PasswordRules/index.d.ts +4 -4
  615. package/lib/PopConfirm/component.json +227 -0
  616. package/lib/PopConfirm/index.d.ts +1 -1
  617. package/lib/PopConfirm/index.js +1 -1
  618. package/lib/PopMenu/component.json +131 -0
  619. package/lib/PopMenu/hooks.d.ts +1 -1
  620. package/lib/PopMenu/index.js +1 -1
  621. package/lib/Popover/component.json +165 -0
  622. package/lib/Popover/index.js +1 -1
  623. package/lib/Progress/component.json +161 -0
  624. package/lib/Prompt/component.json +144 -0
  625. package/lib/Querying/component.json +96 -0
  626. package/lib/Querying/index.css +1 -1
  627. package/lib/Querying/index.d.ts +2 -2
  628. package/lib/Querying/index.js +1 -1
  629. package/lib/Querying/style/index.css +1 -1
  630. package/lib/QuickReply/QuickReplyCode/index.js +1 -1
  631. package/lib/QuickReply/component.json +129 -0
  632. package/lib/QuickReply/index.d.ts +1 -1
  633. package/lib/Radio/component.json +136 -0
  634. package/lib/RadioGroup/component.json +149 -0
  635. package/lib/RangeInput/component.json +198 -0
  636. package/lib/RangeInput/index.d.ts +15 -7
  637. package/lib/RangeInput/index.js +1 -1
  638. package/lib/Result/component.json +104 -0
  639. package/lib/ScrollBar/component.json +115 -0
  640. package/lib/Search/component.json +177 -0
  641. package/lib/Search/index.d.ts +1 -1
  642. package/lib/Select/component.json +244 -0
  643. package/lib/Select/index.d.ts +11 -8
  644. package/lib/Select/index.js +1 -1
  645. package/lib/SelectInput/component.json +184 -0
  646. package/lib/SelectInput/index.d.ts +4 -4
  647. package/lib/SelectInput/index.js +1 -1
  648. package/lib/Selector/component.json +203 -0
  649. package/lib/Selector/index.js +1 -1
  650. package/lib/Selector/interface.d.ts +2 -2
  651. package/lib/Selector/selectorData/index.js +1 -1
  652. package/lib/Selector/selectorMain/index.js +1 -1
  653. package/lib/Selector/selectorNode/index.js +1 -1
  654. package/lib/Selector/util.d.ts +3 -3
  655. package/lib/Selector/util.js +1 -1
  656. package/lib/SelectorPicker/component.json +179 -0
  657. package/lib/SelectorPicker/index.d.ts +5 -5
  658. package/lib/SelectorPicker/index.js +1 -1
  659. package/lib/SingleBox/component.json +151 -0
  660. package/lib/SingleBox/index.d.ts +2 -2
  661. package/lib/Slider/component.json +181 -0
  662. package/lib/SortBox/component.json +108 -0
  663. package/lib/Status/component.json +104 -0
  664. package/lib/Stepper/component.json +129 -0
  665. package/lib/Stepper/index.d.ts +2 -2
  666. package/lib/Switch/component.json +207 -0
  667. package/lib/Switch/index.css +1 -1
  668. package/lib/Switch/index.d.ts +3 -2
  669. package/lib/Switch/index.js +1 -1
  670. package/lib/Switch/style/index.css +1 -1
  671. package/lib/Table/component.json +547 -0
  672. package/lib/Table/index.d.ts +2 -2
  673. package/lib/Table/index.js +1 -1
  674. package/lib/Table/interface.d.ts +30 -0
  675. package/lib/Table/tableHead.js +1 -1
  676. package/lib/Table/util.d.ts +1 -1
  677. package/lib/Table/util.js +1 -1
  678. package/lib/Tabs/component.json +227 -0
  679. package/lib/Tag/component.json +221 -0
  680. package/lib/Tag/index.css +1 -1
  681. package/lib/Tag/index.d.ts +1 -1
  682. package/lib/Tag/index.js +1 -1
  683. package/lib/Tag/style/index.css +1 -1
  684. package/lib/TextEditor/component.json +186 -0
  685. package/lib/TextEditor/index.d.ts +5 -5
  686. package/lib/TextEditor/index.js +1 -1
  687. package/lib/TextField/component.json +290 -0
  688. package/lib/TextField/index.d.ts +2 -2
  689. package/lib/TextField/index.js +1 -1
  690. package/lib/TimePicker/component.json +176 -0
  691. package/lib/Timeline/component.json +110 -0
  692. package/lib/Title/component.json +156 -0
  693. package/lib/ToggleButton/component.json +153 -0
  694. package/lib/ToggleButton/index.js +1 -1
  695. package/lib/Tooltip/component.json +176 -0
  696. package/lib/Tooltip/index.js +1 -1
  697. package/lib/Tooltip/interface.d.ts +14 -1
  698. package/lib/Tooltip/utils.js +1 -1
  699. package/lib/Transfer/component.json +157 -0
  700. package/lib/Tree/OperateBar/index.js +2 -2
  701. package/lib/Tree/Tree.js +1 -1
  702. package/lib/Tree/component.json +512 -0
  703. package/lib/Tree/interface.d.ts +1 -1
  704. package/lib/Upload/component.json +450 -0
  705. package/lib/Upload/util.js +1 -1
  706. package/lib/Utils/snack-kit-shims.d.ts +18 -0
  707. package/lib/Utils/snack-kit-shims.js +2 -0
  708. package/lib/Utils/type.d.ts +0 -6
  709. package/lib/_virtual/index.js +1 -1
  710. package/lib/_virtual/index2.js +1 -1
  711. package/lib/index.d.ts +4 -0
  712. package/lib/index.js +1 -1
  713. package/lib/locale/en-US.d.ts +3 -0
  714. package/lib/locale/en-US.js +1 -1
  715. package/lib/locale/en_US.d.ts +361 -0
  716. package/lib/locale/en_US.js +2 -0
  717. package/lib/locale/index.d.ts +1 -723
  718. package/lib/locale/index2.js +2 -0
  719. package/lib/locale/zh-CN.d.ts +3 -0
  720. package/lib/locale/zh-CN.js +1 -1
  721. package/lib/locale/zh_CN.d.ts +361 -0
  722. package/lib/locale/zh_CN.js +2 -0
  723. package/lib/node_modules/classnames/index.js +1 -1
  724. package/package.json +24 -4
  725. package/es/_virtual/index3.js +0 -5
  726. package/es/_virtual/index4.js +0 -5
  727. package/es/node_modules/@para-snack/core/dist/index.js +0 -5231
  728. package/lib/_virtual/index3.js +0 -2
  729. package/lib/_virtual/index4.js +0 -2
  730. package/lib/node_modules/@para-snack/core/dist/index.js +0 -20
  731. /package/es/{InputCode → CodeEditor}/index.css +0 -0
  732. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  733. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
  734. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  735. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
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}
@@ -0,0 +1,186 @@
1
+ {
2
+ "name": "TextEditor",
3
+ "category": "Data Entry",
4
+ "description": "基于 wangEditor 的富文本编辑器,支持图片/视频上传与自定义工具栏",
5
+ "semantic": {
6
+ "intent": [
7
+ "富文本编辑",
8
+ "内容创作"
9
+ ],
10
+ "useCases": [
11
+ "文章编辑",
12
+ "邮件编辑",
13
+ "公告发布"
14
+ ],
15
+ "riskLevel": "normal"
16
+ },
17
+ "variants": {
18
+ "default": {
19
+ "meaning": "默认样式"
20
+ }
21
+ },
22
+ "states": [
23
+ "default",
24
+ "disabled",
25
+ "readonly"
26
+ ],
27
+ "idealProps": {
28
+ "server": {
29
+ "type": "string",
30
+ "required": true,
31
+ "description": "⚠️ 必传。文件上传服务地址(string 无问号);**即使不上传图片/视频也必须传占位 url(如 /api/noop)**;不传 TS 报错。占位场景安全:仅在用户主动插入图片/视频时才触发上传请求,纯文字编辑不会请求"
32
+ },
33
+ "value": {
34
+ "type": "string",
35
+ "description": "受控 HTML 字符串(配 onChange)"
36
+ },
37
+ "defaultValue": {
38
+ "type": "string",
39
+ "description": "非受控初始 HTML 字符串(配 ref 拿值);**也可与 onChange 同时使用监听变化,不互斥**"
40
+ },
41
+ "onChange": {
42
+ "type": "function",
43
+ "description": "(value: string, text: string) => void 内容变化回调;受控/非受控均可用"
44
+ },
45
+ "toolbarKeys": {
46
+ "type": "array",
47
+ "description": "完整工具栏菜单白名单(覆盖默认;空数组进入预览模式)。常用 menuKey:bold/italic/underline/bulletedList/numberedList/insertLink/uploadImage;详见 api.ts toolbarKeys 列出的完整 key"
48
+ },
49
+ "excludeKeys": {
50
+ "type": "array",
51
+ "description": "从默认工具栏排除的菜单 key 数组"
52
+ },
53
+ "max": {
54
+ "type": "number",
55
+ "description": "纯文本最大字符数"
56
+ },
57
+ "label": {
58
+ "type": "ReactNode",
59
+ "description": "编辑器顶部标题"
60
+ },
61
+ "placeholder": {
62
+ "type": "string",
63
+ "default": "请输入内容",
64
+ "description": "空内容占位文案"
65
+ },
66
+ "required": {
67
+ "type": "boolean",
68
+ "default": "false",
69
+ "description": "UI 必填标记"
70
+ },
71
+ "readOnly": {
72
+ "type": "boolean",
73
+ "default": "false",
74
+ "description": "只读模式(展示语义)"
75
+ },
76
+ "disabled": {
77
+ "type": "boolean",
78
+ "default": "false",
79
+ "description": "禁用模式(权限语义;内部强制 readOnly)"
80
+ },
81
+ "uploadImage": {
82
+ "type": "object",
83
+ "description": "图片上传配置 Partial<UpLoadImgConfig>"
84
+ },
85
+ "in18": {
86
+ "type": "enum",
87
+ "values": [
88
+ "en",
89
+ "zh-CN"
90
+ ],
91
+ "description": "国际化语言。**⚠️ src prop 名是 in18(历史 typo · 实际应为 i18n);写 i18n 不会切换语言也不报错**"
92
+ }
93
+ },
94
+ "do": [
95
+ "受控模式传 value + onChange 保持内容同步;非受控模式传 defaultValue + ref 拿值",
96
+ "server 必传:即使纯文字场景也要传占位 URL(如 /api/noop),否则 TS 报错",
97
+ "用 ref 调用命令式 API(getContent/getText/clearEditor/setContent)而非直接操控 DOM",
98
+ "toolbarKeys=[] 可切换到预览模式(只读展示,无工具栏),适合详情页展示富文本内容",
99
+ "in18 属性控制工具栏语言,注意 prop 名是 in18(历史 typo,不是 i18n)",
100
+ "需要限制字数时用 max 属性(对应 wangEditor maxLength,按纯文本字符数计算)"
101
+ ],
102
+ "dont": [
103
+ "不要同时传 value + defaultValue(受控/非受控不能混用)",
104
+ "不要忘记 server 属性——即使不上传图片也必须传占位 URL,否则 TS 类型错误",
105
+ "不要把 onChange 回调中的 value 直接 dangerouslySetInnerHTML 展示——须经 XSS 过滤",
106
+ "不要在 onBlur/onFocus 中直接操作 editor 实例的 DOM,应通过 IDomEditor 提供的 API",
107
+ "不要在组件卸载后访问 ref.current(组件内部已在 useEffect cleanup 中 destroy editor)"
108
+ ],
109
+ "events": {
110
+ "onChange": {
111
+ "signature": "(value: string, text: string) => void",
112
+ "asyncSupported": false,
113
+ "examples": [
114
+ "内容变化时触发:value 是 HTML 字符串(getHtml()),text 是纯文本(getText())",
115
+ "受控模式:onChange 中调用 setState 更新 value prop,实现受控回路",
116
+ "字数统计:用 text.length 而非 value.length(HTML 含标签字符会计入 value.length)"
117
+ ],
118
+ "commonMistakes": [
119
+ "假设 value 参数是纯文本——value 实际是 HTML 字符串,纯文本用第二参 text",
120
+ "受控模式下不在 onChange 中更新 value prop——导致编辑器内容反复跳回",
121
+ "初始化时 defaultValue 设置后 onChange 也会触发——内部 valueRef 机制防抖,但需注意初始渲染的 HTML 等价性检查"
122
+ ]
123
+ },
124
+ "onBlur": {
125
+ "signature": "(editor: IDomEditor) => void",
126
+ "asyncSupported": false,
127
+ "examples": [
128
+ "失焦时触发:editor 是 wangEditor IDomEditor 实例,可通过 editor.getHtml() 获取最新内容",
129
+ "表单校验场景:在 onBlur 中调用父表单的校验方法",
130
+ "自动保存:onBlur 时发送草稿保存请求"
131
+ ],
132
+ "commonMistakes": [
133
+ "假设 onBlur 时内容一定与 onChange 最后一次触发一致——如果内容没变 onChange 不触发,onBlur 仍会触发",
134
+ "在 onBlur 中直接调用 editor.destroy()——组件内部有自己的生命周期管理,外部不要手动销毁"
135
+ ]
136
+ },
137
+ "onFocus": {
138
+ "signature": "(editor: IDomEditor) => void",
139
+ "asyncSupported": false,
140
+ "examples": [
141
+ "聚焦时触发:editor 是 IDomEditor 实例",
142
+ "显示字数统计 UI:onFocus 时展示计数条"
143
+ ],
144
+ "commonMistakes": [
145
+ "在 onFocus 中调用 editor.focus() 会造成递归触发——已经聚焦不要再次 focus"
146
+ ]
147
+ },
148
+ "onDestroyed": {
149
+ "signature": "(editor: IDomEditor) => void",
150
+ "asyncSupported": false,
151
+ "examples": [
152
+ "编辑器实例销毁时触发(组件卸载时内部调用 editor.destroy())",
153
+ "用于清理与 editor 实例关联的外部副作用(如自定义菜单注册)"
154
+ ],
155
+ "commonMistakes": [
156
+ "在 onDestroyed 中访问 editor.getHtml()——销毁时内部 editor 状态可能已清空"
157
+ ]
158
+ }
159
+ },
160
+ "typescriptPitfalls": [
161
+ {
162
+ "issue": "prop 名是 in18 不是 i18n(历史拼写 typo)",
163
+ "wrong": "// 写 i18n 不报错但不生效\n<TextEditor i18n='en' server='/api/upload' />",
164
+ "right": "<TextEditor in18='en' server='/api/upload' /> // 注意是 in18,不是 i18n"
165
+ },
166
+ {
167
+ "issue": "server 属性是必填的,即使不上传图片也要传",
168
+ "wrong": "// 缺少 server 会导致 TS 类型错误 'Property server is missing'\n<TextEditor value={html} onChange={setHtml} />",
169
+ "right": "<TextEditor value={html} onChange={setHtml} server='/api/upload' />"
170
+ },
171
+ {
172
+ "issue": "useRef 拿 TextEditorRef 类型时需正确声明泛型",
173
+ "wrong": "const ref = useRef(null); ref.current.getContent(); // ref.current 为 null,TS 报错",
174
+ "right": "import { TextEditorRef } from '@para-ui/core'; const ref = useRef<TextEditorRef>(null); ref.current?.getContent();"
175
+ },
176
+ {
177
+ "issue": "onChange 第一参是 HTML 字符串不是纯文本",
178
+ "wrong": "onChange={(value) => setCount(value.length)} // value.length 包含 HTML 标签字符数",
179
+ "right": "onChange={(value, text) => setCount(text.length)} // 用第二参 text 获取纯文本长度"
180
+ }
181
+ ],
182
+ "mapping": {
183
+ "realComponent": "TextEditor",
184
+ "adapter": null
185
+ }
186
+ }
@@ -34,19 +34,19 @@ export interface UpLoadImgConfig {
34
34
  /** 5 * 1024(5kb) */
35
35
  base64LimitSize: number;
36
36
  /** 单个文件上传成功之后 */
37
- onSuccess: (file: File, res: any) => void;
37
+ onSuccess: (file: File, res: unknown) => void;
38
38
  /** 单个文件上传失败 */
39
- onFailed: (file: File, res: any) => void;
39
+ onFailed: (file: File, res: unknown) => void;
40
40
  /** 上传进度回调 */
41
41
  onProgress: (progress: number) => void;
42
42
  /** 上传之前触发 */
43
- onBeforeUpload: (file: File) => any;
43
+ onBeforeUpload: (file: File) => unknown;
44
44
  /** 上传错误,或者触发 timeout 超时 */
45
- onError: (file: File, err: any, res: any) => void;
45
+ onError: (file: File, err: unknown, res: unknown) => void;
46
46
  /** 用户自定义图片上传 */
47
47
  customUpload: (file: File, insertFn: InsertFnType) => void;
48
48
  /** 用户自定义图片插入 */
49
- customInsert: (res: any, insertFn: InsertFnType) => void;
49
+ customInsert: (res: unknown, insertFn: InsertFnType) => void;
50
50
  }
51
51
  export type UpLoadVideoConfig = Omit<UpLoadImgConfig, 'base64LimitSize'>;
52
52
  export interface TextEditorProps extends HelperTextDetailProps {
@@ -6,7 +6,7 @@ import { i18nChangeLanguage as pe } from "@wangeditor/editor";
6
6
  import xe from "../HelperText/index.js";
7
7
  import { $prefixCls as Ce } from "../GlobalContext/constant.js";
8
8
  import { TOOL_BAR_CONFIG as he } from "./common.js";
9
- import { UUID as be } from "@paraview/lib";
9
+ import { UUID as be } from "@snack-kit/lib";
10
10
  import ve from "../GlobalContext/useFormatMessage.js";
11
11
  import ye from "./lang/index.js";
12
12
  import '../node_modules/@wangeditor/editor/dist/css/style.css';import './index.css';/* empty css */
@@ -0,0 +1,290 @@
1
+ {
2
+ "name": "TextField",
3
+ "category": "Form",
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
+ "standard": {
22
+ "meaning": "标准输入框"
23
+ }
24
+ },
25
+ "states": [
26
+ "default",
27
+ "disabled",
28
+ "error",
29
+ "focus"
30
+ ],
31
+ "idealProps": {
32
+ "value": {
33
+ "type": "string | number",
34
+ "description": "受控模式:输入框的值。与 onChange 配合使用"
35
+ },
36
+ "defaultValue": {
37
+ "type": "string | number",
38
+ "description": "非受控模式:初始值(不传 value 时生效)"
39
+ },
40
+ "onChange": {
41
+ "type": "function",
42
+ "signature": "(event: React.ChangeEvent<HTMLInputElement>) => void",
43
+ "description": "值变化回调。从 event.target.value 取新值"
44
+ },
45
+ "label": {
46
+ "type": "ReactNode",
47
+ "description": "输入框标题"
48
+ },
49
+ "placeholder": {
50
+ "type": "string",
51
+ "description": "占位文本"
52
+ },
53
+ "disabled": {
54
+ "type": "boolean",
55
+ "default": false,
56
+ "description": "是否禁用"
57
+ },
58
+ "error": {
59
+ "type": "boolean",
60
+ "default": false,
61
+ "description": "是否显示错误状态"
62
+ },
63
+ "helperText": {
64
+ "type": "ReactNode",
65
+ "description": "辅助提示文本或错误信息(error=true 时显示红色)"
66
+ },
67
+ "type": {
68
+ "type": "enum",
69
+ "values": [
70
+ "text",
71
+ "password",
72
+ "number"
73
+ ],
74
+ "default": "text",
75
+ "description": "输入框类型。password 类型内置显示/隐藏切换图标"
76
+ },
77
+ "multiline": {
78
+ "type": "boolean",
79
+ "default": false,
80
+ "description": "是否为多行文本域(textarea)"
81
+ },
82
+ "rows": {
83
+ "type": "number",
84
+ "default": 4,
85
+ "description": "多行文本域的行数(multiline=true 时生效)"
86
+ },
87
+ "size": {
88
+ "type": "enum",
89
+ "values": [
90
+ "small",
91
+ "medium",
92
+ "large"
93
+ ],
94
+ "default": "large",
95
+ "description": "控件大小"
96
+ },
97
+ "allowClear": {
98
+ "type": "boolean",
99
+ "default": false,
100
+ "description": "是否显示清除按钮"
101
+ },
102
+ "limitLength": {
103
+ "type": "number",
104
+ "description": "最大字符长度限制(同步 api.ts 协议 A:**onBlur 失焦时**截断到 limitLength + 触发新 onChange,**输入阶段不阻断**;需实时阻断请用 onChange slice。同时在输入框右下渲染 current/limitLength 计数)"
105
+ },
106
+ "addonBefore": {
107
+ "type": "ReactNode",
108
+ "description": "前置内容(图标或文字)"
109
+ },
110
+ "addonAfter": {
111
+ "type": "ReactNode",
112
+ "description": "后置内容(图标或文字)"
113
+ },
114
+ "autoComplete": {
115
+ "type": "string",
116
+ "description": "浏览器自动填充控制。React 使用 camelCase 的 autoComplete(不是 autocomplete),对应 HTML autocomplete 属性。R5 §A1 升级:旧字段名 autocomplete 已废弃,必须使用 autoComplete。常用值:'off'=禁用自动填充;'on'=启用;'new-password'=禁用密码自动填充;'email'/'username' 等=按字段类型提示。❌ 错误:autocomplete='off'(旧写法,React 忽略);✅ 正确:autoComplete='off'"
117
+ },
118
+ "autoFocus": {
119
+ "type": "boolean",
120
+ "description": "自动获得焦点"
121
+ },
122
+ "name": {
123
+ "type": "string",
124
+ "description": "input name 属性,表单提交时使用"
125
+ },
126
+ "required": {
127
+ "type": "boolean",
128
+ "default": false,
129
+ "description": "是否必填(显示 * 标记)"
130
+ },
131
+ "labelMode": {
132
+ "type": "enum",
133
+ "values": ["outside", "inside"],
134
+ "default": "outside",
135
+ "description": "标题位置:outside(默认 · 标题在输入框上方)/ inside(标题作 floating label 嵌在输入框内,空态时与 placeholder 视觉位置重叠 · 聚焦或有值时上浮至框顶部 · 详见 api.ts 协议 H)"
136
+ },
137
+ "rightIcon": {
138
+ "type": "ReactNode",
139
+ "description": "输入框内部右侧图标。**与 onClickIcon 自动联动**(协议 F):点击此图标会触发 onClickIcon 回调,无需额外配置 showRightIcon=true"
140
+ },
141
+ "showRightIcon": {
142
+ "type": "boolean",
143
+ "default": true,
144
+ "description": "是否显示 rightIcon(默认 true · 仅在需要隐藏时传 false)"
145
+ },
146
+ "onClickIcon": {
147
+ "type": "function",
148
+ "signature": "(event: React.PointerEvent<HTMLSpanElement>) => void",
149
+ "description": "点击 rightIcon 区域回调。仅传 rightIcon 不传此 prop → 图标只装饰;两者配对使用语义清晰"
150
+ },
151
+ "onClear": {
152
+ "type": "function",
153
+ "signature": "() => void",
154
+ "description": "点击清空按钮回调(配合 allowClear=true 使用)。受控模式下 onClear 触发后**还会自动触发 onChange('')**;推荐 onClear 内显式 setKeyword('') 作为兜底"
155
+ },
156
+ "onEnter": {
157
+ "type": "function",
158
+ "signature": "(event: React.KeyboardEvent<HTMLInputElement>) => void",
159
+ "description": "按下回车键回调(独立于 onKeydown · 仅在 keyCode 13 时触发,便于实现回车搜索)"
160
+ },
161
+ "fetchSuggestions": {
162
+ "type": "function",
163
+ "signature": "(val: string, cb: (data: any[]) => void) => void",
164
+ "description": "返回输入建议的方法(异步搜索 / 联想)。在 cb 回调中传入数据数组;数据元素可为对象(配 showSelectName 指定回填字段)或单值"
165
+ },
166
+ "renderSelectItem": {
167
+ "type": "function",
168
+ "signature": "(item: any) => ReactNode",
169
+ "description": "自定义下拉列表每项的渲染(例如显示 name + 部门组合)。**与 showSelectName 互不影响** — 此 prop 控制下拉显示,showSelectName 独立控制回填字段"
170
+ },
171
+ "showSelectName": {
172
+ "type": "string",
173
+ "default": "value",
174
+ "description": "选中下拉项后回填到输入框的字段名(默认取 item.value;若数据结构是 {name, ...} 则传 'name')。与 renderSelectItem 协同时:下拉显示由 renderSelectItem 自定义,回填字段由 showSelectName 独立控制"
175
+ },
176
+ "onSelect": {
177
+ "type": "function",
178
+ "signature": "(item: any) => void",
179
+ "description": "选择下拉项回调。item 类型即为 fetchSuggestions cb 传入的数据元素(业务自定义,需 cast)"
180
+ },
181
+ "hideErrorDom": {
182
+ "type": "boolean | null",
183
+ "default": false,
184
+ "description": "true=非错误态不渲染 helperText 占位行(节省垂直空间);false=都渲染(默认 · 保持表单各行高度一致);null=完全不渲染该 dom 节点"
185
+ }
186
+ },
187
+ "protocolSummary": {
188
+ "A_limitLength": "字符计数 + onBlur 失焦截断(**非实时阻断**),实时阻断改用 onChange slice",
189
+ "B_allowClear_addonAfter": "可共存 — allowClear 在框内右侧,addonAfter 在框外独立后缀盒,不重叠",
190
+ "C_rightSlot_order": "渲染顺序 allowClear → limitMemo → rightIcon(框内),addonAfter 在框外",
191
+ "D_multiline_eventType": "multiline=true 时 event.target 实际是 HTMLTextAreaElement(api 表声明 InputElement 是简化),业务 cast 即可 — 对 onChange/onKeyUp/onKeydown/onFocus/onBlur 五个事件一致适用",
192
+ "E_onClear_controlled": "受控 onClear 触发后会自动触发 onChange(''),推荐父层兜底 setState('')",
193
+ "F_rightIcon_onClickIcon": "传入 rightIcon 后点击自动触发 onClickIcon(无需 showRightIcon=true)",
194
+ "G_no_inputProps_passthrough": "**TextField 不支持 inputProps 透传** — 原生 HTML 属性(如 maxLength)需用组件显式 prop 或 onChange 控制",
195
+ "H_labelMode_inside": "inside 模式 = floating label:空态 label 在框中央 · 聚焦/有值时上浮至框顶 · 与 placeholder 空态视觉重叠"
196
+ },
197
+ "crossPropInteractions": [
198
+ "rightIcon + onClickIcon = 配对使用(自动联动)",
199
+ "allowClear + addonAfter = 完全可共存(框内 + 框外)",
200
+ "fetchSuggestions + renderSelectItem + showSelectName = 三件套协同(取数 + 自定义渲染 + 回填字段)",
201
+ "limitLength = 失焦截断 + 计数显示(实时阻断请用 onChange slice)",
202
+ "multiline=true + 所有 event = event.target 实际是 HTMLTextAreaElement(api 简化为 InputElement,需 cast 才能用 textarea 特性)"
203
+ ],
204
+ "commonMisconceptions": [
205
+ "❌ inputProps={{ maxLength: N }} 透传 — 不支持,改用 onChange slice",
206
+ "❌ limitLength 会实时阻断键入 — 实际是 onBlur 截断",
207
+ "❌ allowClear 与 addonAfter 不能共存 — 完全可以共存",
208
+ "❌ rightIcon 需要 showRightIcon=true 才显示 — 默认即 true",
209
+ "❌ labelMode='inside' 时同时传 label 和 placeholder — 空态视觉重叠,推荐二选一"
210
+ ],
211
+ "do": [
212
+ "使用 label 清晰描述输入内容",
213
+ "输入错误时提供 clear 的 helperText 提示",
214
+ "密码输入框应使用 type='password'",
215
+ "multiline=true 时 event.target 实际是 HTMLTextAreaElement,需要 cast:`(e.target as HTMLTextAreaElement).value`",
216
+ "受控模式下 onClear 触发后还会自动触发 onChange(''),推荐在 onClear 中显式 setState('') 兜底"
217
+ ],
218
+ "dont": [
219
+ "在没有 label 的情况下仅依赖 placeholder",
220
+ "在单行输入框中输入过长内容(应切换 multiline)",
221
+ "不要用 inputProps={{ maxLength: N }} 透传 HTML 属性——TextField 不支持 inputProps 透传,实时字数限制用 onChange slice",
222
+ "不要期望 limitLength 实时阻断键入——limitLength 是 onBlur 失焦后截断,输入阶段不拦截"
223
+ ],
224
+ "events": {
225
+ "onChange": {
226
+ "signature": "(event: React.ChangeEvent<HTMLInputElement>) => void",
227
+ "asyncSupported": false,
228
+ "examples": [
229
+ "受控模式:onChange={(e) => setValue(e.target.value)}——从 event.target.value 取新值",
230
+ "multiline=true 时 event.target 实际是 HTMLTextAreaElement,需 cast:`(e.target as HTMLTextAreaElement).value`",
231
+ "与 limitLength 配合实时截断:onChange={(e) => setValue(e.target.value.slice(0, MAX_LEN))}"
232
+ ],
233
+ "commonMistakes": [
234
+ "假设 onChange 接收 value 字符串而非 React.ChangeEvent——与 antd Input 不同,这里签名是 event 对象,需 e.target.value 取值",
235
+ "multiline=true 时对 event.target 用 HTMLInputElement 方法(如 .selectionStart)——此时 event.target 是 HTMLTextAreaElement(src 实证:onChange 内部 cast 为 React.FocusEvent<HTMLInputElement>,但实际 target 是 textarea)",
236
+ "在 limitLength 场景只监听 onChange 而不处理 onBlur——limitLength 截断发生在 onBlur,onChange 阶段不截断",
237
+ "假设 onClear 点击后不触发 onChange——受控模式下点清空会先触发 onClear 再触发 onChange('')(src/TextField/index.tsx clickClean 函数实证)"
238
+ ]
239
+ },
240
+ "onEnter": {
241
+ "signature": "(event: React.KeyboardEvent<HTMLInputElement>) => void",
242
+ "asyncSupported": false,
243
+ "examples": [
244
+ "按 Enter 键触发搜索:onEnter={(e) => handleSearch(e.currentTarget.value)}",
245
+ "回车提交表单:onEnter={() => formRef.current.check?.()}"
246
+ ],
247
+ "commonMistakes": [
248
+ "与 onKeydown 混淆——onEnter 只在 keyCode===13 时触发,相当于 onKeydown 的 Enter 子集;如需监听所有键,用 onKeydown",
249
+ "multiline=true 时期望 onEnter 换行——onEnter 总是触发,需业务侧自行判断是否阻止换行(e.preventDefault())"
250
+ ]
251
+ },
252
+ "onBlur": {
253
+ "signature": "(event: React.FocusEvent<HTMLInputElement>) => void",
254
+ "asyncSupported": false,
255
+ "examples": [
256
+ "失焦校验:onBlur={() => validate(value)}",
257
+ "limitLength 截断时机:onBlur 后组件自动截断并触发 onChange(src 实证 handValueLimit)"
258
+ ],
259
+ "commonMistakes": [
260
+ "在 onBlur 里读 e.target.value 期望得到截断后的值——onBlur 触发时截断还没完成,截断结果通过后续 onChange 回来"
261
+ ]
262
+ }
263
+ },
264
+ "typescriptPitfalls": [
265
+ {
266
+ "issue": "onChange 签名是 React.ChangeEvent<HTMLInputElement> 而非 (value: string),直接传 setter 会报类型错误",
267
+ "wrong": "onChange={setValue} // setValue: (v: string) => void,签名不匹配",
268
+ "right": "onChange={(e) => setValue(e.target.value)}"
269
+ },
270
+ {
271
+ "issue": "multiline=true 时 event.target 实际是 HTMLTextAreaElement,但 Props 声明为 HTMLInputElement",
272
+ "wrong": "onChange={(e) => { const len = e.target.selectionStart; }} // selectionStart 在 multiline 时类型检查通过,但 cast 可能出错",
273
+ "right": "onChange={(e) => { if (multiline) { const ta = e.target as unknown as HTMLTextAreaElement; } else { const inp = e.target as HTMLInputElement; } }}"
274
+ },
275
+ {
276
+ "issue": "onKeydown(小写 d)不是 onKeyDown(驼峰 D),React 标准事件名不同",
277
+ "wrong": "onKeyDown={handleKey} // React 标准 prop,TextField 不接受——组件封装的 prop 是 onKeydown",
278
+ "right": "onKeydown={handleKey} // src/TextField/index.tsx TextFieldProps 接口定义的 prop 名是 onKeydown(小写 d)"
279
+ },
280
+ {
281
+ "issue": "autoComplete 必须驼峰(不是 autocomplete),否则 React 忽略",
282
+ "wrong": "autocomplete='off' // HTML 属性小写写法,React 会警告并忽略",
283
+ "right": "autoComplete='off' // src/TextField/index.tsx 实证:prop 名为 autoComplete(驼峰)"
284
+ }
285
+ ],
286
+ "mapping": {
287
+ "realComponent": "TextField",
288
+ "adapter": null
289
+ }
290
+ }