@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
@@ -10,9 +10,15 @@ import { Locale } from '../locale/interface';
10
10
  import { RangeType } from '@douyinfe/semi-foundation/lib/es/datePicker/inputFoundation';
11
11
  import { TimePickerProps } from '../timePicker/TimePicker';
12
12
  export interface DatePickerProps extends DatePickerFoundationProps {
13
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
14
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
15
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
16
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
17
+ 'aria-required'?: React.AriaAttributes['aria-required'];
13
18
  timePickerOpts?: TimePickerProps;
14
19
  bottomSlot?: React.ReactNode;
15
20
  insetLabel?: React.ReactNode;
21
+ insetLabelId?: string;
16
22
  prefix?: React.ReactNode;
17
23
  topSlot?: React.ReactNode;
18
24
  renderDate?: (dayNumber?: number, fullDate?: string) => React.ReactNode;
@@ -29,6 +35,11 @@ export declare type DatePickerState = DatePickerFoundationState;
29
35
  export default class DatePicker extends BaseComponent<DatePickerProps, DatePickerState> {
30
36
  static contextType: React.Context<import("../configProvider/context").ContextValue>;
31
37
  static propTypes: {
38
+ 'aria-describedby': PropTypes.Requireable<string>;
39
+ 'aria-errormessage': PropTypes.Requireable<string>;
40
+ 'aria-invalid': PropTypes.Requireable<boolean>;
41
+ 'aria-labelledby': PropTypes.Requireable<string>;
42
+ 'aria-required': PropTypes.Requireable<boolean>;
32
43
  type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
33
44
  size: PropTypes.Requireable<"default" | "small" | "large">;
34
45
  density: PropTypes.Requireable<"default" | "compact">;
@@ -58,6 +69,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
58
69
  prefixCls: PropTypes.Requireable<string>;
59
70
  prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
60
71
  insetLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
72
+ insetLabelId: PropTypes.Requireable<string>;
61
73
  zIndex: PropTypes.Requireable<number>;
62
74
  position: PropTypes.Requireable<"top" | "topLeft" | "topRight" | "left" | "leftTop" | "leftBottom" | "right" | "rightTop" | "rightBottom" | "bottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver">;
63
75
  getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
@@ -508,6 +508,7 @@ export default class DatePicker extends BaseComponent {
508
508
  disabled,
509
509
  showClear,
510
510
  insetLabel,
511
+ insetLabelId,
511
512
  placeholder,
512
513
  validateStatus,
513
514
  inputStyle,
@@ -548,6 +549,7 @@ export default class DatePicker extends BaseComponent {
548
549
  inputStyle,
549
550
  showClear,
550
551
  insetLabel,
552
+ insetLabelId,
551
553
  type,
552
554
  format,
553
555
  multiple,
@@ -591,7 +593,12 @@ export default class DatePicker extends BaseComponent {
591
593
  className: classnames(className, {
592
594
  [prefixCls]: true
593
595
  }),
594
- ref: this.setTriggerRef
596
+ ref: this.setTriggerRef,
597
+ 'aria-invalid': this.props['aria-invalid'],
598
+ 'aria-errormessage': this.props['aria-errormessage'],
599
+ 'aria-labelledby': this.props['aria-labelledby'],
600
+ 'aria-describedby': this.props['aria-describedby'],
601
+ 'aria-required': this.props['aria-required']
595
602
  };
596
603
  const inner = this.renderInner();
597
604
  const wrappedInner = this.wrapPopover(inner);
@@ -601,6 +608,11 @@ export default class DatePicker extends BaseComponent {
601
608
  }
602
609
  DatePicker.contextType = ConfigContext;
603
610
  DatePicker.propTypes = {
611
+ 'aria-describedby': PropTypes.string,
612
+ 'aria-errormessage': PropTypes.string,
613
+ 'aria-invalid': PropTypes.bool,
614
+ 'aria-labelledby': PropTypes.string,
615
+ 'aria-required': PropTypes.bool,
604
616
  type: PropTypes.oneOf(strings.TYPE_SET),
605
617
  size: PropTypes.oneOf(strings.SIZE_SET),
606
618
  density: PropTypes.oneOf(strings.DENSITY_SET),
@@ -630,6 +642,7 @@ DatePicker.propTypes = {
630
642
  prefixCls: PropTypes.string,
631
643
  prefix: PropTypes.node,
632
644
  insetLabel: PropTypes.node,
645
+ insetLabelId: PropTypes.string,
633
646
  zIndex: PropTypes.number,
634
647
  position: PropTypes.oneOf(popoverStrings.POSITION_SET),
635
648
  getPopupContainer: PropTypes.func,
@@ -73,7 +73,9 @@ class DropdownItem extends BaseComponent {
73
73
  }, icon);
74
74
  }
75
75
 
76
- return /*#__PURE__*/React.createElement("li", _Object$assign({}, events, {
76
+ return /*#__PURE__*/React.createElement("li", _Object$assign({
77
+ role: "menuitem"
78
+ }, events, {
77
79
  ref: ref => forwardRef(ref),
78
80
  className: itemclass,
79
81
  style: style
@@ -30,7 +30,10 @@ class DropdownMenu extends BaseComponent {
30
30
  } = _a,
31
31
  rest = __rest(_a, ["children", "className", "style"]);
32
32
 
33
- return /*#__PURE__*/React.createElement("ul", _Object$assign({}, rest, {
33
+ return /*#__PURE__*/React.createElement("ul", _Object$assign({
34
+ role: "menu",
35
+ "aria-orientation": "vertical"
36
+ }, rest, {
34
37
  className: classnames("".concat(prefixCls, "-menu"), className),
35
38
  style: style
36
39
  }), children);
@@ -98,7 +98,8 @@ export default class Empty extends BaseComponent {
98
98
  };
99
99
  return /*#__PURE__*/React.createElement("div", {
100
100
  className: wrapperCls,
101
- style: style
101
+ style: style,
102
+ "aria-label": "empty placeholder image"
102
103
  }, /*#__PURE__*/React.createElement("div", {
103
104
  className: "".concat(prefixCls, "-image"),
104
105
  style: imageStyle
@@ -13,6 +13,7 @@ interface BaseFormState {
13
13
  }
14
14
  declare class Form extends BaseComponent<BaseFormProps, BaseFormState> {
15
15
  static propTypes: {
16
+ 'aria-label': PropTypes.Requireable<string>;
16
17
  onSubmit: PropTypes.Requireable<(...args: any[]) => any>;
17
18
  onSubmitFail: PropTypes.Requireable<(...args: any[]) => any>;
18
19
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
@@ -36,6 +37,7 @@ declare class Form extends BaseComponent<BaseFormProps, BaseFormState> {
36
37
  disabled: PropTypes.Requireable<boolean>;
37
38
  showValidateIcon: PropTypes.Requireable<boolean>;
38
39
  extraTextPosition: PropTypes.Requireable<string>;
40
+ id: PropTypes.Requireable<string>;
39
41
  };
40
42
  static defaultProps: {
41
43
  onChange: (...args: any[]) => void;
@@ -53,8 +55,14 @@ declare class Form extends BaseComponent<BaseFormProps, BaseFormState> {
53
55
  static TextArea: React.ComponentType<import("utility-types").Subtract<Omit<import("../input").TextAreaProps, "forwardRef"> & React.RefAttributes<HTMLTextAreaElement>, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
54
56
  static InputNumber: React.ComponentType<import("utility-types").Subtract<import("../inputNumber").InputNumberProps & React.RefAttributes<HTMLInputElement>, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
55
57
  static Select: React.ComponentType<import("utility-types").Subtract<{
58
+ 'aria-describedby'?: string;
59
+ 'aria-errormessage'?: string;
60
+ 'aria-invalid'?: boolean | "true" | "false" | "grammar" | "spelling";
61
+ 'aria-labelledby'?: string;
62
+ 'aria-required'?: boolean | "true" | "false";
56
63
  id?: string;
57
64
  autoFocus?: boolean;
65
+ autoClearSearchValue?: boolean;
58
66
  arrowIcon?: React.ReactNode;
59
67
  defaultValue?: string | number | any[] | Record<string, any>;
60
68
  value?: string | number | any[] | Record<string, any>;
@@ -90,6 +98,7 @@ declare class Form extends BaseComponent<BaseFormProps, BaseFormState> {
90
98
  suffix?: React.ReactNode;
91
99
  prefix?: React.ReactNode;
92
100
  insetLabel?: React.ReactNode;
101
+ insetLabelId?: string;
93
102
  inputProps?: import("utility-types").Subtract<import("../input").InputProps, {
94
103
  value?: React.ReactText;
95
104
  onFocus?: (e: React.FocusEvent<HTMLInputElement, Element>) => void;
@@ -220,6 +220,7 @@ class Form extends BaseComponent {
220
220
  }
221
221
 
222
222
  Form.propTypes = {
223
+ 'aria-label': PropTypes.string,
223
224
  onSubmit: PropTypes.func,
224
225
  onSubmitFail: PropTypes.func,
225
226
 
@@ -245,7 +246,8 @@ Form.propTypes = {
245
246
  autoScrollToError: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),
246
247
  disabled: PropTypes.bool,
247
248
  showValidateIcon: PropTypes.bool,
248
- extraTextPosition: PropTypes.oneOf(strings.EXTRA_POS)
249
+ extraTextPosition: PropTypes.oneOf(strings.EXTRA_POS),
250
+ id: PropTypes.string
249
251
  };
250
252
  Form.defaultProps = {
251
253
  onChange: _noop,
@@ -9,6 +9,8 @@ export interface ErrorMessageProps {
9
9
  validateStatus?: string;
10
10
  helpText?: React.ReactNode;
11
11
  isInInputGroup?: boolean;
12
+ errorMessageId?: string;
13
+ helpTextId?: string;
12
14
  }
13
15
  export default class ErrorMessage extends PureComponent<ErrorMessageProps> {
14
16
  static propTypes: {
@@ -19,6 +21,8 @@ export default class ErrorMessage extends PureComponent<ErrorMessageProps> {
19
21
  showValidateIcon: PropTypes.Requireable<boolean>;
20
22
  helpText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
21
23
  isInInputGroup: PropTypes.Requireable<boolean>;
24
+ errorMessageId: PropTypes.Requireable<string>;
25
+ helpTextId: PropTypes.Requireable<string>;
22
26
  };
23
27
  generatorText(error: ReactFieldError): JSX.Element;
24
28
  render(): JSX.Element;
@@ -10,12 +10,27 @@ import { IconAlertTriangle, IconAlertCircle } from '@douyinfe/semi-icons';
10
10
  const prefix = cssClasses.PREFIX;
11
11
  export default class ErrorMessage extends PureComponent {
12
12
  generatorText(error) {
13
+ const {
14
+ helpTextId,
15
+ errorMessageId
16
+ } = this.props;
17
+ const propsError = this.props.error;
18
+ let id = errorMessageId;
19
+
20
+ if (!propsError) {
21
+ id = helpTextId;
22
+ }
23
+
13
24
  if (typeof error === 'string') {
14
- return /*#__PURE__*/React.createElement("span", null, error);
25
+ return /*#__PURE__*/React.createElement("span", {
26
+ id: id
27
+ }, error);
15
28
  } else if (_Array$isArray(error)) {
16
29
  const err = _filterInstanceProperty(error).call(error, e => e);
17
30
 
18
- return err.length ? /*#__PURE__*/React.createElement("span", null, err.join(', ')) : null;
31
+ return err.length ? /*#__PURE__*/React.createElement("span", {
32
+ id: id
33
+ }, err.join(', ')) : null;
19
34
  } else if ( /*#__PURE__*/React.isValidElement(error)) {
20
35
  return error;
21
36
  }
@@ -76,5 +91,8 @@ ErrorMessage.propTypes = {
76
91
  validateStatus: PropTypes.string,
77
92
  showValidateIcon: PropTypes.bool,
78
93
  helpText: PropTypes.node,
79
- isInInputGroup: PropTypes.bool
94
+ isInInputGroup: PropTypes.bool,
95
+ // internal props
96
+ errorMessageId: PropTypes.string,
97
+ helpTextId: PropTypes.string
80
98
  };
@@ -3,8 +3,14 @@ declare const FormInput: import("react").ComponentType<import("utility-types").S
3
3
  declare const FormInputNumber: import("react").ComponentType<import("utility-types").Subtract<import("../inputNumber/index").InputNumberProps & import("react").RefAttributes<HTMLInputElement>, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
4
4
  declare const FormTextArea: import("react").ComponentType<import("utility-types").Subtract<Omit<import("../input/textarea").TextAreaProps, "forwardRef"> & import("react").RefAttributes<HTMLTextAreaElement>, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
5
5
  declare const FormSelect: import("react").ComponentType<import("utility-types").Subtract<{
6
+ 'aria-describedby'?: string;
7
+ 'aria-errormessage'?: string;
8
+ 'aria-invalid'?: boolean | "true" | "false" | "grammar" | "spelling";
9
+ 'aria-labelledby'?: string;
10
+ 'aria-required'?: boolean | "true" | "false";
6
11
  id?: string;
7
12
  autoFocus?: boolean;
13
+ autoClearSearchValue?: boolean;
8
14
  arrowIcon?: import("react").ReactNode;
9
15
  defaultValue?: string | number | any[] | Record<string, any>;
10
16
  value?: string | number | any[] | Record<string, any>;
@@ -40,6 +46,7 @@ declare const FormSelect: import("react").ComponentType<import("utility-types").
40
46
  suffix?: import("react").ReactNode;
41
47
  prefix?: import("react").ReactNode;
42
48
  insetLabel?: import("react").ReactNode;
49
+ insetLabelId?: string;
43
50
  inputProps?: import("utility-types").Subtract<import("../input/index").InputProps, {
44
51
  value?: import("react").ReactText;
45
52
  onFocus?: (e: import("react").FocusEvent<HTMLInputElement, Element>) => void;
@@ -60,6 +60,7 @@ function withField(Component, opts) {
60
60
  extraText,
61
61
  extraTextPosition,
62
62
  pure,
63
+ id,
63
64
  rest
64
65
  } = mergeProps(props);
65
66
  let {
@@ -396,27 +397,62 @@ function withField(Component, opts) {
396
397
  let mergeLabelAlign = labelAlign || formProps.labelAlign;
397
398
  let mergeLabelCol = labelCol || formProps.labelCol;
398
399
  let mergeWrapperCol = wrapperCol || formProps.wrapperCol;
399
- let mergeExtraPos = extraTextPosition || formProps.extraTextPosition || 'bottom';
400
+ let mergeExtraPos = extraTextPosition || formProps.extraTextPosition || 'bottom'; // id attribute to improve a11y
401
+
402
+ const a11yId = id ? id : field;
403
+ const labelId = "".concat(a11yId, "-label");
404
+ const helpTextId = "".concat(a11yId, "-helpText");
405
+ const extraTextId = "".concat(a11yId, "-extraText");
406
+ const errorMessageId = "".concat(a11yId, "-errormessage");
400
407
 
401
408
  let FieldComponent = (() => {
402
- var _context, _context3;
409
+ var _context3, _context5;
403
410
 
404
411
  // prefer to use validateStatus which pass by user throught props
405
412
  let blockStatus = validateStatus ? validateStatus : status;
413
+ const extraCls = classNames("".concat(prefix, "-field-extra"), {
414
+ ["".concat(prefix, "-field-extra-string")]: typeof extraText === 'string',
415
+ ["".concat(prefix, "-field-extra-middle")]: mergeExtraPos === 'middle',
416
+ ["".concat(prefix, "-field-extra-botttom")]: mergeExtraPos === 'bottom'
417
+ });
418
+ const extraContent = extraText ? /*#__PURE__*/React.createElement("div", {
419
+ className: extraCls,
420
+ id: extraTextId
421
+ }, extraText) : null;
406
422
 
407
423
  let newProps = _Object$assign(_Object$assign({
424
+ id: a11yId,
408
425
  disabled: formProps.disabled
409
426
  }, rest), {
410
427
  ref,
411
428
  onBlur: handleBlur,
412
429
  [options.onKeyChangeFnName]: handleChange,
413
430
  [options.valueKey]: value,
414
- validateStatus: blockStatus
431
+ validateStatus: blockStatus,
432
+ 'aria-required': required,
433
+ 'aria-labelledby': labelId
415
434
  });
416
435
 
436
+ if (helpText) {
437
+ var _context;
438
+
439
+ newProps['aria-describedby'] = extraText ? _concatInstanceProperty(_context = "".concat(helpTextId, " ")).call(_context, extraTextId) : helpTextId;
440
+ }
441
+
442
+ if (extraText) {
443
+ var _context2;
444
+
445
+ newProps['aria-describedby'] = helpText ? _concatInstanceProperty(_context2 = "".concat(helpTextId, " ")).call(_context2, extraTextId) : extraTextId;
446
+ }
447
+
448
+ if (status === 'error') {
449
+ newProps['aria-errormessage'] = errorMessageId;
450
+ newProps['aria-invalid'] = true;
451
+ }
452
+
417
453
  const fieldCls = classNames({
418
454
  ["".concat(prefix, "-field")]: true,
419
- [_concatInstanceProperty(_context = "".concat(prefix, "-field-")).call(_context, name)]: Boolean(name),
455
+ [_concatInstanceProperty(_context3 = "".concat(prefix, "-field-")).call(_context3, name)]: Boolean(name),
420
456
  [fieldClassName]: Boolean(fieldClassName)
421
457
  });
422
458
  const fieldMaincls = classNames({
@@ -425,9 +461,11 @@ function withField(Component, opts) {
425
461
 
426
462
  if (mergeLabelPos === 'inset' && !noLabel) {
427
463
  newProps.insetLabel = label || field;
464
+ newProps.insetLabelId = labelId;
428
465
 
429
466
  if (typeof label === 'object' && !isElement(label)) {
430
467
  newProps.insetLabel = label.text;
468
+ newProps.insetLabelId = labelId;
431
469
  }
432
470
  }
433
471
 
@@ -438,11 +476,11 @@ function withField(Component, opts) {
438
476
  }
439
477
 
440
478
  if (pure) {
441
- var _context2;
479
+ var _context4;
442
480
 
443
481
  let pureCls = classNames(rest.className, {
444
482
  ["".concat(prefix, "-field-pure")]: true,
445
- [_concatInstanceProperty(_context2 = "".concat(prefix, "-field-")).call(_context2, name)]: Boolean(name),
483
+ [_concatInstanceProperty(_context4 = "".concat(prefix, "-field-")).call(_context4, name)]: Boolean(name),
446
484
  [fieldClassName]: Boolean(fieldClassName)
447
485
  });
448
486
  newProps.className = pureCls;
@@ -450,7 +488,7 @@ function withField(Component, opts) {
450
488
  }
451
489
 
452
490
  let withCol = mergeLabelCol && mergeWrapperCol;
453
- const labelColCls = mergeLabelAlign ? _concatInstanceProperty(_context3 = "".concat(prefix, "-col-")).call(_context3, mergeLabelAlign) : ''; // get label
491
+ const labelColCls = mergeLabelAlign ? _concatInstanceProperty(_context5 = "".concat(prefix, "-col-")).call(_context5, mergeLabelAlign) : ''; // get label
454
492
 
455
493
  let labelContent = null;
456
494
 
@@ -458,6 +496,7 @@ function withField(Component, opts) {
458
496
  let needSpread = typeof label === 'object' && !isElement(label) ? label : {};
459
497
  labelContent = /*#__PURE__*/React.createElement(Label, _Object$assign({
460
498
  text: label || field,
499
+ id: labelId,
461
500
  required: required,
462
501
  name: name || field,
463
502
  width: mergeLabelWidth,
@@ -465,20 +504,14 @@ function withField(Component, opts) {
465
504
  }, needSpread));
466
505
  }
467
506
 
468
- const extraCls = classNames("".concat(prefix, "-field-extra"), {
469
- ["".concat(prefix, "-field-extra-string")]: typeof extraText === 'string',
470
- ["".concat(prefix, "-field-extra-middle")]: mergeExtraPos === 'middle',
471
- ["".concat(prefix, "-field-extra-botttom")]: mergeExtraPos === 'bottom'
472
- });
473
- const extraContent = extraText ? /*#__PURE__*/React.createElement("div", {
474
- className: extraCls
475
- }, extraText) : null;
476
507
  const fieldMainContent = /*#__PURE__*/React.createElement("div", {
477
508
  className: fieldMaincls
478
509
  }, mergeExtraPos === 'middle' ? extraContent : null, com, !noErrorMessage ? /*#__PURE__*/React.createElement(ErrorMessage, {
479
510
  error: error,
480
511
  validateStatus: blockStatus,
481
512
  helpText: helpText,
513
+ helpTextId: helpTextId,
514
+ errorMessageId: errorMessageId,
482
515
  showValidateIcon: formProps.showValidateIcon
483
516
  }) : null, mergeExtraPos === 'bottom' ? extraContent : null);
484
517
  const withColContent = /*#__PURE__*/React.createElement(React.Fragment, null, mergeLabelPos === 'top' ? /*#__PURE__*/React.createElement("div", {
@@ -11,7 +11,6 @@ import { useFormApi, useFormState, useFieldState, useFieldApi } from './hooks/in
11
11
  import withField from './hoc/withField';
12
12
  import withFormState from './hoc/withFormState';
13
13
  import withFormApi from './hoc/withFormApi';
14
- export * from './interface';
15
14
  export { Form, ArrayField, withField, useFormApi, useFormState, useFieldApi, useFieldState, withFormState, withFormApi };
16
15
  export * from './interface';
17
16
  export { ArrayFieldProps } from './arrayField';
@@ -14,6 +14,5 @@ import { useFormApi, useFormState, useFieldState, useFieldApi } from './hooks/in
14
14
  import withField from './hoc/withField';
15
15
  import withFormState from './hoc/withFormState';
16
16
  import withFormApi from './hoc/withFormApi';
17
- export * from './interface';
18
17
  export { Form, ArrayField, withField, useFormApi, useFormState, useFieldApi, useFieldState, withFormState, withFormApi };
19
18
  export * from './interface';
@@ -82,6 +82,7 @@ export interface FormFCChild<K extends Record<string, any> = any> {
82
82
  formApi: FormApi<K>;
83
83
  }
84
84
  export interface BaseFormProps {
85
+ 'aria-label'?: React.AriaAttributes['aria-label'];
85
86
  onSubmit?: (values: Record<string, any>) => void;
86
87
  onSubmitFail?: (errors: Record<string, FieldError>, values: any) => void;
87
88
  onReset?: () => void;
@@ -90,6 +91,7 @@ export interface BaseFormProps {
90
91
  validateFields?: (values: Record<string, any>) => string | Record<string, any>;
91
92
  /** Use this if you want to populate the form with initial values. */
92
93
  initValues?: Record<string, any>;
94
+ id?: string;
93
95
  /** getFormApi will be call once when Form mounted, u can save formApi reference in your component */
94
96
  getFormApi?: (formApi: FormApi) => void;
95
97
  style?: React.CSSProperties;
@@ -1,6 +1,7 @@
1
1
  import React, { PureComponent } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  export interface LabelProps {
4
+ id?: string;
4
5
  /** Whether to display the required * symbol */
5
6
  required?: boolean;
6
7
  /** Content of label */
@@ -24,6 +25,7 @@ export default class Label extends PureComponent<LabelProps> {
24
25
  className: string;
25
26
  };
26
27
  static propTypes: {
28
+ id: PropTypes.Requireable<string>;
27
29
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
28
30
  required: PropTypes.Requireable<boolean>;
29
31
  text: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -15,7 +15,8 @@ export default class Label extends PureComponent {
15
15
  align,
16
16
  style,
17
17
  className,
18
- extra
18
+ extra,
19
+ id
19
20
  } = this.props;
20
21
  const labelCls = classNames(className, {
21
22
  ["".concat(prefixCls, "-field-label")]: true,
@@ -36,7 +37,8 @@ export default class Label extends PureComponent {
36
37
  return /*#__PURE__*/React.createElement("label", {
37
38
  className: labelCls,
38
39
  htmlFor: name,
39
- style: labelStyle
40
+ style: labelStyle,
41
+ id: id
40
42
  }, extra ? contentWithExtra : textContent);
41
43
  }
42
44
 
@@ -48,6 +50,7 @@ Label.defaultProps = {
48
50
  className: ''
49
51
  };
50
52
  Label.propTypes = {
53
+ id: PropTypes.string,
51
54
  children: PropTypes.node,
52
55
  required: PropTypes.bool,
53
56
  text: PropTypes.node,
@@ -9,6 +9,12 @@ export declare type InputSize = 'small' | 'large' | 'default';
9
9
  export declare type InputMode = 'password';
10
10
  export declare type ValidateStatus = "default" | "error" | "warning" | "success";
11
11
  export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'prefix' | 'size' | 'autoFocus' | 'placeholder' | 'onFocus' | 'onBlur'> {
12
+ 'aria-label'?: React.AriaAttributes['aria-label'];
13
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
14
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
15
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
16
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
17
+ 'aria-required'?: React.AriaAttributes['aria-required'];
12
18
  addonBefore?: React.ReactNode;
13
19
  addonAfter?: React.ReactNode;
14
20
  prefix?: React.ReactNode;
@@ -24,6 +30,7 @@ export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElem
24
30
  hideSuffix?: boolean;
25
31
  placeholder?: React.ReactText;
26
32
  insetLabel?: React.ReactNode;
33
+ insetLabelId?: string;
27
34
  size?: InputSize;
28
35
  className?: string;
29
36
  style?: React.CSSProperties;
@@ -54,6 +61,12 @@ export interface InputState {
54
61
  }
55
62
  declare class Input extends BaseComponent<InputProps, InputState> {
56
63
  static propTypes: {
64
+ 'aria-label': PropTypes.Requireable<string>;
65
+ 'aria-labelledby': PropTypes.Requireable<string>;
66
+ 'aria-invalid': PropTypes.Requireable<boolean>;
67
+ 'aria-errormessage': PropTypes.Requireable<string>;
68
+ 'aria-describedby': PropTypes.Requireable<string>;
69
+ 'aria-required': PropTypes.Requireable<boolean>;
57
70
  addonBefore: PropTypes.Requireable<PropTypes.ReactNodeLike>;
58
71
  addonAfter: PropTypes.Requireable<PropTypes.ReactNodeLike>;
59
72
  prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -82,6 +95,7 @@ declare class Input extends BaseComponent<InputProps, InputState> {
82
95
  onKeyPress: PropTypes.Requireable<(...args: any[]) => any>;
83
96
  onEnterPress: PropTypes.Requireable<(...args: any[]) => any>;
84
97
  insetLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
98
+ insetLabelId: PropTypes.Requireable<string>;
85
99
  inputStyle: PropTypes.Requireable<object>;
86
100
  getValueLength: PropTypes.Requireable<(...args: any[]) => any>;
87
101
  };
@@ -147,6 +161,7 @@ declare class Input extends BaseComponent<InputProps, InputState> {
147
161
  static getDerivedStateFromProps(props: InputProps, state: InputState): Partial<InputState>;
148
162
  componentDidUpdate(prevProps: InputProps): void;
149
163
  handleClear: (e: React.MouseEvent<HTMLInputElement>) => void;
164
+ handleClearEnterPress: (e: React.KeyboardEvent<HTMLDivElement>) => void;
150
165
  handleClick: (e: React.MouseEvent<HTMLDivElement>) => void;
151
166
  handleMouseOver: (e: React.MouseEvent<HTMLDivElement>) => void;
152
167
  handleMouseLeave: (e: React.MouseEvent<HTMLDivElement>) => void;
@@ -154,6 +169,7 @@ declare class Input extends BaseComponent<InputProps, InputState> {
154
169
  handleClickEye: (e: React.MouseEvent<HTMLInputElement>) => void;
155
170
  handleMouseDown: (e: React.MouseEvent<HTMLInputElement>) => void;
156
171
  handleMouseUp: (e: React.MouseEvent<HTMLInputElement>) => void;
172
+ handleModeEnterPress: (e: React.KeyboardEvent<HTMLDivElement>) => void;
157
173
  handleClickPrefixOrSuffix: (e: React.MouseEvent<HTMLInputElement>) => void;
158
174
  handlePreventMouseDown: (e: React.MouseEvent<HTMLInputElement>) => void;
159
175
  renderPrepend(): JSX.Element;