diff --git a/docs/src/pages/components/tree-view/BarTreeView.js b/docs/src/pages/components/tree-view/BarTreeView.js
index f6a90ded0ea7e7..e658c294d54c90 100644
--- a/docs/src/pages/components/tree-view/BarTreeView.js
+++ b/docs/src/pages/components/tree-view/BarTreeView.js
@@ -1,6 +1,6 @@
import * as React from 'react';
import PropTypes from 'prop-types';
-import { makeStyles, alpha } from '@material-ui/core/styles';
+import { experimentalStyled as styled, alpha } from '@material-ui/core/styles';
import TreeView from '@material-ui/lab/TreeView';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
@@ -8,53 +8,37 @@ import TreeItem, { useTreeItem } from '@material-ui/lab/TreeItem';
import clsx from 'clsx';
import Typography from '@material-ui/core/Typography';
-const useStyles = makeStyles({
- root: {
- height: 240,
- flexGrow: 1,
- maxWidth: 400,
- position: 'relative',
+const CustomContentRoot = styled('div')(({ theme }) => ({
+ WebkitTapHighlightColor: 'transparent',
+ '&:hover, &.Mui-disabled, &.Mui-focused, &.Mui-selected, &.Mui-selected.Mui-focused, &.Mui-selected:hover': {
+ backgroundColor: 'transparent',
},
-});
-
-const useContentStyles = makeStyles((theme) => ({
- root: {
- WebkitTapHighlightColor: 'transparent',
- '&:hover, &$disabled, &$focused, &$selected, &$selected$focused, &$selected:hover': {
- backgroundColor: 'transparent',
- },
- },
- label: {
- width: '100%',
- paddingLeft: 4,
- position: 'relative',
- },
- bar: {
+ [`& .MuiTreeItem-contentBar`]: {
position: 'absolute',
width: '100%',
height: 24,
left: 0,
- '$root:hover &': {
+ '&:hover &': {
backgroundColor: theme.palette.action.hover,
// Reset on touch devices, it doesn't add specificity
'@media (hover: none)': {
backgroundColor: 'transparent',
},
},
- '$root$disabled &': {
+ '&.Mui-disabled &': {
opacity: theme.palette.action.disabledOpacity,
backgroundColor: 'transparent',
},
- '$root$focused &': {
+ '&.Mui-focused &': {
backgroundColor: theme.palette.action.focus,
},
- '$root$selected &': {
+ '&.Mui-selected &': {
backgroundColor: alpha(
theme.palette.primary.main,
theme.palette.action.selectedOpacity,
),
},
- '$root$selected:hover &': {
+ '&.Mui-selected:hover &': {
backgroundColor: alpha(
theme.palette.primary.main,
theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity,
@@ -67,17 +51,13 @@ const useContentStyles = makeStyles((theme) => ({
),
},
},
- '$root$selected$focused &': {
+ '&.Mui-selected.Mui-focused &': {
backgroundColor: alpha(
theme.palette.primary.main,
theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity,
),
},
},
- expanded: {},
- selected: {},
- focused: {},
- disabled: {},
}));
const CustomContent = React.forwardRef(function CustomContent(props, ref) {
@@ -91,8 +71,6 @@ const CustomContent = React.forwardRef(function CustomContent(props, ref) {
displayIcon,
} = props;
- const contentClasses = useContentStyles();
-
const {
disabled,
expanded,
@@ -115,24 +93,23 @@ const CustomContent = React.forwardRef(function CustomContent(props, ref) {
};
return (
- // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
-
+
);
});
@@ -172,14 +149,12 @@ const CustomTreeItem = (props) => (
);
export default function BarTreeView() {
- const classes = useStyles();
-
return (
}
defaultExpandIcon={}
+ sx={{ height: 240, flexGrow: 1, maxWidth: 400, position: 'relative' }}
>
diff --git a/docs/src/pages/components/tree-view/BarTreeView.tsx b/docs/src/pages/components/tree-view/BarTreeView.tsx
index 544bdfcd49c8fd..4ad1b666b7c3c2 100644
--- a/docs/src/pages/components/tree-view/BarTreeView.tsx
+++ b/docs/src/pages/components/tree-view/BarTreeView.tsx
@@ -1,5 +1,5 @@
import * as React from 'react';
-import { makeStyles, alpha } from '@material-ui/core/styles';
+import { experimentalStyled as styled, alpha } from '@material-ui/core/styles';
import TreeView from '@material-ui/lab/TreeView';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
@@ -11,53 +11,37 @@ import TreeItem, {
import clsx from 'clsx';
import Typography from '@material-ui/core/Typography';
-const useStyles = makeStyles({
- root: {
- height: 240,
- flexGrow: 1,
- maxWidth: 400,
- position: 'relative',
+const CustomContentRoot = styled('div')(({ theme }) => ({
+ WebkitTapHighlightColor: 'transparent',
+ '&:hover, &.Mui-disabled, &.Mui-focused, &.Mui-selected, &.Mui-selected.Mui-focused, &.Mui-selected:hover': {
+ backgroundColor: 'transparent',
},
-});
-
-const useContentStyles = makeStyles((theme) => ({
- root: {
- WebkitTapHighlightColor: 'transparent',
- '&:hover, &$disabled, &$focused, &$selected, &$selected$focused, &$selected:hover': {
- backgroundColor: 'transparent',
- },
- },
- label: {
- width: '100%',
- paddingLeft: 4,
- position: 'relative',
- },
- bar: {
+ [`& .MuiTreeItem-contentBar`]: {
position: 'absolute',
width: '100%',
height: 24,
left: 0,
- '$root:hover &': {
+ '&:hover &': {
backgroundColor: theme.palette.action.hover,
// Reset on touch devices, it doesn't add specificity
'@media (hover: none)': {
backgroundColor: 'transparent',
},
},
- '$root$disabled &': {
+ '&.Mui-disabled &': {
opacity: theme.palette.action.disabledOpacity,
backgroundColor: 'transparent',
},
- '$root$focused &': {
+ '&.Mui-focused &': {
backgroundColor: theme.palette.action.focus,
},
- '$root$selected &': {
+ '&.Mui-selected &': {
backgroundColor: alpha(
theme.palette.primary.main,
theme.palette.action.selectedOpacity,
),
},
- '$root$selected:hover &': {
+ '&.Mui-selected:hover &': {
backgroundColor: alpha(
theme.palette.primary.main,
theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity,
@@ -70,17 +54,13 @@ const useContentStyles = makeStyles((theme) => ({
),
},
},
- '$root$selected$focused &': {
+ '&.Mui-selected.Mui-focused &': {
backgroundColor: alpha(
theme.palette.primary.main,
theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity,
),
},
},
- expanded: {},
- selected: {},
- focused: {},
- disabled: {},
}));
const CustomContent = React.forwardRef(function CustomContent(
@@ -97,8 +77,6 @@ const CustomContent = React.forwardRef(function CustomContent(
displayIcon,
} = props;
- const contentClasses = useContentStyles();
-
const {
disabled,
expanded,
@@ -121,24 +99,23 @@ const CustomContent = React.forwardRef(function CustomContent(
};
return (
- // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
-
+
);
});
@@ -147,14 +124,12 @@ const CustomTreeItem = (props: TreeItemProps) => (
);
export default function BarTreeView() {
- const classes = useStyles();
-
return (
}
defaultExpandIcon={}
+ sx={{ height: 240, flexGrow: 1, maxWidth: 400, position: 'relative' }}
>
diff --git a/docs/src/pages/components/tree-view/ControlledTreeView.js b/docs/src/pages/components/tree-view/ControlledTreeView.js
index 1cf112309cd8bc..2025cf16f19d25 100644
--- a/docs/src/pages/components/tree-view/ControlledTreeView.js
+++ b/docs/src/pages/components/tree-view/ControlledTreeView.js
@@ -1,24 +1,12 @@
import * as React from 'react';
-import { makeStyles } from '@material-ui/core/styles';
+import Box from '@material-ui/core/Box';
import Button from '@material-ui/core/Button';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
import TreeView from '@material-ui/lab/TreeView';
import TreeItem from '@material-ui/lab/TreeItem';
-const useStyles = makeStyles((theme) => ({
- root: {
- height: 270,
- flexGrow: 1,
- maxWidth: 400,
- },
- actions: {
- marginBottom: theme.spacing(1),
- },
-}));
-
export default function ControlledTreeView() {
- const classes = useStyles();
const [expanded, setExpanded] = React.useState([]);
const [selected, setSelected] = React.useState([]);
@@ -43,15 +31,15 @@ export default function ControlledTreeView() {
};
return (
-
-
+
+
-
+
}
@@ -76,6 +64,6 @@ export default function ControlledTreeView() {
-
+
);
}
diff --git a/docs/src/pages/components/tree-view/ControlledTreeView.tsx b/docs/src/pages/components/tree-view/ControlledTreeView.tsx
index 5bc7e011c95a6b..0a6ba82542326a 100644
--- a/docs/src/pages/components/tree-view/ControlledTreeView.tsx
+++ b/docs/src/pages/components/tree-view/ControlledTreeView.tsx
@@ -1,24 +1,12 @@
import * as React from 'react';
-import { makeStyles } from '@material-ui/core/styles';
+import Box from '@material-ui/core/Box';
import Button from '@material-ui/core/Button';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
import TreeView from '@material-ui/lab/TreeView';
import TreeItem from '@material-ui/lab/TreeItem';
-const useStyles = makeStyles((theme) => ({
- root: {
- height: 270,
- flexGrow: 1,
- maxWidth: 400,
- },
- actions: {
- marginBottom: theme.spacing(1),
- },
-}));
-
export default function ControlledTreeView() {
- const classes = useStyles();
const [expanded, setExpanded] = React.useState([]);
const [selected, setSelected] = React.useState([]);
@@ -43,15 +31,15 @@ export default function ControlledTreeView() {
};
return (
-
-
+
+
-
+
}
@@ -76,6 +64,6 @@ export default function ControlledTreeView() {
-
+
);
}
diff --git a/docs/src/pages/components/tree-view/CustomizedTreeView.js b/docs/src/pages/components/tree-view/CustomizedTreeView.js
index bb9a3ec676ce52..8b5f26b6ae6b11 100644
--- a/docs/src/pages/components/tree-view/CustomizedTreeView.js
+++ b/docs/src/pages/components/tree-view/CustomizedTreeView.js
@@ -1,9 +1,9 @@
import * as React from 'react';
import PropTypes from 'prop-types';
import SvgIcon from '@material-ui/core/SvgIcon';
-import { alpha, makeStyles, withStyles } from '@material-ui/core/styles';
+import { alpha, experimentalStyled as styled } from '@material-ui/core/styles';
import TreeView from '@material-ui/lab/TreeView';
-import TreeItem from '@material-ui/lab/TreeItem';
+import TreeItem, { treeItemClasses } from '@material-ui/lab/TreeItem';
import Collapse from '@material-ui/core/Collapse';
// web.cjs is required for IE11 support
import { useSpring, animated } from 'react-spring/web.cjs';
@@ -66,38 +66,30 @@ TransitionComponent.propTypes = {
in: PropTypes.bool,
};
-const StyledTreeItem = withStyles((theme) => ({
- iconContainer: {
+const StyledTreeItem = styled((props) => (
+
+))(({ theme }) => ({
+ [`& .${treeItemClasses.iconContainer}`]: {
'& .close': {
opacity: 0.3,
},
},
- group: {
+ [`& .${treeItemClasses.group}`]: {
marginLeft: 15,
paddingLeft: 18,
borderLeft: `1px dashed ${alpha(theme.palette.text.primary, 0.4)}`,
},
-}))((props) => );
-
-const useStyles = makeStyles({
- root: {
- height: 264,
- flexGrow: 1,
- maxWidth: 400,
- },
-});
+}));
export default function CustomizedTreeView() {
- const classes = useStyles();
-
return (
}
defaultExpandIcon={}
defaultEndIcon={}
+ sx={{ height: 264, flexGrow: 1, maxWidth: 400 }}
>
diff --git a/docs/src/pages/components/tree-view/CustomizedTreeView.tsx b/docs/src/pages/components/tree-view/CustomizedTreeView.tsx
index 9bf178f5694707..ad66e6a2d17fb3 100644
--- a/docs/src/pages/components/tree-view/CustomizedTreeView.tsx
+++ b/docs/src/pages/components/tree-view/CustomizedTreeView.tsx
@@ -1,8 +1,8 @@
import * as React from 'react';
import SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon';
-import { alpha, makeStyles, withStyles, Theme } from '@material-ui/core/styles';
+import { alpha, experimentalStyled as styled } from '@material-ui/core/styles';
import TreeView from '@material-ui/lab/TreeView';
-import TreeItem, { TreeItemProps } from '@material-ui/lab/TreeItem';
+import TreeItem, { TreeItemProps, treeItemClasses } from '@material-ui/lab/TreeItem';
import Collapse from '@material-ui/core/Collapse';
// web.cjs is required for IE11 support
import { useSpring, animated } from 'react-spring/web.cjs';
@@ -59,40 +59,30 @@ function TransitionComponent(props: TransitionProps) {
);
}
-const StyledTreeItem = withStyles((theme: Theme) => ({
- iconContainer: {
+const StyledTreeItem = styled((props: TreeItemProps) => (
+
+))(({ theme }) => ({
+ [`& .${treeItemClasses.iconContainer}`]: {
'& .close': {
opacity: 0.3,
},
},
- group: {
+ [`& .${treeItemClasses.group}`]: {
marginLeft: 15,
paddingLeft: 18,
borderLeft: `1px dashed ${alpha(theme.palette.text.primary, 0.4)}`,
},
-}))((props: TreeItemProps) => (
-
-));
-
-const useStyles = makeStyles({
- root: {
- height: 264,
- flexGrow: 1,
- maxWidth: 400,
- },
-});
+}));
export default function CustomizedTreeView() {
- const classes = useStyles();
-
return (
}
defaultExpandIcon={}
defaultEndIcon={}
+ sx={{ height: 264, flexGrow: 1, maxWidth: 400 }}
>
diff --git a/docs/src/pages/components/tree-view/DisabledTreeItems.js b/docs/src/pages/components/tree-view/DisabledTreeItems.js
index a673c63564a004..ce5a0063471424 100644
--- a/docs/src/pages/components/tree-view/DisabledTreeItems.js
+++ b/docs/src/pages/components/tree-view/DisabledTreeItems.js
@@ -1,5 +1,5 @@
import * as React from 'react';
-import { makeStyles } from '@material-ui/core/styles';
+import Box from '@material-ui/core/Box';
import TreeView from '@material-ui/lab/TreeView';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
@@ -7,27 +7,15 @@ import TreeItem from '@material-ui/lab/TreeItem';
import FormControlLabel from '@material-ui/core/FormControlLabel';
import Switch from '@material-ui/core/Switch';
-const useStyles = makeStyles((theme) => ({
- root: {
- height: 270,
- flexGrow: 1,
- maxWidth: 400,
- },
- actions: {
- marginBottom: theme.spacing(1),
- },
-}));
-
export default function DisabledTreeItems() {
- const classes = useStyles();
const [focusDisabledItems, setFocusDisabledItems] = React.useState(false);
const handleToggle = (event) => {
setFocusDisabledItems(event.target.checked);
};
return (
-
-
+
+
-
+
}
@@ -64,6 +52,6 @@ export default function DisabledTreeItems() {
-
+
);
}
diff --git a/docs/src/pages/components/tree-view/DisabledTreeItems.tsx b/docs/src/pages/components/tree-view/DisabledTreeItems.tsx
index 546b4ac225c54b..92fc980dccf8bd 100644
--- a/docs/src/pages/components/tree-view/DisabledTreeItems.tsx
+++ b/docs/src/pages/components/tree-view/DisabledTreeItems.tsx
@@ -1,5 +1,5 @@
import * as React from 'react';
-import { makeStyles } from '@material-ui/core/styles';
+import Box from '@material-ui/core/Box';
import TreeView from '@material-ui/lab/TreeView';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
@@ -7,27 +7,15 @@ import TreeItem from '@material-ui/lab/TreeItem';
import FormControlLabel from '@material-ui/core/FormControlLabel';
import Switch from '@material-ui/core/Switch';
-const useStyles = makeStyles((theme) => ({
- root: {
- height: 270,
- flexGrow: 1,
- maxWidth: 400,
- },
- actions: {
- marginBottom: theme.spacing(1),
- },
-}));
-
export default function DisabledTreeItems() {
- const classes = useStyles();
const [focusDisabledItems, setFocusDisabledItems] = React.useState(false);
const handleToggle = (event: React.ChangeEvent) => {
setFocusDisabledItems(event.target.checked);
};
return (
-
-
+
+
-
+
}
@@ -64,6 +52,6 @@ export default function DisabledTreeItems() {
-
+
);
}
diff --git a/docs/src/pages/components/tree-view/FileSystemNavigator.js b/docs/src/pages/components/tree-view/FileSystemNavigator.js
index 846bb24727f5fd..90023450b99c6d 100644
--- a/docs/src/pages/components/tree-view/FileSystemNavigator.js
+++ b/docs/src/pages/components/tree-view/FileSystemNavigator.js
@@ -1,40 +1,24 @@
import * as React from 'react';
-import { makeStyles } from '@material-ui/core/styles';
import TreeView from '@material-ui/lab/TreeView';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
import TreeItem from '@material-ui/lab/TreeItem';
-const useStyles = makeStyles({
- root: {
- height: 240,
- flexGrow: 1,
- maxWidth: 400,
- },
-});
-
export default function FileSystemNavigator() {
- const classes = useStyles();
-
return (
}
defaultExpandIcon={}
+ sx={{ height: 240, flexGrow: 1, maxWidth: 400 }}
>
-
-
-
-
-
-
+
diff --git a/docs/src/pages/components/tree-view/FileSystemNavigator.tsx b/docs/src/pages/components/tree-view/FileSystemNavigator.tsx
index 846bb24727f5fd..90023450b99c6d 100644
--- a/docs/src/pages/components/tree-view/FileSystemNavigator.tsx
+++ b/docs/src/pages/components/tree-view/FileSystemNavigator.tsx
@@ -1,40 +1,24 @@
import * as React from 'react';
-import { makeStyles } from '@material-ui/core/styles';
import TreeView from '@material-ui/lab/TreeView';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
import TreeItem from '@material-ui/lab/TreeItem';
-const useStyles = makeStyles({
- root: {
- height: 240,
- flexGrow: 1,
- maxWidth: 400,
- },
-});
-
export default function FileSystemNavigator() {
- const classes = useStyles();
-
return (
}
defaultExpandIcon={}
+ sx={{ height: 240, flexGrow: 1, maxWidth: 400 }}
>
-
-
-
-
-
-
+
diff --git a/docs/src/pages/components/tree-view/GmailTreeView.js b/docs/src/pages/components/tree-view/GmailTreeView.js
index dadb3c46754255..db1c7b8f380782 100644
--- a/docs/src/pages/components/tree-view/GmailTreeView.js
+++ b/docs/src/pages/components/tree-view/GmailTreeView.js
@@ -1,8 +1,9 @@
import * as React from 'react';
import PropTypes from 'prop-types';
-import { makeStyles } from '@material-ui/core/styles';
+import { experimentalStyled as styled } from '@material-ui/core/styles';
+import Box from '@material-ui/core/Box';
import TreeView from '@material-ui/lab/TreeView';
-import TreeItem from '@material-ui/lab/TreeItem';
+import TreeItem, { treeItemClasses } from '@material-ui/lab/TreeItem';
import Typography from '@material-ui/core/Typography';
import MailIcon from '@material-ui/icons/Mail';
import DeleteIcon from '@material-ui/icons/Delete';
@@ -14,57 +15,38 @@ import LocalOfferIcon from '@material-ui/icons/LocalOffer';
import ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';
import ArrowRightIcon from '@material-ui/icons/ArrowRight';
-const useTreeItemStyles = makeStyles((theme) => ({
- root: {
- color: theme.palette.text.secondary,
- },
- content: {
+const StyledTreeItemRoot = styled(TreeItem)(({ theme }) => ({
+ color: theme.palette.text.secondary,
+ [`& .${treeItemClasses.content}`]: {
color: theme.palette.text.secondary,
borderTopRightRadius: theme.spacing(2),
borderBottomRightRadius: theme.spacing(2),
paddingRight: theme.spacing(1),
fontWeight: theme.typography.fontWeightMedium,
- '&$expanded': {
+ '&.Mui-expanded': {
fontWeight: theme.typography.fontWeightRegular,
},
'&:hover': {
backgroundColor: theme.palette.action.hover,
},
- '&$focused, &$selected, &$selected$focused': {
+ '&.Mui-focused, &.Mui-selected, &.Mui-selected.Mui-focused': {
backgroundColor: `var(--tree-view-bg-color, ${theme.palette.action.selected})`,
color: 'var(--tree-view-color)',
},
- '& $label': {
+ [`& .${treeItemClasses.label}`]: {
fontWeight: 'inherit',
color: 'inherit',
},
},
- group: {
+ [`& .${treeItemClasses.group}`]: {
marginLeft: 0,
- '& $content': {
+ [`& .${treeItemClasses.content}`]: {
paddingLeft: theme.spacing(2),
},
},
- expanded: {},
- selected: {},
- focused: {},
- label: {},
- labelRoot: {
- display: 'flex',
- alignItems: 'center',
- padding: theme.spacing(0.5, 0, 0.5, 0.5),
- },
- labelIcon: {
- marginRight: theme.spacing(1),
- },
- labelText: {
- fontWeight: 'inherit',
- flexGrow: 1,
- },
}));
function StyledTreeItem(props) {
- const classes = useTreeItemStyles();
const {
bgColor,
color,
@@ -75,31 +57,22 @@ function StyledTreeItem(props) {
} = props;
return (
-
-
-
+
+
+
{labelText}
{labelInfo}
-
+
}
style={{
'--tree-view-color': color,
'--tree-view-bg-color': bgColor,
}}
- classes={{
- root: classes.root,
- content: classes.content,
- expanded: classes.expanded,
- selected: classes.selected,
- focused: classes.focused,
- group: classes.group,
- label: classes.label,
- }}
{...other}
/>
);
@@ -113,25 +86,15 @@ StyledTreeItem.propTypes = {
labelText: PropTypes.string.isRequired,
};
-const useStyles = makeStyles({
- root: {
- height: 264,
- flexGrow: 1,
- maxWidth: 400,
- },
-});
-
export default function GmailTreeView() {
- const classes = useStyles();
-
return (
}
defaultExpandIcon={}
defaultEndIcon={}
+ sx={{ height: 264, flexGrow: 1, maxWidth: 400 }}
>
diff --git a/docs/src/pages/components/tree-view/GmailTreeView.tsx b/docs/src/pages/components/tree-view/GmailTreeView.tsx
index 6845a77fff60f0..0cb1ae83d36c0e 100644
--- a/docs/src/pages/components/tree-view/GmailTreeView.tsx
+++ b/docs/src/pages/components/tree-view/GmailTreeView.tsx
@@ -1,7 +1,8 @@
import * as React from 'react';
-import { makeStyles, Theme } from '@material-ui/core/styles';
+import { experimentalStyled as styled } from '@material-ui/core/styles';
+import Box from '@material-ui/core/Box';
import TreeView from '@material-ui/lab/TreeView';
-import TreeItem, { TreeItemProps } from '@material-ui/lab/TreeItem';
+import TreeItem, { TreeItemProps, treeItemClasses } from '@material-ui/lab/TreeItem';
import Typography from '@material-ui/core/Typography';
import MailIcon from '@material-ui/icons/Mail';
import DeleteIcon from '@material-ui/icons/Delete';
@@ -29,57 +30,38 @@ type StyledTreeItemProps = TreeItemProps & {
labelText: string;
};
-const useTreeItemStyles = makeStyles((theme: Theme) => ({
- root: {
- color: theme.palette.text.secondary,
- },
- content: {
+const StyledTreeItemRoot = styled(TreeItem)(({ theme }) => ({
+ color: theme.palette.text.secondary,
+ [`& .${treeItemClasses.content}`]: {
color: theme.palette.text.secondary,
borderTopRightRadius: theme.spacing(2),
borderBottomRightRadius: theme.spacing(2),
paddingRight: theme.spacing(1),
fontWeight: theme.typography.fontWeightMedium,
- '&$expanded': {
+ '&.Mui-expanded': {
fontWeight: theme.typography.fontWeightRegular,
},
'&:hover': {
backgroundColor: theme.palette.action.hover,
},
- '&$focused, &$selected, &$selected$focused': {
+ '&.Mui-focused, &.Mui-selected, &.Mui-selected.Mui-focused': {
backgroundColor: `var(--tree-view-bg-color, ${theme.palette.action.selected})`,
color: 'var(--tree-view-color)',
},
- '& $label': {
+ [`& .${treeItemClasses.label}`]: {
fontWeight: 'inherit',
color: 'inherit',
},
},
- group: {
+ [`& .${treeItemClasses.group}`]: {
marginLeft: 0,
- '& $content': {
+ [`& .${treeItemClasses.content}`]: {
paddingLeft: theme.spacing(2),
},
},
- expanded: {},
- selected: {},
- focused: {},
- label: {},
- labelRoot: {
- display: 'flex',
- alignItems: 'center',
- padding: theme.spacing(0.5, 0, 0.5, 0.5),
- },
- labelIcon: {
- marginRight: theme.spacing(1),
- },
- labelText: {
- fontWeight: 'inherit',
- flexGrow: 1,
- },
}));
function StyledTreeItem(props: StyledTreeItemProps) {
- const classes = useTreeItemStyles();
const {
bgColor,
color,
@@ -90,55 +72,36 @@ function StyledTreeItem(props: StyledTreeItemProps) {
} = props;
return (
-
-
-
+
+
+
{labelText}
{labelInfo}
-
+
}
style={{
'--tree-view-color': color,
'--tree-view-bg-color': bgColor,
}}
- classes={{
- root: classes.root,
- content: classes.content,
- expanded: classes.expanded,
- selected: classes.selected,
- focused: classes.focused,
- group: classes.group,
- label: classes.label,
- }}
{...other}
/>
);
}
-const useStyles = makeStyles({
- root: {
- height: 264,
- flexGrow: 1,
- maxWidth: 400,
- },
-});
-
export default function GmailTreeView() {
- const classes = useStyles();
-
return (
}
defaultExpandIcon={}
defaultEndIcon={}
+ sx={{ height: 264, flexGrow: 1, maxWidth: 400 }}
>
diff --git a/docs/src/pages/components/tree-view/IconExpansionTreeView.js b/docs/src/pages/components/tree-view/IconExpansionTreeView.js
index 423c85359bddcf..4711280b57719b 100644
--- a/docs/src/pages/components/tree-view/IconExpansionTreeView.js
+++ b/docs/src/pages/components/tree-view/IconExpansionTreeView.js
@@ -1,6 +1,5 @@
import * as React from 'react';
import PropTypes from 'prop-types';
-import { makeStyles } from '@material-ui/core/styles';
import TreeView from '@material-ui/lab/TreeView';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
@@ -8,14 +7,6 @@ import TreeItem, { useTreeItem } from '@material-ui/lab/TreeItem';
import clsx from 'clsx';
import Typography from '@material-ui/core/Typography';
-const useStyles = makeStyles({
- root: {
- height: 240,
- flexGrow: 1,
- maxWidth: 400,
- },
-});
-
const CustomContent = React.forwardRef(function CustomContent(props, ref) {
const {
classes,
@@ -114,14 +105,12 @@ const CustomTreeItem = (props) => (
);
export default function IconExpansionTreeView() {
- const classes = useStyles();
-
return (
}
defaultExpandIcon={}
+ sx={{ height: 240, flexGrow: 1, maxWidth: 400 }}
>
diff --git a/docs/src/pages/components/tree-view/IconExpansionTreeView.tsx b/docs/src/pages/components/tree-view/IconExpansionTreeView.tsx
index d8f12e713a34b7..9b3b3b1f114ca3 100644
--- a/docs/src/pages/components/tree-view/IconExpansionTreeView.tsx
+++ b/docs/src/pages/components/tree-view/IconExpansionTreeView.tsx
@@ -1,5 +1,4 @@
import * as React from 'react';
-import { makeStyles } from '@material-ui/core/styles';
import TreeView from '@material-ui/lab/TreeView';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
@@ -11,14 +10,6 @@ import TreeItem, {
import clsx from 'clsx';
import Typography from '@material-ui/core/Typography';
-const useStyles = makeStyles({
- root: {
- height: 240,
- flexGrow: 1,
- maxWidth: 400,
- },
-});
-
const CustomContent = React.forwardRef(function CustomContent(
props: TreeItemContentProps,
ref,
@@ -93,14 +84,12 @@ const CustomTreeItem = (props: TreeItemProps) => (
);
export default function IconExpansionTreeView() {
- const classes = useStyles();
-
return (
}
defaultExpandIcon={}
+ sx={{ height: 240, flexGrow: 1, maxWidth: 400 }}
>
diff --git a/docs/src/pages/components/tree-view/MultiSelectTreeView.js b/docs/src/pages/components/tree-view/MultiSelectTreeView.js
index e3fa9b2ebf1287..32fa433eec2ea3 100644
--- a/docs/src/pages/components/tree-view/MultiSelectTreeView.js
+++ b/docs/src/pages/components/tree-view/MultiSelectTreeView.js
@@ -1,28 +1,17 @@
import * as React from 'react';
-import { makeStyles } from '@material-ui/core/styles';
import TreeView from '@material-ui/lab/TreeView';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
import TreeItem from '@material-ui/lab/TreeItem';
-const useStyles = makeStyles({
- root: {
- height: 216,
- flexGrow: 1,
- maxWidth: 400,
- },
-});
-
export default function MultiSelectTreeView() {
- const classes = useStyles();
-
return (
}
defaultExpandIcon={}
multiSelect
+ sx={{ height: 216, flexGrow: 1, maxWidth: 400 }}
>
diff --git a/docs/src/pages/components/tree-view/MultiSelectTreeView.tsx b/docs/src/pages/components/tree-view/MultiSelectTreeView.tsx
index e3fa9b2ebf1287..32fa433eec2ea3 100644
--- a/docs/src/pages/components/tree-view/MultiSelectTreeView.tsx
+++ b/docs/src/pages/components/tree-view/MultiSelectTreeView.tsx
@@ -1,28 +1,17 @@
import * as React from 'react';
-import { makeStyles } from '@material-ui/core/styles';
import TreeView from '@material-ui/lab/TreeView';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
import TreeItem from '@material-ui/lab/TreeItem';
-const useStyles = makeStyles({
- root: {
- height: 216,
- flexGrow: 1,
- maxWidth: 400,
- },
-});
-
export default function MultiSelectTreeView() {
- const classes = useStyles();
-
return (
}
defaultExpandIcon={}
multiSelect
+ sx={{ height: 216, flexGrow: 1, maxWidth: 400 }}
>
diff --git a/docs/src/pages/components/tree-view/RichObjectTreeView.js b/docs/src/pages/components/tree-view/RichObjectTreeView.js
index 4dd92ab8167d31..c2bcdebcec5e18 100644
--- a/docs/src/pages/components/tree-view/RichObjectTreeView.js
+++ b/docs/src/pages/components/tree-view/RichObjectTreeView.js
@@ -1,5 +1,4 @@
import * as React from 'react';
-import { makeStyles } from '@material-ui/core/styles';
import TreeView from '@material-ui/lab/TreeView';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
@@ -26,17 +25,7 @@ const data = {
],
};
-const useStyles = makeStyles({
- root: {
- height: 110,
- flexGrow: 1,
- maxWidth: 400,
- },
-});
-
export default function RichObjectTreeView() {
- const classes = useStyles();
-
const renderTree = (nodes) => (
{Array.isArray(nodes.children)
@@ -48,10 +37,10 @@ export default function RichObjectTreeView() {
return (
}
defaultExpanded={['root']}
defaultExpandIcon={}
+ sx={{ height: 110, flexGrow: 1, maxWidth: 400 }}
>
{renderTree(data)}
diff --git a/docs/src/pages/components/tree-view/RichObjectTreeView.tsx b/docs/src/pages/components/tree-view/RichObjectTreeView.tsx
index 620843ae8167b4..9283ee4e2c1b12 100644
--- a/docs/src/pages/components/tree-view/RichObjectTreeView.tsx
+++ b/docs/src/pages/components/tree-view/RichObjectTreeView.tsx
@@ -1,5 +1,4 @@
import * as React from 'react';
-import { makeStyles } from '@material-ui/core/styles';
import TreeView from '@material-ui/lab/TreeView';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
@@ -32,17 +31,7 @@ const data: RenderTree = {
],
};
-const useStyles = makeStyles({
- root: {
- height: 110,
- flexGrow: 1,
- maxWidth: 400,
- },
-});
-
export default function RichObjectTreeView() {
- const classes = useStyles();
-
const renderTree = (nodes: RenderTree) => (
{Array.isArray(nodes.children)
@@ -54,10 +43,10 @@ export default function RichObjectTreeView() {
return (
}
defaultExpanded={['root']}
defaultExpandIcon={}
+ sx={{ height: 110, flexGrow: 1, maxWidth: 400 }}
>
{renderTree(data)}