@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
@@ -76,8 +76,12 @@ class Breadcrumb extends _baseComponent.default {
76
76
  }, /*#__PURE__*/_react.default.createElement("span", {
77
77
  className: "".concat(clsPrefix, "-item-wrap")
78
78
  }, /*#__PURE__*/_react.default.createElement("span", {
79
+ role: 'button',
80
+ tabIndex: 0,
81
+ "aria-label": 'Expand breadcrumb items',
79
82
  className: (0, _concat.default)(_context = "".concat(clsPrefix, "-item ")).call(_context, clsPrefix, "-item-more"),
80
- onClick: item => this.foundation.handleExpand(item)
83
+ onClick: item => this.foundation.handleExpand(item),
84
+ onKeyPress: e => this.foundation.handleExpandEnterPress(e)
81
85
  }, hasRenderMore && renderMore(restItem), !hasRenderMore && moreType === 'default' && /*#__PURE__*/_react.default.createElement(_semiIcons.IconMore, null), !hasRenderMore && moreType === 'popover' && this.renderPopoverMore(restItem)), /*#__PURE__*/_react.default.createElement("span", {
82
86
  className: "".concat(clsPrefix, "-separator")
83
87
  }, this.props.separator)));
@@ -235,7 +239,7 @@ class Breadcrumb extends _baseComponent.default {
235
239
  separator
236
240
  }
237
241
  }, /*#__PURE__*/_react.default.createElement("nav", {
238
- "aria-label": "".concat(clsPrefix),
242
+ "aria-label": this.props['aria-label'],
239
243
  className: sizeCls,
240
244
  style: style
241
245
  }, breadcrumbs));
@@ -266,7 +270,8 @@ Breadcrumb.propTypes = {
266
270
  renderMore: _propTypes.default.func,
267
271
 
268
272
  /* Type of ellipsis area */
269
- moreType: _propTypes.default.oneOf(_constants.strings.MORE_TYPE)
273
+ moreType: _propTypes.default.oneOf(_constants.strings.MORE_TYPE),
274
+ 'aria-label': _propTypes.default.string
270
275
  };
271
276
  Breadcrumb.defaultProps = {
272
277
  routes: [],
@@ -280,7 +285,8 @@ Breadcrumb.defaultProps = {
280
285
  },
281
286
  autoCollapse: true,
282
287
  moreType: 'default',
283
- maxItemCount: 4
288
+ maxItemCount: 4,
289
+ 'aria-label': 'Breadcrumb'
284
290
  };
285
291
  var _default = Breadcrumb;
286
292
  exports.default = _default;
@@ -212,9 +212,9 @@ class BreadcrumbItem extends _baseComponent.default {
212
212
  shouldRenderSeparator // children,
213
213
 
214
214
  } = this.props;
215
- const pageLabel = active ? {} : {
215
+ const pageLabel = active ? {
216
216
  'aria-current': 'page'
217
- };
217
+ } : {};
218
218
  const item = this.renderItem();
219
219
  const separator = !active ? this.props.separator || /*#__PURE__*/_react.default.createElement("span", {
220
220
  className: "".concat(clsPrefix, "-separator")
@@ -25,6 +25,7 @@ export interface ButtonProps {
25
25
  onMouseDown?: React.MouseEventHandler<HTMLButtonElement>;
26
26
  onMouseEnter?: React.MouseEventHandler<HTMLButtonElement>;
27
27
  onMouseLeave?: React.MouseEventHandler<HTMLButtonElement>;
28
+ 'aria-label'?: React.AriaAttributes['aria-label'];
28
29
  }
29
30
  export default class Button extends PureComponent<ButtonProps> {
30
31
  static defaultProps: {
@@ -57,6 +58,7 @@ export default class Button extends PureComponent<ButtonProps> {
57
58
  className: PropTypes.Requireable<string>;
58
59
  onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
59
60
  onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
61
+ 'aria-label': PropTypes.Requireable<string>;
60
62
  };
61
63
  render(): JSX.Element;
62
64
  }
@@ -93,7 +93,8 @@ class Button extends _react.PureComponent {
93
93
  ["".concat(prefixCls, "-circle")]: circle,
94
94
  ["".concat(prefixCls, "-borderless")]: theme === 'borderless'
95
95
  }, className),
96
- type: htmlType
96
+ type: htmlType,
97
+ 'aria-disabled': disabled
97
98
  });
