@para-ui/core 5.0.0-beta.12 → 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 (556) 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 +50 -47
  111. package/es/Anchor/type.d.ts +8 -4
  112. package/es/Argv/component.json +216 -0
  113. package/es/Argv/index.d.ts +5 -6
  114. package/es/AutoBox/component.json +133 -0
  115. package/es/AutoBox/index.d.ts +3 -3
  116. package/es/AutoBox/index.js +1 -1
  117. package/es/AutoBox/protal.d.ts +2 -2
  118. package/es/AutoBox/protal.js +32 -29
  119. package/es/AutoButton/component.json +109 -0
  120. package/es/AutoButton/index.js +1 -1
  121. package/es/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  122. package/es/AutoTips/autoTipsMultiline/index.js +1 -1
  123. package/es/AutoTips/component.json +121 -0
  124. package/es/Badge/component.json +92 -0
  125. package/es/Breadcrumbs/component.json +142 -0
  126. package/es/Breadcrumbs/index.js +1 -1
  127. package/es/Button/SplitButton.d.ts +2 -2
  128. package/es/Button/component.json +168 -0
  129. package/es/Button/index.js +44 -44
  130. package/es/ButtonGroup/component.json +132 -0
  131. package/es/ButtonGroup/index.d.ts +1 -1
  132. package/es/Card/component.json +162 -0
  133. package/es/Card/index.d.ts +2 -2
  134. package/es/Card/index.js +2 -2
  135. package/es/Carousel/component.json +142 -0
  136. package/es/Carousel/index.d.ts +1 -1
  137. package/es/Cascader/component.json +196 -0
  138. package/es/Cascader/hooks/useEntities.js +7 -7
  139. package/es/Cascader/interface.d.ts +1 -0
  140. package/es/Cascader/utils/commonUtil.d.ts +1 -1
  141. package/es/Cascader/utils/commonUtil.js +16 -16
  142. package/es/Cascader/utils/treeUtil.d.ts +14 -5
  143. package/es/Cascader/utils/treeUtil.js +1 -1
  144. package/es/Checkbox/component.json +138 -0
  145. package/es/CheckboxGroup/component.json +152 -0
  146. package/es/CodeEditor/component.json +189 -0
  147. package/es/CodeEditor/index.d.ts +10 -9
  148. package/es/Collapse/component.json +166 -0
  149. package/es/Collapse/index.d.ts +1 -1
  150. package/es/Collapse/index.js +23 -22
  151. package/es/CollapseBox/component.json +84 -0
  152. package/es/CollapseLayout/component.json +155 -0
  153. package/es/ColorPicker/component.json +142 -0
  154. package/es/ComboSelect/component.json +181 -0
  155. package/es/ComboSelect/index.js +73 -68
  156. package/es/ComboSelect/interface.d.ts +2 -2
  157. package/es/ComboSelect/utils.d.ts +3 -3
  158. package/es/ComboSelect/utils.js +1 -1
  159. package/es/Container/component.json +111 -0
  160. package/es/ContentBox/component.json +81 -0
  161. package/es/CopyText/component.json +118 -0
  162. package/es/CycleSelector/component.json +98 -0
  163. package/es/CycleSelector/index.js +14 -13
  164. package/es/DatePicker/component.json +192 -0
  165. package/es/DatePicker/generatePicker/generateRangePicker.js +10 -10
  166. package/es/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  167. package/es/Descriptions/component.json +142 -0
  168. package/es/Descriptions/index.d.ts +1 -1
  169. package/es/Desktop/component.json +171 -0
  170. package/es/DragVerify/component.json +114 -0
  171. package/es/DragVerify/index.js +19 -19
  172. package/es/Drawer/component.json +200 -0
  173. package/es/Drawer/index.js +86 -86
  174. package/es/Drawer/interface.d.ts +1 -1
  175. package/es/Drawer/util.d.ts +1 -6
  176. package/es/Drawer/util.js +9 -6
  177. package/es/Dropdown/component.json +147 -0
  178. package/es/DynamicMultiBox/component.json +278 -0
  179. package/es/DynamicMultiBox/formItem.d.ts +1 -1
  180. package/es/DynamicMultiBox/rowForm.d.ts +2 -2
  181. package/es/Empty/component.json +123 -0
  182. package/es/Empty/index.css +1 -1
  183. package/es/Empty/index.d.ts +2 -2
  184. package/es/Empty/index.js +27 -26
  185. package/es/Empty/style/index.css +1 -1
  186. package/es/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  187. package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
  188. package/es/FieldForm/Form.d.ts +2 -2
  189. package/es/FieldForm/FormList.d.ts +2 -2
  190. package/es/FieldForm/component.json +196 -0
  191. package/es/FieldForm/context.d.ts +5 -1
  192. package/es/FieldForm/context.js +2 -2
  193. package/es/FieldForm/hooks/useForm.d.ts +4 -3
  194. package/es/FieldForm/hooks/useFormInstance.d.ts +1 -1
  195. package/es/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  196. package/es/FieldForm/hooks/useFormItemStatus.js +2 -2
  197. package/es/FieldForm/hooks/useItemRef.d.ts +1 -1
  198. package/es/FieldForm/hooks/useItemRef.js +6 -6
  199. package/es/Form/component.json +161 -0
  200. package/es/Form/index.d.ts +52 -49
  201. package/es/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  202. package/es/FormItem/compoments/defaultCompoments/index.js +12 -11
  203. package/es/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  204. package/es/FormItem/compoments/formFile/index.js +8 -8
  205. package/es/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  206. package/es/FormItem/compoments/formSelect/index.d.ts +1 -1
  207. package/es/FormItem/component.json +171 -0
  208. package/es/FormItem/index.d.ts +5 -5
  209. package/es/FormItem/index.js +23 -23
  210. package/es/FormItem/itemType.js +1 -1
  211. package/es/FunctionModal/component.json +197 -0
  212. package/es/FunctionModal/dialog.d.ts +1 -1
  213. package/es/FunctionModal/modalContext.d.ts +4 -1
  214. package/es/Help/component.json +118 -0
  215. package/es/HelperText/component.json +126 -0
  216. package/es/Image/component.json +165 -0
  217. package/es/InputCode/component.json +191 -0
  218. package/es/InputCode/index.d.ts +2 -2
  219. package/es/InputLang/component.json +205 -0
  220. package/es/InputLang/index.js +1 -1
  221. package/es/InputNumber/component.json +162 -0
  222. package/es/Label/component.json +126 -0
  223. package/es/Label/index.d.ts +2 -2
  224. package/es/Loading/component.json +91 -0
  225. package/es/Menu/component.json +180 -0
  226. package/es/Message/component.json +246 -0
  227. package/es/Message/index.d.ts +2 -2
  228. package/es/Message/index.js +2 -2
  229. package/es/Modal/Confirm/index.d.ts +1 -1
  230. package/es/Modal/component.json +277 -0
  231. package/es/Modal/index.d.ts +85 -5
  232. package/es/Modal/index.js +159 -122
  233. package/es/Modal/interface.d.ts +1 -0
  234. package/es/MultiBox/component.json +216 -0
  235. package/es/MultiBox/index.js +19 -14
  236. package/es/Notification/component.json +184 -0
  237. package/es/OperateBtn/component.json +134 -0
  238. package/es/OperateBtn/index.d.ts +3 -3
  239. package/es/PageHeader/component.json +112 -0
  240. package/es/Pagination/component.json +181 -0
  241. package/es/Pagination/index.js +15 -15
  242. package/es/PasswordRules/component.json +105 -0
  243. package/es/PasswordRules/index.d.ts +4 -4
  244. package/es/PopConfirm/component.json +227 -0
  245. package/es/PopConfirm/index.d.ts +1 -1
  246. package/es/PopConfirm/index.js +1 -1
  247. package/es/PopMenu/component.json +131 -0
  248. package/es/PopMenu/hooks.d.ts +1 -1
  249. package/es/PopMenu/index.js +8 -8
  250. package/es/Popover/component.json +165 -0
  251. package/es/Popover/index.js +1 -1
  252. package/es/Progress/component.json +161 -0
  253. package/es/Prompt/component.json +144 -0
  254. package/es/Querying/component.json +96 -0
  255. package/es/Querying/index.css +1 -1
  256. package/es/Querying/index.d.ts +2 -2
  257. package/es/Querying/index.js +20 -19
  258. package/es/Querying/style/index.css +1 -1
  259. package/es/QuickReply/component.json +129 -0
  260. package/es/QuickReply/index.d.ts +1 -1
  261. package/es/Radio/component.json +136 -0
  262. package/es/RadioGroup/component.json +149 -0
  263. package/es/RangeInput/component.json +198 -0
  264. package/es/RangeInput/index.js +1 -1
  265. package/es/Result/component.json +104 -0
  266. package/es/ScrollBar/component.json +115 -0
  267. package/es/Search/component.json +177 -0
  268. package/es/Search/index.d.ts +1 -1
  269. package/es/Select/component.json +244 -0
  270. package/es/Select/index.js +113 -113
  271. package/es/SelectInput/component.json +184 -0
  272. package/es/Selector/component.json +203 -0
  273. package/es/Selector/index.js +28 -27
  274. package/es/Selector/interface.d.ts +1 -1
  275. package/es/Selector/selectorMain/index.js +2 -2
  276. package/es/Selector/selectorNode/index.js +1 -1
  277. package/es/Selector/util.d.ts +2 -2
  278. package/es/SelectorPicker/component.json +179 -0
  279. package/es/SelectorPicker/index.d.ts +5 -5
  280. package/es/SelectorPicker/index.js +15 -15
  281. package/es/SingleBox/component.json +151 -0
  282. package/es/SingleBox/index.d.ts +2 -2
  283. package/es/Slider/component.json +181 -0
  284. package/es/SortBox/component.json +108 -0
  285. package/es/Status/component.json +104 -0
  286. package/es/Stepper/component.json +129 -0
  287. package/es/Stepper/index.d.ts +2 -2
  288. package/es/Switch/component.json +207 -0
  289. package/es/Switch/index.css +1 -1
  290. package/es/Switch/index.d.ts +3 -2
  291. package/es/Switch/index.js +60 -59
  292. package/es/Switch/style/index.css +1 -1
  293. package/es/Table/component.json +547 -0
  294. package/es/Table/index.d.ts +2 -2
  295. package/es/Table/index.js +414 -414
  296. package/es/Table/interface.d.ts +6 -0
  297. package/es/Tabs/component.json +227 -0
  298. package/es/Tag/component.json +221 -0
  299. package/es/Tag/index.css +1 -1
  300. package/es/Tag/index.d.ts +1 -1
  301. package/es/Tag/index.js +20 -20
  302. package/es/Tag/style/index.css +1 -1
  303. package/es/TextEditor/component.json +186 -0
  304. package/es/TextEditor/index.d.ts +5 -5
  305. package/es/TextField/component.json +290 -0
  306. package/es/TextField/index.d.ts +2 -2
  307. package/es/TimePicker/component.json +176 -0
  308. package/es/Timeline/component.json +110 -0
  309. package/es/Title/component.json +156 -0
  310. package/es/ToggleButton/component.json +153 -0
  311. package/es/Tooltip/component.json +176 -0
  312. package/es/Tooltip/index.js +58 -53
  313. package/es/Tooltip/interface.d.ts +14 -1
  314. package/es/Tooltip/utils.js +6 -6
  315. package/es/Transfer/component.json +157 -0
  316. package/es/Tree/component.json +512 -0
  317. package/es/Upload/component.json +450 -0
  318. package/es/Utils/type.d.ts +0 -2
  319. package/es/index.d.ts +2 -0
  320. package/es/index.js +1 -1
  321. package/es/locale/en_US.d.ts +361 -0
  322. package/es/locale/en_US.js +364 -0
  323. package/es/locale/index.d.ts +1 -723
  324. package/es/locale/index2.js +10 -0
  325. package/es/locale/zh_CN.d.ts +361 -0
  326. package/es/locale/zh_CN.js +364 -0
  327. package/lib/AlignBox/component.json +89 -0
  328. package/lib/AlignBox/index.css +1 -1
  329. package/lib/AlignBox/index.d.ts +6 -2
  330. package/lib/AlignBox/index.js +1 -1
  331. package/lib/AlignBox/style/index.css +1 -1
  332. package/lib/Anchor/anchorMenu/index.d.ts +2 -1
  333. package/lib/Anchor/anchorMenu/index.js +1 -1
  334. package/lib/Anchor/component.json +130 -0
  335. package/lib/Anchor/index.js +1 -1
  336. package/lib/Anchor/type.d.ts +8 -4
  337. package/lib/Argv/component.json +216 -0
  338. package/lib/Argv/index.d.ts +5 -6
  339. package/lib/AutoBox/component.json +133 -0
  340. package/lib/AutoBox/index.d.ts +3 -3
  341. package/lib/AutoBox/index.js +1 -1
  342. package/lib/AutoBox/protal.d.ts +2 -2
  343. package/lib/AutoBox/protal.js +1 -1
  344. package/lib/AutoButton/component.json +109 -0
  345. package/lib/AutoButton/index.js +1 -1
  346. package/lib/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  347. package/lib/AutoTips/autoTipsMultiline/index.js +1 -1
  348. package/lib/AutoTips/component.json +121 -0
  349. package/lib/Badge/component.json +92 -0
  350. package/lib/Breadcrumbs/component.json +142 -0
  351. package/lib/Breadcrumbs/index.js +1 -1
  352. package/lib/Button/SplitButton.d.ts +2 -2
  353. package/lib/Button/component.json +168 -0
  354. package/lib/Button/index.js +1 -1
  355. package/lib/ButtonGroup/component.json +132 -0
  356. package/lib/ButtonGroup/index.d.ts +1 -1
  357. package/lib/Card/component.json +162 -0
  358. package/lib/Card/index.d.ts +2 -2
  359. package/lib/Card/index.js +1 -1
  360. package/lib/Carousel/component.json +142 -0
  361. package/lib/Carousel/index.d.ts +1 -1
  362. package/lib/Cascader/component.json +196 -0
  363. package/lib/Cascader/hooks/useEntities.js +1 -1
  364. package/lib/Cascader/interface.d.ts +1 -0
  365. package/lib/Cascader/utils/commonUtil.d.ts +1 -1
  366. package/lib/Cascader/utils/commonUtil.js +1 -1
  367. package/lib/Cascader/utils/treeUtil.d.ts +14 -5
  368. package/lib/Cascader/utils/treeUtil.js +1 -1
  369. package/lib/Checkbox/component.json +138 -0
  370. package/lib/CheckboxGroup/component.json +152 -0
  371. package/lib/CodeEditor/component.json +189 -0
  372. package/lib/CodeEditor/index.d.ts +10 -9
  373. package/lib/Collapse/component.json +166 -0
  374. package/lib/Collapse/index.d.ts +1 -1
  375. package/lib/Collapse/index.js +1 -1
  376. package/lib/CollapseBox/component.json +84 -0
  377. package/lib/CollapseLayout/component.json +155 -0
  378. package/lib/ColorPicker/component.json +142 -0
  379. package/lib/ComboSelect/component.json +181 -0
  380. package/lib/ComboSelect/index.js +1 -1
  381. package/lib/ComboSelect/interface.d.ts +2 -2
  382. package/lib/ComboSelect/utils.d.ts +3 -3
  383. package/lib/ComboSelect/utils.js +1 -1
  384. package/lib/Container/component.json +111 -0
  385. package/lib/ContentBox/component.json +81 -0
  386. package/lib/CopyText/component.json +118 -0
  387. package/lib/CycleSelector/component.json +98 -0
  388. package/lib/CycleSelector/index.js +1 -1
  389. package/lib/DatePicker/component.json +192 -0
  390. package/lib/DatePicker/generatePicker/generateRangePicker.js +1 -1
  391. package/lib/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  392. package/lib/Descriptions/component.json +142 -0
  393. package/lib/Descriptions/index.d.ts +1 -1
  394. package/lib/Desktop/component.json +171 -0
  395. package/lib/DragVerify/component.json +114 -0
  396. package/lib/DragVerify/index.js +1 -1
  397. package/lib/Drawer/component.json +200 -0
  398. package/lib/Drawer/index.js +1 -1
  399. package/lib/Drawer/interface.d.ts +1 -1
  400. package/lib/Drawer/util.d.ts +1 -6
  401. package/lib/Drawer/util.js +1 -1
  402. package/lib/Dropdown/component.json +147 -0
  403. package/lib/DynamicMultiBox/component.json +278 -0
  404. package/lib/DynamicMultiBox/formItem.d.ts +1 -1
  405. package/lib/DynamicMultiBox/rowForm.d.ts +2 -2
  406. package/lib/Empty/component.json +123 -0
  407. package/lib/Empty/index.css +1 -1
  408. package/lib/Empty/index.d.ts +2 -2
  409. package/lib/Empty/index.js +1 -1
  410. package/lib/Empty/style/index.css +1 -1
  411. package/lib/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  412. package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
  413. package/lib/FieldForm/Form.d.ts +2 -2
  414. package/lib/FieldForm/FormList.d.ts +2 -2
  415. package/lib/FieldForm/component.json +196 -0
  416. package/lib/FieldForm/context.d.ts +5 -1
  417. package/lib/FieldForm/context.js +1 -1
  418. package/lib/FieldForm/hooks/useForm.d.ts +4 -3
  419. package/lib/FieldForm/hooks/useFormInstance.d.ts +1 -1
  420. package/lib/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  421. package/lib/FieldForm/hooks/useFormItemStatus.js +1 -1
  422. package/lib/FieldForm/hooks/useItemRef.d.ts +1 -1
  423. package/lib/FieldForm/hooks/useItemRef.js +1 -1
  424. package/lib/Form/component.json +161 -0
  425. package/lib/Form/index.d.ts +52 -49
  426. package/lib/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  427. package/lib/FormItem/compoments/defaultCompoments/index.js +1 -1
  428. package/lib/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  429. package/lib/FormItem/compoments/formFile/index.js +1 -1
  430. package/lib/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  431. package/lib/FormItem/compoments/formSelect/index.d.ts +1 -1
  432. package/lib/FormItem/component.json +171 -0
  433. package/lib/FormItem/index.d.ts +5 -5
  434. package/lib/FormItem/index.js +1 -1
  435. package/lib/FormItem/itemType.js +1 -1
  436. package/lib/FunctionModal/component.json +197 -0
  437. package/lib/FunctionModal/dialog.d.ts +1 -1
  438. package/lib/FunctionModal/modalContext.d.ts +4 -1
  439. package/lib/Help/component.json +118 -0
  440. package/lib/HelperText/component.json +126 -0
  441. package/lib/Image/component.json +165 -0
  442. package/lib/InputCode/component.json +191 -0
  443. package/lib/InputCode/index.d.ts +2 -2
  444. package/lib/InputLang/component.json +205 -0
  445. package/lib/InputLang/index.js +1 -1
  446. package/lib/InputNumber/component.json +162 -0
  447. package/lib/Label/component.json +126 -0
  448. package/lib/Label/index.d.ts +2 -2
  449. package/lib/Loading/component.json +91 -0
  450. package/lib/Menu/component.json +180 -0
  451. package/lib/Message/component.json +246 -0
  452. package/lib/Message/index.d.ts +2 -2
  453. package/lib/Message/index.js +1 -1
  454. package/lib/Modal/Confirm/index.d.ts +1 -1
  455. package/lib/Modal/component.json +277 -0
  456. package/lib/Modal/index.d.ts +85 -5
  457. package/lib/Modal/index.js +1 -1
  458. package/lib/Modal/interface.d.ts +1 -0
  459. package/lib/MultiBox/component.json +216 -0
  460. package/lib/MultiBox/index.js +1 -1
  461. package/lib/Notification/component.json +184 -0
  462. package/lib/OperateBtn/component.json +134 -0
  463. package/lib/OperateBtn/index.d.ts +3 -3
  464. package/lib/PageHeader/component.json +112 -0
  465. package/lib/Pagination/component.json +181 -0
  466. package/lib/Pagination/index.js +1 -1
  467. package/lib/PasswordRules/component.json +105 -0
  468. package/lib/PasswordRules/index.d.ts +4 -4
  469. package/lib/PopConfirm/component.json +227 -0
  470. package/lib/PopConfirm/index.d.ts +1 -1
  471. package/lib/PopConfirm/index.js +1 -1
  472. package/lib/PopMenu/component.json +131 -0
  473. package/lib/PopMenu/hooks.d.ts +1 -1
  474. package/lib/PopMenu/index.js +1 -1
  475. package/lib/Popover/component.json +165 -0
  476. package/lib/Popover/index.js +1 -1
  477. package/lib/Progress/component.json +161 -0
  478. package/lib/Prompt/component.json +144 -0
  479. package/lib/Querying/component.json +96 -0
  480. package/lib/Querying/index.css +1 -1
  481. package/lib/Querying/index.d.ts +2 -2
  482. package/lib/Querying/index.js +1 -1
  483. package/lib/Querying/style/index.css +1 -1
  484. package/lib/QuickReply/component.json +129 -0
  485. package/lib/QuickReply/index.d.ts +1 -1
  486. package/lib/Radio/component.json +136 -0
  487. package/lib/RadioGroup/component.json +149 -0
  488. package/lib/RangeInput/component.json +198 -0
  489. package/lib/RangeInput/index.js +1 -1
  490. package/lib/Result/component.json +104 -0
  491. package/lib/ScrollBar/component.json +115 -0
  492. package/lib/Search/component.json +177 -0
  493. package/lib/Search/index.d.ts +1 -1
  494. package/lib/Select/component.json +244 -0
  495. package/lib/Select/index.js +1 -1
  496. package/lib/SelectInput/component.json +184 -0
  497. package/lib/Selector/component.json +203 -0
  498. package/lib/Selector/index.js +1 -1
  499. package/lib/Selector/interface.d.ts +1 -1
  500. package/lib/Selector/selectorMain/index.js +1 -1
  501. package/lib/Selector/selectorNode/index.js +1 -1
  502. package/lib/Selector/util.d.ts +2 -2
  503. package/lib/SelectorPicker/component.json +179 -0
  504. package/lib/SelectorPicker/index.d.ts +5 -5
  505. package/lib/SelectorPicker/index.js +1 -1
  506. package/lib/SingleBox/component.json +151 -0
  507. package/lib/SingleBox/index.d.ts +2 -2
  508. package/lib/Slider/component.json +181 -0
  509. package/lib/SortBox/component.json +108 -0
  510. package/lib/Status/component.json +104 -0
  511. package/lib/Stepper/component.json +129 -0
  512. package/lib/Stepper/index.d.ts +2 -2
  513. package/lib/Switch/component.json +207 -0
  514. package/lib/Switch/index.css +1 -1
  515. package/lib/Switch/index.d.ts +3 -2
  516. package/lib/Switch/index.js +1 -1
  517. package/lib/Switch/style/index.css +1 -1
  518. package/lib/Table/component.json +547 -0
  519. package/lib/Table/index.d.ts +2 -2
  520. package/lib/Table/index.js +1 -1
  521. package/lib/Table/interface.d.ts +6 -0
  522. package/lib/Tabs/component.json +227 -0
  523. package/lib/Tag/component.json +221 -0
  524. package/lib/Tag/index.css +1 -1
  525. package/lib/Tag/index.d.ts +1 -1
  526. package/lib/Tag/index.js +1 -1
  527. package/lib/Tag/style/index.css +1 -1
  528. package/lib/TextEditor/component.json +186 -0
  529. package/lib/TextEditor/index.d.ts +5 -5
  530. package/lib/TextField/component.json +290 -0
  531. package/lib/TextField/index.d.ts +2 -2
  532. package/lib/TimePicker/component.json +176 -0
  533. package/lib/Timeline/component.json +110 -0
  534. package/lib/Title/component.json +156 -0
  535. package/lib/ToggleButton/component.json +153 -0
  536. package/lib/Tooltip/component.json +176 -0
  537. package/lib/Tooltip/index.js +1 -1
  538. package/lib/Tooltip/interface.d.ts +14 -1
  539. package/lib/Tooltip/utils.js +1 -1
  540. package/lib/Transfer/component.json +157 -0
  541. package/lib/Tree/component.json +512 -0
  542. package/lib/Upload/component.json +450 -0
  543. package/lib/Utils/type.d.ts +0 -2
  544. package/lib/index.d.ts +2 -0
  545. package/lib/index.js +1 -1
  546. package/lib/locale/en_US.d.ts +361 -0
  547. package/lib/locale/en_US.js +2 -0
  548. package/lib/locale/index.d.ts +1 -723
  549. package/lib/locale/index2.js +2 -0
  550. package/lib/locale/zh_CN.d.ts +361 -0
  551. package/lib/locale/zh_CN.js +2 -0
  552. package/package.json +9 -3
  553. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  554. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
  555. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  556. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
