@mui/material 6.0.0-alpha.9 → 6.0.0-beta.1
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/Accordion/Accordion.d.ts +3 -5
- package/Accordion/Accordion.js +3 -5
- package/AccordionActions/AccordionActions.d.ts +2 -2
- package/AccordionActions/AccordionActions.js +3 -3
- package/AccordionDetails/AccordionDetails.d.ts +2 -2
- package/AccordionDetails/AccordionDetails.js +3 -3
- package/AccordionSummary/AccordionSummary.d.ts +3 -3
- package/AccordionSummary/AccordionSummary.js +3 -3
- package/Alert/Alert.d.ts +15 -6
- package/Alert/Alert.js +3 -3
- package/AlertTitle/AlertTitle.d.ts +3 -3
- package/AlertTitle/AlertTitle.js +3 -3
- package/AppBar/AppBar.d.ts +3 -3
- package/AppBar/AppBar.js +5 -9
- package/Autocomplete/Autocomplete.d.ts +9 -15
- package/Autocomplete/Autocomplete.js +14 -27
- package/Avatar/Avatar.d.ts +2 -3
- package/Avatar/Avatar.js +3 -4
- package/AvatarGroup/AvatarGroup.d.ts +2 -2
- package/AvatarGroup/AvatarGroup.js +3 -3
- package/Backdrop/Backdrop.d.ts +5 -8
- package/Backdrop/Backdrop.js +5 -8
- package/Badge/Badge.d.ts +4 -4
- package/Badge/Badge.js +5 -5
- package/Badge/useBadge.d.ts +13 -0
- package/Badge/useBadge.js +41 -0
- package/Badge/useBadge.types.d.ts +40 -0
- package/Badge/useBadge.types.js +1 -0
- package/BottomNavigation/BottomNavigation.d.ts +2 -2
- package/BottomNavigation/BottomNavigation.js +3 -3
- package/BottomNavigationAction/BottomNavigationAction.d.ts +3 -3
- package/BottomNavigationAction/BottomNavigationAction.js +3 -3
- package/Box/Box.d.ts +2 -2
- package/Breadcrumbs/Breadcrumbs.d.ts +4 -4
- package/Breadcrumbs/Breadcrumbs.js +4 -4
- package/Button/Button.d.ts +4 -4
- package/Button/Button.js +3 -3
- package/ButtonBase/ButtonBase.d.ts +2 -2
- package/ButtonBase/ButtonBase.js +23 -52
- package/ButtonBase/TouchRipple.js +3 -3
- package/ButtonGroup/ButtonGroup.d.ts +2 -2
- package/ButtonGroup/ButtonGroup.js +3 -3
- package/CHANGELOG.md +363 -3
- package/Card/Card.d.ts +3 -3
- package/Card/Card.js +3 -3
- package/CardActionArea/CardActionArea.d.ts +3 -3
- package/CardActionArea/CardActionArea.js +3 -3
- package/CardActions/CardActions.d.ts +2 -2
- package/CardActions/CardActions.js +3 -3
- package/CardContent/CardContent.d.ts +2 -2
- package/CardContent/CardContent.js +3 -3
- package/CardHeader/CardHeader.d.ts +2 -2
- package/CardHeader/CardHeader.js +3 -3
- package/CardMedia/CardMedia.d.ts +2 -2
- package/CardMedia/CardMedia.js +3 -3
- package/Checkbox/Checkbox.d.ts +4 -4
- package/Checkbox/Checkbox.js +3 -3
- package/Chip/Chip.d.ts +5 -5
- package/Chip/Chip.js +3 -5
- package/CircularProgress/CircularProgress.d.ts +2 -2
- package/CircularProgress/CircularProgress.js +3 -3
- package/ClickAwayListener/ClickAwayListener.d.ts +47 -0
- package/ClickAwayListener/ClickAwayListener.js +178 -0
- package/ClickAwayListener/index.d.ts +2 -2
- package/ClickAwayListener/index.js +1 -1
- package/Collapse/Collapse.d.ts +5 -5
- package/Collapse/Collapse.js +3 -4
- package/Container/Container.d.ts +2 -2
- package/CssBaseline/CssBaseline.d.ts +2 -2
- package/CssBaseline/CssBaseline.js +66 -8
- package/DefaultPropsProvider/DefaultPropsProvider.d.ts +15 -0
- package/DefaultPropsProvider/DefaultPropsProvider.js +29 -0
- package/DefaultPropsProvider/index.d.ts +1 -0
- package/DefaultPropsProvider/index.js +1 -0
- package/DefaultPropsProvider/package.json +6 -0
- package/Dialog/Dialog.d.ts +3 -3
- package/Dialog/Dialog.js +4 -7
- package/DialogActions/DialogActions.d.ts +2 -2
- package/DialogActions/DialogActions.js +3 -3
- package/DialogContent/DialogContent.d.ts +2 -2
- package/DialogContent/DialogContent.js +3 -3
- package/DialogContentText/DialogContentText.d.ts +3 -3
- package/DialogContentText/DialogContentText.js +3 -3
- package/DialogTitle/DialogTitle.d.ts +3 -3
- package/DialogTitle/DialogTitle.js +3 -3
- package/Divider/Divider.d.ts +3 -3
- package/Divider/Divider.js +3 -3
- package/Drawer/Drawer.d.ts +3 -3
- package/Drawer/Drawer.js +3 -4
- package/Fab/Fab.d.ts +3 -3
- package/Fab/Fab.js +3 -3
- package/Fade/Fade.d.ts +3 -3
- package/Fade/Fade.js +1 -1
- package/FilledInput/FilledInput.d.ts +3 -3
- package/FilledInput/FilledInput.js +13 -11
- package/FilledInput/filledInputClasses.d.ts +1 -13
- package/FilledInput/filledInputClasses.js +1 -1
- package/FormControl/FormControl.d.ts +6 -6
- package/FormControl/FormControl.js +3 -3
- package/FormControlLabel/FormControlLabel.d.ts +4 -4
- package/FormControlLabel/FormControlLabel.js +3 -3
- package/FormGroup/FormGroup.d.ts +3 -3
- package/FormGroup/FormGroup.js +3 -3
- package/FormHelperText/FormHelperText.d.ts +2 -2
- package/FormHelperText/FormHelperText.js +3 -3
- package/FormLabel/FormLabel.d.ts +4 -4
- package/FormLabel/FormLabel.js +3 -3
- package/GlobalStyles/GlobalStyles.d.ts +3 -3
- package/Grid/Grid.d.ts +2 -2
- package/Grid/Grid.js +7 -13
- package/Grow/Grow.d.ts +5 -5
- package/Grow/Grow.js +1 -1
- package/Hidden/Hidden.d.ts +2 -2
- package/Hidden/hiddenCssClasses.d.ts +3 -0
- package/Icon/Icon.d.ts +3 -3
- package/Icon/Icon.js +3 -3
- package/IconButton/IconButton.d.ts +4 -4
- package/IconButton/IconButton.js +3 -5
- package/ImageList/ImageList.d.ts +2 -2
- package/ImageList/ImageList.js +3 -11
- package/ImageListItem/ImageListItem.d.ts +2 -2
- package/ImageListItem/ImageListItem.js +3 -3
- package/ImageListItemBar/ImageListItemBar.d.ts +2 -2
- package/ImageListItemBar/ImageListItemBar.js +3 -3
- package/InitColorSchemeScript/InitColorSchemeScript.d.ts +10 -0
- package/InitColorSchemeScript/InitColorSchemeScript.js +16 -0
- package/InitColorSchemeScript/index.d.ts +1 -0
- package/InitColorSchemeScript/index.js +1 -0
- package/InitColorSchemeScript/package.json +6 -0
- package/Input/Input.d.ts +3 -3
- package/Input/Input.js +5 -9
- package/InputAdornment/InputAdornment.d.ts +2 -2
- package/InputAdornment/InputAdornment.js +3 -5
- package/InputBase/InputBase.d.ts +4 -6
- package/InputBase/InputBase.js +33 -42
- package/InputLabel/InputLabel.d.ts +3 -3
- package/InputLabel/InputLabel.js +3 -3
- package/LinearProgress/LinearProgress.d.ts +2 -2
- package/LinearProgress/LinearProgress.js +3 -3
- package/Link/Link.d.ts +4 -4
- package/Link/Link.js +7 -18
- package/List/List.d.ts +3 -3
- package/List/List.js +3 -3
- package/ListItem/ListItem.d.ts +3 -3
- package/ListItem/ListItem.js +4 -4
- package/ListItemAvatar/ListItemAvatar.d.ts +2 -2
- package/ListItemAvatar/ListItemAvatar.js +3 -3
- package/ListItemButton/ListItemButton.d.ts +3 -3
- package/ListItemButton/ListItemButton.js +3 -3
- package/ListItemIcon/ListItemIcon.d.ts +2 -2
- package/ListItemIcon/ListItemIcon.js +3 -3
- package/ListItemSecondaryAction/ListItemSecondaryAction.d.ts +2 -2
- package/ListItemSecondaryAction/ListItemSecondaryAction.js +3 -3
- package/ListItemText/ListItemText.d.ts +2 -2
- package/ListItemText/ListItemText.js +3 -3
- package/ListSubheader/ListSubheader.d.ts +2 -2
- package/ListSubheader/ListSubheader.js +3 -3
- package/Menu/Menu.d.ts +4 -4
- package/Menu/Menu.js +5 -8
- package/MenuItem/MenuItem.d.ts +3 -3
- package/MenuItem/MenuItem.js +3 -3
- package/MenuList/MenuList.d.ts +4 -4
- package/MobileStepper/MobileStepper.d.ts +3 -3
- package/MobileStepper/MobileStepper.js +3 -3
- package/Modal/Modal.d.ts +11 -13
- package/Modal/Modal.js +33 -25
- package/Modal/ModalManager.d.ts +25 -0
- package/Modal/ModalManager.js +211 -0
- package/Modal/index.d.ts +1 -1
- package/Modal/index.js +1 -1
- package/Modal/useModal.d.ts +13 -0
- package/Modal/useModal.js +195 -0
- package/Modal/useModal.types.d.ts +115 -0
- package/Modal/useModal.types.js +1 -0
- package/NativeSelect/NativeSelect.d.ts +3 -3
- package/NativeSelect/NativeSelectInput.js +0 -4
- package/NoSsr/NoSsr.d.ts +25 -0
- package/NoSsr/NoSsr.js +73 -0
- package/NoSsr/NoSsr.types.d.ts +18 -0
- package/NoSsr/NoSsr.types.js +1 -0
- package/NoSsr/index.d.ts +3 -2
- package/NoSsr/index.js +1 -1
- package/OutlinedInput/OutlinedInput.d.ts +3 -3
- package/OutlinedInput/OutlinedInput.js +4 -5
- package/Pagination/Pagination.d.ts +2 -2
- package/Pagination/Pagination.js +3 -3
- package/PaginationItem/PaginationItem.d.ts +2 -2
- package/PaginationItem/PaginationItem.js +3 -3
- package/Paper/Paper.d.ts +3 -3
- package/Paper/Paper.js +3 -4
- package/PigmentContainer/PigmentContainer.d.ts +55 -0
- package/PigmentContainer/PigmentContainer.js +98 -0
- package/PigmentContainer/index.d.ts +3 -0
- package/PigmentContainer/index.js +3 -0
- package/PigmentContainer/package.json +6 -0
- package/PigmentGrid/PigmentGrid.d.ts +108 -0
- package/PigmentGrid/PigmentGrid.js +149 -0
- package/PigmentGrid/index.d.ts +3 -0
- package/PigmentGrid/index.js +3 -0
- package/{useTouchRipple → PigmentGrid}/package.json +1 -1
- package/PigmentHidden/PigmentHidden.d.ts +97 -0
- package/PigmentHidden/PigmentHidden.js +278 -0
- package/PigmentHidden/index.d.ts +2 -0
- package/PigmentHidden/index.js +2 -0
- package/PigmentHidden/package.json +6 -0
- package/PigmentStack/PigmentStack.d.ts +51 -0
- package/PigmentStack/PigmentStack.js +81 -0
- package/PigmentStack/index.d.ts +3 -0
- package/PigmentStack/index.js +3 -0
- package/PigmentStack/package.json +6 -0
- package/Popover/Popover.d.ts +20 -25
- package/Popover/Popover.js +30 -29
- package/Popper/BasePopper.d.ts +7 -0
- package/Popper/BasePopper.js +370 -0
- package/Popper/BasePopper.types.d.ts +130 -0
- package/Popper/BasePopper.types.js +1 -0
- package/Popper/Popper.d.ts +5 -5
- package/Popper/Popper.js +11 -10
- package/Popper/index.d.ts +2 -1
- package/Popper/index.js +2 -1
- package/Popper/popperClasses.d.ts +8 -0
- package/Popper/popperClasses.js +7 -0
- package/Portal/Portal.d.ts +16 -0
- package/Portal/Portal.js +92 -0
- package/Portal/Portal.types.d.ts +23 -0
- package/Portal/Portal.types.js +1 -0
- package/Portal/index.d.ts +3 -2
- package/Portal/index.js +1 -1
- package/Radio/Radio.d.ts +3 -3
- package/Radio/Radio.js +3 -3
- package/RadioGroup/RadioGroup.d.ts +3 -3
- package/Rating/Rating.d.ts +2 -2
- package/Rating/Rating.js +8 -15
- package/ScopedCssBaseline/ScopedCssBaseline.d.ts +2 -2
- package/ScopedCssBaseline/ScopedCssBaseline.js +24 -11
- package/Select/Select.d.ts +3 -3
- package/Skeleton/Skeleton.d.ts +2 -2
- package/Skeleton/Skeleton.js +3 -3
- package/Slide/Slide.d.ts +4 -4
- package/Slide/Slide.js +1 -1
- package/Slider/Slider.d.ts +5 -5
- package/Slider/Slider.js +6 -5
- package/Slider/useSlider.d.ts +14 -0
- package/Slider/useSlider.js +647 -0
- package/Slider/useSlider.types.d.ts +228 -0
- package/Slider/useSlider.types.js +1 -0
- package/Snackbar/Snackbar.d.ts +3 -3
- package/Snackbar/Snackbar.js +6 -7
- package/Snackbar/useSnackbar.d.ts +14 -0
- package/Snackbar/useSnackbar.js +133 -0
- package/Snackbar/useSnackbar.types.d.ts +60 -0
- package/Snackbar/useSnackbar.types.js +1 -0
- package/SnackbarContent/SnackbarContent.d.ts +3 -3
- package/SnackbarContent/SnackbarContent.js +3 -3
- package/SpeedDial/SpeedDial.d.ts +2 -4
- package/SpeedDial/SpeedDial.js +3 -6
- package/SpeedDialAction/SpeedDialAction.d.ts +3 -3
- package/SpeedDialAction/SpeedDialAction.js +3 -3
- package/SpeedDialIcon/SpeedDialIcon.d.ts +2 -2
- package/SpeedDialIcon/SpeedDialIcon.js +3 -3
- package/Stack/Stack.d.ts +2 -2
- package/Step/Step.d.ts +2 -2
- package/Step/Step.js +3 -3
- package/StepButton/StepButton.d.ts +3 -3
- package/StepButton/StepButton.js +3 -3
- package/StepConnector/StepConnector.d.ts +3 -3
- package/StepConnector/StepConnector.js +3 -3
- package/StepContent/StepContent.d.ts +2 -2
- package/StepContent/StepContent.js +3 -3
- package/StepIcon/StepIcon.d.ts +2 -2
- package/StepIcon/StepIcon.js +3 -3
- package/StepLabel/StepLabel.d.ts +2 -4
- package/StepLabel/StepLabel.js +3 -7
- package/Stepper/Stepper.d.ts +2 -2
- package/Stepper/Stepper.js +7 -5
- package/Stepper/stepperClasses.d.ts +2 -0
- package/Stepper/stepperClasses.js +1 -1
- package/SvgIcon/SvgIcon.d.ts +3 -3
- package/SvgIcon/SvgIcon.js +3 -3
- package/SwipeableDrawer/SwipeableDrawer.d.ts +3 -3
- package/SwipeableDrawer/SwipeableDrawer.js +4 -4
- package/Switch/Switch.d.ts +4 -4
- package/Switch/Switch.js +3 -3
- package/Tab/Tab.d.ts +4 -4
- package/Tab/Tab.js +14 -10
- package/Tab/tabClasses.d.ts +5 -1
- package/Tab/tabClasses.js +1 -1
- package/TabScrollButton/TabScrollButton.d.ts +3 -3
- package/TabScrollButton/TabScrollButton.js +4 -4
- package/Table/Table.d.ts +2 -2
- package/Table/Table.js +3 -3
- package/TableBody/TableBody.d.ts +2 -2
- package/TableBody/TableBody.js +3 -3
- package/TableCell/TableCell.d.ts +2 -2
- package/TableCell/TableCell.js +3 -3
- package/TableContainer/TableContainer.d.ts +2 -2
- package/TableContainer/TableContainer.js +3 -3
- package/TableFooter/TableFooter.d.ts +2 -2
- package/TableFooter/TableFooter.js +3 -3
- package/TableHead/TableHead.d.ts +2 -2
- package/TableHead/TableHead.js +3 -3
- package/TablePagination/TablePagination.d.ts +4 -4
- package/TablePagination/TablePagination.js +4 -4
- package/TableRow/TableRow.d.ts +2 -2
- package/TableRow/TableRow.js +3 -3
- package/TableSortLabel/TableSortLabel.d.ts +3 -3
- package/TableSortLabel/TableSortLabel.js +4 -4
- package/TableSortLabel/tableSortLabelClasses.d.ts +10 -2
- package/TableSortLabel/tableSortLabelClasses.js +1 -1
- package/Tabs/Tabs.d.ts +3 -3
- package/Tabs/Tabs.js +6 -15
- package/TextField/TextField.d.ts +10 -10
- package/TextField/TextField.js +3 -3
- package/TextareaAutosize/TextareaAutosize.d.ts +14 -0
- package/TextareaAutosize/TextareaAutosize.js +222 -0
- package/TextareaAutosize/TextareaAutosize.types.d.ts +13 -0
- package/TextareaAutosize/TextareaAutosize.types.js +1 -0
- package/TextareaAutosize/index.d.ts +3 -2
- package/TextareaAutosize/index.js +1 -1
- package/ToggleButton/ToggleButton.d.ts +3 -3
- package/ToggleButton/ToggleButton.js +3 -3
- package/ToggleButtonGroup/ToggleButtonGroup.d.ts +2 -2
- package/ToggleButtonGroup/ToggleButtonGroup.js +3 -3
- package/Toolbar/Toolbar.d.ts +2 -2
- package/Toolbar/Toolbar.js +3 -3
- package/Tooltip/Tooltip.d.ts +2 -2
- package/Tooltip/Tooltip.js +8 -19
- package/Typography/Typography.d.ts +3 -3
- package/Typography/Typography.js +4 -4
- package/Unstable_TrapFocus/FocusTrap.d.ts +10 -0
- package/Unstable_TrapFocus/FocusTrap.js +330 -0
- package/Unstable_TrapFocus/FocusTrap.types.d.ts +51 -0
- package/Unstable_TrapFocus/FocusTrap.types.js +1 -0
- package/Unstable_TrapFocus/index.d.ts +2 -2
- package/Unstable_TrapFocus/index.js +1 -1
- package/Zoom/Zoom.d.ts +3 -3
- package/Zoom/Zoom.js +1 -1
- package/index.d.ts +1 -1
- package/index.js +2 -2
- package/modern/Accordion/Accordion.js +3 -5
- package/modern/AccordionActions/AccordionActions.js +3 -3
- package/modern/AccordionDetails/AccordionDetails.js +3 -3
- package/modern/AccordionSummary/AccordionSummary.js +3 -3
- package/modern/Alert/Alert.js +3 -3
- package/modern/AlertTitle/AlertTitle.js +3 -3
- package/modern/AppBar/AppBar.js +5 -9
- package/modern/Autocomplete/Autocomplete.js +14 -27
- package/modern/Avatar/Avatar.js +3 -4
- package/modern/AvatarGroup/AvatarGroup.js +3 -3
- package/modern/Backdrop/Backdrop.js +5 -8
- package/modern/Badge/Badge.js +5 -5
- package/modern/Badge/useBadge.js +41 -0
- package/modern/Badge/useBadge.types.js +1 -0
- package/modern/BottomNavigation/BottomNavigation.js +3 -3
- package/modern/BottomNavigationAction/BottomNavigationAction.js +3 -3
- package/modern/Breadcrumbs/Breadcrumbs.js +4 -4
- package/modern/Button/Button.js +3 -3
- package/modern/ButtonBase/ButtonBase.js +23 -52
- package/modern/ButtonBase/TouchRipple.js +3 -3
- package/modern/ButtonGroup/ButtonGroup.js +3 -3
- package/modern/Card/Card.js +3 -3
- package/modern/CardActionArea/CardActionArea.js +3 -3
- package/modern/CardActions/CardActions.js +3 -3
- package/modern/CardContent/CardContent.js +3 -3
- package/modern/CardHeader/CardHeader.js +3 -3
- package/modern/CardMedia/CardMedia.js +3 -3
- package/modern/Checkbox/Checkbox.js +3 -3
- package/modern/Chip/Chip.js +3 -5
- package/modern/CircularProgress/CircularProgress.js +3 -3
- package/modern/ClickAwayListener/ClickAwayListener.js +178 -0
- package/modern/ClickAwayListener/index.js +1 -1
- package/modern/Collapse/Collapse.js +3 -4
- package/modern/CssBaseline/CssBaseline.js +66 -8
- package/modern/DefaultPropsProvider/DefaultPropsProvider.js +29 -0
- package/modern/DefaultPropsProvider/index.js +1 -0
- package/modern/Dialog/Dialog.js +4 -7
- package/modern/DialogActions/DialogActions.js +3 -3
- package/modern/DialogContent/DialogContent.js +3 -3
- package/modern/DialogContentText/DialogContentText.js +3 -3
- package/modern/DialogTitle/DialogTitle.js +3 -3
- package/modern/Divider/Divider.js +3 -3
- package/modern/Drawer/Drawer.js +3 -4
- package/modern/Fab/Fab.js +3 -3
- package/modern/Fade/Fade.js +1 -1
- package/modern/FilledInput/FilledInput.js +13 -11
- package/modern/FilledInput/filledInputClasses.js +1 -1
- package/modern/FormControl/FormControl.js +3 -3
- package/modern/FormControlLabel/FormControlLabel.js +3 -3
- package/modern/FormGroup/FormGroup.js +3 -3
- package/modern/FormHelperText/FormHelperText.js +3 -3
- package/modern/FormLabel/FormLabel.js +3 -3
- package/modern/Grid/Grid.js +7 -13
- package/modern/Grow/Grow.js +1 -1
- package/modern/Icon/Icon.js +3 -3
- package/modern/IconButton/IconButton.js +3 -5
- package/modern/ImageList/ImageList.js +3 -11
- package/modern/ImageListItem/ImageListItem.js +3 -3
- package/modern/ImageListItemBar/ImageListItemBar.js +3 -3
- package/modern/InitColorSchemeScript/InitColorSchemeScript.js +16 -0
- package/modern/InitColorSchemeScript/index.js +1 -0
- package/modern/Input/Input.js +5 -9
- package/modern/InputAdornment/InputAdornment.js +3 -5
- package/modern/InputBase/InputBase.js +33 -42
- package/modern/InputLabel/InputLabel.js +3 -3
- package/modern/LinearProgress/LinearProgress.js +3 -3
- package/modern/Link/Link.js +7 -18
- package/modern/List/List.js +3 -3
- package/modern/ListItem/ListItem.js +4 -4
- package/modern/ListItemAvatar/ListItemAvatar.js +3 -3
- package/modern/ListItemButton/ListItemButton.js +3 -3
- package/modern/ListItemIcon/ListItemIcon.js +3 -3
- package/modern/ListItemSecondaryAction/ListItemSecondaryAction.js +3 -3
- package/modern/ListItemText/ListItemText.js +3 -3
- package/modern/ListSubheader/ListSubheader.js +3 -3
- package/modern/Menu/Menu.js +5 -8
- package/modern/MenuItem/MenuItem.js +3 -3
- package/modern/MobileStepper/MobileStepper.js +3 -3
- package/modern/Modal/Modal.js +33 -25
- package/modern/Modal/ModalManager.js +211 -0
- package/modern/Modal/index.js +1 -1
- package/modern/Modal/useModal.js +195 -0
- package/modern/Modal/useModal.types.js +1 -0
- package/modern/NativeSelect/NativeSelectInput.js +0 -4
- package/modern/NoSsr/NoSsr.js +73 -0
- package/modern/NoSsr/NoSsr.types.js +1 -0
- package/modern/NoSsr/index.js +1 -1
- package/modern/OutlinedInput/OutlinedInput.js +4 -5
- package/modern/Pagination/Pagination.js +3 -3
- package/modern/PaginationItem/PaginationItem.js +3 -3
- package/modern/Paper/Paper.js +3 -4
- package/modern/PigmentContainer/PigmentContainer.js +98 -0
- package/modern/PigmentContainer/index.js +3 -0
- package/modern/PigmentGrid/PigmentGrid.js +149 -0
- package/modern/PigmentGrid/index.js +3 -0
- package/modern/PigmentHidden/PigmentHidden.js +278 -0
- package/modern/PigmentHidden/index.js +2 -0
- package/modern/PigmentStack/PigmentStack.js +81 -0
- package/modern/PigmentStack/index.js +3 -0
- package/modern/Popover/Popover.js +30 -29
- package/modern/Popper/BasePopper.js +370 -0
- package/modern/Popper/BasePopper.types.js +1 -0
- package/modern/Popper/Popper.js +11 -10
- package/modern/Popper/index.js +2 -1
- package/modern/Popper/popperClasses.js +7 -0
- package/modern/Portal/Portal.js +92 -0
- package/modern/Portal/Portal.types.js +1 -0
- package/modern/Portal/index.js +1 -1
- package/modern/Radio/Radio.js +3 -3
- package/modern/Rating/Rating.js +8 -15
- package/modern/ScopedCssBaseline/ScopedCssBaseline.js +24 -11
- package/modern/Skeleton/Skeleton.js +3 -3
- package/modern/Slide/Slide.js +1 -1
- package/modern/Slider/Slider.js +6 -5
- package/modern/Slider/useSlider.js +647 -0
- package/modern/Slider/useSlider.types.js +1 -0
- package/modern/Snackbar/Snackbar.js +6 -7
- package/modern/Snackbar/useSnackbar.js +133 -0
- package/modern/Snackbar/useSnackbar.types.js +1 -0
- package/modern/SnackbarContent/SnackbarContent.js +3 -3
- package/modern/SpeedDial/SpeedDial.js +3 -6
- package/modern/SpeedDialAction/SpeedDialAction.js +3 -3
- package/modern/SpeedDialIcon/SpeedDialIcon.js +3 -3
- package/modern/Step/Step.js +3 -3
- package/modern/StepButton/StepButton.js +3 -3
- package/modern/StepConnector/StepConnector.js +3 -3
- package/modern/StepContent/StepContent.js +3 -3
- package/modern/StepIcon/StepIcon.js +3 -3
- package/modern/StepLabel/StepLabel.js +3 -7
- package/modern/Stepper/Stepper.js +7 -5
- package/modern/Stepper/stepperClasses.js +1 -1
- package/modern/SvgIcon/SvgIcon.js +3 -3
- package/modern/SwipeableDrawer/SwipeableDrawer.js +4 -4
- package/modern/Switch/Switch.js +3 -3
- package/modern/Tab/Tab.js +14 -10
- package/modern/Tab/tabClasses.js +1 -1
- package/modern/TabScrollButton/TabScrollButton.js +4 -4
- package/modern/Table/Table.js +3 -3
- package/modern/TableBody/TableBody.js +3 -3
- package/modern/TableCell/TableCell.js +3 -3
- package/modern/TableContainer/TableContainer.js +3 -3
- package/modern/TableFooter/TableFooter.js +3 -3
- package/modern/TableHead/TableHead.js +3 -3
- package/modern/TablePagination/TablePagination.js +4 -4
- package/modern/TableRow/TableRow.js +3 -3
- package/modern/TableSortLabel/TableSortLabel.js +4 -4
- package/modern/TableSortLabel/tableSortLabelClasses.js +1 -1
- package/modern/Tabs/Tabs.js +6 -15
- package/modern/TextField/TextField.js +3 -3
- package/modern/TextareaAutosize/TextareaAutosize.js +222 -0
- package/modern/TextareaAutosize/TextareaAutosize.types.js +1 -0
- package/modern/TextareaAutosize/index.js +1 -1
- package/modern/ToggleButton/ToggleButton.js +3 -3
- package/modern/ToggleButtonGroup/ToggleButtonGroup.js +3 -3
- package/modern/Toolbar/Toolbar.js +3 -3
- package/modern/Tooltip/Tooltip.js +8 -19
- package/modern/Typography/Typography.js +4 -4
- package/modern/Unstable_TrapFocus/FocusTrap.js +330 -0
- package/modern/Unstable_TrapFocus/FocusTrap.types.js +1 -0
- package/modern/Unstable_TrapFocus/index.js +1 -1
- package/modern/Zoom/Zoom.js +1 -1
- package/modern/index.js +2 -2
- package/modern/styles/CssVarsProvider.js +19 -7
- package/modern/styles/createTheme.js +1 -1
- package/modern/styles/createTransitions.js +2 -2
- package/modern/styles/extendTheme.js +3 -0
- package/modern/styles/index.js +1 -1
- package/modern/styles/stringifyTheme.js +55 -0
- package/modern/useAutocomplete/useAutocomplete.js +976 -2
- package/modern/useLazyRipple/index.js +3 -0
- package/modern/useLazyRipple/useLazyRipple.js +85 -0
- package/modern/usePagination/usePagination.js +1 -1
- package/modern/utils/PolymorphicComponent.js +1 -0
- package/modern/utils/areArraysEqual.js +4 -0
- package/modern/utils/index.js +1 -2
- package/modern/utils/isHostComponent.js +7 -0
- package/modern/utils/omitEventHandlers.js +18 -0
- package/modern/utils/shouldSpreadAdditionalProps.js +1 -1
- package/modern/utils/useSlot.js +3 -1
- package/modern/zero-styled/index.js +24 -5
- package/node/Accordion/Accordion.js +2 -4
- package/node/AccordionActions/AccordionActions.js +2 -2
- package/node/AccordionDetails/AccordionDetails.js +2 -2
- package/node/AccordionSummary/AccordionSummary.js +2 -2
- package/node/Alert/Alert.js +2 -2
- package/node/AlertTitle/AlertTitle.js +2 -2
- package/node/AppBar/AppBar.js +4 -8
- package/node/Autocomplete/Autocomplete.js +15 -28
- package/node/Avatar/Avatar.js +2 -3
- package/node/AvatarGroup/AvatarGroup.js +2 -2
- package/node/Backdrop/Backdrop.js +4 -7
- package/node/Badge/Badge.js +7 -7
- package/node/Badge/useBadge.js +46 -0
- package/node/Badge/useBadge.types.js +5 -0
- package/node/BottomNavigation/BottomNavigation.js +2 -2
- package/node/BottomNavigationAction/BottomNavigationAction.js +2 -2
- package/node/Breadcrumbs/Breadcrumbs.js +4 -4
- package/node/Button/Button.js +2 -2
- package/node/ButtonBase/ButtonBase.js +22 -51
- package/node/ButtonBase/TouchRipple.js +2 -2
- package/node/ButtonGroup/ButtonGroup.js +2 -2
- package/node/Card/Card.js +2 -2
- package/node/CardActionArea/CardActionArea.js +2 -2
- package/node/CardActions/CardActions.js +2 -2
- package/node/CardContent/CardContent.js +2 -2
- package/node/CardHeader/CardHeader.js +2 -2
- package/node/CardMedia/CardMedia.js +2 -2
- package/node/Checkbox/Checkbox.js +2 -2
- package/node/Chip/Chip.js +2 -4
- package/node/CircularProgress/CircularProgress.js +2 -2
- package/node/ClickAwayListener/ClickAwayListener.js +184 -0
- package/node/ClickAwayListener/index.js +1 -1
- package/node/Collapse/Collapse.js +3 -4
- package/node/CssBaseline/CssBaseline.js +70 -10
- package/node/DefaultPropsProvider/DefaultPropsProvider.js +38 -0
- package/node/DefaultPropsProvider/index.js +20 -0
- package/node/Dialog/Dialog.js +4 -7
- package/node/DialogActions/DialogActions.js +2 -2
- package/node/DialogContent/DialogContent.js +2 -2
- package/node/DialogContentText/DialogContentText.js +2 -2
- package/node/DialogTitle/DialogTitle.js +2 -2
- package/node/Divider/Divider.js +2 -2
- package/node/Drawer/Drawer.js +3 -4
- package/node/Fab/Fab.js +2 -2
- package/node/Fade/Fade.js +2 -2
- package/node/FilledInput/FilledInput.js +12 -10
- package/node/FilledInput/filledInputClasses.js +1 -1
- package/node/FormControl/FormControl.js +2 -2
- package/node/FormControlLabel/FormControlLabel.js +2 -2
- package/node/FormGroup/FormGroup.js +2 -2
- package/node/FormHelperText/FormHelperText.js +2 -2
- package/node/FormLabel/FormLabel.js +2 -2
- package/node/Grid/Grid.js +7 -13
- package/node/Grow/Grow.js +2 -2
- package/node/Icon/Icon.js +2 -2
- package/node/IconButton/IconButton.js +2 -4
- package/node/ImageList/ImageList.js +2 -10
- package/node/ImageListItem/ImageListItem.js +2 -2
- package/node/ImageListItemBar/ImageListItemBar.js +2 -2
- package/node/InitColorSchemeScript/InitColorSchemeScript.js +25 -0
- package/node/InitColorSchemeScript/index.js +13 -0
- package/node/Input/Input.js +4 -8
- package/node/InputAdornment/InputAdornment.js +2 -4
- package/node/InputBase/InputBase.js +37 -46
- package/node/InputLabel/InputLabel.js +2 -2
- package/node/LinearProgress/LinearProgress.js +2 -2
- package/node/Link/Link.js +7 -18
- package/node/List/List.js +2 -2
- package/node/ListItem/ListItem.js +5 -5
- package/node/ListItemAvatar/ListItemAvatar.js +2 -2
- package/node/ListItemButton/ListItemButton.js +2 -2
- package/node/ListItemIcon/ListItemIcon.js +2 -2
- package/node/ListItemSecondaryAction/ListItemSecondaryAction.js +2 -2
- package/node/ListItemText/ListItemText.js +2 -2
- package/node/ListSubheader/ListSubheader.js +2 -2
- package/node/Menu/Menu.js +6 -9
- package/node/MenuItem/MenuItem.js +2 -2
- package/node/MobileStepper/MobileStepper.js +2 -2
- package/node/Modal/Modal.js +33 -26
- package/node/Modal/ModalManager.js +219 -0
- package/node/Modal/index.js +2 -2
- package/node/Modal/useModal.js +205 -0
- package/node/Modal/useModal.types.js +5 -0
- package/node/NativeSelect/NativeSelectInput.js +0 -4
- package/node/NoSsr/NoSsr.js +81 -0
- package/node/NoSsr/NoSsr.types.js +5 -0
- package/node/NoSsr/index.js +3 -2
- package/node/OutlinedInput/OutlinedInput.js +3 -4
- package/node/Pagination/Pagination.js +2 -2
- package/node/PaginationItem/PaginationItem.js +2 -2
- package/node/Paper/Paper.js +3 -4
- package/node/PigmentContainer/PigmentContainer.js +108 -0
- package/node/PigmentContainer/index.js +36 -0
- package/node/PigmentGrid/PigmentGrid.js +159 -0
- package/node/PigmentGrid/index.js +36 -0
- package/node/PigmentHidden/PigmentHidden.js +287 -0
- package/node/PigmentHidden/index.js +26 -0
- package/node/PigmentStack/PigmentStack.js +91 -0
- package/node/PigmentStack/index.js +36 -0
- package/node/Popover/Popover.js +31 -30
- package/node/Popper/BasePopper.js +379 -0
- package/node/Popper/BasePopper.types.js +5 -0
- package/node/Popper/Popper.js +12 -11
- package/node/Popper/index.js +14 -1
- package/node/Popper/popperClasses.js +15 -0
- package/node/Portal/Portal.js +100 -0
- package/node/Portal/Portal.types.js +5 -0
- package/node/Portal/index.js +3 -2
- package/node/Radio/Radio.js +2 -2
- package/node/Rating/Rating.js +6 -13
- package/node/ScopedCssBaseline/ScopedCssBaseline.js +27 -13
- package/node/Skeleton/Skeleton.js +2 -2
- package/node/Slide/Slide.js +2 -2
- package/node/Slider/Slider.js +16 -15
- package/node/Slider/useSlider.js +670 -0
- package/node/Slider/useSlider.types.js +5 -0
- package/node/Snackbar/Snackbar.js +9 -10
- package/node/Snackbar/useSnackbar.js +141 -0
- package/node/Snackbar/useSnackbar.types.js +5 -0
- package/node/SnackbarContent/SnackbarContent.js +2 -2
- package/node/SpeedDial/SpeedDial.js +3 -6
- package/node/SpeedDialAction/SpeedDialAction.js +2 -2
- package/node/SpeedDialIcon/SpeedDialIcon.js +2 -2
- package/node/Step/Step.js +2 -2
- package/node/StepButton/StepButton.js +2 -2
- package/node/StepConnector/StepConnector.js +2 -2
- package/node/StepContent/StepContent.js +2 -2
- package/node/StepIcon/StepIcon.js +2 -2
- package/node/StepLabel/StepLabel.js +2 -6
- package/node/Stepper/Stepper.js +6 -4
- package/node/Stepper/stepperClasses.js +1 -1
- package/node/SvgIcon/SvgIcon.js +2 -2
- package/node/SwipeableDrawer/SwipeableDrawer.js +6 -6
- package/node/Switch/Switch.js +2 -2
- package/node/Tab/Tab.js +13 -9
- package/node/Tab/tabClasses.js +1 -1
- package/node/TabScrollButton/TabScrollButton.js +5 -5
- package/node/Table/Table.js +2 -2
- package/node/TableBody/TableBody.js +2 -2
- package/node/TableCell/TableCell.js +2 -2
- package/node/TableContainer/TableContainer.js +2 -2
- package/node/TableFooter/TableFooter.js +2 -2
- package/node/TableHead/TableHead.js +2 -2
- package/node/TablePagination/TablePagination.js +4 -4
- package/node/TableRow/TableRow.js +2 -2
- package/node/TableSortLabel/TableSortLabel.js +3 -3
- package/node/TableSortLabel/tableSortLabelClasses.js +1 -1
- package/node/Tabs/Tabs.js +8 -17
- package/node/TextField/TextField.js +2 -2
- package/node/TextareaAutosize/TextareaAutosize.js +230 -0
- package/node/TextareaAutosize/TextareaAutosize.types.js +5 -0
- package/node/TextareaAutosize/index.js +3 -2
- package/node/ToggleButton/ToggleButton.js +2 -2
- package/node/ToggleButtonGroup/ToggleButtonGroup.js +2 -2
- package/node/Toolbar/Toolbar.js +2 -2
- package/node/Tooltip/Tooltip.js +12 -23
- package/node/Typography/Typography.js +4 -4
- package/node/Unstable_TrapFocus/FocusTrap.js +339 -0
- package/node/Unstable_TrapFocus/FocusTrap.types.js +5 -0
- package/node/Unstable_TrapFocus/index.js +3 -2
- package/node/Zoom/Zoom.js +2 -2
- package/node/index.js +3 -3
- package/node/styles/CssVarsProvider.js +20 -8
- package/node/styles/createTheme.js +1 -1
- package/node/styles/createTransitions.js +2 -2
- package/node/styles/extendTheme.js +3 -0
- package/node/styles/index.js +8 -1
- package/node/styles/stringifyTheme.js +62 -0
- package/node/useAutocomplete/useAutocomplete.js +985 -18
- package/node/{useTouchRipple → useLazyRipple}/index.js +2 -2
- package/node/useLazyRipple/useLazyRipple.js +104 -0
- package/node/usePagination/usePagination.js +1 -1
- package/node/utils/PolymorphicComponent.js +5 -0
- package/node/utils/areArraysEqual.js +10 -0
- package/node/utils/index.js +2 -9
- package/node/utils/isHostComponent.js +13 -0
- package/node/utils/omitEventHandlers.js +24 -0
- package/node/utils/shouldSpreadAdditionalProps.js +3 -2
- package/node/utils/useSlot.js +6 -4
- package/node/zero-styled/index.js +33 -5
- package/package.json +23 -8
- package/styles/CssVarsProvider.d.ts +3 -2
- package/styles/CssVarsProvider.js +19 -7
- package/styles/createTheme.js +1 -1
- package/styles/createTransitions.js +2 -2
- package/styles/extendTheme.js +3 -0
- package/styles/index.d.ts +1 -0
- package/styles/index.js +1 -1
- package/styles/overrides.d.ts +1 -1
- package/styles/responsiveFontSizes.d.ts +3 -4
- package/styles/stringifyTheme.d.ts +20 -0
- package/styles/stringifyTheme.js +55 -0
- package/useAutocomplete/useAutocomplete.d.ts +468 -2
- package/useAutocomplete/useAutocomplete.js +976 -2
- package/useLazyRipple/index.d.ts +1 -0
- package/useLazyRipple/index.js +3 -0
- package/useLazyRipple/package.json +6 -0
- package/useLazyRipple/useLazyRipple.d.ts +32 -0
- package/useLazyRipple/useLazyRipple.js +85 -0
- package/usePagination/usePagination.js +1 -1
- package/utils/PolymorphicComponent.d.ts +17 -0
- package/utils/PolymorphicComponent.js +1 -0
- package/utils/areArraysEqual.d.ts +3 -0
- package/utils/areArraysEqual.js +4 -0
- package/utils/index.d.ts +2 -2
- package/utils/index.js +1 -2
- package/utils/isHostComponent.d.ts +6 -0
- package/utils/isHostComponent.js +7 -0
- package/utils/omitEventHandlers.d.ts +9 -0
- package/utils/omitEventHandlers.js +18 -0
- package/utils/shouldSpreadAdditionalProps.js +1 -1
- package/utils/types.d.ts +2 -1
- package/utils/useSlot.js +3 -1
- package/zero-styled/index.d.ts +10 -2
- package/zero-styled/index.js +24 -5
- package/modern/useMediaQuery/useMediaQueryTheme.js +0 -8
- package/modern/useTouchRipple/index.js +0 -3
- package/modern/useTouchRipple/useTouchRipple.js +0 -94
- package/modern/utils/scrollLeft.js +0 -1
- package/modern/utils/useIsFocusVisible.js +0 -4
- package/node/useMediaQuery/useMediaQueryTheme.js +0 -13
- package/node/useTouchRipple/useTouchRipple.js +0 -105
- package/node/utils/scrollLeft.js +0 -18
- package/node/utils/useIsFocusVisible.js +0 -10
- package/useMediaQuery/useMediaQueryTheme.d.ts +0 -3
- package/useMediaQuery/useMediaQueryTheme.js +0 -8
- package/useTouchRipple/index.d.ts +0 -1
- package/useTouchRipple/index.js +0 -3
- package/useTouchRipple/useTouchRipple.d.ts +0 -28
- package/useTouchRipple/useTouchRipple.js +0 -94
- package/utils/scrollLeft.js +0 -1
- package/utils/useIsFocusVisible.d.ts +0 -3
- package/utils/useIsFocusVisible.js +0 -4
package/modern/Modal/Modal.js
CHANGED
|
@@ -5,16 +5,17 @@ import PropTypes from 'prop-types';
|
|
|
5
5
|
import clsx from 'clsx';
|
|
6
6
|
import HTMLElementType from '@mui/utils/HTMLElementType';
|
|
7
7
|
import elementAcceptingRef from '@mui/utils/elementAcceptingRef';
|
|
8
|
-
import { useSlotProps } from '@mui/base/utils';
|
|
9
|
-
import { unstable_useModal as useModal } from '@mui/base/unstable_useModal';
|
|
10
8
|
import composeClasses from '@mui/utils/composeClasses';
|
|
11
9
|
import FocusTrap from '../Unstable_TrapFocus';
|
|
12
10
|
import Portal from '../Portal';
|
|
13
|
-
import { styled
|
|
11
|
+
import { styled } from '../zero-styled';
|
|
12
|
+
import { useDefaultProps } from '../DefaultPropsProvider';
|
|
14
13
|
import Backdrop from '../Backdrop';
|
|
14
|
+
import useModal from './useModal';
|
|
15
15
|
import { getModalUtilityClass } from './modalClasses';
|
|
16
|
+
import useSlot from '../utils/useSlot';
|
|
17
|
+
import { useForkRef } from '../utils';
|
|
16
18
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
-
const useThemeProps = createUseThemeProps('MuiModal');
|
|
18
19
|
const useUtilityClasses = ownerState => {
|
|
19
20
|
const {
|
|
20
21
|
open,
|
|
@@ -78,7 +79,7 @@ const ModalBackdrop = styled(Backdrop, {
|
|
|
78
79
|
* This component shares many concepts with [react-overlays](https://react-bootstrap.github.io/react-overlays/#modals).
|
|
79
80
|
*/
|
|
80
81
|
const Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {
|
|
81
|
-
const props =
|
|
82
|
+
const props = useDefaultProps({
|
|
82
83
|
name: 'MuiModal',
|
|
83
84
|
props: inProps
|
|
84
85
|
});
|
|
@@ -106,8 +107,8 @@ const Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {
|
|
|
106
107
|
onTransitionEnter,
|
|
107
108
|
onTransitionExited,
|
|
108
109
|
open,
|
|
109
|
-
slotProps,
|
|
110
|
-
slots,
|
|
110
|
+
slotProps = {},
|
|
111
|
+
slots = {},
|
|
111
112
|
// eslint-disable-next-line react/prop-types
|
|
112
113
|
theme,
|
|
113
114
|
...other
|
|
@@ -155,25 +156,31 @@ const Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {
|
|
|
155
156
|
childProps.onEnter = onEnter;
|
|
156
157
|
childProps.onExited = onExited;
|
|
157
158
|
}
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
159
|
+
const externalForwardedProps = {
|
|
160
|
+
slots: {
|
|
161
|
+
root: components.Root,
|
|
162
|
+
backdrop: components.Backdrop,
|
|
163
|
+
...slots
|
|
164
|
+
},
|
|
165
|
+
slotProps: {
|
|
166
|
+
...componentsProps,
|
|
167
|
+
...slotProps
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
const [RootSlot, rootProps] = useSlot('root', {
|
|
171
|
+
elementType: ModalRoot,
|
|
172
|
+
externalForwardedProps,
|
|
166
173
|
getSlotProps: getRootProps,
|
|
167
174
|
additionalProps: {
|
|
168
175
|
ref,
|
|
169
176
|
as: component
|
|
170
177
|
},
|
|
171
178
|
ownerState,
|
|
172
|
-
className: clsx(className,
|
|
179
|
+
className: clsx(className, classes?.root, !ownerState.open && ownerState.exited && classes?.hidden)
|
|
173
180
|
});
|
|
174
|
-
const backdropProps =
|
|
175
|
-
elementType:
|
|
176
|
-
|
|
181
|
+
const [BackdropSlot, backdropProps] = useSlot('backdrop', {
|
|
182
|
+
elementType: BackdropComponent,
|
|
183
|
+
externalForwardedProps,
|
|
177
184
|
additionalProps: BackdropProps,
|
|
178
185
|
getSlotProps: otherHandlers => {
|
|
179
186
|
return getBackdropProps({
|
|
@@ -188,9 +195,10 @@ const Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {
|
|
|
188
195
|
}
|
|
189
196
|
});
|
|
190
197
|
},
|
|
191
|
-
className: clsx(
|
|
198
|
+
className: clsx(BackdropProps?.className, classes?.backdrop),
|
|
192
199
|
ownerState
|
|
193
200
|
});
|
|
201
|
+
const backdropRef = useForkRef(BackdropProps?.ref, backdropProps.ref);
|
|
194
202
|
if (!keepMounted && !open && (!hasTransition || exited)) {
|
|
195
203
|
return null;
|
|
196
204
|
}
|
|
@@ -200,8 +208,10 @@ const Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {
|
|
|
200
208
|
disablePortal: disablePortal,
|
|
201
209
|
children: /*#__PURE__*/_jsxs(RootSlot, {
|
|
202
210
|
...rootProps,
|
|
211
|
+
...other,
|
|
203
212
|
children: [!hideBackdrop && BackdropComponent ? /*#__PURE__*/_jsx(BackdropSlot, {
|
|
204
|
-
...backdropProps
|
|
213
|
+
...backdropProps,
|
|
214
|
+
ref: backdropRef
|
|
205
215
|
}) : null, /*#__PURE__*/_jsx(FocusTrap, {
|
|
206
216
|
disableEnforceFocus: disableEnforceFocus,
|
|
207
217
|
disableAutoFocus: disableAutoFocus,
|
|
@@ -263,8 +273,7 @@ process.env.NODE_ENV !== "production" ? Modal.propTypes /* remove-proptypes */ =
|
|
|
263
273
|
/**
|
|
264
274
|
* The components used for each slot inside.
|
|
265
275
|
*
|
|
266
|
-
* This prop
|
|
267
|
-
* It's recommended to use the `slots` prop instead.
|
|
276
|
+
* @deprecated Use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
|
|
268
277
|
*
|
|
269
278
|
* @default {}
|
|
270
279
|
*/
|
|
@@ -276,8 +285,7 @@ process.env.NODE_ENV !== "production" ? Modal.propTypes /* remove-proptypes */ =
|
|
|
276
285
|
* The extra props for the slot components.
|
|
277
286
|
* You can override the existing props or add new ones.
|
|
278
287
|
*
|
|
279
|
-
* This prop
|
|
280
|
-
* It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.
|
|
288
|
+
* @deprecated Use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
|
|
281
289
|
*
|
|
282
290
|
* @default {}
|
|
283
291
|
*/
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { unstable_ownerWindow as ownerWindow, unstable_ownerDocument as ownerDocument, unstable_getScrollbarSize as getScrollbarSize } from '@mui/utils';
|
|
2
|
+
// Is a vertical scrollbar displayed?
|
|
3
|
+
function isOverflowing(container) {
|
|
4
|
+
const doc = ownerDocument(container);
|
|
5
|
+
if (doc.body === container) {
|
|
6
|
+
return ownerWindow(container).innerWidth > doc.documentElement.clientWidth;
|
|
7
|
+
}
|
|
8
|
+
return container.scrollHeight > container.clientHeight;
|
|
9
|
+
}
|
|
10
|
+
export function ariaHidden(element, show) {
|
|
11
|
+
if (show) {
|
|
12
|
+
element.setAttribute('aria-hidden', 'true');
|
|
13
|
+
} else {
|
|
14
|
+
element.removeAttribute('aria-hidden');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function getPaddingRight(element) {
|
|
18
|
+
return parseInt(ownerWindow(element).getComputedStyle(element).paddingRight, 10) || 0;
|
|
19
|
+
}
|
|
20
|
+
function isAriaHiddenForbiddenOnElement(element) {
|
|
21
|
+
// The forbidden HTML tags are the ones from ARIA specification that
|
|
22
|
+
// can be children of body and can't have aria-hidden attribute.
|
|
23
|
+
// cf. https://www.w3.org/TR/html-aria/#docconformance
|
|
24
|
+
const forbiddenTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE', 'LINK', 'MAP', 'META', 'NOSCRIPT', 'PICTURE', 'COL', 'COLGROUP', 'PARAM', 'SLOT', 'SOURCE', 'TRACK'];
|
|
25
|
+
const isForbiddenTagName = forbiddenTagNames.indexOf(element.tagName) !== -1;
|
|
26
|
+
const isInputHidden = element.tagName === 'INPUT' && element.getAttribute('type') === 'hidden';
|
|
27
|
+
return isForbiddenTagName || isInputHidden;
|
|
28
|
+
}
|
|
29
|
+
function ariaHiddenSiblings(container, mountElement, currentElement, elementsToExclude, show) {
|
|
30
|
+
const blacklist = [mountElement, currentElement, ...elementsToExclude];
|
|
31
|
+
[].forEach.call(container.children, element => {
|
|
32
|
+
const isNotExcludedElement = blacklist.indexOf(element) === -1;
|
|
33
|
+
const isNotForbiddenElement = !isAriaHiddenForbiddenOnElement(element);
|
|
34
|
+
if (isNotExcludedElement && isNotForbiddenElement) {
|
|
35
|
+
ariaHidden(element, show);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function findIndexOf(items, callback) {
|
|
40
|
+
let idx = -1;
|
|
41
|
+
items.some((item, index) => {
|
|
42
|
+
if (callback(item)) {
|
|
43
|
+
idx = index;
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
return false;
|
|
47
|
+
});
|
|
48
|
+
return idx;
|
|
49
|
+
}
|
|
50
|
+
function handleContainer(containerInfo, props) {
|
|
51
|
+
const restoreStyle = [];
|
|
52
|
+
const container = containerInfo.container;
|
|
53
|
+
if (!props.disableScrollLock) {
|
|
54
|
+
if (isOverflowing(container)) {
|
|
55
|
+
// Compute the size before applying overflow hidden to avoid any scroll jumps.
|
|
56
|
+
const scrollbarSize = getScrollbarSize(ownerDocument(container));
|
|
57
|
+
restoreStyle.push({
|
|
58
|
+
value: container.style.paddingRight,
|
|
59
|
+
property: 'padding-right',
|
|
60
|
+
el: container
|
|
61
|
+
});
|
|
62
|
+
// Use computed style, here to get the real padding to add our scrollbar width.
|
|
63
|
+
container.style.paddingRight = `${getPaddingRight(container) + scrollbarSize}px`;
|
|
64
|
+
|
|
65
|
+
// .mui-fixed is a global helper.
|
|
66
|
+
const fixedElements = ownerDocument(container).querySelectorAll('.mui-fixed');
|
|
67
|
+
[].forEach.call(fixedElements, element => {
|
|
68
|
+
restoreStyle.push({
|
|
69
|
+
value: element.style.paddingRight,
|
|
70
|
+
property: 'padding-right',
|
|
71
|
+
el: element
|
|
72
|
+
});
|
|
73
|
+
element.style.paddingRight = `${getPaddingRight(element) + scrollbarSize}px`;
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
let scrollContainer;
|
|
77
|
+
if (container.parentNode instanceof DocumentFragment) {
|
|
78
|
+
scrollContainer = ownerDocument(container).body;
|
|
79
|
+
} else {
|
|
80
|
+
// Support html overflow-y: auto for scroll stability between pages
|
|
81
|
+
// https://css-tricks.com/snippets/css/force-vertical-scrollbar/
|
|
82
|
+
const parent = container.parentElement;
|
|
83
|
+
const containerWindow = ownerWindow(container);
|
|
84
|
+
scrollContainer = parent?.nodeName === 'HTML' && containerWindow.getComputedStyle(parent).overflowY === 'scroll' ? parent : container;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Block the scroll even if no scrollbar is visible to account for mobile keyboard
|
|
88
|
+
// screensize shrink.
|
|
89
|
+
restoreStyle.push({
|
|
90
|
+
value: scrollContainer.style.overflow,
|
|
91
|
+
property: 'overflow',
|
|
92
|
+
el: scrollContainer
|
|
93
|
+
}, {
|
|
94
|
+
value: scrollContainer.style.overflowX,
|
|
95
|
+
property: 'overflow-x',
|
|
96
|
+
el: scrollContainer
|
|
97
|
+
}, {
|
|
98
|
+
value: scrollContainer.style.overflowY,
|
|
99
|
+
property: 'overflow-y',
|
|
100
|
+
el: scrollContainer
|
|
101
|
+
});
|
|
102
|
+
scrollContainer.style.overflow = 'hidden';
|
|
103
|
+
}
|
|
104
|
+
const restore = () => {
|
|
105
|
+
restoreStyle.forEach(({
|
|
106
|
+
value,
|
|
107
|
+
el,
|
|
108
|
+
property
|
|
109
|
+
}) => {
|
|
110
|
+
if (value) {
|
|
111
|
+
el.style.setProperty(property, value);
|
|
112
|
+
} else {
|
|
113
|
+
el.style.removeProperty(property);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
return restore;
|
|
118
|
+
}
|
|
119
|
+
function getHiddenSiblings(container) {
|
|
120
|
+
const hiddenSiblings = [];
|
|
121
|
+
[].forEach.call(container.children, element => {
|
|
122
|
+
if (element.getAttribute('aria-hidden') === 'true') {
|
|
123
|
+
hiddenSiblings.push(element);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
return hiddenSiblings;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* @ignore - do not document.
|
|
130
|
+
*
|
|
131
|
+
* Proper state management for containers and the modals in those containers.
|
|
132
|
+
* Simplified, but inspired by react-overlay's ModalManager class.
|
|
133
|
+
* Used by the Modal to ensure proper styling of containers.
|
|
134
|
+
*/
|
|
135
|
+
export class ModalManager {
|
|
136
|
+
constructor() {
|
|
137
|
+
this.modals = [];
|
|
138
|
+
this.containers = [];
|
|
139
|
+
}
|
|
140
|
+
add(modal, container) {
|
|
141
|
+
let modalIndex = this.modals.indexOf(modal);
|
|
142
|
+
if (modalIndex !== -1) {
|
|
143
|
+
return modalIndex;
|
|
144
|
+
}
|
|
145
|
+
modalIndex = this.modals.length;
|
|
146
|
+
this.modals.push(modal);
|
|
147
|
+
|
|
148
|
+
// If the modal we are adding is already in the DOM.
|
|
149
|
+
if (modal.modalRef) {
|
|
150
|
+
ariaHidden(modal.modalRef, false);
|
|
151
|
+
}
|
|
152
|
+
const hiddenSiblings = getHiddenSiblings(container);
|
|
153
|
+
ariaHiddenSiblings(container, modal.mount, modal.modalRef, hiddenSiblings, true);
|
|
154
|
+
const containerIndex = findIndexOf(this.containers, item => item.container === container);
|
|
155
|
+
if (containerIndex !== -1) {
|
|
156
|
+
this.containers[containerIndex].modals.push(modal);
|
|
157
|
+
return modalIndex;
|
|
158
|
+
}
|
|
159
|
+
this.containers.push({
|
|
160
|
+
modals: [modal],
|
|
161
|
+
container,
|
|
162
|
+
restore: null,
|
|
163
|
+
hiddenSiblings
|
|
164
|
+
});
|
|
165
|
+
return modalIndex;
|
|
166
|
+
}
|
|
167
|
+
mount(modal, props) {
|
|
168
|
+
const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1);
|
|
169
|
+
const containerInfo = this.containers[containerIndex];
|
|
170
|
+
if (!containerInfo.restore) {
|
|
171
|
+
containerInfo.restore = handleContainer(containerInfo, props);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
remove(modal, ariaHiddenState = true) {
|
|
175
|
+
const modalIndex = this.modals.indexOf(modal);
|
|
176
|
+
if (modalIndex === -1) {
|
|
177
|
+
return modalIndex;
|
|
178
|
+
}
|
|
179
|
+
const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1);
|
|
180
|
+
const containerInfo = this.containers[containerIndex];
|
|
181
|
+
containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);
|
|
182
|
+
this.modals.splice(modalIndex, 1);
|
|
183
|
+
|
|
184
|
+
// If that was the last modal in a container, clean up the container.
|
|
185
|
+
if (containerInfo.modals.length === 0) {
|
|
186
|
+
// The modal might be closed before it had the chance to be mounted in the DOM.
|
|
187
|
+
if (containerInfo.restore) {
|
|
188
|
+
containerInfo.restore();
|
|
189
|
+
}
|
|
190
|
+
if (modal.modalRef) {
|
|
191
|
+
// In case the modal wasn't in the DOM yet.
|
|
192
|
+
ariaHidden(modal.modalRef, ariaHiddenState);
|
|
193
|
+
}
|
|
194
|
+
ariaHiddenSiblings(containerInfo.container, modal.mount, modal.modalRef, containerInfo.hiddenSiblings, false);
|
|
195
|
+
this.containers.splice(containerIndex, 1);
|
|
196
|
+
} else {
|
|
197
|
+
// Otherwise make sure the next top modal is visible to a screen reader.
|
|
198
|
+
const nextTop = containerInfo.modals[containerInfo.modals.length - 1];
|
|
199
|
+
// as soon as a modal is adding its modalRef is undefined. it can't set
|
|
200
|
+
// aria-hidden because the dom element doesn't exist either
|
|
201
|
+
// when modal was unmounted before modalRef gets null
|
|
202
|
+
if (nextTop.modalRef) {
|
|
203
|
+
ariaHidden(nextTop.modalRef, false);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return modalIndex;
|
|
207
|
+
}
|
|
208
|
+
isTopModal(modal) {
|
|
209
|
+
return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;
|
|
210
|
+
}
|
|
211
|
+
}
|
package/modern/Modal/index.js
CHANGED
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback, unstable_createChainedFunction as createChainedFunction } from '@mui/utils';
|
|
5
|
+
import extractEventHandlers from '@mui/utils/extractEventHandlers';
|
|
6
|
+
import { ModalManager, ariaHidden } from './ModalManager';
|
|
7
|
+
function getContainer(container) {
|
|
8
|
+
return typeof container === 'function' ? container() : container;
|
|
9
|
+
}
|
|
10
|
+
function getHasTransition(children) {
|
|
11
|
+
return children ? children.props.hasOwnProperty('in') : false;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// A modal manager used to track and manage the state of open Modals.
|
|
15
|
+
// Modals don't open on the server so this won't conflict with concurrent requests.
|
|
16
|
+
const defaultManager = new ModalManager();
|
|
17
|
+
/**
|
|
18
|
+
*
|
|
19
|
+
* Demos:
|
|
20
|
+
*
|
|
21
|
+
* - [Modal](https://next.mui.com/base-ui/react-modal/#hook)
|
|
22
|
+
*
|
|
23
|
+
* API:
|
|
24
|
+
*
|
|
25
|
+
* - [useModal API](https://next.mui.com/base-ui/react-modal/hooks-api/#use-modal)
|
|
26
|
+
*/
|
|
27
|
+
function useModal(parameters) {
|
|
28
|
+
const {
|
|
29
|
+
container,
|
|
30
|
+
disableEscapeKeyDown = false,
|
|
31
|
+
disableScrollLock = false,
|
|
32
|
+
// @ts-ignore internal logic - Base UI supports the manager as a prop too
|
|
33
|
+
manager = defaultManager,
|
|
34
|
+
closeAfterTransition = false,
|
|
35
|
+
onTransitionEnter,
|
|
36
|
+
onTransitionExited,
|
|
37
|
+
children,
|
|
38
|
+
onClose,
|
|
39
|
+
open,
|
|
40
|
+
rootRef
|
|
41
|
+
} = parameters;
|
|
42
|
+
|
|
43
|
+
// @ts-ignore internal logic
|
|
44
|
+
const modal = React.useRef({});
|
|
45
|
+
const mountNodeRef = React.useRef(null);
|
|
46
|
+
const modalRef = React.useRef(null);
|
|
47
|
+
const handleRef = useForkRef(modalRef, rootRef);
|
|
48
|
+
const [exited, setExited] = React.useState(!open);
|
|
49
|
+
const hasTransition = getHasTransition(children);
|
|
50
|
+
let ariaHiddenProp = true;
|
|
51
|
+
if (parameters['aria-hidden'] === 'false' || parameters['aria-hidden'] === false) {
|
|
52
|
+
ariaHiddenProp = false;
|
|
53
|
+
}
|
|
54
|
+
const getDoc = () => ownerDocument(mountNodeRef.current);
|
|
55
|
+
const getModal = () => {
|
|
56
|
+
modal.current.modalRef = modalRef.current;
|
|
57
|
+
modal.current.mount = mountNodeRef.current;
|
|
58
|
+
return modal.current;
|
|
59
|
+
};
|
|
60
|
+
const handleMounted = () => {
|
|
61
|
+
manager.mount(getModal(), {
|
|
62
|
+
disableScrollLock
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
// Fix a bug on Chrome where the scroll isn't initially 0.
|
|
66
|
+
if (modalRef.current) {
|
|
67
|
+
modalRef.current.scrollTop = 0;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const handleOpen = useEventCallback(() => {
|
|
71
|
+
const resolvedContainer = getContainer(container) || getDoc().body;
|
|
72
|
+
manager.add(getModal(), resolvedContainer);
|
|
73
|
+
|
|
74
|
+
// The element was already mounted.
|
|
75
|
+
if (modalRef.current) {
|
|
76
|
+
handleMounted();
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
const isTopModal = React.useCallback(() => manager.isTopModal(getModal()), [manager]);
|
|
80
|
+
const handlePortalRef = useEventCallback(node => {
|
|
81
|
+
mountNodeRef.current = node;
|
|
82
|
+
if (!node) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (open && isTopModal()) {
|
|
86
|
+
handleMounted();
|
|
87
|
+
} else if (modalRef.current) {
|
|
88
|
+
ariaHidden(modalRef.current, ariaHiddenProp);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
const handleClose = React.useCallback(() => {
|
|
92
|
+
manager.remove(getModal(), ariaHiddenProp);
|
|
93
|
+
}, [ariaHiddenProp, manager]);
|
|
94
|
+
React.useEffect(() => {
|
|
95
|
+
return () => {
|
|
96
|
+
handleClose();
|
|
97
|
+
};
|
|
98
|
+
}, [handleClose]);
|
|
99
|
+
React.useEffect(() => {
|
|
100
|
+
if (open) {
|
|
101
|
+
handleOpen();
|
|
102
|
+
} else if (!hasTransition || !closeAfterTransition) {
|
|
103
|
+
handleClose();
|
|
104
|
+
}
|
|
105
|
+
}, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]);
|
|
106
|
+
const createHandleKeyDown = otherHandlers => event => {
|
|
107
|
+
otherHandlers.onKeyDown?.(event);
|
|
108
|
+
|
|
109
|
+
// The handler doesn't take event.defaultPrevented into account:
|
|
110
|
+
//
|
|
111
|
+
// event.preventDefault() is meant to stop default behaviors like
|
|
112
|
+
// clicking a checkbox to check it, hitting a button to submit a form,
|
|
113
|
+
// and hitting left arrow to move the cursor in a text input etc.
|
|
114
|
+
// Only special HTML elements have these default behaviors.
|
|
115
|
+
if (event.key !== 'Escape' || event.which === 229 ||
|
|
116
|
+
// Wait until IME is settled.
|
|
117
|
+
!isTopModal()) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
if (!disableEscapeKeyDown) {
|
|
121
|
+
// Swallow the event, in case someone is listening for the escape key on the body.
|
|
122
|
+
event.stopPropagation();
|
|
123
|
+
if (onClose) {
|
|
124
|
+
onClose(event, 'escapeKeyDown');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
const createHandleBackdropClick = otherHandlers => event => {
|
|
129
|
+
otherHandlers.onClick?.(event);
|
|
130
|
+
if (event.target !== event.currentTarget) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (onClose) {
|
|
134
|
+
onClose(event, 'backdropClick');
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
const getRootProps = (otherHandlers = {}) => {
|
|
138
|
+
const propsEventHandlers = extractEventHandlers(parameters);
|
|
139
|
+
|
|
140
|
+
// The custom event handlers shouldn't be spread on the root element
|
|
141
|
+
delete propsEventHandlers.onTransitionEnter;
|
|
142
|
+
delete propsEventHandlers.onTransitionExited;
|
|
143
|
+
const externalEventHandlers = {
|
|
144
|
+
...propsEventHandlers,
|
|
145
|
+
...otherHandlers
|
|
146
|
+
};
|
|
147
|
+
return {
|
|
148
|
+
role: 'presentation',
|
|
149
|
+
...externalEventHandlers,
|
|
150
|
+
onKeyDown: createHandleKeyDown(externalEventHandlers),
|
|
151
|
+
ref: handleRef
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
const getBackdropProps = (otherHandlers = {}) => {
|
|
155
|
+
const externalEventHandlers = otherHandlers;
|
|
156
|
+
return {
|
|
157
|
+
'aria-hidden': true,
|
|
158
|
+
...externalEventHandlers,
|
|
159
|
+
onClick: createHandleBackdropClick(externalEventHandlers),
|
|
160
|
+
open
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
const getTransitionProps = () => {
|
|
164
|
+
const handleEnter = () => {
|
|
165
|
+
setExited(false);
|
|
166
|
+
if (onTransitionEnter) {
|
|
167
|
+
onTransitionEnter();
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
const handleExited = () => {
|
|
171
|
+
setExited(true);
|
|
172
|
+
if (onTransitionExited) {
|
|
173
|
+
onTransitionExited();
|
|
174
|
+
}
|
|
175
|
+
if (closeAfterTransition) {
|
|
176
|
+
handleClose();
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
return {
|
|
180
|
+
onEnter: createChainedFunction(handleEnter, children?.props.onEnter),
|
|
181
|
+
onExited: createChainedFunction(handleExited, children?.props.onExited)
|
|
182
|
+
};
|
|
183
|
+
};
|
|
184
|
+
return {
|
|
185
|
+
getRootProps,
|
|
186
|
+
getBackdropProps,
|
|
187
|
+
getTransitionProps,
|
|
188
|
+
rootRef: handleRef,
|
|
189
|
+
portalRef: handlePortalRef,
|
|
190
|
+
isTopModal,
|
|
191
|
+
exited,
|
|
192
|
+
hasTransition
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
export default useModal;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import PropTypes from 'prop-types';
|
|
5
|
+
import { exactProp, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
/**
|
|
8
|
+
* NoSsr purposely removes components from the subject of Server Side Rendering (SSR).
|
|
9
|
+
*
|
|
10
|
+
* This component can be useful in a variety of situations:
|
|
11
|
+
*
|
|
12
|
+
* * Escape hatch for broken dependencies not supporting SSR.
|
|
13
|
+
* * Improve the time-to-first paint on the client by only rendering above the fold.
|
|
14
|
+
* * Reduce the rendering time on the server.
|
|
15
|
+
* * Under too heavy server load, you can turn on service degradation.
|
|
16
|
+
*
|
|
17
|
+
* Demos:
|
|
18
|
+
*
|
|
19
|
+
* - [No SSR](https://next.mui.com/material-ui/react-no-ssr/)
|
|
20
|
+
*
|
|
21
|
+
* API:
|
|
22
|
+
*
|
|
23
|
+
* - [NoSsr API](https://next.mui.com/material-ui/api/no-ssr/)
|
|
24
|
+
*/
|
|
25
|
+
function NoSsr(props) {
|
|
26
|
+
const {
|
|
27
|
+
children,
|
|
28
|
+
defer = false,
|
|
29
|
+
fallback = null
|
|
30
|
+
} = props;
|
|
31
|
+
const [mountedState, setMountedState] = React.useState(false);
|
|
32
|
+
useEnhancedEffect(() => {
|
|
33
|
+
if (!defer) {
|
|
34
|
+
setMountedState(true);
|
|
35
|
+
}
|
|
36
|
+
}, [defer]);
|
|
37
|
+
React.useEffect(() => {
|
|
38
|
+
if (defer) {
|
|
39
|
+
setMountedState(true);
|
|
40
|
+
}
|
|
41
|
+
}, [defer]);
|
|
42
|
+
|
|
43
|
+
// We need the Fragment here to force react-docgen to recognise NoSsr as a component.
|
|
44
|
+
return /*#__PURE__*/_jsx(React.Fragment, {
|
|
45
|
+
children: mountedState ? children : fallback
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
process.env.NODE_ENV !== "production" ? NoSsr.propTypes /* remove-proptypes */ = {
|
|
49
|
+
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
50
|
+
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
51
|
+
// │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
|
|
52
|
+
// └─────────────────────────────────────────────────────────────────────┘
|
|
53
|
+
/**
|
|
54
|
+
* You can wrap a node.
|
|
55
|
+
*/
|
|
56
|
+
children: PropTypes.node,
|
|
57
|
+
/**
|
|
58
|
+
* If `true`, the component will not only prevent server-side rendering.
|
|
59
|
+
* It will also defer the rendering of the children into a different screen frame.
|
|
60
|
+
* @default false
|
|
61
|
+
*/
|
|
62
|
+
defer: PropTypes.bool,
|
|
63
|
+
/**
|
|
64
|
+
* The fallback content to display.
|
|
65
|
+
* @default null
|
|
66
|
+
*/
|
|
67
|
+
fallback: PropTypes.node
|
|
68
|
+
} : void 0;
|
|
69
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
70
|
+
// eslint-disable-next-line
|
|
71
|
+
NoSsr['propTypes' + ''] = exactProp(NoSsr.propTypes);
|
|
72
|
+
}
|
|
73
|
+
export default NoSsr;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/modern/NoSsr/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { default } from './NoSsr';
|
|
@@ -8,11 +8,11 @@ import NotchedOutline from './NotchedOutline';
|
|
|
8
8
|
import useFormControl from '../FormControl/useFormControl';
|
|
9
9
|
import formControlState from '../FormControl/formControlState';
|
|
10
10
|
import rootShouldForwardProp from '../styles/rootShouldForwardProp';
|
|
11
|
-
import { styled
|
|
11
|
+
import { styled } from '../zero-styled';
|
|
12
|
+
import { useDefaultProps } from '../DefaultPropsProvider';
|
|
12
13
|
import outlinedInputClasses, { getOutlinedInputUtilityClass } from './outlinedInputClasses';
|
|
13
14
|
import InputBase, { rootOverridesResolver as inputBaseRootOverridesResolver, inputOverridesResolver as inputBaseInputOverridesResolver, InputBaseRoot, InputBaseInput } from '../InputBase/InputBase';
|
|
14
15
|
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
15
|
-
const useThemeProps = createUseThemeProps('MuiOutlinedInput');
|
|
16
16
|
const useUtilityClasses = ownerState => {
|
|
17
17
|
const {
|
|
18
18
|
classes
|
|
@@ -177,7 +177,7 @@ const OutlinedInputInput = styled(InputBaseInput, {
|
|
|
177
177
|
}));
|
|
178
178
|
const OutlinedInput = /*#__PURE__*/React.forwardRef(function OutlinedInput(inProps, ref) {
|
|
179
179
|
var _React$Fragment;
|
|
180
|
-
const props =
|
|
180
|
+
const props = useDefaultProps({
|
|
181
181
|
props: inProps,
|
|
182
182
|
name: 'MuiOutlinedInput'
|
|
183
183
|
});
|
|
@@ -268,8 +268,7 @@ process.env.NODE_ENV !== "production" ? OutlinedInput.propTypes /* remove-propty
|
|
|
268
268
|
/**
|
|
269
269
|
* The components used for each slot inside.
|
|
270
270
|
*
|
|
271
|
-
* This prop
|
|
272
|
-
* It's recommended to use the `slots` prop instead.
|
|
271
|
+
* @deprecated use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
|
|
273
272
|
*
|
|
274
273
|
* @default {}
|
|
275
274
|
*/
|