@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,189 @@
1
+ {
2
+ "name": "CodeEditor",
3
+ "category": "Data Display",
4
+ "description": "代码编辑器,基于 Monaco Editor。⚠️ 命名警告:**editorLanguage** 是真实代码语言 prop(如 'json'/'typescript'),**language** 是 i18n 字典对象(对象类型,非字符串)。两者极易混淆,务必确认你要的是 editorLanguage(代码高亮)而非 language(界面 i18n)。",
5
+ "semantic": {
6
+ "intent": [
7
+ "代码编辑",
8
+ "代码展示",
9
+ "高亮显示"
10
+ ],
11
+ "useCases": [
12
+ "配置编辑",
13
+ "脚本编写",
14
+ "日志查看"
15
+ ],
16
+ "riskLevel": "high"
17
+ },
18
+ "variants": {
19
+ "default": {
20
+ "meaning": "标准编辑器"
21
+ }
22
+ },
23
+ "states": [
24
+ "default",
25
+ "disabled",
26
+ "readonly"
27
+ ],
28
+ "idealProps": {
29
+ "value": {
30
+ "type": "string",
31
+ "default": "''",
32
+ "description": "编辑器代码内容(**既是初始值又是受控通道**);src/CodeEditor/index.tsx:253 useEffect 监听 value 变化 → snackClass.setValue 同步;**无独立 defaultValue prop** — 不受控写法:value={initialCode} 父不维护 state;受控写法:父维护 state + onChange 中 setState"
33
+ },
34
+ "editorLanguage": {
35
+ "type": "'html' | 'xml' | 'javascript' | 'css' | 'less' | 'scss' | 'json' | 'typescript' | 'java' | 'mysql' | 'go' | 'shell' | 'python' | 'c' | string",
36
+ "values": ["plaintext", "html", "xml", "javascript", "css", "less", "scss", "json", "typescript", "java", "mysql", "go", "shell", "python", "c"],
37
+ "default": "javascript",
38
+ "seeAlso": "language (i18n 字典 — 极易混淆,务必区分)",
39
+ "description": "编辑器语言(真实代码 mode);src/CodeEditor/index.tsx:127。注意:这是真实编辑器语言 prop,**不是** `language` — `language` 是 i18n 字典对象,二者勿混。**业务包装组件场景**:若包装层 Props 接口用 `language: string` 命名,内部必须 `<CodeEditor editorLanguage={props.language} />` 显式映射,禁止直接 `<CodeEditor language={props.language} />`(类型不匹配 + 运行时无高亮)"
40
+ },
41
+ "language": {
42
+ "type": "{ [name: string]: { [name: string]: any } }",
43
+ "seeAlso": "editorLanguage (代码语言 — 极易混淆,务必区分)",
44
+ "description": "国际化字典(i18n 多语 UI 文案);src/CodeEditor/index.tsx:153。R18 sub-agent 100% 把这个当 editorLanguage 用 → 已通过此条 desc 明确区分。类型为**对象**,若误传字符串(如 `language=\"typescript\"`)tsc 会报错"
45
+ },
46
+ "theme": {
47
+ "type": "enum",
48
+ "values": [
49
+ "vs-dark",
50
+ "vs-light"
51
+ ],
52
+ "default": "vs-light",
53
+ "description": "主题"
54
+ },
55
+ "onChange": {
56
+ "type": "(val: string) => void",
57
+ "description": "代码内容改变回调(**单参签名,不暴露 Monaco event 第二参** — src/CodeEditor/index.tsx:343 onChangeCom 只透传 val)"
58
+ },
59
+ "onChangeLanguage": {
60
+ "type": "(val: string) => void",
61
+ "description": "编辑器语言切换回调"
62
+ },
63
+ "onMounted": {
64
+ "type": "(snackClass: CodeEditorSnackClassProps) => void",
65
+ "description": "编辑器加载完成回调(只触发一次);snackClass 暴露 editor / setValue / setDisabled / formatDocument / insertCode 等动态方法"
66
+ },
67
+ "monacoEditorProps": {
68
+ "type": "Record<string, any>",
69
+ "description": "Monaco Editor 原生 props 复写;**真实 prop 名是 monacoEditorProps 不是 options**;只读场景可用 monacoEditorProps={{options:{readOnly:true}}},但 disabled 已覆盖常见整体只读"
70
+ },
71
+ "width": {
72
+ "type": "string",
73
+ "default": "100%",
74
+ "description": "宽(默认 100% → 父容器无显式尺寸时编辑器渲染为 0 × 0 不可见;demo 必须 `<div style={{width,height}}>` 包裹)"
75
+ },
76
+ "height": {
77
+ "type": "string",
78
+ "default": "100%",
79
+ "description": "高(默认 100%;同 width 注意事项)"
80
+ },
81
+ "disabled": {
82
+ "type": "boolean",
83
+ "default": "false",
84
+ "description": "禁用 / 整体只读(**无独立 readOnly prop;disabled 即官方只读入口**);src/CodeEditor/index.tsx:257 useEffect setDisabled 同步。**onChange 在 disabled 场景**:TS 类型上 onChange 仍为可选(不传不会 tsc 报错),但为表达\"明确不期望变更\"建议显式 `onChange={() => undefined}` 占位"
85
+ },
86
+ "codeSnippet": {
87
+ "type": "CodeSnippetProps[]",
88
+ "itemSchema": {
89
+ "label": { "type": "string", "description": "片段显示名" },
90
+ "insertCode": { "type": "string", "description": "插入的代码文本" },
91
+ "codePos": { "type": "object", "description": "插入位置 { startLineNumber, startColumn, endLineNumber, endColumn }" }
92
+ },
93
+ "description": "代码片段列表;CodeSnippetProps = { label?: string; insertCode?: string; codePos?: CodeSnippetPosProps; [name: string]: any }"
94
+ },
95
+ "suggestions": {
96
+ "type": "SuggestionsPorps[]",
97
+ "itemSchema": {
98
+ "label": { "type": "string", "required": true, "description": "提示显示文本" },
99
+ "kind": { "type": "CompletionItemKind (enum number)", "description": "提示前图标类型(0=Method, 1=Function, 17=Keyword, 27=Snippet 等枚举数字)" },
100
+ "insertText": { "type": "string", "description": "选中后插入的文本(默认同 label)" },
101
+ "detail": { "type": "string", "description": "提示内容后的说明文字" }
102
+ },
103
+ "description": "代码补全提示项;SuggestionsPorps = { label: string; kind?: CompletionItemKind; insertText?: string; detail?: string }"
104
+ },
105
+ "topRightRender": {
106
+ "type": "ReactNode",
107
+ "description": "导航右边自定义渲染(可放按钮等)"
108
+ },
109
+ "help": {
110
+ "type": "ReactNode",
111
+ "description": "帮助内容"
112
+ }
113
+ },
114
+ "do": [
115
+ "用于复杂配置编辑或代码展示——轻量输入用 TextField,CodeEditor 有较重的 Monaco 加载成本",
116
+ "父容器必须设置明确的宽高(width/height 默认 100%,父容器无尺寸时编辑器渲染为 0×0 不可见)",
117
+ "需要命令式控制(插入代码/格式化/设值):通过 onMounted 获取 snackClass 实例(含 setValue/formatDocument/insertCode 等方法)",
118
+ "区分 editorLanguage(代码高亮语言,字符串如 'json')和 language(i18n 字典对象)——两者极易混淆"
119
+ ],
120
+ "dont": [
121
+ "在简单文本输入中使用 CodeEditor(改用 TextField/TextArea)",
122
+ "把 language prop 当 editorLanguage 用——language 是 i18n 字典对象,传字符串会 tsc 报类型错误 + 无高亮",
123
+ "未给父容器设置固定尺寸就使用 100% 宽高——父容器塌陷时编辑器不可见",
124
+ "加载超大文件(>1MB)——Monaco 渲染性能下降明显"
125
+ ],
126
+ "events": {
127
+ "onChange": {
128
+ "signature": "(val: string) => void",
129
+ "asyncSupported": false,
130
+ "examples": [
131
+ "实时同步编辑器内容:<CodeEditor onChange={(val) => setCode(val)} />",
132
+ "onChange 只传 val(字符串),不暴露 Monaco 原生 event 第二参数——src/CodeEditor/index.tsx:343 onChangeCom 只透传 val",
133
+ "disabled 模式下不触发 onChange(snackClass.setDisabled 后编辑器变只读)"
134
+ ],
135
+ "commonMistakes": [
136
+ "假设 onChange 签名类似 Monaco 原生的 (value, event) => void——para-ui CodeEditor 只透传 val,无第二参数",
137
+ "disabled=true 时仍期望 onChange 触发——disabled 后编辑器整体只读,onChange 不会被调用",
138
+ "与 language 混淆:传 onChange 时以为可以用 language prop 设语言——language 是 i18n,代码语言用 editorLanguage"
139
+ ]
140
+ },
141
+ "onChangeLanguage": {
142
+ "signature": "(val: string) => void",
143
+ "asyncSupported": false,
144
+ "examples": [
145
+ "监听用户切换语言:<CodeEditor onChangeLanguage={(lang) => console.log('切换到', lang)} />",
146
+ "与 onChange 独立触发,语言切换不触发 onChange",
147
+ "隐藏语言下拉时(hideSelectLanguage=true)此回调永不触发"
148
+ ],
149
+ "commonMistakes": [
150
+ "期望 onChangeLanguage 在 editorLanguage prop 变化时触发——只在用户操作下拉框时触发,外部 prop 变化不触发",
151
+ "hideSelectLanguage=true 后仍期望 onChangeLanguage 能用——下拉框隐藏后用户无法触发语言切换"
152
+ ]
153
+ },
154
+ "onMounted": {
155
+ "signature": "(snackClass: CodeEditorSnackClassProps) => void",
156
+ "asyncSupported": false,
157
+ "examples": [
158
+ "获取实例后命令式操作:onMounted={(snack) => { snackRef.current = snack; snack.setValue('// 初始代码'); }}",
159
+ "onMounted 只触发一次(组件挂载 + Monaco 初始化完毕后);ref 后续可调 setValue/formatDocument/insertCode",
160
+ "snackClass 暴露的方法:setValue(val)、setDisabled(bool)、formatDocument()、insertCode(text, pos?)、updateSnackModules(key, val)"
161
+ ],
162
+ "commonMistakes": [
163
+ "在 onMounted 之前就调 snackRef.current.setValue——Monaco 未初始化完毕时 snackClass 为 undefined",
164
+ "每次 value prop 变化都调 snackClass.setValue——value prop 已自动同步,双写会导致光标跳回行首"
165
+ ]
166
+ }
167
+ },
168
+ "typescriptPitfalls": [
169
+ {
170
+ "issue": "language prop 是 i18n 字典对象,不是代码语言字符串,传字符串会 tsc 报错",
171
+ "wrong": "<CodeEditor language=\"typescript\" /> // tsc 报 Type 'string' is not assignable to type 'object'",
172
+ "right": "<CodeEditor editorLanguage=\"typescript\" /> // editorLanguage 是代码高亮语言"
173
+ },
174
+ {
175
+ "issue": "monacoEditorProps 的真实 prop 名是 monacoEditorProps,不是 options 或 editorOptions",
176
+ "wrong": "<CodeEditor options={{ readOnly: true }} /> // 无效,options 不是 CodeEditorProps 字段",
177
+ "right": "<CodeEditor monacoEditorProps={{ readOnly: true }} /> // 复写 Monaco Editor 原生 props"
178
+ },
179
+ {
180
+ "issue": "父容器无明确尺寸时 width/height='100%' 导致编辑器不可见",
181
+ "wrong": "// 父容器无高度:\n<div><CodeEditor /></div> // 编辑器渲染为 0×0,页面看不到",
182
+ "right": "<div style={{ width: 800, height: 400 }}><CodeEditor /></div> // 父容器必须有明确尺寸"
183
+ }
184
+ ],
185
+ "mapping": {
186
+ "realComponent": "CodeEditor",
187
+ "adapter": null
188
+ }
189
+ }
@@ -1,5 +1,6 @@
1
1
  import { default as React, FunctionComponent, ReactNode } from 'react';
