@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
@@ -6,6 +6,8 @@ import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/insta
6
6
  import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from";
7
7
 
8
8
  /* eslint-disable max-len */
9
+
10
+ /* eslint-disable jsx-a11y/no-noninteractive-element-to-interactive-role */
9
11
  import React from 'react';
10
12
  import classNames from 'classnames';
11
13
  import PropTypes from 'prop-types';
@@ -148,9 +150,11 @@ export default class Pagination extends BaseComponent {
148
150
  ["".concat(prefixCls, "-item-disabled")]: prevDisabled
149
151
  });
150
152
  return /*#__PURE__*/React.createElement("li", {
153
+ role: "button",
154
+ "aria-disabled": prevDisabled ? true : false,
155
+ "aria-label": "Previous",
151
156
  onClick: e => !prevDisabled && this.foundation.goPrev(e),
152
- className: preClassName,
153
- "tab-index": 0
157
+ className: preClassName
154
158
  }, prevText || /*#__PURE__*/React.createElement(IconChevronLeft, {
155
159
  size: "large"
156
160
  }));
@@ -169,9 +173,11 @@ export default class Pagination extends BaseComponent {
169
173
  ["".concat(prefixCls, "-next")]: true
170
174
  });
171
175
  return /*#__PURE__*/React.createElement("li", {
176
+ role: "button",
177
+ "aria-disabled": nextDisabled ? true : false,
178
+ "aria-label": "Next",
172
179
  onClick: e => !nextDisabled && this.foundation.goNext(e),
173
- className: nextClassName,
174
- "tab-index": 0
180
+ className: nextClassName
175
181
  }, nextText || /*#__PURE__*/React.createElement(IconChevronRight, {
176
182
  size: "large"
177
183
  }));
