@douyinfe/semi-ui 2.2.2 → 2.4.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/_base/_story/a11y.jsx +6 -6
  2. package/_base/_story/a11y.scss +0 -1
  3. package/_base/_story/index.scss +2 -5
  4. package/_utils/hooks/usePrevFocus.ts +16 -0
  5. package/_utils/index.ts +4 -0
  6. package/anchor/_story/anchor.stories.js +1 -1
  7. package/anchor/index.tsx +5 -2
  8. package/anchor/link.tsx +29 -4
  9. package/autoComplete/index.tsx +28 -1
  10. package/avatar/_story/avatar.stories.js +4 -4
  11. package/avatar/index.tsx +6 -4
  12. package/banner/index.tsx +2 -1
  13. package/breadcrumb/_story/breadcrumb.stories.js +22 -8
  14. package/breadcrumb/index.tsx +8 -1
  15. package/breadcrumb/item.tsx +1 -1
  16. package/button/Button.tsx +4 -0
  17. package/button/__test__/button.test.js +1 -1
  18. package/button/_story/button.stories.js +10 -10
  19. package/button/buttonGroup.tsx +4 -2
  20. package/button/splitButtonGroup.tsx +5 -2
  21. package/card/_story/card.stories.js +8 -1
  22. package/card/_story/card.stories.tsx +3 -0
  23. package/card/index.tsx +5 -2
  24. package/cascader/index.tsx +33 -5
  25. package/checkbox/_story/checkbox.stories.js +19 -12
  26. package/checkbox/checkbox.tsx +40 -5
  27. package/checkbox/checkboxGroup.tsx +30 -5
  28. package/checkbox/checkboxInner.tsx +25 -2
  29. package/collapse/index.tsx +1 -1
  30. package/collapse/item.tsx +12 -7
  31. package/collapsible/index.tsx +4 -2
  32. package/configProvider/_story/configProvider.stories.tsx +27 -0
  33. package/datePicker/datePicker.tsx +19 -0
  34. package/dist/css/semi.css +23 -12
  35. package/dist/css/semi.min.css +1 -1
  36. package/dist/umd/semi-ui.js +2502 -1249
  37. package/dist/umd/semi-ui.js.map +1 -1
  38. package/dist/umd/semi-ui.min.js +1 -1
  39. package/dist/umd/semi-ui.min.js.map +1 -1
  40. package/dropdown/dropdownItem.tsx +1 -1
  41. package/dropdown/dropdownMenu.tsx +1 -1
  42. package/dropdown/index.tsx +11 -3
  43. package/empty/index.tsx +4 -4
  44. package/form/_story/FormApi/formApiDemo.jsx +3 -2
  45. package/form/_story/Validate/validateDemo.jsx +1 -1
  46. package/form/_story/demo.jsx +12 -3
  47. package/form/_story/form.stories.js +0 -7
  48. package/form/baseForm.tsx +2 -0
  49. package/form/errorMessage.tsx +13 -2
  50. package/form/hoc/withField.tsx +37 -8
  51. package/form/index.tsx +0 -2
  52. package/form/interface.ts +2 -0
  53. package/form/label.tsx +4 -2
  54. package/input/index.tsx +49 -4
  55. package/input/inputGroup.tsx +9 -4
  56. package/input/textarea.tsx +30 -9
  57. package/inputNumber/__test__/inputNumber.test.js +36 -8
  58. package/inputNumber/index.tsx +30 -2
  59. package/layout/Sider.tsx +6 -2
  60. package/layout/index.tsx +4 -3
  61. package/lib/cjs/_utils/hooks/usePrevFocus.d.ts +2 -0
  62. package/lib/cjs/_utils/hooks/usePrevFocus.js +30 -0
  63. package/lib/cjs/_utils/index.d.ts +1 -0
  64. package/lib/cjs/_utils/index.js +6 -1
  65. package/lib/cjs/anchor/index.d.ts +2 -0
  66. package/lib/cjs/anchor/index.js +6 -1
  67. package/lib/cjs/anchor/link.d.ts +4 -1
  68. package/lib/cjs/anchor/link.js +39 -5
  69. package/lib/cjs/autoComplete/index.d.ts +17 -0
  70. package/lib/cjs/autoComplete/index.js +21 -2
  71. package/lib/cjs/avatar/index.d.ts +4 -3
  72. package/lib/cjs/avatar/index.js +15 -11
  73. package/lib/cjs/banner/index.js +4 -2
  74. package/lib/cjs/breadcrumb/index.d.ts +3 -0
  75. package/lib/cjs/breadcrumb/index.js +10 -4
  76. package/lib/cjs/breadcrumb/item.js +2 -2
  77. package/lib/cjs/button/Button.d.ts +2 -0
  78. package/lib/cjs/button/Button.js +4 -2
  79. package/lib/cjs/button/buttonGroup.d.ts +3 -0
  80. package/lib/cjs/button/buttonGroup.js +8 -4
  81. package/lib/cjs/button/index.d.ts +1 -0
  82. package/lib/cjs/button/splitButtonGroup.d.ts +3 -0
  83. package/lib/cjs/button/splitButtonGroup.js +5 -2
  84. package/lib/cjs/card/index.d.ts +3 -0
  85. package/lib/cjs/card/index.js +3 -1
  86. package/lib/cjs/cascader/index.d.ts +14 -0
  87. package/lib/cjs/cascader/index.js +35 -7
  88. package/lib/cjs/checkbox/checkbox.d.ts +21 -1
  89. package/lib/cjs/checkbox/checkbox.js +51 -17
  90. package/lib/cjs/checkbox/checkboxGroup.d.ts +13 -1
  91. package/lib/cjs/checkbox/checkboxGroup.js +16 -3
  92. package/lib/cjs/checkbox/checkboxInner.d.ts +15 -0
  93. package/lib/cjs/checkbox/checkboxInner.js +20 -3
  94. package/lib/cjs/collapse/item.d.ts +2 -1
  95. package/lib/cjs/collapse/item.js +12 -2
  96. package/lib/cjs/collapsible/index.d.ts +1 -0
  97. package/lib/cjs/collapsible/index.js +4 -2
  98. package/lib/cjs/datePicker/datePicker.d.ts +12 -0
  99. package/lib/cjs/datePicker/datePicker.js +14 -1
  100. package/lib/cjs/dropdown/dropdownItem.js +3 -1
  101. package/lib/cjs/dropdown/dropdownMenu.js +4 -1
  102. package/lib/cjs/dropdown/index.d.ts +10 -3
  103. package/lib/cjs/form/baseForm.d.ts +9 -0
  104. package/lib/cjs/form/baseForm.js +3 -1
  105. package/lib/cjs/form/errorMessage.d.ts +4 -0
  106. package/lib/cjs/form/errorMessage.js +21 -3
  107. package/lib/cjs/form/field.d.ts +7 -0
  108. package/lib/cjs/form/hoc/withField.js +49 -16
  109. package/lib/cjs/form/index.d.ts +0 -1
  110. package/lib/cjs/form/interface.d.ts +2 -0
  111. package/lib/cjs/form/label.d.ts +2 -0
  112. package/lib/cjs/form/label.js +5 -2
  113. package/lib/cjs/input/index.d.ts +16 -0
  114. package/lib/cjs/input/index.js +51 -15
  115. package/lib/cjs/input/inputGroup.d.ts +2 -1
  116. package/lib/cjs/input/inputGroup.js +11 -1
  117. package/lib/cjs/input/textarea.js +16 -3
  118. package/lib/cjs/inputNumber/index.d.ts +8 -0
  119. package/lib/cjs/inputNumber/index.js +35 -4
  120. package/lib/cjs/layout/Sider.d.ts +4 -0
  121. package/lib/cjs/layout/Sider.js +4 -1
  122. package/lib/cjs/layout/index.js +2 -0
  123. package/lib/cjs/list/index.d.ts +4 -4
  124. package/lib/cjs/list/item.js +0 -1
  125. package/lib/cjs/modal/Modal.js +2 -0
  126. package/lib/cjs/modal/ModalContent.d.ts +3 -1
  127. package/lib/cjs/modal/ModalContent.js +47 -5
  128. package/lib/cjs/navigation/Item.d.ts +4 -2
  129. package/lib/cjs/navigation/Item.js +25 -5
  130. package/lib/cjs/navigation/SubNav.d.ts +4 -2
  131. package/lib/cjs/navigation/SubNav.js +8 -1
  132. package/lib/cjs/navigation/index.js +2 -0
  133. package/lib/cjs/notification/notice.d.ts +1 -1
  134. package/lib/cjs/notification/notice.js +32 -22
  135. package/lib/cjs/pagination/index.js +16 -6
  136. package/lib/cjs/popover/index.js +7 -3
  137. package/lib/cjs/progress/index.d.ts +8 -0
  138. package/lib/cjs/progress/index.js +42 -9
  139. package/lib/cjs/radio/radio.d.ts +6 -1
  140. package/lib/cjs/radio/radio.js +17 -5
  141. package/lib/cjs/radio/radioGroup.d.ts +16 -1
  142. package/lib/cjs/radio/radioGroup.js +18 -3
  143. package/lib/cjs/radio/radioInner.d.ts +6 -1
  144. package/lib/cjs/radio/radioInner.js +11 -3
  145. package/lib/cjs/rating/index.d.ts +14 -0
  146. package/lib/cjs/rating/index.js +14 -3
  147. package/lib/cjs/rating/item.d.ts +2 -0
  148. package/lib/cjs/rating/item.js +6 -1
  149. package/lib/cjs/select/index.d.ts +16 -0
  150. package/lib/cjs/select/index.js +65 -19
  151. package/lib/cjs/select/option.js +28 -22
  152. package/lib/cjs/sideSheet/SideSheetContent.d.ts +1 -0
  153. package/lib/cjs/sideSheet/SideSheetContent.js +4 -1
  154. package/lib/cjs/sideSheet/index.d.ts +1 -0
  155. package/lib/cjs/sideSheet/index.js +2 -1
  156. package/lib/cjs/slider/index.d.ts +2 -1
  157. package/lib/cjs/slider/index.js +64 -17
  158. package/lib/cjs/spin/icon.js +3 -4
  159. package/lib/cjs/steps/basicStep.d.ts +3 -0
  160. package/lib/cjs/steps/basicStep.js +23 -25
  161. package/lib/cjs/steps/basicSteps.d.ts +1 -0
  162. package/lib/cjs/steps/basicSteps.js +2 -1
  163. package/lib/cjs/steps/fillStep.d.ts +3 -0
  164. package/lib/cjs/steps/fillStep.js +19 -4
  165. package/lib/cjs/steps/fillSteps.d.ts +1 -0
  166. package/lib/cjs/steps/fillSteps.js +2 -1
  167. package/lib/cjs/steps/navStep.d.ts +3 -0
  168. package/lib/cjs/steps/navStep.js +22 -25
  169. package/lib/cjs/steps/navSteps.d.ts +1 -0
  170. package/lib/cjs/steps/navSteps.js +2 -1
  171. package/lib/cjs/switch/index.d.ts +12 -0
  172. package/lib/cjs/switch/index.js +19 -4
  173. package/lib/cjs/table/Body/BaseRow.js +35 -3
  174. package/lib/cjs/table/Body/index.js +9 -1
  175. package/lib/cjs/table/ColumnFilter.js +4 -0
  176. package/lib/cjs/table/ColumnSelection.d.ts +3 -0
  177. package/lib/cjs/table/ColumnSelection.js +6 -2
  178. package/lib/cjs/table/ColumnSorter.js +19 -3
  179. package/lib/cjs/table/CustomExpandIcon.js +7 -1
  180. package/lib/cjs/table/Table.d.ts +2 -0
  181. package/lib/cjs/table/Table.js +35 -15
  182. package/lib/cjs/table/TableCell.d.ts +2 -0
  183. package/lib/cjs/table/TableCell.js +6 -2
  184. package/lib/cjs/table/TableHeaderRow.js +8 -2
  185. package/lib/cjs/tabs/TabBar.js +11 -3
  186. package/lib/cjs/tabs/TabPane.js +3 -1
  187. package/lib/cjs/tabs/index.js +0 -1
  188. package/lib/cjs/tagInput/index.d.ts +4 -1
  189. package/lib/cjs/tagInput/index.js +29 -3
  190. package/lib/cjs/timePicker/TimePicker.d.ts +14 -0
  191. package/lib/cjs/timePicker/TimePicker.js +11 -4
  192. package/lib/cjs/timePicker/index.d.ts +7 -0
  193. package/lib/cjs/timeline/index.d.ts +1 -1
  194. package/lib/cjs/timeline/index.js +1 -0
  195. package/lib/cjs/timeline/item.js +4 -2
  196. package/lib/cjs/toast/toast.js +2 -0
  197. package/lib/cjs/tooltip/TriangleArrow.js +1 -0
  198. package/lib/cjs/tooltip/TriangleArrowVertical.js +1 -0
  199. package/lib/cjs/tooltip/index.d.ts +16 -12
  200. package/lib/cjs/tooltip/index.js +55 -39
  201. package/lib/cjs/transfer/index.js +32 -14
  202. package/lib/cjs/tree/index.d.ts +1 -0
  203. package/lib/cjs/tree/index.js +15 -6
  204. package/lib/cjs/tree/treeNode.d.ts +12 -4
  205. package/lib/cjs/tree/treeNode.js +54 -5
  206. package/lib/cjs/treeSelect/index.d.ts +16 -0
  207. package/lib/cjs/treeSelect/index.js +60 -12
  208. package/lib/cjs/typography/base.js +18 -7
  209. package/lib/cjs/typography/copyable.js +6 -1
  210. package/lib/cjs/upload/fileCard.js +26 -7
  211. package/lib/cjs/upload/index.js +19 -4
  212. package/lib/es/_utils/hooks/usePrevFocus.d.ts +2 -0
  213. package/lib/es/_utils/hooks/usePrevFocus.js +15 -0
  214. package/lib/es/_utils/index.d.ts +1 -0
  215. package/lib/es/_utils/index.js +4 -1
  216. package/lib/es/anchor/index.d.ts +2 -0
  217. package/lib/es/anchor/index.js +6 -1
  218. package/lib/es/anchor/link.d.ts +4 -1
  219. package/lib/es/anchor/link.js +38 -5
  220. package/lib/es/autoComplete/index.d.ts +17 -0
  221. package/lib/es/autoComplete/index.js +21 -2
  222. package/lib/es/avatar/index.d.ts +4 -3
  223. package/lib/es/avatar/index.js +15 -11
  224. package/lib/es/banner/index.js +4 -2
  225. package/lib/es/breadcrumb/index.d.ts +3 -0
  226. package/lib/es/breadcrumb/index.js +10 -4
  227. package/lib/es/breadcrumb/item.js +2 -2
  228. package/lib/es/button/Button.d.ts +2 -0
  229. package/lib/es/button/Button.js +4 -2
  230. package/lib/es/button/buttonGroup.d.ts +3 -0
  231. package/lib/es/button/buttonGroup.js +8 -4
  232. package/lib/es/button/index.d.ts +1 -0
  233. package/lib/es/button/splitButtonGroup.d.ts +3 -0
  234. package/lib/es/button/splitButtonGroup.js +5 -2
  235. package/lib/es/card/index.d.ts +3 -0
  236. package/lib/es/card/index.js +3 -1
  237. package/lib/es/cascader/index.d.ts +14 -0
  238. package/lib/es/cascader/index.js +35 -7
  239. package/lib/es/checkbox/checkbox.d.ts +21 -1
  240. package/lib/es/checkbox/checkbox.js +50 -17
  241. package/lib/es/checkbox/checkboxGroup.d.ts +13 -1
  242. package/lib/es/checkbox/checkboxGroup.js +18 -5
  243. package/lib/es/checkbox/checkboxInner.d.ts +15 -0
  244. package/lib/es/checkbox/checkboxInner.js +20 -3
  245. package/lib/es/collapse/item.d.ts +2 -1
  246. package/lib/es/collapse/item.js +11 -2
  247. package/lib/es/collapsible/index.d.ts +1 -0
  248. package/lib/es/collapsible/index.js +4 -2
  249. package/lib/es/datePicker/datePicker.d.ts +12 -0
  250. package/lib/es/datePicker/datePicker.js +14 -1
  251. package/lib/es/dropdown/dropdownItem.js +3 -1
  252. package/lib/es/dropdown/dropdownMenu.js +4 -1
  253. package/lib/es/dropdown/index.d.ts +10 -3
  254. package/lib/es/form/baseForm.d.ts +9 -0
  255. package/lib/es/form/baseForm.js +3 -1
  256. package/lib/es/form/errorMessage.d.ts +4 -0
  257. package/lib/es/form/errorMessage.js +21 -3
  258. package/lib/es/form/field.d.ts +7 -0
  259. package/lib/es/form/hoc/withField.js +48 -15
  260. package/lib/es/form/index.d.ts +0 -1
  261. package/lib/es/form/index.js +0 -1
  262. package/lib/es/form/interface.d.ts +2 -0
  263. package/lib/es/form/label.d.ts +2 -0
  264. package/lib/es/form/label.js +5 -2
  265. package/lib/es/input/index.d.ts +16 -0
  266. package/lib/es/input/index.js +51 -15
  267. package/lib/es/input/inputGroup.d.ts +2 -1
  268. package/lib/es/input/inputGroup.js +11 -1
  269. package/lib/es/input/textarea.js +16 -3
  270. package/lib/es/inputNumber/index.d.ts +8 -0
  271. package/lib/es/inputNumber/index.js +36 -4
  272. package/lib/es/layout/Sider.d.ts +4 -0
  273. package/lib/es/layout/Sider.js +4 -1
  274. package/lib/es/layout/index.js +2 -0
  275. package/lib/es/list/index.d.ts +4 -4
  276. package/lib/es/list/item.js +0 -1
  277. package/lib/es/modal/Modal.js +2 -0
  278. package/lib/es/modal/ModalContent.d.ts +3 -1
  279. package/lib/es/modal/ModalContent.js +46 -5
  280. package/lib/es/navigation/Item.d.ts +4 -2
  281. package/lib/es/navigation/Item.js +25 -5
  282. package/lib/es/navigation/SubNav.d.ts +4 -2
  283. package/lib/es/navigation/SubNav.js +8 -1
  284. package/lib/es/navigation/index.js +2 -0
  285. package/lib/es/notification/notice.d.ts +1 -1
  286. package/lib/es/notification/notice.js +33 -24
  287. package/lib/es/pagination/index.js +16 -6
  288. package/lib/es/popover/index.js +7 -3
  289. package/lib/es/progress/index.d.ts +8 -0
  290. package/lib/es/progress/index.js +42 -9
  291. package/lib/es/radio/radio.d.ts +6 -1
  292. package/lib/es/radio/radio.js +16 -5
  293. package/lib/es/radio/radioGroup.d.ts +16 -1
  294. package/lib/es/radio/radioGroup.js +18 -3
  295. package/lib/es/radio/radioInner.d.ts +6 -1
  296. package/lib/es/radio/radioInner.js +11 -3
  297. package/lib/es/rating/index.d.ts +14 -0
  298. package/lib/es/rating/index.js +14 -3
  299. package/lib/es/rating/item.d.ts +2 -0
  300. package/lib/es/rating/item.js +6 -1
  301. package/lib/es/select/index.d.ts +16 -0
  302. package/lib/es/select/index.js +63 -17
  303. package/lib/es/select/option.js +28 -22
  304. package/lib/es/sideSheet/SideSheetContent.d.ts +1 -0
  305. package/lib/es/sideSheet/SideSheetContent.js +4 -1
  306. package/lib/es/sideSheet/index.d.ts +1 -0
  307. package/lib/es/sideSheet/index.js +2 -1
  308. package/lib/es/slider/index.d.ts +2 -1
  309. package/lib/es/slider/index.js +63 -16
  310. package/lib/es/spin/icon.js +3 -4
  311. package/lib/es/steps/basicStep.d.ts +3 -0
  312. package/lib/es/steps/basicStep.js +23 -23
  313. package/lib/es/steps/basicSteps.d.ts +1 -0
  314. package/lib/es/steps/basicSteps.js +2 -1
  315. package/lib/es/steps/fillStep.d.ts +3 -0
  316. package/lib/es/steps/fillStep.js +19 -4
  317. package/lib/es/steps/fillSteps.d.ts +1 -0
  318. package/lib/es/steps/fillSteps.js +2 -1
  319. package/lib/es/steps/navStep.d.ts +3 -0
  320. package/lib/es/steps/navStep.js +22 -23
  321. package/lib/es/steps/navSteps.d.ts +1 -0
  322. package/lib/es/steps/navSteps.js +2 -1
  323. package/lib/es/switch/index.d.ts +12 -0
  324. package/lib/es/switch/index.js +19 -4
  325. package/lib/es/table/Body/BaseRow.js +35 -3
  326. package/lib/es/table/Body/index.js +9 -2
  327. package/lib/es/table/ColumnFilter.js +4 -0
  328. package/lib/es/table/ColumnSelection.d.ts +3 -0
  329. package/lib/es/table/ColumnSelection.js +6 -2
  330. package/lib/es/table/ColumnSorter.js +17 -3
  331. package/lib/es/table/CustomExpandIcon.js +6 -1
  332. package/lib/es/table/Table.d.ts +2 -0
  333. package/lib/es/table/Table.js +35 -15
  334. package/lib/es/table/TableCell.d.ts +2 -0
  335. package/lib/es/table/TableCell.js +6 -2
  336. package/lib/es/table/TableHeaderRow.js +8 -2
  337. package/lib/es/tabs/TabBar.js +11 -3
  338. package/lib/es/tabs/TabPane.js +3 -1
  339. package/lib/es/tabs/index.js +0 -1
  340. package/lib/es/tagInput/index.d.ts +4 -1
  341. package/lib/es/tagInput/index.js +29 -3
  342. package/lib/es/timePicker/TimePicker.d.ts +14 -0
  343. package/lib/es/timePicker/TimePicker.js +11 -4
  344. package/lib/es/timePicker/index.d.ts +7 -0
  345. package/lib/es/timeline/index.d.ts +1 -1
  346. package/lib/es/timeline/index.js +1 -0
  347. package/lib/es/timeline/item.js +4 -2
  348. package/lib/es/toast/toast.js +2 -0
  349. package/lib/es/tooltip/TriangleArrow.js +1 -0
  350. package/lib/es/tooltip/TriangleArrowVertical.js +1 -0
  351. package/lib/es/tooltip/index.d.ts +16 -12
  352. package/lib/es/tooltip/index.js +53 -39
  353. package/lib/es/transfer/index.js +32 -14
  354. package/lib/es/tree/index.d.ts +1 -0
  355. package/lib/es/tree/index.js +15 -6
  356. package/lib/es/tree/treeNode.d.ts +12 -4
  357. package/lib/es/tree/treeNode.js +53 -5
  358. package/lib/es/treeSelect/index.d.ts +16 -0
  359. package/lib/es/treeSelect/index.js +57 -10
  360. package/lib/es/typography/base.js +17 -7
  361. package/lib/es/typography/copyable.js +5 -1
  362. package/lib/es/upload/fileCard.js +26 -7
  363. package/lib/es/upload/index.js +19 -4
  364. package/list/index.tsx +5 -5
  365. package/list/item.tsx +0 -1
  366. package/modal/Modal.tsx +2 -0
  367. package/modal/ModalContent.tsx +35 -5
  368. package/navigation/Item.tsx +15 -0
  369. package/navigation/SubNav.tsx +13 -1
  370. package/navigation/index.tsx +1 -1
  371. package/notification/notice.tsx +19 -14
  372. package/package.json +8 -8
  373. package/pagination/index.tsx +9 -5
  374. package/popover/index.tsx +5 -0
  375. package/progress/_story/progress.stories.js +18 -18
  376. package/progress/index.tsx +58 -20
  377. package/radio/radio.tsx +12 -2
  378. package/radio/radioGroup.tsx +29 -3
  379. package/radio/radioInner.tsx +10 -1
  380. package/rating/index.tsx +19 -2
  381. package/rating/item.tsx +6 -0
  382. package/select/__test__/select.test.js +45 -0
  383. package/select/_story/select.stories.js +29 -0
  384. package/select/index.tsx +57 -4
  385. package/select/option.tsx +3 -0
  386. package/sideSheet/SideSheetContent.tsx +6 -4
  387. package/sideSheet/index.tsx +3 -2
  388. package/slider/__test__/slider.test.js +9 -0
  389. package/slider/_story/slider.stories.js +1 -1
  390. package/slider/index.tsx +44 -7
  391. package/spin/icon.tsx +4 -3
  392. package/steps/basicStep.tsx +15 -4
  393. package/steps/basicSteps.tsx +3 -2
  394. package/steps/fillStep.tsx +27 -12
  395. package/steps/fillSteps.tsx +2 -0
  396. package/steps/navStep.tsx +15 -4
  397. package/steps/navSteps.tsx +3 -2
  398. package/switch/_story/switch.stories.js +20 -19
  399. package/switch/_story/switch.stories.tsx +13 -13
  400. package/switch/index.tsx +23 -5
  401. package/table/Body/BaseRow.tsx +25 -1
  402. package/table/Body/index.tsx +7 -2
  403. package/table/ColumnFilter.tsx +7 -1
  404. package/table/ColumnSelection.tsx +4 -1
  405. package/table/ColumnSorter.tsx +18 -1
  406. package/table/CustomExpandIcon.tsx +5 -0
  407. package/table/Table.tsx +30 -14
  408. package/table/TableCell.tsx +11 -1
  409. package/table/TableHeaderRow.tsx +16 -2
  410. package/table/__test__/table.test.js +46 -0
  411. package/table/_story/table.stories.js +2 -0
  412. package/table/_story/v2/FixedColumnsChange/index.jsx +104 -0
  413. package/table/_story/v2/FixedZIndex/index.jsx +87 -0
  414. package/tabs/TabBar.tsx +8 -5
  415. package/tabs/TabPane.tsx +3 -1
  416. package/tabs/index.tsx +0 -1
  417. package/tagInput/__test__/tagInput.test.js +46 -0
  418. package/tagInput/_story/tagInput.stories.js +2 -2
  419. package/tagInput/index.tsx +31 -8
  420. package/timePicker/TimePicker.tsx +17 -2
  421. package/timePicker/__test__/timePicker.test.js +34 -3
  422. package/timePicker/_story/timepicker.stories.js +18 -0
  423. package/timeline/_story/timeline.stories.js +1 -1
  424. package/timeline/index.tsx +2 -2
  425. package/timeline/item.tsx +2 -1
  426. package/toast/toast.tsx +2 -0
  427. package/tooltip/TriangleArrow.tsx +1 -1
  428. package/tooltip/TriangleArrowVertical.tsx +1 -1
  429. package/tooltip/_story/tooltip.stories.js +562 -514
  430. package/tooltip/index.tsx +51 -33
  431. package/transfer/index.tsx +29 -25
  432. package/tree/_story/tree.stories.js +3 -3
  433. package/tree/index.tsx +10 -2
  434. package/tree/treeNode.tsx +54 -11
  435. package/treeSelect/__test__/treeMultiple.test.js +5 -0
  436. package/treeSelect/_story/treeSelect.stories.js +12 -0
  437. package/treeSelect/index.tsx +58 -7
  438. package/typography/base.tsx +7 -1
  439. package/typography/copyable.tsx +10 -1
  440. package/upload/fileCard.tsx +14 -16
  441. package/upload/index.tsx +10 -6