2
- import { Snack } from '@para-snack/core';
2
+ import { Snack } from '@snack-kit/core';
3
+ import type * as monaco from 'monaco-editor';
3
4
  export type CodeEditorLanguageType = 'plaintext' | 'html' | 'xml' | 'javascript' | 'css' | 'less' | 'scss' | 'json' | 'typescript' | 'java' | 'mysql' | 'go' | 'shell' | 'python' | 'c' | string;
4
5
  export declare enum CompletionItemKind {
5
6
  Method = 0,
@@ -40,13 +41,13 @@ export interface SuggestionsPorps {
40
41
  insertText?: string;
41
42
  /** 提示内容后的说明 */
42
43
  detail?: string;
43
- [name: string]: any;
44
+ [name: string]: unknown;
44
45
  }
45
46
  export interface CodeSnippetProps {
46
47
  label?: string;
47
48
  insertCode?: string;
48
49
  codePos?: CodeSnippetPosProps;
49
- [name: string]: any;
50
+ [name: string]: unknown;
50
51
  }
51
52
  export interface CodeSnippetPosProps {
52
53
  startLineNumber: number;
@@ -107,7 +108,7 @@ export interface CodeEditorProps {
107
108
  /** 提示字符 */
108
109
  triggerCharacters?: string[];
109
110
  /** 复写编辑器属性 */
110
- monacoEditorProps?: Record<string, any>;
111
+ monacoEditorProps?: Record<string, unknown>;
111
112
  /** 代码片段 */
112
113
  codeSnippet?: CodeSnippetProps[];
113
114
  /** 帮组 */
@@ -117,7 +118,7 @@ export interface CodeEditorProps {
117
118
  /** 国际化 */
118
119
  language?: {
119
120
  [name: string]: {
120
- [name: string]: any;
121
+ [name: string]: unknown;
121
122
  };
122
123
  };
123
124
  /** 点击代码片段 */
@@ -130,10 +131,10 @@ export interface CodeEditorProps {
130
131
  onMounted?: (snackClass: CodeEditorSnackClassProps) => void;
131
132
  }
132
133
  export interface CodeEditorSnackClassProps extends Snack {
133
- /** 编辑器对象 */
134
- editor: any;
135
- /** 语言实例 补全代码 */
136
- monacoProviderRef: any;
134
+ /** 编辑器对象(Monaco 标准 IStandaloneCodeEditor) */
135
+ editor: monaco.editor.IStandaloneCodeEditor;
136
+ /** 语言实例 补全代码(Monaco language provider 注册返回的 disposable) */
137
+ monacoProviderRef: monaco.IDisposable;
137
138
  /** 设置值 */
138
139
  setValue: (val: string) => void;
139
140
  /** 设置禁用 */
@@ -152,7 +153,7 @@ export interface CodeEditorSnackClassProps extends Snack {
152
153
  endColumn: number;
153
154
  }) => void;
154
155
  /** 改变snack模块props */
155
- updateSnackModules: (key: string, val: any) => void;
156
+ updateSnackModules: (key: string, val: unknown) => void;
156
157
  }
157
158
  declare const CodeEditor: FunctionComponent<CodeEditorProps>;
158
159
  export default CodeEditor;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const f=require("../_virtual/jsx-runtime.js"),a=require("react"),rr=require("@paraview/lib"),er=require("react-dom"),sr=require("clsx"),ar=require("../GlobalContext/constant.js"),ur=require("../_virtual/index.js"),cr=require("../Loading/index.js"),tr=require("./lang/index.js");;/* empty css */var o=(r=>(r[r.Method=0]="Method",r[r.Function=1]="Function",r[r.Constructor=2]="Constructor",r[r.Field=3]="Field",r[r.Variable=4]="Variable",r[r.Class=5]="Class",r[r.Struct=6]="Struct",r[r.Interface=7]="Interface",r[r.Module=8]="Module",r[r.Property=9]="Property",r[r.Event=10]="Event",r[r.Operator=11]="Operator",r[r.Unit=12]="Unit",r[r.Value=13]="Value",r[r.Constant=14]="Constant",r[r.Enum=15]="Enum",r[r.EnumMember=16]="EnumMember",r[r.Keyword=17]="Keyword",r[r.Text=18]="Text",r[r.Color=19]="Color",r[r.File=20]="File",r[r.Reference=21]="Reference",r[r.Customcolor=22]="Customcolor",r[r.Folder=23]="Folder",r[r.TypeParameter=24]="TypeParameter",r[r.User=25]="User",r[r.Issue=26]="Issue",r[r.Snippet=27]="Snippet",r))(o||{});const gr=r=>{const{className:E,style:b,id:y,language:h,zoomLength:R=300,theme:q="vs-light",resize:v=!0,editorLanguage:w="javascript",disabledSelectLanguage:F,languageList:j,showExpand:L=!0,showFullScreen:T=!0,showFormat:P=!0,topRightRender:$,width:c="100%",height:t="100%",value:g="",disabled:n=!1,suggestions:U,triggerCharacters:V,codeSnippet:D,help:O,isSearchCode:N,drag:_=!0,dragMin:z=200,monacoEditorProps:H,title:A,hideSelectLanguage:B,hideLineNumber:G,onClickCodeSnippet:J,onChange:k,onChangeLanguage:Q,onMounted:S}=r,[W,x]=a.useState(!0),[M,X]=a.useState(),d=a.useRef(null),e=a.useRef({});a.useEffect(()=>(i(),()=>{clearTimeout(e.current.snackTimer)}),[]),a.useEffect(()=>{e.current.snackClass?.setValue(g||"")},[g]),a.useEffect(()=>{e.current.snackClass?.setDisabled(n)},[n]);const Y=(s,u)=>{e.current.snackClass&&(e.current.snackClass.data[s]=u,e.current.snackClass.$forceUpdate(),e.current.snackClass.editor?.focus())},Z=async()=>{if(e.current.sdk)return e.current.sdk;const s=new ur.distExports.SnackSDK({service:rr.Context.get("snackbar"),importMaps:{react:a,"react-dom":er},runtime:!0});return e.current.sdk=s,s},i=async()=>{x(!0);const u=await(await Z()).createModule({name:"codeeditornew",type:"code-editor"},{id:y,theme:q,language:h||tr.default,zoomLength:R,editorLanguage:w,title:A,disabledSelectLanguage:F,hideSelectLanguage:B,hideLineNumber:G,languageList:j,showExpand:L,showFullScreen:T,showFormat:P,topRightRender:$,width:c,height:t,resize:v,value:g,disabled:n,suggestions:U,triggerCharacters:V,codeSnippet:D,help:O,isSearchCode:N,drag:_,dragMin:z,onClickCodeSnippet:J,onChange:C,onChangeLanguage:Q,monacoEditorProps:H});if(x(!1),!u)return;const K=()=>u.FC();X(f.jsxRuntimeExports.jsx(K,{})),e.current.snackTimer=setTimeout(()=>{u.updateSnackModules=Y,e.current.snackClass=u,u.getMoveHeight=m=>{const l=d.current;l&&(l.style.height=m)},S&&S(u)})},C=s=>{k&&k(s)},p=a.useMemo(()=>M,[M]),I=()=>{const s={...b};return c&&(s.width=c),t&&(s.height=t),s};return f.jsxRuntimeExports.jsxs("div",{className:sr(`${ar.$prefixCls}-code-editor`,E),style:I(),ref:d,children:[W&&f.jsxRuntimeExports.jsx(cr.Loading,{}),p]})};exports.CompletionItemKind=o;exports.default=gr;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const f=require("../_virtual/jsx-runtime.js"),a=require("react"),rr=require("@snack-kit/lib"),er=require("react-dom"),sr=require("clsx"),ar=require("../GlobalContext/constant.js"),cr=require("@snack-kit/core"),ur=require("../Loading/index.js"),tr=require("./lang/index.js");;/* empty css */var o=(r=>(r[r.Method=0]="Method",r[r.Function=1]="Function",r[r.Constructor=2]="Constructor",r[r.Field=3]="Field",r[r.Variable=4]="Variable",r[r.Class=5]="Class",r[r.Struct=6]="Struct",r[r.Interface=7]="Interface",r[r.Module=8]="Module",r[r.Property=9]="Property",r[r.Event=10]="Event",r[r.Operator=11]="Operator",r[r.Unit=12]="Unit",r[r.Value=13]="Value",r[r.Constant=14]="Constant",r[r.Enum=15]="Enum",r[r.EnumMember=16]="EnumMember",r[r.Keyword=17]="Keyword",r[r.Text=18]="Text",r[r.Color=19]="Color",r[r.File=20]="File",r[r.Reference=21]="Reference",r[r.Customcolor=22]="Customcolor",r[r.Folder=23]="Folder",r[r.TypeParameter=24]="TypeParameter",r[r.User=25]="User",r[r.Issue=26]="Issue",r[r.Snippet=27]="Snippet",r))(o||{});const gr=r=>{const{className:E,style:b,id:y,language:h,zoomLength:R=300,theme:v="vs-light",resize:w=!0,editorLanguage:F="javascript",disabledSelectLanguage:j,languageList:q,showExpand:L=!0,showFullScreen:T=!0,showFormat:P=!0,topRightRender:U,width:u="100%",height:t="100%",value:g="",disabled:n=!1,suggestions:V,triggerCharacters:D,codeSnippet:O,help:N,isSearchCode:_,drag:$=!0,dragMin:z=200,monacoEditorProps:H,title:A,hideSelectLanguage:B,hideLineNumber:G,onClickCodeSnippet:J,onChange:k,onChangeLanguage:Q,onMounted:S}=r,[W,M]=a.useState(!0),[l,X]=a.useState(),x=a.useRef(null),e=a.useRef({});a.useEffect(()=>(i(),()=>{clearTimeout(e.current.snackTimer)}),[]),a.useEffect(()=>{e.current.snackClass?.setValue(g||"")},[g]),a.useEffect(()=>{e.current.snackClass?.setDisabled(n)},[n]);const Y=(s,c)=>{e.current.snackClass&&(e.current.snackClass.data[s]=c,e.current.snackClass.$forceUpdate(),e.current.snackClass.editor?.focus())},Z=async()=>{if(e.current.sdk)return e.current.sdk;const s=new cr.SnackSDK({service:rr.Context.get("snackbar"),importMaps:{react:a,"react-dom":er},runtime:!0});return e.current.sdk=s,s},i=async()=>{M(!0);const c=await(await Z()).createModule({name:"codeeditornew",type:"code-editor"},{id:y,theme:v,language:h||tr.default,zoomLength:R,editorLanguage:F,title:A,disabledSelectLanguage:j,hideSelectLanguage:B,hideLineNumber:G,languageList:q,showExpand:L,showFullScreen:T,showFormat:P,topRightRender:U,width:u,height:t,resize:w,value:g,disabled:n,suggestions:V,triggerCharacters:D,codeSnippet:O,help:N,isSearchCode:_,drag:$,dragMin:z,onClickCodeSnippet:J,onChange:C,onChangeLanguage:Q,monacoEditorProps:H});if(M(!1),!c)return;const K=()=>c.FC();X(f.jsxRuntimeExports.jsx(K,{})),e.current.snackTimer=setTimeout(()=>{c.updateSnackModules=Y,e.current.snackClass=c,c.getMoveHeight=m=>{const d=x.current;d&&(d.style.height=m)},S&&S(c)})},C=s=>{k&&k(s)},p=a.useMemo(()=>l,[l]),I=()=>{const s={...b};return u&&(s.width=u),t&&(s.height=t),s};return f.jsxRuntimeExports.jsxs("div",{className:sr(`${ar.$prefixCls}-code-editor`,E),style:I(),ref:x,children:[W&&f.jsxRuntimeExports.jsx(ur.Loading,{}),p]})};exports.CompletionItemKind=o;exports.default=gr;
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,166 @@
1
+ {
2
+ "name": "Collapse",
3
+ "category": "Data Display",
4
+ "description": "折叠面板,可以折叠/展开的内容区域",
5
+ "semantic": {
6
+ "intent": [
7
+ "收纳内容",
8
+ "分块展示",
9
+ "节省空间"
10
+ ],
11
+ "useCases": [
12
+ "常见问题 (FAQ)",
13
+ "复杂表单分组",
14
+ "信息详情"
15
+ ],
16
+ "riskLevel": "low"
17
+ },
18
+ "variants": {
19
+ "default": {
20
+ "meaning": "标准折叠面板"
21
+ },
22
+ "ghost": {
23
+ "meaning": "无边框模式"
24
+ }
25
+ },
26
+ "states": [
27
+ "active",
28
+ "disabled"
29
+ ],
30
+ "idealProps": {
31
+ "activeKey": {
32
+ "type": "string | number | Array<string | number>",
33
+ "description": "当前激活面板的 key。accordion=true 时传 string/number;accordion=false(默认)时传数组(多面板同时展开)"
34
+ },
35
+ "defaultActiveKey": {
36
+ "type": "string | number | Array<string | number>",
37
+ "description": "非受控模式初始展开面板 key。同 activeKey 类型规则"
38
+ },
39
+ "accordion": {
40
+ "type": "boolean",
41
+ "default": false,
42
+ "description": "手风琴模式:true 时同时只展开一个面板,点击已展开面板会收起所有面板,onChange 收到空字符串"
43
+ },
44
+ "onChange": {
45
+ "type": "(key: string | string[]) => void",
46
+ "description": "切换回调:accordion=true 时传 string(被展开 key 或空字符串表示全收起);accordion=false 时传 string[](当前展开 key 集合)"
47
+ },
48
+ "expandIconPosition": {
49
+ "type": "'left' | 'right'",
50
+ "values": ["left", "right"],
51
+ "default": "left",
52
+ "description": "切换图标位置"
53
+ },
54
+ "expandIcon": {
55
+ "type": "(panelProps: PanelProps) => ReactNode",
56
+ "description": "自定义切换图标"
57
+ },
58
+ "children": {
59
+ "type": "Collapse.Panel[]",
60
+ "description": "Collapse 用 <Collapse><Collapse.Panel header key>content</Collapse.Panel></Collapse> 复合子组件风格(非 items 数组)。const { Panel } = Collapse 后写 Panel"
61
+ },
62
+ "collapsible": {
63
+ "type": "'header' | 'disabled'",
64
+ "description": "所有子面板的折叠触发方式(src/Collapse/index.tsx:30 interface 实证):'header' 点击 header 区域触发;'disabled' 禁用所有面板折叠(单个 Panel 可通过 Panel.collapsible 覆盖)"
65
+ },
66
+ "destroyInactivePanel": {
67
+ "type": "boolean",
68
+ "default": false,
69
+ "description": "销毁折叠隐藏的面板 DOM(src/Collapse/index.tsx:32 interface 实证)。true 时折叠的面板内容从 DOM 移除(节省内存);false 时保留 DOM(切换速度更快)。与 Panel.forceRender 互斥:forceRender=true 强制渲染优先级高于 destroyInactivePanel"
70
+ },
71
+ "className": {
72
+ "type": "string",
73
+ "description": "自定义类名(src/Collapse/index.tsx:20,68,101 实证,追加到根容器 className)"
74
+ },
75
+ "style": {
76
+ "type": "React.CSSProperties",
77
+ "description": "自定义样式(src/Collapse/index.tsx:22 interface 声明,透传到根容器)"
78
+ }
79
+ },
80
+ "subComponents": {
81
+ "Panel": {
82
+ "import": "const { Panel } = Collapse",
83
+ "props": {
84
+ "key": {
85
+ "type": "string | number",
86
+ "required": true,
87
+ "description": "对应 activeKey 的标识"
88
+ },
89
+ "header": {
90
+ "type": "ReactNode",
91
+ "required": true,
92
+ "description": "面板头文本/节点(不是 label 字段)"
93
+ },
94
+ "children": {
95
+ "type": "ReactNode",
96
+ "description": "展开后显示的内容(不是 content 字段)"
97
+ },
98
+ "collapsible": {
99
+ "type": "'header' | 'disabled'",
100
+ "description": "该面板的折叠触发方式(src/Collapse/index.tsx:31,60 实证):'disabled' 时该面板不可展开/收起。**推荐用此 prop 替代已 deprecated 的 `disabled` prop**(src 内部将 disabled=true 自动转换为 collapsible='disabled',见 src/Collapse/index.tsx:76-81)"
101
+ },
102
+ "disabled": {
103
+ "type": "boolean",
104
+ "description": "⚠️ **@deprecated — 改用 `collapsible='disabled'`(src/Collapse/index.tsx:55 注释实证:`@deprecated Use collapsible=\"disabled\" instead`)**。仍可用,src 内部自动转换为 collapsible='disabled'"
105
+ },
106
+ "extra": {
107
+ "type": "ReactNode",
108
+ "description": "面板头右上角自定义内容"
109
+ },
110
+ "forceRender": {
111
+ "type": "boolean",
112
+ "default": false,
113
+ "description": "true 时被折叠面板的内容也始终渲染(用于隐藏内容需保活)"
114
+ }
115
+ }
116
+ }
117
+ },
118
+ "do": [
119
+ "整理复杂或次要信息——主要场景用 FAQ / 表单分组 / 详情展开",
120
+ "Panel 的 key 建议用稳定的字符串 ID,避免用数组下标(下标变化会导致状态错乱)",
121
+ "需要禁用单个面板:用 Panel.collapsible='disabled' 而非 Panel.disabled(disabled 已标记 @deprecated)",
122
+ "手风琴模式(accordion=true):onChange 的参数是 string(展开项 key 或空字符串),非数组"
123
+ ],
124
+ "dont": [
125
+ "Collapse 嵌套过深(2层以上会产生严重的视觉噪音,改用 Table 展开行或 Drawer)",
126
+ "核心关键信息隐藏在折叠内容中(除非空间极度受限)",
127
+ "混淆 accordion 模式下 onChange 返回类型——accordion=true 时是 string,accordion=false 时是 string[]"
128
+ ],
129
+ "events": {
130
+ "onChange": {
131
+ "signature": "(key: string | string[]) => void",
132
+ "asyncSupported": false,
133
+ "examples": [
134
+ "受控模式:const [activeKey, setActiveKey] = useState<string[]>([]); <Collapse activeKey={activeKey} onChange={(k) => setActiveKey(k as string[])} />",
135
+ "手风琴模式:onChange 收到 string(被展开项的 key),全部收起时收到空字符串 ''",
136
+ "非手风琴模式:onChange 收到 string[](当前所有展开面板的 key 集合)"
137
+ ],
138
+ "commonMistakes": [
139
+ "accordion=true 时把 onChange 的参数当 string[] 处理——手风琴模式下是 string,不是数组",
140
+ "非受控模式下(只传 defaultActiveKey)同时监听 onChange 期望能控制展开状态——defaultActiveKey 是非受控初始值,内部维护状态,受控需改传 activeKey",
141
+ "期望 onChange 在初始化时触发一次——只有用户操作时触发,挂载不触发"
142
+ ]
143
+ }
144
+ },
145
+ "typescriptPitfalls": [
146
+ {
147
+ "issue": "accordion 模式下 onChange 参数类型是 string 不是 string[],混用会运行时报错",
148
+ "wrong": "// accordion=true 时:\nonChange={(keys) => setActiveKey(keys)} // keys 实际是 string,.join 等数组方法会报错",
149
+ "right": "// accordion 模式:\n<Collapse accordion onChange={(key) => setActiveKey(key as string)} />"
150
+ },
151
+ {
152
+ "issue": "Panel.disabled 已 @deprecated,严格 TS 配置下会产生警告,改用 collapsible='disabled'",
153
+ "wrong": "<Collapse.Panel key='1' header='标题' disabled>内容</Collapse.Panel>",
154
+ "right": "<Collapse.Panel key='1' header='标题' collapsible='disabled'>内容</Collapse.Panel>"
155
+ },
156
+ {
157
+ "issue": "activeKey 类型需要与 accordion 模式匹配,混用 string/string[] 会导致类型错误",
158
+ "wrong": "// accordion=true 时传数组:\n<Collapse accordion activeKey={['panel-1']} /> // TS 警告且行为不符合预期",
159
+ "right": "// accordion 时传 string,非 accordion 时传 string[]:\n<Collapse accordion activeKey={activeKeyStr} onChange={(k) => setActiveKeyStr(k as string)} />"
160
+ }
161
+ ],
162
+ "mapping": {
163
+ "realComponent": "Collapse",
164
+ "adapter": null
165
+ }
166
+ }
@@ -22,7 +22,7 @@ export interface CollapseProps {
22
22
  expandIconPosition?: ExpandIconPosition;
23
23
  /** onChange */
24
24
  onChange?: (key: string | string[]) => void;
25
- children?: any;
25
+ children?: React.ReactNode;
26
26
  }
27
27
  interface PanelProps {
28
28
  /** 是否展开 */
@@ -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"),g=require("rc-collapse"),j=require("./collapsePanel.js"),l=require("./util.js"),q=require("../node_modules/@para-ui/icons/Right/index.js"),v=require("./motion.js"),r=require("../GlobalContext/constant.js");;/* empty css */const a=n=>{const{className:c="",expandIconPosition:i="left"}=n,p=()=>{const{children:s}=n;return l.toArray(s).map((e,o)=>{if(e.props?.disabled){const m=e.key||String(o),{disabled:f,collapsible:C}=e.props,b={...l.omit(e.props,["disabled"]),key:m,collapsible:C??(f?"disabled":void 0)};return l.cloneElement(e,b)}return e})},u=(s={})=>{const{expandIcon:e}=n,o=e?e(s):t.jsxRuntimeExports.jsx(q.Right,{className:"collapse-expand-svg"});return t.jsxRuntimeExports.jsx("div",{className:"collapse-svg-box",children:o})},d=()=>{let s=`${r.$prefixCls}-collapse`;return c&&(s+=` ${c}`),i&&(s+=` ${r.$prefixCls}-collapse-svg-${i}`),s},x={...v.default,motionAppear:!1,leavedClassName:"collapse-content-hidden"};return t.jsxRuntimeExports.jsx(g,{openMotion:x,...n,expandIcon:u,prefixCls:`${r.$rcPrefixCls}-collapse`,className:d(),children:p()})};a.Panel=j.CollapsePanelProps;exports.Collapse=a;exports.default=a;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const t=require("../_virtual/jsx-runtime.js"),h=require("rc-collapse"),j=require("./collapsePanel.js"),r=require("./util.js"),q=require("../node_modules/@para-ui/icons/Right/index.js"),v=require("./motion.js"),c=require("../GlobalContext/constant.js");;/* empty css */const a=l=>{const{className:i="",expandIconPosition:d="left"}=l,p=()=>{const{children:e}=l;return r.toArray(e).map((n,o)=>{const s=n;if(s.props?.disabled){const f=s.key||String(o),{disabled:C,collapsible:b}=s.props,g={...r.omit(s.props,["disabled"]),key:f,collapsible:b??(C?"disabled":void 0)};return r.cloneElement(s,g)}return s})},u=(e={})=>{const{expandIcon:n}=l,o=n?n(e):t.jsxRuntimeExports.jsx(q.Right,{className:"collapse-expand-svg"});return t.jsxRuntimeExports.jsx("div",{className:"collapse-svg-box",children:o})},x=()=>{let e=`${c.$prefixCls}-collapse`;return i&&(e+=` ${i}`),d&&(e+=` ${c.$prefixCls}-collapse-svg-${d}`),e},m={...v.default,motionAppear:!1,leavedClassName:"collapse-content-hidden"};return t.jsxRuntimeExports.jsx(h,{openMotion:m,...l,expandIcon:u,prefixCls:`${c.$rcPrefixCls}-collapse`,className:x(),children:p()})};a.Panel=j.CollapsePanelProps;exports.Collapse=a;exports.default=a;
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,84 @@
1
+ {
2
+ "name": "CollapseBox",
3
+ "category": "Layout",
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
+ "expanded",
24
+ "collapsed"
25
+ ],
26
+ "idealProps": {
27
+ "in": {
28
+ "type": "boolean",
29
+ "default": false,
30
+ "description": "【核心受控 prop】控制展开/收起状态;true=展开渲染 children,false=收起;父层需用 useState<boolean> 维护此状态(R21 §5.1 4 high 揭示此 prop 必须在 docs 显式列出)"
31
+ },
32
+ "children": {
33
+ "type": "React.ReactNode",
34
+ "description": "折叠区域内容;接受任意 ReactNode(多个并列元素亦可,内部已包 wrapper div 测高度)"
35
+ },
36
+ "collapsedHeight": {
37
+ "type": "string | number",
38
+ "default": "0px",
39
+ "description": "收起状态最小高度;默认 0px 等同完全隐藏;常用 '60px' 实现部分预览;与 unmountOnExit=true 同传时失效(子树被卸载)"
40
+ },
41
+ "unmountOnExit": {
42
+ "type": "boolean",
43
+ "default": false,
44
+ "description": "收起时是否卸载子节点(true=卸载,false=保留 DOM);与 collapsedHeight 互斥:true 时 collapsedHeight 无效"
45
+ },
46
+ "timeout": {
47
+ "type": "'auto' | number | { appear?: number; enter?: number; exit?: number }",
48
+ "default": "'auto'",
49
+ "description": "动画时长(ms);'auto' 按内容高度计算;number 时 enter/exit 共用;{enter, exit} 分别指定;不支持 'fast'/'slow' 字符串关键字"
50
+ }
51
+ },
52
+ "do": [
53
+ "用于需要平滑展开/收起动画的场景,通过 `in` prop 控制展开状态(父组件用 useState<boolean> 维护)",
54
+ "设置 collapsedHeight(如 '60px')实现内容预览折叠效果,同时保持收起时不完全消失",
55
+ "需要节省性能时设置 unmountOnExit=true,收起时卸载子树(但与 collapsedHeight 互斥——unmountOnExit=true 时 collapsedHeight 无效)"
56
+ ],
57
+ "dont": [
58
+ "同时设置 unmountOnExit=true 和 collapsedHeight——两者互斥,unmountOnExit=true 时子树卸载,collapsedHeight 无效",
59
+ "频繁(>10次/秒)切换 in 状态——动画计时器不会被提前中断,快速切换会产生视觉抖动",
60
+ "在不需要动画的场景使用(直接用 CSS display:none 或 conditional render 性能更好)"
61
+ ],
62
+ "events": {},
63
+ "typescriptPitfalls": [
64
+ {
65
+ "issue": "in prop 是关键字,需要用引号或通过变量传入;TypeScript 下直接写 in= 可能触发解析问题",
66
+ "wrong": "// 变量名与关键字冲突:\nconst in = true; // TS 语法错误,in 是保留关键字",
67
+ "right": "// 用非关键字变量名:\nconst isOpen = true; <CollapseBox in={isOpen}>"
68
+ },
69
+ {
70
+ "issue": "timeout 的对象形式类型是 { appear?: number; enter?: number; exit?: number },不支持字符串关键字",
71
+ "wrong": "<CollapseBox timeout='fast' /> // TS 报错:'fast' 不在联合类型中",
72
+ "right": "<CollapseBox timeout='auto' /> // 只有 'auto' 是字符串关键字;具体毫秒用 number"
73
+ },
74
+ {
75
+ "issue": "collapsedHeight 同时接受 string 和 number,number 类型会被转为带 px 后缀的字符串",
76
+ "wrong": "// 期望传百分比:\ncollapsedHeight={50} // 解析为 '50px' 而非 '50%'",
77
+ "right": "// 百分比需传字符串:\ncollapsedHeight='50%' // 或 collapsedHeight='60px'"
78
+ }
79
+ ],
80
+ "mapping": {
81
+ "realComponent": "CollapseBox",
82
+ "adapter": null
83
+ }
84
+ }