@douyinfe/semi-ui 2.2.0-beta.1 → 2.3.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 (444) hide show
  1. package/_base/_story/a11y.jsx +6 -6
  2. package/_utils/hooks/usePrevFocus.ts +16 -0
  3. package/_utils/index.ts +4 -0
  4. package/anchor/_story/anchor.stories.js +1 -1
  5. package/anchor/index.tsx +5 -2
  6. package/anchor/link.tsx +29 -4
  7. package/autoComplete/index.tsx +28 -1
  8. package/avatar/_story/avatar.stories.js +4 -4
  9. package/avatar/avatarGroup.tsx +1 -1
  10. package/avatar/index.tsx +10 -4
  11. package/banner/index.tsx +2 -1
  12. package/breadcrumb/_story/breadcrumb.stories.js +22 -8
  13. package/breadcrumb/index.tsx +8 -1
  14. package/breadcrumb/item.tsx +1 -1
  15. package/button/Button.tsx +4 -0
  16. package/button/__test__/button.test.js +1 -1
  17. package/button/_story/button.stories.js +10 -10
  18. package/button/buttonGroup.tsx +4 -2
  19. package/button/splitButtonGroup.tsx +5 -2
  20. package/card/_story/card.stories.js +8 -1
  21. package/card/_story/card.stories.tsx +3 -0
  22. package/card/index.tsx +5 -2
  23. package/cascader/index.tsx +33 -5
  24. package/checkbox/_story/checkbox.stories.js +21 -14
  25. package/checkbox/checkbox.tsx +40 -5
  26. package/checkbox/checkboxGroup.tsx +30 -5
  27. package/checkbox/checkboxInner.tsx +25 -2
  28. package/collapse/index.tsx +2 -2
  29. package/collapse/item.tsx +15 -8
  30. package/collapsible/index.tsx +4 -2
  31. package/configProvider/_story/configProvider.stories.tsx +27 -0
  32. package/datePicker/__test__/datePicker.test.js +108 -0
  33. package/datePicker/_story/datePicker.stories.js +146 -2
  34. package/datePicker/datePicker.tsx +24 -0
  35. package/datePicker/monthsGrid.tsx +2 -1
  36. package/dist/css/semi.css +34 -7
  37. package/dist/css/semi.min.css +1 -1
  38. package/dist/umd/semi-ui.js +2785 -1508
  39. package/dist/umd/semi-ui.js.map +1 -1
  40. package/dist/umd/semi-ui.min.js +1 -1
  41. package/dist/umd/semi-ui.min.js.map +1 -1
  42. package/dropdown/dropdownItem.tsx +1 -1
  43. package/dropdown/dropdownMenu.tsx +1 -1
  44. package/empty/index.tsx +5 -5
  45. package/form/_story/FormApi/formApiDemo.jsx +3 -2
  46. package/form/_story/Validate/validateDemo.jsx +1 -1
  47. package/form/_story/demo.jsx +12 -3
  48. package/form/_story/form.stories.js +0 -7
  49. package/form/baseForm.tsx +2 -0
  50. package/form/errorMessage.tsx +13 -2
  51. package/form/hoc/withField.tsx +37 -8
  52. package/form/index.tsx +0 -2
  53. package/form/interface.ts +2 -0
  54. package/form/label.tsx +4 -2
  55. package/input/index.tsx +49 -4
  56. package/input/inputGroup.tsx +9 -4
  57. package/input/textarea.tsx +25 -6
  58. package/inputNumber/_story/inputNumber.stories.js +12 -0
  59. package/inputNumber/index.tsx +33 -2
  60. package/layout/Sider.tsx +6 -2
  61. package/layout/index.tsx +4 -3
  62. package/lib/cjs/_utils/hooks/usePrevFocus.d.ts +2 -0
  63. package/lib/cjs/_utils/hooks/usePrevFocus.js +30 -0
  64. package/lib/cjs/_utils/index.d.ts +1 -0
  65. package/lib/cjs/_utils/index.js +6 -1
  66. package/lib/cjs/anchor/index.d.ts +2 -0
  67. package/lib/cjs/anchor/index.js +6 -1
  68. package/lib/cjs/anchor/link.d.ts +4 -1
  69. package/lib/cjs/anchor/link.js +39 -5
  70. package/lib/cjs/autoComplete/index.d.ts +17 -0
  71. package/lib/cjs/autoComplete/index.js +21 -2
  72. package/lib/cjs/avatar/avatarGroup.js +2 -1
  73. package/lib/cjs/avatar/index.d.ts +4 -3
  74. package/lib/cjs/avatar/index.js +20 -11
  75. package/lib/cjs/banner/index.js +4 -2
  76. package/lib/cjs/breadcrumb/index.d.ts +3 -0
  77. package/lib/cjs/breadcrumb/index.js +10 -4
  78. package/lib/cjs/breadcrumb/item.js +2 -2
  79. package/lib/cjs/button/Button.d.ts +2 -0
  80. package/lib/cjs/button/Button.js +4 -2
  81. package/lib/cjs/button/buttonGroup.d.ts +3 -0
  82. package/lib/cjs/button/buttonGroup.js +8 -4
  83. package/lib/cjs/button/index.d.ts +1 -0
  84. package/lib/cjs/button/splitButtonGroup.d.ts +3 -0
  85. package/lib/cjs/button/splitButtonGroup.js +5 -2
  86. package/lib/cjs/card/index.d.ts +3 -0
  87. package/lib/cjs/card/index.js +3 -1
  88. package/lib/cjs/cascader/index.d.ts +14 -0
  89. package/lib/cjs/cascader/index.js +35 -7
  90. package/lib/cjs/checkbox/checkbox.d.ts +21 -1
  91. package/lib/cjs/checkbox/checkbox.js +51 -17
  92. package/lib/cjs/checkbox/checkboxGroup.d.ts +13 -1
  93. package/lib/cjs/checkbox/checkboxGroup.js +16 -3
  94. package/lib/cjs/checkbox/checkboxInner.d.ts +15 -0
  95. package/lib/cjs/checkbox/checkboxInner.js +20 -3
  96. package/lib/cjs/collapse/index.js +2 -1
  97. package/lib/cjs/collapse/item.d.ts +2 -1
  98. package/lib/cjs/collapse/item.js +17 -3
  99. package/lib/cjs/collapsible/index.d.ts +1 -0
  100. package/lib/cjs/collapsible/index.js +4 -2
  101. package/lib/cjs/datePicker/datePicker.d.ts +12 -0
  102. package/lib/cjs/datePicker/datePicker.js +22 -3
  103. package/lib/cjs/datePicker/monthsGrid.d.ts +1 -0
  104. package/lib/cjs/datePicker/monthsGrid.js +2 -1
  105. package/lib/cjs/dropdown/dropdownItem.js +3 -1
  106. package/lib/cjs/dropdown/dropdownMenu.js +4 -1
  107. package/lib/cjs/empty/index.js +2 -1
  108. package/lib/cjs/form/baseForm.d.ts +9 -0
  109. package/lib/cjs/form/baseForm.js +3 -1
  110. package/lib/cjs/form/errorMessage.d.ts +4 -0
  111. package/lib/cjs/form/errorMessage.js +21 -3
  112. package/lib/cjs/form/field.d.ts +7 -0
  113. package/lib/cjs/form/hoc/withField.js +49 -16
  114. package/lib/cjs/form/index.d.ts +0 -1
  115. package/lib/cjs/form/interface.d.ts +2 -0
  116. package/lib/cjs/form/label.d.ts +2 -0
  117. package/lib/cjs/form/label.js +5 -2
  118. package/lib/cjs/input/index.d.ts +16 -0
  119. package/lib/cjs/input/index.js +51 -15
  120. package/lib/cjs/input/inputGroup.d.ts +2 -1
  121. package/lib/cjs/input/inputGroup.js +11 -1
  122. package/lib/cjs/input/textarea.js +12 -1
  123. package/lib/cjs/inputNumber/index.d.ts +21 -12
  124. package/lib/cjs/inputNumber/index.js +37 -3
  125. package/lib/cjs/layout/Sider.d.ts +4 -0
  126. package/lib/cjs/layout/Sider.js +4 -1
  127. package/lib/cjs/layout/index.js +2 -0
  128. package/lib/cjs/list/item.js +0 -1
  129. package/lib/cjs/modal/Modal.js +2 -0
  130. package/lib/cjs/modal/ModalContent.d.ts +3 -1
  131. package/lib/cjs/modal/ModalContent.js +47 -5
  132. package/lib/cjs/navigation/Item.d.ts +4 -2
  133. package/lib/cjs/navigation/Item.js +25 -5
  134. package/lib/cjs/navigation/SubNav.d.ts +4 -2
  135. package/lib/cjs/navigation/SubNav.js +8 -1
  136. package/lib/cjs/navigation/index.js +2 -0
  137. package/lib/cjs/notification/notice.d.ts +1 -1
  138. package/lib/cjs/notification/notice.js +32 -22
  139. package/lib/cjs/pagination/index.js +16 -6
  140. package/lib/cjs/popover/index.js +7 -3
  141. package/lib/cjs/progress/index.d.ts +8 -0
  142. package/lib/cjs/progress/index.js +42 -9
  143. package/lib/cjs/radio/radio.d.ts +6 -1
  144. package/lib/cjs/radio/radio.js +17 -5
  145. package/lib/cjs/radio/radioGroup.d.ts +16 -1
  146. package/lib/cjs/radio/radioGroup.js +18 -3
  147. package/lib/cjs/radio/radioInner.d.ts +6 -1
  148. package/lib/cjs/radio/radioInner.js +11 -3
  149. package/lib/cjs/rating/index.d.ts +14 -0
  150. package/lib/cjs/rating/index.js +14 -3
  151. package/lib/cjs/rating/item.d.ts +2 -0
  152. package/lib/cjs/rating/item.js +6 -1
  153. package/lib/cjs/select/index.d.ts +16 -0
  154. package/lib/cjs/select/index.js +65 -19
  155. package/lib/cjs/select/option.js +28 -22
  156. package/lib/cjs/sideSheet/SideSheetContent.d.ts +1 -0
  157. package/lib/cjs/sideSheet/SideSheetContent.js +12 -5
  158. package/lib/cjs/sideSheet/index.d.ts +1 -0
  159. package/lib/cjs/sideSheet/index.js +2 -1
  160. package/lib/cjs/slider/index.d.ts +2 -1
  161. package/lib/cjs/slider/index.js +64 -17
  162. package/lib/cjs/spin/icon.js +2 -4
  163. package/lib/cjs/steps/basicStep.d.ts +3 -0
  164. package/lib/cjs/steps/basicStep.js +23 -25
  165. package/lib/cjs/steps/basicSteps.d.ts +1 -0
  166. package/lib/cjs/steps/basicSteps.js +2 -1
  167. package/lib/cjs/steps/fillStep.d.ts +3 -0
  168. package/lib/cjs/steps/fillStep.js +19 -4
  169. package/lib/cjs/steps/fillSteps.d.ts +1 -0
  170. package/lib/cjs/steps/fillSteps.js +2 -1
  171. package/lib/cjs/steps/navStep.d.ts +3 -0
  172. package/lib/cjs/steps/navStep.js +22 -25
  173. package/lib/cjs/steps/navSteps.d.ts +1 -0
  174. package/lib/cjs/steps/navSteps.js +2 -1
  175. package/lib/cjs/switch/index.d.ts +12 -0
  176. package/lib/cjs/switch/index.js +19 -4
  177. package/lib/cjs/table/Body/BaseRow.js +35 -3
  178. package/lib/cjs/table/Body/index.js +9 -1
  179. package/lib/cjs/table/ColumnFilter.js +4 -0
  180. package/lib/cjs/table/ColumnSelection.d.ts +3 -0
  181. package/lib/cjs/table/ColumnSelection.js +6 -2
  182. package/lib/cjs/table/ColumnSorter.js +19 -3
  183. package/lib/cjs/table/CustomExpandIcon.js +7 -1
  184. package/lib/cjs/table/Table.d.ts +2 -0
  185. package/lib/cjs/table/Table.js +31 -15
  186. package/lib/cjs/table/TableCell.d.ts +2 -0
  187. package/lib/cjs/table/TableCell.js +6 -2
  188. package/lib/cjs/table/TableHeaderRow.js +8 -2
  189. package/lib/cjs/tabs/TabBar.js +11 -3
  190. package/lib/cjs/tabs/TabPane.js +3 -1
  191. package/lib/cjs/tabs/index.js +3 -8
  192. package/lib/cjs/tagInput/index.d.ts +4 -1
  193. package/lib/cjs/tagInput/index.js +29 -3
  194. package/lib/cjs/timePicker/TimePicker.d.ts +12 -0
  195. package/lib/cjs/timePicker/TimePicker.js +9 -1
  196. package/lib/cjs/timePicker/index.d.ts +6 -0
  197. package/lib/cjs/timeline/index.d.ts +1 -1
  198. package/lib/cjs/timeline/index.js +1 -0
  199. package/lib/cjs/timeline/item.js +4 -2
  200. package/lib/cjs/toast/toast.js +2 -0
  201. package/lib/cjs/tooltip/TriangleArrow.js +1 -0
  202. package/lib/cjs/tooltip/TriangleArrowVertical.js +1 -0
  203. package/lib/cjs/tooltip/index.d.ts +16 -12
  204. package/lib/cjs/tooltip/index.js +55 -39
  205. package/lib/cjs/transfer/index.d.ts +1 -1
  206. package/lib/cjs/transfer/index.js +35 -17
  207. package/lib/cjs/tree/index.d.ts +1 -0
  208. package/lib/cjs/tree/index.js +15 -6
  209. package/lib/cjs/tree/treeNode.d.ts +12 -4
  210. package/lib/cjs/tree/treeNode.js +44 -4
  211. package/lib/cjs/treeSelect/index.d.ts +16 -0
  212. package/lib/cjs/treeSelect/index.js +60 -12
  213. package/lib/cjs/typography/base.js +18 -7
  214. package/lib/cjs/typography/copyable.js +6 -1
  215. package/lib/cjs/upload/fileCard.js +23 -4
  216. package/lib/cjs/upload/index.js +19 -4
  217. package/lib/es/_utils/hooks/usePrevFocus.d.ts +2 -0
  218. package/lib/es/_utils/hooks/usePrevFocus.js +15 -0
  219. package/lib/es/_utils/index.d.ts +1 -0
  220. package/lib/es/_utils/index.js +4 -1
  221. package/lib/es/anchor/index.d.ts +2 -0
  222. package/lib/es/anchor/index.js +6 -1
  223. package/lib/es/anchor/link.d.ts +4 -1
  224. package/lib/es/anchor/link.js +38 -5
  225. package/lib/es/autoComplete/index.d.ts +17 -0
  226. package/lib/es/autoComplete/index.js +21 -2
  227. package/lib/es/avatar/avatarGroup.js +2 -1
  228. package/lib/es/avatar/index.d.ts +4 -3
  229. package/lib/es/avatar/index.js +20 -11
  230. package/lib/es/banner/index.js +4 -2
  231. package/lib/es/breadcrumb/index.d.ts +3 -0
  232. package/lib/es/breadcrumb/index.js +10 -4
  233. package/lib/es/breadcrumb/item.js +2 -2
  234. package/lib/es/button/Button.d.ts +2 -0
  235. package/lib/es/button/Button.js +4 -2
  236. package/lib/es/button/buttonGroup.d.ts +3 -0
  237. package/lib/es/button/buttonGroup.js +8 -4
  238. package/lib/es/button/index.d.ts +1 -0
  239. package/lib/es/button/splitButtonGroup.d.ts +3 -0
  240. package/lib/es/button/splitButtonGroup.js +5 -2
  241. package/lib/es/card/index.d.ts +3 -0
  242. package/lib/es/card/index.js +3 -1
  243. package/lib/es/cascader/index.d.ts +14 -0
  244. package/lib/es/cascader/index.js +35 -7
  245. package/lib/es/checkbox/checkbox.d.ts +21 -1
  246. package/lib/es/checkbox/checkbox.js +50 -17
  247. package/lib/es/checkbox/checkboxGroup.d.ts +13 -1
  248. package/lib/es/checkbox/checkboxGroup.js +18 -5
  249. package/lib/es/checkbox/checkboxInner.d.ts +15 -0
  250. package/lib/es/checkbox/checkboxInner.js +20 -3
  251. package/lib/es/collapse/index.js +2 -1
  252. package/lib/es/collapse/item.d.ts +2 -1
  253. package/lib/es/collapse/item.js +16 -3
  254. package/lib/es/collapsible/index.d.ts +1 -0
  255. package/lib/es/collapsible/index.js +4 -2
  256. package/lib/es/datePicker/datePicker.d.ts +12 -0
  257. package/lib/es/datePicker/datePicker.js +22 -3
  258. package/lib/es/datePicker/monthsGrid.d.ts +1 -0
  259. package/lib/es/datePicker/monthsGrid.js +2 -1
  260. package/lib/es/dropdown/dropdownItem.js +3 -1
  261. package/lib/es/dropdown/dropdownMenu.js +4 -1
  262. package/lib/es/empty/index.js +2 -1
  263. package/lib/es/form/baseForm.d.ts +9 -0
  264. package/lib/es/form/baseForm.js +3 -1
  265. package/lib/es/form/errorMessage.d.ts +4 -0
  266. package/lib/es/form/errorMessage.js +21 -3
  267. package/lib/es/form/field.d.ts +7 -0
  268. package/lib/es/form/hoc/withField.js +48 -15
  269. package/lib/es/form/index.d.ts +0 -1
  270. package/lib/es/form/index.js +0 -1
  271. package/lib/es/form/interface.d.ts +2 -0
  272. package/lib/es/form/label.d.ts +2 -0
  273. package/lib/es/form/label.js +5 -2
  274. package/lib/es/input/index.d.ts +16 -0
  275. package/lib/es/input/index.js +51 -15
  276. package/lib/es/input/inputGroup.d.ts +2 -1
  277. package/lib/es/input/inputGroup.js +11 -1
  278. package/lib/es/input/textarea.js +12 -1
  279. package/lib/es/inputNumber/index.d.ts +21 -12
  280. package/lib/es/inputNumber/index.js +38 -3
  281. package/lib/es/layout/Sider.d.ts +4 -0
  282. package/lib/es/layout/Sider.js +4 -1
  283. package/lib/es/layout/index.js +2 -0
  284. package/lib/es/list/item.js +0 -1
  285. package/lib/es/modal/Modal.js +2 -0
  286. package/lib/es/modal/ModalContent.d.ts +3 -1
  287. package/lib/es/modal/ModalContent.js +46 -5
  288. package/lib/es/navigation/Item.d.ts +4 -2
  289. package/lib/es/navigation/Item.js +25 -5
  290. package/lib/es/navigation/SubNav.d.ts +4 -2
  291. package/lib/es/navigation/SubNav.js +8 -1
  292. package/lib/es/navigation/index.js +2 -0
  293. package/lib/es/notification/notice.d.ts +1 -1
  294. package/lib/es/notification/notice.js +33 -24
  295. package/lib/es/pagination/index.js +16 -6
  296. package/lib/es/popover/index.js +7 -3
  297. package/lib/es/progress/index.d.ts +8 -0
  298. package/lib/es/progress/index.js +42 -9
  299. package/lib/es/radio/radio.d.ts +6 -1
  300. package/lib/es/radio/radio.js +16 -5
  301. package/lib/es/radio/radioGroup.d.ts +16 -1
  302. package/lib/es/radio/radioGroup.js +18 -3
  303. package/lib/es/radio/radioInner.d.ts +6 -1
  304. package/lib/es/radio/radioInner.js +11 -3
  305. package/lib/es/rating/index.d.ts +14 -0
  306. package/lib/es/rating/index.js +14 -3
  307. package/lib/es/rating/item.d.ts +2 -0
  308. package/lib/es/rating/item.js +6 -1
  309. package/lib/es/select/index.d.ts +16 -0
  310. package/lib/es/select/index.js +63 -17
  311. package/lib/es/select/option.js +28 -22
  312. package/lib/es/sideSheet/SideSheetContent.d.ts +1 -0
  313. package/lib/es/sideSheet/SideSheetContent.js +12 -5
  314. package/lib/es/sideSheet/index.d.ts +1 -0
  315. package/lib/es/sideSheet/index.js +2 -1
  316. package/lib/es/slider/index.d.ts +2 -1
  317. package/lib/es/slider/index.js +63 -16
  318. package/lib/es/spin/icon.js +2 -4
  319. package/lib/es/steps/basicStep.d.ts +3 -0
  320. package/lib/es/steps/basicStep.js +23 -23
  321. package/lib/es/steps/basicSteps.d.ts +1 -0
  322. package/lib/es/steps/basicSteps.js +2 -1
  323. package/lib/es/steps/fillStep.d.ts +3 -0
  324. package/lib/es/steps/fillStep.js +19 -4
  325. package/lib/es/steps/fillSteps.d.ts +1 -0
  326. package/lib/es/steps/fillSteps.js +2 -1
  327. package/lib/es/steps/navStep.d.ts +3 -0
  328. package/lib/es/steps/navStep.js +22 -23
  329. package/lib/es/steps/navSteps.d.ts +1 -0
  330. package/lib/es/steps/navSteps.js +2 -1
  331. package/lib/es/switch/index.d.ts +12 -0
  332. package/lib/es/switch/index.js +19 -4
  333. package/lib/es/table/Body/BaseRow.js +35 -3
  334. package/lib/es/table/Body/index.js +9 -2
  335. package/lib/es/table/ColumnFilter.js +4 -0
  336. package/lib/es/table/ColumnSelection.d.ts +3 -0
  337. package/lib/es/table/ColumnSelection.js +6 -2
  338. package/lib/es/table/ColumnSorter.js +17 -3
  339. package/lib/es/table/CustomExpandIcon.js +6 -1
  340. package/lib/es/table/Table.d.ts +2 -0
  341. package/lib/es/table/Table.js +31 -15
  342. package/lib/es/table/TableCell.d.ts +2 -0
  343. package/lib/es/table/TableCell.js +6 -2
  344. package/lib/es/table/TableHeaderRow.js +8 -2
  345. package/lib/es/tabs/TabBar.js +11 -3
  346. package/lib/es/tabs/TabPane.js +3 -1
  347. package/lib/es/tabs/index.js +1 -6
  348. package/lib/es/tagInput/index.d.ts +4 -1
  349. package/lib/es/tagInput/index.js +29 -3
  350. package/lib/es/timePicker/TimePicker.d.ts +12 -0
  351. package/lib/es/timePicker/TimePicker.js +9 -1
  352. package/lib/es/timePicker/index.d.ts +6 -0
  353. package/lib/es/timeline/index.d.ts +1 -1
  354. package/lib/es/timeline/index.js +1 -0
  355. package/lib/es/timeline/item.js +4 -2
  356. package/lib/es/toast/toast.js +2 -0
  357. package/lib/es/tooltip/TriangleArrow.js +1 -0
  358. package/lib/es/tooltip/TriangleArrowVertical.js +1 -0
  359. package/lib/es/tooltip/index.d.ts +16 -12
  360. package/lib/es/tooltip/index.js +53 -39
  361. package/lib/es/transfer/index.d.ts +1 -1
  362. package/lib/es/transfer/index.js +35 -17
  363. package/lib/es/tree/index.d.ts +1 -0
  364. package/lib/es/tree/index.js +15 -6
  365. package/lib/es/tree/treeNode.d.ts +12 -4
  366. package/lib/es/tree/treeNode.js +44 -4
  367. package/lib/es/treeSelect/index.d.ts +16 -0
  368. package/lib/es/treeSelect/index.js +57 -10
  369. package/lib/es/typography/base.js +17 -7
  370. package/lib/es/typography/copyable.js +5 -1
  371. package/lib/es/upload/fileCard.js +23 -4
  372. package/lib/es/upload/index.js +19 -4
  373. package/list/item.tsx +0 -1
  374. package/modal/Modal.tsx +2 -0
  375. package/modal/ModalContent.tsx +35 -5
  376. package/navigation/Item.tsx +15 -0
  377. package/navigation/SubNav.tsx +13 -1
  378. package/navigation/index.tsx +1 -1
  379. package/notification/notice.tsx +19 -14
  380. package/package.json +8 -8
  381. package/pagination/index.tsx +9 -5
  382. package/popover/index.tsx +5 -0
  383. package/progress/_story/progress.stories.js +18 -18
  384. package/progress/index.tsx +58 -20
  385. package/radio/radio.tsx +12 -2
  386. package/radio/radioGroup.tsx +29 -3
  387. package/radio/radioInner.tsx +10 -1
  388. package/rating/index.tsx +19 -2
  389. package/rating/item.tsx +6 -0
  390. package/select/__test__/select.test.js +45 -0
  391. package/select/_story/select.stories.js +29 -0
  392. package/select/index.tsx +52 -4
  393. package/select/option.tsx +3 -0
  394. package/sideSheet/SideSheetContent.tsx +13 -9
  395. package/sideSheet/index.tsx +3 -2
  396. package/slider/__test__/slider.test.js +9 -0
  397. package/slider/_story/slider.stories.js +1 -1
  398. package/slider/index.tsx +44 -7
  399. package/spin/icon.tsx +3 -3
  400. package/steps/basicStep.tsx +15 -4
  401. package/steps/basicSteps.tsx +3 -2
  402. package/steps/fillStep.tsx +27 -12
  403. package/steps/fillSteps.tsx +2 -0
  404. package/steps/navStep.tsx +15 -4
  405. package/steps/navSteps.tsx +3 -2
  406. package/switch/_story/switch.stories.js +20 -19
  407. package/switch/_story/switch.stories.tsx +13 -13
  408. package/switch/index.tsx +23 -5
  409. package/table/Body/BaseRow.tsx +25 -1
  410. package/table/Body/index.tsx +7 -2
  411. package/table/ColumnFilter.tsx +7 -1
  412. package/table/ColumnSelection.tsx +4 -1
  413. package/table/ColumnSorter.tsx +18 -1
  414. package/table/CustomExpandIcon.tsx +5 -0
  415. package/table/Table.tsx +26 -13
  416. package/table/TableCell.tsx +11 -1
  417. package/table/TableHeaderRow.tsx +16 -2
  418. package/table/__test__/table.test.js +46 -0
  419. package/tabs/TabBar.tsx +8 -5
  420. package/tabs/TabPane.tsx +3 -1
  421. package/tabs/index.tsx +1 -2
  422. package/tagInput/__test__/tagInput.test.js +46 -0
  423. package/tagInput/_story/tagInput.stories.js +2 -2
  424. package/tagInput/index.tsx +31 -8
  425. package/timePicker/TimePicker.tsx +14 -1
  426. package/timeline/_story/timeline.stories.js +1 -1
  427. package/timeline/index.tsx +2 -2
  428. package/timeline/item.tsx +2 -1
  429. package/toast/toast.tsx +2 -0
  430. package/tooltip/TriangleArrow.tsx +1 -1
  431. package/tooltip/TriangleArrowVertical.tsx +1 -1
  432. package/tooltip/_story/tooltip.stories.js +562 -514
  433. package/tooltip/index.tsx +50 -33
  434. package/transfer/index.tsx +32 -28
  435. package/tree/_story/tree.stories.js +3 -3
  436. package/tree/index.tsx +10 -2
  437. package/tree/treeNode.tsx +46 -10
  438. package/treeSelect/__test__/treeMultiple.test.js +5 -0
  439. package/treeSelect/_story/treeSelect.stories.js +12 -0
  440. package/treeSelect/index.tsx +58 -7
  441. package/typography/base.tsx +7 -1
  442. package/typography/copyable.tsx +10 -1
  443. package/upload/fileCard.tsx +13 -15
  444. package/upload/index.tsx +10 -6
