@king-design/intact 2.1.1 → 3.0.0-beta.1

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 (468) hide show
  1. package/README.md +1 -1
  2. package/components/button/demos/basic.md +1 -0
  3. package/components/button/demos/group.md +11 -0
  4. package/components/button/demos/icon.md +1 -0
  5. package/components/button/index.md +1 -1
  6. package/components/button/index.ts +2 -2
  7. package/components/button/styles.ts +10 -2
  8. package/components/card/styles.ts +3 -2
  9. package/components/checkbox/styles.ts +31 -6
  10. package/components/collapse/styles.ts +4 -1
  11. package/components/copy/demos/basic.md +12 -0
  12. package/components/copy/demos/children.md +37 -0
  13. package/components/copy/index.md +21 -0
  14. package/components/copy/index.spec.ts +21 -0
  15. package/components/copy/index.ts +37 -0
  16. package/components/copy/index.vdt +23 -0
  17. package/components/copy/styles.ts +9 -0
  18. package/components/copy/useCopy.ts +91 -0
  19. package/components/datepicker/demos/basic.md +1 -0
  20. package/components/datepicker/index.md +2 -0
  21. package/components/datepicker/index.spec.ts +2 -2
  22. package/components/datepicker/index.vdt +2 -2
  23. package/components/datepicker/styles.ts +13 -5
  24. package/components/dialog/alert.vdt +10 -6
  25. package/components/dialog/base.vdt +4 -5
  26. package/components/dialog/index.spec.ts +4 -4
  27. package/components/dialog/styles.ts +18 -13
  28. package/components/drawer/styles.ts +20 -10
  29. package/components/dropdown/demos/tooltip.md +1 -1
  30. package/components/dropdown/index.spec.ts +1 -1
  31. package/components/dropdown/styles.ts +1 -1
  32. package/components/form/index.spec.ts +1 -1
  33. package/components/form/item.vdt +1 -1
  34. package/components/form/styles.ts +21 -26
  35. package/components/grid/useGutter.ts +7 -6
  36. package/components/icon/demos/disabled.md +21 -0
  37. package/components/icon/demos/icons.md +87 -116
  38. package/components/icon/index.md +1 -0
  39. package/components/icon/index.ts +2 -0
  40. package/components/icon/index.vdt +6 -2
  41. package/components/icon/styles.ts +8 -1
  42. package/components/input/demos/flat.md +16 -0
  43. package/components/input/index.md +1 -0
  44. package/components/input/index.ts +4 -10
  45. package/components/input/index.vdt +2 -1
  46. package/components/input/styles.ts +29 -21
  47. package/components/message/demos/basic.md +1 -1
  48. package/components/message/demos/duration.md +3 -3
  49. package/components/message/index.md +1 -1
  50. package/components/message/message.ts +2 -2
  51. package/components/message/message.vdt +6 -6
  52. package/components/message/styles.ts +10 -19
  53. package/components/pagination/demos/flat.md +22 -0
  54. package/components/pagination/index.md +1 -1
  55. package/components/pagination/index.spec.ts +1 -1
  56. package/components/pagination/index.ts +2 -2
  57. package/components/pagination/index.vdt +15 -18
  58. package/components/pagination/styles.ts +13 -9
  59. package/components/popover/content.ts +40 -0
  60. package/components/popover/content.vdt +32 -0
  61. package/components/popover/demos/basic.md +47 -0
  62. package/components/popover/demos/button.md +49 -0
  63. package/components/popover/demos/content.md +36 -0
  64. package/components/popover/demos/text.md +38 -0
  65. package/components/popover/demos/type.md +51 -0
  66. package/components/popover/index.md +54 -0
  67. package/components/popover/index.spec.ts +91 -0
  68. package/components/popover/index.ts +52 -0
  69. package/components/popover/styles.ts +45 -0
  70. package/components/progress/demos/children.md +1 -1
  71. package/components/progress/demos/circleSize.md +84 -0
  72. package/components/progress/demos/customColor.md +1 -3
  73. package/components/progress/index.ts +1 -1
  74. package/components/progress/index.vdt +36 -7
  75. package/components/progress/styles.ts +34 -21
  76. package/components/radio/styles.ts +28 -9
  77. package/components/rate/styles.ts +1 -0
  78. package/components/select/base.ts +8 -2
  79. package/components/select/base.vdt +40 -39
  80. package/components/select/demos/basic.md +21 -12
  81. package/components/select/demos/creatable.md +1 -1
  82. package/components/select/demos/draggable.md +55 -0
  83. package/components/select/demos/flat.md +42 -0
  84. package/components/select/demos/nowrap.md +24 -0
  85. package/components/select/demos/size.md +41 -1
  86. package/components/select/index.md +2 -0
  87. package/components/select/index.spec.ts +2 -2
  88. package/components/select/menu.vdt +5 -5
  89. package/components/select/styles.ts +55 -64
  90. package/components/select/useDraggble.ts +12 -0
  91. package/components/select/useNowrap.ts +24 -0
  92. package/components/slider/index.spec.ts +32 -1
  93. package/components/slider/index.ts +2 -2
  94. package/components/slider/index.vdt +34 -16
  95. package/components/slider/styles.ts +21 -13
  96. package/components/slider/useValue.ts +15 -3
  97. package/components/spinner/index.md +1 -1
  98. package/components/spinner/index.ts +0 -9
  99. package/components/spinner/index.vdt +13 -8
  100. package/components/spinner/styles.ts +36 -36
  101. package/components/spinner/useChange.ts +2 -2
  102. package/components/spinner/useValue.ts +9 -1
  103. package/components/split/index.vdt +13 -3
  104. package/components/split/memo.ts +29 -0
  105. package/components/steps/demos/basic.md +2 -1
  106. package/components/steps/demos/clickable.md +6 -0
  107. package/components/steps/demos/error.md +25 -5
  108. package/components/steps/demos/line.md +7 -6
  109. package/components/steps/demos/simple.md +0 -6
  110. package/components/steps/demos/vertical.md +79 -0
  111. package/components/steps/index.md +2 -1
  112. package/components/steps/index.spec.ts +1 -1
  113. package/components/steps/index.ts +7 -5
  114. package/components/steps/index.vdt +5 -3
  115. package/components/steps/step.vdt +16 -13
  116. package/components/steps/styles.ts +422 -255
  117. package/components/switch/demos/basic.md +1 -2
  118. package/components/switch/demos/disabled.md +20 -0
  119. package/components/switch/demos/onOff.md +5 -0
  120. package/components/switch/index.spec.ts +15 -10
  121. package/components/switch/styles.ts +29 -37
  122. package/components/table/styles.ts +11 -6
  123. package/components/table/useDraggable.ts +4 -3
  124. package/components/table/useStickyScrollbar.ts +2 -2
  125. package/components/table/useWidth.ts +2 -2
  126. package/components/tabs/demos/basic.md +0 -1
  127. package/components/tabs/demos/beforeChange.md +2 -2
  128. package/components/tabs/demos/card.md +2 -11
  129. package/components/tabs/demos/closable.md +7 -6
  130. package/components/tabs/demos/scroll.md +104 -0
  131. package/components/tabs/demos/vertical.md +1 -9
  132. package/components/tabs/index.md +1 -1
  133. package/components/tabs/index.spec.ts +36 -0
  134. package/components/tabs/index.ts +11 -12
  135. package/components/tabs/index.vdt +8 -9
  136. package/components/tabs/styles.ts +205 -186
  137. package/components/tabs/useScroll.ts +101 -42
  138. package/components/tag/base.ts +2 -2
  139. package/components/tag/demos/border.md +2 -2
  140. package/components/tag/demos/draggable.md +49 -0
  141. package/components/tag/demos/tags.md +72 -0
  142. package/components/tag/index.md +12 -1
  143. package/components/tag/index.spec.ts +70 -2
  144. package/components/tag/index.ts +2 -0
  145. package/components/tag/styles.ts +59 -9
  146. package/components/tag/tags.ts +54 -0
  147. package/components/tag/tags.vdt +49 -0
  148. package/components/tag/useChildren.ts +42 -0
  149. package/components/tag/useDraggable.ts +97 -0
  150. package/components/tag/useNowrap.ts +117 -0
  151. package/components/timepicker/index.md +2 -0
  152. package/components/timepicker/index.spec.ts +1 -1
  153. package/components/tip/index.vdt +1 -3
  154. package/components/tip/styles.ts +8 -2
  155. package/components/tooltip/content.ts +6 -6
  156. package/components/tooltip/content.vdt +8 -7
  157. package/components/tooltip/index.md +3 -6
  158. package/components/tooltip/index.spec.ts +6 -36
  159. package/components/tooltip/styles.ts +10 -8
  160. package/components/transfer/index.vdt +3 -2
  161. package/components/transfer/styles.ts +1 -0
  162. package/components/transfer/useCheck.ts +9 -2
  163. package/components/treeSelect/index.md +2 -0
  164. package/components/upload/demos/manually.md +12 -13
  165. package/components/upload/index.spec.ts +4 -4
  166. package/components/upload/index.vdt +40 -34
  167. package/components/upload/styles.ts +58 -64
  168. package/components/utils.ts +25 -4
  169. package/es/components/button/index.d.ts +1 -1
  170. package/es/components/button/index.js +1 -1
  171. package/es/components/button/styles.js +3 -3
  172. package/es/components/card/styles.js +10 -2
  173. package/es/components/checkbox/styles.js +21 -10
  174. package/es/components/collapse/styles.js +6 -1
  175. package/es/components/copy/index.d.ts +17 -0
  176. package/es/components/copy/index.js +43 -0
  177. package/es/components/copy/index.spec.d.ts +1 -0
  178. package/es/components/copy/index.spec.js +52 -0
  179. package/es/components/copy/index.vdt.js +45 -0
  180. package/es/components/copy/styles.d.ts +2 -0
  181. package/es/components/copy/styles.js +14 -0
  182. package/es/components/copy/useCopy.d.ts +4 -0
  183. package/es/components/copy/useCopy.js +90 -0
  184. package/es/components/datepicker/index.spec.js +1 -1
  185. package/es/components/datepicker/index.vdt.js +1 -1
  186. package/es/components/datepicker/styles.d.ts +1 -1
  187. package/es/components/datepicker/styles.js +5 -2
  188. package/es/components/diagram/shapes/callout.d.ts +1 -1
  189. package/es/components/diagram/shapes/circle.d.ts +1 -1
  190. package/es/components/diagram/shapes/document.d.ts +1 -1
  191. package/es/components/diagram/shapes/ellipse.d.ts +1 -1
  192. package/es/components/diagram/shapes/hexagon.d.ts +1 -1
  193. package/es/components/diagram/shapes/image.d.ts +1 -1
  194. package/es/components/diagram/shapes/parallelogram.d.ts +1 -1
  195. package/es/components/diagram/shapes/rectangle.d.ts +1 -1
  196. package/es/components/diagram/shapes/square.d.ts +1 -1
  197. package/es/components/diagram/shapes/text.d.ts +1 -1
  198. package/es/components/dialog/alert.vdt.js +6 -5
  199. package/es/components/dialog/base.vdt.js +5 -6
  200. package/es/components/dialog/index.spec.js +4 -4
  201. package/es/components/dialog/styles.js +16 -14
  202. package/es/components/drawer/styles.js +20 -5
  203. package/es/components/dropdown/styles.js +1 -1
  204. package/es/components/form/index.spec.js +4 -2
  205. package/es/components/form/item.vdt.js +2 -1
  206. package/es/components/form/styles.js +5 -5
  207. package/es/components/grid/useGutter.js +8 -8
  208. package/es/components/icon/index.d.ts +1 -0
  209. package/es/components/icon/index.js +2 -1
  210. package/es/components/icon/index.vdt.js +4 -2
  211. package/es/components/icon/styles.js +10 -2
  212. package/es/components/input/index.d.ts +1 -0
  213. package/es/components/input/index.js +4 -11
  214. package/es/components/input/index.vdt.js +4 -2
  215. package/es/components/input/styles.js +13 -11
  216. package/es/components/message/message.js +1 -1
  217. package/es/components/message/message.vdt.js +7 -6
  218. package/es/components/message/styles.js +8 -8
  219. package/es/components/pagination/index.d.ts +1 -1
  220. package/es/components/pagination/index.js +1 -1
  221. package/es/components/pagination/index.spec.js +4 -2
  222. package/es/components/pagination/index.vdt.js +16 -18
  223. package/es/components/pagination/styles.js +12 -3
  224. package/es/components/popover/content.d.ts +19 -0
  225. package/es/components/popover/content.js +31 -0
  226. package/es/components/popover/content.vdt.js +68 -0
  227. package/es/components/popover/index.d.ts +16 -0
  228. package/es/components/popover/index.js +44 -0
  229. package/es/components/popover/index.spec.d.ts +1 -0
  230. package/es/components/popover/index.spec.js +195 -0
  231. package/es/components/popover/styles.d.ts +1 -0
  232. package/es/components/popover/styles.js +22 -0
  233. package/es/components/progress/index.js +1 -1
  234. package/es/components/progress/index.vdt.js +46 -8
  235. package/es/components/progress/styles.js +19 -13
  236. package/es/components/radio/styles.js +16 -6
  237. package/es/components/rate/styles.js +1 -1
  238. package/es/components/select/base.d.ts +5 -2
  239. package/es/components/select/base.js +7 -3
  240. package/es/components/select/base.vdt.js +46 -38
  241. package/es/components/select/index.spec.js +2 -2
  242. package/es/components/select/menu.vdt.js +1 -1
  243. package/es/components/select/styles.js +14 -28
  244. package/es/components/select/useDraggble.d.ts +2 -0
  245. package/es/components/select/useDraggble.js +11 -0
  246. package/es/components/select/useNowrap.d.ts +3 -0
  247. package/es/components/select/useNowrap.js +19 -0
  248. package/es/components/slider/index.spec.js +48 -9
  249. package/es/components/slider/index.vdt.js +23 -12
  250. package/es/components/slider/styles.js +23 -14
  251. package/es/components/slider/useValue.d.ts +3 -1
  252. package/es/components/slider/useValue.js +12 -0
  253. package/es/components/spinner/index.d.ts +0 -1
  254. package/es/components/spinner/index.js +1 -19
  255. package/es/components/spinner/index.vdt.js +15 -8
  256. package/es/components/spinner/styles.js +33 -5
  257. package/es/components/spinner/useChange.d.ts +1 -1
  258. package/es/components/spinner/useChange.js +2 -2
  259. package/es/components/spinner/useValue.d.ts +1 -0
  260. package/es/components/spinner/useValue.js +16 -1
  261. package/es/components/split/index.vdt.js +32 -20
  262. package/es/components/split/memo.d.ts +9 -0
  263. package/es/components/split/memo.js +26 -0
  264. package/es/components/steps/index.d.ts +3 -2
  265. package/es/components/steps/index.js +4 -3
  266. package/es/components/steps/index.spec.js +1 -1
  267. package/es/components/steps/index.vdt.js +8 -4
  268. package/es/components/steps/step.vdt.js +17 -9
  269. package/es/components/steps/styles.d.ts +2 -1
  270. package/es/components/steps/styles.js +106 -72
  271. package/es/components/switch/index.spec.js +82 -65
  272. package/es/components/switch/styles.js +20 -34
  273. package/es/components/table/styles.js +9 -4
  274. package/es/components/table/useDraggable.js +3 -10
  275. package/es/components/table/useStickyScrollbar.js +2 -2
  276. package/es/components/table/useWidth.js +2 -2
  277. package/es/components/tabs/index.d.ts +1 -1
  278. package/es/components/tabs/index.js +1 -1
  279. package/es/components/tabs/index.spec.js +67 -0
  280. package/es/components/tabs/index.vdt.js +5 -5
  281. package/es/components/tabs/styles.js +73 -29
  282. package/es/components/tabs/useScroll.d.ts +1 -1
  283. package/es/components/tabs/useScroll.js +75 -48
  284. package/es/components/tag/base.d.ts +1 -0
  285. package/es/components/tag/base.js +2 -2
  286. package/es/components/tag/index.d.ts +1 -0
  287. package/es/components/tag/index.js +2 -1
  288. package/es/components/tag/index.spec.js +147 -4
  289. package/es/components/tag/styles.d.ts +67 -0
  290. package/es/components/tag/styles.js +42 -12
  291. package/es/components/tag/tags.d.ts +27 -0
  292. package/es/components/tag/tags.js +51 -0
  293. package/es/components/tag/tags.vdt.js +79 -0
  294. package/es/components/tag/useChildren.d.ts +2 -0
  295. package/es/components/tag/useChildren.js +39 -0
  296. package/es/components/tag/useDraggable.d.ts +3 -0
  297. package/es/components/tag/useDraggable.js +89 -0
  298. package/es/components/tag/useNowrap.d.ts +7 -0
  299. package/es/components/tag/useNowrap.js +115 -0
  300. package/es/components/timepicker/index.spec.js +1 -1
  301. package/es/components/tip/index.vdt.js +1 -3
  302. package/es/components/tip/styles.js +4 -3
  303. package/es/components/tooltip/content.d.ts +2 -2
  304. package/es/components/tooltip/content.vdt.js +23 -13
  305. package/es/components/tooltip/index.spec.js +56 -108
  306. package/es/components/tooltip/styles.d.ts +1 -0
  307. package/es/components/tooltip/styles.js +13 -8
  308. package/es/components/transfer/index.vdt.js +3 -1
  309. package/es/components/transfer/styles.js +1 -1
  310. package/es/components/transfer/useCheck.d.ts +1 -0
  311. package/es/components/transfer/useCheck.js +8 -1
  312. package/es/components/upload/index.spec.js +5 -6
  313. package/es/components/upload/index.vdt.js +24 -21
  314. package/es/components/upload/styles.js +22 -30
  315. package/es/components/utils.d.ts +2 -0
  316. package/es/components/utils.js +24 -3
  317. package/es/hooks/useResizeObserver.d.ts +1 -1
  318. package/es/hooks/useResizeObserver.js +19 -6
  319. package/es/i18n/en-US.d.ts +6 -2
  320. package/es/i18n/en-US.js +8 -3
  321. package/es/index.d.ts +4 -2
  322. package/es/index.js +4 -2
  323. package/es/packages/kpc-react/__tests__/components/drawer.spec.js +74 -6
  324. package/es/site/data/components/button/demos/basic/react.js +3 -1
  325. package/es/site/data/components/button/demos/group/react.js +26 -0
  326. package/es/site/data/components/button/demos/icon/react.js +6 -0
  327. package/es/site/data/components/copy/demos/basic/react.js +23 -0
  328. package/es/site/data/components/copy/demos/children/react.js +44 -0
  329. package/es/site/data/components/copy/index.d.ts +57 -0
  330. package/es/site/data/components/copy/index.js +42 -0
  331. package/es/site/data/components/datepicker/demos/basic/react.js +8 -0
  332. package/es/site/data/components/dropdown/demos/tooltip/react.js +2 -1
  333. package/es/site/data/components/icon/demos/disabled/index.d.ts +6 -0
  334. package/es/site/data/components/icon/demos/disabled/index.js +18 -0
  335. package/es/site/data/components/icon/demos/disabled/react.d.ts +5 -0
  336. package/es/site/data/components/icon/demos/disabled/react.js +33 -0
  337. package/es/site/data/components/icon/demos/icons/index.js +1 -1
  338. package/es/site/data/components/icon/demos/icons/react.js +1 -1
  339. package/es/site/data/components/input/demos/flat/index.d.ts +5 -0
  340. package/es/site/data/components/input/demos/flat/index.js +17 -0
  341. package/es/site/data/components/input/demos/flat/react.d.ts +4 -0
  342. package/es/site/data/components/input/demos/flat/react.js +29 -0
  343. package/es/site/data/components/message/demos/duration/index.js +2 -2
  344. package/es/site/data/components/message/demos/duration/react.js +2 -2
  345. package/es/site/data/components/pagination/demos/flat/index.d.ts +6 -0
  346. package/es/site/data/components/pagination/demos/flat/index.js +18 -0
  347. package/es/site/data/components/pagination/demos/flat/react.d.ts +5 -0
  348. package/es/site/data/components/pagination/demos/{noBoard → flat}/react.js +12 -8
  349. package/es/site/data/components/popover/demos/basic/react.d.ts +8 -0
  350. package/es/site/data/components/{tooltip/demos/confirm → popover/demos/basic}/react.js +14 -9
  351. package/es/site/data/components/popover/demos/button/index.d.ts +8 -0
  352. package/es/site/data/components/popover/demos/button/index.js +42 -0
  353. package/es/site/data/components/popover/demos/button/react.d.ts +8 -0
  354. package/es/site/data/components/popover/demos/button/react.js +73 -0
  355. package/es/site/data/components/popover/demos/content/index.d.ts +7 -0
  356. package/es/site/data/components/popover/demos/content/index.js +28 -0
  357. package/es/site/data/components/{tooltip/demos/confirm → popover/demos/content}/react.d.ts +0 -1
  358. package/es/site/data/components/popover/demos/content/react.js +43 -0
  359. package/es/site/data/components/popover/demos/text/index.d.ts +7 -0
  360. package/es/site/data/components/popover/demos/text/index.js +28 -0
  361. package/es/site/data/components/popover/demos/text/react.d.ts +6 -0
  362. package/es/site/data/components/popover/demos/text/react.js +36 -0
  363. package/es/site/data/components/popover/demos/type/index.d.ts +11 -0
  364. package/es/site/data/components/popover/demos/type/index.js +34 -0
  365. package/es/site/data/components/popover/demos/type/react.d.ts +11 -0
  366. package/es/site/data/components/popover/demos/type/react.js +58 -0
  367. package/es/site/data/components/popover/index.d.ts +57 -0
  368. package/es/site/data/components/popover/index.js +42 -0
  369. package/es/site/data/components/progress/demos/children/react.js +4 -4
  370. package/es/site/data/components/progress/demos/circleSize/index.d.ts +14 -0
  371. package/es/site/data/components/progress/demos/circleSize/index.js +43 -0
  372. package/es/site/data/components/progress/demos/circleSize/react.d.ts +14 -0
  373. package/es/site/data/components/progress/demos/circleSize/react.js +98 -0
  374. package/es/site/data/components/progress/demos/customColor/react.js +4 -4
  375. package/es/site/data/components/select/demos/basic/react.js +19 -7
  376. package/es/site/data/components/select/demos/creatable/react.js +2 -1
  377. package/es/site/data/components/select/demos/draggable/index.d.ts +10 -0
  378. package/es/site/data/components/select/demos/draggable/index.js +24 -0
  379. package/es/site/data/components/select/demos/draggable/react.d.ts +10 -0
  380. package/es/site/data/components/select/demos/draggable/react.js +85 -0
  381. package/es/site/data/components/select/demos/flat/index.d.ts +5 -0
  382. package/es/site/data/components/select/demos/flat/index.js +17 -0
  383. package/es/site/data/components/select/demos/flat/react.d.ts +4 -0
  384. package/es/site/data/components/select/demos/flat/react.js +73 -0
  385. package/es/site/data/components/select/demos/inline/index.d.ts +5 -0
  386. package/es/site/data/components/select/demos/inline/index.js +17 -0
  387. package/es/site/data/components/select/demos/inline/react.d.ts +4 -0
  388. package/es/site/data/components/select/demos/nowrap/index.d.ts +5 -0
  389. package/es/site/data/components/select/demos/nowrap/index.js +17 -0
  390. package/es/site/data/components/select/demos/nowrap/react.d.ts +4 -0
  391. package/es/site/data/components/select/demos/nowrap/react.js +41 -0
  392. package/es/site/data/components/select/demos/size/index.d.ts +1 -0
  393. package/es/site/data/components/select/demos/size/index.js +2 -1
  394. package/es/site/data/components/select/demos/size/react.d.ts +1 -0
  395. package/es/site/data/components/select/demos/size/react.js +93 -1
  396. package/es/site/data/components/steps/demos/basic/react.js +1 -1
  397. package/es/site/data/components/steps/demos/clickable/react.js +15 -0
  398. package/es/site/data/components/steps/demos/error/react.js +22 -2
  399. package/es/site/data/components/steps/demos/line/react.js +15 -11
  400. package/es/site/data/components/steps/demos/simple/react.js +1 -11
  401. package/es/site/data/components/steps/demos/vertical/index.d.ts +14 -0
  402. package/es/site/data/components/steps/demos/vertical/index.js +40 -0
  403. package/es/site/data/components/steps/demos/vertical/react.d.ts +14 -0
  404. package/es/site/data/components/steps/demos/vertical/react.js +124 -0
  405. package/es/site/data/components/switch/demos/basic/react.js +0 -2
  406. package/es/site/data/components/switch/demos/disabled/index.d.ts +6 -0
  407. package/es/site/data/components/switch/demos/disabled/index.js +18 -0
  408. package/es/site/data/components/switch/demos/disabled/react.d.ts +5 -0
  409. package/es/site/data/components/switch/demos/disabled/react.js +27 -0
  410. package/es/site/data/components/switch/demos/onOff/react.js +11 -0
  411. package/es/site/data/components/tabs/demos/card/react.js +1 -15
  412. package/es/site/data/components/tabs/demos/closable/index.js +1 -1
  413. package/es/site/data/components/tabs/demos/closable/react.js +9 -3
  414. package/es/site/data/components/tabs/demos/scroll/index.d.ts +18 -0
  415. package/es/site/data/components/tabs/demos/scroll/index.js +87 -0
  416. package/es/site/data/components/tabs/demos/scroll/react.d.ts +18 -0
  417. package/es/site/data/components/tabs/demos/scroll/react.js +166 -0
  418. package/es/site/data/components/tabs/demos/vertical/react.js +1 -16
  419. package/es/site/data/components/tag/demos/border/index.js +1 -1
  420. package/es/site/data/components/tag/demos/border/react.js +1 -1
  421. package/es/site/data/components/tag/demos/draggable/index.d.ts +11 -0
  422. package/es/site/data/components/tag/demos/draggable/index.js +24 -0
  423. package/es/site/data/components/tag/demos/draggable/react.d.ts +11 -0
  424. package/es/site/data/components/tag/demos/draggable/react.js +62 -0
  425. package/es/site/data/components/tag/demos/tags/index.d.ts +12 -0
  426. package/es/site/data/components/tag/demos/tags/index.js +39 -0
  427. package/es/site/data/components/tag/demos/tags/react.d.ts +12 -0
  428. package/es/site/data/components/tag/demos/tags/react.js +83 -0
  429. package/es/site/data/components/upload/demos/manually/react.js +5 -7
  430. package/es/site/src/pages/document/styles.js +1 -1
  431. package/es/styles/fonts/iconfont.eot +0 -0
  432. package/es/styles/fonts/iconfont.js +2 -2
  433. package/es/styles/fonts/iconfont.svg +189 -369
  434. package/es/styles/fonts/iconfont.ttf +0 -0
  435. package/es/styles/fonts/iconfont.woff +0 -0
  436. package/es/styles/fonts/ionicons.js +2 -2
  437. package/es/styles/global.js +1 -1
  438. package/es/styles/theme.d.ts +10 -2
  439. package/es/styles/theme.js +23 -21
  440. package/hooks/useResizeObserver.ts +19 -7
  441. package/i18n/en-US.ts +8 -2
  442. package/index.ts +4 -2
  443. package/package.json +5 -1
  444. package/styles/fonts/iconfont.css +172 -289
  445. package/styles/fonts/iconfont.eot +0 -0
  446. package/styles/fonts/iconfont.svg +189 -369
  447. package/styles/fonts/iconfont.ts +256 -370
  448. package/styles/fonts/iconfont.ttf +0 -0
  449. package/styles/fonts/iconfont.woff +0 -0
  450. package/styles/fonts/iconfont.woff2 +0 -0
  451. package/styles/fonts/ionicons.ts +2 -2
  452. package/styles/global.ts +3 -3
  453. package/styles/theme.ts +23 -19
  454. package/components/pagination/demos/noBoard.md +0 -22
  455. package/components/table/useResizeObserver.ts +0 -22
  456. package/components/tooltip/demos/confirm.md +0 -41
  457. package/es/components/table/useResizeObserver.d.ts +0 -2
  458. package/es/components/table/useResizeObserver.js +0 -20
  459. /package/components/select/demos/{noBorder.md → inline.md} +0 -0
  460. /package/es/site/data/components/{select/demos/noBorder → copy/demos/basic}/index.d.ts +0 -0
  461. /package/es/site/data/components/{select/demos/noBorder → copy/demos/basic}/index.js +0 -0
  462. /package/es/site/data/components/{select/demos/noBorder → copy/demos/basic}/react.d.ts +0 -0
  463. /package/es/site/data/components/{pagination/demos/noBoard → copy/demos/children}/index.d.ts +0 -0
  464. /package/es/site/data/components/{pagination/demos/noBoard → copy/demos/children}/index.js +0 -0
  465. /package/es/site/data/components/{pagination/demos/noBoard → copy/demos/children}/react.d.ts +0 -0
  466. /package/es/site/data/components/{tooltip/demos/confirm → popover/demos/basic}/index.d.ts +0 -0
  467. /package/es/site/data/components/{tooltip/demos/confirm → popover/demos/basic}/index.js +0 -0
  468. /package/es/site/data/components/select/demos/{noBorder → inline}/react.js +0 -0
