@douyinfe/semi-ui 2.2.2 → 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 (434) 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/datePicker.tsx +19 -0
  33. package/dist/css/semi.css +8 -3
  34. package/dist/css/semi.min.css +1 -1
  35. package/dist/umd/semi-ui.js +2470 -1242
  36. package/dist/umd/semi-ui.js.map +1 -1
  37. package/dist/umd/semi-ui.min.js +1 -1
  38. package/dist/umd/semi-ui.min.js.map +1 -1
  39. package/dropdown/dropdownItem.tsx +1 -1
  40. package/dropdown/dropdownMenu.tsx +1 -1
  41. package/empty/index.tsx +5 -5
  42. package/form/_story/FormApi/formApiDemo.jsx +3 -2
  43. package/form/_story/Validate/validateDemo.jsx +1 -1
  44. package/form/_story/demo.jsx +12 -3
  45. package/form/_story/form.stories.js +0 -7
  46. package/form/baseForm.tsx +2 -0
  47. package/form/errorMessage.tsx +13 -2
  48. package/form/hoc/withField.tsx +37 -8
  49. package/form/index.tsx +0 -2
  50. package/form/interface.ts +2 -0
  51. package/form/label.tsx +4 -2
  52. package/input/index.tsx +49 -4
  53. package/input/inputGroup.tsx +9 -4
  54. package/input/textarea.tsx +25 -6
  55. package/inputNumber/index.tsx +28 -1
  56. package/layout/Sider.tsx +6 -2
  57. package/layout/index.tsx +4 -3
  58. package/lib/cjs/_utils/hooks/usePrevFocus.d.ts +2 -0
  59. package/lib/cjs/_utils/hooks/usePrevFocus.js +30 -0
  60. package/lib/cjs/_utils/index.d.ts +1 -0
  61. package/lib/cjs/_utils/index.js +6 -1
  62. package/lib/cjs/anchor/index.d.ts +2 -0
  63. package/lib/cjs/anchor/index.js +6 -1
  64. package/lib/cjs/anchor/link.d.ts +4 -1
  65. package/lib/cjs/anchor/link.js +39 -5
  66. package/lib/cjs/autoComplete/index.d.ts +17 -0
  67. package/lib/cjs/autoComplete/index.js +21 -2
  68. package/lib/cjs/avatar/avatarGroup.js +2 -1
  69. package/lib/cjs/avatar/index.d.ts +4 -3
  70. package/lib/cjs/avatar/index.js +20 -11
  71. package/lib/cjs/banner/index.js +4 -2
  72. package/lib/cjs/breadcrumb/index.d.ts +3 -0
  73. package/lib/cjs/breadcrumb/index.js +10 -4
  74. package/lib/cjs/breadcrumb/item.js +2 -2
  75. package/lib/cjs/button/Button.d.ts +2 -0
  76. package/lib/cjs/button/Button.js +4 -2
  77. package/lib/cjs/button/buttonGroup.d.ts +3 -0
  78. package/lib/cjs/button/buttonGroup.js +8 -4
  79. package/lib/cjs/button/index.d.ts +1 -0
  80. package/lib/cjs/button/splitButtonGroup.d.ts +3 -0
  81. package/lib/cjs/button/splitButtonGroup.js +5 -2
  82. package/lib/cjs/card/index.d.ts +3 -0
  83. package/lib/cjs/card/index.js +3 -1
  84. package/lib/cjs/cascader/index.d.ts +14 -0
  85. package/lib/cjs/cascader/index.js +35 -7
  86. package/lib/cjs/checkbox/checkbox.d.ts +21 -1
  87. package/lib/cjs/checkbox/checkbox.js +51 -17
  88. package/lib/cjs/checkbox/checkboxGroup.d.ts +13 -1
  89. package/lib/cjs/checkbox/checkboxGroup.js +16 -3
  90. package/lib/cjs/checkbox/checkboxInner.d.ts +15 -0
  91. package/lib/cjs/checkbox/checkboxInner.js +20 -3
  92. package/lib/cjs/collapse/index.js +2 -1
  93. package/lib/cjs/collapse/item.d.ts +2 -1
  94. package/lib/cjs/collapse/item.js +17 -3
  95. package/lib/cjs/collapsible/index.d.ts +1 -0
  96. package/lib/cjs/collapsible/index.js +4 -2
  97. package/lib/cjs/datePicker/datePicker.d.ts +12 -0
  98. package/lib/cjs/datePicker/datePicker.js +14 -1
  99. package/lib/cjs/dropdown/dropdownItem.js +3 -1
  100. package/lib/cjs/dropdown/dropdownMenu.js +4 -1
  101. package/lib/cjs/empty/index.js +2 -1
  102. package/lib/cjs/form/baseForm.d.ts +9 -0
  103. package/lib/cjs/form/baseForm.js +3 -1
  104. package/lib/cjs/form/errorMessage.d.ts +4 -0
  105. package/lib/cjs/form/errorMessage.js +21 -3
  106. package/lib/cjs/form/field.d.ts +7 -0
  107. package/lib/cjs/form/hoc/withField.js +49 -16
  108. package/lib/cjs/form/index.d.ts +0 -1
  109. package/lib/cjs/form/interface.d.ts +2 -0
  110. package/lib/cjs/form/label.d.ts +2 -0
  111. package/lib/cjs/form/label.js +5 -2
  112. package/lib/cjs/input/index.d.ts +16 -0
  113. package/lib/cjs/input/index.js +51 -15
  114. package/lib/cjs/input/inputGroup.d.ts +2 -1
  115. package/lib/cjs/input/inputGroup.js +11 -1
  116. package/lib/cjs/input/textarea.js +12 -1
  117. package/lib/cjs/inputNumber/index.d.ts +8 -0
  118. package/lib/cjs/inputNumber/index.js +32 -2
  119. package/lib/cjs/layout/Sider.d.ts +4 -0
  120. package/lib/cjs/layout/Sider.js +4 -1
  121. package/lib/cjs/layout/index.js +2 -0
  122. package/lib/cjs/list/item.js +0 -1
  123. package/lib/cjs/modal/Modal.js +2 -0
  124. package/lib/cjs/modal/ModalContent.d.ts +3 -1
  125. package/lib/cjs/modal/ModalContent.js +47 -5
  126. package/lib/cjs/navigation/Item.d.ts +4 -2
  127. package/lib/cjs/navigation/Item.js +25 -5
  128. package/lib/cjs/navigation/SubNav.d.ts +4 -2
  129. package/lib/cjs/navigation/SubNav.js +8 -1
  130. package/lib/cjs/navigation/index.js +2 -0
  131. package/lib/cjs/notification/notice.d.ts +1 -1
  132. package/lib/cjs/notification/notice.js +32 -22
  133. package/lib/cjs/pagination/index.js +16 -6
  134. package/lib/cjs/popover/index.js +7 -3
  135. package/lib/cjs/progress/index.d.ts +8 -0
  136. package/lib/cjs/progress/index.js +42 -9
  137. package/lib/cjs/radio/radio.d.ts +6 -1
  138. package/lib/cjs/radio/radio.js +17 -5
  139. package/lib/cjs/radio/radioGroup.d.ts +16 -1
  140. package/lib/cjs/radio/radioGroup.js +18 -3
  141. package/lib/cjs/radio/radioInner.d.ts +6 -1
  142. package/lib/cjs/radio/radioInner.js +11 -3
  143. package/lib/cjs/rating/index.d.ts +14 -0
  144. package/lib/cjs/rating/index.js +14 -3
  145. package/lib/cjs/rating/item.d.ts +2 -0
  146. package/lib/cjs/rating/item.js +6 -1
  147. package/lib/cjs/select/index.d.ts +16 -0
  148. package/lib/cjs/select/index.js +65 -19
  149. package/lib/cjs/select/option.js +28 -22
  150. package/lib/cjs/sideSheet/SideSheetContent.d.ts +1 -0
  151. package/lib/cjs/sideSheet/SideSheetContent.js +12 -5
  152. package/lib/cjs/sideSheet/index.d.ts +1 -0
  153. package/lib/cjs/sideSheet/index.js +2 -1
  154. package/lib/cjs/slider/index.d.ts +2 -1
  155. package/lib/cjs/slider/index.js +64 -17
  156. package/lib/cjs/spin/icon.js +2 -4
  157. package/lib/cjs/steps/basicStep.d.ts +3 -0
  158. package/lib/cjs/steps/basicStep.js +23 -25
  159. package/lib/cjs/steps/basicSteps.d.ts +1 -0
  160. package/lib/cjs/steps/basicSteps.js +2 -1
  161. package/lib/cjs/steps/fillStep.d.ts +3 -0
  162. package/lib/cjs/steps/fillStep.js +19 -4
  163. package/lib/cjs/steps/fillSteps.d.ts +1 -0
  164. package/lib/cjs/steps/fillSteps.js +2 -1
  165. package/lib/cjs/steps/navStep.d.ts +3 -0
  166. package/lib/cjs/steps/navStep.js +22 -25
  167. package/lib/cjs/steps/navSteps.d.ts +1 -0
  168. package/lib/cjs/steps/navSteps.js +2 -1
  169. package/lib/cjs/switch/index.d.ts +12 -0
  170. package/lib/cjs/switch/index.js +19 -4
  171. package/lib/cjs/table/Body/BaseRow.js +35 -3
  172. package/lib/cjs/table/Body/index.js +9 -1
  173. package/lib/cjs/table/ColumnFilter.js +4 -0
  174. package/lib/cjs/table/ColumnSelection.d.ts +3 -0
  175. package/lib/cjs/table/ColumnSelection.js +6 -2
  176. package/lib/cjs/table/ColumnSorter.js +19 -3
  177. package/lib/cjs/table/CustomExpandIcon.js +7 -1
  178. package/lib/cjs/table/Table.d.ts +2 -0
  179. package/lib/cjs/table/Table.js +31 -15
  180. package/lib/cjs/table/TableCell.d.ts +2 -0
  181. package/lib/cjs/table/TableCell.js +6 -2
  182. package/lib/cjs/table/TableHeaderRow.js +8 -2
  183. package/lib/cjs/tabs/TabBar.js +11 -3
  184. package/lib/cjs/tabs/TabPane.js +3 -1
  185. package/lib/cjs/tabs/index.js +0 -1
  186. package/lib/cjs/tagInput/index.d.ts +4 -1
  187. package/lib/cjs/tagInput/index.js +29 -3
  188. package/lib/cjs/timePicker/TimePicker.d.ts +12 -0
  189. package/lib/cjs/timePicker/TimePicker.js +9 -1
  190. package/lib/cjs/timePicker/index.d.ts +6 -0
  191. package/lib/cjs/timeline/index.d.ts +1 -1
  192. package/lib/cjs/timeline/index.js +1 -0
  193. package/lib/cjs/timeline/item.js +4 -2
  194. package/lib/cjs/toast/toast.js +2 -0
  195. package/lib/cjs/tooltip/TriangleArrow.js +1 -0
  196. package/lib/cjs/tooltip/TriangleArrowVertical.js +1 -0
  197. package/lib/cjs/tooltip/index.d.ts +16 -12
  198. package/lib/cjs/tooltip/index.js +55 -39
  199. package/lib/cjs/transfer/index.js +32 -14
  200. package/lib/cjs/tree/index.d.ts +1 -0
  201. package/lib/cjs/tree/index.js +15 -6
  202. package/lib/cjs/tree/treeNode.d.ts +12 -4
  203. package/lib/cjs/tree/treeNode.js +44 -4
  204. package/lib/cjs/treeSelect/index.d.ts +16 -0
  205. package/lib/cjs/treeSelect/index.js +60 -12
  206. package/lib/cjs/typography/base.js +18 -7
  207. package/lib/cjs/typography/copyable.js +6 -1
  208. package/lib/cjs/upload/fileCard.js +23 -4
  209. package/lib/cjs/upload/index.js +19 -4
  210. package/lib/es/_utils/hooks/usePrevFocus.d.ts +2 -0
  211. package/lib/es/_utils/hooks/usePrevFocus.js +15 -0
  212. package/lib/es/_utils/index.d.ts +1 -0
  213. package/lib/es/_utils/index.js +4 -1
  214. package/lib/es/anchor/index.d.ts +2 -0
  215. package/lib/es/anchor/index.js +6 -1
  216. package/lib/es/anchor/link.d.ts +4 -1
  217. package/lib/es/anchor/link.js +38 -5
  218. package/lib/es/autoComplete/index.d.ts +17 -0
  219. package/lib/es/autoComplete/index.js +21 -2
  220. package/lib/es/avatar/avatarGroup.js +2 -1
  221. package/lib/es/avatar/index.d.ts +4 -3
  222. package/lib/es/avatar/index.js +20 -11
  223. package/lib/es/banner/index.js +4 -2
  224. package/lib/es/breadcrumb/index.d.ts +3 -0
  225. package/lib/es/breadcrumb/index.js +10 -4
  226. package/lib/es/breadcrumb/item.js +2 -2
  227. package/lib/es/button/Button.d.ts +2 -0
  228. package/lib/es/button/Button.js +4 -2
  229. package/lib/es/button/buttonGroup.d.ts +3 -0
  230. package/lib/es/button/buttonGroup.js +8 -4
  231. package/lib/es/button/index.d.ts +1 -0
  232. package/lib/es/button/splitButtonGroup.d.ts +3 -0
  233. package/lib/es/button/splitButtonGroup.js +5 -2
  234. package/lib/es/card/index.d.ts +3 -0
  235. package/lib/es/card/index.js +3 -1
  236. package/lib/es/cascader/index.d.ts +14 -0
  237. package/lib/es/cascader/index.js +35 -7
  238. package/lib/es/checkbox/checkbox.d.ts +21 -1
  239. package/lib/es/checkbox/checkbox.js +50 -17
  240. package/lib/es/checkbox/checkboxGroup.d.ts +13 -1
  241. package/lib/es/checkbox/checkboxGroup.js +18 -5
  242. package/lib/es/checkbox/checkboxInner.d.ts +15 -0
  243. package/lib/es/checkbox/checkboxInner.js +20 -3
  244. package/lib/es/collapse/index.js +2 -1
  245. package/lib/es/collapse/item.d.ts +2 -1
  246. package/lib/es/collapse/item.js +16 -3
  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/empty/index.js +2 -1
  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 +12 -1
  270. package/lib/es/inputNumber/index.d.ts +8 -0
  271. package/lib/es/inputNumber/index.js +33 -2
  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/item.js +0 -1
  276. package/lib/es/modal/Modal.js +2 -0
  277. package/lib/es/modal/ModalContent.d.ts +3 -1
  278. package/lib/es/modal/ModalContent.js +46 -5
  279. package/lib/es/navigation/Item.d.ts +4 -2
  280. package/lib/es/navigation/Item.js +25 -5
  281. package/lib/es/navigation/SubNav.d.ts +4 -2
  282. package/lib/es/navigation/SubNav.js +8 -1
  283. package/lib/es/navigation/index.js +2 -0
  284. package/lib/es/notification/notice.d.ts +1 -1
  285. package/lib/es/notification/notice.js +33 -24
  286. package/lib/es/pagination/index.js +16 -6
  287. package/lib/es/popover/index.js +7 -3
  288. package/lib/es/progress/index.d.ts +8 -0
  289. package/lib/es/progress/index.js +42 -9
  290. package/lib/es/radio/radio.d.ts +6 -1
  291. package/lib/es/radio/radio.js +16 -5
  292. package/lib/es/radio/radioGroup.d.ts +16 -1
  293. package/lib/es/radio/radioGroup.js +18 -3
  294. package/lib/es/radio/radioInner.d.ts +6 -1
  295. package/lib/es/radio/radioInner.js +11 -3
  296. package/lib/es/rating/index.d.ts +14 -0
  297. package/lib/es/rating/index.js +14 -3
  298. package/lib/es/rating/item.d.ts +2 -0
  299. package/lib/es/rating/item.js +6 -1
  300. package/lib/es/select/index.d.ts +16 -0
  301. package/lib/es/select/index.js +63 -17
  302. package/lib/es/select/option.js +28 -22
  303. package/lib/es/sideSheet/SideSheetContent.d.ts +1 -0
  304. package/lib/es/sideSheet/SideSheetContent.js +12 -5
  305. package/lib/es/sideSheet/index.d.ts +1 -0
  306. package/lib/es/sideSheet/index.js +2 -1
  307. package/lib/es/slider/index.d.ts +2 -1
  308. package/lib/es/slider/index.js +63 -16
  309. package/lib/es/spin/icon.js +2 -4
  310. package/lib/es/steps/basicStep.d.ts +3 -0
  311. package/lib/es/steps/basicStep.js +23 -23
  312. package/lib/es/steps/basicSteps.d.ts +1 -0
  313. package/lib/es/steps/basicSteps.js +2 -1
  314. package/lib/es/steps/fillStep.d.ts +3 -0
  315. package/lib/es/steps/fillStep.js +19 -4
  316. package/lib/es/steps/fillSteps.d.ts +1 -0
  317. package/lib/es/steps/fillSteps.js +2 -1
  318. package/lib/es/steps/navStep.d.ts +3 -0
  319. package/lib/es/steps/navStep.js +22 -23
  320. package/lib/es/steps/navSteps.d.ts +1 -0
  321. package/lib/es/steps/navSteps.js +2 -1
  322. package/lib/es/switch/index.d.ts +12 -0
  323. package/lib/es/switch/index.js +19 -4
  324. package/lib/es/table/Body/BaseRow.js +35 -3
  325. package/lib/es/table/Body/index.js +9 -2
  326. package/lib/es/table/ColumnFilter.js +4 -0
  327. package/lib/es/table/ColumnSelection.d.ts +3 -0
  328. package/lib/es/table/ColumnSelection.js +6 -2
  329. package/lib/es/table/ColumnSorter.js +17 -3
  330. package/lib/es/table/CustomExpandIcon.js +6 -1
  331. package/lib/es/table/Table.d.ts +2 -0
  332. package/lib/es/table/Table.js +31 -15
  333. package/lib/es/table/TableCell.d.ts +2 -0
  334. package/lib/es/table/TableCell.js +6 -2
  335. package/lib/es/table/TableHeaderRow.js +8 -2
  336. package/lib/es/tabs/TabBar.js +11 -3
  337. package/lib/es/tabs/TabPane.js +3 -1
  338. package/lib/es/tabs/index.js +0 -1
  339. package/lib/es/tagInput/index.d.ts +4 -1
  340. package/lib/es/tagInput/index.js +29 -3
  341. package/lib/es/timePicker/TimePicker.d.ts +12 -0
  342. package/lib/es/timePicker/TimePicker.js +9 -1
  343. package/lib/es/timePicker/index.d.ts +6 -0
  344. package/lib/es/timeline/index.d.ts +1 -1
  345. package/lib/es/timeline/index.js +1 -0
  346. package/lib/es/timeline/item.js +4 -2
  347. package/lib/es/toast/toast.js +2 -0
  348. package/lib/es/tooltip/TriangleArrow.js +1 -0
  349. package/lib/es/tooltip/TriangleArrowVertical.js +1 -0
  350. package/lib/es/tooltip/index.d.ts +16 -12
  351. package/lib/es/tooltip/index.js +53 -39
  352. package/lib/es/transfer/index.js +32 -14
  353. package/lib/es/tree/index.d.ts +1 -0
  354. package/lib/es/tree/index.js +15 -6
  355. package/lib/es/tree/treeNode.d.ts +12 -4
  356. package/lib/es/tree/treeNode.js +44 -4
  357. package/lib/es/treeSelect/index.d.ts +16 -0
  358. package/lib/es/treeSelect/index.js +57 -10
  359. package/lib/es/typography/base.js +17 -7
  360. package/lib/es/typography/copyable.js +5 -1
  361. package/lib/es/upload/fileCard.js +23 -4
  362. package/lib/es/upload/index.js +19 -4
  363. package/list/item.tsx +0 -1
  364. package/modal/Modal.tsx +2 -0
  365. package/modal/ModalContent.tsx +35 -5
  366. package/navigation/Item.tsx +15 -0
  367. package/navigation/SubNav.tsx +13 -1
  368. package/navigation/index.tsx +1 -1
  369. package/notification/notice.tsx +19 -14
  370. package/package.json +8 -8
  371. package/pagination/index.tsx +9 -5
  372. package/popover/index.tsx +5 -0
  373. package/progress/_story/progress.stories.js +18 -18
  374. package/progress/index.tsx +58 -20
  375. package/radio/radio.tsx +12 -2
  376. package/radio/radioGroup.tsx +29 -3
  377. package/radio/radioInner.tsx +10 -1
  378. package/rating/index.tsx +19 -2
  379. package/rating/item.tsx +6 -0
  380. package/select/__test__/select.test.js +45 -0
  381. package/select/_story/select.stories.js +29 -0
  382. package/select/index.tsx +52 -4
  383. package/select/option.tsx +3 -0
  384. package/sideSheet/SideSheetContent.tsx +13 -9
  385. package/sideSheet/index.tsx +3 -2
  386. package/slider/__test__/slider.test.js +9 -0
  387. package/slider/_story/slider.stories.js +1 -1
  388. package/slider/index.tsx +44 -7
  389. package/spin/icon.tsx +3 -3
  390. package/steps/basicStep.tsx +15 -4
  391. package/steps/basicSteps.tsx +3 -2
  392. package/steps/fillStep.tsx +27 -12
  393. package/steps/fillSteps.tsx +2 -0
  394. package/steps/navStep.tsx +15 -4
  395. package/steps/navSteps.tsx +3 -2
  396. package/switch/_story/switch.stories.js +20 -19
  397. package/switch/_story/switch.stories.tsx +13 -13
  398. package/switch/index.tsx +23 -5
  399. package/table/Body/BaseRow.tsx +25 -1
  400. package/table/Body/index.tsx +7 -2
  401. package/table/ColumnFilter.tsx +7 -1
  402. package/table/ColumnSelection.tsx +4 -1
  403. package/table/ColumnSorter.tsx +18 -1
  404. package/table/CustomExpandIcon.tsx +5 -0
  405. package/table/Table.tsx +26 -13
  406. package/table/TableCell.tsx +11 -1
  407. package/table/TableHeaderRow.tsx +16 -2
  408. package/table/__test__/table.test.js +46 -0
  409. package/tabs/TabBar.tsx +8 -5
  410. package/tabs/TabPane.tsx +3 -1
  411. package/tabs/index.tsx +0 -1
  412. package/tagInput/__test__/tagInput.test.js +46 -0
  413. package/tagInput/_story/tagInput.stories.js +2 -2
  414. package/tagInput/index.tsx +31 -8
  415. package/timePicker/TimePicker.tsx +14 -1
  416. package/timeline/_story/timeline.stories.js +1 -1
  417. package/timeline/index.tsx +2 -2
  418. package/timeline/item.tsx +2 -1
  419. package/toast/toast.tsx +2 -0
  420. package/tooltip/TriangleArrow.tsx +1 -1
  421. package/tooltip/TriangleArrowVertical.tsx +1 -1
  422. package/tooltip/_story/tooltip.stories.js +562 -514
  423. package/tooltip/index.tsx +50 -33
  424. package/transfer/index.tsx +29 -25
  425. package/tree/_story/tree.stories.js +3 -3
  426. package/tree/index.tsx +10 -2
  427. package/tree/treeNode.tsx +46 -10
  428. package/treeSelect/__test__/treeMultiple.test.js +5 -0
  429. package/treeSelect/_story/treeSelect.stories.js +12 -0
  430. package/treeSelect/index.tsx +58 -7
  431. package/typography/base.tsx +7 -1
  432. package/typography/copyable.tsx +10 -1
  433. package/upload/fileCard.tsx +13 -15
  434. package/upload/index.tsx +10 -6