@@ -1,20 +1,5 @@
1
1
  import _isFunction from "lodash/isFunction";
2
- import _indexOfInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/index-of";
3
- import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
4
2
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
5
- import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
6
-
7
- var __rest = this && this.__rest || function (s, e) {
8
- var t = {};
9
-
10
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && _indexOfInstanceProperty(e).call(e, p) < 0) t[p] = s[p];
11
-
12
- if (s != null && typeof _Object$getOwnPropertySymbols === "function") for (var i = 0, p = _Object$getOwnPropertySymbols(s); i < p.length; i++) {
13
- if (_indexOfInstanceProperty(e).call(e, p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
14
- }
15
- return t;
16
- };
17
-
18
3
  import React from 'react';
19
4
  import PropTypes from 'prop-types';
20
5
  import classnames from 'classnames';
@@ -43,9 +28,9 @@ const BasicStep = props => {
43
28
  icon,
44
29
  stepNumber,
45
30
  onClick,
46
- onChange
47
- } = props,
48
- restProps = __rest(props, ["prefixCls", "className", "size", "title", "description", "status", "style", "active", "done", "icon", "stepNumber", "onClick", "onChange"]);
31
+ onChange,
32
+ onKeyDown
33
+ } = props;
49
34
 
50
35
  const renderIcon = () => {
51
36
  let inner, progress;
@@ -103,10 +88,10 @@ const BasicStep = props => {
103
88
  }, inner) : null;
