@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,81 @@
1
+ {
2
+ "name": "ContentBox",
3
+ "category": "Layout",
4
+ "description": "内容容器,支持 Loading 和 Empty 状态",
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
+ "loading",
24
+ "empty",
25
+ "default"
26
+ ],
27
+ "idealProps": {
28
+ "loading": {
29
+ "type": "boolean",
30
+ "description": "是否正在加载"
31
+ },
32
+ "empty": {
33
+ "type": "boolean",
34
+ "description": "是否为空"
35
+ },
36
+ "scroll": {
37
+ "type": "boolean",
38
+ "description": "是否支持滚动"
39
+ },
40
+ "loadingOverlay": {
41
+ "type": "boolean",
42
+ "description": "loading 是否覆盖内容"
43
+ },
44
+ "children": {
45
+ "type": "ReactNode",
46
+ "description": "子组件"
47
+ }
48
+ },
49
+ "do": [
50
+ "统一处理异步数据的三种状态(loading/empty/正常内容)——避免在每个页面重复写 if-else 状态判断",
51
+ "loadingOverlay=true(默认)时 loading 覆盖在内容之上;loadingOverlay=false 时隐藏内容只显示 Loading——根据业务场景选择",
52
+ "需要自定义 Loading/Empty 样式:传 loadingComponent 或 emptyComponent 覆盖默认组件"
53
+ ],
54
+ "dont": [
55
+ "在简单静态内容中使用 ContentBox——无异步状态的场景无需 ContentBox,直接渲染内容性能更好",
56
+ "empty=true 时仍期望 children 渲染——empty 状态下 children 被 Empty 组件替换(src/ContentBox/index.tsx:78-86 实证)",
57
+ "loading 和 empty 同时为 true——src 优先处理 loading,empty 判断有 !loading 前置条件,两者同时为 true 时只显示 Loading"
58
+ ],
59
+ "events": {},
60
+ "typescriptPitfalls": [
61
+ {
62
+ "issue": "emptyProps 只对默认 Empty 组件生效,传了 emptyComponent 后 emptyProps 被忽略",
63
+ "wrong": "// emptyComponent 和 emptyProps 同时传,期望 emptyProps 能影响自定义 emptyComponent\n<ContentBox empty emptyComponent={<MyEmpty />} emptyProps={{ description: '暂无数据' }} />",
64
+ "right": "// 自定义组件时 emptyProps 无效,直接在 emptyComponent 内传 props\n<ContentBox empty emptyComponent={<MyEmpty description='暂无数据' />} />"
65
+ },
66
+ {
67
+ "issue": "loadingComponent 不接受 null/undefined,传 null 时 tsc 报类型错误",
68
+ "wrong": "loadingComponent={null} // ReactNode 可以是 null,但 ContentBox 内部 if(loadingComponent) 判断",
69
+ "right": "// 不传 loadingComponent 或传自定义 JSX 元素(不传时使用默认 Loading 组件)"
70
+ },
71
+ {
72
+ "issue": "ContentBox 使用 forwardRef,ref 类型是 HTMLDivElement",
73
+ "wrong": "const ref = useRef<HTMLElement>(null); <ContentBox ref={ref} /> // 类型不匹配",
74
+ "right": "const ref = useRef<HTMLDivElement>(null); <ContentBox ref={ref} />"
75
+ }
76
+ ],
77
+ "mapping": {
78
+ "realComponent": "ContentBox",
79
+ "adapter": null
80
+ }
81
+ }
@@ -0,0 +1,118 @@
1
+ {
2
+ "name": "CopyText",
3
+ "category": "Data Display",
4
+ "description": "复制文本,点击图标复制内容",
5
+ "semantic": {
6
+ "intent": [
7
+ "一键复制",
8
+ "信息展示"
9
+ ],
10
+ "useCases": [
11
+ "密钥展示",
12
+ "链接分享",
13
+ "代码片段"
14
+ ],
15
+ "riskLevel": "low"
16
+ },
17
+ "variants": {
18
+ "input": {
19
+ "meaning": "输入框模式"
20
+ },
21
+ "text": {
22
+ "meaning": "纯文本模式"
23
+ }
24
+ },
25
+ "states": [
26
+ "default",
27
+ "copied"
28
+ ],
29
+ "idealProps": {
30
+ "type": {
31
+ "type": "enum",
32
+ "values": [
33
+ "input",
34
+ "text"
35
+ ],
36
+ "default": "text",
37
+ "description": "类型('text' 纯文本展示 + 复制图标 / 'input' 输入框模式 + 复制图标 — 配合 textFieldProps 透传 TextField 配置)"
38
+ },
39
+ "value": {
40
+ "type": "ReactNode",
41
+ "description": "显示值;text 模式既是显示内容又是复制源(.toString() 兜底);input 模式必须 string(api.ts 类型 ReactNode 但 src:57 .toString() 兜底);**复制源优先级**:copyValue > valueCom(input 模式用户键入值) > value?.toString()"
42
+ },
43
+ "copyValue": {
44
+ "type": "string",
45
+ "description": "**显式指定写入剪贴板的内容,优先级最高**;适合'显示 ABC 但复制 ABC-with-prefix'或'显示掩码但复制真值'场景;不传则用 value/valueCom 兜底"
46
+ },
47
+ "textFieldProps": {
48
+ "type": "Omit<TextFieldProps, 'label'>",
49
+ "description": "**仅 type='input' 模式生效**;透传给内部 TextField — 可设 placeholder / readOnly / 自定义 onChange 等;text 模式下此 prop 被忽略"
50
+ },
51
+ "label": {
52
+ "type": "ReactNode",
53
+ "description": "组件标题(显示在 value 前)"
54
+ },
55
+ "copyIcon": {
56
+ "type": "ReactNode",
57
+ "description": "复制图标(默认 @para-ui/icons/Copy);复制成功后短暂切换为 CheckS,timeout 后切回"
58
+ },
59
+ "timeout": {
60
+ "type": "number",
61
+ "default": "800",
62
+ "description": "复制成功后图标切回原图的延时(ms);**仅控制状态指示视觉,不影响实际复制行为**(execCommand 已同步完成)"
63
+ },
64
+ "onCopy": {
65
+ "type": "function",
66
+ "description": "**复制前 hook**(点击时立即触发,await 后再 execCommand — src/CopyText/index.tsx:64-72);**不是复制成功回调**;**返回值语义**:返回 string 覆盖默认复制值,返回 undefined/void 用默认值;**组件已自动写剪贴板,不要在此调 navigator.clipboard.writeText**(会重复)"
67
+ }
68
+ },
69
+ "do": [
70
+ "在需要用户复制内容的场景使用——密钥/Token 展示、链接分享、代码片段等",
71
+ "提供复制成功反馈(copyIcon 切换为 CheckS,timeout 毫秒后切回)",
72
+ "显示内容与复制内容不同时(如掩码显示、真值复制):传 copyValue 指定真实复制内容",
73
+ "input 模式下用户可编辑内容并复制:type='input' + textFieldProps 配置输入框属性"
74
+ ],
75
+ "dont": [
76
+ "复制敏感信息(密码/私钥)时不做视觉遮罩——显示 value 但复制内容不同时用 copyValue 隔离",
77
+ "在 onCopy 内调 navigator.clipboard.writeText——组件已自动 execCommand 写剪贴板,会重复写入",
78
+ "把 onCopy 当作复制成功后的回调——onCopy 是复制前 hook(在 execCommand 前 await),若需成功后 toast 在 onCopy 返回前自行触发",
79
+ "text 模式下传 textFieldProps 期待 placeholder 生效——textFieldProps 仅 type='input' 模式有效"
80
+ ],
81
+ "events": {
82
+ "onCopy": {
83
+ "signature": "() => Promise<string | void> | string | void",
84
+ "asyncSupported": true,
85
+ "examples": [
86
+ "动态获取复制值:onCopy={async () => { const token = await fetchToken(); return token; }}(返回 string 覆盖默认复制值)",
87
+ "仅做副作用(不改变复制值):onCopy={() => { analytics.track('copy'); }}(返回 void 时用默认 value)",
88
+ "显示成功 toast:onCopy={async () => { const val = await getVal(); message.success('已复制'); return val; }}"
89
+ ],
90
+ "commonMistakes": [
91
+ "把 onCopy 当复制成功回调——onCopy 在 execCommand 之前触发(复制前 hook),不是复制成功后",
92
+ "在 onCopy 内调 navigator.clipboard.writeText——组件已自动写剪贴板(execCommand),调用后会重复写入",
93
+ "onCopy 返回 undefined 以为会阻止复制——返回 undefined 时组件用默认 value 复制,无法阻止复制行为"
94
+ ]
95
+ }
96
+ },
97
+ "typescriptPitfalls": [
98
+ {
99
+ "issue": "type='input' 时 value 必须是 string 类型(src 内部 .toString() 兜底但 TS 类型声明为 ReactNode)",
100
+ "wrong": "type='input' value={<span>复杂内容</span>} // input 模式内部 setValueCom(value?.toString()) 导致 [object Object]",
101
+ "right": "type='input' value='plain string' // input 模式只传 string"
102
+ },
103
+ {
104
+ "issue": "textFieldProps 类型是 Omit<TextFieldProps, 'label'>,label 已被剔除,不能在此传 label",
105
+ "wrong": "textFieldProps={{ label: '字段名', placeholder: '请输入' }} // TS 报错:label 已被 Omit 剔除",
106
+ "right": "// label 通过 CopyText.label prop 传,textFieldProps 只传 TextField 其他属性\n<CopyText label='字段名' textFieldProps={{ placeholder: '请输入' }} />"
107
+ },
108
+ {
109
+ "issue": "copyValue 优先级最高,传了 copyValue 后 value 仅用于显示,不参与复制",
110
+ "wrong": "// 期望 copyValue 只在某些情况覆盖,平时还用 value:\n<CopyText value={displayText} copyValue={undefined} /> // copyValue=undefined 时自动 fallback 到 value,OK",
111
+ "right": "// 需要按条件切换:\ncopyValue={shouldOverride ? realValue : undefined} // undefined 时组件用 value,string 时用 copyValue"
112
+ }
113
+ ],
114
+ "mapping": {
115
+ "realComponent": "CopyText",
116
+ "adapter": null
117
+ }
118
+ }
@@ -0,0 +1,98 @@
1
+ {
2
+ "name": "CycleSelector",
3
+ "category": "Data Entry",
4
+ "description": "周期选择器,用于选择周期性时间",
5
+ "semantic": {
6
+ "intent": [
7
+ "周期选择",
8
+ "定时任务"
9
+ ],
10
+ "useCases": [
11
+ "定时任务",
12
+ "数据备份",
13
+ "报表生成"
14
+ ],
15
+ "riskLevel": "normal"
16
+ },
17
+ "variants": {
18
+ "default": {
19
+ "meaning": "默认样式"
20
+ }
21
+ },
22
+ "states": [
23
+ "default",
24
+ "disabled",
25
+ "error"
26
+ ],
27
+ "idealProps": {
28
+ "value": {
29
+ "type": "CycleSelectorValueProps",
30
+ "description": "周期配置对象 · cron-like 调度(不是简单 cycle 切换器 · 不要传 string 如 'month')。**完整 9 字段**:`startTime`(开始时间 · string | number)· `cycleType`(周期类型 number · 0=不重复 / 1=每天 / 2=每周 / 3=每月 / 4=每年 / 5=自定义)· `frequency`(周期频率 number)· `frequencyUnit`(频率单位 string · 'day' / 'week' / 'month' / 'year')· `monthCycleType`(月维度 string · 'day' / 'week' · 仅 cycleType=3 时)· `executionDay`(执行周几列表 string · '0,1,2,3,4,5,6' 逗号分隔 · 0=周日)· `endType`(结束方式 number · 0=无限重复 / 1=截至时间 / 2=限定次数)· `limitNum`(限定次数 number · endType=2 时)· `endTime`(结束日期 string | number · endType=1 时)。**示例** 每周三五重复:`{ startTime: '2026-05-15 09:00', cycleType: 2, frequency: 1, frequencyUnit: 'week', executionDay: '3,5', endType: 0 }`。完整 interface 见 `dist/es/CycleSelector/index.d.ts`(发布产物)"
31
+ },
32
+ "onChange": {
33
+ "type": "function",
34
+ "signature": "(val: CycleSelectorValueProps) => void",
35
+ "description": "值变化回调 · 接收完整 CycleSelectorValueProps 对象"
36
+ },
37
+ "timeType": {
38
+ "type": "enum",
39
+ "values": [
40
+ "undefined",
41
+ "zone",
42
+ "stamp"
43
+ ],
44
+ "default": "undefined",
45
+ "description": "时间格式:undefined=YYYY-MM-DD HH:mm:ss · zone=YYYY-MM-DD[T]HH:mm:ss[Z] · stamp=时间戳"
46
+ },
47
+ "disabled": {
48
+ "type": "boolean",
49
+ "description": "是否禁用"
50
+ }
51
+ },
52
+ "do": [
53
+ "用于 Cron 表达式或周期性任务配置场景——startTime 是触发时间,cycleType 决定重复方式",
54
+ "提供直观的周期选择界面(日/周/月/年/自定义),onChange 返回完整 CycleSelectorValueProps 对象",
55
+ "通过 cRef.current.getTipText() 获取周期摘要文本(用于展示当前配置的自然语言描述)"
56
+ ],
57
+ "dont": [
58
+ "在简单日期选择中使用——单纯时间选择用 DatePicker,CycleSelector 专用于周期性重复场景",
59
+ "忽略时区处理——默认出参格式为 'YYYY-MM-DD HH:mm:ss';需要 ISO 时区格式传 timeType='zone',需要时间戳传 timeType='stamp'"
60
+ ],
61
+ "events": {
62
+ "onChange": {
63
+ "signature": "(val: CycleSelectorValueProps) => void",
64
+ "asyncSupported": false,
65
+ "examples": [
66
+ "基本用法:<CycleSelector value={cycleValue} onChange={(val) => setCycleValue(val)} />",
67
+ "onChange 返回完整 CycleSelectorValueProps 对象,字段按 cycleType 不同动态增减(非自定义时删除 frequency/frequencyUnit 等字段)",
68
+ "cycleType=0(不重复)时 val 只含 startTime + cycleType,其余字段被删除"
69
+ ],
70
+ "commonMistakes": [
71
+ "假设 onChange 每次都返回完整的 9 个字段——实际按 cycleType 动态清除无关字段(如 cycleType=0 时删除 frequency 等)",
72
+ "在 onChange 外部直接修改 val 对象后回传——CycleSelectorValueProps 是内部 state 引用,应拷贝后修改:{ ...val, extraField: value }",
73
+ "value 传 null/undefined——value 是必填 prop(src/CycleSelector/index.tsx:60 无问号),传空会导致运行时错误"
74
+ ]
75
+ }
76
+ },
77
+ "typescriptPitfalls": [
78
+ {
79
+ "issue": "value prop 是必填(无问号),不能传 null/undefined",
80
+ "wrong": "const [cycle, setCycle] = useState<CycleSelectorValueProps | null>(null);\n<CycleSelector value={cycle} /> // null 导致运行时错误",
81
+ "right": "const [cycle, setCycle] = useState<CycleSelectorValueProps>({});\n<CycleSelector value={cycle} onChange={setCycle} />"
82
+ },
83
+ {
84
+ "issue": "onChange 是必填(无问号),不传会导致 TS 类型错误",
85
+ "wrong": "<CycleSelector value={cycleValue} /> // 缺少 onChange,TS 报错",
86
+ "right": "<CycleSelector value={cycleValue} onChange={(val) => setCycleValue(val)} />"
87
+ },
88
+ {
89
+ "issue": "cRef 需要 useRef<CycleSelectorRefProps> 类型,直接 useRef() 推断为 unknown",
90
+ "wrong": "const cRef = useRef(null); cRef.current.getTipText(); // current 可能为 null",
91
+ "right": "import { CycleSelectorRefProps } from '@para-ui/core';\nconst cRef = useRef<CycleSelectorRefProps>({} as CycleSelectorRefProps);\n<CycleSelector cRef={cRef} ... />"
92
+ }
93
+ ],
94
+ "mapping": {
95
+ "realComponent": "CycleSelector",
96
+ "adapter": null
97
+ }
98
+ }
@@ -29,7 +29,7 @@ const rt = (B) => {
29
29
  disabledTime: S,
30
30
  timeType: E,
31
31
  tipRender: U,
32
- showPopover: f,
32
+ showPopover: v,
33
33
  cRef: G,
34
34
  onChange: J,
35
35
  disabledCustom: L = !1
@@ -85,8 +85,8 @@ const rt = (B) => {
85
85
  const e = p ? { ...p } : {};
86
86
  e.startTime || (e.cycleType = 0), e.startTime && (e.startTime = b(e.startTime, "YYYY-MM-DD HH:mm")), e.endTime && (e.endTime = b(e.endTime, "YYYY-MM-DD")), u(e), t.current.valueCom = e, ce();
87
87
  }, [p, R, L]), $(() => {
88
- f !== void 0 && f && g();
89
- }, [f]), we(G, () => ({
88
+ v !== void 0 && v && g();
89
+ }, [v]), we(G, () => ({
90
90
  getTipText: (e) => O(e, !0)
91
91
  }));
92
92
  const F = (e) => e ? E === "zone" ? new Date(e).toISOString() : E === "stamp" ? new Date(e).getTime() : e : "", b = (e, l) => e ? q(e).format(l) : "", ce = () => {
@@ -127,7 +127,7 @@ const rt = (B) => {
127
127
  value: 5
128
128
  }
129
129
  ];
130
- L && (o = o.filter((v) => v.value !== 5)), H(o), ae([
130
+ L && (o = o.filter((f) => f.value !== 5)), H(o), ae([
131
131
  {
132
132
  label: n(`day${l}`),
133
133
  value: "day"
@@ -173,11 +173,11 @@ const rt = (B) => {
173
173
  if (U) return U();
174
174
  if (i.frequencyUnit === "week") {
175
175
  const o = [];
176
- let v;
176
+ let f;
177
177
  i.executionDay?.split(",").forEach((be) => {
178
178
  let j = Number(be) - 1;
179
- j === 0 ? (j = 7, v = n(`week${j}`)) : o.push(n(`week${j}`));
180
- }), v && o.push(v), c.push(
179
+ j === 0 ? (j = 7, f = n(`week${j}`)) : o.push(n(`week${j}`));
180
+ }), f && o.push(f), c.push(
181
181
  n("text1", {
182
182
  every: s + o.join("、"),
183
183
  time: m
@@ -223,12 +223,13 @@ const rt = (B) => {
223
223
  }, ye = (e, l) => {
224
224
  a.endTime = l, u({ ...a });
225
225
  }, pe = (e) => {
226
- e.target.value !== "" && parseInt(e.target.value.toString()), a.limitNum = e.target.value, u({ ...a });
227
- }, fe = (e) => {
226
+ const l = e.target.value !== "" ? parseInt(e.target.value.toString()) : 0;
227
+ a.limitNum = l, u({ ...a });
228
+ }, ve = (e) => {
228
229
  (e.target.value !== "" ? parseInt(e.target.value.toString()) : 0) <= 0 && (a.limitNum = 1, u({ ...a }));
229
230
  }, x = (e) => (l) => {
230
231
  a[e] = l, u({ ...a });
231
- }, k = (e) => (e += 1, e === 8 && (e = 1), e), ve = (e) => () => {
232
+ }, k = (e) => (e += 1, e === 8 && (e = 1), e), fe = (e) => () => {
232
233
  if (t.current.timeDetail?.weekDay === e) {
233
234
  V(!0), clearTimeout(t.current.timerTip), t.current.timerTip = setTimeout(() => {
234
235
  V(!1);
@@ -283,7 +284,7 @@ const rt = (B) => {
283
284
  "div",
284
285
  {
285
286
  className: m ? "select-item" : "",
286
- onClick: ve(l + 1),
287
+ onClick: fe(l + 1),
287
288
  children: n(i[l + 1])
288
289
  },
289
290
  l
@@ -340,7 +341,7 @@ const rt = (B) => {
340
341
  placeholder: n("placeholder"),
341
342
  value: a.limitNum,
342
343
  onChange: pe,
343
- onBlur: fe,
344
+ onBlur: ve,
344
345
  rightIcon: n("next")
345
346
  }
346
347
  )
@@ -370,7 +371,7 @@ const rt = (B) => {
370
371
  ] })
371
372
  ] }), je = () => M || ((e) => e && e < q((/* @__PURE__ */ new Date()).getTime() - 1440 * 60 * 1e3)), De = () => {
372
373
  if (S) return S;
373
- }, Ne = () => f !== void 0 ? f : Q;
374
+ }, Ne = () => v !== void 0 ? v : Q;
374
375
  return /* @__PURE__ */ r.jsxs(
375
376
  "div",
376
377
  {
@@ -0,0 +1,192 @@
1
+ {
2
+ "name": "DatePicker",
3
+ "category": "Data Entry",
4
+ "description": "输入或选择日期的控件",
5
+ "semantic": {
6
+ "intent": [
7
+ "选择日期",
8
+ "选择时间",
9
+ "选择日期范围"
10
+ ],
11
+ "useCases": [
12
+ "表单日期录入",
13
+ "日程安排",
14
+ "数据报表时间筛选"
15
+ ],
16
+ "riskLevel": "normal"
17
+ },
18
+ "variants": {
19
+ "date": {
20
+ "meaning": "日期选择"
21
+ },
22
+ "range": {
23
+ "meaning": "日期范围选择"
24
+ },
25
+ "time": {
26
+ "meaning": "时间选择"
27
+ }
28
+ },
29
+ "states": [
30
+ "default",
31
+ "disabled",
32
+ "error",
33
+ "open"
34
+ ],
35
+ "idealProps": {
36
+ "value": {
37
+ "type": "Dayjs | null(DatePicker)/ [Dayjs, Dayjs] | null(RangePicker)",
38
+ "description": "当前选中的日期。**受控模式必传**——传入 null 表示未选中(清空状态);与 onChange 配套使用。注意:RangePicker 的 value 才是 dayjs[],DatePicker 不要传数组",
39
+ "_typeNote": "原'dayjs | dayjs[]'写法误导——分别属于 DatePicker / RangePicker,不是同一组件的联合类型"
40
+ },
41
+ "onChange": {
42
+ "type": "function",
43
+ "signature": "(date: Dayjs | null, dateString: string) => void",
44
+ "description": "日期变化回调。date=null 时表示清空(当 allowClear=true 用户点叉触发);dateString 是按 format 格式化后的字符串,清空时为空串"
45
+ },
46
+ "picker": {
47
+ "type": "enum",
48
+ "values": [
49
+ "date",
50
+ "week",
51
+ "month",
52
+ "quarter",
53
+ "year"
54
+ ],
55
+ "default": "date",
56
+ "description": "选择器类型"
57
+ },
58
+ "showTime": {
59
+ "type": "boolean | object",
60
+ "objectShape": {
61
+ "format": { "type": "string", "description": "时间格式,例:'HH:mm:ss'" },
62
+ "defaultValue": { "type": "Dayjs", "description": "时间默认值" },
63
+ "disabledTime": { "type": "function", "description": "禁用时间回调" }
64
+ },
65
+ "default": false,
66
+ "description": "是否增加时间选择功能。传 true 使用默认时间选项;传对象可配置时间选择器参数(format/defaultValue/disabledTime 等)"
67
+ },
68
+ "format": {
69
+ "type": "string | string[]",
70
+ "default": "YYYY-MM-DD",
71
+ "description": "展示的日期格式"
72
+ },
73
+ "disabled": {
74
+ "type": "boolean",
75
+ "default": false,
76
+ "description": "是否禁用"
77
+ },
78
+ "allowClear": {
79
+ "type": "boolean",
80
+ "default": true,
81
+ "description": "是否显示清除按钮"
82
+ },
83
+ "bordered": {
84
+ "type": "boolean",
85
+ "default": true,
86
+ "description": "是否有边框"
87
+ },
88
+ "placeholder": {
89
+ "type": "string(DatePicker) | [string, string](RangePicker,开始日期 + 结束日期 placeholder)",
90
+ "description": "输入框提示文字。DatePicker 接受 string;RangePicker 接受 [string, string] 元组(首/末 placeholder 分别)"
91
+ },
92
+ "disabledDate": {
93
+ "type": "function",
94
+ "signature": "(currentDate: Dayjs) => boolean",
95
+ "description": "不可选择的日期。返回 true 表示该日期不可选。currentDate 在 picker='date' 时为当天 00:00:00(无时分秒),可直接 `current < dayjs().endOf('day')` 比较;在 showTime 模式下含完整时分秒,此时若做日维度比较应用 `dayjs().startOf('day')` / `endOf('day')` 兜底"
96
+ },
97
+ "defaultValue": {
98
+ "type": "Dayjs",
99
+ "required": false,
100
+ "description": "默认日期(非受控)。初始渲染时的默认选中日期;⚠️ 不要同时传 value + defaultValue,受控模式只传 value + onChange,非受控模式只传 defaultValue"
101
+ },
102
+ "onOpenChange": {
103
+ "type": "function",
104
+ "signature": "(open: boolean) => void",
105
+ "required": false,
106
+ "description": "弹出日历/关闭日历时的回调,open=true 表示打开,open=false 表示关闭"
107
+ },
108
+ "open": {
109
+ "type": "boolean",
110
+ "required": false,
111
+ "description": "控制弹层是否展开(受控),配合 onOpenChange 使用"
112
+ },
113
+ "showToday": {
114
+ "type": "boolean",
115
+ "default": "true",
116
+ "required": false,
117
+ "description": "是否展示「今天」快捷按钮,picker='date' 时有效"
118
+ },
119
+ "showNow": {
120
+ "type": "boolean",
121
+ "required": false,
122
+ "description": "showTime=true 时是否展示「此刻」按钮"
123
+ }
124
+ },
125
+ "do": [
126
+ "使用 format 属性统一日期显示格式",
127
+ "对于需要选择范围的场景,使用 DatePicker.RangePicker(从同一导入中解构:`const { RangePicker } = DatePicker`)",
128
+ "受控模式只传 value + onChange,非受控模式只传 defaultValue——不要同时传两者",
129
+ "showTime=true 时,value 必须是含时分秒的 Dayjs 对象;onChange 接收的 date 参数也会含完整时间信息",
130
+ "禁用日期用 disabledDate 回调(返回 true 表示不可选);禁止今天之前:`disabledDate={(cur) => cur && cur < dayjs().startOf('day')}`"
131
+ ],
132
+ "dont": [
133
+ "混用 moment 和 dayjs 对象(本项目统一使用 dayjs,value/defaultValue/disabledDate 参数都是 Dayjs 类型)",
134
+ "在移动端过度依赖复杂的弹出面板",
135
+ "不要对 DatePicker 传 value 数组——RangePicker.value 才是 [Dayjs, Dayjs],DatePicker.value 是单个 Dayjs | null"
136
+ ],
137
+ "events": {
138
+ "onChange": {
139
+ "signature": "(date: Dayjs | null, dateString: string) => void",
140
+ "asyncSupported": false,
141
+ "examples": [
142
+ "日期选中时触发:date 为 Dayjs 对象,dateString 为 format 格式化后的字符串",
143
+ "用户点清空按钮时触发:date=null,dateString=''——需判断 null 再处理",
144
+ "showTime=true 模式下,date 包含完整时分秒(Dayjs),dateString 按 format 含时间部分"
145
+ ],
146
+ "commonMistakes": [
147
+ "只用 dateString 而忽略 date 参数——dateString 是 format 格式化结果,跨时区场景需用 date(Dayjs 对象)再转换",
148
+ "不处理 date=null 的清空场景——allowClear=true 时 user 点叉会触发 onChange(null, ''),此时直接存 date 会把 null 存入 state",
149
+ "RangePicker 的 onChange 签名不同——`(dates: [Dayjs, Dayjs] | null, dateStrings: [string, string]) => void`,不要用 DatePicker 的签名",
150
+ "假设 onChange 仅在确认时触发——date picker 模式(无 showTime)选日期即触发;showTime 模式需点「确定」按钮才触发"
151
+ ]
152
+ },
153
+ "onOpenChange": {
154
+ "signature": "(open: boolean) => void",
155
+ "asyncSupported": false,
156
+ "examples": [
157
+ "弹层打开时触发 onOpenChange(true),关闭时触发 onOpenChange(false)",
158
+ "搭配 open 受控 prop 实现自定义开关逻辑(如点击外部关闭)"
159
+ ],
160
+ "commonMistakes": [
161
+ "在 onOpenChange 中直接做表单提交——open=false 仅表示面板关闭,value 不一定已更新",
162
+ "忘记 RangePicker 关闭时 src 代码会主动调 blur(generateRangePicker.tsx 实证)——不需要手动调"
163
+ ]
164
+ }
165
+ },
166
+ "typescriptPitfalls": [
167
+ {
168
+ "issue": "DatePicker value 类型应为 Dayjs | null,传字符串会导致显示异常",
169
+ "wrong": "value={'2024-01-01'} // 字符串不是 Dayjs 对象,组件内部格式化会失败",
170
+ "right": "value={dayjs('2024-01-01')} // 必须用 dayjs() 转换;清空用 null"
171
+ },
172
+ {
173
+ "issue": "RangePicker 和 DatePicker 的 onChange 签名不同,混用会导致类型错误",
174
+ "wrong": "// RangePicker 中用 DatePicker 的 onChange 签名\nonChange={(date: Dayjs, str: string) => ...} // 应为数组",
175
+ "right": "// RangePicker\nonChange={(dates: [Dayjs, Dayjs] | null, strs: [string, string]) => ...}"
176
+ },
177
+ {
178
+ "issue": "RangePicker value 是 RangeValue<Dayjs> 类型(可 null 的二元元组),不能传普通数组",
179
+ "wrong": "value={[dayjs(), dayjs().add(7, 'day')]} // 推断为 Dayjs[],不匹配 RangeValue<Dayjs>",
180
+ "right": "import type { RangeValue } from '@para-ui/core'; const val: RangeValue<Dayjs> = [dayjs(), dayjs().add(7,'day')]; <DatePicker.RangePicker value={val} />"
181
+ },
182
+ {
183
+ "issue": "disabledDate 参数是 Dayjs 对象不是 Date,直接用 Date 方法会报类型错误",
184
+ "wrong": "disabledDate={(cur) => cur.getTime() < Date.now()} // Dayjs 没有 getTime() 方法",
185
+ "right": "disabledDate={(cur) => cur && cur.isBefore(dayjs().startOf('day'))} // 使用 Dayjs 的 isBefore / isAfter"
186
+ }
187
+ ],
188
+ "mapping": {
189
+ "realComponent": "DatePicker",
190
+ "adapter": null
191
+ }
192
+ }
@@ -1,19 +1,19 @@
1
1
  import { j as r } from "../../_virtual/jsx-runtime.js";
2
- import n, { forwardRef as Z, useImperativeHandle as ee } from "react";
2
+ import a, { forwardRef as Z, useImperativeHandle as ee } from "react";
3
3
  import u from "clsx";
4
4
  import { CloseCircleF as re } from "../../node_modules/@para-ui/icons/CloseCircleF/index.js";
5
5
  import { SortRight as oe } from "../../node_modules/@para-ui/icons/SortRight/index.js";
6
6
  import { Calendar as te } from "../../node_modules/@para-ui/icons/Calendar/index.js";
7
7
  import { Time as se } from "../../node_modules/@para-ui/icons/Time/index.js";
8
- import { RangePicker as ae } from "rc-picker";
9
- import { mergedLocale as ne, getTimeProps as T, getRangePlaceholder as le, formatPickerValue as ie, getPopupContainer as ce, isolationPopupPollution as pe } from "../util.js";
8
+ import { RangePicker as ne } from "rc-picker";
9
+ import { mergedLocale as ae, getTimeProps as T, getRangePlaceholder as le, formatPickerValue as ie, getPopupContainer as ce, isolationPopupPollution as pe } from "../util.js";
10
10
  import { Components as ue, pickerFormatMap as me } from "./index.js";
11
11
  import y from "../lang/index.js";
12
12
  import fe from "../../GlobalContext/index.js";
13
13
  import de from "../../Label/index.js";
14
14
  import xe from "../../HelperText/index.js";
15
15
  import { $prefixCls as I } from "../../GlobalContext/constant.js";
16
- import { UUID as ge } from "@paraview/lib";
16
+ import { UUID as ge } from "@snack-kit/lib";
17
17
  import L from "../PickerTag.js";
18
18
  import { Tooltip as Pe } from "../../Tooltip/index.js";
19
19
  function Se(z) {
@@ -41,13 +41,13 @@ function Se(z) {
41
41
  disabled: P,
42
42
  disabledTooltip: h,
43
43
  ...c
44
- } = l, { format: p, showTime: b, picker: t, use12Hours: q } = l, a = n.useRef(null), C = n.useRef(), j = n.useMemo(() => ge(), []), o = `${I}-picker`, { language: $, locale: R } = n.useContext(fe);
44
+ } = l, { format: p, showTime: b, picker: t, use12Hours: q } = l, n = a.useRef(null), C = a.useRef(null), j = a.useMemo(() => ge(), []), o = `${I}-picker`, { language: $, locale: R } = a.useContext(fe);
45
45
  let k = {};
46
46
  if (R) {
47
47
  const e = R[$ || "zh"];
48
48
  e && (k = e.DatePicker);
49
49
  }
50
- const B = y[$ || "zh"] || y.zh, v = ne(k, B);
50
+ const B = y[$ || "zh"] || y.zh, v = ae(k, B);
51
51
  let s = {};
52
52
  s = {
53
53
  ...s,
@@ -67,8 +67,8 @@ function Se(z) {
67
67
  }
68
68
  ) : null;
69
69
  ee(H, () => ({
70
- focus: () => a.current?.focus(),
71
- blur: () => a.current?.blur()
70
+ focus: () => n.current?.focus(),
71
+ blur: () => n.current?.blur()
72
72
  }));
73
73
  const w = x ? x.map((e) => ({
74
74
  label: typeof e.label == "string" ? /* @__PURE__ */ r.jsx(L, { children: e.label }) : e.label,
@@ -80,7 +80,7 @@ function Se(z) {
80
80
  [`${o}-use12Hours`]: q,
81
81
  [`${o}-presets-${g}`]: J
82
82
  }), Q = (e) => ce(e, U, C), W = (e) => {
83
- c.onOpenChange?.(e), _ && pe(e, j), e || a.current?.blur();
83
+ c.onOpenChange?.(e), _ && pe(e, j), e || n.current?.blur();
84
84
  };
85
85
  return (() => {
86
86
  const e = /* @__PURE__ */ r.jsxs(
@@ -92,7 +92,7 @@ function Se(z) {
92
92
  children: [
93
93
  G(),
94
94
  /* @__PURE__ */ r.jsx(
95
- ae,
95
+ ne,
96
96
  {
97
97
  separator: /* @__PURE__ */ r.jsx(
98
98
  "span",
@@ -102,7 +102,7 @@ function Se(z) {
102
102
  children: /* @__PURE__ */ r.jsx(oe, {})
103
103
  }
104
104
  ),
105
- ref: a,
105
+ ref: n,
106
106
  placeholder: le(t, v, F),
107
107
  suffixIcon: t === "time" ? /* @__PURE__ */ r.jsx(se, {}) : /* @__PURE__ */ r.jsx(te, { className: "picker-icon" }),
108
108
  clearIcon: /* @__PURE__ */ r.jsx(re, {}),