@douyinfe/semi-ui 2.2.0 → 2.3.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.
- package/_base/_story/a11y.jsx +6 -6
- package/_base/_story/a11y.scss +0 -1
- package/_base/_story/index.scss +2 -5
- package/_utils/hooks/usePrevFocus.ts +16 -0
- package/_utils/index.ts +4 -0
- package/anchor/_story/anchor.stories.js +1 -1
- package/anchor/index.tsx +5 -2
- package/anchor/link.tsx +29 -4
- package/autoComplete/index.tsx +28 -1
- package/avatar/_story/avatar.stories.js +4 -4
- package/avatar/index.tsx +6 -4
- package/banner/index.tsx +2 -1
- package/breadcrumb/_story/breadcrumb.stories.js +22 -8
- package/breadcrumb/index.tsx +8 -1
- package/breadcrumb/item.tsx +1 -1
- package/button/Button.tsx +4 -0
- package/button/__test__/button.test.js +1 -1
- package/button/_story/button.stories.js +10 -10
- package/button/buttonGroup.tsx +4 -2
- package/button/splitButtonGroup.tsx +5 -2
- package/card/_story/card.stories.js +8 -1
- package/card/_story/card.stories.tsx +3 -0
- package/card/index.tsx +5 -2
- package/cascader/index.tsx +33 -5
- package/checkbox/_story/checkbox.stories.js +19 -12
- package/checkbox/checkbox.tsx +40 -5
- package/checkbox/checkboxGroup.tsx +30 -5
- package/checkbox/checkboxInner.tsx +25 -2
- package/collapse/index.tsx +1 -1
- package/collapse/item.tsx +12 -7
- package/collapsible/index.tsx +4 -2
- package/configProvider/_story/configProvider.stories.tsx +27 -0
- package/datePicker/__test__/datePicker.test.js +108 -0
- package/datePicker/_story/datePicker.stories.js +146 -2
- package/datePicker/datePicker.tsx +24 -0
- package/datePicker/monthsGrid.tsx +2 -1
- package/dist/css/semi.css +34 -7
- package/dist/css/semi.min.css +1 -1
- package/dist/umd/semi-ui.js +2768 -1501
- package/dist/umd/semi-ui.js.map +1 -1
- package/dist/umd/semi-ui.min.js +1 -1
- package/dist/umd/semi-ui.min.js.map +1 -1
- package/dropdown/dropdownItem.tsx +1 -1
- package/dropdown/dropdownMenu.tsx +1 -1
- package/empty/index.tsx +4 -4
- package/form/_story/FormApi/formApiDemo.jsx +3 -2
- package/form/_story/Validate/validateDemo.jsx +1 -1
- package/form/_story/demo.jsx +12 -3
- package/form/_story/form.stories.js +0 -7
- package/form/baseForm.tsx +2 -0
- package/form/errorMessage.tsx +13 -2
- package/form/hoc/withField.tsx +37 -8
- package/form/index.tsx +0 -2
- package/form/interface.ts +2 -0
- package/form/label.tsx +4 -2
- package/input/index.tsx +49 -4
- package/input/inputGroup.tsx +9 -4
- package/input/textarea.tsx +25 -6
- package/inputNumber/_story/inputNumber.stories.js +12 -0
- package/inputNumber/index.tsx +33 -2
- package/layout/Sider.tsx +6 -2
- package/layout/index.tsx +4 -3
- package/lib/cjs/_utils/hooks/usePrevFocus.d.ts +2 -0
- package/lib/cjs/_utils/hooks/usePrevFocus.js +30 -0
- package/lib/cjs/_utils/index.d.ts +1 -0
- package/lib/cjs/_utils/index.js +6 -1
- package/lib/cjs/anchor/index.d.ts +2 -0
- package/lib/cjs/anchor/index.js +6 -1
- package/lib/cjs/anchor/link.d.ts +4 -1
- package/lib/cjs/anchor/link.js +39 -5
- package/lib/cjs/autoComplete/index.d.ts +17 -0
- package/lib/cjs/autoComplete/index.js +21 -2
- package/lib/cjs/avatar/index.d.ts +4 -3
- package/lib/cjs/avatar/index.js +15 -11
- package/lib/cjs/banner/index.js +4 -2
- package/lib/cjs/breadcrumb/index.d.ts +3 -0
- package/lib/cjs/breadcrumb/index.js +10 -4
- package/lib/cjs/breadcrumb/item.js +2 -2
- package/lib/cjs/button/Button.d.ts +2 -0
- package/lib/cjs/button/Button.js +4 -2
- package/lib/cjs/button/buttonGroup.d.ts +3 -0
- package/lib/cjs/button/buttonGroup.js +8 -4
- package/lib/cjs/button/index.d.ts +1 -0
- package/lib/cjs/button/splitButtonGroup.d.ts +3 -0
- package/lib/cjs/button/splitButtonGroup.js +5 -2
- package/lib/cjs/card/index.d.ts +3 -0
- package/lib/cjs/card/index.js +3 -1
- package/lib/cjs/cascader/index.d.ts +14 -0
- package/lib/cjs/cascader/index.js +35 -7
- package/lib/cjs/checkbox/checkbox.d.ts +21 -1
- package/lib/cjs/checkbox/checkbox.js +51 -17
- package/lib/cjs/checkbox/checkboxGroup.d.ts +13 -1
- package/lib/cjs/checkbox/checkboxGroup.js +16 -3
- package/lib/cjs/checkbox/checkboxInner.d.ts +15 -0
- package/lib/cjs/checkbox/checkboxInner.js +20 -3
- package/lib/cjs/collapse/item.d.ts +2 -1
- package/lib/cjs/collapse/item.js +12 -2
- package/lib/cjs/collapsible/index.d.ts +1 -0
- package/lib/cjs/collapsible/index.js +4 -2
- package/lib/cjs/datePicker/datePicker.d.ts +12 -0
- package/lib/cjs/datePicker/datePicker.js +22 -3
- package/lib/cjs/datePicker/monthsGrid.d.ts +1 -0
- package/lib/cjs/datePicker/monthsGrid.js +2 -1
- package/lib/cjs/dropdown/dropdownItem.js +3 -1
- package/lib/cjs/dropdown/dropdownMenu.js +4 -1
- package/lib/cjs/form/baseForm.d.ts +9 -0
- package/lib/cjs/form/baseForm.js +3 -1
- package/lib/cjs/form/errorMessage.d.ts +4 -0
- package/lib/cjs/form/errorMessage.js +21 -3
- package/lib/cjs/form/field.d.ts +7 -0
- package/lib/cjs/form/hoc/withField.js +49 -16
- package/lib/cjs/form/index.d.ts +0 -1
- package/lib/cjs/form/interface.d.ts +2 -0
- package/lib/cjs/form/label.d.ts +2 -0
- package/lib/cjs/form/label.js +5 -2
- package/lib/cjs/input/index.d.ts +16 -0
- package/lib/cjs/input/index.js +51 -15
- package/lib/cjs/input/inputGroup.d.ts +2 -1
- package/lib/cjs/input/inputGroup.js +11 -1
- package/lib/cjs/input/textarea.js +12 -1
- package/lib/cjs/inputNumber/index.d.ts +21 -12
- package/lib/cjs/inputNumber/index.js +37 -3
- package/lib/cjs/layout/Sider.d.ts +4 -0
- package/lib/cjs/layout/Sider.js +4 -1
- package/lib/cjs/layout/index.js +2 -0
- package/lib/cjs/list/item.js +0 -1
- package/lib/cjs/modal/Modal.js +2 -0
- package/lib/cjs/modal/ModalContent.d.ts +3 -1
- package/lib/cjs/modal/ModalContent.js +47 -5
- package/lib/cjs/navigation/Item.d.ts +4 -2
- package/lib/cjs/navigation/Item.js +25 -5
- package/lib/cjs/navigation/SubNav.d.ts +4 -2
- package/lib/cjs/navigation/SubNav.js +8 -1
- package/lib/cjs/navigation/index.js +2 -0
- package/lib/cjs/notification/notice.d.ts +1 -1
- package/lib/cjs/notification/notice.js +32 -22
- package/lib/cjs/pagination/index.js +16 -6
- package/lib/cjs/popover/index.js +7 -3
- package/lib/cjs/progress/index.d.ts +8 -0
- package/lib/cjs/progress/index.js +42 -9
- package/lib/cjs/radio/radio.d.ts +6 -1
- package/lib/cjs/radio/radio.js +17 -5
- package/lib/cjs/radio/radioGroup.d.ts +16 -1
- package/lib/cjs/radio/radioGroup.js +18 -3
- package/lib/cjs/radio/radioInner.d.ts +6 -1
- package/lib/cjs/radio/radioInner.js +11 -3
- package/lib/cjs/rating/index.d.ts +14 -0
- package/lib/cjs/rating/index.js +14 -3
- package/lib/cjs/rating/item.d.ts +2 -0
- package/lib/cjs/rating/item.js +6 -1
- package/lib/cjs/select/index.d.ts +16 -0
- package/lib/cjs/select/index.js +65 -19
- package/lib/cjs/select/option.js +28 -22
- package/lib/cjs/sideSheet/SideSheetContent.d.ts +1 -0
- package/lib/cjs/sideSheet/SideSheetContent.js +4 -1
- package/lib/cjs/sideSheet/index.d.ts +1 -0
- package/lib/cjs/sideSheet/index.js +2 -1
- package/lib/cjs/slider/index.d.ts +2 -1
- package/lib/cjs/slider/index.js +64 -17
- package/lib/cjs/spin/icon.js +3 -4
- package/lib/cjs/steps/basicStep.d.ts +3 -0
- package/lib/cjs/steps/basicStep.js +23 -25
- package/lib/cjs/steps/basicSteps.d.ts +1 -0
- package/lib/cjs/steps/basicSteps.js +2 -1
- package/lib/cjs/steps/fillStep.d.ts +3 -0
- package/lib/cjs/steps/fillStep.js +19 -4
- package/lib/cjs/steps/fillSteps.d.ts +1 -0
- package/lib/cjs/steps/fillSteps.js +2 -1
- package/lib/cjs/steps/navStep.d.ts +3 -0
- package/lib/cjs/steps/navStep.js +22 -25
- package/lib/cjs/steps/navSteps.d.ts +1 -0
- package/lib/cjs/steps/navSteps.js +2 -1
- package/lib/cjs/switch/index.d.ts +12 -0
- package/lib/cjs/switch/index.js +19 -4
- package/lib/cjs/table/Body/BaseRow.js +35 -3
- package/lib/cjs/table/Body/index.js +9 -1
- package/lib/cjs/table/ColumnFilter.js +4 -0
- package/lib/cjs/table/ColumnSelection.d.ts +3 -0
- package/lib/cjs/table/ColumnSelection.js +6 -2
- package/lib/cjs/table/ColumnSorter.js +19 -3
- package/lib/cjs/table/CustomExpandIcon.js +7 -1
- package/lib/cjs/table/Table.d.ts +2 -0
- package/lib/cjs/table/Table.js +31 -15
- package/lib/cjs/table/TableCell.d.ts +2 -0
- package/lib/cjs/table/TableCell.js +6 -2
- package/lib/cjs/table/TableHeaderRow.js +8 -2
- package/lib/cjs/tabs/TabBar.js +11 -3
- package/lib/cjs/tabs/TabPane.js +3 -1
- package/lib/cjs/tabs/index.js +0 -1
- package/lib/cjs/tagInput/index.d.ts +4 -1
- package/lib/cjs/tagInput/index.js +29 -3
- package/lib/cjs/timePicker/TimePicker.d.ts +12 -0
- package/lib/cjs/timePicker/TimePicker.js +9 -1
- package/lib/cjs/timePicker/index.d.ts +6 -0
- package/lib/cjs/timeline/index.d.ts +1 -1
- package/lib/cjs/timeline/index.js +1 -0
- package/lib/cjs/timeline/item.js +4 -2
- package/lib/cjs/toast/toast.js +2 -0
- package/lib/cjs/tooltip/TriangleArrow.js +1 -0
- package/lib/cjs/tooltip/TriangleArrowVertical.js +1 -0
- package/lib/cjs/tooltip/index.d.ts +16 -12
- package/lib/cjs/tooltip/index.js +55 -39
- package/lib/cjs/transfer/index.d.ts +1 -1
- package/lib/cjs/transfer/index.js +35 -17
- package/lib/cjs/tree/index.d.ts +1 -0
- package/lib/cjs/tree/index.js +15 -6
- package/lib/cjs/tree/treeNode.d.ts +12 -4
- package/lib/cjs/tree/treeNode.js +44 -4
- package/lib/cjs/treeSelect/index.d.ts +16 -0
- package/lib/cjs/treeSelect/index.js +60 -12
- package/lib/cjs/typography/base.js +18 -7
- package/lib/cjs/typography/copyable.js +6 -1
- package/lib/cjs/upload/fileCard.js +26 -7
- package/lib/cjs/upload/index.js +19 -4
- package/lib/es/_utils/hooks/usePrevFocus.d.ts +2 -0
- package/lib/es/_utils/hooks/usePrevFocus.js +15 -0
- package/lib/es/_utils/index.d.ts +1 -0
- package/lib/es/_utils/index.js +4 -1
- package/lib/es/anchor/index.d.ts +2 -0
- package/lib/es/anchor/index.js +6 -1
- package/lib/es/anchor/link.d.ts +4 -1
- package/lib/es/anchor/link.js +38 -5
- package/lib/es/autoComplete/index.d.ts +17 -0
- package/lib/es/autoComplete/index.js +21 -2
- package/lib/es/avatar/index.d.ts +4 -3
- package/lib/es/avatar/index.js +15 -11
- package/lib/es/banner/index.js +4 -2
- package/lib/es/breadcrumb/index.d.ts +3 -0
- package/lib/es/breadcrumb/index.js +10 -4
- package/lib/es/breadcrumb/item.js +2 -2
- package/lib/es/button/Button.d.ts +2 -0
- package/lib/es/button/Button.js +4 -2
- package/lib/es/button/buttonGroup.d.ts +3 -0
- package/lib/es/button/buttonGroup.js +8 -4
- package/lib/es/button/index.d.ts +1 -0
- package/lib/es/button/splitButtonGroup.d.ts +3 -0
- package/lib/es/button/splitButtonGroup.js +5 -2
- package/lib/es/card/index.d.ts +3 -0
- package/lib/es/card/index.js +3 -1
- package/lib/es/cascader/index.d.ts +14 -0
- package/lib/es/cascader/index.js +35 -7
- package/lib/es/checkbox/checkbox.d.ts +21 -1
- package/lib/es/checkbox/checkbox.js +50 -17
- package/lib/es/checkbox/checkboxGroup.d.ts +13 -1
- package/lib/es/checkbox/checkboxGroup.js +18 -5
- package/lib/es/checkbox/checkboxInner.d.ts +15 -0
- package/lib/es/checkbox/checkboxInner.js +20 -3
- package/lib/es/collapse/item.d.ts +2 -1
- package/lib/es/collapse/item.js +11 -2
- package/lib/es/collapsible/index.d.ts +1 -0
- package/lib/es/collapsible/index.js +4 -2
- package/lib/es/datePicker/datePicker.d.ts +12 -0
- package/lib/es/datePicker/datePicker.js +22 -3
- package/lib/es/datePicker/monthsGrid.d.ts +1 -0
- package/lib/es/datePicker/monthsGrid.js +2 -1
- package/lib/es/dropdown/dropdownItem.js +3 -1
- package/lib/es/dropdown/dropdownMenu.js +4 -1
- package/lib/es/form/baseForm.d.ts +9 -0
- package/lib/es/form/baseForm.js +3 -1
- package/lib/es/form/errorMessage.d.ts +4 -0
- package/lib/es/form/errorMessage.js +21 -3
- package/lib/es/form/field.d.ts +7 -0
- package/lib/es/form/hoc/withField.js +48 -15
- package/lib/es/form/index.d.ts +0 -1
- package/lib/es/form/index.js +0 -1
- package/lib/es/form/interface.d.ts +2 -0
- package/lib/es/form/label.d.ts +2 -0
- package/lib/es/form/label.js +5 -2
- package/lib/es/input/index.d.ts +16 -0
- package/lib/es/input/index.js +51 -15
- package/lib/es/input/inputGroup.d.ts +2 -1
- package/lib/es/input/inputGroup.js +11 -1
- package/lib/es/input/textarea.js +12 -1
- package/lib/es/inputNumber/index.d.ts +21 -12
- package/lib/es/inputNumber/index.js +38 -3
- package/lib/es/layout/Sider.d.ts +4 -0
- package/lib/es/layout/Sider.js +4 -1
- package/lib/es/layout/index.js +2 -0
- package/lib/es/list/item.js +0 -1
- package/lib/es/modal/Modal.js +2 -0
- package/lib/es/modal/ModalContent.d.ts +3 -1
- package/lib/es/modal/ModalContent.js +46 -5
- package/lib/es/navigation/Item.d.ts +4 -2
- package/lib/es/navigation/Item.js +25 -5
- package/lib/es/navigation/SubNav.d.ts +4 -2
- package/lib/es/navigation/SubNav.js +8 -1
- package/lib/es/navigation/index.js +2 -0
- package/lib/es/notification/notice.d.ts +1 -1
- package/lib/es/notification/notice.js +33 -24
- package/lib/es/pagination/index.js +16 -6
- package/lib/es/popover/index.js +7 -3
- package/lib/es/progress/index.d.ts +8 -0
- package/lib/es/progress/index.js +42 -9
- package/lib/es/radio/radio.d.ts +6 -1
- package/lib/es/radio/radio.js +16 -5
- package/lib/es/radio/radioGroup.d.ts +16 -1
- package/lib/es/radio/radioGroup.js +18 -3
- package/lib/es/radio/radioInner.d.ts +6 -1
- package/lib/es/radio/radioInner.js +11 -3
- package/lib/es/rating/index.d.ts +14 -0
- package/lib/es/rating/index.js +14 -3
- package/lib/es/rating/item.d.ts +2 -0
- package/lib/es/rating/item.js +6 -1
- package/lib/es/select/index.d.ts +16 -0
- package/lib/es/select/index.js +63 -17
- package/lib/es/select/option.js +28 -22
- package/lib/es/sideSheet/SideSheetContent.d.ts +1 -0
- package/lib/es/sideSheet/SideSheetContent.js +4 -1
- package/lib/es/sideSheet/index.d.ts +1 -0
- package/lib/es/sideSheet/index.js +2 -1
- package/lib/es/slider/index.d.ts +2 -1
- package/lib/es/slider/index.js +63 -16
- package/lib/es/spin/icon.js +3 -4
- package/lib/es/steps/basicStep.d.ts +3 -0
- package/lib/es/steps/basicStep.js +23 -23
- package/lib/es/steps/basicSteps.d.ts +1 -0
- package/lib/es/steps/basicSteps.js +2 -1
- package/lib/es/steps/fillStep.d.ts +3 -0
- package/lib/es/steps/fillStep.js +19 -4
- package/lib/es/steps/fillSteps.d.ts +1 -0
- package/lib/es/steps/fillSteps.js +2 -1
- package/lib/es/steps/navStep.d.ts +3 -0
- package/lib/es/steps/navStep.js +22 -23
- package/lib/es/steps/navSteps.d.ts +1 -0
- package/lib/es/steps/navSteps.js +2 -1
- package/lib/es/switch/index.d.ts +12 -0
- package/lib/es/switch/index.js +19 -4
- package/lib/es/table/Body/BaseRow.js +35 -3
- package/lib/es/table/Body/index.js +9 -2
- package/lib/es/table/ColumnFilter.js +4 -0
- package/lib/es/table/ColumnSelection.d.ts +3 -0
- package/lib/es/table/ColumnSelection.js +6 -2
- package/lib/es/table/ColumnSorter.js +17 -3
- package/lib/es/table/CustomExpandIcon.js +6 -1
- package/lib/es/table/Table.d.ts +2 -0
- package/lib/es/table/Table.js +31 -15
- package/lib/es/table/TableCell.d.ts +2 -0
- package/lib/es/table/TableCell.js +6 -2
- package/lib/es/table/TableHeaderRow.js +8 -2
- package/lib/es/tabs/TabBar.js +11 -3
- package/lib/es/tabs/TabPane.js +3 -1
- package/lib/es/tabs/index.js +0 -1
- package/lib/es/tagInput/index.d.ts +4 -1
- package/lib/es/tagInput/index.js +29 -3
- package/lib/es/timePicker/TimePicker.d.ts +12 -0
- package/lib/es/timePicker/TimePicker.js +9 -1
- package/lib/es/timePicker/index.d.ts +6 -0
- package/lib/es/timeline/index.d.ts +1 -1
- package/lib/es/timeline/index.js +1 -0
- package/lib/es/timeline/item.js +4 -2
- package/lib/es/toast/toast.js +2 -0
- package/lib/es/tooltip/TriangleArrow.js +1 -0
- package/lib/es/tooltip/TriangleArrowVertical.js +1 -0
- package/lib/es/tooltip/index.d.ts +16 -12
- package/lib/es/tooltip/index.js +53 -39
- package/lib/es/transfer/index.d.ts +1 -1
- package/lib/es/transfer/index.js +35 -17
- package/lib/es/tree/index.d.ts +1 -0
- package/lib/es/tree/index.js +15 -6
- package/lib/es/tree/treeNode.d.ts +12 -4
- package/lib/es/tree/treeNode.js +44 -4
- package/lib/es/treeSelect/index.d.ts +16 -0
- package/lib/es/treeSelect/index.js +57 -10
- package/lib/es/typography/base.js +17 -7
- package/lib/es/typography/copyable.js +5 -1
- package/lib/es/upload/fileCard.js +26 -7
- package/lib/es/upload/index.js +19 -4
- package/list/item.tsx +0 -1
- package/modal/Modal.tsx +2 -0
- package/modal/ModalContent.tsx +35 -5
- package/navigation/Item.tsx +15 -0
- package/navigation/SubNav.tsx +13 -1
- package/navigation/index.tsx +1 -1
- package/notification/notice.tsx +19 -14
- package/package.json +8 -8
- package/pagination/index.tsx +9 -5
- package/popover/index.tsx +5 -0
- package/progress/_story/progress.stories.js +18 -18
- package/progress/index.tsx +58 -20
- package/radio/radio.tsx +12 -2
- package/radio/radioGroup.tsx +29 -3
- package/radio/radioInner.tsx +10 -1
- package/rating/index.tsx +19 -2
- package/rating/item.tsx +6 -0
- package/select/__test__/select.test.js +45 -0
- package/select/_story/select.stories.js +29 -0
- package/select/index.tsx +52 -4
- package/select/option.tsx +3 -0
- package/sideSheet/SideSheetContent.tsx +6 -4
- package/sideSheet/index.tsx +3 -2
- package/slider/__test__/slider.test.js +9 -0
- package/slider/_story/slider.stories.js +1 -1
- package/slider/index.tsx +44 -7
- package/spin/icon.tsx +4 -3
- package/steps/basicStep.tsx +15 -4
- package/steps/basicSteps.tsx +3 -2
- package/steps/fillStep.tsx +27 -12
- package/steps/fillSteps.tsx +2 -0
- package/steps/navStep.tsx +15 -4
- package/steps/navSteps.tsx +3 -2
- package/switch/_story/switch.stories.js +20 -19
- package/switch/_story/switch.stories.tsx +13 -13
- package/switch/index.tsx +23 -5
- package/table/Body/BaseRow.tsx +25 -1
- package/table/Body/index.tsx +7 -2
- package/table/ColumnFilter.tsx +7 -1
- package/table/ColumnSelection.tsx +4 -1
- package/table/ColumnSorter.tsx +18 -1
- package/table/CustomExpandIcon.tsx +5 -0
- package/table/Table.tsx +26 -13
- package/table/TableCell.tsx +11 -1
- package/table/TableHeaderRow.tsx +16 -2
- package/table/__test__/table.test.js +46 -0
- package/tabs/TabBar.tsx +8 -5
- package/tabs/TabPane.tsx +3 -1
- package/tabs/index.tsx +0 -1
- package/tagInput/__test__/tagInput.test.js +46 -0
- package/tagInput/_story/tagInput.stories.js +2 -2
- package/tagInput/index.tsx +31 -8
- package/timePicker/TimePicker.tsx +14 -1
- package/timeline/_story/timeline.stories.js +1 -1
- package/timeline/index.tsx +2 -2
- package/timeline/item.tsx +2 -1
- package/toast/toast.tsx +2 -0
- package/tooltip/TriangleArrow.tsx +1 -1
- package/tooltip/TriangleArrowVertical.tsx +1 -1
- package/tooltip/_story/tooltip.stories.js +562 -514
- package/tooltip/index.tsx +51 -33
- package/transfer/index.tsx +32 -28
- package/tree/_story/tree.stories.js +3 -3
- package/tree/index.tsx +10 -2
- package/tree/treeNode.tsx +46 -10
- package/treeSelect/__test__/treeMultiple.test.js +5 -0
- package/treeSelect/_story/treeSelect.stories.js +12 -0
- package/treeSelect/index.tsx +58 -7
- package/typography/base.tsx +7 -1
- package/typography/copyable.tsx +10 -1
- package/upload/fileCard.tsx +14 -16
- package/upload/index.tsx +10 -6
package/inputNumber/index.tsx
CHANGED
|
@@ -29,6 +29,7 @@ export interface InputNumberProps extends InputProps {
|
|
|
29
29
|
hideButtons?: boolean;
|
|
30
30
|
innerButtons?: boolean;
|
|
31
31
|
insetLabel?: React.ReactNode;
|
|
32
|
+
insetLabelId?: string;
|
|
32
33
|
keepFocus?: boolean;
|
|
33
34
|
max?: number;
|
|
34
35
|
min?: number;
|
|
@@ -62,6 +63,12 @@ export interface InputNumberState {
|
|
|
62
63
|
|
|
63
64
|
class InputNumber extends BaseComponent<InputNumberProps, InputNumberState> {
|
|
64
65
|
static propTypes = {
|
|
66
|
+
'aria-label': PropTypes.string,
|
|
67
|
+
'aria-labelledby': PropTypes.string,
|
|
68
|
+
'aria-invalid': PropTypes.bool,
|
|
69
|
+
'aria-errormessage': PropTypes.string,
|
|
70
|
+
'aria-describedby': PropTypes.string,
|
|
71
|
+
'aria-required': PropTypes.bool,
|
|
65
72
|
autofocus: PropTypes.bool,
|
|
66
73
|
className: PropTypes.string,
|
|
67
74
|
defaultValue: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
@@ -71,6 +78,7 @@ class InputNumber extends BaseComponent<InputNumberProps, InputNumberState> {
|
|
|
71
78
|
hideButtons: PropTypes.bool,
|
|
72
79
|
innerButtons: PropTypes.bool,
|
|
73
80
|
insetLabel: PropTypes.node,
|
|
81
|
+
insetLabelId: PropTypes.string,
|
|
74
82
|
keepFocus: PropTypes.bool,
|
|
75
83
|
max: PropTypes.number,
|
|
76
84
|
min: PropTypes.number,
|
|
@@ -225,6 +233,7 @@ class InputNumber extends BaseComponent<InputNumberProps, InputNumberState> {
|
|
|
225
233
|
currentValue!: number | string;
|
|
226
234
|
cursorBefore!: string;
|
|
227
235
|
cursorAfter!: string;
|
|
236
|
+
foundation: InputNumberFoundation;
|
|
228
237
|
constructor(props: InputNumberProps) {
|
|
229
238
|
super(props);
|
|
230
239
|
this.state = {
|
|
@@ -291,7 +300,10 @@ class InputNumber extends BaseComponent<InputNumberProps, InputNumberState> {
|
|
|
291
300
|
if (focusing) {
|
|
292
301
|
if (this.foundation.isValidNumber(parsedNum) && parsedNum !== this.state.number) {
|
|
293
302
|
const obj: { number?: number; value?: string } = { number: parsedNum };
|
|
294
|
-
|
|
303
|
+
/**
|
|
304
|
+
* If you are clicking the button, it will automatically format once
|
|
305
|
+
* We need to set the status to false after trigger focus event
|
|
306
|
+
*/
|
|
295
307
|
if (this.clickUpOrDown) {
|
|
296
308
|
obj.value = this.foundation.doFormat(valueStr, true);
|
|
297
309
|
}
|
|
@@ -377,6 +389,8 @@ class InputNumber extends BaseComponent<InputNumberProps, InputNumberState> {
|
|
|
377
389
|
return (
|
|
378
390
|
<div className={suffixChildrenCls}>
|
|
379
391
|
<span
|
|
392
|
+
role="button"
|
|
393
|
+
tabIndex={-1}
|
|
380
394
|
className={upClassName}
|
|
381
395
|
onMouseDown={notAllowedUp ? noop : this.handleUpClick}
|
|
382
396
|
onMouseUp={this.handleMouseUp}
|
|
@@ -385,6 +399,8 @@ class InputNumber extends BaseComponent<InputNumberProps, InputNumberState> {
|
|
|
385
399
|
<IconChevronUp size="extra-small" />
|
|
386
400
|
</span>
|
|
387
401
|
<span
|
|
402
|
+
role="button"
|
|
403
|
+
tabIndex={-1}
|
|
388
404
|
className={downClassName}
|
|
389
405
|
onMouseDown={notAllowedDown ? noop : this.handleDownClick}
|
|
390
406
|
onMouseUp={this.handleMouseUp}
|
|
@@ -433,13 +449,26 @@ class InputNumber extends BaseComponent<InputNumberProps, InputNumberState> {
|
|
|
433
449
|
keepFocus,
|
|
434
450
|
...rest
|
|
435
451
|
} = this.props;
|
|
436
|
-
const { value } = this.state;
|
|
452
|
+
const { value, number } = this.state;
|
|
437
453
|
|
|
438
454
|
const inputNumberCls = classnames(className, `${prefixCls}-number`, {
|
|
439
455
|
[`${prefixCls}-number-size-${size}`]: size,
|
|
440
456
|
});
|
|
441
457
|
|
|
442
458
|
const buttons = this.renderButtons();
|
|
459
|
+
const ariaProps = {
|
|
460
|
+
'aria-disabled': disabled,
|
|
461
|
+
step,
|
|
462
|
+
};
|
|
463
|
+
if (number) {
|
|
464
|
+
ariaProps['aria-valuenow'] = number;
|
|
465
|
+
}
|
|
466
|
+
if (max !== Infinity) {
|
|
467
|
+
ariaProps['aria-valuemax'] = max;
|
|
468
|
+
}
|
|
469
|
+
if (min !== -Infinity) {
|
|
470
|
+
ariaProps['aria-valuemin'] = min;
|
|
471
|
+
}
|
|
443
472
|
|
|
444
473
|
const input = (
|
|
445
474
|
<div
|
|
@@ -450,6 +479,8 @@ class InputNumber extends BaseComponent<InputNumberProps, InputNumberState> {
|
|
|
450
479
|
onMouseLeave={e => this.handleInputMouseLeave(e)}
|
|
451
480
|
>
|
|
452
481
|
<Input
|
|
482
|
+
role="spinbutton"
|
|
483
|
+
{...ariaProps}
|
|
453
484
|
{...rest}
|
|
454
485
|
size={size}
|
|
455
486
|
disabled={disabled}
|
package/layout/Sider.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { CSSProperties } from 'react';
|
|
1
|
+
import React, { AriaRole, CSSProperties } from 'react';
|
|
2
2
|
import cls from 'classnames';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import { cssClasses, strings } from '@douyinfe/semi-foundation/layout/constants';
|
|
@@ -40,6 +40,8 @@ export interface SiderProps {
|
|
|
40
40
|
className?: string;
|
|
41
41
|
breakpoint?: Array<keyof ResponsiveMap>;
|
|
42
42
|
onBreakpoint?: (screen: keyof ResponsiveMap, match: boolean) => void;
|
|
43
|
+
'aria-label'?: React.AriaAttributes['aria-label'];
|
|
44
|
+
'role'?:React.AriaRole
|
|
43
45
|
}
|
|
44
46
|
|
|
45
47
|
class Sider extends React.PureComponent<SiderProps> {
|
|
@@ -49,6 +51,8 @@ class Sider extends React.PureComponent<SiderProps> {
|
|
|
49
51
|
className: PropTypes.string,
|
|
50
52
|
breakpoint: PropTypes.arrayOf(PropTypes.oneOf(bpt)),
|
|
51
53
|
onBreakpoint: PropTypes.func,
|
|
54
|
+
'aria-label': PropTypes.string,
|
|
55
|
+
role: PropTypes.string,
|
|
52
56
|
};
|
|
53
57
|
|
|
54
58
|
static defaultProps = {
|
|
@@ -104,7 +108,7 @@ class Sider extends React.PureComponent<SiderProps> {
|
|
|
104
108
|
[`${prefixCls}-sider`]: true,
|
|
105
109
|
});
|
|
106
110
|
return (
|
|
107
|
-
<aside className={classString} style={style} {...getDataAttr(others)}>
|
|
111
|
+
<aside className={classString} aria-label={this.props['aria-label']} style={style} {...getDataAttr(others)}>
|
|
108
112
|
<div className={`${prefixCls}-sider-children`}>
|
|
109
113
|
{children}
|
|
110
114
|
</div>
|
package/layout/index.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { AriaRole, ComponentClass, CSSProperties } from 'react';
|
|
2
2
|
import cls from 'classnames';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import { cssClasses } from '@douyinfe/semi-foundation/layout/constants';
|
|
@@ -15,12 +15,13 @@ const htmlTag = {
|
|
|
15
15
|
Layout: 'section'
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
function generator<P extends { type?: string; tagName?: string }>(type: string): (ComponentType: ComponentClass<{ type?: string; tagName?: string } & P>) => ComponentClass<P> {
|
|
18
|
+
function generator<P extends { type?: string; tagName?: string; role?: AriaRole; 'aria-label'?: string }>(type: string): (ComponentType: ComponentClass<{ type?: string; tagName?: string } & P>) => ComponentClass<P> {
|
|
19
19
|
const tagName = htmlTag[type];
|
|
20
20
|
const typeName = type.toLowerCase();
|
|
21
21
|
return (BasicComponent): ComponentClass<P> => class Adapter extends React.PureComponent<P> {
|
|
22
22
|
render() {
|
|
23
|
-
return <BasicComponent
|
|
23
|
+
return <BasicComponent role={this.props.role} aria-label={this.props['aria-label']} type={typeName}
|
|
24
|
+
tagName={tagName} {...this.props} />;
|
|
24
25
|
}
|
|
25
26
|
};
|
|
26
27
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
exports.usePrevFocus = usePrevFocus;
|
|
12
|
+
|
|
13
|
+
var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
|
|
14
|
+
|
|
15
|
+
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
16
|
+
|
|
17
|
+
var _react = require("react");
|
|
18
|
+
|
|
19
|
+
var _index = require("../index");
|
|
20
|
+
|
|
21
|
+
function usePrevFocus() {
|
|
22
|
+
const [prevFocusElement, setPrevFocus] = (0, _react.useState)((0, _index.getActiveElement)());
|
|
23
|
+
(0, _react.useEffect)(() => {
|
|
24
|
+
return function cleanup() {
|
|
25
|
+
const blur = (0, _get2.default)(prevFocusElement, 'blur');
|
|
26
|
+
(0, _isFunction2.default)(blur) && blur();
|
|
27
|
+
};
|
|
28
|
+
}, [prevFocusElement]);
|
|
29
|
+
return [prevFocusElement, setPrevFocus];
|
|
30
|
+
}
|
package/lib/cjs/_utils/index.js
CHANGED
|
@@ -9,6 +9,7 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
|
|
11
11
|
exports.cloneDeep = cloneDeep;
|
|
12
|
+
exports.getActiveElement = getActiveElement;
|
|
12
13
|
exports.registerMediaQuery = exports.isSemiIcon = exports.getHighLightTextHTML = void 0;
|
|
13
14
|
exports.stopPropagation = stopPropagation;
|
|
14
15
|
|
|
@@ -197,4 +198,8 @@ exports.registerMediaQuery = registerMediaQuery;
|
|
|
197
198
|
|
|
198
199
|
const isSemiIcon = icon => /*#__PURE__*/_react.default.isValidElement(icon) && (0, _get2.default)(icon.type, 'elementType') === 'Icon';
|
|
199
200
|
|
|
200
|
-
exports.isSemiIcon = isSemiIcon;
|
|
201
|
+
exports.isSemiIcon = isSemiIcon;
|
|
202
|
+
|
|
203
|
+
function getActiveElement() {
|
|
204
|
+
return document ? document.activeElement : null;
|
|
205
|
+
}
|
|
@@ -24,6 +24,7 @@ export interface AnchorProps {
|
|
|
24
24
|
targetOffset?: number;
|
|
25
25
|
onChange?: (currentLink: string, previousLink: string) => void;
|
|
26
26
|
onClick?: (e: React.MouseEvent<HTMLElement>, currentLink: string) => void;
|
|
27
|
+
'aria-label'?: React.AriaAttributes['aria-label'];
|
|
27
28
|
}
|
|
28
29
|
export interface AnchorState {
|
|
29
30
|
activeLink: string;
|
|
@@ -51,6 +52,7 @@ declare class Anchor extends BaseComponent<AnchorProps, AnchorState> {
|
|
|
51
52
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
52
53
|
onClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
53
54
|
defaultAnchor: PropTypes.Requireable<string>;
|
|
55
|
+
'aria-label': PropTypes.Requireable<string>;
|
|
54
56
|
};
|
|
55
57
|
static defaultProps: {
|
|
56
58
|
size: string;
|
package/lib/cjs/anchor/index.js
CHANGED
|
@@ -247,6 +247,7 @@ class Anchor extends _baseComponent.default {
|
|
|
247
247
|
position,
|
|
248
248
|
autoCollapse
|
|
249
249
|
} = this.props;
|
|
250
|
+
const ariaLabel = this.props['aria-label'];
|
|
250
251
|
const {
|
|
251
252
|
activeLink,
|
|
252
253
|
scrollHeight,
|
|
@@ -279,10 +280,13 @@ class Anchor extends _baseComponent.default {
|
|
|
279
280
|
removeLink: this.removeLink
|
|
280
281
|
}
|
|
281
282
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
283
|
+
role: "navigation",
|
|
284
|
+
"aria-label": ariaLabel || 'Side navigation',
|
|
282
285
|
className: wrapperCls,
|
|
283
286
|
style: wrapperStyle,
|
|
284
287
|
id: this.anchorID
|
|
285
288
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
289
|
+
"aria-hidden": true,
|
|
286
290
|
className: slideCls,
|
|
287
291
|
style: {
|
|
288
292
|
height: scrollHeight
|
|
@@ -316,7 +320,8 @@ Anchor.PropTypes = {
|
|
|
316
320
|
getContainer: _propTypes.default.func,
|
|
317
321
|
onChange: _propTypes.default.func,
|
|
318
322
|
onClick: _propTypes.default.func,
|
|
319
|
-
defaultAnchor: _propTypes.default.string
|
|
323
|
+
defaultAnchor: _propTypes.default.string,
|
|
324
|
+
'aria-label': _propTypes.default.string
|
|
320
325
|
};
|
|
321
326
|
Anchor.defaultProps = {
|
|
322
327
|
size: 'default',
|
package/lib/cjs/anchor/link.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import BaseComponent from '../_base/baseComponent';
|
|
4
4
|
import LinkFoundation, { LinkAdapter } from '@douyinfe/semi-foundation/lib/cjs/anchor/linkFoundation';
|
|
5
|
+
import { AnchorContextType } from './anchor-context';
|
|
5
6
|
export interface LinkProps {
|
|
6
7
|
href?: string;
|
|
7
8
|
title?: string | React.ReactNode;
|
|
@@ -21,13 +22,15 @@ export default class Link extends BaseComponent<LinkProps, {}> {
|
|
|
21
22
|
title: string;
|
|
22
23
|
className: string;
|
|
23
24
|
};
|
|
24
|
-
static contextType: React.Context<
|
|
25
|
+
static contextType: React.Context<AnchorContextType>;
|
|
25
26
|
foundation: LinkFoundation;
|
|
27
|
+
context: AnchorContextType;
|
|
26
28
|
constructor(props: LinkProps);
|
|
27
29
|
get adapter(): LinkAdapter;
|
|
28
30
|
handleAddLink(): void;
|
|
29
31
|
handleRemoveLink(): void;
|
|
30
32
|
handleUpdateLink(href: string, prevHref: string): void;
|
|
33
|
+
handleClick(e: React.KeyboardEvent | React.MouseEvent): void;
|
|
31
34
|
componentDidMount(): void;
|
|
32
35
|
componentDidUpdate(prevProps: LinkProps): void;
|
|
33
36
|
componentWillUnmount(): void;
|
package/lib/cjs/anchor/link.js
CHANGED
|
@@ -12,6 +12,8 @@ exports.default = void 0;
|
|
|
12
12
|
|
|
13
13
|
var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
|
|
14
14
|
|
|
15
|
+
var _bind = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/bind"));
|
|
16
|
+
|
|
15
17
|
var _react = _interopRequireDefault(require("react"));
|
|
16
18
|
|
|
17
19
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
@@ -32,6 +34,8 @@ const prefixCls = _constants.cssClasses.PREFIX; // eslint-disable-next-line @typ
|
|
|
32
34
|
|
|
33
35
|
class Link extends _baseComponent.default {
|
|
34
36
|
constructor(props) {
|
|
37
|
+
var _context;
|
|
38
|
+
|
|
35
39
|
super(props);
|
|
36
40
|
|
|
37
41
|
this.renderTitle = () => {
|
|
@@ -90,6 +94,7 @@ class Link extends _baseComponent.default {
|
|
|
90
94
|
};
|
|
91
95
|
|
|
92
96
|
this.foundation = new _linkFoundation.default(this.adapter);
|
|
97
|
+
this.handleClick = (0, _bind.default)(_context = this.handleClick).call(_context, this);
|
|
93
98
|
}
|
|
94
99
|
|
|
95
100
|
get adapter() {
|
|
@@ -115,6 +120,17 @@ class Link extends _baseComponent.default {
|
|
|
115
120
|
this.foundation.handleUpdateLink(href, prevHref);
|
|
116
121
|
}
|
|
117
122
|
|
|
123
|
+
handleClick(e) {
|
|
124
|
+
const {
|
|
125
|
+
disabled,
|
|
126
|
+
href
|
|
127
|
+
} = this.props;
|
|
128
|
+
const {
|
|
129
|
+
onClick
|
|
130
|
+
} = this.context;
|
|
131
|
+
!disabled && onClick(e, href);
|
|
132
|
+
}
|
|
133
|
+
|
|
118
134
|
componentDidMount() {
|
|
119
135
|
this.handleAddLink();
|
|
120
136
|
}
|
|
@@ -136,11 +152,12 @@ class Link extends _baseComponent.default {
|
|
|
136
152
|
href,
|
|
137
153
|
className,
|
|
138
154
|
style,
|
|
139
|
-
disabled = false
|
|
155
|
+
disabled = false,
|
|
156
|
+
title
|
|
140
157
|
} = this.props;
|
|
141
158
|
const {
|
|
142
159
|
activeLink,
|
|
143
|
-
|
|
160
|
+
showTooltip
|
|
144
161
|
} = this.context;
|
|
145
162
|
const active = activeLink === href;
|
|
146
163
|
const linkCls = (0, _classnames.default)("".concat(prefixCls, "-link"), className);
|
|
@@ -148,13 +165,30 @@ class Link extends _baseComponent.default {
|
|
|
148
165
|
["".concat(prefixCls, "-link-title-active")]: active,
|
|
149
166
|
["".concat(prefixCls, "-link-title-disabled")]: disabled
|
|
150
167
|
});
|
|
168
|
+
const ariaProps = {
|
|
169
|
+
'aria-disabled': disabled,
|
|
170
|
+
'aria-label': href
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
if (active) {
|
|
174
|
+
ariaProps['aria-details'] = 'active';
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
if (!showTooltip && typeof title === 'string') {
|
|
178
|
+
ariaProps['title'] = title;
|
|
179
|
+
}
|
|
180
|
+
|
|
151
181
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
152
182
|
className: linkCls,
|
|
153
183
|
style: style
|
|
154
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
184
|
+
}, /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
|
|
185
|
+
role: "link",
|
|
186
|
+
tabIndex: 0
|
|
187
|
+
}, ariaProps, {
|
|
155
188
|
className: linkTitleCls,
|
|
156
|
-
onClick: e =>
|
|
157
|
-
|
|
189
|
+
onClick: e => this.handleClick(e),
|
|
190
|
+
onKeyPress: e => this.handleClick(e)
|
|
191
|
+
}), this.renderTitle()), this.renderChildren());
|
|
158
192
|
}
|
|
159
193
|
|
|
160
194
|
}
|
|
@@ -18,6 +18,12 @@ export interface BaseDataItem extends DataItem {
|
|
|
18
18
|
}
|
|
19
19
|
export declare type AutoCompleteItems = BaseDataItem | string | number;
|
|
20
20
|
export interface AutoCompleteProps<T extends AutoCompleteItems> {
|
|
21
|
+
'aria-describedby'?: React.AriaAttributes['aria-describedby'];
|
|
22
|
+
'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
|
|
23
|
+
'aria-invalid'?: React.AriaAttributes['aria-invalid'];
|
|
24
|
+
'aria-label'?: React.AriaAttributes['aria-label'];
|
|
25
|
+
'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
|
|
26
|
+
'aria-required'?: React.AriaAttributes['aria-required'];
|
|
21
27
|
autoAdjustOverflow?: boolean;
|
|
22
28
|
autoFocus?: boolean;
|
|
23
29
|
className?: string;
|
|
@@ -33,6 +39,8 @@ export interface AutoCompleteProps<T extends AutoCompleteItems> {
|
|
|
33
39
|
emptyContent?: React.ReactNode | null;
|
|
34
40
|
getPopupContainer?: () => HTMLElement;
|
|
35
41
|
insetLabel?: React.ReactNode;
|
|
42
|
+
insetLabelId?: string;
|
|
43
|
+
id?: string;
|
|
36
44
|
loading?: boolean;
|
|
37
45
|
motion?: Motion;
|
|
38
46
|
maxHeight?: string | number;
|
|
@@ -77,6 +85,12 @@ interface AutoCompleteState {
|
|
|
77
85
|
}
|
|
78
86
|
declare class AutoComplete<T extends AutoCompleteItems> extends BaseComponent<AutoCompleteProps<T>, AutoCompleteState> {
|
|
79
87
|
static propTypes: {
|
|
88
|
+
'aria-label': PropTypes.Requireable<string>;
|
|
89
|
+
'aria-labelledby': PropTypes.Requireable<string>;
|
|
90
|
+
'aria-invalid': PropTypes.Requireable<boolean>;
|
|
91
|
+
'aria-errormessage': PropTypes.Requireable<string>;
|
|
92
|
+
'aria-describedby': PropTypes.Requireable<string>;
|
|
93
|
+
'aria-required': PropTypes.Requireable<boolean>;
|
|
80
94
|
autoFocus: PropTypes.Requireable<boolean>;
|
|
81
95
|
autoAdjustOverflow: PropTypes.Requireable<boolean>;
|
|
82
96
|
className: PropTypes.Requireable<string>;
|
|
@@ -90,6 +104,9 @@ declare class AutoComplete<T extends AutoCompleteItems> extends BaseComponent<Au
|
|
|
90
104
|
dropdownClassName: PropTypes.Requireable<string>;
|
|
91
105
|
dropdownStyle: PropTypes.Requireable<object>;
|
|
92
106
|
emptyContent: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
107
|
+
id: PropTypes.Requireable<string>;
|
|
108
|
+
insetLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
109
|
+
insetLabelId: PropTypes.Requireable<string>;
|
|
93
110
|
onSearch: PropTypes.Requireable<(...args: any[]) => any>;
|
|
94
111
|
onSelect: PropTypes.Requireable<(...args: any[]) => any>;
|
|
95
112
|
onClear: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -208,6 +208,7 @@ class AutoComplete extends _baseComponent.default {
|
|
|
208
208
|
size,
|
|
209
209
|
prefix,
|
|
210
210
|
insetLabel,
|
|
211
|
+
insetLabelId,
|
|
211
212
|
suffix,
|
|
212
213
|
placeholder,
|
|
213
214
|
style,
|
|
@@ -217,7 +218,8 @@ class AutoComplete extends _baseComponent.default {
|
|
|
217
218
|
triggerRender,
|
|
218
219
|
validateStatus,
|
|
219
220
|
autoFocus,
|
|
220
|
-
value
|
|
221
|
+
value,
|
|
222
|
+
id
|
|
221
223
|
} = this.props;
|
|
222
224
|
const {
|
|
223
225
|
inputValue,
|
|
@@ -232,7 +234,8 @@ class AutoComplete extends _baseComponent.default {
|
|
|
232
234
|
["".concat(prefixCls, "-disabled")]: disabled
|
|
233
235
|
}, className),
|
|
234
236
|
onClick: this.handleInputClick,
|
|
235
|
-
ref: this.triggerRef
|
|
237
|
+
ref: this.triggerRef,
|
|
238
|
+
id
|
|
236
239
|
}, keyboardEventSet);
|
|
237
240
|
const innerProps = {
|
|
238
241
|
disabled,
|
|
@@ -240,9 +243,16 @@ class AutoComplete extends _baseComponent.default {
|
|
|
240
243
|
autofocus: autoFocus,
|
|
241
244
|
onChange: this.onSearch,
|
|
242
245
|
onClear: this.onInputClear,
|
|
246
|
+
'aria-label': this.props['aria-label'],
|
|
247
|
+
'aria-labelledby': this.props['aria-labelledby'],
|
|
248
|
+
'aria-invalid': this.props['aria-invalid'],
|
|
249
|
+
'aria-errormessage': this.props['aria-errormessage'],
|
|
250
|
+
'aria-describedby': this.props['aria-describedby'],
|
|
251
|
+
'aria-required': this.props['aria-required'],
|
|
243
252
|
// TODO: remove in next major version
|
|
244
253
|
suffix,
|
|
245
254
|
prefix: prefix || insetLabel,
|
|
255
|
+
insetLabelId,
|
|
246
256
|
showClear,
|
|
247
257
|
validateStatus,
|
|
248
258
|
size,
|
|
@@ -356,6 +366,12 @@ class AutoComplete extends _baseComponent.default {
|
|
|
356
366
|
}
|
|
357
367
|
|
|
358
368
|
AutoComplete.propTypes = {
|
|
369
|
+
'aria-label': _propTypes.default.string,
|
|
370
|
+
'aria-labelledby': _propTypes.default.string,
|
|
371
|
+
'aria-invalid': _propTypes.default.bool,
|
|
372
|
+
'aria-errormessage': _propTypes.default.string,
|
|
373
|
+
'aria-describedby': _propTypes.default.string,
|
|
374
|
+
'aria-required': _propTypes.default.bool,
|
|
359
375
|
autoFocus: _propTypes.default.bool,
|
|
360
376
|
autoAdjustOverflow: _propTypes.default.bool,
|
|
361
377
|
className: _propTypes.default.string,
|
|
@@ -369,6 +385,9 @@ AutoComplete.propTypes = {
|
|
|
369
385
|
dropdownClassName: _propTypes.default.string,
|
|
370
386
|
dropdownStyle: _propTypes.default.object,
|
|
371
387
|
emptyContent: _propTypes.default.node,
|
|
388
|
+
id: _propTypes.default.string,
|
|
389
|
+
insetLabel: _propTypes.default.node,
|
|
390
|
+
insetLabelId: _propTypes.default.string,
|
|
372
391
|
onSearch: _propTypes.default.func,
|
|
373
392
|
onSelect: _propTypes.default.func,
|
|
374
393
|
onClear: _propTypes.default.func,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { AvatarAdapter } from '@douyinfe/semi-foundation/lib/cjs/avatar/foundation';
|
|
3
|
+
import AvatarFoundation, { AvatarAdapter } from '@douyinfe/semi-foundation/lib/cjs/avatar/foundation';
|
|
4
4
|
import '@douyinfe/semi-foundation/lib/cjs/avatar/avatar.css';
|
|
5
5
|
import { noop } from '@douyinfe/semi-foundation/lib/cjs/utils/function';
|
|
6
6
|
import BaseComponent from '../_base/baseComponent';
|
|
@@ -36,13 +36,14 @@ export default class Avatar extends BaseComponent<AvatarProps, AvatarState> {
|
|
|
36
36
|
onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
|
|
37
37
|
onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
|
|
38
38
|
};
|
|
39
|
+
foundation: AvatarFoundation;
|
|
39
40
|
constructor(props: AvatarProps);
|
|
40
41
|
get adapter(): AvatarAdapter<AvatarProps, AvatarState>;
|
|
41
42
|
componentDidMount(): void;
|
|
42
43
|
componentDidUpdate(prevProps: AvatarProps): void;
|
|
43
44
|
componentWillUnmount(): void;
|
|
44
|
-
onEnter(): void;
|
|
45
|
-
onLeave(): void;
|
|
45
|
+
onEnter(e: React.MouseEvent): void;
|
|
46
|
+
onLeave(e: React.MouseEvent): void;
|
|
46
47
|
handleError(): void;
|
|
47
48
|
render(): JSX.Element;
|
|
48
49
|
}
|
package/lib/cjs/avatar/index.js
CHANGED
|
@@ -156,12 +156,12 @@ class Avatar extends _baseComponent.default {
|
|
|
156
156
|
this.foundation.destroy();
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
-
onEnter() {
|
|
160
|
-
this.foundation.handleEnter();
|
|
159
|
+
onEnter(e) {
|
|
160
|
+
this.foundation.handleEnter(e);
|
|
161
161
|
}
|
|
162
162
|
|
|
163
|
-
onLeave() {
|
|
164
|
-
this.foundation.handleLeave();
|
|
163
|
+
onLeave(e) {
|
|
164
|
+
this.foundation.handleLeave(e);
|
|
165
165
|
}
|
|
166
166
|
|
|
167
167
|
handleError() {
|
|
@@ -220,13 +220,17 @@ class Avatar extends _baseComponent.default {
|
|
|
220
220
|
}, children));
|
|
221
221
|
}
|
|
222
222
|
|
|
223
|
-
return
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
223
|
+
return (
|
|
224
|
+
/*#__PURE__*/
|
|
225
|
+
// eslint-disable-next-line jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events
|
|
226
|
+
_react.default.createElement("span", (0, _assign.default)({}, others, {
|
|
227
|
+
style: style,
|
|
228
|
+
className: avatarCls,
|
|
229
|
+
onClick: onClick,
|
|
230
|
+
onMouseEnter: this.onEnter,
|
|
231
|
+
onMouseLeave: this.onLeave
|
|
232
|
+
}), content, hoverRender)
|
|
233
|
+
);
|
|
230
234
|
}
|
|
231
235
|
|
|
232
236
|
}
|
package/lib/cjs/banner/index.js
CHANGED
|
@@ -95,7 +95,8 @@ class Banner extends _baseComponent.default {
|
|
|
95
95
|
icon: closeIcon || /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, null),
|
|
96
96
|
theme: "borderless",
|
|
97
97
|
size: "small",
|
|
98
|
-
type: "tertiary"
|
|
98
|
+
type: "tertiary",
|
|
99
|
+
"aria-label": 'Close'
|
|
99
100
|
});
|
|
100
101
|
|
|
101
102
|
return closer;
|
|
@@ -163,7 +164,8 @@ class Banner extends _baseComponent.default {
|
|
|
163
164
|
});
|
|
164
165
|
const banner = visible ? /*#__PURE__*/_react.default.createElement("div", {
|
|
165
166
|
className: wrapper,
|
|
166
|
-
style: style
|
|
167
|
+
style: style,
|
|
168
|
+
role: "alert"
|
|
167
169
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
168
170
|
className: "".concat(prefixCls, "-content-wrapper")
|
|
169
171
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -27,6 +27,7 @@ export interface BreadcrumbProps extends BaseProps {
|
|
|
27
27
|
autoCollapse?: boolean;
|
|
28
28
|
renderMore?: (restItem: Array<React.ReactNode>) => React.ReactNode;
|
|
29
29
|
moreType?: MoreType;
|
|
30
|
+
'aria-label'?: React.AriaAttributes['aria-label'];
|
|
30
31
|
}
|
|
31
32
|
interface BreadcrumbState {
|
|
32
33
|
isCollapsed: boolean;
|
|
@@ -52,6 +53,7 @@ declare class Breadcrumb extends BaseComponent<BreadcrumbProps, BreadcrumbState>
|
|
|
52
53
|
maxItemCount: propTypes.Requireable<number>;
|
|
53
54
|
renderMore: propTypes.Requireable<(...args: any[]) => any>;
|
|
54
55
|
moreType: propTypes.Requireable<string>;
|
|
56
|
+
'aria-label': propTypes.Requireable<string>;
|
|
55
57
|
};
|
|
56
58
|
static defaultProps: {
|
|
57
59
|
routes: [];
|
|
@@ -66,6 +68,7 @@ declare class Breadcrumb extends BaseComponent<BreadcrumbProps, BreadcrumbState>
|
|
|
66
68
|
autoCollapse: boolean;
|
|
67
69
|
moreType: string;
|
|
68
70
|
maxItemCount: number;
|
|
71
|
+
'aria-label': string;
|
|
69
72
|
};
|
|
70
73
|
constructor(props: BreadcrumbProps);
|
|
71
74
|
get adapter(): BreadcrumbAdapter<BreadcrumbProps, BreadcrumbState>;
|
|
@@ -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":
|
|
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")
|