104
89
  };
105
90
 
106
- const classString = classnames(prefixCls, className, _concatInstanceProperty(_context = "".concat(prefixCls, "-")).call(_context, status), {
91
+ const classString = classnames(prefixCls, _concatInstanceProperty(_context = "".concat(prefixCls, "-")).call(_context, status), {
107
92
  ["".concat(prefixCls, "-active")]: active,
108
93
  ["".concat(prefixCls, "-done")]: done
109
- });
94
+ }, className);
110
95
 
111
96
  const handleClick = e => {
112
97
  if (_isFunction(onClick)) {
@@ -116,11 +101,26 @@ const BasicStep = props => {
116
101
  onChange();
117
102
  };
118
103
 
119
- return /*#__PURE__*/React.createElement("div", _Object$assign({}, restProps, {
104
+ const handleKeyDown = e => {
105
+ if (e.key === 'Enter') {
106
+ if (_isFunction(onKeyDown)) {
107
+ onKeyDown(e);
108
+ }
109
+
110
+ onChange();
111
+ }
112
+ };
113
+
114
+ return /*#__PURE__*/React.createElement("div", {
115
+ role: props["role"],
116
+ "aria-label": props["aria-label"],
117
+ tabIndex: 0,
118
+ "aria-current": "step",
120
119
  className: classString,
121
120
  style: style,
122
- onClick: e => handleClick(e)
123
- }), /*#__PURE__*/React.createElement("div", {
121
+ onClick: e => handleClick(e),
122
+ onKeyDown: handleKeyDown
123
+ }, /*#__PURE__*/React.createElement("div", {
124
124
  className: "".concat(prefixCls, "-container")
125
125
  }, /*#__PURE__*/React.createElement("div", {
126
126
  className: "".concat(prefixCls, "-left")
@@ -15,6 +15,7 @@ export interface BasicStepsProps {
15
15
  hasLine?: boolean;
16
16
  children?: React.ReactNode;
17
17
  onChange?: (current: number) => void;
18
+ "aria-label"?: string;
18
19
  }
19
20
  declare const Steps: {
20
21
  (props: BasicStepsProps): JSX.Element;
@@ -67,7 +67,7 @@ const Steps = props => {
67
67
  });
68
68
 
69
69
  return content;
70
- }, [children, initial, prefixCls, direction, status, current, size]);
70
+ }, [children, initial, prefixCls, direction, status, current, size, onChange]);
71
71
  const wrapperCls = cls(className, {
72
72
  ["".concat(prefixCls, "-basic")]: true,
73
73
  [_concatInstanceProperty(_context2 = "".concat(prefixCls, "-")).call(_context2, direction)]: true,
@@ -75,6 +75,7 @@ const Steps = props => {
75
75
  ["".concat(prefixCls, "-hasline")]: hasLine
76
76
  });
77
77
  return /*#__PURE__*/React.createElement("div", {
78
+ "aria-label": props["aria-label"],
78
79
  className: wrapperCls,
79
80
  style: style
80
81
  }, inner);
@@ -12,6 +12,9 @@ export interface FillStepProps {
12
12
  stepNumber?: string;
13
13
  onChange?: () => void;
14
14
  onClick?: React.MouseEventHandler<HTMLDivElement>;
15
+ onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;
16
+ "role"?: React.AriaRole;
17
+ "aria-label"?: React.AriaAttributes["aria-label"];
15
18
  }
16
19
  declare const FillStep: {
17
20
  (props: FillStepProps): JSX.Element;
@@ -19,7 +19,8 @@ const FillStep = props => {
19
19
  onClick,
20
20
  icon,
21
21
  onChange,
22
- stepNumber
22
+ stepNumber,
23
+ onKeyDown
23
24
  } = props;
24
25
 
25
26
  const renderIcon = () => {
@@ -81,17 +82,31 @@ const FillStep = props => {
81
82
  onChange();
82
83
  };
83
84
 
85
+ const handleKeyDown = e => {
86
+ if (e.key === 'Enter') {
87
+ if (_isFunction(onKeyDown)) {
88
+ onKeyDown(e);
89
+ }
90
+
91
+ onChange();
92
+ }
93
+ };
94
+
84
95
  return /*#__PURE__*/React.createElement("div", {
96
+ role: props["role"],
97
+ "aria-label": props["aria-label"],
98
+ "aria-current": "step",
99
+ tabIndex: 0,
85
100
  className: classnames({
86
- [className]: Boolean(className),
87
101
  [prefixCls]: true,
88
102
  [_concatInstanceProperty(_context = "".concat(prefixCls, "-")).call(_context, status)]: Boolean(status),
89
103
  ["".concat(prefixCls, "-clickable")]: onClick
90
- }),
104
+ }, className),
91
105
  style: style,
92
106
  onClick: e => {
93
107
  handleClick(e);
94
- }
108
+ },
109
+ onKeyDown: handleKeyDown
95
110
  }, renderIcon(), /*#__PURE__*/React.createElement("div", {
96
111
  className: "".concat(prefixCls, "-content")
97
112
  }, /*#__PURE__*/React.createElement("div", {
@@ -12,6 +12,7 @@ export interface FillStepsProps {
12
12
  style?: React.CSSProperties;
13
13
  children?: React.ReactNode;
14
14
  onChange?: (current: number) => void;
15
+ "aria-label"?: string;
15
16
  }
16
17
  declare const Steps: {
17
18
  (props: FillStepsProps): JSX.Element;
@@ -76,7 +76,8 @@ const Steps = props => {
76
76
  });
77
77
  return /*#__PURE__*/React.createElement("div", {
78
78
  className: wrapperCls,
79
- style: style
79
+ style: style,
80
+ "aria-label": props["aria-label"]
80
81
  }, /*#__PURE__*/React.createElement(Row, {
81
82
  type: "flex",
82
83
  justify: "start"
@@ -10,6 +10,9 @@ export interface NavStepProps {
10
10
  prefixCls?: string;
11
11
  onChange?: () => void;
12
12
  onClick?: React.MouseEventHandler<HTMLDivElement>;
13
+ onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;
14
+ "role"?: React.AriaRole;
15
+ "aria-label"?: React.AriaAttributes["aria-label"];
13
16
  }
14
17
  declare const NavStep: {
15
18
  (props: NavStepProps): JSX.Element;
@@ -1,19 +1,4 @@
1
1
  import _isFunction from "lodash/isFunction";
2
- import _indexOfInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/index-of";
3
- import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
4
- import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
5
-
6
- var __rest = this && this.__rest || function (s, e) {
7
- var t = {};
8
-
9
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && _indexOfInstanceProperty(e).call(e, p) < 0) t[p] = s[p];
10
-
11
- if (s != null && typeof _Object$getOwnPropertySymbols === "function") for (var i = 0, p = _Object$getOwnPropertySymbols(s); i < p.length; i++) {
12
- if (_indexOfInstanceProperty(e).call(e, p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
13
- }
14
- return t;
15
- };
16
-
17
2
  import React from 'react';
18
3
  import PropTypes from 'prop-types';
19
4
  import classnames from 'classnames';
@@ -30,13 +15,12 @@ const NavStep = props => {
30
15
  index,
31
16
  total,
32
17
  onClick,
18
+ onKeyDown,
33
19
  onChange
34
- } = props,
35
- restProps = __rest(props, ["prefixCls", "className", "title", "style", "active", "index", "total", "onClick", "onChange"]);
36
-
37
- const classString = classnames(prefixCls, className, {
20
+ } = props;
21
+ const classString = classnames(prefixCls, {
38
22
  ["".concat(prefixCls, "-active")]: active
39
- });
23
+ }, className);
40
24
 
41
25
  const handleClick = e => {
42
26
  if (_isFunction(onClick)) {
@@ -46,11 +30,26 @@ const NavStep = props => {
46
30
  onChange();
47
31
  };
48
32
 
49
- return /*#__PURE__*/React.createElement("div", _Object$assign({}, restProps, {
33
+ const handleKeyDown = e => {
34
+ if (e.key === 'Enter') {
35
+ if (_isFunction(onKeyDown)) {
36
+ onKeyDown(e);
37
+ }
38
+
39
+ onChange();
40
+ }
41
+ };
42
+
43
+ return /*#__PURE__*/React.createElement("div", {
44
+ role: props["role"],
45
+ "aria-label": props["aria-label"],
46
+ "aria-current": "step",
47
+ tabIndex: 0,
50
48
  className: classString,
51
49
  style: style,
52
- onClick: e => handleClick(e)
53
- }), /*#__PURE__*/React.createElement("div", {
50
+ onClick: e => handleClick(e),
51
+ onKeyDown: handleKeyDown
52
+ }, /*#__PURE__*/React.createElement("div", {
54
53
  className: "".concat(prefixCls, "-container")
55
54
  }, /*#__PURE__*/React.createElement("div", {
56
55
  className: "".concat(prefixCls, "-content")
@@ -10,6 +10,7 @@ export interface NavStepsProps {
10
10
  size?: Size;
11
11
  children?: React.ReactNode;
12
12
  onChange?: (current: number) => void;
13
+ "aria-label"?: string;
13
14
  }
14
15
  declare const Steps: {
15
16
  (props: NavStepsProps): JSX.Element;
@@ -49,12 +49,13 @@ const Steps = props => {
49
49
  });
50
50
 
51
51
  return content;
52
- }, [children, prefixCls, current, size]);
52
+ }, [children, prefixCls, current, size, initial, onChange]);
53
53
  const wrapperCls = cls(className, {
54
54
  ["".concat(prefixCls, "-nav")]: true,
55
55
  [_concatInstanceProperty(_context2 = "".concat(prefixCls, "-")).call(_context2, size)]: size !== 'default'
56
56
  });
57
57
  return /*#__PURE__*/React.createElement("div", {
58
+ "aria-label": props["aria-label"],
58
59
  className: wrapperCls,
59
60
  style: style
60
61
  }, inner);
@@ -4,6 +4,11 @@ import { SwitchAdapter } from '@douyinfe/semi-foundation/lib/es/switch/foundatio
4
4
  import BaseComponent from '../_base/baseComponent';
5
5
  import '@douyinfe/semi-foundation/lib/es/switch/switch.css';
6
6
  export interface SwitchProps {
7
+ 'aria-label'?: React.AriaAttributes['aria-label'];
8
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
9
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
10
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
11
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
7
12
  defaultChecked?: boolean;
8
13
  checked?: boolean;
9
14
  disabled?: boolean;
@@ -16,6 +21,7 @@ export interface SwitchProps {
16
21
  size?: 'large' | 'default' | 'small';
17
22
  checkedText?: React.ReactNode;
18
23
  uncheckedText?: React.ReactNode;
24
+ id?: string;
19
25
  }
20
26
  export interface SwitchState {
21
27
  nativeControlChecked: boolean;
@@ -23,6 +29,11 @@ export interface SwitchState {
23
29
  }
24
30
  declare class Switch extends BaseComponent<SwitchProps, SwitchState> {
25
31
  static propTypes: {
32
+ 'aria-label': PropTypes.Requireable<string>;
33
+ 'aria-labelledby': PropTypes.Requireable<string>;
34
+ 'aria-invalid': PropTypes.Requireable<boolean>;
35
+ 'aria-errormessage': PropTypes.Requireable<string>;
36
+ 'aria-describedby': PropTypes.Requireable<string>;
26
37
  className: PropTypes.Requireable<string>;
27
38
  checked: PropTypes.Requireable<boolean>;
28
39
  checkedText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -35,6 +46,7 @@ declare class Switch extends BaseComponent<SwitchProps, SwitchState> {
35
46
  style: PropTypes.Requireable<object>;
36
47
  size: PropTypes.Requireable<"default" | "small" | "large">;
37
48
  uncheckedText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
49
+ id: PropTypes.Requireable<string>;
38
50
  };
39
51
  static defaultProps: Partial<SwitchProps>;
40
52
  private switchRef;
@@ -1,7 +1,7 @@
1
1
  import _noop from "lodash/noop";
2
2
  import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
3
3
 
4
- /* eslint-disable max-len */
4
+ /* eslint-disable max-len, jsx-a11y/role-supports-aria-props */
5
5
  import React from 'react';
6
6
  import cls from 'classnames';
7
7
  import PropTypes from 'prop-types';
@@ -71,7 +71,8 @@ class Switch extends BaseComponent {
71
71
  size,
72
72
  checkedText,
73
73
  uncheckedText,
74
- loading
74
+ loading,
75
+ id
75
76
  } = this.props;
76
77
  const wrapperCls = cls(className, {
77
78
  [cssClasses.PREFIX]: true,
@@ -99,13 +100,21 @@ class Switch extends BaseComponent {
99
100
  wrapperClassName: cssClasses.LOADING_SPIN,
100
101
  size: size === 'default' ? 'middle' : size
101
102
  }) : /*#__PURE__*/React.createElement("div", {
102
- className: cssClasses.KNOB
103
+ className: cssClasses.KNOB,
104
+ "aria-hidden": true
103
105
  }), showCheckedText ? /*#__PURE__*/React.createElement("div", {
104
106
  className: cssClasses.CHECKED_TEXT
105
107
  }, checkedText) : null, showUncheckedText ? /*#__PURE__*/React.createElement("div", {
106
108
  className: cssClasses.UNCHECKED_TEXT
107
109
  }, uncheckedText) : null, /*#__PURE__*/React.createElement("input", _Object$assign({}, switchProps, {
108
110
  ref: this.switchRef,
111
+ id: id,
112
+ "aria-checked": nativeControlChecked,
113
+ "aria-invalid": this.props['aria-invalid'],
114
+ "aria-errormessage": this.props['aria-errormessage'],
115
+ "aria-label": this.props['aria-label'],
116
+ "aria-labelledby": this.props['aria-labelledby'],
117
+ "aria-describedby": this.props["aria-describedby"],
109
118
  onChange: e => this.foundation.handleChange(e.target.checked, e)
110
119
  })));
111
120
  }
@@ -113,6 +122,11 @@ class Switch extends BaseComponent {
113
122
  }
114
123
 
115
124
  Switch.propTypes = {
125
+ 'aria-label': PropTypes.string,
126
+ 'aria-labelledby': PropTypes.string,
127
+ 'aria-invalid': PropTypes.bool,
128
+ 'aria-errormessage': PropTypes.string,
129
+ 'aria-describedby': PropTypes.string,
116
130
  className: PropTypes.string,
117
131
  checked: PropTypes.bool,
118
132
  checkedText: PropTypes.node,
@@ -124,7 +138,8 @@ Switch.propTypes = {
124
138
  onMouseLeave: PropTypes.func,
125
139
  style: PropTypes.object,
126
140
  size: PropTypes.oneOf(strings.SIZE_MAP),
127
- uncheckedText: PropTypes.node
141
+ uncheckedText: PropTypes.node,
142
+ id: PropTypes.string
128
143
  };
129
144
  Switch.defaultProps = {
130
145
  disabled: false,
@@ -182,6 +182,7 @@ export default class TableRow extends BaseComponent {
182
182
  if (isExpandedColumn(column) && !displayExpandedColumn) {
183
183
  cells.push( /*#__PURE__*/React.createElement(TableCell, {
184
184
  key: columnIndex,
185
+ colIndex: columnIndex,
185
186
  isSection: isSection
186
187
  }));
187
188
  } else if (!isScrollbarColumn(column)) {
@@ -191,7 +192,9 @@ export default class TableRow extends BaseComponent {
191
192
  diyProps.width = _get(cellWidths, columnIndex);
192
193
  }
193
194
 
194
- cells.push( /*#__PURE__*/React.createElement(TableCell, _Object$assign({}, expandableProps, diyProps, {
195
+ cells.push( /*#__PURE__*/React.createElement(TableCell, _Object$assign({
196
+ colIndex: columnIndex
197
+ }, expandableProps, diyProps, {
195
198
  hideExpandedColumn: hideExpandedColumn,
196
199
  indentSize: indentSize,
197
200
  isSection: isSection,
@@ -230,7 +233,11 @@ export default class TableRow extends BaseComponent {
230
233
  replaceClassName,
231
234
  record,
232
235
  hovered,
233
- expanded
236
+ expanded,
237
+ expandableRow,
238
+ level,
239
+ expandedRow,
240
+ isSection
234
241
  } = this.props;
235
242
  const BodyRow = components.body.row;
236
243
 
@@ -250,7 +257,32 @@ export default class TableRow extends BaseComponent {
250
257
  ["".concat(prefixCls, "-row-expanded")]: expanded,
251
258
  ["".concat(prefixCls, "-row-hovered")]: hovered
252
259
  }, customClassName);
253
- return /*#__PURE__*/React.createElement(BodyRow, _Object$assign({}, rowProps, {
260
+ const ariaProps = {};
261
+
262
+ if (typeof index === 'number') {
263
+ ariaProps['aria-rowindex'] = index + 1;
264
+ }
265
+
266
+ if (expandableRow) {
267
+ ariaProps['aria-expanded'] = expanded;
268
+ } // if row is expandedRow, set it's level to 2
269
+
270
+
271
+ if (expanded || expandedRow) {
272
+ ariaProps['aria-level'] = 2;
273
+ }
274
+
275
+ if (typeof level === 'number') {
276
+ ariaProps['aria-level'] = level + 1;
277
+ }
278
+
279
+ if (isSection) {
280
+ ariaProps['aria-level'] = 1;
281
+ }
282
+
283
+ return /*#__PURE__*/React.createElement(BodyRow, _Object$assign({
284
+ role: "row"
285
+ }, ariaProps, rowProps, {
254
286
  style: baseRowStyle,
255
287
  className: rowCls,
256
288
  ref: this._cacheNode,
@@ -1,3 +1,4 @@
1
+ import _isFunction from "lodash/isFunction";
1
2
  import _isNull from "lodash/isNull";
2
3
  import _pick from "lodash/pick";
3
4
  import _isEqual from "lodash/isEqual";
@@ -37,7 +38,7 @@ import React from 'react';
37
38
  import PropTypes from 'prop-types';
38
39
  import classnames from 'classnames';
39
40
  import { VariableSizeList as List } from 'react-window';
40
- import { arrayAdd, getRecordKey, isExpanded, isSelected, isDisabled, getRecord, genExpandedRowKey, getDefaultVirtualizedRowConfig } from '@douyinfe/semi-foundation/lib/es/table/utils';
41
+ import { arrayAdd, getRecordKey, isExpanded, isSelected, isDisabled, getRecord, genExpandedRowKey, getDefaultVirtualizedRowConfig, isTreeTable } from '@douyinfe/semi-foundation/lib/es/table/utils';
41
42
  import BodyFoundation from '@douyinfe/semi-foundation/lib/es/table/bodyFoundation';
42
43
  import { strings } from '@douyinfe/semi-foundation/lib/es/table/constants';
43
44
  import BaseComponent from '../../_base/baseComponent';
@@ -494,7 +495,8 @@ class Body extends BaseComponent {
494
495
  includeHeader,
495
496
  dataSource,
496
497
  onScroll,
497
- groups
498
+ groups,
499
+ expandedRowRender
498
500
  } = this.props;
499
501
 
500
502
  const x = _get(scroll, 'x');
@@ -538,6 +540,11 @@ class Body extends BaseComponent {
538
540
  onWheel: handleWheel,
539
541
  onScroll: handleBodyScroll
540
542
  }, /*#__PURE__*/React.createElement(Table, {
543
+ role: _isMap(groups) || _isFunction(expandedRowRender) || isTreeTable({
544
+ dataSource
545
+ }) ? 'treegrid' : 'grid',
546
+ "aria-rowcount": dataSource && dataSource.length,
547
+ "aria-colcount": columns && columns.length,
541
548
  style: tableStyle,
542
549
  className: classnames(prefixCls, {
543
550
  ["".concat(prefixCls, "-fixed")]: anyColumnFixed
@@ -154,6 +154,10 @@ export default function ColumnFilter() {
154
154
  iconElem = /*#__PURE__*/React.createElement("div", {
155
155
  className: finalCls
156
156
  }, /*#__PURE__*/React.createElement(IconFilter, {
157
+ role: "button",
158
+ "aria-label": "Filter data with this column",
159
+ "aria-haspopup": "listbox",
160
+ tabIndex: -1,
157
161
  size: "small"
158
162
  }));
159
163
  }
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import BaseComponent from '../_base/baseComponent';
2
3
  import PropTypes from 'prop-types';
3
4
  import { TableSelectionCellAdapter, TableSelectionCellEvent } from '@douyinfe/semi-foundation/lib/es/table/tableSelectionCellFoundation';
@@ -12,6 +13,7 @@ export interface TableSelectionCellProps {
12
13
  indeterminate?: boolean;
13
14
  prefixCls?: string;
14
15
  className?: string;
16
+ 'aria-label'?: React.AriaAttributes['aria-label'];
15
17
  }
16
18
  /**
17
19
  * render selection cell
@@ -27,6 +29,7 @@ export default class TableSelectionCell extends BaseComponent<TableSelectionCell
27
29
  indeterminate: PropTypes.Requireable<boolean>;
28
30
  prefixCls: PropTypes.Requireable<string>;
29
31
  className: PropTypes.Requireable<string>;
32
+ 'aria-label': PropTypes.Requireable<string>;
30
33
  };
31
34
  static defaultProps: {
32
35
  disabled: boolean;
@@ -41,6 +41,7 @@ export default class TableSelectionCell extends BaseComponent {
41
41
  prefixCls,
42
42
  className
43
43
  } = this.props;
44
+ const ariaLabel = this.props['aria-label'];
44
45
  let checkboxProps = {
45
46
  onChange: this.handleChange,
46
47
  disabled,
@@ -57,7 +58,9 @@ export default class TableSelectionCell extends BaseComponent {
57
58
  }, className);
58
59
  return /*#__PURE__*/React.createElement("span", {
59
60
  className: wrapCls
60
- }, /*#__PURE__*/React.createElement(Checkbox, _Object$assign({}, checkboxProps)));
61
+ }, /*#__PURE__*/React.createElement(Checkbox, _Object$assign({
62
+ "aria-label": ariaLabel
63
+ }, checkboxProps)));
61
64
  }
62
65
 
63
66
  }
@@ -70,7 +73,8 @@ TableSelectionCell.propTypes = {
70
73
  disabled: PropTypes.bool,
71
74
  indeterminate: PropTypes.bool,
72
75
  prefixCls: PropTypes.string,
73
- className: PropTypes.string
76
+ className: PropTypes.string,
77
+ 'aria-label': PropTypes.string
74
78
  };
75
79
  TableSelectionCell.defaultProps = {
76
80
  disabled: false,
@@ -1,9 +1,11 @@
1
1
  import _noop from "lodash/noop";
2
+ import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
2
3
  import React, { PureComponent } from 'react';
3
4
  import PropTypes from 'prop-types';
4
5
  import cls from 'classnames';
5
6
  import { IconCaretup, IconCaretdown } from '@douyinfe/semi-icons';
6
7
  import { cssClasses, strings } from '@douyinfe/semi-foundation/lib/es/table/constants';
8
+ import isEnterPress from '@douyinfe/semi-foundation/lib/es/utils/isEnterPress';
7
9
  export default class ColumnSorter extends PureComponent {
8
10
  render() {
9
11
  const {
@@ -19,11 +21,23 @@ export default class ColumnSorter extends PureComponent {
19
21
  const downCls = cls("".concat(prefixCls, "-column-sorter-down"), {
20
22
  on: sortOrder === strings.SORT_DIRECTIONS[1]
21
23
  });
22
- return /*#__PURE__*/React.createElement("div", {
24
+ const ariaProps = {
25
+ /**
26
+ * Set 'aria-sort' to aria-columnheader is difficult, so set 'aria-label' about sort info to sorter
27
+ * reference: https://developer.mozilla.org/en-US/docs/Web/API/Element/ariaSort
28
+ */
29
+ 'aria-label': "Current sort order is ".concat(sortOrder ? "".concat(sortOrder, "ing") : 'none'),
30
+ 'aria-roledescription': 'Sort data with this column'
31
+ };
32
+ return /*#__PURE__*/React.createElement("div", _Object$assign({
33
+ role: 'button'
34
+ }, ariaProps, {
35
+ tabIndex: -1,
23
36
  style: style,
24
37
  className: "".concat(prefixCls, "-column-sorter"),
25
- onClick: onClick
26
- }, /*#__PURE__*/React.createElement("span", {
38
+ onClick: onClick,
39
+ onKeyPress: e => isEnterPress(e) && onClick(e)
40
+ }), /*#__PURE__*/React.createElement("span", {
27
41
  className: "".concat(upCls)
28
42
  }, /*#__PURE__*/React.createElement(IconCaretup, {
29
43
  size: iconBtnSize
@@ -5,6 +5,7 @@ import React, { useCallback } from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { IconChevronRight, IconChevronDown, IconTreeTriangleDown, IconTreeTriangleRight } from '@douyinfe/semi-icons';
7
7
  import { cssClasses } from '@douyinfe/semi-foundation/lib/es/table/constants';
8
+ import isEnterPress from '@douyinfe/semi-foundation/lib/es/utils/isEnterPress';
8
9
  import Rotate from '../motions/Rotate';
9
10
  /**
10
11
  * render expand icon
@@ -51,10 +52,14 @@ export default function CustomExpandIcon(props) {
51
52
  }
52
53
 
53
54
  return /*#__PURE__*/React.createElement("span", {
55
+ role: "button",
56
+ "aria-label": "Expand this row",
57
+ tabIndex: -1,
54
58
  onClick: handleClick,
55
59
  onMouseEnter: onMouseEnter,
56
60
  onMouseLeave: onMouseLeave,
57
- className: "".concat(prefixCls, "-expand-icon")
61
+ className: "".concat(prefixCls, "-expand-icon"),
62
+ onKeyPress: e => isEnterPress(e) && handleClick(e)
58
63
  }, icon);
59
64
  }
60
65
  CustomExpandIcon.propTypes = {
@@ -31,6 +31,7 @@ export interface NormalTableState<RecordType extends Record<string, any> = Data>
31
31
  bodyHasScrollBar?: boolean;
32
32
  prePropRowSelection?: TableStateRowSelection<RecordType>;
33
33
  tableWidth?: number;
34
+ prePagination?: Pagination;
34
35
  }
35
36
  export declare type TableStateRowSelection<RecordType extends Record<string, any> = Data> = (RowSelectionProps<RecordType> & {
36
37
  selectedRowKeysSet?: Set<(string | number)>;
@@ -229,6 +230,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
229
230
  /**
230
231
  * render pagination
231
232
  * @param {object} pagination
233
+ * @param {object} propRenderPagination
232
234
  */
233
235
  renderPagination: (pagination: TablePaginationProps, propRenderPagination: RenderPagination) => JSX.Element;
234
236
  renderTitle: (props?: {