@@ -1,54 +1,57 @@
1
1
  import { j as e } from "../../_virtual/jsx-runtime.js";
2
- import { useEffect as k, useMemo as p, createElement as A } from "react";
2
+ import { useEffect as k, useMemo as u, createElement as A } from "react";
3
3
  import C from "clsx";
4
4
  import { Down as E } from "../../node_modules/@para-ui/icons/Down/index.js";
5
5
  import './index.css';/* empty css */
6
6
  import w from "../../AutoTips/index.js";
7
- const P = (a) => {
7
+ const y = (l) => {
8
8
  const {
9
- data: c,
10
- currentAnchorId: u,
11
- handleClick: l,
12
- level: o = 0,
13
- isTree: m = !1,
14
- anchorMap: i = {},
15
- setAnchorMap: j,
16
- customPrefixIcon: r,
17
- onlyOneLevel: v
18
- } = a, { id: d } = c, f = String(d) === String(u);
9
+ data: s,
10
+ currentAnchorId: j,
11
+ handleClick: m,
12
+ level: r = 0,
13
+ isTree: x = !1,
14
+ anchorMap: c = {},
15
+ setAnchorMap: v,
16
+ customPrefixIcon: i,
17
+ onlyOneLevel: f
18
+ } = l, { id: d } = s, a = String(d) === String(j);
19
19
  k(() => {
20
20
  }, []);
21
- const N = p(() => {
21
+ const N = u(() => {
22
22
  const n = [];
23
- for (let s = 0; s < o; s++)
23
+ for (let t = 0; t < r; t++)
24
24
  n.push(
25
25
  /* @__PURE__ */ e.jsx(
26
26
  "div",
27
27
  {
28
28
  className: "indent"
29
29
  },
30
- s
30
+ t
31
31
  )
32
32
  );
33
33
  return n;
34
- }, [o]), x = (n, s) => {
34
+ }, [r]), h = (n, t) => {
35
35
  n.stopPropagation();
36
- const t = i[s];
37
- t.expanded = !t.expanded, j?.({ ...i });
38
- }, M = p(() => {
39
- const { name: n, id: s } = c, t = c.children && c.children.length > 0, g = m ? t ? /* @__PURE__ */ e.jsx(
36
+ const o = c[t];
37
+ o.expanded = !o.expanded, v?.({ ...c });
38
+ }, M = u(() => {
39
+ const { name: n, id: t } = s, o = s.children && s.children.length > 0, g = x ? o ? /* @__PURE__ */ e.jsx(
40
40
  "div",
41
41
  {
42
42
  className: "btn-down",
43
- onClick: (h) => x(h, s),
43
+ onClick: (p) => h(p, t),
44
44
  children: /* @__PURE__ */ e.jsx("div", { className: "icon icon-down", children: /* @__PURE__ */ e.jsx(E, {}) })
45
45
  }
46
- ) : /* @__PURE__ */ e.jsx("div", { className: "icon mr-6" }) : r || /* @__PURE__ */ e.jsx(y, {});
46
+ ) : /* @__PURE__ */ e.jsx("div", { className: "icon mr-6" }) : i ? (
47
+ // R6 §6 类型放宽:函数形式按 isActive 返回不同 ReactNode(墨水点指示器等激活态联动);静态 ReactNode 直接渲染
48
+ typeof i == "function" ? i(s, a) : i
49
+ ) : /* @__PURE__ */ e.jsx(P, {});
47
50
  return /* @__PURE__ */ e.jsxs(
48
51
  "div",
49
52
  {
50
53
  className: "item-content",
51
- onClick: (h) => {
54
+ onClick: (p) => {
52
55
  },
53
56
  children: [
54
57
  g,
@@ -56,21 +59,21 @@ const P = (a) => {
56
59
  "div",
57
60
  {
58
61
  className: "title",
59
- onClick: () => l?.(s),
62
+ onClick: () => m?.(t),
60
63
  children: /* @__PURE__ */ e.jsx(w, { children: n || "" })
61
64
  }
62
65
  )
63
66
  ]
64
67
  }
65
68
  );
66
- }, [c, i, x, l, r, m]);
69
+ }, [s, c, h, m, i, x, a]);
67
70
  return /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
68
71
  /* @__PURE__ */ e.jsxs(
69
72
  "div",
70
73
  {
71
74
  className: C("anchor-menu-item", {
72
- active: f,
73
- expanded: i?.[d]?.expanded
75
+ active: a,
76
+ expanded: c?.[d]?.expanded
74
77
  }),
75
78
  children: [
76
79
  N,
@@ -78,18 +81,18 @@ const P = (a) => {
78
81
  ]
79
82
  }
80
83
  ),
81
- c.children && i?.[d]?.expanded && !v && c.children.map((n) => /* @__PURE__ */ A(
82
- P,
84
+ s.children && c?.[d]?.expanded && !f && s.children.map((n) => /* @__PURE__ */ A(
85
+ y,
83
86
  {
84
- ...a,
87
+ ...l,
85
88
  data: n,
86
89
  key: n?.id,
87
- level: o + 1
90
+ level: r + 1
88
91
  }
89
92
  ))
90
93
  ] });
91
- }, y = () => /* @__PURE__ */ e.jsx("div", { className: "icon mr-6", children: /* @__PURE__ */ e.jsx("div", { className: "icon-point" }) });
94
+ }, P = () => /* @__PURE__ */ e.jsx("div", { className: "icon mr-6", children: /* @__PURE__ */ e.jsx("div", { className: "icon-point" }) });
92
95
  export {
93
- P as default
96
+ y as default
94
97
  };