@@ -207,6 +213,7 @@ export default class Pagination extends BaseComponent {
207
213
  return /*#__PURE__*/React.createElement("div", {
208
214
  className: switchCls
209
215
  }, /*#__PURE__*/React.createElement(Select, {
216
+ "aria-label": "Page size selector",
210
217
  onChange: newPageSize => this.foundation.changePageSize(newPageSize),
211
218
  value: pageSize,
212
219
  key: pageSizeText,
@@ -272,7 +279,8 @@ export default class Pagination extends BaseComponent {
272
279
  key: _concatInstanceProperty(_context3 = "".concat(page)).call(_context3, i),
273
280
  onClick: () => this.foundation.goPage(page, i),
274
281
  className: pageListClassName,
275
- "tab-index": 0
282
+ "aria-label": page === '...' ? 'More' : "Page ".concat(page),
283
+ "aria-current": currentPage === page ? "page" : false
276
284
  }, page);
277
285
 
278
286
  if (page === '...') {
@@ -311,10 +319,12 @@ export default class Pagination extends BaseComponent {
311
319
  } = item;
312
320
  const page = restList[index];
313
321
  return /*#__PURE__*/React.createElement("div", {
322
+ role: "listitem",
314
323
  key: _concatInstanceProperty(_context5 = "".concat(page)).call(_context5, index),
315
324
  className: className,
316
325
  onClick: () => this.foundation.goPage(page, index),
317
- style: style
326
+ style: style,
327
+ "aria-label": "".concat(page)
318
328
  }, page);
319
329
  };
320
330
 
@@ -54,9 +54,10 @@ class Popover extends React.PureComponent {
54
54
  arrowStyle = {},
55
55
  arrowBounding,
56
56
  position,
57
- style
57
+ style,
58
+ trigger
58
59
  } = _a,
59
- attr = __rest(_a, ["children", "prefixCls", "showArrow", "arrowStyle", "arrowBounding", "position", "style"]);
60
+ attr = __rest(_a, ["children", "prefixCls", "showArrow", "arrowStyle", "arrowBounding", "position", "style", "trigger"]);
60
61
 
61
62
  let {
62
63
  spacing
@@ -74,14 +75,17 @@ class Popover extends React.PureComponent {
74
75
  spacing = showArrow ? numbers.SPACING_WITH_ARROW : numbers.SPACING;
75
76
  }
76
77
 
78
+ const role = trigger === 'click' || trigger === 'custom' ? 'dialog' : 'tooltip';
77
79
  return /*#__PURE__*/React.createElement(Tooltip, _Object$assign({}, attr, {
80
+ trigger: trigger,
78
81
  position: position,
79
82
  style: style,
80
83
  content: popContent,
81
84
  prefixCls: prefixCls,
82
85
  spacing: spacing,
83
86
  showArrow: arrow,
84
- arrowBounding: arrowBounding
87
+ arrowBounding: arrowBounding,
88
+ role: role
85
89
  }), children);
86
90
  }
87
91
 
@@ -4,9 +4,13 @@ import '@douyinfe/semi-foundation/lib/es/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>;
@@ -95,8 +95,12 @@ class Progress extends Component {
95
95
  stroke,
96
96
  showInfo,
97
97
  percent,
98
- orbitStroke
98
+ orbitStroke,
99
+ id
99
100
  } = this.props;
101
+ const ariaLabel = this.props['aria-label'];
102
+ const ariaLabelledBy = this.props['aria-labelledby'];
103
+ const ariaValueText = this.props['aria-valuetext'];
100
104
  const {
101
105
  percentNumber
102
106
  } = this.state;
@@ -127,13 +131,22 @@ class Progress extends Component {
127
131
 
128
132
  const text = format(percNumber);
129
133
  return /*#__PURE__*/React.createElement("div", {
134
+ id: id,
130
135
  className: classNames.wrapper,
131
- style: style
136
+ style: style,
137
+ role: 'progressbar',
138
+ "aria-valuemin": 0,
139
+ "aria-valuemax": 100,
140
+ "aria-valuenow": percNumber,
141
+ "aria-labelledby": ariaLabelledBy,
142
+ "aria-label": ariaLabel,
143
+ "aria-valuetext": ariaValueText
132
144
  }, /*#__PURE__*/React.createElement("svg", {
133
145
  key: size,
134
146
  className: classNames.svg,
135
147
  height: width,
136
- width: width
148
+ width: width,
149
+ "aria-hidden": true
137
150
  }, /*#__PURE__*/React.createElement("circle", {
138
151
  strokeDashoffset: 0,
139
152
  strokeWidth: strokeWidth,
@@ -143,7 +156,8 @@ class Progress extends Component {
143
156
  stroke: orbitStroke,
144
157
  r: radius,
145
158
  cx: cx,
146
- cy: cy
159
+ cy: cy,
160
+ "aria-hidden": true
147
161
  }), /*#__PURE__*/React.createElement("circle", {
148
162
  className: classNames.circle,
149
163
  strokeDashoffset: strokeDashoffset,
@@ -154,7 +168,8 @@ class Progress extends Component {
154
168
  stroke: stroke,
155
169
  r: radius,
156
170
  cx: cx,
157
- cy: cy
171
+ cy: cy,
172
+ "aria-hidden": true
158
173
  })), showInfo && size !== 'small' ? /*#__PURE__*/React.createElement("span", {
159
174
  className: "".concat(prefixCls, "-circle-text")
160
175
  }, text) : null);
@@ -184,8 +199,12 @@ class Progress extends Component {
184
199
  showInfo,
185
200
  size,
186
201
  percent,
187
- orbitStroke
202
+ orbitStroke,
203
+ id
188
204
  } = this.props;
205
+ const ariaLabel = this.props['aria-label'];
206
+ const ariaLabelledBy = this.props['aria-labelledby'];
207
+ const ariaValueText = this.props['aria-valuetext'];
189
208
  const {
190
209
  percentNumber
191
210
  } = this.state;
@@ -212,16 +231,26 @@ class Progress extends Component {
212
231
 
213
232
  const text = format(percNumber);
214
233
  return /*#__PURE__*/React.createElement("div", {
234
+ id: id,
215
235
  className: progressWrapperCls,
216
- style: style
236
+ style: style,
237
+ role: 'progressbar',
238
+ "aria-valuemin": 0,
239
+ "aria-valuemax": 100,
240
+ "aria-valuenow": perc,
241
+ "aria-labelledby": ariaLabelledBy,
242
+ "aria-label": ariaLabel,
243
+ "aria-valuetext": ariaValueText
217
244
  }, /*#__PURE__*/React.createElement("div", {
218
245
  className: progressTrackCls,
219
246
  style: orbitStroke ? {
220
247
  backgroundColor: orbitStroke
221
- } : {}
248
+ } : {},
249
+ "aria-hidden": true
222
250
  }, /*#__PURE__*/React.createElement("div", {
223
251
  className: innerCls,
224
- style: innerStyle
252
+ style: innerStyle,
253
+ "aria-hidden": true
225
254
  })), showInfo ? /*#__PURE__*/React.createElement("div", {
226
255
  className: "".concat(prefixCls, "-line-text")
227
256
  }, text) : null);
@@ -242,9 +271,13 @@ class Progress extends Component {
242
271
  }
243
272
 
244
273
  Progress.propTypes = {
274
+ 'aria-label': PropTypes.string,
275
+ 'aria-labelledby': PropTypes.string,
276
+ 'aria-valuetext': PropTypes.string,
245
277
  className: PropTypes.string,
246
278
  direction: PropTypes.oneOf(strings.directions),
247
279
  format: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
280
+ id: PropTypes.string,
248
281
  motion: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object]),
249
282
  orbitStroke: PropTypes.string,
250
283
  percent: PropTypes.number,
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { RadioAdapter } from '@douyinfe/semi-foundation/lib/es/radio/radioFoundation';
3
+ import RadioFoundation, { RadioAdapter } from '@douyinfe/semi-foundation/lib/es/radio/radioFoundation';
4
4
  import { RadioChangeEvent } from '@douyinfe/semi-foundation/lib/es/radio/radioInnerFoundation';
5
5
  import { strings } from '@douyinfe/semi-foundation/lib/es/radio/constants';
6
6
  import '@douyinfe/semi-foundation/lib/es/radio/radio.css';
@@ -27,6 +27,7 @@ export declare type RadioProps = {
27
27
  addonStyle?: React.CSSProperties;
28
28
  addonClassName?: string;
29
29
  type?: RadioType;
30
+ 'aria-label'?: React.AriaAttributes['aria-label'];
30
31
  };
31
32
  export interface RadioState {
32
33
  hover?: boolean;
@@ -52,10 +53,14 @@ declare class Radio extends BaseComponent<RadioProps, RadioState> {
52
53
  addonStyle: PropTypes.Requireable<object>;
53
54
  addonClassName: PropTypes.Requireable<string>;
54
55
  type: PropTypes.Requireable<"default" | "button" | "card" | "pureCard">;
56
+ 'aria-label': PropTypes.Requireable<string>;
55
57
  };
56
58
  static defaultProps: Partial<RadioProps>;
57
59
  radioEntity: RadioInner;
58
60
  context: RadioContextValue;
61
+ foundation: RadioFoundation;
62
+ addonId: string;
63
+ extraId: string;
59
64
  constructor(props: RadioProps);
60
65
  get adapter(): RadioAdapter;
61
66
  isInGroup(): {
@@ -8,6 +8,7 @@ import PropTypes from 'prop-types';
8
8
  import cls from 'classnames';
9
9
  import RadioFoundation from '@douyinfe/semi-foundation/lib/es/radio/radioFoundation';
10
10
  import { strings, radioClasses as css } from '@douyinfe/semi-foundation/lib/es/radio/constants';
11
+ import { getUuidShort } from '@douyinfe/semi-foundation/lib/es/utils/uuid';
11
12
  import '@douyinfe/semi-foundation/lib/es/radio/radio.css';
12
13
  import BaseComponent from '../_base/baseComponent';
13
14
  import RadioInner from './radioInner';
@@ -47,6 +48,12 @@ class Radio extends BaseComponent {
47
48
  };
48
49
  this.foundation = new RadioFoundation(this.adapter);
49
50
  this.radioEntity = null;
51
+ this.addonId = getUuidShort({
52
+ prefix: 'addon'
53
+ });
54
+ this.extraId = getUuidShort({
55
+ prefix: 'extra'
56
+ });
50
57
  }
51
58
 
52
59
  get adapter() {
@@ -143,9 +150,11 @@ class Radio extends BaseComponent {
143
150
 
144
151
  const renderContent = () => /*#__PURE__*/React.createElement(React.Fragment, null, children ? /*#__PURE__*/React.createElement("span", {
145
152
  className: addonCls,
146
- style: addonStyle
153
+ style: addonStyle,
154
+ id: this.addonId
147
155
  }, children) : null, extra && !isButtonRadio ? /*#__PURE__*/React.createElement("div", {
148
- className: "".concat(prefix, "-extra")
156
+ className: "".concat(prefix, "-extra"),
157
+ id: this.extraId
149
158
  }, extra) : null);
150
159
 
151
160
  return /*#__PURE__*/React.createElement("label", {
@@ -161,7 +170,9 @@ class Radio extends BaseComponent {
161
170
  onChange: this.onChange,
162
171
  ref: ref => {
163
172
  this.radioEntity = ref;
164
- }
173
+ },
174
+ addonId: children && this.addonId,
175
+ extraId: extra && this.extraId
165
176
  })), isCardRadioGroup ? /*#__PURE__*/React.createElement("div", {
166
177
  className: "".concat(prefix, "-isCardRadioGroup_content")
167
178
  }, renderContent()) : renderContent());
@@ -187,8 +198,8 @@ Radio.propTypes = {
187
198
  extra: PropTypes.node,
188
199
  addonStyle: PropTypes.object,
189
200
  addonClassName: PropTypes.string,
190
- type: PropTypes.oneOf([strings.TYPE_DEFAULT, strings.TYPE_BUTTON, strings.TYPE_CARD, strings.TYPE_PURECARD]) // Button style type
191
-
201
+ type: PropTypes.oneOf([strings.TYPE_DEFAULT, strings.TYPE_BUTTON, strings.TYPE_CARD, strings.TYPE_PURECARD]),
202
+ 'aria-label': PropTypes.string
192
203
  };
193
204
  Radio.defaultProps = {
194
205
  autoFocus: false,
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { strings } from '@douyinfe/semi-foundation/lib/es/radio/constants';
4
- import { RadioGroupAdapter } from '@douyinfe/semi-foundation/lib/es/radio/radioGroupFoundation';
4
+ import RadioGroupFoundation, { RadioGroupAdapter } from '@douyinfe/semi-foundation/lib/es/radio/radioGroupFoundation';
5
5
  import { RadioChangeEvent } from '@douyinfe/semi-foundation/lib/es/radio/radioInnerFoundation';
6
6
  import BaseComponent from '../_base/baseComponent';
7
7
  import { ArrayElement } from '../_base/base';
@@ -30,6 +30,13 @@ export declare type RadioGroupProps = {
30
30
  type?: RadioType;
31
31
  buttonSize?: RadioGroupButtonSize;
32
32
  prefixCls?: string;
33
+ 'aria-label'?: React.AriaAttributes['aria-label'];
34
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
35
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
36
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
37
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
38
+ 'aria-required'?: React.AriaAttributes['aria-required'];
39
+ id?: string;
33
40
  };
34
41
  export interface RadioGroupState {
35
42
  value?: any;
@@ -50,8 +57,16 @@ declare class RadioGroup extends BaseComponent<RadioGroupProps, RadioGroupState>
50
57
  style: PropTypes.Requireable<object>;
51
58
  direction: PropTypes.Requireable<"horizontal" | "vertical">;
52
59
  mode: PropTypes.Requireable<"" | "advanced">;
60
+ 'aria-label': PropTypes.Requireable<string>;
61
+ 'aria-describedby': PropTypes.Requireable<string>;
62
+ 'aria-errormessage': PropTypes.Requireable<string>;
63
+ 'aria-invalid': PropTypes.Requireable<boolean>;
64
+ 'aria-labelledby': PropTypes.Requireable<string>;
65
+ 'aria-required': PropTypes.Requireable<boolean>;
66
+ id: PropTypes.Requireable<string>;
53
67
  };
54
68
  static defaultProps: Partial<RadioGroupProps>;
69
+ foundation: RadioGroupFoundation;
55
70
  constructor(props: RadioGroupProps);
56
71
  componentDidMount(): void;
57
72
  componentDidUpdate(prevProps: RadioGroupProps): void;
@@ -68,7 +68,8 @@ class RadioGroup extends BaseComponent {
68
68
  style,
69
69
  direction,
70
70
  type,
71
- buttonSize
71
+ buttonSize,
72
+ id
72
73
  } = this.props;
73
74
  const isButtonRadio = type === strings.TYPE_BUTTON;
74
75
  const isPureCardRadio = type === strings.TYPE_PURECARD;
@@ -117,7 +118,14 @@ class RadioGroup extends BaseComponent {
117
118
 
118
119
  return /*#__PURE__*/React.createElement("div", {
119
120
  className: prefixClsDisplay,
120
- style: style
121
+ style: style,
122
+ id: id,
123
+ "aria-label": this.props['aria-label'],
124
+ "aria-invalid": this.props['aria-invalid'],
125
+ "aria-errormessage": this.props['aria-errormessage'],
126
+ "aria-labelledby": this.props['aria-labelledby'],
127
+ "aria-describedby": this.props['aria-describedby'],
128
+ "aria-required": this.props['aria-required']
121
129
  }, /*#__PURE__*/React.createElement(Context.Provider, {
122
130
  value: {
123
131
  radioGroup: {
@@ -152,7 +160,14 @@ RadioGroup.propTypes = {
152
160
  className: PropTypes.string,
153
161
  style: PropTypes.object,
154
162
  direction: PropTypes.oneOf(strings.DIRECTION_SET),
155
- mode: PropTypes.oneOf(strings.MODE)
163
+ mode: PropTypes.oneOf(strings.MODE),
164
+ 'aria-label': PropTypes.string,
165
+ 'aria-describedby': PropTypes.string,
166
+ 'aria-errormessage': PropTypes.string,
167
+ 'aria-invalid': PropTypes.bool,
168
+ 'aria-labelledby': PropTypes.string,
169
+ 'aria-required': PropTypes.bool,
170
+ id: PropTypes.string
156
171
  };
157
172
  RadioGroup.defaultProps = {
158
173
  disabled: false,
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { RadioChangeEvent, RadioInnerAdapter } from '@douyinfe/semi-foundation/lib/es/radio/radioInnerFoundation';
3
+ import RadioInnerFoundation, { RadioChangeEvent, RadioInnerAdapter } from '@douyinfe/semi-foundation/lib/es/radio/radioInnerFoundation';
4
4
  import BaseComponent, { BaseProps } from '../_base/baseComponent';
5
5
  export declare type RadioInnerMode = 'advanced' | '';
6
6
  export interface RadioInnerProps extends BaseProps {
@@ -14,6 +14,9 @@ export interface RadioInnerProps extends BaseProps {
14
14
  prefixCls?: string;
15
15
  ref?: React.MutableRefObject<RadioInner> | ((instance: RadioInner) => void);
16
16
  isPureCardRadioGroup?: boolean;
17
+ addonId?: string;
18
+ extraId?: string;
19
+ 'aria-label'?: React.AriaAttributes['aria-label'];
17
20
  }
18
21
  interface RadioInnerState {
19
22
  checked?: boolean;
@@ -26,12 +29,14 @@ declare class RadioInner extends BaseComponent<RadioInnerProps, RadioInnerState>
26
29
  isButtonRadio: PropTypes.Requireable<boolean>;
27
30
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
28
31
  mode: PropTypes.Requireable<string>;
32
+ 'aria-label': PropTypes.Requireable<string>;
29
33
  };
30
34
  static defaultProps: {
31
35
  onChange: (...args: any[]) => void;
32
36
  isButtonRadio: boolean;
33
37
  };
34
38
  inputEntity: HTMLInputElement;
39
+ foundation: RadioInnerFoundation;
35
40
  constructor(props: RadioInnerProps);
36
41
  get adapter(): RadioInnerAdapter;
37
42
  componentDidMount(): void;
@@ -68,7 +68,10 @@ class RadioInner extends BaseComponent {
68
68
  autoFocus,
69
69
  name,
70
70
  isButtonRadio,
71
- isPureCardRadioGroup
71
+ isPureCardRadioGroup,
72
+ addonId,
73
+ extraId,
74
+ 'aria-label': ariaLabel
72
75
  } = this.props;
73
76
  const {
74
77
  checked
@@ -89,12 +92,16 @@ class RadioInner extends BaseComponent {
89
92
  ref: ref => {
90
93
  this.inputEntity = ref;
91
94
  },
95
+ // eslint-disable-next-line jsx-a11y/no-autofocus
92
96
  autoFocus: autoFocus,
93
97
  type: mode === 'advanced' ? 'checkbox' : 'radio',
94
98
  checked: Boolean(checked),
95
99
  disabled: disabled,
96
100
  onChange: this.onChange,
97
- name: name
101
+ name: name,
102
+ "aria-label": ariaLabel,
103
+ "aria-labelledby": addonId,
104
+ "aria-describedby": extraId
98
105
  }), /*#__PURE__*/React.createElement("span", {
99
106
  className: inner
100
107
  }, checked ? /*#__PURE__*/React.createElement(IconRadio, null) : null));
@@ -108,7 +115,8 @@ RadioInner.propTypes = {
108
115
  disabled: PropTypes.bool,
109
116
  isButtonRadio: PropTypes.bool,
110
117
  onChange: PropTypes.func,
111
- mode: PropTypes.oneOf(['advanced', ''])
118
+ mode: PropTypes.oneOf(['advanced', '']),
119
+ 'aria-label': PropTypes.string
112
120
  };
113
121
  RadioInner.defaultProps = {
114
122
  onChange: _noop,
@@ -7,6 +7,12 @@ import RatingFoundation, { RatingAdapter } from '@douyinfe/semi-foundation/lib/e
7
7
  import '@douyinfe/semi-foundation/lib/es/rating/rating.css';
8
8
  export { RatingItemProps } from './item';
9
9
  export interface RatingProps {
10
+ 'aria-describedby'?: string;
11
+ 'aria-errormessage'?: string;
12
+ 'aria-invalid'?: boolean;
13
+ 'aria-label'?: string;
14
+ 'aria-labelledby'?: string;
15
+ 'aria-required'?: boolean;
10
16
  disabled?: boolean;
11
17
  value?: number;
12
18
  defaultValue?: number;
@@ -27,6 +33,7 @@ export interface RatingProps {
27
33
  autoFocus?: boolean;
28
34
  size?: 'small' | 'default' | number;
29
35
  tooltips?: string[];
36
+ id?: string;
30
37
  }
31
38
  export interface RatingState {
32
39
  value: number;
@@ -37,6 +44,12 @@ export interface RatingState {
37
44
  export default class Rating extends BaseComponent<RatingProps, RatingState> {
38
45
  static contextType: React.Context<import("../configProvider/context").ContextValue>;
39
46
  static propTypes: {
47
+ 'aria-describedby': PropTypes.Requireable<string>;
48
+ 'aria-errormessage': PropTypes.Requireable<string>;
49
+ 'aria-invalid': PropTypes.Requireable<boolean>;
50
+ 'aria-label': PropTypes.Requireable<string>;
51
+ 'aria-labelledby': PropTypes.Requireable<string>;
52
+ 'aria-required': PropTypes.Requireable<boolean>;
40
53
  disabled: PropTypes.Requireable<boolean>;
41
54
  value: PropTypes.Requireable<number>;
42
55
  defaultValue: PropTypes.Requireable<number>;
@@ -56,6 +69,7 @@ export default class Rating extends BaseComponent<RatingProps, RatingState> {
56
69
  autoFocus: PropTypes.Requireable<boolean>;
57
70
  size: PropTypes.Requireable<number | "default" | "small">;
58
71
  tooltips: PropTypes.Requireable<string[]>;
72
+ id: PropTypes.Requireable<string>;
59
73
  };
60
74
  static defaultProps: {
61
75
  defaultValue: number;
@@ -190,7 +190,8 @@ export default class Rating extends BaseComponent {
190
190
  character,
191
191
  tabIndex,
192
192
  size,
193
- tooltips
193
+ tooltips,
194
+ id
194
195
  } = this.props;
195
196
  const {
196
197
  value,
@@ -235,6 +236,9 @@ export default class Rating extends BaseComponent {
235
236
  ["".concat(prefixCls, "-disabled")]: disabled
236
237
  }, className);
237
238
  return /*#__PURE__*/React.createElement("ul", {
239
+ "aria-label": this.props['aria-label'],
240
+ "aria-labelledby": this.props['aria-labelledby'],
241
+ "aria-describedby": this.props['aria-describedby'],
238
242
  className: listCls,
239
243
  style: style,
240
244
  onMouseLeave: disabled ? null : this.onMouseLeave,
@@ -243,13 +247,19 @@ export default class Rating extends BaseComponent {
243
247
  onBlur: disabled ? null : this.onBlur,
244
248
  onKeyDown: disabled ? null : this.onKeyDown,
245
249
  ref: this.saveRate,
246
- role: "radiogroup"
250
+ id: id
247
251
  }, itemList);
248
252
  }
249
253
 
250
254
  }
251
255
  Rating.contextType = ConfigContext;
252
256
  Rating.propTypes = {
257
+ 'aria-describedby': PropTypes.string,
258
+ 'aria-errormessage': PropTypes.string,
259
+ 'aria-invalid': PropTypes.bool,
260
+ 'aria-label': PropTypes.string,
261
+ 'aria-labelledby': PropTypes.string,
262
+ 'aria-required': PropTypes.bool,
253
263
  disabled: PropTypes.bool,
254
264
  value: PropTypes.number,
255
265
  defaultValue: PropTypes.number,
@@ -268,7 +278,8 @@ Rating.propTypes = {
268
278
  onKeyDown: PropTypes.func,
269
279
  autoFocus: PropTypes.bool,
270
280
  size: PropTypes.oneOfType([PropTypes.oneOf(strings.SIZE_SET), PropTypes.number]),
271
- tooltips: PropTypes.arrayOf(PropTypes.string)
281
+ tooltips: PropTypes.arrayOf(PropTypes.string),
282
+ id: PropTypes.string
272
283
  };
273
284
  Rating.defaultProps = {
274
285
  defaultValue: 0,
@@ -15,6 +15,7 @@ export interface RatingItemProps {
15
15
  disabled: boolean;
16
16
  count: number;
17
17
  size: number | ArrayElement<typeof strings.SIZE_SET>;
18
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
18
19
  }
19
20
  export default class Item extends PureComponent<RatingItemProps> {
20
21
  static propTypes: {
@@ -29,6 +30,7 @@ export default class Item extends PureComponent<RatingItemProps> {
29
30
  disabled: PropTypes.Requireable<boolean>;
30
31
  count: PropTypes.Requireable<number>;
31
32
  size: PropTypes.Requireable<number | "default" | "small">;
33
+ 'aria-describedby': PropTypes.Requireable<string>;
32
34
  };
33
35
  onHover: React.MouseEventHandler;
34
36
  onClick: React.MouseEventHandler;
@@ -86,6 +86,10 @@ export default class Item extends PureComponent {
86
86
  "aria-checked": value > index ? 'true' : 'false',
87
87
  "aria-posinset": index + 1,
88
88
  "aria-setsize": count,
89
+ "aria-disabled": disabled,
90
+ "aria-label": "Rating ".concat(index + (isHalf ? 0.5 : 1)),
91
+ "aria-labelledby": this.props['aria-describedby'],
92
+ "aria-describedby": this.props['aria-describedby'],
89
93
  tabIndex: 0,
90
94
  className: "".concat(prefixCls, "-wrapper")
91
95
  }, /*#__PURE__*/React.createElement("div", {
@@ -110,5 +114,6 @@ Item.propTypes = {
110
114
  focused: PropTypes.bool,
111
115
  disabled: PropTypes.bool,
112
116
  count: PropTypes.number,
113
- size: PropTypes.oneOfType([PropTypes.oneOf(strings.SIZE_SET), PropTypes.number])
117
+ size: PropTypes.oneOfType([PropTypes.oneOf(strings.SIZE_SET), PropTypes.number]),
118
+ 'aria-describedby': PropTypes.string
114
119
  };