@@ -0,0 +1,49 @@
1
+ import { TransitionGroup } from 'intact';
2
+ import { getRestProps } from '../utils';
3
+ import { makeTagsStyles } from './styles';
4
+ import { Tag } from './';
5
+ import { Tooltip } from '../tooltip';
6
+ import { Tags } from './tags';
7
+ import { Virtual } from '../virtual';
8
+
9
+ const { className, nowrap, size, border, draggable } = this.get();
10
+
11
+ const classNameObj = {
12
+ 'k-tags': true,
13
+ 'k-nowrap': nowrap,
14
+ 'k-draggable': draggable,
15
+ [makeTagsStyles()]: true,
16
+ [className]: className,
17
+ }
18
+
19
+ const { containerRef, children, hiddenChildren } = this.nowrap;
20
+ const vNodes = children.value;
21
+
22
+ /**
23
+ * We should always render Tooltip in nowrap mode, otherwise it will be removed while we close one tag.
24
+ * Because we will render all tags to calculate the width
25
+ */
26
+ <div class={classNameObj} {...getRestProps(this)} ref={containerRef}>
27
+ <TransitionGroup name="k-fade" v-if={!nowrap}>
28
+ {vNodes}
29
+ </TransitionGroup>
30
+ <template v-else>{vNodes}</template>
31
+ <Tooltip
32
+ v-if={nowrap}
33
+ key="$tooltip"
34
+ hoverable
35
+ theme="light"
36
+ class="k-tags-tooltip"
37
+ >
38
+ <Tag key="$more"
39
+ class={{"k-tags-more": true, 'c-hidden': !hiddenChildren.value.length}}
40
+ size={size}
41
+ border={border}
42
+ >
43
+ +{hiddenChildren.value.length}
44
+ </Tag>
45
+ <b:content>
46
+ <div class={classNameObj}>{hiddenChildren.value}</div>
47
+ </b:content>
48
+ </Tooltip>
49
+ </div>
@@ -0,0 +1,42 @@
1
+ import { VNode, useInstance } from 'intact';
2
+ import type { Tags } from './tags';
3
+ import { eachChildren, findChildren, isComponentVNode, ValidVNode } from '../utils';
4
+ import { isStringOrNumber } from 'intact-shared';
5
+ import { useState } from '../../hooks/useState';
6
+ import { Tag } from './';
7
+ import { Dropdown } from '../dropdown';
8
+ import { Tooltip } from '../tooltip';
9
+
10
+ export function useChildren() {
11
+ const instance = useInstance() as Tags;
12
+ const children = useState<VNode[]>([]);
13
+
14
+ instance.watch('children', (v) => {
15
+ const vNodes: VNode[] = [];
16
+ eachChildren(v, (vNode) => {
17
+ if (isTagOrContainsTag(vNode)) {
18
+ vNodes.push(vNode);
19
+ }
20
+ })
21
+ children.set(vNodes);
22
+ });
23
+
24
+ return children;
25
+ }
26
+
27
+ function isTagOrContainsTag(vNode: ValidVNode): vNode is VNode {
28
+ if (isStringOrNumber(vNode)) return false;
29
+
30
+ if (isComponentVNode(vNode, Tag)) {
31
+ return true;
32
+ }
33
+
34
+ if (isComponentVNode(vNode, Dropdown) || isComponentVNode(vNode, Tooltip)) {
35
+ return !!findChildren(vNode.props?.children, (vNode) => {
36
+ return isTagOrContainsTag(vNode);
37
+ });
38
+ }
39
+
40
+ return false;
41
+ }
42
+
@@ -0,0 +1,97 @@
1
+ import {
2
+ VNode,
3
+ useInstance,
4
+ findDomFromVNode,
5
+ createVNode as h,
6
+ Key,
7
+ } from 'intact';
8
+ import type { Tags } from './tags';
9
+ import { nextFrame, debounce, swap } from '../utils';
10
+ import { useState, watchState, State } from '../../hooks/useState';
11
+ import { Virtual } from '../virtual';
12
+ import { cx } from '@emotion/css';
13
+
14
+ export function useDraggable(originVNodes: State<VNode[]>) {
15
+ const instance = useInstance() as Tags;
16
+ const children = useState<VNode[]>([]);
17
+ const draggingKey = useState<Key | null>(null);
18
+
19
+ let draggingIndex: number = -1;
20
+ let originIndex: number = -1;
21
+ let lastOverIndex: number = -1; /* let the dragover event only trigger once when tags changed order */
22
+
23
+ watchState(originVNodes, render);
24
+ watchState(draggingKey, render);
25
+
26
+ function render() {
27
+ const { draggable } = instance.get();
28
+ children.set(!draggable ? originVNodes.value : originVNodes.value.map((vNode, index) => {
29
+ const key = vNode.key!;
30
+ return h(Virtual, {
31
+ 'ev-dragstart': () => onStart(key, index),
32
+ 'ev-dragover': (e: MouseEvent) => onOver(e, key, index),
33
+ 'ev-dragend': (e: MouseEvent) => onEnd(e),
34
+ key,
35
+ draggable,
36
+ className: cx({
37
+ 'k-dragging': key === draggingKey.value,
38
+ 'k-draggable': draggable,
39
+ })
40
+ }, vNode);
41
+ }));
42
+
43
+ }
44
+
45
+ function onStart(key: Key, index: number) {
46
+ draggingIndex = originIndex = index;
47
+ nextFrame(() => {
48
+ draggingKey.set(key);
49
+ });
50
+
51
+ instance.trigger('dragstart', {
52
+ key,
53
+ from: index,
54
+ });
55
+ }
56
+
57
+ function onOver(e: MouseEvent, key: Key, index: number) {
58
+ e.preventDefault();
59
+ e.stopPropagation();
60
+
61
+ // Dragging the tag of another tags drag to this tags should be ignored
62
+ if (draggingIndex === -1) return;
63
+
64
+ if (lastOverIndex === index) return;
65
+ lastOverIndex = index;
66
+
67
+ if (index === draggingIndex) return;
68
+
69
+ // if the tag has move transition, you cannot drag over it before transition ended.
70
+ const dom = findDomFromVNode(children.value[index], true) as HTMLElement;
71
+ if (dom.classList.contains('k-fade-move')) return;
72
+
73
+ const vNodes = swap(originVNodes.value, draggingIndex, index);
74
+
75
+ lastOverIndex = draggingIndex;
76
+ draggingIndex = index;
77
+
78
+ originVNodes.set(vNodes);
79
+ }
80
+
81
+ function onEnd(e: MouseEvent) {
82
+ e.preventDefault();
83
+
84
+ instance.trigger('dragend', {
85
+ key: draggingKey.value!,
86
+ from: originIndex,
87
+ to: draggingIndex,
88
+ });
89
+
90
+ draggingKey.set(null);
91
+ lastOverIndex = -1;
92
+ draggingIndex = -1;
93
+ originIndex = -1;
94
+ }
95
+
96
+ return children;
97
+ }
@@ -0,0 +1,117 @@
1
+ import {
2
+ NonNullableRefObject,
3
+ VNodeComponentClass,
4
+ VNode,
5
+ useInstance,
6
+ createRef,
7
+ findDomFromVNode,
8
+ onBeforeMount,
9
+ nextTick,
10
+ } from 'intact';
11
+ import type { Tags } from './tags';
12
+ import { useState, State, watchState } from '../../hooks/useState';
13
+ import { tag as tagStyles } from './styles';
14
+ import { getLeft, getRight } from '../../styles/utils';
15
+ import { useReceive } from '../../hooks/useReceive';
16
+ import { useResizeObserver } from '../../hooks/useResizeObserver';
17
+
18
+ export function useNowrap(originVNodes: State<VNode[]>) {
19
+ const instance = useInstance() as Tags;
20
+ const containerRef = createRef<HTMLDivElement>();
21
+ const children = useState<VNode[]>([]);
22
+ const hiddenChildren = useState<VNode[]>([]);
23
+ const estimateMoreElementWidth = useEstimateMoreElementWidth();
24
+ const offsetMap = useChildrenOffset(originVNodes);
25
+
26
+ watchState(originVNodes, (v) => {
27
+ children.set(v);
28
+ nextTick(refresh);
29
+ });
30
+
31
+ // instance.watch('children', refresh, { presented: true })
32
+ useResizeObserver(containerRef, refresh);
33
+
34
+ function refresh() {
35
+ if (!instance.get('nowrap')) return;
36
+
37
+ const container = containerRef.value!;
38
+ const containerWidth = container.offsetWidth;
39
+ const vNodes: VNode[] = [];
40
+ const _originVNodes = originVNodes.value;
41
+ const length = _originVNodes.length;
42
+
43
+ if (_originVNodes.length > 1) {
44
+ _originVNodes.forEach((vNode, index) => {
45
+ const offset = offsetMap.get(vNode)!;
46
+ // estimate the "more" element's with for performance
47
+ const width = estimateMoreElementWidth(length - index - 1);
48
+
49
+ if (offset + width <= containerWidth) {
50
+ vNodes.push(vNode);
51
+ }
52
+ });
53
+ } else {
54
+ vNodes.push(..._originVNodes);
55
+ }
56
+
57
+ /**
58
+ * refresh function will be called in ResizeObserver,
59
+ * state changed will cause container's width to change,
60
+ * and a error will throw (ResizeObserver loop completed with undelivered notifications)
61
+ * so we call setState in requestAnimationFrame
62
+ */
63
+ requestAnimationFrame(() => {
64
+ hiddenChildren.set(_originVNodes.slice(vNodes.length))
65
+ children.set(vNodes);
66
+ });
67
+ }
68
+
69
+ return { containerRef, children, hiddenChildren }
70
+ }
71
+
72
+ function useChildrenOffset(vNodes: State<VNode[]>) {
73
+ const instance = useInstance() as Tags;
74
+ const map: Map<VNode, number> = new Map();
75
+
76
+ // instance.watch('children', updateMap, { presented: true })
77
+ watchState(vNodes, () => nextTick(updateMap));
78
+
79
+ function updateMap() {
80
+ map.clear();
81
+
82
+ if (!instance.get('nowrap')) return;
83
+
84
+ vNodes.value.forEach((vNode) => {
85
+ const dom = findDomFromVNode(vNode, true);
86
+ if (!dom || dom.nodeType !== 1) return;
87
+
88
+ const { offsetLeft, offsetWidth } = dom as HTMLElement;
89
+
90
+ map.set(vNode, offsetLeft + offsetWidth);
91
+ });
92
+ }
93
+
94
+ return map;
95
+ }
96
+
97
+ function useEstimateMoreElementWidth() {
98
+ const instance = useInstance() as Tags;
99
+ const widthPerChar = 7.2;
100
+ let cacheWidth = 0;
101
+
102
+ onBeforeMount(cache);
103
+ useReceive<Tags>(['size', 'border'], cache, true);
104
+
105
+ function cache() {
106
+ const { size, border } = instance.get();
107
+
108
+ cacheWidth = parseInt(tagStyles.tags.gap) + widthPerChar /* the "+" mark */;
109
+ if (border !== 'none') {
110
+ cacheWidth += 2;
111
+ }
112
+ const padding = size === 'default' ? tagStyles.padding : tagStyles[size!].padding;
113
+ cacheWidth += parseInt(getLeft(padding)) + parseInt(getRight(padding));
114
+ }
115
+
116
+ return (count: number) => Math.round(count.toString().length * widthPerChar + cacheWidth);
117
+ }
@@ -30,6 +30,8 @@ sidebar: doc
30
30
  | disabledDate | 该属性值是一个函数,用于定义那些日期被禁止选择,函数参数为日期字符串,返回`true`则表示禁用该日期 | `(v: Dayjs) => boolean` | `undefined` |