@@ -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>;
@@ -122,8 +122,12 @@ class Progress extends _react.Component {
122
122
  stroke,
123
123
  showInfo,
124
124
  percent,
125
- orbitStroke
125
+ orbitStroke,
126
+ id
126
127
  } = this.props;
128
+ const ariaLabel = this.props['aria-label'];
129
+ const ariaLabelledBy = this.props['aria-labelledby'];
130
+ const ariaValueText = this.props['aria-valuetext'];
127
131
  const {
128
132
  percentNumber
129
133
  } = this.state;
@@ -153,13 +157,22 @@ class Progress extends _react.Component {
153
157
  const strokeDasharray = (0, _concat.default)(_context = "".concat(circumference, " ")).call(_context, circumference);
154
158
  const text = format(percNumber);
155
159
  return /*#__PURE__*/_react.default.createElement("div", {
160
+ id: id,
156
161
  className: classNames.wrapper,
157
- style: style
162
+ style: style,
163
+ role: 'progressbar',
164
+ "aria-valuemin": 0,
165
+ "aria-valuemax": 100,
166
+ "aria-valuenow": percNumber,
167
+ "aria-labelledby": ariaLabelledBy,
168
+ "aria-label": ariaLabel,
169
+ "aria-valuetext": ariaValueText
158
170
  }, /*#__PURE__*/_react.default.createElement("svg", {
159
171
  key: size,
160
172
  className: classNames.svg,
161
173
  height: width,
162
- width: width
174
+ width: width,
175
+ "aria-hidden": true
163
176
  }, /*#__PURE__*/_react.default.createElement("circle", {
164
177
  strokeDashoffset: 0,
165
178
  strokeWidth: strokeWidth,
@@ -169,7 +182,8 @@ class Progress extends _react.Component {
169
182
  stroke: orbitStroke,
170
183
  r: radius,
171
184
  cx: cx,
172
- cy: cy
185
+ cy: cy,
186
+ "aria-hidden": true
173
187
  }), /*#__PURE__*/_react.default.createElement("circle", {
174
188
  className: classNames.circle,
175
189
  strokeDashoffset: strokeDashoffset,
@@ -180,7 +194,8 @@ class Progress extends _react.Component {
180
194
  stroke: stroke,
181
195
  r: radius,
182
196
  cx: cx,
183
- cy: cy
197
+ cy: cy,
198
+ "aria-hidden": true
184
199
  })), showInfo && size !== 'small' ? /*#__PURE__*/_react.default.createElement("span", {
185
200
  className: "".concat(prefixCls, "-circle-text")
186
201
  }, text) : null);
@@ -210,8 +225,12 @@ class Progress extends _react.Component {
210
225
  showInfo,
211
226
  size,
212
227
  percent,
213
- orbitStroke
228
+ orbitStroke,
229
+ id
214
230
  } = this.props;
231
+ const ariaLabel = this.props['aria-label'];
232
+ const ariaLabelledBy = this.props['aria-labelledby'];
233
+ const ariaValueText = this.props['aria-valuetext'];
215
234
  const {
216
235
  percentNumber
217
236
  } = this.state;
@@ -238,16 +257,26 @@ class Progress extends _react.Component {
238
257
 
239
258
  const text = format(percNumber);
240
259
  return /*#__PURE__*/_react.default.createElement("div", {
260
+ id: id,
241
261
  className: progressWrapperCls,
242
- style: style
262
+ style: style,
263
+ role: 'progressbar',
264
+ "aria-valuemin": 0,
265
+ "aria-valuemax": 100,
266
+ "aria-valuenow": perc,
267
+ "aria-labelledby": ariaLabelledBy,
268
+ "aria-label": ariaLabel,
269
+ "aria-valuetext": ariaValueText
243
270
  }, /*#__PURE__*/_react.default.createElement("div", {
244
271
  className: progressTrackCls,
245
272
  style: orbitStroke ? {
246
273
  backgroundColor: orbitStroke
247
- } : {}
274
+ } : {},
275
+ "aria-hidden": true
248
276
  }, /*#__PURE__*/_react.default.createElement("div", {
249
277
  className: innerCls,
250
- style: innerStyle
278
+ style: innerStyle,
279
+ "aria-hidden": true
251
280
  })), showInfo ? /*#__PURE__*/_react.default.createElement("div", {
252
281
  className: "".concat(prefixCls, "-line-text")
253
282
  }, text) : null);
@@ -268,9 +297,13 @@ class Progress extends _react.Component {
268
297
  }
269
298
 
270
299
  Progress.propTypes = {
300
+ 'aria-label': _propTypes.default.string,
301
+ 'aria-labelledby': _propTypes.default.string,
302
+ 'aria-valuetext': _propTypes.default.string,
271
303
  className: _propTypes.default.string,
272
304
  direction: _propTypes.default.oneOf(_constants.strings.directions),
273
305
  format: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.node]),
306
+ id: _propTypes.default.string,
274
307
  motion: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.func, _propTypes.default.object]),