@@ -22,6 +22,8 @@ var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-s
22
22
 
23
23
  var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
24
24
 
25
+ var _setTimeout2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set-timeout"));
26
+
25
27
  var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
26
28
 
27
29
  var _each2 = _interopRequireDefault(require("lodash/each"));
@@ -54,6 +56,8 @@ var _foundation = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/
54
56
 
55
57
  var _constants2 = require("@douyinfe/semi-foundation/lib/cjs/tooltip/constants");
56
58
 
59
+ var _uuid = require("@douyinfe/semi-foundation/lib/cjs/utils/uuid");
60
+
57
61
  require("@douyinfe/semi-foundation/lib/cjs/tooltip/tooltip.css");
58
62
 
59
63
  var _baseComponent = _interopRequireDefault(require("../_base/baseComponent"));
@@ -127,18 +131,11 @@ class Tooltip extends _baseComponent.default {
127
131
  }
128
132
 
129
133
  return false;
130
- };
134
+ }; // willEnter = () => {
135
+ // this.foundation.calcPosition();
136
+ // this.setState({ visible: true });
137
+ // };
131
138
 
132
- this.willEnter = () => {
133
- this.foundation.calcPosition();
134
- /**
135
- * Dangerous: remove setState in motion fix #1379
136
- * because togglePortalVisible callback function will use visible state to notifyVisibleChange
137
- * if visible state is old value, then notifyVisibleChange function will not be called
138
- * we should ensure that after calling togglePortalVisible, callback function can get right visible value
139
- */
140
- // this.setState({ visible: true });
141
- };
142
139
 
