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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (650) hide show
  1. package/AGENTS.md +315 -0
  2. package/AlignBox/component.json +89 -0
  3. package/Anchor/component.json +130 -0
  4. package/Argv/component.json +216 -0
  5. package/AutoBox/component.json +133 -0
  6. package/AutoButton/component.json +109 -0
  7. package/AutoTips/component.json +121 -0
  8. package/Badge/component.json +92 -0
  9. package/Breadcrumbs/component.json +142 -0
  10. package/Button/component.json +168 -0
  11. package/ButtonGroup/component.json +132 -0
  12. package/Card/component.json +162 -0
  13. package/Carousel/component.json +142 -0
  14. package/Cascader/component.json +196 -0
  15. package/Checkbox/component.json +138 -0
  16. package/CheckboxGroup/component.json +152 -0
  17. package/CodeEditor/component.json +189 -0
  18. package/Collapse/component.json +166 -0
  19. package/CollapseBox/component.json +84 -0
  20. package/CollapseLayout/component.json +155 -0
  21. package/ColorPicker/component.json +142 -0
  22. package/ComboSelect/component.json +181 -0
  23. package/Container/component.json +111 -0
  24. package/ContentBox/component.json +81 -0
  25. package/CopyText/component.json +118 -0
  26. package/CycleSelector/component.json +98 -0
  27. package/DatePicker/component.json +192 -0
  28. package/Descriptions/component.json +142 -0
  29. package/Desktop/component.json +171 -0
  30. package/DragVerify/component.json +114 -0
  31. package/Drawer/component.json +200 -0
  32. package/Dropdown/component.json +147 -0
  33. package/DynamicMultiBox/component.json +278 -0
  34. package/Empty/component.json +123 -0
  35. package/FieldForm/component.json +196 -0
  36. package/Form/component.json +161 -0
  37. package/FormItem/component.json +171 -0
  38. package/FunctionModal/component.json +197 -0
  39. package/Help/component.json +118 -0
  40. package/HelperText/component.json +126 -0
  41. package/Image/component.json +165 -0
  42. package/InputCode/component.json +191 -0
  43. package/InputLang/component.json +205 -0
  44. package/InputNumber/component.json +162 -0
  45. package/Label/component.json +126 -0
  46. package/Loading/component.json +91 -0
  47. package/Menu/component.json +180 -0
  48. package/Message/component.json +246 -0
  49. package/Modal/component.json +277 -0
  50. package/MultiBox/component.json +216 -0
  51. package/Notification/component.json +184 -0
  52. package/OperateBtn/component.json +134 -0
  53. package/PageHeader/component.json +112 -0
  54. package/Pagination/component.json +181 -0
  55. package/PasswordRules/component.json +105 -0
  56. package/PopConfirm/component.json +227 -0
  57. package/PopMenu/component.json +131 -0
  58. package/Popover/component.json +165 -0
  59. package/Progress/component.json +161 -0
  60. package/Prompt/component.json +144 -0
  61. package/Querying/component.json +96 -0
  62. package/QuickReply/component.json +129 -0
  63. package/Radio/component.json +136 -0
  64. package/RadioGroup/component.json +149 -0
  65. package/RangeInput/component.json +198 -0
  66. package/Result/component.json +104 -0
  67. package/ScrollBar/component.json +115 -0
  68. package/Search/component.json +177 -0
  69. package/Select/component.json +244 -0
  70. package/SelectInput/component.json +184 -0
  71. package/Selector/component.json +203 -0
  72. package/SelectorPicker/component.json +179 -0
  73. package/SingleBox/component.json +151 -0
  74. package/Slider/component.json +181 -0
  75. package/SortBox/component.json +108 -0
  76. package/Status/component.json +104 -0
  77. package/Stepper/component.json +129 -0
  78. package/Switch/component.json +207 -0
  79. package/Table/component.json +547 -0
  80. package/Tabs/component.json +227 -0
  81. package/Tag/component.json +221 -0
  82. package/TextEditor/component.json +186 -0
  83. package/TextField/component.json +290 -0
  84. package/TimePicker/component.json +176 -0
  85. package/Timeline/component.json +110 -0
  86. package/Title/component.json +156 -0
  87. package/ToggleButton/component.json +153 -0
  88. package/Tooltip/component.json +176 -0
  89. package/Transfer/component.json +157 -0
  90. package/Tree/component.json +512 -0
  91. package/Upload/component.json +450 -0
  92. package/ai-workflows/01-crud-list-multi-drawer.md +278 -0
  93. package/ai-workflows/02-rbac-operation-buttons.md +290 -0
  94. package/ai-workflows/03-complex-form-async-cascade.md +350 -0
  95. package/ai-workflows/04-array-field-form.md +281 -0
  96. package/ai-workflows/05-popconfirm-async-message-queue.md +333 -0
  97. package/ai-workflows/06-modal-drawer-form-workflow.md +385 -0
  98. package/ai-workflows/07-search-filter-table-trio.md +387 -0
  99. package/ai-workflows/08-table-advanced-features.md +365 -0
  100. package/ai-workflows/09-batch-operation-export-progress.md +367 -0
  101. package/ai-workflows/10-cross-component-state-coordination.md +412 -0
  102. package/es/AlignBox/component.json +89 -0
  103. package/es/AlignBox/index.css +1 -1
  104. package/es/AlignBox/index.d.ts +6 -2
  105. package/es/AlignBox/index.js +1 -1
  106. package/es/AlignBox/style/index.css +1 -1
  107. package/es/Anchor/anchorMenu/index.d.ts +2 -1
  108. package/es/Anchor/anchorMenu/index.js +36 -33
  109. package/es/Anchor/component.json +130 -0
  110. package/es/Anchor/index.js +52 -49
  111. package/es/Anchor/type.d.ts +8 -4
  112. package/es/Argv/component.json +216 -0
  113. package/es/Argv/dataGenerator/index.js +1 -1
  114. package/es/Argv/index.d.ts +5 -6
  115. package/es/Argv/index.js +1 -1
  116. package/es/AutoBox/component.json +133 -0
  117. package/es/AutoBox/index.d.ts +3 -3
  118. package/es/AutoBox/index.js +1 -1
  119. package/es/AutoBox/protal.d.ts +2 -2
  120. package/es/AutoBox/protal.js +33 -30
  121. package/es/AutoButton/component.json +109 -0
  122. package/es/AutoButton/index.js +1 -1
  123. package/es/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  124. package/es/AutoTips/autoTipsMultiline/index.js +1 -1
  125. package/es/AutoTips/component.json +121 -0
  126. package/es/AutoTips/index.js +1 -1
  127. package/es/Badge/component.json +92 -0
  128. package/es/Breadcrumbs/component.json +142 -0
  129. package/es/Breadcrumbs/index.js +1 -1
  130. package/es/Button/SplitButton.d.ts +2 -2
  131. package/es/Button/component.json +168 -0
  132. package/es/Button/index.js +44 -44
  133. package/es/ButtonGroup/component.json +132 -0
  134. package/es/ButtonGroup/index.d.ts +1 -1
  135. package/es/Card/component.json +162 -0
  136. package/es/Card/index.d.ts +2 -2
  137. package/es/Card/index.js +2 -2
  138. package/es/Carousel/component.json +142 -0
  139. package/es/Carousel/index.d.ts +1 -1
  140. package/es/Cascader/Cascader.js +1 -1
  141. package/es/Cascader/OptionList/Column.js +1 -1
  142. package/es/Cascader/OptionList/index.js +1 -1
  143. package/es/Cascader/component.json +196 -0
  144. package/es/Cascader/hooks/useEntities.js +7 -7
  145. package/es/Cascader/interface.d.ts +1 -0
  146. package/es/Cascader/utils/commonUtil.d.ts +1 -1
  147. package/es/Cascader/utils/commonUtil.js +16 -16
  148. package/es/Cascader/utils/treeUtil.d.ts +14 -5
  149. package/es/Cascader/utils/treeUtil.js +1 -1
  150. package/es/Checkbox/component.json +138 -0
  151. package/es/CheckboxGroup/component.json +152 -0
  152. package/es/CheckboxGroup/index.js +1 -1
  153. package/es/CodeEditor/component.json +189 -0
  154. package/es/CodeEditor/index.d.ts +11 -10
  155. package/es/CodeEditor/index.js +19 -19
  156. package/es/Collapse/component.json +166 -0
  157. package/es/Collapse/index.d.ts +1 -1
  158. package/es/Collapse/index.js +23 -22
  159. package/es/CollapseBox/component.json +84 -0
  160. package/es/CollapseLayout/component.json +155 -0
  161. package/es/ColorPicker/component.json +142 -0
  162. package/es/ComboSelect/component.json +181 -0
  163. package/es/ComboSelect/index.js +115 -109
  164. package/es/ComboSelect/interface.d.ts +2 -2
  165. package/es/ComboSelect/utils.d.ts +3 -3
  166. package/es/ComboSelect/utils.js +1 -1
  167. package/es/Container/component.json +111 -0
  168. package/es/ContentBox/component.json +81 -0
  169. package/es/CopyText/component.json +118 -0
  170. package/es/CycleSelector/component.json +98 -0
  171. package/es/CycleSelector/index.js +14 -13
  172. package/es/DatePicker/component.json +192 -0
  173. package/es/DatePicker/generatePicker/generateRangePicker.js +11 -11
  174. package/es/DatePicker/generatePicker/generateSinglePicker.js +2 -2
  175. package/es/Descriptions/component.json +142 -0
  176. package/es/Descriptions/index.d.ts +1 -1
  177. package/es/Desktop/component.json +171 -0
  178. package/es/Desktop/index.js +1 -1
  179. package/es/DragVerify/component.json +114 -0
  180. package/es/DragVerify/index.js +19 -19
  181. package/es/Drawer/component.json +200 -0
  182. package/es/Drawer/index.js +86 -86
  183. package/es/Drawer/interface.d.ts +1 -1
  184. package/es/Drawer/util.d.ts +1 -6
  185. package/es/Drawer/util.js +9 -6
  186. package/es/Dropdown/component.json +147 -0
  187. package/es/Dropdown/index.js +1 -1
  188. package/es/DynamicMultiBox/component.json +278 -0
  189. package/es/DynamicMultiBox/formItem.d.ts +1 -1
  190. package/es/DynamicMultiBox/index.js +1 -1
  191. package/es/DynamicMultiBox/rowForm.d.ts +2 -2
  192. package/es/Empty/component.json +123 -0
  193. package/es/Empty/index.css +1 -1
  194. package/es/Empty/index.d.ts +2 -2
  195. package/es/Empty/index.js +27 -26
  196. package/es/Empty/style/index.css +1 -1
  197. package/es/FieldForm/FieldFormItem/ItemHolder.js +1 -1
  198. package/es/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  199. package/es/FieldForm/FieldFormItem/StatusProvider.js +1 -1
  200. package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
  201. package/es/FieldForm/Form.d.ts +2 -2
  202. package/es/FieldForm/Form.js +1 -1
  203. package/es/FieldForm/FormItemInput.js +1 -1
  204. package/es/FieldForm/FormItemLabel.js +1 -1
  205. package/es/FieldForm/FormList.d.ts +2 -2
  206. package/es/FieldForm/component.json +196 -0
  207. package/es/FieldForm/context.d.ts +5 -1
  208. package/es/FieldForm/context.js +2 -2
  209. package/es/FieldForm/hooks/useForm.d.ts +4 -3
  210. package/es/FieldForm/hooks/useFormInstance.d.ts +1 -1
  211. package/es/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  212. package/es/FieldForm/hooks/useFormItemStatus.js +2 -2
  213. package/es/FieldForm/hooks/useItemRef.d.ts +1 -1
  214. package/es/FieldForm/hooks/useItemRef.js +6 -6
  215. package/es/Form/component.json +161 -0
  216. package/es/Form/index.d.ts +52 -49
  217. package/es/Form/index.js +1 -1
  218. package/es/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  219. package/es/FormItem/compoments/defaultCompoments/index.js +12 -11
  220. package/es/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  221. package/es/FormItem/compoments/formFile/index.js +8 -8
  222. package/es/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  223. package/es/FormItem/compoments/formSelect/index.d.ts +1 -1
  224. package/es/FormItem/component.json +171 -0
  225. package/es/FormItem/index.d.ts +5 -5
  226. package/es/FormItem/index.js +23 -23
  227. package/es/FormItem/itemType.js +1 -1
  228. package/es/FunctionModal/component.json +197 -0
  229. package/es/FunctionModal/dialog.d.ts +1 -1
  230. package/es/FunctionModal/modalContext.d.ts +4 -1
  231. package/es/GlobalContext/confirmLocale.js +1 -1
  232. package/es/GlobalContext/index.js +1 -1
  233. package/es/Help/component.json +118 -0
  234. package/es/HelperText/component.json +126 -0
  235. package/es/Image/PreviewGroup.js +1 -1
  236. package/es/Image/component.json +165 -0
  237. package/es/Image/index.js +1 -1
  238. package/es/InputCode/component.json +191 -0
  239. package/es/InputCode/index.d.ts +2 -2
  240. package/es/InputLang/component.json +205 -0
  241. package/es/InputLang/index.js +2 -2
  242. package/es/InputNumber/component.json +162 -0
  243. package/es/Label/component.json +126 -0
  244. package/es/Label/index.d.ts +2 -2
  245. package/es/Loading/component.json +91 -0
  246. package/es/Menu/component.json +180 -0
  247. package/es/Menu/verticalMenuList.js +1 -1
  248. package/es/Message/component.json +246 -0
  249. package/es/Message/index.d.ts +2 -2
  250. package/es/Message/index.js +2 -2
  251. package/es/Modal/Confirm/index.d.ts +1 -1
  252. package/es/Modal/Confirm/index.js +1 -1
  253. package/es/Modal/component.json +277 -0
  254. package/es/Modal/index.d.ts +85 -5
  255. package/es/Modal/index.js +159 -122
  256. package/es/Modal/interface.d.ts +1 -0
  257. package/es/MultiBox/component.json +216 -0
  258. package/es/MultiBox/index.js +19 -14
  259. package/es/Notification/component.json +184 -0
  260. package/es/OperateBtn/component.json +134 -0
  261. package/es/OperateBtn/index.d.ts +3 -3
  262. package/es/PageHeader/component.json +112 -0
  263. package/es/PageHeader/horizontalMeun.js +1 -1
  264. package/es/PageHeader/horizontalMeunRight.js +1 -1
  265. package/es/Pagination/component.json +181 -0
  266. package/es/Pagination/index.js +15 -15
  267. package/es/ParauiProvider/index.js +1 -1
  268. package/es/PasswordRules/component.json +105 -0
  269. package/es/PasswordRules/index.d.ts +4 -4
  270. package/es/PopConfirm/component.json +227 -0
  271. package/es/PopConfirm/index.d.ts +1 -1
  272. package/es/PopConfirm/index.js +1 -1
  273. package/es/PopMenu/component.json +131 -0
  274. package/es/PopMenu/hooks.d.ts +1 -1
  275. package/es/PopMenu/index.js +8 -8
  276. package/es/Popover/component.json +165 -0
  277. package/es/Popover/index.js +1 -1
  278. package/es/Progress/component.json +161 -0
  279. package/es/Prompt/component.json +144 -0
  280. package/es/Querying/component.json +96 -0
  281. package/es/Querying/index.css +1 -1
  282. package/es/Querying/index.d.ts +2 -2
  283. package/es/Querying/index.js +20 -19
  284. package/es/Querying/style/index.css +1 -1
  285. package/es/QuickReply/QuickReplyCode/index.js +1 -1
  286. package/es/QuickReply/component.json +129 -0
  287. package/es/QuickReply/index.d.ts +1 -1
  288. package/es/Radio/component.json +136 -0
  289. package/es/RadioGroup/component.json +149 -0
  290. package/es/RangeInput/component.json +198 -0
  291. package/es/RangeInput/index.js +20 -20
  292. package/es/Result/component.json +104 -0
  293. package/es/ScrollBar/component.json +115 -0
  294. package/es/Search/component.json +177 -0
  295. package/es/Search/index.d.ts +1 -1
  296. package/es/Select/component.json +244 -0
  297. package/es/Select/index.js +114 -114
  298. package/es/SelectInput/component.json +184 -0
  299. package/es/Selector/component.json +203 -0
  300. package/es/Selector/index.js +56 -50
  301. package/es/Selector/interface.d.ts +2 -2
  302. package/es/Selector/selectorData/index.js +1 -1
  303. package/es/Selector/selectorMain/index.js +3 -3
  304. package/es/Selector/selectorNode/index.js +1 -1
  305. package/es/Selector/util.d.ts +3 -3
  306. package/es/Selector/util.js +6 -12
  307. package/es/SelectorPicker/component.json +179 -0
  308. package/es/SelectorPicker/index.d.ts +5 -5
  309. package/es/SelectorPicker/index.js +15 -15
  310. package/es/SingleBox/component.json +151 -0
  311. package/es/SingleBox/index.d.ts +2 -2
  312. package/es/Slider/component.json +181 -0
  313. package/es/SortBox/component.json +108 -0
  314. package/es/Status/component.json +104 -0
  315. package/es/Stepper/component.json +129 -0
  316. package/es/Stepper/index.d.ts +2 -2
  317. package/es/Switch/component.json +207 -0
  318. package/es/Switch/index.css +1 -1
  319. package/es/Switch/index.d.ts +3 -2
  320. package/es/Switch/index.js +60 -59
  321. package/es/Switch/style/index.css +1 -1
  322. package/es/Table/component.json +547 -0
  323. package/es/Table/index.d.ts +2 -2
  324. package/es/Table/index.js +385 -382
  325. package/es/Table/interface.d.ts +30 -0
  326. package/es/Table/tableHead.js +1 -1
  327. package/es/Table/util.d.ts +1 -1
  328. package/es/Table/util.js +3 -12
  329. package/es/Tabs/component.json +227 -0
  330. package/es/Tag/component.json +221 -0
  331. package/es/Tag/index.css +1 -1
  332. package/es/Tag/index.d.ts +1 -1
  333. package/es/Tag/index.js +20 -20
  334. package/es/Tag/style/index.css +1 -1
  335. package/es/TextEditor/component.json +186 -0
  336. package/es/TextEditor/index.d.ts +5 -5
  337. package/es/TextEditor/index.js +1 -1
  338. package/es/TextField/component.json +290 -0
  339. package/es/TextField/index.d.ts +2 -2
  340. package/es/TextField/index.js +1 -1
  341. package/es/TimePicker/component.json +176 -0
  342. package/es/Timeline/component.json +110 -0
  343. package/es/Title/component.json +156 -0
  344. package/es/ToggleButton/component.json +153 -0
  345. package/es/ToggleButton/index.js +1 -1
  346. package/es/Tooltip/component.json +176 -0
  347. package/es/Tooltip/index.js +58 -53
  348. package/es/Tooltip/interface.d.ts +14 -1
  349. package/es/Tooltip/utils.js +6 -6
  350. package/es/Transfer/component.json +157 -0
  351. package/es/Tree/OperateBar/index.js +1 -1
  352. package/es/Tree/Tree.js +3 -3
  353. package/es/Tree/component.json +512 -0
  354. package/es/Tree/interface.d.ts +1 -1
  355. package/es/Upload/component.json +450 -0
  356. package/es/Upload/util.js +1 -1
  357. package/es/Utils/snack-kit-shims.d.ts +18 -0
  358. package/es/Utils/snack-kit-shims.js +19 -0
  359. package/es/Utils/type.d.ts +0 -2
  360. package/es/_virtual/index.js +5 -3
  361. package/es/_virtual/index2.js +2 -5
  362. package/es/index.d.ts +2 -0
  363. package/es/index.js +1 -1
  364. package/es/locale/en_US.d.ts +361 -0
  365. package/es/locale/en_US.js +364 -0
  366. package/es/locale/index.d.ts +1 -723
  367. package/es/locale/index2.js +10 -0
  368. package/es/locale/zh_CN.d.ts +361 -0
  369. package/es/locale/zh_CN.js +364 -0
  370. package/es/node_modules/classnames/index.js +1 -1
  371. package/lib/AlignBox/component.json +89 -0
  372. package/lib/AlignBox/index.css +1 -1
  373. package/lib/AlignBox/index.d.ts +6 -2
  374. package/lib/AlignBox/index.js +1 -1
  375. package/lib/AlignBox/style/index.css +1 -1
  376. package/lib/Anchor/anchorMenu/index.d.ts +2 -1
  377. package/lib/Anchor/anchorMenu/index.js +1 -1
  378. package/lib/Anchor/component.json +130 -0
  379. package/lib/Anchor/index.js +1 -1
  380. package/lib/Anchor/type.d.ts +8 -4
  381. package/lib/Argv/component.json +216 -0
  382. package/lib/Argv/dataGenerator/index.js +1 -1
  383. package/lib/Argv/index.d.ts +5 -6
  384. package/lib/Argv/index.js +1 -1
  385. package/lib/AutoBox/component.json +133 -0
  386. package/lib/AutoBox/index.d.ts +3 -3
  387. package/lib/AutoBox/index.js +1 -1
  388. package/lib/AutoBox/protal.d.ts +2 -2
  389. package/lib/AutoBox/protal.js +1 -1
  390. package/lib/AutoButton/component.json +109 -0
  391. package/lib/AutoButton/index.js +1 -1
  392. package/lib/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  393. package/lib/AutoTips/autoTipsMultiline/index.js +1 -1
  394. package/lib/AutoTips/component.json +121 -0
  395. package/lib/AutoTips/index.js +1 -1
  396. package/lib/Badge/component.json +92 -0
  397. package/lib/Breadcrumbs/component.json +142 -0
  398. package/lib/Breadcrumbs/index.js +1 -1
  399. package/lib/Button/SplitButton.d.ts +2 -2
  400. package/lib/Button/component.json +168 -0
  401. package/lib/Button/index.js +1 -1
  402. package/lib/ButtonGroup/component.json +132 -0
  403. package/lib/ButtonGroup/index.d.ts +1 -1
  404. package/lib/Card/component.json +162 -0
  405. package/lib/Card/index.d.ts +2 -2
  406. package/lib/Card/index.js +1 -1
  407. package/lib/Carousel/component.json +142 -0
  408. package/lib/Carousel/index.d.ts +1 -1
  409. package/lib/Cascader/Cascader.js +1 -1
  410. package/lib/Cascader/OptionList/Column.js +1 -1
  411. package/lib/Cascader/OptionList/index.js +1 -1
  412. package/lib/Cascader/component.json +196 -0
  413. package/lib/Cascader/hooks/useEntities.js +1 -1
  414. package/lib/Cascader/interface.d.ts +1 -0
  415. package/lib/Cascader/utils/commonUtil.d.ts +1 -1
  416. package/lib/Cascader/utils/commonUtil.js +1 -1
  417. package/lib/Cascader/utils/treeUtil.d.ts +14 -5
  418. package/lib/Cascader/utils/treeUtil.js +1 -1
  419. package/lib/Checkbox/component.json +138 -0
  420. package/lib/CheckboxGroup/component.json +152 -0
  421. package/lib/CheckboxGroup/index.js +1 -1
  422. package/lib/CodeEditor/component.json +189 -0
  423. package/lib/CodeEditor/index.d.ts +11 -10
  424. package/lib/CodeEditor/index.js +1 -1
  425. package/lib/Collapse/component.json +166 -0
  426. package/lib/Collapse/index.d.ts +1 -1
  427. package/lib/Collapse/index.js +1 -1
  428. package/lib/CollapseBox/component.json +84 -0
  429. package/lib/CollapseLayout/component.json +155 -0
  430. package/lib/ColorPicker/component.json +142 -0
  431. package/lib/ComboSelect/component.json +181 -0
  432. package/lib/ComboSelect/index.js +1 -1
  433. package/lib/ComboSelect/interface.d.ts +2 -2
  434. package/lib/ComboSelect/utils.d.ts +3 -3
  435. package/lib/ComboSelect/utils.js +1 -1
  436. package/lib/Container/component.json +111 -0
  437. package/lib/ContentBox/component.json +81 -0
  438. package/lib/CopyText/component.json +118 -0
  439. package/lib/CycleSelector/component.json +98 -0
  440. package/lib/CycleSelector/index.js +1 -1
  441. package/lib/DatePicker/component.json +192 -0
  442. package/lib/DatePicker/generatePicker/generateRangePicker.js +1 -1
  443. package/lib/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  444. package/lib/Descriptions/component.json +142 -0
  445. package/lib/Descriptions/index.d.ts +1 -1
  446. package/lib/Desktop/component.json +171 -0
  447. package/lib/Desktop/index.js +1 -1
  448. package/lib/DragVerify/component.json +114 -0
  449. package/lib/DragVerify/index.js +1 -1
  450. package/lib/Drawer/component.json +200 -0
  451. package/lib/Drawer/index.js +1 -1
  452. package/lib/Drawer/interface.d.ts +1 -1
  453. package/lib/Drawer/util.d.ts +1 -6
  454. package/lib/Drawer/util.js +1 -1
  455. package/lib/Dropdown/component.json +147 -0
  456. package/lib/Dropdown/index.js +1 -1
  457. package/lib/DynamicMultiBox/component.json +278 -0
  458. package/lib/DynamicMultiBox/formItem.d.ts +1 -1
  459. package/lib/DynamicMultiBox/index.js +1 -1
  460. package/lib/DynamicMultiBox/rowForm.d.ts +2 -2
  461. package/lib/Empty/component.json +123 -0
  462. package/lib/Empty/index.css +1 -1
  463. package/lib/Empty/index.d.ts +2 -2
  464. package/lib/Empty/index.js +1 -1
  465. package/lib/Empty/style/index.css +1 -1
  466. package/lib/FieldForm/FieldFormItem/ItemHolder.js +1 -1
  467. package/lib/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  468. package/lib/FieldForm/FieldFormItem/StatusProvider.js +1 -1
  469. package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
  470. package/lib/FieldForm/Form.d.ts +2 -2
  471. package/lib/FieldForm/Form.js +1 -1
  472. package/lib/FieldForm/FormItemInput.js +1 -1
  473. package/lib/FieldForm/FormItemLabel.js +1 -1
  474. package/lib/FieldForm/FormList.d.ts +2 -2
  475. package/lib/FieldForm/component.json +196 -0
  476. package/lib/FieldForm/context.d.ts +5 -1
  477. package/lib/FieldForm/context.js +1 -1
  478. package/lib/FieldForm/hooks/useForm.d.ts +4 -3
  479. package/lib/FieldForm/hooks/useFormInstance.d.ts +1 -1
  480. package/lib/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  481. package/lib/FieldForm/hooks/useFormItemStatus.js +1 -1
  482. package/lib/FieldForm/hooks/useItemRef.d.ts +1 -1
  483. package/lib/FieldForm/hooks/useItemRef.js +1 -1
  484. package/lib/Form/component.json +161 -0
  485. package/lib/Form/index.d.ts +52 -49
  486. package/lib/Form/index.js +1 -1
  487. package/lib/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  488. package/lib/FormItem/compoments/defaultCompoments/index.js +1 -1
  489. package/lib/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  490. package/lib/FormItem/compoments/formFile/index.js +1 -1
  491. package/lib/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  492. package/lib/FormItem/compoments/formSelect/index.d.ts +1 -1
  493. package/lib/FormItem/component.json +171 -0
  494. package/lib/FormItem/index.d.ts +5 -5
  495. package/lib/FormItem/index.js +1 -1
  496. package/lib/FormItem/itemType.js +1 -1
  497. package/lib/FunctionModal/component.json +197 -0
  498. package/lib/FunctionModal/dialog.d.ts +1 -1
  499. package/lib/FunctionModal/modalContext.d.ts +4 -1
  500. package/lib/GlobalContext/confirmLocale.js +1 -1
  501. package/lib/GlobalContext/index.js +1 -1
  502. package/lib/Help/component.json +118 -0
  503. package/lib/HelperText/component.json +126 -0
  504. package/lib/Image/PreviewGroup.js +1 -1
  505. package/lib/Image/component.json +165 -0
  506. package/lib/Image/index.js +1 -1
  507. package/lib/InputCode/component.json +191 -0
  508. package/lib/InputCode/index.d.ts +2 -2
  509. package/lib/InputLang/component.json +205 -0
  510. package/lib/InputLang/index.js +1 -1
  511. package/lib/InputNumber/component.json +162 -0
  512. package/lib/Label/component.json +126 -0
  513. package/lib/Label/index.d.ts +2 -2
  514. package/lib/Loading/component.json +91 -0
  515. package/lib/Menu/component.json +180 -0
  516. package/lib/Menu/verticalMenuList.js +1 -1
  517. package/lib/Message/component.json +246 -0
  518. package/lib/Message/index.d.ts +2 -2
  519. package/lib/Message/index.js +1 -1
  520. package/lib/Modal/Confirm/index.d.ts +1 -1
  521. package/lib/Modal/Confirm/index.js +1 -1
  522. package/lib/Modal/component.json +277 -0
  523. package/lib/Modal/index.d.ts +85 -5
  524. package/lib/Modal/index.js +1 -1
  525. package/lib/Modal/interface.d.ts +1 -0
  526. package/lib/MultiBox/component.json +216 -0
  527. package/lib/MultiBox/index.js +1 -1
  528. package/lib/Notification/component.json +184 -0
  529. package/lib/OperateBtn/component.json +134 -0
  530. package/lib/OperateBtn/index.d.ts +3 -3
  531. package/lib/PageHeader/component.json +112 -0
  532. package/lib/PageHeader/horizontalMeun.js +1 -1
  533. package/lib/PageHeader/horizontalMeunRight.js +1 -1
  534. package/lib/Pagination/component.json +181 -0
  535. package/lib/Pagination/index.js +1 -1
  536. package/lib/ParauiProvider/index.js +1 -1
  537. package/lib/PasswordRules/component.json +105 -0
  538. package/lib/PasswordRules/index.d.ts +4 -4
  539. package/lib/PopConfirm/component.json +227 -0
  540. package/lib/PopConfirm/index.d.ts +1 -1
  541. package/lib/PopConfirm/index.js +1 -1
  542. package/lib/PopMenu/component.json +131 -0
  543. package/lib/PopMenu/hooks.d.ts +1 -1
  544. package/lib/PopMenu/index.js +1 -1
  545. package/lib/Popover/component.json +165 -0
  546. package/lib/Popover/index.js +1 -1
  547. package/lib/Progress/component.json +161 -0
  548. package/lib/Prompt/component.json +144 -0
  549. package/lib/Querying/component.json +96 -0
  550. package/lib/Querying/index.css +1 -1
  551. package/lib/Querying/index.d.ts +2 -2
  552. package/lib/Querying/index.js +1 -1
  553. package/lib/Querying/style/index.css +1 -1
  554. package/lib/QuickReply/QuickReplyCode/index.js +1 -1
  555. package/lib/QuickReply/component.json +129 -0
  556. package/lib/QuickReply/index.d.ts +1 -1
  557. package/lib/Radio/component.json +136 -0
  558. package/lib/RadioGroup/component.json +149 -0
  559. package/lib/RangeInput/component.json +198 -0
  560. package/lib/RangeInput/index.js +1 -1
  561. package/lib/Result/component.json +104 -0
  562. package/lib/ScrollBar/component.json +115 -0
  563. package/lib/Search/component.json +177 -0
  564. package/lib/Search/index.d.ts +1 -1
  565. package/lib/Select/component.json +244 -0
  566. package/lib/Select/index.js +1 -1
  567. package/lib/SelectInput/component.json +184 -0
  568. package/lib/Selector/component.json +203 -0
  569. package/lib/Selector/index.js +1 -1
  570. package/lib/Selector/interface.d.ts +2 -2
  571. package/lib/Selector/selectorData/index.js +1 -1
  572. package/lib/Selector/selectorMain/index.js +1 -1
  573. package/lib/Selector/selectorNode/index.js +1 -1
  574. package/lib/Selector/util.d.ts +3 -3
  575. package/lib/Selector/util.js +1 -1
  576. package/lib/SelectorPicker/component.json +179 -0
  577. package/lib/SelectorPicker/index.d.ts +5 -5
  578. package/lib/SelectorPicker/index.js +1 -1
  579. package/lib/SingleBox/component.json +151 -0
  580. package/lib/SingleBox/index.d.ts +2 -2
  581. package/lib/Slider/component.json +181 -0
  582. package/lib/SortBox/component.json +108 -0
  583. package/lib/Status/component.json +104 -0
  584. package/lib/Stepper/component.json +129 -0
  585. package/lib/Stepper/index.d.ts +2 -2
  586. package/lib/Switch/component.json +207 -0
  587. package/lib/Switch/index.css +1 -1
  588. package/lib/Switch/index.d.ts +3 -2
  589. package/lib/Switch/index.js +1 -1
  590. package/lib/Switch/style/index.css +1 -1
  591. package/lib/Table/component.json +547 -0
  592. package/lib/Table/index.d.ts +2 -2
  593. package/lib/Table/index.js +1 -1
  594. package/lib/Table/interface.d.ts +30 -0
  595. package/lib/Table/tableHead.js +1 -1
  596. package/lib/Table/util.d.ts +1 -1
  597. package/lib/Table/util.js +1 -1
  598. package/lib/Tabs/component.json +227 -0
  599. package/lib/Tag/component.json +221 -0
  600. package/lib/Tag/index.css +1 -1
  601. package/lib/Tag/index.d.ts +1 -1
  602. package/lib/Tag/index.js +1 -1
  603. package/lib/Tag/style/index.css +1 -1
  604. package/lib/TextEditor/component.json +186 -0
  605. package/lib/TextEditor/index.d.ts +5 -5
  606. package/lib/TextEditor/index.js +1 -1
  607. package/lib/TextField/component.json +290 -0
  608. package/lib/TextField/index.d.ts +2 -2
  609. package/lib/TextField/index.js +1 -1
  610. package/lib/TimePicker/component.json +176 -0
  611. package/lib/Timeline/component.json +110 -0
  612. package/lib/Title/component.json +156 -0
  613. package/lib/ToggleButton/component.json +153 -0
  614. package/lib/ToggleButton/index.js +1 -1
  615. package/lib/Tooltip/component.json +176 -0
  616. package/lib/Tooltip/index.js +1 -1
  617. package/lib/Tooltip/interface.d.ts +14 -1
  618. package/lib/Tooltip/utils.js +1 -1
  619. package/lib/Transfer/component.json +157 -0
  620. package/lib/Tree/OperateBar/index.js +2 -2
  621. package/lib/Tree/Tree.js +1 -1
  622. package/lib/Tree/component.json +512 -0
  623. package/lib/Tree/interface.d.ts +1 -1
  624. package/lib/Upload/component.json +450 -0
  625. package/lib/Upload/util.js +1 -1
  626. package/lib/Utils/snack-kit-shims.d.ts +18 -0
  627. package/lib/Utils/snack-kit-shims.js +2 -0
  628. package/lib/Utils/type.d.ts +0 -2
  629. package/lib/_virtual/index.js +1 -1
  630. package/lib/_virtual/index2.js +1 -1
  631. package/lib/index.d.ts +2 -0
  632. package/lib/index.js +1 -1
  633. package/lib/locale/en_US.d.ts +361 -0
  634. package/lib/locale/en_US.js +2 -0
  635. package/lib/locale/index.d.ts +1 -723
  636. package/lib/locale/index2.js +2 -0
  637. package/lib/locale/zh_CN.d.ts +361 -0
  638. package/lib/locale/zh_CN.js +2 -0
  639. package/lib/node_modules/classnames/index.js +1 -1
  640. package/package.json +11 -4
  641. package/es/_virtual/index3.js +0 -5
  642. package/es/_virtual/index4.js +0 -5
  643. package/es/node_modules/@para-snack/core/dist/index.js +0 -5231
  644. package/lib/_virtual/index3.js +0 -2
  645. package/lib/_virtual/index4.js +0 -2
  646. package/lib/node_modules/@para-snack/core/dist/index.js +0 -20
  647. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  648. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
  649. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  650. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
