@douyinfe/semi-ui 2.2.0-beta.1 → 2.3.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_base/_story/a11y.jsx +6 -6
- 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/avatarGroup.tsx +1 -1
- package/avatar/index.tsx +10 -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 +21 -14
- package/checkbox/checkbox.tsx +40 -5
- package/checkbox/checkboxGroup.tsx +30 -5
- package/checkbox/checkboxInner.tsx +25 -2
- package/collapse/index.tsx +2 -2
- package/collapse/item.tsx +15 -8
- 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 +2785 -1508
- 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 +5 -5
- 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/avatarGroup.js +2 -1
- package/lib/cjs/avatar/index.d.ts +4 -3
- package/lib/cjs/avatar/index.js +20 -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/index.js +2 -1
- package/lib/cjs/collapse/item.d.ts +2 -1
- package/lib/cjs/collapse/item.js +17 -3
- 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/empty/index.js +2 -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 +12 -5
- 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 +2 -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 +3 -8
- 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 +23 -4
- 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/avatarGroup.js +2 -1
- package/lib/es/avatar/index.d.ts +4 -3
- package/lib/es/avatar/index.js +20 -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/index.js +2 -1
- package/lib/es/collapse/item.d.ts +2 -1
- package/lib/es/collapse/item.js +16 -3
- 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/empty/index.js +2 -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 +12 -5
- 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 +2 -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 +1 -6
- 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 +23 -4
- 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 +13 -9
- 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 +3 -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 +1 -2
- 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 +50 -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 +13 -15
- package/upload/index.tsx +10 -6
package/lib/es/input/textarea.js
CHANGED
|
@@ -37,6 +37,10 @@ class TextArea extends BaseComponent {
|
|
|
37
37
|
this.foundation.handleClear(e);
|
|
38
38
|
};
|
|
39
39
|
|
|
40
|
+
this.handleClearEnterPress = e => {
|
|
41
|
+
this.foundation.handleClearEnterPress(e);
|
|
42
|
+
};
|
|
43
|
+
|
|
40
44
|
this.setRef = node => {
|
|
41
45
|
this.libRef.current = node;
|
|
42
46
|
const {
|
|
@@ -162,8 +166,12 @@ class TextArea extends BaseComponent {
|
|
|
162
166
|
|
|
163
167
|
if (showClear) {
|
|
164
168
|
return /*#__PURE__*/React.createElement("div", {
|
|
169
|
+
role: "button",
|
|
170
|
+
tabIndex: 0,
|
|
171
|
+
"aria-label": "Clear textarea value",
|
|
165
172
|
className: clearCls,
|
|
166
|
-
onClick: this.handleClear
|
|
173
|
+
onClick: this.handleClear,
|
|
174
|
+
onKeyPress: this.handleClearEnterPress
|
|
167
175
|
}, /*#__PURE__*/React.createElement(IconClear, null));
|
|
168
176
|
}
|
|
169
177
|
|
|
@@ -189,6 +197,9 @@ class TextArea extends BaseComponent {
|
|
|
189
197
|
["".concat(prefixCls, "-textarea-counter-exceed")]: current > total
|
|
190
198
|
});
|
|
191
199
|
counter = /*#__PURE__*/React.createElement("div", {
|
|
200
|
+
"aria-label": "Textarea value length counter",
|
|
201
|
+
"aria-valuemax": maxCount,
|
|
202
|
+
"aria-valuenow": current,
|
|
192
203
|
className: countCls
|
|
193
204
|
}, current, total ? '/' : null, total);
|
|
194
205
|
} else {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { InputProps } from '../input';
|
|
4
|
-
import { InputNumberAdapter } from '@douyinfe/semi-foundation/lib/es/inputNumber/foundation';
|
|
4
|
+
import InputNumberFoundation, { InputNumberAdapter } from '@douyinfe/semi-foundation/lib/es/inputNumber/foundation';
|
|
5
5
|
import BaseComponent from '../_base/baseComponent';
|
|
6
6
|
import { strings } from '@douyinfe/semi-foundation/lib/es/inputNumber/constants';
|
|
7
7
|
import '@douyinfe/semi-foundation/lib/es/inputNumber/inputNumber.css';
|
|
@@ -16,6 +16,7 @@ export interface InputNumberProps extends InputProps {
|
|
|
16
16
|
hideButtons?: boolean;
|
|
17
17
|
innerButtons?: boolean;
|
|
18
18
|
insetLabel?: React.ReactNode;
|
|
19
|
+
insetLabelId?: string;
|
|
19
20
|
keepFocus?: boolean;
|
|
20
21
|
max?: number;
|
|
21
22
|
min?: number;
|
|
@@ -47,6 +48,12 @@ export interface InputNumberState {
|
|
|
47
48
|
}
|
|
48
49
|
declare class InputNumber extends BaseComponent<InputNumberProps, InputNumberState> {
|
|
49
50
|
static propTypes: {
|
|
51
|
+
'aria-label': PropTypes.Requireable<string>;
|
|
52
|
+
'aria-labelledby': PropTypes.Requireable<string>;
|
|
53
|
+
'aria-invalid': PropTypes.Requireable<boolean>;
|
|
54
|
+
'aria-errormessage': PropTypes.Requireable<string>;
|
|
55
|
+
'aria-describedby': PropTypes.Requireable<string>;
|
|
56
|
+
'aria-required': PropTypes.Requireable<boolean>;
|
|
50
57
|
autofocus: PropTypes.Requireable<boolean>;
|
|
51
58
|
className: PropTypes.Requireable<string>;
|
|
52
59
|
defaultValue: PropTypes.Requireable<string | number>;
|
|
@@ -56,6 +63,7 @@ declare class InputNumber extends BaseComponent<InputNumberProps, InputNumberSta
|
|
|
56
63
|
hideButtons: PropTypes.Requireable<boolean>;
|
|
57
64
|
innerButtons: PropTypes.Requireable<boolean>;
|
|
58
65
|
insetLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
66
|
+
insetLabelId: PropTypes.Requireable<string>;
|
|
59
67
|
keepFocus: PropTypes.Requireable<boolean>;
|
|
60
68
|
max: PropTypes.Requireable<number>;
|
|
61
69
|
min: PropTypes.Requireable<number>;
|
|
@@ -85,20 +93,21 @@ declare class InputNumber extends BaseComponent<InputNumberProps, InputNumberSta
|
|
|
85
93
|
currentValue: number | string;
|
|
86
94
|
cursorBefore: string;
|
|
87
95
|
cursorAfter: string;
|
|
96
|
+
foundation: InputNumberFoundation;
|
|
88
97
|
constructor(props: InputNumberProps);
|
|
89
98
|
componentDidUpdate(prevProps: InputNumberProps): void;
|
|
90
99
|
setInputRef: (node: HTMLInputElement) => void;
|
|
91
|
-
handleInputFocus: (e: React.FocusEvent<HTMLInputElement>) =>
|
|
92
|
-
handleInputChange: (value: string, event: React.ChangeEvent<HTMLInputElement>) =>
|
|
93
|
-
handleInputBlur: (e: React.FocusEvent<HTMLInputElement>) =>
|
|
94
|
-
handleInputKeyDown: (e: React.KeyboardEvent) =>
|
|
95
|
-
handleInputMouseEnter: (e: React.MouseEvent) =>
|
|
96
|
-
handleInputMouseLeave: (e: React.MouseEvent) =>
|
|
97
|
-
handleInputMouseMove: (e: React.MouseEvent) =>
|
|
98
|
-
handleUpClick: (e: React.KeyboardEvent) =>
|
|
99
|
-
handleDownClick: (e: React.KeyboardEvent) =>
|
|
100
|
-
handleMouseUp: (e: React.MouseEvent) =>
|
|
101
|
-
handleMouseLeave: (e: React.MouseEvent) =>
|
|
100
|
+
handleInputFocus: (e: React.FocusEvent<HTMLInputElement>) => void;
|
|
101
|
+
handleInputChange: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
102
|
+
handleInputBlur: (e: React.FocusEvent<HTMLInputElement>) => void;
|
|
103
|
+
handleInputKeyDown: (e: React.KeyboardEvent) => void;
|
|
104
|
+
handleInputMouseEnter: (e: React.MouseEvent) => void;
|
|
105
|
+
handleInputMouseLeave: (e: React.MouseEvent) => void;
|
|
106
|
+
handleInputMouseMove: (e: React.MouseEvent) => void;
|
|
107
|
+
handleUpClick: (e: React.KeyboardEvent) => void;
|
|
108
|
+
handleDownClick: (e: React.KeyboardEvent) => void;
|
|
109
|
+
handleMouseUp: (e: React.MouseEvent) => void;
|
|
110
|
+
handleMouseLeave: (e: React.MouseEvent) => void;
|
|
102
111
|
renderButtons: () => JSX.Element;
|
|
103
112
|
renderSuffix: () => React.ReactNode;
|
|
104
113
|
render(): JSX.Element;
|
|
@@ -110,6 +110,8 @@ class InputNumber extends BaseComponent {
|
|
|
110
110
|
return /*#__PURE__*/React.createElement("div", {
|
|
111
111
|
className: suffixChildrenCls
|
|
112
112
|
}, /*#__PURE__*/React.createElement("span", {
|
|
113
|
+
role: "button",
|
|
114
|
+
tabIndex: -1,
|
|
113
115
|
className: upClassName,
|
|
114
116
|
onMouseDown: notAllowedUp ? _noop : this.handleUpClick,
|
|
115
117
|
onMouseUp: this.handleMouseUp,
|
|
@@ -117,6 +119,8 @@ class InputNumber extends BaseComponent {
|
|
|
117
119
|
}, /*#__PURE__*/React.createElement(IconChevronUp, {
|
|
118
120
|
size: "extra-small"
|
|
119
121
|
})), /*#__PURE__*/React.createElement("span", {
|
|
122
|
+
role: "button",
|
|
123
|
+
tabIndex: -1,
|
|
120
124
|
className: downClassName,
|
|
121
125
|
onMouseDown: notAllowedDown ? _noop : this.handleDownClick,
|
|
122
126
|
onMouseUp: this.handleMouseUp,
|
|
@@ -334,7 +338,11 @@ class InputNumber extends BaseComponent {
|
|
|
334
338
|
if (this.foundation.isValidNumber(parsedNum) && parsedNum !== this.state.number) {
|
|
335
339
|
const obj = {
|
|
336
340
|
number: parsedNum
|
|
337
|
-
};
|
|
341
|
+
};
|
|
342
|
+
/**
|
|
343
|
+
* If you are clicking the button, it will automatically format once
|
|
344
|
+
* We need to set the status to false after trigger focus event
|
|
345
|
+
*/
|
|
338
346
|
|
|
339
347
|
if (this.clickUpOrDown) {
|
|
340
348
|
obj.value = this.foundation.doFormat(valueStr, true);
|
|
@@ -409,19 +417,39 @@ class InputNumber extends BaseComponent {
|
|
|
409
417
|
rest = __rest(_a, ["disabled", "className", "prefixCls", "min", "max", "step", "shiftStep", "precision", "formatter", "parser", "forwardedRef", "onUpClick", "onDownClick", "pressInterval", "pressTimeout", "suffix", "size", "hideButtons", "innerButtons", "style", "onNumberChange", "keepFocus"]);
|
|
410
418
|
|
|
411
419
|
const {
|
|
412
|
-
value
|
|
420
|
+
value,
|
|
421
|
+
number
|
|
413
422
|
} = this.state;
|
|
414
423
|
const inputNumberCls = classnames(className, "".concat(prefixCls, "-number"), {
|
|
415
424
|
[_concatInstanceProperty(_context = "".concat(prefixCls, "-number-size-")).call(_context, size)]: size
|
|
416
425
|
});
|
|
417
426
|
const buttons = this.renderButtons();
|
|
427
|
+
const ariaProps = {
|
|
428
|
+
'aria-disabled': disabled,
|
|
429
|
+
step
|
|
430
|
+
};
|
|
431
|
+
|
|
432
|
+
if (number) {
|
|
433
|
+
ariaProps['aria-valuenow'] = number;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
if (max !== Infinity) {
|
|
437
|
+
ariaProps['aria-valuemax'] = max;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
if (min !== -Infinity) {
|
|
441
|
+
ariaProps['aria-valuemin'] = min;
|
|
442
|
+
}
|
|
443
|
+
|
|
418
444
|
const input = /*#__PURE__*/React.createElement("div", {
|
|
419
445
|
className: inputNumberCls,
|
|
420
446
|
style: style,
|
|
421
447
|
onMouseMove: e => this.handleInputMouseMove(e),
|
|
422
448
|
onMouseEnter: e => this.handleInputMouseEnter(e),
|
|
423
449
|
onMouseLeave: e => this.handleInputMouseLeave(e)
|
|
424
|
-
}, /*#__PURE__*/React.createElement(Input, _Object$assign({
|
|
450
|
+
}, /*#__PURE__*/React.createElement(Input, _Object$assign({
|
|
451
|
+
role: "spinbutton"
|
|
452
|
+
}, ariaProps, rest, {
|
|
425
453
|
size: size,
|
|
426
454
|
disabled: disabled,
|
|
427
455
|
ref: this.setInputRef,
|
|
@@ -438,6 +466,12 @@ class InputNumber extends BaseComponent {
|
|
|
438
466
|
}
|
|
439
467
|
|
|
440
468
|
InputNumber.propTypes = {
|
|
469
|
+
'aria-label': PropTypes.string,
|
|
470
|
+
'aria-labelledby': PropTypes.string,
|
|
471
|
+
'aria-invalid': PropTypes.bool,
|
|
472
|
+
'aria-errormessage': PropTypes.string,
|
|
473
|
+
'aria-describedby': PropTypes.string,
|
|
474
|
+
'aria-required': PropTypes.bool,
|
|
441
475
|
autofocus: PropTypes.bool,
|
|
442
476
|
className: PropTypes.string,
|
|
443
477
|
defaultValue: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
@@ -447,6 +481,7 @@ InputNumber.propTypes = {
|
|
|
447
481
|
hideButtons: PropTypes.bool,
|
|
448
482
|
innerButtons: PropTypes.bool,
|
|
449
483
|
insetLabel: PropTypes.node,
|
|
484
|
+
insetLabelId: PropTypes.string,
|
|
450
485
|
keepFocus: PropTypes.bool,
|
|
451
486
|
max: PropTypes.number,
|
|
452
487
|
min: PropTypes.number,
|
package/lib/es/layout/Sider.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ export interface SiderProps {
|
|
|
14
14
|
className?: string;
|
|
15
15
|
breakpoint?: Array<keyof ResponsiveMap>;
|
|
16
16
|
onBreakpoint?: (screen: keyof ResponsiveMap, match: boolean) => void;
|
|
17
|
+
'aria-label'?: React.AriaAttributes['aria-label'];
|
|
18
|
+
'role'?: React.AriaRole;
|
|
17
19
|
}
|
|
18
20
|
declare class Sider extends React.PureComponent<SiderProps> {
|
|
19
21
|
static propTypes: {
|
|
@@ -22,6 +24,8 @@ declare class Sider extends React.PureComponent<SiderProps> {
|
|
|
22
24
|
className: PropTypes.Requireable<string>;
|
|
23
25
|
breakpoint: PropTypes.Requireable<string[]>;
|
|
24
26
|
onBreakpoint: PropTypes.Requireable<(...args: any[]) => any>;
|
|
27
|
+
'aria-label': PropTypes.Requireable<string>;
|
|
28
|
+
role: PropTypes.Requireable<string>;
|
|
25
29
|
};
|
|
26
30
|
static defaultProps: {
|
|
27
31
|
prefixCls: string;
|
package/lib/es/layout/Sider.js
CHANGED
|
@@ -114,6 +114,7 @@ class Sider extends React.PureComponent {
|
|
|
114
114
|
});
|
|
115
115
|
return /*#__PURE__*/React.createElement("aside", _Object$assign({
|
|
116
116
|
className: classString,
|
|
117
|
+
"aria-label": this.props['aria-label'],
|
|
117
118
|
style: style
|
|
118
119
|
}, getDataAttr(others)), /*#__PURE__*/React.createElement("div", {
|
|
119
120
|
className: "".concat(prefixCls, "-sider-children")
|
|
@@ -127,7 +128,9 @@ Sider.propTypes = {
|
|
|
127
128
|
style: PropTypes.object,
|
|
128
129
|
className: PropTypes.string,
|
|
129
130
|
breakpoint: PropTypes.arrayOf(PropTypes.oneOf(bpt)),
|
|
130
|
-
onBreakpoint: PropTypes.func
|
|
131
|
+
onBreakpoint: PropTypes.func,
|
|
132
|
+
'aria-label': PropTypes.string,
|
|
133
|
+
role: PropTypes.string
|
|
131
134
|
};
|
|
132
135
|
Sider.defaultProps = {
|
|
133
136
|
prefixCls: cssClasses.PREFIX
|
package/lib/es/layout/index.js
CHANGED
|
@@ -35,6 +35,8 @@ function generator(type) {
|
|
|
35
35
|
return BasicComponent => class Adapter extends React.PureComponent {
|
|
36
36
|
render() {
|
|
37
37
|
return /*#__PURE__*/React.createElement(BasicComponent, _Object$assign({
|
|
38
|
+
role: this.props.role,
|
|
39
|
+
"aria-label": this.props['aria-label'],
|
|
38
40
|
type: typeName,
|
|
39
41
|
tagName: tagName
|
|
40
42
|
}, this.props));
|
package/lib/es/list/item.js
CHANGED
package/lib/es/modal/Modal.js
CHANGED
|
@@ -75,6 +75,7 @@ class Modal extends BaseComponent {
|
|
|
75
75
|
return null;
|
|
76
76
|
} else {
|
|
77
77
|
return /*#__PURE__*/React.createElement(Button, _Object$assign({
|
|
78
|
+
"aria-label": "cancel",
|
|
78
79
|
onClick: this.handleCancel,
|
|
79
80
|
loading: cancelLoading,
|
|
80
81
|
type: "tertiary"
|
|
@@ -85,6 +86,7 @@ class Modal extends BaseComponent {
|
|
|
85
86
|
return /*#__PURE__*/React.createElement(LocaleConsumer, {
|
|
86
87
|
componentName: "Modal"
|
|
87
88
|
}, (locale, localeCode) => /*#__PURE__*/React.createElement("div", null, getCancelButton(locale), /*#__PURE__*/React.createElement(Button, _Object$assign({
|
|
89
|
+
"aria-label": "confirm",
|
|
88
90
|
type: okType,
|
|
89
91
|
theme: "solid",
|
|
90
92
|
loading: confirmLoading,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import BaseComponent from '../_base/baseComponent';
|
|
4
|
-
import { ModalContentAdapter, ModalContentProps, ModalContentState } from '@douyinfe/semi-foundation/lib/es/modal/modalContentFoundation';
|
|
4
|
+
import ModalContentFoundation, { ModalContentAdapter, ModalContentProps, ModalContentState } from '@douyinfe/semi-foundation/lib/es/modal/modalContentFoundation';
|
|
5
5
|
export default class ModalContent extends BaseComponent<ModalContentProps, ModalContentState> {
|
|
6
6
|
static contextType: React.Context<import("../configProvider/context").ContextValue>;
|
|
7
7
|
static propTypes: {
|
|
@@ -19,6 +19,8 @@ export default class ModalContent extends BaseComponent<ModalContentProps, Modal
|
|
|
19
19
|
};
|
|
20
20
|
dialogId: string;
|
|
21
21
|
private timeoutId;
|
|
22
|
+
modalDialogRef: React.MutableRefObject<HTMLDivElement>;
|
|
23
|
+
foundation: ModalContentFoundation;
|
|
22
24
|
constructor(props: ModalContentProps);
|
|
23
25
|
get adapter(): ModalContentAdapter;
|
|
24
26
|
componentDidMount(): void;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import _get from "lodash/get";
|
|
2
|
+
import _isFunction from "lodash/isFunction";
|
|
1
3
|
import _noop from "lodash/noop";
|
|
2
4
|
import _indexOfInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/index-of";
|
|
3
5
|
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
|
@@ -30,6 +32,7 @@ import BaseComponent from '../_base/baseComponent'; // eslint-disable-next-line
|
|
|
30
32
|
|
|
31
33
|
import ModalContentFoundation from '@douyinfe/semi-foundation/lib/es/modal/modalContentFoundation';
|
|
32
34
|
import { IconClose } from '@douyinfe/semi-icons';
|
|
35
|
+
import { getActiveElement } from '../_utils';
|
|
33
36
|
let uuid = 0;
|
|
34
37
|
export default class ModalContent extends BaseComponent {
|
|
35
38
|
constructor(props) {
|
|
@@ -89,6 +92,7 @@ export default class ModalContent extends BaseComponent {
|
|
|
89
92
|
if (closable) {
|
|
90
93
|
const iconType = closeIcon || /*#__PURE__*/React.createElement(IconClose, null);
|
|
91
94
|
closer = /*#__PURE__*/React.createElement(Button, {
|
|
95
|
+
"aria-label": "close",
|
|
92
96
|
className: "".concat(cssClasses.DIALOG, "-close"),
|
|
93
97
|
key: "close-btn",
|
|
94
98
|
onClick: this.close,
|
|
@@ -125,7 +129,8 @@ export default class ModalContent extends BaseComponent {
|
|
|
125
129
|
className: "".concat(cssClasses.DIALOG, "-header")
|
|
126
130
|
}, icon, /*#__PURE__*/React.createElement(Typography.Title, {
|
|
127
131
|
heading: 5,
|
|
128
|
-
className: "".concat(cssClasses.DIALOG, "-title")
|
|
132
|
+
className: "".concat(cssClasses.DIALOG, "-title"),
|
|
133
|
+
id: "".concat(cssClasses.DIALOG, "-title")
|
|
129
134
|
}, title), closer);
|
|
130
135
|
};
|
|
131
136
|
|
|
@@ -143,6 +148,7 @@ export default class ModalContent extends BaseComponent {
|
|
|
143
148
|
const hasHeader = title !== null && title !== undefined || 'header' in this.props;
|
|
144
149
|
return hasHeader ? /*#__PURE__*/React.createElement("div", {
|
|
145
150
|
className: bodyCls,
|
|
151
|
+
id: "".concat(cssClasses.DIALOG, "-body"),
|
|
146
152
|
style: bodyStyle
|
|
147
153
|
}, children) : /*#__PURE__*/React.createElement("div", {
|
|
148
154
|
className: "".concat(cssClasses.DIALOG, "-body-wrapper")
|
|
@@ -182,13 +188,21 @@ export default class ModalContent extends BaseComponent {
|
|
|
182
188
|
const footer = props.footer ? /*#__PURE__*/React.createElement("div", {
|
|
183
189
|
className: "".concat(cssClasses.DIALOG, "-footer")
|
|
184
190
|
}, props.footer) : null;
|
|
185
|
-
const dialogElement =
|
|
191
|
+
const dialogElement =
|
|
192
|
+
/*#__PURE__*/
|
|
193
|
+
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
194
|
+
React.createElement("div", {
|
|
186
195
|
key: "dialog-element",
|
|
187
196
|
className: digCls,
|
|
188
197
|
onMouseDown: this.onDialogMouseDown,
|
|
189
198
|
style: _Object$assign(_Object$assign({}, props.style), style),
|
|
190
199
|
id: this.dialogId
|
|
191
200
|
}, /*#__PURE__*/React.createElement("div", {
|
|
201
|
+
role: "dialog",
|
|
202
|
+
ref: this.modalDialogRef,
|
|
203
|
+
"aria-modal": "true",
|
|
204
|
+
"aria-labelledby": "".concat(cssClasses.DIALOG, "-title"),
|
|
205
|
+
"aria-describedby": "".concat(cssClasses.DIALOG, "-body"),
|
|
192
206
|
onAnimationEnd: props.onAnimationEnd,
|
|
193
207
|
className: cls(["".concat(cssClasses.DIALOG, "-content"), props.contentClassName, {
|
|
194
208
|
["".concat(cssClasses.DIALOG, "-content-fullScreen")]: props.isFullScreen
|
|
@@ -199,10 +213,12 @@ export default class ModalContent extends BaseComponent {
|
|
|
199
213
|
};
|
|
200
214
|
|
|
201
215
|
this.state = {
|
|
202
|
-
dialogMouseDown: false
|
|
216
|
+
dialogMouseDown: false,
|
|
217
|
+
prevFocusElement: getActiveElement()
|
|
203
218
|
};
|
|
204
219
|
this.foundation = new ModalContentFoundation(this.adapter);
|
|
205
220
|
this.dialogId = "dialog-".concat(uuid++);
|
|
221
|
+
this.modalDialogRef = /*#__PURE__*/React.createRef();
|
|
206
222
|
}
|
|
207
223
|
|
|
208
224
|
get adapter() {
|
|
@@ -239,12 +255,37 @@ export default class ModalContent extends BaseComponent {
|
|
|
239
255
|
document.removeEventListener('keydown', _bindInstanceProperty(_context3 = this.foundation.handleKeyDown).call(_context3, this.foundation));
|
|
240
256
|
}
|
|
241
257
|
},
|
|
242
|
-
getMouseState: () => this.state.dialogMouseDown
|
|
258
|
+
getMouseState: () => this.state.dialogMouseDown,
|
|
259
|
+
modalDialogFocus: () => {
|
|
260
|
+
let activeElementInDialog;
|
|
261
|
+
|
|
262
|
+
if (this.modalDialogRef) {
|
|
263
|
+
const activeElement = getActiveElement();
|
|
264
|
+
activeElementInDialog = this.modalDialogRef.current.contains(activeElement);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
if (!activeElementInDialog) {
|
|
268
|
+
this.modalDialogRef && this.modalDialogRef.current.focus();
|
|
269
|
+
}
|
|
270
|
+
},
|
|
271
|
+
modalDialogBlur: () => {
|
|
272
|
+
this.modalDialogRef && this.modalDialogRef.current.blur();
|
|
273
|
+
},
|
|
274
|
+
prevFocusElementReFocus: () => {
|
|
275
|
+
const {
|
|
276
|
+
prevFocusElement
|
|
277
|
+
} = this.state;
|
|
278
|
+
|
|
279
|
+
const focus = _get(prevFocusElement, 'focus');
|
|
280
|
+
|
|
281
|
+
_isFunction(focus) && prevFocusElement.focus();
|
|
282
|
+
}
|
|
243
283
|
});
|
|
244
284
|
}
|
|
245
285
|
|
|
246
286
|
componentDidMount() {
|
|
247
287
|
this.foundation.handleKeyDownEventListenerMount();
|
|
288
|
+
this.foundation.modalDialogFocus();
|
|
248
289
|
}
|
|
249
290
|
|
|
250
291
|
componentWillUnmount() {
|
|
@@ -272,7 +313,7 @@ export default class ModalContent extends BaseComponent {
|
|
|
272
313
|
const elem = /*#__PURE__*/React.createElement("div", {
|
|
273
314
|
className: classList
|
|
274
315
|
}, this.getMaskElement(), /*#__PURE__*/React.createElement("div", {
|
|
275
|
-
role: "
|
|
316
|
+
role: "none",
|
|
276
317
|
tabIndex: -1,
|
|
277
318
|
className: "".concat(cssClasses.DIALOG, "-wrap"),
|
|
278
319
|
onClick: maskClosable ? this.onMaskClick : null,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import BaseComponent, { BaseProps } from '../_base/baseComponent';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import { ItemProps, SelectedItemProps, ItemAdapter } from '@douyinfe/semi-foundation/lib/es/navigation/itemFoundation';
|
|
4
|
+
import ItemFoundation, { ItemProps, SelectedItemProps, ItemAdapter } from '@douyinfe/semi-foundation/lib/es/navigation/itemFoundation';
|
|
5
5
|
export interface NavItemProps extends ItemProps, BaseProps {
|
|
6
6
|
children?: React.ReactNode;
|
|
7
7
|
disabled?: boolean;
|
|
@@ -59,12 +59,14 @@ export default class NavItem extends BaseComponent<NavItemProps, NavItemState> {
|
|
|
59
59
|
onMouseLeave: (...args: any[]) => void;
|
|
60
60
|
disabled: boolean;
|
|
61
61
|
};
|
|
62
|
+
foundation: ItemFoundation;
|
|
62
63
|
constructor(props: NavItemProps);
|
|
63
64
|
_invokeContextFunc(funcName: string, ...args: any[]): any;
|
|
64
65
|
get adapter(): ItemAdapter<NavItemProps, NavItemState>;
|
|
65
66
|
renderIcon(icon: React.ReactNode, pos: string, isToggleIcon?: boolean): JSX.Element;
|
|
66
67
|
setItemRef: (ref: HTMLLIElement) => void;
|
|
67
68
|
wrapTooltip: (node: React.ReactNode) => JSX.Element;
|
|
68
|
-
handleClick: (e: React.MouseEvent) =>
|
|
69
|
+
handleClick: (e: React.MouseEvent) => void;
|
|
70
|
+
handleKeyPress: (e: React.KeyboardEvent) => void;
|
|
69
71
|
render(): {} | React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
70
72
|
}
|
|
@@ -45,6 +45,8 @@ export default class NavItem extends BaseComponent {
|
|
|
45
45
|
|
|
46
46
|
this.handleClick = e => this.foundation.handleClick(e);
|
|
47
47
|
|
|
48
|
+
this.handleKeyPress = e => this.foundation.handleKeyPress(e);
|
|
49
|
+
|
|
48
50
|
this.state = {
|
|
49
51
|
tooltipShow: false
|
|
50
52
|
};
|
|
@@ -103,12 +105,17 @@ export default class NavItem extends BaseComponent {
|
|
|
103
105
|
var _context;
|
|
104
106
|
|
|
105
107
|
return Boolean(this.context && this.context.selectedKeys && _includesInstanceProperty(_context = this.context.selectedKeys).call(_context, this.props.itemKey));
|
|
108
|
+
},
|
|
109
|
+
getIsOpen: () => {
|
|
110
|
+
var _context2;
|
|
111
|
+
|
|
112
|
+
return Boolean(this.context && this.context.openKeys && _includesInstanceProperty(_context2 = this.context.openKeys).call(_context2, this.props.itemKey));
|
|
106
113
|
}
|
|
107
114
|
});
|
|
108
115
|
}
|
|
109
116
|
|
|
110
117
|
renderIcon(icon, pos) {
|
|
111
|
-
var
|
|
118
|
+
var _context3;
|
|
112
119
|
|
|
113
120
|
let isToggleIcon = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
114
121
|
|
|
@@ -127,7 +134,7 @@ export default class NavItem extends BaseComponent {
|
|
|
127
134
|
}
|
|
128
135
|
|
|
129
136
|
const className = cls("".concat(clsPrefix, "-icon"), {
|
|
130
|
-
[_concatInstanceProperty(
|
|
137
|
+
[_concatInstanceProperty(_context3 = "".concat(clsPrefix, "-icon-toggle-")).call(_context3, this.context.toggleIconPosition)]: isToggleIcon,
|
|
131
138
|
["".concat(clsPrefix, "-icon-info")]: !isToggleIcon
|
|
132
139
|
});
|
|
133
140
|
return /*#__PURE__*/React.createElement("i", {
|
|
@@ -215,14 +222,27 @@ export default class NavItem extends BaseComponent {
|
|
|
215
222
|
["".concat(clsPrefix, "-collapsed")]: isCollapsed,
|
|
216
223
|
["".concat(clsPrefix, "-disabled")]: disabled
|
|
217
224
|
});
|
|
218
|
-
|
|
225
|
+
const ariaProps = {
|
|
226
|
+
'aria-disabled': disabled
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
if (isSubNav) {
|
|
230
|
+
const isOpen = this.adapter.getIsOpen();
|
|
231
|
+
ariaProps['aria-expanded'] = isOpen;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
itemDom = /*#__PURE__*/React.createElement("li", _Object$assign({
|
|
235
|
+
role: "menuitem",
|
|
236
|
+
tabIndex: -1
|
|
237
|
+
}, ariaProps, {
|
|
219
238
|
style: style,
|
|
220
239
|
ref: this.setItemRef,
|
|
221
240
|
className: popoverItemCls,
|
|
222
241
|
onClick: this.handleClick,
|
|
223
242
|
onMouseEnter: onMouseEnter,
|
|
224
|
-
onMouseLeave: onMouseLeave
|
|
225
|
-
|
|
243
|
+
onMouseLeave: onMouseLeave,
|
|
244
|
+
onKeyPress: this.handleKeyPress
|
|
245
|
+
}), itemChildren);
|
|
226
246
|
} // Display Tooltip when disabled and SubNav
|
|
227
247
|
|
|
228
248
|
|
|
@@ -2,7 +2,7 @@ import BaseComponent, { BaseProps } from '../_base/baseComponent';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import '@douyinfe/semi-foundation/lib/es/navigation/navigation.css';
|
|
5
|
-
import { SubNavAdapter } from '@douyinfe/semi-foundation/lib/es/navigation/subNavFoundation';
|
|
5
|
+
import SubNavFoundation, { SubNavAdapter } from '@douyinfe/semi-foundation/lib/es/navigation/subNavFoundation';
|
|
6
6
|
export interface ToggleIcon {
|
|
7
7
|
open?: string;
|
|
8
8
|
closed?: string;
|
|
@@ -88,13 +88,15 @@ export default class SubNav extends BaseComponent<SubNavProps, SubNavState> {
|
|
|
88
88
|
};
|
|
89
89
|
titleRef: React.RefObject<HTMLDivElement>;
|
|
90
90
|
itemRef: React.RefObject<HTMLLIElement>;
|
|
91
|
+
foundation: SubNavFoundation;
|
|
91
92
|
constructor(props: SubNavProps);
|
|
92
93
|
setItemRef: (ref: HTMLLIElement | React.RefObject<HTMLLIElement>) => void;
|
|
93
94
|
setTitleRef: (ref: HTMLDivElement | React.RefObject<HTMLDivElement>) => void;
|
|
94
95
|
_invokeContextFunc(funcName: string, ...args: any[]): any;
|
|
95
96
|
get adapter(): SubNavAdapter<SubNavProps, SubNavState>;
|
|
96
97
|
handleClick: (e: React.MouseEvent) => void;
|
|
97
|
-
|
|
98
|
+
handleKeyPress: (e: React.KeyboardEvent) => void;
|
|
99
|
+
handleDropdownVisible: (visible: boolean) => void;
|
|
98
100
|
renderIcon(icon: React.ReactNode, pos: string, withTransition?: boolean, isToggleIcon?: boolean, key?: number | string): JSX.Element;
|
|
99
101
|
renderTitleDiv(): JSX.Element;
|
|
100
102
|
renderSubUl(): JSX.Element;
|
|
@@ -49,6 +49,10 @@ export default class SubNav extends BaseComponent {
|
|
|
49
49
|
this.foundation.handleClick(e && e.nativeEvent, this.titleRef && this.titleRef.current);
|
|
50
50
|
};
|
|
51
51
|
|
|
52
|
+
this.handleKeyPress = e => {
|
|
53
|
+
this.foundation.handleKeyPress(e && e.nativeEvent, this.titleRef && this.titleRef.current);
|
|
54
|
+
};
|
|
55
|
+
|
|
52
56
|
this.handleDropdownVisible = visible => this.foundation.handleDropdownVisibleChange(visible);
|
|
53
57
|
|
|
54
58
|
this.state = {
|
|
@@ -203,9 +207,12 @@ export default class SubNav extends BaseComponent {
|
|
|
203
207
|
}
|
|
204
208
|
|
|
205
209
|
const titleDiv = /*#__PURE__*/React.createElement("div", {
|
|
210
|
+
role: "menuitem",
|
|
211
|
+
tabIndex: -1,
|
|
206
212
|
ref: this.setTitleRef,
|
|
207
213
|
className: titleCls,
|
|
208
|
-
onClick: this.handleClick
|
|
214
|
+
onClick: this.handleClick,
|
|
215
|
+
onKeyPress: this.handleKeyPress
|
|
209
216
|
}, /*#__PURE__*/React.createElement("div", {
|
|
210
217
|
className: "".concat(prefixCls, "-item-inner")
|
|
211
218
|
}, placeholderIcons, this.context.toggleIconPosition === strings.TOGGLE_ICON_LEFT && this.renderIcon(toggleIconType, strings.ICON_POS_RIGHT, withTransition, true, 'key-toggle-position-left'), icon || indent || isInSubNav && mode !== strings.MODE_HORIZONTAL ? this.renderIcon(icon, strings.ICON_POS_LEFT, undefined, undefined, 'key-inSubNav-position-left') : null, /*#__PURE__*/React.createElement("span", {
|
|
@@ -338,6 +338,8 @@ class Nav extends BaseComponent {
|
|
|
338
338
|
style: bodyStyle,
|
|
339
339
|
className: "".concat(prefixCls, "-list-wrapper")
|
|
340
340
|
}, /*#__PURE__*/React.createElement("ul", {
|
|
341
|
+
role: "menu",
|
|
342
|
+
"aria-orientation": mode,
|
|
341
343
|
className: "".concat(prefixCls, "-list")
|
|
342
344
|
}, this.adapter.getCache('itemElems'), children))), footers))));
|
|
343
345
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { NoticeAdapter,
|
|
3
|
+
import { NoticeAdapter, NoticeProps, NoticeState } from '@douyinfe/semi-foundation/lib/es/notification/notificationFoundation';
|
|
4
4
|
import BaseComponent from '../_base/baseComponent';
|
|
5
5
|
export interface NoticeReactProps extends NoticeProps {
|
|
6
6
|
style?: React.CSSProperties;
|
|
@@ -22,12 +22,13 @@ import React from 'react';
|
|
|
22
22
|
import cls from 'classnames';
|
|
23
23
|
import PropTypes from 'prop-types';
|
|
24
24
|
import ConfigContext from '../configProvider/context';
|
|
25
|
-
import {
|
|
25
|
+
import { cssClasses, numbers, strings } from '@douyinfe/semi-foundation/lib/es/notification/constants';
|
|
26
26
|
import NotificationFoundation from '@douyinfe/semi-foundation/lib/es/notification/notificationFoundation';
|
|
27
27
|
import Button from '../iconButton';
|
|
28
28
|
import BaseComponent from '../_base/baseComponent';
|
|
29
29
|
import { isSemiIcon } from '../_utils';
|
|
30
|
-
import {
|
|
30
|
+
import { IconAlertCircle, IconAlertTriangle, IconClose, IconInfoCircle, IconTickCircle } from '@douyinfe/semi-icons';
|
|
31
|
+
import { getUuidShort } from '@douyinfe/semi-foundation/lib/es/utils/uuid';
|
|
31
32
|
const prefixCls = cssClasses.NOTICE;
|
|
32
33
|
const {
|
|
33
34
|
duration
|
|
@@ -154,28 +155,36 @@ class Notice extends BaseComponent {
|
|
|
154
155
|
[_concatInstanceProperty(_context3 = "".concat(prefixCls, "-")).call(_context3, theme)]: theme === 'light',
|
|
155
156
|
["".concat(prefixCls, "-rtl")]: direction === 'rtl'
|
|
156
157
|
});
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
158
|
+
const titleID = getUuidShort({});
|
|
159
|
+
return (
|
|
160
|
+
/*#__PURE__*/
|
|
161
|
+
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
162
|
+
React.createElement("div", {
|
|
163
|
+
className: wrapper,
|
|
164
|
+
style: style,
|
|
165
|
+
onMouseEnter: this.clearCloseTimer,
|
|
166
|
+
onMouseLeave: this.startCloseTimer,
|
|
167
|
+
onClick: this.notifyClick,
|
|
168
|
+
"aria-labelledby": titleID,
|
|
169
|
+
role: 'alert'
|
|
170
|
+
}, /*#__PURE__*/React.createElement("div", null, this.renderTypeIcon()), /*#__PURE__*/React.createElement("div", {
|
|
171
|
+
className: "".concat(prefixCls, "-inner")
|
|
172
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
173
|
+
className: "".concat(prefixCls, "-content-wrapper")
|
|
174
|
+
}, title ? /*#__PURE__*/React.createElement("div", {
|
|
175
|
+
id: titleID,
|
|
176
|
+
className: "".concat(prefixCls, "-title")
|
|
177
|
+
}, title) : '', content ? /*#__PURE__*/React.createElement("div", {
|
|
178
|
+
className: "".concat(prefixCls, "-content")
|
|
179
|
+
}, content) : ''), showClose && /*#__PURE__*/React.createElement(Button, {
|
|
180
|
+
className: "".concat(prefixCls, "-icon-close"),
|
|
181
|
+
type: "tertiary",
|
|
182
|
+
icon: /*#__PURE__*/React.createElement(IconClose, null),
|
|
183
|
+
theme: "borderless",
|
|
184
|
+
size: "small",
|
|
185
|
+
onClick: this.close
|
|
186
|
+
})))
|
|
187
|
+
);
|
|
179
188
|
}
|
|
180
189
|
|
|
181
190
|
}
|