95
98
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,130 @@
1
+ {
2
+ "name": "Anchor",
3
+ "category": "Navigation",
4
+ "description": "页面内锚点导航——自动生成目录侧栏并监听内容区滚动高亮目录项,点击目录项内置滚动定位行为。高度约束写在 Anchor 直接父 div 上,无限高度时内部不产生滚动。",
5
+ "semantic": {
6
+ "intent": [
7
+ "快速定位",
8
+ "内容索引"
9
+ ],
10
+ "useCases": [
11
+ "长文档",
12
+ "API 文档",
13
+ "单页应用"
14
+ ],
15
+ "riskLevel": "low"
16
+ },
17
+ "variants": {
18
+ "default": {
19
+ "meaning": "标准锚点"
20
+ }
21
+ },
22
+ "states": [
23
+ "active",
24
+ "default"
25
+ ],
26
+ "idealProps": {
27
+ "children": {
28
+ "type": "ReactNode",
29
+ "description": "内容区,放置带 `id` 属性的各章节 div;Anchor 通过监听滚动位置高亮左侧目录。⚠️ children 是必需的,缺少会导致锚点无法定位",
30
+ "required": true
31
+ },
32
+ "list": {
33
+ "type": "AnchorItem[]",
34
+ "typeDefinition": "interface AnchorItem { name: string; id: string; children?: AnchorItem[]; expanded?: boolean }",
35
+ "description": "目录数据源。**AnchorItem 字段一览(仅 name + id 必填)**:① name: string — 侧栏显示文案;② id: string — 对应 children 内章节 `<div id={item.id}>` 的 DOM id(Anchor 内部用 id 定位高亮,大小写必须精确一致;建议仅用字母/数字/-/_,避免 CSS 选择器特殊字符;若业务数据字段是 href='#intro',映射时去掉 # 前缀:`id: s.href.replace(/^#/, '')`);③ children?: AnchorItem[] — 多级嵌套(自动渲染为缩进树,建议 ≤3 级;递归时复用同一映射函数);④ expanded?: boolean — 该项初始展开态(default false;⚠️ 与 allExpanded prop 完全独立:allExpanded 控制顶部「全部展开」按钮可见性,不等于初始全展开;初始全展开需对每个含 children 的 AnchorItem 设 expanded:true)。完整 TS 定义:interface AnchorItem { name: string; id: string; children?: AnchorItem[]; expanded?: boolean }(parentId 是 Anchor 内部字段,业务传 list 时无需提供)。"
36
+ },
37
+ "scrollId": {
38
+ "type": "string",
39
+ "default": "\"paraui-v4-anchor-scroll-id\"",
40
+ "description": "**Anchor 内部自动创建的滚动容器 DOM id**——业务方只需传一个全局唯一字符串,Anchor 会在渲染时自动创建 `<div id={scrollId}>` 并把 children 放入其中;**不需要在 children 外部或内部手动创建该 div**。Anchor 对此 div 监听 scroll 事件 + 用 `[id]` 选择器定位高亮目录项。单页只有一个 Anchor 时可省略(默认 'paraui-v4-anchor-scroll-id');同页多个 Anchor 实例必须各自传不同的 scrollId 以隔离滚动监听。scrollId 查找:Anchor 内部用 `document.getElementById(scrollId)` 获取滚动容器——正常渲染后此 div 必然存在,无需业务方手动创建。"
41
+ },
42
+ "title": {
43
+ "type": "ReactNode",
44
+ "description": "目录标题;只有传 title 才显示折叠按钮 / 全部展开按钮 / search 搜索框。**(R6 §6 类型放宽:从 string → ReactNode)**——支持嵌入徽标 / 计数 / 动态状态文本(如 `<span>目录<Tag>当前: intro</Tag></span>`)。string 是 ReactNode 子集,完全向后兼容旧 string 用法。详见 BREAKING-CHANGES §维护规则边界(类型 widening 不入档)+ discussions/Anchor-title-reactnode.md"
45
+ },
46
+ "placement": {
47
+ "type": "'left' | 'right'",
48
+ "values": ["left", "right"],
49
+ "default": "'right'",
50
+ "description": "目录位于内容的左侧还是右侧。⚠️ 默认 'right'(目录在右侧);要实现左侧目录须显式传 placement='left'"
51
+ },
52
+ "search": {
53
+ "type": "boolean",
54
+ "default": false,
55
+ "description": "目录是否带搜索框(按 name 模糊匹配)。需配合 title 使用。"
56
+ },
57
+ "allExpanded": {
58
+ "type": "boolean",
59
+ "default": true,
60
+ "description": "顶部『全部展开』按钮是否启用(控制按钮可见性,不影响 `list[].expanded` 的初始值)。仅在 list 含 children 且传了 title 时生效。\n\n**⚠️ 命名歧义警告(R15+R16 双轮再现 · 3/6 sub-agent 混淆)**:allExpanded 命名容易被理解为「初始全展开」(类似 defaultExpandAll),但实际含义是「全部展开」**按钮**的可见性控制开关:\n- `allExpanded=true`(默认)→ 顶部出现「全部展开」按钮,用户**点击按钮后**才展开全部目录项\n- `allExpanded=false` → 隐藏「全部展开」按钮\n- **若要初始全展开(组件挂载即全展开)**:对 list[] 中每个含 children 的 AnchorItem 设置 `expanded: true`,与 allExpanded prop 无关\n\n**R17 路线图**:正在评审 src rename `allExpanded → expandedAll`(BREAKING,更准确地表达「控制展开按钮」含义),详见 `discussions/Anchor-allExpanded-naming-epic.md`;R17 拍板前 allExpanded 继续有效,0 BREAKING。"
61
+ },
62
+ "listWidth": {
63
+ "type": "number",
64
+ "description": "目录列表宽度(px);不传时默认 140px。"
65
+ },
66
+ "customPrefixIcon": {
67
+ "type": "ReactNode | ((item: AnchorItem, isActive: boolean) => ReactNode)",
68
+ "description": "自定义目录每项的前缀图标。**(R6 §6 类型放宽:从 ReactNode → ReactNode | function)**:<br>- **静态 ReactNode** — 所有目录项共用同一前缀图标(原行为,完全向后兼容)<br>- **函数形式 `(item, isActive) => ReactNode`** — 按当前激活态返回不同 ReactNode(墨水点指示器 / 激活态指示符 / 复选框联动等);函数版每次激活变化触发 list 重渲染,内部 AnchorListMemo 已优化。<br>**初始激活态说明**:页面 mount 时 Anchor 不主动激活任何目录项——需要用户滚动(或点击)触发第一次 scroll 事件后才会激活;初始激活项由滚动位置决定(内部算法:找第一个 offsetTop >= scrollTop 的 [id] 元素)。若需要初始激活特定项,可在 mount 后手动调用 `document.getElementById(SCROLL_ID)?.dispatchEvent(new Event('scroll'))` 触发一次。<br>**业务方仍可走激活态 CSS 联动**(向后兼容):Anchor 内部对激活目录项加 className `.anchor-menu-item.active`(无 prefixCls 前缀,见 src/Anchor/anchorMenu/index.scss:14);可在外层 style 选择器 `:global(.anchor-menu-item.active) [data-ink-dot] { visibility: visible }` 联动。但函数形式更直接、类型安全。详见 discussions/Anchor-customPrefixIcon-function.md(R6 实施选项 B 类型 widening)"
69
+ }
70
+ },
71
+ "do": [
72
+ "在长页面(如文档)右侧提供 Anchor",
73
+ "Anchor 标题应简洁",
74
+ "把章节 DOM 作为 children 直接传入:`<Anchor list={list} scrollId='xxx'>{sections.map(s => <div id={s.id}>...</div>)}</Anchor>`",
75
+ "list[].id 必须与 children 中对应章节 div 的 id 完全一致(含大小写);建议仅使用 CSS selector 安全字符",
76
+ "业务侧 `{ href, title }` 数据派生 list 时使用 `sections.map(s => ({ name: s.title, id: s.href.replace(/^#/, '') }))` 映射;多级数据写递归映射函数(参见 docs/view/anchor/codeString.ts hrefMappingDemo / nestedMappingDemo)",
77
+ "Anchor 内部滚动容器需要由父级提供有限高度(如 `style={{ height: 400 }}` 或外层 wrapper 设 `height: 100vh`)才能产生滚动;外层高度无限时内容不会滚动,stickyDemo 也无法体现『内容滚动而目录吸顶』效果",
78
+ "需要把激活 id 还原成业务 href 时:用 useEffect 监听 activeId 变化 + 业务侧维护 id->href 反向 map(参见 codeString.ts notifyParentDemo)",
79
+ "需要『吸顶 / 滚动偏移头部 / 激活回调』时:用外层 div 包 `position: sticky; top: 0` 实现吸顶(**前置条件:外层必须有滚动祖先——body 高度 > 视口、或某 wrapper 设了 `overflow:auto/scroll`;⚠️ `overflow:auto/scroll` 是合法滚动祖先,不会导致 sticky 失效——仅 `overflow:hidden` 的祖先会使 sticky 退化为 relative;flex 容器中配合 `alignSelf: flex-start` 避免 stretch 拉满高度**;缺少任一条件则 sticky 退化为 relative);用 `<section style={{ scrollMarginTop: headerOffset }}>` **写在每个章节元素自身** 实现偏移;用容器自定义 `addEventListener('scroll', ...)` 计算激活章节并 onChange 通知父组件——这些不是 Anchor 内置能力"
80
+ ],
81
+ "dont": [
82
+ "Anchor 嵌套层级过深 (>3级) —— 设计/视觉建议;src 实现层 formatList 递归无硬限制,违反仅触发缩进过深视觉异常",
83
+ "内容过少的页面使用 Anchor",
84
+ "不要传 `targetOffset` / `affix` / `showInkInFixed` / `onChange` / `items` / `onClick` 等 prop——这些 prop 在 AnchorProps 中不存在,传入会被 React 忽略且能力不会生效",
85
+ "不要在 children 内再包一层 `<div id={scrollId}>` 自管理滚动——Anchor 已内部包了 `<div id={scrollId}>`",
86
+ "不要把 `scrollPaddingTop` 写在 children 内的 wrapper 上——`scrollPaddingTop` 仅对滚动容器生效(即 Anchor 内部 `<div id={scrollId}>`,外部无法直接访问);偏移请用 `scrollMarginTop` 写在**每个章节元素自身**上"
87
+ ],
88
+ "events": {
89
+ "onClickItem (via AnchorMenu internal)": {
90
+ "signature": "内部点击目录项时调用 handleClick(id: string),无外部事件 prop",
91
+ "asyncSupported": false,
92
+ "examples": [
93
+ "点击目录项时 Anchor 内部调用 scrollTo 滚动到对应章节,无需业务方处理",
94
+ "需要监听激活变化时,用外层 wrapper 的 addEventListener('scroll', ...) 计算当前 id",
95
+ "需要把 activeId 回传父组件:用 useEffect 监听 scrollId 容器的 scroll 事件 + 业务侧 id→href 反向 map"
96
+ ],
97
+ "commonMistakes": [
98
+ "传 onChange prop 期望激活目录项变化时被回调——Anchor 不存在 onChange prop",
99
+ "传 onClick prop 期望拦截目录项点击——AnchorProps 无此 prop,传入会被 React 忽略",
100
+ "期望 customPrefixIcon 在点击瞬间触发回调——它只是渲染函数,激活态变化驱动重渲染"
101
+ ]
102
+ }
103
+ },
104
+ "typescriptPitfalls": [
105
+ {
106
+ "issue": "AnchorItem 无法从 @para-ui/core/Anchor 直接命名导出——Anchor/index.tsx 只有默认导出,AnchorItem 定义在 Anchor/type.ts",
107
+ "wrong": "import type { AnchorItem } from '@para-ui/core/Anchor'; // TS2614: 无此命名导出",
108
+ "right": "import type { AnchorItem } from '@para-ui/core/Anchor/type'; // 从 type.ts 子路径导入"
109
+ },
110
+ {
111
+ "issue": "AnchorItem 的 id 必须与 children 内章节 div 的 DOM id 完全一致(大小写敏感)",
112
+ "wrong": "// list: [{ name: '介绍', id: 'Introduction' }]\n// children: <div id='introduction'> // 大小写不同,无法高亮",
113
+ "right": "// 保持一致且使用 CSS selector 安全字符\n// list: [{ name: '介绍', id: 'introduction' }]\n// children: <div id='introduction'>..."
114
+ },
115
+ {
116
+ "issue": "title prop 从 string 扩宽到 ReactNode,但 allExpanded 是控制按钮可见性,不是初始全展开",
117
+ "wrong": "// 以为 allExpanded=true 会初始展开所有目录项\n<Anchor allExpanded={true} list={tree} /> // 实际只是显示'全部展开'按钮",
118
+ "right": "// 初始全展开需要对每个含 children 的 AnchorItem 设 expanded: true\nconst tree = data.map(item => ({ ...item, expanded: true, children: item.children?.map(c => ({ ...c, expanded: true })) }))"
119
+ },
120
+ {
121
+ "issue": "customPrefixIcon 函数形式的参数类型必须显式标注,避免 noImplicitAny 报错",
122
+ "wrong": "// 内联函数不标注类型\n<Anchor customPrefixIcon={(item, isActive) => <span />} /> // TS7006: item 隐式 any",
123
+ "right": "import type { AnchorItem } from '@para-ui/core/Anchor';\n<Anchor customPrefixIcon={(item: AnchorItem, isActive: boolean) => <span style={{ color: isActive ? 'blue' : 'gray' }}>•</span>} />"
124
+ }
125
+ ],
126
+ "mapping": {
127
+ "realComponent": "Anchor",
128
+ "adapter": null
129
+ }
130
+ }
@@ -1,59 +1,62 @@
1
1
  import { j as r } from "../_virtual/jsx-runtime.js";
