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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (730) hide show
  1. package/AGENTS.md +315 -0
  2. package/AlignBox/component.json +89 -0
  3. package/Anchor/component.json +130 -0
  4. package/Argv/component.json +216 -0
  5. package/AutoBox/component.json +133 -0
  6. package/AutoButton/component.json +109 -0
  7. package/AutoTips/component.json +121 -0
  8. package/Badge/component.json +92 -0
  9. package/Breadcrumbs/component.json +142 -0
  10. package/Button/component.json +168 -0
  11. package/ButtonGroup/component.json +132 -0
  12. package/Card/component.json +162 -0
  13. package/Carousel/component.json +142 -0
  14. package/Cascader/component.json +196 -0
  15. package/Checkbox/component.json +138 -0
  16. package/CheckboxGroup/component.json +152 -0
  17. package/CodeEditor/component.json +189 -0
  18. package/Collapse/component.json +166 -0
  19. package/CollapseBox/component.json +84 -0
  20. package/CollapseLayout/component.json +155 -0
  21. package/ColorPicker/component.json +142 -0
  22. package/ComboSelect/component.json +181 -0
  23. package/Container/component.json +111 -0
  24. package/ContentBox/component.json +81 -0
  25. package/CopyText/component.json +118 -0
  26. package/CycleSelector/component.json +98 -0
  27. package/DatePicker/component.json +192 -0
  28. package/Descriptions/component.json +142 -0
  29. package/Desktop/component.json +171 -0
  30. package/DragVerify/component.json +114 -0
  31. package/Drawer/component.json +200 -0
  32. package/Dropdown/component.json +147 -0
  33. package/DynamicMultiBox/component.json +278 -0
  34. package/Empty/component.json +123 -0
  35. package/ExpressionInput/component.json +79 -0
  36. package/FieldForm/component.json +196 -0
  37. package/Form/component.json +161 -0
  38. package/FormItem/component.json +171 -0
  39. package/FunctionModal/component.json +197 -0
  40. package/Help/component.json +118 -0
  41. package/HelperText/component.json +126 -0
  42. package/Image/component.json +165 -0
  43. package/InputCode/component.json +191 -0
  44. package/InputLang/component.json +205 -0
  45. package/InputNumber/component.json +162 -0
  46. package/Label/component.json +126 -0
  47. package/Loading/component.json +91 -0
  48. package/Menu/component.json +180 -0
  49. package/Message/component.json +246 -0
  50. package/Modal/component.json +277 -0
  51. package/MultiBox/component.json +216 -0
  52. package/Notification/component.json +184 -0
  53. package/OperateBtn/component.json +134 -0
  54. package/PageHeader/component.json +112 -0
  55. package/Pagination/component.json +181 -0
  56. package/PasswordRules/component.json +105 -0
  57. package/PopConfirm/component.json +227 -0
  58. package/PopMenu/component.json +131 -0
  59. package/Popover/component.json +165 -0
  60. package/Progress/component.json +161 -0
  61. package/Prompt/component.json +144 -0
  62. package/Querying/component.json +96 -0
  63. package/QuickReply/component.json +129 -0
  64. package/Radio/component.json +136 -0
  65. package/RadioGroup/component.json +149 -0
  66. package/RangeInput/component.json +198 -0
  67. package/Result/component.json +104 -0
  68. package/ScrollBar/component.json +115 -0
  69. package/Search/component.json +177 -0
  70. package/Select/component.json +244 -0
  71. package/SelectInput/component.json +184 -0
  72. package/Selector/component.json +203 -0
  73. package/SelectorPicker/component.json +179 -0
  74. package/SingleBox/component.json +151 -0
  75. package/Slider/component.json +181 -0
  76. package/SortBox/component.json +108 -0
  77. package/Status/component.json +104 -0
  78. package/Stepper/component.json +129 -0
  79. package/Switch/component.json +207 -0
  80. package/Table/component.json +547 -0
  81. package/Tabs/component.json +227 -0
  82. package/Tag/component.json +221 -0
  83. package/TextEditor/component.json +186 -0
  84. package/TextField/component.json +290 -0
  85. package/TimePicker/component.json +176 -0
  86. package/Timeline/component.json +110 -0
  87. package/Title/component.json +156 -0
  88. package/ToggleButton/component.json +153 -0
  89. package/Tooltip/component.json +176 -0
  90. package/Transfer/component.json +157 -0
  91. package/Tree/component.json +512 -0
  92. package/Upload/component.json +450 -0
  93. package/ai-workflows/01-crud-list-multi-drawer.md +278 -0
  94. package/ai-workflows/02-rbac-operation-buttons.md +290 -0
  95. package/ai-workflows/03-complex-form-async-cascade.md +350 -0
  96. package/ai-workflows/04-array-field-form.md +281 -0
  97. package/ai-workflows/05-popconfirm-async-message-queue.md +333 -0
  98. package/ai-workflows/06-modal-drawer-form-workflow.md +385 -0
  99. package/ai-workflows/07-search-filter-table-trio.md +387 -0
  100. package/ai-workflows/08-table-advanced-features.md +365 -0
  101. package/ai-workflows/09-batch-operation-export-progress.md +367 -0
  102. package/ai-workflows/10-cross-component-state-coordination.md +412 -0
  103. package/es/AlignBox/component.json +89 -0
  104. package/es/AlignBox/index.css +1 -1
  105. package/es/AlignBox/index.d.ts +6 -2
  106. package/es/AlignBox/index.js +1 -1
  107. package/es/AlignBox/style/index.css +1 -1
  108. package/es/Anchor/anchorMenu/index.d.ts +2 -1
  109. package/es/Anchor/anchorMenu/index.js +36 -33
  110. package/es/Anchor/component.json +130 -0
  111. package/es/Anchor/index.js +52 -49
  112. package/es/Anchor/type.d.ts +8 -4
  113. package/es/Argv/batchEdit/index.js +1 -1
  114. package/es/Argv/component.json +216 -0
  115. package/es/Argv/dataGenerator/index.js +1 -1
  116. package/es/Argv/index.d.ts +5 -6
  117. package/es/Argv/index.js +1 -1
  118. package/es/AutoBox/component.json +133 -0
  119. package/es/AutoBox/index.d.ts +3 -3
  120. package/es/AutoBox/index.js +1 -1
  121. package/es/AutoBox/protal.d.ts +2 -2
  122. package/es/AutoBox/protal.js +33 -30
  123. package/es/AutoButton/component.json +109 -0
  124. package/es/AutoButton/index.js +1 -1
  125. package/es/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  126. package/es/AutoTips/autoTipsMultiline/index.js +1 -1
  127. package/es/AutoTips/component.json +121 -0
  128. package/es/AutoTips/index.js +1 -1
  129. package/es/Badge/component.json +92 -0
  130. package/es/Breadcrumbs/component.json +142 -0
  131. package/es/Breadcrumbs/index.js +1 -1
  132. package/es/Button/SplitButton.d.ts +2 -2
  133. package/es/Button/component.json +168 -0
  134. package/es/Button/index.js +44 -44
  135. package/es/ButtonGroup/component.json +132 -0
  136. package/es/ButtonGroup/index.d.ts +1 -1
  137. package/es/Card/component.json +162 -0
  138. package/es/Card/index.d.ts +2 -2
  139. package/es/Card/index.js +2 -2
  140. package/es/Carousel/component.json +142 -0
  141. package/es/Carousel/index.d.ts +1 -1
  142. package/es/Cascader/Cascader.js +1 -1
  143. package/es/Cascader/OptionList/Column.js +1 -1
  144. package/es/Cascader/OptionList/index.js +1 -1
  145. package/es/Cascader/component.json +196 -0
  146. package/es/Cascader/hooks/useEntities.js +7 -7
  147. package/es/Cascader/interface.d.ts +1 -0
  148. package/es/Cascader/utils/commonUtil.d.ts +1 -1
  149. package/es/Cascader/utils/commonUtil.js +16 -16
  150. package/es/Cascader/utils/treeUtil.d.ts +14 -5
  151. package/es/Cascader/utils/treeUtil.js +1 -1
  152. package/es/Checkbox/component.json +138 -0
  153. package/es/CheckboxGroup/component.json +152 -0
  154. package/es/CheckboxGroup/index.js +1 -1
  155. package/es/CodeEditor/component.json +189 -0
  156. package/es/CodeEditor/index.d.ts +11 -10
  157. package/es/CodeEditor/index.js +25 -25
  158. package/es/Collapse/component.json +166 -0
  159. package/es/Collapse/index.d.ts +1 -1
  160. package/es/Collapse/index.js +23 -22
  161. package/es/CollapseBox/component.json +84 -0
  162. package/es/CollapseLayout/component.json +155 -0
  163. package/es/ColorPicker/component.json +142 -0
  164. package/es/ComboSelect/component.json +181 -0
  165. package/es/ComboSelect/index.js +115 -109
  166. package/es/ComboSelect/interface.d.ts +2 -2
  167. package/es/ComboSelect/utils.d.ts +3 -3
  168. package/es/ComboSelect/utils.js +1 -1
  169. package/es/Container/component.json +111 -0
  170. package/es/ContentBox/component.json +81 -0
  171. package/es/CopyText/component.json +118 -0
  172. package/es/CycleSelector/component.json +98 -0
  173. package/es/CycleSelector/index.js +14 -13
  174. package/es/DatePicker/component.json +192 -0
  175. package/es/DatePicker/generatePicker/generateRangePicker.js +11 -11
  176. package/es/DatePicker/generatePicker/generateSinglePicker.js +2 -2
  177. package/es/Descriptions/component.json +142 -0
  178. package/es/Descriptions/index.d.ts +1 -1
  179. package/es/Desktop/component.json +171 -0
  180. package/es/Desktop/index.js +1 -1
  181. package/es/DragVerify/component.json +114 -0
  182. package/es/DragVerify/index.js +19 -19
  183. package/es/Drawer/component.json +200 -0
  184. package/es/Drawer/index.js +86 -86
  185. package/es/Drawer/interface.d.ts +1 -1
  186. package/es/Drawer/util.d.ts +1 -6
  187. package/es/Drawer/util.js +9 -6
  188. package/es/Dropdown/component.json +147 -0
  189. package/es/Dropdown/index.js +1 -1
  190. package/es/DynamicMultiBox/component.json +278 -0
  191. package/es/DynamicMultiBox/formItem.d.ts +1 -1
  192. package/es/DynamicMultiBox/index.js +1 -1
  193. package/es/DynamicMultiBox/rowForm.d.ts +2 -2
  194. package/es/Empty/component.json +123 -0
  195. package/es/Empty/index.css +1 -1
  196. package/es/Empty/index.d.ts +2 -2
  197. package/es/Empty/index.js +27 -26
  198. package/es/Empty/style/index.css +1 -1
  199. package/es/ExpressionInput/HighlightOverlay.d.ts +8 -0
  200. package/es/ExpressionInput/HighlightOverlay.js +27 -0
  201. package/es/ExpressionInput/Popup.d.ts +19 -0
  202. package/es/ExpressionInput/Popup.js +93 -0
  203. package/es/ExpressionInput/component.json +79 -0
  204. package/es/ExpressionInput/detectChainAtCursor.d.ts +17 -0
  205. package/es/ExpressionInput/detectChainAtCursor.js +31 -0
  206. package/es/ExpressionInput/filterCandidatesByPartial.d.ts +2 -0
  207. package/es/ExpressionInput/filterCandidatesByPartial.js +15 -0
  208. package/es/ExpressionInput/highlightSegments.d.ts +9 -0
  209. package/es/ExpressionInput/highlightSegments.js +14 -0
  210. package/es/ExpressionInput/index.css +1 -0
  211. package/es/ExpressionInput/index.d.ts +5 -0
  212. package/es/ExpressionInput/index.js +178 -0
  213. package/es/ExpressionInput/interface.d.ts +52 -0
  214. package/es/ExpressionInput/isExpressionValue.d.ts +5 -0
  215. package/es/ExpressionInput/isExpressionValue.js +18 -0
  216. package/es/ExpressionInput/lang/en_US.d.ts +4 -0
  217. package/es/ExpressionInput/lang/en_US.js +7 -0
  218. package/es/ExpressionInput/lang/index.d.ts +9 -0
  219. package/es/ExpressionInput/lang/index.js +10 -0
  220. package/es/ExpressionInput/lang/zh_CN.d.ts +4 -0
  221. package/es/ExpressionInput/lang/zh_CN.js +7 -0
  222. package/es/ExpressionInput/style/css.js +1 -0
  223. package/es/ExpressionInput/style/index.css +1 -0
  224. package/es/ExpressionInput/style/index.js +1 -0
  225. package/es/ExpressionInput/useExpressionInput.d.ts +26 -0
  226. package/es/ExpressionInput/useExpressionInput.js +59 -0
  227. package/es/FieldForm/FieldFormItem/ItemHolder.js +1 -1
  228. package/es/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  229. package/es/FieldForm/FieldFormItem/StatusProvider.js +1 -1
  230. package/es/FieldForm/FieldFormItem/index.d.ts +6 -6
  231. package/es/FieldForm/Form.d.ts +2 -2
  232. package/es/FieldForm/Form.js +1 -1
  233. package/es/FieldForm/FormItemInput.js +1 -1
  234. package/es/FieldForm/FormItemLabel.js +1 -1
  235. package/es/FieldForm/FormList.d.ts +2 -2
  236. package/es/FieldForm/component.json +196 -0
  237. package/es/FieldForm/context.d.ts +5 -1
  238. package/es/FieldForm/context.js +2 -2
  239. package/es/FieldForm/hooks/useForm.d.ts +4 -3
  240. package/es/FieldForm/hooks/useFormInstance.d.ts +1 -1
  241. package/es/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  242. package/es/FieldForm/hooks/useFormItemStatus.js +2 -2
  243. package/es/FieldForm/hooks/useItemRef.d.ts +1 -1
  244. package/es/FieldForm/hooks/useItemRef.js +6 -6
  245. package/es/Form/component.json +161 -0
  246. package/es/Form/index.d.ts +52 -49
  247. package/es/Form/index.js +1 -1
  248. package/es/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  249. package/es/FormItem/compoments/defaultCompoments/index.js +12 -11
  250. package/es/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  251. package/es/FormItem/compoments/formFile/index.js +8 -8
  252. package/es/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  253. package/es/FormItem/compoments/formSelect/index.d.ts +1 -1
  254. package/es/FormItem/component.json +171 -0
  255. package/es/FormItem/index.d.ts +5 -5
  256. package/es/FormItem/index.js +23 -23
  257. package/es/FormItem/itemType.js +1 -1
  258. package/es/FunctionModal/component.json +197 -0
  259. package/es/FunctionModal/dialog.d.ts +1 -1
  260. package/es/FunctionModal/modalContext.d.ts +4 -1
  261. package/es/GlobalContext/confirmLocale.js +1 -1
  262. package/es/GlobalContext/index.js +1 -1
  263. package/es/Help/component.json +118 -0
  264. package/es/HelperText/component.json +126 -0
  265. package/es/Image/PreviewGroup.js +1 -1
  266. package/es/Image/component.json +165 -0
  267. package/es/Image/index.js +1 -1
  268. package/es/InputCode/component.json +191 -0
  269. package/es/InputCode/index.d.ts +2 -2
  270. package/es/InputCode/index.js +1 -1
  271. package/es/InputLang/component.json +205 -0
  272. package/es/InputLang/index.js +2 -2
  273. package/es/InputNumber/component.json +162 -0
  274. package/es/InputNumber/index.d.ts +13 -7
  275. package/es/InputNumber/index.js +152 -144
  276. package/es/Label/component.json +126 -0
  277. package/es/Label/index.d.ts +2 -2
  278. package/es/Loading/component.json +91 -0
  279. package/es/Menu/component.json +180 -0
  280. package/es/Menu/verticalMenuList.js +1 -1
  281. package/es/Message/component.json +246 -0
  282. package/es/Message/index.d.ts +2 -2
  283. package/es/Message/index.js +19 -19
  284. package/es/Modal/Confirm/index.d.ts +1 -1
  285. package/es/Modal/Confirm/index.js +1 -1
  286. package/es/Modal/component.json +277 -0
  287. package/es/Modal/index.d.ts +85 -5
  288. package/es/Modal/index.js +159 -122
  289. package/es/Modal/interface.d.ts +1 -0
  290. package/es/MultiBox/component.json +216 -0
  291. package/es/MultiBox/index.js +19 -14
  292. package/es/Notification/component.json +184 -0
  293. package/es/OperateBtn/component.json +134 -0
  294. package/es/OperateBtn/index.d.ts +3 -3
  295. package/es/PageHeader/component.json +112 -0
  296. package/es/PageHeader/horizontalMeun.js +1 -1
  297. package/es/PageHeader/horizontalMeunRight.js +1 -1
  298. package/es/Pagination/component.json +181 -0
  299. package/es/Pagination/index.js +15 -15
  300. package/es/ParauiProvider/index.js +1 -1
  301. package/es/PasswordRules/component.json +105 -0
  302. package/es/PasswordRules/index.d.ts +4 -4
  303. package/es/PopConfirm/component.json +227 -0
  304. package/es/PopConfirm/index.d.ts +1 -1
  305. package/es/PopConfirm/index.js +1 -1
  306. package/es/PopMenu/component.json +131 -0
  307. package/es/PopMenu/hooks.d.ts +1 -1
  308. package/es/PopMenu/index.js +8 -8
  309. package/es/Popover/component.json +165 -0
  310. package/es/Popover/index.js +1 -1
  311. package/es/Progress/component.json +161 -0
  312. package/es/Prompt/component.json +144 -0
  313. package/es/Querying/component.json +96 -0
  314. package/es/Querying/index.css +1 -1
  315. package/es/Querying/index.d.ts +2 -2
  316. package/es/Querying/index.js +20 -19
  317. package/es/Querying/style/index.css +1 -1
  318. package/es/QuickReply/QuickReplyCode/index.js +1 -1
  319. package/es/QuickReply/component.json +129 -0
  320. package/es/QuickReply/index.d.ts +1 -1
  321. package/es/Radio/component.json +136 -0
  322. package/es/RadioGroup/component.json +149 -0
  323. package/es/RangeInput/component.json +198 -0
  324. package/es/RangeInput/index.d.ts +15 -7
  325. package/es/RangeInput/index.js +120 -103
  326. package/es/Result/component.json +104 -0
  327. package/es/ScrollBar/component.json +115 -0
  328. package/es/Search/component.json +177 -0
  329. package/es/Search/index.d.ts +1 -1
  330. package/es/Select/component.json +244 -0
  331. package/es/Select/index.d.ts +11 -8
  332. package/es/Select/index.js +441 -438
  333. package/es/SelectInput/component.json +184 -0
  334. package/es/SelectInput/index.d.ts +4 -4
  335. package/es/SelectInput/index.js +8 -8
  336. package/es/Selector/component.json +203 -0
  337. package/es/Selector/index.js +56 -50
  338. package/es/Selector/interface.d.ts +2 -2
  339. package/es/Selector/selectorData/index.js +1 -1
  340. package/es/Selector/selectorMain/index.js +3 -3
  341. package/es/Selector/selectorNode/index.js +1 -1
  342. package/es/Selector/util.d.ts +3 -3
  343. package/es/Selector/util.js +6 -12
  344. package/es/SelectorPicker/component.json +179 -0
  345. package/es/SelectorPicker/index.d.ts +5 -5
  346. package/es/SelectorPicker/index.js +15 -15
  347. package/es/SingleBox/component.json +151 -0
  348. package/es/SingleBox/index.d.ts +2 -2
  349. package/es/Slider/component.json +181 -0
  350. package/es/SortBox/component.json +108 -0
  351. package/es/Status/component.json +104 -0
  352. package/es/Stepper/component.json +129 -0
  353. package/es/Stepper/index.d.ts +2 -2
  354. package/es/Switch/component.json +207 -0
  355. package/es/Switch/index.css +1 -1
  356. package/es/Switch/index.d.ts +3 -2
  357. package/es/Switch/index.js +60 -59
  358. package/es/Switch/style/index.css +1 -1
  359. package/es/Table/component.json +547 -0
  360. package/es/Table/index.d.ts +2 -2
  361. package/es/Table/index.js +385 -382
  362. package/es/Table/interface.d.ts +30 -0
  363. package/es/Table/tableHead.js +1 -1
  364. package/es/Table/util.d.ts +1 -1
  365. package/es/Table/util.js +3 -12
  366. package/es/Tabs/component.json +227 -0
  367. package/es/Tag/component.json +221 -0
  368. package/es/Tag/index.css +1 -1
  369. package/es/Tag/index.d.ts +1 -1
  370. package/es/Tag/index.js +20 -20
  371. package/es/Tag/style/index.css +1 -1
  372. package/es/TextEditor/component.json +186 -0
  373. package/es/TextEditor/index.d.ts +5 -5
  374. package/es/TextEditor/index.js +1 -1
  375. package/es/TextField/component.json +290 -0
  376. package/es/TextField/index.d.ts +2 -2
  377. package/es/TextField/index.js +1 -1
  378. package/es/TimePicker/component.json +176 -0
  379. package/es/Timeline/component.json +110 -0
  380. package/es/Title/component.json +156 -0
  381. package/es/ToggleButton/component.json +153 -0
  382. package/es/ToggleButton/index.js +1 -1
  383. package/es/Tooltip/component.json +176 -0
  384. package/es/Tooltip/index.js +58 -53
  385. package/es/Tooltip/interface.d.ts +14 -1
  386. package/es/Tooltip/utils.js +6 -6
  387. package/es/Transfer/component.json +157 -0
  388. package/es/Tree/OperateBar/index.js +1 -1
  389. package/es/Tree/Tree.js +3 -3
  390. package/es/Tree/component.json +512 -0
  391. package/es/Tree/interface.d.ts +1 -1
  392. package/es/Upload/component.json +450 -0
  393. package/es/Upload/util.js +1 -1
  394. package/es/Utils/snack-kit-shims.d.ts +18 -0
  395. package/es/Utils/snack-kit-shims.js +19 -0
  396. package/es/Utils/type.d.ts +0 -6
  397. package/es/_virtual/index.js +5 -3
  398. package/es/_virtual/index2.js +2 -5
  399. package/es/index.d.ts +4 -0
  400. package/es/index.js +152 -150
  401. package/es/locale/en-US.d.ts +3 -0
  402. package/es/locale/en-US.js +3 -0
  403. package/es/locale/en_US.d.ts +361 -0
  404. package/es/locale/en_US.js +364 -0
  405. package/es/locale/index.d.ts +1 -723
  406. package/es/locale/index2.js +10 -0
  407. package/es/locale/zh-CN.d.ts +3 -0
  408. package/es/locale/zh-CN.js +3 -0
  409. package/es/locale/zh_CN.d.ts +361 -0
  410. package/es/locale/zh_CN.js +364 -0
  411. package/es/node_modules/classnames/index.js +1 -1
  412. package/lib/AlignBox/component.json +89 -0
  413. package/lib/AlignBox/index.css +1 -1
  414. package/lib/AlignBox/index.d.ts +6 -2
  415. package/lib/AlignBox/index.js +1 -1
  416. package/lib/AlignBox/style/index.css +1 -1
  417. package/lib/Anchor/anchorMenu/index.d.ts +2 -1
  418. package/lib/Anchor/anchorMenu/index.js +1 -1
  419. package/lib/Anchor/component.json +130 -0
  420. package/lib/Anchor/index.js +1 -1
  421. package/lib/Anchor/type.d.ts +8 -4
  422. package/lib/Argv/component.json +216 -0
  423. package/lib/Argv/dataGenerator/index.js +1 -1
  424. package/lib/Argv/index.d.ts +5 -6
  425. package/lib/Argv/index.js +1 -1
  426. package/lib/AutoBox/component.json +133 -0
  427. package/lib/AutoBox/index.d.ts +3 -3
  428. package/lib/AutoBox/index.js +1 -1
  429. package/lib/AutoBox/protal.d.ts +2 -2
  430. package/lib/AutoBox/protal.js +1 -1
  431. package/lib/AutoButton/component.json +109 -0
  432. package/lib/AutoButton/index.js +1 -1
  433. package/lib/AutoTips/autoTipsMultiline/index.d.ts +1 -1
  434. package/lib/AutoTips/autoTipsMultiline/index.js +1 -1
  435. package/lib/AutoTips/component.json +121 -0
  436. package/lib/AutoTips/index.js +1 -1
  437. package/lib/Badge/component.json +92 -0
  438. package/lib/Breadcrumbs/component.json +142 -0
  439. package/lib/Breadcrumbs/index.js +1 -1
  440. package/lib/Button/SplitButton.d.ts +2 -2
  441. package/lib/Button/component.json +168 -0
  442. package/lib/Button/index.js +1 -1
  443. package/lib/ButtonGroup/component.json +132 -0
  444. package/lib/ButtonGroup/index.d.ts +1 -1
  445. package/lib/Card/component.json +162 -0
  446. package/lib/Card/index.d.ts +2 -2
  447. package/lib/Card/index.js +1 -1
  448. package/lib/Carousel/component.json +142 -0
  449. package/lib/Carousel/index.d.ts +1 -1
  450. package/lib/Cascader/Cascader.js +1 -1
  451. package/lib/Cascader/OptionList/Column.js +1 -1
  452. package/lib/Cascader/OptionList/index.js +1 -1
  453. package/lib/Cascader/component.json +196 -0
  454. package/lib/Cascader/hooks/useEntities.js +1 -1
  455. package/lib/Cascader/interface.d.ts +1 -0
  456. package/lib/Cascader/utils/commonUtil.d.ts +1 -1
  457. package/lib/Cascader/utils/commonUtil.js +1 -1
  458. package/lib/Cascader/utils/treeUtil.d.ts +14 -5
  459. package/lib/Cascader/utils/treeUtil.js +1 -1
  460. package/lib/Checkbox/component.json +138 -0
  461. package/lib/CheckboxGroup/component.json +152 -0
  462. package/lib/CheckboxGroup/index.js +1 -1
  463. package/lib/CodeEditor/component.json +189 -0
  464. package/lib/CodeEditor/index.d.ts +11 -10
  465. package/lib/CodeEditor/index.js +1 -1
  466. package/lib/Collapse/component.json +166 -0
  467. package/lib/Collapse/index.d.ts +1 -1
  468. package/lib/Collapse/index.js +1 -1
  469. package/lib/CollapseBox/component.json +84 -0
  470. package/lib/CollapseLayout/component.json +155 -0
  471. package/lib/ColorPicker/component.json +142 -0
  472. package/lib/ComboSelect/component.json +181 -0
  473. package/lib/ComboSelect/index.js +1 -1
  474. package/lib/ComboSelect/interface.d.ts +2 -2
  475. package/lib/ComboSelect/utils.d.ts +3 -3
  476. package/lib/ComboSelect/utils.js +1 -1
  477. package/lib/Container/component.json +111 -0
  478. package/lib/ContentBox/component.json +81 -0
  479. package/lib/CopyText/component.json +118 -0
  480. package/lib/CycleSelector/component.json +98 -0
  481. package/lib/CycleSelector/index.js +1 -1
  482. package/lib/DatePicker/component.json +192 -0
  483. package/lib/DatePicker/generatePicker/generateRangePicker.js +1 -1
  484. package/lib/DatePicker/generatePicker/generateSinglePicker.js +1 -1
  485. package/lib/Descriptions/component.json +142 -0
  486. package/lib/Descriptions/index.d.ts +1 -1
  487. package/lib/Desktop/component.json +171 -0
  488. package/lib/Desktop/index.js +1 -1
  489. package/lib/DragVerify/component.json +114 -0
  490. package/lib/DragVerify/index.js +1 -1
  491. package/lib/Drawer/component.json +200 -0
  492. package/lib/Drawer/index.js +1 -1
  493. package/lib/Drawer/interface.d.ts +1 -1
  494. package/lib/Drawer/util.d.ts +1 -6
  495. package/lib/Drawer/util.js +1 -1
  496. package/lib/Dropdown/component.json +147 -0
  497. package/lib/Dropdown/index.js +1 -1
  498. package/lib/DynamicMultiBox/component.json +278 -0
  499. package/lib/DynamicMultiBox/formItem.d.ts +1 -1
  500. package/lib/DynamicMultiBox/index.js +1 -1
  501. package/lib/DynamicMultiBox/rowForm.d.ts +2 -2
  502. package/lib/Empty/component.json +123 -0
  503. package/lib/Empty/index.css +1 -1
  504. package/lib/Empty/index.d.ts +2 -2
  505. package/lib/Empty/index.js +1 -1
  506. package/lib/Empty/style/index.css +1 -1
  507. package/lib/ExpressionInput/HighlightOverlay.d.ts +8 -0
  508. package/lib/ExpressionInput/HighlightOverlay.js +2 -0
  509. package/lib/ExpressionInput/Popup.d.ts +19 -0
  510. package/lib/ExpressionInput/Popup.js +2 -0
  511. package/lib/ExpressionInput/component.json +79 -0
  512. package/lib/ExpressionInput/detectChainAtCursor.d.ts +17 -0
  513. package/lib/ExpressionInput/detectChainAtCursor.js +2 -0
  514. package/lib/ExpressionInput/filterCandidatesByPartial.d.ts +2 -0
  515. package/lib/ExpressionInput/filterCandidatesByPartial.js +2 -0
  516. package/lib/ExpressionInput/highlightSegments.d.ts +9 -0
  517. package/lib/ExpressionInput/highlightSegments.js +2 -0
  518. package/lib/ExpressionInput/index.css +1 -0
  519. package/lib/ExpressionInput/index.d.ts +5 -0
  520. package/lib/ExpressionInput/index.js +2 -0
  521. package/lib/ExpressionInput/interface.d.ts +52 -0
  522. package/lib/ExpressionInput/isExpressionValue.d.ts +5 -0
  523. package/lib/ExpressionInput/isExpressionValue.js +2 -0
  524. package/lib/ExpressionInput/lang/en_US.d.ts +4 -0
  525. package/lib/ExpressionInput/lang/en_US.js +2 -0
  526. package/lib/ExpressionInput/lang/index.d.ts +9 -0
  527. package/lib/ExpressionInput/lang/index.js +2 -0
  528. package/lib/ExpressionInput/lang/zh_CN.d.ts +4 -0
  529. package/lib/ExpressionInput/lang/zh_CN.js +2 -0
  530. package/lib/ExpressionInput/style/css.js +1 -0
  531. package/lib/ExpressionInput/style/index.css +1 -0
  532. package/lib/ExpressionInput/style/index.js +1 -0
  533. package/lib/ExpressionInput/useExpressionInput.d.ts +26 -0
  534. package/lib/ExpressionInput/useExpressionInput.js +2 -0
  535. package/lib/FieldForm/FieldFormItem/ItemHolder.js +1 -1
  536. package/lib/FieldForm/FieldFormItem/MemoInput.d.ts +2 -2
  537. package/lib/FieldForm/FieldFormItem/StatusProvider.js +1 -1
  538. package/lib/FieldForm/FieldFormItem/index.d.ts +6 -6
  539. package/lib/FieldForm/Form.d.ts +2 -2
  540. package/lib/FieldForm/Form.js +1 -1
  541. package/lib/FieldForm/FormItemInput.js +1 -1
  542. package/lib/FieldForm/FormItemLabel.js +1 -1
  543. package/lib/FieldForm/FormList.d.ts +2 -2
  544. package/lib/FieldForm/component.json +196 -0
  545. package/lib/FieldForm/context.d.ts +5 -1
  546. package/lib/FieldForm/context.js +1 -1
  547. package/lib/FieldForm/hooks/useForm.d.ts +4 -3
  548. package/lib/FieldForm/hooks/useFormInstance.d.ts +1 -1
  549. package/lib/FieldForm/hooks/useFormItemStatus.d.ts +9 -5
  550. package/lib/FieldForm/hooks/useFormItemStatus.js +1 -1
  551. package/lib/FieldForm/hooks/useItemRef.d.ts +1 -1
  552. package/lib/FieldForm/hooks/useItemRef.js +1 -1
  553. package/lib/Form/component.json +161 -0
  554. package/lib/Form/index.d.ts +52 -49
  555. package/lib/Form/index.js +1 -1
  556. package/lib/FormItem/compoments/defaultCompoments/index.d.ts +5 -5
  557. package/lib/FormItem/compoments/defaultCompoments/index.js +1 -1
  558. package/lib/FormItem/compoments/formCheckboxGroup/index.d.ts +2 -2
  559. package/lib/FormItem/compoments/formFile/index.js +1 -1
  560. package/lib/FormItem/compoments/formRadioGroup/index.d.ts +1 -1
  561. package/lib/FormItem/compoments/formSelect/index.d.ts +1 -1
  562. package/lib/FormItem/component.json +171 -0
  563. package/lib/FormItem/index.d.ts +5 -5
  564. package/lib/FormItem/index.js +1 -1
  565. package/lib/FormItem/itemType.js +1 -1
  566. package/lib/FunctionModal/component.json +197 -0
  567. package/lib/FunctionModal/dialog.d.ts +1 -1
  568. package/lib/FunctionModal/modalContext.d.ts +4 -1
  569. package/lib/GlobalContext/confirmLocale.js +1 -1
  570. package/lib/GlobalContext/index.js +1 -1
  571. package/lib/Help/component.json +118 -0
  572. package/lib/HelperText/component.json +126 -0
  573. package/lib/Image/PreviewGroup.js +1 -1
  574. package/lib/Image/component.json +165 -0
  575. package/lib/Image/index.js +1 -1
  576. package/lib/InputCode/component.json +191 -0
  577. package/lib/InputCode/index.d.ts +2 -2
  578. package/lib/InputLang/component.json +205 -0
  579. package/lib/InputLang/index.js +1 -1
  580. package/lib/InputNumber/component.json +162 -0
  581. package/lib/InputNumber/index.d.ts +13 -7
  582. package/lib/InputNumber/index.js +1 -1
  583. package/lib/Label/component.json +126 -0
  584. package/lib/Label/index.d.ts +2 -2
  585. package/lib/Loading/component.json +91 -0
  586. package/lib/Menu/component.json +180 -0
  587. package/lib/Menu/verticalMenuList.js +1 -1
  588. package/lib/Message/component.json +246 -0
  589. package/lib/Message/index.d.ts +2 -2
  590. package/lib/Message/index.js +1 -1
  591. package/lib/Modal/Confirm/index.d.ts +1 -1
  592. package/lib/Modal/Confirm/index.js +1 -1
  593. package/lib/Modal/component.json +277 -0
  594. package/lib/Modal/index.d.ts +85 -5
  595. package/lib/Modal/index.js +1 -1
  596. package/lib/Modal/interface.d.ts +1 -0
  597. package/lib/MultiBox/component.json +216 -0
  598. package/lib/MultiBox/index.js +1 -1
  599. package/lib/Notification/component.json +184 -0
  600. package/lib/OperateBtn/component.json +134 -0
  601. package/lib/OperateBtn/index.d.ts +3 -3
  602. package/lib/PageHeader/component.json +112 -0
  603. package/lib/PageHeader/horizontalMeun.js +1 -1
  604. package/lib/PageHeader/horizontalMeunRight.js +1 -1
  605. package/lib/Pagination/component.json +181 -0
  606. package/lib/Pagination/index.js +1 -1
  607. package/lib/ParauiProvider/index.js +1 -1
  608. package/lib/PasswordRules/component.json +105 -0
  609. package/lib/PasswordRules/index.d.ts +4 -4
  610. package/lib/PopConfirm/component.json +227 -0
  611. package/lib/PopConfirm/index.d.ts +1 -1
  612. package/lib/PopConfirm/index.js +1 -1
  613. package/lib/PopMenu/component.json +131 -0
  614. package/lib/PopMenu/hooks.d.ts +1 -1
  615. package/lib/PopMenu/index.js +1 -1
  616. package/lib/Popover/component.json +165 -0
  617. package/lib/Popover/index.js +1 -1
  618. package/lib/Progress/component.json +161 -0
  619. package/lib/Prompt/component.json +144 -0
  620. package/lib/Querying/component.json +96 -0
  621. package/lib/Querying/index.css +1 -1
  622. package/lib/Querying/index.d.ts +2 -2
  623. package/lib/Querying/index.js +1 -1
  624. package/lib/Querying/style/index.css +1 -1
  625. package/lib/QuickReply/QuickReplyCode/index.js +1 -1
  626. package/lib/QuickReply/component.json +129 -0
  627. package/lib/QuickReply/index.d.ts +1 -1
  628. package/lib/Radio/component.json +136 -0
  629. package/lib/RadioGroup/component.json +149 -0
  630. package/lib/RangeInput/component.json +198 -0
  631. package/lib/RangeInput/index.d.ts +15 -7
  632. package/lib/RangeInput/index.js +1 -1
  633. package/lib/Result/component.json +104 -0
  634. package/lib/ScrollBar/component.json +115 -0
  635. package/lib/Search/component.json +177 -0
  636. package/lib/Search/index.d.ts +1 -1
  637. package/lib/Select/component.json +244 -0
  638. package/lib/Select/index.d.ts +11 -8
  639. package/lib/Select/index.js +1 -1
  640. package/lib/SelectInput/component.json +184 -0
  641. package/lib/SelectInput/index.d.ts +4 -4
  642. package/lib/SelectInput/index.js +1 -1
  643. package/lib/Selector/component.json +203 -0
  644. package/lib/Selector/index.js +1 -1
  645. package/lib/Selector/interface.d.ts +2 -2
  646. package/lib/Selector/selectorData/index.js +1 -1
  647. package/lib/Selector/selectorMain/index.js +1 -1
  648. package/lib/Selector/selectorNode/index.js +1 -1
  649. package/lib/Selector/util.d.ts +3 -3
  650. package/lib/Selector/util.js +1 -1
  651. package/lib/SelectorPicker/component.json +179 -0
  652. package/lib/SelectorPicker/index.d.ts +5 -5
  653. package/lib/SelectorPicker/index.js +1 -1
  654. package/lib/SingleBox/component.json +151 -0
  655. package/lib/SingleBox/index.d.ts +2 -2
  656. package/lib/Slider/component.json +181 -0
  657. package/lib/SortBox/component.json +108 -0
  658. package/lib/Status/component.json +104 -0
  659. package/lib/Stepper/component.json +129 -0
  660. package/lib/Stepper/index.d.ts +2 -2
  661. package/lib/Switch/component.json +207 -0
  662. package/lib/Switch/index.css +1 -1
  663. package/lib/Switch/index.d.ts +3 -2
  664. package/lib/Switch/index.js +1 -1
  665. package/lib/Switch/style/index.css +1 -1
  666. package/lib/Table/component.json +547 -0
  667. package/lib/Table/index.d.ts +2 -2
  668. package/lib/Table/index.js +1 -1
  669. package/lib/Table/interface.d.ts +30 -0
  670. package/lib/Table/tableHead.js +1 -1
  671. package/lib/Table/util.d.ts +1 -1
  672. package/lib/Table/util.js +1 -1
  673. package/lib/Tabs/component.json +227 -0
  674. package/lib/Tag/component.json +221 -0
  675. package/lib/Tag/index.css +1 -1
  676. package/lib/Tag/index.d.ts +1 -1
  677. package/lib/Tag/index.js +1 -1
  678. package/lib/Tag/style/index.css +1 -1
  679. package/lib/TextEditor/component.json +186 -0
  680. package/lib/TextEditor/index.d.ts +5 -5
  681. package/lib/TextEditor/index.js +1 -1
  682. package/lib/TextField/component.json +290 -0
  683. package/lib/TextField/index.d.ts +2 -2
  684. package/lib/TextField/index.js +1 -1
  685. package/lib/TimePicker/component.json +176 -0
  686. package/lib/Timeline/component.json +110 -0
  687. package/lib/Title/component.json +156 -0
  688. package/lib/ToggleButton/component.json +153 -0
  689. package/lib/ToggleButton/index.js +1 -1
  690. package/lib/Tooltip/component.json +176 -0
  691. package/lib/Tooltip/index.js +1 -1
  692. package/lib/Tooltip/interface.d.ts +14 -1
  693. package/lib/Tooltip/utils.js +1 -1
  694. package/lib/Transfer/component.json +157 -0
  695. package/lib/Tree/OperateBar/index.js +2 -2
  696. package/lib/Tree/Tree.js +1 -1
  697. package/lib/Tree/component.json +512 -0
  698. package/lib/Tree/interface.d.ts +1 -1
  699. package/lib/Upload/component.json +450 -0
  700. package/lib/Upload/util.js +1 -1
  701. package/lib/Utils/snack-kit-shims.d.ts +18 -0
  702. package/lib/Utils/snack-kit-shims.js +2 -0
  703. package/lib/Utils/type.d.ts +0 -6
  704. package/lib/_virtual/index.js +1 -1
  705. package/lib/_virtual/index2.js +1 -1
  706. package/lib/index.d.ts +4 -0
  707. package/lib/index.js +1 -1
  708. package/lib/locale/en-US.d.ts +3 -0
  709. package/lib/locale/en-US.js +1 -1
  710. package/lib/locale/en_US.d.ts +361 -0
  711. package/lib/locale/en_US.js +2 -0
  712. package/lib/locale/index.d.ts +1 -723
  713. package/lib/locale/index2.js +2 -0
  714. package/lib/locale/zh-CN.d.ts +3 -0
  715. package/lib/locale/zh-CN.js +1 -1
  716. package/lib/locale/zh_CN.d.ts +361 -0
  717. package/lib/locale/zh_CN.js +2 -0
  718. package/lib/node_modules/classnames/index.js +1 -1
  719. package/package.json +24 -4
  720. package/es/_virtual/index3.js +0 -5
  721. package/es/_virtual/index4.js +0 -5
  722. package/es/node_modules/@para-snack/core/dist/index.js +0 -5231
  723. package/lib/_virtual/index3.js +0 -2
  724. package/lib/_virtual/index4.js +0 -2
  725. package/lib/node_modules/@para-snack/core/dist/index.js +0 -20
  726. /package/es/{InputCode → CodeEditor}/index.css +0 -0
  727. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  728. /package/es/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
  729. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.d.ts +0 -0
  730. /package/lib/{Utils/Hooks → Hooks}/useResizeObserver.js +0 -0