31
31
  | step | 固定时间点的步长 | `string` | `undefined` |
32
32
  | position | 菜单弹出的位置,默认与触发器左侧对齐向下偏移`8px`的地方 | `Position` &#124; `"left"` &#124; `"bottom"` &#124; `"right"` &#124; `"top"` | `{my: 'left top+8', 'left bottom'}` |
33
+ | flat | 是否展示扁平样式 | `boolean` | `false` |
34
+ | draggable | 多选值是否支持拖动排序 | `boolean` | `false` |
33
35
 
34
36
  ```ts
35
37
  import {Dayjs} from 'dayjs';
@@ -59,7 +59,7 @@ describe('Timepicker', () => {
59
59
  await wait();
60
60
  expect(instance.get('timeArray')).to.eql(['01:00:00', '02:00:00']);
61
61
  // remove one value
62
- const [, close] = picker2.querySelectorAll<HTMLElement>('.k-select-close');
62
+ const [, close] = picker2.querySelectorAll<HTMLElement>('.k-tag-close');
63
63
  close.click();
64
64
  await wait();
65
65
  expect(instance.get('timeArray')).to.eql(['01:00:00']);
@@ -26,9 +26,7 @@ const classNameObj = {
26
26
  >
27
27
  <template>
28
28
  <b:close>
29
- <Icon class="ion-ios-close-empty"
30
- size="large"
31
- color={type}
29
+ <Icon class="k-icon-close"
32
30
  hoverable={!disabled}
33
31
  />
34
32
  </b:close>
@@ -6,9 +6,10 @@ import {deepDefaults} from '../../styles/utils';
6
6
  const defaults = {
7
7
  title: {
8
8
  fontSize: '14px',
9
- gap: '8px'
9
+ gap: '8px',
10
+ fontWeight: '500'
10
11
  },
11
- get color() { return theme.color.text },
12
+ get color() { return theme.color.title },
12
13
  get padding() { return `6px ${theme.default.padding}` },
13
14
  };
14
15
 
@@ -35,10 +36,15 @@ export function makeStyles() {
35
36
  .k-tip-title {
36
37
  font-size: ${tip.title.fontSize};
37
38
  margin-bottom: ${tip.title.gap};
39
+ font-weight: ${tip.title.fontWeight}
38
40
  }
39
41
 
40
42
  &.k-fade-leave-active {
41
43
  position: relative;
42
44
  }
45
+
46
+ .k-tip-close:hover {
47
+ background: none;
48
+ }
43
49
  `;
