@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
@@ -58,6 +58,8 @@ function generator(type) {
58
58
  return BasicComponent => class Adapter extends _react.default.PureComponent {
59
59
  render() {
60
60
  return /*#__PURE__*/_react.default.createElement(BasicComponent, (0, _assign.default)({
61
+ role: this.props.role,
62
+ "aria-label": this.props['aria-label'],
61
63
  type: typeName,
62
64
  tagName: tagName
63
65
  }, this.props));
@@ -5,7 +5,7 @@ import ListItem from './item';
5
5
  import { Grid } from './list-context';
6
6
  import BaseComponent from '../_base/baseComponent';
7
7
  export { ListItemProps } from './item';
8
- export interface ListProps {
8
+ export interface ListProps<T> {
9
9
  style?: React.CSSProperties;
10
10
  className?: string;
11
11
  bordered?: boolean;
@@ -15,15 +15,15 @@ export interface ListProps {
15
15
  size?: 'small' | 'large' | 'default';
16
16
  split?: boolean;
17
17
  emptyContent?: React.ReactNode;
18
- dataSource?: any[];
19
- renderItem?: (item: any, ind: number) => React.ReactNode;
18
+ dataSource?: T[];
19
+ renderItem?: (item: T, ind: number) => React.ReactNode;
20
20
  grid?: Grid;
21
21
  loading?: boolean;
22
22
  loadMore?: React.ReactNode;
23
23
  onClick?: React.MouseEventHandler<HTMLLIElement>;
24
24
  onRightClick?: React.MouseEventHandler<HTMLLIElement>;
25
25
  }
26
- declare class List extends BaseComponent<ListProps> {
26
+ declare class List<T = any> extends BaseComponent<ListProps<T>> {
27
27
  static Item: typeof ListItem;
28
28
  static propTypes: {
29
29
  style: PropTypes.Requireable<object>;
@@ -110,7 +110,6 @@ class ListItem extends _react.PureComponent {
110
110
  }
111
111
 
112
112
  let content = /*#__PURE__*/_react.default.createElement("li", {
113
- role: "list-item",
114
113
  className: itemCls,
115
114
  style: style,
116
115
  onClick: handleClick,
@@ -114,6 +114,7 @@ class Modal extends _baseComponent.default {
114
114
  return null;
115
115
  } else {
116
116
  return /*#__PURE__*/_react.default.createElement(_button.default, (0, _assign.default)({
117
+ "aria-label": "cancel",
117
118
  onClick: this.handleCancel,
118
119
  loading: cancelLoading,
119
120
  type: "tertiary"
@@ -124,6 +125,7 @@ class Modal extends _baseComponent.default {
124
125
  return /*#__PURE__*/_react.default.createElement(_localeConsumer.default, {
125
126
  componentName: "Modal"
126
127
  }, (locale, localeCode) => /*#__PURE__*/_react.default.createElement("div", null, getCancelButton(locale), /*#__PURE__*/_react.default.createElement(_button.default, (0, _assign.default)({
128
+ "aria-label": "confirm",
127
129
  type: okType,
128
130
  theme: "solid",
129
131
  loading: confirmLoading,
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import BaseComponent from '../_base/baseComponent';
4
- import { ModalContentAdapter, ModalContentProps, ModalContentState } from '@douyinfe/semi-foundation/lib/cjs/modal/modalContentFoundation';
4
+ import ModalContentFoundation, { ModalContentAdapter, ModalContentProps, ModalContentState } from '@douyinfe/semi-foundation/lib/cjs/modal/modalContentFoundation';
5
5
  export default class ModalContent extends BaseComponent<ModalContentProps, ModalContentState> {
6
6
  static contextType: React.Context<import("../configProvider/context").ContextValue>;
7
7
  static propTypes: {
@@ -19,6 +19,8 @@ export default class ModalContent extends BaseComponent<ModalContentProps, Modal
19
19
  };
20
20
  dialogId: string;
21
21
  private timeoutId;
22
+ modalDialogRef: React.MutableRefObject<HTMLDivElement>;
23
+ foundation: ModalContentFoundation;
22
24
  constructor(props: ModalContentProps);
23
25
  get adapter(): ModalContentAdapter;
24
26
  componentDidMount(): void;
@@ -22,6 +22,10 @@ var _setTimeout2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-j
22
22
 
23
23
  var _bind = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/bind"));
24
24
 
25
+ var _get2 = _interopRequireDefault(require("lodash/get"));
26
+
27
+ var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
28
+
25
29
  var _noop2 = _interopRequireDefault(require("lodash/noop"));
26
30
 
27
31
  var _react = _interopRequireDefault(require("react"));
@@ -44,6 +48,8 @@ var _modalContentFoundation = _interopRequireDefault(require("@douyinfe/semi-fou
44
48
 
45
49
  var _semiIcons = require("@douyinfe/semi-icons");
46
50
 
51
+ var _utils = require("../_utils");
52
+
47
53
  var __rest = void 0 && (void 0).__rest || function (s, e) {
48
54
  var t = {};
49
55
 
@@ -118,6 +124,7 @@ class ModalContent extends _baseComponent.default {
118
124
  const iconType = closeIcon || /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, null);
119
125
 
120
126
  closer = /*#__PURE__*/_react.default.createElement(_iconButton.default, {
127
+ "aria-label": "close",
121
128
  className: "".concat(_constants.cssClasses.DIALOG, "-close"),
122
129
  key: "close-btn",
123
130
  onClick: this.close,
@@ -154,7 +161,8 @@ class ModalContent extends _baseComponent.default {
154
161
  className: "".concat(_constants.cssClasses.DIALOG, "-header")
155
162
  }, icon, /*#__PURE__*/_react.default.createElement(_typography.default.Title, {
156
163
  heading: 5,
157
- className: "".concat(_constants.cssClasses.DIALOG, "-title")
164
+ className: "".concat(_constants.cssClasses.DIALOG, "-title"),
165
+ id: "".concat(_constants.cssClasses.DIALOG, "-title")
158
166
  }, title), closer);
159
167
  };
160
168
 
@@ -172,6 +180,7 @@ class ModalContent extends _baseComponent.default {
172
180
  const hasHeader = title !== null && title !== undefined || 'header' in this.props;
173
181
  return hasHeader ? /*#__PURE__*/_react.default.createElement("div", {
174
182
  className: bodyCls,
183
+ id: "".concat(_constants.cssClasses.DIALOG, "-body"),
175
184
  style: bodyStyle
176
185
  }, children) : /*#__PURE__*/_react.default.createElement("div", {
177
186
  className: "".concat(_constants.cssClasses.DIALOG, "-body-wrapper")
@@ -212,13 +221,21 @@ class ModalContent extends _baseComponent.default {
212
221
  className: "".concat(_constants.cssClasses.DIALOG, "-footer")
213
222
  }, props.footer) : null;
214
223
 
215
- const dialogElement = /*#__PURE__*/_react.default.createElement("div", {
224
+ const dialogElement =
225
+ /*#__PURE__*/
226
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
227
+ _react.default.createElement("div", {
216
228
  key: "dialog-element",
217
229
  className: digCls,
218
230
  onMouseDown: this.onDialogMouseDown,
219
231
  style: (0, _assign.default)((0, _assign.default)({}, props.style), style),
220
232
  id: this.dialogId
221
233
  }, /*#__PURE__*/_react.default.createElement("div", {
234
+ role: "dialog",
235
+ ref: this.modalDialogRef,
236
+ "aria-modal": "true",
237
+ "aria-labelledby": "".concat(_constants.cssClasses.DIALOG, "-title"),
238
+ "aria-describedby": "".concat(_constants.cssClasses.DIALOG, "-body"),
222
239
  onAnimationEnd: props.onAnimationEnd,
223
240
  className: (0, _classnames.default)(["".concat(_constants.cssClasses.DIALOG, "-content"), props.contentClassName, {
224
241
  ["".concat(_constants.cssClasses.DIALOG, "-content-fullScreen")]: props.isFullScreen
@@ -230,10 +247,12 @@ class ModalContent extends _baseComponent.default {
230
247
  };
231
248
 
232
249
  this.state = {
233
- dialogMouseDown: false
250
+ dialogMouseDown: false,
251
+ prevFocusElement: (0, _utils.getActiveElement)()
234
252
  };
235
253
  this.foundation = new _modalContentFoundation.default(this.adapter);
236
254
  this.dialogId = "dialog-".concat(uuid++);
255
+ this.modalDialogRef = /*#__PURE__*/_react.default.createRef();
237
256
  }
238
257
 
239
258
  get adapter() {
@@ -270,12 +289,35 @@ class ModalContent extends _baseComponent.default {
270
289
  document.removeEventListener('keydown', (0, _bind.default)(_context3 = this.foundation.handleKeyDown).call(_context3, this.foundation));
271
290
  }
272
291
  },
273
- getMouseState: () => this.state.dialogMouseDown
292
+ getMouseState: () => this.state.dialogMouseDown,
293
+ modalDialogFocus: () => {
294
+ let activeElementInDialog;
295
+
296
+ if (this.modalDialogRef) {
297
+ const activeElement = (0, _utils.getActiveElement)();
298
+ activeElementInDialog = this.modalDialogRef.current.contains(activeElement);
299
+ }
300
+
301
+ if (!activeElementInDialog) {
302
+ this.modalDialogRef && this.modalDialogRef.current.focus();
303
+ }
304
+ },
305
+ modalDialogBlur: () => {
306
+ this.modalDialogRef && this.modalDialogRef.current.blur();
307
+ },
308
+ prevFocusElementReFocus: () => {
309
+ const {
310
+ prevFocusElement
311
+ } = this.state;
312
+ const focus = (0, _get2.default)(prevFocusElement, 'focus');
313
+ (0, _isFunction2.default)(focus) && prevFocusElement.focus();
314
+ }
274
315
  });
275
316
  }
276
317
 
277
318
  componentDidMount() {
278
319
  this.foundation.handleKeyDownEventListenerMount();
320
+ this.foundation.modalDialogFocus();
279
321
  }
280
322
 
281
323
  componentWillUnmount() {
@@ -304,7 +346,7 @@ class ModalContent extends _baseComponent.default {
304
346
  const elem = /*#__PURE__*/_react.default.createElement("div", {
305
347
  className: classList
306
348
  }, this.getMaskElement(), /*#__PURE__*/_react.default.createElement("div", {
307
- role: "modal",
349
+ role: "none",
308
350
  tabIndex: -1,
309
351
  className: "".concat(_constants.cssClasses.DIALOG, "-wrap"),
310
352
  onClick: maskClosable ? this.onMaskClick : null,
@@ -1,7 +1,7 @@
1
1
  import BaseComponent, { BaseProps } from '../_base/baseComponent';
2
2
  import React from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import { ItemProps, SelectedItemProps, ItemAdapter } from '@douyinfe/semi-foundation/lib/cjs/navigation/itemFoundation';
4
+ import ItemFoundation, { ItemProps, SelectedItemProps, ItemAdapter } from '@douyinfe/semi-foundation/lib/cjs/navigation/itemFoundation';
5
5
  export interface NavItemProps extends ItemProps, BaseProps {
6
6
  children?: React.ReactNode;
7
7
  disabled?: boolean;
@@ -59,12 +59,14 @@ export default class NavItem extends BaseComponent<NavItemProps, NavItemState> {
59
59
  onMouseLeave: (...args: any[]) => void;
60
60
  disabled: boolean;
61
61
  };
62
+ foundation: ItemFoundation;
62
63
  constructor(props: NavItemProps);
63
64
  _invokeContextFunc(funcName: string, ...args: any[]): any;
64
65
  get adapter(): ItemAdapter<NavItemProps, NavItemState>;
65
66
  renderIcon(icon: React.ReactNode, pos: string, isToggleIcon?: boolean): JSX.Element;
66
67
  setItemRef: (ref: HTMLLIElement) => void;
67
68
  wrapTooltip: (node: React.ReactNode) => JSX.Element;
68
- handleClick: (e: React.MouseEvent) => any;
69
+ handleClick: (e: React.MouseEvent) => void;
70
+ handleKeyPress: (e: React.KeyboardEvent) => void;
69
71
  render(): {} | React.ReactElement<any, string | React.JSXElementConstructor<any>>;
70
72
  }
@@ -73,6 +73,8 @@ class NavItem extends _baseComponent.default {
73
73
 
74
74
  this.handleClick = e => this.foundation.handleClick(e);
75
75
 
76
+ this.handleKeyPress = e => this.foundation.handleKeyPress(e);
77
+
76
78
  this.state = {
77
79
  tooltipShow: false
78
80
  };
@@ -131,12 +133,17 @@ class NavItem extends _baseComponent.default {
131
133
  var _context;
132
134
 
133
135
  return Boolean(this.context && this.context.selectedKeys && (0, _includes.default)(_context = this.context.selectedKeys).call(_context, this.props.itemKey));
136
+ },
137
+ getIsOpen: () => {
138
+ var _context2;
139
+
140
+ return Boolean(this.context && this.context.openKeys && (0, _includes.default)(_context2 = this.context.openKeys).call(_context2, this.props.itemKey));
134
141
  }
135
142
  });
136
143
  }
137
144
 
138
145
  renderIcon(icon, pos) {
139
- var _context2;
146
+ var _context3;
140
147
 
141
148
  let isToggleIcon = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
142
149
 
@@ -155,7 +162,7 @@ class NavItem extends _baseComponent.default {
155
162
  }
156
163
 
157
164
  const className = (0, _classnames.default)("".concat(clsPrefix, "-icon"), {
158
- [(0, _concat.default)(_context2 = "".concat(clsPrefix, "-icon-toggle-")).call(_context2, this.context.toggleIconPosition)]: isToggleIcon,
165
+ [(0, _concat.default)(_context3 = "".concat(clsPrefix, "-icon-toggle-")).call(_context3, this.context.toggleIconPosition)]: isToggleIcon,
159
166
  ["".concat(clsPrefix, "-icon-info")]: !isToggleIcon
160
167
  });
161
168
  return /*#__PURE__*/_react.default.createElement("i", {
@@ -243,14 +250,27 @@ class NavItem extends _baseComponent.default {
243
250
  ["".concat(clsPrefix, "-collapsed")]: isCollapsed,
244
251
  ["".concat(clsPrefix, "-disabled")]: disabled
245
252
  });
246
- itemDom = /*#__PURE__*/_react.default.createElement("li", {
253
+ const ariaProps = {
254
+ 'aria-disabled': disabled
255
+ };
256
+
257
+ if (isSubNav) {
258
+ const isOpen = this.adapter.getIsOpen();
259
+ ariaProps['aria-expanded'] = isOpen;
260
+ }
261
+
262
+ itemDom = /*#__PURE__*/_react.default.createElement("li", (0, _assign.default)({
263
+ role: "menuitem",
264
+ tabIndex: -1
265
+ }, ariaProps, {
247
266
  style: style,
248
267
  ref: this.setItemRef,
249
268
  className: popoverItemCls,
250
269
  onClick: this.handleClick,
251
270
  onMouseEnter: onMouseEnter,
252
- onMouseLeave: onMouseLeave
253
- }, itemChildren);
271
+ onMouseLeave: onMouseLeave,
272
+ onKeyPress: this.handleKeyPress
273
+ }), itemChildren);
254
274
  } // Display Tooltip when disabled and SubNav
255
275
 
256
276
 
@@ -2,7 +2,7 @@ import BaseComponent, { BaseProps } from '../_base/baseComponent';
2
2
  import React from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import '@douyinfe/semi-foundation/lib/cjs/navigation/navigation.css';
5
- import { SubNavAdapter } from '@douyinfe/semi-foundation/lib/cjs/navigation/subNavFoundation';
5
+ import SubNavFoundation, { SubNavAdapter } from '@douyinfe/semi-foundation/lib/cjs/navigation/subNavFoundation';
6
6
  export interface ToggleIcon {
7
7
  open?: string;
8
8
  closed?: string;
@@ -88,13 +88,15 @@ export default class SubNav extends BaseComponent<SubNavProps, SubNavState> {
88
88
  };
89
89
  titleRef: React.RefObject<HTMLDivElement>;
90
90
  itemRef: React.RefObject<HTMLLIElement>;
91
+ foundation: SubNavFoundation;
91
92
  constructor(props: SubNavProps);
92
93
  setItemRef: (ref: HTMLLIElement | React.RefObject<HTMLLIElement>) => void;
93
94
  setTitleRef: (ref: HTMLDivElement | React.RefObject<HTMLDivElement>) => void;
94
95
  _invokeContextFunc(funcName: string, ...args: any[]): any;
95
96
  get adapter(): SubNavAdapter<SubNavProps, SubNavState>;
96
97
  handleClick: (e: React.MouseEvent) => void;
97
- handleDropdownVisible: (visible: boolean) => any;
98
+ handleKeyPress: (e: React.KeyboardEvent) => void;
99
+ handleDropdownVisible: (visible: boolean) => void;
98
100
  renderIcon(icon: React.ReactNode, pos: string, withTransition?: boolean, isToggleIcon?: boolean, key?: number | string): JSX.Element;
99
101
  renderTitleDiv(): JSX.Element;
100
102
  renderSubUl(): JSX.Element;
@@ -79,6 +79,10 @@ class SubNav extends _baseComponent.default {
79
79
  this.foundation.handleClick(e && e.nativeEvent, this.titleRef && this.titleRef.current);
80
80
  };
81
81
 
82
+ this.handleKeyPress = e => {
83
+ this.foundation.handleKeyPress(e && e.nativeEvent, this.titleRef && this.titleRef.current);
84
+ };
85
+
82
86
  this.handleDropdownVisible = visible => this.foundation.handleDropdownVisibleChange(visible);
83
87
 
84
88
  this.state = {
@@ -233,9 +237,12 @@ class SubNav extends _baseComponent.default {
233
237
  }
234
238
 
235
239
  const titleDiv = /*#__PURE__*/_react.default.createElement("div", {
240
+ role: "menuitem",
241
+ tabIndex: -1,
236
242
  ref: this.setTitleRef,
237
243
  className: titleCls,
238
- onClick: this.handleClick
244
+ onClick: this.handleClick,
245
+ onKeyPress: this.handleKeyPress
239
246
  }, /*#__PURE__*/_react.default.createElement("div", {
240
247
  className: "".concat(prefixCls, "-item-inner")
241
248
  }, placeholderIcons, this.context.toggleIconPosition === _constants.strings.TOGGLE_ICON_LEFT && this.renderIcon(toggleIconType, _constants.strings.ICON_POS_RIGHT, withTransition, true, 'key-toggle-position-left'), icon || indent || isInSubNav && mode !== _constants.strings.MODE_HORIZONTAL ? this.renderIcon(icon, _constants.strings.ICON_POS_LEFT, undefined, undefined, 'key-inSubNav-position-left') : null, /*#__PURE__*/_react.default.createElement("span", {
@@ -375,6 +375,8 @@ class Nav extends _baseComponent.default {
375
375
  style: bodyStyle,
376
376
  className: "".concat(prefixCls, "-list-wrapper")
377
377
  }, /*#__PURE__*/_react.default.createElement("ul", {
378
+ role: "menu",
379
+ "aria-orientation": mode,
378
380
  className: "".concat(prefixCls, "-list")
379
381
  }, this.adapter.getCache('itemElems'), children))), footers))));
380
382
  }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { NoticeAdapter, NoticeState, NoticeProps } from '@douyinfe/semi-foundation/lib/cjs/notification/notificationFoundation';
3
+ import { NoticeAdapter, NoticeProps, NoticeState } from '@douyinfe/semi-foundation/lib/cjs/notification/notificationFoundation';
4
4
  import BaseComponent from '../_base/baseComponent';
5
5
  export interface NoticeReactProps extends NoticeProps {
6
6
  style?: React.CSSProperties;
@@ -42,6 +42,8 @@ var _utils = require("../_utils");
42
42
 
43
43
  var _semiIcons = require("@douyinfe/semi-icons");
44
44
 
45
+ var _uuid = require("@douyinfe/semi-foundation/lib/cjs/utils/uuid");
46
+
45
47
  var __rest = void 0 && (void 0).__rest || function (s, e) {
46
48
  var t = {};
47
49
 
@@ -181,28 +183,36 @@ class Notice extends _baseComponent.default {
181
183
  [(0, _concat.default)(_context3 = "".concat(prefixCls, "-")).call(_context3, theme)]: theme === 'light',
182
184
  ["".concat(prefixCls, "-rtl")]: direction === 'rtl'
183
185
  });
184
- return /*#__PURE__*/_react.default.createElement("div", {
185
- className: wrapper,
186
- style: style,
187
- onMouseEnter: this.clearCloseTimer,
188
- onMouseLeave: this.startCloseTimer,
189
- onClick: this.notifyClick
190
- }, /*#__PURE__*/_react.default.createElement("div", null, this.renderTypeIcon()), /*#__PURE__*/_react.default.createElement("div", {
191
- className: "".concat(prefixCls, "-inner")
192
- }, /*#__PURE__*/_react.default.createElement("div", {
193
- className: "".concat(prefixCls, "-content-wrapper")
194
- }, title ? /*#__PURE__*/_react.default.createElement("div", {
195
- className: "".concat(prefixCls, "-title")
196
- }, title) : '', content ? /*#__PURE__*/_react.default.createElement("div", {
197
- className: "".concat(prefixCls, "-content")
198
- }, content) : ''), showClose && /*#__PURE__*/_react.default.createElement(_iconButton.default, {
199
- className: "".concat(prefixCls, "-icon-close"),
200
- type: "tertiary",
201
- icon: /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, null),
202
- theme: "borderless",
203
- size: "small",
204
- onClick: this.close
205
- })));
186
+ const titleID = (0, _uuid.getUuidShort)({});
187
+ return (
188
+ /*#__PURE__*/
189
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
190
+ _react.default.createElement("div", {
191
+ className: wrapper,
192
+ style: style,
193
+ onMouseEnter: this.clearCloseTimer,
194
+ onMouseLeave: this.startCloseTimer,
195
+ onClick: this.notifyClick,
196
+ "aria-labelledby": titleID,
197
+ role: 'alert'
198
+ }, /*#__PURE__*/_react.default.createElement("div", null, this.renderTypeIcon()), /*#__PURE__*/_react.default.createElement("div", {
199
+ className: "".concat(prefixCls, "-inner")
200
+ }, /*#__PURE__*/_react.default.createElement("div", {
201
+ className: "".concat(prefixCls, "-content-wrapper")
202
+ }, title ? /*#__PURE__*/_react.default.createElement("div", {
203
+ id: titleID,
204
+ className: "".concat(prefixCls, "-title")
205
+ }, title) : '', content ? /*#__PURE__*/_react.default.createElement("div", {
206
+ className: "".concat(prefixCls, "-content")
207
+ }, content) : ''), showClose && /*#__PURE__*/_react.default.createElement(_iconButton.default, {
208
+ className: "".concat(prefixCls, "-icon-close"),
209
+ type: "tertiary",
210
+ icon: /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, null),
211
+ theme: "borderless",
212
+ size: "small",
213
+ onClick: this.close
214
+ })))
215
+ );
206
216
  }
207
217
 
208
218
  }
@@ -55,6 +55,8 @@ var _baseComponent = _interopRequireDefault(require("../_base/baseComponent"));
55
55
  var _index3 = _interopRequireDefault(require("../popover/index"));
56
56
 
57
57
  /* eslint-disable max-len */
58
+
59
+ /* eslint-disable jsx-a11y/no-noninteractive-element-to-interactive-role */
58
60
  const prefixCls = _constants.cssClasses.PREFIX;
59
61
  const {
60
62
  Option
@@ -182,9 +184,11 @@ class Pagination extends _baseComponent.default {
182
184
  ["".concat(prefixCls, "-item-disabled")]: prevDisabled
183
185
  });
184
186
  return /*#__PURE__*/_react.default.createElement("li", {
187
+ role: "button",
188
+ "aria-disabled": prevDisabled ? true : false,
189
+ "aria-label": "Previous",
185
190
  onClick: e => !prevDisabled && this.foundation.goPrev(e),
186
- className: preClassName,
187
- "tab-index": 0
191
+ className: preClassName
188
192
  }, prevText || /*#__PURE__*/_react.default.createElement(_semiIcons.IconChevronLeft, {
189
193
  size: "large"
190
194
  }));
@@ -203,9 +207,11 @@ class Pagination extends _baseComponent.default {
203
207
  ["".concat(prefixCls, "-next")]: true
204
208
  });
205
209
  return /*#__PURE__*/_react.default.createElement("li", {
210
+ role: "button",
211
+ "aria-disabled": nextDisabled ? true : false,
212
+ "aria-label": "Next",
206
213
  onClick: e => !nextDisabled && this.foundation.goNext(e),
207
- className: nextClassName,
208
- "tab-index": 0
214
+ className: nextClassName
209
215
  }, nextText || /*#__PURE__*/_react.default.createElement(_semiIcons.IconChevronRight, {
210
216
  size: "large"
211
217
  }));
@@ -239,6 +245,7 @@ class Pagination extends _baseComponent.default {
239
245
  return /*#__PURE__*/_react.default.createElement("div", {
240
246
  className: switchCls
241
247
  }, /*#__PURE__*/_react.default.createElement(_index.default, {
248
+ "aria-label": "Page size selector",
242
249
  onChange: newPageSize => this.foundation.changePageSize(newPageSize),
243
250
  value: pageSize,
244
251
  key: pageSizeText,
@@ -305,7 +312,8 @@ class Pagination extends _baseComponent.default {
305
312
  key: (0, _concat.default)(_context3 = "".concat(page)).call(_context3, i),
306
313
  onClick: () => this.foundation.goPage(page, i),
307
314
  className: pageListClassName,
308
- "tab-index": 0
315
+ "aria-label": page === '...' ? 'More' : "Page ".concat(page),
316
+ "aria-current": currentPage === page ? "page" : false
309
317
  }, page);
310
318
 
311
319
  if (page === '...') {
@@ -344,10 +352,12 @@ class Pagination extends _baseComponent.default {
344
352
  } = item;
345
353
  const page = restList[index];
346
354
  return /*#__PURE__*/_react.default.createElement("div", {
355
+ role: "listitem",
347
356
  key: (0, _concat.default)(_context5 = "".concat(page)).call(_context5, index),
348
357
  className: className,
349
358
  onClick: () => this.foundation.goPage(page, index),
350
- style: style
359
+ style: style,
360
+ "aria-label": "".concat(page)
351
361
  }, page);
352
362
  };
353
363
 
@@ -77,9 +77,10 @@ class Popover extends _react.default.PureComponent {
77
77
  arrowStyle = {},
78
78
  arrowBounding,
79
79
  position,
80
- style
80
+ style,
81
+ trigger
81
82
  } = _a,
82
- attr = __rest(_a, ["children", "prefixCls", "showArrow", "arrowStyle", "arrowBounding", "position", "style"]);
83
+ attr = __rest(_a, ["children", "prefixCls", "showArrow", "arrowStyle", "arrowBounding", "position", "style", "trigger"]);
83
84
 
84
85
  let {
85
86
  spacing
@@ -97,14 +98,17 @@ class Popover extends _react.default.PureComponent {
97
98
  spacing = showArrow ? _constants.numbers.SPACING_WITH_ARROW : _constants.numbers.SPACING;
98
99
  }
99
100
 
101
+ const role = trigger === 'click' || trigger === 'custom' ? 'dialog' : 'tooltip';
100
102
  return /*#__PURE__*/_react.default.createElement(_index.default, (0, _assign.default)({}, attr, {
103
+ trigger: trigger,
101
104
  position: position,
102
105
  style: style,
103
106
  content: popContent,
104
107
  prefixCls: prefixCls,
105
108
  spacing: spacing,
106
109
  showArrow: arrow,
107
- arrowBounding: arrowBounding
110
+ arrowBounding: arrowBounding,
111
+ role: role
108
112
  }), children);
109
113
  }
110
114
 
@@ -4,9 +4,13 @@ import '@douyinfe/semi-foundation/lib/cjs/progress/progress.css';
4
4
  import { Animation } from '@douyinfe/semi-animation';
5
5
  import { Motion } from '../_base/base';
6
6
  export interface ProgressProps {
7
+ 'aria-label'?: string | undefined;
8
+ 'aria-labelledby'?: string | undefined;
9
+ 'aria-valuetext'?: string | undefined;
7
10
  className?: string;
8
11
  direction?: 'horizontal' | 'vertical';
9
12
  format?: (percent: number) => React.ReactNode;
13
+ id?: string;
10
14
  motion?: Motion;
11
15
  orbitStroke?: string;
12
16
  percent?: number;
@@ -24,9 +28,13 @@ export interface ProgressState {
24
28
  }
25
29
  declare class Progress extends Component<ProgressProps, ProgressState> {
26
30
  static propTypes: {
31
+ 'aria-label': PropTypes.Requireable<string>;
32
+ 'aria-labelledby': PropTypes.Requireable<string>;
33
+ 'aria-valuetext': PropTypes.Requireable<string>;
27
34
  className: PropTypes.Requireable<string>;
28
35
  direction: PropTypes.Requireable<string>;
29
36
  format: PropTypes.Requireable<PropTypes.ReactNodeLike>;
37
+ id: PropTypes.Requireable<string>;
30
38
  motion: PropTypes.Requireable<boolean | object>;
31
39
  orbitStroke: PropTypes.Requireable<string>;
32
40
  percent: PropTypes.Requireable<number>;