2
- import { useState as f, useRef as X, useEffect as q, useMemo as E } from "react";
2
+ import { useState as f, useRef as Y, useEffect as D, useMemo as E } from "react";
3
3
  import L from "clsx";
4
4
  import { $prefixCls as C } from "../GlobalContext/constant.js";
5
- import Y from "./anchorMenu/index.js";
6
- import { ToRight as D } from "../node_modules/@para-ui/icons/ToRight/index.js";
7
- import { ToLeft as W } from "../node_modules/@para-ui/icons/ToLeft/index.js";
8
- import { PreviewOpen as Z } from "../node_modules/@para-ui/icons/PreviewOpen/index.js";
9
- import { Search as _ } from "../Search/index.js";
10
- import ee from "../GlobalContext/useFormatMessage.js";
11
- import re from "./lang/index.js";
12
- import { Throttle as ne, Debounce as se } from "@snack-kit/lib";
5
+ import Z from "./anchorMenu/index.js";
6
+ import { ToRight as W } from "../node_modules/@para-ui/icons/ToRight/index.js";
7
+ import { ToLeft as z } from "../node_modules/@para-ui/icons/ToLeft/index.js";
8
+ import { PreviewOpen as _ } from "../node_modules/@para-ui/icons/PreviewOpen/index.js";
9
+ import { Search as ee } from "../Search/index.js";
10
+ import re from "../GlobalContext/useFormatMessage.js";
11
+ import ne from "./lang/index.js";
12
+ import { Throttle as se, Debounce as oe } from "@snack-kit/lib";
13
13
  import './index.css';/* empty css */