@@ -0,0 +1,138 @@
1
+ {
2
+ "name": "Checkbox",
3
+ "category": "Data Entry",
4
+ "description": "多选框,用于在多个选项中选择一个或多个",
5
+ "semantic": {
6
+ "intent": [
7
+ "多项选择",
8
+ "状态切换",
9
+ "同意协议"
10
+ ],
11
+ "useCases": [
12
+ "过滤器",
13
+ "权限配置",
14
+ "表单录入"
15
+ ],
16
+ "riskLevel": "low"
17
+ },
18
+ "variants": {
19
+ "default": {
20
+ "meaning": "独立多选框"
21
+ },
22
+ "group": {
23
+ "meaning": "多选框组"
24
+ }
25
+ },
26
+ "states": [
27
+ "checked",
28
+ "unchecked",
29
+ "indeterminate",
30
+ "disabled"
31
+ ],
32
+ "idealProps": {
33
+ "checked": {
34
+ "type": "boolean",
35
+ "description": "是否选中"
36
+ },
37
+ "defaultChecked": {
38
+ "type": "boolean",
39
+ "default": false,
40
+ "description": "初始是否选中"
41
+ },
42
+ "disabled": {
43
+ "type": "boolean",
44
+ "default": false,
45
+ "description": "是否禁用"
46
+ },
47
+ "onChange": {
48
+ "type": "function",
49
+ "signature": "(e: React.MouseEvent<HTMLLabelElement>, checked: boolean) => void",
50
+ "description": "变化时回调(src/Checkbox/index.tsx:40 interface 实证:签名为 MouseEvent on HTMLLabelElement;indeterminate=true 时 checked 参数永远为 true;正常场景 checked 为切换后的新状态)"
51
+ },
52
+ "indeterminate": {
53
+ "type": "boolean",
54
+ "default": false,
55
+ "description": "不确定状态(src/Checkbox/index.tsx:36,51,90 实证:仅控制样式——追加 paraui-v4-checkbox-indeterminate 类,并使 onChange 固定传 checked=true;不影响内部 checked state 的实际计算)"
56
+ },
57
+ "label": {
58
+ "type": "ReactNode",
59
+ "description": "显示的文本(src/Checkbox/index.tsx:20 实证:类型为 ReactNode,支持字符串/ReactNode;label 为 null/''/undefined 时不渲染 Label 组件,src:137-139 实证)"
60
+ },
61
+ "size": {
62
+ "type": "enum",
63
+ "values": ["small", "medium", "large"],
64
+ "default": "large",
65
+ "description": "多选框大小(src/Checkbox/index.tsx:24,48,88 实证:默认 'large',控制 CSS 类 paraui-v4-checkbox-{size})"
66
+ },
67
+ "width": {
68
+ "type": "string",
69
+ "description": "组件外层容器宽度(src/Checkbox/index.tsx:18,52,117 实证:写入根 label 的 style.width,与 style prop 合并)"
70
+ },
71
+ "labelTooltip": {
72
+ "type": "LabelTooltipProps",
73
+ "description": "label 旁的帮助图标 tooltip 配置(src/Checkbox/index.tsx:22,47,92-93 实证:tooltipType 字段会追加到根容器类名;className/helpClassName 字段控制额外样式;透传给内部 Label 组件)"
74
+ },
75
+ "disabledTooltip": {
76
+ "type": "TooltipProps",
77
+ "description": "禁用状态下的 Tooltip 配置(src/Checkbox/index.tsx:34-35,150-156 实证:存在 disabledTooltip 时将整个 Checkbox 包裹在 Tooltip 内,disabled 固定为 true,透传全部 TooltipProps)"
78
+ },
79
+ "inputProps": {
80
+ "type": "React.InputHTMLAttributes<HTMLInputElement>",
81
+ "description": "内层原生 checkbox input 的额外 props(src/Checkbox/index.tsx:38,133 实证:透传到 `<input type='checkbox' {...props.inputProps} />`)"
82
+ },
83
+ "className": {
84
+ "type": "string",
85
+ "description": "自定义类名(src/Checkbox/index.tsx:14,45 实证,追加到根 label 元素)"
86
+ },
87
+ "style": {
88
+ "type": "React.CSSProperties",
89
+ "description": "自定义样式(src/Checkbox/index.tsx:16,54,116 实证,与 width prop 合并后透传到根 label 元素)"
90
+ }
91
+ },
92
+ "do": [
93
+ "使用 Checkbox Group 处理一组相关的选项",
94
+ "明确 Label 的含义",
95
+ "受控用 checked + onChange,非受控用 defaultChecked;二者不要混用"
96
+ ],
97
+ "dont": [
98
+ "在单选场景中使用 Checkbox(应使用 Radio)",
99
+ "Checkbox 选项过多导致布局混乱"
100
+ ],
101
+ "events": {
102
+ "onChange": {
103
+ "signature": "(e: React.MouseEvent<HTMLLabelElement>, checked: boolean) => void",
104
+ "asyncSupported": false,
105
+ "examples": [
106
+ "基础受控:onChange={(e, checked) => setChecked(checked)}",
107
+ "indeterminate 模式下 checked 永远为 true:onChange={(e, checked) => { if (indeterminate) setIndeterminate(false); setChecked(checked); }}",
108
+ "非受控+监听:onChange={(e, checked) => analytics.track('checkbox', { checked })}"
109
+ ],
110
+ "commonMistakes": [
111
+ "期望 onChange 签名是 (e: React.ChangeEvent<HTMLInputElement>) => void(antd 风格)——Checkbox 实际签名第一参是 MouseEvent on HTMLLabelElement,不是 ChangeEvent",
112
+ "期望通过 e.target.checked 获取新状态——e.target 是 label 元素,checked 字段是第二参,不要从 e.target 取",
113
+ "indeterminate=true 时期望 checked 随用户操作在 true/false 切换——indeterminate 模式下 src 固定传 checked=true,需业务方在 onChange 里手动管理状态"
114
+ ]
115
+ }
116
+ },
117
+ "typescriptPitfalls": [
118
+ {
119
+ "issue": "onChange 第一参是 MouseEvent on HTMLLabelElement,不是 ChangeEvent on HTMLInputElement",
120
+ "wrong": "// antd 风格,期望 ChangeEvent\nonChange={(e: React.ChangeEvent<HTMLInputElement>) => setChecked(e.target.checked)} // 类型不匹配",
121
+ "right": "// para-ui Checkbox onChange 签名\nonChange={(e: React.MouseEvent<HTMLLabelElement>, checked: boolean) => setChecked(checked)}"
122
+ },
123
+ {
124
+ "issue": "defaultChecked 只在 mount 时读取一次(useEffect 依赖 []),后续引用变化不重新初始化",
125
+ "wrong": "// 期望 defaultChecked 动态更新\n<Checkbox defaultChecked={serverValue} /> // serverValue 异步返回后不会重新初始化",
126
+ "right": "// 需要动态初始化用受控 checked + 外部 state\n<Checkbox checked={checked} onChange={(e, v) => setChecked(v)} />"
127
+ },
128
+ {
129
+ "issue": "disabledTooltip 类型是 TooltipProps(整个 Tooltip 的 props 对象),不是简单字符串",
130
+ "wrong": "<Checkbox disabled disabledTooltip='权限不足' /> // 字符串不符合 TooltipProps",
131
+ "right": "<Checkbox disabled disabledTooltip={{ title: '权限不足', placement: 'top' }} />"
132
+ }
133
+ ],
134
+ "mapping": {
135
+ "realComponent": "Checkbox",
136
+ "adapter": null
137
+ }
138
+ }
@@ -0,0 +1,152 @@
1
+ {
2
+ "name": "CheckboxGroup",
3
+ "category": "Data Entry",
4
+ "description": "复选框组,管理一组 Checkbox,支持泛型约束选中值类型。**支持泛型**:`<CheckboxGroup<'apple' | 'banana'>>` 让 value / defaultValue / onChange 入参类型推断为业务字面量;默认 `T extends string | number = string | number`",
5
+ "semantic": {
6
+ "intent": [
7
+ "多选",
8
+ "批量选择",
9
+ "权限配置"
10
+ ],
11
+ "useCases": [
12
+ "权限选择",
13
+ "标签选择",
14
+ "多选过滤"
15
+ ],
16
+ "riskLevel": "low"
17
+ },
18
+ "variants": {
19
+ "default": {
20
+ "meaning": "默认横向布局"
21
+ },
22
+ "column": {
23
+ "meaning": "纵向布局(row=false)"
24
+ }
25
+ },
26
+ "states": [
27
+ "default",
28
+ "disabled",
29
+ "error"
30
+ ],
31
+ "idealProps": {
32
+ "list": {
33
+ "type": "CheckboxListProps[] | CheckboxListProps[][]",
34
+ "required": true,
35
+ "description": "选项数据;CheckboxListProps extends CheckboxProps,必须含 `name: string | number`(唯一标识,选中后 onChange 收到的 value 数组中的元素即为各项的 name)。支持二维数组实现分行布局(每个子数组为一行)"
36
+ },
37
+ "value": {
38
+ "type": "T[]",
39
+ "description": "受控选中值数组;与 onChange 配合实现受控模式;不传时退化为非受控(由 defaultValue 初始化)"
40
+ },
41
+ "defaultValue": {
42
+ "type": "T[]",
43
+ "description": "非受控初始值(仅挂载时生效一次);src/CheckboxGroup/index.tsx:73-75 useEffect 实证:defaultValue 变化后不重新同步"
44
+ },
45
+ "onChange": {
46
+ "type": "(val: T[]) => void",
47
+ "description": "选中值变化回调;val 为当前全部选中项的 name 值数组;src/CheckboxGroup/index.tsx:98 实证,无 event 参数"
48
+ },
49
+ "id": {
50
+ "type": "string",
51
+ "default": "name",
52
+ "description": "**指定读取 list 子项哪个字段作为唯一标识**(src/CheckboxGroup/index.tsx:65 默认值实证);大多数情况无需修改,除非 list 每项用 id/key 等字段作为唯一标识"
53
+ },
54
+ "row": {
55
+ "type": "boolean",
56
+ "default": true,
57
+ "description": "布局方式;true=横向(checkbox 并排),false=纵向(每项独占一行)"
58
+ },
59
+ "disabled": {
60
+ "type": "boolean",
61
+ "default": false,
62
+ "description": "全局禁用(src/CheckboxGroup/index.tsx:175 实证:`disabled={Boolean(disabled || singleItem.disabled)}`);单项也可通过 CheckboxListProps.disabled 独立禁用"
63
+ },
64
+ "size": {
65
+ "type": "enum",
66
+ "values": ["small", "medium", "large"],
67
+ "default": "large",
68
+ "description": "尺寸;透传给内部每个 Checkbox"
69
+ },
70
+ "label": {
71
+ "type": "ReactNode",
72
+ "description": "组件标题(展示在 checkbox 列表上方)"
73
+ },
74
+ "required": {
75
+ "type": "boolean",
76
+ "description": "是否显示必填标记(在 label 旁展示星号)"
77
+ },
78
+ "error": {
79
+ "type": "boolean",
80
+ "description": "错误状态(来自 HelperTextDetailProps,配合 helperText 展示错误文案)"
81
+ },
82
+ "helperText": {
83
+ "type": "string",
84
+ "description": "辅助文本(error=true 时显示为红色错误文案)"
85
+ },
86
+ "spacing": {
87
+ "type": "string",
88
+ "default": "32px",
89
+ "description": "横向布局(row=true)时各 checkbox 间距"
90
+ },
91
+ "itemWidth": {
92
+ "type": "string",
93
+ "description": "每个 checkbox 的宽度"
94
+ },
95
+ "className": {
96
+ "type": "string",
97
+ "description": "根容器自定义类名"
98
+ },
99
+ "style": {
100
+ "type": "React.CSSProperties",
101
+ "description": "根容器自定义样式"
102
+ }
103
+ },
104
+ "do": [
105
+ "list 每项必须包含 `name` 字段(默认 id='name'),值将作为 onChange 返回数组中的元素;若用其他字段,需显式传 id 配置",
106
+ "受控模式:同时传 value + onChange,父组件维护 state;非受控模式:只传 defaultValue,不传 value",
107
+ "需要全选/反选功能:父组件维护 value state,全选时 onChange([all names]),反选时 onChange([])",
108
+ "禁用单项:在 list 子项里传 `disabled: true`;全局禁用:在 CheckboxGroup 顶层传 `disabled`"
109
+ ],
110
+ "dont": [
111
+ "list 子项漏写 name 字段——CheckboxGroup 内部靠 list[i][id] 取值,缺失 name 导致 onChange 返回 undefined 元素",
112
+ "选项超多(>20项)不分行——改用二维数组 list(每个子数组为一行)或搭配 Select 多选",
113
+ "混用受控(value)和非受控(defaultValue)——value 存在时 defaultValue 被忽略,只用一种模式"
114
+ ],
115
+ "events": {
116
+ "onChange": {
117
+ "signature": "(val: T[]) => void",
118
+ "asyncSupported": false,
119
+ "examples": [
120
+ "基本受控:const [selected, setSelected] = useState<string[]>([]); <CheckboxGroup value={selected} onChange={setSelected} />",
121
+ "onChange 回调返回当前全部选中项的 name 值数组,点击已选项则从数组中移除,点击未选项则追加",
122
+ "泛型约束:<CheckboxGroup<'read' | 'write'> value={perms} onChange={setPerms} /> 让 TS 精确推断 val 类型"
123
+ ],
124
+ "commonMistakes": [
125
+ "假设 onChange 签名类似原生 checkbox 的 (e: ChangeEvent) => void——实际是 (val: T[]) => void,无 event 参数",
126
+ "假设 onChange 返回单个被点击的项——实际是全部选中项的数组",
127
+ "传了 value 但不传 onChange,导致 CheckboxGroup 变成只读(受控模式下 value 被外部锁死)"
128
+ ]
129
+ }
130
+ },
131
+ "typescriptPitfalls": [
132
+ {
133
+ "issue": "list 子项缺少 name 字段时 TS 不报错但运行时 onChange 返回 undefined",
134
+ "wrong": "list={[{ label: '苹果', value: 'apple' }]} // value 字段不是 id,name 字段缺失",
135
+ "right": "list={[{ label: '苹果', name: 'apple' }]} // 默认 id='name',用 name 字段作为唯一标识"
136
+ },
137
+ {
138
+ "issue": "泛型参数缺失时 value/defaultValue 推断为 (string|number)[] 失去精确类型",
139
+ "wrong": "// 没有泛型,无法约束 val 只能是 'read' | 'write'\n<CheckboxGroup value={perms} onChange={(val) => setPerms(val)} />",
140
+ "right": "<CheckboxGroup<'read' | 'write'> value={perms} onChange={(val) => setPerms(val)} /> // val 类型精确推断为 ('read' | 'write')[]"
141
+ },
142
+ {
143
+ "issue": "defaultValue 只在组件挂载时读取一次,后续修改不会触发重新同步",
144
+ "wrong": "// 期望通过修改 defaultValue 重置 checkboxGroup\n<CheckboxGroup defaultValue={initialValues} /> // 后续 initialValues 变化不会更新 UI",
145
+ "right": "// 需要外部重置时改用受控模式:value + onChange + 父组件 setState\n<CheckboxGroup value={selectedValues} onChange={setSelectedValues} />"
146
+ }
147
+ ],
148
+ "mapping": {
149
+ "realComponent": "CheckboxGroup",
150
+ "adapter": null
151
+ }
152
+ }
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const l=require("../_virtual/jsx-runtime.js"),n=require("react"),q=require("../Checkbox/index.js"),L=require("../Label/index.js"),V=require("../HelperText/index.js"),A=require("@paraview/lib"),a=require("../GlobalContext/constant.js");;/* empty css */function N(c){const{label:h="",labelTooltip:i,spacing:m="32px",itemWidth:p,size:u="large",row:g=!0,disabled:x=!1,required:k=!1,error:j=!1,hideErrorDom:R,helperText:_="",id:d="name",list:$,className:C="",onChange:v,style:O}=c,[f,b]=n.useState([]);n.useEffect(()=>{c.defaultValue!==void 0&&b(c.defaultValue)},[]),n.useEffect(()=>{c.value!==void 0&&b(c.value)},[c.value]);const y=e=>(r,t)=>{const s=e[d],o=A.DeepClone(f);if(t)o.push(s);else{const w=o.indexOf(s);o.splice(w,1)}c.value===void 0&&b(o),v&&v(o)},S=()=>{if(h||k){const e=()=>{let r="checkbox-group-label";return i&&i.className&&(r+=` ${i.className}`),r};return l.jsxRuntimeExports.jsx(L.default,{label:h,required:k,...i,className:e()})}},E=(e,r,t)=>{const s={display:"inline-block",...e.style};return m&&g&&t.length!==r+1&&(s.marginRight=m),p&&(s.width=p),s},T=()=>{let e=`${a.$prefixCls}-checkbox-group`;return C&&(e+=` ${C}`),u&&(e+=` ${a.$prefixCls}-checkbox-group-${u}`),j&&(e+=` ${a.$prefixCls}-checkbox-group-error`),x&&(e+=` ${a.$prefixCls}-checkbox-group-disabled`),g?e+=` ${a.$prefixCls}-checkbox-group-row`:e+=` ${a.$prefixCls}-checkbox-group-column`,e};return l.jsxRuntimeExports.jsxs("div",{className:T(),style:O,children:[S(),l.jsxRuntimeExports.jsx("div",{className:"checkbox-group-content",children:$.map((e,r)=>{if(Array.isArray(e))return l.jsxRuntimeExports.jsx("div",{className:"checkbox-group-content-item",children:e.map((s,o)=>l.jsxRuntimeExports.jsx("span",{className:"checkbox-item-box",style:E(s,o,e),children:n.createElement(q.Checkbox,{...s,style:{},checked:f.indexOf(s[d])!==-1,size:u,disabled:!!(x||s.disabled),key:r,onChange:y(s)})},o))},r);const t=e;return l.jsxRuntimeExports.jsx("span",{className:"checkbox-item-box",style:E(t,r,$),children:n.createElement(q.Checkbox,{...t,style:{},checked:f.indexOf(t[d])!==-1,size:u,disabled:!!(x||t.disabled),key:r,onChange:y(t)})},r)})}),l.jsxRuntimeExports.jsx(V.default,{className:"checkbox-group-error-text",error:j,helperText:_,hideErrorDom:R})]})}exports.CheckboxGroup=N;exports.default=N;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const c=require("../_virtual/jsx-runtime.js"),n=require("react"),N=require("../Checkbox/index.js"),L=require("../Label/index.js"),V=require("../HelperText/index.js"),A=require("@snack-kit/lib"),a=require("../GlobalContext/constant.js");;/* empty css */function R(l){const{label:h="",labelTooltip:i,spacing:m="32px",itemWidth:p,size:u="large",row:g=!0,disabled:x=!1,required:k=!1,error:j=!1,hideErrorDom:q,helperText:_="",id:d="name",list:C,className:$="",onChange:v,style:O}=l,[f,b]=n.useState([]);n.useEffect(()=>{l.defaultValue!==void 0&&b(l.defaultValue)},[]),n.useEffect(()=>{l.value!==void 0&&b(l.value)},[l.value]);const y=e=>(t,r)=>{const s=e[d],o=A.DeepClone(f);if(r)o.push(s);else{const w=o.indexOf(s);o.splice(w,1)}l.value===void 0&&b(o),v&&v(o)},S=()=>{if(h||k){const e=()=>{let t="checkbox-group-label";return i&&i.className&&(t+=` ${i.className}`),t};return c.jsxRuntimeExports.jsx(L.default,{label:h,required:k,...i,className:e()})}},E=(e,t,r)=>{const s={display:"inline-block",...e.style};return m&&g&&r.length!==t+1&&(s.marginRight=m),p&&(s.width=p),s},T=()=>{let e=`${a.$prefixCls}-checkbox-group`;return $&&(e+=` ${$}`),u&&(e+=` ${a.$prefixCls}-checkbox-group-${u}`),j&&(e+=` ${a.$prefixCls}-checkbox-group-error`),x&&(e+=` ${a.$prefixCls}-checkbox-group-disabled`),g?e+=` ${a.$prefixCls}-checkbox-group-row`:e+=` ${a.$prefixCls}-checkbox-group-column`,e};return c.jsxRuntimeExports.jsxs("div",{className:T(),style:O,children:[S(),c.jsxRuntimeExports.jsx("div",{className:"checkbox-group-content",children:C.map((e,t)=>{if(Array.isArray(e))return c.jsxRuntimeExports.jsx("div",{className:"checkbox-group-content-item",children:e.map((s,o)=>c.jsxRuntimeExports.jsx("span",{className:"checkbox-item-box",style:E(s,o,e),children:n.createElement(N.Checkbox,{...s,style:{},checked:f.indexOf(s[d])!==-1,size:u,disabled:!!(x||s.disabled),key:t,onChange:y(s)})},o))},t);const r=e;return c.jsxRuntimeExports.jsx("span",{className:"checkbox-item-box",style:E(r,t,C),children:n.createElement(N.Checkbox,{...r,style:{},checked:f.indexOf(r[d])!==-1,size:u,disabled:!!(x||r.disabled),key:t,onChange:y(r)})},t)})}),c.jsxRuntimeExports.jsx(V.default,{className:"checkbox-group-error-text",error:j,helperText:_,hideErrorDom:q})]})}exports.CheckboxGroup=R;exports.default=R;
2
2
  //# sourceMappingURL=index.js.map
@@ -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