@king-design/intact 2.0.0-beta.1 → 2.0.2

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 (544) hide show
  1. package/README.md +20 -118
  2. package/components/affix/demos/basic.md +2 -1
  3. package/components/affix/demos/custom.md +5 -5
  4. package/components/affix/index.md +2 -2
  5. package/components/affix/styles.ts +1 -1
  6. package/components/badge/demos/text.md +1 -1
  7. package/components/badge/index.md +3 -3
  8. package/components/badge/styles.ts +1 -1
  9. package/components/breadcrumb/demos/basic.md +1 -1
  10. package/components/breadcrumb/index.md +3 -10
  11. package/components/breadcrumb/item.ts +4 -14
  12. package/components/breadcrumb/styles.ts +9 -5
  13. package/components/button/demos/group.md +2 -2
  14. package/components/button/demos/icon.md +1 -0
  15. package/components/button/demos/loading.md +1 -1
  16. package/components/button/demos/tagName.md +0 -1
  17. package/components/button/index.md +13 -13
  18. package/components/button/index.vdt +32 -23
  19. package/components/button/styles.ts +22 -12
  20. package/components/card/demos/basic.md +4 -4
  21. package/components/card/demos/extra.md +13 -7
  22. package/components/card/demos/noHeader.md +4 -4
  23. package/components/card/index.md +3 -3
  24. package/components/card/styles.ts +2 -2
  25. package/components/carousel/index.md +4 -4
  26. package/components/carousel/styles.ts +2 -2
  27. package/components/carousel/useSlide.ts +3 -2
  28. package/components/cascader/demos/loadData.md +1 -1
  29. package/components/cascader/index.md +45 -16
  30. package/components/cascader/index.spec.ts +60 -1
  31. package/components/cascader/index.vdt +4 -4
  32. package/components/cascader/styles.ts +1 -1
  33. package/components/cascader/useLabel.ts +9 -9
  34. package/components/checkbox/demos/basic.md +1 -1
  35. package/components/checkbox/demos/indeterminate.md +4 -20
  36. package/components/checkbox/demos/value.md +1 -1
  37. package/components/checkbox/index.md +10 -10
  38. package/components/checkbox/index.vdt +16 -13
  39. package/components/checkbox/styles.ts +3 -7
  40. package/components/code/demos/basic.md +3 -3
  41. package/components/code/index.md +8 -10
  42. package/components/collapse/index.md +8 -8
  43. package/components/collapse/item.vdt +1 -1
  44. package/components/collapse/styles.ts +4 -3
  45. package/components/colorpicker/index.md +3 -3
  46. package/components/colorpicker/index.spec.ts +1 -1
  47. package/components/colorpicker/index.ts +3 -0
  48. package/components/colorpicker/index.vdt +5 -1
  49. package/components/colorpicker/styles.ts +1 -1
  50. package/components/context.ts +14 -7
  51. package/components/datepicker/demos/disabledDate.md +0 -2
  52. package/components/datepicker/demos/format.md +1 -1
  53. package/components/datepicker/demos/shortcuts.md +2 -2
  54. package/components/datepicker/helpers.ts +9 -2
  55. package/components/datepicker/index.md +50 -27
  56. package/components/datepicker/index.spec.ts +1 -1
  57. package/components/datepicker/index.vdt +7 -6
  58. package/components/datepicker/styles.ts +1 -1
  59. package/components/diagram/index.md +108 -59
  60. package/components/diagram/shapes/line.ts +2 -3
  61. package/components/dialog/base.ts +2 -1
  62. package/components/dialog/demos/block.md +10 -56
  63. package/components/dialog/demos/size.md +1 -1
  64. package/components/dialog/index.md +47 -56
  65. package/components/dialog/index.spec.ts +2 -18
  66. package/components/dialog/styles.ts +4 -3
  67. package/components/dialog/useFixBody.ts +16 -0
  68. package/components/drawer/index.md +23 -20
  69. package/components/drawer/index.spec.ts +5 -5
  70. package/components/drawer/styles.ts +2 -2
  71. package/components/dropdown/demos/basic.md +4 -16
  72. package/components/dropdown/demos/contextmenu.md +1 -7
  73. package/components/dropdown/demos/disabled.md +1 -1
  74. package/components/dropdown/demos/nested.md +2 -4
  75. package/components/dropdown/demos/position.md +5 -6
  76. package/components/dropdown/demos/trigger.md +2 -4
  77. package/components/dropdown/dropdown.ts +2 -0
  78. package/components/dropdown/index.md +26 -15
  79. package/components/dropdown/index.spec.ts +3 -3
  80. package/components/dropdown/index.ts +1 -2
  81. package/components/dropdown/styles.ts +2 -2
  82. package/components/editable/index.md +10 -15
  83. package/components/editable/index.vdt +1 -0
  84. package/components/editable/styles.ts +1 -1
  85. package/components/form/demos/basic.md +15 -15
  86. package/components/form/index.md +29 -13
  87. package/components/form/index.spec.ts +9 -9
  88. package/components/form/item.vdt +6 -1
  89. package/components/form/methods.ts +6 -1
  90. package/components/form/styles.ts +1 -1
  91. package/components/form/useError.ts +3 -0
  92. package/components/form/useValidate.ts +2 -2
  93. package/components/grid/col.vdt +1 -1
  94. package/components/grid/index.md +34 -13
  95. package/components/grid/styles.ts +4 -1
  96. package/components/icon/index.md +4 -2
  97. package/components/icon/index.vdt +2 -2
  98. package/components/icon/styles.ts +11 -8
  99. package/components/input/demos/blocks.md +2 -2
  100. package/components/input/demos/clearable.md +3 -3
  101. package/components/input/demos/inline.md +12 -0
  102. package/components/input/demos/size.md +0 -1
  103. package/components/input/index.md +18 -22
  104. package/components/input/index.ts +2 -0
  105. package/components/input/index.vdt +42 -33
  106. package/components/input/search.vdt +4 -1
  107. package/components/input/styles.ts +8 -12
  108. package/components/layout/demos/asideFix.md +2 -3
  109. package/components/layout/index.md +5 -5
  110. package/components/layout/styles.ts +5 -4
  111. package/components/menu/demos/collapse.md +3 -1
  112. package/components/menu/index.md +11 -11
  113. package/components/menu/index.spec.ts +12 -6
  114. package/components/menu/item.ts +10 -16
  115. package/components/menu/item.vdt +3 -3
  116. package/components/menu/menu.ts +4 -0
  117. package/components/menu/styles.ts +6 -5
  118. package/components/menu/useExpanded.ts +1 -1
  119. package/components/menu/useHighlight.ts +45 -40
  120. package/components/message/index.md +23 -25
  121. package/components/message/index.spec.ts +1 -1
  122. package/components/message/styles.ts +7 -3
  123. package/components/pagination/index.md +11 -19
  124. package/components/pagination/styles.ts +2 -2
  125. package/components/progress/demos/customColor.md +1 -1
  126. package/components/progress/index.md +11 -5
  127. package/components/progress/styles.ts +2 -2
  128. package/components/radio/index.md +4 -7
  129. package/components/radio/index.vdt +15 -12
  130. package/components/radio/styles.ts +6 -10
  131. package/components/rate/index.md +5 -5
  132. package/components/rate/styles.ts +3 -2
  133. package/components/scrollSelect/index.md +14 -5
  134. package/components/scrollSelect/styles.ts +7 -2
  135. package/components/select/base.ts +0 -1
  136. package/components/select/base.vdt +128 -112
  137. package/components/select/demos/creatable.md +1 -1
  138. package/components/select/demos/customMenu.md +1 -1
  139. package/components/select/demos/format.md +3 -7
  140. package/components/select/index.md +35 -30
  141. package/components/select/index.spec.ts +1 -1
  142. package/components/select/menu.vdt +1 -0
  143. package/components/select/styles.ts +15 -9
  144. package/components/slider/demos/marks.md +2 -2
  145. package/components/slider/index.md +31 -16
  146. package/components/slider/styles.ts +5 -4
  147. package/components/spin/index.md +2 -2
  148. package/components/spin/styles.ts +1 -1
  149. package/components/spinner/index.md +23 -14
  150. package/components/spinner/index.ts +2 -2
  151. package/components/spinner/styles.ts +1 -1
  152. package/components/split/index.md +7 -7
  153. package/components/split/style.ts +2 -2
  154. package/components/steps/index.md +3 -3
  155. package/components/steps/styles.ts +3 -2
  156. package/components/switch/index.md +10 -19
  157. package/components/switch/styles.ts +5 -4
  158. package/components/table/demos/animation.md +92 -0
  159. package/components/table/demos/basic.md +1 -1
  160. package/components/table/demos/checkedKeys.md +2 -3
  161. package/components/table/demos/disableRow.md +2 -2
  162. package/components/table/demos/empty.md +1 -1
  163. package/components/table/demos/export.md +8 -7
  164. package/components/table/demos/fixColumn.md +2 -2
  165. package/components/table/demos/fixHeader.md +3 -3
  166. package/components/table/demos/group.md +3 -3
  167. package/components/table/demos/mergeCell.md +1 -1
  168. package/components/table/demos/resizable.md +1 -1
  169. package/components/table/demos/rowClassName.md +1 -1
  170. package/components/table/demos/rowExpandable.md +2 -6
  171. package/components/table/demos/sort.md +2 -1
  172. package/components/table/demos/stickHeader.md +3 -3
  173. package/components/table/demos/stickScrollbar.md +3 -3
  174. package/components/table/demos/tooltip.md +1 -2
  175. package/components/table/index.md +92 -66
  176. package/components/table/index.spec.ts +4 -1
  177. package/components/table/index.ts +1 -0
  178. package/components/table/row.vdt +5 -1
  179. package/components/table/styles.ts +17 -5
  180. package/components/table/table.ts +2 -0
  181. package/components/table/table.vdt +91 -86
  182. package/components/table/useFixedColumns.ts +5 -3
  183. package/components/table/useWidth.ts +8 -1
  184. package/components/tabs/index.md +15 -8
  185. package/components/tabs/index.spec.ts +1 -1
  186. package/components/tabs/styles.ts +11 -7
  187. package/components/tabs/tab.vdt +1 -1
  188. package/components/tabs/useActiveBar.ts +3 -2
  189. package/components/tag/base.ts +3 -0
  190. package/components/tag/demos/border.md +2 -1
  191. package/components/tag/index.md +4 -3
  192. package/components/tag/styles.ts +9 -4
  193. package/components/timeline/styles.ts +3 -3
  194. package/components/timepicker/constants.ts +3 -2
  195. package/components/timepicker/demos/basic.md +2 -2
  196. package/components/timepicker/demos/step.md +1 -1
  197. package/components/timepicker/index.md +47 -16
  198. package/components/timepicker/index.spec.ts +11 -10
  199. package/components/timepicker/styles.ts +1 -1
  200. package/components/timepicker/useStep.ts +3 -3
  201. package/components/timepicker/useValue.ts +2 -2
  202. package/components/tip/demos/closable.md +1 -1
  203. package/components/tip/index.md +8 -4
  204. package/components/tip/styles.ts +1 -1
  205. package/components/tooltip/demos/basic.md +2 -13
  206. package/components/tooltip/demos/trigger.md +1 -2
  207. package/components/tooltip/index.md +26 -13
  208. package/components/tooltip/index.spec.ts +24 -15
  209. package/components/tooltip/styles.ts +1 -1
  210. package/components/transfer/index.md +36 -23
  211. package/components/transfer/index.spec.ts +7 -6
  212. package/components/transfer/styles.ts +3 -9
  213. package/components/tree/index.md +76 -49
  214. package/components/tree/index.spec.ts +13 -12
  215. package/components/tree/index.ts +1 -0
  216. package/components/tree/index.vdt +1 -0
  217. package/components/tree/styles.ts +7 -4
  218. package/components/treeSelect/index.md +50 -20
  219. package/components/treeSelect/index.spec.ts +5 -5
  220. package/components/treeSelect/styles.ts +3 -2
  221. package/components/upload/index.md +55 -19
  222. package/components/upload/index.spec.ts +1 -1
  223. package/components/upload/index.ts +1 -1
  224. package/components/upload/index.vdt +3 -4
  225. package/components/upload/styles.ts +5 -4
  226. package/components/utils.ts +1 -1
  227. package/components/wave/index.ts +94 -0
  228. package/components/wave/styles.ts +50 -0
  229. package/es/components/breadcrumb/item.d.ts +1 -1
  230. package/es/components/breadcrumb/item.js +3 -14
  231. package/es/components/breadcrumb/styles.js +1 -1
  232. package/es/components/button/index.vdt.js +26 -17
  233. package/es/components/button/styles.d.ts +82 -1
  234. package/es/components/button/styles.js +16 -2
  235. package/es/components/card/styles.js +1 -1
  236. package/es/components/carousel/styles.js +4 -1
  237. package/es/components/carousel/useSlide.js +10 -9
  238. package/es/components/cascader/index.spec.js +89 -1
  239. package/es/components/cascader/index.vdt.js +4 -4
  240. package/es/components/cascader/useLabel.js +8 -12
  241. package/es/components/checkbox/index.vdt.js +15 -10
  242. package/es/components/checkbox/styles.js +2 -2
  243. package/es/components/collapse/item.vdt.js +2 -1
  244. package/es/components/collapse/styles.js +5 -1
  245. package/es/components/colorpicker/index.d.ts +2 -0
  246. package/es/components/colorpicker/index.js +2 -1
  247. package/es/components/colorpicker/index.spec.js +1 -1
  248. package/es/components/colorpicker/index.vdt.js +3 -1
  249. package/es/components/context.d.ts +5 -2
  250. package/es/components/context.js +7 -4
  251. package/es/components/datepicker/helpers.d.ts +2 -1
  252. package/es/components/datepicker/helpers.js +8 -2
  253. package/es/components/datepicker/index.spec.js +1 -1
  254. package/es/components/datepicker/index.vdt.js +10 -5
  255. package/es/components/datepicker/styles.d.ts +46 -1
  256. package/es/components/diagram/shapes/generateShapes.js +3 -3
  257. package/es/components/diagram/shapes/line.d.ts +2 -2
  258. package/es/components/diagram/shapes/line.js +0 -1
  259. package/es/components/dialog/base.d.ts +2 -0
  260. package/es/components/dialog/base.js +2 -1
  261. package/es/components/dialog/index.spec.js +59 -94
  262. package/es/components/dialog/styles.js +5 -1
  263. package/es/components/dialog/useFixBody.d.ts +6 -0
  264. package/es/components/dialog/useFixBody.js +12 -0
  265. package/es/components/drawer/index.spec.js +5 -5
  266. package/es/components/drawer/styles.js +1 -1
  267. package/es/components/dropdown/dropdown.js +1 -0
  268. package/es/components/dropdown/index.js +1 -2
  269. package/es/components/dropdown/index.spec.js +3 -3
  270. package/es/components/dropdown/styles.js +1 -1
  271. package/es/components/editable/index.vdt.js +2 -1
  272. package/es/components/editable/styles.d.ts +8 -1
  273. package/es/components/form/index.spec.js +10 -12
  274. package/es/components/form/item.vdt.js +13 -9
  275. package/es/components/form/useError.d.ts +4 -0
  276. package/es/components/form/useError.js +3 -1
  277. package/es/components/form/useValidate.js +2 -2
  278. package/es/components/grid/col.vdt.js +4 -2
  279. package/es/components/grid/styles.js +1 -1
  280. package/es/components/grid/useGutter.d.ts +1 -1
  281. package/es/components/icon/index.vdt.js +3 -2
  282. package/es/components/icon/styles.js +8 -4
  283. package/es/components/input/index.d.ts +1 -0
  284. package/es/components/input/index.js +2 -1
  285. package/es/components/input/index.vdt.js +47 -32
  286. package/es/components/input/search.vdt.js +4 -2
  287. package/es/components/input/styles.js +8 -3
  288. package/es/components/layout/styles.d.ts +1 -1
  289. package/es/components/layout/styles.js +7 -3
  290. package/es/components/menu/index.spec.js +15 -8
  291. package/es/components/menu/item.d.ts +1 -2
  292. package/es/components/menu/item.js +10 -17
  293. package/es/components/menu/item.vdt.js +4 -4
  294. package/es/components/menu/menu.d.ts +3 -0
  295. package/es/components/menu/menu.js +4 -0
  296. package/es/components/menu/styles.d.ts +62 -1
  297. package/es/components/menu/styles.js +6 -2
  298. package/es/components/menu/useExpanded.d.ts +1 -4
  299. package/es/components/menu/useHighlight.d.ts +5 -8
  300. package/es/components/menu/useHighlight.js +44 -33
  301. package/es/components/message/index.spec.js +1 -1
  302. package/es/components/message/styles.js +6 -2
  303. package/es/components/pagination/styles.js +1 -1
  304. package/es/components/radio/index.vdt.js +14 -9
  305. package/es/components/radio/styles.js +9 -1
  306. package/es/components/rate/styles.js +5 -1
  307. package/es/components/scrollSelect/styles.d.ts +14 -1
  308. package/es/components/scrollSelect/styles.js +9 -1
  309. package/es/components/select/base.vdt.js +135 -121
  310. package/es/components/select/index.spec.js +1 -1
  311. package/es/components/select/menu.vdt.js +1 -0
  312. package/es/components/select/styles.js +9 -4
  313. package/es/components/select/useSearchable.d.ts +1 -1
  314. package/es/components/slider/styles.js +5 -1
  315. package/es/components/spinner/index.d.ts +1 -1
  316. package/es/components/spinner/index.js +1 -1
  317. package/es/components/split/style.js +1 -1
  318. package/es/components/steps/context.d.ts +1 -1
  319. package/es/components/steps/styles.js +5 -1
  320. package/es/components/switch/styles.js +5 -1
  321. package/es/components/table/index.d.ts +1 -0
  322. package/es/components/table/index.spec.js +2 -1
  323. package/es/components/table/row.vdt.js +12 -4
  324. package/es/components/table/styles.js +6 -1
  325. package/es/components/table/table.d.ts +1 -0
  326. package/es/components/table/table.js +2 -1
  327. package/es/components/table/table.vdt.js +30 -27
  328. package/es/components/table/useColumns.d.ts +1 -1
  329. package/es/components/table/useFixedColumns.d.ts +1 -1
  330. package/es/components/table/useFixedColumns.js +5 -2
  331. package/es/components/table/useGroup.d.ts +1 -1
  332. package/es/components/table/useResizable.d.ts +1 -1
  333. package/es/components/table/useSortable.d.ts +1 -1
  334. package/es/components/table/useWidth.js +7 -1
  335. package/es/components/tabs/index.spec.js +1 -1
  336. package/es/components/tabs/styles.js +9 -2
  337. package/es/components/tabs/tab.vdt.js +2 -1
  338. package/es/components/tabs/useActiveBar.js +6 -3
  339. package/es/components/tag/base.js +1 -0
  340. package/es/components/tag/styles.js +8 -2
  341. package/es/components/timepicker/constants.d.ts +2 -1
  342. package/es/components/timepicker/constants.js +3 -2
  343. package/es/components/timepicker/index.spec.js +36 -35
  344. package/es/components/timepicker/useStep.js +3 -3
  345. package/es/components/timepicker/useValue.js +2 -2
  346. package/es/components/tooltip/index.spec.js +32 -25
  347. package/es/components/transfer/index.spec.js +20 -19
  348. package/es/components/transfer/styles.js +2 -6
  349. package/es/components/tree/index.d.ts +1 -1
  350. package/es/components/tree/index.js +1 -1
  351. package/es/components/tree/index.spec.js +20 -19
  352. package/es/components/tree/index.vdt.js +1 -0
  353. package/es/components/tree/styles.js +5 -1
  354. package/es/components/treeSelect/index.spec.js +5 -5
  355. package/es/components/treeSelect/styles.js +5 -1
  356. package/es/components/upload/index.d.ts +1 -1
  357. package/es/components/upload/index.spec.js +1 -1
  358. package/es/components/upload/index.vdt.js +10 -11
  359. package/es/components/upload/styles.js +5 -1
  360. package/es/components/utils.d.ts +1 -1
  361. package/es/components/wave/index.d.ts +19 -0
  362. package/es/components/wave/index.js +120 -0
  363. package/es/components/wave/styles.d.ts +2 -0
  364. package/es/components/wave/styles.js +17 -0
  365. package/es/hooks/useRouter.d.ts +1 -0
  366. package/es/hooks/useRouter.js +10 -0
  367. package/es/i18n/en-US.d.ts +1 -0
  368. package/es/i18n/en-US.js +1 -0
  369. package/es/index.d.ts +3 -2
  370. package/es/index.js +3 -2
  371. package/es/packages/kpc-react/__tests__/index.js +10 -7
  372. package/es/site/data/components/affix/demos/custom/index.d.ts +2 -2
  373. package/es/site/data/components/affix/demos/custom/index.js +4 -4
  374. package/es/site/data/components/affix/demos/custom/react.d.ts +2 -2
  375. package/es/site/data/components/affix/demos/custom/react.js +6 -6
  376. package/es/site/data/components/button/demos/group/react.js +2 -2
  377. package/es/site/data/components/button/demos/icon/react.js +6 -0
  378. package/es/site/data/components/card/demos/basic/react.js +2 -2
  379. package/es/site/data/components/card/demos/extra/react.js +19 -5
  380. package/es/site/data/components/card/demos/noHeader/react.js +2 -2
  381. package/es/site/data/components/checkbox/demos/indeterminate/index.d.ts +1 -1
  382. package/es/site/data/components/checkbox/demos/indeterminate/index.js +2 -2
  383. package/es/site/data/components/checkbox/demos/indeterminate/react.d.ts +1 -1
  384. package/es/site/data/components/checkbox/demos/indeterminate/react.js +5 -6
  385. package/es/site/data/components/dialog/demos/block/react.d.ts +9 -0
  386. package/es/site/data/components/dialog/demos/block/react.js +88 -0
  387. package/es/site/data/components/dropdown/demos/basic/react.js +1 -3
  388. package/es/site/data/components/dropdown/demos/nested/react.js +1 -3
  389. package/es/site/data/components/dropdown/demos/position/react.js +2 -7
  390. package/es/site/data/components/dropdown/demos/trigger/react.js +1 -3
  391. package/es/site/data/components/input/demos/blocks/react.js +4 -2
  392. package/es/site/data/components/input/demos/clearable/react.js +7 -5
  393. package/es/site/data/components/{dialog/demos/extends → input/demos/inline}/index.d.ts +0 -3
  394. package/es/site/data/components/input/demos/inline/index.js +17 -0
  395. package/es/site/data/components/input/demos/inline/react.d.ts +4 -0
  396. package/es/site/data/components/input/demos/inline/react.js +24 -0
  397. package/es/site/data/components/input/demos/size/react.js +0 -3
  398. package/es/site/data/components/layout/demos/asideFix/react.js +2 -1
  399. package/es/site/data/components/menu/demos/collapse/index.js +1 -0
  400. package/es/site/data/components/menu/demos/collapse/react.js +7 -0
  401. package/es/site/data/components/select/demos/creatable/react.js +1 -1
  402. package/es/site/data/components/select/demos/customMenu/react.js +1 -0
  403. package/es/site/data/components/select/demos/format/react.js +11 -18
  404. package/es/site/data/components/table/demos/animation/index.d.ts +23 -0
  405. package/es/site/data/components/table/demos/animation/index.js +78 -0
  406. package/es/site/data/components/table/demos/animation/react.d.ts +23 -0
  407. package/es/site/data/components/table/demos/animation/react.js +113 -0
  408. package/es/site/data/components/table/demos/export/react.js +1 -2
  409. package/es/site/data/components/table/demos/sort/react.js +4 -1
  410. package/es/site/data/components/tag/demos/border/react.js +3 -1
  411. package/es/site/data/components/tip/demos/closable/react.js +1 -0
  412. package/es/site/data/components/tooltip/demos/trigger/react.js +1 -2
  413. package/es/site/data/docs/design/{button → about}/index.d.ts +13 -11
  414. package/es/site/data/docs/design/{8point → about}/index.js +0 -0
  415. package/es/site/data/docs/design/{dialog → guide-1}/index.d.ts +15 -11
  416. package/es/site/data/docs/design/{button → guide-1}/index.js +0 -0
  417. package/es/site/data/docs/design/guide-2/index.d.ts +64 -0
  418. package/es/site/data/docs/design/{color → guide-2}/index.js +0 -0
  419. package/es/site/data/docs/design/guide-3/index.d.ts +64 -0
  420. package/es/site/data/docs/design/{dialog → guide-3}/index.js +0 -0
  421. package/es/site/data/docs/design/guide-4/index.d.ts +64 -0
  422. package/es/site/data/docs/design/{font → guide-4}/index.js +0 -0
  423. package/es/site/data/docs/design/guide-5/index.d.ts +64 -0
  424. package/es/site/data/docs/design/{format → guide-5}/index.js +0 -0
  425. package/es/site/data/docs/design/guide-6/index.d.ts +64 -0
  426. package/es/site/data/docs/design/{gutter → guide-6}/index.js +0 -0
  427. package/es/site/data/docs/design/guide-7/index.d.ts +64 -0
  428. package/es/site/data/docs/design/{hierarchy → guide-7}/index.js +0 -0
  429. package/es/site/data/docs/design/guide-8/index.d.ts +64 -0
  430. package/es/site/data/docs/design/{language → guide-8}/index.js +0 -0
  431. package/es/site/data/docs/design/guide-9/index.d.ts +64 -0
  432. package/es/site/data/docs/design/{navigator → guide-9}/index.js +0 -0
  433. package/es/site/data/docs/design/model/index.d.ts +64 -0
  434. package/es/site/data/docs/design/{tip → model}/index.js +0 -0
  435. package/es/site/data/docs/design/model-1/index.d.ts +64 -0
  436. package/es/site/data/docs/design/{text → model-1}/index.js +0 -0
  437. package/es/site/data/docs/design/pattern-1/index.d.ts +64 -0
  438. package/es/site/data/docs/design/pattern-1/index.js +42 -0
  439. package/es/site/data/docs/design/pattern-2/index.d.ts +64 -0
  440. package/es/site/data/docs/design/pattern-2/index.js +42 -0
  441. package/es/site/data/docs/design/pattern-3/index.d.ts +64 -0
  442. package/es/site/data/docs/design/pattern-3/index.js +42 -0
  443. package/es/site/data/docs/design/pattern-4/index.d.ts +64 -0
  444. package/es/site/data/docs/design/pattern-4/index.js +42 -0
  445. package/es/site/data/docs/design/pattern-5/index.d.ts +64 -0
  446. package/es/site/data/docs/design/pattern-5/index.js +42 -0
  447. package/es/site/data/docs/design/pattern-6/index.d.ts +64 -0
  448. package/es/site/data/docs/design/pattern-6/index.js +42 -0
  449. package/es/site/data/docs/design/{navigator → principle}/index.d.ts +13 -11
  450. package/es/site/data/docs/design/principle/index.js +42 -0
  451. package/es/site/data/docs/design/{tip → value}/index.d.ts +13 -11
  452. package/es/site/data/docs/design/value/index.js +42 -0
  453. package/es/site/data/docs/theme/index.d.ts +0 -2
  454. package/es/site/src/client.js +4 -1
  455. package/es/site/src/components/ImgBox/index.d.ts +21 -0
  456. package/es/site/src/components/ImgBox/index.js +69 -0
  457. package/es/site/src/{pages/designdoc → components/ImgBox}/styles.d.ts +0 -0
  458. package/es/site/src/components/ImgBox/styles.js +13 -0
  459. package/es/site/src/components/WorkflowCard/styles.js +3 -10
  460. package/es/site/src/components/article/index.d.ts +4 -1
  461. package/es/site/src/components/article/index.js +72 -6
  462. package/es/site/src/components/blockquote/index.d.ts +4 -0
  463. package/es/site/src/components/blockquote/index.js +13 -0
  464. package/es/site/src/components/blockquote/slot.d.ts +11 -0
  465. package/es/site/src/components/blockquote/slot.js +19 -0
  466. package/es/site/src/components/card/index.d.ts +1 -1
  467. package/es/site/src/components/card/index.js +4 -1
  468. package/es/site/src/components/card/styles.js +2 -10
  469. package/es/site/src/components/catalogue/index.js +2 -2
  470. package/es/site/src/components/catalogue/styles.js +1 -1
  471. package/es/site/src/components/footer/styles.js +2 -2
  472. package/es/site/src/components/link/index.d.ts +1 -0
  473. package/es/site/src/components/link/index.js +11 -3
  474. package/es/site/src/pages/design/index.d.ts +1 -0
  475. package/es/site/src/pages/design/index.js +19 -0
  476. package/es/site/src/pages/design/styles.d.ts +1 -0
  477. package/es/site/src/pages/design/styles.js +13 -0
  478. package/es/site/src/pages/document/index.d.ts +4 -2
  479. package/es/site/src/pages/document/index.js +89 -46
  480. package/es/site/src/pages/document/styles.js +1 -1
  481. package/es/site/src/pages/iframe/button/styles.js +4 -4
  482. package/es/site/src/pages/iframe/colorProcess/index.d.ts +1 -0
  483. package/es/site/src/pages/iframe/colorProcess/index.js +9 -5
  484. package/es/site/src/pages/iframe/colorProcess/styles.js +1 -1
  485. package/es/site/src/pages/index/BestPractice/index.d.ts +1 -0
  486. package/es/site/src/pages/index/BestPractice/index.js +14 -14
  487. package/es/site/src/pages/index/BestPractice/styles.d.ts +1 -1
  488. package/es/site/src/pages/index/BestPractice/styles.js +3 -3
  489. package/es/site/src/pages/index/ColorProcess/styles.d.ts +1 -1
  490. package/es/site/src/pages/index/ColorProcess/styles.js +14 -2
  491. package/es/site/src/pages/index/KingVersion/styles.js +1 -1
  492. package/es/site/src/pages/index/NewFunction/index.d.ts +1 -0
  493. package/es/site/src/pages/index/NewFunction/index.js +4 -2
  494. package/es/site/src/pages/index/NewFunction/styles.d.ts +1 -1
  495. package/es/site/src/pages/index/NewFunction/styles.js +4 -3
  496. package/es/site/src/pages/index/index.d.ts +2 -7
  497. package/es/site/src/pages/index/index.js +11 -8
  498. package/es/site/src/pages/index/styles.js +2 -4
  499. package/es/site/src/pages/layout.d.ts +2 -0
  500. package/es/site/src/pages/layout.js +33 -4
  501. package/es/site/src/pages/resource/index.d.ts +6 -0
  502. package/es/site/src/pages/resource/index.js +21 -1
  503. package/es/site/src/pages/resource/styles.js +5 -3
  504. package/es/site/src/pages/solution/index.d.ts +6 -0
  505. package/es/site/src/pages/solution/index.js +19 -1
  506. package/es/site/src/pages/solution/styles.js +3 -2
  507. package/es/site/src/pages/styles.d.ts +1 -0
  508. package/es/site/src/pages/styles.js +5 -2
  509. package/es/site/src/router/index.d.ts +1 -0
  510. package/es/site/src/router/index.js +327 -318
  511. package/es/site/src/styles/default.d.ts +1 -0
  512. package/es/site/src/styles/default.js +3 -2
  513. package/es/styles/global.js +4 -3
  514. package/es/styles/theme.d.ts +16 -7
  515. package/es/styles/theme.js +15 -7
  516. package/hooks/useRouter.ts +11 -0
  517. package/i18n/en-US.ts +1 -0
  518. package/index.ts +3 -2
  519. package/package.json +6 -6
  520. package/styles/global.ts +41 -8
  521. package/styles/theme.ts +12 -8
  522. package/typings/global.d.ts +2 -0
  523. package/components/dialog/demos/asyncOpen.md +0 -111
  524. package/components/dialog/demos/extends.md +0 -87
  525. package/es/site/data/components/dialog/demos/asyncOpen/dialog.d.ts +0 -28
  526. package/es/site/data/components/dialog/demos/asyncOpen/dialog.js +0 -45
  527. package/es/site/data/components/dialog/demos/asyncOpen/index.d.ts +0 -13
  528. package/es/site/data/components/dialog/demos/asyncOpen/index.js +0 -58
  529. package/es/site/data/components/dialog/demos/extends/dialog.d.ts +0 -28
  530. package/es/site/data/components/dialog/demos/extends/dialog.js +0 -39
  531. package/es/site/data/components/dialog/demos/extends/index.js +0 -49
  532. package/es/site/data/docs/design/8point/index.d.ts +0 -58
  533. package/es/site/data/docs/design/color/demos/demos0/index.d.ts +0 -3
  534. package/es/site/data/docs/design/color/demos/demos0/index.js +0 -3
  535. package/es/site/data/docs/design/color/index.d.ts +0 -56
  536. package/es/site/data/docs/design/font/index.d.ts +0 -58
  537. package/es/site/data/docs/design/format/index.d.ts +0 -58
  538. package/es/site/data/docs/design/gutter/index.d.ts +0 -58
  539. package/es/site/data/docs/design/hierarchy/index.d.ts +0 -58
  540. package/es/site/data/docs/design/language/index.d.ts +0 -56
  541. package/es/site/data/docs/design/text/index.d.ts +0 -58
  542. package/es/site/src/pages/designdoc/index.d.ts +0 -11
  543. package/es/site/src/pages/designdoc/index.js +0 -21
  544. package/es/site/src/pages/designdoc/styles.js +0 -6