14
- const ge = (N) => {
14
+ const Te = (N) => {
15
15
  const {
16
- style: z,
17
- className: J,
16
+ style: J,
17
+ className: G,
18
18
  title: T = "",
19
19
  scrollId: j = `${C}-anchor-scroll-id`,
20
20
  list: d = [],
21
21
  listClassName: M,
22
- scrollClassName: G,
22
+ scrollClassName: H,
23
23
  placement: a = "right",
24
- allExpanded: H = !0,
25
- search: K = !1,
24
+ allExpanded: K = !0,
25
+ search: Q = !1,
26
26
  customPrefixIcon: S,
27
27
  listWidth: m
28
- } = N, Q = ee("Anchor", re), [V, O] = f(""), [x, U] = f(!1), [u, A] = f({}), [v, R] = f(!1), [$, k] = f(""), [p, y] = f(null), o = X({
28
+ } = N, U = re("Anchor", ne), [V, O] = f(""), [x, X] = f(!1), [u, A] = f({}), [v, R] = f(!1), [$, k] = f(""), [p, y] = f(null), o = Y({
29
29
  currentAnchorId: "",
30
30
  anchorList: d,
31
31
  anchorMap: {},
32
32
  searchValue: "",
33
33
  scrolling: !1
34
34
  }), w = v ? "50px" : m ? `${m + 20}px` : "160px";
35
- q(() => {
35
+ D(() => {
36
36
  o.current.anchorList = d;
37
37
  const e = {};
38
38
  let n = !1;
39
- const t = (h, l = "") => {
39
+ const t = (h, c = "") => {
40
40
  h.forEach((s) => {
41
- (s?.expanded === void 0 || s?.expanded === null) && (s.expanded = !1), l && (s.parentId = l), e[s.id] = s, s.children && (n = !0, t(s.children, s.id));
41
+ (s?.expanded === void 0 || s?.expanded === null) && (s.expanded = !1), c && (s.parentId = c), e[s.id] = s, s.children && (n = !0, t(s.children, s.id));
42
42
  });
43
43
  };
44
- t(d), U(n), o.current.anchorMap = e, A(e);
45
- }, [d]), q(() => {
46
- const e = document.getElementById(j), n = ne(async () => {
44
+ t(d), X(n), o.current.anchorMap = e, A(e);
45
+ }, [d]), D(() => {
46
+ const e = document.getElementById(j), n = se(async () => {
47
47
  if (o.current.scrolling) return;
48
- const t = e?.querySelectorAll("[id]") || [], l = Array.from(t).map((c) => ({
49
- id: c.id,
50
- offsetTop: c.offsetTop - (e?.offsetTop || 0)
51
- }));
48
+ const t = e?.querySelectorAll("[id]") || [], c = Array.from(t).map((l) => {
49
+ const q = l;
50
+ return {
51
+ id: q.id,
52
+ offsetTop: q.offsetTop - (e?.offsetTop || 0)
53
+ };
54
+ });
52
55
  let s = 0, i = "";
53
- const I = l.find((c) => (s < c.offsetTop && (s = c.offsetTop, i = c.id), c.offsetTop >= (e?.scrollTop || 0)));
56
+ const I = c.find((l) => (s < l.offsetTop && (s = l.offsetTop, i = l.id), l.offsetTop >= (e?.scrollTop || 0)));
54
57
  if (I?.id !== o.current.currentAnchorId) {
55
- let c = I?.id || "";
56
- e?.scrollTop && !I?.id && (c = i), O(c);
58
+ let l = I?.id || "";
59
+ e?.scrollTop && !I?.id && (l = i), O(l);
57
60
  }
58
61
  }, 300);
59
62
  return n(), e?.addEventListener("scroll", n, { passive: !0 }), () => {
@@ -61,11 +64,11 @@ const ge = (N) => {
61
64
  };
62
65
  }, []);
63
66
  const b = (e) => {
64
- const n = document.getElementById(j), t = n?.querySelectorAll("[id]") || [], h = Array.from(t).findIndex((s) => String(s.id) === String(e)), l = t[h];
65
- l && (O(e), o.current.currentAnchorId = e, o.current.scrolling = !0, setTimeout(() => {
67
+ const n = document.getElementById(j), t = n?.querySelectorAll("[id]") || [], h = Array.from(t).findIndex((s) => String(s.id) === String(e)), c = t[h];
68
+ c && (O(e), o.current.currentAnchorId = e, o.current.scrolling = !0, setTimeout(() => {
66
69
  o.current.scrolling = !1;
67
70
  }, 1e3), n?.scrollTo({
68
- top: l?.offsetTop || 0 - (n?.offsetTop || 0),
71
+ top: c?.offsetTop || 0 - (n?.offsetTop || 0),
69
72
  behavior: "smooth"
70
73
  }));
71
74
  }, B = () => {
@@ -73,14 +76,14 @@ const ge = (N) => {
73
76
  u[e].expanded = !0;
74
77
  }), A({ ...u });
75
78
  }, g = E(
76
- () => se(async () => {
79
+ () => oe(async () => {
77
80
  const e = o.current.searchValue;
78
81
  if (!e) {
79
82
  y(null);
80
83
  return;
81
84
  }
82
- const n = o.current.anchorList || [], t = [], h = (l, s = "") => {
83
- l.forEach((i) => {
85
+ const n = o.current.anchorList || [], t = [], h = (c, s = "") => {
86
+ c.forEach((i) => {
84
87
  i?.name?.indexOf(e) > -1 && t.push(i), i.children && h(i.children, i.id);
85
88
  });
86
89
  };
@@ -91,15 +94,15 @@ const ge = (N) => {
91
94
  /* @__PURE__ */ r.jsxs("div", { className: "anchor-menu-title", children: [
92
95
  /* @__PURE__ */ r.jsx("div", { className: "title", children: T }),
93
96
  /* @__PURE__ */ r.jsxs("div", { className: "opera-area", children: [
94
- x && H && /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
95
- /* @__PURE__ */ r.jsx(Z, { onClick: B }),
97
+ x && K && /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
98
+ /* @__PURE__ */ r.jsx(_, { onClick: B }),
96
99
  /* @__PURE__ */ r.jsx("div", { className: "split-line" })
97
100
  ] }),
98
- /* @__PURE__ */ r.jsx("div", { onClick: () => R(!0), children: a === "left" ? /* @__PURE__ */ r.jsx(W, {}) : /* @__PURE__ */ r.jsx(D, {}) })
101
+ /* @__PURE__ */ r.jsx("div", { onClick: () => R(!0), children: a === "left" ? /* @__PURE__ */ r.jsx(z, {}) : /* @__PURE__ */ r.jsx(W, {}) })
99
102
  ] })
100
103
  ] }),
101
- K && /* @__PURE__ */ r.jsx(
102
- _,
104
+ Q && /* @__PURE__ */ r.jsx(
105
+ ee,
103
106
  {
104
107
  size: "small",
105
108
  value: $,
@@ -111,7 +114,7 @@ const ge = (N) => {
111
114
  onClear: () => {
112
115
  k(""), o.current.searchValue = "", y(null);
113
116
  },
114
- placeholder: Q("pleaseEnter"),
117
+ placeholder: U("pleaseEnter"),
115
118
  style: { padding: "0 4px", marginBottom: "6px" }
116
119
  }
117
120
  )
@@ -123,7 +126,7 @@ const ge = (N) => {
123
126
  {
124
127
  className: "collapse-icon-area",
125
128
  onClick: () => R(!1),
126
- children: a === "left" ? /* @__PURE__ */ r.jsx(D, {}) : /* @__PURE__ */ r.jsx(W, {})
129
+ children: a === "left" ? /* @__PURE__ */ r.jsx(W, {}) : /* @__PURE__ */ r.jsx(z, {})
127
130
  }
128
131
  );
129
132
  const e = p || d;
@@ -137,7 +140,7 @@ const ge = (N) => {
137
140
  children: [
138
141
  F,
139
142
  e.map((n, t) => /* @__PURE__ */ r.jsx(
140
- Y,
143
+ Z,
141
144
  {
142
145
  data: n,
143
146
  currentAnchorId: V,
@@ -168,17 +171,17 @@ const ge = (N) => {
168
171
  return /* @__PURE__ */ r.jsxs(
169
172
  "div",
170
173
  {
171
- className: L(`${C}-anchor`, J, {
174
+ className: L(`${C}-anchor`, G, {
172
175
  [`${C}-anchor-${a}`]: a
173
176
  }),
174
- style: z,
177
+ style: J,
175
178
  children: [
176
179
  a === "left" && P,
177
180
  /* @__PURE__ */ r.jsx(
178
181
  "div",
179
182
  {
180
183
  id: j,
181
- className: L("anchor-scroll", G),
184
+ className: L("anchor-scroll", H),
182
185
  style: {
183
186
  paddingLeft: a === "left" ? w : "0",
184
187
  paddingRight: a === "right" ? w : "0"
@@ -192,6 +195,6 @@ const ge = (N) => {
192
195
  );
193
196
  };
194
197
  export {
195
- ge as default
198
+ Te as default
196
199
  };
197
200
  //# sourceMappingURL=index.js.map
@@ -18,8 +18,8 @@ export interface AnchorProps {
18
18
  style?: React.CSSProperties;
19
19
  /** 类名 */
20
20
  className?: string;
21
- /** 标题 */
22
- title?: string;
21
+ /** 标题(R6 §6 类型放宽:string → ReactNode,支持嵌入徽标/计数/动态状态文本;string 是 ReactNode 子集,完全向后兼容) */
22
+ title?: ReactNode;
23
23
  /** 滚动盒子Id */
24
24
  scrollId?: string;
25
25
  /** 子元素 */
@@ -31,8 +31,12 @@ export interface AnchorProps {
31
31
  /** 位置 */
32
32
  placement?: 'left' | 'right';
33
33
  /** 默认展示的锚点 */
34
- /** 自定义前缀符号 */
35
- customPrefixIcon?: ReactNode;
34
+ /**
35
+ * 自定义前缀符号(R6 §6 类型放宽):
36
+ * - 静态 ReactNode — 所有目录项共用同一前缀图标(原行为)
37
+ * - 函数形式 `(item, isActive) => ReactNode` — 按当前激活态返回不同 ReactNode(墨水点指示器等激活态联动场景);函数版本每次激活变化触发 list 重渲染,内部 AnchorListMemo 已优化
38
+ */
39
+ customPrefixIcon?: ReactNode | ((item: AnchorItem, isActive: boolean) => ReactNode);
36
40
  /** 全部展开功能是否开启 */
37
41
  allExpanded?: boolean;
38
42
  /** 是否带目录搜索 */