275
308
  orbitStroke: _propTypes.default.string,
276
309
  percent: _propTypes.default.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/cjs/radio/radioFoundation';
3
+ import RadioFoundation, { RadioAdapter } from '@douyinfe/semi-foundation/lib/cjs/radio/radioFoundation';
4
4
  import { RadioChangeEvent } from '@douyinfe/semi-foundation/lib/cjs/radio/radioInnerFoundation';
5
5
  import { strings } from '@douyinfe/semi-foundation/lib/cjs/radio/constants';
6
6
  import '@douyinfe/semi-foundation/lib/cjs/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(): {
@@ -26,6 +26,8 @@ var _radioFoundation = _interopRequireDefault(require("@douyinfe/semi-foundation
26
26
 
27
27
  var _constants = require("@douyinfe/semi-foundation/lib/cjs/radio/constants");
28
28
 
29
+ var _uuid = require("@douyinfe/semi-foundation/lib/cjs/utils/uuid");
30
+
29
31
  require("@douyinfe/semi-foundation/lib/cjs/radio/radio.css");
30
32
 
31
33
  var _baseComponent = _interopRequireDefault(require("../_base/baseComponent"));
@@ -69,6 +71,12 @@ class Radio extends _baseComponent.default {
69
71
  };
70
72
  this.foundation = new _radioFoundation.default(this.adapter);
71
73
  this.radioEntity = null;
74
+ this.addonId = (0, _uuid.getUuidShort)({
75
+ prefix: 'addon'
76
+ });
77
+ this.extraId = (0, _uuid.getUuidShort)({
78
+ prefix: 'extra'
79
+ });
72
80
  }
73
81
 
74
82
  get adapter() {
@@ -165,9 +173,11 @@ class Radio extends _baseComponent.default {
165
173
 
166
174
  const renderContent = () => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children ? /*#__PURE__*/_react.default.createElement("span", {
167
175
  className: addonCls,
168
- style: addonStyle
176
+ style: addonStyle,
177
+ id: this.addonId
169
178
  }, children) : null, extra && !isButtonRadio ? /*#__PURE__*/_react.default.createElement("div", {
170
- className: "".concat(prefix, "-extra")
179
+ className: "".concat(prefix, "-extra"),
180
+ id: this.extraId
171
181
  }, extra) : null);
172
182
 
173
183
  return /*#__PURE__*/_react.default.createElement("label", {
@@ -183,7 +193,9 @@ class Radio extends _baseComponent.default {
183
193
  onChange: this.onChange,
184
194
  ref: ref => {
185
195
  this.radioEntity = ref;
186
- }
196
+ },
197
+ addonId: children && this.addonId,
198
+ extraId: extra && this.extraId
187
199
  })), isCardRadioGroup ? /*#__PURE__*/_react.default.createElement("div", {
188
200
  className: "".concat(prefix, "-isCardRadioGroup_content")
189
201
  }, renderContent()) : renderContent());