@@ -3,12 +3,11 @@ title: 菜单位置
3
3
  order: 2
4
4
  ---
5
5
 
6
- 通过`position`属性,可以定义菜单相对触发器的位置。位置对象中`my`指菜单,`at`指触发器
6
+ 通过`position`属性,可以定义菜单相对触发器的位置。位置对象中`my`指菜单,`at`指触发器。
7
+ 通过`"top" | "bottom" | "left" | "right" `可以快速定位上下左右四个方向
7
8
 
8
9
  ```vdt
9
- import {Dropdown, DropdownMenu, DropdownItem} from 'kpc';
10
- import {Button} from 'kpc';
11
- import {Icon} from 'kpc';
10
+ import {Dropdown, DropdownMenu, DropdownItem, Button, Icon} from 'kpc';
12
11
 
13
12
  <div>
14
13
  <Dropdown position={{my: 'left top', at: 'left bottom+5'}}>
@@ -33,7 +32,7 @@ import {Icon} from 'kpc';
33
32
  </DropdownMenu>
34
33
  </Dropdown>
35
34
 
36
- <Dropdown position={{my: 'center bottom-5', at: 'center top'}}>
35
+ <Dropdown position="top">
37
36
  <Button type="primary">
38
37
  top center <Icon class="ion-ios-arrow-down" />
39
38
  </Button>
@@ -54,5 +53,5 @@ import {Icon} from 'kpc';
54
53
  transition transform .25s ease-in-out
55
54
  .k-dropdown-open
56
55
  .k-icon
57
- transform rotate(180deg)
56
+ transform rotateX(180deg)
58
57
  ```