143
140
  this.didLeave = () => {
144
141
  this.adapter.unregisterClickOutsideHandler();
@@ -194,7 +191,9 @@ class Tooltip extends _baseComponent.default {
194
191
  visible,
195
192
  portalEventSet,
196
193
  placement,
197
- transitionState
194
+ transitionState,
195
+ id,
196
+ isPositionUpdated
198
197
  } = this.state;
199
198
  const {
200
199
  prefixCls,
@@ -202,6 +201,7 @@ class Tooltip extends _baseComponent.default {
202
201
  showArrow,
203
202
  style,
204
203
  motion,
204
+ role,
205
205
  zIndex
206
206
  } = this.props;
207
207
  const {
@@ -217,9 +217,8 @@ class Tooltip extends _baseComponent.default {
217
217
  const icon = this.renderIcon();
218
218
  const portalInnerStyle = (0, _omit2.default)(containerStyle, motion ? ['transformOrigin'] : undefined);
219
219
  const transformOrigin = (0, _get2.default)(containerStyle, 'transformOrigin');
220
- const inner = motion ? /*#__PURE__*/_react.default.createElement(_TooltipStyledTransition.default, {
220
+ const inner = motion && isPositionUpdated ? /*#__PURE__*/_react.default.createElement(_TooltipStyledTransition.default, {
221
221
  position: placement,
222
- willEnter: this.willEnter,
223
222
  didLeave: this.didLeave,
224
223
  motion: motion
225
224
  }, transitionState === 'enter' ? _ref => {
@@ -230,13 +229,13 @@ class Tooltip extends _baseComponent.default {
230
229
  } = _ref;
231
230
  return /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
232
231
  className: (0, _classnames.default)(className, animateCls),
233
- style: (0, _assign.default)((0, _assign.default)((0, _assign.default)({
234
- visibility: 'visible'
235
- }, animateStyle), {
232
+ style: (0, _assign.default)((0, _assign.default)((0, _assign.default)({}, animateStyle), {
236
233
  transformOrigin
237
234
  }), style)
238
235
  }, portalEventSet, animateEvents, {
239
- "x-placement": placement
236
+ role: role,
237
+ "x-placement": placement,
238
+ id: id
240
239
  }), content, icon);
241
240
  } : null) : /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
242
241
  className: className
@@ -307,7 +306,10 @@ class Tooltip extends _baseComponent.default {
307
306
  },
308
307
  isInsert: false,
309
308
  placement: props.position || 'top',
310
- transitionStyle: {}
309
+ transitionStyle: {},
310
+ isPositionUpdated: false,
311
+ id: (0, _uuid.getUuidShort)() // auto generate id, will be used by children.aria-describedby & content.id, improve a11y
312
+
311
313
  };
312
314
  this.foundation = new _foundation.default(this.adapter);
313
315
  this.eventManager = new _Event.default();
@@ -345,18 +347,16 @@ class Tooltip extends _baseComponent.default {
345
347
  transitionState: 'enter',
346
348
  containerStyle: (0, _assign.default)((0, _assign.default)({}, this.state.containerStyle), containerStyle)
347
349
  }, () => {
348
- /**
349
- * Dangerous: remove setTimeout from here fix #1301
350
- * setTimeout may emit portalInserted event after hiding portal
351
- * Hiding portal will remove portalInserted event listener(normal process)
352
- * then portal can't hide because _togglePortalVisible(false) will found isVisible=false and nowVisible=false(bug here)
353
- */
354
- this.eventManager.emit('portalInserted');
350
+ (0, _setTimeout2.default)(() => {
351
+ // waiting child component mounted
352
+ this.eventManager.emit('portalInserted');
353
+ }, 0);
355
354
  });
356
355
  },
357
356
  removePortal: () => {
358
357
  this.setState({
359
- isInsert: false
358
+ isInsert: false,
359
+ isPositionUpdated: false
360
360
  });
361
361
  },
362
362
  getEventName: () => ({
@@ -438,7 +438,8 @@ class Tooltip extends _baseComponent.default {
438
438
 
439
439
  this.setState({
440
440
  containerStyle: (0, _assign.default)((0, _assign.default)({}, this.state.containerStyle), style),
441
- placement: position
441
+ placement: position,
442
+ isPositionUpdated: true
442
443
  }, () => {
443
444
  this.eventManager.emit('positionUpdated');
444
445
  });
@@ -596,10 +597,13 @@ class Tooltip extends _baseComponent.default {
596
597
  render() {
597
598
  const {
598
599
  isInsert,
599
- triggerEventSet
600
+ triggerEventSet,
601
+ visible,
602
+ id
600
603
  } = this.state;
601
604
  const {
602
- wrapWhenSpecial
605
+ wrapWhenSpecial,
606
+ role
603
607
  } = this.props;
604
608
  let {
605
609
  children
@@ -626,13 +630,23 @@ class Tooltip extends _baseComponent.default {
626
630
  children = this.wrapSpan(children);
627
631
  this.isWrapped = true;
628
632
  }
633
+ } // eslint-disable-next-line prefer-const
634
+
635
+
636
+ let ariaAttribute = {}; // Take effect when used by Popover component
637
+
638
+ if (role === 'dialog') {
639
+ ariaAttribute['aria-expanded'] = visible ? 'true' : 'false';
640
+ ariaAttribute['aria-haspopup'] = 'dialog';
641
+ ariaAttribute['aria-controls'] = id;
642
+ } else {
643
+ ariaAttribute['aria-describedby'] = id;
629
644
  } // The incoming children is a single valid element, otherwise wrap a layer with span
630
645
 
631
646
 
632
- const newChild = /*#__PURE__*/_react.default.cloneElement(children, (0, _assign.default)((0, _assign.default)((0, _assign.default)({}, children.props), this.mergeEvents(children.props, triggerEventSet)), {
647
+ const newChild = /*#__PURE__*/_react.default.cloneElement(children, (0, _assign.default)((0, _assign.default)((0, _assign.default)((0, _assign.default)({}, ariaAttribute), children.props), this.mergeEvents(children.props, triggerEventSet)), {
633
648
  style: (0, _assign.default)((0, _assign.default)({}, (0, _get2.default)(children, 'props.style')), extraStyle),
634
- className: (0, _classnames.default)((0, _get2.default)(children, 'props.className') // `${prefixCls}-trigger`
635
- ),
649
+ className: (0, _classnames.default)((0, _get2.default)(children, 'props.className')),
636
650
  // to maintain refs with callback
637
651
  ref: node => {
638
652
  // Keep your own reference
@@ -688,24 +702,26 @@ Tooltip.propTypes = {
688
702
  arrowPointAtCenter: _propTypes.default.bool,
689
703
  stopPropagation: _propTypes.default.bool,
690
704
  // private
705
+ role: _propTypes.default.string,
691
706
  wrapWhenSpecial: _propTypes.default.bool // when trigger has special status such as "disabled" or "loading", wrap span
692
707
 
693
708
  };
694
709
  Tooltip.defaultProps = {
695
- transformFromCenter: true,
710
+ arrowBounding: _constants2.numbers.ARROW_BOUNDING,
711
+ autoAdjustOverflow: true,
696
712
  arrowPointAtCenter: true,
697
- wrapWhenSpecial: true,
698
- motion: true,
699
- zIndex: _constants2.numbers.DEFAULT_Z_INDEX,
700
713
  trigger: 'hover',
714
+ transformFromCenter: true,
701
715
  position: 'top',
702
716
  prefixCls: prefix,
703
- autoAdjustOverflow: true,
717
+ role: 'tooltip',
704
718
  mouseEnterDelay: _constants2.numbers.MOUSE_ENTER_DELAY,
705
719
  mouseLeaveDelay: _constants2.numbers.MOUSE_LEAVE_DELAY,
720
+ motion: true,
706
721
  onVisibleChange: _noop2.default,
707
722
  onClickOutSide: _noop2.default,
708
723
  spacing: _constants2.numbers.SPACING,
709
724
  showArrow: true,
710
- arrowBounding: _constants2.numbers.ARROW_BOUNDING
725
+ wrapWhenSpecial: true,
726
+ zIndex: _constants2.numbers.DEFAULT_Z_INDEX
711
727
  };
@@ -209,6 +209,8 @@ class Transfer extends _baseComponent.default {
209
209
  }
210
210
 
211
211
  return /*#__PURE__*/_react.default.createElement("div", {
212
+ role: "search",
213
+ "aria-label": "Transfer filter",
212
214
  className: "".concat(prefixcls, "-filter")
213
215
  }, /*#__PURE__*/_react.default.createElement(_index2.default, (0, _assign.default)({
214
216
  prefix: /*#__PURE__*/_react.default.createElement(_semiIcons.IconSearch, null),
@@ -276,6 +278,7 @@ class Transfer extends _baseComponent.default {
276
278
  disabled: item.disabled || disabled,
277
279
  className: leftItemCls,
278
280
  checked: checked,
281
+ role: "listitem",
279
282
  onChange: () => this.onSelectOrRemove(item)
280
283
  }, item.label);
281
284
  }
@@ -441,7 +444,9 @@ class Transfer extends _baseComponent.default {
441
444
  }
442
445
  });
443
446
  return /*#__PURE__*/_react.default.createElement("div", {
444
- className: "".concat(prefixcls, "-left-list")
447
+ className: "".concat(prefixcls, "-left-list"),
448
+ role: "list",
449
+ "aria-label": "Option list"
445
450
  }, content);
446
451
  }
447
452
 
@@ -479,19 +484,27 @@ class Transfer extends _baseComponent.default {
479
484
  }
480
485
 
481
486
  const DragHandle = (0, _reactSortableHoc.SortableHandle)(() => /*#__PURE__*/_react.default.createElement(_semiIcons.IconHandle, {
487
+ role: "button",
488
+ "aria-label": "Drag and sort",
482
489
  className: "".concat(prefixcls, "-right-item-drag-handler")
483
490
  }));
484
- return /*#__PURE__*/_react.default.createElement("div", {
485
- className: rightItemCls,
486
- key: newItem.key
487
- }, draggable ? /*#__PURE__*/_react.default.createElement(DragHandle, null) : null, /*#__PURE__*/_react.default.createElement("div", {
488
- className: "".concat(prefixcls, "-right-item-text")
489
- }, label), /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, {
490
- onClick: onRemove,
491
- className: (0, _classnames.default)("".concat(prefixcls, "-item-close-icon"), {
492
- ["".concat(prefixcls, "-item-close-icon-disabled")]: item.disabled
493
- })
494
- }));
491
+ return (
492
+ /*#__PURE__*/
493
+ // https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex
494
+ _react.default.createElement("div", {
495
+ role: "listitem",
496
+ className: rightItemCls,
497
+ key: newItem.key
498
+ }, draggable ? /*#__PURE__*/_react.default.createElement(DragHandle, null) : null, /*#__PURE__*/_react.default.createElement("div", {
499
+ className: "".concat(prefixcls, "-right-item-text")
500
+ }, label), /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, {
501
+ onClick: onRemove,
502
+ "aria-disabled": item.disabled,
503
+ className: (0, _classnames.default)("".concat(prefixcls, "-item-close-icon"), {
504
+ ["".concat(prefixcls, "-item-close-icon-disabled")]: item.disabled
505
+ })
506
+ }))
507
+ );
495
508
  }
496
509
 
497
510
  renderEmpty(type, emptyText) {
@@ -501,6 +514,7 @@ class Transfer extends _baseComponent.default {
501
514
  ["".concat(prefixcls, "-left-empty")]: type === 'left'
502
515
  });
503
516
  return /*#__PURE__*/_react.default.createElement("div", {
517
+ "aria-label": "empty",
504
518
  className: emptyCls
505
519
  }, emptyText);
506
520
  }
@@ -513,7 +527,9 @@ class Transfer extends _baseComponent.default {
513
527
  items
514
528
  } = _ref;
515
529
  return /*#__PURE__*/_react.default.createElement("div", {
516
- className: "".concat(prefixcls, "-right-list")
530
+ className: "".concat(prefixcls, "-right-list"),
531
+ role: "list",
532
+ "aria-label": "Selected list"
517
533
  }, (0, _map2.default)(items).call(items, (item, index) =>
518
534
  /*#__PURE__*/
519
535
  // sortableElement will take over the property 'key', so use another '_optionKey' to pass
@@ -583,7 +599,9 @@ class Transfer extends _baseComponent.default {
583
599
 
584
600
  case selectedData.length && !draggable:
585
601
  const list = /*#__PURE__*/_react.default.createElement("div", {
586
- className: "".concat(prefixcls, "-right-list")
602
+ className: "".concat(prefixcls, "-right-list"),
603
+ role: "list",
604
+ "aria-label": "Selected list"
587
605
  }, (0, _map2.default)(selectedData).call(selectedData, item => this.renderRightItem((0, _assign.default)({}, item))));
588
606
 
589
607
  content = list;
@@ -70,6 +70,7 @@ declare class Tree extends BaseComponent<TreeProps, TreeState> {
70
70
  onDragStart: PropTypes.Requireable<(...args: any[]) => any>;
71
71
  onDrop: PropTypes.Requireable<(...args: any[]) => any>;
72
72
  labelEllipsis: PropTypes.Requireable<boolean>;
73
+ 'aria-label': PropTypes.Requireable<string>;
73
74
  };
74
75
  static defaultProps: {
75
76
  showClear: boolean;
@@ -563,6 +563,7 @@ class Tree extends _baseComponent.default {
563
563
  }
564
564
 
565
565
  return /*#__PURE__*/_react.default.createElement(_index.default, (0, _assign.default)({
566
+ "aria-label": 'Filter Tree',
566
567
  ref: this.inputRef
567
568
  }, inputProps));
568
569
  }));
@@ -665,6 +666,14 @@ class Tree extends _baseComponent.default {
665
666
  });
666
667
  const searchNoRes = Boolean(inputValue) && !filteredKeys.size;
667
668
  const noData = (0, _isEmpty2.default)(keyEntities) || showFilteredOnly && searchNoRes;
669
+ const ariaAttr = {
670
+ role: noData ? 'none' : 'tree'
671
+ };
672
+
673
+ if (ariaAttr.role === 'tree') {
674
+ ariaAttr['aria-multiselectable'] = multiple ? true : false;
675
+ }
676
+
668
677
  return /*#__PURE__*/_react.default.createElement(_treeContext.default.Provider, {
669
678
  value: {
670
679
  treeDisabled: disabled,
@@ -702,13 +711,12 @@ class Tree extends _baseComponent.default {
702
711
  labelEllipsis: typeof labelEllipsis === 'undefined' ? virtualize : labelEllipsis
703
712
  }
704
713
  }, /*#__PURE__*/_react.default.createElement("div", {
714
+ "aria-label": this.props['aria-label'],
705
715
  className: wrapperCls,
706
- role: "list-box",
707
716
  style: style
708
- }, filterTreeNode ? this.renderInput() : null, /*#__PURE__*/_react.default.createElement("div", {
709
- className: listCls,
710
- role: "tree"
711
- }, noData ? this.renderEmpty() : this.renderNodeList())));
717
+ }, filterTreeNode ? this.renderInput() : null, /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
718
+ className: listCls
719
+ }, ariaAttr), noData ? this.renderEmpty() : this.renderNodeList())));
712
720
  }
713
721
 
714
722
  }
@@ -773,7 +781,8 @@ Tree.propTypes = {
773
781
  onDragOver: _propTypes.default.func,
774
782
  onDragStart: _propTypes.default.func,
775
783
  onDrop: _propTypes.default.func,
776
- labelEllipsis: _propTypes.default.bool
784
+ labelEllipsis: _propTypes.default.bool,
785
+ 'aria-label': _propTypes.default.string
777
786
  };
778
787
  Tree.defaultProps = {
779
788
  showClear: true,
@@ -29,11 +29,19 @@ export default class TreeNode extends PureComponent<TreeNodeProps, TreeNodeState
29
29
  debounceSelect: any;
30
30
  refNode: HTMLElement;
31
31
  constructor(props: TreeNodeProps);
32
- onSelect: (e: React.MouseEvent) => void;
33
- onExpand: (e: React.MouseEvent) => void;
34
- onCheck: (e: React.MouseEvent) => void;
32
+ onSelect: (e: React.MouseEvent | React.KeyboardEvent) => void;
33
+ onExpand: (e: React.MouseEvent | React.KeyboardEvent) => void;
34
+ onCheck: (e: React.MouseEvent | React.KeyboardEvent) => void;
35
+ /**
36
+ * A11y: simulate checkbox click
37
+ */
38
+ handleCheckEnterPress: (e: React.KeyboardEvent) => void;
35
39
  onContextMenu: (e: React.MouseEvent) => void;
36
- onClick: (e: React.MouseEvent) => void;
40
+ onClick: (e: React.MouseEvent | React.KeyboardEvent) => void;
41
+ /**
42
+ * A11y: simulate li click
43
+ */
44
+ handleliEnterPress: (e: React.KeyboardEvent) => void;
37
45
  onDoubleClick: (e: React.MouseEvent) => void;
38
46
  onDragStart: (e: React.DragEvent) => void;
39
47
  onDragEnter: (e: React.DragEvent) => void;
@@ -24,6 +24,10 @@ var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-st
24
24
 
25
25
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
26
26
 
27
+ var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
28
+
29
+ var _get2 = _interopRequireDefault(require("lodash/get"));
30
+
27
31
  var _isString2 = _interopRequireDefault(require("lodash/isString"));
28
32
 
29
33
  var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
@@ -38,6 +42,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
38
42
 
39
43
  var _constants = require("@douyinfe/semi-foundation/lib/cjs/tree/constants");
40
44
 
45
+ var _isEnterPress = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/utils/isEnterPress"));
46
+
41
47
  var _semiIcons = require("@douyinfe/semi-icons");
42
48
 
43
49
  var _checkbox = require("../checkbox");
@@ -95,6 +101,16 @@ class TreeNode extends _react.PureComponent {
95
101
  e.nativeEvent.stopImmediatePropagation();
96
102
  onNodeCheck(e, this.props);
97
103
  };
104
+ /**
105
+ * A11y: simulate checkbox click
106
+ */
107
+
108
+
109
+ this.handleCheckEnterPress = e => {
110
+ if ((0, _isEnterPress.default)(e)) {
111
+ this.onCheck(e);
112
+ }
113
+ };
98
114
 
99
115
  this.onContextMenu = e => {
100
116
  const {
@@ -119,6 +135,16 @@ class TreeNode extends _react.PureComponent {
119
135
  this.onExpand(e);
120
136
  }
121
137
  };
138
+ /**
139
+ * A11y: simulate li click
140
+ */
141
+
142
+
143
+ this.handleliEnterPress = e => {
144
+ if ((0, _isEnterPress.default)(e)) {
145
+ this.onClick(e);
146
+ }
147
+ };
122
148
 
123
149
  this.onDoubleClick = e => {
124
150
  const {
@@ -294,7 +320,8 @@ class TreeNode extends _react.PureComponent {
294
320
  renderArrow() {
295
321
  const showIcon = !this.isLeaf();
296
322
  const {
297
- loading
323
+ loading,
324
+ expanded
298
325
  } = this.props;
299
326
 
300
327
  if (loading) {
@@ -305,6 +332,8 @@ class TreeNode extends _react.PureComponent {
305
332
 
306
333
  if (showIcon) {
307
334
  return /*#__PURE__*/_react.default.createElement(_semiIcons.IconTreeTriangleDown, {
335
+ role: 'button',
336
+ "aria-label": "".concat(expanded ? 'Expand' : 'Collapse', " the tree item"),
308
337
  className: "".concat(prefixcls, "-expand-icon"),
309
338
  size: "small",
310
339
  onClick: this.onExpand
@@ -323,8 +352,11 @@ class TreeNode extends _react.PureComponent {
323
352
  } = this.props;
324
353
  const disabled = this.isDisabled();
325
354
  return /*#__PURE__*/_react.default.createElement("div", {
326
- onClick: this.onCheck
355
+ role: 'none',
356
+ onClick: this.onCheck,
357
+ onKeyPress: this.handleCheckEnterPress
327
358
  }, /*#__PURE__*/_react.default.createElement(_checkbox.Checkbox, {
359
+ "aria-label": 'Toggle the checked state of checkbox',
328
360
  indeterminate: halfChecked,
329
361
  checked: checked,
330
362
  disabled: Boolean(disabled)
@@ -377,7 +409,7 @@ class TreeNode extends _react.PureComponent {
377
409
  });
378
410
  return /*#__PURE__*/_react.default.createElement("ul", {
379
411
  className: wrapperCls
380
- }, /*#__PURE__*/_react.default.createElement("span", {
412
+ }, /*#__PURE__*/_react.default.createElement("li", {
381
413
  className: (0, _concat.default)(_context2 = "".concat(prefixcls, "-label ")).call(_context2, prefixcls, "-label-empty")
382
414
  }, emptyContent));
383
415
  } // eslint-disable-next-line max-lines-per-function
@@ -476,7 +508,14 @@ class TreeNode extends _react.PureComponent {
476
508
  ref: this.setRef
477
509
  }, dragProps));
478
510
  } else {
479
- return customLabel;
511
+ if ((0, _isEmpty2.default)(style)) {
512
+ return customLabel;
513
+ } else {
514
+ // In virtualization, props.style will contain location information
515
+ return /*#__PURE__*/_react.default.cloneElement(customLabel, {
516
+ style: (0, _assign.default)((0, _assign.default)({}, (0, _get2.default)(customLabel, ['props', 'style'])), style)
517
+ });
518
+ }
480
519
  }
481
520
  }
482
521
 
@@ -484,11 +523,21 @@ class TreeNode extends _react.PureComponent {
484
523
  ["".concat(prefixcls, "-drag-over-gap-top")]: !disabled && dragOverGapTop,
485
524
  ["".concat(prefixcls, "-drag-over-gap-bottom")]: !disabled && dragOverGapBottom
486
525
  });
526
+ const setsize = (0, _get2.default)(rest, ['data', 'children', 'length']);
527
+ const posinset = (0, _isString2.default)(rest.pos) ? Number(rest.pos.split('-')[level + 1]) + 1 : 1;
487
528
  return /*#__PURE__*/_react.default.createElement("li", (0, _assign.default)({
488
529
  className: nodeCls,
489
- role: "treenode",
530
+ role: "treeitem",
531
+ "aria-disabled": disabled,
532
+ "aria-checked": checked,
533
+ "aria-selected": selected,
534
+ "aria-setsize": setsize,
535
+ "aria-posinset": posinset,
536
+ "aria-expanded": expanded,
537
+ "aria-level": level + 1,
490
538
  "data-key": eventKey,
491
539
  onClick: this.onClick,
540
+ onKeyPress: this.handleliEnterPress,
492
541
  onContextMenu: this.onContextMenu,
493
542
  onDoubleClick: this.onDoubleClick,
494
543
  ref: this.setRef,
@@ -34,6 +34,11 @@ export declare type OverrideCommonProps = 'renderFullLabel' | 'renderLabel' | 'd
34
34
  * TreeSelectProps inherits some properties from BasicTreeSelectProps (from foundation) and TreeProps (from semi-ui-react).
35
35
  */
36
36
  export interface TreeSelectProps extends Omit<BasicTreeSelectProps, OverrideCommonProps | 'validateStatus' | 'searchRender'>, Pick<TreeProps, OverrideCommonProps> {
37
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
38
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
39
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
40
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
41
+ 'aria-required'?: React.AriaAttributes['aria-required'];
37
42
  motion?: Motion;
38
43
  mouseEnterDelay?: number;
39
44
  mouseLeaveDelay?: number;
@@ -45,6 +50,7 @@ export interface TreeSelectProps extends Omit<BasicTreeSelectProps, OverrideComm
45
50
  dropdownMatchSelectWidth?: boolean;
46
51
  dropdownStyle?: React.CSSProperties;
47
52
  insetLabel?: React.ReactNode;
53
+ insetLabelId?: string;
48
54
  maxTagCount?: number;
49
55
  motionExpand?: boolean;
50
56
  optionListStyle?: React.CSSProperties;
@@ -85,6 +91,11 @@ export interface TreeSelectState extends Omit<BasicTreeSelectInnerData, Override
85
91
  declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState> {
86
92
  static contextType: React.Context<import("../configProvider/context").ContextValue>;
87
93
  static propTypes: {
94
+ 'aria-describedby': PropTypes.Requireable<string>;
95
+ 'aria-errormessage': PropTypes.Requireable<string>;
96
+ 'aria-invalid': PropTypes.Requireable<boolean>;
97
+ 'aria-labelledby': PropTypes.Requireable<string>;
98
+ 'aria-required': PropTypes.Requireable<boolean>;
88
99
  loadedKeys: PropTypes.Requireable<string[]>;
89
100
  loadData: PropTypes.Requireable<(...args: any[]) => any>;
90
101
  onLoad: PropTypes.Requireable<(...args: any[]) => any>;
@@ -136,6 +147,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
136
147
  suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
137
148
  prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
138
149
  insetLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
150
+ insetLabelId: PropTypes.Requireable<string>;
139
151
  zIndex: PropTypes.Requireable<number>;
140
152
  getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
141
153
  dropdownMatchSelectWidth: PropTypes.Requireable<boolean>;
@@ -156,6 +168,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
156
168
  optionListStyle: PropTypes.Requireable<object>;
157
169
  searchRender: PropTypes.Requireable<boolean | ((...args: any[]) => any)>;
158
170
  renderSelectedItem: PropTypes.Requireable<(...args: any[]) => any>;
171
+ 'aria-label': PropTypes.Requireable<string>;
159
172
  };
160
173
  static defaultProps: Partial<TreeSelectProps>;
161
174
  inputRef: React.RefObject<typeof Input>;
@@ -167,6 +180,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
167
180
  onNodeClick: any;
168
181
  onNodeDoubleClick: any;
169
182
  onMotionEnd: any;
183
+ treeSelectID: string;
170
184
  constructor(props: TreeSelectProps);
171
185
  static getDerivedStateFromProps(props: TreeSelectProps, prevState: TreeSelectState): Partial<TreeSelectState>;
172
186
  get adapter(): TreeSelectAdapter<TreeSelectProps, TreeSelectState>;
@@ -177,6 +191,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
177
191
  renderContent: () => JSX.Element;
178
192
  removeTag: (removedKey: TreeNodeData['key']) => void;
179
193
  handleClick: (e: React.MouseEvent) => void;
194
+ handleSelectionEnterPress: (e: React.KeyboardEvent<HTMLDivElement>) => void;
180
195
  showClearBtn: () => boolean;
181
196
  renderTagList: () => React.ReactNode[];
182
197
  /**
@@ -189,6 +204,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
189
204
  renderSingleTriggerSearch: () => JSX.Element;
190
205
  renderSelectContent: () => JSX.Element;
191
206
  handleClear: (e: React.MouseEvent) => void;
207
+ handleClearEnterPress: (e: React.KeyboardEvent<HTMLDivElement>) => void;
192
208
  handleMouseOver: (e: React.MouseEvent) => void;
193
209
  handleMouseLeave: (e: React.MouseEvent) => void;
194
210
  search: (value: string) => void;