@@ -209,8 +221,8 @@ Radio.propTypes = {
209
221
  extra: _propTypes.default.node,
210
222
  addonStyle: _propTypes.default.object,
211
223
  addonClassName: _propTypes.default.string,
212
- type: _propTypes.default.oneOf([_constants.strings.TYPE_DEFAULT, _constants.strings.TYPE_BUTTON, _constants.strings.TYPE_CARD, _constants.strings.TYPE_PURECARD]) // Button style type
213
-
224
+ type: _propTypes.default.oneOf([_constants.strings.TYPE_DEFAULT, _constants.strings.TYPE_BUTTON, _constants.strings.TYPE_CARD, _constants.strings.TYPE_PURECARD]),
225
+ 'aria-label': _propTypes.default.string
214
226
  };
215
227
  Radio.defaultProps = {
216
228
  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/cjs/radio/constants';
4
- import { RadioGroupAdapter } from '@douyinfe/semi-foundation/lib/cjs/radio/radioGroupFoundation';
4
+ import RadioGroupFoundation, { RadioGroupAdapter } from '@douyinfe/semi-foundation/lib/cjs/radio/radioGroupFoundation';
5
5
  import { RadioChangeEvent } from '@douyinfe/semi-foundation/lib/cjs/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;
@@ -91,7 +91,8 @@ class RadioGroup extends _baseComponent.default {
91
91
  style,
92
92
  direction,
93
93
  type,
94
- buttonSize
94
+ buttonSize,
95
+ id
95
96
  } = this.props;
96
97
  const isButtonRadio = type === _constants.strings.TYPE_BUTTON;
97
98
  const isPureCardRadio = type === _constants.strings.TYPE_PURECARD;
@@ -140,7 +141,14 @@ class RadioGroup extends _baseComponent.default {
140
141
 
141
142
  return /*#__PURE__*/_react.default.createElement("div", {
142
143
  className: prefixClsDisplay,
143
- style: style
144
+ style: style,
145
+ id: id,
146
+ "aria-label": this.props['aria-label'],
147
+ "aria-invalid": this.props['aria-invalid'],
148
+ "aria-errormessage": this.props['aria-errormessage'],
149
+ "aria-labelledby": this.props['aria-labelledby'],
150
+ "aria-describedby": this.props['aria-describedby'],
151
+ "aria-required": this.props['aria-required']
144
152
  }, /*#__PURE__*/_react.default.createElement(_context6.default.Provider, {
145
153
  value: {
146
154
  radioGroup: {
@@ -175,7 +183,14 @@ RadioGroup.propTypes = {
175
183
  className: _propTypes.default.string,
176
184
  style: _propTypes.default.object,
177
185
  direction: _propTypes.default.oneOf(_constants.strings.DIRECTION_SET),
178
- mode: _propTypes.default.oneOf(_constants.strings.MODE)
186
+ mode: _propTypes.default.oneOf(_constants.strings.MODE),
187
+ 'aria-label': _propTypes.default.string,
188
+ 'aria-describedby': _propTypes.default.string,
189
+ 'aria-errormessage': _propTypes.default.string,
190
+ 'aria-invalid': _propTypes.default.bool,
191
+ 'aria-labelledby': _propTypes.default.string,
192
+ 'aria-required': _propTypes.default.bool,
193
+ id: _propTypes.default.string
179
194
  };
180
195
  RadioGroup.defaultProps = {
181
196
  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/cjs/radio/radioInnerFoundation';
3
+ import RadioInnerFoundation, { RadioChangeEvent, RadioInnerAdapter } from '@douyinfe/semi-foundation/lib/cjs/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;