@@ -7,9 +7,7 @@ order: 0
7
7
  通过`trigger`属性来指定它们。
8
8
 
9
9
  ```vdt
10
- import {Dropdown, DropdownMenu, DropdownItem} from 'kpc';
11
- import {Button} from 'kpc';
12
- import {Icon} from 'kpc';
10
+ import {Dropdown, DropdownMenu, DropdownItem, Button, Icon} from 'kpc';
13
11
 
14
12
  <div>
15
13
  <Dropdown>
@@ -44,5 +42,5 @@ import {Icon} from 'kpc';
44
42
  transition transform .25s ease-in-out
45
43
  .k-dropdown-open
46
44
  .k-icon
47
- transform rotate(180deg)
45
+ transform rotateX(180deg)
48
46
  ```
@@ -249,6 +249,8 @@ export class Dropdown<
249
249
  if (!vnode) return props;
250
250
 
251
251
  const _props = vnode.props;
252
+ if (!_props) return props;
253
+
252
254
  return {
253
255
  vnode,
254
256
  'ev-click': _props.onClick,
@@ -5,9 +5,6 @@ order: 11
5
5
  sidebar: doc
6
6
  ---
7
7
 
8
- > `kpc/component/dropdown`暴露出来的并非`Dropdown`组件本身,而是包装该组件的函数(vdt中称作宏函数)
9
- > 所以不要试图继承它。
10
-
11
8
  # 属性
12
9
 
13
10
  ## Dropdown
@@ -15,32 +12,46 @@ sidebar: doc
15
12
  | 属性 | 说明 | 类型 | 默认值 |
16
13
  | --- | --- | --- | --- |
17
14
  | trigger | 触发方式,`hover`为悬停触发,`click`为点击触发 | `"hover"` &#124; `"click"` | `"hover"` |
18
- | disabled | 是否禁用整个菜单 | `Boolean` | `false` |
19
- | position | 菜单弹出的位置,默认在触发器正下方向下偏移`5px`的地方 | `Object` | `{my: 'center top+5', 'center bottom'}` |
20
- | value | 是否将弹出菜单展示出来,可通过`v-model`双向绑定 | `Boolean` | `false` |
21
- | of | 弹出菜单的位置是相对当前触发元素,还是触发元素所在的菜单元素,这在嵌套菜单中可能会用到,可以使所有子菜单保持统一的对齐方式,例如:级联选择(Cascader)组件 | `"self"` &#124; `"parent"` | `"self"` |
22
- | container | 指定弹出菜单追加的位置,默认:`Dialog`类型的组件会追加到`Dialog`中,其他会追加到`body`中。你可以传入函数返回一个DOM用来作为插入的容器,或者传入字符串用来给`querySelector`进行查询 | `Function` &#124; `String` | `undefined` |
15
+ | disabled | 是否禁用整个菜单 | `boolean` | `false` |
16
+ | value | 是否将弹出菜单展示出来,可通过`v-model`双向绑定 | `boolean` | `false` |
17
+ | position | 菜单弹出的位置,默认与触发器左侧对齐向下偏移`8px`的地方 | `Position` &#124; `"left"` &#124; `"bottom"` &#124; `"right"` &#124; `"top"` | `{my: 'left top+8', 'left bottom'}` |
18
+ | of | 弹出菜单的位置是相对当前触发元素,还是触发元素所在的菜单元素,这在嵌套菜单中可能会用到,可以使所有子菜单保持统一的对齐方式,例如:级联选择(Cascader)组件 | `"self"` &#124; `"parent"` &#124; `Event` | `"self"` |
19
+ | container | 指定弹出菜单追加的位置,默认:`Dialog`类型的组件会追加到`Dialog`中,其他会追加到`body`中。你可以传入函数返回一个DOM用来作为插入的容器,或者传入字符串用来给`querySelector`进行查询 | `Container` | `undefined` |
20
+
21
+ ```ts
22
+ type Position = {
23
+ my?: string | [string, string]
24
+ at?: string | [string, string]
25
+ collision?: Collision | [Collision, Collision]
26
+ collisionDirection?: ['left'] | ['top'] | ['left', 'top']
27
+ }
28
+
29
+ type Collision = 'fit' | 'flip' | 'flipfit' | 'none'
30
+
31
+ export type Container = string | ((parentDom: Element, anchor: Node | null) => Element)
32
+ ```
23
33
 
24
34
  ## DropdownItem
25
35
 
26
36
  | 属性 | 说明 | 类型 | 默认值 |
27
37
  | --- | --- | --- | --- |
28
- | disabled | 是否禁用该菜单项 | `Boolean` | `false` |
29
- | hideOnSelect | 是否选中该菜单后隐藏整个菜单 | `Boolean` | `true` |
38
+ | disabled | 是否禁用该菜单项 | `boolean` | `false` |
39
+ | hideOnSelect | 是否选中该菜单后隐藏整个菜单 | `boolean` | `true` |
30
40
 
31
- ## 事件
41
+ # 事件
32
42
 
33
- ## DropdownMenu
43
+ ## Dropdown
34
44
 
35
45
  | 事件名 | 说明 | 参数 |
36
46
  | --- | --- | --- |
37
47
  | show | 菜单展示事件 | - |
48
+ | hide | 菜单隐藏事件 | - |
38
49
 
39
50
  ## DropdownItem
40
51
 
41
52
  | 事件名 | 说明 | 参数 |
42
53
  | --- | --- | --- |
43
54
  | select | 菜单项被选中时触发,不管是点击还是键盘操作选中 | 被选中的`DropdownItem`实例 |
44
- | click | 菜单项被点击时触发 | `Event` |
45
- | mouseenter | 鼠标进入菜单项时触发 | `Event` |
46
- | mouseleave | 鼠标离开菜单项时触发 | `Event` |
55
+ | click | 菜单项被点击时触发 | `MouseEvent` |
56
+ | mouseenter | 鼠标进入菜单项时触发 | `MouseEvent` |
57
+ | mouseleave | 鼠标离开菜单项时触发 | `MouseEvent` |
@@ -8,7 +8,7 @@ import ContextMenuDemo from '~/components/dropdown/demos/contextmenu';
8
8
  describe('Dropdown', () => {
9
9
  afterEach((done) => {
10
10
  unmount();
11
- setTimeout(done, 400);
11
+ setTimeout(done, 500);
12
12
  });
13
13
 
14
14
  // it('demos test', () => {
@@ -80,7 +80,7 @@ describe('Dropdown', () => {
80
80
  const dropdown = getElement('.k-dropdown-menu')!;
81
81
  const [, , , hoverItem, clickItem] = dropdown.querySelectorAll<HTMLElement>(':scope > .k-dropdown-item');
82
82
  clickItem.click();
83
- await wait(300);
83
+ await wait(500);
84
84
  const clickSubDropdown = getElement('.k-dropdown-menu')!;
85
85
  expect(clickSubDropdown.innerHTML).to.matchSnapshot();
86
86
 
@@ -271,7 +271,7 @@ describe('Dropdown', () => {
271
271
  const [instance, element] = mount(Demo);
272
272
 
273
273
  dispatchEvent(instance.refs.trigger, 'mouseenter');
274
- await wait(300);
274
+ await wait(500);
275
275
 
276
276
  const dropdown = getElement('.k-dropdown-menu')!;
277
277
  const [, item] = dropdown.querySelectorAll<HTMLElement>('.k-dropdown-item');
@@ -22,8 +22,7 @@ export type {
22
22
  DropdownMenuEvents,
23
23
  DropdownMenuBlocks,
24
24
  };
25
- // Don't export the generic type class, because it will let
26
- // the type inferring break down
25
+ // Don't export the generic type class, because it will break down the type inference
27
26
  // declare class _Dropdown extends BaseDropdown<
28
27
  // DropdownProps,
29
28
  // DropdownEvents,
@@ -22,7 +22,7 @@ const defaults = {
22
22
  }
23
23
  };
24
24
 
25
- let dropdown: any;
25
+ let dropdown: typeof defaults;
26
26
  setDefault(() => {
27
27
  dropdown = deepDefaults(theme, {dropdown: defaults}).dropdown;
28
28
  });
@@ -73,7 +73,7 @@ export function makeItemStyles() {
73
73
  // checkbox / radio
74
74
  .k-checkbox,
75
75
  .k-radio {
76
- display: block;
76
+ display: flex;
77
77
  margin: 0 -${getRight(dropdown.item.padding)} 0 -${getLeft(dropdown.item.padding)};
78
78
  padding: ${dropdown.item.padding};
79
79
  }
@@ -5,27 +5,22 @@ order: 99
5
5
  sidebar: doc
6
6
  ---
7
7
 
8
- > 如果你不是通过`v-model`指令进行数据双向绑定,而是通过绑定`change`事件去修改的引用数据,则你需要
9
- > 在修改数据后,手动触发更新`this.update()`,这样才能传递新的`children`子元素给组件去渲染。
10
- >
11
- > `vue`因为所有数据修改都会触发更新,所以无需手动触发更新
12
-
13
8
  # 属性
14
9
 
15
10
  | 属性 | 说明 | 类型 | 默认值 |
16
11
  | --- | --- | --- | --- |
17
- | editing | 是否为编辑状态 | `Boolean` | `false` |
18
- | value | 编辑的内容,使用`v-model`进行双向绑定 | `String` | `undefined` |
19
- | required | 是否规定不能为空 | `Boolean` | `true` |
20
- | validate | 验证规则,可以为函数/正则/正则字符串,若为字符串将转为正则表达式;函数则会传入当前编辑框的值来调用函数验证,返回`true`则验证通过,否则验证失败 | `Function` &#124; `RegExp` &#124; `String` | `undefined` |
21
- | disabled | 是否禁用编辑 | `Boolean` | `false` |
22
- | tip | 编辑按钮提示文案 | `String` | `"编辑"` |
23
- | trim | 是否去掉前后空白字符 | `Boolean` | `true` |
24
- | invalid | 是否为验证失败状态 | `Boolean` | `false` |
12
+ | editing | 是否为编辑状态 | `boolean` | `false` |
13
+ | value | 编辑的内容,使用`v-model`进行双向绑定 | `string` | `undefined` |
14
+ | required | 是否规定不能为空 | `boolean` | `true` |
15
+ | validate | 验证规则,可以为函数/正则/正则字符串,若为字符串将转为正则表达式;函数则会传入当前编辑框的值来调用函数验证,返回`true`则验证通过,否则验证失败 | `(v: string) => boolean` &#124; `RegExp` &#124; `string` | `undefined` |
16
+ | disabled | 是否禁用编辑 | `boolean` | `false` |
17
+ | tip | 编辑按钮提示文案 | `string` | `"编辑"` |
18
+ | trim | 是否去掉前后空白字符 | `boolean` | `true` |
19
+ | invalid | 是否为验证失败状态 | `boolean` | `false` |
25
20
 
26
21
  # 事件
27
22
 
28
23
  | 事件名 | 说明 | 参数 |
29
24
  | --- | --- | --- |
30
- | error | 验证失败时触发 | 当前输入的值 |
31
- | change | 当值改变时触发,与`$change:value`不同的是,该事件只会在用户输入导致变更时触发 | `newValue, oldValue` |
25
+ | error | 验证失败时触发 | `(value: string) => void` |
26
+ | change | 当值改变时触发 | `(newValue: string, oldValue: string) => void` |
@@ -22,6 +22,7 @@ const classNameObj = {
22
22
  <Icon class="k-icon-edit k-editable-icon" title={tip}
23
23
  v-if={!disabled && !editing}
24
24
  ev-click={this.edit}
25
+ hoverable
25
26
  />
26
27
  <div class="c-ellipsis">
27
28
  <template v-if={!editing}>{children}</template>
@@ -13,7 +13,7 @@ const defaults = {
13
13
  }
14
14
  };
15
15
 
16
- let editable: any;
16
+ let editable: typeof defaults;
17
17
  setDefault(() => {
18
18
  editable = deepDefaults(theme, {editable: defaults}).editable;
19
19
  });
@@ -8,22 +8,22 @@ order: 0
8
8
 
9
9
  1. 给`FormItem`添加`value`属性,指定需要验证的数据。如果不指定,则不会进行任何验证
10
10
  2. 给`FormItem`添加`rules`属性,指定需要验证的规则。如果不指定,则不会进行任何验证。内置的验证规则如下:
11
- 1. `required {Boolean}`:必须填写
12
- 2. `digits {Boolean}`: 请输入数字
13
- 3. `email {Boolean}`: 请输入正确的邮箱地址
14
- 4. `url {Boolean}`: 请输入正确的网址
11
+ 1. `required {boolean}`:必须填写
12
+ 2. `digits {boolean}`: 请输入数字
13
+ 3. `email {boolean}`: 请输入正确的邮箱地址
14
+ 4. `url {boolean}`: 请输入正确的网址
15
15
  > 该规则可以验证IP地址,但是会排除`192.168.X.X | 192.254.X.X | 172.16.0.0 - 172.31.255.255 | 10.X.X.X | 172.X.X.X`这类保留IP地址
16
- 5. `date {Boolean}`:请输入正确的日期
17
- 6. `dateISO {Boolean}`:请输入正确的日期(YYYY-MM-DD)
18
- 7. `number {Boolean}`:请输入正确的数
19
- 8. `maxLength {Number}`:如果检验的值是数组:最多选择n项;如果检验的值是字符串:最多输入n个字符
20
- 9. `minLength {Number}`:同上(检验最少长度)
21
- 10. `rangeLength {Array<Number>}`:同上,检验长度的范围
22
- 11. `max {Number}`:请输入不大于n的数
23
- 12. `min {Number}`:请输入不小于n的数
24
- 13. `range {Array<Number>}`:请输入min到max之间的数
25
- 14. `step {Number}`:请输入步长为n的数
26
- 15. `equalTo {String}`:两次输入不一致
16
+ 5. `date {boolean}`:请输入正确的日期
17
+ 6. `dateISO {boolean}`:请输入正确的日期(YYYY-MM-DD)
18
+ 7. `number {boolean}`:请输入正确的数
19
+ 8. `maxLength {number}`:如果检验的值是数组:最多选择n项;如果检验的值是字符串:最多输入n个字符
20
+ 9. `minLength {number}`:同上(检验最少长度)
21
+ 10. `rangeLength {Array<number>}`:同上,检验长度的范围
22
+ 11. `max {number}`:请输入不大于n的数
23
+ 12. `min {number}`:请输入不小于n的数
24
+ 13. `range {Array<number>}`:请输入min到max之间的数
25
+ 14. `step {number}`:请输入步长为n的数
26
+ 15. `equalTo {string}`:两次输入不一致
27
27
  3. 给`FormItem`添加`messages`属性,指定验证失败时展示的错误提示。默认内容如上所示
28
28
  4. 给`FormItem`添加`classNames`属性,指定验证失败时错误元素需要额外添加的`className`,默认不添加
29
29
 
@@ -11,23 +11,30 @@ sidebar: doc
11
11
 
12
12
  | 属性 | 说明 | 类型 | 默认值 |
13
13
  | --- | --- | --- | --- |
14
- | labelWidth | 定义所有子孙`FormItem`组件的`label`宽度 | `String` &#124; `Number` | `undefined` |
14
+ | labelWidth | 定义所有子孙`FormItem`组件的`label`宽度 | `string` &#124; `number` | `undefined` |
15
15
  | layout | 指定表单布局方式 | `"horizontal"` &#124; `"vertical"` &#124; `"inline"` | `"horizontal"` |
16
- | starOnRequired | 当`FormItem`必填时,是否在`label`前面展示`*` | `Boolean` | `false` |
16
+ | starOnRequired | 当`FormItem`必填时,是否在`label`前面展示`*` | `boolean` | `false` |
17
+ | size | 定义表单之间的间隔大小 | `"default"` &#124; `"small"` &#124; `"mini"` | `"default"` |
17
18
 
18
19
  ## FormItem
19
20
 
20
21
  | 属性 | 说明 | 类型 | 默认值 |
21
22
  | --- | --- | --- | --- |
22
- | value | 指定需要验证的数据 | `*` | `undefined` |
23
- | rules | 指定验证规则 | `Object` | `{}` |
24
- | messages | 指定验证失败时错误提示文案 | `Object` | `{}` |
25
- | classNames | 指定验证失败时添加的className | `Object` | `{}` |
26
- | label | 指定表单每一项前面展示的标题 | `String` | `undefined` |
27
- | htmlFor | 指定`label`的`for`属性 | `String` | `undefined` |
28
- | hideLabel | 是否隐藏`label`,默认会展示`label`,即使该属性为空,也会展示占位元素 | `Boolean` | `false` |
29
- | fluid | `FormItem`的宽度默认是被子元素撑开的,添加该属性可以渲染`100%`的宽度 | `Boolean` | `false` |
30
- | size | 控制`FormItem`的间距 | `"default"` &#124; `"small"` &#124; `"mini"` | `"default"` |
23
+ | value | 指定需要验证的数据 | `any` | `undefined` |
24
+ | rules | 指定验证规则 | `Record<string, any>` | `undefined` |
25
+ | messages | 指定验证失败时错误提示文案 | `Record<string, Message>` | `undefined` |
26
+ | classNames | 指定验证失败时添加的className | `Record<string, Classname>` | `undefined` |
27
+ | errorClassName | 指定验证失败时统一添加的className,不管是哪个规则导致的失败 | `string` | `undefined` |
28
+ | label | 指定表单每一项前面展示的标题 | `string` | `undefined` |
29
+ | htmlFor | 指定`label`的`for`属性 | `string` | `undefined` |
30
+ | hideLabel | 是否隐藏`label`,默认会展示`label`,即使该属性为空,也会展示占位元素 | `boolean` | `false` |
31
+ | fluid | `FormItem`的宽度默认是被子元素撑开的,添加该属性可以渲染`100%`的宽度 | `boolean` | `false` |
32
+
33
+ ```ts
34
+ type Method = (value: any, param: any) => boolean | string
35
+ type Message = string | ((value: any, param: any) => string)
36
+ type ClassName = string | ((value: any, param: any) => string)
37
+ ```
31
38
 
32
39
  # 扩展点
33
40
 
@@ -45,7 +52,7 @@ sidebar: doc
45
52
 
46
53
  | 事件名 | 说明 | 参数 |
47
54
  | --- | --- | --- |
48
- | submit | 当表单提交并且所有规则都验证通过时触发 | 1. `Event` <br /> 2. `Form`实例 |
55
+ | submit | 当表单提交并且所有规则都验证通过时触发 | `(event: Event) => void` |
49
56
 
50
57
  # 方法
51
58
 
@@ -53,7 +60,7 @@ sidebar: doc
53
60
 
54
61
  | 方法名 | 说明 | 参数 | 返回值 |
55
62
  | --- | --- | --- | --- |
56
- | validate | 验证表单所有规则 | - | `Promise`: `.then(valid => {})`,`valid`为`true`验证成功,否则失败 |
63
+ | validate | 验证表单所有规则 | - | `Promise<boolean>`: `.then(valid => {})`,`valid`为`true`验证成功,否则失败 |
57
64
  | reset | 重置表单验证状态 | - | `undefined` |
58
65
  | getFirstInvalidFormItem | 获取第一条出错的`FormItem` | - | `FormItem` |
59
66
 
@@ -67,4 +74,13 @@ sidebar: doc
67
74
  | --- | --- | --- | --- |
68
75
  | addMethod | 添加全局验证规则,这样在所有`FormItem`中如果需要使用该规则,只需要在`rules`中写上该规则名即可 | 1. `name` 指定规则名称,不能重复 <br /> 2. `method` 指定该规则的验证函数,该函数返回`true`或`false`来标识验证成功或失败,如果返回字符串,则直接当做错误文案展示,该函数将传入3个参数:1. 当前验证的值,2. 当前验证的`FormItem`实例,3. 当前规则的参数,即使用该规则时指定的值 <br /> 3. `message` 验证失败时的错误提示文案,该值可以为字符串或者函数,如果为函数,传入参数同`method`,用于个性化文案提示 <br /> 4. `className` 验证失败时添加的类名 | `undefined` |
69
76
 
77
+ ```ts
78
+ export declare const addMethod: (
79
+ name: string,
80
+ method: Method,
81
+ message?: Message | undefined,
82
+ className?: ClassName | undefined
83
+ ) => void;
84
+ ```
85
+
70
86
  [1]: https://github.com/ksc-fe/kpc/issues/6
@@ -1,4 +1,4 @@
1
- import BasicDemo from '~/components/form/demos/basic';
1
+ import BasicDemo, {data as basicDemoData} from '~/components/form/demos/basic';
2
2
  import CustomDemo from '~/components/form/demos/custom';
3
3
  import VariableDemo from '~/components/form/demos/variable';
4
4
  import RemoteDemo from '~/components/form/demos/remote';
@@ -21,10 +21,10 @@ RemoteDemo.prototype.validateUserName = function(value) {
21
21
  };
22
22
 
23
23
  describe('Form', () => {
24
- afterEach(() => unmount());
24
+ // afterEach(() => unmount());
25
25
 
26
26
  it('validate', async () => {
27
- const [instance, element] = mount(BasicDemo);
27
+ const [instance, element] = mount(BasicDemo, null, basicDemoData);
28
28
  const form = instance.refs.form as Form;
29
29
 
30
30
  await instance.handleSubmit();
@@ -53,14 +53,14 @@ describe('Form', () => {
53
53
  const [input, input1] = Array.from<HTMLElement>(element.querySelectorAll('input'));
54
54
  instance.set<{'descriptions.0': string}>('descriptions.0', '1');
55
55
  dispatchEvent(input, 'focusout');
56
- await wait(300);
56
+ await wait(500);
57
57
  expect(element.innerHTML).to.matchSnapshot();
58
58
 
59
59
  instance.set<{'descriptions.0': string}>('descriptions.0', 'a');
60
60
  expect(element.innerHTML).to.matchSnapshot();
61
61
  instance.set<{'descriptions.1': string}>('descriptions.1', 'a');
62
62
  dispatchEvent(input1, 'focusout');
63
- await wait(300);
63
+ await wait(500);
64
64
  expect(element.innerHTML).to.matchSnapshot();
65
65
  instance.set<{'descriptions.1': string}>('descriptions.1', 'b');
66
66
  expect(element.innerHTML).to.matchSnapshot();
@@ -74,10 +74,10 @@ describe('Form', () => {
74
74
  expect(res).to.be.true;
75
75
 
76
76
  instance.set('firstName', 'a');
77
- await wait(100);
77
+ await wait(500);
78
78
  expect(element.innerHTML).to.matchSnapshot();
79
79
  instance.set('lastName', 'b');
80
- await wait(100);
80
+ await wait(500);
81
81
  expect(element.innerHTML).to.matchSnapshot();
82
82
  });
83
83
 
@@ -90,14 +90,14 @@ describe('Form', () => {
90
90
  await wait();
91
91
  let res = await form.validate();
92
92
  expect(res).to.be.false;
93
- await wait(300);
93
+ await wait(500);
94
94
  expect(element.innerHTML).to.matchSnapshot();
95
95
 
96
96
  i.set('userName', 'b');
97
97
  await wait();
98
98
  res = await form.validate();
99
99
  expect(res).to.be.true;
100
- await wait(300);
100
+ await wait(500);
101
101
  expect(element.innerHTML).to.matchSnapshot();
102
102
  });
103
103
 
@@ -3,6 +3,7 @@ import {Tooltip} from '../tooltip';
3
3
  import {Icon} from '../icon';
4
4
  import {Transition} from 'intact';
5
5
  import {makeItemStyles} from './styles';
6
+ import {context as ErrorContext} from './useError';
6
7
 
7
8
  const {
8
9
  className, children, label,
@@ -49,7 +50,11 @@ const {ellipsis, message, errorRef} = this.error;
49
50
  <b:label>{label}</b:label>
50
51
  </label>
51
52
  <div class="k-form-content">
52
- <b:content>{children}</b:content>
53
+ <ErrorContext.Provider value={isDirty && !isValid}>
54
+ <template>
55
+ <b:content>{children}</b:content>
56
+ </template>
57
+ </ErrorContext.Provider>
53
58
  <Transition key="error" name="k-fade" >
54
59
  <div v-if={isDirty && !isValid}
55
60
  class={{
@@ -138,7 +138,12 @@ export const messages: Record<string, Message> = {
138
138
 
139
139
  export const classNames: Record<string, ClassName> = {};
140
140
 
141
- export const addMethod = function(name: string, method: Method, message?: Message, className?: ClassName) {
141
+ export const addMethod = function(
142
+ name: string,
143
+ method: Method,
144
+ message?: Message,
145
+ className?: ClassName
146
+ ) {
142
147
  methods[name] = method;
143
148
  messages[name] = message !== undefined ? message : messages[name];
144
149
  if (className) {
@@ -33,7 +33,7 @@ const defaults = {
33
33
  },
34
34
  };
35
35
 
36
- let form: any;
36
+ let form: typeof defaults;
37
37
  setDefault(() => {
38
38
  form = deepDefaults(theme, {form: defaults}).form;
39
39
  });
@@ -3,12 +3,15 @@ import type {FormItem} from './item';
3
3
  import {useState, watchState} from '../../hooks/useState';
4
4
  import {messages as globalMessages, classNames as globalClassNames} from './methods';
5
5
  import {isFunction} from 'intact-shared';
6
+ import {createContext} from '../context';
6
7
 
7
8
  // enum MessageOrClassname {
8
9
  // Message,
9
10
  // ClassName,
10
11
  // }
11
12
 
13
+ export const context = createContext();
14
+
12
15
  export function useError() {
13
16
  const instance = useInstance() as FormItem;
14
17
  const ellipsis = useState(false);
@@ -82,7 +82,7 @@ export function useValidate(
82
82
  return [
83
83
  false,
84
84
  result || getErrorMessage(ruleName),
85
- getErrorMessage(ruleName),
85
+ getErrorClassName(ruleName),
86
86
  ];
87
87
  }
88
88
  }
@@ -94,7 +94,7 @@ export function useValidate(
94
94
  message = err;
95
95
  } else if (err) {
96
96
  message = err.message || getErrorMessage(err.name);
97
- className = err.className || getErrorMessage(err.name);
97
+ className = err.className || getErrorClassName(err.name);
98
98
  }
99
99
 
100
100
  return [false, message!, className!];
@@ -22,7 +22,7 @@ const {className, children, span, style, offset, push, pull, order} = this.get()
22
22
  return (
23
23
  <div class={classNameObj} {...getRestProps(this)} style={newStyle}>
24
24
  {gutter ?
25
- <div class={className}>{children}</div> :
25
+ <div class={{'k-col-wrapper': true, [className]: className}}>{children}</div> :
26
26
  children
27
27
  }
28
28
  </div>
@@ -11,23 +11,44 @@ sidebar: doc
11
11
 
12
12
  | 属性 | 说明 | 类型 | 默认值 |
13
13
  | --- | --- | --- | --- |
14
- | gutter | 栅格间距,单位`px`;也可以以对象的方式指定响应式间距 | `Number` &#124; `Object` | `0` |
14
+ | gutter | 栅格间距,单位`px`;也可以以对象的方式指定响应式间距 | `PrimitiveValue` &#124; `BreakpointValue` | `undefined` |
15
15
  | justify | 定义列水平方向布局,会自动启用`flex`布局 | `"start"` &#124; `"end"` &#124; `"center"` &#124; `"between"` &#124; `"around"` &#124; `"evenly"` | `undefined` |
16
16
  | align | 定义列垂直方向布局,会自动启用`flex`布局 | `"top"` &#124; `"bottom"` &#124; `"middle"` &#124; `"stretch"` &#124; `"baseline"` | `undefined` |
17
- | flex | 是否强制启用`flex`布局 | `Boolean` | `false` |
17
+
18
+ ```ts
19
+ export type Breakpoint = 'xxl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs';
20
+ export type PrimitiveValue = string | number
21
+ export type BreakpointValue = {
22
+ [key in Breakpoint]?: PrimitiveValue
23
+ };
24
+ export type Value = PrimitiveValue | BreakpointValue;
25
+ ```
18
26
 
19
27
  ## Col
20
28
 
21
29
  | 属性 | 说明 | 类型 | 默认值 |
22
30
  | --- | --- | --- | --- |
23
- | span | 栅格所占宽度,可选值为0到24的整数 | `String` &#124; `Number` | `24` |
24
- | offset | 栅格左侧偏移量 | `String` &#124; `Number` | `0` |
25
- | order | 定义列的顺序,会自动启用`flex`布局 | `String` &#124; `Number` | `0` |
26
- | pull | 定义列距离右边界的栅格数 | `String` &#124; `Number` | `0` |
27
- | push | 定义列距离左边界的栅格数 | `String` &#124; `Number` | `0` |
28
- | xs | 响应式宽度 `<576px` | `String` &#124; `Number` &#124; `Object` | `undefined` |
29
- | sm | 响应式宽度 `≥576px` | `String` &#124; `Number` &#124; `Object` | `undefined` |
30
- | md | 响应式宽度 `≥768px` | `String` &#124; `Number` &#124; `Object` | `undefined` |
31
- | lg | 响应式宽度 `≥992px` | `String` &#124; `Number` &#124; `Object` | `undefined` |
32
- | xl | 响应式宽度 `≥1200px` | `String` &#124; `Number` &#124; `Object` | `undefined` |
33
- | xxl | 响应式宽度 `≥1600px` | `String` &#124; `Number` &#124; `Object` | `undefined` |
31
+ | span | 栅格所占宽度,可选值为0到24的整数 | `string` &#124; `number` | `24` |
32
+ | offset | 栅格左侧偏移量 | `string` &#124; `number` | `0` |
33
+ | order | 定义列的顺序,会自动启用`flex`布局 | `string` &#124; `number` | `0` |
34
+ | pull | 定义列距离右边界的栅格数 | `string` &#124; `number` | `0` |
35
+ | push | 定义列距离左边界的栅格数 | `string` &#124; `number` | `0` |
36
+ | xs | 响应式宽度 `<576px` | `BreakpointValue` | `undefined` |
37
+ | sm | 响应式宽度 `≥576px` | `BreakpointValue` | `undefined` |
38
+ | md | 响应式宽度 `≥768px` | `BreakpointValue` | `undefined` |
39
+ | lg | 响应式宽度 `≥992px` | `BreakpointValue` | `undefined` |
40
+ | xl | 响应式宽度 `≥1200px` | `BreakpointValue` | `undefined` |
41
+ | xxl | 响应式宽度 `≥1600px` | `BreakpointValue` | `undefined` |
42
+
43
+ ```ts
44
+ export type BaseColProps = {
45
+ span?: PrimitiveValue,
46
+ offset?: PrimitiveValue,
47
+ order?: PrimitiveValue,
48
+ pull?: PrimitiveValue,
49
+ push?: PrimitiveValue,
50
+ }
51
+ type BreakpointValue =
52
+ | PrimitiveValue
53
+ | {[key in keyof BaseColProps]?: PrimitiveValue}
54
+ ```
@@ -6,7 +6,7 @@ import {breakpoints, responsiveMap} from './constants';
6
6
 
7
7
  const defaults = {};
8
8
 
9
- let grid: any;
9
+ let grid: typeof defaults;
10
10
  setDefault(() => {
11
11
  grid = deepDefaults(theme, {grid: defaults}).grid;
12
12
  });
@@ -59,6 +59,9 @@ export function makeColStyles() {
59
59
  return css`
60
60
  position: relative;
61
61
  width: 100%;
62
+ .k-col-wrapper {
63
+ height: 100%;
64
+ }
62
65
  ${colsStyles}
63
66
  `;
64
67
  }
@@ -9,5 +9,7 @@ sidebar: doc
9
9
 
10
10
  | 属性 | 说明 | 类型 | 默认值 |
11
11
  | --- | --- | --- | --- |
12
- | size | 定义图标尺寸 | `"default"` &#124; `"large"` &#124; `"small"` &#124; `"mini"` &#124; `String` &#124; `Number` | `"default"` |
13
- | color | 图标颜色 | `"default"` &#124; `"primary"` &#124; `"danger"` &#124; `"warning"` &#124; `"success"` &#124; `String` | `undefined` |
12
+ | size | 定义图标尺寸 | `"default"` &#124; `"large"` &#124; `"small"` &#124; `"mini"` &#124; `string` &#124; `number` | `"default"` |
13
+ | color | 图标颜色 | `"default"` &#124; `"primary"` &#124; `"danger"` &#124; `"warning"` &#124; `"success"` &#124; `string` | `undefined` |
14
+ | rotate | 是否一直旋转图标 | `boolean` | `false` |
15
+ | hoverable | 图标是否具有`hover`效果 | `boolean` | `false` |
@@ -1,7 +1,7 @@
1
1
  import {addStyle, getRestProps} from '../utils';
2
2
  import makeStyles from './styles';
3
3
 
4
- const {className, style, size, color, rotate, hoverable} = this.get();
4
+ const {className, style, size, color, rotate, hoverable, children} = this.get();
5
5
 
6
6
  const classNameObj = {
7
7
  'k-icon': true,
@@ -28,4 +28,4 @@ if (this.colors.indexOf(color) > -1) {
28
28
  <i class={classNameObj}
29
29
  style={addStyle(style, _style)}
30
30
  {...getRestProps(this)}
31
- ></i>
31
+ >{children}</i>