@@ -0,0 +1,161 @@
1
+ {
2
+ "name": "Progress",
3
+ "category": "Feedback",
4
+ "description": "展示操作的当前进度,支持线形/圆形/仪表盘三种形态",
5
+ "semantic": {
6
+ "intent": [
7
+ "展示进度",
8
+ "展示状态",
9
+ "减少焦虑"
10
+ ],
11
+ "useCases": [
12
+ "文件上传",
13
+ "页面加载",
14
+ "任务处理"
15
+ ],
16
+ "riskLevel": "low"
17
+ },
18
+ "variants": {
19
+ "line": {
20
+ "meaning": "线性进度条"
21
+ },
22
+ "circle": {
23
+ "meaning": "圆形进度条"
24
+ },
25
+ "dashboard": {
26
+ "meaning": "仪表盘"
27
+ }
28
+ },
29
+ "states": [
30
+ "normal",
31
+ "active",
32
+ "success",
33
+ "exception"
34
+ ],
35
+ "idealProps": {
36
+ "percent": {
37
+ "type": "number | number[]",
38
+ "default": 0,
39
+ "description": "进度百分比(0-100)。传 number[] 配合 success.percent 展示双段进度(成功段 + 普通段);type='line' 且传了 success 时内部自动拆分为两段"
40
+ },
41
+ "type": {
42
+ "type": "enum",
43
+ "values": [
44
+ "line",
45
+ "circle",
46
+ "dashboard"
47
+ ],
48
+ "default": "line",
49
+ "description": "进度条类型。**line** = 横向线形;**circle** = 圆形(width 控制画布大小);**dashboard** = 仪表盘(底部缺口,gapDegree 控制缺口角度)"
50
+ },
51
+ "status": {
52
+ "type": "enum",
53
+ "values": [
54
+ "success",
55
+ "exception",
56
+ "normal",
57
+ "active"
58
+ ],
59
+ "default": "normal",
60
+ "description": "状态。**active 仅 type='line' 时有动画效果**;percent=100 且不传 status 时自动变为 success 状态(显示对应图标)"
61
+ },
62
+ "showInfo": {
63
+ "type": "boolean",
64
+ "default": true,
65
+ "description": "是否显示进度数值或状态图标(中心文字或右侧文字)。false 时隐藏 format/百分比/状态图标"
66
+ },
67
+ "strokeColor": {
68
+ "type": "string | object",
69
+ "objectShape": {
70
+ "from": { "type": "string", "description": "渐变起始颜色(CSS 颜色值)" },
71
+ "to": { "type": "string", "description": "渐变终止颜色(CSS 颜色值)" },
72
+ "direction": { "type": "string", "description": "渐变方向,默认 'to right'" },
73
+ "[percent: string]": { "type": "string", "description": "分段颜色,例:{ '0%': '#108ee9', '100%': '#87d068' }" }
74
+ },
75
+ "completeExample": "'#1677ff' 或 { from: '#108ee9', to: '#87d068' } 或 { '0%': '#108ee9', '100%': '#87d068' }",
76
+ "description": "进度条颜色。传字符串为纯色;传对象可配置渐变色(from/to)或分段颜色(百分比 key)"
77
+ },
78
+ "strokeWidth": {
79
+ "type": "number",
80
+ "description": "进度条宽度(line 模式单位 px;circle/dashboard 模式是相对于 width 的百分比)"
81
+ },
82
+ "format": {
83
+ "type": "function",
84
+ "signature": "(percent?: number | number[], successPercent?: number) => React.ReactNode",
85
+ "description": "自定义进度内容的模板函数(src/Progress/index.tsx:62 interface 声明)。返回值为 ReactNode,可以是字符串、数字或 JSX。**不传时默认显示百分比数字**;status='success' 或 status='exception' 时默认显示对应图标"
86
+ },
87
+ "success": {
88
+ "type": "object",
89
+ "objectShape": {
90
+ "percent": { "type": "number", "description": "成功进度的百分比值(0-100)" },
91
+ "strokeColor": { "type": "string", "description": "成功段进度条颜色(CSS 颜色值)" }
92
+ },
93
+ "description": "成功进度条配置(src/Progress/index.tsx:78 SuccessProps 实证)。与 `percent` 配合使用:percent 表示整体进度,success.percent 表示其中成功部分的比例。**仅 `type='line'` 时有意义**(双段进度条)"
94
+ },
95
+ "steps": {
96
+ "type": "number",
97
+ "description": "进度条总分段数(src/Progress/index.tsx:84 实证)。传入后进度条渲染为等分的多个方块。⚠️ **仅 `type='line'` 时生效**;circle/dashboard 模式传 steps 无效果"
98
+ },
99
+ "width": {
100
+ "type": "number",
101
+ "description": "圆形/仪表盘进度条的画布宽度,单位 px(src/Progress/index.tsx:76 实证,默认 132)。⚠️ **仅 `type='circle'` 或 `type='dashboard'` 时生效**;line 模式宽度由容器决定,请用外层 style 控制"
102
+ },
103
+ "gapDegree": {
104
+ "type": "number",
105
+ "default": 75,
106
+ "description": "仪表盘缺口角度(0~295),**仅 type='dashboard' 时生效**(src/Progress/index.tsx:113 实证默认 75)"
107
+ },
108
+ "gapPosition": {
109
+ "type": "enum",
110
+ "values": ["top", "bottom", "left", "right"],
111
+ "description": "仪表盘缺口位置(src/Progress/index.tsx:80 interface 实证),**仅 type='dashboard' 时生效**"
112
+ }
113
+ },
114
+ "do": [
115
+ "在耗时操作中使用 Progress 反馈进度,避免用户等待焦虑",
116
+ "根据完成度切换 status(success/exception)——percent=100 时可不传 status,组件自动切 success",
117
+ "自定义中心文字用 format 函数返回 ReactNode,如显示上传速度/剩余时间"
118
+ ],
119
+ "dont": [
120
+ "在瞬间完成的操作中使用 Progress(不必要的闪烁)",
121
+ "进度倒退——percent 值只应单调递增,回退会造成用户困惑",
122
+ "circle/dashboard 模式传 steps 或 active——这两个特性仅对 type='line' 有效"
123
+ ],
124
+ "events": {
125
+ "format": {
126
+ "signature": "(percent?: number | number[], successPercent?: number) => React.ReactNode",
127
+ "asyncSupported": false,
128
+ "examples": [
129
+ "显示自定义文字:format={(p) => `${p}%`}",
130
+ "success 状态显示特定内容:format={(p) => p === 100 ? '完成' : `${p}%`}",
131
+ "双段进度(传 number[] 时):format={(p) => Array.isArray(p) ? `成功 ${p[0]}%` : `${p}%`}"
132
+ ],
133
+ "commonMistakes": [
134
+ "showInfo=false 时 format 不生效——showInfo 控制整个信息区显隐,false 时 format 结果也不渲染",
135
+ "假设 percent 永远是 number——传了 success prop 时内部可能处理为 number[]",
136
+ "期望 status='exception' 时 format 自动显示错误图标——format 存在时始终使用 format 返回值,覆盖默认图标"
137
+ ]
138
+ }
139
+ },
140
+ "typescriptPitfalls": [
141
+ {
142
+ "issue": "status='active' 仅对 type='line' 有动画效果,circle/dashboard 传 active 静默无效",
143
+ "wrong": "<Progress type='circle' percent={60} status='active' /> // 无动画,不报错",
144
+ "right": "<Progress type='line' percent={60} status='active' /> // active 动画仅 line 生效"
145
+ },
146
+ {
147
+ "issue": "width prop 仅控制 circle/dashboard 画布尺寸,line 模式传 width 无效",
148
+ "wrong": "<Progress type='line' percent={60} width={300} /> // line 宽度不受 width 控制",
149
+ "right": "<div style={{ width: 300 }}><Progress type='line' percent={60} /></div> // line 模式用容器控制宽度"
150
+ },
151
+ {
152
+ "issue": "strokeColor 对象形式 from/to 渐变与 '0%'/'100%' 分段不能混用",
153
+ "wrong": "strokeColor={{ from: '#108ee9', '50%': '#87d068', to: '#87d068' }} // 类型冲突",
154
+ "right": "// 渐变:strokeColor={{ from: '#108ee9', to: '#87d068' }}\n// 分段:strokeColor={{ '0%': '#108ee9', '100%': '#87d068' }}"
155
+ }
156
+ ],
157
+ "mapping": {
158
+ "realComponent": "Progress",
159
+ "adapter": null
160
+ }
161
+ }
@@ -0,0 +1,144 @@
1
+ {
2
+ "name": "Prompt",
3
+ "category": "Feedback",
4
+ "description": "页面级信息提示条,支持 info/success/warn/error 四种类型及固定/反馈两种模式",
5
+ "semantic": {
6
+ "intent": [
7
+ "页面提示",
8
+ "信息通知"
9
+ ],
10
+ "useCases": [
11
+ "操作结果",
12
+ "系统通知",
13
+ "警告信息"
14
+ ],
15
+ "riskLevel": "low"
16
+ },
17
+ "variants": {
18
+ "error": {
19
+ "meaning": "错误提示"
20
+ },
21
+ "success": {
22
+ "meaning": "成功提示"
23
+ },
24
+ "warn": {
25
+ "meaning": "警告提示"
26
+ },
27
+ "info": {
28
+ "meaning": "信息提示"
29
+ }
30
+ },
31
+ "states": [
32
+ "visible",
33
+ "hidden"
34
+ ],
35
+ "idealProps": {
36
+ "type": {
37
+ "type": "enum",
38
+ "values": [
39
+ "error",
40
+ "success",
41
+ "warn",
42
+ "info"
43
+ ],
44
+ "default": "info",
45
+ "description": "信息类型,决定左侧图标和配色。⚠️ 警告类型值为 `'warn'`,不是 `'warning'`(与 Notification 的 IconType 不同,混用会 fallback 到默认样式)"
46
+ },
47
+ "status": {
48
+ "type": "enum",
49
+ "values": ["fixed", "feedback"],
50
+ "default": "fixed",
51
+ "required": false,
52
+ "description": "显示模式。fixed=常驻不可关闭(用于强制通知/系统公告);feedback=用户可手动关闭(关闭按钮由 closeIcon 控制)。⚠️ 核心 prop:不传时默认 fixed,即不显示关闭按钮、不可消除"
53
+ },
54
+ "title": {
55
+ "type": "string",
56
+ "description": "标题,显示在内容上方的粗体文字"
57
+ },
58
+ "content": {
59
+ "type": "string | string[]",
60
+ "description": "内容正文。传 string 为单行;传 string[] 为多行列表(每项换行展示)。⚠️ 传了 customContent 时此字段失效"
61
+ },
62
+ "customContent": {
63
+ "type": "ReactNode",
64
+ "required": false,
65
+ "description": "完全自定义内容区。传入后 content 失效,由 customContent 完整接管渲染"
66
+ },
67
+ "show": {
68
+ "type": "boolean",
69
+ "description": "是否展示 Prompt,false 时完全不渲染(内部 isShow state 由 show prop 驱动,初始为 true)"
70
+ },
71
+ "closeIcon": {
72
+ "type": "boolean",
73
+ "required": false,
74
+ "description": "是否展示关闭按钮。⚠️ 仅 status='feedback' 时有效,status='fixed' 时即使传 true 也不显示关闭按钮(src/Prompt/index.tsx:108 实证:closeIcon 只在 prompt-status-feedback-close 类下渲染)"
75
+ },
76
+ "hideIcon": {
77
+ "type": "boolean",
78
+ "required": false,
79
+ "description": "是否隐藏左侧类型图标(info/success/warn/error 对应的图标)"
80
+ },
81
+ "outline": {
82
+ "type": "boolean",
83
+ "required": false,
84
+ "description": "是否显示外边框"
85
+ },
86
+ "icon": {
87
+ "type": "ReactNode",
88
+ "required": false,
89
+ "description": "自定义左侧图标,传入后覆盖 type 对应的默认图标"
90
+ },
91
+ "onClose": {
92
+ "type": "() => void",
93
+ "description": "关闭按钮点击回调,status='feedback' 且 closeIcon=true 时有效;触发后组件内部自动隐藏(isShow=false),父组件可在此同步 state"
94
+ }
95
+ },
96
+ "do": [
97
+ "在页面顶部或卡片顶部显示,告知用户当前系统状态或操作结果",
98
+ "可关闭提示使用 status='feedback' + closeIcon=true,onClose 同步父组件 show state",
99
+ "警告类型使用 type='warn'(不是 'warning')",
100
+ "多条提示内容使用 content 数组,组件会自动逐行渲染"
101
+ ],
102
+ "dont": [
103
+ "同时显示多个 Prompt——多条提示应合并或用通知列表",
104
+ "内容过长——超长内容考虑 Modal 或独立页面,Prompt 适合单行到几行的简短提示",
105
+ "status='fixed' 时传 closeIcon=true 期望出现关闭按钮——fixed 模式下 closeIcon 静默失效"
106
+ ],
107
+ "events": {
108
+ "onClose": {
109
+ "signature": "() => void",
110
+ "asyncSupported": false,
111
+ "examples": [
112
+ "同步父组件隐藏状态:onClose={() => setShowPrompt(false)}",
113
+ "关闭后执行操作:onClose={() => { setShowPrompt(false); trackDismiss(); }}",
114
+ "show 受控写法:show={showPrompt} onClose={() => setShowPrompt(false)}"
115
+ ],
116
+ "commonMistakes": [
117
+ "只传 onClose 不传 status='feedback' + closeIcon=true——没有关闭按钮时 onClose 永远不会触发",
118
+ "期望 onClose 阻止 Prompt 自动隐藏——组件内部点击关闭后调 setIsShow(false) 然后再调 onClose,隐藏无法阻止",
119
+ "不传 show prop 而依赖 onClose 控制显示——初始渲染时 isShow=true,无法通过 onClose 来控制初始不显示;初始隐藏需 show=false"
120
+ ]
121
+ }
122
+ },
123
+ "typescriptPitfalls": [
124
+ {
125
+ "issue": "type='warning' 不存在,警告类型枚举值是 'warn'",
126
+ "wrong": "<Prompt type='warning' content='请注意...' /> // TS 类型报错('warning' 不在联合类型)",
127
+ "right": "<Prompt type='warn' content='请注意...' />"
128
+ },
129
+ {
130
+ "issue": "onClose 的类型是 Function(宽泛),严格模式下建议标注为 () => void",
131
+ "wrong": "const handleClose: (e: MouseEvent) => void = () => setShow(false); // 参数类型不匹配",
132
+ "right": "const handleClose: () => void = () => setShow(false); // onClose 签名是无参无返回值"
133
+ },
134
+ {
135
+ "issue": "closeIcon 仅在 status='feedback' 时有效,status='fixed'(默认)传 closeIcon 无按钮渲染",
136
+ "wrong": "<Prompt type='info' closeIcon onClose={() => setShow(false)} /> // status 默认 fixed,closeIcon 不生效",
137
+ "right": "<Prompt type='info' status='feedback' closeIcon onClose={() => setShow(false)} />"
138
+ }
139
+ ],
140
+ "mapping": {
141
+ "realComponent": "Prompt",
142
+ "adapter": null
143
+ }
144
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "name": "Querying",
3
+ "category": "Feedback",
4
+ "description": "查询中状态组件,用于数据搜索/加载中的空态占位提示",
5
+ "semantic": {
6
+ "intent": [
7
+ "加载提示",
8
+ "查询中"
9
+ ],
10
+ "useCases": [
11
+ "数据搜索",
12
+ "列表加载",
13
+ "初始化"
14
+ ],
15
+ "riskLevel": "low"
16
+ },
17
+ "variants": {
18
+ "large": {
19
+ "meaning": "大尺寸"
20
+ },
21
+ "small": {
22
+ "meaning": "小尺寸"
23
+ }
24
+ },
25
+ "states": [
26
+ "loading"
27
+ ],
28
+ "idealProps": {
29
+ "size": {
30
+ "type": "enum",
31
+ "values": [
32
+ "small",
33
+ "medium",
34
+ "large"
35
+ ],
36
+ "default": "large",
37
+ "description": "大小。三档统一为 small / medium / large(2026-05-08 跨组件命名 epic §3.1 选项 B 实施,medium 为新增视觉档,默认 large 不变,既有 small/large 调用零回归)"
38
+ },
39
+ "description": {
40
+ "type": "ReactNode",
41
+ "description": "描述文字;不传时使用 i18n 默认文案('查询中...'),传 null/'' 可隐藏"
42
+ },
43
+ "image": {
44
+ "type": "ReactNode",
45
+ "description": "图片/图标节点;传字符串时渲染为 <img src>;不传时使用内置 SVG 插图(large 用 LargeSearch,small 用 SmallSearch)"
46
+ },
47
+ "imageStyle": {
48
+ "type": "React.CSSProperties",
49
+ "description": "图片容器的内联样式(src/Querying/index.tsx:24 interface 实证)"
50
+ },
51
+ "customQuerying": {
52
+ "type": "React.ReactNode",
53
+ "description": "完全自定义整个 Querying 内容区;传入后 image / description / imageStyle 均被替换,组件只渲染此 ReactNode"
54
+ },
55
+ "className": {
56
+ "type": "string",
57
+ "description": "自定义类名"
58
+ },
59
+ "style": {
60
+ "type": "React.CSSProperties",
61
+ "description": "自定义样式"
62
+ }
63
+ },
64
+ "do": [
65
+ "在搜索或查询时显示,替换 Table/List 的空态区域",
66
+ "提供清晰的加载中提示——description 说明当前正在做什么(如「正在搜索...」)",
67
+ "使用 customQuerying 完全自定义布局,或通过 image + description 组合定制"
68
+ ],
69
+ "dont": [
70
+ "加载时间过长不给提示——超过 300ms 的异步操作应展示 Querying",
71
+ "与其他加载状态(Spinner/Skeleton)混用——同一容器内选用统一加载态组件",
72
+ "把 Querying 用于非加载场景(如「暂无数据」)——空数据场景应用 Empty 组件"
73
+ ],
74
+ "events": {},
75
+ "typescriptPitfalls": [
76
+ {
77
+ "issue": "description 不传 vs 传 undefined 行为一致,传空字符串会渲染空区块",
78
+ "wrong": "description='' // 空字符串被当作 truthy ReactNode 渲染,出现空白区域",
79
+ "right": "// 不传 description 或传 null/undefined 使用默认 i18n 文案\n<Querying /> // 显示默认 '查询中...'"
80
+ },
81
+ {
82
+ "issue": "image 传字符串时渲染为 <img src>,传 ReactNode 直接渲染——类型合法但行为不同",
83
+ "wrong": "image={svgComponent} // 若 svgComponent 是字符串路径则渲染 img,若是 JSX 则直接渲染",
84
+ "right": "image={<MySvgIcon />} // 明确传 ReactElement 直接渲染;传 URL 字符串时渲染 img"
85
+ },
86
+ {
87
+ "issue": "customQuerying 传入后 image/description/imageStyle 全部失效,不要混传",
88
+ "wrong": "<Querying customQuerying={<MyComp />} description='加载中' /> // description 被忽略",
89
+ "right": "// 要么用 customQuerying 完全接管,要么用 image+description 局部定制,不要混用"
90
+ }
91
+ ],
92
+ "mapping": {
93
+ "realComponent": "Querying",
94
+ "adapter": null
95
+ }
96
+ }
@@ -1 +1 @@
1
- @charset "UTF-8";.paraui-v4-querying{display:inline-flex;flex-direction:column;align-items:center}.paraui-v4-querying>.querying-image{line-height:0;overflow:hidden}.paraui-v4-querying>.querying-image img{width:100%}.paraui-v4-querying .querying-image-large{width:334px;height:238px}.paraui-v4-querying .querying-image-small{width:120px;height:80px}.paraui-v4-querying>.querying-description{line-height:17px;font-size:14px;font-weight:400;color:#1d2126}.paraui-v4-querying.paraui-v4-querying-large>.querying-description{margin-top:20px}.paraui-v4-querying.paraui-v4-querying-small>.querying-description{margin-top:10px;font-size:14px}
1
+ @charset "UTF-8";.paraui-v4-querying{display:inline-flex;flex-direction:column;align-items:center}.paraui-v4-querying>.querying-image{overflow:hidden;line-height:0}.paraui-v4-querying>.querying-image img{width:100%}.paraui-v4-querying .querying-image-large{width:334px;height:238px}.paraui-v4-querying .querying-image-medium{width:220px;height:150px}.paraui-v4-querying .querying-image-small{width:120px;height:80px}.paraui-v4-querying>.querying-description{font-size:14px;font-weight:400;line-height:17px;color:#1d2126}.paraui-v4-querying.paraui-v4-querying-large>.querying-description{margin-top:20px}.paraui-v4-querying.paraui-v4-querying-medium>.querying-description{margin-top:15px;font-size:14px}.paraui-v4-querying.paraui-v4-querying-small>.querying-description{margin-top:10px;font-size:14px}
@@ -5,7 +5,7 @@ export interface QueryingProps {
5
5
  /** style */
6
6
  style?: React.CSSProperties;
7
7
  /** 尺寸 */
8
- size?: 'large' | 'small';
8
+ size?: 'small' | 'medium' | 'large';
9
9
  /** 图片样式 */
10
10
  imageStyle?: React.CSSProperties;
11
11
  /** 图片 */
@@ -14,7 +14,7 @@ export interface QueryingProps {
14
14
  description?: React.ReactNode;
15
15
  /** 自定义节点 */
16
16
  customQuerying?: React.ReactNode;
17
- [name: string]: any;
17
+ [name: string]: unknown;
18
18
  }
19
19
  declare const Querying: FC<QueryingProps>;
20
20
  export default Querying;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const e=require("../_virtual/jsx-runtime.js"),y=require("clsx"),a=require("./images/index.js"),j=require("../GlobalContext/useFormatMessage.js"),p=require("./lang/index.js"),o=require("../GlobalContext/constant.js"),q=require("../Hooks/useGlobalProps.js");;/* empty css */const f={large:e.jsxRuntimeExports.jsx(a.LargeSearch,{}),small:e.jsxRuntimeExports.jsx(a.SmallSearch,{})},R=n=>{const{className:c,style:x,size:i="large",imageStyle:g,image:r=f[i],description:u,customQuerying:l}=q.default(n,"Querying"),m=j.default("Querying",p.default),s=typeof u<"u"?u:m({id:"querying"}),d=typeof s=="string"?s:"querying";let t=null;return typeof r=="string"?t=e.jsxRuntimeExports.jsx("img",{src:r,alt:d}):t=r,e.jsxRuntimeExports.jsx("div",{className:y(`${o.$prefixCls}-querying`,c,`${o.$prefixCls}-querying-${i}`),style:x,children:l||e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx("div",{className:`querying-image ${n?.image?"":`querying-image-${i}`}`,style:g,children:t}),s&&e.jsxRuntimeExports.jsx("div",{className:"querying-description",children:s})]})})};exports.default=R;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const e=require("../_virtual/jsx-runtime.js"),j=require("clsx"),n=require("./images/index.js"),y=require("../GlobalContext/useFormatMessage.js"),p=require("./lang/index.js"),o=require("../GlobalContext/constant.js"),q=require("../Hooks/useGlobalProps.js");;/* empty css */const f={large:e.jsxRuntimeExports.jsx(n.LargeSearch,{}),medium:e.jsxRuntimeExports.jsx(n.LargeSearch,{}),small:e.jsxRuntimeExports.jsx(n.SmallSearch,{})},R=u=>{const{className:c,style:x,size:i="large",imageStyle:m,image:r=f[i],description:a,customQuerying:l}=q.default(u,"Querying"),g=y.default("Querying",p.default),s=typeof a<"u"?a:g({id:"querying"}),d=typeof s=="string"?s:"querying";let t=null;return typeof r=="string"?t=e.jsxRuntimeExports.jsx("img",{src:r,alt:d}):t=r,e.jsxRuntimeExports.jsx("div",{className:j(`${o.$prefixCls}-querying`,c,`${o.$prefixCls}-querying-${i}`),style:x,children:l||e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx("div",{className:`querying-image ${u?.image?"":`querying-image-${i}`}`,style:m,children:t}),s&&e.jsxRuntimeExports.jsx("div",{className:"querying-description",children:s})]})})};exports.default=R;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- .paraui-v4-querying{display:inline-flex;flex-direction:column;align-items:center}.paraui-v4-querying>.querying-image{line-height:0;overflow:hidden}.paraui-v4-querying>.querying-image img{width:100%}.paraui-v4-querying .querying-image-large{width:334px;height:238px}.paraui-v4-querying .querying-image-small{width:120px;height:80px}.paraui-v4-querying>.querying-description{line-height:17px;font-size:14px;font-weight:400;color:#1d2126}.paraui-v4-querying.paraui-v4-querying-large>.querying-description{margin-top:20px}.paraui-v4-querying.paraui-v4-querying-small>.querying-description{margin-top:10px;font-size:14px}
1
+ .paraui-v4-querying{display:inline-flex;flex-direction:column;align-items:center}.paraui-v4-querying>.querying-image{overflow:hidden;line-height:0}.paraui-v4-querying>.querying-image img{width:100%}.paraui-v4-querying .querying-image-large{width:334px;height:238px}.paraui-v4-querying .querying-image-medium{width:220px;height:150px}.paraui-v4-querying .querying-image-small{width:120px;height:80px}.paraui-v4-querying>.querying-description{font-size:14px;font-weight:400;line-height:17px;color:#1d2126}.paraui-v4-querying.paraui-v4-querying-large>.querying-description{margin-top:20px}.paraui-v4-querying.paraui-v4-querying-medium>.querying-description{margin-top:15px;font-size:14px}.paraui-v4-querying.paraui-v4-querying-small>.querying-description{margin-top:10px;font-size:14px}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const t=require("../../_virtual/jsx-runtime.js"),R=require("react"),oe=require("clsx"),d=require("../../GlobalContext/constant.js"),le=require("react-sortablejs"),x=require("../../Button/index.js"),ce=require("../../Checkbox/index.js"),ue=require("../../TextField/index.js"),H=require("../../PopConfirm/index.js"),de=require("../../Empty/index.js"),ae=require("../../AutoTips/index.js"),xe=require("../../node_modules/@para-ui/icons/Plus/index.js"),pe=require("../../node_modules/@para-ui/icons/Drag/index.js"),me=require("../../node_modules/@para-ui/icons/Delete/index.js"),je=require("../../node_modules/@para-ui/icons/EditOutline/index.js"),K=require("@paraview/lib"),he=require("../../GlobalContext/useFormatMessage.js"),fe=require("../lang/index.js");;/* empty css */const z=U=>{const{rowKey:n="id",labelKey:v="label",valueKey:$="label",limitLength:w,className:M,style:Q,list:i,add:N=!0,edit:B=!0,del:j=!0,sort:h=!0,width:b=440,minHeight:k=200,maxHeight:C=320,placeholder:A,onChange:c,onSelect:P,onShowDelete:u}=U,r=he.default("QuickReply",fe.default),[a,E]=R.useState({}),[s,f]=R.useState(),[l,S]=R.useState({}),[y,q]=R.useState(),D=R.useRef({uuid:K.UUID()}),L=()=>{E({[n]:K.UUID(),[v]:"",[$]:""}),f("add")},J=e=>()=>{E({...e}),f("edit")},T=()=>{f(void 0),S({}),E({})},G=()=>{f("sort")},_=()=>{if(s==="del"){u&&u(!0),q(D.current.uuid);return}f("del")},W=e=>{if(!s){P&&P(e);return}s!=="del"||y||(l[e[n]]?delete l[e[n]]:l[e[n]]=!0,S({...l}))},X=e=>o=>{o.stopPropagation(),u&&u(!0),q(e[n])},O=e=>{let o={};e&&(o[e[n]]=!0),D.current.uuid===y&&(o={...l});const p=[];i?.forEach(g=>{const m=g[n];delete l[m],o[m]||p.push(g)}),c&&c(p),u&&u(!1),q(void 0),S({...l})},F=()=>{u&&u(!1),q(void 0)},Y=e=>{a[v]=e.target.value,a[$]=e.target.value,E({...a})},Z=()=>{if(s==="add")c&&c([a,...i||[]]);else{const e=[];i?.forEach(o=>{o[n]===a[n]?e.push(a):e.push(o)}),c&&c(e)}T()},V=()=>!N&&!h&&!j?null:t.jsxRuntimeExports.jsxs("div",{className:"quick-reply-code-top",children:[N&&t.jsxRuntimeExports.jsx("div",{className:"add-box",children:t.jsxRuntimeExports.jsx(x.Button,{variant:"text",startIcon:t.jsxRuntimeExports.jsx(xe.Plus,{}),onClick:L,children:r("add")})}),t.jsxRuntimeExports.jsxs("div",{className:"sort-del-box",children:[(s==="del"||s==="sort")&&t.jsxRuntimeExports.jsx(x.Button,{variant:"text",className:"back-btn",onClick:T,children:r("back")}),h&&s!=="sort"&&s!=="del"&&t.jsxRuntimeExports.jsx(x.Button,{variant:"text",className:"sort-btn",onClick:G,disabled:!i||i?.length===0,children:r("sort")}),j&&s!=="sort"&&t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:s==="del"?t.jsxRuntimeExports.jsx(H.PopConfirm,{title:r("del"),content:r("delTip"),controllable:!0,open:D.current.uuid===y,getPopupContainer:()=>document.body,placement:"bottom-end",onOk:O,onCancel:F,children:t.jsxRuntimeExports.jsx(x.Button,{disabled:JSON.stringify(l)==="{}",variant:"text",className:"del-btn",onClick:_,children:r("batchDel")})}):t.jsxRuntimeExports.jsx(x.Button,{variant:"text",className:"del-btn",disabled:!i||i?.length===0,onClick:_,children:r("del")})})]})]}),ee=e=>s==="del"?t.jsxRuntimeExports.jsx(H.PopConfirm,{title:r("del"),content:r("delTip"),controllable:!0,open:e[n]===y,placement:"bottom-end",onOk:()=>O(e),onCancel:F,getPopupContainer:()=>document.body,children:t.jsxRuntimeExports.jsx(me.Delete,{onClick:X(e)})}):s==="sort"?t.jsxRuntimeExports.jsx(pe.Drag,{className:"sort-icon"}):B?t.jsxRuntimeExports.jsx(je.EditOutline,{onClick:J(e)}):null,I=()=>!i||i?.length===0?t.jsxRuntimeExports.jsx("div",{className:"list-empty",children:t.jsxRuntimeExports.jsx(de.default,{size:"small"})}):t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:i?.map(e=>t.jsxRuntimeExports.jsxs("div",{className:"info-item",onClick:()=>W(e),children:[s==="del"&&t.jsxRuntimeExports.jsx(ce.Checkbox,{className:"info-item-checkbox",checked:l[e[n]]||!1}),t.jsxRuntimeExports.jsx("div",{className:"label-box",children:t.jsxRuntimeExports.jsx(ae.default,{placement:"top-start",children:e[v]})}),ee(e)]},e[n]))}),te=e=>{const o=[];for(let p=0,g=e.length;p<g;p++){const m=e[p];delete m.chosen,delete m.selected,o.push(m)}c&&c(o)},se=()=>h?t.jsxRuntimeExports.jsx(le.ReactSortable,{id:n,list:i||[],handle:".sort-icon",animation:150,setList:te,className:`quick-reply-code-bottom-scroll ${d.$prefixCls}-scrollbar-small`,children:I()}):t.jsxRuntimeExports.jsx("div",{className:"quick-reply-code-bottom-scroll",children:I()}),ne=()=>{if(!(s!=="add"&&s!=="edit"))return t.jsxRuntimeExports.jsxs("div",{className:"edit-box",children:[t.jsxRuntimeExports.jsx(ue.TextField,{multiline:!0,className:"text-input",placeholder:A||r("pleaseEnter"),resize:!1,hideErrorDom:!0,limitLength:w,value:a[$],onChange:Y}),t.jsxRuntimeExports.jsxs("div",{className:"edit-footer",children:[t.jsxRuntimeExports.jsx(x.Button,{variant:"outlined",size:"small",onClick:T,children:r("cancel")}),t.jsxRuntimeExports.jsx(x.Button,{size:"small",onClick:Z,children:r("confirm")})]})]})},re=()=>{const e={...Q};return b&&(e.width=typeof b=="number"?`${b}px`:b),k&&(e.minHeight=typeof k=="number"?`${k}px`:k),C&&(e.maxHeight=typeof C=="number"?`${C}px`:C),e},ie=()=>!!(j&&h||j&&s==="del");return t.jsxRuntimeExports.jsxs("div",{className:oe(`${d.$prefixCls}-quick-reply-code`,`${d.$prefixCls}-scrollbar-small`,M,{[`${d.$prefixCls}-quick-reply-code-add`]:N,[`${d.$prefixCls}-quick-reply-code-edit`]:B,[`${d.$prefixCls}-quick-reply-code-del`]:j,[`${d.$prefixCls}-quick-reply-code-sort`]:h,[`${d.$prefixCls}-quick-reply-code-line`]:ie()}),style:re(),children:[V(),t.jsxRuntimeExports.jsx("div",{className:"quick-reply-code-bottom",children:se()}),ne()]})};exports.QuickReplyCode=z;exports.default=z;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const t=require("../../_virtual/jsx-runtime.js"),b=require("react"),oe=require("clsx"),d=require("../../GlobalContext/constant.js"),le=require("react-sortablejs"),x=require("../../Button/index.js"),ce=require("../../Checkbox/index.js"),ue=require("../../TextField/index.js"),H=require("../../PopConfirm/index.js"),de=require("../../Empty/index.js"),ae=require("../../AutoTips/index.js"),xe=require("../../node_modules/@para-ui/icons/Plus/index.js"),pe=require("../../node_modules/@para-ui/icons/Drag/index.js"),me=require("../../node_modules/@para-ui/icons/Delete/index.js"),je=require("../../node_modules/@para-ui/icons/EditOutline/index.js"),K=require("@snack-kit/lib"),he=require("../../GlobalContext/useFormatMessage.js"),fe=require("../lang/index.js");;/* empty css */const z=U=>{const{rowKey:n="id",labelKey:v="label",valueKey:$="label",limitLength:w,className:M,style:Q,list:i,add:N=!0,edit:B=!0,del:j=!0,sort:h=!0,width:R=440,minHeight:k=200,maxHeight:C=320,placeholder:A,onChange:c,onSelect:P,onShowDelete:u}=U,r=he.default("QuickReply",fe.default),[a,E]=b.useState({}),[s,f]=b.useState(),[l,S]=b.useState({}),[y,q]=b.useState(),D=b.useRef({uuid:K.UUID()}),L=()=>{E({[n]:K.UUID(),[v]:"",[$]:""}),f("add")},J=e=>()=>{E({...e}),f("edit")},T=()=>{f(void 0),S({}),E({})},G=()=>{f("sort")},_=()=>{if(s==="del"){u&&u(!0),q(D.current.uuid);return}f("del")},W=e=>{if(!s){P&&P(e);return}s!=="del"||y||(l[e[n]]?delete l[e[n]]:l[e[n]]=!0,S({...l}))},X=e=>o=>{o.stopPropagation(),u&&u(!0),q(e[n])},O=e=>{let o={};e&&(o[e[n]]=!0),D.current.uuid===y&&(o={...l});const p=[];i?.forEach(g=>{const m=g[n];delete l[m],o[m]||p.push(g)}),c&&c(p),u&&u(!1),q(void 0),S({...l})},F=()=>{u&&u(!1),q(void 0)},Y=e=>{a[v]=e.target.value,a[$]=e.target.value,E({...a})},Z=()=>{if(s==="add")c&&c([a,...i||[]]);else{const e=[];i?.forEach(o=>{o[n]===a[n]?e.push(a):e.push(o)}),c&&c(e)}T()},V=()=>!N&&!h&&!j?null:t.jsxRuntimeExports.jsxs("div",{className:"quick-reply-code-top",children:[N&&t.jsxRuntimeExports.jsx("div",{className:"add-box",children:t.jsxRuntimeExports.jsx(x.Button,{variant:"text",startIcon:t.jsxRuntimeExports.jsx(xe.Plus,{}),onClick:L,children:r("add")})}),t.jsxRuntimeExports.jsxs("div",{className:"sort-del-box",children:[(s==="del"||s==="sort")&&t.jsxRuntimeExports.jsx(x.Button,{variant:"text",className:"back-btn",onClick:T,children:r("back")}),h&&s!=="sort"&&s!=="del"&&t.jsxRuntimeExports.jsx(x.Button,{variant:"text",className:"sort-btn",onClick:G,disabled:!i||i?.length===0,children:r("sort")}),j&&s!=="sort"&&t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:s==="del"?t.jsxRuntimeExports.jsx(H.PopConfirm,{title:r("del"),content:r("delTip"),controllable:!0,open:D.current.uuid===y,getPopupContainer:()=>document.body,placement:"bottom-end",onOk:O,onCancel:F,children:t.jsxRuntimeExports.jsx(x.Button,{disabled:JSON.stringify(l)==="{}",variant:"text",className:"del-btn",onClick:_,children:r("batchDel")})}):t.jsxRuntimeExports.jsx(x.Button,{variant:"text",className:"del-btn",disabled:!i||i?.length===0,onClick:_,children:r("del")})})]})]}),ee=e=>s==="del"?t.jsxRuntimeExports.jsx(H.PopConfirm,{title:r("del"),content:r("delTip"),controllable:!0,open:e[n]===y,placement:"bottom-end",onOk:()=>O(e),onCancel:F,getPopupContainer:()=>document.body,children:t.jsxRuntimeExports.jsx(me.Delete,{onClick:X(e)})}):s==="sort"?t.jsxRuntimeExports.jsx(pe.Drag,{className:"sort-icon"}):B?t.jsxRuntimeExports.jsx(je.EditOutline,{onClick:J(e)}):null,I=()=>!i||i?.length===0?t.jsxRuntimeExports.jsx("div",{className:"list-empty",children:t.jsxRuntimeExports.jsx(de.default,{size:"small"})}):t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:i?.map(e=>t.jsxRuntimeExports.jsxs("div",{className:"info-item",onClick:()=>W(e),children:[s==="del"&&t.jsxRuntimeExports.jsx(ce.Checkbox,{className:"info-item-checkbox",checked:l[e[n]]||!1}),t.jsxRuntimeExports.jsx("div",{className:"label-box",children:t.jsxRuntimeExports.jsx(ae.default,{placement:"top-start",children:e[v]})}),ee(e)]},e[n]))}),te=e=>{const o=[];for(let p=0,g=e.length;p<g;p++){const m=e[p];delete m.chosen,delete m.selected,o.push(m)}c&&c(o)},se=()=>h?t.jsxRuntimeExports.jsx(le.ReactSortable,{id:n,list:i||[],handle:".sort-icon",animation:150,setList:te,className:`quick-reply-code-bottom-scroll ${d.$prefixCls}-scrollbar-small`,children:I()}):t.jsxRuntimeExports.jsx("div",{className:"quick-reply-code-bottom-scroll",children:I()}),ne=()=>{if(!(s!=="add"&&s!=="edit"))return t.jsxRuntimeExports.jsxs("div",{className:"edit-box",children:[t.jsxRuntimeExports.jsx(ue.TextField,{multiline:!0,className:"text-input",placeholder:A||r("pleaseEnter"),resize:!1,hideErrorDom:!0,limitLength:w,value:a[$],onChange:Y}),t.jsxRuntimeExports.jsxs("div",{className:"edit-footer",children:[t.jsxRuntimeExports.jsx(x.Button,{variant:"outlined",size:"small",onClick:T,children:r("cancel")}),t.jsxRuntimeExports.jsx(x.Button,{size:"small",onClick:Z,children:r("confirm")})]})]})},re=()=>{const e={...Q};return R&&(e.width=typeof R=="number"?`${R}px`:R),k&&(e.minHeight=typeof k=="number"?`${k}px`:k),C&&(e.maxHeight=typeof C=="number"?`${C}px`:C),e},ie=()=>!!(j&&h||j&&s==="del");return t.jsxRuntimeExports.jsxs("div",{className:oe(`${d.$prefixCls}-quick-reply-code`,`${d.$prefixCls}-scrollbar-small`,M,{[`${d.$prefixCls}-quick-reply-code-add`]:N,[`${d.$prefixCls}-quick-reply-code-edit`]:B,[`${d.$prefixCls}-quick-reply-code-del`]:j,[`${d.$prefixCls}-quick-reply-code-sort`]:h,[`${d.$prefixCls}-quick-reply-code-line`]:ie()}),style:re(),children:[V(),t.jsxRuntimeExports.jsx("div",{className:"quick-reply-code-bottom",children:se()}),ne()]})};exports.QuickReplyCode=z;exports.default=z;
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,129 @@
1
+ {
2
+ "name": "QuickReply",
3
+ "category": "Data Entry",
4
+ "description": "快捷回复组件,集成预设内容选择浮层+文本编辑区,支持预设列表管理",
5
+ "semantic": {
6
+ "intent": [
7
+ "快捷回复",
8
+ "预设内容"
9
+ ],
10
+ "useCases": [
11
+ "客服会话",
12
+ "评论回复",
13
+ "问卷反馈"
14
+ ],
15
+ "riskLevel": "low"
16
+ },
17
+ "variants": {
18
+ "default": {
19
+ "meaning": "默认样式"
20
+ }
21
+ },
22
+ "states": [
23
+ "default"
24
+ ],
25
+ "idealProps": {
26
+ "list": {
27
+ "type": "QuickReplyCodeListProps[]",
28
+ "description": "快捷回复预设列表(QuickReplyCodeListProps = { label?: string; value?: string; [name: string]: any });每项至少需要 rowKey 对应字段(默认 id)作为唯一标识,以及 labelKey 字段(默认 label)作为显示文案"
29
+ },
30
+ "value": {
31
+ "type": "string",
32
+ "description": "**输入框文本受控值**(textarea 受控,不是被选中预设项的标识!);与 onChange 配对;**点击预设项时此值会被内部 onSelect handler 自动同步**(src/QuickReply/index.tsx:139-144 取 item[valueKey] 后 setValueCom)"
33
+ },
34
+ "defaultValue": {
35
+ "type": "string",
36
+ "description": "输入框非受控初始值"
37
+ },
38
+ "rowKey": {
39
+ "type": "string",
40
+ "default": "id",
41
+ "description": "list 项唯一标识字段名(默认 'id',与 React key 无关)"
42
+ },
43
+ "labelKey": {
44
+ "type": "string",
45
+ "default": "label",
46
+ "description": "list 项展示文案字段名"
47
+ },
48
+ "valueKey": {
49
+ "type": "string",
50
+ "default": "label",
51
+ "description": "list 项实际值字段名;⚠️ **默认 'label' 不是 'value'**——反直觉!这决定了点击预设时 onChange 回参取 list[i] 的哪个字段;若 list 项有 value 字段且想让 onChange 收到业务 code,必须显式 `valueKey='value'`(通过 quickReplyCodeProps 工厂透传给内嵌浮层实例)"
52
+ },
53
+ "rows": {
54
+ "type": "number",
55
+ "description": "输入框行数(textarea rows 属性)"
56
+ },
57
+ "placeholder": {
58
+ "type": "string",
59
+ "description": "输入框占位文案(默认 i18n '请输入')"
60
+ },
61
+ "quickReplyCodeProps": {
62
+ "type": "function",
63
+ "signature": "(type: 'select' | 'setting') => QuickReplyCodeProps",
64
+ "description": "工厂函数,分别给选择浮层('select')/ 管理浮层('setting')透传子组件参数(如 valueKey / add / edit / del / sort 等)"
65
+ },
66
+ "renderQuickReplyBtn": {
67
+ "type": "ReactNode",
68
+ "description": "自定义触发按钮节点(默认为「快捷回复」文字按钮)"
69
+ },
70
+ "onChange": {
71
+ "type": "(val: string) => void",
72
+ "description": "**输入框文本变化回调**——两种触发场景共用一个回调:① 用户键入文字 ② **用户点击预设项**(内部 onSelect handler 取 item[valueKey] 后自动调 onChange);所以「点击预设填入输入框」是默认行为,**无需也不存在 QuickReply 顶层 onSelect prop**"
73
+ },
74
+ "onChangeList": {
75
+ "type": "(arr: QuickReplyCodeListProps[]) => void",
76
+ "description": "用户在管理浮层中增删改后触发(注意:QuickReplyCode 子组件自己的同语义回调叫 onChange,QuickReply 顶层叫 onChangeList——跨层级看 onChange 务必区分)"
77
+ }
78
+ },
79
+ "do": [
80
+ "在需要快速输入预设内容的场景使用,list 每项至少有 rowKey 字段(默认 id)和 labelKey 字段(默认 label)",
81
+ "支持编辑和管理预设内容——onChangeList 里持久化更新后的 list",
82
+ "valueKey 默认是 'label',若预设项有独立 value 字段(业务 code)且需要 onChange 收到此值,通过 quickReplyCodeProps 显式传 valueKey='value'",
83
+ "value 受控写法:value={text} onChange={(val) => setText(val)}——点击预设或手动输入都触发 onChange"
84
+ ],
85
+ "dont": [
86
+ "预设内容过多不做分类——超过 20 条考虑搜索或分组",
87
+ "忽略用户自定义需求——提供管理浮层(onChangeList)让用户自己维护预设",
88
+ "期待 QuickReply 顶层有 onSelect prop(它已封装在内部——点击预设直接触发顶层 onChange,无需 onSelect)",
89
+ "把外部 string[] 直接传给 list(必须 map 成 QuickReplyCodeListProps[] 形状:每项至少有 id 和 label 字段)",
90
+ "假设 onChange 与 onChangeList 等价(onChange 是输入框文本回调 string,onChangeList 是 list 增删改后的数组回调——跨子层级 QuickReplyCode.onChange 又是 list 回调,易混)"
91
+ ],
92
+ "events": {
93
+ "onChange": {
94
+ "signature": "(val: string) => void",
95
+ "asyncSupported": false,
96
+ "examples": [
97
+ "受控绑定:value={text} onChange={(val) => setText(val)}",
98
+ "点击预设自动填入:onChange 会在点击预设项时被调用,val = item[valueKey](默认取 item.label)",
99
+ "区分键入与预设选择:无法区分,两种场景均调同一 onChange;如需区分,用 quickReplyCodeProps 工厂中的 onSelect 替换逻辑"
100
+ ],
101
+ "commonMistakes": [
102
+ "期望 QuickReply 顶层有 onSelect——点击预设触发的是 onChange,不存在独立的 onSelect",
103
+ "valueKey 默认 'label' 导致 onChange 收到 label 文案而非业务 id——需显式 valueKey='value'",
104
+ "onChange 和 onChangeList 混淆——onChange 是 string 回调(输入框文本),onChangeList 是 QuickReplyCodeListProps[] 回调(预设列表变化)"
105
+ ]
106
+ }
107
+ },
108
+ "typescriptPitfalls": [
109
+ {
110
+ "issue": "valueKey 默认 'label' 不是 'value',点击预设后 onChange 收到的是 label 文案",
111
+ "wrong": "// list 有 value 字段但未配 valueKey:\nlist={[{ id: '1', label: '您好', value: 'hello' }]}\n// 点击后 onChange 回传 '您好'(label),不是 'hello'(value)",
112
+ "right": "quickReplyCodeProps={() => ({ valueKey: 'value' })} // 两个浮层实例都透传 valueKey='value'"
113
+ },
114
+ {
115
+ "issue": "list 每项必须有 rowKey 对应字段(默认 id),缺少会导致删除/排序等操作异常",
116
+ "wrong": "list={[{ label: '您好' }, { label: '谢谢' }]} // 缺少 id 字段,rowKey 默认 'id'",
117
+ "right": "list={[{ id: '1', label: '您好' }, { id: '2', label: '谢谢' }]}"
118
+ },
119
+ {
120
+ "issue": "quickReplyCodeProps 是工厂函数,不是对象,接受 'select'|'setting' 参数",
121
+ "wrong": "quickReplyCodeProps={{ add: false, edit: false }} // TS 报错,类型是函数",
122
+ "right": "quickReplyCodeProps={(type) => type === 'select' ? { add: false } : { add: true, edit: true }}"
123
+ }
124
+ ],
125
+ "mapping": {
126
+ "realComponent": "QuickReply",
127
+ "adapter": null
128
+ }
129
+ }
@@ -3,7 +3,7 @@ import { default as QuickReplyCode } from './QuickReplyCode';
3
3
  export interface QuickReplyCodeListProps {
4
4
  label?: string;
5
5
  value?: string;
6
- [name: string]: any;
6
+ [name: string]: unknown;
7
7
  }
8
8
  export interface QuickReplyCodeProps {
9
9
  /** 样式class */