44
50
  }
@@ -17,14 +17,14 @@ export interface TooltipContentBlocks extends DropdownMenuBlocks {
17
17
  buttons: null
18
18
  }
19
19
 
20
- export class TooltipContent extends DropdownMenu<
21
- TooltipContentProps,
22
- TooltipContentEvents,
23
- TooltipContentBlocks
24
- > {
20
+ export class TooltipContent<
21
+ T extends TooltipContentProps = TooltipContentProps,
22
+ E extends TooltipContentEvents = TooltipContentEvents,
23
+ B extends TooltipContentBlocks = TooltipContentBlocks,
24
+ > extends DropdownMenu<T, E, B> {
25
25
  static template = template;
26
26
 
27
- private isEmptyChildren: boolean = true;
27
+ protected isEmptyChildren: boolean = true;
28
28
  private arrow = useArrow();
29
29
 
30
30
  init() {
@@ -18,6 +18,7 @@ const classNameObj = {
18
18
  [`k-${size}`]: size !== 'default',
19
19
  [className]: className,
20
20
  [makeStyles()]: true,
21
+ [$props.className]: $props.className,
21
22
  };
22
23
 
23
24
  <t:super
@@ -31,7 +32,13 @@ const classNameObj = {
31
32
  class={classNameObj}
32
33
  >
33
34
  <b:children>
34
- {children}
35
+ <b:body>{children}</b:body>
36
+ <div class="k-tooltip-footer" v-if={confirm} key="tooltip-footer">
37
+ <b:footer>
38
+ <Button ev-click={this.cancel} size="small">{cancelText}</Button>
39
+ <Button type="primary" ev-click={this.ok} size="small">{okText}</Button>
40
+ </b:footer>
41
+ </div>
35
42
  <i v-if={showArrow}
36
43
  key="tooltip-arrow"
37
44
  class={{
@@ -40,11 +47,5 @@ const classNameObj = {
40
47
  }}
41
48
  ref={arrowRef}
42
49
  ></i>
43
- <div class="k-tooltip-buttons" v-if={confirm} key="tooltip-buttons">
44
- <b:buttons>
45
- <Button type="primary" ev-click={this.ok} size="small">{okText}</Button>
46
- <Button ev-click={this.cancel} size="small">{cancelText}</Button>
47
- </b:buttons>
48
- </div>
49
50
  </b:children>
50
51
  </t:super>
@@ -10,26 +10,23 @@ sidebar: doc
10
10
  | 属性 | 说明 | 类型 | 默认值 |
11
11
  | --- | --- | --- | --- |
12
12
  | trigger | 触发方式,`hover`为悬停触发,`click`为点击触发 | `"hover"` &#124; `"click"` &#124; `"focus"` | `"hover"` |
13
- | disabled | 是否禁用整个菜单 | `boolean` | `false` |
13
+ | disabled | 是否禁用提示 | `boolean` | `false` |
14
14
  | value | 是否将弹出菜单展示出来,可通过`v-model`双向绑定 | `boolean` | `false` |
15
15
  | position | 菜单弹出的位置,默认在触发器正上方向上偏移`10px`的地方 | `Position` &#124; `"left"` &#124; `"bottom"` &#124; `"right"` &#124; `"top"` | `{my: 'center bottom-10', at: 'center top', collision: 'flipfit'}` |
16
16
  | of | 弹出菜单的位置是相对当前触发元素,还是触发元素所在的菜单元素,这在嵌套菜单中可能会用到,可以使所有子菜单保持统一的对齐方式,例如:级联选择(Cascader)组件 | `"self"` &#124; `"parent"` &#124; `Event` | `"self"` |
17
- | container | 指定弹出菜单追加的位置,默认:`Dialog`类型的组件会追加到`Dialog`中,其他会追加到`body`中。你可以传入函数返回一个DOM用来作为插入的容器,或者传入字符串用来给`querySelector`进行查询 | `Container` | `undefined` |
17
+ | container | 指定弹出菜单追加的位置,默认:`Dialog`类型的组件会追加到`Dialog`中,其他会追加到`body`中。你可以传入函数返回一个 DOM 用来作为插入的容器,或者传入字符串用来给`querySelector`进行查询 | `Container` | `undefined` |
18
18
  | showArrow | 弹层是否展示箭头 | `boolean` | `true` |
19
19
  | theme | 指定主题 | `"dark"` &#124; `"light"` | `"dark"` |
20
20
  | hoverable | 对于悬浮触发`hover`的方式,提示内容弹层是否在鼠标悬浮时仍然展示,默认鼠标离开触发元素弹层就会关闭 | `boolean` | `false` |
21
21
  | always | 是否一直保持当前展示/隐藏状态 | `boolean` | `false` |
22
22
  | size | 弹层尺寸 | `"default"` &#124; `"small"` | `"default"` |
23
- | confirm | 带“确认”和“取消”按钮的确认弹层 | `boolean` | `false` |
24
- | okText | `confirm`模式下的“确认”按钮文案 | `string` | `"确认"` |
25
- | cancelText | `confirm`模式下的“取消”按钮文案 | `string` | `"取消"` |
26
23
  | content | 指定提示的内容,当然你也可以用`content`扩展点指定 | `string` &#124; `VNode` | `undefined` |
27
24
 
28
25
  ```ts
29
26
  type Position = {
30
27
  my?: string | [string, string]
31
28
  at?: string | [string, string]
32
- collision?: Collision | [Collision, Collision]
29
+ collision?: Collision | [Collision, Collision]
33
30
  collisionDirection?: ['left'] | ['top'] | ['left', 'top']
34
31
  }
35
32
 
@@ -3,7 +3,6 @@ import BasicDemo from '~/components/tooltip/demos/basic';
3
3
  import PositionDemo from '~/components/tooltip/demos/position';
4
4
  import TriggerDemo from '~/components/tooltip/demos/trigger';
5
5
  import ContentDemo from '~/components/tooltip/demos/content';
6
- import ConfirmDemo from '~/components/tooltip/demos/confirm';
7
6
  import AlwaysDemo from '~/components/tooltip/demos/always';
8
7
  import {Tooltip} from './';
9
8
  import {Dialog} from '../dialog';
@@ -58,7 +57,7 @@ describe('Tooltip', () => {
58
57
  expect(a >= b - 1 && a <= b + 1).to.be.true;
59
58
  };
60
59
 
61
-
60
+
62
61
  instance.set('position', 'left');
63
62
  await wait();
64
63
  contains('k-right');
@@ -137,7 +136,7 @@ describe('Tooltip', () => {
137
136
  await wait(500);
138
137
  const content1 = getElement('.k-tooltip-content');
139
138
 
140
- // should not hide when move mouse from button to tooltip content
139
+ // should not hide when move mouse from button to tooltip content
141
140
  expect(content1).eql(content);
142
141
 
143
142
  dispatchEvent(canHover, 'mouseleave');
@@ -156,35 +155,6 @@ describe('Tooltip', () => {
156
155
  expect(content.querySelector<HTMLElement>('.k-slider')!.outerHTML).to.matchSnapshot();
157
156
  });
158
157
 
159
- it('should handle confirm tooltip corectly', async () => {
160
- const [instance, element] = mount(ConfirmDemo);
161
-
162
- const cancelCb = sinon.spy();
163
- const okCb = sinon.spy();
164
-
165
- instance.refs.__test.on('cancel', cancelCb);
166
- instance.refs.__test.on('ok', okCb);
167
-
168
- dispatchEvent(element.children[0], 'click');
169
- await wait();
170
- let content = getElement('.k-tooltip-content')!;
171
- expect((content.querySelector('.k-tooltip-buttons') as HTMLElement).outerHTML).to.matchSnapshot();
172
-
173
- (content.querySelector('.k-btn') as HTMLElement).click();
174
- await wait(500);
175
- expect(content.style.display).eql('none');
176
-
177
- dispatchEvent(element.firstElementChild!, 'click');
178
- await wait();
179
- content = getElement('.k-tooltip-content')!;
180
- const [, btn] = Array.from<HTMLElement>(content.querySelectorAll('.k-btn'));
181
- btn.click();
182
-
183
- await wait(500);
184
- expect(content.style.display).eql('none');
185
- expect(cancelCb.callCount).eql(1);
186
- expect(okCb.callCount).eql(1);
187
- });
188
158
 
189
159
  it('should always show tooltip', async () => {
190
160
  const [, element] = mount(AlwaysDemo);
@@ -230,7 +200,7 @@ describe('Tooltip', () => {
230
200
 
231
201
  // const app = new Vue({
232
202
  // render: h => h(
233
- // 'Test',
203
+ // 'Test',
234
204
  // {ref: 'test'}),
235
205
  // components: {Test},
236
206
  // }).$mount(container);
@@ -265,7 +235,7 @@ describe('Tooltip', () => {
265
235
  // </div>
266
236
  // `,
267
237
  // components: {
268
- // Tooltip: Tooltip as any,
238
+ // Tooltip: Tooltip as any,
269
239
  // Radio: Radio as any,
270
240
  // },
271
241
  // data: {
@@ -381,8 +351,8 @@ describe('Tooltip', () => {
381
351
  class Demo extends Component {
382
352
  static template = `
383
353
  const {Tooltip, Dialog} = this;
384
- <div style="text-align: right; position: relative; width: 300px;">
385
- <Tooltip content="这是一段很长的描述文字,这是一段很长的描述文字" container={dom => dom}>
354
+ <div style="text-align: right; position: relative; width: 350px;">
355
+ <Tooltip content="这是一段很长的描述文字,这是一段很长的描述文字,这是一段很长的描述文字" container={dom => dom}>
386
356
  <span class="trigger">test</span>
387
357
  </Tooltip>
388
358
  </div>
@@ -8,12 +8,13 @@ const defaults = {
8
8
  get color() { return theme.color.text },
9
9
  bgColor: '#fff',
10
10
  lineHeight: 1.4,
11
- maxWidth: '300px',
11
+ maxWidth: '312px',
12
+ get boxShadow() { return theme.middleBoxShadow },
12
13
 
13
14
  // arrow
14
15
  arrow: {
15
- borderColor: 'rgba(191, 191, 191, .5)',
16
- width: '8px',
16
+ borderColor: 'rgba(221, 221, 221, .5)',
17
+ width: '6px',
17
18
  },
18
19
 
19
20
  // confirm
@@ -23,9 +24,9 @@ const defaults = {
23
24
 
24
25
  // dark
25
26
  dark: {
26
- get bgColor() { return theme.color.text },
27
+ get bgColor() { return theme.color.title },
27
28
  color: '#fff',
28
- get arrowBorderColor() { return theme.color.text },
29
+ get arrowBorderColor() { return theme.color.title },
29
30
  },
30
31
 
31
32
  smallPadding: '4px',
@@ -48,7 +49,7 @@ const directionMap = {
48
49
 
49
50
  export default function makeStyles() {
50
51
  const arrowLong = tooltip.arrow.width;
51
- const arrowShort = `calc(${arrowLong} - 2px)`;
52
+ const arrowShort = `calc(${arrowLong} - 1px)`;
52
53
 
53
54
  // use &.k-tooltip-content to override css in dropdown menu
54
55
  return css`
@@ -59,6 +60,7 @@ export default function makeStyles() {
59
60
  line-height: ${tooltip.lineHeight};
60
61
  word-wrap: break-word;
61
62
  pointer-events: none;
63
+ box-shadow: ${tooltip.boxShadow};
62
64
 
63
65
  // hoverable
64
66
  &.k-hoverable,
@@ -159,9 +161,9 @@ export default function makeStyles() {
159
161
  })}
160
162
 
161
163
  // confirm
162
- .k-tooltip-buttons {
164
+ .k-tooltip-footer {
163
165
  padding-top: ${tooltip.confirm.gaps};
164
- .k-btn:last-of-type {
166
+ .k-btn:not(:first-of-type) {
165
167
  margin-left: ${tooltip.confirm.gaps};
166
168
  }
167
169
  }
@@ -12,7 +12,7 @@ const {
12
12
  } = this.get();
13
13
  const {getShowedData} = this.filter;
14
14
  const {enableAdd, enableRemove, add, remove} = this.transfer;
15
- const {isCheckAll, toggleCheckAll, onCheckboxChange} = this.check;
15
+ const {isCheckAll, toggleCheckAll, onCheckboxChange, isIndeterminate} = this.check;
16
16
 
17
17
  const classNameObj = {
18
18
  'k-transfer': true,
@@ -33,6 +33,7 @@ const Panel = (model) => {
33
33
  </div>
34
34
  <Checkbox class="c-ellipsis"
35
35
  value={isCheckAll(model)}
36
+ indeterminate={isIndeterminate(model)}
36
37
  ev-click={toggleCheckAll.bind(null, model)}
37
38
  >{title}</Checkbox>
38
39
  </b:header>
@@ -94,4 +95,4 @@ const Panel = (model) => {
94
95
  </Button>
95
96
  </div>
96
97
  {Panel('right')}
97
- </div>
98
+ </div>
@@ -58,6 +58,7 @@ export function makeStyles() {
58
58
  height: ${transfer.panel.height};
59
59
  display: inline-flex;
60
60
  flex-direction: column;
61
+ overflow: auto;
61
62
  }
62
63
 
63
64
  .k-transfer-title {
@@ -25,7 +25,6 @@ export function useCheck({getEnabledData, getShowedData}: ReturnType<typeof useF
25
25
 
26
26
  return data.length && checked.length >= data.length;
27
27
  }
28
-
29
28
  function toggleCheckAll(model: Model, e: MouseEvent) {
30
29
  if ((e.target as HTMLInputElement).checked) {
31
30
  selectAll(model);
@@ -34,6 +33,13 @@ export function useCheck({getEnabledData, getShowedData}: ReturnType<typeof useF
34
33
  }
35
34
  }
36
35
 
36
+ function isIndeterminate(model: Model) {
37
+ const checked = instance.get(`${model}CheckedKeys` as CheckedKeys)!;
38
+ const data = getEnabledData(model);
39
+
40
+ return checked.length > 0 && checked.length < data.length;
41
+ }
42
+
37
43
  function onCheckboxChange(model: Model, index: number, e: MouseEvent) {
38
44
  if (startIndex === undefined || !e.shiftKey) {
39
45
  startIndex = index;
@@ -91,6 +97,7 @@ export function useCheck({getEnabledData, getShowedData}: ReturnType<typeof useF
91
97
  return {
92
98
  isCheckAll,
93
99
  toggleCheckAll,
94
- onCheckboxChange
100
+ onCheckboxChange,
101
+ isIndeterminate
95
102
  };
96
103
  }
@@ -34,6 +34,8 @@ sidebar: doc
34
34
  | filter | 当支持筛选时,可以自定义筛选规则 | `(keywords: string, data: TreeDataItem<K>) => boolean` | `undefined` |
35
35
  | show | 是否展示菜单项 | `boolean` | `false` |
36
36
  | position | 菜单弹出的位置,默认与触发器左侧对齐向下偏移`8px`的地方 | `Position` &#124; `"left"` &#124; `"bottom"` &#124; `"right"` &#124; `"top"` | `{my: 'left top+8', 'left bottom'}` |
37
+ | flat | 是否展示扁平样式 | `boolean` | `false` |
38
+ | draggable | 多选值是否支持拖动排序 | `boolean` | `false` |
37
39
 
38
40
  ```ts
39
41
  import {Key, Children} from 'intact';