98
99
  return (
99
100
  /*#__PURE__*/
@@ -141,5 +142,6 @@ Button.propTypes = {
141
142
  theme: _propTypes.default.oneOf(_constants.strings.themes),
142
143
  className: _propTypes.default.string,
143
144
  onMouseEnter: _propTypes.default.func,
144
- onMouseLeave: _propTypes.default.func
145
+ onMouseLeave: _propTypes.default.func,
146
+ 'aria-label': _propTypes.default.string
145
147
  };
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import BaseComponent, { BaseProps } from '../_base/baseComponent';
2
3
  import PropTypes from 'prop-types';
3
4
  import { Type, Size } from './Button';
@@ -8,6 +9,7 @@ export interface ButtonGroupProps extends BaseProps {
8
9
  type?: Type;
9
10
  size?: Size;
10
11
  theme?: Theme;
12
+ 'aria-label'?: React.AriaAttributes['aria-label'];
11
13
  }
12
14
  export default class ButtonGroup extends BaseComponent<ButtonGroupProps> {
13
15
  static propTypes: {
@@ -16,6 +18,7 @@ export default class ButtonGroup extends BaseComponent<ButtonGroupProps> {
16
18
  type: PropTypes.Requireable<string>;
17
19
  size: PropTypes.Requireable<unknown>;
18
20
  theme: PropTypes.Requireable<unknown>;
21
+ 'aria-label': PropTypes.Requireable<string>;
19
22
  };
20
23
  static defaultProps: {
21
24
  size: string;
@@ -59,9 +59,10 @@ class ButtonGroup extends _baseComponent.default {
59
59
  children,
60
60
  disabled,
61
61
  size,
62
- type
62
+ type,
63
+ 'aria-label': ariaLabel
63
64
  } = _a,
64
- rest = __rest(_a, ["children", "disabled", "size", "type"]);
65
+ rest = __rest(_a, ["children", "disabled", "size", "type", 'aria-label']);
65
66
 
66
67
  let inner;
67
68
 
@@ -78,7 +79,9 @@ class ButtonGroup extends _baseComponent.default {
78
79
  }
79
80
 
80
81
  return /*#__PURE__*/_react.default.createElement("div", {
81
- className: "".concat(prefixCls, "-group")
82
+ className: "".concat(prefixCls, "-group"),
83
+ role: "group",
84
+ "aria-label": ariaLabel
82
85
  }, inner);
83
86
  }
84
87
 
@@ -90,7 +93,8 @@ ButtonGroup.propTypes = {
90
93
  disabled: _propTypes.default.bool,
91
94
  type: _propTypes.default.string,
92
95
  size: _propTypes.default.oneOf(btnSizes),
93
- theme: _propTypes.default.oneOf(_constants.strings.themes)
96
+ theme: _propTypes.default.oneOf(_constants.strings.themes),
97
+ 'aria-label': _propTypes.default.string
94
98
  };
95
99
  ButtonGroup.defaultProps = {
96
100
  size: 'default',
@@ -30,6 +30,7 @@ declare class Button extends React.PureComponent<ButtonProps> {
30
30
  onMouseDown: import("prop-types").Requireable<(...args: any[]) => any>;
31
31
  circle: import("prop-types").Requireable<boolean>;
32
32
  htmlType: import("prop-types").Requireable<unknown>;
33
+ 'aria-label': import("prop-types").Requireable<string>;
33
34
  };
34
35
  constructor(props?: {});
35
36
  render(): JSX.Element;
@@ -1,12 +1,15 @@
1
+ import React from 'react';
1
2
  import PropTypes from 'prop-types';
2
3
  import '@douyinfe/semi-foundation/lib/cjs/button/button.css';
3
4
  import BaseComponent, { BaseProps } from '../_base/baseComponent';
4
5
  export interface SplitButtonGroupProps extends BaseProps {
6
+ 'aria-label'?: React.AriaAttributes['aria-label'];
5
7
  }
6
8
  export default class SplitButtonGroup extends BaseComponent<SplitButtonGroupProps> {
7
9
  static propTypes: {
8
10
  style: PropTypes.Requireable<object>;
9
11
  className: PropTypes.Requireable<string>;
12
+ 'aria-label': PropTypes.Requireable<string>;
10
13
  };
11
14
  render(): JSX.Element;
12
15
  }
@@ -34,7 +34,9 @@ class SplitButtonGroup extends _baseComponent.default {
34
34
  const cls = (0, _classnames.default)("".concat(prefixCls, "-split"), className);
35
35
  return /*#__PURE__*/_react.default.createElement("div", {
36
36
  className: cls,
37
- style: style
37
+ style: style,
38
+ role: "group",
39
+ "aria-label": this.props['aria-label']
38
40
  }, children);
39
41
  }
40
42
 
@@ -43,5 +45,6 @@ class SplitButtonGroup extends _baseComponent.default {
43
45
  exports.default = SplitButtonGroup;
44
46
  SplitButtonGroup.propTypes = {
45
47
  style: _propTypes.default.object,
46
- className: _propTypes.default.string
48
+ className: _propTypes.default.string,
49
+ 'aria-label': _propTypes.default.string
47
50
  };
@@ -38,6 +38,8 @@ export interface CardProps {
38
38
  style?: CSSProperties;
39
39
  /** Title */
40
40
  title?: ReactNode;
41
+ /** aria label */
42
+ 'aria-label'?: string;
41
43
  }
42
44
  declare class Card extends PureComponent<CardProps> {
43
45
  static Meta: typeof Meta;
@@ -59,6 +61,7 @@ declare class Card extends PureComponent<CardProps> {
59
61
  shadows: PropTypes.Requireable<string>;
60
62
  style: PropTypes.Requireable<object>;
61
63
  title: PropTypes.Requireable<PropTypes.ReactNodeLike>;
64
+ 'aria-label': PropTypes.Requireable<string>;
62
65
  };
63
66
  static defaultProps: {
64
67
  bordered: boolean;
@@ -187,6 +187,7 @@ class Card extends _react.PureComponent {
187
187
  [(0, _concat.default)(_context = "".concat(prefixcls, "-shadows-")).call(_context, shadows)]: shadows
188
188
  });
189
189
  return /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({}, others, {
190
+ "aria-busy": this.props.loading,
190
191
  className: cardCls,
191
192
  style: style
192
193
  }), this.renderHeader(), this.renderCover(), this.renderBody(), this.renderFooter());
@@ -212,7 +213,8 @@ Card.propTypes = {
212
213
  loading: _propTypes.default.bool,
213
214
  shadows: _propTypes.default.oneOf(_constants.strings.SHADOWS),
214
215
  style: _propTypes.default.object,
215
- title: _propTypes.default.node
216
+ title: _propTypes.default.node,
217
+ 'aria-label': _propTypes.default.string
216
218
  };
217
219
  Card.defaultProps = {
218
220
  bordered: true,
@@ -19,6 +19,11 @@ export interface TriggerRenderProps extends BasicTriggerRenderProps {
19
19
  export declare type SimpleValueType = string | number | CascaderData;
20
20
  export declare type Value = SimpleValueType | Array<SimpleValueType> | Array<Array<SimpleValueType>>;
21
21
  export interface CascaderProps extends BasicCascaderProps {
22
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
23
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
24
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
25
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
26
+ 'aria-required'?: React.AriaAttributes['aria-required'];
22
27
  arrowIcon?: ReactNode;
23
28
  defaultValue?: Value;
24
29
  dropdownStyle?: CSSProperties;
@@ -30,7 +35,9 @@ export interface CascaderProps extends BasicCascaderProps {
30
35
  value?: Value;
31
36
  prefix?: ReactNode;
32
37
  suffix?: ReactNode;
38
+ id?: string;
33
39
  insetLabel?: ReactNode;
40
+ insetLabelId?: string;
34
41
  style?: CSSProperties;
35
42
  bottomSlot?: ReactNode;
36
43
  topSlot?: ReactNode;
@@ -53,6 +60,11 @@ export interface CascaderState extends BasicCascaderInnerData {
53
60
  declare class Cascader extends BaseComponent<CascaderProps, CascaderState> {
54
61
  static contextType: React.Context<import("../configProvider/context").ContextValue>;
55
62
  static propTypes: {
63
+ 'aria-labelledby': PropTypes.Requireable<string>;
64
+ 'aria-invalid': PropTypes.Requireable<boolean>;
65
+ 'aria-errormessage': PropTypes.Requireable<string>;
66
+ 'aria-describedby': PropTypes.Requireable<string>;
67
+ 'aria-required': PropTypes.Requireable<boolean>;
56
68
  arrowIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
57
69
  changeOnSelect: PropTypes.Requireable<boolean>;
58
70
  defaultValue: PropTypes.Requireable<string | any[]>;
@@ -76,6 +88,8 @@ declare class Cascader extends BaseComponent<CascaderProps, CascaderState> {
76
88
  suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
77
89
  prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
78
90
  insetLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
91
+ insetLabelId: PropTypes.Requireable<string>;
92
+ id: PropTypes.Requireable<string>;
79
93
  displayProp: PropTypes.Requireable<string>;
80
94
  displayRender: PropTypes.Requireable<(...args: any[]) => any>;
81
95
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
@@ -189,7 +189,7 @@ class Cascader extends _baseComponent.default {
189
189
 
190
190
  const content = /*#__PURE__*/_react.default.createElement("div", {
191
191
  className: popoverCls,
192
- role: "list-box",
192
+ role: "listbox",
193
193
  style: dropdownStyle
194
194
  }, topSlot, /*#__PURE__*/_react.default.createElement(_item.default, {
195
195
  activeKeys: activeKeys,
@@ -318,7 +318,8 @@ class Cascader extends _baseComponent.default {
318
318
  this.renderPrefix = () => {
319
319
  const {
320
320
  prefix,
321
- insetLabel
321
+ insetLabel,
322
+ insetLabelId
322
323
  } = this.props;
323
324
  const labelNode = prefix || insetLabel;
324
325
  const prefixWrapperCls = (0, _classnames.default)({
@@ -329,7 +330,8 @@ class Cascader extends _baseComponent.default {
329
330
  ["".concat(prefixcls, "-prefix-icon")]: (0, _utils.isSemiIcon)(labelNode)
330
331
  });
331
332
  return /*#__PURE__*/_react.default.createElement("div", {
332
- className: prefixWrapperCls
333
+ className: prefixWrapperCls,
334
+ id: insetLabelId
333
335
  }, labelNode);
334
336
  };
335
337
 
@@ -408,7 +410,9 @@ class Cascader extends _baseComponent.default {
408
410
  if (allowClear) {
409
411
  return /*#__PURE__*/_react.default.createElement("div", {
410
412
  className: clearCls,
411
- onClick: this.handleClear
413
+ onClick: this.handleClear,
414
+ role: 'button',
415
+ tabIndex: 0
412
416
  }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconClear, null));
413
417
  }
414
418
 
@@ -443,7 +447,8 @@ class Cascader extends _baseComponent.default {
443
447
  suffix,
444
448
  insetLabel,
445
449
  triggerRender,
446
- showClear
450
+ showClear,
451
+ id
447
452
  } = this.props;
448
453
  const {
449
454
  isOpen,
@@ -485,12 +490,28 @@ class Cascader extends _baseComponent.default {
485
490
  }, suffix ? this.renderSuffix() : null), /*#__PURE__*/_react.default.createElement(_react.Fragment, {
486
491
  key: 'arrow'
487
492
  }, this.renderArrow())];
493
+ /**
494
+ * Reasons for disabling the a11y eslint rule:
495
+ * The following attributes(aria-controls,aria-expanded) will be automatically added by Tooltip, no need to declare here
496
+ */
497
+
488
498
  return /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
489
499
  className: classNames,
490
500
  style: style,
491
501
  ref: this.triggerRef,
492
- onClick: e => this.foundation.handleClick(e)
493
- }, mouseEvent), inner);
502
+ onClick: e => this.foundation.handleClick(e),
503
+ "aria-invalid": this.props['aria-invalid'],
504
+ "aria-errormessage": this.props['aria-errormessage'],
505
+ "aria-label": this.props['aria-label'],
506
+ "aria-labelledby": this.props['aria-labelledby'],
507
+ "aria-describedby": this.props["aria-describedby"],
508
+ "aria-required": this.props['aria-required'],
509
+ id: id
510
+ }, mouseEvent, {
511
+ // eslint-disable-next-line jsx-a11y/role-has-required-aria-props
512
+ role: 'combobox',
513
+ tabIndex: 0
514
+ }), inner);
494
515
  };
495
516
 
496
517
  this.state = {
@@ -909,6 +930,11 @@ class Cascader extends _baseComponent.default {
909
930
 
910
931
  Cascader.contextType = _context4.default;
911
932
  Cascader.propTypes = {
933
+ 'aria-labelledby': _propTypes.default.string,
934
+ 'aria-invalid': _propTypes.default.bool,
935
+ 'aria-errormessage': _propTypes.default.string,
936
+ 'aria-describedby': _propTypes.default.string,
937
+ 'aria-required': _propTypes.default.bool,
912
938
  arrowIcon: _propTypes.default.node,
913
939
  changeOnSelect: _propTypes.default.bool,
914
940
  defaultValue: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.array]),
@@ -934,6 +960,8 @@ Cascader.propTypes = {
934
960
  suffix: _propTypes.default.node,
935
961
  prefix: _propTypes.default.node,
936
962
  insetLabel: _propTypes.default.node,
963
+ insetLabelId: _propTypes.default.string,
964
+ id: _propTypes.default.string,
937
965
  displayProp: _propTypes.default.string,
938
966
  displayRender: _propTypes.default.func,
939
967
  onChange: _propTypes.default.func,
@@ -1,17 +1,25 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { CheckboxAdapter, BasicCheckboxEvent, BasicTargetObject, BaseCheckboxProps } from '@douyinfe/semi-foundation/lib/cjs/checkbox/checkboxFoundation';
3
+ import CheckboxFoundation, { CheckboxAdapter, BasicCheckboxEvent, BasicTargetObject, BaseCheckboxProps } from '@douyinfe/semi-foundation/lib/cjs/checkbox/checkboxFoundation';
4
4
  import CheckboxInner from './checkboxInner';
5
5
  import BaseComponent from '../_base/baseComponent';
6
6
  import '@douyinfe/semi-foundation/lib/cjs/checkbox/checkbox.css';
7
7
  export declare type CheckboxEvent = BasicCheckboxEvent;
8
8
  export declare type TargetObject = BasicTargetObject;
9
9
  export interface CheckboxProps extends BaseCheckboxProps {
10
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
11
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
12
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
13
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
14
+ 'aria-required'?: React.AriaAttributes['aria-required'];
10
15
  onChange?: (e: CheckboxEvent) => any;
11
16
  style?: React.CSSProperties;
12
17
  onMouseEnter?: React.MouseEventHandler<HTMLSpanElement>;
13
18
  onMouseLeave?: React.MouseEventHandler<HTMLSpanElement>;
14
19
  extra?: React.ReactNode;
20
+ 'aria-label'?: React.AriaAttributes['aria-label'];
21
+ role?: React.HTMLAttributes<HTMLSpanElement>['role'];
22
+ tabIndex?: number;
15
23
  }
16
24
  interface CheckboxState {
17
25
  checked: boolean;
@@ -28,6 +36,11 @@ declare class Checkbox extends BaseComponent<CheckboxProps, CheckboxState> {
28
36
  };
29
37
  }>;
30
38
  static propTypes: {
39
+ 'aria-describedby': PropTypes.Requireable<string>;
40
+ 'aria-errormessage': PropTypes.Requireable<string>;
41
+ 'aria-invalid': PropTypes.Requireable<boolean>;
42
+ 'aria-labelledby': PropTypes.Requireable<string>;
43
+ 'aria-required': PropTypes.Requireable<boolean>;
31
44
  checked: PropTypes.Requireable<boolean>;
32
45
  defaultChecked: PropTypes.Requireable<boolean>;
33
46
  disabled: PropTypes.Requireable<boolean>;
@@ -40,6 +53,9 @@ declare class Checkbox extends BaseComponent<CheckboxProps, CheckboxState> {
40
53
  onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
41
54
  onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
42
55
  extra: PropTypes.Requireable<PropTypes.ReactNodeLike>;
56
+ index: PropTypes.Requireable<number>;
57
+ 'aria-label': PropTypes.Requireable<string>;
58
+ tabIndex: PropTypes.Requireable<number>;
43
59
  };
44
60
  static defaultProps: {
45
61
  defaultChecked: boolean;
@@ -50,12 +66,16 @@ declare class Checkbox extends BaseComponent<CheckboxProps, CheckboxState> {
50
66
  };
51
67
  checkboxEntity: CheckboxInner;
52
68
  get adapter(): CheckboxAdapter<CheckboxProps, CheckboxState>;
69
+ foundation: CheckboxFoundation;
70
+ addonId: string;
71
+ extraId: string;
53
72
  constructor(props: CheckboxProps);
54
73
  componentDidUpdate(prevProps: CheckboxProps): void;
55
74
  isInGroup(): any;
56
75
  focus(): void;
57
76
  blur(): void;
58
77
  handleChange: React.MouseEventHandler<HTMLSpanElement>;
78
+ handleEnterPress: (e: React.KeyboardEvent<HTMLSpanElement>) => void;
59
79
  render(): JSX.Element;
60
80
  }
61
81
  export default Checkbox;
@@ -38,6 +38,8 @@ require("@douyinfe/semi-foundation/lib/cjs/checkbox/checkbox.css");
38
38
 
39
39
  var _context2 = require("./context");
40
40
 
41
+ var _uuid = require("@douyinfe/semi-foundation/lib/cjs/utils/uuid");
42
+
41
43
  /* eslint-disable max-len */
42
44
  class Checkbox extends _baseComponent.default {
43
45
  constructor(props) {
@@ -45,11 +47,19 @@ class Checkbox extends _baseComponent.default {
45
47
 
46
48
  this.handleChange = e => this.foundation.handleChange(e);
47
49
 
50
+ this.handleEnterPress = e => this.foundation.handleEnterPress(e);
51
+
48
52
  const checked = false;
49
53
  this.state = {
50
54
  checked: props.checked || props.defaultChecked || checked
51
55
  };
52
56
  this.checkboxEntity = null;
57
+ this.addonId = (0, _uuid.getUuidShort)({
58
+ prefix: 'addon'
59
+ });
60
+ this.extraId = (0, _uuid.getUuidShort)({
61
+ prefix: 'extra'
62
+ });
53
63
  this.foundation = new _checkboxFoundation.default(this.adapter);
54
64
  }
55
65
 
@@ -109,6 +119,8 @@ class Checkbox extends _baseComponent.default {
109
119
  onMouseLeave,
110
120
  extra,
111
121
  value,
122
+ role,
123
+ tabIndex,
112
124
  id
113
125
  } = this.props;
114
126
  const {
@@ -118,8 +130,9 @@ class Checkbox extends _baseComponent.default {
118
130
  checked,
119
131
  disabled
120
132
  };
133
+ const inGroup = this.isInGroup();
121
134
 
122
- if (this.isInGroup()) {
135
+ if (inGroup) {
123
136
  if (this.context.checkboxGroup.value) {
124
137
  var _context;
125
138
 
@@ -155,34 +168,52 @@ class Checkbox extends _baseComponent.default {
155
168
  const extraCls = (0, _classnames.default)("".concat(prefix, "-extra"), {
156
169
  ["".concat(prefix, "-cardType_extra_noChildren")]: props.isCardType && !children
157
170
  });
158
- const name = this.isInGroup() && this.context.checkboxGroup.name;
171
+ const name = inGroup && this.context.checkboxGroup.name;
159
172
 
160
173
  const renderContent = () => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children ? /*#__PURE__*/_react.default.createElement("span", {
174
+ id: this.addonId,
161
175
  className: "".concat(prefix, "-addon")
162
176
  }, children) : null, extra ? /*#__PURE__*/_react.default.createElement("div", {
177
+ id: this.extraId,
163
178
  className: extraCls
164
179
  }, extra) : null);
165
180
 
166
- return /*#__PURE__*/_react.default.createElement("span", {
167
- style: style,
168
- className: wrapper,
169
- id: id,
170
- onMouseEnter: onMouseEnter,
171
- onMouseLeave: onMouseLeave,
172
- onClick: this.handleChange
173
- }, /*#__PURE__*/_react.default.createElement(_checkboxInner.default, (0, _assign.default)({}, this.props, props, {
174
- name: name,
175
- isPureCardType: props.isPureCardType,
176
- ref: ref => {
177
- this.checkboxEntity = ref;
178
- }
179
- })), props.isCardType ? /*#__PURE__*/_react.default.createElement("div", null, renderContent()) : renderContent());
181
+ return (
182
+ /*#__PURE__*/
183
+ // label is better than span, however span is here which is to solve gitlab issue #364
184
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
185
+ _react.default.createElement("span", {
186
+ role: role,
187
+ tabIndex: tabIndex,
188
+ style: style,
189
+ className: wrapper,
190
+ id: id,
191
+ onMouseEnter: onMouseEnter,
192
+ onMouseLeave: onMouseLeave,
193
+ onClick: this.handleChange,
194
+ onKeyPress: this.handleEnterPress,
195
+ "aria-labelledby": this.props['aria-labelledby']
196
+ }, /*#__PURE__*/_react.default.createElement(_checkboxInner.default, (0, _assign.default)({}, this.props, props, {
197
+ addonId: children && this.addonId,
198
+ extraId: extra && this.extraId,
199
+ name: name,
200
+ isPureCardType: props.isPureCardType,
201
+ ref: ref => {
202
+ this.checkboxEntity = ref;
203
+ }
204
+ })), props.isCardType ? /*#__PURE__*/_react.default.createElement("div", null, renderContent()) : renderContent())
205
+ );
180
206
  }
181
207
 
182
208
  }
183
209
 
184
210
  Checkbox.contextType = _context2.Context;
185
211
  Checkbox.propTypes = {
212
+ 'aria-describedby': _propTypes.default.string,
213
+ 'aria-errormessage': _propTypes.default.string,
214
+ 'aria-invalid': _propTypes.default.bool,
215
+ 'aria-labelledby': _propTypes.default.string,
216
+ 'aria-required': _propTypes.default.bool,
186
217
  // Specifies whether it is currently selected
187
218
  checked: _propTypes.default.bool,
188
219
  // Initial check
@@ -199,7 +230,10 @@ Checkbox.propTypes = {
199
230
  prefixCls: _propTypes.default.string,
200
231
  onMouseEnter: _propTypes.default.func,
201
232
  onMouseLeave: _propTypes.default.func,
202
- extra: _propTypes.default.node
233
+ extra: _propTypes.default.node,
234
+ index: _propTypes.default.number,
235
+ 'aria-label': _propTypes.default.string,
236
+ tabIndex: _propTypes.default.number
203
237
  };
204
238
  Checkbox.defaultProps = {
205
239
  defaultChecked: false,
@@ -1,11 +1,16 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { CheckboxGroupAdapter } from '@douyinfe/semi-foundation/lib/cjs/checkbox/checkboxGroupFoundation';
3
+ import CheckboxGroupFoundation, { CheckboxGroupAdapter } from '@douyinfe/semi-foundation/lib/cjs/checkbox/checkboxGroupFoundation';
4
4
  import BaseComponent from '../_base/baseComponent';
5
5
  import { CheckboxEvent } from './checkbox';
6
6
  export declare type CheckboxDirection = 'horizontal' | 'vertical';
7
7
  export declare type CheckboxType = 'default' | 'card' | 'pureCard';
8
8
  export declare type CheckboxGroupProps = {
9
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
10
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
11
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
12
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
13
+ 'aria-required'?: React.AriaAttributes['aria-required'];
9
14
  defaultValue?: any[];
10
15
  disabled?: boolean;
11
16
  name?: string;
@@ -19,12 +24,18 @@ export declare type CheckboxGroupProps = {
19
24
  className?: string;
20
25
  type?: CheckboxType;
21
26
  id?: string;
27
+ 'aria-label'?: React.AriaAttributes['aria-label'];
22
28
  };
23
29
  export declare type CheckboxGroupState = {
24
30
  value?: any[];
25
31
  };
26
32
  declare class CheckboxGroup extends BaseComponent<CheckboxGroupProps, CheckboxGroupState> {
27
33
  static propTypes: {
34
+ 'aria-describedby': PropTypes.Requireable<string>;
35
+ 'aria-errormessage': PropTypes.Requireable<string>;
36
+ 'aria-invalid': PropTypes.Requireable<boolean>;
37
+ 'aria-labelledby': PropTypes.Requireable<string>;
38
+ 'aria-required': PropTypes.Requireable<boolean>;
28
39
  defaultValue: PropTypes.Requireable<any[]>;
29
40
  disabled: PropTypes.Requireable<boolean>;
30
41
  name: PropTypes.Requireable<string>;
@@ -40,6 +51,7 @@ declare class CheckboxGroup extends BaseComponent<CheckboxGroupProps, CheckboxGr
40
51
  };
41
52
  static defaultProps: Partial<CheckboxGroupProps>;
42
53
  get adapter(): CheckboxGroupAdapter;
54
+ foundation: CheckboxGroupFoundation;
43
55
  constructor(props: CheckboxGroupProps);
44
56
  componentDidMount(): void;
45
57
  componentDidUpdate(prevProps: CheckboxGroupProps): void;