+
Legal
-
+
Terms
-
+
Privacy
-
+
Contact
@@ -169,13 +164,13 @@ export default function Footer() {
}}
>
-
+
Privacy Policy
•
-
+
Terms of Service
diff --git a/docs/data/material/getting-started/templates/landing-page/components/Hero.js b/docs/data/material/getting-started/templates/landing-page/components/Hero.js
index 6813d4c96f4376..a8e9b21b0c2ef9 100644
--- a/docs/data/material/getting-started/templates/landing-page/components/Hero.js
+++ b/docs/data/material/getting-started/templates/landing-page/components/Hero.js
@@ -1,13 +1,15 @@
import * as React from 'react';
-import { alpha } from '@mui/material';
import Box from '@mui/material/Box';
import Button from '@mui/material/Button';
import Container from '@mui/material/Container';
+import InputLabel from '@mui/material/InputLabel';
import Link from '@mui/material/Link';
import Stack from '@mui/material/Stack';
import TextField from '@mui/material/TextField';
import Typography from '@mui/material/Typography';
+import { visuallyHidden } from '@mui/utils';
+
export default function Hero() {
return (
@@ -31,23 +32,27 @@ export default function Hero() {
pb: { xs: 8, sm: 12 },
}}
>
-
+
- Our latest
+ Our latest
theme.palette.mode === 'light' ? 'primary.main' : 'primary.light',
}}
@@ -58,7 +63,7 @@ export default function Hero() {
Explore our cutting-edge dashboard, delivering high-quality solutions
tailored to your needs. Elevate your experience with top-tier features
@@ -66,13 +71,15 @@ export default function Hero() {
+
+ Email
+
-
+
By clicking "Start now" you agree to our
Terms & Conditions
@@ -107,16 +114,16 @@ export default function Hero() {
? 'url("/static/images/templates/templates-images/hero-light.png")'
: 'url("/static/images/templates/templates-images/hero-dark.png")',
backgroundSize: 'cover',
- borderRadius: '10px',
+ borderRadius: '12px',
outline: '1px solid',
outlineColor:
theme.palette.mode === 'light'
- ? alpha('#BFCCD9', 0.5)
- : alpha('#9CCCFC', 0.1),
+ ? 'hsla(220, 25%, 80%, 0.5)'
+ : 'hsla(210, 100%, 80%, 0.1)',
boxShadow:
theme.palette.mode === 'light'
- ? `0 0 12px 8px ${alpha('#9CCCFC', 0.2)}`
- : `0 0 24px 12px ${alpha('#033363', 0.2)}`,
+ ? '0 0 12px 8px hsla(220, 25%, 80%, 0.2)'
+ : '0 0 24px 12px hsla(210, 100%, 25%, 0.2)',
})}
/>
diff --git a/docs/data/material/getting-started/templates/landing-page/components/Hero.tsx b/docs/data/material/getting-started/templates/landing-page/components/Hero.tsx
index 6813d4c96f4376..a8e9b21b0c2ef9 100644
--- a/docs/data/material/getting-started/templates/landing-page/components/Hero.tsx
+++ b/docs/data/material/getting-started/templates/landing-page/components/Hero.tsx
@@ -1,13 +1,15 @@
import * as React from 'react';
-import { alpha } from '@mui/material';
import Box from '@mui/material/Box';
import Button from '@mui/material/Button';
import Container from '@mui/material/Container';
+import InputLabel from '@mui/material/InputLabel';
import Link from '@mui/material/Link';
import Stack from '@mui/material/Stack';
import TextField from '@mui/material/TextField';
import Typography from '@mui/material/Typography';
+import { visuallyHidden } from '@mui/utils';
+
export default function Hero() {
return (
@@ -31,23 +32,27 @@ export default function Hero() {
pb: { xs: 8, sm: 12 },
}}
>
-
+
- Our latest
+ Our latest
theme.palette.mode === 'light' ? 'primary.main' : 'primary.light',
}}
@@ -58,7 +63,7 @@ export default function Hero() {
Explore our cutting-edge dashboard, delivering high-quality solutions
tailored to your needs. Elevate your experience with top-tier features
@@ -66,13 +71,15 @@ export default function Hero() {
+
+ Email
+
-
+
By clicking "Start now" you agree to our
Terms & Conditions
@@ -107,16 +114,16 @@ export default function Hero() {
? 'url("/static/images/templates/templates-images/hero-light.png")'
: 'url("/static/images/templates/templates-images/hero-dark.png")',
backgroundSize: 'cover',
- borderRadius: '10px',
+ borderRadius: '12px',
outline: '1px solid',
outlineColor:
theme.palette.mode === 'light'
- ? alpha('#BFCCD9', 0.5)
- : alpha('#9CCCFC', 0.1),
+ ? 'hsla(220, 25%, 80%, 0.5)'
+ : 'hsla(210, 100%, 80%, 0.1)',
boxShadow:
theme.palette.mode === 'light'
- ? `0 0 12px 8px ${alpha('#9CCCFC', 0.2)}`
- : `0 0 24px 12px ${alpha('#033363', 0.2)}`,
+ ? '0 0 12px 8px hsla(220, 25%, 80%, 0.2)'
+ : '0 0 24px 12px hsla(210, 100%, 25%, 0.2)',
})}
/>
diff --git a/docs/data/material/getting-started/templates/landing-page/components/Highlights.js b/docs/data/material/getting-started/templates/landing-page/components/Highlights.js
index cc8ec2b628aa7e..8adc8f06911b6e 100644
--- a/docs/data/material/getting-started/templates/landing-page/components/Highlights.js
+++ b/docs/data/material/getting-started/templates/landing-page/components/Highlights.js
@@ -59,7 +59,7 @@ export default function Highlights() {
pt: { xs: 4, sm: 12 },
pb: { xs: 8, sm: 16 },
color: 'white',
- bgcolor: '#06090a',
+ bgcolor: 'hsl(220, 30%, 2%)',
}}
>
{item.icon}
diff --git a/docs/data/material/getting-started/templates/landing-page/components/Highlights.tsx b/docs/data/material/getting-started/templates/landing-page/components/Highlights.tsx
index cc8ec2b628aa7e..8adc8f06911b6e 100644
--- a/docs/data/material/getting-started/templates/landing-page/components/Highlights.tsx
+++ b/docs/data/material/getting-started/templates/landing-page/components/Highlights.tsx
@@ -59,7 +59,7 @@ export default function Highlights() {
pt: { xs: 4, sm: 12 },
pb: { xs: 8, sm: 16 },
color: 'white',
- bgcolor: '#06090a',
+ bgcolor: 'hsl(220, 30%, 2%)',
}}
>
{item.icon}
diff --git a/docs/data/material/getting-started/templates/landing-page/components/Pricing.js b/docs/data/material/getting-started/templates/landing-page/components/Pricing.js
index 8892d3aa411850..54a00b4a03dcd8 100644
--- a/docs/data/material/getting-started/templates/landing-page/components/Pricing.js
+++ b/docs/data/material/getting-started/templates/landing-page/components/Pricing.js
@@ -9,6 +9,7 @@ import Container from '@mui/material/Container';
import Divider from '@mui/material/Divider';
import Grid from '@mui/material/Grid';
import Typography from '@mui/material/Typography';
+
import AutoAwesomeIcon from '@mui/icons-material/AutoAwesome';
import CheckCircleRoundedIcon from '@mui/icons-material/CheckCircleRounded';
@@ -94,19 +95,21 @@ export default function Pricing() {
md={4}
>
({
p: 2,
display: 'flex',
flexDirection: 'column',
gap: 4,
- border: tier.title === 'Professional' ? '1px solid' : undefined,
- borderColor:
- tier.title === 'Professional' ? 'primary.main' : undefined,
- background:
- tier.title === 'Professional'
- ? 'linear-gradient(#033363, #021F3B)'
- : undefined,
- }}
+ ...(tier.title === 'Professional' && {
+ border: 'none',
+ boxShadow:
+ theme.palette.mode === 'light'
+ ? `0 8px 12px hsla(210, 98%, 42%, 0.2)`
+ : `0 8px 12px hsla(0, 0%, 0%, 0.8)`,
+ background:
+ 'radial-gradient(circle at 50% 0%, hsl(210, 98%, 35%), hsl(210, 100%, 16%))',
+ }),
+ })}
>
@@ -127,14 +131,13 @@ export default function Pricing() {
label={tier.subheader}
size="small"
sx={{
- background: (theme) =>
- theme.palette.mode === 'light' ? '' : 'none',
- backgroundColor: 'primary.contrastText',
+ borderColor: 'hsla(220, 60%, 99%, 0.3)',
+ backgroundColor: 'hsla(220, 60%, 99%, 0.1)',
'& .MuiChip-label': {
- color: 'primary.dark',
+ color: 'hsl(0, 0%, 100%)',
},
'& .MuiChip-icon': {
- color: 'primary.dark',
+ color: 'primary.light',
},
}}
/>
@@ -157,8 +160,8 @@ export default function Pricing() {
{tier.description.map((line) => (
@@ -181,11 +184,10 @@ export default function Pricing() {
}}
/>
{line}
diff --git a/docs/data/material/getting-started/templates/landing-page/components/Pricing.tsx b/docs/data/material/getting-started/templates/landing-page/components/Pricing.tsx
index bcb8ca47d33478..52ca695ee1ff1e 100644
--- a/docs/data/material/getting-started/templates/landing-page/components/Pricing.tsx
+++ b/docs/data/material/getting-started/templates/landing-page/components/Pricing.tsx
@@ -9,6 +9,7 @@ import Container from '@mui/material/Container';
import Divider from '@mui/material/Divider';
import Grid from '@mui/material/Grid';
import Typography from '@mui/material/Typography';
+
import AutoAwesomeIcon from '@mui/icons-material/AutoAwesome';
import CheckCircleRoundedIcon from '@mui/icons-material/CheckCircleRounded';
@@ -94,19 +95,21 @@ export default function Pricing() {
md={4}
>
({
p: 2,
display: 'flex',
flexDirection: 'column',
gap: 4,
- border: tier.title === 'Professional' ? '1px solid' : undefined,
- borderColor:
- tier.title === 'Professional' ? 'primary.main' : undefined,
- background:
- tier.title === 'Professional'
- ? 'linear-gradient(#033363, #021F3B)'
- : undefined,
- }}
+ ...(tier.title === 'Professional' && {
+ border: 'none',
+ boxShadow:
+ theme.palette.mode === 'light'
+ ? `0 8px 12px hsla(210, 98%, 42%, 0.2)`
+ : `0 8px 12px hsla(0, 0%, 0%, 0.8)`,
+ background:
+ 'radial-gradient(circle at 50% 0%, hsl(210, 98%, 35%), hsl(210, 100%, 16%))',
+ }),
+ })}
>
@@ -127,14 +131,13 @@ export default function Pricing() {
label={tier.subheader}
size="small"
sx={{
- background: (theme) =>
- theme.palette.mode === 'light' ? '' : 'none',
- backgroundColor: 'primary.contrastText',
+ borderColor: 'hsla(220, 60%, 99%, 0.3)',
+ backgroundColor: 'hsla(220, 60%, 99%, 0.1)',
'& .MuiChip-label': {
- color: 'primary.dark',
+ color: 'hsl(0, 0%, 100%)',
},
'& .MuiChip-icon': {
- color: 'primary.dark',
+ color: 'primary.light',
},
}}
/>
@@ -157,8 +160,8 @@ export default function Pricing() {
{tier.description.map((line) => (
@@ -181,11 +184,10 @@ export default function Pricing() {
}}
/>
{line}
diff --git a/docs/data/material/getting-started/templates/landing-page/components/SitemarkIcon.js b/docs/data/material/getting-started/templates/landing-page/components/SitemarkIcon.js
new file mode 100644
index 00000000000000..eaa718dc5360d2
--- /dev/null
+++ b/docs/data/material/getting-started/templates/landing-page/components/SitemarkIcon.js
@@ -0,0 +1,53 @@
+import * as React from 'react';
+import SvgIcon from '@mui/material/SvgIcon';
+
+export default function SitemarkIcon() {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/docs/data/material/getting-started/templates/landing-page/components/SitemarkIcon.tsx b/docs/data/material/getting-started/templates/landing-page/components/SitemarkIcon.tsx
new file mode 100644
index 00000000000000..eaa718dc5360d2
--- /dev/null
+++ b/docs/data/material/getting-started/templates/landing-page/components/SitemarkIcon.tsx
@@ -0,0 +1,53 @@
+import * as React from 'react';
+import SvgIcon from '@mui/material/SvgIcon';
+
+export default function SitemarkIcon() {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/docs/data/material/getting-started/templates/landing-page/components/ToggleColorMode.js b/docs/data/material/getting-started/templates/landing-page/components/ToggleColorMode.js
index 5732175df5bd92..bcb83d384743d2 100644
--- a/docs/data/material/getting-started/templates/landing-page/components/ToggleColorMode.js
+++ b/docs/data/material/getting-started/templates/landing-page/components/ToggleColorMode.js
@@ -1,29 +1,25 @@
import * as React from 'react';
import PropTypes from 'prop-types';
-import Box from '@mui/material/Box';
-import Button from '@mui/material/Button';
+import IconButton from '@mui/material/IconButton';
import WbSunnyRoundedIcon from '@mui/icons-material/WbSunnyRounded';
import ModeNightRoundedIcon from '@mui/icons-material/ModeNightRounded';
function ToggleColorMode({ mode, toggleColorMode }) {
return (
-
-
- {mode === 'dark' ? (
-
- ) : (
-
- )}
-
-
+
+ {mode === 'dark' ? (
+
+ ) : (
+
+ )}
+
);
}
diff --git a/docs/data/material/getting-started/templates/landing-page/components/ToggleColorMode.tsx b/docs/data/material/getting-started/templates/landing-page/components/ToggleColorMode.tsx
index 6fdd215fa2e8a3..9ccb9982009d24 100644
--- a/docs/data/material/getting-started/templates/landing-page/components/ToggleColorMode.tsx
+++ b/docs/data/material/getting-started/templates/landing-page/components/ToggleColorMode.tsx
@@ -1,7 +1,6 @@
import * as React from 'react';
import { PaletteMode } from '@mui/material';
-import Box from '@mui/material/Box';
-import Button from '@mui/material/Button';
+import IconButton from '@mui/material/IconButton';
import WbSunnyRoundedIcon from '@mui/icons-material/WbSunnyRounded';
import ModeNightRoundedIcon from '@mui/icons-material/ModeNightRounded';
@@ -11,24 +10,22 @@ interface ToggleColorModeProps {
toggleColorMode: () => void;
}
-function ToggleColorMode({ mode, toggleColorMode }: ToggleColorModeProps) {
+export default function ToggleColorMode({
+ mode,
+ toggleColorMode,
+}: ToggleColorModeProps) {
return (
-
-
- {mode === 'dark' ? (
-
- ) : (
-
- )}
-
-
+
+ {mode === 'dark' ? (
+
+ ) : (
+
+ )}
+
);
}
-
-export default ToggleColorMode;
diff --git a/docs/data/material/getting-started/templates/landing-page/getLPTheme.js b/docs/data/material/getting-started/templates/landing-page/getLPTheme.js
index f4f27dfbc6c137..8ae6d57199e6fc 100644
--- a/docs/data/material/getting-started/templates/landing-page/getLPTheme.js
+++ b/docs/data/material/getting-started/templates/landing-page/getLPTheme.js
@@ -1,56 +1,70 @@
-import { alpha } from '@mui/material/styles';
-import { red } from '@mui/material/colors';
+import { createTheme, alpha } from '@mui/material/styles';
-export const brand = {
- 50: '#F0F7FF',
- 100: '#CEE5FD',
- 200: '#9CCCFC',
- 300: '#55A6F6',
- 400: '#0A66C2',
- 500: '#0959AA',
- 600: '#064079',
- 700: '#033363',
- 800: '#02294F',
- 900: '#021F3B',
-};
+const customTheme = createTheme();
-export const secondary = {
- 50: '#F9F0FF',
- 100: '#E9CEFD',
- 200: '#D49CFC',
- 300: '#B355F6',
- 400: '#750AC2',
- 500: '#6709AA',
- 600: '#490679',
- 700: '#3B0363',
- 800: '#2F024F',
- 900: '#23023B',
+export const brand = {
+ 50: 'hsl(210, 100%, 97%)',
+ 100: 'hsl(210, 100%, 90%)',
+ 200: 'hsl(210, 100%, 80%)',
+ 300: 'hsl(210, 100%, 65%)',
+ 400: 'hsl(210, 98%, 48%)',
+ 500: 'hsl(210, 98%, 42%)',
+ 600: 'hsl(210, 98%, 55%)',
+ 700: 'hsl(210, 100%, 35%)',
+ 800: 'hsl(210, 100%, 16%)',
+ 900: 'hsl(210, 100%, 21%)',
};
export const gray = {
- 50: '#FBFCFE',
- 100: '#EAF0F5',
- 200: '#D6E2EB',
- 300: '#BFCCD9',
- 400: '#94A6B8',
- 500: '#5B6B7C',
- 600: '#4C5967',
- 700: '#364049',
- 800: '#131B20',
- 900: '#090E10',
+ 50: 'hsl(220, 60%, 99%)',
+ 100: 'hsl(220, 35%, 94%)',
+ 200: 'hsl(220, 35%, 88%)',
+ 300: 'hsl(220, 25%, 80%)',
+ 400: 'hsl(220, 20%, 65%)',
+ 500: 'hsl(220, 20%, 42%)',
+ 600: 'hsl(220, 25%, 35%)',
+ 700: 'hsl(220, 25%, 25%)',
+ 800: 'hsl(220, 25%, 10%)',
+ 900: 'hsl(220, 30%, 5%)',
};
export const green = {
- 50: '#F6FEF6',
- 100: '#E3FBE3',
- 200: '#C7F7C7',
- 300: '#A1E8A1',
- 400: '#51BC51',
- 500: '#1F7A1F',
- 600: '#136C13',
- 700: '#0A470A',
- 800: '#042F04',
- 900: '#021D02',
+ 50: 'hsl(120, 80%, 98%)',
+ 100: 'hsl(120, 75%, 94%)',
+ 200: 'hsl(120, 75%, 87%)',
+ 300: 'hsl(120, 61%, 77%)',
+ 400: 'hsl(120, 44%, 53%)',
+ 500: 'hsl(120, 59%, 30%)',
+ 600: 'hsl(120, 70%, 25%)',
+ 700: 'hsl(120, 75%, 16%)',
+ 800: 'hsl(120, 84%, 10%)',
+ 900: 'hsl(120, 87%, 6%)',
+};
+
+export const orange = {
+ 50: 'hsl(45, 100%, 97%)',
+ 100: 'hsl(45, 92%, 90%)',
+ 200: 'hsl(45, 94%, 80%)',
+ 300: 'hsl(45, 90%, 65%)',
+ 400: 'hsl(45, 90%, 40%)',
+ 500: 'hsl(45, 90%, 35%)',
+ 600: 'hsl(45, 91%, 25%)',
+ 700: 'hsl(45, 94%, 20%)',
+ 800: 'hsl(45, 95%, 16%)',
+ 900: 'hsl(45, 93%, 12%)',
+};
+
+export const red = {
+ 50: 'hsl(0, 100%, 97%)',
+ 100: 'hsl(0, 92%, 90%)',
+ 200: 'hsl(0, 94%, 80%)',
+ 300: 'hsl(0, 90%, 65%)',
+ 400: 'hsl(0, 90%, 40%)',
+ 500: 'hsl(0, 90%, 30%)',
+ 600: 'hsl(0, 91%, 25%)',
+ 700: 'hsl(0, 94%, 20%)',
+ 800: 'hsl(0, 95%, 16%)',
+ 900: 'hsl(0, 93%, 12%)',
};
const getDesignTokens = (mode) => ({
@@ -62,32 +76,43 @@ const getDesignTokens = (mode) => ({
dark: brand[800],
contrastText: brand[50],
...(mode === 'dark' && {
- contrastText: brand[100],
+ contrastText: brand[50],
light: brand[300],
main: brand[400],
dark: brand[800],
}),
},
- secondary: {
- light: secondary[300],
- main: secondary[500],
- dark: secondary[800],
+ info: {
+ light: brand[100],
+ main: brand[300],
+ dark: brand[600],
+ contrastText: gray[50],
...(mode === 'dark' && {
- light: secondary[400],
- main: secondary[500],
- dark: secondary[900],
+ contrastText: brand[300],
+ light: brand[500],
+ main: brand[700],
+ dark: brand[900],
}),
},
warning: {
- main: '#F7B538',
- dark: '#F79F00',
- ...(mode === 'dark' && { main: '#F7B538', dark: '#F79F00' }),
+ light: orange[300],
+ main: orange[400],
+ dark: orange[800],
+ ...(mode === 'dark' && {
+ light: orange[400],
+ main: orange[500],
+ dark: orange[700],
+ }),
},
error: {
- light: red[50],
- main: red[500],
- dark: red[700],
- ...(mode === 'dark' && { light: '#D32F2F', main: '#D32F2F', dark: '#B22A2A' }),
+ light: red[300],
+ main: red[400],
+ dark: red[800],
+ ...(mode === 'dark' && {
+ light: red[400],
+ main: red[500],
+ dark: red[700],
+ }),
},
success: {
light: green[300],
@@ -100,27 +125,18 @@ const getDesignTokens = (mode) => ({
}),
},
grey: {
- 50: gray[50],
- 100: gray[100],
- 200: gray[200],
- 300: gray[300],
- 400: gray[400],
- 500: gray[500],
- 600: gray[600],
- 700: gray[700],
- 800: gray[800],
- 900: gray[900],
+ ...gray,
},
divider: mode === 'dark' ? alpha(gray[600], 0.3) : alpha(gray[300], 0.5),
background: {
- default: '#fff',
- paper: gray[50],
- ...(mode === 'dark' && { default: gray[900], paper: gray[800] }),
+ default: 'hsl(0, 0%, 100%)',
+ paper: gray[100],
+ ...(mode === 'dark' && { default: 'hsl(220, 30%, 3%)', paper: gray[900] }),
},
text: {
primary: gray[800],
secondary: gray[600],
- ...(mode === 'dark' && { primary: '#fff', secondary: gray[400] }),
+ ...(mode === 'dark' && { primary: 'hsl(0, 0%, 100%)', secondary: gray[400] }),
},
action: {
selected: `${alpha(brand[200], 0.2)}`,
@@ -132,51 +148,54 @@ const getDesignTokens = (mode) => ({
typography: {
fontFamily: ['"Inter", "sans-serif"'].join(','),
h1: {
- fontSize: 60,
+ fontSize: customTheme.typography.pxToRem(60),
fontWeight: 600,
- lineHeight: 78 / 70,
- letterSpacing: -0.2,
+ lineHeight: 1.2,
+ letterSpacing: -0.5,
},
h2: {
- fontSize: 48,
+ fontSize: customTheme.typography.pxToRem(48),
fontWeight: 600,
lineHeight: 1.2,
},
h3: {
- fontSize: 42,
+ fontSize: customTheme.typography.pxToRem(42),
lineHeight: 1.2,
},
h4: {
- fontSize: 36,
+ fontSize: customTheme.typography.pxToRem(36),
fontWeight: 500,
lineHeight: 1.5,
},
h5: {
- fontSize: 20,
+ fontSize: customTheme.typography.pxToRem(20),
fontWeight: 600,
},
h6: {
- fontSize: 18,
+ fontSize: customTheme.typography.pxToRem(18),
},
subtitle1: {
- fontSize: 18,
+ fontSize: customTheme.typography.pxToRem(18),
},
subtitle2: {
- fontSize: 16,
+ fontSize: customTheme.typography.pxToRem(16),
},
body1: {
+ fontSize: customTheme.typography.pxToRem(15),
fontWeight: 400,
- fontSize: 15,
},
body2: {
+ fontSize: customTheme.typography.pxToRem(14),
fontWeight: 400,
- fontSize: 14,
},
caption: {
+ fontSize: customTheme.typography.pxToRem(12),
fontWeight: 400,
- fontSize: 12,
},
},
+ shape: {
+ borderRadius: 12,
+ },
});
export default function getLPTheme(mode) {
@@ -192,7 +211,7 @@ export default function getLPTheme(mode) {
root: ({ theme }) => ({
padding: 8,
overflow: 'clip',
- backgroundColor: '#fff',
+ backgroundColor: 'hsl(0, 0%, 100%)',
border: '1px solid',
borderColor: gray[100],
':before': {
@@ -219,6 +238,7 @@ export default function getLPTheme(mode) {
border: 'none',
borderRadius: 8,
'&:hover': { backgroundColor: gray[100] },
+ '&:focus-visible': { backgroundColor: 'transparent' },
...(theme.palette.mode === 'dark' && {
'&:hover': { backgroundColor: gray[800] },
}),
@@ -230,38 +250,6 @@ export default function getLPTheme(mode) {
root: { mb: 20, border: 'none' },
},
},
- MuiToggleButtonGroup: {
- styleOverrides: {
- root: ({ theme }) => ({
- borderRadius: '10px',
- boxShadow: `0 4px 16px ${alpha(gray[400], 0.2)}`,
- '& .Mui-selected': {
- color: brand[500],
- },
- ...(theme.palette.mode === 'dark' && {
- '& .Mui-selected': {
- color: '#fff',
- },
- boxShadow: `0 4px 16px ${alpha(brand[700], 0.5)}`,
- }),
- }),
- },
- },
- MuiToggleButton: {
- styleOverrides: {
- root: ({ theme }) => ({
- padding: '12px 16px',
- textTransform: 'none',
- borderRadius: '10px',
- fontWeight: 500,
- ...(theme.palette.mode === 'dark' && {
- color: gray[400],
- boxShadow: '0 4px 16px rgba(0, 0, 0, 0.5)',
- '&.Mui-selected': { color: brand[300] },
- }),
- }),
- },
- },
MuiButtonBase: {
defaultProps: {
disableTouchRipple: true,
@@ -270,9 +258,9 @@ export default function getLPTheme(mode) {
styleOverrides: {
root: {
boxSizing: 'border-box',
- transition: 'all 100ms ease-in',
+ transition: 'all 100ms ease',
'&:focus-visible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outline: `3px solid ${alpha(brand[400], 0.5)}`,
outlineOffset: '2px',
},
},
@@ -281,65 +269,126 @@ export default function getLPTheme(mode) {
MuiButton: {
styleOverrides: {
root: ({ theme, ownerState }) => ({
- boxSizing: 'border-box',
boxShadow: 'none',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
textTransform: 'none',
- '&:active': {
- transform: 'scale(0.98)',
- },
...(ownerState.size === 'small' && {
- maxHeight: '32px',
+ height: '2rem', // 32px
+ padding: '0 0.5rem',
}),
...(ownerState.size === 'medium' && {
- height: '40px',
+ height: '2.5rem', // 40px
}),
...(ownerState.variant === 'contained' &&
ownerState.color === 'primary' && {
- color: brand[50],
- background: brand[500],
- backgroundImage: `linear-gradient(to bottom, ${brand[400]}, ${brand[600]})`,
- boxShadow: `inset 0 1px ${alpha(brand[300], 0.4)}`,
- outline: `1px solid ${brand[700]}`,
+ color: 'white',
+ backgroundColor: brand[300],
+ backgroundImage: `linear-gradient(to bottom, ${alpha(brand[400], 0.8)}, ${brand[500]})`,
+ boxShadow: `inset 0 2px 0 ${alpha(brand[200], 0.2)}, inset 0 -2px 0 ${alpha(brand[700], 0.4)}`,
+ border: `1px solid ${brand[500]}`,
'&:hover': {
- background: brand[400],
- backgroundImage: 'none',
- boxShadow: `0 0 0 1px ${alpha(brand[300], 0.5)}`,
+ backgroundColor: brand[700],
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: brand[700],
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[700], 0.4)}`,
},
}),
...(ownerState.variant === 'outlined' && {
+ color: brand[700],
backgroundColor: alpha(brand[300], 0.1),
- borderColor: brand[300],
- color: brand[500],
+ borderColor: alpha(brand[200], 0.8),
+ boxShadow: `inset 0 2px ${alpha(brand[50], 0.5)}, inset 0 -2px ${alpha(brand[200], 0.2)}`,
'&:hover': {
- backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
+ backgroundColor: alpha(brand[300], 0.2),
+ borderColor: alpha(brand[300], 0.5),
+ boxShadow: 'none',
},
- }),
- ...(ownerState.variant === 'text' && {
- color: brand[500],
- '&:hover': {
+ '&:active': {
backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[400], 0.2)}`,
+ backgroundImage: 'none',
},
}),
+ ...(ownerState.variant === 'outlined' &&
+ ownerState.color === 'secondary' && {
+ backgroundColor: alpha(gray[300], 0.1),
+ borderColor: alpha(gray[300], 0.5),
+ color: gray[700],
+ '&:hover': {
+ backgroundColor: alpha(gray[300], 0.3),
+ borderColor: alpha(gray[300], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(gray[300], 0.4),
+ boxShadow: `inset 0 2.5px 0 ${alpha(gray[400], 0.2)}`,
+ backgroundImage: 'none',
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'primary' && {
+ color: brand[700],
+ '&:hover': {
+ backgroundColor: alpha(brand[300], 0.3),
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'info' && {
+ color: gray[700],
+ '&:hover': {
+ backgroundColor: alpha(gray[300], 0.3),
+ },
+ }),
...(theme.palette.mode === 'dark' && {
...(ownerState.variant === 'outlined' && {
+ color: brand[200],
backgroundColor: alpha(brand[600], 0.1),
- borderColor: brand[700],
- color: brand[300],
+ borderColor: alpha(brand[600], 0.6),
+ boxShadow: `inset 0 2.5px ${alpha(brand[400], 0.1)}, inset 0 -2px ${alpha(gray[900], 0.5)}`,
'&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
+ backgroundColor: alpha(brand[700], 0.2),
+ borderColor: alpha(brand[700], 0.5),
+ boxShadow: 'none',
},
- }),
- ...(ownerState.variant === 'text' && {
- color: brand[300],
- '&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
+ '&:active': {
+ backgroundColor: alpha(brand[800], 0.2),
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[900], 0.4)}`,
+ backgroundImage: 'none',
},
}),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'info' && {
+ color: gray[200],
+ '&:hover': {
+ backgroundColor: alpha(gray[700], 0.3),
+ },
+ }),
+ ...(ownerState.variant === 'outlined' &&
+ ownerState.color === 'secondary' && {
+ color: gray[300],
+ backgroundColor: alpha(gray[600], 0.1),
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: `inset 0 2.5px ${alpha(gray[600], 0.1)}, inset 0 -2px ${alpha(gray[900], 0.5)}`,
+ '&:hover': {
+ backgroundColor: alpha(gray[700], 0.2),
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(gray[800], 0.2),
+ boxShadow: `inset 0 2.5px 0 ${alpha(gray[900], 0.4)}`,
+ backgroundImage: 'none',
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'primary' && {
+ color: brand[200],
+ '&:hover': {
+ backgroundColor: alpha(brand[700], 0.3),
+ },
+ }),
}),
}),
},
@@ -347,30 +396,26 @@ export default function getLPTheme(mode) {
MuiCard: {
styleOverrides: {
root: ({ theme, ownerState }) => ({
+ transition: 'all 100ms ease',
backgroundColor: gray[50],
- borderRadius: 10,
- border: `1px solid ${alpha(gray[200], 0.8)}`,
+ borderRadius: theme.shape.borderRadius,
+ border: `1px solid ${alpha(gray[200], 0.5)}`,
boxShadow: 'none',
- transition: 'background-color, border, 80ms ease',
...(ownerState.variant === 'outlined' && {
- background: `linear-gradient(to bottom, #FFF, ${gray[50]})`,
- '&:hover': {
- borderColor: brand[300],
- boxShadow: `0 0 24px ${brand[100]}`,
- },
+ border: `1px solid ${gray[200]}`,
+ boxShadow: 'none',
+ background: `linear-gradient(to bottom, hsl(0, 0%, 100%), ${gray[50]})`,
}),
...(theme.palette.mode === 'dark' && {
backgroundColor: alpha(gray[800], 0.6),
border: `1px solid ${alpha(gray[700], 0.3)}`,
...(ownerState.variant === 'outlined' && {
+ border: `1px solid ${alpha(gray[700], 0.4)}`,
+ boxShadow: 'none',
background: `linear-gradient(to bottom, ${gray[900]}, ${alpha(
gray[800],
0.5,
)})`,
- '&:hover': {
- borderColor: brand[700],
- boxShadow: `0 0 24px ${brand[800]}`,
- },
}),
}),
}),
@@ -379,18 +424,17 @@ export default function getLPTheme(mode) {
MuiChip: {
styleOverrides: {
root: ({ theme }) => ({
- alignSelf: 'center',
py: 1.5,
px: 0.5,
- background: `linear-gradient(to bottom right, ${brand[50]}, ${brand[100]})`,
border: '1px solid',
- borderColor: `${alpha(brand[500], 0.3)}`,
- fontWeight: '600',
+ borderColor: brand[100],
+ fontWeight: 600,
+ backgroundColor: brand[50],
'&:hover': {
backgroundColor: brand[500],
},
'&:focus-visible': {
- borderColor: brand[800],
+ borderColor: brand[300],
backgroundColor: brand[200],
},
'& .MuiChip-label': {
@@ -400,14 +444,14 @@ export default function getLPTheme(mode) {
color: brand[500],
},
...(theme.palette.mode === 'dark' && {
- background: `linear-gradient(to bottom right, ${brand[700]}, ${brand[900]})`,
- borderColor: `${alpha(brand[500], 0.5)}`,
+ borderColor: `${alpha(brand[500], 0.2)}`,
+ backgroundColor: `${alpha(brand[900], 0.5)}`,
'&:hover': {
backgroundColor: brand[600],
},
'&:focus-visible': {
- borderColor: brand[200],
- backgroundColor: brand[600],
+ borderColor: brand[500],
+ backgroundColor: brand[800],
},
'& .MuiChip-label': {
color: brand[200],
@@ -429,13 +473,54 @@ export default function getLPTheme(mode) {
}),
},
},
+ MuiFormLabel: {
+ styleOverrides: {
+ root: ({ theme }) => ({
+ typography: theme.typography.caption,
+ marginBottom: 8,
+ }),
+ },
+ },
+ MuiIconButton: {
+ styleOverrides: {
+ root: ({ theme, ownerState }) => ({
+ ...(ownerState.size === 'small' && {
+ height: '2rem',
+ width: '2rem',
+ }),
+ ...(ownerState.size === 'medium' && {
+ height: '2.5rem',
+ width: '2.5rem',
+ }),
+ color: brand[500],
+ '&:hover': {
+ backgroundColor: alpha(brand[300], 0.3),
+ borderColor: brand[200],
+ },
+ ...(theme.palette.mode === 'dark' && {
+ color: brand[200],
+ '&:hover': {
+ backgroundColor: alpha(brand[600], 0.3),
+ borderColor: brand[700],
+ },
+ }),
+ }),
+ },
+ },
+ MuiInputBase: {
+ styleOverrides: {
+ root: {
+ border: 'none',
+ },
+ },
+ },
MuiLink: {
defaultProps: {
underline: 'none',
},
styleOverrides: {
root: ({ theme }) => ({
- color: brand[600],
+ color: brand[700],
fontWeight: 500,
position: 'relative',
textDecoration: 'none',
@@ -454,6 +539,11 @@ export default function getLPTheme(mode) {
width: '100%',
opacity: 1,
},
+ '&:focus-visible': {
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '4px',
+ borderRadius: '2px',
+ },
...(theme.palette.mode === 'dark' && {
color: brand[200],
}),
@@ -463,26 +553,109 @@ export default function getLPTheme(mode) {
MuiMenuItem: {
styleOverrides: {
root: ({ theme }) => ({
- borderRadius: '99px',
- color: gray[500],
+ paddingRight: 6,
+ paddingLeft: 6,
+ color: gray[700],
+ fontSize: '0.875rem',
fontWeight: 500,
+ borderRadius: theme.shape.borderRadius,
...(theme.palette.mode === 'dark' && {
- color: gray[300],
+ color: gray[200],
}),
}),
},
},
- MuiPaper: {
+ MuiOutlinedInput: {
styleOverrides: {
- root: ({ theme }) => ({
- backgroundImage: 'none',
- backgroundColor: gray[100],
+ notchedOutline: {
+ border: 'none',
+ },
+ input: {
+ paddingLeft: 10,
+ },
+ root: ({ theme, ownerState }) => ({
+ 'input:-webkit-autofill': {
+ WebkitBoxShadow: `0 0 0 1000px ${brand[100]} inset, 0 0 0 1px ${brand[200]}`,
+ maxHeight: '4px',
+ borderRadius: '8px',
+ },
+ '& .MuiInputBase-input': {
+ fontSize: '1rem',
+ '&::placeholder': {
+ opacity: 0.7,
+ color: gray[500],
+ },
+ },
+ boxSizing: 'border-box',
+ flexGrow: 1,
+ height: '40px',
+ borderRadius: theme.shape.borderRadius,
+ border: '1px solid',
+ borderColor: alpha(gray[300], 0.8),
+ boxShadow: '0 0 0 1.5px hsla(210, 0%, 0%, 0.02) inset',
+ transition: 'border-color 120ms ease-in',
+ backgroundColor: alpha(gray[100], 0.4),
+ '&:hover': {
+ borderColor: brand[300],
+ },
+ '&.Mui-focused': {
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '2px',
+ borderColor: brand[400],
+ },
+ ...(ownerState.color === 'error' && {
+ borderColor: red[200],
+ color: red[500],
+ '& + .MuiFormHelperText-root': {
+ color: red[500],
+ },
+ }),
...(theme.palette.mode === 'dark' && {
- backgroundColor: alpha(gray[900], 0.6),
+ 'input:-webkit-autofill': {
+ WebkitBoxShadow: `0 0 0 1000px ${brand[900]} inset, 0 0 0 1px ${brand[600]}`,
+ maxHeight: '6px',
+ borderRadius: '8px',
+ },
+ '& .MuiInputBase-input': {
+ fontSize: '1rem',
+ '&::placeholder': {
+ opacity: 1,
+ color: gray[500],
+ },
+ },
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: '0 0 0 1.5px hsl(210, 0%, 0%) inset',
+ backgroundColor: alpha(gray[900], 0.8),
+ transition: 'border-color 120ms ease-in',
+ '&:hover': {
+ borderColor: brand[300],
+ },
+ '&.Mui-focused': {
+ borderColor: brand[400],
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '2px',
+ },
+ ...(ownerState.color === 'error' && {
+ borderColor: red[700],
+ color: red[300],
+ '& + .MuiFormHelperText-root': {
+ color: red[300],
+ },
+ }),
}),
}),
},
},
+ MuiPaper: {
+ defaultProps: {
+ elevation: 0,
+ },
+ },
+ MuiStack: {
+ defaultProps: {
+ useFlexGap: true,
+ },
+ },
MuiSwitch: {
styleOverrides: {
root: ({ theme }) => ({
@@ -505,8 +678,8 @@ export default function getLPTheme(mode) {
borderRadius: 50,
},
'& .MuiSwitch-thumb': {
- boxShadow: '0 0 2px 2px rgba(0, 0, 0, 0.2)',
- backgroundColor: '#FFF',
+ boxShadow: '0 0 2px 2px hsla(220, 0%, 0%, 0.2)',
+ backgroundColor: 'hsl(0, 0%, 100%)',
width: 16,
height: 16,
margin: 2,
@@ -527,8 +700,8 @@ export default function getLPTheme(mode) {
},
},
'& .MuiSwitch-thumb': {
- boxShadow: '0 0 2px 2px rgba(0, 0, 0, 0.2)',
- backgroundColor: '#FFF',
+ boxShadow: '0 0 2px 2px hsla(220, 0%, 0%, 0.2)',
+ backgroundColor: 'hsl(0, 0%, 100%)',
width: 16,
height: 16,
margin: 2,
@@ -539,72 +712,40 @@ export default function getLPTheme(mode) {
height: 24,
width: 24,
padding: 0,
- color: '#fff',
+ color: 'hsl(0, 0%, 100%)',
'&.Mui-checked + .MuiSwitch-track': {
opacity: 1,
},
},
},
},
- MuiTextField: {
+ MuiToggleButtonGroup: {
styleOverrides: {
root: ({ theme }) => ({
- '& label .Mui-focused': {
- color: 'white',
- },
- '& .MuiInputBase-input': {
- boxSizing: 'border-box',
- '&::placeholder': {
- opacity: 0.7,
- },
- },
- '& .MuiOutlinedInput-root': {
- boxSizing: 'border-box',
- minWidth: 280,
- minHeight: 40,
- height: '100%',
- borderRadius: '10px',
- border: '1px solid',
- borderColor: gray[200],
- transition: 'border-color 120ms ease-in',
- '& fieldset': {
- border: 'none',
- boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.1)',
- background: `${alpha('#FFF', 0.3)}`,
- },
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-focused': {
- borderColor: brand[400],
- outline: '4px solid',
- outlineColor: brand[200],
- },
+ borderRadius: theme.shape.borderRadius,
+ boxShadow: `0 1px 2px hsla(210, 0%, 0%, 0.05), 0 2px 12px ${alpha(brand[200], 0.5)}`,
+ '& .Mui-selected': {
+ color: brand[500],
},
...(theme.palette.mode === 'dark' && {
- '& .MuiOutlinedInput-root': {
- boxSizing: 'border-box',
- minWidth: 280,
- minHeight: 40,
- height: '100%',
- borderRadius: '10px',
- border: '1px solid',
- borderColor: gray[600],
- transition: 'border-color 120ms ease-in',
- '& fieldset': {
- border: 'none',
- boxShadow: ' 0px 2px 4px rgba(0, 0, 0, 0.4)',
- background: `${alpha(gray[800], 0.4)}`,
- },
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-focused': {
- borderColor: brand[400],
- outline: '4px solid',
- outlineColor: alpha(brand[500], 0.5),
- },
+ '& .Mui-selected': {
+ color: 'hsl(0, 0%, 100%)',
},
+ boxShadow: `0 0 0 1px hsla(210, 0%, 0%, 0.5), 0 2px 12px ${alpha(brand[700], 0.5)}`,
+ }),
+ }),
+ },
+ },
+ MuiToggleButton: {
+ styleOverrides: {
+ root: ({ theme }) => ({
+ padding: '12px 16px',
+ textTransform: 'none',
+ borderRadius: theme.shape.borderRadius,
+ fontWeight: 500,
+ ...(theme.palette.mode === 'dark' && {
+ color: gray[400],
+ '&.Mui-selected': { color: brand[300] },
}),
}),
},
diff --git a/docs/data/material/getting-started/templates/landing-page/getLPTheme.tsx b/docs/data/material/getting-started/templates/landing-page/getLPTheme.tsx
index 2186784d2735ae..c513c17f63b408 100644
--- a/docs/data/material/getting-started/templates/landing-page/getLPTheme.tsx
+++ b/docs/data/material/getting-started/templates/landing-page/getLPTheme.tsx
@@ -1,6 +1,5 @@
import type {} from '@mui/material/themeCssVarsAugmentation';
-import { ThemeOptions, alpha } from '@mui/material/styles';
-import { red } from '@mui/material/colors';
+import { createTheme, ThemeOptions, alpha } from '@mui/material/styles';
import { PaletteMode } from '@mui/material';
declare module '@mui/material/styles/createPalette' {
@@ -20,56 +19,71 @@ declare module '@mui/material/styles/createPalette' {
interface PaletteColor extends ColorRange {}
}
-export const brand = {
- 50: '#F0F7FF',
- 100: '#CEE5FD',
- 200: '#9CCCFC',
- 300: '#55A6F6',
- 400: '#0A66C2',
- 500: '#0959AA',
- 600: '#064079',
- 700: '#033363',
- 800: '#02294F',
- 900: '#021F3B',
-};
+const customTheme = createTheme();
-export const secondary = {
- 50: '#F9F0FF',
- 100: '#E9CEFD',
- 200: '#D49CFC',
- 300: '#B355F6',
- 400: '#750AC2',
- 500: '#6709AA',
- 600: '#490679',
- 700: '#3B0363',
- 800: '#2F024F',
- 900: '#23023B',
+export const brand = {
+ 50: 'hsl(210, 100%, 97%)',
+ 100: 'hsl(210, 100%, 90%)',
+ 200: 'hsl(210, 100%, 80%)',
+ 300: 'hsl(210, 100%, 65%)',
+ 400: 'hsl(210, 98%, 48%)',
+ 500: 'hsl(210, 98%, 42%)',
+ 600: 'hsl(210, 98%, 55%)',
+ 700: 'hsl(210, 100%, 35%)',
+ 800: 'hsl(210, 100%, 16%)',
+ 900: 'hsl(210, 100%, 21%)',
};
export const gray = {
- 50: '#FBFCFE',
- 100: '#EAF0F5',
- 200: '#D6E2EB',
- 300: '#BFCCD9',
- 400: '#94A6B8',
- 500: '#5B6B7C',
- 600: '#4C5967',
- 700: '#364049',
- 800: '#131B20',
- 900: '#090E10',
+ 50: 'hsl(220, 60%, 99%)',
+ 100: 'hsl(220, 35%, 94%)',
+ 200: 'hsl(220, 35%, 88%)',
+ 300: 'hsl(220, 25%, 80%)',
+ 400: 'hsl(220, 20%, 65%)',
+ 500: 'hsl(220, 20%, 42%)',
+ 600: 'hsl(220, 25%, 35%)',
+ 700: 'hsl(220, 25%, 25%)',
+ 800: 'hsl(220, 25%, 10%)',
+ 900: 'hsl(220, 30%, 5%)',
};
export const green = {
- 50: '#F6FEF6',
- 100: '#E3FBE3',
- 200: '#C7F7C7',
- 300: '#A1E8A1',
- 400: '#51BC51',
- 500: '#1F7A1F',
- 600: '#136C13',
- 700: '#0A470A',
- 800: '#042F04',
- 900: '#021D02',
+ 50: 'hsl(120, 80%, 98%)',
+ 100: 'hsl(120, 75%, 94%)',
+ 200: 'hsl(120, 75%, 87%)',
+ 300: 'hsl(120, 61%, 77%)',
+ 400: 'hsl(120, 44%, 53%)',
+ 500: 'hsl(120, 59%, 30%)',
+ 600: 'hsl(120, 70%, 25%)',
+ 700: 'hsl(120, 75%, 16%)',
+ 800: 'hsl(120, 84%, 10%)',
+ 900: 'hsl(120, 87%, 6%)',
+};
+
+export const orange = {
+ 50: 'hsl(45, 100%, 97%)',
+ 100: 'hsl(45, 92%, 90%)',
+ 200: 'hsl(45, 94%, 80%)',
+ 300: 'hsl(45, 90%, 65%)',
+ 400: 'hsl(45, 90%, 40%)',
+ 500: 'hsl(45, 90%, 35%)',
+ 600: 'hsl(45, 91%, 25%)',
+ 700: 'hsl(45, 94%, 20%)',
+ 800: 'hsl(45, 95%, 16%)',
+ 900: 'hsl(45, 93%, 12%)',
+};
+
+export const red = {
+ 50: 'hsl(0, 100%, 97%)',
+ 100: 'hsl(0, 92%, 90%)',
+ 200: 'hsl(0, 94%, 80%)',
+ 300: 'hsl(0, 90%, 65%)',
+ 400: 'hsl(0, 90%, 40%)',
+ 500: 'hsl(0, 90%, 30%)',
+ 600: 'hsl(0, 91%, 25%)',
+ 700: 'hsl(0, 94%, 20%)',
+ 800: 'hsl(0, 95%, 16%)',
+ 900: 'hsl(0, 93%, 12%)',
};
const getDesignTokens = (mode: PaletteMode) => ({
@@ -81,32 +95,43 @@ const getDesignTokens = (mode: PaletteMode) => ({
dark: brand[800],
contrastText: brand[50],
...(mode === 'dark' && {
- contrastText: brand[100],
+ contrastText: brand[50],
light: brand[300],
main: brand[400],
dark: brand[800],
}),
},
- secondary: {
- light: secondary[300],
- main: secondary[500],
- dark: secondary[800],
+ info: {
+ light: brand[100],
+ main: brand[300],
+ dark: brand[600],
+ contrastText: gray[50],
...(mode === 'dark' && {
- light: secondary[400],
- main: secondary[500],
- dark: secondary[900],
+ contrastText: brand[300],
+ light: brand[500],
+ main: brand[700],
+ dark: brand[900],
}),
},
warning: {
- main: '#F7B538',
- dark: '#F79F00',
- ...(mode === 'dark' && { main: '#F7B538', dark: '#F79F00' }),
+ light: orange[300],
+ main: orange[400],
+ dark: orange[800],
+ ...(mode === 'dark' && {
+ light: orange[400],
+ main: orange[500],
+ dark: orange[700],
+ }),
},
error: {
- light: red[50],
- main: red[500],
- dark: red[700],
- ...(mode === 'dark' && { light: '#D32F2F', main: '#D32F2F', dark: '#B22A2A' }),
+ light: red[300],
+ main: red[400],
+ dark: red[800],
+ ...(mode === 'dark' && {
+ light: red[400],
+ main: red[500],
+ dark: red[700],
+ }),
},
success: {
light: green[300],
@@ -119,27 +144,18 @@ const getDesignTokens = (mode: PaletteMode) => ({
}),
},
grey: {
- 50: gray[50],
- 100: gray[100],
- 200: gray[200],
- 300: gray[300],
- 400: gray[400],
- 500: gray[500],
- 600: gray[600],
- 700: gray[700],
- 800: gray[800],
- 900: gray[900],
+ ...gray,
},
divider: mode === 'dark' ? alpha(gray[600], 0.3) : alpha(gray[300], 0.5),
background: {
- default: '#fff',
- paper: gray[50],
- ...(mode === 'dark' && { default: gray[900], paper: gray[800] }),
+ default: 'hsl(0, 0%, 100%)',
+ paper: gray[100],
+ ...(mode === 'dark' && { default: 'hsl(220, 30%, 3%)', paper: gray[900] }),
},
text: {
primary: gray[800],
secondary: gray[600],
- ...(mode === 'dark' && { primary: '#fff', secondary: gray[400] }),
+ ...(mode === 'dark' && { primary: 'hsl(0, 0%, 100%)', secondary: gray[400] }),
},
action: {
selected: `${alpha(brand[200], 0.2)}`,
@@ -151,51 +167,54 @@ const getDesignTokens = (mode: PaletteMode) => ({
typography: {
fontFamily: ['"Inter", "sans-serif"'].join(','),
h1: {
- fontSize: 60,
+ fontSize: customTheme.typography.pxToRem(60),
fontWeight: 600,
- lineHeight: 78 / 70,
- letterSpacing: -0.2,
+ lineHeight: 1.2,
+ letterSpacing: -0.5,
},
h2: {
- fontSize: 48,
+ fontSize: customTheme.typography.pxToRem(48),
fontWeight: 600,
lineHeight: 1.2,
},
h3: {
- fontSize: 42,
+ fontSize: customTheme.typography.pxToRem(42),
lineHeight: 1.2,
},
h4: {
- fontSize: 36,
+ fontSize: customTheme.typography.pxToRem(36),
fontWeight: 500,
lineHeight: 1.5,
},
h5: {
- fontSize: 20,
+ fontSize: customTheme.typography.pxToRem(20),
fontWeight: 600,
},
h6: {
- fontSize: 18,
+ fontSize: customTheme.typography.pxToRem(18),
},
subtitle1: {
- fontSize: 18,
+ fontSize: customTheme.typography.pxToRem(18),
},
subtitle2: {
- fontSize: 16,
+ fontSize: customTheme.typography.pxToRem(16),
},
body1: {
+ fontSize: customTheme.typography.pxToRem(15),
fontWeight: 400,
- fontSize: 15,
},
body2: {
+ fontSize: customTheme.typography.pxToRem(14),
fontWeight: 400,
- fontSize: 14,
},
caption: {
+ fontSize: customTheme.typography.pxToRem(12),
fontWeight: 400,
- fontSize: 12,
},
},
+ shape: {
+ borderRadius: 12,
+ },
});
export default function getLPTheme(mode: PaletteMode): ThemeOptions {
@@ -211,7 +230,7 @@ export default function getLPTheme(mode: PaletteMode): ThemeOptions {
root: ({ theme }) => ({
padding: 8,
overflow: 'clip',
- backgroundColor: '#fff',
+ backgroundColor: 'hsl(0, 0%, 100%)',
border: '1px solid',
borderColor: gray[100],
':before': {
@@ -238,6 +257,7 @@ export default function getLPTheme(mode: PaletteMode): ThemeOptions {
border: 'none',
borderRadius: 8,
'&:hover': { backgroundColor: gray[100] },
+ '&:focus-visible': { backgroundColor: 'transparent' },
...(theme.palette.mode === 'dark' && {
'&:hover': { backgroundColor: gray[800] },
}),
@@ -249,38 +269,6 @@ export default function getLPTheme(mode: PaletteMode): ThemeOptions {
root: { mb: 20, border: 'none' },
},
},
- MuiToggleButtonGroup: {
- styleOverrides: {
- root: ({ theme }) => ({
- borderRadius: '10px',
- boxShadow: `0 4px 16px ${alpha(gray[400], 0.2)}`,
- '& .Mui-selected': {
- color: brand[500],
- },
- ...(theme.palette.mode === 'dark' && {
- '& .Mui-selected': {
- color: '#fff',
- },
- boxShadow: `0 4px 16px ${alpha(brand[700], 0.5)}`,
- }),
- }),
- },
- },
- MuiToggleButton: {
- styleOverrides: {
- root: ({ theme }) => ({
- padding: '12px 16px',
- textTransform: 'none',
- borderRadius: '10px',
- fontWeight: 500,
- ...(theme.palette.mode === 'dark' && {
- color: gray[400],
- boxShadow: '0 4px 16px rgba(0, 0, 0, 0.5)',
- '&.Mui-selected': { color: brand[300] },
- }),
- }),
- },
- },
MuiButtonBase: {
defaultProps: {
disableTouchRipple: true,
@@ -289,9 +277,9 @@ export default function getLPTheme(mode: PaletteMode): ThemeOptions {
styleOverrides: {
root: {
boxSizing: 'border-box',
- transition: 'all 100ms ease-in',
+ transition: 'all 100ms ease',
'&:focus-visible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outline: `3px solid ${alpha(brand[400], 0.5)}`,
outlineOffset: '2px',
},
},
@@ -300,65 +288,126 @@ export default function getLPTheme(mode: PaletteMode): ThemeOptions {
MuiButton: {
styleOverrides: {
root: ({ theme, ownerState }) => ({
- boxSizing: 'border-box',
boxShadow: 'none',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
textTransform: 'none',
- '&:active': {
- transform: 'scale(0.98)',
- },
...(ownerState.size === 'small' && {
- maxHeight: '32px',
+ height: '2rem', // 32px
+ padding: '0 0.5rem',
}),
...(ownerState.size === 'medium' && {
- height: '40px',
+ height: '2.5rem', // 40px
}),
...(ownerState.variant === 'contained' &&
ownerState.color === 'primary' && {
- color: brand[50],
- background: brand[500],
- backgroundImage: `linear-gradient(to bottom, ${brand[400]}, ${brand[600]})`,
- boxShadow: `inset 0 1px ${alpha(brand[300], 0.4)}`,
- outline: `1px solid ${brand[700]}`,
+ color: 'white',
+ backgroundColor: brand[300],
+ backgroundImage: `linear-gradient(to bottom, ${alpha(brand[400], 0.8)}, ${brand[500]})`,
+ boxShadow: `inset 0 2px 0 ${alpha(brand[200], 0.2)}, inset 0 -2px 0 ${alpha(brand[700], 0.4)}`,
+ border: `1px solid ${brand[500]}`,
'&:hover': {
- background: brand[400],
- backgroundImage: 'none',
- boxShadow: `0 0 0 1px ${alpha(brand[300], 0.5)}`,
+ backgroundColor: brand[700],
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: brand[700],
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[700], 0.4)}`,
},
}),
...(ownerState.variant === 'outlined' && {
+ color: brand[700],
backgroundColor: alpha(brand[300], 0.1),
- borderColor: brand[300],
- color: brand[500],
+ borderColor: alpha(brand[200], 0.8),
+ boxShadow: `inset 0 2px ${alpha(brand[50], 0.5)}, inset 0 -2px ${alpha(brand[200], 0.2)}`,
'&:hover': {
- backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
+ backgroundColor: alpha(brand[300], 0.2),
+ borderColor: alpha(brand[300], 0.5),
+ boxShadow: 'none',
},
- }),
- ...(ownerState.variant === 'text' && {
- color: brand[500],
- '&:hover': {
+ '&:active': {
backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[400], 0.2)}`,
+ backgroundImage: 'none',
},
}),
+ ...(ownerState.variant === 'outlined' &&
+ ownerState.color === 'secondary' && {
+ backgroundColor: alpha(gray[300], 0.1),
+ borderColor: alpha(gray[300], 0.5),
+ color: gray[700],
+ '&:hover': {
+ backgroundColor: alpha(gray[300], 0.3),
+ borderColor: alpha(gray[300], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(gray[300], 0.4),
+ boxShadow: `inset 0 2.5px 0 ${alpha(gray[400], 0.2)}`,
+ backgroundImage: 'none',
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'primary' && {
+ color: brand[700],
+ '&:hover': {
+ backgroundColor: alpha(brand[300], 0.3),
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'info' && {
+ color: gray[700],
+ '&:hover': {
+ backgroundColor: alpha(gray[300], 0.3),
+ },
+ }),
...(theme.palette.mode === 'dark' && {
...(ownerState.variant === 'outlined' && {
+ color: brand[200],
backgroundColor: alpha(brand[600], 0.1),
- borderColor: brand[700],
- color: brand[300],
+ borderColor: alpha(brand[600], 0.6),
+ boxShadow: `inset 0 2.5px ${alpha(brand[400], 0.1)}, inset 0 -2px ${alpha(gray[900], 0.5)}`,
'&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
+ backgroundColor: alpha(brand[700], 0.2),
+ borderColor: alpha(brand[700], 0.5),
+ boxShadow: 'none',
},
- }),
- ...(ownerState.variant === 'text' && {
- color: brand[300],
- '&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
+ '&:active': {
+ backgroundColor: alpha(brand[800], 0.2),
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[900], 0.4)}`,
+ backgroundImage: 'none',
},
}),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'info' && {
+ color: gray[200],
+ '&:hover': {
+ backgroundColor: alpha(gray[700], 0.3),
+ },
+ }),
+ ...(ownerState.variant === 'outlined' &&
+ ownerState.color === 'secondary' && {
+ color: gray[300],
+ backgroundColor: alpha(gray[600], 0.1),
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: `inset 0 2.5px ${alpha(gray[600], 0.1)}, inset 0 -2px ${alpha(gray[900], 0.5)}`,
+ '&:hover': {
+ backgroundColor: alpha(gray[700], 0.2),
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(gray[800], 0.2),
+ boxShadow: `inset 0 2.5px 0 ${alpha(gray[900], 0.4)}`,
+ backgroundImage: 'none',
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'primary' && {
+ color: brand[200],
+ '&:hover': {
+ backgroundColor: alpha(brand[700], 0.3),
+ },
+ }),
}),
}),
},
@@ -366,30 +415,26 @@ export default function getLPTheme(mode: PaletteMode): ThemeOptions {
MuiCard: {
styleOverrides: {
root: ({ theme, ownerState }) => ({
+ transition: 'all 100ms ease',
backgroundColor: gray[50],
- borderRadius: 10,
- border: `1px solid ${alpha(gray[200], 0.8)}`,
+ borderRadius: theme.shape.borderRadius,
+ border: `1px solid ${alpha(gray[200], 0.5)}`,
boxShadow: 'none',
- transition: 'background-color, border, 80ms ease',
...(ownerState.variant === 'outlined' && {
- background: `linear-gradient(to bottom, #FFF, ${gray[50]})`,
- '&:hover': {
- borderColor: brand[300],
- boxShadow: `0 0 24px ${brand[100]}`,
- },
+ border: `1px solid ${gray[200]}`,
+ boxShadow: 'none',
+ background: `linear-gradient(to bottom, hsl(0, 0%, 100%), ${gray[50]})`,
}),
...(theme.palette.mode === 'dark' && {
backgroundColor: alpha(gray[800], 0.6),
border: `1px solid ${alpha(gray[700], 0.3)}`,
...(ownerState.variant === 'outlined' && {
+ border: `1px solid ${alpha(gray[700], 0.4)}`,
+ boxShadow: 'none',
background: `linear-gradient(to bottom, ${gray[900]}, ${alpha(
gray[800],
0.5,
)})`,
- '&:hover': {
- borderColor: brand[700],
- boxShadow: `0 0 24px ${brand[800]}`,
- },
}),
}),
}),
@@ -398,18 +443,17 @@ export default function getLPTheme(mode: PaletteMode): ThemeOptions {
MuiChip: {
styleOverrides: {
root: ({ theme }) => ({
- alignSelf: 'center',
py: 1.5,
px: 0.5,
- background: `linear-gradient(to bottom right, ${brand[50]}, ${brand[100]})`,
border: '1px solid',
- borderColor: `${alpha(brand[500], 0.3)}`,
- fontWeight: '600',
+ borderColor: brand[100],
+ fontWeight: 600,
+ backgroundColor: brand[50],
'&:hover': {
backgroundColor: brand[500],
},
'&:focus-visible': {
- borderColor: brand[800],
+ borderColor: brand[300],
backgroundColor: brand[200],
},
'& .MuiChip-label': {
@@ -419,14 +463,14 @@ export default function getLPTheme(mode: PaletteMode): ThemeOptions {
color: brand[500],
},
...(theme.palette.mode === 'dark' && {
- background: `linear-gradient(to bottom right, ${brand[700]}, ${brand[900]})`,
- borderColor: `${alpha(brand[500], 0.5)}`,
+ borderColor: `${alpha(brand[500], 0.2)}`,
+ backgroundColor: `${alpha(brand[900], 0.5)}`,
'&:hover': {
backgroundColor: brand[600],
},
'&:focus-visible': {
- borderColor: brand[200],
- backgroundColor: brand[600],
+ borderColor: brand[500],
+ backgroundColor: brand[800],
},
'& .MuiChip-label': {
color: brand[200],
@@ -448,13 +492,54 @@ export default function getLPTheme(mode: PaletteMode): ThemeOptions {
}),
},
},
+ MuiFormLabel: {
+ styleOverrides: {
+ root: ({ theme }) => ({
+ typography: theme.typography.caption,
+ marginBottom: 8,
+ }),
+ },
+ },
+ MuiIconButton: {
+ styleOverrides: {
+ root: ({ theme, ownerState }) => ({
+ ...(ownerState.size === 'small' && {
+ height: '2rem',
+ width: '2rem',
+ }),
+ ...(ownerState.size === 'medium' && {
+ height: '2.5rem',
+ width: '2.5rem',
+ }),
+ color: brand[500],
+ '&:hover': {
+ backgroundColor: alpha(brand[300], 0.3),
+ borderColor: brand[200],
+ },
+ ...(theme.palette.mode === 'dark' && {
+ color: brand[200],
+ '&:hover': {
+ backgroundColor: alpha(brand[600], 0.3),
+ borderColor: brand[700],
+ },
+ }),
+ }),
+ },
+ },
+ MuiInputBase: {
+ styleOverrides: {
+ root: {
+ border: 'none',
+ },
+ },
+ },
MuiLink: {
defaultProps: {
underline: 'none',
},
styleOverrides: {
root: ({ theme }) => ({
- color: brand[600],
+ color: brand[700],
fontWeight: 500,
position: 'relative',
textDecoration: 'none',
@@ -473,6 +558,11 @@ export default function getLPTheme(mode: PaletteMode): ThemeOptions {
width: '100%',
opacity: 1,
},
+ '&:focus-visible': {
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '4px',
+ borderRadius: '2px',
+ },
...(theme.palette.mode === 'dark' && {
color: brand[200],
}),
@@ -482,26 +572,109 @@ export default function getLPTheme(mode: PaletteMode): ThemeOptions {
MuiMenuItem: {
styleOverrides: {
root: ({ theme }) => ({
- borderRadius: '99px',
- color: gray[500],
+ paddingRight: 6,
+ paddingLeft: 6,
+ color: gray[700],
+ fontSize: '0.875rem',
fontWeight: 500,
+ borderRadius: theme.shape.borderRadius,
...(theme.palette.mode === 'dark' && {
- color: gray[300],
+ color: gray[200],
}),
}),
},
},
- MuiPaper: {
+ MuiOutlinedInput: {
styleOverrides: {
- root: ({ theme }) => ({
- backgroundImage: 'none',
- backgroundColor: gray[100],
+ notchedOutline: {
+ border: 'none',
+ },
+ input: {
+ paddingLeft: 10,
+ },
+ root: ({ theme, ownerState }) => ({
+ 'input:-webkit-autofill': {
+ WebkitBoxShadow: `0 0 0 1000px ${brand[100]} inset, 0 0 0 1px ${brand[200]}`,
+ maxHeight: '4px',
+ borderRadius: '8px',
+ },
+ '& .MuiInputBase-input': {
+ fontSize: '1rem',
+ '&::placeholder': {
+ opacity: 0.7,
+ color: gray[500],
+ },
+ },
+ boxSizing: 'border-box',
+ flexGrow: 1,
+ height: '40px',
+ borderRadius: theme.shape.borderRadius,
+ border: '1px solid',
+ borderColor: alpha(gray[300], 0.8),
+ boxShadow: '0 0 0 1.5px hsla(210, 0%, 0%, 0.02) inset',
+ transition: 'border-color 120ms ease-in',
+ backgroundColor: alpha(gray[100], 0.4),
+ '&:hover': {
+ borderColor: brand[300],
+ },
+ '&.Mui-focused': {
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '2px',
+ borderColor: brand[400],
+ },
+ ...(ownerState.color === 'error' && {
+ borderColor: red[200],
+ color: red[500],
+ '& + .MuiFormHelperText-root': {
+ color: red[500],
+ },
+ }),
...(theme.palette.mode === 'dark' && {
- backgroundColor: alpha(gray[900], 0.6),
+ 'input:-webkit-autofill': {
+ WebkitBoxShadow: `0 0 0 1000px ${brand[900]} inset, 0 0 0 1px ${brand[600]}`,
+ maxHeight: '6px',
+ borderRadius: '8px',
+ },
+ '& .MuiInputBase-input': {
+ fontSize: '1rem',
+ '&::placeholder': {
+ opacity: 1,
+ color: gray[500],
+ },
+ },
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: '0 0 0 1.5px hsl(210, 0%, 0%) inset',
+ backgroundColor: alpha(gray[900], 0.8),
+ transition: 'border-color 120ms ease-in',
+ '&:hover': {
+ borderColor: brand[300],
+ },
+ '&.Mui-focused': {
+ borderColor: brand[400],
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '2px',
+ },
+ ...(ownerState.color === 'error' && {
+ borderColor: red[700],
+ color: red[300],
+ '& + .MuiFormHelperText-root': {
+ color: red[300],
+ },
+ }),
}),
}),
},
},
+ MuiPaper: {
+ defaultProps: {
+ elevation: 0,
+ },
+ },
+ MuiStack: {
+ defaultProps: {
+ useFlexGap: true,
+ },
+ },
MuiSwitch: {
styleOverrides: {
root: ({ theme }) => ({
@@ -524,8 +697,8 @@ export default function getLPTheme(mode: PaletteMode): ThemeOptions {
borderRadius: 50,
},
'& .MuiSwitch-thumb': {
- boxShadow: '0 0 2px 2px rgba(0, 0, 0, 0.2)',
- backgroundColor: '#FFF',
+ boxShadow: '0 0 2px 2px hsla(220, 0%, 0%, 0.2)',
+ backgroundColor: 'hsl(0, 0%, 100%)',
width: 16,
height: 16,
margin: 2,
@@ -546,8 +719,8 @@ export default function getLPTheme(mode: PaletteMode): ThemeOptions {
},
},
'& .MuiSwitch-thumb': {
- boxShadow: '0 0 2px 2px rgba(0, 0, 0, 0.2)',
- backgroundColor: '#FFF',
+ boxShadow: '0 0 2px 2px hsla(220, 0%, 0%, 0.2)',
+ backgroundColor: 'hsl(0, 0%, 100%)',
width: 16,
height: 16,
margin: 2,
@@ -558,72 +731,40 @@ export default function getLPTheme(mode: PaletteMode): ThemeOptions {
height: 24,
width: 24,
padding: 0,
- color: '#fff',
+ color: 'hsl(0, 0%, 100%)',
'&.Mui-checked + .MuiSwitch-track': {
opacity: 1,
},
},
},
},
- MuiTextField: {
+ MuiToggleButtonGroup: {
styleOverrides: {
root: ({ theme }) => ({
- '& label .Mui-focused': {
- color: 'white',
- },
- '& .MuiInputBase-input': {
- boxSizing: 'border-box',
- '&::placeholder': {
- opacity: 0.7,
- },
- },
- '& .MuiOutlinedInput-root': {
- boxSizing: 'border-box',
- minWidth: 280,
- minHeight: 40,
- height: '100%',
- borderRadius: '10px',
- border: '1px solid',
- borderColor: gray[200],
- transition: 'border-color 120ms ease-in',
- '& fieldset': {
- border: 'none',
- boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.1)',
- background: `${alpha('#FFF', 0.3)}`,
- },
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-focused': {
- borderColor: brand[400],
- outline: '4px solid',
- outlineColor: brand[200],
- },
+ borderRadius: theme.shape.borderRadius,
+ boxShadow: `0 1px 2px hsla(210, 0%, 0%, 0.05), 0 2px 12px ${alpha(brand[200], 0.5)}`,
+ '& .Mui-selected': {
+ color: brand[500],
},
...(theme.palette.mode === 'dark' && {
- '& .MuiOutlinedInput-root': {
- boxSizing: 'border-box',
- minWidth: 280,
- minHeight: 40,
- height: '100%',
- borderRadius: '10px',
- border: '1px solid',
- borderColor: gray[600],
- transition: 'border-color 120ms ease-in',
- '& fieldset': {
- border: 'none',
- boxShadow: ' 0px 2px 4px rgba(0, 0, 0, 0.4)',
- background: `${alpha(gray[800], 0.4)}`,
- },
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-focused': {
- borderColor: brand[400],
- outline: '4px solid',
- outlineColor: alpha(brand[500], 0.5),
- },
+ '& .Mui-selected': {
+ color: 'hsl(0, 0%, 100%)',
},
+ boxShadow: `0 0 0 1px hsla(210, 0%, 0%, 0.5), 0 2px 12px ${alpha(brand[700], 0.5)}`,
+ }),
+ }),
+ },
+ },
+ MuiToggleButton: {
+ styleOverrides: {
+ root: ({ theme }) => ({
+ padding: '12px 16px',
+ textTransform: 'none',
+ borderRadius: theme.shape.borderRadius,
+ fontWeight: 500,
+ ...(theme.palette.mode === 'dark' && {
+ color: gray[400],
+ '&.Mui-selected': { color: brand[300] },
}),
}),
},
diff --git a/docs/data/material/getting-started/templates/sign-in-side/Content.js b/docs/data/material/getting-started/templates/sign-in-side/Content.js
index f656245d4816c1..5035c73d0bf86d 100644
--- a/docs/data/material/getting-started/templates/sign-in-side/Content.js
+++ b/docs/data/material/getting-started/templates/sign-in-side/Content.js
@@ -1,4 +1,5 @@
import * as React from 'react';
+import Box from '@mui/material/Box';
import Stack from '@mui/material/Stack';
import Typography from '@mui/material/Typography';
@@ -46,13 +47,9 @@ export default function Content() {
maxWidth: 450,
}}
>
-
+
+
+
{items.map((item) => (
{item.icon}
diff --git a/docs/data/material/getting-started/templates/sign-in-side/Content.tsx b/docs/data/material/getting-started/templates/sign-in-side/Content.tsx
index f656245d4816c1..5035c73d0bf86d 100644
--- a/docs/data/material/getting-started/templates/sign-in-side/Content.tsx
+++ b/docs/data/material/getting-started/templates/sign-in-side/Content.tsx
@@ -1,4 +1,5 @@
import * as React from 'react';
+import Box from '@mui/material/Box';
import Stack from '@mui/material/Stack';
import Typography from '@mui/material/Typography';
@@ -46,13 +47,9 @@ export default function Content() {
maxWidth: 450,
}}
>
-
+
+
+
{items.map((item) => (
{item.icon}
diff --git a/docs/data/material/getting-started/templates/sign-in-side/CustomIcons.js b/docs/data/material/getting-started/templates/sign-in-side/CustomIcons.js
index e4a8d735bb75e6..3cf63c3501ba0c 100644
--- a/docs/data/material/getting-started/templates/sign-in-side/CustomIcons.js
+++ b/docs/data/material/getting-started/templates/sign-in-side/CustomIcons.js
@@ -1,87 +1,57 @@
import * as React from 'react';
-import PropTypes from 'prop-types';
-
import SvgIcon from '@mui/material/SvgIcon';
-function SitemarkIcon({ sx }) {
+export function SitemarkIcon() {
return (
-
+
-
-
-
-
);
}
-SitemarkIcon.propTypes = {
- sx: PropTypes.oneOfType([
- PropTypes.arrayOf(
- PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool]),
- ),
- PropTypes.func,
- PropTypes.object,
- ]),
-};
-
-export { SitemarkIcon };
-
export function FacebookIcon() {
return (
diff --git a/docs/data/material/getting-started/templates/sign-in-side/CustomIcons.tsx b/docs/data/material/getting-started/templates/sign-in-side/CustomIcons.tsx
index f66661a29dcb57..3cf63c3501ba0c 100644
--- a/docs/data/material/getting-started/templates/sign-in-side/CustomIcons.tsx
+++ b/docs/data/material/getting-started/templates/sign-in-side/CustomIcons.tsx
@@ -1,72 +1,51 @@
import * as React from 'react';
-import { SxProps, Theme } from '@mui/system';
import SvgIcon from '@mui/material/SvgIcon';
-interface IconProps {
- sx?: SxProps;
-}
-
-export function SitemarkIcon({ sx }: IconProps) {
+export function SitemarkIcon() {
return (
-
+
-
-
-
-
diff --git a/docs/data/material/getting-started/templates/sign-in-side/SignInCard.js b/docs/data/material/getting-started/templates/sign-in-side/SignInCard.js
index 2fe26179da482b..9c6c23678ee7b9 100644
--- a/docs/data/material/getting-started/templates/sign-in-side/SignInCard.js
+++ b/docs/data/material/getting-started/templates/sign-in-side/SignInCard.js
@@ -76,17 +76,13 @@ export default function SignInCard() {
gap: 2,
boxShadow:
theme.palette.mode === 'light'
- ? 'rgba(0, 0, 0, 0.05) 0px 5px 15px 0px, rgba(25, 28, 33, 0.05) 0px 15px 35px -5px, rgba(0, 0, 0, 0.05) 0px 0px 0px 1px'
- : 'rgba(0, 0, 0, 0.5) 0px 5px 15px 0px, rgba(25, 28, 33, 0.08) 0px 15px 35px -5px, rgba(0, 0, 0, 0.05) 0px 0px 0px 1px',
+ ? 'hsla(220, 30%, 5%, 0.05) 0px 5px 15px 0px, hsla(220, 25%, 10%, 0.05) 0px 15px 35px -5px, hsla(220, 30%, 5%, 0.05) 0px 0px 0px 1px'
+ : 'hsla(220, 30%, 5%, 0.5) 0px 5px 15px 0px, hsla(220, 25%, 10%, 0.08) 0px 15px 35px -5px, hsla(220, 30%, 5%, 0.05) 0px 0px 0px 1px',
})}
>
-
+
+
+
-
+
+
+
({
backgroundImage:
theme.palette.mode === 'light'
- ? 'radial-gradient(ellipse at 70% 51%, #f0f7ff, #fff)'
- : 'radial-gradient(at 70% 51%, rgba(2,41,79,0.5), rgb(1, 6, 11))',
+ ? 'radial-gradient(ellipse at 70% 51%, hsl(210, 100%, 97%), hsl(0, 0%, 100%))'
+ : 'radial-gradient(at 70% 51%, hsla(210, 100%, 16%, 0.5), hsl(220, 30%, 5%))',
backgroundSize: 'cover',
height: { xs: 'auto', md: '100dvh' },
pb: { xs: 12, sm: 0 },
diff --git a/docs/data/material/getting-started/templates/sign-in-side/SignInSide.tsx b/docs/data/material/getting-started/templates/sign-in-side/SignInSide.tsx
index f27e977ad3c71f..faff7403c757bb 100644
--- a/docs/data/material/getting-started/templates/sign-in-side/SignInSide.tsx
+++ b/docs/data/material/getting-started/templates/sign-in-side/SignInSide.tsx
@@ -41,7 +41,7 @@ function ToggleCustomTheme({
exclusive
value={showCustomTheme}
onChange={toggleCustomTheme}
- aria-label="Platform"
+ aria-label="Toggle design language"
sx={{
backgroundColor: 'background.default',
'& .Mui-selected': {
@@ -82,8 +82,8 @@ export default function SignInSide() {
sx={(theme) => ({
backgroundImage:
theme.palette.mode === 'light'
- ? 'radial-gradient(ellipse at 70% 51%, #f0f7ff, #fff)'
- : 'radial-gradient(at 70% 51%, rgba(2,41,79,0.5), rgb(1, 6, 11))',
+ ? 'radial-gradient(ellipse at 70% 51%, hsl(210, 100%, 97%), hsl(0, 0%, 100%))'
+ : 'radial-gradient(at 70% 51%, hsla(210, 100%, 16%, 0.5), hsl(220, 30%, 5%))',
backgroundSize: 'cover',
height: { xs: 'auto', md: '100dvh' },
pb: { xs: 12, sm: 0 },
diff --git a/docs/data/material/getting-started/templates/sign-in-side/SitemarkIcon.js b/docs/data/material/getting-started/templates/sign-in-side/SitemarkIcon.js
deleted file mode 100644
index d390782f3be28e..00000000000000
--- a/docs/data/material/getting-started/templates/sign-in-side/SitemarkIcon.js
+++ /dev/null
@@ -1,85 +0,0 @@
-import * as React from 'react';
-import PropTypes from 'prop-types';
-
-import SvgIcon from '@mui/material/SvgIcon';
-
-/* this logo is from LogoToUse.com */
-
-function SitemarkIcon({ sx }) {
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- );
-}
-
-SitemarkIcon.propTypes = {
- sx: PropTypes.oneOfType([
- PropTypes.arrayOf(
- PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool]),
- ),
- PropTypes.func,
- PropTypes.object,
- ]),
-};
-
-export default SitemarkIcon;
diff --git a/docs/data/material/getting-started/templates/sign-in-side/SitemarkIcon.tsx b/docs/data/material/getting-started/templates/sign-in-side/SitemarkIcon.tsx
deleted file mode 100644
index aee5bffc07e174..00000000000000
--- a/docs/data/material/getting-started/templates/sign-in-side/SitemarkIcon.tsx
+++ /dev/null
@@ -1,76 +0,0 @@
-import * as React from 'react';
-import { SxProps, Theme } from '@mui/system';
-import SvgIcon from '@mui/material/SvgIcon';
-
-interface SitemarkIconProps {
- sx?: SxProps;
-}
-
-/* this logo is from LogoToUse.com */
-
-export default function SitemarkIcon({ sx }: SitemarkIconProps) {
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- );
-}
diff --git a/docs/data/material/getting-started/templates/sign-in-side/ToggleColorMode.tsx b/docs/data/material/getting-started/templates/sign-in-side/ToggleColorMode.tsx
index 3783eb9d80714d..1fd99c941fe0ab 100644
--- a/docs/data/material/getting-started/templates/sign-in-side/ToggleColorMode.tsx
+++ b/docs/data/material/getting-started/templates/sign-in-side/ToggleColorMode.tsx
@@ -11,7 +11,10 @@ interface ToggleColorModeProps {
toggleColorMode: () => void;
}
-function ToggleColorMode({ mode, toggleColorMode }: ToggleColorModeProps) {
+export default function ToggleColorMode({
+ mode,
+ toggleColorMode,
+}: ToggleColorModeProps) {
return (
);
}
-
-export default ToggleColorMode;
diff --git a/docs/data/material/getting-started/templates/sign-in-side/getSignInSideTheme.js b/docs/data/material/getting-started/templates/sign-in-side/getSignInSideTheme.js
index b464dd285ddd78..e39de16cbf5e55 100644
--- a/docs/data/material/getting-started/templates/sign-in-side/getSignInSideTheme.js
+++ b/docs/data/material/getting-started/templates/sign-in-side/getSignInSideTheme.js
@@ -1,73 +1,75 @@
import * as React from 'react';
-import { alpha } from '@mui/material/styles';
+import { createTheme, alpha } from '@mui/material/styles';
import CheckBoxOutlineBlankRoundedIcon from '@mui/icons-material/CheckBoxOutlineBlankRounded';
import CheckRoundedIcon from '@mui/icons-material/CheckRounded';
-export const brand = {
- 50: '#F0F7FF',
- 100: '#CEE5FD',
- 200: '#9CCCFC',
- 300: '#55A6F6',
- 400: '#0A66C2',
- 500: '#0959AA',
- 600: '#064079',
- 700: '#033363',
- 800: '#02294F',
- 900: '#021F3B',
-};
+const customTheme = createTheme();
-export const secondary = {
- 50: '#F9F0FF',
- 100: '#E9CEFD',
- 200: '#D49CFC',
- 300: '#B355F6',
- 400: '#750AC2',
- 500: '#6709AA',
- 600: '#490679',
- 700: '#3B0363',
- 800: '#2F024F',
- 900: '#23023B',
+export const brand = {
+ 50: 'hsl(210, 100%, 97%)',
+ 100: 'hsl(210, 100%, 90%)',
+ 200: 'hsl(210, 100%, 80%)',
+ 300: 'hsl(210, 100%, 65%)',
+ 400: 'hsl(210, 98%, 48%)',
+ 500: 'hsl(210, 98%, 42%)',
+ 600: 'hsl(210, 98%, 55%)',
+ 700: 'hsl(210, 100%, 35%)',
+ 800: 'hsl(210, 100%, 16%)',
+ 900: 'hsl(210, 100%, 21%)',
};
export const gray = {
- 50: '#FBFCFE',
- 100: '#EAF0F5',
- 200: '#D6E2EB',
- 300: '#BFCCD9',
- 400: '#94A6B8',
- 500: '#5B6B7C',
- 600: '#4C5967',
- 700: '#364049',
- 800: '#131B20',
- 900: '#090E10',
+ 50: 'hsl(220, 60%, 99%)',
+ 100: 'hsl(220, 35%, 94%)',
+ 200: 'hsl(220, 35%, 88%)',
+ 300: 'hsl(220, 25%, 80%)',
+ 400: 'hsl(220, 20%, 65%)',
+ 500: 'hsl(220, 20%, 42%)',
+ 600: 'hsl(220, 25%, 35%)',
+ 700: 'hsl(220, 25%, 25%)',
+ 800: 'hsl(220, 25%, 10%)',
+ 900: 'hsl(220, 30%, 5%)',
};
export const green = {
- 50: '#F6FEF6',
- 100: '#E3FBE3',
- 200: '#C7F7C7',
- 300: '#A1E8A1',
- 400: '#51BC51',
- 500: '#1F7A1F',
- 600: '#136C13',
- 700: '#0A470A',
- 800: '#042F04',
- 900: '#021D02',
+ 50: 'hsl(120, 80%, 98%)',
+ 100: 'hsl(120, 75%, 94%)',
+ 200: 'hsl(120, 75%, 87%)',
+ 300: 'hsl(120, 61%, 77%)',
+ 400: 'hsl(120, 44%, 53%)',
+ 500: 'hsl(120, 59%, 30%)',
+ 600: 'hsl(120, 70%, 25%)',
+ 700: 'hsl(120, 75%, 16%)',
+ 800: 'hsl(120, 84%, 10%)',
+ 900: 'hsl(120, 87%, 6%)',
+};
+
+export const orange = {
+ 50: 'hsl(45, 100%, 97%)',
+ 100: 'hsl(45, 92%, 90%)',
+ 200: 'hsl(45, 94%, 80%)',
+ 300: 'hsl(45, 90%, 65%)',
+ 400: 'hsl(45, 90%, 40%)',
+ 500: 'hsl(45, 90%, 35%)',
+ 600: 'hsl(45, 91%, 25%)',
+ 700: 'hsl(45, 94%, 20%)',
+ 800: 'hsl(45, 95%, 16%)',
+ 900: 'hsl(45, 93%, 12%)',
};
export const red = {
- 50: '#FFF0F0',
- 100: '#FDCECE',
- 200: '#FC9C9C',
- 300: '#F65555',
- 400: '#C20A0A',
- 500: '#910808',
- 600: '#790606',
- 700: '#630303',
- 800: '#4F0202',
- 900: '#3B0202',
+ 50: 'hsl(0, 100%, 97%)',
+ 100: 'hsl(0, 92%, 90%)',
+ 200: 'hsl(0, 94%, 80%)',
+ 300: 'hsl(0, 90%, 65%)',
+ 400: 'hsl(0, 90%, 40%)',
+ 500: 'hsl(0, 90%, 30%)',
+ 600: 'hsl(0, 91%, 25%)',
+ 700: 'hsl(0, 94%, 20%)',
+ 800: 'hsl(0, 95%, 16%)',
+ 900: 'hsl(0, 93%, 12%)',
};
const getDesignTokens = (mode) => ({
@@ -85,26 +87,25 @@ const getDesignTokens = (mode) => ({
dark: brand[800],
}),
},
- secondary: {
- light: secondary[300],
- main: secondary[500],
- dark: secondary[800],
+ warning: {
+ light: orange[300],
+ main: orange[400],
+ dark: orange[800],
...(mode === 'dark' && {
- light: secondary[400],
- main: secondary[500],
- dark: secondary[900],
+ light: orange[400],
+ main: orange[500],
+ dark: orange[700],
}),
},
- warning: {
- main: '#F7B538',
- dark: '#F79F00',
- ...(mode === 'dark' && { main: '#F7B538', dark: '#F79F00' }),
- },
error: {
- light: red[50],
- main: red[500],
- dark: red[700],
- ...(mode === 'dark' && { light: '#D32F2F', main: '#D32F2F', dark: '#B22A2A' }),
+ light: red[300],
+ main: red[400],
+ dark: red[800],
+ ...(mode === 'dark' && {
+ light: red[400],
+ main: red[500],
+ dark: red[700],
+ }),
},
success: {
light: green[300],
@@ -117,27 +118,18 @@ const getDesignTokens = (mode) => ({
}),
},
grey: {
- 50: gray[50],
- 100: gray[100],
- 200: gray[200],
- 300: gray[300],
- 400: gray[400],
- 500: gray[500],
- 600: gray[600],
- 700: gray[700],
- 800: gray[800],
- 900: gray[900],
+ ...gray,
},
divider: mode === 'dark' ? alpha(gray[600], 0.3) : alpha(gray[300], 0.5),
background: {
- default: '#fff',
- paper: gray[50],
- ...(mode === 'dark' && { default: gray[900], paper: gray[800] }),
+ default: 'hsl(0, 0%, 100%)',
+ paper: gray[100],
+ ...(mode === 'dark' && { default: 'hsl(220, 30%, 3%)', paper: gray[900] }),
},
text: {
primary: gray[800],
secondary: gray[600],
- ...(mode === 'dark' && { primary: '#fff', secondary: gray[400] }),
+ ...(mode === 'dark' && { primary: 'hsl(0, 0%, 100%)', secondary: gray[400] }),
},
action: {
selected: `${alpha(brand[200], 0.2)}`,
@@ -149,51 +141,54 @@ const getDesignTokens = (mode) => ({
typography: {
fontFamily: ['"Inter", "sans-serif"'].join(','),
h1: {
- fontSize: 60,
+ fontSize: customTheme.typography.pxToRem(60),
fontWeight: 600,
- lineHeight: 78 / 70,
- letterSpacing: -0.2,
+ lineHeight: 1.2,
+ letterSpacing: -0.5,
},
h2: {
- fontSize: 48,
+ fontSize: customTheme.typography.pxToRem(48),
fontWeight: 600,
lineHeight: 1.2,
},
h3: {
- fontSize: 42,
+ fontSize: customTheme.typography.pxToRem(42),
lineHeight: 1.2,
},
h4: {
- fontSize: 36,
+ fontSize: customTheme.typography.pxToRem(36),
fontWeight: 500,
lineHeight: 1.5,
},
h5: {
- fontSize: 20,
+ fontSize: customTheme.typography.pxToRem(20),
fontWeight: 600,
},
h6: {
- fontSize: 18,
+ fontSize: customTheme.typography.pxToRem(18),
},
subtitle1: {
- fontSize: 18,
+ fontSize: customTheme.typography.pxToRem(18),
},
subtitle2: {
- fontSize: 16,
+ fontSize: customTheme.typography.pxToRem(16),
},
body1: {
+ fontSize: customTheme.typography.pxToRem(15),
fontWeight: 400,
- fontSize: 15,
},
body2: {
+ fontSize: customTheme.typography.pxToRem(14),
fontWeight: 400,
- fontSize: 14,
},
caption: {
+ fontSize: customTheme.typography.pxToRem(12),
fontWeight: 400,
- fontSize: 12,
},
},
+ shape: {
+ borderRadius: 12,
+ },
});
export default function getSignInSideTheme(mode) {
@@ -208,9 +203,9 @@ export default function getSignInSideTheme(mode) {
styleOverrides: {
root: {
boxSizing: 'border-box',
- transition: 'all 100ms ease-in',
+ transition: 'all 100ms ease',
'&:focus-visible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outline: `3px solid ${alpha(brand[400], 0.5)}`,
outlineOffset: '2px',
},
},
@@ -220,34 +215,45 @@ export default function getSignInSideTheme(mode) {
styleOverrides: {
root: ({ theme, ownerState }) => ({
boxShadow: 'none',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
textTransform: 'none',
...(ownerState.size === 'small' && {
- maxHeight: '32px',
+ height: '2rem', // 32px
+ padding: '0 0.5rem',
}),
...(ownerState.size === 'medium' && {
- height: '40px',
+ height: '2.5rem', // 40px
}),
...(ownerState.variant === 'contained' &&
ownerState.color === 'primary' && {
- color: brand[50],
- background: brand[500],
- backgroundImage: `linear-gradient(to bottom, ${brand[400]}, ${brand[600]})`,
- boxShadow: `inset 0 1px ${alpha(brand[300], 0.5)}`,
+ color: 'white',
+ backgroundColor: brand[300],
+ backgroundImage: `linear-gradient(to bottom, ${alpha(brand[400], 0.8)}, ${brand[500]})`,
+ boxShadow: `inset 0 2px 0 ${alpha(brand[200], 0.2)}, inset 0 -2px 0 ${alpha(brand[700], 0.4)}`,
border: `1px solid ${brand[500]}`,
'&:hover': {
- background: brand[400],
- backgroundImage: 'none',
- boxShadow: `0 0 0 1px ${alpha(brand[300], 0.5)}`,
+ backgroundColor: brand[700],
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: brand[700],
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[700], 0.4)}`,
},
}),
...(ownerState.variant === 'outlined' && {
+ color: brand[700],
backgroundColor: alpha(brand[300], 0.1),
- borderColor: brand[300],
- color: brand[500],
+ borderColor: alpha(brand[200], 0.8),
+ boxShadow: `inset 0 2px ${alpha(brand[50], 0.5)}, inset 0 -2px ${alpha(brand[200], 0.2)}`,
'&:hover': {
+ backgroundColor: alpha(brand[300], 0.2),
+ borderColor: alpha(brand[300], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[400], 0.2)}`,
+ backgroundImage: 'none',
},
}),
...(ownerState.variant === 'outlined' &&
@@ -257,84 +263,174 @@ export default function getSignInSideTheme(mode) {
color: gray[700],
'&:hover': {
backgroundColor: alpha(gray[300], 0.3),
- borderColor: gray[200],
+ borderColor: alpha(gray[300], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(gray[300], 0.4),
+ boxShadow: `inset 0 2.5px 0 ${alpha(gray[400], 0.2)}`,
+ backgroundImage: 'none',
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'primary' && {
+ color: brand[700],
+ '&:hover': {
+ backgroundColor: alpha(brand[300], 0.3),
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'info' && {
+ color: gray[700],
+ '&:hover': {
+ backgroundColor: alpha(gray[300], 0.3),
},
}),
- ...(ownerState.variant === 'text' && {
- color: brand[600],
- '&:hover': {
- backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
- },
- }),
...(theme.palette.mode === 'dark' && {
- ...(ownerState.variant === 'contained' &&
- ownerState.color === 'primary' && {
- border: `1px solid ${brand[600]}`,
- backgroundImage: `linear-gradient(to bottom, ${brand[500]}, ${brand[600]})`,
- backgroundColor: brand[500],
- '&:hover': {
- background: brand[600],
- backgroundImage: 'none',
- boxShadow: `0 0 0 1px ${alpha(brand[700], 0.5)}`,
- },
- }),
...(ownerState.variant === 'outlined' && {
+ color: brand[200],
backgroundColor: alpha(brand[600], 0.1),
- borderColor: brand[700],
- color: brand[300],
+ borderColor: alpha(brand[600], 0.6),
+ boxShadow: `inset 0 2.5px ${alpha(brand[400], 0.1)}, inset 0 -2px ${alpha(gray[900], 0.5)}`,
'&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
+ backgroundColor: alpha(brand[700], 0.2),
+ borderColor: alpha(brand[700], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(brand[800], 0.2),
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[900], 0.4)}`,
+ backgroundImage: 'none',
},
}),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'info' && {
+ color: gray[200],
+ '&:hover': {
+ backgroundColor: alpha(gray[700], 0.3),
+ },
+ }),
...(ownerState.variant === 'outlined' &&
ownerState.color === 'secondary' && {
+ color: gray[300],
backgroundColor: alpha(gray[600], 0.1),
borderColor: alpha(gray[700], 0.5),
- color: gray[300],
+ boxShadow: `inset 0 2.5px ${alpha(gray[600], 0.1)}, inset 0 -2px ${alpha(gray[900], 0.5)}`,
+ '&:hover': {
+ backgroundColor: alpha(gray[700], 0.2),
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(gray[800], 0.2),
+ boxShadow: `inset 0 2.5px 0 ${alpha(gray[900], 0.4)}`,
+ backgroundImage: 'none',
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'primary' && {
+ color: brand[200],
'&:hover': {
- backgroundColor: alpha(gray[600], 0.3),
- borderColor: gray[700],
+ backgroundColor: alpha(brand[700], 0.3),
},
}),
- ...(ownerState.variant === 'text' && {
- color: brand[200],
- '&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
- },
- }),
}),
}),
},
},
- MuiIconButton: {
+ MuiCard: {
styleOverrides: {
root: ({ theme, ownerState }) => ({
- ...(ownerState.size === 'small' && {
- height: '32px',
- width: '32px',
+ transition: 'all 100ms ease',
+ backgroundColor: gray[50],
+ borderRadius: theme.shape.borderRadius,
+ border: `1px solid ${alpha(gray[200], 0.5)}`,
+ boxShadow: 'none',
+ ...(ownerState.variant === 'outlined' && {
+ border: `1px solid ${gray[200]}`,
+ boxShadow: 'none',
+ background: `linear-gradient(to bottom, hsl(0, 0%, 100%), ${gray[50]})`,
}),
- ...(ownerState.size === 'medium' && {
- height: '40px',
- width: '40px',
+ ...(theme.palette.mode === 'dark' && {
+ backgroundColor: alpha(gray[800], 0.6),
+ border: `1px solid ${alpha(gray[700], 0.3)}`,
+ ...(ownerState.variant === 'outlined' && {
+ border: `1px solid ${alpha(gray[700], 0.4)}`,
+ boxShadow: 'none',
+ background: `linear-gradient(to bottom, ${gray[900]}, ${alpha(
+ gray[800],
+ 0.5,
+ )})`,
+ }),
}),
- color: brand[600],
+ }),
+ },
+ },
+ MuiCheckbox: {
+ defaultProps: {
+ disableRipple: true,
+ icon: (
+
+ ),
+ checkedIcon: ,
+ },
+ styleOverrides: {
+ root: ({ theme }) => ({
+ margin: 10,
+ height: 16,
+ width: 16,
+ borderRadius: 5,
+ border: '1px solid ',
+ borderColor: alpha(gray[300], 0.8),
+ backgroundColor: alpha(gray[100], 0.4),
+ boxShadow: '0 0 0 1.5px hsla(210, 0%, 0%, 0.04) inset',
+ transition: 'border-color, background-color, 120ms ease-in',
'&:hover': {
- backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
+ borderColor: brand[300],
+ },
+ '&.Mui-focusVisible': {
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '2px',
+ borderColor: brand[400],
+ },
+ '&.Mui-checked': {
+ color: 'white',
+ backgroundColor: brand[500],
+ borderColor: brand[500],
+ boxShadow: `none`,
+ '&:hover': {
+ backgroundColor: brand[600],
+ },
},
...(theme.palette.mode === 'dark' && {
- color: brand[200],
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: '0 0 0 1.5px hsl(210, 0%, 0%) inset',
+ backgroundColor: alpha(gray[900], 0.8),
'&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
+ borderColor: brand[300],
+ },
+ '&.Mui-focusVisible': {
+ borderColor: brand[400],
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '2px',
},
}),
}),
},
},
+ MuiDialog: {
+ styleOverrides: {
+ root: ({ theme }) => ({
+ '& .MuiDialog-paper': {
+ borderRadius: '10px',
+ border: '1px solid',
+ borderColor: theme.palette.divider,
+ },
+ }),
+ },
+ },
MuiDivider: {
styleOverrides: {
root: ({ theme }) => ({
@@ -345,25 +441,80 @@ export default function getSignInSideTheme(mode) {
}),
},
},
- MuiPaper: {
+ MuiFormLabel: {
styleOverrides: {
root: ({ theme }) => ({
- backgroundImage: 'none',
- backgroundColor: gray[100],
+ typography: theme.typography.caption,
+ marginBottom: 8,
+ }),
+ },
+ },
+ MuiIconButton: {
+ styleOverrides: {
+ root: ({ theme, ownerState }) => ({
+ ...(ownerState.size === 'small' && {
+ height: '2rem',
+ width: '2rem',
+ }),
+ ...(ownerState.size === 'medium' && {
+ height: '2.5rem',
+ width: '2.5rem',
+ }),
+ color: brand[500],
+ '&:hover': {
+ backgroundColor: alpha(brand[300], 0.3),
+ borderColor: brand[200],
+ },
...(theme.palette.mode === 'dark' && {
- backgroundColor: gray[800],
+ color: brand[200],
+ '&:hover': {
+ backgroundColor: alpha(brand[600], 0.3),
+ borderColor: brand[700],
+ },
}),
}),
},
},
- MuiDialog: {
+ MuiInputBase: {
+ styleOverrides: {
+ root: {
+ border: 'none',
+ },
+ },
+ },
+ MuiLink: {
+ defaultProps: {
+ underline: 'none',
+ },
styleOverrides: {
root: ({ theme }) => ({
- '& .MuiDialog-paper': {
- borderRadius: '10px',
- border: '1px solid',
- borderColor: theme.palette.divider,
+ color: brand[700],
+ fontWeight: 500,
+ position: 'relative',
+ textDecoration: 'none',
+ '&::before': {
+ content: '""',
+ position: 'absolute',
+ width: 0,
+ height: '1px',
+ bottom: 0,
+ left: 0,
+ backgroundColor: brand[200],
+ opacity: 0.7,
+ transition: 'width 0.3s ease, opacity 0.3s ease',
+ },
+ '&:hover::before': {
+ width: '100%',
+ opacity: 1,
+ },
+ '&:focus-visible': {
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '4px',
+ borderRadius: '2px',
},
+ ...(theme.palette.mode === 'dark' && {
+ color: brand[200],
+ }),
}),
},
},
@@ -382,6 +533,7 @@ export default function getSignInSideTheme(mode) {
borderRadius: '8px',
},
'& .MuiInputBase-input': {
+ fontSize: '1rem',
'&::placeholder': {
opacity: 0.7,
color: gray[500],
@@ -390,10 +542,10 @@ export default function getSignInSideTheme(mode) {
boxSizing: 'border-box',
flexGrow: 1,
height: '40px',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
border: '1px solid',
borderColor: alpha(gray[300], 0.8),
- boxShadow: '0 0 0 1.5px rgba(0, 0, 0, 0.04) inset',
+ boxShadow: '0 0 0 1.5px hsla(210, 0%, 0%, 0.02) inset',
transition: 'border-color 120ms ease-in',
backgroundColor: alpha(gray[100], 0.4),
'&:hover': {
@@ -418,13 +570,14 @@ export default function getSignInSideTheme(mode) {
borderRadius: '8px',
},
'& .MuiInputBase-input': {
+ fontSize: '1rem',
'&::placeholder': {
opacity: 1,
color: gray[500],
},
},
borderColor: alpha(gray[700], 0.5),
- boxShadow: '0 0 0 1.5px rgb(0, 0, 0) inset',
+ boxShadow: '0 0 0 1.5px hsl(210, 0%, 0%) inset',
backgroundColor: alpha(gray[900], 0.8),
transition: 'border-color 120ms ease-in',
'&:hover': {
@@ -446,154 +599,29 @@ export default function getSignInSideTheme(mode) {
}),
},
},
- MuiFormLabel: {
- styleOverrides: {
- root: ({ theme }) => ({
- typography: theme.typography.caption,
- marginBottom: 8,
- }),
- },
- },
- MuiInputBase: {
- styleOverrides: {
- root: {
- border: 'none',
- },
- },
- },
- MuiCard: {
- styleOverrides: {
- root: ({ theme, ownerState }) => ({
- backgroundColor: gray[50],
- borderRadius: 10,
- outline: `1px solid ${alpha(gray[200], 0.8)}`,
- boxShadow: 'none',
- ...(ownerState.variant === 'outlined' && {
- border: 0,
- boxSizing: 'border-box',
- background: `linear-gradient(to bottom, #FFF, ${gray[50]})`,
- }),
- ...(theme.palette.mode === 'dark' && {
- backgroundColor: alpha(gray[800], 0.6),
- outline: `1px solid ${alpha(gray[700], 0.5)}`,
- ...(ownerState.variant === 'outlined' && {
- boxSizing: 'border-box',
- background: `linear-gradient(to bottom, ${gray[900]}, ${alpha(
- gray[800],
- 0.5,
- )})`,
- }),
- }),
- }),
+ MuiPaper: {
+ defaultProps: {
+ elevation: 0,
},
},
- MuiLink: {
+ MuiStack: {
defaultProps: {
- underline: 'none',
- },
- styleOverrides: {
- root: ({ theme }) => ({
- color: brand[600],
- fontWeight: 500,
- position: 'relative',
- textDecoration: 'none',
- '&::before': {
- content: '""',
- position: 'absolute',
- width: 0,
- height: '1px',
- bottom: 0,
- left: 0,
- backgroundColor: brand[200],
- opacity: 0.7,
- transition: 'width 0.3s ease, opacity 0.3s ease',
- },
- '&:hover::before': {
- width: '100%',
- opacity: 1,
- },
- '&:focus-visible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '4px',
- borderRadius: '2px',
- },
- ...(theme.palette.mode === 'dark' && {
- color: brand[200],
- }),
- }),
+ useFlexGap: true,
},
},
MuiToggleButtonGroup: {
styleOverrides: {
root: ({ theme }) => ({
- borderRadius: '10px',
- boxShadow: `0 4px 16px ${alpha(gray[400], 0.2)}`,
+ borderRadius: theme.shape.borderRadius,
+ boxShadow: `0 1px 2px hsla(210, 0%, 0%, 0.05), 0 2px 12px ${alpha(brand[200], 0.5)}`,
'& .Mui-selected': {
color: brand[500],
},
...(theme.palette.mode === 'dark' && {
'& .Mui-selected': {
- color: '#fff',
- },
- boxShadow: `0 4px 16px ${alpha(brand[700], 0.5)}`,
- }),
- }),
- },
- },
- MuiCheckbox: {
- defaultProps: {
- disableRipple: true,
- icon: ,
- checkedIcon: ,
- },
- styleOverrides: {
- root: ({ theme }) => ({
- margin: 10,
- height: 16,
- width: 16,
- borderRadius: 5,
- border: '1px solid ',
- borderColor: alpha(gray[300], 0.8),
- boxShadow: '0 0 0 1.5px rgba(0, 0, 0, 0.04) inset',
- transition: 'border-color 120ms ease-in',
- backgroundColor: alpha(gray[100], 0.4),
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-focusVisible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '2px',
- borderColor: brand[400],
- },
- '&.Mui-checked': {
- color: 'white',
- backgroundColor: brand[500],
- '&:hover': {
- borderColor: brand[300],
- backgroundColor: brand[600],
- },
- },
- ...(theme.palette.mode === 'dark' && {
- borderColor: alpha(gray[700], 0.5),
- boxShadow: '0 0 0 1.5px rgb(0, 0, 0) inset',
- backgroundColor: alpha(gray[900], 0.8),
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-checked': {
- color: 'white',
- backgroundColor: brand[600],
- boxShadow: '0 0 0 1px rgba(0, 0, 0, 0.2) inset',
- '&:hover': {
- borderColor: brand[300],
- backgroundColor: brand[800],
- },
- },
- '&.Mui-focusVisible': {
- borderColor: brand[400],
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '2px',
+ color: 'hsl(0, 0%, 100%)',
},
+ boxShadow: `0 0 0 1px hsla(210, 0%, 0%, 0.5), 0 2px 12px ${alpha(brand[700], 0.5)}`,
}),
}),
},
@@ -603,21 +631,15 @@ export default function getSignInSideTheme(mode) {
root: ({ theme }) => ({
padding: '12px 16px',
textTransform: 'none',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
fontWeight: 500,
...(theme.palette.mode === 'dark' && {
color: gray[400],
- boxShadow: '0 4px 16px rgba(0, 0, 0, 0.5)',
'&.Mui-selected': { color: brand[300] },
}),
}),
},
},
- MuiStack: {
- defaultProps: {
- useFlexGap: true,
- },
- },
},
};
}
diff --git a/docs/data/material/getting-started/templates/sign-in-side/getSignInSideTheme.tsx b/docs/data/material/getting-started/templates/sign-in-side/getSignInSideTheme.tsx
index 6b4da0a9489ccb..20e9329142a520 100644
--- a/docs/data/material/getting-started/templates/sign-in-side/getSignInSideTheme.tsx
+++ b/docs/data/material/getting-started/templates/sign-in-side/getSignInSideTheme.tsx
@@ -1,6 +1,6 @@
import * as React from 'react';
import type {} from '@mui/material/themeCssVarsAugmentation';
-import { ThemeOptions, alpha } from '@mui/material/styles';
+import { createTheme, ThemeOptions, alpha } from '@mui/material/styles';
import { PaletteMode } from '@mui/material';
import CheckBoxOutlineBlankRoundedIcon from '@mui/icons-material/CheckBoxOutlineBlankRounded';
@@ -23,69 +23,71 @@ declare module '@mui/material/styles/createPalette' {
interface PaletteColor extends ColorRange {}
}
-export const brand = {
- 50: '#F0F7FF',
- 100: '#CEE5FD',
- 200: '#9CCCFC',
- 300: '#55A6F6',
- 400: '#0A66C2',
- 500: '#0959AA',
- 600: '#064079',
- 700: '#033363',
- 800: '#02294F',
- 900: '#021F3B',
-};
+const customTheme = createTheme();
-export const secondary = {
- 50: '#F9F0FF',
- 100: '#E9CEFD',
- 200: '#D49CFC',
- 300: '#B355F6',
- 400: '#750AC2',
- 500: '#6709AA',
- 600: '#490679',
- 700: '#3B0363',
- 800: '#2F024F',
- 900: '#23023B',
+export const brand = {
+ 50: 'hsl(210, 100%, 97%)',
+ 100: 'hsl(210, 100%, 90%)',
+ 200: 'hsl(210, 100%, 80%)',
+ 300: 'hsl(210, 100%, 65%)',
+ 400: 'hsl(210, 98%, 48%)',
+ 500: 'hsl(210, 98%, 42%)',
+ 600: 'hsl(210, 98%, 55%)',
+ 700: 'hsl(210, 100%, 35%)',
+ 800: 'hsl(210, 100%, 16%)',
+ 900: 'hsl(210, 100%, 21%)',
};
export const gray = {
- 50: '#FBFCFE',
- 100: '#EAF0F5',
- 200: '#D6E2EB',
- 300: '#BFCCD9',
- 400: '#94A6B8',
- 500: '#5B6B7C',
- 600: '#4C5967',
- 700: '#364049',
- 800: '#131B20',
- 900: '#090E10',
+ 50: 'hsl(220, 60%, 99%)',
+ 100: 'hsl(220, 35%, 94%)',
+ 200: 'hsl(220, 35%, 88%)',
+ 300: 'hsl(220, 25%, 80%)',
+ 400: 'hsl(220, 20%, 65%)',
+ 500: 'hsl(220, 20%, 42%)',
+ 600: 'hsl(220, 25%, 35%)',
+ 700: 'hsl(220, 25%, 25%)',
+ 800: 'hsl(220, 25%, 10%)',
+ 900: 'hsl(220, 30%, 5%)',
};
export const green = {
- 50: '#F6FEF6',
- 100: '#E3FBE3',
- 200: '#C7F7C7',
- 300: '#A1E8A1',
- 400: '#51BC51',
- 500: '#1F7A1F',
- 600: '#136C13',
- 700: '#0A470A',
- 800: '#042F04',
- 900: '#021D02',
+ 50: 'hsl(120, 80%, 98%)',
+ 100: 'hsl(120, 75%, 94%)',
+ 200: 'hsl(120, 75%, 87%)',
+ 300: 'hsl(120, 61%, 77%)',
+ 400: 'hsl(120, 44%, 53%)',
+ 500: 'hsl(120, 59%, 30%)',
+ 600: 'hsl(120, 70%, 25%)',
+ 700: 'hsl(120, 75%, 16%)',
+ 800: 'hsl(120, 84%, 10%)',
+ 900: 'hsl(120, 87%, 6%)',
+};
+
+export const orange = {
+ 50: 'hsl(45, 100%, 97%)',
+ 100: 'hsl(45, 92%, 90%)',
+ 200: 'hsl(45, 94%, 80%)',
+ 300: 'hsl(45, 90%, 65%)',
+ 400: 'hsl(45, 90%, 40%)',
+ 500: 'hsl(45, 90%, 35%)',
+ 600: 'hsl(45, 91%, 25%)',
+ 700: 'hsl(45, 94%, 20%)',
+ 800: 'hsl(45, 95%, 16%)',
+ 900: 'hsl(45, 93%, 12%)',
};
export const red = {
- 50: '#FFF0F0',
- 100: '#FDCECE',
- 200: '#FC9C9C',
- 300: '#F65555',
- 400: '#C20A0A',
- 500: '#910808',
- 600: '#790606',
- 700: '#630303',
- 800: '#4F0202',
- 900: '#3B0202',
+ 50: 'hsl(0, 100%, 97%)',
+ 100: 'hsl(0, 92%, 90%)',
+ 200: 'hsl(0, 94%, 80%)',
+ 300: 'hsl(0, 90%, 65%)',
+ 400: 'hsl(0, 90%, 40%)',
+ 500: 'hsl(0, 90%, 30%)',
+ 600: 'hsl(0, 91%, 25%)',
+ 700: 'hsl(0, 94%, 20%)',
+ 800: 'hsl(0, 95%, 16%)',
+ 900: 'hsl(0, 93%, 12%)',
};
const getDesignTokens = (mode: PaletteMode) => ({
@@ -103,26 +105,25 @@ const getDesignTokens = (mode: PaletteMode) => ({
dark: brand[800],
}),
},
- secondary: {
- light: secondary[300],
- main: secondary[500],
- dark: secondary[800],
+ warning: {
+ light: orange[300],
+ main: orange[400],
+ dark: orange[800],
...(mode === 'dark' && {
- light: secondary[400],
- main: secondary[500],
- dark: secondary[900],
+ light: orange[400],
+ main: orange[500],
+ dark: orange[700],
}),
},
- warning: {
- main: '#F7B538',
- dark: '#F79F00',
- ...(mode === 'dark' && { main: '#F7B538', dark: '#F79F00' }),
- },
error: {
- light: red[50],
- main: red[500],
- dark: red[700],
- ...(mode === 'dark' && { light: '#D32F2F', main: '#D32F2F', dark: '#B22A2A' }),
+ light: red[300],
+ main: red[400],
+ dark: red[800],
+ ...(mode === 'dark' && {
+ light: red[400],
+ main: red[500],
+ dark: red[700],
+ }),
},
success: {
light: green[300],
@@ -135,27 +136,18 @@ const getDesignTokens = (mode: PaletteMode) => ({
}),
},
grey: {
- 50: gray[50],
- 100: gray[100],
- 200: gray[200],
- 300: gray[300],
- 400: gray[400],
- 500: gray[500],
- 600: gray[600],
- 700: gray[700],
- 800: gray[800],
- 900: gray[900],
+ ...gray,
},
divider: mode === 'dark' ? alpha(gray[600], 0.3) : alpha(gray[300], 0.5),
background: {
- default: '#fff',
- paper: gray[50],
- ...(mode === 'dark' && { default: gray[900], paper: gray[800] }),
+ default: 'hsl(0, 0%, 100%)',
+ paper: gray[100],
+ ...(mode === 'dark' && { default: 'hsl(220, 30%, 3%)', paper: gray[900] }),
},
text: {
primary: gray[800],
secondary: gray[600],
- ...(mode === 'dark' && { primary: '#fff', secondary: gray[400] }),
+ ...(mode === 'dark' && { primary: 'hsl(0, 0%, 100%)', secondary: gray[400] }),
},
action: {
selected: `${alpha(brand[200], 0.2)}`,
@@ -167,51 +159,54 @@ const getDesignTokens = (mode: PaletteMode) => ({
typography: {
fontFamily: ['"Inter", "sans-serif"'].join(','),
h1: {
- fontSize: 60,
+ fontSize: customTheme.typography.pxToRem(60),
fontWeight: 600,
- lineHeight: 78 / 70,
- letterSpacing: -0.2,
+ lineHeight: 1.2,
+ letterSpacing: -0.5,
},
h2: {
- fontSize: 48,
+ fontSize: customTheme.typography.pxToRem(48),
fontWeight: 600,
lineHeight: 1.2,
},
h3: {
- fontSize: 42,
+ fontSize: customTheme.typography.pxToRem(42),
lineHeight: 1.2,
},
h4: {
- fontSize: 36,
+ fontSize: customTheme.typography.pxToRem(36),
fontWeight: 500,
lineHeight: 1.5,
},
h5: {
- fontSize: 20,
+ fontSize: customTheme.typography.pxToRem(20),
fontWeight: 600,
},
h6: {
- fontSize: 18,
+ fontSize: customTheme.typography.pxToRem(18),
},
subtitle1: {
- fontSize: 18,
+ fontSize: customTheme.typography.pxToRem(18),
},
subtitle2: {
- fontSize: 16,
+ fontSize: customTheme.typography.pxToRem(16),
},
body1: {
+ fontSize: customTheme.typography.pxToRem(15),
fontWeight: 400,
- fontSize: 15,
},
body2: {
+ fontSize: customTheme.typography.pxToRem(14),
fontWeight: 400,
- fontSize: 14,
},
caption: {
+ fontSize: customTheme.typography.pxToRem(12),
fontWeight: 400,
- fontSize: 12,
},
},
+ shape: {
+ borderRadius: 12,
+ },
});
export default function getSignInSideTheme(mode: PaletteMode): ThemeOptions {
@@ -226,9 +221,9 @@ export default function getSignInSideTheme(mode: PaletteMode): ThemeOptions {
styleOverrides: {
root: {
boxSizing: 'border-box',
- transition: 'all 100ms ease-in',
+ transition: 'all 100ms ease',
'&:focus-visible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outline: `3px solid ${alpha(brand[400], 0.5)}`,
outlineOffset: '2px',
},
},
@@ -238,34 +233,45 @@ export default function getSignInSideTheme(mode: PaletteMode): ThemeOptions {
styleOverrides: {
root: ({ theme, ownerState }) => ({
boxShadow: 'none',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
textTransform: 'none',
...(ownerState.size === 'small' && {
- maxHeight: '32px',
+ height: '2rem', // 32px
+ padding: '0 0.5rem',
}),
...(ownerState.size === 'medium' && {
- height: '40px',
+ height: '2.5rem', // 40px
}),
...(ownerState.variant === 'contained' &&
ownerState.color === 'primary' && {
- color: brand[50],
- background: brand[500],
- backgroundImage: `linear-gradient(to bottom, ${brand[400]}, ${brand[600]})`,
- boxShadow: `inset 0 1px ${alpha(brand[300], 0.5)}`,
+ color: 'white',
+ backgroundColor: brand[300],
+ backgroundImage: `linear-gradient(to bottom, ${alpha(brand[400], 0.8)}, ${brand[500]})`,
+ boxShadow: `inset 0 2px 0 ${alpha(brand[200], 0.2)}, inset 0 -2px 0 ${alpha(brand[700], 0.4)}`,
border: `1px solid ${brand[500]}`,
'&:hover': {
- background: brand[400],
- backgroundImage: 'none',
- boxShadow: `0 0 0 1px ${alpha(brand[300], 0.5)}`,
+ backgroundColor: brand[700],
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: brand[700],
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[700], 0.4)}`,
},
}),
...(ownerState.variant === 'outlined' && {
+ color: brand[700],
backgroundColor: alpha(brand[300], 0.1),
- borderColor: brand[300],
- color: brand[500],
+ borderColor: alpha(brand[200], 0.8),
+ boxShadow: `inset 0 2px ${alpha(brand[50], 0.5)}, inset 0 -2px ${alpha(brand[200], 0.2)}`,
'&:hover': {
+ backgroundColor: alpha(brand[300], 0.2),
+ borderColor: alpha(brand[300], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[400], 0.2)}`,
+ backgroundImage: 'none',
},
}),
...(ownerState.variant === 'outlined' &&
@@ -275,84 +281,174 @@ export default function getSignInSideTheme(mode: PaletteMode): ThemeOptions {
color: gray[700],
'&:hover': {
backgroundColor: alpha(gray[300], 0.3),
- borderColor: gray[200],
+ borderColor: alpha(gray[300], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(gray[300], 0.4),
+ boxShadow: `inset 0 2.5px 0 ${alpha(gray[400], 0.2)}`,
+ backgroundImage: 'none',
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'primary' && {
+ color: brand[700],
+ '&:hover': {
+ backgroundColor: alpha(brand[300], 0.3),
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'info' && {
+ color: gray[700],
+ '&:hover': {
+ backgroundColor: alpha(gray[300], 0.3),
},
}),
- ...(ownerState.variant === 'text' && {
- color: brand[600],
- '&:hover': {
- backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
- },
- }),
...(theme.palette.mode === 'dark' && {
- ...(ownerState.variant === 'contained' &&
- ownerState.color === 'primary' && {
- border: `1px solid ${brand[600]}`,
- backgroundImage: `linear-gradient(to bottom, ${brand[500]}, ${brand[600]})`,
- backgroundColor: brand[500],
- '&:hover': {
- background: brand[600],
- backgroundImage: 'none',
- boxShadow: `0 0 0 1px ${alpha(brand[700], 0.5)}`,
- },
- }),
...(ownerState.variant === 'outlined' && {
+ color: brand[200],
backgroundColor: alpha(brand[600], 0.1),
- borderColor: brand[700],
- color: brand[300],
+ borderColor: alpha(brand[600], 0.6),
+ boxShadow: `inset 0 2.5px ${alpha(brand[400], 0.1)}, inset 0 -2px ${alpha(gray[900], 0.5)}`,
'&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
+ backgroundColor: alpha(brand[700], 0.2),
+ borderColor: alpha(brand[700], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(brand[800], 0.2),
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[900], 0.4)}`,
+ backgroundImage: 'none',
},
}),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'info' && {
+ color: gray[200],
+ '&:hover': {
+ backgroundColor: alpha(gray[700], 0.3),
+ },
+ }),
...(ownerState.variant === 'outlined' &&
ownerState.color === 'secondary' && {
+ color: gray[300],
backgroundColor: alpha(gray[600], 0.1),
borderColor: alpha(gray[700], 0.5),
- color: gray[300],
+ boxShadow: `inset 0 2.5px ${alpha(gray[600], 0.1)}, inset 0 -2px ${alpha(gray[900], 0.5)}`,
+ '&:hover': {
+ backgroundColor: alpha(gray[700], 0.2),
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(gray[800], 0.2),
+ boxShadow: `inset 0 2.5px 0 ${alpha(gray[900], 0.4)}`,
+ backgroundImage: 'none',
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'primary' && {
+ color: brand[200],
'&:hover': {
- backgroundColor: alpha(gray[600], 0.3),
- borderColor: gray[700],
+ backgroundColor: alpha(brand[700], 0.3),
},
}),
- ...(ownerState.variant === 'text' && {
- color: brand[200],
- '&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
- },
- }),
}),
}),
},
},
- MuiIconButton: {
+ MuiCard: {
styleOverrides: {
root: ({ theme, ownerState }) => ({
- ...(ownerState.size === 'small' && {
- height: '32px',
- width: '32px',
+ transition: 'all 100ms ease',
+ backgroundColor: gray[50],
+ borderRadius: theme.shape.borderRadius,
+ border: `1px solid ${alpha(gray[200], 0.5)}`,
+ boxShadow: 'none',
+ ...(ownerState.variant === 'outlined' && {
+ border: `1px solid ${gray[200]}`,
+ boxShadow: 'none',
+ background: `linear-gradient(to bottom, hsl(0, 0%, 100%), ${gray[50]})`,
}),
- ...(ownerState.size === 'medium' && {
- height: '40px',
- width: '40px',
+ ...(theme.palette.mode === 'dark' && {
+ backgroundColor: alpha(gray[800], 0.6),
+ border: `1px solid ${alpha(gray[700], 0.3)}`,
+ ...(ownerState.variant === 'outlined' && {
+ border: `1px solid ${alpha(gray[700], 0.4)}`,
+ boxShadow: 'none',
+ background: `linear-gradient(to bottom, ${gray[900]}, ${alpha(
+ gray[800],
+ 0.5,
+ )})`,
+ }),
}),
- color: brand[600],
+ }),
+ },
+ },
+ MuiCheckbox: {
+ defaultProps: {
+ disableRipple: true,
+ icon: (
+
+ ),
+ checkedIcon: ,
+ },
+ styleOverrides: {
+ root: ({ theme }) => ({
+ margin: 10,
+ height: 16,
+ width: 16,
+ borderRadius: 5,
+ border: '1px solid ',
+ borderColor: alpha(gray[300], 0.8),
+ backgroundColor: alpha(gray[100], 0.4),
+ boxShadow: '0 0 0 1.5px hsla(210, 0%, 0%, 0.04) inset',
+ transition: 'border-color, background-color, 120ms ease-in',
'&:hover': {
- backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
+ borderColor: brand[300],
+ },
+ '&.Mui-focusVisible': {
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '2px',
+ borderColor: brand[400],
+ },
+ '&.Mui-checked': {
+ color: 'white',
+ backgroundColor: brand[500],
+ borderColor: brand[500],
+ boxShadow: `none`,
+ '&:hover': {
+ backgroundColor: brand[600],
+ },
},
...(theme.palette.mode === 'dark' && {
- color: brand[200],
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: '0 0 0 1.5px hsl(210, 0%, 0%) inset',
+ backgroundColor: alpha(gray[900], 0.8),
'&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
+ borderColor: brand[300],
+ },
+ '&.Mui-focusVisible': {
+ borderColor: brand[400],
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '2px',
},
}),
}),
},
},
+ MuiDialog: {
+ styleOverrides: {
+ root: ({ theme }) => ({
+ '& .MuiDialog-paper': {
+ borderRadius: '10px',
+ border: '1px solid',
+ borderColor: theme.palette.divider,
+ },
+ }),
+ },
+ },
MuiDivider: {
styleOverrides: {
root: ({ theme }) => ({
@@ -363,25 +459,80 @@ export default function getSignInSideTheme(mode: PaletteMode): ThemeOptions {
}),
},
},
- MuiPaper: {
+ MuiFormLabel: {
styleOverrides: {
root: ({ theme }) => ({
- backgroundImage: 'none',
- backgroundColor: gray[100],
+ typography: theme.typography.caption,
+ marginBottom: 8,
+ }),
+ },
+ },
+ MuiIconButton: {
+ styleOverrides: {
+ root: ({ theme, ownerState }) => ({
+ ...(ownerState.size === 'small' && {
+ height: '2rem',
+ width: '2rem',
+ }),
+ ...(ownerState.size === 'medium' && {
+ height: '2.5rem',
+ width: '2.5rem',
+ }),
+ color: brand[500],
+ '&:hover': {
+ backgroundColor: alpha(brand[300], 0.3),
+ borderColor: brand[200],
+ },
...(theme.palette.mode === 'dark' && {
- backgroundColor: gray[800],
+ color: brand[200],
+ '&:hover': {
+ backgroundColor: alpha(brand[600], 0.3),
+ borderColor: brand[700],
+ },
}),
}),
},
},
- MuiDialog: {
+ MuiInputBase: {
+ styleOverrides: {
+ root: {
+ border: 'none',
+ },
+ },
+ },
+ MuiLink: {
+ defaultProps: {
+ underline: 'none',
+ },
styleOverrides: {
root: ({ theme }) => ({
- '& .MuiDialog-paper': {
- borderRadius: '10px',
- border: '1px solid',
- borderColor: theme.palette.divider,
+ color: brand[700],
+ fontWeight: 500,
+ position: 'relative',
+ textDecoration: 'none',
+ '&::before': {
+ content: '""',
+ position: 'absolute',
+ width: 0,
+ height: '1px',
+ bottom: 0,
+ left: 0,
+ backgroundColor: brand[200],
+ opacity: 0.7,
+ transition: 'width 0.3s ease, opacity 0.3s ease',
+ },
+ '&:hover::before': {
+ width: '100%',
+ opacity: 1,
+ },
+ '&:focus-visible': {
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '4px',
+ borderRadius: '2px',
},
+ ...(theme.palette.mode === 'dark' && {
+ color: brand[200],
+ }),
}),
},
},
@@ -393,7 +544,6 @@ export default function getSignInSideTheme(mode: PaletteMode): ThemeOptions {
input: {
paddingLeft: 10,
},
-
root: ({ theme, ownerState }) => ({
'input:-webkit-autofill': {
WebkitBoxShadow: `0 0 0 1000px ${brand[100]} inset, 0 0 0 1px ${brand[200]}`,
@@ -401,6 +551,7 @@ export default function getSignInSideTheme(mode: PaletteMode): ThemeOptions {
borderRadius: '8px',
},
'& .MuiInputBase-input': {
+ fontSize: '1rem',
'&::placeholder': {
opacity: 0.7,
color: gray[500],
@@ -409,10 +560,10 @@ export default function getSignInSideTheme(mode: PaletteMode): ThemeOptions {
boxSizing: 'border-box',
flexGrow: 1,
height: '40px',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
border: '1px solid',
borderColor: alpha(gray[300], 0.8),
- boxShadow: '0 0 0 1.5px rgba(0, 0, 0, 0.04) inset',
+ boxShadow: '0 0 0 1.5px hsla(210, 0%, 0%, 0.02) inset',
transition: 'border-color 120ms ease-in',
backgroundColor: alpha(gray[100], 0.4),
'&:hover': {
@@ -437,13 +588,14 @@ export default function getSignInSideTheme(mode: PaletteMode): ThemeOptions {
borderRadius: '8px',
},
'& .MuiInputBase-input': {
+ fontSize: '1rem',
'&::placeholder': {
opacity: 1,
color: gray[500],
},
},
borderColor: alpha(gray[700], 0.5),
- boxShadow: '0 0 0 1.5px rgb(0, 0, 0) inset',
+ boxShadow: '0 0 0 1.5px hsl(210, 0%, 0%) inset',
backgroundColor: alpha(gray[900], 0.8),
transition: 'border-color 120ms ease-in',
'&:hover': {
@@ -465,154 +617,29 @@ export default function getSignInSideTheme(mode: PaletteMode): ThemeOptions {
}),
},
},
- MuiFormLabel: {
- styleOverrides: {
- root: ({ theme }) => ({
- typography: theme.typography.caption,
- marginBottom: 8,
- }),
- },
- },
- MuiInputBase: {
- styleOverrides: {
- root: {
- border: 'none',
- },
- },
- },
- MuiCard: {
- styleOverrides: {
- root: ({ theme, ownerState }) => ({
- backgroundColor: gray[50],
- borderRadius: 10,
- outline: `1px solid ${alpha(gray[200], 0.8)}`,
- boxShadow: 'none',
- ...(ownerState.variant === 'outlined' && {
- border: 0,
- boxSizing: 'border-box',
- background: `linear-gradient(to bottom, #FFF, ${gray[50]})`,
- }),
- ...(theme.palette.mode === 'dark' && {
- backgroundColor: alpha(gray[800], 0.6),
- outline: `1px solid ${alpha(gray[700], 0.5)}`,
- ...(ownerState.variant === 'outlined' && {
- boxSizing: 'border-box',
- background: `linear-gradient(to bottom, ${gray[900]}, ${alpha(
- gray[800],
- 0.5,
- )})`,
- }),
- }),
- }),
+ MuiPaper: {
+ defaultProps: {
+ elevation: 0,
},
},
- MuiLink: {
+ MuiStack: {
defaultProps: {
- underline: 'none',
- },
- styleOverrides: {
- root: ({ theme }) => ({
- color: brand[600],
- fontWeight: 500,
- position: 'relative',
- textDecoration: 'none',
- '&::before': {
- content: '""',
- position: 'absolute',
- width: 0,
- height: '1px',
- bottom: 0,
- left: 0,
- backgroundColor: brand[200],
- opacity: 0.7,
- transition: 'width 0.3s ease, opacity 0.3s ease',
- },
- '&:hover::before': {
- width: '100%',
- opacity: 1,
- },
- '&:focus-visible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '4px',
- borderRadius: '2px',
- },
- ...(theme.palette.mode === 'dark' && {
- color: brand[200],
- }),
- }),
+ useFlexGap: true,
},
},
MuiToggleButtonGroup: {
styleOverrides: {
root: ({ theme }) => ({
- borderRadius: '10px',
- boxShadow: `0 4px 16px ${alpha(gray[400], 0.2)}`,
+ borderRadius: theme.shape.borderRadius,
+ boxShadow: `0 1px 2px hsla(210, 0%, 0%, 0.05), 0 2px 12px ${alpha(brand[200], 0.5)}`,
'& .Mui-selected': {
color: brand[500],
},
...(theme.palette.mode === 'dark' && {
'& .Mui-selected': {
- color: '#fff',
- },
- boxShadow: `0 4px 16px ${alpha(brand[700], 0.5)}`,
- }),
- }),
- },
- },
- MuiCheckbox: {
- defaultProps: {
- disableRipple: true,
- icon: ,
- checkedIcon: ,
- },
- styleOverrides: {
- root: ({ theme }) => ({
- margin: 10,
- height: 16,
- width: 16,
- borderRadius: 5,
- border: '1px solid ',
- borderColor: alpha(gray[300], 0.8),
- boxShadow: '0 0 0 1.5px rgba(0, 0, 0, 0.04) inset',
- transition: 'border-color 120ms ease-in',
- backgroundColor: alpha(gray[100], 0.4),
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-focusVisible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '2px',
- borderColor: brand[400],
- },
- '&.Mui-checked': {
- color: 'white',
- backgroundColor: brand[500],
- '&:hover': {
- borderColor: brand[300],
- backgroundColor: brand[600],
- },
- },
- ...(theme.palette.mode === 'dark' && {
- borderColor: alpha(gray[700], 0.5),
- boxShadow: '0 0 0 1.5px rgb(0, 0, 0) inset',
- backgroundColor: alpha(gray[900], 0.8),
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-checked': {
- color: 'white',
- backgroundColor: brand[600],
- boxShadow: '0 0 0 1px rgba(0, 0, 0, 0.2) inset',
- '&:hover': {
- borderColor: brand[300],
- backgroundColor: brand[800],
- },
- },
- '&.Mui-focusVisible': {
- borderColor: brand[400],
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '2px',
+ color: 'hsl(0, 0%, 100%)',
},
+ boxShadow: `0 0 0 1px hsla(210, 0%, 0%, 0.5), 0 2px 12px ${alpha(brand[700], 0.5)}`,
}),
}),
},
@@ -622,21 +649,15 @@ export default function getSignInSideTheme(mode: PaletteMode): ThemeOptions {
root: ({ theme }) => ({
padding: '12px 16px',
textTransform: 'none',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
fontWeight: 500,
...(theme.palette.mode === 'dark' && {
color: gray[400],
- boxShadow: '0 4px 16px rgba(0, 0, 0, 0.5)',
'&.Mui-selected': { color: brand[300] },
}),
}),
},
},
- MuiStack: {
- defaultProps: {
- useFlexGap: true,
- },
- },
},
};
}
diff --git a/docs/data/material/getting-started/templates/sign-in/CustomIcons.js b/docs/data/material/getting-started/templates/sign-in/CustomIcons.js
index e4a8d735bb75e6..1c24a778fb4427 100644
--- a/docs/data/material/getting-started/templates/sign-in/CustomIcons.js
+++ b/docs/data/material/getting-started/templates/sign-in/CustomIcons.js
@@ -1,87 +1,57 @@
import * as React from 'react';
-import PropTypes from 'prop-types';
-
import SvgIcon from '@mui/material/SvgIcon';
-function SitemarkIcon({ sx }) {
+export function SitemarkIcon() {
return (
-
+
-
-
-
-
);
}
-SitemarkIcon.propTypes = {
- sx: PropTypes.oneOfType([
- PropTypes.arrayOf(
- PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool]),
- ),
- PropTypes.func,
- PropTypes.object,
- ]),
-};
-
-export { SitemarkIcon };
-
export function FacebookIcon() {
return (
diff --git a/docs/data/material/getting-started/templates/sign-in/CustomIcons.tsx b/docs/data/material/getting-started/templates/sign-in/CustomIcons.tsx
index f66661a29dcb57..1c24a778fb4427 100644
--- a/docs/data/material/getting-started/templates/sign-in/CustomIcons.tsx
+++ b/docs/data/material/getting-started/templates/sign-in/CustomIcons.tsx
@@ -1,72 +1,51 @@
import * as React from 'react';
-import { SxProps, Theme } from '@mui/system';
import SvgIcon from '@mui/material/SvgIcon';
-interface IconProps {
- sx?: SxProps;
-}
-
-export function SitemarkIcon({ sx }: IconProps) {
+export function SitemarkIcon() {
return (
-
+
-
-
-
-
diff --git a/docs/data/material/getting-started/templates/sign-in/SignIn.js b/docs/data/material/getting-started/templates/sign-in/SignIn.js
index d87dc97aca99c9..8398bfef899d8f 100644
--- a/docs/data/material/getting-started/templates/sign-in/SignIn.js
+++ b/docs/data/material/getting-started/templates/sign-in/SignIn.js
@@ -15,7 +15,7 @@ import ToggleButton from '@mui/material/ToggleButton';
import ToggleButtonGroup from '@mui/material/ToggleButtonGroup';
import Typography from '@mui/material/Typography';
import Stack from '@mui/material/Stack';
-import { alpha } from '@mui/material';
+
import { ThemeProvider, createTheme } from '@mui/material/styles';
import ArrowBackRoundedIcon from '@mui/icons-material/ArrowBackRounded';
@@ -43,7 +43,7 @@ function ToggleCustomTheme({ showCustomTheme, toggleCustomTheme }) {
exclusive
value={showCustomTheme}
onChange={toggleCustomTheme}
- aria-label="Platform"
+ aria-label="Toggle design language"
sx={{
backgroundColor: 'background.default',
'& .Mui-selected': {
@@ -140,8 +140,8 @@ export default function SignIn() {
sx={(theme) => ({
backgroundImage:
theme.palette.mode === 'light'
- ? `linear-gradient(180deg, ${alpha('#CEE5FD', 0.2)}, #FFF)`
- : `linear-gradient(${alpha('#02294F', 0.2)}, ${alpha('#021F3B', 0.0)})`,
+ ? 'radial-gradient(ellipse at 50% 50%, hsl(210, 100%, 97%), hsl(0, 0%, 100%))'
+ : 'radial-gradient(at 50% 50%, hsla(210, 100%, 16%, 0.3), hsl(220, 30%, 5%))',
backgroundRepeat: 'no-repeat',
height: { xs: 'auto', sm: '100dvh' },
pb: { xs: 12, sm: 0 },
@@ -180,11 +180,11 @@ export default function SignIn() {
gap: 4,
boxShadow:
theme.palette.mode === 'light'
- ? 'rgba(0, 0, 0, 0.05) 0px 5px 15px 0px, rgba(25, 28, 33, 0.05) 0px 15px 35px -5px, rgba(0, 0, 0, 0.05) 0px 0px 0px 1px'
- : 'rgba(0, 0, 0, 0.5) 0px 5px 15px 0px, rgba(25, 28, 33, 0.08) 0px 15px 35px -5px, rgba(0, 0, 0, 0.05) 0px 0px 0px 1px',
+ ? 'hsla(220, 30%, 5%, 0.05) 0px 5px 15px 0px, hsla(220, 25%, 10%, 0.05) 0px 15px 35px -5px, hsla(220, 30%, 5%, 0.05) 0px 0px 0px 1px'
+ : 'hsla(220, 30%, 5%, 0.5) 0px 5px 15px 0px, hsla(220, 25%, 10%, 0.08) 0px 15px 35px -5px, hsla(220, 30%, 5%, 0.05) 0px 0px 0px 1px',
})}
>
-
+
({
backgroundImage:
theme.palette.mode === 'light'
- ? `linear-gradient(180deg, ${alpha('#CEE5FD', 0.2)}, #FFF)`
- : `linear-gradient(${alpha('#02294F', 0.2)}, ${alpha('#021F3B', 0.0)})`,
+ ? 'radial-gradient(ellipse at 50% 50%, hsl(210, 100%, 97%), hsl(0, 0%, 100%))'
+ : 'radial-gradient(at 50% 50%, hsla(210, 100%, 16%, 0.3), hsl(220, 30%, 5%))',
backgroundRepeat: 'no-repeat',
height: { xs: 'auto', sm: '100dvh' },
pb: { xs: 12, sm: 0 },
@@ -180,11 +180,11 @@ export default function SignIn() {
gap: 4,
boxShadow:
theme.palette.mode === 'light'
- ? 'rgba(0, 0, 0, 0.05) 0px 5px 15px 0px, rgba(25, 28, 33, 0.05) 0px 15px 35px -5px, rgba(0, 0, 0, 0.05) 0px 0px 0px 1px'
- : 'rgba(0, 0, 0, 0.5) 0px 5px 15px 0px, rgba(25, 28, 33, 0.08) 0px 15px 35px -5px, rgba(0, 0, 0, 0.05) 0px 0px 0px 1px',
+ ? 'hsla(220, 30%, 5%, 0.05) 0px 5px 15px 0px, hsla(220, 25%, 10%, 0.05) 0px 15px 35px -5px, hsla(220, 30%, 5%, 0.05) 0px 0px 0px 1px'
+ : 'hsla(220, 30%, 5%, 0.5) 0px 5px 15px 0px, hsla(220, 25%, 10%, 0.08) 0px 15px 35px -5px, hsla(220, 30%, 5%, 0.05) 0px 0px 0px 1px',
})}
>
-
+
void;
}
-function ToggleColorMode({ mode, toggleColorMode }: ToggleColorModeProps) {
+export default function ToggleColorMode({
+ mode,
+ toggleColorMode,
+}: ToggleColorModeProps) {
return (
);
}
-
-export default ToggleColorMode;
diff --git a/docs/data/material/getting-started/templates/sign-in/getSignInTheme.js b/docs/data/material/getting-started/templates/sign-in/getSignInTheme.js
index 1e788763faec22..224b3d9596dd45 100644
--- a/docs/data/material/getting-started/templates/sign-in/getSignInTheme.js
+++ b/docs/data/material/getting-started/templates/sign-in/getSignInTheme.js
@@ -1,73 +1,75 @@
import * as React from 'react';
-import { alpha } from '@mui/material/styles';
+import { createTheme, alpha } from '@mui/material/styles';
import CheckBoxOutlineBlankRoundedIcon from '@mui/icons-material/CheckBoxOutlineBlankRounded';
import CheckRoundedIcon from '@mui/icons-material/CheckRounded';
-export const brand = {
- 50: '#F0F7FF',
- 100: '#CEE5FD',
- 200: '#9CCCFC',
- 300: '#55A6F6',
- 400: '#0A66C2',
- 500: '#0959AA',
- 600: '#064079',
- 700: '#033363',
- 800: '#02294F',
- 900: '#021F3B',
-};
+const customTheme = createTheme();
-export const secondary = {
- 50: '#F9F0FF',
- 100: '#E9CEFD',
- 200: '#D49CFC',
- 300: '#B355F6',
- 400: '#750AC2',
- 500: '#6709AA',
- 600: '#490679',
- 700: '#3B0363',
- 800: '#2F024F',
- 900: '#23023B',
+export const brand = {
+ 50: 'hsl(210, 100%, 97%)',
+ 100: 'hsl(210, 100%, 90%)',
+ 200: 'hsl(210, 100%, 80%)',
+ 300: 'hsl(210, 100%, 65%)',
+ 400: 'hsl(210, 98%, 48%)',
+ 500: 'hsl(210, 98%, 42%)',
+ 600: 'hsl(210, 98%, 55%)',
+ 700: 'hsl(210, 100%, 35%)',
+ 800: 'hsl(210, 100%, 16%)',
+ 900: 'hsl(210, 100%, 21%)',
};
export const gray = {
- 50: '#FBFCFE',
- 100: '#EAF0F5',
- 200: '#D6E2EB',
- 300: '#BFCCD9',
- 400: '#94A6B8',
- 500: '#5B6B7C',
- 600: '#4C5967',
- 700: '#364049',
- 800: '#131B20',
- 900: '#090E10',
+ 50: 'hsl(220, 60%, 99%)',
+ 100: 'hsl(220, 35%, 94%)',
+ 200: 'hsl(220, 35%, 88%)',
+ 300: 'hsl(220, 25%, 80%)',
+ 400: 'hsl(220, 20%, 65%)',
+ 500: 'hsl(220, 20%, 42%)',
+ 600: 'hsl(220, 25%, 35%)',
+ 700: 'hsl(220, 25%, 25%)',
+ 800: 'hsl(220, 25%, 10%)',
+ 900: 'hsl(220, 30%, 5%)',
};
export const green = {
- 50: '#F6FEF6',
- 100: '#E3FBE3',
- 200: '#C7F7C7',
- 300: '#A1E8A1',
- 400: '#51BC51',
- 500: '#1F7A1F',
- 600: '#136C13',
- 700: '#0A470A',
- 800: '#042F04',
- 900: '#021D02',
+ 50: 'hsl(120, 80%, 98%)',
+ 100: 'hsl(120, 75%, 94%)',
+ 200: 'hsl(120, 75%, 87%)',
+ 300: 'hsl(120, 61%, 77%)',
+ 400: 'hsl(120, 44%, 53%)',
+ 500: 'hsl(120, 59%, 30%)',
+ 600: 'hsl(120, 70%, 25%)',
+ 700: 'hsl(120, 75%, 16%)',
+ 800: 'hsl(120, 84%, 10%)',
+ 900: 'hsl(120, 87%, 6%)',
+};
+
+export const orange = {
+ 50: 'hsl(45, 100%, 97%)',
+ 100: 'hsl(45, 92%, 90%)',
+ 200: 'hsl(45, 94%, 80%)',
+ 300: 'hsl(45, 90%, 65%)',
+ 400: 'hsl(45, 90%, 40%)',
+ 500: 'hsl(45, 90%, 35%)',
+ 600: 'hsl(45, 91%, 25%)',
+ 700: 'hsl(45, 94%, 20%)',
+ 800: 'hsl(45, 95%, 16%)',
+ 900: 'hsl(45, 93%, 12%)',
};
export const red = {
- 50: '#FFF0F0',
- 100: '#FDCECE',
- 200: '#FC9C9C',
- 300: '#F65555',
- 400: '#C20A0A',
- 500: '#910808',
- 600: '#790606',
- 700: '#630303',
- 800: '#4F0202',
- 900: '#3B0202',
+ 50: 'hsl(0, 100%, 97%)',
+ 100: 'hsl(0, 92%, 90%)',
+ 200: 'hsl(0, 94%, 80%)',
+ 300: 'hsl(0, 90%, 65%)',
+ 400: 'hsl(0, 90%, 40%)',
+ 500: 'hsl(0, 90%, 30%)',
+ 600: 'hsl(0, 91%, 25%)',
+ 700: 'hsl(0, 94%, 20%)',
+ 800: 'hsl(0, 95%, 16%)',
+ 900: 'hsl(0, 93%, 12%)',
};
const getDesignTokens = (mode) => ({
@@ -85,26 +87,25 @@ const getDesignTokens = (mode) => ({
dark: brand[800],
}),
},
- secondary: {
- light: secondary[300],
- main: secondary[500],
- dark: secondary[800],
+ warning: {
+ light: orange[300],
+ main: orange[400],
+ dark: orange[800],
...(mode === 'dark' && {
- light: secondary[400],
- main: secondary[500],
- dark: secondary[900],
+ light: orange[400],
+ main: orange[500],
+ dark: orange[700],
}),
},
- warning: {
- main: '#F7B538',
- dark: '#F79F00',
- ...(mode === 'dark' && { main: '#F7B538', dark: '#F79F00' }),
- },
error: {
- light: red[50],
- main: red[500],
- dark: red[700],
- ...(mode === 'dark' && { light: '#D32F2F', main: '#D32F2F', dark: '#B22A2A' }),
+ light: red[300],
+ main: red[400],
+ dark: red[800],
+ ...(mode === 'dark' && {
+ light: red[400],
+ main: red[500],
+ dark: red[700],
+ }),
},
success: {
light: green[300],
@@ -117,27 +118,18 @@ const getDesignTokens = (mode) => ({
}),
},
grey: {
- 50: gray[50],
- 100: gray[100],
- 200: gray[200],
- 300: gray[300],
- 400: gray[400],
- 500: gray[500],
- 600: gray[600],
- 700: gray[700],
- 800: gray[800],
- 900: gray[900],
+ ...gray,
},
divider: mode === 'dark' ? alpha(gray[600], 0.3) : alpha(gray[300], 0.5),
background: {
- default: '#fff',
- paper: gray[50],
- ...(mode === 'dark' && { default: gray[900], paper: gray[800] }),
+ default: 'hsl(0, 0%, 100%)',
+ paper: gray[100],
+ ...(mode === 'dark' && { default: 'hsl(220, 30%, 3%)', paper: gray[900] }),
},
text: {
primary: gray[800],
secondary: gray[600],
- ...(mode === 'dark' && { primary: '#fff', secondary: gray[400] }),
+ ...(mode === 'dark' && { primary: 'hsl(0, 0%, 100%)', secondary: gray[400] }),
},
action: {
selected: `${alpha(brand[200], 0.2)}`,
@@ -149,51 +141,54 @@ const getDesignTokens = (mode) => ({
typography: {
fontFamily: ['"Inter", "sans-serif"'].join(','),
h1: {
- fontSize: 60,
+ fontSize: customTheme.typography.pxToRem(60),
fontWeight: 600,
- lineHeight: 78 / 70,
- letterSpacing: -0.2,
+ lineHeight: 1.2,
+ letterSpacing: -0.5,
},
h2: {
- fontSize: 48,
+ fontSize: customTheme.typography.pxToRem(48),
fontWeight: 600,
lineHeight: 1.2,
},
h3: {
- fontSize: 42,
+ fontSize: customTheme.typography.pxToRem(42),
lineHeight: 1.2,
},
h4: {
- fontSize: 36,
+ fontSize: customTheme.typography.pxToRem(36),
fontWeight: 500,
lineHeight: 1.5,
},
h5: {
- fontSize: 20,
+ fontSize: customTheme.typography.pxToRem(20),
fontWeight: 600,
},
h6: {
- fontSize: 18,
+ fontSize: customTheme.typography.pxToRem(18),
},
subtitle1: {
- fontSize: 18,
+ fontSize: customTheme.typography.pxToRem(18),
},
subtitle2: {
- fontSize: 16,
+ fontSize: customTheme.typography.pxToRem(16),
},
body1: {
+ fontSize: customTheme.typography.pxToRem(15),
fontWeight: 400,
- fontSize: 15,
},
body2: {
+ fontSize: customTheme.typography.pxToRem(14),
fontWeight: 400,
- fontSize: 14,
},
caption: {
+ fontSize: customTheme.typography.pxToRem(12),
fontWeight: 400,
- fontSize: 12,
},
},
+ shape: {
+ borderRadius: 12,
+ },
});
export default function getSignInTheme(mode) {
@@ -208,9 +203,9 @@ export default function getSignInTheme(mode) {
styleOverrides: {
root: {
boxSizing: 'border-box',
- transition: 'all 100ms ease-in',
+ transition: 'all 100ms ease',
'&:focus-visible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outline: `3px solid ${alpha(brand[400], 0.5)}`,
outlineOffset: '2px',
},
},
@@ -220,34 +215,45 @@ export default function getSignInTheme(mode) {
styleOverrides: {
root: ({ theme, ownerState }) => ({
boxShadow: 'none',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
textTransform: 'none',
...(ownerState.size === 'small' && {
- maxHeight: '32px',
+ height: '2rem', // 32px
+ padding: '0 0.5rem',
}),
...(ownerState.size === 'medium' && {
- height: '40px',
+ height: '2.5rem', // 40px
}),
...(ownerState.variant === 'contained' &&
ownerState.color === 'primary' && {
- color: brand[50],
- background: brand[500],
- backgroundImage: `linear-gradient(to bottom, ${brand[400]}, ${brand[600]})`,
- boxShadow: `inset 0 1px ${alpha(brand[300], 0.5)}`,
+ color: 'white',
+ backgroundColor: brand[300],
+ backgroundImage: `linear-gradient(to bottom, ${alpha(brand[400], 0.8)}, ${brand[500]})`,
+ boxShadow: `inset 0 2px 0 ${alpha(brand[200], 0.2)}, inset 0 -2px 0 ${alpha(brand[700], 0.4)}`,
border: `1px solid ${brand[500]}`,
'&:hover': {
- background: brand[400],
- backgroundImage: 'none',
- boxShadow: `0 0 0 1px ${alpha(brand[300], 0.5)}`,
+ backgroundColor: brand[700],
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: brand[700],
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[700], 0.4)}`,
},
}),
...(ownerState.variant === 'outlined' && {
+ color: brand[700],
backgroundColor: alpha(brand[300], 0.1),
- borderColor: brand[300],
- color: brand[500],
+ borderColor: alpha(brand[200], 0.8),
+ boxShadow: `inset 0 2px ${alpha(brand[50], 0.5)}, inset 0 -2px ${alpha(brand[200], 0.2)}`,
'&:hover': {
+ backgroundColor: alpha(brand[300], 0.2),
+ borderColor: alpha(brand[300], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[400], 0.2)}`,
+ backgroundImage: 'none',
},
}),
...(ownerState.variant === 'outlined' &&
@@ -257,84 +263,173 @@ export default function getSignInTheme(mode) {
color: gray[700],
'&:hover': {
backgroundColor: alpha(gray[300], 0.3),
- borderColor: gray[200],
+ borderColor: alpha(gray[300], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(gray[300], 0.4),
+ boxShadow: `inset 0 2.5px 0 ${alpha(gray[400], 0.2)}`,
+ backgroundImage: 'none',
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'primary' && {
+ color: brand[700],
+ '&:hover': {
+ backgroundColor: alpha(brand[300], 0.3),
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'info' && {
+ color: gray[700],
+ '&:hover': {
+ backgroundColor: alpha(gray[300], 0.3),
},
}),
- ...(ownerState.variant === 'text' && {
- color: brand[600],
- '&:hover': {
- backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
- },
- }),
...(theme.palette.mode === 'dark' && {
- ...(ownerState.variant === 'contained' &&
- ownerState.color === 'primary' && {
- border: `1px solid ${brand[600]}`,
- backgroundImage: `linear-gradient(to bottom, ${brand[500]}, ${brand[600]})`,
- backgroundColor: brand[500],
- '&:hover': {
- background: brand[600],
- backgroundImage: 'none',
- boxShadow: `0 0 0 1px ${alpha(brand[700], 0.5)}`,
- },
- }),
...(ownerState.variant === 'outlined' && {
+ color: brand[200],
backgroundColor: alpha(brand[600], 0.1),
- borderColor: brand[700],
- color: brand[300],
+ borderColor: alpha(brand[600], 0.6),
+ boxShadow: `inset 0 2.5px ${alpha(brand[400], 0.1)}, inset 0 -2px ${alpha(gray[900], 0.5)}`,
'&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
+ backgroundColor: alpha(brand[700], 0.2),
+ borderColor: alpha(brand[700], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(brand[800], 0.2),
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[900], 0.4)}`,
+ backgroundImage: 'none',
},
}),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'info' && {
+ color: gray[200],
+ '&:hover': {
+ backgroundColor: alpha(gray[700], 0.3),
+ },
+ }),
...(ownerState.variant === 'outlined' &&
ownerState.color === 'secondary' && {
+ color: gray[300],
backgroundColor: alpha(gray[600], 0.1),
borderColor: alpha(gray[700], 0.5),
- color: gray[300],
+ boxShadow: `inset 0 2.5px ${alpha(gray[600], 0.1)}, inset 0 -2px ${alpha(gray[900], 0.5)}`,
+ '&:hover': {
+ backgroundColor: alpha(gray[700], 0.2),
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(gray[800], 0.2),
+ boxShadow: `inset 0 2.5px 0 ${alpha(gray[900], 0.4)}`,
+ backgroundImage: 'none',
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'primary' && {
+ color: brand[200],
'&:hover': {
- backgroundColor: alpha(gray[600], 0.3),
- borderColor: gray[700],
+ backgroundColor: alpha(brand[700], 0.3),
},
}),
- ...(ownerState.variant === 'text' && {
- color: brand[200],
- '&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
- },
- }),
}),
}),
},
},
- MuiIconButton: {
+ MuiCard: {
styleOverrides: {
root: ({ theme, ownerState }) => ({
- ...(ownerState.size === 'small' && {
- height: '32px',
- width: '32px',
+ backgroundColor: gray[50],
+ borderRadius: theme.shape.borderRadius,
+ border: `1px solid ${alpha(gray[200], 0.1)}`,
+ boxShadow: 'none',
+ ...(ownerState.variant === 'outlined' && {
+ border: `1px solid ${alpha(gray[200], 0.5)}`,
+ boxShadow: 'none',
+ background: `linear-gradient(to bottom, hsl(0, 0%, 100%), ${gray[50]})`,
}),
- ...(ownerState.size === 'medium' && {
- height: '40px',
- width: '40px',
+ ...(theme.palette.mode === 'dark' && {
+ backgroundColor: alpha(gray[800], 0.6),
+ border: `1px solid ${alpha(gray[700], 0.2)}`,
+ ...(ownerState.variant === 'outlined' && {
+ border: `1px solid ${alpha(gray[700], 0.4)}`,
+ boxShadow: 'none',
+ background: `linear-gradient(to bottom, ${gray[900]}, ${alpha(
+ gray[800],
+ 0.5,
+ )})`,
+ }),
}),
- color: brand[600],
+ }),
+ },
+ },
+ MuiCheckbox: {
+ defaultProps: {
+ disableRipple: true,
+ icon: (
+
+ ),
+ checkedIcon: ,
+ },
+ styleOverrides: {
+ root: ({ theme }) => ({
+ margin: 10,
+ height: 16,
+ width: 16,
+ borderRadius: 5,
+ border: '1px solid ',
+ borderColor: alpha(gray[300], 0.8),
+ boxShadow: '0 0 0 1.5px hsla(210, 0%, 0%, 0.04) inset',
+ backgroundColor: alpha(gray[100], 0.4),
+ transition: 'border-color, background-color, 120ms ease-in',
'&:hover': {
- backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
+ borderColor: brand[300],
+ },
+ '&.Mui-focusVisible': {
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '2px',
+ borderColor: brand[400],
+ },
+ '&.Mui-checked': {
+ color: 'white',
+ backgroundColor: brand[500],
+ borderColor: brand[500],
+ boxShadow: `none`,
+ '&:hover': {
+ backgroundColor: brand[600],
+ },
},
...(theme.palette.mode === 'dark' && {
- color: brand[200],
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: '0 0 0 1.5px hsl(210, 0%, 0%) inset',
+ backgroundColor: alpha(gray[900], 0.8),
'&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
+ borderColor: brand[300],
+ },
+ '&.Mui-focusVisible': {
+ borderColor: brand[400],
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '2px',
},
}),
}),
},
},
+ MuiDialog: {
+ styleOverrides: {
+ root: ({ theme }) => ({
+ '& .MuiDialog-paper': {
+ borderRadius: '10px',
+ border: '1px solid',
+ borderColor: theme.palette.divider,
+ },
+ }),
+ },
+ },
MuiDivider: {
styleOverrides: {
root: ({ theme }) => ({
@@ -345,50 +440,79 @@ export default function getSignInTheme(mode) {
}),
},
},
- MuiPaper: {
+ MuiFormLabel: {
styleOverrides: {
root: ({ theme }) => ({
- backgroundImage: 'none',
- backgroundColor: gray[100],
- ...(theme.palette.mode === 'dark' && {
- backgroundColor: gray[800],
- }),
+ typography: theme.typography.caption,
+ marginBottom: 8,
}),
},
},
- MuiDialog: {
+ MuiIconButton: {
styleOverrides: {
- root: ({ theme }) => ({
- '& .MuiDialog-paper': {
- borderRadius: '10px',
- border: '1px solid',
- borderColor: theme.palette.divider,
+ root: ({ theme, ownerState }) => ({
+ ...(ownerState.size === 'small' && {
+ height: '2rem',
+ width: '2rem',
+ }),
+ ...(ownerState.size === 'medium' && {
+ height: '2.5rem',
+ width: '2.5rem',
+ }),
+ color: brand[500],
+ '&:hover': {
+ backgroundColor: alpha(brand[300], 0.3),
+ borderColor: brand[200],
},
+ ...(theme.palette.mode === 'dark' && {
+ color: brand[200],
+ '&:hover': {
+ backgroundColor: alpha(brand[600], 0.3),
+ borderColor: brand[700],
+ },
+ }),
}),
},
},
- MuiCard: {
+ MuiInputBase: {
styleOverrides: {
- root: ({ theme, ownerState }) => ({
- backgroundColor: gray[50],
- borderRadius: 10,
- outline: `1px solid ${alpha(gray[200], 0.8)}`,
- boxShadow: 'none',
- ...(ownerState.variant === 'outlined' && {
- border: 0,
- boxSizing: 'border-box',
- background: `linear-gradient(to bottom, #FFF, ${gray[50]})`,
- }),
+ root: {
+ border: 'none',
+ },
+ },
+ },
+ MuiLink: {
+ defaultProps: {
+ underline: 'none',
+ },
+ styleOverrides: {
+ root: ({ theme }) => ({
+ color: brand[700],
+ fontWeight: 500,
+ position: 'relative',
+ textDecoration: 'none',
+ '&::before': {
+ content: '""',
+ position: 'absolute',
+ width: 0,
+ height: '1px',
+ bottom: 0,
+ left: 0,
+ backgroundColor: brand[200],
+ opacity: 0.7,
+ transition: 'width 0.3s ease, opacity 0.3s ease',
+ },
+ '&:hover::before': {
+ width: '100%',
+ opacity: 1,
+ },
+ '&:focus-visible': {
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '4px',
+ borderRadius: '2px',
+ },
...(theme.palette.mode === 'dark' && {
- backgroundColor: alpha(gray[800], 0.6),
- outline: `1px solid ${alpha(gray[700], 0.5)}`,
- ...(ownerState.variant === 'outlined' && {
- boxSizing: 'border-box',
- background: `linear-gradient(to bottom, ${gray[900]}, ${alpha(
- gray[800],
- 0.5,
- )})`,
- }),
+ color: brand[200],
}),
}),
},
@@ -408,6 +532,7 @@ export default function getSignInTheme(mode) {
borderRadius: '8px',
},
'& .MuiInputBase-input': {
+ fontSize: '1rem',
'&::placeholder': {
opacity: 0.7,
color: gray[500],
@@ -416,10 +541,10 @@ export default function getSignInTheme(mode) {
boxSizing: 'border-box',
flexGrow: 1,
height: '40px',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
border: '1px solid',
borderColor: alpha(gray[300], 0.8),
- boxShadow: '0 0 0 1.5px rgba(0, 0, 0, 0.04) inset',
+ boxShadow: '0 0 0 1.5px hsla(210, 0%, 0%, 0.02) inset',
transition: 'border-color 120ms ease-in',
backgroundColor: alpha(gray[100], 0.4),
'&:hover': {
@@ -444,13 +569,14 @@ export default function getSignInTheme(mode) {
borderRadius: '8px',
},
'& .MuiInputBase-input': {
+ fontSize: '1rem',
'&::placeholder': {
opacity: 1,
color: gray[500],
},
},
borderColor: alpha(gray[700], 0.5),
- boxShadow: '0 0 0 1.5px rgb(0, 0, 0) inset',
+ boxShadow: '0 0 0 1.5px hsl(210, 0%, 0%) inset',
backgroundColor: alpha(gray[900], 0.8),
transition: 'border-color 120ms ease-in',
'&:hover': {
@@ -472,128 +598,29 @@ export default function getSignInTheme(mode) {
}),
},
},
- MuiFormLabel: {
- styleOverrides: {
- root: ({ theme }) => ({
- typography: theme.typography.caption,
- marginBottom: 8,
- }),
- },
- },
- MuiInputBase: {
- styleOverrides: {
- root: {
- border: 'none',
- },
+ MuiPaper: {
+ defaultProps: {
+ elevation: 0,
},
},
- MuiLink: {
+ MuiStack: {
defaultProps: {
- underline: 'none',
- },
- styleOverrides: {
- root: ({ theme }) => ({
- color: brand[600],
- fontWeight: 500,
- position: 'relative',
- textDecoration: 'none',
- '&::before': {
- content: '""',
- position: 'absolute',
- width: 0,
- height: '1px',
- bottom: 0,
- left: 0,
- backgroundColor: brand[200],
- opacity: 0.7,
- transition: 'width 0.3s ease, opacity 0.3s ease',
- },
- '&:hover::before': {
- width: '100%',
- opacity: 1,
- },
- '&:focus-visible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '4px',
- borderRadius: '2px',
- },
- ...(theme.palette.mode === 'dark' && {
- color: brand[200],
- }),
- }),
+ useFlexGap: true,
},
},
MuiToggleButtonGroup: {
styleOverrides: {
root: ({ theme }) => ({
- borderRadius: '10px',
- boxShadow: `0 4px 16px ${alpha(gray[400], 0.2)}`,
+ borderRadius: theme.shape.borderRadius,
+ boxShadow: `0 1px 2px hsla(210, 0%, 0%, 0.05), 0 2px 12px ${alpha(brand[200], 0.5)}`,
'& .Mui-selected': {
color: brand[500],
},
...(theme.palette.mode === 'dark' && {
'& .Mui-selected': {
- color: '#fff',
- },
- boxShadow: `0 4px 16px ${alpha(brand[700], 0.5)}`,
- }),
- }),
- },
- },
- MuiCheckbox: {
- defaultProps: {
- disableRipple: true,
- icon: ,
- checkedIcon: ,
- },
- styleOverrides: {
- root: ({ theme }) => ({
- margin: 10,
- height: 16,
- width: 16,
- borderRadius: 5,
- border: '1px solid ',
- borderColor: alpha(gray[300], 0.8),
- boxShadow: '0 0 0 1.5px rgba(0, 0, 0, 0.04) inset',
- transition: 'border-color 120ms ease-in',
- backgroundColor: alpha(gray[100], 0.4),
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-focusVisible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '2px',
- borderColor: brand[400],
- },
- '&.Mui-checked': {
- color: 'white',
- backgroundColor: brand[500],
- '&:hover': {
- borderColor: brand[300],
- backgroundColor: brand[600],
- },
- },
- ...(theme.palette.mode === 'dark' && {
- borderColor: alpha(gray[700], 0.5),
- boxShadow: '0 0 0 1.5px rgb(0, 0, 0) inset',
- backgroundColor: alpha(gray[900], 0.8),
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-checked': {
- color: 'white',
- backgroundColor: brand[600],
- boxShadow: '0 0 0 1px rgba(0, 0, 0, 0.2) inset',
- '&:hover': {
- borderColor: brand[300],
- backgroundColor: brand[800],
- },
- },
- '&.Mui-focusVisible': {
- borderColor: brand[400],
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '2px',
+ color: 'hsl(0, 0%, 100%)',
},
+ boxShadow: `0 0 0 1px hsla(210, 0%, 0%, 0.5), 0 2px 12px ${alpha(brand[700], 0.5)}`,
}),
}),
},
@@ -603,21 +630,15 @@ export default function getSignInTheme(mode) {
root: ({ theme }) => ({
padding: '12px 16px',
textTransform: 'none',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
fontWeight: 500,
...(theme.palette.mode === 'dark' && {
color: gray[400],
- boxShadow: '0 4px 16px rgba(0, 0, 0, 0.5)',
'&.Mui-selected': { color: brand[300] },
}),
}),
},
},
- MuiStack: {
- defaultProps: {
- useFlexGap: true,
- },
- },
},
};
}
diff --git a/docs/data/material/getting-started/templates/sign-in/getSignInTheme.tsx b/docs/data/material/getting-started/templates/sign-in/getSignInTheme.tsx
index a5375811d8533a..4c655afff4d56c 100644
--- a/docs/data/material/getting-started/templates/sign-in/getSignInTheme.tsx
+++ b/docs/data/material/getting-started/templates/sign-in/getSignInTheme.tsx
@@ -1,6 +1,6 @@
import * as React from 'react';
import type {} from '@mui/material/themeCssVarsAugmentation';
-import { ThemeOptions, alpha } from '@mui/material/styles';
+import { createTheme, ThemeOptions, alpha } from '@mui/material/styles';
import { PaletteMode } from '@mui/material';
import CheckBoxOutlineBlankRoundedIcon from '@mui/icons-material/CheckBoxOutlineBlankRounded';
@@ -23,69 +23,71 @@ declare module '@mui/material/styles/createPalette' {
interface PaletteColor extends ColorRange {}
}
-export const brand = {
- 50: '#F0F7FF',
- 100: '#CEE5FD',
- 200: '#9CCCFC',
- 300: '#55A6F6',
- 400: '#0A66C2',
- 500: '#0959AA',
- 600: '#064079',
- 700: '#033363',
- 800: '#02294F',
- 900: '#021F3B',
-};
+const customTheme = createTheme();
-export const secondary = {
- 50: '#F9F0FF',
- 100: '#E9CEFD',
- 200: '#D49CFC',
- 300: '#B355F6',
- 400: '#750AC2',
- 500: '#6709AA',
- 600: '#490679',
- 700: '#3B0363',
- 800: '#2F024F',
- 900: '#23023B',
+export const brand = {
+ 50: 'hsl(210, 100%, 97%)',
+ 100: 'hsl(210, 100%, 90%)',
+ 200: 'hsl(210, 100%, 80%)',
+ 300: 'hsl(210, 100%, 65%)',
+ 400: 'hsl(210, 98%, 48%)',
+ 500: 'hsl(210, 98%, 42%)',
+ 600: 'hsl(210, 98%, 55%)',
+ 700: 'hsl(210, 100%, 35%)',
+ 800: 'hsl(210, 100%, 16%)',
+ 900: 'hsl(210, 100%, 21%)',
};
export const gray = {
- 50: '#FBFCFE',
- 100: '#EAF0F5',
- 200: '#D6E2EB',
- 300: '#BFCCD9',
- 400: '#94A6B8',
- 500: '#5B6B7C',
- 600: '#4C5967',
- 700: '#364049',
- 800: '#131B20',
- 900: '#090E10',
+ 50: 'hsl(220, 60%, 99%)',
+ 100: 'hsl(220, 35%, 94%)',
+ 200: 'hsl(220, 35%, 88%)',
+ 300: 'hsl(220, 25%, 80%)',
+ 400: 'hsl(220, 20%, 65%)',
+ 500: 'hsl(220, 20%, 42%)',
+ 600: 'hsl(220, 25%, 35%)',
+ 700: 'hsl(220, 25%, 25%)',
+ 800: 'hsl(220, 25%, 10%)',
+ 900: 'hsl(220, 30%, 5%)',
};
export const green = {
- 50: '#F6FEF6',
- 100: '#E3FBE3',
- 200: '#C7F7C7',
- 300: '#A1E8A1',
- 400: '#51BC51',
- 500: '#1F7A1F',
- 600: '#136C13',
- 700: '#0A470A',
- 800: '#042F04',
- 900: '#021D02',
+ 50: 'hsl(120, 80%, 98%)',
+ 100: 'hsl(120, 75%, 94%)',
+ 200: 'hsl(120, 75%, 87%)',
+ 300: 'hsl(120, 61%, 77%)',
+ 400: 'hsl(120, 44%, 53%)',
+ 500: 'hsl(120, 59%, 30%)',
+ 600: 'hsl(120, 70%, 25%)',
+ 700: 'hsl(120, 75%, 16%)',
+ 800: 'hsl(120, 84%, 10%)',
+ 900: 'hsl(120, 87%, 6%)',
+};
+
+export const orange = {
+ 50: 'hsl(45, 100%, 97%)',
+ 100: 'hsl(45, 92%, 90%)',
+ 200: 'hsl(45, 94%, 80%)',
+ 300: 'hsl(45, 90%, 65%)',
+ 400: 'hsl(45, 90%, 40%)',
+ 500: 'hsl(45, 90%, 35%)',
+ 600: 'hsl(45, 91%, 25%)',
+ 700: 'hsl(45, 94%, 20%)',
+ 800: 'hsl(45, 95%, 16%)',
+ 900: 'hsl(45, 93%, 12%)',
};
export const red = {
- 50: '#FFF0F0',
- 100: '#FDCECE',
- 200: '#FC9C9C',
- 300: '#F65555',
- 400: '#C20A0A',
- 500: '#910808',
- 600: '#790606',
- 700: '#630303',
- 800: '#4F0202',
- 900: '#3B0202',
+ 50: 'hsl(0, 100%, 97%)',
+ 100: 'hsl(0, 92%, 90%)',
+ 200: 'hsl(0, 94%, 80%)',
+ 300: 'hsl(0, 90%, 65%)',
+ 400: 'hsl(0, 90%, 40%)',
+ 500: 'hsl(0, 90%, 30%)',
+ 600: 'hsl(0, 91%, 25%)',
+ 700: 'hsl(0, 94%, 20%)',
+ 800: 'hsl(0, 95%, 16%)',
+ 900: 'hsl(0, 93%, 12%)',
};
const getDesignTokens = (mode: PaletteMode) => ({
@@ -103,26 +105,25 @@ const getDesignTokens = (mode: PaletteMode) => ({
dark: brand[800],
}),
},
- secondary: {
- light: secondary[300],
- main: secondary[500],
- dark: secondary[800],
+ warning: {
+ light: orange[300],
+ main: orange[400],
+ dark: orange[800],
...(mode === 'dark' && {
- light: secondary[400],
- main: secondary[500],
- dark: secondary[900],
+ light: orange[400],
+ main: orange[500],
+ dark: orange[700],
}),
},
- warning: {
- main: '#F7B538',
- dark: '#F79F00',
- ...(mode === 'dark' && { main: '#F7B538', dark: '#F79F00' }),
- },
error: {
- light: red[50],
- main: red[500],
- dark: red[700],
- ...(mode === 'dark' && { light: '#D32F2F', main: '#D32F2F', dark: '#B22A2A' }),
+ light: red[300],
+ main: red[400],
+ dark: red[800],
+ ...(mode === 'dark' && {
+ light: red[400],
+ main: red[500],
+ dark: red[700],
+ }),
},
success: {
light: green[300],
@@ -135,27 +136,18 @@ const getDesignTokens = (mode: PaletteMode) => ({
}),
},
grey: {
- 50: gray[50],
- 100: gray[100],
- 200: gray[200],
- 300: gray[300],
- 400: gray[400],
- 500: gray[500],
- 600: gray[600],
- 700: gray[700],
- 800: gray[800],
- 900: gray[900],
+ ...gray,
},
divider: mode === 'dark' ? alpha(gray[600], 0.3) : alpha(gray[300], 0.5),
background: {
- default: '#fff',
- paper: gray[50],
- ...(mode === 'dark' && { default: gray[900], paper: gray[800] }),
+ default: 'hsl(0, 0%, 100%)',
+ paper: gray[100],
+ ...(mode === 'dark' && { default: 'hsl(220, 30%, 3%)', paper: gray[900] }),
},
text: {
primary: gray[800],
secondary: gray[600],
- ...(mode === 'dark' && { primary: '#fff', secondary: gray[400] }),
+ ...(mode === 'dark' && { primary: 'hsl(0, 0%, 100%)', secondary: gray[400] }),
},
action: {
selected: `${alpha(brand[200], 0.2)}`,
@@ -167,51 +159,54 @@ const getDesignTokens = (mode: PaletteMode) => ({
typography: {
fontFamily: ['"Inter", "sans-serif"'].join(','),
h1: {
- fontSize: 60,
+ fontSize: customTheme.typography.pxToRem(60),
fontWeight: 600,
- lineHeight: 78 / 70,
- letterSpacing: -0.2,
+ lineHeight: 1.2,
+ letterSpacing: -0.5,
},
h2: {
- fontSize: 48,
+ fontSize: customTheme.typography.pxToRem(48),
fontWeight: 600,
lineHeight: 1.2,
},
h3: {
- fontSize: 42,
+ fontSize: customTheme.typography.pxToRem(42),
lineHeight: 1.2,
},
h4: {
- fontSize: 36,
+ fontSize: customTheme.typography.pxToRem(36),
fontWeight: 500,
lineHeight: 1.5,
},
h5: {
- fontSize: 20,
+ fontSize: customTheme.typography.pxToRem(20),
fontWeight: 600,
},
h6: {
- fontSize: 18,
+ fontSize: customTheme.typography.pxToRem(18),
},
subtitle1: {
- fontSize: 18,
+ fontSize: customTheme.typography.pxToRem(18),
},
subtitle2: {
- fontSize: 16,
+ fontSize: customTheme.typography.pxToRem(16),
},
body1: {
+ fontSize: customTheme.typography.pxToRem(15),
fontWeight: 400,
- fontSize: 15,
},
body2: {
+ fontSize: customTheme.typography.pxToRem(14),
fontWeight: 400,
- fontSize: 14,
},
caption: {
+ fontSize: customTheme.typography.pxToRem(12),
fontWeight: 400,
- fontSize: 12,
},
},
+ shape: {
+ borderRadius: 12,
+ },
});
export default function getSignInTheme(mode: PaletteMode): ThemeOptions {
@@ -226,9 +221,9 @@ export default function getSignInTheme(mode: PaletteMode): ThemeOptions {
styleOverrides: {
root: {
boxSizing: 'border-box',
- transition: 'all 100ms ease-in',
+ transition: 'all 100ms ease',
'&:focus-visible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outline: `3px solid ${alpha(brand[400], 0.5)}`,
outlineOffset: '2px',
},
},
@@ -238,34 +233,45 @@ export default function getSignInTheme(mode: PaletteMode): ThemeOptions {
styleOverrides: {
root: ({ theme, ownerState }) => ({
boxShadow: 'none',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
textTransform: 'none',
...(ownerState.size === 'small' && {
- maxHeight: '32px',
+ height: '2rem', // 32px
+ padding: '0 0.5rem',
}),
...(ownerState.size === 'medium' && {
- height: '40px',
+ height: '2.5rem', // 40px
}),
...(ownerState.variant === 'contained' &&
ownerState.color === 'primary' && {
- color: brand[50],
- background: brand[500],
- backgroundImage: `linear-gradient(to bottom, ${brand[400]}, ${brand[600]})`,
- boxShadow: `inset 0 1px ${alpha(brand[300], 0.5)}`,
+ color: 'white',
+ backgroundColor: brand[300],
+ backgroundImage: `linear-gradient(to bottom, ${alpha(brand[400], 0.8)}, ${brand[500]})`,
+ boxShadow: `inset 0 2px 0 ${alpha(brand[200], 0.2)}, inset 0 -2px 0 ${alpha(brand[700], 0.4)}`,
border: `1px solid ${brand[500]}`,
'&:hover': {
- background: brand[400],
- backgroundImage: 'none',
- boxShadow: `0 0 0 1px ${alpha(brand[300], 0.5)}`,
+ backgroundColor: brand[700],
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: brand[700],
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[700], 0.4)}`,
},
}),
...(ownerState.variant === 'outlined' && {
+ color: brand[700],
backgroundColor: alpha(brand[300], 0.1),
- borderColor: brand[300],
- color: brand[500],
+ borderColor: alpha(brand[200], 0.8),
+ boxShadow: `inset 0 2px ${alpha(brand[50], 0.5)}, inset 0 -2px ${alpha(brand[200], 0.2)}`,
'&:hover': {
+ backgroundColor: alpha(brand[300], 0.2),
+ borderColor: alpha(brand[300], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[400], 0.2)}`,
+ backgroundImage: 'none',
},
}),
...(ownerState.variant === 'outlined' &&
@@ -275,84 +281,173 @@ export default function getSignInTheme(mode: PaletteMode): ThemeOptions {
color: gray[700],
'&:hover': {
backgroundColor: alpha(gray[300], 0.3),
- borderColor: gray[200],
+ borderColor: alpha(gray[300], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(gray[300], 0.4),
+ boxShadow: `inset 0 2.5px 0 ${alpha(gray[400], 0.2)}`,
+ backgroundImage: 'none',
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'primary' && {
+ color: brand[700],
+ '&:hover': {
+ backgroundColor: alpha(brand[300], 0.3),
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'info' && {
+ color: gray[700],
+ '&:hover': {
+ backgroundColor: alpha(gray[300], 0.3),
},
}),
- ...(ownerState.variant === 'text' && {
- color: brand[600],
- '&:hover': {
- backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
- },
- }),
...(theme.palette.mode === 'dark' && {
- ...(ownerState.variant === 'contained' &&
- ownerState.color === 'primary' && {
- border: `1px solid ${brand[600]}`,
- backgroundImage: `linear-gradient(to bottom, ${brand[500]}, ${brand[600]})`,
- backgroundColor: brand[500],
- '&:hover': {
- background: brand[600],
- backgroundImage: 'none',
- boxShadow: `0 0 0 1px ${alpha(brand[700], 0.5)}`,
- },
- }),
...(ownerState.variant === 'outlined' && {
+ color: brand[200],
backgroundColor: alpha(brand[600], 0.1),
- borderColor: brand[700],
- color: brand[300],
+ borderColor: alpha(brand[600], 0.6),
+ boxShadow: `inset 0 2.5px ${alpha(brand[400], 0.1)}, inset 0 -2px ${alpha(gray[900], 0.5)}`,
'&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
+ backgroundColor: alpha(brand[700], 0.2),
+ borderColor: alpha(brand[700], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(brand[800], 0.2),
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[900], 0.4)}`,
+ backgroundImage: 'none',
},
}),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'info' && {
+ color: gray[200],
+ '&:hover': {
+ backgroundColor: alpha(gray[700], 0.3),
+ },
+ }),
...(ownerState.variant === 'outlined' &&
ownerState.color === 'secondary' && {
+ color: gray[300],
backgroundColor: alpha(gray[600], 0.1),
borderColor: alpha(gray[700], 0.5),
- color: gray[300],
+ boxShadow: `inset 0 2.5px ${alpha(gray[600], 0.1)}, inset 0 -2px ${alpha(gray[900], 0.5)}`,
+ '&:hover': {
+ backgroundColor: alpha(gray[700], 0.2),
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(gray[800], 0.2),
+ boxShadow: `inset 0 2.5px 0 ${alpha(gray[900], 0.4)}`,
+ backgroundImage: 'none',
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'primary' && {
+ color: brand[200],
'&:hover': {
- backgroundColor: alpha(gray[600], 0.3),
- borderColor: gray[700],
+ backgroundColor: alpha(brand[700], 0.3),
},
}),
- ...(ownerState.variant === 'text' && {
- color: brand[200],
- '&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
- },
- }),
}),
}),
},
},
- MuiIconButton: {
+ MuiCard: {
styleOverrides: {
root: ({ theme, ownerState }) => ({
- ...(ownerState.size === 'small' && {
- height: '32px',
- width: '32px',
+ backgroundColor: gray[50],
+ borderRadius: theme.shape.borderRadius,
+ border: `1px solid ${alpha(gray[200], 0.1)}`,
+ boxShadow: 'none',
+ ...(ownerState.variant === 'outlined' && {
+ border: `1px solid ${alpha(gray[200], 0.5)}`,
+ boxShadow: 'none',
+ background: `linear-gradient(to bottom, hsl(0, 0%, 100%), ${gray[50]})`,
}),
- ...(ownerState.size === 'medium' && {
- height: '40px',
- width: '40px',
+ ...(theme.palette.mode === 'dark' && {
+ backgroundColor: alpha(gray[800], 0.6),
+ border: `1px solid ${alpha(gray[700], 0.2)}`,
+ ...(ownerState.variant === 'outlined' && {
+ border: `1px solid ${alpha(gray[700], 0.4)}`,
+ boxShadow: 'none',
+ background: `linear-gradient(to bottom, ${gray[900]}, ${alpha(
+ gray[800],
+ 0.5,
+ )})`,
+ }),
}),
- color: brand[600],
+ }),
+ },
+ },
+ MuiCheckbox: {
+ defaultProps: {
+ disableRipple: true,
+ icon: (
+
+ ),
+ checkedIcon: ,
+ },
+ styleOverrides: {
+ root: ({ theme }) => ({
+ margin: 10,
+ height: 16,
+ width: 16,
+ borderRadius: 5,
+ border: '1px solid ',
+ borderColor: alpha(gray[300], 0.8),
+ boxShadow: '0 0 0 1.5px hsla(210, 0%, 0%, 0.04) inset',
+ backgroundColor: alpha(gray[100], 0.4),
+ transition: 'border-color, background-color, 120ms ease-in',
'&:hover': {
- backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
+ borderColor: brand[300],
+ },
+ '&.Mui-focusVisible': {
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '2px',
+ borderColor: brand[400],
+ },
+ '&.Mui-checked': {
+ color: 'white',
+ backgroundColor: brand[500],
+ borderColor: brand[500],
+ boxShadow: `none`,
+ '&:hover': {
+ backgroundColor: brand[600],
+ },
},
...(theme.palette.mode === 'dark' && {
- color: brand[200],
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: '0 0 0 1.5px hsl(210, 0%, 0%) inset',
+ backgroundColor: alpha(gray[900], 0.8),
'&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
+ borderColor: brand[300],
+ },
+ '&.Mui-focusVisible': {
+ borderColor: brand[400],
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '2px',
},
}),
}),
},
},
+ MuiDialog: {
+ styleOverrides: {
+ root: ({ theme }) => ({
+ '& .MuiDialog-paper': {
+ borderRadius: '10px',
+ border: '1px solid',
+ borderColor: theme.palette.divider,
+ },
+ }),
+ },
+ },
MuiDivider: {
styleOverrides: {
root: ({ theme }) => ({
@@ -363,50 +458,79 @@ export default function getSignInTheme(mode: PaletteMode): ThemeOptions {
}),
},
},
- MuiPaper: {
+ MuiFormLabel: {
styleOverrides: {
root: ({ theme }) => ({
- backgroundImage: 'none',
- backgroundColor: gray[100],
- ...(theme.palette.mode === 'dark' && {
- backgroundColor: gray[800],
- }),
+ typography: theme.typography.caption,
+ marginBottom: 8,
}),
},
},
- MuiDialog: {
+ MuiIconButton: {
styleOverrides: {
- root: ({ theme }) => ({
- '& .MuiDialog-paper': {
- borderRadius: '10px',
- border: '1px solid',
- borderColor: theme.palette.divider,
+ root: ({ theme, ownerState }) => ({
+ ...(ownerState.size === 'small' && {
+ height: '2rem',
+ width: '2rem',
+ }),
+ ...(ownerState.size === 'medium' && {
+ height: '2.5rem',
+ width: '2.5rem',
+ }),
+ color: brand[500],
+ '&:hover': {
+ backgroundColor: alpha(brand[300], 0.3),
+ borderColor: brand[200],
},
+ ...(theme.palette.mode === 'dark' && {
+ color: brand[200],
+ '&:hover': {
+ backgroundColor: alpha(brand[600], 0.3),
+ borderColor: brand[700],
+ },
+ }),
}),
},
},
- MuiCard: {
+ MuiInputBase: {
styleOverrides: {
- root: ({ theme, ownerState }) => ({
- backgroundColor: gray[50],
- borderRadius: 10,
- outline: `1px solid ${alpha(gray[200], 0.8)}`,
- boxShadow: 'none',
- ...(ownerState.variant === 'outlined' && {
- border: 0,
- boxSizing: 'border-box',
- background: `linear-gradient(to bottom, #FFF, ${gray[50]})`,
- }),
+ root: {
+ border: 'none',
+ },
+ },
+ },
+ MuiLink: {
+ defaultProps: {
+ underline: 'none',
+ },
+ styleOverrides: {
+ root: ({ theme }) => ({
+ color: brand[700],
+ fontWeight: 500,
+ position: 'relative',
+ textDecoration: 'none',
+ '&::before': {
+ content: '""',
+ position: 'absolute',
+ width: 0,
+ height: '1px',
+ bottom: 0,
+ left: 0,
+ backgroundColor: brand[200],
+ opacity: 0.7,
+ transition: 'width 0.3s ease, opacity 0.3s ease',
+ },
+ '&:hover::before': {
+ width: '100%',
+ opacity: 1,
+ },
+ '&:focus-visible': {
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '4px',
+ borderRadius: '2px',
+ },
...(theme.palette.mode === 'dark' && {
- backgroundColor: alpha(gray[800], 0.6),
- outline: `1px solid ${alpha(gray[700], 0.5)}`,
- ...(ownerState.variant === 'outlined' && {
- boxSizing: 'border-box',
- background: `linear-gradient(to bottom, ${gray[900]}, ${alpha(
- gray[800],
- 0.5,
- )})`,
- }),
+ color: brand[200],
}),
}),
},
@@ -419,7 +543,6 @@ export default function getSignInTheme(mode: PaletteMode): ThemeOptions {
input: {
paddingLeft: 10,
},
-
root: ({ theme, ownerState }) => ({
'input:-webkit-autofill': {
WebkitBoxShadow: `0 0 0 1000px ${brand[100]} inset, 0 0 0 1px ${brand[200]}`,
@@ -427,6 +550,7 @@ export default function getSignInTheme(mode: PaletteMode): ThemeOptions {
borderRadius: '8px',
},
'& .MuiInputBase-input': {
+ fontSize: '1rem',
'&::placeholder': {
opacity: 0.7,
color: gray[500],
@@ -435,10 +559,10 @@ export default function getSignInTheme(mode: PaletteMode): ThemeOptions {
boxSizing: 'border-box',
flexGrow: 1,
height: '40px',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
border: '1px solid',
borderColor: alpha(gray[300], 0.8),
- boxShadow: '0 0 0 1.5px rgba(0, 0, 0, 0.04) inset',
+ boxShadow: '0 0 0 1.5px hsla(210, 0%, 0%, 0.02) inset',
transition: 'border-color 120ms ease-in',
backgroundColor: alpha(gray[100], 0.4),
'&:hover': {
@@ -463,13 +587,14 @@ export default function getSignInTheme(mode: PaletteMode): ThemeOptions {
borderRadius: '8px',
},
'& .MuiInputBase-input': {
+ fontSize: '1rem',
'&::placeholder': {
opacity: 1,
color: gray[500],
},
},
borderColor: alpha(gray[700], 0.5),
- boxShadow: '0 0 0 1.5px rgb(0, 0, 0) inset',
+ boxShadow: '0 0 0 1.5px hsl(210, 0%, 0%) inset',
backgroundColor: alpha(gray[900], 0.8),
transition: 'border-color 120ms ease-in',
'&:hover': {
@@ -491,128 +616,29 @@ export default function getSignInTheme(mode: PaletteMode): ThemeOptions {
}),
},
},
- MuiFormLabel: {
- styleOverrides: {
- root: ({ theme }) => ({
- typography: theme.typography.caption,
- marginBottom: 8,
- }),
- },
- },
- MuiInputBase: {
- styleOverrides: {
- root: {
- border: 'none',
- },
+ MuiPaper: {
+ defaultProps: {
+ elevation: 0,
},
},
- MuiLink: {
+ MuiStack: {
defaultProps: {
- underline: 'none',
- },
- styleOverrides: {
- root: ({ theme }) => ({
- color: brand[600],
- fontWeight: 500,
- position: 'relative',
- textDecoration: 'none',
- '&::before': {
- content: '""',
- position: 'absolute',
- width: 0,
- height: '1px',
- bottom: 0,
- left: 0,
- backgroundColor: brand[200],
- opacity: 0.7,
- transition: 'width 0.3s ease, opacity 0.3s ease',
- },
- '&:hover::before': {
- width: '100%',
- opacity: 1,
- },
- '&:focus-visible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '4px',
- borderRadius: '2px',
- },
- ...(theme.palette.mode === 'dark' && {
- color: brand[200],
- }),
- }),
+ useFlexGap: true,
},
},
MuiToggleButtonGroup: {
styleOverrides: {
root: ({ theme }) => ({
- borderRadius: '10px',
- boxShadow: `0 4px 16px ${alpha(gray[400], 0.2)}`,
+ borderRadius: theme.shape.borderRadius,
+ boxShadow: `0 1px 2px hsla(210, 0%, 0%, 0.05), 0 2px 12px ${alpha(brand[200], 0.5)}`,
'& .Mui-selected': {
color: brand[500],
},
...(theme.palette.mode === 'dark' && {
'& .Mui-selected': {
- color: '#fff',
- },
- boxShadow: `0 4px 16px ${alpha(brand[700], 0.5)}`,
- }),
- }),
- },
- },
- MuiCheckbox: {
- defaultProps: {
- disableRipple: true,
- icon: ,
- checkedIcon: ,
- },
- styleOverrides: {
- root: ({ theme }) => ({
- margin: 10,
- height: 16,
- width: 16,
- borderRadius: 5,
- border: '1px solid ',
- borderColor: alpha(gray[300], 0.8),
- boxShadow: '0 0 0 1.5px rgba(0, 0, 0, 0.04) inset',
- transition: 'border-color 120ms ease-in',
- backgroundColor: alpha(gray[100], 0.4),
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-focusVisible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '2px',
- borderColor: brand[400],
- },
- '&.Mui-checked': {
- color: 'white',
- backgroundColor: brand[500],
- '&:hover': {
- borderColor: brand[300],
- backgroundColor: brand[600],
- },
- },
- ...(theme.palette.mode === 'dark' && {
- borderColor: alpha(gray[700], 0.5),
- boxShadow: '0 0 0 1.5px rgb(0, 0, 0) inset',
- backgroundColor: alpha(gray[900], 0.8),
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-checked': {
- color: 'white',
- backgroundColor: brand[600],
- boxShadow: '0 0 0 1px rgba(0, 0, 0, 0.2) inset',
- '&:hover': {
- borderColor: brand[300],
- backgroundColor: brand[800],
- },
- },
- '&.Mui-focusVisible': {
- borderColor: brand[400],
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '2px',
+ color: 'hsl(0, 0%, 100%)',
},
+ boxShadow: `0 0 0 1px hsla(210, 0%, 0%, 0.5), 0 2px 12px ${alpha(brand[700], 0.5)}`,
}),
}),
},
@@ -622,21 +648,15 @@ export default function getSignInTheme(mode: PaletteMode): ThemeOptions {
root: ({ theme }) => ({
padding: '12px 16px',
textTransform: 'none',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
fontWeight: 500,
...(theme.palette.mode === 'dark' && {
color: gray[400],
- boxShadow: '0 4px 16px rgba(0, 0, 0, 0.5)',
'&.Mui-selected': { color: brand[300] },
}),
}),
},
},
- MuiStack: {
- defaultProps: {
- useFlexGap: true,
- },
- },
},
};
}
diff --git a/docs/data/material/getting-started/templates/sign-up/CustomIcons.js b/docs/data/material/getting-started/templates/sign-up/CustomIcons.js
index e4a8d735bb75e6..1c24a778fb4427 100644
--- a/docs/data/material/getting-started/templates/sign-up/CustomIcons.js
+++ b/docs/data/material/getting-started/templates/sign-up/CustomIcons.js
@@ -1,87 +1,57 @@
import * as React from 'react';
-import PropTypes from 'prop-types';
-
import SvgIcon from '@mui/material/SvgIcon';
-function SitemarkIcon({ sx }) {
+export function SitemarkIcon() {
return (
-
+
-
-
-
-
);
}
-SitemarkIcon.propTypes = {
- sx: PropTypes.oneOfType([
- PropTypes.arrayOf(
- PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool]),
- ),
- PropTypes.func,
- PropTypes.object,
- ]),
-};
-
-export { SitemarkIcon };
-
export function FacebookIcon() {
return (
diff --git a/docs/data/material/getting-started/templates/sign-up/CustomIcons.tsx b/docs/data/material/getting-started/templates/sign-up/CustomIcons.tsx
index f66661a29dcb57..1c24a778fb4427 100644
--- a/docs/data/material/getting-started/templates/sign-up/CustomIcons.tsx
+++ b/docs/data/material/getting-started/templates/sign-up/CustomIcons.tsx
@@ -1,72 +1,51 @@
import * as React from 'react';
-import { SxProps, Theme } from '@mui/system';
import SvgIcon from '@mui/material/SvgIcon';
-interface IconProps {
- sx?: SxProps;
-}
-
-export function SitemarkIcon({ sx }: IconProps) {
+export function SitemarkIcon() {
return (
-
+
-
-
-
-
diff --git a/docs/data/material/getting-started/templates/sign-up/SignUp.js b/docs/data/material/getting-started/templates/sign-up/SignUp.js
index 5b8d9c0c02ce82..ecf2c3aa9fbf5c 100644
--- a/docs/data/material/getting-started/templates/sign-up/SignUp.js
+++ b/docs/data/material/getting-started/templates/sign-up/SignUp.js
@@ -15,7 +15,7 @@ import ToggleButton from '@mui/material/ToggleButton';
import ToggleButtonGroup from '@mui/material/ToggleButtonGroup';
import Typography from '@mui/material/Typography';
import Stack from '@mui/material/Stack';
-import { alpha } from '@mui/material';
+
import { createTheme, ThemeProvider } from '@mui/material/styles';
import AutoAwesomeRoundedIcon from '@mui/icons-material/AutoAwesomeRounded';
@@ -42,7 +42,7 @@ function ToggleCustomTheme({ showCustomTheme, toggleCustomTheme }) {
exclusive
value={showCustomTheme}
onChange={toggleCustomTheme}
- aria-placeholder="Platform"
+ aria-label="Toggle design language"
sx={{
backgroundColor: 'background.default',
'& .Mui-selected': {
@@ -78,14 +78,11 @@ export default function SignUp() {
const [passwordErrorMessage, setPasswordErrorMessage] = React.useState('');
const [nameError, setNameError] = React.useState(false);
const [nameErrorMessage, setNameErrorMessage] = React.useState('');
- const [lastNameError, setLastNameError] = React.useState(false);
- const [lastNameErrorMessage, setLastNameErrorMessage] = React.useState('');
const validateInputs = () => {
const email = document.getElementById('email');
const password = document.getElementById('password');
const name = document.getElementById('name');
- const lastName = document.getElementById('lastName');
let isValid = true;
@@ -116,15 +113,6 @@ export default function SignUp() {
setNameErrorMessage('');
}
- if (!lastName.value || lastName.value.length < 1) {
- setLastNameError(true);
- setLastNameErrorMessage('Name is required.');
- isValid = false;
- } else {
- setLastNameError(false);
- setLastNameErrorMessage('');
- }
-
return isValid;
};
@@ -151,18 +139,17 @@ export default function SignUp() {
({
+ backgroundRepeat: 'no-repeat',
backgroundImage:
theme.palette.mode === 'light'
- ? `linear-gradient(180deg, ${alpha('#CEE5FD', 0.2)}, #FFF)`
- : `linear-gradient(${alpha('#02294F', 0.2)}, ${alpha('#021F3B', 0.0)})`,
- backgroundRepeat: 'no-repeat',
- height: { xs: 'auto', sm: '100dvh' },
+ ? 'radial-gradient(ellipse at 50% 50%, hsl(210, 100%, 97%), hsl(0, 0%, 100%))'
+ : 'radial-gradient(at 50% 50%, hsla(210, 100%, 16%, 0.3), hsl(220, 30%, 5%))',
pb: { xs: 12, sm: 0 },
})}
- component="main"
>
-
+
- Name
+ Full name
-
- Last name
-
-
Email
{
const email = document.getElementById('email') as HTMLInputElement;
const password = document.getElementById('password') as HTMLInputElement;
const name = document.getElementById('name') as HTMLInputElement;
- const lastName = document.getElementById('lastName') as HTMLInputElement;
let isValid = true;
@@ -116,15 +113,6 @@ export default function SignUp() {
setNameErrorMessage('');
}
- if (!lastName.value || lastName.value.length < 1) {
- setLastNameError(true);
- setLastNameErrorMessage('Name is required.');
- isValid = false;
- } else {
- setLastNameError(false);
- setLastNameErrorMessage('');
- }
-
return isValid;
};
@@ -151,18 +139,17 @@ export default function SignUp() {
({
+ backgroundRepeat: 'no-repeat',
backgroundImage:
theme.palette.mode === 'light'
- ? `linear-gradient(180deg, ${alpha('#CEE5FD', 0.2)}, #FFF)`
- : `linear-gradient(${alpha('#02294F', 0.2)}, ${alpha('#021F3B', 0.0)})`,
- backgroundRepeat: 'no-repeat',
- height: { xs: 'auto', sm: '100dvh' },
+ ? 'radial-gradient(ellipse at 50% 50%, hsl(210, 100%, 97%), hsl(0, 0%, 100%))'
+ : 'radial-gradient(at 50% 50%, hsla(210, 100%, 16%, 0.3), hsl(220, 30%, 5%))',
pb: { xs: 12, sm: 0 },
})}
- component="main"
>
-
+
- Name
+ Full name
-
- Last name
-
-
Email
void;
}
-function ToggleColorMode({ mode, toggleColorMode }: ToggleColorModeProps) {
+export default function ToggleColorMode({
+ mode,
+ toggleColorMode,
+}: ToggleColorModeProps) {
return (
);
}
-
-export default ToggleColorMode;
diff --git a/docs/data/material/getting-started/templates/sign-up/getSignUpTheme.js b/docs/data/material/getting-started/templates/sign-up/getSignUpTheme.js
index 39d6b9d1db1d7e..e066b0a2d08458 100644
--- a/docs/data/material/getting-started/templates/sign-up/getSignUpTheme.js
+++ b/docs/data/material/getting-started/templates/sign-up/getSignUpTheme.js
@@ -1,73 +1,75 @@
import * as React from 'react';
-import { alpha } from '@mui/material/styles';
+import { createTheme, alpha } from '@mui/material/styles';
import CheckBoxOutlineBlankRoundedIcon from '@mui/icons-material/CheckBoxOutlineBlankRounded';
import CheckRoundedIcon from '@mui/icons-material/CheckRounded';
-export const brand = {
- 50: '#F0F7FF',
- 100: '#CEE5FD',
- 200: '#9CCCFC',
- 300: '#55A6F6',
- 400: '#0A66C2',
- 500: '#0959AA',
- 600: '#064079',
- 700: '#033363',
- 800: '#02294F',
- 900: '#021F3B',
-};
+const customTheme = createTheme();
-export const secondary = {
- 50: '#F9F0FF',
- 100: '#E9CEFD',
- 200: '#D49CFC',
- 300: '#B355F6',
- 400: '#750AC2',
- 500: '#6709AA',
- 600: '#490679',
- 700: '#3B0363',
- 800: '#2F024F',
- 900: '#23023B',
+export const brand = {
+ 50: 'hsl(210, 100%, 97%)',
+ 100: 'hsl(210, 100%, 90%)',
+ 200: 'hsl(210, 100%, 80%)',
+ 300: 'hsl(210, 100%, 65%)',
+ 400: 'hsl(210, 98%, 48%)',
+ 500: 'hsl(210, 98%, 42%)',
+ 600: 'hsl(210, 98%, 55%)',
+ 700: 'hsl(210, 100%, 35%)',
+ 800: 'hsl(210, 100%, 16%)',
+ 900: 'hsl(210, 100%, 21%)',
};
export const gray = {
- 50: '#FBFCFE',
- 100: '#EAF0F5',
- 200: '#D6E2EB',
- 300: '#BFCCD9',
- 400: '#94A6B8',
- 500: '#5B6B7C',
- 600: '#4C5967',
- 700: '#364049',
- 800: '#131B20',
- 900: '#090E10',
+ 50: 'hsl(220, 60%, 99%)',
+ 100: 'hsl(220, 35%, 94%)',
+ 200: 'hsl(220, 35%, 88%)',
+ 300: 'hsl(220, 25%, 80%)',
+ 400: 'hsl(220, 20%, 65%)',
+ 500: 'hsl(220, 20%, 42%)',
+ 600: 'hsl(220, 25%, 35%)',
+ 700: 'hsl(220, 25%, 25%)',
+ 800: 'hsl(220, 25%, 10%)',
+ 900: 'hsl(220, 30%, 5%)',
};
export const green = {
- 50: '#F6FEF6',
- 100: '#E3FBE3',
- 200: '#C7F7C7',
- 300: '#A1E8A1',
- 400: '#51BC51',
- 500: '#1F7A1F',
- 600: '#136C13',
- 700: '#0A470A',
- 800: '#042F04',
- 900: '#021D02',
+ 50: 'hsl(120, 80%, 98%)',
+ 100: 'hsl(120, 75%, 94%)',
+ 200: 'hsl(120, 75%, 87%)',
+ 300: 'hsl(120, 61%, 77%)',
+ 400: 'hsl(120, 44%, 53%)',
+ 500: 'hsl(120, 59%, 30%)',
+ 600: 'hsl(120, 70%, 25%)',
+ 700: 'hsl(120, 75%, 16%)',
+ 800: 'hsl(120, 84%, 10%)',
+ 900: 'hsl(120, 87%, 6%)',
+};
+
+export const orange = {
+ 50: 'hsl(45, 100%, 97%)',
+ 100: 'hsl(45, 92%, 90%)',
+ 200: 'hsl(45, 94%, 80%)',
+ 300: 'hsl(45, 90%, 65%)',
+ 400: 'hsl(45, 90%, 40%)',
+ 500: 'hsl(45, 90%, 35%)',
+ 600: 'hsl(45, 91%, 25%)',
+ 700: 'hsl(45, 94%, 20%)',
+ 800: 'hsl(45, 95%, 16%)',
+ 900: 'hsl(45, 93%, 12%)',
};
export const red = {
- 50: '#FFF0F0',
- 100: '#FDCECE',
- 200: '#FC9C9C',
- 300: '#F65555',
- 400: '#C20A0A',
- 500: '#910808',
- 600: '#790606',
- 700: '#630303',
- 800: '#4F0202',
- 900: '#3B0202',
+ 50: 'hsl(0, 100%, 97%)',
+ 100: 'hsl(0, 92%, 90%)',
+ 200: 'hsl(0, 94%, 80%)',
+ 300: 'hsl(0, 90%, 65%)',
+ 400: 'hsl(0, 90%, 40%)',
+ 500: 'hsl(0, 90%, 30%)',
+ 600: 'hsl(0, 91%, 25%)',
+ 700: 'hsl(0, 94%, 20%)',
+ 800: 'hsl(0, 95%, 16%)',
+ 900: 'hsl(0, 93%, 12%)',
};
const getDesignTokens = (mode) => ({
@@ -85,26 +87,25 @@ const getDesignTokens = (mode) => ({
dark: brand[800],
}),
},
- secondary: {
- light: secondary[300],
- main: secondary[500],
- dark: secondary[800],
+ warning: {
+ light: orange[300],
+ main: orange[400],
+ dark: orange[800],
...(mode === 'dark' && {
- light: secondary[400],
- main: secondary[500],
- dark: secondary[900],
+ light: orange[400],
+ main: orange[500],
+ dark: orange[700],
}),
},
- warning: {
- main: '#F7B538',
- dark: '#F79F00',
- ...(mode === 'dark' && { main: '#F7B538', dark: '#F79F00' }),
- },
error: {
- light: red[50],
- main: red[500],
- dark: red[700],
- ...(mode === 'dark' && { light: '#D32F2F', main: '#D32F2F', dark: '#B22A2A' }),
+ light: red[300],
+ main: red[400],
+ dark: red[800],
+ ...(mode === 'dark' && {
+ light: red[400],
+ main: red[500],
+ dark: red[700],
+ }),
},
success: {
light: green[300],
@@ -117,27 +118,18 @@ const getDesignTokens = (mode) => ({
}),
},
grey: {
- 50: gray[50],
- 100: gray[100],
- 200: gray[200],
- 300: gray[300],
- 400: gray[400],
- 500: gray[500],
- 600: gray[600],
- 700: gray[700],
- 800: gray[800],
- 900: gray[900],
+ ...gray,
},
divider: mode === 'dark' ? alpha(gray[600], 0.3) : alpha(gray[300], 0.5),
background: {
- default: '#fff',
- paper: gray[50],
- ...(mode === 'dark' && { default: gray[900], paper: gray[800] }),
+ default: 'hsl(0, 0%, 100%)',
+ paper: gray[100],
+ ...(mode === 'dark' && { default: 'hsl(220, 30%, 3%)', paper: gray[900] }),
},
text: {
primary: gray[800],
secondary: gray[600],
- ...(mode === 'dark' && { primary: '#fff', secondary: gray[400] }),
+ ...(mode === 'dark' && { primary: 'hsl(0, 0%, 100%)', secondary: gray[400] }),
},
action: {
selected: `${alpha(brand[200], 0.2)}`,
@@ -149,51 +141,54 @@ const getDesignTokens = (mode) => ({
typography: {
fontFamily: ['"Inter", "sans-serif"'].join(','),
h1: {
- fontSize: 60,
+ fontSize: customTheme.typography.pxToRem(60),
fontWeight: 600,
- lineHeight: 78 / 70,
- letterSpacing: -0.2,
+ lineHeight: 1.2,
+ letterSpacing: -0.5,
},
h2: {
- fontSize: 48,
+ fontSize: customTheme.typography.pxToRem(48),
fontWeight: 600,
lineHeight: 1.2,
},
h3: {
- fontSize: 42,
+ fontSize: customTheme.typography.pxToRem(42),
lineHeight: 1.2,
},
h4: {
- fontSize: 36,
+ fontSize: customTheme.typography.pxToRem(36),
fontWeight: 500,
lineHeight: 1.5,
},
h5: {
- fontSize: 20,
+ fontSize: customTheme.typography.pxToRem(20),
fontWeight: 600,
},
h6: {
- fontSize: 18,
+ fontSize: customTheme.typography.pxToRem(18),
},
subtitle1: {
- fontSize: 18,
+ fontSize: customTheme.typography.pxToRem(18),
},
subtitle2: {
- fontSize: 16,
+ fontSize: customTheme.typography.pxToRem(16),
},
body1: {
+ fontSize: customTheme.typography.pxToRem(15),
fontWeight: 400,
- fontSize: 15,
},
body2: {
+ fontSize: customTheme.typography.pxToRem(14),
fontWeight: 400,
- fontSize: 14,
},
caption: {
+ fontSize: customTheme.typography.pxToRem(12),
fontWeight: 400,
- fontSize: 12,
},
},
+ shape: {
+ borderRadius: 12,
+ },
});
export default function getSignUpTheme(mode) {
@@ -208,9 +203,9 @@ export default function getSignUpTheme(mode) {
styleOverrides: {
root: {
boxSizing: 'border-box',
- transition: 'all 100ms ease-in',
+ transition: 'all 100ms ease',
'&:focus-visible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outline: `3px solid ${alpha(brand[400], 0.5)}`,
outlineOffset: '2px',
},
},
@@ -220,34 +215,45 @@ export default function getSignUpTheme(mode) {
styleOverrides: {
root: ({ theme, ownerState }) => ({
boxShadow: 'none',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
textTransform: 'none',
...(ownerState.size === 'small' && {
- maxHeight: '32px',
+ height: '2rem', // 32px
+ padding: '0 0.5rem',
}),
...(ownerState.size === 'medium' && {
- height: '40px',
+ height: '2.5rem', // 40px
}),
...(ownerState.variant === 'contained' &&
ownerState.color === 'primary' && {
- color: brand[50],
- background: brand[500],
- backgroundImage: `linear-gradient(to bottom, ${brand[400]}, ${brand[600]})`,
- boxShadow: `inset 0 1px ${alpha(brand[300], 0.5)}`,
+ color: 'white',
+ backgroundColor: brand[300],
+ backgroundImage: `linear-gradient(to bottom, ${alpha(brand[400], 0.8)}, ${brand[500]})`,
+ boxShadow: `inset 0 2px 0 ${alpha(brand[200], 0.2)}, inset 0 -2px 0 ${alpha(brand[700], 0.4)}`,
border: `1px solid ${brand[500]}`,
'&:hover': {
- background: brand[400],
- backgroundImage: 'none',
- boxShadow: `0 0 0 1px ${alpha(brand[300], 0.5)}`,
+ backgroundColor: brand[700],
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: brand[700],
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[700], 0.4)}`,
},
}),
...(ownerState.variant === 'outlined' && {
+ color: brand[700],
backgroundColor: alpha(brand[300], 0.1),
- borderColor: brand[300],
- color: brand[500],
+ borderColor: alpha(brand[200], 0.8),
+ boxShadow: `inset 0 2px ${alpha(brand[50], 0.5)}, inset 0 -2px ${alpha(brand[200], 0.2)}`,
'&:hover': {
+ backgroundColor: alpha(brand[300], 0.2),
+ borderColor: alpha(brand[300], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[400], 0.2)}`,
+ backgroundImage: 'none',
},
}),
...(ownerState.variant === 'outlined' &&
@@ -257,84 +263,174 @@ export default function getSignUpTheme(mode) {
color: gray[700],
'&:hover': {
backgroundColor: alpha(gray[300], 0.3),
- borderColor: gray[200],
+ borderColor: alpha(gray[300], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(gray[300], 0.4),
+ boxShadow: `inset 0 2.5px 0 ${alpha(gray[400], 0.2)}`,
+ backgroundImage: 'none',
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'primary' && {
+ color: brand[700],
+ '&:hover': {
+ backgroundColor: alpha(brand[300], 0.3),
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'info' && {
+ color: gray[700],
+ '&:hover': {
+ backgroundColor: alpha(gray[300], 0.3),
},
}),
- ...(ownerState.variant === 'text' && {
- color: brand[600],
- '&:hover': {
- backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
- },
- }),
...(theme.palette.mode === 'dark' && {
- ...(ownerState.variant === 'contained' &&
- ownerState.color === 'primary' && {
- border: `1px solid ${brand[600]}`,
- backgroundImage: `linear-gradient(to bottom, ${brand[500]}, ${brand[600]})`,
- backgroundColor: brand[500],
- '&:hover': {
- background: brand[600],
- backgroundImage: 'none',
- boxShadow: `0 0 0 1px ${alpha(brand[700], 0.5)}`,
- },
- }),
...(ownerState.variant === 'outlined' && {
+ color: brand[200],
backgroundColor: alpha(brand[600], 0.1),
- borderColor: brand[700],
- color: brand[300],
+ borderColor: alpha(brand[600], 0.6),
+ boxShadow: `inset 0 2.5px ${alpha(brand[400], 0.1)}, inset 0 -2px ${alpha(gray[900], 0.5)}`,
'&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
+ backgroundColor: alpha(brand[700], 0.2),
+ borderColor: alpha(brand[700], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(brand[800], 0.2),
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[900], 0.4)}`,
+ backgroundImage: 'none',
},
}),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'info' && {
+ color: gray[200],
+ '&:hover': {
+ backgroundColor: alpha(gray[700], 0.3),
+ },
+ }),
...(ownerState.variant === 'outlined' &&
ownerState.color === 'secondary' && {
+ color: gray[300],
backgroundColor: alpha(gray[600], 0.1),
borderColor: alpha(gray[700], 0.5),
- color: gray[300],
+ boxShadow: `inset 0 2.5px ${alpha(gray[600], 0.1)}, inset 0 -2px ${alpha(gray[900], 0.5)}`,
+ '&:hover': {
+ backgroundColor: alpha(gray[700], 0.2),
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(gray[800], 0.2),
+ boxShadow: `inset 0 2.5px 0 ${alpha(gray[900], 0.4)}`,
+ backgroundImage: 'none',
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'primary' && {
+ color: brand[200],
'&:hover': {
- backgroundColor: alpha(gray[600], 0.3),
- borderColor: gray[700],
+ backgroundColor: alpha(brand[700], 0.3),
},
}),
- ...(ownerState.variant === 'text' && {
- color: brand[200],
- '&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
- },
- }),
}),
}),
},
},
- MuiIconButton: {
+ MuiCard: {
styleOverrides: {
root: ({ theme, ownerState }) => ({
- ...(ownerState.size === 'small' && {
- height: '32px',
- width: '32px',
+ transition: 'all 100ms ease',
+ backgroundColor: gray[50],
+ borderRadius: theme.shape.borderRadius,
+ border: `1px solid ${alpha(gray[200], 0.5)}`,
+ boxShadow: 'none',
+ ...(ownerState.variant === 'outlined' && {
+ border: `1px solid ${gray[200]}`,
+ boxShadow: 'none',
+ background: `linear-gradient(to bottom, hsl(0, 0%, 100%), ${gray[50]})`,
}),
- ...(ownerState.size === 'medium' && {
- height: '40px',
- width: '40px',
+ ...(theme.palette.mode === 'dark' && {
+ backgroundColor: alpha(gray[800], 0.6),
+ border: `1px solid ${alpha(gray[700], 0.3)}`,
+ ...(ownerState.variant === 'outlined' && {
+ border: `1px solid ${alpha(gray[700], 0.4)}`,
+ boxShadow: 'none',
+ background: `linear-gradient(to bottom, ${gray[900]}, ${alpha(
+ gray[800],
+ 0.5,
+ )})`,
+ }),
}),
- color: brand[600],
+ }),
+ },
+ },
+ MuiCheckbox: {
+ defaultProps: {
+ disableRipple: true,
+ icon: (
+
+ ),
+ checkedIcon: ,
+ },
+ styleOverrides: {
+ root: ({ theme }) => ({
+ margin: 10,
+ height: 16,
+ width: 16,
+ borderRadius: 5,
+ border: '1px solid ',
+ borderColor: alpha(gray[300], 0.8),
+ backgroundColor: alpha(gray[100], 0.4),
+ boxShadow: '0 0 0 1.5px hsla(210, 0%, 0%, 0.04) inset',
+ transition: 'border-color, background-color, 120ms ease-in',
'&:hover': {
- backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
+ borderColor: gray[400],
+ },
+ '&.Mui-focusVisible': {
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '2px',
+ borderColor: brand[400],
+ },
+ '&.Mui-checked': {
+ color: 'white',
+ backgroundColor: brand[500],
+ borderColor: brand[500],
+ boxShadow: `none`,
+ '&:hover': {
+ backgroundColor: brand[600],
+ },
},
...(theme.palette.mode === 'dark' && {
- color: brand[200],
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: '0 0 0 1.5px hsl(210, 0%, 0%) inset',
+ backgroundColor: alpha(gray[900], 0.8),
'&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
+ borderColor: brand[300],
+ },
+ '&.Mui-focusVisible': {
+ borderColor: brand[400],
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '2px',
},
}),
}),
},
},
+ MuiDialog: {
+ styleOverrides: {
+ root: ({ theme }) => ({
+ '& .MuiDialog-paper': {
+ borderRadius: '10px',
+ border: '1px solid',
+ borderColor: theme.palette.divider,
+ },
+ }),
+ },
+ },
MuiDivider: {
styleOverrides: {
root: ({ theme }) => ({
@@ -345,25 +441,80 @@ export default function getSignUpTheme(mode) {
}),
},
},
- MuiPaper: {
+ MuiFormLabel: {
styleOverrides: {
root: ({ theme }) => ({
- backgroundImage: 'none',
- backgroundColor: gray[100],
+ typography: theme.typography.caption,
+ marginBottom: 8,
+ }),
+ },
+ },
+ MuiIconButton: {
+ styleOverrides: {
+ root: ({ theme, ownerState }) => ({
+ ...(ownerState.size === 'small' && {
+ height: '2rem',
+ width: '2rem',
+ }),
+ ...(ownerState.size === 'medium' && {
+ height: '2.5rem',
+ width: '2.5rem',
+ }),
+ color: brand[500],
+ '&:hover': {
+ backgroundColor: alpha(brand[300], 0.3),
+ borderColor: brand[200],
+ },
...(theme.palette.mode === 'dark' && {
- backgroundColor: gray[800],
+ color: brand[200],
+ '&:hover': {
+ backgroundColor: alpha(brand[600], 0.3),
+ borderColor: brand[700],
+ },
}),
}),
},
},
- MuiDialog: {
+ MuiInputBase: {
+ styleOverrides: {
+ root: {
+ border: 'none',
+ },
+ },
+ },
+ MuiLink: {
+ defaultProps: {
+ underline: 'none',
+ },
styleOverrides: {
root: ({ theme }) => ({
- '& .MuiDialog-paper': {
- borderRadius: '10px',
- border: '1px solid',
- borderColor: theme.palette.divider,
+ color: brand[700],
+ fontWeight: 500,
+ position: 'relative',
+ textDecoration: 'none',
+ '&::before': {
+ content: '""',
+ position: 'absolute',
+ width: 0,
+ height: '1px',
+ bottom: 0,
+ left: 0,
+ backgroundColor: brand[200],
+ opacity: 0.7,
+ transition: 'width 0.3s ease, opacity 0.3s ease',
+ },
+ '&:hover::before': {
+ width: '100%',
+ opacity: 1,
+ },
+ '&:focus-visible': {
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '4px',
+ borderRadius: '2px',
},
+ ...(theme.palette.mode === 'dark' && {
+ color: brand[200],
+ }),
}),
},
},
@@ -382,6 +533,7 @@ export default function getSignUpTheme(mode) {
borderRadius: '8px',
},
'& .MuiInputBase-input': {
+ fontSize: '1rem',
'&::placeholder': {
opacity: 0.7,
color: gray[500],
@@ -390,10 +542,10 @@ export default function getSignUpTheme(mode) {
boxSizing: 'border-box',
flexGrow: 1,
height: '40px',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
border: '1px solid',
borderColor: alpha(gray[300], 0.8),
- boxShadow: '0 0 0 1.5px rgba(0, 0, 0, 0.04) inset',
+ boxShadow: '0 0 0 1.5px hsla(210, 0%, 0%, 0.02) inset',
transition: 'border-color 120ms ease-in',
backgroundColor: alpha(gray[100], 0.4),
'&:hover': {
@@ -418,13 +570,14 @@ export default function getSignUpTheme(mode) {
borderRadius: '8px',
},
'& .MuiInputBase-input': {
+ fontSize: '1rem',
'&::placeholder': {
opacity: 1,
color: gray[500],
},
},
borderColor: alpha(gray[700], 0.5),
- boxShadow: '0 0 0 1.5px rgb(0, 0, 0) inset',
+ boxShadow: '0 0 0 1.5px hsl(210, 0%, 0%) inset',
backgroundColor: alpha(gray[900], 0.8),
transition: 'border-color 120ms ease-in',
'&:hover': {
@@ -446,154 +599,29 @@ export default function getSignUpTheme(mode) {
}),
},
},
- MuiFormLabel: {
- styleOverrides: {
- root: ({ theme }) => ({
- typography: theme.typography.caption,
- marginBottom: 8,
- }),
- },
- },
- MuiInputBase: {
- styleOverrides: {
- root: {
- border: 'none',
- },
- },
- },
- MuiCard: {
- styleOverrides: {
- root: ({ theme, ownerState }) => ({
- backgroundColor: gray[50],
- borderRadius: 10,
- outline: `1px solid ${alpha(gray[200], 0.8)}`,
- boxShadow: 'none',
- ...(ownerState.variant === 'outlined' && {
- border: 0,
- boxSizing: 'border-box',
- background: `linear-gradient(to bottom, #FFF, ${gray[50]})`,
- }),
- ...(theme.palette.mode === 'dark' && {
- backgroundColor: alpha(gray[800], 0.6),
- outline: `1px solid ${alpha(gray[700], 0.5)}`,
- ...(ownerState.variant === 'outlined' && {
- boxSizing: 'border-box',
- background: `linear-gradient(to bottom, ${gray[900]}, ${alpha(
- gray[800],
- 0.5,
- )})`,
- }),
- }),
- }),
+ MuiPaper: {
+ defaultProps: {
+ elevation: 0,
},
},
- MuiLink: {
+ MuiStack: {
defaultProps: {
- underline: 'none',
- },
- styleOverrides: {
- root: ({ theme }) => ({
- color: brand[600],
- fontWeight: 500,
- position: 'relative',
- textDecoration: 'none',
- '&::before': {
- content: '""',
- position: 'absolute',
- width: 0,
- height: '1px',
- bottom: 0,
- left: 0,
- backgroundColor: brand[200],
- opacity: 0.7,
- transition: 'width 0.3s ease, opacity 0.3s ease',
- },
- '&:hover::before': {
- width: '100%',
- opacity: 1,
- },
- '&:focus-visible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '4px',
- borderRadius: '2px',
- },
- ...(theme.palette.mode === 'dark' && {
- color: brand[200],
- }),
- }),
+ useFlexGap: true,
},
},
MuiToggleButtonGroup: {
styleOverrides: {
root: ({ theme }) => ({
- borderRadius: '10px',
- boxShadow: `0 4px 16px ${alpha(gray[400], 0.2)}`,
+ borderRadius: theme.shape.borderRadius,
+ boxShadow: `0 1px 2px hsla(210, 0%, 0%, 0.05), 0 2px 12px ${alpha(brand[200], 0.5)}`,
'& .Mui-selected': {
color: brand[500],
},
...(theme.palette.mode === 'dark' && {
'& .Mui-selected': {
- color: '#fff',
- },
- boxShadow: `0 4px 16px ${alpha(brand[700], 0.5)}`,
- }),
- }),
- },
- },
- MuiCheckbox: {
- defaultProps: {
- disableRipple: true,
- icon: ,
- checkedIcon: ,
- },
- styleOverrides: {
- root: ({ theme }) => ({
- margin: 10,
- height: 16,
- width: 16,
- borderRadius: 5,
- border: '1px solid ',
- borderColor: alpha(gray[300], 0.8),
- boxShadow: '0 0 0 1.5px rgba(0, 0, 0, 0.04) inset',
- transition: 'border-color 120ms ease-in',
- backgroundColor: alpha(gray[100], 0.4),
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-focusVisible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '2px',
- borderColor: brand[400],
- },
- '&.Mui-checked': {
- color: 'white',
- backgroundColor: brand[500],
- '&:hover': {
- borderColor: brand[300],
- backgroundColor: brand[600],
- },
- },
- ...(theme.palette.mode === 'dark' && {
- borderColor: alpha(gray[700], 0.5),
- boxShadow: '0 0 0 1.5px rgb(0, 0, 0) inset',
- backgroundColor: alpha(gray[900], 0.8),
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-checked': {
- color: 'white',
- backgroundColor: brand[600],
- boxShadow: '0 0 0 1px rgba(0, 0, 0, 0.2) inset',
- '&:hover': {
- borderColor: brand[300],
- backgroundColor: brand[800],
- },
- },
- '&.Mui-focusVisible': {
- borderColor: brand[400],
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '2px',
+ color: 'hsl(0, 0%, 100%)',
},
+ boxShadow: `0 0 0 1px hsla(210, 0%, 0%, 0.5), 0 2px 12px ${alpha(brand[700], 0.5)}`,
}),
}),
},
@@ -603,21 +631,15 @@ export default function getSignUpTheme(mode) {
root: ({ theme }) => ({
padding: '12px 16px',
textTransform: 'none',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
fontWeight: 500,
...(theme.palette.mode === 'dark' && {
color: gray[400],
- boxShadow: '0 4px 16px rgba(0, 0, 0, 0.5)',
'&.Mui-selected': { color: brand[300] },
}),
}),
},
},
- MuiStack: {
- defaultProps: {
- useFlexGap: true,
- },
- },
},
};
}
diff --git a/docs/data/material/getting-started/templates/sign-up/getSignUpTheme.tsx b/docs/data/material/getting-started/templates/sign-up/getSignUpTheme.tsx
index 51f2fa45444de8..19490022c87ad3 100644
--- a/docs/data/material/getting-started/templates/sign-up/getSignUpTheme.tsx
+++ b/docs/data/material/getting-started/templates/sign-up/getSignUpTheme.tsx
@@ -1,6 +1,6 @@
import * as React from 'react';
import type {} from '@mui/material/themeCssVarsAugmentation';
-import { alpha, ThemeOptions } from '@mui/material/styles';
+import { createTheme, ThemeOptions, alpha } from '@mui/material/styles';
import { PaletteMode } from '@mui/material';
import CheckBoxOutlineBlankRoundedIcon from '@mui/icons-material/CheckBoxOutlineBlankRounded';
@@ -23,69 +23,71 @@ declare module '@mui/material/styles/createPalette' {
interface PaletteColor extends ColorRange {}
}
-export const brand = {
- 50: '#F0F7FF',
- 100: '#CEE5FD',
- 200: '#9CCCFC',
- 300: '#55A6F6',
- 400: '#0A66C2',
- 500: '#0959AA',
- 600: '#064079',
- 700: '#033363',
- 800: '#02294F',
- 900: '#021F3B',
-};
+const customTheme = createTheme();
-export const secondary = {
- 50: '#F9F0FF',
- 100: '#E9CEFD',
- 200: '#D49CFC',
- 300: '#B355F6',
- 400: '#750AC2',
- 500: '#6709AA',
- 600: '#490679',
- 700: '#3B0363',
- 800: '#2F024F',
- 900: '#23023B',
+export const brand = {
+ 50: 'hsl(210, 100%, 97%)',
+ 100: 'hsl(210, 100%, 90%)',
+ 200: 'hsl(210, 100%, 80%)',
+ 300: 'hsl(210, 100%, 65%)',
+ 400: 'hsl(210, 98%, 48%)',
+ 500: 'hsl(210, 98%, 42%)',
+ 600: 'hsl(210, 98%, 55%)',
+ 700: 'hsl(210, 100%, 35%)',
+ 800: 'hsl(210, 100%, 16%)',
+ 900: 'hsl(210, 100%, 21%)',
};
export const gray = {
- 50: '#FBFCFE',
- 100: '#EAF0F5',
- 200: '#D6E2EB',
- 300: '#BFCCD9',
- 400: '#94A6B8',
- 500: '#5B6B7C',
- 600: '#4C5967',
- 700: '#364049',
- 800: '#131B20',
- 900: '#090E10',
+ 50: 'hsl(220, 60%, 99%)',
+ 100: 'hsl(220, 35%, 94%)',
+ 200: 'hsl(220, 35%, 88%)',
+ 300: 'hsl(220, 25%, 80%)',
+ 400: 'hsl(220, 20%, 65%)',
+ 500: 'hsl(220, 20%, 42%)',
+ 600: 'hsl(220, 25%, 35%)',
+ 700: 'hsl(220, 25%, 25%)',
+ 800: 'hsl(220, 25%, 10%)',
+ 900: 'hsl(220, 30%, 5%)',
};
export const green = {
- 50: '#F6FEF6',
- 100: '#E3FBE3',
- 200: '#C7F7C7',
- 300: '#A1E8A1',
- 400: '#51BC51',
- 500: '#1F7A1F',
- 600: '#136C13',
- 700: '#0A470A',
- 800: '#042F04',
- 900: '#021D02',
+ 50: 'hsl(120, 80%, 98%)',
+ 100: 'hsl(120, 75%, 94%)',
+ 200: 'hsl(120, 75%, 87%)',
+ 300: 'hsl(120, 61%, 77%)',
+ 400: 'hsl(120, 44%, 53%)',
+ 500: 'hsl(120, 59%, 30%)',
+ 600: 'hsl(120, 70%, 25%)',
+ 700: 'hsl(120, 75%, 16%)',
+ 800: 'hsl(120, 84%, 10%)',
+ 900: 'hsl(120, 87%, 6%)',
+};
+
+export const orange = {
+ 50: 'hsl(45, 100%, 97%)',
+ 100: 'hsl(45, 92%, 90%)',
+ 200: 'hsl(45, 94%, 80%)',
+ 300: 'hsl(45, 90%, 65%)',
+ 400: 'hsl(45, 90%, 40%)',
+ 500: 'hsl(45, 90%, 35%)',
+ 600: 'hsl(45, 91%, 25%)',
+ 700: 'hsl(45, 94%, 20%)',
+ 800: 'hsl(45, 95%, 16%)',
+ 900: 'hsl(45, 93%, 12%)',
};
export const red = {
- 50: '#FFF0F0',
- 100: '#FDCECE',
- 200: '#FC9C9C',
- 300: '#F65555',
- 400: '#C20A0A',
- 500: '#910808',
- 600: '#790606',
- 700: '#630303',
- 800: '#4F0202',
- 900: '#3B0202',
+ 50: 'hsl(0, 100%, 97%)',
+ 100: 'hsl(0, 92%, 90%)',
+ 200: 'hsl(0, 94%, 80%)',
+ 300: 'hsl(0, 90%, 65%)',
+ 400: 'hsl(0, 90%, 40%)',
+ 500: 'hsl(0, 90%, 30%)',
+ 600: 'hsl(0, 91%, 25%)',
+ 700: 'hsl(0, 94%, 20%)',
+ 800: 'hsl(0, 95%, 16%)',
+ 900: 'hsl(0, 93%, 12%)',
};
const getDesignTokens = (mode: PaletteMode) => ({
@@ -103,26 +105,25 @@ const getDesignTokens = (mode: PaletteMode) => ({
dark: brand[800],
}),
},
- secondary: {
- light: secondary[300],
- main: secondary[500],
- dark: secondary[800],
+ warning: {
+ light: orange[300],
+ main: orange[400],
+ dark: orange[800],
...(mode === 'dark' && {
- light: secondary[400],
- main: secondary[500],
- dark: secondary[900],
+ light: orange[400],
+ main: orange[500],
+ dark: orange[700],
}),
},
- warning: {
- main: '#F7B538',
- dark: '#F79F00',
- ...(mode === 'dark' && { main: '#F7B538', dark: '#F79F00' }),
- },
error: {
- light: red[50],
- main: red[500],
- dark: red[700],
- ...(mode === 'dark' && { light: '#D32F2F', main: '#D32F2F', dark: '#B22A2A' }),
+ light: red[300],
+ main: red[400],
+ dark: red[800],
+ ...(mode === 'dark' && {
+ light: red[400],
+ main: red[500],
+ dark: red[700],
+ }),
},
success: {
light: green[300],
@@ -135,27 +136,18 @@ const getDesignTokens = (mode: PaletteMode) => ({
}),
},
grey: {
- 50: gray[50],
- 100: gray[100],
- 200: gray[200],
- 300: gray[300],
- 400: gray[400],
- 500: gray[500],
- 600: gray[600],
- 700: gray[700],
- 800: gray[800],
- 900: gray[900],
+ ...gray,
},
divider: mode === 'dark' ? alpha(gray[600], 0.3) : alpha(gray[300], 0.5),
background: {
- default: '#fff',
- paper: gray[50],
- ...(mode === 'dark' && { default: gray[900], paper: gray[800] }),
+ default: 'hsl(0, 0%, 100%)',
+ paper: gray[100],
+ ...(mode === 'dark' && { default: 'hsl(220, 30%, 3%)', paper: gray[900] }),
},
text: {
primary: gray[800],
secondary: gray[600],
- ...(mode === 'dark' && { primary: '#fff', secondary: gray[400] }),
+ ...(mode === 'dark' && { primary: 'hsl(0, 0%, 100%)', secondary: gray[400] }),
},
action: {
selected: `${alpha(brand[200], 0.2)}`,
@@ -167,51 +159,54 @@ const getDesignTokens = (mode: PaletteMode) => ({
typography: {
fontFamily: ['"Inter", "sans-serif"'].join(','),
h1: {
- fontSize: 60,
+ fontSize: customTheme.typography.pxToRem(60),
fontWeight: 600,
- lineHeight: 78 / 70,
- letterSpacing: -0.2,
+ lineHeight: 1.2,
+ letterSpacing: -0.5,
},
h2: {
- fontSize: 48,
+ fontSize: customTheme.typography.pxToRem(48),
fontWeight: 600,
lineHeight: 1.2,
},
h3: {
- fontSize: 42,
+ fontSize: customTheme.typography.pxToRem(42),
lineHeight: 1.2,
},
h4: {
- fontSize: 36,
+ fontSize: customTheme.typography.pxToRem(36),
fontWeight: 500,
lineHeight: 1.5,
},
h5: {
- fontSize: 20,
+ fontSize: customTheme.typography.pxToRem(20),
fontWeight: 600,
},
h6: {
- fontSize: 18,
+ fontSize: customTheme.typography.pxToRem(18),
},
subtitle1: {
- fontSize: 18,
+ fontSize: customTheme.typography.pxToRem(18),
},
subtitle2: {
- fontSize: 16,
+ fontSize: customTheme.typography.pxToRem(16),
},
body1: {
+ fontSize: customTheme.typography.pxToRem(15),
fontWeight: 400,
- fontSize: 15,
},
body2: {
+ fontSize: customTheme.typography.pxToRem(14),
fontWeight: 400,
- fontSize: 14,
},
caption: {
+ fontSize: customTheme.typography.pxToRem(12),
fontWeight: 400,
- fontSize: 12,
},
},
+ shape: {
+ borderRadius: 12,
+ },
});
export default function getSignUpTheme(mode: PaletteMode): ThemeOptions {
@@ -226,9 +221,9 @@ export default function getSignUpTheme(mode: PaletteMode): ThemeOptions {
styleOverrides: {
root: {
boxSizing: 'border-box',
- transition: 'all 100ms ease-in',
+ transition: 'all 100ms ease',
'&:focus-visible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outline: `3px solid ${alpha(brand[400], 0.5)}`,
outlineOffset: '2px',
},
},
@@ -238,34 +233,45 @@ export default function getSignUpTheme(mode: PaletteMode): ThemeOptions {
styleOverrides: {
root: ({ theme, ownerState }) => ({
boxShadow: 'none',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
textTransform: 'none',
...(ownerState.size === 'small' && {
- maxHeight: '32px',
+ height: '2rem', // 32px
+ padding: '0 0.5rem',
}),
...(ownerState.size === 'medium' && {
- height: '40px',
+ height: '2.5rem', // 40px
}),
...(ownerState.variant === 'contained' &&
ownerState.color === 'primary' && {
- color: brand[50],
- background: brand[500],
- backgroundImage: `linear-gradient(to bottom, ${brand[400]}, ${brand[600]})`,
- boxShadow: `inset 0 1px ${alpha(brand[300], 0.5)}`,
+ color: 'white',
+ backgroundColor: brand[300],
+ backgroundImage: `linear-gradient(to bottom, ${alpha(brand[400], 0.8)}, ${brand[500]})`,
+ boxShadow: `inset 0 2px 0 ${alpha(brand[200], 0.2)}, inset 0 -2px 0 ${alpha(brand[700], 0.4)}`,
border: `1px solid ${brand[500]}`,
'&:hover': {
- background: brand[400],
- backgroundImage: 'none',
- boxShadow: `0 0 0 1px ${alpha(brand[300], 0.5)}`,
+ backgroundColor: brand[700],
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: brand[700],
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[700], 0.4)}`,
},
}),
...(ownerState.variant === 'outlined' && {
+ color: brand[700],
backgroundColor: alpha(brand[300], 0.1),
- borderColor: brand[300],
- color: brand[500],
+ borderColor: alpha(brand[200], 0.8),
+ boxShadow: `inset 0 2px ${alpha(brand[50], 0.5)}, inset 0 -2px ${alpha(brand[200], 0.2)}`,
'&:hover': {
+ backgroundColor: alpha(brand[300], 0.2),
+ borderColor: alpha(brand[300], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[400], 0.2)}`,
+ backgroundImage: 'none',
},
}),
...(ownerState.variant === 'outlined' &&
@@ -275,84 +281,174 @@ export default function getSignUpTheme(mode: PaletteMode): ThemeOptions {
color: gray[700],
'&:hover': {
backgroundColor: alpha(gray[300], 0.3),
- borderColor: gray[200],
+ borderColor: alpha(gray[300], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(gray[300], 0.4),
+ boxShadow: `inset 0 2.5px 0 ${alpha(gray[400], 0.2)}`,
+ backgroundImage: 'none',
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'primary' && {
+ color: brand[700],
+ '&:hover': {
+ backgroundColor: alpha(brand[300], 0.3),
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'info' && {
+ color: gray[700],
+ '&:hover': {
+ backgroundColor: alpha(gray[300], 0.3),
},
}),
- ...(ownerState.variant === 'text' && {
- color: brand[600],
- '&:hover': {
- backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
- },
- }),
...(theme.palette.mode === 'dark' && {
- ...(ownerState.variant === 'contained' &&
- ownerState.color === 'primary' && {
- border: `1px solid ${brand[600]}`,
- backgroundImage: `linear-gradient(to bottom, ${brand[500]}, ${brand[600]})`,
- backgroundColor: brand[500],
- '&:hover': {
- background: brand[600],
- backgroundImage: 'none',
- boxShadow: `0 0 0 1px ${alpha(brand[700], 0.5)}`,
- },
- }),
...(ownerState.variant === 'outlined' && {
+ color: brand[200],
backgroundColor: alpha(brand[600], 0.1),
- borderColor: brand[700],
- color: brand[300],
+ borderColor: alpha(brand[600], 0.6),
+ boxShadow: `inset 0 2.5px ${alpha(brand[400], 0.1)}, inset 0 -2px ${alpha(gray[900], 0.5)}`,
'&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
+ backgroundColor: alpha(brand[700], 0.2),
+ borderColor: alpha(brand[700], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(brand[800], 0.2),
+ boxShadow: `inset 0 2.5px 0 ${alpha(brand[900], 0.4)}`,
+ backgroundImage: 'none',
},
}),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'info' && {
+ color: gray[200],
+ '&:hover': {
+ backgroundColor: alpha(gray[700], 0.3),
+ },
+ }),
...(ownerState.variant === 'outlined' &&
ownerState.color === 'secondary' && {
+ color: gray[300],
backgroundColor: alpha(gray[600], 0.1),
borderColor: alpha(gray[700], 0.5),
- color: gray[300],
+ boxShadow: `inset 0 2.5px ${alpha(gray[600], 0.1)}, inset 0 -2px ${alpha(gray[900], 0.5)}`,
+ '&:hover': {
+ backgroundColor: alpha(gray[700], 0.2),
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: 'none',
+ },
+ '&:active': {
+ backgroundColor: alpha(gray[800], 0.2),
+ boxShadow: `inset 0 2.5px 0 ${alpha(gray[900], 0.4)}`,
+ backgroundImage: 'none',
+ },
+ }),
+ ...(ownerState.variant === 'text' &&
+ ownerState.color === 'primary' && {
+ color: brand[200],
'&:hover': {
- backgroundColor: alpha(gray[600], 0.3),
- borderColor: gray[700],
+ backgroundColor: alpha(brand[700], 0.3),
},
}),
- ...(ownerState.variant === 'text' && {
- color: brand[200],
- '&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
- },
- }),
}),
}),
},
},
- MuiIconButton: {
+ MuiCard: {
styleOverrides: {
root: ({ theme, ownerState }) => ({
- ...(ownerState.size === 'small' && {
- height: '32px',
- width: '32px',
+ transition: 'all 100ms ease',
+ backgroundColor: gray[50],
+ borderRadius: theme.shape.borderRadius,
+ border: `1px solid ${alpha(gray[200], 0.5)}`,
+ boxShadow: 'none',
+ ...(ownerState.variant === 'outlined' && {
+ border: `1px solid ${gray[200]}`,
+ boxShadow: 'none',
+ background: `linear-gradient(to bottom, hsl(0, 0%, 100%), ${gray[50]})`,
}),
- ...(ownerState.size === 'medium' && {
- height: '40px',
- width: '40px',
+ ...(theme.palette.mode === 'dark' && {
+ backgroundColor: alpha(gray[800], 0.6),
+ border: `1px solid ${alpha(gray[700], 0.3)}`,
+ ...(ownerState.variant === 'outlined' && {
+ border: `1px solid ${alpha(gray[700], 0.4)}`,
+ boxShadow: 'none',
+ background: `linear-gradient(to bottom, ${gray[900]}, ${alpha(
+ gray[800],
+ 0.5,
+ )})`,
+ }),
}),
- color: brand[600],
+ }),
+ },
+ },
+ MuiCheckbox: {
+ defaultProps: {
+ disableRipple: true,
+ icon: (
+
+ ),
+ checkedIcon: ,
+ },
+ styleOverrides: {
+ root: ({ theme }) => ({
+ margin: 10,
+ height: 16,
+ width: 16,
+ borderRadius: 5,
+ border: '1px solid ',
+ borderColor: alpha(gray[300], 0.8),
+ backgroundColor: alpha(gray[100], 0.4),
+ boxShadow: '0 0 0 1.5px hsla(210, 0%, 0%, 0.04) inset',
+ transition: 'border-color, background-color, 120ms ease-in',
'&:hover': {
- backgroundColor: alpha(brand[300], 0.3),
- borderColor: brand[200],
+ borderColor: gray[400],
+ },
+ '&.Mui-focusVisible': {
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '2px',
+ borderColor: brand[400],
+ },
+ '&.Mui-checked': {
+ color: 'white',
+ backgroundColor: brand[500],
+ borderColor: brand[500],
+ boxShadow: `none`,
+ '&:hover': {
+ backgroundColor: brand[600],
+ },
},
...(theme.palette.mode === 'dark' && {
- color: brand[200],
+ borderColor: alpha(gray[700], 0.5),
+ boxShadow: '0 0 0 1.5px hsl(210, 0%, 0%) inset',
+ backgroundColor: alpha(gray[900], 0.8),
'&:hover': {
- backgroundColor: alpha(brand[600], 0.3),
- borderColor: brand[700],
+ borderColor: brand[300],
+ },
+ '&.Mui-focusVisible': {
+ borderColor: brand[400],
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '2px',
},
}),
}),
},
},
+ MuiDialog: {
+ styleOverrides: {
+ root: ({ theme }) => ({
+ '& .MuiDialog-paper': {
+ borderRadius: '10px',
+ border: '1px solid',
+ borderColor: theme.palette.divider,
+ },
+ }),
+ },
+ },
MuiDivider: {
styleOverrides: {
root: ({ theme }) => ({
@@ -363,25 +459,80 @@ export default function getSignUpTheme(mode: PaletteMode): ThemeOptions {
}),
},
},
- MuiPaper: {
+ MuiFormLabel: {
styleOverrides: {
root: ({ theme }) => ({
- backgroundImage: 'none',
- backgroundColor: gray[100],
+ typography: theme.typography.caption,
+ marginBottom: 8,
+ }),
+ },
+ },
+ MuiIconButton: {
+ styleOverrides: {
+ root: ({ theme, ownerState }) => ({
+ ...(ownerState.size === 'small' && {
+ height: '2rem',
+ width: '2rem',
+ }),
+ ...(ownerState.size === 'medium' && {
+ height: '2.5rem',
+ width: '2.5rem',
+ }),
+ color: brand[500],
+ '&:hover': {
+ backgroundColor: alpha(brand[300], 0.3),
+ borderColor: brand[200],
+ },
...(theme.palette.mode === 'dark' && {
- backgroundColor: gray[800],
+ color: brand[200],
+ '&:hover': {
+ backgroundColor: alpha(brand[600], 0.3),
+ borderColor: brand[700],
+ },
}),
}),
},
},
- MuiDialog: {
+ MuiInputBase: {
+ styleOverrides: {
+ root: {
+ border: 'none',
+ },
+ },
+ },
+ MuiLink: {
+ defaultProps: {
+ underline: 'none',
+ },
styleOverrides: {
root: ({ theme }) => ({
- '& .MuiDialog-paper': {
- borderRadius: '10px',
- border: '1px solid',
- borderColor: theme.palette.divider,
+ color: brand[700],
+ fontWeight: 500,
+ position: 'relative',
+ textDecoration: 'none',
+ '&::before': {
+ content: '""',
+ position: 'absolute',
+ width: 0,
+ height: '1px',
+ bottom: 0,
+ left: 0,
+ backgroundColor: brand[200],
+ opacity: 0.7,
+ transition: 'width 0.3s ease, opacity 0.3s ease',
},
+ '&:hover::before': {
+ width: '100%',
+ opacity: 1,
+ },
+ '&:focus-visible': {
+ outline: `3px solid ${alpha(brand[500], 0.5)}`,
+ outlineOffset: '4px',
+ borderRadius: '2px',
+ },
+ ...(theme.palette.mode === 'dark' && {
+ color: brand[200],
+ }),
}),
},
},
@@ -393,7 +544,6 @@ export default function getSignUpTheme(mode: PaletteMode): ThemeOptions {
input: {
paddingLeft: 10,
},
-
root: ({ theme, ownerState }) => ({
'input:-webkit-autofill': {
WebkitBoxShadow: `0 0 0 1000px ${brand[100]} inset, 0 0 0 1px ${brand[200]}`,
@@ -401,6 +551,7 @@ export default function getSignUpTheme(mode: PaletteMode): ThemeOptions {
borderRadius: '8px',
},
'& .MuiInputBase-input': {
+ fontSize: '1rem',
'&::placeholder': {
opacity: 0.7,
color: gray[500],
@@ -409,10 +560,10 @@ export default function getSignUpTheme(mode: PaletteMode): ThemeOptions {
boxSizing: 'border-box',
flexGrow: 1,
height: '40px',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
border: '1px solid',
borderColor: alpha(gray[300], 0.8),
- boxShadow: '0 0 0 1.5px rgba(0, 0, 0, 0.04) inset',
+ boxShadow: '0 0 0 1.5px hsla(210, 0%, 0%, 0.02) inset',
transition: 'border-color 120ms ease-in',
backgroundColor: alpha(gray[100], 0.4),
'&:hover': {
@@ -437,13 +588,14 @@ export default function getSignUpTheme(mode: PaletteMode): ThemeOptions {
borderRadius: '8px',
},
'& .MuiInputBase-input': {
+ fontSize: '1rem',
'&::placeholder': {
opacity: 1,
color: gray[500],
},
},
borderColor: alpha(gray[700], 0.5),
- boxShadow: '0 0 0 1.5px rgb(0, 0, 0) inset',
+ boxShadow: '0 0 0 1.5px hsl(210, 0%, 0%) inset',
backgroundColor: alpha(gray[900], 0.8),
transition: 'border-color 120ms ease-in',
'&:hover': {
@@ -465,154 +617,29 @@ export default function getSignUpTheme(mode: PaletteMode): ThemeOptions {
}),
},
},
- MuiFormLabel: {
- styleOverrides: {
- root: ({ theme }) => ({
- typography: theme.typography.caption,
- marginBottom: 8,
- }),
- },
- },
- MuiInputBase: {
- styleOverrides: {
- root: {
- border: 'none',
- },
- },
- },
- MuiCard: {
- styleOverrides: {
- root: ({ theme, ownerState }) => ({
- backgroundColor: gray[50],
- borderRadius: 10,
- outline: `1px solid ${alpha(gray[200], 0.8)}`,
- boxShadow: 'none',
- ...(ownerState.variant === 'outlined' && {
- border: 0,
- boxSizing: 'border-box',
- background: `linear-gradient(to bottom, #FFF, ${gray[50]})`,
- }),
- ...(theme.palette.mode === 'dark' && {
- backgroundColor: alpha(gray[800], 0.6),
- outline: `1px solid ${alpha(gray[700], 0.5)}`,
- ...(ownerState.variant === 'outlined' && {
- boxSizing: 'border-box',
- background: `linear-gradient(to bottom, ${gray[900]}, ${alpha(
- gray[800],
- 0.5,
- )})`,
- }),
- }),
- }),
+ MuiPaper: {
+ defaultProps: {
+ elevation: 0,
},
},
- MuiLink: {
+ MuiStack: {
defaultProps: {
- underline: 'none',
- },
- styleOverrides: {
- root: ({ theme }) => ({
- color: brand[600],
- fontWeight: 500,
- position: 'relative',
- textDecoration: 'none',
- '&::before': {
- content: '""',
- position: 'absolute',
- width: 0,
- height: '1px',
- bottom: 0,
- left: 0,
- backgroundColor: brand[200],
- opacity: 0.7,
- transition: 'width 0.3s ease, opacity 0.3s ease',
- },
- '&:hover::before': {
- width: '100%',
- opacity: 1,
- },
- '&:focus-visible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '4px',
- borderRadius: '2px',
- },
- ...(theme.palette.mode === 'dark' && {
- color: brand[200],
- }),
- }),
+ useFlexGap: true,
},
},
MuiToggleButtonGroup: {
styleOverrides: {
root: ({ theme }) => ({
- borderRadius: '10px',
- boxShadow: `0 4px 16px ${alpha(gray[400], 0.2)}`,
+ borderRadius: theme.shape.borderRadius,
+ boxShadow: `0 1px 2px hsla(210, 0%, 0%, 0.05), 0 2px 12px ${alpha(brand[200], 0.5)}`,
'& .Mui-selected': {
color: brand[500],
},
...(theme.palette.mode === 'dark' && {
'& .Mui-selected': {
- color: '#fff',
- },
- boxShadow: `0 4px 16px ${alpha(brand[700], 0.5)}`,
- }),
- }),
- },
- },
- MuiCheckbox: {
- defaultProps: {
- disableRipple: true,
- icon: ,
- checkedIcon: ,
- },
- styleOverrides: {
- root: ({ theme }) => ({
- margin: 10,
- height: 16,
- width: 16,
- borderRadius: 5,
- border: '1px solid ',
- borderColor: alpha(gray[300], 0.8),
- boxShadow: '0 0 0 1.5px rgba(0, 0, 0, 0.04) inset',
- transition: 'border-color 120ms ease-in',
- backgroundColor: alpha(gray[100], 0.4),
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-focusVisible': {
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '2px',
- borderColor: brand[400],
- },
- '&.Mui-checked': {
- color: 'white',
- backgroundColor: brand[500],
- '&:hover': {
- borderColor: brand[300],
- backgroundColor: brand[600],
- },
- },
- ...(theme.palette.mode === 'dark' && {
- borderColor: alpha(gray[700], 0.5),
- boxShadow: '0 0 0 1.5px rgb(0, 0, 0) inset',
- backgroundColor: alpha(gray[900], 0.8),
- '&:hover': {
- borderColor: brand[300],
- },
- '&.Mui-checked': {
- color: 'white',
- backgroundColor: brand[600],
- boxShadow: '0 0 0 1px rgba(0, 0, 0, 0.2) inset',
- '&:hover': {
- borderColor: brand[300],
- backgroundColor: brand[800],
- },
- },
- '&.Mui-focusVisible': {
- borderColor: brand[400],
- outline: `3px solid ${alpha(brand[500], 0.5)}`,
- outlineOffset: '2px',
+ color: 'hsl(0, 0%, 100%)',
},
+ boxShadow: `0 0 0 1px hsla(210, 0%, 0%, 0.5), 0 2px 12px ${alpha(brand[700], 0.5)}`,
}),
}),
},
@@ -622,21 +649,15 @@ export default function getSignUpTheme(mode: PaletteMode): ThemeOptions {
root: ({ theme }) => ({
padding: '12px 16px',
textTransform: 'none',
- borderRadius: '10px',
+ borderRadius: theme.shape.borderRadius,
fontWeight: 500,
...(theme.palette.mode === 'dark' && {
color: gray[400],
- boxShadow: '0 4px 16px rgba(0, 0, 0, 0.5)',
'&.Mui-selected': { color: brand[300] },
}),
}),
},
},
- MuiStack: {
- defaultProps: {
- useFlexGap: true,
- },
- },
},
};
}
diff --git a/docs/data/material/guides/minimizing-bundle-size/minimizing-bundle-size.md b/docs/data/material/guides/minimizing-bundle-size/minimizing-bundle-size.md
index cb2301cd5b3387..c38c47545c3c00 100644
--- a/docs/data/material/guides/minimizing-bundle-size/minimizing-bundle-size.md
+++ b/docs/data/material/guides/minimizing-bundle-size/minimizing-bundle-size.md
@@ -214,10 +214,7 @@ It will perform the following diffs:
The packages published on npm are **transpiled** with [Babel](https://github.com/babel/babel), optimized for performance with the [supported platforms](/material-ui/getting-started/supported-platforms/).
-Custom bundles are also available:
-
-- [Modern bundle](#modern-bundle)
-- [Legacy bundle](#legacy-bundle)
+A [modern bundle](#modern-bundle) is also available.
### How to use custom bundles?
@@ -264,9 +261,3 @@ A great way to use these bundles is to configure bundler aliases, for example wi
The modern bundle can be found under the [`/modern` folder](https://unpkg.com/@mui/material/modern/).
It targets the latest released versions of evergreen browsers (Chrome, Firefox, Safari, Edge).
This can be used to make separate bundles targeting different browsers.
-
-### Legacy bundle
-
-If you need to support IE 11 you cannot use the default or modern bundle without transpilation.
-However, you can use the legacy bundle found under the [`/legacy` folder](https://unpkg.com/@mui/material/legacy/).
-You don't need any additional polyfills.
diff --git a/docs/data/material/integrations/nextjs/nextjs.md b/docs/data/material/integrations/nextjs/nextjs.md
index 880c30fe523c97..5829d5d971a20c 100644
--- a/docs/data/material/integrations/nextjs/nextjs.md
+++ b/docs/data/material/integrations/nextjs/nextjs.md
@@ -369,10 +369,9 @@ To learn more about theming, check out the [Theming guide](/material-ui/customiz
If you want to use [CSS theme variables](/material-ui/experimental-api/css-theme-variables/overview/), use the `extendTheme` and `CssVarsProvider` instead:
-````diff title="pages/_app.tsx"
+```diff title="pages/_app.tsx"
-import { ThemeProvider, createTheme } from '@mui/material/styles';
+import { CssVarsProvider, extendTheme } from '@mui/material/styles';
```
Learn more about [the advantages of CSS theme variables](/material-ui/experimental-api/css-theme-variables/overview/#advantages).
-````
diff --git a/docs/data/material/migration/migrating-from-deprecated-apis/migrating-from-deprecated-apis.md b/docs/data/material/migration/migrating-from-deprecated-apis/migrating-from-deprecated-apis.md
index 0d3b149465b83c..122b9fe800b153 100644
--- a/docs/data/material/migration/migrating-from-deprecated-apis/migrating-from-deprecated-apis.md
+++ b/docs/data/material/migration/migrating-from-deprecated-apis/migrating-from-deprecated-apis.md
@@ -169,9 +169,9 @@ Here's how to migrate:
```
```diff
- import { alertClasses } from '@mui/material/PaginationItem';
+ import { alertClasses } from '@mui/material/Alert';
- MuiPaginationItem: {
+ MuiAlert: {
styleOverrides: {
root: {
- [`&.${alertClasses.standardSuccess}`]: {
@@ -954,6 +954,46 @@ The Slider's `componentsProps` was deprecated in favor of `slotProps`:
/>
```
+## ToggleButtonGroup
+
+Use the [codemod](https://github.com/mui/material-ui/tree/HEAD/packages/mui-codemod#toggle-button-group-classes) below to migrate the code as described in the following sections:
+
+```bash
+npx @mui/codemod@latest deprecations/toggle-button-group-classes
+```
+
+### Composed CSS classes
+
+The CSS classes composing the `orientation` prop value and `grouped` CSS class have been removed.
+
+Here's how to migrate:
+
+```diff
+-.MuiToggleButtonGroup-root .MuiToggleButtonGroup-groupedHorizontal
++.MuiToggleButtonGroup-root.MuiToggleButtonGroup-horizontal > .MuiToggleButtonGroup-grouped
+-.MuiToggleButtonGroup-root .MuiToggleButtonGroup-groupedVertical
++.MuiToggleButtonGroup-root.MuiToggleButtonGroup-vertical > .MuiToggleButtonGroup-grouped
+```
+
+```diff
+
+ import { toggleButtonGroupClasses } from '@mui/material/ToggleButtonGroup';
+
+ MuiButtonGroup: {
+ styleOverrides: {
+ root: {
+- [`& .${toggleButtonGroupClasses.groupedHorizontal}`]: {
++ [`&.${toggleButtonGroupClasses.horizontal} > .${toggleButtonGroupClasses.grouped}`]: {
+ color: 'red',
+ },
+- [`& .${toggleButtonGroupClasses.groupedVertical}`]: {
++ [`&.${toggleButtonGroupClasses.vertical} > .${toggleButtonGroupClasses.grouped}`]: {
+ color: 'red',
+ },
+ },
+ },
+```
+
## StepLabel
Use the [codemod](https://github.com/mui/material-ui/tree/HEAD/packages/mui-codemod#step-label-props) below to migrate the code as described in the following sections:
@@ -972,3 +1012,65 @@ The StepLabel's `componentsProps` was deprecated in favor of `slotProps`:
+ slotProps={{ label: labelProps }}
/>
```
+
+### StepIconComponent
+
+The StepLabel's `StepIconComponent` was deprecated in favor of `slots.stepIcon`:
+
+```diff
+
+```
+
+### StepIconProps
+
+The StepLabel's `StepIconProps` was deprecated in favor of `slotProps.stepIcon`:
+
+```diff
+
+```
+
+## StepConnector
+
+Use the [codemod](https://github.com/mui/material-ui/tree/HEAD/packages/mui-codemod#step-connector-classes) below to migrate the code as described in the following sections:
+
+```bash
+npx @mui/codemod@next deprecations/step-connector-classes
+```
+
+### Composed CSS classes
+
+The CSS classes that composed the `line` CSS class and `orientation` prop values were removed.
+
+Here's how to migrate:
+
+```diff
+- .MuiStepConnector-lineHorizontal
++.MuiStepConnector-horizontal > .MuiStepConnector-line
+- .MuiStepConnector-lineVertical
++.MuiStepConnector-vertical > .MuiStepConnector-line
+```
+
+```diff
+ import { stepConnectorClasses } from '@mui/material/StepConnector';
+
+ MuiStepConnector: {
+ styleOverrides: {
+ root: {
+- [`& .${stepConnectorClasses.lineHorizontal}`]: {
++ [`&.${stepConnectorClasses.horizontal} > .${stepConnectorClasses.line}`]: {
+ color: 'red',
+ },
+- [`& .${stepConnectorClasses.lineVertical}`]: {
++ [`&.${stepConnectorClasses.vertical} > .${stepConnectorClasses.line}`]: {
+ color: 'red',
+ },
+ },
+ },
+ },
+```
diff --git a/docs/data/material/migration/migration-v4/migration-v4.md b/docs/data/material/migration/migration-v4/migration-v4.md
index 6feaca110bff0c..b50114c2570c31 100644
--- a/docs/data/material/migration/migration-v4/migration-v4.md
+++ b/docs/data/material/migration/migration-v4/migration-v4.md
@@ -67,7 +67,7 @@ The default bundle supports the following minimum versions:
- and more (see [.browserslistrc (`stable` entry)](https://github.com/mui/material-ui/blob/v5.0.0/.browserslistrc#L11))
Material UI no longer supports IE 11.
-If you need to support IE 11, check out our [legacy bundle](/material-ui/guides/minimizing-bundle-size/#legacy-bundle).
+If you need to support IE 11, check out the [legacy bundle](https://v5.mui.com/material-ui/guides/minimizing-bundle-size/#legacy-bundle).
## Update React & TypeScript version
diff --git a/docs/data/material/migration/migration-v4/v5-component-changes.md b/docs/data/material/migration/migration-v4/v5-component-changes.md
index 33267341076f13..d039032f159bb7 100644
--- a/docs/data/material/migration/migration-v4/v5-component-changes.md
+++ b/docs/data/material/migration/migration-v4/v5-component-changes.md
@@ -796,7 +796,7 @@ Rename the `GridList` components to `ImageList` to align with the current Materi
### Use CSS object-fit
-Use CSS `object-fit`. For IE11 support either use a polyfill such as
+Use CSS `object-fit`. For IE 11 support either use a polyfill such as
[this npm package](https://www.npmjs.com/package/object-fit-images), or else continue to use the v4 component.
```diff
diff --git a/docs/data/material/pages.ts b/docs/data/material/pages.ts
index ee15159b9f27f6..42e4311a4f3b4d 100644
--- a/docs/data/material/pages.ts
+++ b/docs/data/material/pages.ts
@@ -327,6 +327,21 @@ const pages: MuiPage[] = [
{ pathname: '/material-ui/discover-more/changelog' },
],
},
+ {
+ pathname: '/material-ui/design-resources',
+ title: 'Design resources',
+ children: [
+ {
+ pathname: '/material-ui/design-resources/material-ui-for-figma',
+ title: 'Material UI for Figma',
+ },
+ {
+ pathname: '/material-ui/design-resources/connect',
+ title: 'Connect plugin',
+ beta: true,
+ },
+ ],
+ },
{
pathname: 'https://mui.com/store/?utm_source=docs&utm_medium=referral&utm_campaign=sidenav',
title: 'Template store',
diff --git a/docs/lib/sourcing.ts b/docs/lib/sourcing.ts
index 7ade883964584f..7f4dd30bfbbe43 100644
--- a/docs/lib/sourcing.ts
+++ b/docs/lib/sourcing.ts
@@ -44,6 +44,7 @@ const ALLOWED_TAGS = [
'MUI X',
'MUI System',
'Toolpad',
+ 'Connect',
];
export const getAllBlogPosts = () => {
diff --git a/docs/mui-vale.zip b/docs/mui-vale.zip
index 86fdbcc3f12bf0..e54c1641f071fc 100644
Binary files a/docs/mui-vale.zip and b/docs/mui-vale.zip differ
diff --git a/docs/mui-vale/styles/MUI/CorrectReferenceAllCases.yml b/docs/mui-vale/styles/MUI/CorrectReferenceAllCases.yml
index f8c94a1279bf21..0f9ecb4aab39cb 100644
--- a/docs/mui-vale/styles/MUI/CorrectReferenceAllCases.yml
+++ b/docs/mui-vale/styles/MUI/CorrectReferenceAllCases.yml
@@ -25,7 +25,8 @@ swap:
Treemap Chart: Treemap
sub-component: subcomponent
sub-components: subcomponents
- use-case: 'use case'
- usecase: 'use case'
- client side: 'client-side'
- server side: 'server-side'
+ use-case: use case
+ usecase: use case
+ client side: client-side
+ server side: server-side
+ Material 3: Material Design 3
diff --git a/docs/next.config.mjs b/docs/next.config.mjs
index 825504dbeb620f..f439a7f5a26a72 100644
--- a/docs/next.config.mjs
+++ b/docs/next.config.mjs
@@ -256,7 +256,7 @@ export default withDocsInfra({
return map;
},
- // Used to signal we run yarn build
+ // Used to signal we run pnpm build
...(process.env.NODE_ENV === 'production'
? {
output: 'export',
diff --git a/docs/package.json b/docs/package.json
index f4a8062b2b5549..315a51a02a861e 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -19,17 +19,17 @@
"link-check": "node ./scripts/reportBrokenLinks.js"
},
"dependencies": {
- "@babel/core": "^7.23.9",
- "@babel/plugin-transform-object-assign": "^7.23.3",
- "@babel/runtime": "^7.23.9",
- "@babel/runtime-corejs2": "^7.23.9",
+ "@babel/core": "^7.24.4",
+ "@babel/plugin-transform-object-assign": "^7.24.1",
+ "@babel/runtime": "^7.24.4",
+ "@babel/runtime-corejs2": "^7.24.4",
"@docsearch/react": "^3.6.0",
"@emotion/cache": "^11.11.0",
"@emotion/react": "^11.11.4",
"@emotion/server": "^11.11.0",
- "@emotion/styled": "^11.11.0",
- "@fortawesome/fontawesome-svg-core": "^6.5.1",
- "@fortawesome/free-solid-svg-icons": "^6.5.1",
+ "@emotion/styled": "^11.11.5",
+ "@fortawesome/fontawesome-svg-core": "^6.5.2",
+ "@fortawesome/free-solid-svg-icons": "^6.5.2",
"@fortawesome/react-fontawesome": "^0.2.0",
"@mui/base": "workspace:*",
"@mui/docs": "workspace:^",
@@ -45,12 +45,12 @@
"@mui/types": "workspace:^",
"@mui/utils": "workspace:^",
"@mui/x-charts": "6.19.8",
- "@mui/x-data-grid": "7.0.0",
- "@mui/x-data-grid-generator": "7.0.0",
- "@mui/x-data-grid-premium": "7.0.0",
- "@mui/x-data-grid-pro": "7.0.0",
- "@mui/x-date-pickers": "6.19.8",
- "@mui/x-date-pickers-pro": "6.19.8",
+ "@mui/x-data-grid": "7.2.0",
+ "@mui/x-data-grid-generator": "7.2.0",
+ "@mui/x-data-grid-premium": "7.2.0",
+ "@mui/x-data-grid-pro": "7.2.0",
+ "@mui/x-date-pickers": "6.19.9",
+ "@mui/x-date-pickers-pro": "6.19.9",
"@mui/x-license-pro": "6.10.2",
"@mui/x-tree-view": "6.17.0",
"@popperjs/core": "^2.11.8",
@@ -80,8 +80,8 @@
"jss-rtl": "^0.3.0",
"lodash": "^4.17.21",
"lz-string": "^1.5.0",
- "markdown-to-jsx": "^7.4.5",
- "material-ui-popup-state": "^5.0.10",
+ "markdown-to-jsx": "^7.4.7",
+ "material-ui-popup-state": "^5.1.0",
"next": "^13.5.1",
"notistack": "3.0.1",
"nprogress": "^0.2.0",
@@ -92,37 +92,37 @@
"react-dom": "^18.2.0",
"react-draggable": "^4.4.6",
"react-final-form": "^6.5.9",
- "react-imask": "^7.5.0",
- "react-intersection-observer": "^9.8.1",
+ "react-imask": "^7.6.0",
+ "react-intersection-observer": "^9.8.2",
"react-is": "^18.2.0",
- "react-number-format": "^5.3.3",
- "react-router-dom": "^6.21.3",
+ "react-number-format": "^5.3.4",
+ "react-router-dom": "^6.22.3",
"react-runner": "^1.0.3",
"react-simple-code-editor": "^0.13.1",
"react-spring": "^9.7.3",
"react-swipeable-views": "^0.14.0",
"react-swipeable-views-utils": "^0.14.0",
"react-transition-group": "^4.4.5",
- "react-virtuoso": "^4.7.2",
+ "react-virtuoso": "^4.7.8",
"react-window": "^1.8.10",
"rimraf": "^5.0.5",
"styled-components": "^6.1.8",
"stylis": "4.2.0",
"stylis-plugin-rtl": "^2.1.1",
"use-count-up": "^3.0.1",
- "webpack-bundle-analyzer": "^4.10.1"
+ "webpack-bundle-analyzer": "^4.10.2"
},
"devDependencies": {
- "@babel/plugin-transform-react-constant-elements": "^7.23.3",
- "@babel/preset-typescript": "^7.23.3",
+ "@babel/plugin-transform-react-constant-elements": "^7.24.1",
+ "@babel/preset-typescript": "^7.24.1",
"@mui/internal-docs-utils": "workspace:^",
"@mui/internal-scripts": "workspace:^",
"@mui-internal/test-utils": "workspace:^",
"@types/autosuggest-highlight": "^3.2.3",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/css-mediaquery": "^0.1.4",
"@types/json2mq": "^0.2.2",
- "@types/node": "^18.19.25",
+ "@types/node": "^18.19.31",
"@types/prop-types": "^15.7.12",
"@types/react": "^18.2.55",
"@types/react-dom": "^18.2.19",
@@ -135,9 +135,9 @@
"cross-fetch": "^4.0.0",
"gm": "^1.25.0",
"marked": "^5.1.2",
- "playwright": "^1.42.1",
+ "playwright": "^1.43.1",
"prettier": "^3.2.5",
- "tailwindcss": "^3.4.1",
+ "tailwindcss": "^3.4.3",
"yargs": "^17.7.2"
}
}
diff --git a/docs/pages/_app.js b/docs/pages/_app.js
index 7931cb56f13147..70dc207b752e66 100644
--- a/docs/pages/_app.js
+++ b/docs/pages/_app.js
@@ -347,7 +347,7 @@ MyApp.propTypes = {
MyApp.getInitialProps = async ({ ctx, Component }) => {
let pageProps = {};
- const req = require.context('docs/translations', false, /translations.*\.json$/);
+ const req = require.context('docs/translations', false, /\.\/translations.*\.json$/);
const translations = mapTranslations(req);
if (Component.getInitialProps) {
diff --git a/docs/pages/base-ui.tsx b/docs/pages/base-ui.tsx
index fd4b84b8965375..91f8644f6512c9 100644
--- a/docs/pages/base-ui.tsx
+++ b/docs/pages/base-ui.tsx
@@ -16,7 +16,7 @@ export default function BaseUI() {
return (
diff --git a/docs/pages/blog.tsx b/docs/pages/blog.tsx
index 544fcd02b06a42..fc98fa100f8f9a 100644
--- a/docs/pages/blog.tsx
+++ b/docs/pages/blog.tsx
@@ -1,7 +1,6 @@
import * as React from 'react';
import { InferGetStaticPropsType } from 'next';
import { useRouter } from 'next/router';
-import { alpha } from '@mui/material/styles';
import Avatar from '@mui/material/Avatar';
import AvatarGroup from '@mui/material/AvatarGroup';
import Box from '@mui/material/Box';
@@ -64,19 +63,12 @@ function PostPreview(props: BlogPost) {
/>
))}
-
+
)}
{props.date && (
-
+
{new Date(props.date).toDateString()}
)}
@@ -164,6 +156,7 @@ function PostPreview(props: BlogPost) {
href={`/blog/${props.slug}`}
id={`describe-${props.slug}`}
endIcon={ }
+ size="small"
sx={{ mt: { xs: 0.5, md: 0 }, p: { xs: 0, sm: '6px 8px' } }}
>
Read more
@@ -173,7 +166,7 @@ function PostPreview(props: BlogPost) {
);
}
-const PAGE_SIZE = 5;
+const PAGE_SIZE = 7;
export default function Blog(props: InferGetStaticPropsType) {
const router = useRouter();
@@ -236,6 +229,7 @@ export default function Blog(props: InferGetStaticPropsType
}
/>
+
+
+
- theme.applyDarkStyles({
- boxShadow: '0px 4px 12px rgba(0, 0, 0, 0.4)',
- }),
- ]}
+ sx={(theme) => ({
+ p: 2,
+ display: 'flex',
+ flexDirection: 'column',
+ backgroundImage: (theme.vars || theme).palette.gradients.radioSubtle,
+ boxShadow: '0 4px 12px rgba(170, 180, 190, 0.2)',
+ ...theme.applyDarkStyles({
+ background: (theme.vars || theme).palette.primaryDark[900],
+ backgroundImage: (theme.vars || theme).palette.gradients.radioSubtle,
+ boxShadow: '0 4px 12px rgba(0, 0, 0, 0.4)',
+ }),
+ })}
>
{post.image && (
))}
-
-
+
Posts{' '}
@@ -342,94 +330,105 @@ export default function Blog(props: InferGetStaticPropsType
({
+ sx={{
position: 'sticky',
- top: 100,
- alignSelf: 'start',
- mb: 2,
- mt: { xs: 3, sm: 2, md: 9 }, // margin-top makes the title appear when scroll into view
- p: 2,
- borderRadius: 1,
- border: '1px solid',
- borderColor: (theme.vars || theme).palette.divider,
- boxShadow: '0px 2px 6px rgba(170, 180, 190, 0.2)',
- ...theme.applyDarkStyles({
- background: alpha(theme.palette.primaryDark[700], 0.2),
- boxShadow: '0px 2px 6px rgba(0, 0, 0, 0.2)',
- }),
- })}
+ top: 90,
+ mt: { xs: 0, md: 9 },
+ mb: { xs: 2, md: 0 },
+ display: 'flex',
+ flexDirection: 'column',
+ gap: 2,
+ '& .MuiPaper-root': {
+ p: 2,
+ bgcolor: 'transparent',
+ borderColor: 'divider',
+ },
+ }}
>
-
- Filter by tag
-
-
- {Object.keys(tagInfo).map((tag) => {
- const selected = !!selectedTags[tag];
- return (
- {
- postListRef.current?.scrollIntoView();
- removeTag(tag);
- },
- }
- : {
- label: tag,
- onClick: () => {
- postListRef.current?.scrollIntoView();
- router.push(
- {
- query: {
- ...router.query,
- tags: tag,
+
+
+ Filter posts by tag
+
+
+ {Object.keys(tagInfo).map((tag) => {
+ const selected = !!selectedTags[tag];
+ return (
+ {
+ postListRef.current?.scrollIntoView();
+ removeTag(tag);
+ },
+ }
+ : {
+ label: tag,
+ onClick: () => {
+ postListRef.current?.scrollIntoView();
+ router.push(
+ {
+ query: {
+ ...router.query,
+ tags: tag,
+ },
},
- },
- undefined,
- { shallow: true },
- );
- },
- })}
- size="small"
- sx={{
- py: 1.2,
- }}
- />
- );
- })}
-
-
-
- Want to hear more from us?
-
-
- Get up to date with everything MUI-related through our social media:
-
- svg': { mr: 1 } }}>
-
-
- GitHub
-
-
- X
-
-
-
- Discord
-
-
-
- LinkedIn
-
-
-
- Youtube
-
-
+ undefined,
+ { shallow: true },
+ );
+ },
+ })}
+ size="small"
+ sx={{
+ py: 1.2,
+ }}
+ />
+ );
+ })}
+
+
+
+
+ Want to hear more from us?
+
+
+ Get up to date with everything MUI-related through our social media:
+
+ svg': { mr: 1 } }}>
+
+
+ GitHub
+
+
+ X
+
+
+
+ Discord
+
+
+
+ LinkedIn
+
+
+
+ Youtube
+
+
+
diff --git a/docs/pages/blog/2019-developer-survey-results.md b/docs/pages/blog/2019-developer-survey-results.md
index 392206d8f8c1d9..98e98cdb6c3bbe 100644
--- a/docs/pages/blog/2019-developer-survey-results.md
+++ b/docs/pages/blog/2019-developer-survey-results.md
@@ -4,7 +4,7 @@ description: Your feedback helps us to build better products. Here's what we lea
date: 2019-03-16T00:00:00.000Z
authors: ['oliviertassinari', 'mbrookes']
tags: ['Developer Survey']
-card: true
+manualCard: true
---
While we are currently working on the upcoming release of Material UI v4, we need to prioritize our
diff --git a/docs/pages/blog/2019.md b/docs/pages/blog/2019.md
index a528508030a330..200cf9280ef1ca 100644
--- a/docs/pages/blog/2019.md
+++ b/docs/pages/blog/2019.md
@@ -4,7 +4,7 @@ date: 2020-01-25T00:00:00.000Z
description: 2019 was a great year for Material UI. It puts us on an exciting path to solve even greater challenges in the coming years!
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
2019 was a great year for Material UI.
diff --git a/docs/pages/blog/2020-developer-survey-results.md b/docs/pages/blog/2020-developer-survey-results.md
index 9c89e737c62c3c..42f611ecce9484 100644
--- a/docs/pages/blog/2020-developer-survey-results.md
+++ b/docs/pages/blog/2020-developer-survey-results.md
@@ -4,7 +4,7 @@ description: Your feedback helps us to build better products. Here's what we lea
date: 2020-06-27T00:00:00.000Z
authors: ['mnajdova', 'oliviertassinari', 'mbrookes']
tags: ['Developer Survey']
-card: true
+manualCard: true
---
Continuing the tradition from last year, we launched a Developer Survey a few months ago, to which we received 1488 responses. This is twice as many as last year (734), so we thank you all for your participation!
diff --git a/docs/pages/blog/2020-introducing-sketch.md b/docs/pages/blog/2020-introducing-sketch.md
index 731b1ee9549a67..783370d31d57b6 100644
--- a/docs/pages/blog/2020-introducing-sketch.md
+++ b/docs/pages/blog/2020-introducing-sketch.md
@@ -4,7 +4,7 @@ description: Today, we're excited to announce the introduction of official Sketc
date: 2020-03-30T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Material UI', 'Product']
-card: true
+manualCard: true
---
Today, we're excited to introduce the Sketch symbols 💎 for Material UI.
diff --git a/docs/pages/blog/2020-q1-update.md b/docs/pages/blog/2020-q1-update.md
index ca6e353e94c685..74974a32703f13 100644
--- a/docs/pages/blog/2020-q1-update.md
+++ b/docs/pages/blog/2020-q1-update.md
@@ -4,7 +4,7 @@ description: An update on our mission for Q1 2020.
date: 2020-04-14T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
Welcome to the new format of our mission update. We are moving from monthly to quarterly updates.
diff --git a/docs/pages/blog/2020-q2-update.md b/docs/pages/blog/2020-q2-update.md
index 09fc6ee3dc1b4c..6d34a639194694 100644
--- a/docs/pages/blog/2020-q2-update.md
+++ b/docs/pages/blog/2020-q2-update.md
@@ -4,7 +4,7 @@ description: An update on our mission for Q2 2020.
date: 2020-07-17T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
This update covers our progress over the last three months, and what we aim to achieve in the coming months.
diff --git a/docs/pages/blog/2020-q3-update.md b/docs/pages/blog/2020-q3-update.md
index 54e67b4bcb6b8b..f819f177ff06dc 100644
--- a/docs/pages/blog/2020-q3-update.md
+++ b/docs/pages/blog/2020-q3-update.md
@@ -4,7 +4,7 @@ description: An update on our mission for Q3 2020.
date: 2020-10-14T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
This update covers our progress over the last three months, and what we aim to achieve in the coming months.
diff --git a/docs/pages/blog/2020.md b/docs/pages/blog/2020.md
index 97e953f791cd04..811f44cac98d53 100644
--- a/docs/pages/blog/2020.md
+++ b/docs/pages/blog/2020.md
@@ -4,7 +4,7 @@ description: 2020 has been another great year, not only for MUI, but also for th
date: 2020-12-31T00:00:00.000Z
authors: ['oliviertassinari', 'mbrookes']
tags: ['Company']
-card: true
+manualCard: true
---
2020 has been another great year, not only for MUI, but also for the ecosystem.
@@ -85,7 +85,7 @@ We will release the next major iteration of the library. A highlight of the key
- Breaking changes on the API to make it more intuitive.
- Add full support for React strict mode. We recommend to enable it.
- Improve the performance of MUI System by a x3-x5 [factor](https://github.com/mui/material-ui/issues/21657#issuecomment-707140999).
-- Reduce bundle size: split IE11 into a different bundle [-6kB](https://github.com/mui/material-ui/pull/22814#issuecomment-700995216), migrate to Emotion [-5kB](https://github.com/mui/material-ui/pull/23308#issuecomment-718748835), Popper.js v2 upgrade [-700B](https://github.com/mui/material-ui/pull/21761#issuecomment-657135498).
+- Reduce bundle size: split IE 11 into a different bundle [-6kB](https://github.com/mui/material-ui/pull/22814#issuecomment-700995216), migrate to Emotion [-5kB](https://github.com/mui/material-ui/pull/23308#issuecomment-718748835), Popper.js v2 upgrade [-700B](https://github.com/mui/material-ui/pull/21761#issuecomment-657135498).
- Improve the documentation website: search shortcut, page rating, fast material icons copy button, etc.
And [much more](https://github.com/mui/material-ui/issues/20012).
diff --git a/docs/pages/blog/2021-developer-survey-results.md b/docs/pages/blog/2021-developer-survey-results.md
index e6b3eba54ff130..93bb07ccb79477 100644
--- a/docs/pages/blog/2021-developer-survey-results.md
+++ b/docs/pages/blog/2021-developer-survey-results.md
@@ -4,7 +4,7 @@ description: Your feedback helps us to build better products. Here's what we lea
date: 2022-03-15T00:00:00.000Z
authors: ['danilo-leal', 'samuelsycamore', 'oliviertassinari']
tags: ['Developer Survey']
-card: true
+manualCard: true
---
Keeping up with tradition, a few months ago we opened the 2021 MUI Developer Survey.
diff --git a/docs/pages/blog/2021-q1-update.md b/docs/pages/blog/2021-q1-update.md
index 2c7bf644eed777..6c430546ecb0a2 100644
--- a/docs/pages/blog/2021-q1-update.md
+++ b/docs/pages/blog/2021-q1-update.md
@@ -4,7 +4,7 @@ description: An update on our mission for Q1 2021.
date: 2021-04-12T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
This update covers our progress over the last three months, and what we aim to achieve in the months ahead.
diff --git a/docs/pages/blog/2021-q2-update.md b/docs/pages/blog/2021-q2-update.md
index a7650185843a22..952eb8e27cbafd 100644
--- a/docs/pages/blog/2021-q2-update.md
+++ b/docs/pages/blog/2021-q2-update.md
@@ -4,7 +4,7 @@ description: An update on our mission for Q2 2021.
date: 2021-07-12T00:00:00.000Z
authors: ['oliviertassinari', 'mbrookes']
tags: ['Company']
-card: true
+manualCard: true
---
This update covers our progress over the last three months.
@@ -217,7 +217,7 @@ We have the following objectives:
- ⚛️ Support [React 18](https://legacy.reactjs.org/blog/2021/06/08/the-plan-for-react-18.html). [Sebastian](https://github.com/eps1lon) is part of the React [Working Group](https://github.com/reactwg/react-18/discussions), focusing on making us ready ahead of time.
We want our most demanding users to feel empowered by Material UI, not slowed down by a third-party library.
- 🦴 Migrate more components to `@mui/base`. [Michał](https://github.com/michaldudak) has recently added support for the [Switch](https://mui.com/base-ui/react-switch/).
- You can follow our progress in the [umbrella issue](https://github.com/mui/material-ui/issues/27170).
+ You can follow our progress in the [umbrella issue](https://github.com/mui/base-ui/issues/10).
- 🌈 Do a proof of concept on supporting a second design system.
Some of our users (and potential users) dislike Material Design. We will try to make the second design system one that they love!
- 🗓 Execute on all of the items in the [public roadmap](https://github.com/orgs/mui/projects/23/views/12).
diff --git a/docs/pages/blog/2021-q3-update.md b/docs/pages/blog/2021-q3-update.md
index dbb57c07d4ea15..6bb1b6a477d07c 100644
--- a/docs/pages/blog/2021-q3-update.md
+++ b/docs/pages/blog/2021-q3-update.md
@@ -4,7 +4,7 @@ description: An update on our mission for Q3 2021.
date: 2021-10-26T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
This update covers our progress over the last three months.
@@ -195,7 +195,7 @@ We'll do our best, no guarantee!
We need to make the most of this feedback to solve regressions, improve the documentation for the new APIs, adjust the tradeoffs we took in the light of more information, and more.
[15%](https://npm-stat.com/charts.html?package=%40material-ui%2Fcore&package=%40mui%2Fmaterial&from=2020-10-25&to=2021-10-15) of the community has migrated, so far.
- 🦴 Migrate more components to `@mui/base`. [Michał](https://github.com/michaldudak) has recently added support for the [Button](https://mui.com/base-ui/react-button/).
- You can follow our progress in the [umbrella issue](https://github.com/mui/material-ui/issues/27170).
+ You can follow our progress in the [umbrella issue](https://github.com/mui/base-ui/issues/10).
- 🎨 We are [exploring](https://github.com/mui/material-ui/discussions/29024) the introduction of CSS variables.
Since v5, Material UI is no longer actively supporting IE 11. Dropping this browser requirement unlocks new capabilities of the web platform.
- 🌈 Resume work on the second design system.
diff --git a/docs/pages/blog/2021.md b/docs/pages/blog/2021.md
index 61d81f432e1b7b..48b56ce6e1d06b 100644
--- a/docs/pages/blog/2021.md
+++ b/docs/pages/blog/2021.md
@@ -4,7 +4,7 @@ description: 2021 has been another great year, not only for MUI but also for the
date: 2021-12-31T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
@@ -123,7 +123,7 @@ To continue improving the customization experience, we will double down on the v
These components and hooks contain the main functionalities and accessibility, without being opinionated about how styles are applied or what styles.
We still have work to do to have a full set of unstyled components.
-You can read more about them in [the docs](/base-ui/getting-started/) and keep track of our progress in [#27170](https://github.com/mui/material-ui/issues/27170).
+You can read more about them in [the docs](/base-ui/getting-started/) and keep track of our progress in [#27170](https://github.com/mui/base-ui/issues/10).
Our high-level plan is to use the unstyled components and hooks as the basis of the Material Design components and our second design system.
diff --git a/docs/pages/blog/2022-tenerife-retreat.md b/docs/pages/blog/2022-tenerife-retreat.md
index b111d056ac85e3..1402e4240838c4 100644
--- a/docs/pages/blog/2022-tenerife-retreat.md
+++ b/docs/pages/blog/2022-tenerife-retreat.md
@@ -4,7 +4,7 @@ description: Our internationally distributed startup gathered on a remote island
date: 2022-07-28T00:00:00.000Z
authors: ['samuelsycamore']
tags: ['Company']
-card: true
+manualCard: true
---
One of the toughest challenges to overcome as a fully remote team is fostering a supportive and inclusive company culture.
diff --git a/docs/pages/blog/2023-chamonix-retreat.md b/docs/pages/blog/2023-chamonix-retreat.md
index 19b8559a739580..d6bccc7e15406f 100644
--- a/docs/pages/blog/2023-chamonix-retreat.md
+++ b/docs/pages/blog/2023-chamonix-retreat.md
@@ -4,7 +4,7 @@ description: The MUI team spent five days in the French Alps team-building, prob
date: 2023-03-16T00:00:00.000Z
authors: ['mikailaread']
tags: ['Company']
-card: true
+manualCard: true
---
## Why the Chamonix gathering?
diff --git a/docs/pages/blog/2023-material-ui-v6-and-beyond.md b/docs/pages/blog/2023-material-ui-v6-and-beyond.md
index 24bebf7f41ee2f..aee8654af71152 100644
--- a/docs/pages/blog/2023-material-ui-v6-and-beyond.md
+++ b/docs/pages/blog/2023-material-ui-v6-and-beyond.md
@@ -3,7 +3,7 @@ title: The road to Material UI v6 and beyond
description: We're tightening up the Material UI release schedule and shipping two major versions in 2024. Here's what to expect.
date: 2023-12-23T00:00:00.000Z
authors: ['mnajdova']
-card: true
+manualCard: true
tags: ['Material UI', 'Product']
---
diff --git a/docs/pages/blog/2023-mui-values.md b/docs/pages/blog/2023-mui-values.md
index 79668d65b69148..27e3dd49b1d642 100644
--- a/docs/pages/blog/2023-mui-values.md
+++ b/docs/pages/blog/2023-mui-values.md
@@ -4,7 +4,7 @@ description: After significant growth, we united as a team to rediscover the val
date: 2023-09-26T00:00:00.000Z
authors: ['mikailaread']
tags: ['Company']
-card: true
+manualCard: true
---
## Why we chose to revise our core values
diff --git a/docs/pages/blog/2023-phuket-retreat.md b/docs/pages/blog/2023-phuket-retreat.md
index 2b9b1d338e2446..35bf504c9ba842 100644
--- a/docs/pages/blog/2023-phuket-retreat.md
+++ b/docs/pages/blog/2023-phuket-retreat.md
@@ -4,7 +4,7 @@ description: The latest team retreat left MUIers feeling more connected and invi
date: 2023-12-13T00:00:00.000Z
authors: ['mikailaread']
tags: ['Company']
-card: true
+manualCard: true
---
## What is MUI's Together Week?
diff --git a/docs/pages/blog/2023-toolpad-beta-announcement.md b/docs/pages/blog/2023-toolpad-beta-announcement.md
index 318dfe94bfe1e9..ae5e5305477224 100644
--- a/docs/pages/blog/2023-toolpad-beta-announcement.md
+++ b/docs/pages/blog/2023-toolpad-beta-announcement.md
@@ -3,7 +3,7 @@ title: Introducing Toolpad: MUI's low-code admin builder
description: Assemble admin panels and internal tools faster than ever before with Toolpad—now in beta.
date: 2023-07-24T00:00:00.000Z
authors: ['prakhargupta']
-card: true
+manualCard: true
tags: ['Product', 'Toolpad']
---
diff --git a/docs/pages/blog/aggregation-functions.md b/docs/pages/blog/aggregation-functions.md
index 68ddfb0d169974..58254350d5292a 100644
--- a/docs/pages/blog/aggregation-functions.md
+++ b/docs/pages/blog/aggregation-functions.md
@@ -4,7 +4,7 @@ description: Aggregation functions and summary rows are now available in the MUI
date: 2022-08-01T00:00:00.000Z
authors: ['josefreitas', 'flaviendelangle', 'cherniavskii']
tags: ['MUI X', 'Product']
-card: true
+manualCard: true
---
If you've ever worked with a data-heavy grid, then you understand how important it is for the end user to be able to set different perspectives on the data to gather the information they're looking for.
diff --git a/docs/pages/blog/april-2019-update.md b/docs/pages/blog/april-2019-update.md
index 4b6a76792a9db7..c4a81e258dba49 100644
--- a/docs/pages/blog/april-2019-update.md
+++ b/docs/pages/blog/april-2019-update.md
@@ -4,7 +4,7 @@ description: Here are the most significant improvements in April.
date: 2019-05-07T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
Here are the most significant improvements in April:
diff --git a/docs/pages/blog/august-2019-update.md b/docs/pages/blog/august-2019-update.md
index 5bde138036b660..77fa9cbb761278 100644
--- a/docs/pages/blog/august-2019-update.md
+++ b/docs/pages/blog/august-2019-update.md
@@ -4,7 +4,7 @@ description: Here are the most significant improvements in August.
date: 2019-09-07T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
Here are the most significant improvements in August:
diff --git a/docs/pages/blog/base-ui-2024-plans.md b/docs/pages/blog/base-ui-2024-plans.md
index 12d33c4406a1b6..8298409dbe85f2 100644
--- a/docs/pages/blog/base-ui-2024-plans.md
+++ b/docs/pages/blog/base-ui-2024-plans.md
@@ -4,7 +4,7 @@ description: The unstyled component library will get a stable release, lots of n
date: 2024-02-13T00:00:00.000Z
authors: ['danilo-leal', 'michaldudak', 'colmtuite', 'oliviertassinari']
tags: ['Base UI', 'Product']
-card: true
+manualCard: true
---
The [story of Base UI](/blog/introducing-base-ui/) began several years ago—long before headless React component libraries skyrocketed in popularity—when we started to imagine a world in which Material UI could exist without Material Design.
diff --git a/docs/pages/blog/benny-joo-joining.md b/docs/pages/blog/benny-joo-joining.md
index 4fac8d9b5f4338..bcecb2de2b043e 100644
--- a/docs/pages/blog/benny-joo-joining.md
+++ b/docs/pages/blog/benny-joo-joining.md
@@ -4,7 +4,7 @@ description: We are excited to share that Benny Joo has joined MUI. He has start
date: 2021-11-16T00:00:00.000Z
authors: ['mnajdova']
tags: ['Company']
-card: true
+manualCard: true
---
We are excited to share that [Benny Joo](https://github.com/hbjORbj) has joined MUI.
diff --git a/docs/pages/blog/bringing-consistency-to-material-ui-customization-apis.md b/docs/pages/blog/bringing-consistency-to-material-ui-customization-apis.md
index dc43c0bb98c9aa..c3f1b7330f0cee 100644
--- a/docs/pages/blog/bringing-consistency-to-material-ui-customization-apis.md
+++ b/docs/pages/blog/bringing-consistency-to-material-ui-customization-apis.md
@@ -4,7 +4,7 @@ description: We're standardizing two key areas of the Material UI customization
date: 2024-03-18T10:00:00.000Z
authors: ['diegoandai']
tags: ['Material UI', 'Product']
-card: true
+manualCard: true
---
The Material UI team is working on two initiatives to standardize the Material UI API: The first applies to overriding inner elements, and the second applies to component CSS classes.
diff --git a/docs/pages/blog/build-layouts-faster-with-grid-v2.md b/docs/pages/blog/build-layouts-faster-with-grid-v2.md
index b40ad11e25f25f..b2b6a5834b37ce 100644
--- a/docs/pages/blog/build-layouts-faster-with-grid-v2.md
+++ b/docs/pages/blog/build-layouts-faster-with-grid-v2.md
@@ -4,7 +4,7 @@ description: The new Grid v2 features simplified logic, support for offsetting a
date: 2022-08-20T00:00:00.000Z
authors: ['siriwatknp']
tags: ['Material UI', 'Guide']
-card: true
+manualCard: true
---
You can now use the new `Grid` component, shipped with [Material UI v5.9.0](https://github.com/mui/material-ui/releases/tag/v5.9.0), for updated features and a better developer experience when building layouts.
diff --git a/docs/pages/blog/callback-support-in-style-overrides.md b/docs/pages/blog/callback-support-in-style-overrides.md
index 77325f31e9dfbc..42019929c4721f 100644
--- a/docs/pages/blog/callback-support-in-style-overrides.md
+++ b/docs/pages/blog/callback-support-in-style-overrides.md
@@ -4,7 +4,7 @@ description: We're excited to introduce callback support for global theme overri
date: 2022-01-31T00:00:00.000Z
authors: ['siriwatknp']
tags: ['Material UI', 'Product']
-card: true
+manualCard: true
---
[ Material UI v5.3.0](https://github.com/mui/material-ui/releases/tag/v5.3.0) introduces the ability to write a callback in style overrides (global theming), giving you full control of component customization at the theme level.
diff --git a/docs/pages/blog/danail-hadjiatanasov-joining.md b/docs/pages/blog/danail-hadjiatanasov-joining.md
index 5f0904549b960e..b39eeb6a65ce42 100644
--- a/docs/pages/blog/danail-hadjiatanasov-joining.md
+++ b/docs/pages/blog/danail-hadjiatanasov-joining.md
@@ -4,7 +4,7 @@ description: We are excited to share that Danail Hadjiatanasov has joined MUI as
date: 2020-10-23T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
We are excited to share that [Danail Hadjiatanasov](https://twitter.com/danail_h) has joined MUI as part of the enterprise team. This was his first full-time week.
diff --git a/docs/pages/blog/danilo-leal-joining.md b/docs/pages/blog/danilo-leal-joining.md
index e18707c8f16947..55e6c3032a036c 100644
--- a/docs/pages/blog/danilo-leal-joining.md
+++ b/docs/pages/blog/danilo-leal-joining.md
@@ -4,7 +4,7 @@ description: We are excited to share that Danilo Leal has joined MUI.
date: 2021-07-15T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
We are excited to share that [Danilo Leal](https://daniloleal.co/) has joined MUI!
diff --git a/docs/pages/blog/date-pickers-stable-v5.md b/docs/pages/blog/date-pickers-stable-v5.md
index 306637c250c28c..61b15bc7f59f2f 100644
--- a/docs/pages/blog/date-pickers-stable-v5.md
+++ b/docs/pages/blog/date-pickers-stable-v5.md
@@ -4,7 +4,7 @@ description: Migrate to the latest version for improved DX, customizability, and
date: 2022-09-19T00:00:00.000Z
authors: ['alexfauquette', 'josefreitas']
tags: ['MUI X', 'Product']
-card: true
+manualCard: true
---
About four months ago, we moved the date and time pickers from `@mui/lab` and released the first alpha version of the date pickers package.
diff --git a/docs/pages/blog/december-2019-update.md b/docs/pages/blog/december-2019-update.md
index 28cb4694f2c35d..e747320df73cf6 100644
--- a/docs/pages/blog/december-2019-update.md
+++ b/docs/pages/blog/december-2019-update.md
@@ -4,7 +4,7 @@ description: Here are the most significant improvements in December.
date: 2020-01-07T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
Here are the most significant improvements in December:
diff --git a/docs/pages/blog/discord-announcement.md b/docs/pages/blog/discord-announcement.md
index 4a58bb279a84c7..fc0cd949e5a01f 100644
--- a/docs/pages/blog/discord-announcement.md
+++ b/docs/pages/blog/discord-announcement.md
@@ -4,7 +4,7 @@ description: Come join our community to engage in lively discussions, share your
date: 2023-08-02T00:00:00.000Z
authors: ['richbustos']
tags: ['Company']
-card: true
+manualCard: true
---
diff --git a/docs/pages/blog/docs-restructure-2022.md b/docs/pages/blog/docs-restructure-2022.md
index 6fe7e34853094e..1ea829b42c889f 100644
--- a/docs/pages/blog/docs-restructure-2022.md
+++ b/docs/pages/blog/docs-restructure-2022.md
@@ -4,7 +4,7 @@ description: Each of MUI's products now has its own dedicated documentation, mak
date: 2022-04-06T00:00:00.000Z
authors: ['danilo-leal']
tags: ['Product']
-card: true
+manualCard: true
---
As MUI continues to grow beyond our flagship product, Material UI (we [rebranded the company](/blog/material-ui-is-now-mui/) last year as a first step), it has become clear that the documentation for our products can no longer all live under one roof.
diff --git a/docs/pages/blog/first-look-at-joy.md b/docs/pages/blog/first-look-at-joy.md
index e8f541cfff3b40..56a77bd1dc57d3 100644
--- a/docs/pages/blog/first-look-at-joy.md
+++ b/docs/pages/blog/first-look-at-joy.md
@@ -4,7 +4,7 @@ description: A sneak peek at MUI's new starting point for your design system.
date: 2022-06-08T00:00:00.000Z
authors: ['danilo-leal', 'siriwatknp']
tags: ['Joy UI', 'Product']
-card: true
+manualCard: true
---
diff --git a/docs/pages/blog/introducing-base-ui.md b/docs/pages/blog/introducing-base-ui.md
index 54af0f0943df7a..4846ce5df26df8 100644
--- a/docs/pages/blog/introducing-base-ui.md
+++ b/docs/pages/blog/introducing-base-ui.md
@@ -4,7 +4,7 @@ description: The Base UI component library gives you complete control over the
date: 2022-09-07T00:00:00.000Z
authors: ['michaldudak', 'samuelsycamore']
tags: ['Base UI', 'Product']
-card: true
+manualCard: true
---
@@ -33,7 +33,7 @@ Also, many of the improvements to Material UI proposed by the community over th
While they were created for different use cases, these two libraries share many common features and design patterns, and are intended to be complementary to one another within the MUI ecosystem.
Base UI's API will be familiar to you if you've used Material UI before, making it easy to migrate a project—or just a part of it—from one library to the other if needed.
-We aim to create [unstyled versions of all Material UI components](https://github.com/mui/material-ui/issues/27170) (that make sense to do so).
+We aim to create [unstyled versions of all Material UI components](https://github.com/mui/base-ui/issues/10) (that make sense to do so).
## Components and hooks
@@ -86,7 +86,7 @@ function MySwitch(props: UseSwitchParameters) {
The initial version of the library contains 17 components.
Check out the [Base UI documentation](/base-ui/getting-started/) for details.
-You can track our progress in adding new components—and comment to influence our priorities—in [this dedicated GitHub issue](https://github.com/mui/material-ui/issues/27170).
+You can track our progress in adding new components—and comment to influence our priorities—in [this dedicated GitHub issue](https://github.com/mui/base-ui/issues/10).
The `@mui/base` package is released as an alpha.
This means the component APIs are subject to change—especially as we receive feedback from the community about room for improvement.
diff --git a/docs/pages/blog/introducing-connect.js b/docs/pages/blog/introducing-connect.js
new file mode 100644
index 00000000000000..100b8643fa753f
--- /dev/null
+++ b/docs/pages/blog/introducing-connect.js
@@ -0,0 +1,7 @@
+import * as React from 'react';
+import TopLayoutBlog from 'docs/src/modules/components/TopLayoutBlog';
+import { docs } from './introducing-connect.md?muiMarkdown';
+
+export default function Page() {
+ return
;
+}
diff --git a/docs/pages/blog/introducing-connect.md b/docs/pages/blog/introducing-connect.md
new file mode 100644
index 00000000000000..7b87e783d34727
--- /dev/null
+++ b/docs/pages/blog/introducing-connect.md
@@ -0,0 +1,68 @@
+---
+title: 'Introducing Connect: a Figma plugin that exports Material UI code'
+description: Connect is a Figma plugin that lets you generate a theme from the Material UI for Figma Design Kit.
+date: 2024-04-16T00:00:00.000Z
+authors: ['danilo-leal', 'DavidCnoops']
+tags: ['Connect', 'Material UI', 'Product']
+manualCard: true
+---
+
+Over the last few years we've seen designers increasingly seeking out ways to participate more directly and collaborate more effectively in the development process.
+The [Material UI Design Kit for Figma](/store/items/figma-react/) was our first attempt to meet those needs by providing designers with one-to-one mockups of Material UI components for implementing custom design systems.
+But it doesn't go far enough on its own to bridge the gap between design and code—the developer still need to write the designer's custom styles from scratch.
+
+That got us thinking:
+What if designers could generate production-ready code directly from their design software to hand off to developers working with a Material UI codebase?
+
+That's why we created Connect, a Figma plugin for generating styles that can be copied and pasted straight into your Material UI app's theme.
+We're happy to share that the beta version is [available now on Figma](https://www.figma.com/community/plugin/1336346114713490235/connect). 🚀
+
+
+
+Let's take a look at some of its key features:
+
+## Theme customization
+
+Figma's local variables significantly matured the use of design tokens, making it possible to mirror Material UI more closely.
+Connect relies on these local variables to generate code corresponding to each element and state.
+(As such, it requires [v5.16.0 or later](https://github.com/mui/mui-design-kits/releases/tag/v5.16.0) of the Material UI Design Kit; earlier versions do not support local variables.)
+
+
+
+
+
+Visit the documentation to learn [how to insert the generated code into your theme file](/material-ui/design-resources/connect/#using-the-generated-theme).
+
+## Component customization
+
+You can fully customize a component's appearance across multiple states in the Design Kit and then generate the corresponding theme code.
+This is one of the most exciting features because it enables designers to use the visual design tools they're already comfortable with to make changes to the code itself.
+
+
+
+
+
+:::warning
+While in beta, not all components are supported yet.
+We'll expand component coverage progressively in the coming months.
+For now you can experiment with the Button, Switch, and Typography.
+:::
+
+## Quick Storybook preview
+
+The Connect plugin also bakes in an embedded Storybook preview panel so that you can conveniently play around with your changes and see how they interact with other props and states available in the component API.
+
+
+
+
+
+## Try Connect now
+
+Get the beta version of Connect now, available for free in the [Figma Community](https://www.figma.com/community/plugin/1336346114713490235/connect)!
+
+There's still a lot to do, and we're looking forward to hearing from all of you [who requested this plugin years ago](https://github.com/mui/mui-design-kits/issues/10).
+
+- Check out further documentation for [the Connect plugin](/material-ui/design-resources/connect/) and [the Material UI Design Kit](/material-ui/design-resources/material-ui-for-figma/).
+- If you've got any feedback, we'd love to [hear from you](https://mui-connect.canny.io/feedback).
+
+Happy designing! 👨🎨
diff --git a/docs/pages/blog/introducing-the-row-grouping-feature.md b/docs/pages/blog/introducing-the-row-grouping-feature.md
index 817909ca6361e9..f4a7aae089a900 100644
--- a/docs/pages/blog/introducing-the-row-grouping-feature.md
+++ b/docs/pages/blog/introducing-the-row-grouping-feature.md
@@ -4,7 +4,7 @@ description: The new row grouping feature gives your users more customization op
date: 2022-01-20T00:00:00.000Z
authors: ['alexfauquette']
tags: ['MUI X', 'Product']
-card: true
+manualCard: true
---
After an incredible year fully focused on improving our Data Grid component, we are moving forward by launching the first feature of our new Premium plan: [row grouping](/x/react-data-grid/row-grouping/), released in [v5.3.0](https://github.com/mui/mui-x/releases/tag/v5.3.0).
diff --git a/docs/pages/blog/july-2019-update.md b/docs/pages/blog/july-2019-update.md
index 26f0470b57f311..9ee2ae7e852852 100644
--- a/docs/pages/blog/july-2019-update.md
+++ b/docs/pages/blog/july-2019-update.md
@@ -4,7 +4,7 @@ description: Here are the most significant improvements in July.
date: 2019-08-04T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
Here are the most significant improvements in July:
diff --git a/docs/pages/blog/june-2019-update.md b/docs/pages/blog/june-2019-update.md
index 92e81c2dbdaabe..5781f76514ce57 100644
--- a/docs/pages/blog/june-2019-update.md
+++ b/docs/pages/blog/june-2019-update.md
@@ -4,7 +4,7 @@ description: Here are the most significant improvements in June.
date: 2019-07-08T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
Here are the most significant improvements in June:
diff --git a/docs/pages/blog/lab-date-pickers-to-mui-x.md b/docs/pages/blog/lab-date-pickers-to-mui-x.md
index 9d7ddc8dfacb24..e8ab79741f5006 100644
--- a/docs/pages/blog/lab-date-pickers-to-mui-x.md
+++ b/docs/pages/blog/lab-date-pickers-to-mui-x.md
@@ -4,7 +4,7 @@ description: Migrate to the new package to start building with our powerful Date
date: 2022-04-03T00:00:00.000Z
authors: ['flaviendelangle']
tags: ['MUI X', 'Product']
-card: true
+manualCard: true
---
After more than 18 months in the lab, the Date and Time Picker components have found a new home as part of MUI X.
diff --git a/docs/pages/blog/lab-tree-view-to-mui-x.md b/docs/pages/blog/lab-tree-view-to-mui-x.md
index 7a35a33f599044..cb876949ef5087 100644
--- a/docs/pages/blog/lab-tree-view-to-mui-x.md
+++ b/docs/pages/blog/lab-tree-view-to-mui-x.md
@@ -4,7 +4,7 @@ description: Migrate to the new package to start building with our powerful Tree
date: 2023-08-21T00:00:00.000Z
authors: ['flaviendelangle']
tags: ['MUI X', 'Product']
-card: true
+manualCard: true
---
After more than 4 years in the lab, the [Tree View](https://mui.com/x/react-tree-view/) components have found a new home as part of MUI X.
diff --git a/docs/pages/blog/making-customizable-components.md b/docs/pages/blog/making-customizable-components.md
index 071e08af31bf0c..fb170deb030d07 100644
--- a/docs/pages/blog/making-customizable-components.md
+++ b/docs/pages/blog/making-customizable-components.md
@@ -4,7 +4,7 @@ description: Explore the tradeoffs between different customization techniques, a
date: 2022-08-22T00:00:00.000Z
authors: ['alexfauquette']
tags: ['MUI X', 'Material UI', 'Guide']
-card: true
+manualCard: true
---
Material UI's components are used by hundreds of thousands of developers worldwide, encompassing the full range of implementation from minor side projects to massive company websites.
diff --git a/docs/pages/blog/march-2019-update.md b/docs/pages/blog/march-2019-update.md
index 743c1d67f13d0f..1ea42cd92ed75e 100644
--- a/docs/pages/blog/march-2019-update.md
+++ b/docs/pages/blog/march-2019-update.md
@@ -4,7 +4,7 @@ description: Here are the most significant improvements in March.
date: 2019-04-05T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
Here are the most significant improvements in March:
diff --git a/docs/pages/blog/marija-najdova-joining.md b/docs/pages/blog/marija-najdova-joining.md
index 344a665e26b27e..003b0880ef8b59 100644
--- a/docs/pages/blog/marija-najdova-joining.md
+++ b/docs/pages/blog/marija-najdova-joining.md
@@ -4,7 +4,7 @@ description: We are excited to share that Marija Najdova has joined MUI. She has
date: 2020-09-15T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
We are excited to share that [Marija Najdova](https://twitter.com/marijanajdova) has joined MUI. She has started this week full-time, and is now part of the community team.
diff --git a/docs/pages/blog/material-ui-is-now-mui.md b/docs/pages/blog/material-ui-is-now-mui.md
index b956024eae46cd..926d85ea2a8fb2 100644
--- a/docs/pages/blog/material-ui-is-now-mui.md
+++ b/docs/pages/blog/material-ui-is-now-mui.md
@@ -4,7 +4,7 @@ description: Starting today, we are evolving our brand identity. We are clarifyi
date: 2021-09-16T00:00:00.000Z
authors: ['oliviertassinari', 'danilo-leal', 'mbrookes']
tags: ['Material UI']
-card: true
+manualCard: true
---
diff --git a/docs/pages/blog/material-ui-v1-is-out.md b/docs/pages/blog/material-ui-v1-is-out.md
index d88daf681f8ec3..29f0325a218ac9 100644
--- a/docs/pages/blog/material-ui-v1-is-out.md
+++ b/docs/pages/blog/material-ui-v1-is-out.md
@@ -4,7 +4,7 @@ description: It has taken us two years to do it, but Material UI v1 has finally
date: 2018-05-18T00:00:00.000Z
authors: ['oliviertassinari', 'mbrookes']
tags: ['Material UI', 'Product']
-card: true
+manualCard: true
---
> React components that implement Google's Material Design.
diff --git a/docs/pages/blog/material-ui-v4-is-out.md b/docs/pages/blog/material-ui-v4-is-out.md
index dfefd5a27ec56a..1dc63490f2f542 100644
--- a/docs/pages/blog/material-ui-v4-is-out.md
+++ b/docs/pages/blog/material-ui-v4-is-out.md
@@ -4,7 +4,7 @@ description: Material UI v4 has finally arrived. We are so excited about this r
date: 2019-05-23T00:00:00.000Z
authors: ['oliviertassinari', 'mbrookes', 'eps1lon']
tags: ['Material UI', 'Product']
-card: true
+manualCard: true
---
> React components for faster and simpler web development. Build your own design system, or start with Material Design.
diff --git a/docs/pages/blog/matheus-wichman-joining.md b/docs/pages/blog/matheus-wichman-joining.md
index 17ac52ad24e52b..8d9579d01873f0 100644
--- a/docs/pages/blog/matheus-wichman-joining.md
+++ b/docs/pages/blog/matheus-wichman-joining.md
@@ -4,7 +4,7 @@ description: We are excited to share that Matheus Wichman has joined MUI.
date: 2021-04-05T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
We are excited to share that [Matheus Wichman](https://github.com/m4theushw) has joined MUI.
diff --git a/docs/pages/blog/may-2019-update.md b/docs/pages/blog/may-2019-update.md
index f8cf8fa3e259a1..9707d0f28b783d 100644
--- a/docs/pages/blog/may-2019-update.md
+++ b/docs/pages/blog/may-2019-update.md
@@ -4,7 +4,7 @@ description: Here are the most significant improvements in May.
date: 2019-06-08T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
Here are the most significant improvements in May:
diff --git a/docs/pages/blog/michal-dudak-joining.md b/docs/pages/blog/michal-dudak-joining.md
index fe4c351bd27a09..4186fbcfc08548 100644
--- a/docs/pages/blog/michal-dudak-joining.md
+++ b/docs/pages/blog/michal-dudak-joining.md
@@ -4,7 +4,7 @@ description: We are excited to share that Michał Dudak has joined MUI.
date: 2021-06-14T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
We are excited to share that [Michał Dudak](https://twitter.com/michaldudak) has joined MUI!
diff --git a/docs/pages/blog/mui-core-v5-migration-update.md b/docs/pages/blog/mui-core-v5-migration-update.md
index 04a9be054133ad..f050089780ec73 100644
--- a/docs/pages/blog/mui-core-v5-migration-update.md
+++ b/docs/pages/blog/mui-core-v5-migration-update.md
@@ -3,7 +3,7 @@ title: Why you should migrate to Material UI v5 today
description: We have completely revamped our Migration guide to reduce friction when upgrading to v5. Get started now!
date: 2022-06-20T00:00:00.000Z
authors: ['samuelsycamore']
-card: true
+manualCard: true
tags: ['Material UI']
---
diff --git a/docs/pages/blog/mui-core-v5.md b/docs/pages/blog/mui-core-v5.md
index 3692acffd9c502..688cf79b04aadd 100644
--- a/docs/pages/blog/mui-core-v5.md
+++ b/docs/pages/blog/mui-core-v5.md
@@ -12,7 +12,7 @@ authors:
'danilo-leal',
'mbrookes',
]
-card: true
+manualCard: true
tags: ['Product', 'Material UI']
---
@@ -377,7 +377,7 @@ const CustomButton = React.forwardRef(function CustomButton(
CodeSandbox
We discuss the effort in [#6218](https://github.com/mui/material-ui/issues/6218).
-You can use [#27170](https://github.com/mui/material-ui/issues/27170) to follow our progress.
+You can use [#27170](https://github.com/mui/base-ui/issues/10) to follow our progress.
## Improved DX
@@ -725,7 +725,7 @@ To continue improving the customization experience, we are doubling down on the
These components and hooks contain the main functionalities and accessibility, without being opinionated about how styles are applied nor what styles.
We still have work to do to have a full set of unstyled components.
-You can read more about them in [the docs](/base-ui/getting-started/) and keep track of our progress in [#27170](https://github.com/mui/material-ui/issues/27170).
+You can read more about them in [the docs](/base-ui/getting-started/) and keep track of our progress in [#27170](https://github.com/mui/base-ui/issues/10).
Our high-level plan is to use the unstyled components and hooks as the basis of the Material components and second design system.
We are aiming to complete this work with the next major release (v6).
diff --git a/docs/pages/blog/mui-next-js-app-router.md b/docs/pages/blog/mui-next-js-app-router.md
index 344fc0faa7b52c..2c00e3dc372be3 100644
--- a/docs/pages/blog/mui-next-js-app-router.md
+++ b/docs/pages/blog/mui-next-js-app-router.md
@@ -3,7 +3,7 @@ title: MUI Core libraries support the Next.js App Router
description: Material UI, Base UI, and Joy UI are now compatible with the App Router as Client Components. Get started using the latest Next.js features with MUI!
date: 2023-07-18T00:00:00.000Z
authors: ['samuelsycamore']
-card: true
+manualCard: true
tags: ['Product']
---
diff --git a/docs/pages/blog/mui-product-comparison.md b/docs/pages/blog/mui-product-comparison.md
index 5268b3104d6e57..dfb8c4b542f939 100644
--- a/docs/pages/blog/mui-product-comparison.md
+++ b/docs/pages/blog/mui-product-comparison.md
@@ -3,7 +3,7 @@ title: An introduction to the MUI ecosystem
description: MUI is more than just Material UI. Consider Joy UI, Base UI, MUI X, and Toolpad for your next project.
date: 2022-11-01T00:00:00.000Z
authors: ['samuelsycamore']
-card: true
+manualCard: true
tags: ['Product']
---
diff --git a/docs/pages/blog/mui-x-end-v6-features.md b/docs/pages/blog/mui-x-end-v6-features.md
index 19dd6b95f107bc..e350c4af838be7 100644
--- a/docs/pages/blog/mui-x-end-v6-features.md
+++ b/docs/pages/blog/mui-x-end-v6-features.md
@@ -3,7 +3,7 @@ title: MUI X v6.18.0 and the latest features before the next major
description: New components, polished features, better performance and more.
date: 2023-11-13T00:00:00.000Z
authors: ['josefreitas']
-card: true
+manualCard: true
tags: ['MUI X', 'Product']
---
diff --git a/docs/pages/blog/mui-x-mid-v6-features.md b/docs/pages/blog/mui-x-mid-v6-features.md
index 64c7da76591a52..8348b66c7e2baa 100644
--- a/docs/pages/blog/mui-x-mid-v6-features.md
+++ b/docs/pages/blog/mui-x-mid-v6-features.md
@@ -3,7 +3,7 @@ title: MUI X v6.11.0. A roundup of all new features
description: Support for time zones, Charts in alpha, Data Grid filtering, and more.
date: 2023-08-14T00:00:00.000Z
authors: ['richbustos', 'josefreitas']
-card: true
+manualCard: true
tags: ['MUI X', 'Product']
---
diff --git a/docs/pages/blog/mui-x-v5.md b/docs/pages/blog/mui-x-v5.md
index 3e68847e5763e1..8ca2616041f276 100644
--- a/docs/pages/blog/mui-x-v5.md
+++ b/docs/pages/blog/mui-x-v5.md
@@ -4,7 +4,7 @@ description: We are excited to introduce MUI X v5.0.0!
date: 2021-11-22T00:00:00.000Z
authors:
['oliviertassinari', 'm4theushw', 'flaviendelangle', 'DanailH', 'alexfauquette']
-card: true
+manualCard: true
tags: ['MUI X', 'Product']
---
diff --git a/docs/pages/blog/mui-x-v6-alpha-zero.md b/docs/pages/blog/mui-x-v6-alpha-zero.md
index eefcf84e50348f..de7976f967cfe6 100644
--- a/docs/pages/blog/mui-x-v6-alpha-zero.md
+++ b/docs/pages/blog/mui-x-v6-alpha-zero.md
@@ -4,7 +4,7 @@ description: Let us know what you want to see in MUI X v6 as we begin the alpha
date: 2022-09-30T00:00:00.000Z
authors: ['josefreitas']
tags: ['MUI X', 'Product']
-card: true
+manualCard: true
---
We're kicking off the development of [MUI X v6](https://github.com/mui/mui-x/releases/tag/v6.0.0-alpha.0).
diff --git a/docs/pages/blog/mui-x-v6.md b/docs/pages/blog/mui-x-v6.md
index 4b666d5c82b42a..06e97177a0f0c7 100644
--- a/docs/pages/blog/mui-x-v6.md
+++ b/docs/pages/blog/mui-x-v6.md
@@ -3,7 +3,7 @@ title: Introducing MUI X v6
description: Introducing the new major version of the advanced components.
date: 2023-03-06T00:00:00.000Z
authors: ['josefreitas']
-card: true
+manualCard: true
tags: ['MUI X', 'Product']
---
diff --git a/docs/pages/blog/mui-x-v7-beta.md b/docs/pages/blog/mui-x-v7-beta.md
index 258a29b7fc57e7..f32df9cab0212e 100644
--- a/docs/pages/blog/mui-x-v7-beta.md
+++ b/docs/pages/blog/mui-x-v7-beta.md
@@ -4,7 +4,7 @@ description: Check out what's new and what's next for v7 stable.
date: 2024-01-29T00:00:00.000Z
authors: ['josefreitas']
tags: ['MUI X', 'Product']
-card: true
+manualCard: true
---
diff --git a/docs/pages/blog/mui-x-v7.md b/docs/pages/blog/mui-x-v7.md
index e95aadeedbe9bd..cce65bad6eefb9 100644
--- a/docs/pages/blog/mui-x-v7.md
+++ b/docs/pages/blog/mui-x-v7.md
@@ -4,7 +4,7 @@ description: Check out all the newest additions to the next major of the advance
date: 2024-03-22T08:00:00.000Z
authors: ['josefreitas']
tags: ['MUI X', 'Product']
-card: true
+manualCard: true
---
@@ -56,11 +56,11 @@ The Data Grid now offers a more responsive experience with smoother scrolling an
On its first announcement, some of these improvements were showcased, but during the beta phase, the scrolling performance was further polished for an even better user experience.
-
+
- A before and after showcase, first with horizontal and then with vertical scrolling.
+ A before and after showcase, first with horizontal and then with vertical scrolling.
:::warning
@@ -81,9 +81,9 @@ As part of an overarching project aimed at enhancing usability in managing colum
The goal is to further enhance this panel by incorporating additional column management functions, such as column reordering and pinning. Additionally, the internal component has been extracted to ease the introduction of the upcoming pivoting UI.
-
+
- The new column managemeent panel design
+ The new column management panel design
### Date Object support in filter model
@@ -98,9 +98,9 @@ Introducing a separate entry point for locales has significantly reduced the bun
As a reference, with the `@mui/x-data-grid` npm package, this change led to a reduction of approximately 19% – shrinking the bundle size from [114.2kB](https://bundlephobia.com/package/@mui/x-data-grid@6.19.2) to [92.9kB](https://bundlephobia.com/package/@mui/x-data-grid@7.0.0).
-
+
- A chart showcasing the Data Grid's bundle size change.
+ A chart showcasing the Data Grid's bundle size change.
### New stable features
@@ -233,9 +233,9 @@ The newest gauge charts are designed to offer a visually compelling way to displ
These charts are particularly useful for showing progress toward a goal or displaying a value within a predefined range.
With customizable options for pointers, sizes, and colors, they allow for a personalized visual representation that makes it easy for users to interpret data at a glance.
-
+
- Three different styles of Gauge charts.
+ Three different styles of Gauge charts.
Check out the [new charts](/x/react-charts/gauge/) documentation page for detailed information.
@@ -246,9 +246,9 @@ The charts now have click event handlers, so users can interact with chart eleme
This feature makes charts more interactive and transforms the way users can explore the data, improving the overall user experience with details and other information accessed on demand.
-
+
- A pie chart with an item click handler.
+ A pie chart with an item click handler.
You can find more information about specific event handlers for each type of chart by visiting their respective overview page:
@@ -261,9 +261,9 @@ You can find more information about specific event handlers for each type of cha
The Axis component now features a built-in Grid, offering users a structured layout for easier data analysis and visualization.
-
+
- A Chart axis with an horizontal grid.
+ A Chart axis with an horizontal grid.
For details on its usage and configuration, please refer to the [Grid section](/x/react-charts/axis/#grid) in the documentation.
@@ -272,9 +272,9 @@ For details on its usage and configuration, please refer to the [Grid section](/
The `ChartsReferenceLine` component enhances data visualization, providing users with a clear reference to better understand and analyze key data points.
-
+
- A line chart using a reference line.
+ A line chart using a reference line.
You can find more details on its [documentation](/x/react-charts/axis/#reference-line).
@@ -315,11 +315,11 @@ import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFnsV3';
The latest addition to the Date and Time Pickers suite is the ` `, a most anticipated component designed to enrich the user experience with the advanced date and time selection.
This intuitive picker simplifies the process of selecting date and time ranges, making it ideal for applications that require detailed scheduling or period selection.
-
+
- A video showcasing a date and time range selection.
+ A video showcasing a date and time range selection.
Learn how to use and customize the [new component](/x/react-date-pickers/date-time-range-picker/) now!
diff --git a/docs/pages/blog/november-2019-update.md b/docs/pages/blog/november-2019-update.md
index fc9f1bf498ab4d..afb3cbff843fc9 100644
--- a/docs/pages/blog/november-2019-update.md
+++ b/docs/pages/blog/november-2019-update.md
@@ -4,7 +4,7 @@ description: Here are the most significant improvements in November.
date: 2019-12-12T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
Here are the most significant improvements in November:
diff --git a/docs/pages/blog/october-2019-update.md b/docs/pages/blog/october-2019-update.md
index 7644683613f25d..d5b3c21f260dda 100644
--- a/docs/pages/blog/october-2019-update.md
+++ b/docs/pages/blog/october-2019-update.md
@@ -4,7 +4,7 @@ description: Here are the most significant improvements in October.
date: 2019-11-08T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
Here are the most significant improvements in October:
diff --git a/docs/pages/blog/premium-plan-release.md b/docs/pages/blog/premium-plan-release.md
index 4d5166c36c263f..d7ab992827f551 100644
--- a/docs/pages/blog/premium-plan-release.md
+++ b/docs/pages/blog/premium-plan-release.md
@@ -4,7 +4,7 @@ description: Introducing the MUI X Premium plan, and a new licensing model.
date: 2022-05-12T00:00:00.000Z
authors: ['josefreitas', 'alexfauquette']
tags: ['MUI X', 'Product']
-card: true
+manualCard: true
---
We're happy to announce that the Premium plan is [finally out](https://mui.com/pricing/)!
diff --git a/docs/pages/blog/remote-award-win-2024.md b/docs/pages/blog/remote-award-win-2024.md
index d41c7702449788..0162f0e8a93f06 100644
--- a/docs/pages/blog/remote-award-win-2024.md
+++ b/docs/pages/blog/remote-award-win-2024.md
@@ -4,10 +4,10 @@ description: We're delighted to be honored with this global recognition for our
date: 2024-03-20T12:00:00.000Z
authors: ['mikailaread']
tags: ['Company']
-card: true
+manualCard: true
---
-MUI has been named a **winner** in the first-ever [Remote Excellence Awards](https://remote.com/remote-excellence-awards/), in the Small & Mighty category! 🎉
+MUI has been named a **winner** in the first-ever [Remote Excellence Awards](https://remote.com/remote-excellence-awards), in the Small & Mighty category! 🎉
diff --git a/docs/pages/blog/september-2019-update.md b/docs/pages/blog/september-2019-update.md
index 851cda97d166b7..55c9c442b742f5 100644
--- a/docs/pages/blog/september-2019-update.md
+++ b/docs/pages/blog/september-2019-update.md
@@ -4,7 +4,7 @@ description: Here are the most significant improvements in September.
date: 2019-10-12T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
Here are the most significant improvements in September:
diff --git a/docs/pages/blog/siriwat-kunaporn-joining.md b/docs/pages/blog/siriwat-kunaporn-joining.md
index c858b89ccf4e33..2150a1835d1760 100644
--- a/docs/pages/blog/siriwat-kunaporn-joining.md
+++ b/docs/pages/blog/siriwat-kunaporn-joining.md
@@ -4,7 +4,7 @@ description: We are excited to share that Siriwat Kunaporn has joined MUI.
date: 2021-05-17T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
We are excited to share that [Siriwat Kunaporn](https://twitter.com/siriwatknp) (Jun) has joined MUI.
diff --git a/docs/pages/blog/spotlight-damien-tassone.md b/docs/pages/blog/spotlight-damien-tassone.md
index 6952fe623e1c35..8dc08dd0c823e6 100644
--- a/docs/pages/blog/spotlight-damien-tassone.md
+++ b/docs/pages/blog/spotlight-damien-tassone.md
@@ -4,7 +4,7 @@ description: Damien Tassone has joined MUI. He's the first full-time member to f
date: 2020-09-15T00:00:00.000Z
authors: ['oliviertassinari']
tags: ['Company']
-card: true
+manualCard: true
---
A few months ago, right in the middle of the COVID-19 outbreak, [Damien Tassone](https://twitter.com/madKakoO) joined MUI. He's the first full-time member to focus on enterprise components. Back then, we only made a quick mention of it. It's never too late to introduce him properly.
diff --git a/docs/pages/blog/toolpad-use-cases.md b/docs/pages/blog/toolpad-use-cases.md
index 30879950a648e4..30cc0ffd7ddd26 100644
--- a/docs/pages/blog/toolpad-use-cases.md
+++ b/docs/pages/blog/toolpad-use-cases.md
@@ -3,7 +3,7 @@ title: How does MUI use Toolpad?
description: Explore how we use Toolpad for production use cases at MUI.
date: 2024-03-04T00:00:00.000Z
authors: ['prakhargupta']
-card: true
+manualCard: true
tags: ['Product', 'Toolpad']
---
diff --git a/docs/pages/blog/v6-beta-pickers.md b/docs/pages/blog/v6-beta-pickers.md
index 8ceeca29aa63cf..22f03ed385fd00 100644
--- a/docs/pages/blog/v6-beta-pickers.md
+++ b/docs/pages/blog/v6-beta-pickers.md
@@ -4,7 +4,7 @@ description: Check out the new features coming in v6 beta.
date: 2023-01-22T00:00:00.000Z
authors: ['josefreitas']
tags: ['MUI X', 'Product']
-card: true
+manualCard: true
---
There's a lot of exciting news in [MUI X v6.0.0-beta.0](https://github.com/mui/mui-x/releases/v6.0.0-beta.0), but there's hardly anything comparable to the revamp we're delivering for the Date and Time Pickers.
diff --git a/docs/pages/careers.tsx b/docs/pages/careers.tsx
index c1abb1f4579da4..8e2d58f4b98d27 100644
--- a/docs/pages/careers.tsx
+++ b/docs/pages/careers.tsx
@@ -467,7 +467,13 @@ export default function Careers() {
href={routeUrl}
noLinkStyle
variant="outlined"
- sx={{ p: 2, width: '100%', flexGrow: 1 }}
+ sx={{
+ p: 2,
+ width: '100%',
+ flexGrow: 1,
+ display: 'flex',
+ flexDirection: 'column',
+ }}
>
{title}
@@ -475,7 +481,12 @@ export default function Careers() {
{description}
-
+
Learn more{' '}
;
+}
diff --git a/docs/pages/experiments/blog/blog-custom-card.md b/docs/pages/experiments/blog/blog-custom-card.md
new file mode 100644
index 00000000000000..1c26c97454e62d
--- /dev/null
+++ b/docs/pages/experiments/blog/blog-custom-card.md
@@ -0,0 +1,30 @@
+---
+title: Blog post title
+description: Our internationally distributed startup gathered on a remote island to get to know each other better. Here's what happened!
+date: 2022-07-28T00:00:00.000Z
+authors: ['alexfauquette']
+tags: ['Company']
+manualCard: false
+cardTitle: blog with\n*custom* card
+---
+
+## Description
+
+### Image
+
+
+
+An image description with a link .
+
+More text below.
+
+### Code
+
+```jsx
+// add margin: 8px 0px;
+
+```
+
+CodeSandbox
+
+More text below.
diff --git a/docs/pages/experiments/blog/blog.md b/docs/pages/experiments/blog/blog.md
index 0579a43e8f4eff..42c229e45f99c0 100644
--- a/docs/pages/experiments/blog/blog.md
+++ b/docs/pages/experiments/blog/blog.md
@@ -4,14 +4,14 @@ description: Our internationally distributed startup gathered on a remote island
date: 2022-07-28T00:00:00.000Z
authors: ['samuelsycamore']
tags: ['Company']
-card: false
+manualCard: false
---
## Description
### Image
-
+
An image description with a link .
diff --git a/docs/pages/experiments/docs/demos.md b/docs/pages/experiments/docs/demos.md
index 9334e1a03b1097..5a630ed5a063fb 100644
--- a/docs/pages/experiments/docs/demos.md
+++ b/docs/pages/experiments/docs/demos.md
@@ -1,12 +1,19 @@
# Demos
-Demos
+The different variants of demo containers we have in the docs.
## Standard demo
+"Standard" refers to when no background is explicitly defined.
+So, it renders the "outlined" background variant.
+
{{"demo": "DemoInDocs.js"}}
-## "bg": "inline" demo
+## "bg": "outlined"
+
+{{"demo": "DemoInDocs.js", "bg": "outlined"}}
+
+## "bg": "inline"
{{"demo": "DemoInDocs.js", "bg": "inline"}}
@@ -14,6 +21,10 @@
{{"demo": "DemoInDocs.js", "bg": true}}
+## "bg": gradient
+
+{{"demo": "DemoInDocs.js", "bg": "gradient"}}
+
## "hideToolbar": true
{{"demo": "DemoInDocs.js", "hideToolbar": true}}
diff --git a/docs/pages/experiments/docs/og-card.js b/docs/pages/experiments/docs/og-card.js
new file mode 100644
index 00000000000000..3c3ab187e0adcf
--- /dev/null
+++ b/docs/pages/experiments/docs/og-card.js
@@ -0,0 +1,7 @@
+import * as React from 'react';
+import MarkdownDocs from 'docs/src/modules/components/MarkdownDocs';
+import * as pageProps from './og-card.md?muiMarkdown';
+
+export default function Page() {
+ return ;
+}
diff --git a/docs/pages/experiments/docs/og-card.md b/docs/pages/experiments/docs/og-card.md
new file mode 100644
index 00000000000000..4a169ff15df2f4
--- /dev/null
+++ b/docs/pages/experiments/docs/og-card.md
@@ -0,0 +1,33 @@
+---
+title: OG card generation
+cardDescription: A quick overview of available options.
+---
+
+# OG card
+
+How the docs platform generate Open Graph card images
+
+## The edge function
+
+The URL `mui.com/edge-functions/og-image` can be queried with 4 search parameters:
+
+- `product`: the text element displayed next to the MUI logo
+- `title`: the title which can contains `\*` to delimit the highlighted (in blue) text sections
+- `description`: a paragraph added under the main title
+- `authors`: the GitHub username of the authors. It should be divided by a coma.
+
+## Usage with Markdown
+
+By default, the card is generated using the page title and description.
+You can override this behavior by providing different/specific `cardTitle` and `cardDescription` in the Markdown header, like so:
+
+```markup
+--
+cardTitle: A *different* title than the page title
+cardDecription: The word "different" on the title is highlighted
+--
+```
+
+## Card design preview
+
+Visit [this StackBlitz demo](https://stackblitz.com/edit/vitejs-vite-ukeejd?file=src%2FApp.tsx) to see how the card looks like without having to run a random page on an OG preview site.
diff --git a/docs/pages/material-ui/api/step-connector.json b/docs/pages/material-ui/api/step-connector.json
index c0d62fb18711f6..ddfa3bb8b11fef 100644
--- a/docs/pages/material-ui/api/step-connector.json
+++ b/docs/pages/material-ui/api/step-connector.json
@@ -54,14 +54,16 @@
{
"key": "lineHorizontal",
"className": "MuiStepConnector-lineHorizontal",
- "description": "Styles applied to the root element if `orientation=\"horizontal\"`.",
- "isGlobal": false
+ "description": "Styles applied to the line element if `orientation=\"horizontal\"`.",
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "lineVertical",
"className": "MuiStepConnector-lineVertical",
- "description": "Styles applied to the root element if `orientation=\"vertical\"`.",
- "isGlobal": false
+ "description": "Styles applied to the line element if `orientation=\"vertical\"`.",
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "root",
diff --git a/docs/pages/material-ui/api/step-label.json b/docs/pages/material-ui/api/step-label.json
index cc855fad1f48fa..07a2c71835e352 100644
--- a/docs/pages/material-ui/api/step-label.json
+++ b/docs/pages/material-ui/api/step-label.json
@@ -12,15 +12,26 @@
"icon": { "type": { "name": "node" } },
"optional": { "type": { "name": "node" } },
"slotProps": {
- "type": { "name": "shape", "description": "{ label?: func | object }" },
+ "type": {
+ "name": "shape",
+ "description": "{ label?: func | object, stepIcon?: func | object }"
+ },
"default": "{}"
},
"slots": {
- "type": { "name": "shape", "description": "{ label?: elementType }" },
+ "type": { "name": "shape", "description": "{ label?: elementType, stepIcon?: elementType }" },
"default": "{}"
},
- "StepIconComponent": { "type": { "name": "elementType" } },
- "StepIconProps": { "type": { "name": "object" } },
+ "StepIconComponent": {
+ "type": { "name": "elementType" },
+ "deprecated": true,
+ "deprecationInfo": "Use slots.stepIcon
instead. This prop will be removed in v7. How to migrate ."
+ },
+ "StepIconProps": {
+ "type": { "name": "object" },
+ "deprecated": true,
+ "deprecationInfo": "Use slotProps.stepIcon
instead. This prop will be removed in v7. How to migrate ."
+ },
"sx": {
"type": {
"name": "union",
@@ -40,6 +51,11 @@
"description": "The component that renders the label.",
"default": "span",
"class": "MuiStepLabel-label"
+ },
+ {
+ "name": "stepIcon",
+ "description": "The component to render in place of the [`StepIcon`](/material-ui/api/step-icon/).",
+ "class": null
}
],
"classes": [
diff --git a/docs/pages/material-ui/api/tab-panel.json b/docs/pages/material-ui/api/tab-panel.json
index 01ec545ad24756..7c80cfabce2bc7 100644
--- a/docs/pages/material-ui/api/tab-panel.json
+++ b/docs/pages/material-ui/api/tab-panel.json
@@ -3,6 +3,7 @@
"value": { "type": { "name": "string" }, "required": true },
"children": { "type": { "name": "node" } },
"classes": { "type": { "name": "object" }, "additionalInfo": { "cssApi": true } },
+ "keepMounted": { "type": { "name": "bool" }, "default": "false" },
"sx": {
"type": {
"name": "union",
@@ -14,6 +15,12 @@
"name": "TabPanel",
"imports": ["import TabPanel from '@mui/lab/TabPanel';", "import { TabPanel } from '@mui/lab';"],
"classes": [
+ {
+ "key": "hidden",
+ "className": "MuiTabPanel-hidden",
+ "description": "State class applied to the root `div` element if `hidden={true}`.",
+ "isGlobal": false
+ },
{
"key": "root",
"className": "MuiTabPanel-root",
diff --git a/docs/pages/material-ui/api/toggle-button-group.json b/docs/pages/material-ui/api/toggle-button-group.json
index e3d1c10eefb45c..0ce12e51e361b8 100644
--- a/docs/pages/material-ui/api/toggle-button-group.json
+++ b/docs/pages/material-ui/api/toggle-button-group.json
@@ -73,12 +73,20 @@
"key": "groupedHorizontal",
"className": "MuiToggleButtonGroup-groupedHorizontal",
"description": "Styles applied to the children if `orientation=\"horizontal\"`.",
- "isGlobal": false
+ "isGlobal": false,
+ "isDeprecated": true
},
{
"key": "groupedVertical",
"className": "MuiToggleButtonGroup-groupedVertical",
"description": "Styles applied to the children if `orientation=\"vertical\"`.",
+ "isGlobal": false,
+ "isDeprecated": true
+ },
+ {
+ "key": "horizontal",
+ "className": "MuiToggleButtonGroup-horizontal",
+ "description": "Styles applied to the root element if `orientation=\"horizontal\"`.",
"isGlobal": false
},
{
diff --git a/docs/pages/material-ui/design-resources/connect.js b/docs/pages/material-ui/design-resources/connect.js
new file mode 100644
index 00000000000000..ab121664c18d87
--- /dev/null
+++ b/docs/pages/material-ui/design-resources/connect.js
@@ -0,0 +1,7 @@
+import * as React from 'react';
+import MarkdownDocs from 'docs/src/modules/components/MarkdownDocs';
+import * as pageProps from 'docs/data/material/design-resources/connect/connect.md?muiMarkdown';
+
+export default function Page() {
+ return ;
+}
diff --git a/docs/pages/material-ui/design-resources/material-ui-for-figma.js b/docs/pages/material-ui/design-resources/material-ui-for-figma.js
new file mode 100644
index 00000000000000..a38c5cd4d88ddb
--- /dev/null
+++ b/docs/pages/material-ui/design-resources/material-ui-for-figma.js
@@ -0,0 +1,7 @@
+import * as React from 'react';
+import MarkdownDocs from 'docs/src/modules/components/MarkdownDocs';
+import * as pageProps from 'docs/data/material/design-resources/material-ui-for-figma/material-ui-for-figma.md?muiMarkdown';
+
+export default function Page() {
+ return ;
+}
diff --git a/docs/pages/material-ui/getting-started/design-resources.js b/docs/pages/material-ui/getting-started/design-resources.js
index 4df5b129ae956d..8e1e24b65a2436 100644
--- a/docs/pages/material-ui/getting-started/design-resources.js
+++ b/docs/pages/material-ui/getting-started/design-resources.js
@@ -3,5 +3,5 @@ import MarkdownDocs from 'docs/src/modules/components/MarkdownDocs';
import * as pageProps from 'docs/data/material/getting-started/design-resources/design-resources.md?muiMarkdown';
export default function Page() {
- return ;
+ return ;
}
diff --git a/docs/public/static/blog/introducing-connect/card.png b/docs/public/static/blog/introducing-connect/card.png
new file mode 100644
index 00000000000000..fd55e108ab5082
Binary files /dev/null and b/docs/public/static/blog/introducing-connect/card.png differ
diff --git a/docs/public/static/blog/introducing-connect/custom-component.mp4 b/docs/public/static/blog/introducing-connect/custom-component.mp4
new file mode 100644
index 00000000000000..f8721ce26a815d
Binary files /dev/null and b/docs/public/static/blog/introducing-connect/custom-component.mp4 differ
diff --git a/docs/public/static/blog/introducing-connect/storybook.mp4 b/docs/public/static/blog/introducing-connect/storybook.mp4
new file mode 100644
index 00000000000000..c6ddd2e2e5b9f6
Binary files /dev/null and b/docs/public/static/blog/introducing-connect/storybook.mp4 differ
diff --git a/docs/public/static/blog/introducing-connect/theme-customization.mp4 b/docs/public/static/blog/introducing-connect/theme-customization.mp4
new file mode 100644
index 00000000000000..b77be7df826b8a
Binary files /dev/null and b/docs/public/static/blog/introducing-connect/theme-customization.mp4 differ
diff --git "a/docs/public/static/branding/about/aar\303\263n-garc\303\255a.png" "b/docs/public/static/branding/about/aar\303\263n-garc\303\255a.png"
new file mode 100644
index 00000000000000..a6604f5684ae27
Binary files /dev/null and "b/docs/public/static/branding/about/aar\303\263n-garc\303\255a.png" differ
diff --git a/docs/public/static/branding/about/jose-quintas.png b/docs/public/static/branding/about/jose-quintas.png
new file mode 100644
index 00000000000000..8206d6645cd096
Binary files /dev/null and b/docs/public/static/branding/about/jose-quintas.png differ
diff --git a/docs/public/static/material-ui/design-resources/connect-access.png b/docs/public/static/material-ui/design-resources/connect-access.png
new file mode 100644
index 00000000000000..c8f6ec4d6bef27
Binary files /dev/null and b/docs/public/static/material-ui/design-resources/connect-access.png differ
diff --git a/docs/public/static/material-ui/design-resources/connect-code-editor.png b/docs/public/static/material-ui/design-resources/connect-code-editor.png
new file mode 100644
index 00000000000000..7e45f3071adf9a
Binary files /dev/null and b/docs/public/static/material-ui/design-resources/connect-code-editor.png differ
diff --git a/docs/public/static/material-ui/design-resources/connect-component-variant.png b/docs/public/static/material-ui/design-resources/connect-component-variant.png
new file mode 100644
index 00000000000000..dbf37d0afc2697
Binary files /dev/null and b/docs/public/static/material-ui/design-resources/connect-component-variant.png differ
diff --git a/docs/public/static/material-ui/design-resources/connect-generate.png b/docs/public/static/material-ui/design-resources/connect-generate.png
new file mode 100644
index 00000000000000..3740a185267a04
Binary files /dev/null and b/docs/public/static/material-ui/design-resources/connect-generate.png differ
diff --git a/docs/public/static/material-ui/design-resources/connect-regenerate.png b/docs/public/static/material-ui/design-resources/connect-regenerate.png
new file mode 100644
index 00000000000000..bd8a6ecfe6f676
Binary files /dev/null and b/docs/public/static/material-ui/design-resources/connect-regenerate.png differ
diff --git a/docs/public/static/material-ui/design-resources/connect-storybook.png b/docs/public/static/material-ui/design-resources/connect-storybook.png
new file mode 100644
index 00000000000000..c6c0751d407f49
Binary files /dev/null and b/docs/public/static/material-ui/design-resources/connect-storybook.png differ
diff --git a/docs/public/static/material-ui/design-resources/connect-switch-component-customized-storybook.png b/docs/public/static/material-ui/design-resources/connect-switch-component-customized-storybook.png
new file mode 100644
index 00000000000000..dc944a48b56f94
Binary files /dev/null and b/docs/public/static/material-ui/design-resources/connect-switch-component-customized-storybook.png differ
diff --git a/docs/public/static/material-ui/design-resources/connect-switch-component-customized.png b/docs/public/static/material-ui/design-resources/connect-switch-component-customized.png
new file mode 100644
index 00000000000000..565769a85fe770
Binary files /dev/null and b/docs/public/static/material-ui/design-resources/connect-switch-component-customized.png differ
diff --git a/docs/public/static/material-ui/design-resources/connect-switch.png b/docs/public/static/material-ui/design-resources/connect-switch.png
new file mode 100644
index 00000000000000..17c8d4af23f16f
Binary files /dev/null and b/docs/public/static/material-ui/design-resources/connect-switch.png differ
diff --git a/docs/public/static/material-ui/design-resources/connect-variables.png b/docs/public/static/material-ui/design-resources/connect-variables.png
new file mode 100644
index 00000000000000..ba5d96c4db307f
Binary files /dev/null and b/docs/public/static/material-ui/design-resources/connect-variables.png differ
diff --git a/docs/public/static/material-ui/design-resources/connect.png b/docs/public/static/material-ui/design-resources/connect.png
new file mode 100644
index 00000000000000..1ea20e794f9000
Binary files /dev/null and b/docs/public/static/material-ui/design-resources/connect.png differ
diff --git a/docs/src/MuiPage.ts b/docs/src/MuiPage.ts
index 934782c099a824..36296ce8f71096 100644
--- a/docs/src/MuiPage.ts
+++ b/docs/src/MuiPage.ts
@@ -53,6 +53,10 @@ export interface MuiPage {
* Indicates if the component/hook is not stable yet.
*/
unstable?: boolean;
+ /**
+ * Indicates the item is in beta release.
+ */
+ beta?: boolean;
}
export interface OrderedMuiPage extends MuiPage {
diff --git a/docs/src/components/banner/TableOfContentsBanner.tsx b/docs/src/components/banner/TableOfContentsBanner.tsx
index 66f492e4b3ca8b..79d27a93df033e 100644
--- a/docs/src/components/banner/TableOfContentsBanner.tsx
+++ b/docs/src/components/banner/TableOfContentsBanner.tsx
@@ -34,10 +34,9 @@ export default function TableOfContentsBanner() {
(theme) =>
theme.applyDarkStyles({
backgroundColor: alpha(theme.palette.primary[900], 0.2),
- borderColor: (theme.vars || theme).palette.divider,
'&:hover, &:focus-visible': {
backgroundColor: alpha(theme.palette.primary[900], 0.4),
- borderColor: (theme.vars || theme).palette.primaryDark[500],
+ borderColor: (theme.vars || theme).palette.primary[900],
},
}),
]}
diff --git a/docs/src/components/markdown/MarkdownElement.tsx b/docs/src/components/markdown/MarkdownElement.tsx
index 37eda97a4d1289..0fa3ed548afea2 100644
--- a/docs/src/components/markdown/MarkdownElement.tsx
+++ b/docs/src/components/markdown/MarkdownElement.tsx
@@ -10,7 +10,7 @@ const Root = styled('div')(({ theme }) => ({
...theme.typography.caption,
color: (theme.vars || theme).palette.text.primary,
'& pre': {
- backgroundColor: '#0F1924', // a special, one-off, color tailored for the code blocks using MUI's branding theme blue palette as the starting point. It has a less saturaded color but still maintaining a bit of the blue tint.
+ backgroundColor: 'hsl(210, 35%, 9%)', // a special, one-off, color tailored for the code blocks using MUI's branding theme blue palette as the starting point. It has a less saturaded color but still maintaining a bit of the blue tint.
color: '#f8f8f2', // fallback color until Prism's theme is loaded
overflow: 'auto',
margin: 0,
diff --git a/docs/src/modules/components/Ad.js b/docs/src/modules/components/Ad.js
index 9750bfeed8b6ab..0e612dc7970101 100644
--- a/docs/src/modules/components/Ad.js
+++ b/docs/src/modules/components/Ad.js
@@ -5,6 +5,7 @@ import Box from '@mui/material/Box';
import Paper from '@mui/material/Paper';
import AdCarbon from 'docs/src/modules/components/AdCarbon';
import AdInHouse from 'docs/src/modules/components/AdInHouse';
+import { GA_ADS_DISPLAY_RATIO } from 'docs/src/modules/constants';
import { AdContext, adShape } from 'docs/src/modules/components/AdManager';
import { useTranslate } from '@mui/docs/i18n';
@@ -197,7 +198,7 @@ export default function Ad() {
React.useEffect(() => {
// Avoid an exceed on the Google Analytics quotas.
- if (Math.random() < 0.9 || !eventLabel) {
+ if (Math.random() > GA_ADS_DISPLAY_RATIO || !eventLabel) {
return undefined;
}
diff --git a/docs/src/modules/components/AdCarbon.js b/docs/src/modules/components/AdCarbon.js
index 64963da1702729..bd62cf8bfe3871 100644
--- a/docs/src/modules/components/AdCarbon.js
+++ b/docs/src/modules/components/AdCarbon.js
@@ -126,6 +126,7 @@ export function AdCarbonInline(props) {
name: ad.company,
description: `${ad.company} - ${ad.description}`,
poweredby: 'Carbon',
+ label: 'carbon-demo-inline',
}}
/>
diff --git a/docs/src/modules/components/AdDisplay.js b/docs/src/modules/components/AdDisplay.js
index 1de9a19857246f..e31003bd3225de 100644
--- a/docs/src/modules/components/AdDisplay.js
+++ b/docs/src/modules/components/AdDisplay.js
@@ -2,6 +2,7 @@ import * as React from 'react';
import PropTypes from 'prop-types';
import { styled } from '@mui/material/styles';
import { adShape } from 'docs/src/modules/components/AdManager';
+import { GA_ADS_DISPLAY_RATIO } from 'docs/src/modules/constants';
import { adStylesObject } from 'docs/src/modules/components/ad.styles';
const Root = styled('span', { shouldForwardProp: (prop) => prop !== 'shape' })(({
@@ -23,6 +24,18 @@ const Root = styled('span', { shouldForwardProp: (prop) => prop !== 'shape' })((
export default function AdDisplay(props) {
const { ad, className, shape = 'auto' } = props;
+ React.useEffect(() => {
+ // Avoid an exceed on the Google Analytics quotas.
+ if (Math.random() > GA_ADS_DISPLAY_RATIO || !ad.label) {
+ return;
+ }
+
+ window.gtag('event', 'ad', {
+ eventAction: 'display',
+ eventLabel: ad.label,
+ });
+ }, [ad.label]);
+
/* eslint-disable material-ui/no-hardcoded-labels, react/no-danger */
return (
diff --git a/docs/src/modules/components/ApiPage.js b/docs/src/modules/components/ApiPage.js
index abf1775d1768fd..f51d320ae6294c 100644
--- a/docs/src/modules/components/ApiPage.js
+++ b/docs/src/modules/components/ApiPage.js
@@ -53,11 +53,13 @@ function Heading(props) {
return (
- {getTranslatedHeader(t, hash)}
-
-
-
-
+
+ {getTranslatedHeader(t, hash)}
+
+
+
+
+
);
diff --git a/docs/src/modules/components/ApiPage/sections/ClassesSection.tsx b/docs/src/modules/components/ApiPage/sections/ClassesSection.tsx
index bc09404849b40c..63588a4ff1f28a 100644
--- a/docs/src/modules/components/ApiPage/sections/ClassesSection.tsx
+++ b/docs/src/modules/components/ApiPage/sections/ClassesSection.tsx
@@ -93,16 +93,18 @@ export default function ClassesSection(props: ClassesSectionProps) {
- {t(title)}
-
-
-
+ {t(title)}
+
+
+
+
+
- {t(title)}
-
-
-
+ {t(title)}
+
+
+
+
+
- {t(title)}
-
-
-
+
+ {t(title)}
+
+
+
+
setMobileOpen(false), []);
+ const openDrawer = React.useCallback(() => setMobileOpen(true), []);
+
const { activePage } = React.useContext(PageContext);
const disablePermanent = activePage?.disableDrawer === true || disableDrawer === true;
@@ -205,7 +207,7 @@ export default function AppFrame(props) {
-
+
@@ -230,8 +232,8 @@ export default function AppFrame(props) {
setMobileOpen(false)}
- onOpen={() => setMobileOpen(true)}
+ onClose={closeDrawer}
+ onOpen={openDrawer}
mobileOpen={mobileOpen}
/>
{children}
diff --git a/docs/src/modules/components/AppLayoutDocs.js b/docs/src/modules/components/AppLayoutDocs.js
index 3070ad0f1d3a56..c343c6b3338147 100644
--- a/docs/src/modules/components/AppLayoutDocs.js
+++ b/docs/src/modules/components/AppLayoutDocs.js
@@ -101,6 +101,7 @@ export default function AppLayoutDocs(props) {
const router = useRouter();
const {
BannerComponent,
+ cardOptions,
children,
description,
disableAd = false,
@@ -137,6 +138,7 @@ export default function AppLayoutDocs(props) {
const Layout = disableLayout ? React.Fragment : AppFrame;
const layoutProps = disableLayout ? {} : { BannerComponent };
+ const card = `/edge-functions/og-image?product=${productName}&title=${cardOptions?.title ?? title}&description=${cardOptions?.description ?? description}`;
return (
{/*
@@ -172,6 +174,10 @@ export default function AppLayoutDocs(props) {
AppLayoutDocs.propTypes = {
BannerComponent: PropTypes.elementType,
+ cardOptions: PropTypes.shape({
+ description: PropTypes.string,
+ title: PropTypes.string,
+ }),
children: PropTypes.node.isRequired,
description: PropTypes.string.isRequired,
disableAd: PropTypes.bool.isRequired,
diff --git a/docs/src/modules/components/AppNavDrawer.js b/docs/src/modules/components/AppNavDrawer.js
index f56d19f285935b..0d0077b891a699 100644
--- a/docs/src/modules/components/AppNavDrawer.js
+++ b/docs/src/modules/components/AppNavDrawer.js
@@ -261,6 +261,7 @@ function reduceChildRoutes(context) {
newFeature={page.newFeature}
planned={page.planned}
unstable={page.unstable}
+ beta={page.beta}
plan={page.plan}
icon={page.icon}
subheader={subheader}
@@ -294,6 +295,7 @@ function reduceChildRoutes(context) {
newFeature={page.newFeature}
planned={page.planned}
unstable={page.unstable}
+ beta={page.beta}
plan={page.plan}
icon={page.icon}
subheader={Boolean(page.subheader)}
diff --git a/docs/src/modules/components/AppNavDrawerItem.js b/docs/src/modules/components/AppNavDrawerItem.js
index e626a11fe7d7e0..e3ea4afdf9d3e4 100644
--- a/docs/src/modules/components/AppNavDrawerItem.js
+++ b/docs/src/modules/components/AppNavDrawerItem.js
@@ -144,7 +144,7 @@ const Item = styled(
theme.applyDarkStyles({
...color,
'&::before': {
- background: alpha(theme.palette.primaryDark[700], 0.6),
+ background: alpha(theme.palette.primaryDark[500], 0.3),
},
'&.app-drawer-active': {
color: (theme.vars || theme).palette.primary[300],
@@ -242,6 +242,7 @@ DeadLink.propTypes = {
export default function AppNavDrawerItem(props) {
const {
+ beta,
children,
depth,
href,
@@ -319,6 +320,7 @@ export default function AppNavDrawerItem(props) {
{newFeature && }
{planned && }
{unstable && }
+ {beta && }
{expandable ? (
@@ -332,6 +334,7 @@ export default function AppNavDrawerItem(props) {
}
AppNavDrawerItem.propTypes = {
+ beta: PropTypes.bool,
children: PropTypes.node,
depth: PropTypes.number.isRequired,
expandable: PropTypes.bool,
diff --git a/docs/src/modules/components/AppSearch.js b/docs/src/modules/components/AppSearch.js
index 0cf3f3da46828e..c74297650aa327 100644
--- a/docs/src/modules/components/AppSearch.js
+++ b/docs/src/modules/components/AppSearch.js
@@ -54,10 +54,7 @@ const SearchButton = styled('button')(({ theme }) => [
cursor: 'pointer',
transitionProperty: 'all',
transitionDuration: '150ms',
- boxShadow: `inset 0 -1px 0 ${(theme.vars || theme).palette.grey[100]}, 0 1px 0.5px ${alpha(
- theme.palette.grey[100],
- 0.6,
- )}`,
+ boxShadow: `hsl(200, 0%, 100%) 0 2px 0 inset, ${alpha(theme.palette.grey[100], 0.5)} 0 -1.5px 0 inset, ${alpha(theme.palette.grey[200], 0.5)} 0 1px 2px 0`,
'&:hover': {
background: (theme.vars || theme).palette.grey[100],
borderColor: (theme.vars || theme).palette.grey[300],
@@ -70,9 +67,7 @@ const SearchButton = styled('button')(({ theme }) => [
theme.applyDarkStyles({
backgroundColor: alpha(theme.palette.primaryDark[700], 0.4),
borderColor: (theme.vars || theme).palette.primaryDark[700],
- boxShadow: `inset 0 -1px 1px ${(theme.vars || theme).palette.primaryDark[900]}, 0 1px 0.5px ${
- (theme.vars || theme).palette.common.black
- }`,
+ boxShadow: `${alpha(theme.palette.primaryDark[600], 0.1)} 0 2px 0 inset, ${(theme.vars || theme).palette.common.black} 0 -2px 0 inset, ${(theme.vars || theme).palette.common.black} 0 1px 2px 0`,
'&:hover': {
background: (theme.vars || theme).palette.primaryDark[700],
borderColor: (theme.vars || theme).palette.primaryDark[600],
diff --git a/docs/src/modules/components/ComponentsApiContent.js b/docs/src/modules/components/ComponentsApiContent.js
index c089b6302b6783..eab0596c3c8c06 100644
--- a/docs/src/modules/components/ComponentsApiContent.js
+++ b/docs/src/modules/components/ComponentsApiContent.js
@@ -33,11 +33,13 @@ function Heading(props) {
return (
- {getTranslatedHeader(t, hash, text)}
-
-
-
-
+
+ {getTranslatedHeader(t, hash, text)}
+
+
+
+
+
);
diff --git a/docs/src/modules/components/Demo.js b/docs/src/modules/components/Demo.js
index 4bebe7324c9390..ed82ae5d5aa386 100644
--- a/docs/src/modules/components/Demo.js
+++ b/docs/src/modules/components/Demo.js
@@ -210,6 +210,11 @@ const DemoRootMaterial = styled('div', {
...(bg === 'inline' && {
padding: theme.spacing(0),
}),
+ ...(bg === 'gradient' && {
+ padding: theme.spacing(12, 8),
+ borderLeftWidth: 1,
+ borderRightWidth: 1,
+ }),
},
/* Isolate the demo with an outline. */
...(bg === 'outlined' && {
@@ -231,28 +236,25 @@ const DemoRootMaterial = styled('div', {
/* Prepare the background to display an inner elevation. */
...(bg === true && {
padding: theme.spacing(3),
- backgroundColor: alpha(theme.palette.grey[50], 0.6),
+ backgroundColor: alpha((theme.vars || theme).palette.grey[50], 0.5),
border: `1px solid ${(theme.vars || theme).palette.divider}`,
...theme.applyDarkStyles({
- backgroundColor: alpha(theme.palette.primaryDark[700], 0.15),
+ backgroundColor: alpha((theme.vars || theme).palette.primaryDark[700], 0.4),
}),
}),
/* Mostly meant for introduction demos. */
...(bg === 'gradient' && {
overflow: 'auto',
- padding: theme.spacing(20, 8),
- border: `1px solid`,
- borderColor: (theme.vars || theme).palette.divider,
+ padding: theme.spacing(4, 2),
+ border: `1px solid ${(theme.vars || theme).palette.divider}`,
+ borderLeftWidth: 0,
+ borderRightWidth: 0,
backgroundClip: 'padding-box',
- backgroundColor: alpha(theme.palette.primary[50], 0.5),
- backgroundImage: `radial-gradient(140% 108% at 50% 8%, transparent 40%, ${
- theme.palette.primary[50]
- } 70%, ${alpha(theme.palette.primary[100], 0.2)} 100%)`,
+ backgroundColor: alpha(theme.palette.primary[50], 0.2),
+ backgroundImage: `radial-gradient(120% 140% at 50% 10%, transparent 40%, ${alpha((theme.vars || theme).palette.primary[100], 0.2)} 70%)`,
...theme.applyDarkStyles({
- borderColor: (theme.vars || theme).palette.divider,
- backgroundColor: '#00111A',
- backgroundImage:
- 'radial-gradient(140% 120% at 50% 8%, transparent 40%, #051729 70%, #041425 100%)',
+ backgroundColor: (theme.vars || theme).palette.primaryDark[900],
+ backgroundImage: `radial-gradient(120% 140% at 50% 10%, transparent 30%, ${alpha((theme.vars || theme).palette.primary[900], 0.3)} 80%)`,
}),
}),
}));
@@ -331,6 +333,9 @@ const DemoCodeViewer = styled(HighlightedCode)(() => ({
maxWidth: 'initial',
borderRadius: 0,
},
+ '& .MuiCode-copy': {
+ display: 'none',
+ },
}));
const AnchorLink = styled('div')({
diff --git a/docs/src/modules/components/DemoEditor.tsx b/docs/src/modules/components/DemoEditor.tsx
index e32390019b3f63..b73c500fae1727 100644
--- a/docs/src/modules/components/DemoEditor.tsx
+++ b/docs/src/modules/components/DemoEditor.tsx
@@ -2,7 +2,7 @@ import * as React from 'react';
import SimpleCodeEditor from 'react-simple-code-editor';
import Box from '@mui/material/Box';
import { NoSsr } from '@mui/base/NoSsr';
-import { styled, useTheme } from '@mui/material/styles';
+import { styled, alpha, useTheme } from '@mui/material/styles';
import prism from '@mui/internal-markdown/prism';
import MarkdownElement from 'docs/src/modules/components/MarkdownElement';
import CodeCopyButton from 'docs/src/modules/components/CodeCopyButton';
@@ -16,14 +16,14 @@ const StyledMarkdownElement = styled(MarkdownElement)(({ theme }) => [
maxHeight: 'min(68vh, 1000px)',
overflow: 'auto',
marginTop: -1,
- backgroundColor: '#0F1924', // a special, one-off, color tailored for the code blocks using MUI's branding theme blue palette as the starting point. It has a less saturaded color but still maintaining a bit of the blue tint.
+ backgroundColor: 'hsl(210, 35%, 9%)', // a special, one-off, color tailored for the code blocks using MUI's branding theme blue palette as the starting point. It has a less saturaded color but still maintaining a bit of the blue tint.
border: `1px solid ${(theme.vars || theme).palette.divider}`,
colorScheme: 'dark',
'&:hover': {
- boxShadow: `0 0 0 3px ${(theme.vars || theme).palette.primary.light}`,
+ boxShadow: `0 0 0 3px ${alpha((theme.vars || theme).palette.primary[500], 0.5)}`,
},
'&:focus-within': {
- boxShadow: `0 0 0 2px ${(theme.vars || theme).palette.primary.main}`,
+ boxShadow: `0 0 0 2px ${alpha((theme.vars || theme).palette.primary[500], 0.5)}`,
},
[theme.breakpoints.up('sm')]: {
borderRadius: '0 0 12px 12px',
@@ -35,16 +35,13 @@ const StyledMarkdownElement = styled(MarkdownElement)(({ theme }) => [
maxWidth: 'initial',
maxHeight: 'initial',
},
+ '& .MuiCode-copy': {
+ display: 'none',
+ },
},
theme.applyDarkStyles({
'& .scrollContainer': {
borderColor: (theme.vars || theme).palette.divider,
- '&:hover': {
- boxShadow: `0 0 0 3px ${(theme.vars || theme).palette.primaryDark[300]}`,
- },
- '&:focus-within': {
- boxShadow: `0 0 0 2px ${(theme.vars || theme).palette.primaryDark[400]}`,
- },
},
}),
]) as any;
diff --git a/docs/src/modules/components/DemoToolbarRoot.ts b/docs/src/modules/components/DemoToolbarRoot.ts
index 984115f71f2f7d..071aea7f1df146 100644
--- a/docs/src/modules/components/DemoToolbarRoot.ts
+++ b/docs/src/modules/components/DemoToolbarRoot.ts
@@ -11,11 +11,12 @@ const DemoToolbarRoot = styled('div', {
{
display: 'none',
[theme.breakpoints.up('sm')]: {
+ top: 0,
display: 'block',
- border: `1px solid ${(theme.vars || theme).palette.divider}`,
marginTop: demoOptions.bg === 'inline' ? theme.spacing(1) : -1,
- top: 0,
padding: theme.spacing(0.5, 1),
+ border: `1px solid ${(theme.vars || theme).palette.divider}`,
+ borderTopWidth: demoOptions.bg === 'inline' ? 1 : 0,
backgroundColor: alpha(theme.palette.grey[50], 0.2),
borderRadius: openDemoSource ? 0 : '0 0 12px 12px',
transition: theme.transitions.create('border-radius'),
diff --git a/docs/src/modules/components/DiamondSponsors.js b/docs/src/modules/components/DiamondSponsors.js
index cdd753cb98009b..4461e562ee4742 100644
--- a/docs/src/modules/components/DiamondSponsors.js
+++ b/docs/src/modules/components/DiamondSponsors.js
@@ -17,7 +17,7 @@ const NativeLink = styled('a')(({ theme }) => ({
border: '1px solid',
borderColor: (theme.vars || theme).palette.divider,
transition: theme.transitions.create(['color', 'border-color']),
- boxShadow: `${alpha(theme.palette.grey[50], 0.5)} 0 1px 0 inset, ${alpha(theme.palette.grey[100], 0.3)} 0 -2px 0 inset, ${alpha(theme.palette.grey[200], 0.5)} 0 1px 2px 0`,
+ boxShadow: `${alpha(theme.palette.grey[100], 0.3)} 0 -2px 0 inset`,
'&:hover': {
backgroundColor: (theme.vars || theme).palette.grey[50],
},
@@ -29,10 +29,10 @@ const NativeLink = styled('a')(({ theme }) => ({
display: 'inline-block',
},
...theme.applyDarkStyles({
- boxShadow: `${alpha(theme.palette.primaryDark[600], 0.15)} 0 1px 0 inset, ${(theme.vars || theme).palette.common.black} 0 -2px 0 inset, ${(theme.vars || theme).palette.common.black} 0 1px 2px 0`,
+ boxShadow: `${alpha(theme.palette.primaryDark[600], 0.1)} 0 2px 0 inset, ${(theme.vars || theme).palette.common.black} 0 -2px 0 inset`,
'&:hover': {
backgroundColor: (theme.vars || theme).palette.primaryDark[800],
- borderColor: (theme.vars || theme).palette.primaryDark[600],
+ borderColor: (theme.vars || theme).palette.primary[900],
},
}),
}));
diff --git a/docs/src/modules/components/EditPage.js b/docs/src/modules/components/EditPage.js
index d8b16b3067ee3b..409d996925ed54 100644
--- a/docs/src/modules/components/EditPage.js
+++ b/docs/src/modules/components/EditPage.js
@@ -10,6 +10,12 @@ export default function EditPage(props) {
const { sourceLocation } = props;
const t = useTranslate();
const userLanguage = useUserLanguage();
+
+ if (!sourceLocation) {
+ // An empty div such that the footer layout stays unchanged.
+ return
;
+ }
+
const CROWDIN_ROOT_URL = 'https://crowdin.com/project/material-ui-docs/';
const crowdInLocale = LOCALES[userLanguage] || userLanguage;
const crowdInPath = sourceLocation.substring(0, sourceLocation.lastIndexOf('/'));
@@ -19,6 +25,7 @@ export default function EditPage(props) {
component="a"
size="small"
variant="outlined"
+ color="secondary"
startIcon={ }
href={
userLanguage === 'en'
diff --git a/docs/src/modules/components/Head.tsx b/docs/src/modules/components/Head.tsx
index 7366a2ce2fd8ff..884ecea4b08879 100644
--- a/docs/src/modules/components/Head.tsx
+++ b/docs/src/modules/components/Head.tsx
@@ -6,7 +6,9 @@ import { useUserLanguage, useTranslate } from '@mui/docs/i18n';
import { pathnameToLanguage } from 'docs/src/modules/utils/helpers';
// #major-version-switch
-const HOST = 'https://mui.com';
+const HOST = process.env.PULL_REQUEST_ID
+ ? `https://deploy-preview-${process.env.PULL_REQUEST_ID}--${process.env.NETLIFY_SITE_NAME}.netlify.app`
+ : 'https://mui.com';
interface HeadProps {
card?: string;
diff --git a/docs/src/modules/components/HooksApiContent.js b/docs/src/modules/components/HooksApiContent.js
index ded5a05f01e5fa..acb36479c6dd62 100644
--- a/docs/src/modules/components/HooksApiContent.js
+++ b/docs/src/modules/components/HooksApiContent.js
@@ -27,11 +27,13 @@ function Heading(props) {
return (
- {getTranslatedHeader(t, hash, text)}
-
-
-
-
+
+ {getTranslatedHeader(t, hash, text)}
+
+
+
+
+
);
diff --git a/docs/src/modules/components/MarkdownDocs.js b/docs/src/modules/components/MarkdownDocs.js
index 9d12aef4dad2c5..5d1dc61a55b3c8 100644
--- a/docs/src/modules/components/MarkdownDocs.js
+++ b/docs/src/modules/components/MarkdownDocs.js
@@ -54,6 +54,10 @@ export default function MarkdownDocs(props) {
return (
{content.map(({ svg, title, link }) => (
-
+
))}
diff --git a/docs/src/modules/components/MaterialUIExampleCollection.js b/docs/src/modules/components/MaterialUIExampleCollection.js
index d53eddf8147e59..2c213f6d8074be 100644
--- a/docs/src/modules/components/MaterialUIExampleCollection.js
+++ b/docs/src/modules/components/MaterialUIExampleCollection.js
@@ -11,53 +11,53 @@ import CloudRoundedIcon from '@mui/icons-material/CloudRounded';
const examples = [
{
name: 'Next.js App Router',
- label: 'View JS example',
- tsLabel: 'View TS example',
+ label: 'View JavaScript',
+ tsLabel: 'View TypeScript',
link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-nextjs',
tsLink: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-nextjs-ts',
src: '/static/images/examples/next.svg',
},
- {
- name: 'Vite.js',
- label: 'View JS example',
- tsLabel: 'View TS example',
- link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-vite',
- tsLink: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-vite-ts',
- src: '/static/images/examples/vite.svg',
- },
{
name: 'Next.js Pages Router',
- label: 'View JS example',
- tsLabel: 'View TS example',
+ label: 'View JavaScript',
+ tsLabel: 'View TypeScript',
link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-nextjs-pages-router',
tsLink:
'https://github.com/mui/material-ui/tree/next/examples/material-ui-nextjs-pages-router-ts',
src: '/static/images/examples/next.svg',
},
+ {
+ name: 'Vite.js',
+ label: 'View JavaScript',
+ tsLabel: 'View TypeScript',
+ link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-vite',
+ tsLink: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-vite-ts',
+ src: '/static/images/examples/vite.svg',
+ },
{
name: 'Remix',
- label: 'View TS example',
+ label: 'View TypeScript',
link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-remix-ts',
src: '/static/images/examples/remix.svg',
},
- {
- name: 'Tailwind CSS + CRA',
- label: 'View TS example',
- link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-cra-tailwind-ts',
- src: '/static/images/examples/tailwindcss.svg',
- },
{
name: 'Create React App',
- label: 'View JS example',
- tsLabel: 'View TS example',
+ label: 'View JavaScript',
+ tsLabel: 'View TypeScript',
link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-cra',
tsLink: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-cra-ts',
src: '/static/images/examples/cra.svg',
},
+ {
+ name: 'Tailwind CSS + Create React App',
+ label: 'View TypeScript',
+ link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-cra-tailwind-ts',
+ src: '/static/images/examples/tailwindcss.svg',
+ },
{
name: 'styled-components',
- label: 'View JS example',
- tsLabel: 'View TS example',
+ label: 'View JavaScript',
+ tsLabel: 'View TypeScript',
link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-cra-styled-components',
tsLink:
'https://github.com/mui/material-ui/tree/next/examples/material-ui-cra-styled-components-ts',
@@ -65,31 +65,31 @@ const examples = [
},
{
name: 'Preact',
- label: 'View JS example',
+ label: 'View JavaScript',
link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-preact',
src: '/static/images/examples/preact.svg',
},
{
name: 'CDN',
- label: 'View JS example',
+ label: 'View JavaScript',
link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-via-cdn',
src: ,
},
{
name: 'Express.js (server-rendered)',
- label: 'View JS example',
+ label: 'View JavaScript',
link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-express-ssr',
src: '/static/images/examples/express.png',
},
{
name: 'Gatsby',
- label: 'View JS example',
+ label: 'View JavaScript',
link: 'https://github.com/mui/material-ui/tree/next/examples/material-ui-gatsby',
src: '/static/images/examples/gatsby.svg',
},
{
name: 'React-admin',
- label: 'View TS example',
+ label: 'View TypeScript',
link: 'https://github.com/marmelab/material-ui-react-admin',
src: '/static/images/examples/reactadmin.svg',
},
@@ -107,12 +107,7 @@ export default function MaterialUIExampleCollection() {
display: 'flex',
alignItems: 'center',
gap: 2,
- background: `${(theme.vars || theme).palette.gradients.linearSubtle}`,
- ...theme.applyDarkStyles({
- bgcolor: 'primaryDark.900',
- background: `${(theme.vars || theme).palette.gradients.linearSubtle}`,
- borderColor: 'primaryDark.700',
- }),
+ background: `${(theme.vars || theme).palette.gradients.radioSubtle}`,
})}
>
- •
+ /
{
+ const { github, name } = authors[author];
+ return `${name} @${github}`;
+ })
+ .join(',')}&product=Blog`;
if (process.env.NODE_ENV !== 'production') {
- if (headers.card === undefined) {
+ if (headers.manualCard === undefined) {
throw new Error(
[
- `MUI: the "card" markdown header for the blog post "${slug}" is missing.`,
- `Set card: true or card: false header in docs/pages/blog/${slug}.md.`,
+ `MUI: the "manualCard" markdown header for the blog post "${slug}" is missing.`,
+ `Set manualCard: true or manualCard: false header in docs/pages/blog/${slug}.md.`,
].join('\n'),
);
}
@@ -291,7 +314,7 @@ export default function TopLayoutBlog(props) {
true, the footer always appear at the bottom of the overflow table. ⚠️ It doesn't work with IE11."
+ "description": "If true
, the footer always appear at the bottom of the overflow table."
},
"stickyHeader": {
- "description": "If true
, the header always appear at the top of the overflow table. ⚠️ It doesn't work with IE11."
+ "description": "If true
, the header always appear at the top of the overflow table."
},
"stripe": {
"description": "The odd or even row of the table body will have subtle background color."
diff --git a/docs/translations/api-docs/step-connector/step-connector.json b/docs/translations/api-docs/step-connector/step-connector.json
index 87eacce62772ef..650f2fd5e5c8dd 100644
--- a/docs/translations/api-docs/step-connector/step-connector.json
+++ b/docs/translations/api-docs/step-connector/step-connector.json
@@ -35,13 +35,15 @@
"line": { "description": "Styles applied to {{nodeName}}.", "nodeName": "the line element" },
"lineHorizontal": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
- "nodeName": "the root element",
- "conditions": "orientation=\"horizontal\"
"
+ "nodeName": "the line element",
+ "conditions": "orientation=\"horizontal\"
",
+ "deprecationInfo": "Combine the .MuiStepConnector-horizontal and .MuiStepConnector-line classes instead. How to migrate "
},
"lineVertical": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
- "nodeName": "the root element",
- "conditions": "orientation=\"vertical\"
"
+ "nodeName": "the line element",
+ "conditions": "orientation=\"vertical\"
",
+ "deprecationInfo": "Combine the .MuiStepConnector-vertical and .MuiStepConnector-line classes instead. How to migrate "
},
"root": { "description": "Styles applied to the root element." },
"vertical": {
diff --git a/docs/translations/api-docs/step-label/step-label.json b/docs/translations/api-docs/step-label/step-label.json
index 7a68d574ce6f9d..7c281a6e0eec06 100644
--- a/docs/translations/api-docs/step-label/step-label.json
+++ b/docs/translations/api-docs/step-label/step-label.json
@@ -67,5 +67,8 @@
"conditions": "orientation=\"vertical\"
"
}
},
- "slotDescriptions": { "label": "The component that renders the label." }
+ "slotDescriptions": {
+ "label": "The component that renders the label.",
+ "stepIcon": "The component to render in place of the StepIcon
."
+ }
}
diff --git a/docs/translations/api-docs/tab-panel/tab-panel.json b/docs/translations/api-docs/tab-panel/tab-panel.json
index 97fdf34bb33934..9f39bbeca855b1 100644
--- a/docs/translations/api-docs/tab-panel/tab-panel.json
+++ b/docs/translations/api-docs/tab-panel/tab-panel.json
@@ -3,6 +3,7 @@
"propDescriptions": {
"children": { "description": "The content of the component." },
"classes": { "description": "Override or extend the styles applied to the component." },
+ "keepMounted": { "description": "Always keep the children in the DOM." },
"sx": {
"description": "The system prop that allows defining system overrides as well as additional CSS styles."
},
@@ -10,5 +11,12 @@
"description": "The value
of the corresponding Tab
. Must use the index of the Tab
when no value
was passed to Tab
."
}
},
- "classDescriptions": { "root": { "description": "Styles applied to the root element." } }
+ "classDescriptions": {
+ "hidden": {
+ "description": "State class applied to {{nodeName}} if {{conditions}}.",
+ "nodeName": "the root div
element",
+ "conditions": "hidden={true}
"
+ },
+ "root": { "description": "Styles applied to the root element." }
+ }
}
diff --git a/docs/translations/api-docs/table/table.json b/docs/translations/api-docs/table/table.json
index a121d095ef3c81..c84bbf8d0f86e7 100644
--- a/docs/translations/api-docs/table/table.json
+++ b/docs/translations/api-docs/table/table.json
@@ -10,9 +10,7 @@
},
"padding": { "description": "Allows TableCells to inherit padding of the Table." },
"size": { "description": "Allows TableCells to inherit size of the Table." },
- "stickyHeader": {
- "description": "Set the header sticky. ⚠️ It doesn't work with IE11."
- },
+ "stickyHeader": { "description": "Set the header sticky." },
"sx": {
"description": "The system prop that allows defining system overrides as well as additional CSS styles."
}
diff --git a/docs/translations/api-docs/toggle-button-group/toggle-button-group.json b/docs/translations/api-docs/toggle-button-group/toggle-button-group.json
index 21eccbcd92b660..a507c96bf9f224 100644
--- a/docs/translations/api-docs/toggle-button-group/toggle-button-group.json
+++ b/docs/translations/api-docs/toggle-button-group/toggle-button-group.json
@@ -50,12 +50,19 @@
"groupedHorizontal": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "orientation=\"horizontal\"
"
+ "conditions": "orientation=\"horizontal\"
",
+ "deprecationInfo": "Combine the .MuiToggleButtonGroup-horizontal and .MuiToggleButtonGroup-grouped classes instead. How to migrate "
},
"groupedVertical": {
"description": "Styles applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the children",
- "conditions": "orientation=\"vertical\"
"
+ "conditions": "orientation=\"vertical\"
",
+ "deprecationInfo": "Combine the .MuiToggleButtonGroup-vertical and .MuiToggleButtonGroup-grouped classes instead. How to migrate "
+ },
+ "horizontal": {
+ "description": "Styles applied to {{nodeName}} if {{conditions}}.",
+ "nodeName": "the root element",
+ "conditions": "orientation=\"horizontal\"
"
},
"lastButton": {
"description": "Styles applied to {{nodeName}}.",
diff --git a/docs/translations/translations.json b/docs/translations/translations.json
index 98890158834ba8..bafac961c28e71 100644
--- a/docs/translations/translations.json
+++ b/docs/translations/translations.json
@@ -281,6 +281,9 @@
"/material-ui/discover-more/backers": "Sponsors and Backers",
"/material-ui/discover-more/vision": "Vision",
"/material-ui/discover-more/changelog": "Changelog",
+ "/material-ui/design-resources": "Design resources",
+ "/material-ui/design-resources/material-ui-for-figma": "Material UI for Figma",
+ "/material-ui/design-resources/connect": "Connect plugin",
"https://mui.com/store/?utm_source=docs&utm_medium=referral&utm_campaign=sidenav": "Template store",
"/joy-ui/getting-started-group": "Getting started",
"/joy-ui/getting-started": "Overview",
diff --git a/examples/.eslintrc.js b/examples/.eslintrc.js
index 3b559e5a7c5b7a..1cfca7d337a8ca 100644
--- a/examples/.eslintrc.js
+++ b/examples/.eslintrc.js
@@ -12,4 +12,12 @@ module.exports = {
// create-vite generates .jsx
'react/jsx-filename-extension': 'off',
},
+ overrides: [
+ {
+ files: ['pigment-css-remix-ts/**/*.*'],
+ rules: {
+ 'react/react-in-jsx-scope': 'off',
+ },
+ },
+ ],
};
diff --git a/examples/base-ui-cra-ts/package.json b/examples/base-ui-cra-ts/package.json
index 427498085b9f0c..12a532a52261a3 100644
--- a/examples/base-ui-cra-ts/package.json
+++ b/examples/base-ui-cra-ts/package.json
@@ -3,7 +3,7 @@
"version": "5.0.0",
"private": true,
"dependencies": {
- "@mui/base": "latest",
+ "@mui/base": "next",
"@types/react": "latest",
"@types/react-dom": "latest",
"react": "latest",
diff --git a/examples/base-ui-cra/package.json b/examples/base-ui-cra/package.json
index b7367974062f6c..339c479c7ebfd0 100644
--- a/examples/base-ui-cra/package.json
+++ b/examples/base-ui-cra/package.json
@@ -3,7 +3,7 @@
"version": "5.0.0",
"private": true,
"dependencies": {
- "@mui/base": "latest",
+ "@mui/base": "next",
"react": "latest",
"react-dom": "latest",
"react-scripts": "latest"
diff --git a/examples/base-ui-nextjs-tailwind-ts/package.json b/examples/base-ui-nextjs-tailwind-ts/package.json
index df7aa7bf90f276..9d0b4aa4b0c9cc 100644
--- a/examples/base-ui-nextjs-tailwind-ts/package.json
+++ b/examples/base-ui-nextjs-tailwind-ts/package.json
@@ -10,7 +10,7 @@
"post-update": "echo \"codesandbox preview only, need an update\" && pnpm update --latest"
},
"dependencies": {
- "@mui/base": "latest",
+ "@mui/base": "next",
"clsx": "latest",
"next": "latest",
"react": "latest",
diff --git a/examples/base-ui-vite-tailwind-ts/package.json b/examples/base-ui-vite-tailwind-ts/package.json
index 030161a63f0991..a3ae0ef04d711f 100644
--- a/examples/base-ui-vite-tailwind-ts/package.json
+++ b/examples/base-ui-vite-tailwind-ts/package.json
@@ -10,7 +10,7 @@
"preview": "vite preview"
},
"dependencies": {
- "@mui/base": "latest",
+ "@mui/base": "next",
"react": "latest",
"react-dom": "latest"
},
diff --git a/examples/base-ui-vite-tailwind/package.json b/examples/base-ui-vite-tailwind/package.json
index eae01e51904be7..6f7b1369696907 100644
--- a/examples/base-ui-vite-tailwind/package.json
+++ b/examples/base-ui-vite-tailwind/package.json
@@ -9,7 +9,7 @@
"preview": "vite preview"
},
"dependencies": {
- "@mui/base": "latest",
+ "@mui/base": "next",
"react": "latest",
"react-dom": "latest"
},
diff --git a/examples/joy-ui-cra-ts/package.json b/examples/joy-ui-cra-ts/package.json
index f49142ca1fb58c..d49a7ef9051791 100644
--- a/examples/joy-ui-cra-ts/package.json
+++ b/examples/joy-ui-cra-ts/package.json
@@ -5,7 +5,7 @@
"dependencies": {
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/joy": "latest",
+ "@mui/joy": "next",
"@types/react": "latest",
"@types/react-dom": "latest",
"react": "latest",
diff --git a/examples/joy-ui-nextjs-ts/package.json b/examples/joy-ui-nextjs-ts/package.json
index 78e7e100f18cf0..8dd964dab2ca4e 100644
--- a/examples/joy-ui-nextjs-ts/package.json
+++ b/examples/joy-ui-nextjs-ts/package.json
@@ -13,7 +13,7 @@
"@emotion/cache": "latest",
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/joy": "latest",
+ "@mui/joy": "next",
"next": "latest",
"react": "latest",
"react-dom": "latest"
diff --git a/examples/joy-ui-vite-ts/package.json b/examples/joy-ui-vite-ts/package.json
index a48b10f9b57a6d..b2ec5a6b0b3cab 100644
--- a/examples/joy-ui-vite-ts/package.json
+++ b/examples/joy-ui-vite-ts/package.json
@@ -12,7 +12,7 @@
"dependencies": {
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/joy": "latest",
+ "@mui/joy": "next",
"react": "latest",
"react-dom": "latest"
},
diff --git a/examples/material-ui-cra-styled-components-ts/package.json b/examples/material-ui-cra-styled-components-ts/package.json
index 966c65fe21652c..b1ebe2eec3f1ee 100644
--- a/examples/material-ui-cra-styled-components-ts/package.json
+++ b/examples/material-ui-cra-styled-components-ts/package.json
@@ -3,9 +3,9 @@
"version": "5.0.0",
"private": true,
"dependencies": {
- "@mui/lab": "latest",
- "@mui/material": "latest",
- "@mui/styled-engine-sc": "^6.0.0",
+ "@mui/lab": "next",
+ "@mui/material": "next",
+ "@mui/styled-engine-sc": "next",
"@testing-library/jest-dom": "latest",
"@testing-library/react": "latest",
"@testing-library/user-event": "latest",
diff --git a/examples/material-ui-cra-styled-components/package.json b/examples/material-ui-cra-styled-components/package.json
index 1d4a7b240a15af..e0ab5b95a41d9e 100644
--- a/examples/material-ui-cra-styled-components/package.json
+++ b/examples/material-ui-cra-styled-components/package.json
@@ -3,9 +3,9 @@
"version": "5.0.0",
"private": true,
"dependencies": {
- "@mui/material": "latest",
- "@mui/lab": "latest",
- "@mui/styled-engine-sc": "^6.0.0",
+ "@mui/material": "next",
+ "@mui/lab": "next",
+ "@mui/styled-engine-sc": "next",
"@testing-library/jest-dom": "latest",
"@testing-library/react": "latest",
"@testing-library/user-event": "latest",
diff --git a/examples/material-ui-cra-tailwind-ts/package.json b/examples/material-ui-cra-tailwind-ts/package.json
index 7e5501badd283f..9eb5a216e038a9 100644
--- a/examples/material-ui-cra-tailwind-ts/package.json
+++ b/examples/material-ui-cra-tailwind-ts/package.json
@@ -5,7 +5,7 @@
"dependencies": {
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/material": "latest",
+ "@mui/material": "next",
"@testing-library/jest-dom": "latest",
"@testing-library/react": "latest",
"@testing-library/user-event": "latest",
diff --git a/examples/material-ui-cra-ts/package.json b/examples/material-ui-cra-ts/package.json
index 943a2266ee3186..3e67fb74443fe6 100644
--- a/examples/material-ui-cra-ts/package.json
+++ b/examples/material-ui-cra-ts/package.json
@@ -5,7 +5,7 @@
"dependencies": {
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/material": "latest",
+ "@mui/material": "next",
"@types/react": "latest",
"@types/react-dom": "latest",
"react": "latest",
diff --git a/examples/material-ui-cra/package.json b/examples/material-ui-cra/package.json
index b7490d21c0d880..e564d3c240a503 100644
--- a/examples/material-ui-cra/package.json
+++ b/examples/material-ui-cra/package.json
@@ -11,7 +11,7 @@
"dependencies": {
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/material": "latest",
+ "@mui/material": "next",
"react": "latest",
"react-dom": "latest",
"react-scripts": "latest"
diff --git a/examples/material-ui-express-ssr/package.json b/examples/material-ui-express-ssr/package.json
index 70631b8b2b9155..247b74df4cc922 100644
--- a/examples/material-ui-express-ssr/package.json
+++ b/examples/material-ui-express-ssr/package.json
@@ -15,7 +15,7 @@
"@emotion/react": "latest",
"@emotion/styled": "latest",
"@emotion/server": "latest",
- "@mui/material": "latest",
+ "@mui/material": "next",
"babel-loader": "latest",
"cross-env": "latest",
"express": "latest",
diff --git a/examples/material-ui-gatsby/package.json b/examples/material-ui-gatsby/package.json
index a705fd375a4fed..817e3e8e4d1b30 100644
--- a/examples/material-ui-gatsby/package.json
+++ b/examples/material-ui-gatsby/package.json
@@ -10,7 +10,7 @@
"@emotion/react": "latest",
"@emotion/server": "latest",
"@emotion/styled": "latest",
- "@mui/material": "latest",
+ "@mui/material": "next",
"gatsby": "latest",
"gatsby-plugin-react-helmet": "latest",
"react": "latest",
diff --git a/examples/material-ui-nextjs-pages-router-ts/package.json b/examples/material-ui-nextjs-pages-router-ts/package.json
index 1b522774bc1e53..269e388c33e9b0 100644
--- a/examples/material-ui-nextjs-pages-router-ts/package.json
+++ b/examples/material-ui-nextjs-pages-router-ts/package.json
@@ -14,9 +14,9 @@
"@emotion/react": "latest",
"@emotion/server": "latest",
"@emotion/styled": "latest",
- "@mui/icons-material": "latest",
- "@mui/material": "latest",
- "@mui/material-nextjs": "latest",
+ "@mui/icons-material": "next",
+ "@mui/material": "next",
+ "@mui/material-nextjs": "next",
"next": "latest",
"react": "latest",
"react-dom": "latest"
diff --git a/examples/material-ui-nextjs-pages-router/package.json b/examples/material-ui-nextjs-pages-router/package.json
index a246af69d94433..c092584d7e7da0 100644
--- a/examples/material-ui-nextjs-pages-router/package.json
+++ b/examples/material-ui-nextjs-pages-router/package.json
@@ -14,9 +14,9 @@
"@emotion/react": "latest",
"@emotion/server": "latest",
"@emotion/styled": "latest",
- "@mui/icons-material": "latest",
- "@mui/material": "latest",
- "@mui/material-nextjs": "latest",
+ "@mui/icons-material": "next",
+ "@mui/material": "next",
+ "@mui/material-nextjs": "next",
"next": "latest",
"prop-types": "latest",
"react": "latest",
diff --git a/examples/material-ui-nextjs-ts-v4-v5-migration/package.json b/examples/material-ui-nextjs-ts-v4-v5-migration/package.json
index a67c1d3d9aebd5..5de92715b5ff57 100644
--- a/examples/material-ui-nextjs-ts-v4-v5-migration/package.json
+++ b/examples/material-ui-nextjs-ts-v4-v5-migration/package.json
@@ -14,9 +14,9 @@
"@emotion/react": "latest",
"@emotion/server": "latest",
"@emotion/styled": "latest",
- "@mui/icons-material": "latest",
- "@mui/material": "latest",
- "@mui/material-nextjs": "latest",
+ "@mui/icons-material": "next",
+ "@mui/material": "next",
+ "@mui/material-nextjs": "next",
"@mui/styles": "latest",
"autoprefixer": "latest",
"clean-css": "latest",
diff --git a/examples/material-ui-nextjs-ts/package.json b/examples/material-ui-nextjs-ts/package.json
index 429d960765034e..77fe396f077013 100644
--- a/examples/material-ui-nextjs-ts/package.json
+++ b/examples/material-ui-nextjs-ts/package.json
@@ -13,9 +13,9 @@
"@emotion/cache": "latest",
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/icons-material": "latest",
- "@mui/material": "latest",
- "@mui/material-nextjs": "latest",
+ "@mui/icons-material": "next",
+ "@mui/material": "next",
+ "@mui/material-nextjs": "next",
"next": "latest",
"react": "latest",
"react-dom": "latest"
diff --git a/examples/material-ui-nextjs/package.json b/examples/material-ui-nextjs/package.json
index af1228ce229f01..b7429c67bf7080 100644
--- a/examples/material-ui-nextjs/package.json
+++ b/examples/material-ui-nextjs/package.json
@@ -12,9 +12,9 @@
"@emotion/cache": "latest",
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/icons-material": "latest",
- "@mui/material": "latest",
- "@mui/material-nextjs": "latest",
+ "@mui/icons-material": "next",
+ "@mui/material": "next",
+ "@mui/material-nextjs": "next",
"eslint": "latest",
"eslint-config-next": "latest",
"next": "latest",
diff --git a/examples/material-ui-preact/package.json b/examples/material-ui-preact/package.json
index 47394d072c47b6..1c055c4c6ecc12 100644
--- a/examples/material-ui-preact/package.json
+++ b/examples/material-ui-preact/package.json
@@ -6,7 +6,7 @@
"@babel/helper-builder-react-jsx": "latest",
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/material": "latest",
+ "@mui/material": "next",
"@testing-library/jest-dom": "latest",
"@testing-library/react": "latest",
"@testing-library/user-event": "latest",
diff --git a/examples/material-ui-remix-ts/package.json b/examples/material-ui-remix-ts/package.json
index 53bb95073a3688..e32d75a114d90d 100644
--- a/examples/material-ui-remix-ts/package.json
+++ b/examples/material-ui-remix-ts/package.json
@@ -13,7 +13,7 @@
"@emotion/react": "latest",
"@emotion/server": "latest",
"@emotion/styled": "latest",
- "@mui/material": "latest",
+ "@mui/material": "next",
"@remix-run/css-bundle": "latest",
"@remix-run/node": "latest",
"@remix-run/react": "latest",
diff --git a/examples/material-ui-vite-ts/package.json b/examples/material-ui-vite-ts/package.json
index f8b6eefe8053d1..82545735254b39 100644
--- a/examples/material-ui-vite-ts/package.json
+++ b/examples/material-ui-vite-ts/package.json
@@ -11,8 +11,8 @@
"dependencies": {
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/icons-material": "latest",
- "@mui/material": "latest",
+ "@mui/icons-material": "next",
+ "@mui/material": "next",
"react": "latest",
"react-dom": "latest"
},
diff --git a/examples/material-ui-vite/package.json b/examples/material-ui-vite/package.json
index 71c02e87add914..7ad6bbab50d540 100644
--- a/examples/material-ui-vite/package.json
+++ b/examples/material-ui-vite/package.json
@@ -10,7 +10,7 @@
"dependencies": {
"@emotion/react": "latest",
"@emotion/styled": "latest",
- "@mui/material": "latest",
+ "@mui/material": "next",
"react": "latest",
"react-dom": "latest"
},
diff --git a/examples/pigment-css-nextjs-ts/package.json b/examples/pigment-css-nextjs-ts/package.json
index b2579629a61906..f0cbed14e0dc94 100644
--- a/examples/pigment-css-nextjs-ts/package.json
+++ b/examples/pigment-css-nextjs-ts/package.json
@@ -10,13 +10,13 @@
"post-update": "echo \"codesandbox preview only, need an update\" && pnpm update --latest"
},
"dependencies": {
- "@pigment-css/react": "latest",
+ "@pigment-css/react": "next",
"react": "latest",
"react-dom": "latest",
"next": "latest"
},
"devDependencies": {
- "@pigment-css/nextjs-plugin": "latest",
+ "@pigment-css/nextjs-plugin": "next",
"@types/node": "latest",
"@types/react": "latest",
"@types/react-dom": "latest",
diff --git a/examples/pigment-css-remix-ts/.gitignore b/examples/pigment-css-remix-ts/.gitignore
new file mode 100644
index 00000000000000..80ec311f4ff554
--- /dev/null
+++ b/examples/pigment-css-remix-ts/.gitignore
@@ -0,0 +1,5 @@
+node_modules
+
+/.cache
+/build
+.env
diff --git a/examples/pigment-css-remix-ts/.stackblitzrc b/examples/pigment-css-remix-ts/.stackblitzrc
new file mode 100644
index 00000000000000..09e22c0da2fc3a
--- /dev/null
+++ b/examples/pigment-css-remix-ts/.stackblitzrc
@@ -0,0 +1,3 @@
+{
+ "startCommand": "npm run dev"
+}
diff --git a/examples/pigment-css-remix-ts/README.md b/examples/pigment-css-remix-ts/README.md
new file mode 100644
index 00000000000000..b4f664d958df04
--- /dev/null
+++ b/examples/pigment-css-remix-ts/README.md
@@ -0,0 +1,34 @@
+# Pigment CSS - Remix with TypeScript example project
+
+## How to use
+
+Download the example [or clone the repo](https://github.com/mui/material-ui):
+
+
+
+```bash
+curl https://codeload.github.com/mui/material-ui/tar.gz/next | tar -xz --strip=2 material-ui-next/examples/pigment-css-remix-ts
+cd pigment-css-remix-ts
+```
+
+Install it and run:
+
+```bash
+npm install
+npm run dev
+```
+
+or:
+
+
+
+[![Edit on StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/mui/material-ui/tree/next/examples/pigment-css-remix-ts)
+
+[![Edit on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/p/sandbox/github/mui/material-ui/tree/next/examples/pigment-css-remix-ts)
+
+## Learn more
+
+To learn more about this example:
+
+- [Pigment CSS documentation](https://github.com/mui/material-ui/blob/next/packages/pigment-css-react/README.md) - learn more about Pigment CSS features and APIs.
+- [Remix documentation](https://remix.run/docs) - learn about Remix features and APIs.
diff --git a/examples/pigment-css-remix-ts/app/augment.d.ts b/examples/pigment-css-remix-ts/app/augment.d.ts
new file mode 100644
index 00000000000000..f4b2cbccbac936
--- /dev/null
+++ b/examples/pigment-css-remix-ts/app/augment.d.ts
@@ -0,0 +1,18 @@
+import type { ExtendTheme } from '@pigment-css/react/theme';
+
+declare module '@pigment-css/react/theme' {
+ export interface ThemeArgs {
+ theme: ExtendTheme<{
+ colorScheme: 'light' | 'dark';
+ tokens: {
+ palette: {
+ background: string;
+ foreground: string;
+ primary: string;
+ primaryForeground: string;
+ border: string;
+ };
+ };
+ }>;
+ }
+}
diff --git a/examples/pigment-css-remix-ts/app/entry.client.tsx b/examples/pigment-css-remix-ts/app/entry.client.tsx
new file mode 100644
index 00000000000000..9285c83c7d4495
--- /dev/null
+++ b/examples/pigment-css-remix-ts/app/entry.client.tsx
@@ -0,0 +1,18 @@
+/**
+ * By default, Remix will handle hydrating your app on the client for you.
+ * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` ✨
+ * For more information, see https://remix.run/file-conventions/entry.client
+ */
+
+import { RemixBrowser } from '@remix-run/react';
+import * as React from 'react';
+import * as ReactDOMClient from 'react-dom/client';
+
+React.startTransition(() => {
+ ReactDOMClient.hydrateRoot(
+ document,
+
+
+ ,
+ );
+});
diff --git a/examples/pigment-css-remix-ts/app/entry.server.tsx b/examples/pigment-css-remix-ts/app/entry.server.tsx
new file mode 100644
index 00000000000000..7f7421885a0f38
--- /dev/null
+++ b/examples/pigment-css-remix-ts/app/entry.server.tsx
@@ -0,0 +1,122 @@
+/**
+ * By default, Remix will handle generating the HTTP Response for you.
+ * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` ✨
+ * For more information, see https://remix.run/file-conventions/entry.server
+ */
+
+import { PassThrough } from 'node:stream';
+
+import type { AppLoadContext, EntryContext } from '@remix-run/node';
+import { createReadableStreamFromReadable } from '@remix-run/node';
+import { RemixServer } from '@remix-run/react';
+import { isbot } from 'isbot';
+import * as ReactDOMServer from 'react-dom/server';
+
+const ABORT_DELAY = 5_000;
+
+export default function handleRequest(
+ request: Request,
+ responseStatusCode: number,
+ responseHeaders: Headers,
+ remixContext: EntryContext,
+ // This is ignored so we can keep it in the template for visibility. Feel
+ // free to delete this parameter in your app if you're not using it!
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ loadContext: AppLoadContext,
+) {
+ return isbot(request.headers.get('user-agent') || '')
+ ? handleBotRequest(request, responseStatusCode, responseHeaders, remixContext)
+ : handleBrowserRequest(request, responseStatusCode, responseHeaders, remixContext);
+}
+
+function handleBotRequest(
+ request: Request,
+ responseStatusCode: number,
+ responseHeaders: Headers,
+ remixContext: EntryContext,
+) {
+ return new Promise((resolve, reject) => {
+ let shellRendered = false;
+ const { pipe, abort } = renderToPipeableStream(
+ ,
+ {
+ onAllReady() {
+ shellRendered = true;
+ const body = new PassThrough();
+ const stream = createReadableStreamFromReadable(body);
+
+ responseHeaders.set('Content-Type', 'text/html');
+
+ resolve(
+ new Response(stream, {
+ headers: responseHeaders,
+ status: responseStatusCode,
+ }),
+ );
+
+ pipe(body);
+ },
+ onShellError(error: unknown) {
+ reject(error);
+ },
+ onError(error: unknown) {
+ responseStatusCode = 500;
+ // Log streaming rendering errors from inside the shell. Don't log
+ // errors encountered during initial shell rendering since they'll
+ // reject and get logged in handleDocumentRequest.
+ if (shellRendered) {
+ console.error(error);
+ }
+ },
+ },
+ );
+
+ setTimeout(abort, ABORT_DELAY);
+ });
+}
+
+function handleBrowserRequest(
+ request: Request,
+ responseStatusCode: number,
+ responseHeaders: Headers,
+ remixContext: EntryContext,
+) {
+ return new Promise((resolve, reject) => {
+ let shellRendered = false;
+ const { pipe, abort } = ReactDOMServer.renderToPipeableStream(
+ ,
+ {
+ onShellReady() {
+ shellRendered = true;
+ const body = new PassThrough();
+ const stream = createReadableStreamFromReadable(body);
+
+ responseHeaders.set('Content-Type', 'text/html');
+
+ resolve(
+ new Response(stream, {
+ headers: responseHeaders,
+ status: responseStatusCode,
+ }),
+ );
+
+ pipe(body);
+ },
+ onShellError(error: unknown) {
+ reject(error);
+ },
+ onError(error: unknown) {
+ responseStatusCode = 500;
+ // Log streaming rendering errors from inside the shell. Don't log
+ // errors encountered during initial shell rendering since they'll
+ // reject and get logged in handleDocumentRequest.
+ if (shellRendered) {
+ console.error(error);
+ }
+ },
+ },
+ );
+
+ setTimeout(abort, ABORT_DELAY);
+ });
+}
diff --git a/examples/pigment-css-remix-ts/app/root.tsx b/examples/pigment-css-remix-ts/app/root.tsx
new file mode 100644
index 00000000000000..bc08b4c113bfc4
--- /dev/null
+++ b/examples/pigment-css-remix-ts/app/root.tsx
@@ -0,0 +1,31 @@
+import { Links, Meta, Outlet, Scripts, ScrollRestoration } from '@remix-run/react';
+import { css } from '@pigment-css/react';
+import '@pigment-css/react/styles.css';
+
+export function Layout({ children }: { children: React.ReactNode }) {
+ return (
+
+
+
+
+
+
+
+
+
+ {children}
+
+
+
+
+ );
+}
+
+export default function App() {
+ return ;
+}
diff --git a/examples/pigment-css-remix-ts/app/routes/_index.tsx b/examples/pigment-css-remix-ts/app/routes/_index.tsx
new file mode 100644
index 00000000000000..845e6c7b4e6c09
--- /dev/null
+++ b/examples/pigment-css-remix-ts/app/routes/_index.tsx
@@ -0,0 +1,201 @@
+import type { MetaFunction } from '@remix-run/node';
+import { styled, css, keyframes } from '@pigment-css/react';
+
+export const meta: MetaFunction = () => [
+ {
+ title: 'Pigment CSS + Remix + Typescript Example',
+ },
+ { name: 'description', content: 'Welcome to Pigment CSS demo with Remix!' },
+];
+
+const scale = keyframes({
+ to: { scale: 'var(--s2)' },
+});
+
+const Link = styled.a(({ theme }) => ({
+ fontSize: '1rem',
+ background: 'rgba(0 0 0 / 0.04)',
+ padding: '0.8rem 1rem',
+ letterSpacing: '1px',
+ borderRadius: '8px',
+ textAlign: 'center',
+ ...theme.applyStyles('dark', {
+ background: 'rgba(255 255 255 / 0.1)',
+ }),
+ variants: [
+ {
+ props: { outlined: true },
+ style: {
+ background: 'transparent',
+ color: `hsl(${theme.vars.palette.primary})`,
+ border: `1px solid hsl(${theme.vars.palette.border})`,
+ },
+ },
+ ],
+}));
+
+const Bubble = styled('span')({
+ height: 'var(--size, 100%)',
+ aspectRatio: '1',
+ background: 'radial-gradient(hsl(var(--h) 100% 70%) 25%, transparent 50%)',
+ position: 'absolute',
+ display: 'inline-block',
+ left: 'var(--x, 0)',
+ top: 'var(--y, 0)',
+ scale: '0',
+ translate: '-50% -50%',
+ mixBlendMode: 'multiply',
+ filter: 'blur(2px)',
+ animation: `${scale} var(--s, 2s) var(--d, 0s) infinite alternate`,
+});
+
+function randomBetween(min: number, max: number) {
+ return Math.floor(Math.random() * (max - min + 1) + min);
+}
+
+function generateBubbleVars() {
+ return `
+ --x: ${randomBetween(10, 90)}%;
+ --y: ${randomBetween(15, 85)}%;
+ --h: ${randomBetween(0, 360)};
+ --s2: ${randomBetween(2, 6)};
+ --d: -${randomBetween(250, 400) / 1000}s;
+ --s: ${randomBetween(3, 6)}s;
+ `;
+}
+
+export default function Index() {
+ return (
+
+ ({
+ fontFamily: 'system-ui, sans-serif',
+ fontSize: '4rem',
+ fontWeight: 500,
+ textAlign: 'center',
+ position: 'relative',
+ display: 'flex',
+ alignItems: 'center',
+ color: '#888',
+ marginBottom: '1rem',
+ ...theme.applyStyles('dark', { color: '#fff' }),
+ }))}`}
+ >
+ Pigment CSS
+ ({
+ position: 'absolute',
+ inset: '0',
+ background: 'white',
+ mixBlendMode: 'color-burn',
+ overflow: 'hidden',
+ pointerEvents: 'none',
+ ...theme.applyStyles('dark', {
+ mixBlendMode: 'darken',
+ filter: 'brightness(2)',
+ }),
+ }))}
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CSS-in-JS library with static extraction
+
+
+
+ Documentation
+
+
+ Roadmap
+
+
+
+ );
+}
diff --git a/examples/pigment-css-remix-ts/package.json b/examples/pigment-css-remix-ts/package.json
new file mode 100644
index 00000000000000..21fbee6451ff9d
--- /dev/null
+++ b/examples/pigment-css-remix-ts/package.json
@@ -0,0 +1,33 @@
+{
+ "name": "pigment-css-remix-ts",
+ "private": true,
+ "sideEffects": false,
+ "type": "module",
+ "scripts": {
+ "build": "remix vite:build",
+ "dev": "remix vite:dev",
+ "start": "remix-serve ./build/server/index.js",
+ "typecheck": "tsc"
+ },
+ "dependencies": {
+ "@pigment-css/react": "next",
+ "@remix-run/node": "latest",
+ "@remix-run/react": "latest",
+ "@remix-run/serve": "latest",
+ "isbot": "latest",
+ "react": "latest",
+ "react-dom": "^18.2.0"
+ },
+ "devDependencies": {
+ "@pigment-css/vite-plugin": "next",
+ "@remix-run/dev": "latest",
+ "@types/react": "latest",
+ "@types/react-dom": "latest",
+ "typescript": "latest",
+ "vite": "latest",
+ "vite-tsconfig-paths": "latest"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+}
diff --git a/examples/pigment-css-remix-ts/public/favicon.ico b/examples/pigment-css-remix-ts/public/favicon.ico
new file mode 100644
index 00000000000000..8830cf6821b354
Binary files /dev/null and b/examples/pigment-css-remix-ts/public/favicon.ico differ
diff --git a/examples/pigment-css-remix-ts/tsconfig.json b/examples/pigment-css-remix-ts/tsconfig.json
new file mode 100644
index 00000000000000..9d87dd378f5cb1
--- /dev/null
+++ b/examples/pigment-css-remix-ts/tsconfig.json
@@ -0,0 +1,32 @@
+{
+ "include": [
+ "**/*.ts",
+ "**/*.tsx",
+ "**/.server/**/*.ts",
+ "**/.server/**/*.tsx",
+ "**/.client/**/*.ts",
+ "**/.client/**/*.tsx"
+ ],
+ "compilerOptions": {
+ "lib": ["DOM", "DOM.Iterable", "ES2022"],
+ "types": ["@remix-run/node", "vite/client"],
+ "isolatedModules": true,
+ "esModuleInterop": true,
+ "jsx": "react-jsx",
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ "resolveJsonModule": true,
+ "target": "ES2022",
+ "strict": true,
+ "allowJs": true,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "baseUrl": ".",
+ "paths": {
+ "~/*": ["./app/*"]
+ },
+
+ // Vite takes care of building everything, not tsc.
+ "noEmit": true
+ }
+}
diff --git a/examples/pigment-css-remix-ts/vite.config.ts b/examples/pigment-css-remix-ts/vite.config.ts
new file mode 100644
index 00000000000000..698e3d23838048
--- /dev/null
+++ b/examples/pigment-css-remix-ts/vite.config.ts
@@ -0,0 +1,39 @@
+import { vitePlugin as remix } from '@remix-run/dev';
+import { installGlobals } from '@remix-run/node';
+import { defineConfig } from 'vite';
+import tsconfigPaths from 'vite-tsconfig-paths';
+import { pigment, extendTheme } from '@pigment-css/vite-plugin';
+
+installGlobals();
+
+// To learn more about theming, visit https://github.com/mui/material-ui/blob/master/packages/zero-runtime/README.md#theming
+const theme = extendTheme({
+ colorSchemes: {
+ light: {
+ palette: {
+ background: '0 0% 100%',
+ foreground: '240 10% 3.9%',
+ primary: '240 5.9% 10%',
+ border: '240 5.9% 90%',
+ },
+ },
+ dark: {
+ palette: {
+ background: '240 10% 3.9%',
+ foreground: '0 0% 80%',
+ primary: '0 0% 98%',
+ border: '240 3.7% 15.9%',
+ },
+ },
+ },
+});
+
+export default defineConfig({
+ plugins: [
+ pigment({
+ theme,
+ }),
+ remix(),
+ tsconfigPaths(),
+ ],
+});
diff --git a/examples/pigment-css-vite-ts/package.json b/examples/pigment-css-vite-ts/package.json
index 8b61ac52d46cb2..a4691ef62945f3 100644
--- a/examples/pigment-css-vite-ts/package.json
+++ b/examples/pigment-css-vite-ts/package.json
@@ -9,12 +9,12 @@
"preview": "vite preview"
},
"dependencies": {
- "@pigment-css/react": "latest",
+ "@pigment-css/react": "next",
"react": "latest",
"react-dom": "latest"
},
"devDependencies": {
- "@pigment-css/vite-plugin": "latest",
+ "@pigment-css/vite-plugin": "next",
"@types/react": "latest",
"@types/react-dom": "latest",
"@vitejs/plugin-react": "latest",
diff --git a/netlify/edge-functions/og-image.tsx b/netlify/edge-functions/og-image.tsx
new file mode 100644
index 00000000000000..43c6eab58a42e7
--- /dev/null
+++ b/netlify/edge-functions/og-image.tsx
@@ -0,0 +1,268 @@
+import React from 'https://esm.sh/react@18.2.0';
+// eslint-disable-next-line import/extensions
+import { ImageResponse } from 'https://deno.land/x/og_edge/mod.ts';
+
+const MAX_AUTHORS = 5;
+export default async function handler(req: Request) {
+ const params = new URL(req.url).searchParams;
+ const title = params.get('title');
+ const authors = params.get('authors');
+ const product = params.get('product');
+ const description = params.get('description');
+
+ const parsedAuthors =
+ authors &&
+ authors
+ .split(',')
+ .map((author) => {
+ const [name, github] = author.split('@');
+ return { name: name.trim(), github: github.trim() };
+ })
+ .filter(({ name, github }) => name && github);
+
+ const withAuthors = parsedAuthors && parsedAuthors.length > 0;
+ let starCount = 0;
+
+ return new ImageResponse(
+ (
+
+
+
+
+
+
+
+
+
+ {product}
+
+
+
+ {title &&
+ title.split('\\n').map((line) => (
+
+ {line.split('*').flatMap((text, index) => {
+ if (index > 0) {
+ starCount += 1;
+ }
+
+ const isBlue = starCount % 2 === 1;
+ return text.split(' ').map((word) => (
+ 0 ? 15 : 0,
+ }}
+ >
+ {word}
+
+ ));
+ })}
+
+ ))}
+ {description && (
+
+ {description}
+
+ )}
+
+
+ {withAuthors &&
+ parsedAuthors.slice(0, MAX_AUTHORS).map(({ name, github }) => {
+ return (
+
+
+
+
+
+
+ {name}
+
+
+ @{github}
+
+
+
+ );
+ })}
+
+
+
+ ),
+ {
+ width: 1280,
+ height: 640,
+ // debug: true,
+ fonts: [
+ {
+ name: 'IBM Plex Sans',
+ data: await fetch('https://fonts.cdnfonts.com/s/15449/IBMPlexSans-SemiBold.woff').then(
+ (a) => a.arrayBuffer(),
+ ),
+ weight: 600,
+ style: 'normal',
+ },
+ {
+ name: 'General Sans',
+ data: await fetch('https://fonts.cdnfonts.com/s/85793/GeneralSans-Semibold.woff').then(
+ (a) => a.arrayBuffer(),
+ ),
+ weight: 600,
+ style: 'normal',
+ },
+ {
+ name: 'General Sans',
+ data: await fetch('https://fonts.cdnfonts.com/s/85793/GeneralSans-Bold.woff').then((a) =>
+ a.arrayBuffer(),
+ ),
+ weight: 700,
+ style: 'normal',
+ },
+ ],
+ // Manage the caching
+ headers: {
+ // Cache control is already done by the package (https://github.com/ascorbic/og-edge/blob/d533ef878801d7f808eb004f254e782ec6ba1e3c/mod.ts#L233-L240)
+ 'Netlify-Vary': 'query',
+ },
+ },
+ );
+}
+export const config = {
+ cache: 'manual',
+ path: '/edge-functions/og-image',
+};
diff --git a/package.json b/package.json
index 0a4be5b7b77218..64b729f294cc42 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/monorepo",
- "version": "6.0.0-alpha.0",
+ "version": "6.0.0-alpha.2",
"private": true,
"scripts": {
"preinstall": "npx only-allow pnpm",
@@ -47,7 +47,7 @@
"stylelint": "stylelint --reportInvalidScopeDisables --reportNeedlessDisables \"docs/**/*.{js,ts,tsx}\"",
"markdownlint": "markdownlint-cli2 \"**/*.md\"",
"valelint": "git ls-files | grep -h \".md$\" | xargs vale --filter='.Level==\"error\"'",
- "prettier": "pretty-quick --ignore-path .eslintignore",
+ "prettier": "pretty-quick --ignore-path .eslintignore --branch next",
"prettier:all": "prettier --write . --ignore-path .eslintignore",
"size:snapshot": "node --max-old-space-size=4096 ./scripts/sizeSnapshot/create",
"size:why": "pnpm size:snapshot --analyze",
@@ -91,19 +91,19 @@
},
"devDependencies": {
"@argos-ci/core": "^1.5.5",
- "@babel/cli": "^7.23.9",
- "@babel/core": "^7.23.9",
+ "@babel/cli": "^7.24.1",
+ "@babel/core": "^7.24.4",
"@babel/node": "^7.23.9",
"@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/plugin-proposal-object-rest-spread": "^7.20.7",
"@babel/plugin-proposal-private-methods": "^7.18.6",
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
- "@babel/plugin-transform-object-assign": "^7.23.3",
- "@babel/plugin-transform-react-constant-elements": "^7.23.3",
- "@babel/plugin-transform-runtime": "^7.23.9",
- "@babel/preset-env": "^7.23.9",
- "@babel/preset-react": "^7.23.3",
- "@babel/preset-typescript": "^7.23.3",
+ "@babel/plugin-transform-object-assign": "^7.24.1",
+ "@babel/plugin-transform-react-constant-elements": "^7.24.1",
+ "@babel/plugin-transform-runtime": "^7.24.3",
+ "@babel/preset-env": "^7.24.4",
+ "@babel/preset-react": "^7.24.1",
+ "@babel/preset-typescript": "^7.24.1",
"@babel/register": "^7.23.7",
"@mnajdova/enzyme-adapter-react-18": "^0.2.0",
"@mui/internal-docs-utils": "workspace:^",
@@ -114,20 +114,20 @@
"@mui/joy": "workspace:*",
"@mui/material": "workspace:^",
"@mui/utils": "workspace:^",
+ "@next/eslint-plugin-next": "^14.2.1",
+ "@octokit/rest": "^20.1.0",
"@pigment-css/react": "workspace:^",
- "@next/eslint-plugin-next": "^14.1.4",
- "@octokit/rest": "^20.0.2",
- "@playwright/test": "1.42.1",
+ "@playwright/test": "1.43.1",
"@types/enzyme": "^3.10.18",
"@types/fs-extra": "^11.0.4",
"@types/lodash": "^4.17.0",
"@types/mocha": "^10.0.6",
- "@types/node": "^18.19.25",
+ "@types/node": "^18.19.31",
"@types/prettier": "^2.7.3",
"@types/react": "^18.2.55",
"@types/yargs": "^17.0.32",
- "@typescript-eslint/eslint-plugin": "^6.19.1",
- "@typescript-eslint/parser": "^6.19.1",
+ "@typescript-eslint/eslint-plugin": "^6.21.0",
+ "@typescript-eslint/parser": "^6.21.0",
"babel-loader": "^9.1.3",
"babel-plugin-istanbul": "^6.1.1",
"babel-plugin-macros": "^3.1.0",
@@ -153,7 +153,7 @@
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-material-ui": "workspace:^",
- "eslint-plugin-mocha": "^10.4.1",
+ "eslint-plugin-mocha": "^10.4.2",
"eslint-plugin-react": "^7.34.1",
"eslint-plugin-react-hooks": "^4.6.0",
"fast-glob": "^3.3.2",
@@ -169,8 +169,8 @@
"karma-webpack": "^5.0.0",
"lerna": "^8.1.2",
"lodash": "^4.17.21",
- "markdownlint-cli2": "^0.12.1",
- "mocha": "^10.3.0",
+ "markdownlint-cli2": "^0.13.0",
+ "mocha": "^10.4.0",
"nx": "^17.3.2",
"nyc": "^15.1.0",
"piscina": "^4.4.0",
@@ -186,33 +186,33 @@
"stylelint-processor-styled-components": "^1.10.0",
"terser-webpack-plugin": "^5.3.10",
"tsup": "^8.0.2",
- "tsx": "^4.7.1",
- "typescript": "^5.4.3",
+ "tsx": "^4.7.2",
+ "typescript": "^5.4.5",
"webpack": "^5.90.3",
- "webpack-bundle-analyzer": "^4.10.1",
+ "webpack-bundle-analyzer": "^4.10.2",
"webpack-cli": "^5.1.4",
"yargs": "^17.7.2"
},
- "packageManager": "pnpm@8.15.5",
+ "packageManager": "pnpm@8.15.7",
"resolutions": {
- "@babel/core": "^7.23.9",
- "@babel/code-frame": "^7.23.5",
+ "@babel/core": "^7.24.4",
+ "@babel/code-frame": "^7.24.2",
"@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/plugin-proposal-object-rest-spread": "^7.20.7",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
"@babel/plugin-proposal-numeric-separator": "^7.18.6",
"@babel/plugin-proposal-optional-chaining": "^7.21.0",
"@babel/plugin-transform-destructuring": "npm:@minh.nguyen/plugin-transform-destructuring@^7.5.2",
- "@babel/plugin-transform-runtime": "^7.23.9",
- "@babel/preset-env": "^7.23.9",
- "@babel/preset-react": "^7.23.3",
- "@babel/preset-typescript": "^7.23.3",
- "@babel/runtime": "^7.23.9",
- "@babel/types": "^7.23.9",
- "@definitelytyped/header-parser": "^0.2.8",
+ "@babel/plugin-transform-runtime": "^7.24.3",
+ "@babel/preset-env": "^7.24.4",
+ "@babel/preset-react": "^7.24.1",
+ "@babel/preset-typescript": "^7.24.1",
+ "@babel/runtime": "^7.24.4",
+ "@babel/types": "^7.24.0",
+ "@definitelytyped/header-parser": "^0.2.9",
"@definitelytyped/typescript-versions": "^0.1.1",
- "@definitelytyped/utils": "^0.1.5",
- "@types/node": "^18.19.25",
+ "@definitelytyped/utils": "^0.1.6",
+ "@types/node": "^18.19.31",
"@types/react": "18.2.55",
"@types/react-dom": "18.2.19",
"cross-fetch": "^4.0.0"
@@ -227,5 +227,10 @@
],
"sourceMap": false,
"instrument": false
+ },
+ "pnpm": {
+ "patchedDependencies": {
+ "@wyw-in-js/transform@0.5.0": "patches/@wyw-in-js__transform@0.5.0.patch"
+ }
}
}
diff --git a/packages-internal/docs-utils/package.json b/packages-internal/docs-utils/package.json
index c0ac779a5cf3f5..ad899d5b59ee0d 100644
--- a/packages-internal/docs-utils/package.json
+++ b/packages-internal/docs-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/internal-docs-utils",
- "version": "1.0.4",
+ "version": "1.0.5",
"author": "MUI Team",
"description": "Utilities for MUI docs. This is an internal package not meant for general use.",
"main": "./build/index.js",
@@ -22,7 +22,7 @@
},
"dependencies": {
"rimraf": "^5.0.5",
- "typescript": "^5.4.3"
+ "typescript": "^5.4.5"
},
"publishConfig": {
"access": "public"
diff --git a/packages-internal/scripts/package.json b/packages-internal/scripts/package.json
index 216db827dddbab..76070d91afba5d 100644
--- a/packages-internal/scripts/package.json
+++ b/packages-internal/scripts/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/internal-scripts",
- "version": "1.0.4",
+ "version": "1.0.5",
"author": "MUI Team",
"description": "Utilities supporting MUI libraries build and docs generation. This is an internal package not meant for general use.",
"main": "build/index.js",
@@ -25,24 +25,24 @@
"typescript": "tsc --build tsconfig.typecheck.json"
},
"dependencies": {
- "@babel/core": "^7.23.9",
+ "@babel/core": "^7.24.4",
"@babel/plugin-syntax-class-properties": "^7.12.13",
- "@babel/plugin-syntax-jsx": "^7.23.3",
- "@babel/plugin-syntax-typescript": "^7.23.3",
- "@babel/types": "^7.23.9",
+ "@babel/plugin-syntax-jsx": "^7.24.1",
+ "@babel/plugin-syntax-typescript": "^7.24.1",
+ "@babel/types": "^7.24.0",
"@mui/internal-docs-utils": "workspace:^",
"doctrine": "^3.0.0",
"lodash": "^4.17.21",
- "typescript": "^5.4.3",
+ "typescript": "^5.4.5",
"uuid": "^9.0.1"
},
"devDependencies": {
"@babel/register": "^7.23.7",
"@types/babel__core": "^7.20.5",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/doctrine": "^0.0.9",
"@types/lodash": "^4.17.0",
- "@types/node": "^18.19.25",
+ "@types/node": "^18.19.31",
"@types/prettier": "^2.7.3",
"@types/react": "^18.2.55",
"@types/uuid": "^9.0.8",
diff --git a/packages/api-docs-builder-core/package.json b/packages/api-docs-builder-core/package.json
index 37f272ad29bed4..1897564ff22376 100644
--- a/packages/api-docs-builder-core/package.json
+++ b/packages/api-docs-builder-core/package.json
@@ -15,12 +15,12 @@
"lodash": "^4.17.21"
},
"devDependencies": {
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/mocha": "^10.0.6",
- "@types/node": "^18.19.25",
+ "@types/node": "^18.19.31",
"@types/sinon": "^10.0.20",
"chai": "^4.4.1",
"sinon": "^15.2.0",
- "typescript": "^5.4.3"
+ "typescript": "^5.4.5"
}
}
diff --git a/packages/api-docs-builder/ApiBuilders/HookApiBuilder.ts b/packages/api-docs-builder/ApiBuilders/HookApiBuilder.ts
index f02e5e6d9de344..2f48f39bc9d73f 100644
--- a/packages/api-docs-builder/ApiBuilders/HookApiBuilder.ts
+++ b/packages/api-docs-builder/ApiBuilders/HookApiBuilder.ts
@@ -482,7 +482,7 @@ const extractInfoFromType = async (
* @param filename The filename where its defined (to infer the package)
* @returns an array of import command
*/
-const getHookImports = (name: string, filename: string) => {
+const defaultGetHookImports = (name: string, filename: string) => {
const githubPath = toGitHubPath(filename);
const rootImportPath = githubPath.replace(
/\/packages\/mui(?:-(.+?))?\/src\/.*/,
@@ -552,6 +552,8 @@ export default async function generateHookApi(
if (annotatedDescriptionMatch !== null) {
reactApi.description = reactApi.description.slice(0, annotatedDescriptionMatch.index).trim();
}
+
+ const { getHookImports = defaultGetHookImports } = projectSettings;
reactApi.filename = filename;
reactApi.name = name;
reactApi.imports = getHookImports(name, filename);
diff --git a/packages/api-docs-builder/ProjectSettings.ts b/packages/api-docs-builder/ProjectSettings.ts
index 2ba937f0a4e9b2..3ae895666b561e 100644
--- a/packages/api-docs-builder/ProjectSettings.ts
+++ b/packages/api-docs-builder/ProjectSettings.ts
@@ -74,9 +74,13 @@ export interface ProjectSettings {
*/
importTranslationPagesDirectory?: string;
/**
- * Returns an array of import commands used for the API page header.
+ * Returns an array of import commands used for the component API page header.
*/
getComponentImports?: (name: string, filename: string) => string[];
+ /**
+ * Returns an array of import commands used for the hook API page header.
+ */
+ getHookImports?: (name: string, filename: string) => string[];
/**
* Settings to configure props definition tests.
*/
diff --git a/packages/api-docs-builder/package.json b/packages/api-docs-builder/package.json
index 88c9992758c845..1a4bd930e38a08 100644
--- a/packages/api-docs-builder/package.json
+++ b/packages/api-docs-builder/package.json
@@ -8,9 +8,9 @@
"typescript": "tsc -p tsconfig.json"
},
"dependencies": {
- "@babel/core": "^7.23.9",
- "@babel/preset-typescript": "^7.23.3",
- "@babel/traverse": "^7.23.9",
+ "@babel/core": "^7.24.4",
+ "@babel/preset-typescript": "^7.24.1",
+ "@babel/traverse": "^7.24.1",
"@mui/internal-docs-utils": "workspace:^",
"@mui/internal-markdown": "workspace:^",
"ast-types": "^0.14.2",
@@ -22,17 +22,17 @@
"react-docgen": "^5.4.3",
"recast": "^0.23.6",
"remark": "^13.0.0",
- "typescript": "^5.4.3",
+ "typescript": "^5.4.5",
"unist-util-visit": "^2.0.3"
},
"devDependencies": {
"@types/babel__core": "^7.20.5",
"@types/babel__traverse": "^7.20.5",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/doctrine": "^0.0.9",
"@types/mdast": "4.0.3",
"@types/mocha": "^10.0.6",
- "@types/node": "^18.19.25",
+ "@types/node": "^18.19.31",
"@types/react-docgen": "workspace:*",
"@types/sinon": "^10.0.20",
"chai": "^4.4.1",
diff --git a/packages/eslint-plugin-material-ui/package.json b/packages/eslint-plugin-material-ui/package.json
index 5901037dd8812a..94aea96c2d3ef3 100644
--- a/packages/eslint-plugin-material-ui/package.json
+++ b/packages/eslint-plugin-material-ui/package.json
@@ -8,8 +8,8 @@
"emoji-regex": "^10.3.0"
},
"devDependencies": {
- "@types/eslint": "^8.56.6",
- "@typescript-eslint/parser": "^6.19.1",
+ "@types/eslint": "^8.56.9",
+ "@typescript-eslint/parser": "^6.21.0",
"eslint": "^8.57.0"
},
"peerDependencies": {
diff --git a/packages/feedback/package.json b/packages/feedback/package.json
index 3b4bb3be53e22c..c71ed699bab6bb 100644
--- a/packages/feedback/package.json
+++ b/packages/feedback/package.json
@@ -25,6 +25,6 @@
"claudia": "^5.14.1"
},
"optionalDependencies": {
- "aws-sdk": "^2.1579.0"
+ "aws-sdk": "^2.1599.0"
}
}
diff --git a/packages/markdown/loader.js b/packages/markdown/loader.js
index ed418dc2bfc0b8..2c70b31176dabc 100644
--- a/packages/markdown/loader.js
+++ b/packages/markdown/loader.js
@@ -126,6 +126,7 @@ module.exports = async function demoLoader() {
const components = {};
const demoModuleIDs = new Set();
const componentModuleIDs = new Set();
+ const nonEditableDemos = new Set();
const demoNames = Array.from(
new Set(
docs.en.rendered
@@ -133,6 +134,9 @@ module.exports = async function demoLoader() {
return typeof markdownOrComponentConfig !== 'string' && markdownOrComponentConfig.demo;
})
.map((demoConfig) => {
+ if (demoConfig.hideToolbar) {
+ nonEditableDemos.add(demoConfig.demo);
+ }
return demoConfig.demo;
}),
),
@@ -164,9 +168,12 @@ module.exports = async function demoLoader() {
raw: await fs.readFile(moduleFilepath, { encoding: 'utf8' }),
};
demoModuleIDs.add(moduleID);
- extractImports(demos[demoName].raw).forEach((importModuleID) =>
- importedModuleIDs.add(importModuleID),
- );
+ // Skip non-editable demos
+ if (!nonEditableDemos.has(demoName)) {
+ extractImports(demos[demoName].raw).forEach((importModuleID) =>
+ importedModuleIDs.add(importModuleID),
+ );
+ }
if (multipleDemoVersionsUsed) {
// Add Tailwind demo data
diff --git a/packages/markdown/package.json b/packages/markdown/package.json
index 5a7b0373e8311c..9d6cef39b4b224 100644
--- a/packages/markdown/package.json
+++ b/packages/markdown/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/internal-markdown",
- "version": "1.0.1",
+ "version": "1.0.2",
"author": "MUI Team",
"description": "MUI markdown parser. This is an internal package not meant for general use.",
"main": "./index.js",
@@ -20,13 +20,13 @@
"release:publish:dry-run": "pnpm publish --tag latest --registry=\"http://localhost:4873/\""
},
"dependencies": {
- "@babel/runtime": "^7.23.9",
+ "@babel/runtime": "^7.24.4",
"lodash": "^4.17.21",
"marked": "^5.1.2",
"prismjs": "^1.29.0"
},
"devDependencies": {
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"chai": "^4.4.1"
},
"publishConfig": {
diff --git a/packages/markdown/parseMarkdown.js b/packages/markdown/parseMarkdown.js
index a9848f583dce47..00a20879f5f958 100644
--- a/packages/markdown/parseMarkdown.js
+++ b/packages/markdown/parseMarkdown.js
@@ -364,11 +364,7 @@ function createRender(context) {
}
return [
- ``,
- headingHtml,
- ``,
- ' ',
- ' ',
+ `${headingHtml}
`,
``,
diff --git a/packages/markdown/parseMarkdown.test.js b/packages/markdown/parseMarkdown.test.js
index 20cf39596a17ab..63ce3631d831ee 100644
--- a/packages/markdown/parseMarkdown.test.js
+++ b/packages/markdown/parseMarkdown.test.js
@@ -295,9 +295,9 @@ authors:
).to.equal(
[
`Accordion `,
- `Basic features 🧪 `,
- `Using slots
and slotProps
`,
- `Specific example `,
+ ``,
+ ``,
+ ``,
].join(''),
);
diff --git a/packages/mui-babel-macros/package.json b/packages/mui-babel-macros/package.json
index cb422a56c3ec48..2cc41924b72c25 100644
--- a/packages/mui-babel-macros/package.json
+++ b/packages/mui-babel-macros/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/internal-babel-macros",
- "version": "1.0.1",
+ "version": "1.0.2",
"author": "MUI Team",
"description": "MUI Babel macros. This is an internal package not meant for general use.",
"main": "./MuiError.macro.js",
@@ -23,16 +23,16 @@
"test": "cd ../../ && cross-env NODE_ENV=test mocha 'packages/mui-babel-macros/**/*.test.{js,ts,tsx}'"
},
"dependencies": {
- "@babel/helper-module-imports": "^7.22.15",
- "@babel/runtime": "^7.23.9",
+ "@babel/helper-module-imports": "^7.24.3",
+ "@babel/runtime": "^7.24.4",
"babel-plugin-macros": "^3.1.0"
},
"devDependencies": {
"@mui/internal-babel-macros": "workspace:*",
"@types/babel-plugin-macros": "^3.1.3",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/mocha": "^10.0.6",
- "@types/node": "^18.19.25",
+ "@types/node": "^18.19.31",
"babel-plugin-tester": "^11.0.4",
"chai": "^4.4.1"
},
diff --git a/packages/mui-base/package.json b/packages/mui-base/package.json
index 31dcb55f0f4088..08c4b94bcca7f6 100644
--- a/packages/mui-base/package.json
+++ b/packages/mui-base/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/base",
- "version": "5.0.0-beta.41",
+ "version": "5.0.0-beta.42",
"private": false,
"author": "MUI Team",
"description": "Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.",
@@ -41,7 +41,7 @@
"typescript:module-augmentation": "node scripts/testModuleAugmentation.js"
},
"dependencies": {
- "@babel/runtime": "^7.23.9",
+ "@babel/runtime": "^7.24.4",
"@floating-ui/react-dom": "^2.0.8",
"@mui/types": "workspace:^",
"@mui/utils": "workspace:^",
@@ -53,9 +53,9 @@
"@mui-internal/test-utils": "workspace:^",
"@mui/internal-babel-macros": "workspace:^",
"@mui/types": "workspace:^",
- "@testing-library/react": "^14.2.2",
+ "@testing-library/react": "^14.3.1",
"@testing-library/user-event": "^14.5.2",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/prop-types": "^15.7.12",
"@types/react": "18.2.55",
"@types/react-dom": "18.2.19",
diff --git a/packages/mui-codemod/README.md b/packages/mui-codemod/README.md
index 6f2d0529c45f45..ac15226a678a07 100644
--- a/packages/mui-codemod/README.md
+++ b/packages/mui-codemod/README.md
@@ -948,20 +948,65 @@ npx @mui/codemod@next deprecations/pagination-item-classes
npx @mui/codemod@next deprecations/slider-props
```
+#### `toggle-button-group-classes`
+
+JS transforms:
+
+```diff
+ import { toggleButtonGroupClasses } from '@mui/material/ToggleButtonGroup';
+
+ MuiToggleButtonGroup: {
+ styleOverrides: {
+ root: {
+- [`& .${toggleButtonGroupClasses.groupedHorizontal}`]: {
++ [`&.${toggleButtonGroupClasses.horizontal} > .${toggleButtonGroupClasses.grouped}`]: {
+ color: 'red',
+ },
+- [`& .${toggleButtonGroupClasses.groupedVertical}`]: {
++ [`&.${toggleButtonGroupClasses.vertical} > .${toggleButtonGroupClasses.grouped}`]: {
+ color: 'red',
+ },
+ },
+ },
+ },
+```
+
+CSS transforms:
+
+```diff
+-.MuiToggleButtonGroup-root .MuiToggleButtonGroup-groupedHorizontal
++.MuiToggleButtonGroup-root.MuiToggleButtonGroup-horizontal > .MuiToggleButtonGroup-grouped
+-.MuiToggleButtonGroup-root .MuiToggleButtonGroup-groupedVertical
++.MuiToggleButtonGroup-root.MuiToggleButtonGroup-vertical > .MuiToggleButtonGroup-grouped
+ />
+```
+
+```bash
+npx @mui/codemod@latest deprecations/toggle-button-group-classes
+```
+
#### `step-label-props`
```diff
```
```diff
MuiStepLabel: {
defaultProps: {
-- componentsProps={{ label: labelProps }}
-+ slotProps={{ label: labelProps }}
+- componentsProps:{ label: labelProps }
++ slotProps:{ label: labelProps }
+- StepIconComponent:StepIconComponent
++ slots:{ stepIcon: StepIconComponent }
+- StepIconProps:StepIconProps
++ slotProps:{ stepIcon: StepIconProps }
},
},
```
@@ -971,6 +1016,42 @@ npx @mui/codemod@latest deprecations/step-label-props
```
+#### `step-connector-classes`
+
+JS transforms:
+
+```diff
+ import { stepConnectorClasses } from '@mui/material/StepConnector';
+
+ MuiStepConnector: {
+ styleOverrides: {
+ root: {
+- [`& .${stepConnectorClasses.lineHorizontal}`]: {
++ [`&.${stepConnectorClasses.horizontal} > .${stepConnectorClasses.line}`]: {
+ color: 'red',
+ },
+- [`& .${stepConnectorClasses.lineVertical}`]: {
++ [`&.${stepConnectorClasses.vertical} > .${stepConnectorClasses.line}`]: {
+ color: 'red',
+ },
+ },
+ },
+ },
+```
+
+CSS transforms:
+
+```diff
+- .MuiStepConnector-lineHorizontal
++.MuiStepConnector-horizontal > .MuiStepConnector-line
+- .MuiStepConnector-lineVertical
++.MuiStepConnector-vertical > .MuiStepConnector-line
+```
+
+```bash
+npx @mui/codemod@next deprecations/step-connector-classes
+```
+
### v6.0.0
### v5.0.0
diff --git a/packages/mui-codemod/package.json b/packages/mui-codemod/package.json
index 4e6565e2cbd415..da49eb953ddce7 100644
--- a/packages/mui-codemod/package.json
+++ b/packages/mui-codemod/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/codemod",
- "version": "6.0.0-alpha.0",
+ "version": "6.0.0-alpha.1",
"bin": "./codemod.js",
"private": false,
"author": "MUI Team",
@@ -30,18 +30,18 @@
"url": "https://opencollective.com/mui-org"
},
"dependencies": {
- "@babel/core": "^7.23.9",
- "@babel/runtime": "^7.23.9",
- "@babel/traverse": "^7.23.9",
- "jscodeshift": "^0.13.1",
+ "@babel/core": "^7.24.4",
+ "@babel/runtime": "^7.24.4",
+ "@babel/traverse": "^7.24.1",
+ "jscodeshift": "^0.15.2",
"jscodeshift-add-imports": "^1.0.10",
"postcss": "^8.4.38",
"postcss-cli": "^8.3.1",
"yargs": "^17.7.2"
},
"devDependencies": {
- "@types/chai": "^4.3.12",
- "@types/jscodeshift": "0.11.5",
+ "@types/chai": "^4.3.14",
+ "@types/jscodeshift": "0.11.11",
"chai": "^4.4.1"
},
"sideEffects": false,
diff --git a/packages/mui-codemod/src/deprecations/accordion-props/accordion-props.js b/packages/mui-codemod/src/deprecations/accordion-props/accordion-props.js
index dddc01c2288104..386de541096490 100644
--- a/packages/mui-codemod/src/deprecations/accordion-props/accordion-props.js
+++ b/packages/mui-codemod/src/deprecations/accordion-props/accordion-props.js
@@ -1,6 +1,5 @@
-import findComponentJSX from '../../util/findComponentJSX';
-import assignObject from '../../util/assignObject';
-import appendAttribute from '../../util/appendAttribute';
+import movePropIntoSlots from '../utils/movePropIntoSlots';
+import movePropIntoSlotProps from '../utils/movePropIntoSlotProps';
/**
* @param {import('jscodeshift').FileInfo} file
@@ -11,84 +10,18 @@ export default function transformer(file, api, options) {
const root = j(file.source);
const printOptions = options.printOptions;
- findComponentJSX(j, { root, componentName: 'Accordion' }, (elementPath) => {
- let index = elementPath.node.openingElement.attributes.findIndex(
- (attr) => attr.type === 'JSXAttribute' && attr.name.name === 'TransitionComponent',
- );
- if (index !== -1) {
- const removed = elementPath.node.openingElement.attributes.splice(index, 1);
- let hasNode = false;
- elementPath.node.openingElement.attributes.forEach((attr) => {
- if (attr.name?.name === 'slots') {
- hasNode = true;
- assignObject(j, {
- target: attr,
- key: 'transition',
- expression: removed[0].value.expression,
- });
- }
- });
- if (!hasNode) {
- appendAttribute(j, {
- target: elementPath.node,
- attributeName: 'slots',
- expression: j.objectExpression([
- j.objectProperty(j.identifier('transition'), removed[0].value.expression),
- ]),
- });
- }
- }
-
- index = elementPath.node.openingElement.attributes.findIndex(
- (attr) => attr.type === 'JSXAttribute' && attr.name.name === 'TransitionProps',
- );
- if (index !== -1) {
- const removed = elementPath.node.openingElement.attributes.splice(index, 1);
- let hasNode = false;
- elementPath.node.openingElement.attributes.forEach((attr) => {
- if (attr.name?.name === 'slotProps') {
- hasNode = true;
- assignObject(j, {
- target: attr,
- key: 'transition',
- expression: removed[0].value.expression,
- });
- }
- });
- if (!hasNode) {
- appendAttribute(j, {
- target: elementPath.node,
- attributeName: 'slotProps',
- expression: j.objectExpression([
- j.objectProperty(j.identifier('transition'), removed[0].value.expression),
- ]),
- });
- }
- }
- });
-
- root.find(j.ObjectProperty, { key: { name: 'TransitionComponent' } }).forEach((path) => {
- if (path.parent?.parent?.parent?.parent?.node.key?.name === 'MuiAccordion') {
- path.replace(
- j.property(
- 'init',
- j.identifier('slots'),
- j.objectExpression([j.objectProperty(j.identifier('transition'), path.node.value)]),
- ),
- );
- }
+ movePropIntoSlots(j, {
+ root,
+ componentName: 'Accordion',
+ propName: 'TransitionComponent',
+ slotName: 'transition',
});
- root.find(j.ObjectProperty, { key: { name: 'TransitionProps' } }).forEach((path) => {
- if (path.parent?.parent?.parent?.parent?.node.key?.name === 'MuiAccordion') {
- path.replace(
- j.property(
- 'init',
- j.identifier('slotProps'),
- j.objectExpression([j.objectProperty(j.identifier('transition'), path.node.value)]),
- ),
- );
- }
+ movePropIntoSlotProps(j, {
+ root,
+ componentName: 'Accordion',
+ propName: 'TransitionProps',
+ slotName: 'transition',
});
return root.toSource(printOptions);
diff --git a/packages/mui-codemod/src/deprecations/accordion-props/test-cases/actual.js b/packages/mui-codemod/src/deprecations/accordion-props/test-cases/actual.js
index 20ac7fa81a3bb8..9f6a4672656efd 100644
--- a/packages/mui-codemod/src/deprecations/accordion-props/test-cases/actual.js
+++ b/packages/mui-codemod/src/deprecations/accordion-props/test-cases/actual.js
@@ -23,6 +23,8 @@ import { Accordion as MyAccordion } from '@mui/material';
...outerSlotProps,
}}
/>;
+ ;
+ ;
// should skip non MUI components
;
+ ;
+ ;
// should skip non MUI components
{
- const index = elementPath.node.openingElement.attributes.findIndex(
- (attr) => attr.type === 'JSXAttribute' && attr.name.name === 'imgProps',
- );
- if (index !== -1) {
- const removed = elementPath.node.openingElement.attributes.splice(index, 1);
- let hasNode = false;
- elementPath.node.openingElement.attributes.forEach((attr) => {
- if (attr.name?.name === 'slotProps') {
- hasNode = true;
- assignObject(j, {
- target: attr,
- key: 'img',
- expression: removed[0].value.expression,
- });
- }
- });
- if (!hasNode) {
- appendAttribute(j, {
- target: elementPath.node,
- attributeName: 'slotProps',
- expression: j.objectExpression([
- j.objectProperty(j.identifier('img'), removed[0].value.expression),
- ]),
- });
- }
- }
- });
-
- root.find(j.ObjectProperty, { key: { name: 'imgProps' } }).forEach((path) => {
- if (path.parent?.parent?.parent?.parent?.node.key?.name === 'MuiAvatar') {
- path.replace(
- j.property(
- 'init',
- j.identifier('slotProps'),
- j.objectExpression([j.objectProperty(j.identifier('img'), path.node.value)]),
- ),
- );
- }
+ movePropIntoSlotProps(j, {
+ root,
+ componentName: 'Avatar',
+ propName: 'imgProps',
+ slotName: 'img',
});
return root.toSource(printOptions);
diff --git a/packages/mui-codemod/src/deprecations/avatar-props/test-cases/actual.js b/packages/mui-codemod/src/deprecations/avatar-props/test-cases/actual.js
index e553aae667fd1a..541efaabed3e79 100644
--- a/packages/mui-codemod/src/deprecations/avatar-props/test-cases/actual.js
+++ b/packages/mui-codemod/src/deprecations/avatar-props/test-cases/actual.js
@@ -13,6 +13,16 @@ import { Avatar as MyAvatar } from '@mui/material';
onLoad: () => {},
}}
/>;
+ {},
+ }}
+ slotProps={{
+ img: {
+ onError: () => {},
+ },
+ }}
+/>;
// should skip non MUI components
;
+ {},
+ },
+
+ ...{
+ onError: () => {},
+ }
+ },
+ }} />;
// should skip non MUI components
{},
+ },
+ slotProps: {
+ img: {
+ onError: () => {},
+ },
+ },
+ },
+ },
+});
diff --git a/packages/mui-codemod/src/deprecations/avatar-props/test-cases/theme.expected.js b/packages/mui-codemod/src/deprecations/avatar-props/test-cases/theme.expected.js
index a4ac9d4cf5fccb..f1b14e5af41789 100644
--- a/packages/mui-codemod/src/deprecations/avatar-props/test-cases/theme.expected.js
+++ b/packages/mui-codemod/src/deprecations/avatar-props/test-cases/theme.expected.js
@@ -6,6 +6,24 @@ fn({
onError: () => {},
onLoad: () => {},
}
+ },
+ },
+ },
+});
+
+fn({
+ MuiAvatar: {
+ defaultProps: {
+ slotProps: {
+ img: {
+ ...{
+ onLoad: () => {},
+ },
+
+ ...{
+ onError: () => {},
+ }
+ },
}
},
},
diff --git a/packages/mui-codemod/src/deprecations/backdrop-props/backdrop-props.js b/packages/mui-codemod/src/deprecations/backdrop-props/backdrop-props.js
index c444dfc97b1004..d462ae49ed5b1f 100644
--- a/packages/mui-codemod/src/deprecations/backdrop-props/backdrop-props.js
+++ b/packages/mui-codemod/src/deprecations/backdrop-props/backdrop-props.js
@@ -1,6 +1,4 @@
-import findComponentJSX from '../../util/findComponentJSX';
-import assignObject from '../../util/assignObject';
-import appendAttribute from '../../util/appendAttribute';
+import movePropIntoSlots from '../utils/movePropIntoSlots';
/**
* @param {import('jscodeshift').FileInfo} file
@@ -11,73 +9,11 @@ export default function transformer(file, api, options) {
const root = j(file.source);
const printOptions = options.printOptions;
- findComponentJSX(j, { root, componentName: 'Backdrop' }, (elementPath) => {
- const index = elementPath.node.openingElement.attributes.findIndex(
- (attr) => attr.type === 'JSXAttribute' && attr.name.name === 'TransitionComponent',
- );
-
- if (index !== -1) {
- const removed = elementPath.node.openingElement.attributes.splice(index, 1);
- let hasNode = false;
- elementPath.node.openingElement.attributes.forEach((attr) => {
- if (attr.name?.name === 'slots') {
- hasNode = true;
- assignObject(j, {
- target: attr,
- key: 'transition',
- expression: removed[0].value.expression,
- });
- }
- });
-
- if (!hasNode) {
- appendAttribute(j, {
- target: elementPath.node,
- attributeName: 'slots',
- expression: j.objectExpression([
- j.objectProperty(j.identifier('transition'), removed[0].value.expression),
- ]),
- });
- }
- }
- });
-
- root.find(j.ObjectProperty, { key: { name: 'TransitionComponent' } }).forEach((path) => {
- if (path.parent?.parent?.parent?.parent?.node.key?.name === 'MuiBackdrop') {
- const { properties: defaultPropsProperties } = path.parent.value;
-
- const existingSlots = defaultPropsProperties.find((prop) => prop.key.name === 'slots');
- const slots = existingSlots
- ? existingSlots.value.properties.reduce((acc, prop) => {
- return { ...acc, [prop.key.name]: prop.value };
- }, {})
- : {};
-
- const transitionComponent =
- defaultPropsProperties.find((prop) => prop.key.name === 'TransitionComponent') ?? {};
-
- const updatedSlots = j.objectExpression(
- Object.entries({
- transition: transitionComponent?.value,
- ...slots,
- }).map(([slot, value]) => {
- return j.objectProperty(j.identifier(slot), value);
- }),
- );
-
- if (existingSlots) {
- existingSlots.value = updatedSlots;
- path.prune();
- } else {
- path.replace(
- j.property(
- 'init',
- j.identifier('slots'),
- j.objectExpression([j.objectProperty(j.identifier('transition'), path.node.value)]),
- ),
- );
- }
- }
+ movePropIntoSlots(j, {
+ root,
+ componentName: 'Backdrop',
+ propName: 'TransitionComponent',
+ slotName: 'transition',
});
return root.toSource(printOptions);
diff --git a/packages/mui-codemod/src/deprecations/backdrop-props/backdrop-props.test.js b/packages/mui-codemod/src/deprecations/backdrop-props/backdrop-props.test.js
index 4d825b0076014a..13949c52396b08 100644
--- a/packages/mui-codemod/src/deprecations/backdrop-props/backdrop-props.test.js
+++ b/packages/mui-codemod/src/deprecations/backdrop-props/backdrop-props.test.js
@@ -31,7 +31,7 @@ describe('@mui/codemod', () => {
const actual = transform(
{ source: read('./test-cases/theme.actual.js') },
{ jscodeshift },
- { printOptions: { trailingComma: true } },
+ {},
);
const expected = read('./test-cases/theme.expected.js');
diff --git a/packages/mui-codemod/src/deprecations/backdrop-props/test-cases/actual.js b/packages/mui-codemod/src/deprecations/backdrop-props/test-cases/actual.js
index 8cca730fda99e4..00edff06a072ce 100644
--- a/packages/mui-codemod/src/deprecations/backdrop-props/test-cases/actual.js
+++ b/packages/mui-codemod/src/deprecations/backdrop-props/test-cases/actual.js
@@ -8,17 +8,18 @@ import { Backdrop as MyBackdrop } from '@mui/material';
slots={{
root: 'div',
}}
- slotProps={{
- root: { className: 'foo' },
- }}
/>;
;
+ ;
// should skip non MUI components
diff --git a/packages/mui-codemod/src/deprecations/backdrop-props/test-cases/expected.js b/packages/mui-codemod/src/deprecations/backdrop-props/test-cases/expected.js
index ca22506cedab88..60b85e0d7b2556 100644
--- a/packages/mui-codemod/src/deprecations/backdrop-props/test-cases/expected.js
+++ b/packages/mui-codemod/src/deprecations/backdrop-props/test-cases/expected.js
@@ -11,17 +11,16 @@ import { Backdrop as MyBackdrop } from '@mui/material';
slots={{
root: 'div',
transition: CustomTransition
- }}
- slotProps={{
- root: { className: 'foo' },
}} />;
;
+ ;
// should skip non MUI components
;
diff --git a/packages/mui-codemod/src/deprecations/backdrop-props/test-cases/theme.actual.js b/packages/mui-codemod/src/deprecations/backdrop-props/test-cases/theme.actual.js
index a8e62bd3583647..8488ea0176baaa 100644
--- a/packages/mui-codemod/src/deprecations/backdrop-props/test-cases/theme.actual.js
+++ b/packages/mui-codemod/src/deprecations/backdrop-props/test-cases/theme.actual.js
@@ -16,3 +16,15 @@ fn({
},
},
});
+
+fn({
+ MuiBackdrop: {
+ defaultProps: {
+ TransitionComponent: ComponentTransition,
+ slots: {
+ root: 'div',
+ transition: SlotTransition
+ },
+ },
+ },
+});
diff --git a/packages/mui-codemod/src/deprecations/backdrop-props/test-cases/theme.expected.js b/packages/mui-codemod/src/deprecations/backdrop-props/test-cases/theme.expected.js
index ccc52bc558129d..46e9175ad5fdab 100644
--- a/packages/mui-codemod/src/deprecations/backdrop-props/test-cases/theme.expected.js
+++ b/packages/mui-codemod/src/deprecations/backdrop-props/test-cases/theme.expected.js
@@ -2,8 +2,8 @@ fn({
MuiBackdrop: {
defaultProps: {
slots: {
- transition: CustomTransition,
- },
+ transition: CustomTransition
+ }
},
},
});
@@ -12,9 +12,20 @@ fn({
MuiBackdrop: {
defaultProps: {
slots: {
- transition: CustomTransition,
root: 'div',
- },
+ transition: CustomTransition
+ }
+ },
+ },
+});
+
+fn({
+ MuiBackdrop: {
+ defaultProps: {
+ slots: {
+ root: 'div',
+ transition: SlotTransition
+ }
},
},
});
diff --git a/packages/mui-codemod/src/deprecations/step-connector-classes/index.js b/packages/mui-codemod/src/deprecations/step-connector-classes/index.js
new file mode 100644
index 00000000000000..c4b340dac5ae6d
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/step-connector-classes/index.js
@@ -0,0 +1 @@
+export { default } from './step-connector-classes';
diff --git a/packages/mui-codemod/src/deprecations/step-connector-classes/postcss-plugin.js b/packages/mui-codemod/src/deprecations/step-connector-classes/postcss-plugin.js
new file mode 100644
index 00000000000000..71e512e0678a8c
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/step-connector-classes/postcss-plugin.js
@@ -0,0 +1,33 @@
+const classes = [
+ {
+ deprecatedClass: ' .MuiStepConnector-lineHorizontal',
+ replacementSelector: '.MuiStepConnector-horizontal > .MuiStepConnector-line',
+ },
+ {
+ deprecatedClass: ' .MuiStepConnector-lineVertical',
+ replacementSelector: '.MuiStepConnector-vertical > .MuiStepConnector-line',
+ },
+];
+
+const plugin = () => {
+ return {
+ postcssPlugin: `Replace deperecated StepConnector classes with new classes`,
+ Rule(rule) {
+ const { selector } = rule;
+
+ classes.forEach(({ deprecatedClass, replacementSelector }) => {
+ const selectorRegex = new RegExp(`${deprecatedClass}$`);
+
+ if (selector.match(selectorRegex)) {
+ rule.selector = selector.replace(selectorRegex, replacementSelector);
+ }
+ });
+ },
+ };
+};
+plugin.postcss = true;
+
+module.exports = {
+ plugin,
+ classes,
+};
diff --git a/packages/mui-codemod/src/deprecations/step-connector-classes/postcss.config.js b/packages/mui-codemod/src/deprecations/step-connector-classes/postcss.config.js
new file mode 100644
index 00000000000000..23bebc1125be6e
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/step-connector-classes/postcss.config.js
@@ -0,0 +1,5 @@
+const { plugin } = require('./postcss-plugin');
+
+module.exports = {
+ plugins: [plugin],
+};
diff --git a/packages/mui-codemod/src/deprecations/step-connector-classes/step-connector-classes.js b/packages/mui-codemod/src/deprecations/step-connector-classes/step-connector-classes.js
new file mode 100644
index 00000000000000..00f08a6c9b49f9
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/step-connector-classes/step-connector-classes.js
@@ -0,0 +1,127 @@
+import { classes } from './postcss-plugin';
+
+/**
+ * @param {import('jscodeshift').FileInfo} file
+ * @param {import('jscodeshift').API} api
+ */
+export default function transformer(file, api, options) {
+ const j = api.jscodeshift;
+ const root = j(file.source);
+ const printOptions = options.printOptions;
+ classes.forEach(({ deprecatedClass, replacementSelector }) => {
+ const replacementSelectorPrefix = '&';
+ root
+ .find(j.ImportDeclaration)
+ .filter((path) => path.node.source.value.match(/^@mui\/material\/StepConnector$/))
+ .forEach((path) => {
+ path.node.specifiers.forEach((specifier) => {
+ if (
+ specifier.type === 'ImportSpecifier' &&
+ specifier.imported.name === 'stepConnectorClasses'
+ ) {
+ const deprecatedAtomicClass = deprecatedClass.replace(
+ `${deprecatedClass.split('-')[0]}-`,
+ '',
+ );
+ root
+ .find(j.MemberExpression, {
+ object: { name: specifier.local.name },
+ property: { name: deprecatedAtomicClass },
+ })
+ .forEach((memberExpression) => {
+ const parent = memberExpression.parentPath.parentPath.value;
+ if (parent.type === j.TemplateLiteral.name) {
+ const memberExpressionIndex = parent.expressions.findIndex(
+ (expression) => expression === memberExpression.value,
+ );
+ const precedingTemplateElement = parent.quasis[memberExpressionIndex];
+ const atomicClasses = replacementSelector
+ .replaceAll('MuiStepConnector-', '')
+ .replaceAll(replacementSelectorPrefix, '')
+ .replaceAll(' > ', '')
+ .split('.')
+ .filter(Boolean);
+
+ if (
+ precedingTemplateElement.value.raw.endsWith(
+ deprecatedClass.startsWith(' ')
+ ? `${replacementSelectorPrefix} .`
+ : `${replacementSelectorPrefix}.`,
+ )
+ ) {
+ const atomicClassesArgs = [
+ memberExpressionIndex,
+ 1,
+ ...atomicClasses.map((atomicClass) =>
+ j.memberExpression(
+ memberExpression.value.object,
+ j.identifier(atomicClass),
+ ),
+ ),
+ ];
+ parent.expressions.splice(...atomicClassesArgs);
+
+ if (replacementSelector.includes(' > ')) {
+ const quasisArgs = [
+ memberExpressionIndex,
+ 1,
+ j.templateElement(
+ {
+ raw: precedingTemplateElement.value.raw.replace(' ', ''),
+ cooked: precedingTemplateElement.value.cooked.replace(' ', ''),
+ },
+ false,
+ ),
+ j.templateElement({ raw: ' > .', cooked: ' > .' }, false),
+ ];
+
+ if (atomicClasses.length === 3) {
+ quasisArgs.splice(
+ 3,
+ 0,
+ j.templateElement({ raw: '.', cooked: '.' }, false),
+ );
+ }
+
+ parent.quasis.splice(...quasisArgs);
+ } else {
+ parent.quasis.splice(
+ memberExpressionIndex,
+ 1,
+ j.templateElement(
+ {
+ raw: precedingTemplateElement.value.raw,
+ cooked: precedingTemplateElement.value.cooked,
+ },
+ false,
+ ),
+
+ j.templateElement({ raw: '.', cooked: '.' }, false),
+ );
+ }
+ }
+ }
+ });
+ }
+ });
+ });
+
+ const selectorRegex = new RegExp(`${replacementSelectorPrefix}${deprecatedClass}$`);
+ root
+ .find(
+ j.Literal,
+ (literal) => typeof literal.value === 'string' && literal.value.match(selectorRegex),
+ )
+ .forEach((path) => {
+ path.replace(
+ j.literal(
+ path.value.value.replace(
+ selectorRegex,
+ `${replacementSelectorPrefix}${replacementSelector}`,
+ ),
+ ),
+ );
+ });
+ });
+ return root.toSource(printOptions);
+}
diff --git a/packages/mui-codemod/src/deprecations/step-connector-classes/step-connector-classes.test.js b/packages/mui-codemod/src/deprecations/step-connector-classes/step-connector-classes.test.js
new file mode 100644
index 00000000000000..ea3ace7ef9d7e4
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/step-connector-classes/step-connector-classes.test.js
@@ -0,0 +1,78 @@
+import path from 'path';
+import { expect } from 'chai';
+import postcss from 'postcss';
+import { jscodeshift } from '../../../testUtils';
+import jsTransform from './step-connector-classes';
+import { plugin as postcssPlugin } from './postcss-plugin';
+import readFile from '../../util/readFile';
+
+function read(fileName) {
+ return readFile(path.join(__dirname, fileName));
+}
+
+const postcssProcessor = postcss([postcssPlugin]);
+
+describe('@mui/codemod', () => {
+ describe('deprecations', () => {
+ describe('step-connector-classes', () => {
+ describe('js-transform', () => {
+ it('transforms props as needed', () => {
+ const actual = jsTransform(
+ { source: read('./test-cases/actual.js') },
+ { jscodeshift },
+ { printOptions: { quote: 'double', trailingComma: true } },
+ );
+
+ const expected = read('./test-cases/expected.js');
+ expect(actual).to.equal(expected, 'The transformed version should be correct');
+ });
+
+ it('should be idempotent', () => {
+ const actual = jsTransform(
+ { source: read('./test-cases/expected.js') },
+ { jscodeshift },
+ {},
+ );
+
+ const expected = read('./test-cases/expected.js');
+ expect(actual).to.equal(expected, 'The transformed version should be correct');
+ });
+ });
+
+ describe('css-transform', () => {
+ it('transforms classes as needed', async () => {
+ const actual = await postcssProcessor.process(read('./test-cases/actual.css'), {
+ from: undefined,
+ });
+
+ const expected = read('./test-cases/expected.css');
+ expect(actual.css).to.equal(expected, 'The transformed version should be correct');
+ });
+
+ it('should be idempotent', async () => {
+ const actual = await postcssProcessor.process(read('./test-cases/expected.css'), {
+ from: undefined,
+ });
+
+ const expected = read('./test-cases/expected.css');
+ expect(actual.css).to.equal(expected, 'The transformed version should be correct');
+ });
+ });
+
+ describe('test-cases', () => {
+ it('should not be the same', () => {
+ const actualJS = read('./test-cases/actual.js');
+ const expectedJS = read('./test-cases/expected.js');
+ expect(actualJS).not.to.equal(expectedJS, 'The actual and expected should be different');
+
+ const actualCSS = read('./test-cases/actual.css');
+ const expectedCSS = read('./test-cases/expected.css');
+ expect(actualCSS).not.to.equal(
+ expectedCSS,
+ 'The actual and expected should be different',
+ );
+ });
+ });
+ });
+ });
+});
diff --git a/packages/mui-codemod/src/deprecations/step-connector-classes/test-cases/actual.css b/packages/mui-codemod/src/deprecations/step-connector-classes/test-cases/actual.css
new file mode 100644
index 00000000000000..a6803c62d2dd52
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/step-connector-classes/test-cases/actual.css
@@ -0,0 +1,7 @@
+.MuiStepConnector-root .MuiStepConnector-lineHorizontal {
+ color: red;
+}
+
+.MuiStepConnector-root .MuiStepConnector-lineVertical {
+ color: red;
+}
diff --git a/packages/mui-codemod/src/deprecations/step-connector-classes/test-cases/actual.js b/packages/mui-codemod/src/deprecations/step-connector-classes/test-cases/actual.js
new file mode 100644
index 00000000000000..2a3d38d0081cbf
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/step-connector-classes/test-cases/actual.js
@@ -0,0 +1,6 @@
+import { stepConnectorClasses } from '@mui/material/StepConnector';
+
+('& .MuiStepConnector-lineHorizontal');
+('& .MuiStepConnector-lineVertical');
+`& .${stepConnectorClasses.lineHorizontal}`;
+`& .${stepConnectorClasses.lineVertical}`;
diff --git a/packages/mui-codemod/src/deprecations/step-connector-classes/test-cases/expected.css b/packages/mui-codemod/src/deprecations/step-connector-classes/test-cases/expected.css
new file mode 100644
index 00000000000000..e57ec5b0540422
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/step-connector-classes/test-cases/expected.css
@@ -0,0 +1,7 @@
+.MuiStepConnector-root.MuiStepConnector-horizontal > .MuiStepConnector-line {
+ color: red;
+}
+
+.MuiStepConnector-root.MuiStepConnector-vertical > .MuiStepConnector-line {
+ color: red;
+}
diff --git a/packages/mui-codemod/src/deprecations/step-connector-classes/test-cases/expected.js b/packages/mui-codemod/src/deprecations/step-connector-classes/test-cases/expected.js
new file mode 100644
index 00000000000000..5779ddf485b802
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/step-connector-classes/test-cases/expected.js
@@ -0,0 +1,6 @@
+import { stepConnectorClasses } from '@mui/material/StepConnector';
+
+("&.MuiStepConnector-horizontal > .MuiStepConnector-line");
+("&.MuiStepConnector-vertical > .MuiStepConnector-line");
+`&.${stepConnectorClasses.horizontal} > .${stepConnectorClasses.line}`;
+`&.${stepConnectorClasses.vertical} > .${stepConnectorClasses.line}`;
diff --git a/packages/mui-codemod/src/deprecations/step-label-props/step-label-props.js b/packages/mui-codemod/src/deprecations/step-label-props/step-label-props.js
index d71fbba3a84810..b2fec09fa3b826 100644
--- a/packages/mui-codemod/src/deprecations/step-label-props/step-label-props.js
+++ b/packages/mui-codemod/src/deprecations/step-label-props/step-label-props.js
@@ -1,4 +1,6 @@
import replaceComponentsWithSlots from '../utils/replaceComponentsWithSlots';
+import movePropIntoSlots from '../utils/movePropIntoSlots';
+import movePropIntoSlotProps from '../utils/movePropIntoSlotProps';
/**
* @param {import('jscodeshift').FileInfo} file
@@ -11,5 +13,19 @@ export default function transformer(file, api, options) {
replaceComponentsWithSlots(j, { root, componentName: 'StepLabel' });
+ movePropIntoSlots(j, {
+ root,
+ componentName: 'StepLabel',
+ propName: 'StepIconComponent',
+ slotName: 'stepIcon',
+ });
+
+ movePropIntoSlotProps(j, {
+ root,
+ componentName: 'StepLabel',
+ propName: 'StepIconProps',
+ slotName: 'stepIcon',
+ });
+
return root.toSource(printOptions);
}
diff --git a/packages/mui-codemod/src/deprecations/step-label-props/test-cases/actual.js b/packages/mui-codemod/src/deprecations/step-label-props/test-cases/actual.js
index 9caf4e5a411080..20a1428f7b1598 100644
--- a/packages/mui-codemod/src/deprecations/step-label-props/test-cases/actual.js
+++ b/packages/mui-codemod/src/deprecations/step-label-props/test-cases/actual.js
@@ -6,3 +6,15 @@ import StepLabel from '@mui/material/StepLabel';
slotProps={{ label: slotLabelProps }}
componentsProps={{ label: componentsLabelProps }}
/>;
+ ;
+ ;
+ ;
diff --git a/packages/mui-codemod/src/deprecations/step-label-props/test-cases/expected.js b/packages/mui-codemod/src/deprecations/step-label-props/test-cases/expected.js
index b26c217086b36d..3dfec474599baf 100644
--- a/packages/mui-codemod/src/deprecations/step-label-props/test-cases/expected.js
+++ b/packages/mui-codemod/src/deprecations/step-label-props/test-cases/expected.js
@@ -7,3 +7,29 @@ import StepLabel from '@mui/material/StepLabel';
...componentsLabelProps,
...slotLabelProps
} }} />;
+ ;
+ ;
+ ;
diff --git a/packages/mui-codemod/src/deprecations/step-label-props/test-cases/theme.actual.js b/packages/mui-codemod/src/deprecations/step-label-props/test-cases/theme.actual.js
index 4f68c1fe687871..68624f70881f49 100644
--- a/packages/mui-codemod/src/deprecations/step-label-props/test-cases/theme.actual.js
+++ b/packages/mui-codemod/src/deprecations/step-label-props/test-cases/theme.actual.js
@@ -14,3 +14,23 @@ fn({
},
},
});
+
+fn({
+ MuiStepLabel: {
+ defaultProps: {
+ StepIconComponent: StepIconComponent,
+ StepIconProps: StepIconProps,
+ },
+ },
+});
+
+fn({
+ MuiStepLabel: {
+ defaultProps: {
+ componentsProps: { label: componentsLabelProps },
+ slotProps: { label: slotLabelProps },
+ StepIconComponent: StepIconComponent,
+ StepIconProps: StepIconProps,
+ },
+ },
+});
diff --git a/packages/mui-codemod/src/deprecations/step-label-props/test-cases/theme.expected.js b/packages/mui-codemod/src/deprecations/step-label-props/test-cases/theme.expected.js
index c8874c72137cab..3919652d47b97d 100644
--- a/packages/mui-codemod/src/deprecations/step-label-props/test-cases/theme.expected.js
+++ b/packages/mui-codemod/src/deprecations/step-label-props/test-cases/theme.expected.js
@@ -20,3 +20,36 @@ fn({
},
},
});
+
+fn({
+ MuiStepLabel: {
+ defaultProps: {
+ slots: {
+ stepIcon: StepIconComponent
+ },
+
+ slotProps: {
+ stepIcon: StepIconProps
+ }
+ },
+ },
+});
+
+fn({
+ MuiStepLabel: {
+ defaultProps: {
+ slotProps: {
+ label: {
+ ...componentsLabelProps,
+ ...slotLabelProps
+ },
+
+ stepIcon: StepIconProps
+ },
+
+ slots: {
+ stepIcon: StepIconComponent
+ }
+ },
+ },
+});
diff --git a/packages/mui-codemod/src/deprecations/toggle-button-group-classes/index.js b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/index.js
new file mode 100644
index 00000000000000..652d00fe9b9c62
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/index.js
@@ -0,0 +1 @@
+export { default } from './toggle-button-group-classes';
diff --git a/packages/mui-codemod/src/deprecations/toggle-button-group-classes/postcss-plugin.js b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/postcss-plugin.js
new file mode 100644
index 00000000000000..fc59a4a1c8b29a
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/postcss-plugin.js
@@ -0,0 +1,33 @@
+const classes = [
+ {
+ deprecatedClass: ' .MuiToggleButtonGroup-groupedHorizontal',
+ replacementSelector: '.MuiToggleButtonGroup-horizontal > .MuiToggleButtonGroup-grouped',
+ },
+ {
+ deprecatedClass: ' .MuiToggleButtonGroup-groupedVertical',
+ replacementSelector: '.MuiToggleButtonGroup-vertical > .MuiToggleButtonGroup-grouped',
+ },
+];
+
+const plugin = () => {
+ return {
+ postcssPlugin: `Replace deperecated ToggleButtonGroup classes with new classes`,
+ Rule(rule) {
+ const { selector } = rule;
+
+ classes.forEach(({ deprecatedClass, replacementSelector }) => {
+ const selectorRegex = new RegExp(`${deprecatedClass}$`);
+
+ if (selector.match(selectorRegex)) {
+ rule.selector = selector.replace(selectorRegex, replacementSelector);
+ }
+ });
+ },
+ };
+};
+plugin.postcss = true;
+
+module.exports = {
+ plugin,
+ classes,
+};
diff --git a/packages/mui-codemod/src/deprecations/toggle-button-group-classes/postcss.config.js b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/postcss.config.js
new file mode 100644
index 00000000000000..23bebc1125be6e
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/postcss.config.js
@@ -0,0 +1,5 @@
+const { plugin } = require('./postcss-plugin');
+
+module.exports = {
+ plugins: [plugin],
+};
diff --git a/packages/mui-codemod/src/deprecations/toggle-button-group-classes/test-cases/actual.css b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/test-cases/actual.css
new file mode 100644
index 00000000000000..2e856c77e5cb7b
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/test-cases/actual.css
@@ -0,0 +1,7 @@
+.MuiToggleButtonGroup-root .MuiToggleButtonGroup-groupedHorizontal {
+ color: red;
+}
+
+.MuiToggleButtonGroup-root .MuiToggleButtonGroup-groupedVertical {
+ color: red;
+}
diff --git a/packages/mui-codemod/src/deprecations/toggle-button-group-classes/test-cases/actual.js b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/test-cases/actual.js
new file mode 100644
index 00000000000000..eed30d616d7210
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/test-cases/actual.js
@@ -0,0 +1,6 @@
+import { toggleButtonGroupClasses } from '@mui/material/ToggleButtonGroup';
+
+('& .MuiToggleButtonGroup-groupedHorizontal');
+('& .MuiToggleButtonGroup-groupedVertical');
+`& .${toggleButtonGroupClasses.groupedHorizontal}`;
+`& .${toggleButtonGroupClasses.groupedVertical}`;
diff --git a/packages/mui-codemod/src/deprecations/toggle-button-group-classes/test-cases/expected.css b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/test-cases/expected.css
new file mode 100644
index 00000000000000..0a1721efbc7eec
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/test-cases/expected.css
@@ -0,0 +1,7 @@
+.MuiToggleButtonGroup-root.MuiToggleButtonGroup-horizontal > .MuiToggleButtonGroup-grouped {
+ color: red;
+}
+
+.MuiToggleButtonGroup-root.MuiToggleButtonGroup-vertical > .MuiToggleButtonGroup-grouped {
+ color: red;
+}
diff --git a/packages/mui-codemod/src/deprecations/toggle-button-group-classes/test-cases/expected.js b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/test-cases/expected.js
new file mode 100644
index 00000000000000..b2030174207157
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/test-cases/expected.js
@@ -0,0 +1,6 @@
+import { toggleButtonGroupClasses } from '@mui/material/ToggleButtonGroup';
+
+("&.MuiToggleButtonGroup-horizontal > .MuiToggleButtonGroup-grouped");
+("&.MuiToggleButtonGroup-vertical > .MuiToggleButtonGroup-grouped");
+`&.${toggleButtonGroupClasses.horizontal} > .${toggleButtonGroupClasses.grouped}`;
+`&.${toggleButtonGroupClasses.vertical} > .${toggleButtonGroupClasses.grouped}`;
diff --git a/packages/mui-codemod/src/deprecations/toggle-button-group-classes/toggle-button-group-classes.js b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/toggle-button-group-classes.js
new file mode 100644
index 00000000000000..60bec34f754946
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/toggle-button-group-classes.js
@@ -0,0 +1,127 @@
+import { classes } from './postcss-plugin';
+
+/**
+ * @param {import('jscodeshift').FileInfo} file
+ * @param {import('jscodeshift').API} api
+ */
+export default function transformer(file, api, options) {
+ const j = api.jscodeshift;
+ const root = j(file.source);
+ const printOptions = options.printOptions;
+ classes.forEach(({ deprecatedClass, replacementSelector }) => {
+ const replacementSelectorPrefix = '&';
+ root
+ .find(j.ImportDeclaration)
+ .filter((path) => path.node.source.value.match(/^@mui\/material\/ToggleButtonGroup$/))
+ .forEach((path) => {
+ path.node.specifiers.forEach((specifier) => {
+ if (
+ specifier.type === 'ImportSpecifier' &&
+ specifier.imported.name === 'toggleButtonGroupClasses'
+ ) {
+ const deprecatedAtomicClass = deprecatedClass.replace(
+ `${deprecatedClass.split('-')[0]}-`,
+ '',
+ );
+ root
+ .find(j.MemberExpression, {
+ object: { name: specifier.local.name },
+ property: { name: deprecatedAtomicClass },
+ })
+ .forEach((memberExpression) => {
+ const parent = memberExpression.parentPath.parentPath.value;
+ if (parent.type === j.TemplateLiteral.name) {
+ const memberExpressionIndex = parent.expressions.findIndex(
+ (expression) => expression === memberExpression.value,
+ );
+ const precedingTemplateElement = parent.quasis[memberExpressionIndex];
+ const atomicClasses = replacementSelector
+ .replaceAll('MuiToggleButtonGroup-', '')
+ .replaceAll(replacementSelectorPrefix, '')
+ .replaceAll(' > ', '')
+ .split('.')
+ .filter(Boolean);
+
+ if (
+ precedingTemplateElement.value.raw.endsWith(
+ deprecatedClass.startsWith(' ')
+ ? `${replacementSelectorPrefix} .`
+ : `${replacementSelectorPrefix}.`,
+ )
+ ) {
+ const atomicClassesArgs = [
+ memberExpressionIndex,
+ 1,
+ ...atomicClasses.map((atomicClass) =>
+ j.memberExpression(
+ memberExpression.value.object,
+ j.identifier(atomicClass),
+ ),
+ ),
+ ];
+ parent.expressions.splice(...atomicClassesArgs);
+
+ if (replacementSelector.includes(' > ')) {
+ const quasisArgs = [
+ memberExpressionIndex,
+ 1,
+ j.templateElement(
+ {
+ raw: precedingTemplateElement.value.raw.replace(' ', ''),
+ cooked: precedingTemplateElement.value.cooked.replace(' ', ''),
+ },
+ false,
+ ),
+ j.templateElement({ raw: ' > .', cooked: ' > .' }, false),
+ ];
+
+ if (atomicClasses.length === 3) {
+ quasisArgs.splice(
+ 3,
+ 0,
+ j.templateElement({ raw: '.', cooked: '.' }, false),
+ );
+ }
+
+ parent.quasis.splice(...quasisArgs);
+ } else {
+ parent.quasis.splice(
+ memberExpressionIndex,
+ 1,
+ j.templateElement(
+ {
+ raw: precedingTemplateElement.value.raw,
+ cooked: precedingTemplateElement.value.cooked,
+ },
+ false,
+ ),
+
+ j.templateElement({ raw: '.', cooked: '.' }, false),
+ );
+ }
+ }
+ }
+ });
+ }
+ });
+ });
+
+ const selectorRegex = new RegExp(`${replacementSelectorPrefix}${deprecatedClass}$`);
+ root
+ .find(
+ j.Literal,
+ (literal) => typeof literal.value === 'string' && literal.value.match(selectorRegex),
+ )
+ .forEach((path) => {
+ path.replace(
+ j.literal(
+ path.value.value.replace(
+ selectorRegex,
+ `${replacementSelectorPrefix}${replacementSelector}`,
+ ),
+ ),
+ );
+ });
+ });
+ return root.toSource(printOptions);
+}
diff --git a/packages/mui-codemod/src/deprecations/toggle-button-group-classes/toggle-button-group-classes.test.js b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/toggle-button-group-classes.test.js
new file mode 100644
index 00000000000000..9769a168e9f86c
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/toggle-button-group-classes/toggle-button-group-classes.test.js
@@ -0,0 +1,78 @@
+import path from 'path';
+import { expect } from 'chai';
+import postcss from 'postcss';
+import { jscodeshift } from '../../../testUtils';
+import jsTransform from './toggle-button-group-classes';
+import { plugin as postcssPlugin } from './postcss-plugin';
+import readFile from '../../util/readFile';
+
+function read(fileName) {
+ return readFile(path.join(__dirname, fileName));
+}
+
+const postcssProcessor = postcss([postcssPlugin]);
+
+describe('@mui/codemod', () => {
+ describe('deprecations', () => {
+ describe('toggle-button-group-classes', () => {
+ describe('js-transform', () => {
+ it('transforms props as needed', () => {
+ const actual = jsTransform(
+ { source: read('./test-cases/actual.js') },
+ { jscodeshift },
+ { printOptions: { quote: 'double', trailingComma: true } },
+ );
+
+ const expected = read('./test-cases/expected.js');
+ expect(actual).to.equal(expected, 'The transformed version should be correct');
+ });
+
+ it('should be idempotent', () => {
+ const actual = jsTransform(
+ { source: read('./test-cases/expected.js') },
+ { jscodeshift },
+ {},
+ );
+
+ const expected = read('./test-cases/expected.js');
+ expect(actual).to.equal(expected, 'The transformed version should be correct');
+ });
+ });
+
+ describe('css-transform', () => {
+ it('transforms classes as needed', async () => {
+ const actual = await postcssProcessor.process(read('./test-cases/actual.css'), {
+ from: undefined,
+ });
+
+ const expected = read('./test-cases/expected.css');
+ expect(actual.css).to.equal(expected, 'The transformed version should be correct');
+ });
+
+ it('should be idempotent', async () => {
+ const actual = await postcssProcessor.process(read('./test-cases/expected.css'), {
+ from: undefined,
+ });
+
+ const expected = read('./test-cases/expected.css');
+ expect(actual.css).to.equal(expected, 'The transformed version should be correct');
+ });
+ });
+
+ describe('test-cases', () => {
+ it('should not be the same', () => {
+ const actualJS = read('./test-cases/actual.js');
+ const expectedJS = read('./test-cases/expected.js');
+ expect(actualJS).not.to.equal(expectedJS, 'The actual and expected should be different');
+
+ const actualCSS = read('./test-cases/actual.css');
+ const expectedCSS = read('./test-cases/expected.css');
+ expect(actualCSS).not.to.equal(
+ expectedCSS,
+ 'The actual and expected should be different',
+ );
+ });
+ });
+ });
+ });
+});
diff --git a/packages/mui-codemod/src/deprecations/utils/movePropIntoSlotProps.js b/packages/mui-codemod/src/deprecations/utils/movePropIntoSlotProps.js
new file mode 100644
index 00000000000000..2e09e3d1d021cc
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/utils/movePropIntoSlotProps.js
@@ -0,0 +1,111 @@
+import findComponentJSX from '../../util/findComponentJSX';
+import findComponentDefaultProps from '../../util/findComponentDefaultProps';
+import assignObject from '../../util/assignObject';
+import appendAttribute from '../../util/appendAttribute';
+
+function moveJsxPropIntoSlotProps(j, element, propName, slotName) {
+ const propIndex = element.openingElement.attributes.findIndex(
+ (attr) => attr.type === 'JSXAttribute' && attr.name.name === propName,
+ );
+
+ if (propIndex !== -1) {
+ const removedValue = element.openingElement.attributes.splice(propIndex, 1)[0].value.expression;
+ let hasSlotProps = false;
+ element.openingElement.attributes.forEach((attr) => {
+ if (attr.name?.name === 'slotProps') {
+ hasSlotProps = true;
+ const slots = attr.value.expression;
+ const slotIndex = slots.properties.findIndex((prop) => prop?.key?.name === slotName);
+ if (slotIndex === -1) {
+ assignObject(j, {
+ target: attr,
+ key: slotName,
+ expression: removedValue,
+ });
+ } else {
+ const slotPropsSlotValue = slots.properties.splice(slotIndex, 1)[0].value;
+ assignObject(j, {
+ target: attr,
+ key: slotName,
+ expression: j.objectExpression([
+ j.spreadElement(removedValue),
+ j.spreadElement(slotPropsSlotValue),
+ ]),
+ });
+ }
+ }
+ });
+
+ if (!hasSlotProps) {
+ appendAttribute(j, {
+ target: element,
+ attributeName: 'slotProps',
+ expression: j.objectExpression([j.objectProperty(j.identifier(slotName), removedValue)]),
+ });
+ }
+ }
+}
+
+function moveDefaultPropsPropIntoslotProps(j, defaultPropsPathCollection, propName, slotName) {
+ defaultPropsPathCollection.find(j.ObjectProperty, { key: { name: propName } }).forEach((path) => {
+ const removedValue = path.value.value;
+ const defaultProps = path.parent.value;
+
+ let hasSlotProps = false;
+ defaultProps.properties.forEach((property) => {
+ if (property.key?.name === 'slotProps') {
+ hasSlotProps = true;
+ const slotIndex = property.value.properties.findIndex(
+ (prop) => prop?.key?.name === slotName,
+ );
+ if (slotIndex === -1) {
+ property.value.properties.push(j.objectProperty(j.identifier(slotName), removedValue));
+ } else {
+ const slotPropsSlotValue = property.value.properties.splice(slotIndex, 1)[0].value;
+ property.value.properties.push(
+ j.objectProperty(
+ j.identifier(slotName),
+ j.objectExpression([
+ j.spreadElement(removedValue),
+ j.spreadElement(slotPropsSlotValue),
+ ]),
+ ),
+ );
+ }
+ }
+ });
+
+ if (!hasSlotProps) {
+ defaultProps.properties.push(
+ j.objectProperty(
+ j.identifier('slotProps'),
+ j.objectExpression([j.objectProperty(j.identifier(slotName), removedValue)]),
+ ),
+ );
+ }
+
+ path.prune();
+ });
+}
+
+/**
+ * Moves prop into slotProps.
+ * If the slotProps prop exists, it will merge the prop into the slotProps.
+ * If there are duplicated values, the values will be spread.
+ *
+ * @param {import('jscodeshift')} j
+ * @param {{ root: import('jscodeshift').Collection; componentName: string, propName: string, slotName: string }} options
+ *
+ * @example =>
+ */
+export default function movePropIntoSlotProps(j, options) {
+ const { root, componentName, propName, slotName } = options;
+
+ findComponentJSX(j, { root, componentName }, (elementPath) => {
+ moveJsxPropIntoSlotProps(j, elementPath.node, propName, slotName);
+ });
+
+ const defaultPropsPathCollection = findComponentDefaultProps(j, { root, componentName });
+
+ moveDefaultPropsPropIntoslotProps(j, defaultPropsPathCollection, propName, slotName);
+}
diff --git a/packages/mui-codemod/src/deprecations/utils/movePropIntoSlots.js b/packages/mui-codemod/src/deprecations/utils/movePropIntoSlots.js
new file mode 100644
index 00000000000000..9910853c3b4949
--- /dev/null
+++ b/packages/mui-codemod/src/deprecations/utils/movePropIntoSlots.js
@@ -0,0 +1,91 @@
+import findComponentJSX from '../../util/findComponentJSX';
+import findComponentDefaultProps from '../../util/findComponentDefaultProps';
+import assignObject from '../../util/assignObject';
+import appendAttribute from '../../util/appendAttribute';
+
+function moveJsxPropIntoSlots(j, element, propName, slotName) {
+ const index = element.openingElement.attributes.findIndex(
+ (attr) => attr.type === 'JSXAttribute' && attr.name.name === propName,
+ );
+
+ if (index !== -1) {
+ const removedValue = element.openingElement.attributes.splice(index, 1)[0].value.expression;
+ let hasSlots = false;
+ element.openingElement.attributes.forEach((attr) => {
+ if (attr.name?.name === 'slots') {
+ hasSlots = true;
+ const slotIndex = attr.value.expression.properties.findIndex(
+ (prop) => prop?.key?.name === slotName,
+ );
+ if (slotIndex === -1) {
+ assignObject(j, {
+ target: attr,
+ key: slotName,
+ expression: removedValue,
+ });
+ }
+ }
+ });
+
+ if (!hasSlots) {
+ appendAttribute(j, {
+ target: element,
+ attributeName: 'slots',
+ expression: j.objectExpression([j.objectProperty(j.identifier(slotName), removedValue)]),
+ });
+ }
+ }
+}
+
+function moveDefaultPropsPropIntoSlots(j, defaultPropsPathCollection, propName, slotName) {
+ defaultPropsPathCollection.find(j.ObjectProperty, { key: { name: propName } }).forEach((path) => {
+ const removedValue = path.value.value;
+ const defaultProps = path.parent.value;
+
+ let hasSlots = false;
+ defaultProps.properties.forEach((property) => {
+ if (property.key?.name === 'slots') {
+ hasSlots = true;
+ const slots = property.value;
+ const slotIndex = slots.properties.findIndex((prop) => prop?.key?.name === slotName);
+ if (slotIndex === -1) {
+ slots.properties.push(j.objectProperty(j.identifier(slotName), removedValue));
+ }
+ }
+ });
+
+ if (!hasSlots) {
+ defaultProps.properties.push(
+ j.property(
+ 'init',
+ j.identifier('slots'),
+ j.objectExpression([j.objectProperty(j.identifier(slotName), removedValue)]),
+ ),
+ );
+ }
+
+ path.prune();
+ });
+}
+
+/**
+ * Moves prop into slots.
+ * If the slots prop exists, it will add the prop to the slots.
+ * If there are duplicated values, the slots values will be used.
+ *
+ * @param {import('jscodeshift')} j
+ * @param {{ root: import('jscodeshift').Collection; componentName: string, propName: string, slotName: string }} options
+ *
+ * @example =>
+ */
+export default function movePropIntoSlots(j, options) {
+ const { root, componentName, propName, slotName } = options;
+
+ findComponentJSX(j, { root, componentName }, (elementPath) => {
+ moveJsxPropIntoSlots(j, elementPath.node, propName, slotName);
+ });
+
+ const defaultPropsPathCollection = findComponentDefaultProps(j, { root, componentName });
+
+ moveDefaultPropsPropIntoSlots(j, defaultPropsPathCollection, propName, slotName);
+}
diff --git a/packages/mui-codemod/src/v5.0.0/base-remove-unstyled-suffix.js b/packages/mui-codemod/src/v5.0.0/base-remove-unstyled-suffix.js
index 6d773a08c0f639..6c3e45094df4ec 100644
--- a/packages/mui-codemod/src/v5.0.0/base-remove-unstyled-suffix.js
+++ b/packages/mui-codemod/src/v5.0.0/base-remove-unstyled-suffix.js
@@ -10,14 +10,13 @@ export default function transformer(file, api) {
.find(j.ImportDeclaration)
.filter(({ node }) => {
const sourceVal = node.source.value;
- if (sourceVal.startsWith('@mui/base')) {
- node.source.value = sourceVal.replace(/unstyled/im, '');
- node.source.raw = sourceVal.replace(/unstyled/im, '');
- }
-
return sourceVal.startsWith('@mui/base');
})
.forEach((path) => {
+ const sourceVal = path.node.source.value;
+ if (sourceVal.startsWith('@mui/base')) {
+ path.node.source = j.stringLiteral(sourceVal.replace(/unstyled/im, ''));
+ }
const specifiers = [];
path.node.specifiers.forEach((elementNode) => {
const importedName = elementNode.imported?.name || '';
diff --git a/packages/mui-codemod/src/v5.0.0/box-sx-prop.test/expected.js b/packages/mui-codemod/src/v5.0.0/box-sx-prop.test/expected.js
index 1c5cb573310c52..0a58fec3d56e84 100644
--- a/packages/mui-codemod/src/v5.0.0/box-sx-prop.test/expected.js
+++ b/packages/mui-codemod/src/v5.0.0/box-sx-prop.test/expected.js
@@ -4,7 +4,7 @@ import Button from '@material-ui/core/Button';
export default function BoxComponent(props) {
return (
-
-
+ )
);
}
diff --git a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/eighth.expected.js b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/eighth.expected.js
index 65cd75818c0c89..95c31a25fe07e3 100644
--- a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/eighth.expected.js
+++ b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/eighth.expected.js
@@ -115,7 +115,7 @@ export default function Cart() {
});
};
return (
-
+ (
@@ -208,6 +208,6 @@ export default function Cart() {
-
+ )
);
}
\ No newline at end of file
diff --git a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/eleventh.expected.js b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/eleventh.expected.js
index 8fb90973ad75f7..71e28fcea2d4e3 100644
--- a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/eleventh.expected.js
+++ b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/eleventh.expected.js
@@ -29,9 +29,9 @@ export default function Page() {
return (
-
+ (
-
+ )
);
}
\ No newline at end of file
diff --git a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/fifth.expected.js b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/fifth.expected.js
index 493cbe51da0472..093020d104b1d2 100644
--- a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/fifth.expected.js
+++ b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/fifth.expected.js
@@ -62,7 +62,7 @@ function SellHero() {
return (
-
+ (
Sell themes
@@ -87,7 +87,7 @@ function SellHero() {
-
+ )
);
}
diff --git a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/first.expected.js b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/first.expected.js
index c919a8c97db252..5169edb4b7cd3a 100644
--- a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/first.expected.js
+++ b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/first.expected.js
@@ -180,7 +180,7 @@ class AppAppBar extends React.Component {
const { menuOpen } = this.state;
return (
-
+ (
@@ -237,7 +237,7 @@ class AppAppBar extends React.Component {
)}
-
+ )
);
}
}
diff --git a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/fourth.expected.js b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/fourth.expected.js
index cc59b1db8d5abd..714539faff3696 100644
--- a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/fourth.expected.js
+++ b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/fourth.expected.js
@@ -31,10 +31,10 @@ const StyledCard = styled(Card)(function getStyles(
export const MyCard = ((props) => {
const { } = props;
return (
-
+ (
Submit
-
+ )
);
});
diff --git a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/nineth.expected.js b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/nineth.expected.js
index 8661d681bbb3e8..b2d000ea40311c 100644
--- a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/nineth.expected.js
+++ b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/nineth.expected.js
@@ -29,9 +29,9 @@ export default function Page() {
return (
-
+ (
-
+ )
);
}
\ No newline at end of file
diff --git a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/second.expected.js b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/second.expected.js
index 30eb0ee2541889..0a5f0311b364c4 100644
--- a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/second.expected.js
+++ b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/second.expected.js
@@ -63,7 +63,7 @@ function AffiliatesHero() {
return (
-
+ (
Affiliate Program
@@ -85,7 +85,7 @@ function AffiliatesHero() {
-
+ )
);
}
diff --git a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/seventh.expected.js b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/seventh.expected.js
index 2715106e6ff16a..2a9c9e35f18226 100644
--- a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/seventh.expected.js
+++ b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/seventh.expected.js
@@ -86,7 +86,7 @@ function Iframe(props) {
}, []);
return (
-
+ (
{loaded === false ? (
@@ -109,7 +109,7 @@ function Iframe(props) {
frameBorder="0"
{...props}
/>
-
+ )
);
}
diff --git a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/third.expected.js b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/third.expected.js
index bd072a096a31d8..5525352eb6dfa0 100644
--- a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/third.expected.js
+++ b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/third.expected.js
@@ -27,10 +27,10 @@ const StyledCard = styled(Card)((
export const MyCard = ((props) => {
const { } = props;
return (
-
+ (
Submit
-
+ )
);
});
diff --git a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/withCreateStyles.expected.tsx b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/withCreateStyles.expected.tsx
index 63e961a28eff28..3ac787c22c4308 100644
--- a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/withCreateStyles.expected.tsx
+++ b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/withCreateStyles.expected.tsx
@@ -19,7 +19,7 @@ const Root = styled('div')((
const MyComponent = (props) => {
- return
;
+ return (
);
};
export default MyComponent;
\ No newline at end of file
diff --git a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/withCreateStyles1.expected.tsx b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/withCreateStyles1.expected.tsx
index 31d6cef054510c..55073749924256 100644
--- a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/withCreateStyles1.expected.tsx
+++ b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/withCreateStyles1.expected.tsx
@@ -19,7 +19,7 @@ const Root = styled('div')((
const MyComponent = (props) => {
const { } = props;
- return
;
+ return (
);
};
export default (MyComponent);
\ No newline at end of file
diff --git a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/withCreateStyles2.expected.tsx b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/withCreateStyles2.expected.tsx
index 7c5a2d26246fc7..6b84c2a5f090ad 100644
--- a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/withCreateStyles2.expected.tsx
+++ b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/withCreateStyles2.expected.tsx
@@ -15,7 +15,7 @@ const Root = styled('div')({
const MyComponent = (props) => {
const { } = props;
- return
;
+ return (
);
};
export default (MyComponent);
\ No newline at end of file
diff --git a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/withCreateStyles3.expected.tsx b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/withCreateStyles3.expected.tsx
index d40f46b983f2ce..cbede67798b670 100644
--- a/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/withCreateStyles3.expected.tsx
+++ b/packages/mui-codemod/src/v5.0.0/jss-to-styled.test/withCreateStyles3.expected.tsx
@@ -15,7 +15,7 @@ const Root = styled('div')({
const MyComponent = (props) => {
- return
;
+ return (
);
};
export default MyComponent;
\ No newline at end of file
diff --git a/packages/mui-codemod/src/v5.0.0/jss-to-tss-react.test/expected-typescript-docs-example-params.tsx b/packages/mui-codemod/src/v5.0.0/jss-to-tss-react.test/expected-typescript-docs-example-params.tsx
index 11951ce8c1a7c0..af3bb81e8b8343 100644
--- a/packages/mui-codemod/src/v5.0.0/jss-to-tss-react.test/expected-typescript-docs-example-params.tsx
+++ b/packages/mui-codemod/src/v5.0.0/jss-to-tss-react.test/expected-typescript-docs-example-params.tsx
@@ -1,12 +1,13 @@
import { makeStyles } from 'tss-react/mui';
const useStyles = makeStyles<{color: 'primary' | 'secondary', padding: number}, 'child' | 'small'>({name: 'App'})((theme, { color, padding }, classes) => ({
- root: {
+ root: ({
padding: padding,
+
[`&:hover .${classes.child}`]: {
backgroundColor: theme.palette[color].main,
}
- },
+ }),
small: {},
child: {
border: '1px solid black',
@@ -28,7 +29,7 @@ function App({classes: classesProp}: {classes?: any}) {
});
return (
-
+ (
The Background take the primary theme color when the mouse hovers the parent.
@@ -36,7 +37,7 @@ function App({classes: classesProp}: {classes?: any}) {
The Background take the primary theme color when the mouse hovers the parent.
I am smaller than the other child.
-
+
)
);
}
diff --git a/packages/mui-codemod/src/v5.0.0/jss-to-tss-react.test/expected-typescript-docs-example.tsx b/packages/mui-codemod/src/v5.0.0/jss-to-tss-react.test/expected-typescript-docs-example.tsx
index b906d0c65b7665..495a6f1c8853a7 100644
--- a/packages/mui-codemod/src/v5.0.0/jss-to-tss-react.test/expected-typescript-docs-example.tsx
+++ b/packages/mui-codemod/src/v5.0.0/jss-to-tss-react.test/expected-typescript-docs-example.tsx
@@ -22,7 +22,7 @@ const useStyles = makeStyles()((theme, _params, classes
function App() {
const { classes, cx } = useStyles();
return (
-
+ (
Background turns red when the mouse hovers over the parent.
@@ -30,7 +30,7 @@ function App() {
Background turns red when the mouse hovers over the parent.
I am smaller than the other child.
-
+ )
);
}
diff --git a/packages/mui-codemod/src/v5.0.0/preset-safe.test/expected.js b/packages/mui-codemod/src/v5.0.0/preset-safe.test/expected.js
index 511a87bcb82936..d65e32b346d5aa 100644
--- a/packages/mui-codemod/src/v5.0.0/preset-safe.test/expected.js
+++ b/packages/mui-codemod/src/v5.0.0/preset-safe.test/expected.js
@@ -87,7 +87,7 @@ const Header = () => {
const classes = useStyles();
const { dark, setDark } = React.useContext(DarkContext);
return (
-
+ (
👋 Hello
@@ -110,7 +110,7 @@ const Header = () => {
onChange={(event, checked) => setDark(checked)}
/>
-
+ )
);
};
@@ -119,7 +119,7 @@ function App() {
const handleClose = () => setOpen(false);
const { setDark } = React.useContext(DarkContext);
const classes = useStyles();
- return <>
+ return (<>
@@ -173,7 +173,7 @@ function App() {
- >;
+ >);
}
const withThemeProvider = (Component) => (props) => {
@@ -188,7 +188,7 @@ const withThemeProvider = (Component) => (props) => {
[dark],
);
return (
-
+ (
@@ -196,7 +196,7 @@ const withThemeProvider = (Component) => (props) => {
-
+ )
);
};
diff --git a/packages/mui-codemod/src/v5.0.0/styled-engine-provider.test/mui-theme-provider.expected.js b/packages/mui-codemod/src/v5.0.0/styled-engine-provider.test/mui-theme-provider.expected.js
index 107f5814aa1f23..6826808eedbe0d 100644
--- a/packages/mui-codemod/src/v5.0.0/styled-engine-provider.test/mui-theme-provider.expected.js
+++ b/packages/mui-codemod/src/v5.0.0/styled-engine-provider.test/mui-theme-provider.expected.js
@@ -5,7 +5,7 @@ import Page from './pages';
const App = () => {
return (
-
+ (
@@ -13,7 +13,7 @@ const App = () => {
-
+ )
);
};
diff --git a/packages/mui-codemod/src/v5.0.0/styled-engine-provider.test/theme-provider.expected.js b/packages/mui-codemod/src/v5.0.0/styled-engine-provider.test/theme-provider.expected.js
index ce27802818f1fc..b727b543d2728d 100644
--- a/packages/mui-codemod/src/v5.0.0/styled-engine-provider.test/theme-provider.expected.js
+++ b/packages/mui-codemod/src/v5.0.0/styled-engine-provider.test/theme-provider.expected.js
@@ -6,11 +6,11 @@ import Page from './pages';
const App = () => {
return (
-
+ (
-
+ )
);
};
diff --git a/packages/mui-codemod/src/v5.0.0/theme-provider.test/core-import.expected.js b/packages/mui-codemod/src/v5.0.0/theme-provider.test/core-import.expected.js
index 15925ec0af83d1..0f5322c1c02a6e 100644
--- a/packages/mui-codemod/src/v5.0.0/theme-provider.test/core-import.expected.js
+++ b/packages/mui-codemod/src/v5.0.0/theme-provider.test/core-import.expected.js
@@ -2,8 +2,8 @@ import { createTheme, ThemeProvider, Theme } from '@material-ui/core';
function App() {
return (
-
+ (
-
+ )
);
}
diff --git a/packages/mui-codemod/src/v5.0.0/theme-provider.test/expected.js b/packages/mui-codemod/src/v5.0.0/theme-provider.test/expected.js
index 21b87540236096..c90abfb69000d1 100644
--- a/packages/mui-codemod/src/v5.0.0/theme-provider.test/expected.js
+++ b/packages/mui-codemod/src/v5.0.0/theme-provider.test/expected.js
@@ -2,8 +2,8 @@ import { createTheme, ThemeProvider, Theme } from '@material-ui/core/styles';
function App() {
return (
-
+ (
-
+ )
);
}
diff --git a/packages/mui-codemod/src/v5.0.0/variant-prop.test/expected.js b/packages/mui-codemod/src/v5.0.0/variant-prop.test/expected.js
index e668c182c28d65..7b38552e579f7b 100644
--- a/packages/mui-codemod/src/v5.0.0/variant-prop.test/expected.js
+++ b/packages/mui-codemod/src/v5.0.0/variant-prop.test/expected.js
@@ -11,7 +11,7 @@ const Select2 = () => ;
export default function TextFieldComponent(props) {
return (
-
+ (
@@ -33,10 +33,9 @@ export default function TextFieldComponent(props) {
-
-
+
)
);
}
diff --git a/packages/mui-core-downloads-tracker/package.json b/packages/mui-core-downloads-tracker/package.json
index 50d462045792c9..a2aa0d9631db7b 100644
--- a/packages/mui-core-downloads-tracker/package.json
+++ b/packages/mui-core-downloads-tracker/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/core-downloads-tracker",
- "version": "6.0.0-alpha.0",
+ "version": "6.0.0-alpha.2",
"private": false,
"author": "MUI Team",
"description": "Internal package to track number of downloads of our design system libraries",
diff --git a/packages/mui-docs/package.json b/packages/mui-docs/package.json
index 0989ad752368bd..54f3b4c83f9a47 100644
--- a/packages/mui-docs/package.json
+++ b/packages/mui-docs/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/docs",
- "version": "6.0.0-alpha.0",
+ "version": "6.0.0-alpha.2",
"private": false,
"author": "MUI Team",
"description": "MUI Docs - Documentation building blocks.",
@@ -35,24 +35,24 @@
"test": "exit 0"
},
"dependencies": {
- "@babel/runtime": "^7.23.9",
+ "@babel/runtime": "^7.24.4",
"clsx": "^2.1.0",
"nprogress": "^0.2.0",
"prop-types": "^15.8.1"
},
"devDependencies": {
- "@mui/material": "workspace:*",
"@mui/icons-material": "workspace:*",
- "@types/node": "^18.19.25",
+ "@mui/material": "workspace:*",
+ "@types/node": "^18.19.31",
"@types/prop-types": "^15.7.12",
"@types/react": "^18.2.55",
"next": "^13.5.1",
"react": "^18.2.0"
},
"peerDependencies": {
- "@mui/material": "^5.0.0",
"@mui/base": "*",
"@mui/icons-material": "^5.0.0",
+ "@mui/material": "^5.0.0",
"@mui/system": "^5.0.0",
"@types/react": "^17.0.0 || ^18.0.0",
"next": "^13.5.1 || ^14",
diff --git a/packages/mui-docs/src/InfoCard/InfoCard.tsx b/packages/mui-docs/src/InfoCard/InfoCard.tsx
index d686fd4f268ee2..56ec11e1f94486 100644
--- a/packages/mui-docs/src/InfoCard/InfoCard.tsx
+++ b/packages/mui-docs/src/InfoCard/InfoCard.tsx
@@ -23,11 +23,11 @@ export function GlowingIconContainer({ icon }: GlowingIconContainerProps) {
border: '1px solid',
borderColor: 'primary.200',
bgcolor: 'primary.50',
- boxShadow: `0px 1px 6px 0px ${alpha(theme.palette.primary[500], 0.2)}, 0px 2px 12px 0px rgba(234, 237, 241, 0.3) inset`,
+ boxShadow: `0px 0 0 2px ${alpha(theme.palette.primary[500], 0.1)}, 0px 2px 12px 0px rgba(234, 237, 241, 0.3) inset`,
...theme.applyDarkStyles({
borderColor: alpha(theme.palette.primary[400], 0.25),
- bgcolor: alpha(theme.palette.primary[900], 0.25),
- boxShadow: `0 2px 6px 0 ${alpha(theme.palette.primary[600], 0.3)}, 0px 2px 12px 0px rgba(0, 0, 0, 0.25) inset`,
+ bgcolor: alpha(theme.palette.primary[900], 0.4),
+ boxShadow: `0 0 0 2px ${alpha(theme.palette.primary[600], 0.1)}, 0px 2px 12px 0px rgba(0, 0, 0, 0.25) inset`,
}),
})}
>
@@ -79,7 +79,7 @@ export function InfoCard(props: InfoCardProps) {
height: '100%',
background: `${(theme.vars || theme).palette.gradients.linearSubtle}`,
...theme.applyDarkStyles({
- bgcolor: 'primaryDark.900',
+ bgcolor: alpha(theme.palette.primaryDark[800], 0.25),
background: `${(theme.vars || theme).palette.gradients.linearSubtle}`,
borderColor: 'primaryDark.700',
}),
diff --git a/packages/mui-docs/src/branding/brandingTheme.ts b/packages/mui-docs/src/branding/brandingTheme.ts
index 9a1763026a7b8b..59013ee0e1d539 100644
--- a/packages/mui-docs/src/branding/brandingTheme.ts
+++ b/packages/mui-docs/src/branding/brandingTheme.ts
@@ -32,8 +32,7 @@ declare module '@mui/material/styles/createPalette' {
interface Palette {
primaryDark: PaletteColor;
gradients: {
- lightGrayRadio: string;
- stylizedRadio: string;
+ radioSubtle: string;
linearSubtle: string;
};
}
@@ -91,82 +90,81 @@ declare module '@mui/material/SvgIcon' {
const defaultTheme = createTheme();
export const blue = {
- 50: '#EBF5FF',
- 100: '#CCE5FF',
- 200: '#99CCFF',
- 300: '#66B2FF',
- 400: '#3399FF',
- main: '#0073E6',
- 500: '#0073E6',
- 600: '#006BD6',
- 700: '#0061C2',
- 800: '#004C99',
- 900: '#003A75',
+ 50: 'hsl(210, 100%, 96%)',
+ 100: 'hsl(210, 100%, 90%)',
+ 200: 'hsl(210, 100%, 80%)',
+ 300: 'hsl(210, 100%, 70%)',
+ 400: 'hsl(210, 100%, 60%)',
+ main: 'hsl(210, 100%, 45%)',
+ 500: 'hsl(210, 100%, 45%)',
+ 600: 'hsl(210, 100%, 42%)',
+ 700: 'hsl(210, 100%, 38%)',
+ 800: 'hsl(210, 100%, 30%)',
+ 900: 'hsl(210, 100%, 23%)',
};
export const blueDark = {
- 50: '#EAEDF1',
- 100: '#DAE0E7',
- 200: '#ACBAC8',
- 300: '#7B91A7',
- main: '#7B91A7',
- 400: '#4B5E71',
- 500: '#3B4A59',
- 600: '#2F3A46',
- 700: '#1F262E', // contrast 13.64:1
- 800: '#141A1F',
- 900: '#101418',
+ 50: 'hsl(210, 14%, 92%)',
+ 100: 'hsl(210, 14%, 87%)',
+ 200: 'hsl(210, 14%, 72%)',
+ 300: 'hsl(210, 14%, 56%)',
+ main: 'hsl(210, 14%, 56%)',
+ 400: 'hsl(210, 14%, 36%)',
+ 500: 'hsl(210, 14%, 28%)',
+ 600: 'hsl(210, 14%, 22%)',
+ 700: 'hsl(210, 14%, 13%)',
+ 800: 'hsl(210, 14%, 9%)',
+ 900: 'hsl(210, 14%, 7%)',
};
export const grey = {
- 50: '#F3F6F9',
- 100: '#E5EAF2',
- 200: '#DAE2ED',
- 300: '#C5D0E0', // vs blueDark 900: WCAG 11.6 AAA, APCA 78 Best for text
- 400: '#AEBACB', // vs blueDark 900: WCAG 9 AAA, APCA 63.3 Ok for text
- 500: '#99A7BB', // vs blueDark 900: WCAG 7.5 AAA, APCA 54.3 Only for large text
- 600: '#6F7F95', // vs white bg: WCAG 4.1 AA, APCA 68.7 Ok for text
- 700: '#576375', // vs white bg: WCAG 8.3 AAA, APCA 88.7 Best for text
- 800: '#303740', // vs white bg: WCAG 11.9 AAA, APCA 97.3 Best for text
- 900: '#1C2025',
+ 50: 'hsl(215, 15%, 97%)',
+ 100: 'hsl(215, 15%, 92%)',
+ 200: 'hsl(215, 15%, 89%)',
+ 300: 'hsl(215, 15%, 82%)',
+ 400: 'hsl(215, 15%, 75%)',
+ 500: 'hsl(215, 15%, 65%)',
+ 600: 'hsl(215, 15%, 50%)',
+ 700: 'hsl(215, 15%, 40%)',
+ 800: 'hsl(215, 15%, 22%)',
+ 900: 'hsl(215, 15%, 12%)',
};
export const error = {
- 50: '#FFF0F1',
- 100: '#FFDBDE',
- 200: '#FFBDC2',
- 300: '#FF99A2',
- 400: '#FF7A86',
- 500: '#FF505F',
- main: '#EB0014', // contrast 4.63:1
- 600: '#EB0014',
- 700: '#C70011',
- 800: '#94000D',
- 900: '#570007',
+ 50: 'hsl(355, 98%, 97%)',
+ 100: 'hsl(355, 98%, 93%)',
+ 200: 'hsl(355, 98%, 87%)',
+ 300: 'hsl(355, 98%, 80%)',
+ 400: 'hsl(355, 98%, 74%)',
+ 500: 'hsl(355, 98%, 66%)',
+ main: 'hsl(355, 98%, 66%)',
+ 600: 'hsl(355, 98%, 46%)',
+ 700: 'hsl(355, 98%, 39%)',
+ 800: 'hsl(355, 98%, 29%)',
+ 900: 'hsl(355, 98%, 17%)',
};
export const success = {
- 50: '#E9FBF0',
- 100: '#C6F6D9',
- 200: '#9AEFBC',
- 300: '#6AE79C',
- 400: '#3EE07F',
- 500: '#21CC66',
- 600: '#1DB45A',
- 700: '#1AA251',
- 800: '#178D46',
- 900: '#0F5C2E',
+ 50: 'hsl(144, 72%, 95%)',
+ 100: 'hsl(144, 72%, 87%)',
+ 200: 'hsl(144, 72%, 77%)',
+ 300: 'hsl(144, 72%, 66%)',
+ 400: 'hsl(144, 72%, 56%)',
+ 500: 'hsl(144, 72%, 46%)',
+ 600: 'hsl(144, 72%, 41%)',
+ 700: 'hsl(144, 72%, 37%)',
+ 800: 'hsl(144, 72%, 32%)',
+ 900: 'hsl(144, 72%, 21%)',
};
export const warning = {
- 50: '#FFF9EB',
- 100: '#FFF3C1',
- 200: '#FFECA1',
- 300: '#FFDC48', // vs blueDark900: WCAG 10.4 AAA, APCA 72 Ok for text
- 400: '#F4C000', // vs blueDark900: WCAG 6.4 AA normal, APCA 48 Only large text
- 500: '#DEA500', // vs blueDark900: WCAG 8 AAA normal, APCA 58 Only large text
- main: '#DEA500',
- 600: '#D18E00', // vs blueDark900: WCAG 6.4 AA normal, APCA 48 Only large text
- 700: '#AB6800', // vs white bg: WCAG 4.4 AA large, APCA 71 Ok for text
- 800: '#8C5800', // vs white bg: WCAG 5.9 AAA large, APCA 80 Best for text
- 900: '#5A3600', // vs white bg: WCAG 10.7 AAA, APCA 95 Best for text
+ 50: 'hsl(48, 100%, 96%)',
+ 100: 'hsl(48, 100%, 88%)',
+ 200: 'hsl(48, 100%, 82%)',
+ 300: 'hsl(48, 100%, 64%)',
+ 400: 'hsl(48, 100%, 48%)',
+ 500: 'hsl(48, 100%, 44%)',
+ main: 'hsl(48, 100%, 44%)',
+ 600: 'hsl(40, 100%, 40%)',
+ 700: 'hsl(36, 100%, 34%)',
+ 800: 'hsl(36, 100%, 27%)',
+ 900: 'hsl(36, 100%, 18%)',
};
-// context on the Advanced Perceptual Contrast Algorithm (APCA) used above here: https://github.com/w3c/wcag/issues/695
const systemFont = [
'-apple-system',
@@ -209,7 +207,7 @@ export const getDesignTokens = (mode: 'light' | 'dark') =>
contrastText: blueDark[600],
}),
},
- divider: mode === 'dark' ? alpha(blueDark[500], 0.2) : grey[100],
+ divider: mode === 'dark' ? alpha(blueDark[500], 0.3) : grey[100],
primaryDark: blueDark,
mode,
...(mode === 'dark' && {
@@ -219,7 +217,7 @@ export const getDesignTokens = (mode: 'light' | 'dark') =>
},
}),
common: {
- black: '#0B0D0E',
+ black: 'hsl(200, 10%, 4%)',
},
text: {
...(mode === 'light' && {
@@ -248,20 +246,18 @@ export const getDesignTokens = (mode: 'light' | 'dark') =>
success: {
...success,
...(mode === 'dark' && {
- main: '#1DB45A', // contrast 6.17:1 (blueDark.800)
+ main: success[600],
}),
...(mode === 'light' && {
- main: '#1AA251', // contrast 3.31:1
+ main: success[700],
}),
},
warning,
gradients: {
- lightGrayRadio:
- 'radial-gradient(50% 50% at 50% 50%, #F0F7FF 0%, rgba(240, 247, 255, 0.05) 100%)',
- stylizedRadio:
+ radioSubtle:
mode === 'dark'
- ? 'linear-gradient(rgba(0 0 0 / 0.1), rgba(0 0 0 / 0.1)), linear-gradient(254.86deg, rgba(0, 58, 117, 0.18) 0%, rgba(11, 13, 14, 0.3) 49.98%, rgba(0, 76, 153, 0.21) 100.95%)'
- : 'linear-gradient(rgba(255 255 255 / 0.3), rgba(255 255 255 / 0.3)), linear-gradient(254.86deg, rgba(194, 224, 255, 0.12) 0%, rgba(194, 224, 255, 0.12) 0%, rgba(255, 255, 255, 0.3) 49.98%, rgba(240, 247, 255, 0.3) 100.95%)',
+ ? `radial-gradient(100% 100% at 100% 100%, transparent 0, ${alpha(blue[900], 0.3)} 300%)`
+ : `radial-gradient(100% 90% at 50% 0, transparent 0, ${alpha(blue[100], 0.3)} 300%)`,
linearSubtle:
mode === 'light'
? `linear-gradient(to bottom right, ${alpha(blue[50], 0.3)} 25%, ${alpha(grey[50], 0.2)} 100%)`
@@ -718,7 +714,7 @@ export function getThemedComponents(): ThemeOptions {
color: (theme.vars || theme).palette.primary.main,
backgroundColor: alpha(theme.palette.primaryDark[50], 0.1),
borderColor: (theme.vars || theme).palette.primaryDark[100],
- boxShadow: `${alpha(theme.palette.grey[50], 0.4)} 0 1px 0 inset, ${alpha(theme.palette.grey[100], 0.5)} 0 -1.5px 0 inset, ${alpha(theme.palette.grey[200], 0.5)} 0 1px 2px 0`,
+ boxShadow: `${alpha(theme.palette.grey[50], 0.4)} 0 2px 0 inset, ${alpha(theme.palette.grey[100], 0.5)} 0 -1.5px 0 inset, ${alpha(theme.palette.grey[200], 0.5)} 0 1px 2px 0`,
'&:hover': {
borderColor: (theme.vars || theme).palette.grey[300],
background: (theme.vars || theme).palette.grey[50],
@@ -728,7 +724,7 @@ export function getThemedComponents(): ThemeOptions {
color: (theme.vars || theme).palette.primary[300],
borderColor: alpha(theme.palette.primaryDark[600], 0.5),
backgroundColor: alpha(theme.palette.primaryDark[700], 0.2),
- boxShadow: `${alpha(theme.palette.primaryDark[600], 0.2)} 0 1px 0 inset, ${(theme.vars || theme).palette.common.black} 0 -2px 0 inset, ${(theme.vars || theme).palette.common.black} 0 1px 2px 0`,
+ boxShadow: `${alpha(theme.palette.primaryDark[600], 0.2)} 0 2px 0 inset, ${(theme.vars || theme).palette.common.black} 0 -2px 0 inset, ${(theme.vars || theme).palette.common.black} 0 1px 2px 0`,
'&:hover': {
borderColor: (theme.vars || theme).palette.primaryDark[500],
background: alpha(theme.palette.primaryDark[700], 0.4),
@@ -747,7 +743,7 @@ export function getThemedComponents(): ThemeOptions {
border: `1px solid`,
backgroundColor: alpha(theme.palette.primaryDark[50], 0.1),
borderColor: (theme.vars || theme).palette.primaryDark[100],
- boxShadow: `${alpha(theme.palette.grey[50], 0.4)} 0 1px 0 inset, ${alpha(theme.palette.grey[100], 0.5)} 0 -1.5px 0 inset, ${alpha(theme.palette.grey[200], 0.5)} 0 1px 2px 0`,
+ boxShadow: `${alpha(theme.palette.grey[50], 0.4)} 0 2px 0 inset, ${alpha(theme.palette.grey[100], 0.5)} 0 -1.5px 0 inset, ${alpha(theme.palette.grey[200], 0.5)} 0 1px 2px 0`,
'&:hover': {
color: (theme.vars || theme).palette.primary.main,
borderColor: (theme.vars || theme).palette.grey[300],
@@ -757,7 +753,7 @@ export function getThemedComponents(): ThemeOptions {
theme.applyDarkStyles({
borderColor: alpha(theme.palette.primaryDark[600], 0.5),
backgroundColor: alpha(theme.palette.primaryDark[700], 0.2),
- boxShadow: `${alpha(theme.palette.primaryDark[600], 0.2)} 0 1px 0 inset, ${(theme.vars || theme).palette.common.black} 0 -2px 0 inset, ${(theme.vars || theme).palette.common.black} 0 1px 2px 0`,
+ boxShadow: `${alpha(theme.palette.primaryDark[600], 0.2)} 0 2px 0 inset, ${(theme.vars || theme).palette.common.black} 0 -2px 0 inset, ${(theme.vars || theme).palette.common.black} 0 1px 2px 0`,
'&:hover': {
color: (theme.vars || theme).palette.primary[400],
borderColor: (theme.vars || theme).palette.primaryDark[500],
@@ -825,7 +821,7 @@ export function getThemedComponents(): ThemeOptions {
root: ({ theme }) => ({
borderColor: (theme.vars || theme).palette.grey[100],
...theme.applyDarkStyles({
- borderColor: alpha(theme.palette.primaryDark[700], 0.8),
+ borderColor: alpha(theme.palette.primaryDark[500], 0.3),
}),
}),
},
@@ -909,7 +905,7 @@ export function getThemedComponents(): ThemeOptions {
...(variant === 'outlined' &&
color === 'primary' && {
borderColor: (theme.vars || theme).palette.primary[100],
- backgroundColor: (theme.vars || theme).palette.primary[50],
+ backgroundColor: alpha(theme.palette.primary[100], 0.2),
...theme.applyDarkStyles({
color: (theme.vars || theme).palette.primary[300],
borderColor: alpha(theme.palette.primary[500], 0.2),
@@ -955,6 +951,9 @@ export function getThemedComponents(): ThemeOptions {
color: (theme.vars || theme).palette.primary[700],
},
},
+ '&.Mui-focusVisible': {
+ backgroundColor: (theme.vars || theme).palette.primary[200],
+ },
...theme.applyDarkStyles({
color: (theme.vars || theme).palette.primary[100],
backgroundColor: alpha(theme.palette.primary[800], 0.5),
@@ -1081,7 +1080,7 @@ export function getThemedComponents(): ThemeOptions {
borderColor: (theme.vars || theme).palette.grey[100],
'&[href]': {
textDecorationLine: 'none',
- boxShadow: `${alpha(theme.palette.grey[50], 0.5)} 0 1px 0 inset, ${alpha(theme.palette.grey[100], 0.3)} 0 -2px 0 inset, ${alpha(theme.palette.grey[200], 0.5)} 0 1px 2px 0`,
+ boxShadow: `hsl(200, 0%, 100%) 0 2px 0 inset, ${alpha(theme.palette.grey[100], 0.3)} 0 -2px 0 inset, ${alpha(theme.palette.grey[200], 0.5)} 0 1px 2px 0`,
'&:hover': {
borderColor: (theme.vars || theme).palette.primary[200],
boxShadow: `0px 2px 8px ${(theme.vars || theme).palette.primary[100]}`,
@@ -1106,7 +1105,7 @@ export function getThemedComponents(): ThemeOptions {
backgroundColor: alpha(theme.palette.primaryDark[800], 0.6),
'&[href]': {
textDecorationLine: 'none',
- boxShadow: `${alpha(theme.palette.primaryDark[600], 0.2)} 0 1px 0 inset, ${(theme.vars || theme).palette.common.black} 0 -2px 0 inset, ${(theme.vars || theme).palette.common.black} 0 1px 2px 0`,
+ boxShadow: `${alpha(theme.palette.primaryDark[700], 0.4)} 0 2px 0 inset, ${(theme.vars || theme).palette.common.black} 0 -2px 0 inset, ${(theme.vars || theme).palette.common.black} 0 1px 2px 0`,
'&:hover': {
borderColor: alpha(theme.palette.primary[600], 0.5),
boxShadow: `0px 2px 8px ${alpha(theme.palette.primary[900], 0.6)}`,
diff --git a/packages/mui-envinfo/package.json b/packages/mui-envinfo/package.json
index 32ddd5668876cf..bdaa1fd77cedd4 100644
--- a/packages/mui-envinfo/package.json
+++ b/packages/mui-envinfo/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/envinfo",
- "version": "2.0.19",
+ "version": "2.0.20",
"private": false,
"author": "MUI Team",
"description": "Logs infos about the environment relevant to @mui/*",
@@ -20,10 +20,10 @@
"build": "node scripts/build"
},
"dependencies": {
- "envinfo": "^7.11.1"
+ "envinfo": "^7.12.0"
},
"devDependencies": {
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"chai": "^4.4.1",
"fs-extra": "^11.2.0"
},
diff --git a/packages/mui-envinfo/test/package.json b/packages/mui-envinfo/test/package.json
index e63819d86b731c..b4a34d9bcff349 100644
--- a/packages/mui-envinfo/test/package.json
+++ b/packages/mui-envinfo/test/package.json
@@ -4,7 +4,7 @@
"private": true,
"dependencies": {
"@emotion/react": "^11.11.4",
- "@emotion/styled": "^11.11.0",
+ "@emotion/styled": "^11.11.5",
"@mui/base": "5.0.0-beta.30",
"@mui/joy": "5.0.0-beta.22",
"@mui/material": "5.15.4",
diff --git a/packages/mui-icons-material/package.json b/packages/mui-icons-material/package.json
index 5842a7c8e13662..b5e4c824365edd 100644
--- a/packages/mui-icons-material/package.json
+++ b/packages/mui-icons-material/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/icons-material",
- "version": "6.0.0-alpha.0",
+ "version": "6.0.0-alpha.2",
"private": false,
"author": "MUI Team",
"description": "Material Design icons distributed as SVG React components.",
@@ -46,13 +46,13 @@
"typescript": "tsc -p tsconfig.json"
},
"dependencies": {
- "@babel/runtime": "^7.23.9"
+ "@babel/runtime": "^7.24.4"
},
"devDependencies": {
"@mui/icons-material": "workspace:*",
"@mui/internal-waterfall": "workspace:^",
"@mui/material": "workspace:^",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/react": "^18.2.55",
"chai": "^4.4.1",
"chalk": "^5.3.0",
diff --git a/packages/mui-joy/package.json b/packages/mui-joy/package.json
index d468f1a2c5bc00..0dabc1fb459b7a 100644
--- a/packages/mui-joy/package.json
+++ b/packages/mui-joy/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/joy",
- "version": "5.0.0-beta.33",
+ "version": "5.0.0-beta.35",
"private": false,
"author": "MUI Team",
"description": "Joy UI is an open-source React component library that implements MUI's own design principles. It's comprehensive and can be used in production out of the box.",
@@ -38,7 +38,7 @@
"typescript:module-augmentation": "node scripts/testModuleAugmentation.js"
},
"dependencies": {
- "@babel/runtime": "^7.23.9",
+ "@babel/runtime": "^7.24.4",
"@mui/base": "workspace:*",
"@mui/core-downloads-tracker": "workspace:^",
"@mui/system": "workspace:^",
@@ -50,7 +50,7 @@
"devDependencies": {
"@mui-internal/test-utils": "workspace:^",
"@mui/material": "workspace:^",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/prop-types": "^15.7.12",
"@types/react": "^18.2.55",
"@types/react-dom": "^18.2.19",
diff --git a/packages/mui-joy/src/Button/Button.tsx b/packages/mui-joy/src/Button/Button.tsx
index 75f3d037825f8d..30638d94f6730a 100644
--- a/packages/mui-joy/src/Button/Button.tsx
+++ b/packages/mui-joy/src/Button/Button.tsx
@@ -139,6 +139,7 @@ export const getButtonStyles = ({
border: 'none',
backgroundColor: 'transparent',
cursor: 'pointer',
+ userSelect: 'none',
display: 'inline-flex',
alignItems: 'center',
justifyContent: 'center',
diff --git a/packages/mui-joy/src/Table/Table.tsx b/packages/mui-joy/src/Table/Table.tsx
index cffc5d1c300470..37a50b558621af 100644
--- a/packages/mui-joy/src/Table/Table.tsx
+++ b/packages/mui-joy/src/Table/Table.tsx
@@ -418,15 +418,11 @@ Table.propTypes /* remove-proptypes */ = {
}),
/**
* If `true`, the footer always appear at the bottom of the overflow table.
- *
- * ⚠️ It doesn't work with IE11.
* @default false
*/
stickyFooter: PropTypes.bool,
/**
* If `true`, the header always appear at the top of the overflow table.
- *
- * ⚠️ It doesn't work with IE11.
* @default false
*/
stickyHeader: PropTypes.bool,
diff --git a/packages/mui-joy/src/Table/TableProps.ts b/packages/mui-joy/src/Table/TableProps.ts
index e87321e1e4747d..df683c4d344a68 100644
--- a/packages/mui-joy/src/Table/TableProps.ts
+++ b/packages/mui-joy/src/Table/TableProps.ts
@@ -65,15 +65,11 @@ export interface TableTypeMap {
size?: OverridableStringUnion<'sm' | 'md' | 'lg', TablePropsSizeOverrides>;
/**
* If `true`, the header always appear at the top of the overflow table.
- *
- * ⚠️ It doesn't work with IE11.
* @default false
*/
stickyHeader?: boolean;
/**
* If `true`, the footer always appear at the bottom of the overflow table.
- *
- * ⚠️ It doesn't work with IE11.
* @default false
*/
stickyFooter?: boolean;
diff --git a/packages/mui-lab/package.json b/packages/mui-lab/package.json
index 59112f627e2625..4ba2dab61dbfaf 100644
--- a/packages/mui-lab/package.json
+++ b/packages/mui-lab/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/lab",
- "version": "6.0.0-alpha.0",
+ "version": "6.0.0-alpha.2",
"private": false,
"author": "MUI Team",
"description": "Laboratory for new MUI modules.",
@@ -41,7 +41,7 @@
"typescript": "tsc -p tsconfig.json"
},
"dependencies": {
- "@babel/runtime": "^7.23.9",
+ "@babel/runtime": "^7.24.4",
"@mui/base": "workspace:*",
"@mui/system": "workspace:^",
"@mui/types": "workspace:^",
@@ -52,7 +52,7 @@
"devDependencies": {
"@mui-internal/test-utils": "workspace:^",
"@mui/material": "workspace:*",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/prop-types": "^15.7.12",
"@types/react": "^18.2.55",
"@types/react-dom": "^18.2.19",
diff --git a/packages/mui-lab/src/TabPanel/TabPanel.d.ts b/packages/mui-lab/src/TabPanel/TabPanel.d.ts
index 235ccbc3d6dc59..378190b80f60e7 100644
--- a/packages/mui-lab/src/TabPanel/TabPanel.d.ts
+++ b/packages/mui-lab/src/TabPanel/TabPanel.d.ts
@@ -22,6 +22,11 @@ export interface TabPanelProps extends StandardProps {
- const { classes } = ownerState;
+ const { classes, hidden } = ownerState;
const slots = {
- root: ['root'],
+ root: ['root', hidden && 'hidden'],
};
return composeClasses(slots, getTabPanelUtilityClass, classes);
@@ -28,7 +28,7 @@ const TabPanelRoot = styled('div', {
const TabPanel = React.forwardRef(function TabPanel(inProps, ref) {
const props = useThemeProps({ props: inProps, name: 'MuiTabPanel' });
- const { children, className, value, ...other } = props;
+ const { children, className, value, keepMounted = false, ...other } = props;
const ownerState = {
...props,
@@ -54,7 +54,7 @@ const TabPanel = React.forwardRef(function TabPanel(inProps, ref) {
ownerState={ownerState}
{...other}
>
- {value === context.value && children}
+ {(keepMounted || value === context.value) && children}
);
});
@@ -76,6 +76,11 @@ TabPanel.propTypes /* remove-proptypes */ = {
* @ignore
*/
className: PropTypes.string,
+ /**
+ * Always keep the children in the DOM.
+ * @default false
+ */
+ keepMounted: PropTypes.bool,
/**
* The system prop that allows defining system overrides as well as additional CSS styles.
*/
diff --git a/packages/mui-lab/src/TabPanel/TabPanel.test.tsx b/packages/mui-lab/src/TabPanel/TabPanel.test.tsx
index ba0487616e45f9..bf6ec9394c9737 100644
--- a/packages/mui-lab/src/TabPanel/TabPanel.test.tsx
+++ b/packages/mui-lab/src/TabPanel/TabPanel.test.tsx
@@ -24,14 +24,17 @@ describe(' ', () => {
],
}));
- it('renders a [role="tabpanel"]', () => {
- const { getByTestId } = render(
+ it('renders a [role="tabpanel"] and mounts children', () => {
+ const { getByTestId, queryByTestId } = render(
-
+
+
+
,
);
expect(getByTestId('tabpanel')).to.have.attribute('role', 'tabpanel');
+ expect(queryByTestId('child')).to.not.equal(null);
});
it('is [hidden] when TabPanel#value !== TabContext#value and does not mount children', () => {
@@ -47,6 +50,19 @@ describe(' ', () => {
expect(queryByTestId('child')).to.equal(null);
});
+ it('is [hidden] when TabPanel#value !== TabContext#value but does mount children when keepMounted', () => {
+ const { getByTestId, queryByTestId } = render(
+
+
+
+
+ ,
+ );
+
+ expect(getByTestId('tabpanel')).to.have.property('hidden', true);
+ expect(queryByTestId('child')).to.not.equal(null);
+ });
+
it('is accessible when TabPanel#value === TabContext#value', () => {
const { getByTestId } = render(
diff --git a/packages/mui-lab/src/TabPanel/tabPanelClasses.ts b/packages/mui-lab/src/TabPanel/tabPanelClasses.ts
index 0adc5d0626c42d..cbcff1befa4d5d 100644
--- a/packages/mui-lab/src/TabPanel/tabPanelClasses.ts
+++ b/packages/mui-lab/src/TabPanel/tabPanelClasses.ts
@@ -4,6 +4,8 @@ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
export interface TabPanelClasses {
/** Styles applied to the root element. */
root: string;
+ /** State class applied to the root `div` element if `hidden={true}`. */
+ hidden: string;
}
export type TabPanelClassKey = keyof TabPanelClasses;
@@ -12,6 +14,6 @@ export function getTabPanelUtilityClass(slot: string): string {
return generateUtilityClass('MuiTabPanel', slot);
}
-const tabPanelClasses: TabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root']);
+const tabPanelClasses: TabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root', 'hidden']);
export default tabPanelClasses;
diff --git a/packages/mui-material-nextjs/package.json b/packages/mui-material-nextjs/package.json
index 32ea01247a202c..6f916e47fe5983 100644
--- a/packages/mui-material-nextjs/package.json
+++ b/packages/mui-material-nextjs/package.json
@@ -37,7 +37,7 @@
"typescript": "tsc -p tsconfig.json"
},
"dependencies": {
- "@babel/runtime": "^7.23.9"
+ "@babel/runtime": "^7.24.4"
},
"devDependencies": {
"@emotion/cache": "^11.11.0",
diff --git a/packages/mui-material/package.json b/packages/mui-material/package.json
index 92b05ce454811e..f886dbe530351e 100644
--- a/packages/mui-material/package.json
+++ b/packages/mui-material/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/material",
- "version": "6.0.0-alpha.0",
+ "version": "6.0.0-alpha.2",
"private": false,
"author": "MUI Team",
"description": "Material UI is an open-source React component library that implements Google's Material Design. It's comprehensive and can be used in production out of the box.",
@@ -42,7 +42,7 @@
"typescript:module-augmentation": "node scripts/testModuleAugmentation.js"
},
"dependencies": {
- "@babel/runtime": "^7.23.9",
+ "@babel/runtime": "^7.24.4",
"@mui/base": "workspace:*",
"@mui/core-downloads-tracker": "workspace:^",
"@mui/system": "workspace:^",
@@ -62,21 +62,21 @@
"@rollup/plugin-replace": "^5.0.5",
"@testing-library/dom": "^9.3.4",
"@testing-library/user-event": "^14.5.2",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/prop-types": "^15.7.12",
"@types/react": "^18.2.55",
"@types/react-dom": "^18.2.19",
"@types/sinon": "^10.0.20",
"chai": "^4.4.1",
"css-mediaquery": "^0.1.2",
- "express": "^4.18.3",
+ "express": "^4.19.2",
"fast-glob": "^3.3.2",
"fs-extra": "^11.2.0",
"lodash": "^4.17.21",
- "playwright": "^1.42.1",
+ "playwright": "^1.43.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "react-router-dom": "^6.21.3",
+ "react-router-dom": "^6.22.3",
"rollup": "^3.29.4",
"rollup-plugin-babel": "^4.4.0",
"rollup-plugin-commonjs": "^10.1.0",
diff --git a/packages/mui-material/src/AppBar/AppBar.js b/packages/mui-material/src/AppBar/AppBar.js
index fec36c2e635a3d..ddc0befd8e9286 100644
--- a/packages/mui-material/src/AppBar/AppBar.js
+++ b/packages/mui-material/src/AppBar/AppBar.js
@@ -3,12 +3,13 @@ import * as React from 'react';
import PropTypes from 'prop-types';
import clsx from 'clsx';
import composeClasses from '@mui/utils/composeClasses';
-import styled from '../styles/styled';
-import useThemeProps from '../styles/useThemeProps';
+import { styled, createUseThemeProps } from '../zero-styled';
import capitalize from '../utils/capitalize';
import Paper from '../Paper';
import { getAppBarUtilityClass } from './appBarClasses';
+const useThemeProps = createUseThemeProps('MuiAppBar');
+
const useUtilityClasses = (ownerState) => {
const { color, position, classes } = ownerState;
@@ -35,107 +36,134 @@ const AppBarRoot = styled(Paper, {
styles[`color${capitalize(ownerState.color)}`],
];
},
-})(({ theme, ownerState }) => {
- const backgroundColorDefault =
- theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[900];
-
- return {
- display: 'flex',
- flexDirection: 'column',
- width: '100%',
- boxSizing: 'border-box', // Prevent padding issue with the Modal and fixed positioned AppBar.
- flexShrink: 0,
- ...(ownerState.position === 'fixed' && {
- position: 'fixed',
- zIndex: (theme.vars || theme).zIndex.appBar,
- top: 0,
- left: 'auto',
- right: 0,
- '@media print': {
- // Prevent the app bar to be visible on each printed page.
+})(({ theme }) => ({
+ display: 'flex',
+ flexDirection: 'column',
+ width: '100%',
+ boxSizing: 'border-box', // Prevent padding issue with the Modal and fixed positioned AppBar.
+ flexShrink: 0,
+ variants: [
+ {
+ props: { position: 'fixed' },
+ style: {
+ position: 'fixed',
+ zIndex: (theme.vars || theme).zIndex.appBar,
+ top: 0,
+ left: 'auto',
+ right: 0,
+ '@media print': {
+ // Prevent the app bar to be visible on each printed page.
+ position: 'absolute',
+ },
+ },
+ },
+ {
+ props: { position: 'absolute' },
+ style: {
position: 'absolute',
+ zIndex: (theme.vars || theme).zIndex.appBar,
+ top: 0,
+ left: 'auto',
+ right: 0,
+ },
+ },
+ {
+ props: { position: 'sticky' },
+ style: {
+ // ⚠️ sticky is not supported by IE11.
+ position: 'sticky',
+ zIndex: (theme.vars || theme).zIndex.appBar,
+ top: 0,
+ left: 'auto',
+ right: 0,
},
- }),
- ...(ownerState.position === 'absolute' && {
- position: 'absolute',
- zIndex: (theme.vars || theme).zIndex.appBar,
- top: 0,
- left: 'auto',
- right: 0,
- }),
- ...(ownerState.position === 'sticky' && {
- // ⚠️ sticky is not supported by IE11.
- position: 'sticky',
- zIndex: (theme.vars || theme).zIndex.appBar,
- top: 0,
- left: 'auto',
- right: 0,
- }),
- ...(ownerState.position === 'static' && {
- position: 'static',
- }),
- ...(ownerState.position === 'relative' && {
- position: 'relative',
- }),
- ...(!theme.vars && {
- ...(ownerState.color === 'default' && {
- backgroundColor: backgroundColorDefault,
- color: theme.palette.getContrastText(backgroundColorDefault),
- }),
- ...(ownerState.color &&
- ownerState.color !== 'default' &&
- ownerState.color !== 'inherit' &&
- ownerState.color !== 'transparent' && {
- backgroundColor: theme.palette[ownerState.color].main,
- color: theme.palette[ownerState.color].contrastText,
+ },
+ {
+ props: { position: 'static' },
+ style: {
+ position: 'static',
+ },
+ },
+ {
+ props: { position: 'relative' },
+ style: {
+ position: 'relative',
+ },
+ },
+ {
+ props: { color: 'inherit' },
+ style: {
+ '--AppBar-color': 'inherit',
+ },
+ },
+ {
+ props: { color: 'default' },
+ style: {
+ '--AppBar-background': theme.vars
+ ? theme.vars.palette.AppBar.defaultBg
+ : theme.palette.grey[100],
+ '--AppBar-color': theme.vars
+ ? theme.vars.palette.text.primary
+ : theme.palette.getContrastText(theme.palette.grey[100]),
+ ...theme.applyStyles('dark', {
+ '--AppBar-background': theme.vars
+ ? theme.vars.palette.AppBar.defaultBg
+ : theme.palette.grey[900],
+ '--AppBar-color': theme.vars
+ ? theme.vars.palette.text.primary
+ : theme.palette.getContrastText(theme.palette.grey[900]),
}),
- ...(ownerState.color === 'inherit' && {
- color: 'inherit',
- }),
- ...(theme.palette.mode === 'dark' &&
- !ownerState.enableColorOnDark && {
- backgroundColor: null,
- color: null,
+ },
+ },
+ ...Object.keys((theme.vars ?? theme).palette)
+ .filter(
+ (key) =>
+ (theme.vars ?? theme).palette[key].main &&
+ (theme.vars ?? theme).palette[key].contrastText,
+ )
+ .map((color) => ({
+ props: { color },
+ style: {
+ '--AppBar-background': (theme.vars ?? theme).palette[color].main,
+ '--AppBar-color': (theme.vars ?? theme).palette[color].contrastText,
+ },
+ })),
+ {
+ props: { enableColorOnDark: true },
+ style: {
+ backgroundColor: 'var(--AppBar-background)',
+ color: 'var(--AppBar-color)',
+ },
+ },
+ {
+ props: { enableColorOnDark: false },
+ style: {
+ backgroundColor: 'var(--AppBar-background)',
+ color: 'var(--AppBar-color)',
+ ...theme.applyStyles('dark', {
+ backgroundColor: theme.vars
+ ? joinVars(theme.vars.palette.AppBar.darkBg, 'var(--AppBar-background)')
+ : null,
+ color: theme.vars
+ ? joinVars(theme.vars.palette.AppBar.darkColor, 'var(--AppBar-color)')
+ : null,
}),
- ...(ownerState.color === 'transparent' && {
- backgroundColor: 'transparent',
- color: 'inherit',
- ...(theme.palette.mode === 'dark' && {
+ },
+ },
+ {
+ props: { color: 'transparent' },
+ style: {
+ '--AppBar-background': 'transparent',
+ '--AppBar-color': 'inherit',
+ backgroundColor: 'var(--AppBar-background)',
+ color: 'var(--AppBar-color)',
+ ...theme.applyStyles('dark', {
backgroundImage: 'none',
}),
- }),
- }),
- ...(theme.vars && {
- ...(ownerState.color === 'default' && {
- '--AppBar-background': ownerState.enableColorOnDark
- ? theme.vars.palette.AppBar.defaultBg
- : joinVars(theme.vars.palette.AppBar.darkBg, theme.vars.palette.AppBar.defaultBg),
- '--AppBar-color': ownerState.enableColorOnDark
- ? theme.vars.palette.text.primary
- : joinVars(theme.vars.palette.AppBar.darkColor, theme.vars.palette.text.primary),
- }),
- ...(ownerState.color &&
- !ownerState.color.match(/^(default|inherit|transparent)$/) && {
- '--AppBar-background': ownerState.enableColorOnDark
- ? theme.vars.palette[ownerState.color].main
- : joinVars(theme.vars.palette.AppBar.darkBg, theme.vars.palette[ownerState.color].main),
- '--AppBar-color': ownerState.enableColorOnDark
- ? theme.vars.palette[ownerState.color].contrastText
- : joinVars(
- theme.vars.palette.AppBar.darkColor,
- theme.vars.palette[ownerState.color].contrastText,
- ),
- }),
- backgroundColor: 'var(--AppBar-background)',
- color: ownerState.color === 'inherit' ? 'inherit' : 'var(--AppBar-color)',
- ...(ownerState.color === 'transparent' && {
- backgroundImage: 'none',
- backgroundColor: 'transparent',
- color: 'inherit',
- }),
- }),
- };
-});
+ },
+ },
+ ],
+}));
const AppBar = React.forwardRef(function AppBar(inProps, ref) {
const props = useThemeProps({ props: inProps, name: 'MuiAppBar' });
diff --git a/packages/mui-material/src/Button/Button.js b/packages/mui-material/src/Button/Button.js
index 483ed0d99fe0e1..822a5a7ca3ad7d 100644
--- a/packages/mui-material/src/Button/Button.js
+++ b/packages/mui-material/src/Button/Button.js
@@ -5,14 +5,16 @@ import clsx from 'clsx';
import resolveProps from '@mui/utils/resolveProps';
import composeClasses from '@mui/utils/composeClasses';
import { alpha } from '@mui/system/colorManipulator';
-import styled, { rootShouldForwardProp } from '../styles/styled';
-import useThemeProps from '../styles/useThemeProps';
+import { rootShouldForwardProp } from '../styles/styled';
+import { styled, createUseThemeProps } from '../zero-styled';
import ButtonBase from '../ButtonBase';
import capitalize from '../utils/capitalize';
import buttonClasses, { getButtonUtilityClass } from './buttonClasses';
import ButtonGroupContext from '../ButtonGroup/ButtonGroupContext';
import ButtonGroupButtonContext from '../ButtonGroup/ButtonGroupButtonContext';
+const useThemeProps = createUseThemeProps('MuiButton');
+
const useUtilityClasses = (ownerState) => {
const { color, disableElevation, fullWidth, size, variant, classes } = ownerState;
@@ -40,23 +42,32 @@ const useUtilityClasses = (ownerState) => {
};
};
-const commonIconStyles = (ownerState) => ({
- ...(ownerState.size === 'small' && {
- '& > *:nth-of-type(1)': {
- fontSize: 18,
+const commonIconStyles = [
+ {
+ props: { size: 'small' },
+ style: {
+ '& > *:nth-of-type(1)': {
+ fontSize: 18,
+ },
},
- }),
- ...(ownerState.size === 'medium' && {
- '& > *:nth-of-type(1)': {
- fontSize: 20,
+ },
+ {
+ props: { size: 'medium' },
+ style: {
+ '& > *:nth-of-type(1)': {
+ fontSize: 20,
+ },
},
- }),
- ...(ownerState.size === 'large' && {
- '& > *:nth-of-type(1)': {
- fontSize: 22,
+ },
+ {
+ props: { size: 'large' },
+ style: {
+ '& > *:nth-of-type(1)': {
+ fontSize: 22,
+ },
},
- }),
-});
+ },
+];
const ButtonRoot = styled(ButtonBase, {
shouldForwardProp: (prop) => rootShouldForwardProp(prop) || prop === 'classes',
@@ -76,189 +87,218 @@ const ButtonRoot = styled(ButtonBase, {
ownerState.fullWidth && styles.fullWidth,
];
},
-})(
- ({ theme, ownerState }) => {
- const inheritContainedBackgroundColor =
- theme.palette.mode === 'light' ? theme.palette.grey[300] : theme.palette.grey[800];
-
- const inheritContainedHoverBackgroundColor =
- theme.palette.mode === 'light' ? theme.palette.grey.A100 : theme.palette.grey[700];
+})(({ theme }) => {
+ const inheritContainedBackgroundColor =
+ theme.palette.mode === 'light' ? theme.palette.grey[300] : theme.palette.grey[800];
- return {
- ...theme.typography.button,
- minWidth: 64,
- padding: '6px 16px',
- borderRadius: (theme.vars || theme).shape.borderRadius,
- transition: theme.transitions.create(
- ['background-color', 'box-shadow', 'border-color', 'color'],
- {
- duration: theme.transitions.duration.short,
- },
- ),
- '&:hover': {
- textDecoration: 'none',
- backgroundColor: theme.vars
- ? `rgba(${theme.vars.palette.text.primaryChannel} / ${theme.vars.palette.action.hoverOpacity})`
- : alpha(theme.palette.text.primary, theme.palette.action.hoverOpacity),
- // Reset on touch devices, it doesn't add specificity
- '@media (hover: none)': {
- backgroundColor: 'transparent',
- },
- ...(ownerState.variant === 'text' &&
- ownerState.color !== 'inherit' && {
- backgroundColor: theme.vars
- ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / ${
- theme.vars.palette.action.hoverOpacity
- })`
- : alpha(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),
- // Reset on touch devices, it doesn't add specificity
- '@media (hover: none)': {
- backgroundColor: 'transparent',
- },
- }),
- ...(ownerState.variant === 'outlined' &&
- ownerState.color !== 'inherit' && {
- border: `1px solid ${(theme.vars || theme).palette[ownerState.color].main}`,
- backgroundColor: theme.vars
- ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / ${
- theme.vars.palette.action.hoverOpacity
- })`
- : alpha(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),
+ const inheritContainedHoverBackgroundColor =
+ theme.palette.mode === 'light' ? theme.palette.grey.A100 : theme.palette.grey[700];
+ return {
+ ...theme.typography.button,
+ minWidth: 64,
+ padding: '6px 16px',
+ border: 0,
+ borderRadius: (theme.vars || theme).shape.borderRadius,
+ transition: theme.transitions.create(
+ ['background-color', 'box-shadow', 'border-color', 'color'],
+ {
+ duration: theme.transitions.duration.short,
+ },
+ ),
+ '&:hover': {
+ textDecoration: 'none',
+ },
+ [`&.${buttonClasses.disabled}`]: {
+ color: (theme.vars || theme).palette.action.disabled,
+ },
+ variants: [
+ {
+ props: { variant: 'contained' },
+ style: {
+ color: `var(--variant-containedColor)`,
+ backgroundColor: `var(--variant-containedBg)`,
+ boxShadow: (theme.vars || theme).shadows[2],
+ '&:hover': {
+ boxShadow: (theme.vars || theme).shadows[4],
// Reset on touch devices, it doesn't add specificity
'@media (hover: none)': {
- backgroundColor: 'transparent',
+ boxShadow: (theme.vars || theme).shadows[2],
},
- }),
- ...(ownerState.variant === 'contained' && {
- backgroundColor: theme.vars
- ? theme.vars.palette.Button.inheritContainedHoverBg
- : inheritContainedHoverBackgroundColor,
- boxShadow: (theme.vars || theme).shadows[4],
- // Reset on touch devices, it doesn't add specificity
- '@media (hover: none)': {
- boxShadow: (theme.vars || theme).shadows[2],
- backgroundColor: (theme.vars || theme).palette.grey[300],
},
- }),
- ...(ownerState.variant === 'contained' &&
- ownerState.color !== 'inherit' && {
- backgroundColor: (theme.vars || theme).palette[ownerState.color].dark,
- // Reset on touch devices, it doesn't add specificity
- '@media (hover: none)': {
- backgroundColor: (theme.vars || theme).palette[ownerState.color].main,
- },
- }),
+ '&:active': {
+ boxShadow: (theme.vars || theme).shadows[8],
+ },
+ [`&.${buttonClasses.focusVisible}`]: {
+ boxShadow: (theme.vars || theme).shadows[6],
+ },
+ [`&.${buttonClasses.disabled}`]: {
+ color: (theme.vars || theme).palette.action.disabled,
+ boxShadow: (theme.vars || theme).shadows[0],
+ backgroundColor: (theme.vars || theme).palette.action.disabledBackground,
+ },
+ },
},
- '&:active': {
- ...(ownerState.variant === 'contained' && {
- boxShadow: (theme.vars || theme).shadows[8],
- }),
+ {
+ props: { variant: 'outlined' },
+ style: {
+ padding: '5px 15px',
+ border: '1px solid currentColor',
+ borderColor: `var(--variant-outlinedBorder, currentColor)`,
+ backgroundColor: `var(--variant-outlinedBg)`,
+ color: `var(--variant-outlinedColor)`,
+ [`&.${buttonClasses.disabled}`]: {
+ border: `1px solid ${(theme.vars || theme).palette.action.disabledBackground}`,
+ },
+ },
},
- [`&.${buttonClasses.focusVisible}`]: {
- ...(ownerState.variant === 'contained' && {
- boxShadow: (theme.vars || theme).shadows[6],
- }),
+ {
+ props: { variant: 'text' },
+ style: {
+ padding: '6px 8px',
+ color: `var(--variant-textColor)`,
+ backgroundColor: `var(--variant-textBg)`,
+ },
},
- [`&.${buttonClasses.disabled}`]: {
- color: (theme.vars || theme).palette.action.disabled,
- ...(ownerState.variant === 'outlined' && {
- border: `1px solid ${(theme.vars || theme).palette.action.disabledBackground}`,
- }),
- ...(ownerState.variant === 'contained' && {
- color: (theme.vars || theme).palette.action.disabled,
- boxShadow: (theme.vars || theme).shadows[0],
- backgroundColor: (theme.vars || theme).palette.action.disabledBackground,
- }),
+ ...Object.entries(theme.palette)
+ .filter(([, palette]) => palette.main && palette.dark && palette.contrastText)
+ .map(([color]) => ({
+ props: { color },
+ style: {
+ '--variant-textColor': (theme.vars || theme).palette[color].main,
+ '--variant-outlinedColor': (theme.vars || theme).palette[color].main,
+ '--variant-outlinedBorder': theme.vars
+ ? `rgba(${theme.vars.palette[color].mainChannel} / 0.5)`
+ : alpha(theme.palette[color].main, 0.5),
+ '--variant-containedColor': (theme.vars || theme).palette[color].contrastText,
+ '--variant-containedBg': (theme.vars || theme).palette[color].main,
+ '@media (hover: hover)': {
+ '&:hover': {
+ '--variant-containedBg': (theme.vars || theme).palette[color].dark,
+ '--variant-textBg': theme.vars
+ ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})`
+ : alpha(theme.palette[color].main, theme.palette.action.hoverOpacity),
+ '--variant-outlinedBorder': (theme.vars || theme).palette[color].main,
+ '--variant-outlinedBg': theme.vars
+ ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})`
+ : alpha(theme.palette[color].main, theme.palette.action.hoverOpacity),
+ },
+ },
+ },
+ })),
+ {
+ props: {
+ color: 'inherit',
+ },
+ style: {
+ '--variant-containedColor': theme.vars
+ ? // this is safe because grey does not change between default light/dark mode
+ theme.vars.palette.text.primary
+ : theme.palette.getContrastText?.(inheritContainedBackgroundColor),
+ '--variant-containedBg': theme.vars
+ ? theme.vars.palette.Button.inheritContainedBg
+ : inheritContainedBackgroundColor,
+ '@media (hover: hover)': {
+ '&:hover': {
+ '--variant-containedBg': theme.vars
+ ? theme.vars.palette.Button.inheritContainedHoverBg
+ : inheritContainedHoverBackgroundColor,
+ '--variant-textBg': theme.vars
+ ? `rgba(${theme.vars.palette.text.primaryChannel} / ${theme.vars.palette.action.hoverOpacity})`
+ : alpha(theme.palette.text.primary, theme.palette.action.hoverOpacity),
+ '--variant-outlinedBg': theme.vars
+ ? `rgba(${theme.vars.palette.text.primaryChannel} / ${theme.vars.palette.action.hoverOpacity})`
+ : alpha(theme.palette.text.primary, theme.palette.action.hoverOpacity),
+ },
+ },
+ },
},
- ...(ownerState.variant === 'text' && {
- padding: '6px 8px',
- }),
- ...(ownerState.variant === 'text' &&
- ownerState.color !== 'inherit' && {
- color: (theme.vars || theme).palette[ownerState.color].main,
- }),
- ...(ownerState.variant === 'outlined' && {
- padding: '5px 15px',
- border: '1px solid currentColor',
- }),
- ...(ownerState.variant === 'outlined' &&
- ownerState.color !== 'inherit' && {
- color: (theme.vars || theme).palette[ownerState.color].main,
- border: theme.vars
- ? `1px solid rgba(${theme.vars.palette[ownerState.color].mainChannel} / 0.5)`
- : `1px solid ${alpha(theme.palette[ownerState.color].main, 0.5)}`,
- }),
- ...(ownerState.variant === 'contained' && {
- color: theme.vars
- ? // this is safe because grey does not change between default light/dark mode
- theme.vars.palette.text.primary
- : theme.palette.getContrastText?.(theme.palette.grey[300]),
- backgroundColor: theme.vars
- ? theme.vars.palette.Button.inheritContainedBg
- : inheritContainedBackgroundColor,
- boxShadow: (theme.vars || theme).shadows[2],
- }),
- ...(ownerState.variant === 'contained' &&
- ownerState.color !== 'inherit' && {
- color: (theme.vars || theme).palette[ownerState.color].contrastText,
- backgroundColor: (theme.vars || theme).palette[ownerState.color].main,
- }),
- ...(ownerState.color === 'inherit' && {
- color: 'inherit',
- borderColor: 'currentColor',
- }),
- ...(ownerState.size === 'small' &&
- ownerState.variant === 'text' && {
+ {
+ props: {
+ size: 'small',
+ variant: 'text',
+ },
+ style: {
padding: '4px 5px',
fontSize: theme.typography.pxToRem(13),
- }),
- ...(ownerState.size === 'large' &&
- ownerState.variant === 'text' && {
+ },
+ },
+ {
+ props: {
+ size: 'large',
+ variant: 'text',
+ },
+ style: {
padding: '8px 11px',
fontSize: theme.typography.pxToRem(15),
- }),
- ...(ownerState.size === 'small' &&
- ownerState.variant === 'outlined' && {
+ },
+ },
+ {
+ props: {
+ size: 'small',
+ variant: 'outlined',
+ },
+ style: {
padding: '3px 9px',
fontSize: theme.typography.pxToRem(13),
- }),
- ...(ownerState.size === 'large' &&
- ownerState.variant === 'outlined' && {
+ },
+ },
+ {
+ props: {
+ size: 'large',
+ variant: 'outlined',
+ },
+ style: {
padding: '7px 21px',
fontSize: theme.typography.pxToRem(15),
- }),
- ...(ownerState.size === 'small' &&
- ownerState.variant === 'contained' && {
+ },
+ },
+ {
+ props: {
+ size: 'small',
+ variant: 'contained',
+ },
+ style: {
padding: '4px 10px',
fontSize: theme.typography.pxToRem(13),
- }),
- ...(ownerState.size === 'large' &&
- ownerState.variant === 'contained' && {
+ },
+ },
+ {
+ props: {
+ size: 'large',
+ variant: 'contained',
+ },
+ style: {
padding: '8px 22px',
fontSize: theme.typography.pxToRem(15),
- }),
- ...(ownerState.fullWidth && {
- width: '100%',
- }),
- };
- },
- ({ ownerState }) =>
- ownerState.disableElevation && {
- boxShadow: 'none',
- '&:hover': {
- boxShadow: 'none',
- },
- [`&.${buttonClasses.focusVisible}`]: {
- boxShadow: 'none',
+ },
},
- '&:active': {
- boxShadow: 'none',
+ {
+ props: {
+ disableElevation: true,
+ },
+ style: {
+ boxShadow: 'none',
+ '&:hover': {
+ boxShadow: 'none',
+ },
+ [`&.${buttonClasses.focusVisible}`]: {
+ boxShadow: 'none',
+ },
+ '&:active': {
+ boxShadow: 'none',
+ },
+ [`&.${buttonClasses.disabled}`]: {
+ boxShadow: 'none',
+ },
+ },
},
- [`&.${buttonClasses.disabled}`]: {
- boxShadow: 'none',
+ {
+ props: { fullWidth: true },
+ style: { width: '100%' },
},
- },
-);
+ ],
+ };
+});
const ButtonStartIcon = styled('span', {
name: 'MuiButton',
@@ -268,14 +308,19 @@ const ButtonStartIcon = styled('span', {
return [styles.startIcon, styles[`iconSize${capitalize(ownerState.size)}`]];
},
-})(({ ownerState }) => ({
+})(() => ({
display: 'inherit',
marginRight: 8,
marginLeft: -4,
- ...(ownerState.size === 'small' && {
- marginLeft: -2,
- }),
- ...commonIconStyles(ownerState),
+ variants: [
+ {
+ props: { size: 'small' },
+ style: {
+ marginLeft: -2,
+ },
+ },
+ ...commonIconStyles,
+ ],
}));
const ButtonEndIcon = styled('span', {
@@ -286,14 +331,19 @@ const ButtonEndIcon = styled('span', {
return [styles.endIcon, styles[`iconSize${capitalize(ownerState.size)}`]];
},
-})(({ ownerState }) => ({
+})(() => ({
display: 'inherit',
marginRight: -4,
marginLeft: 8,
- ...(ownerState.size === 'small' && {
- marginRight: -2,
- }),
- ...commonIconStyles(ownerState),
+ variants: [
+ {
+ props: { size: 'small' },
+ style: {
+ marginRight: -2,
+ },
+ },
+ ...commonIconStyles,
+ ],
}));
const Button = React.forwardRef(function Button(inProps, ref) {
diff --git a/packages/mui-material/src/ButtonBase/ButtonBase.js b/packages/mui-material/src/ButtonBase/ButtonBase.js
index bad1a0f69f2891..e023daddf594a6 100644
--- a/packages/mui-material/src/ButtonBase/ButtonBase.js
+++ b/packages/mui-material/src/ButtonBase/ButtonBase.js
@@ -5,14 +5,15 @@ import clsx from 'clsx';
import refType from '@mui/utils/refType';
import elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';
import composeClasses from '@mui/utils/composeClasses';
-import styled from '../styles/styled';
-import useThemeProps from '../styles/useThemeProps';
+import { styled, createUseThemeProps } from '../zero-styled';
import useForkRef from '../utils/useForkRef';
import useEventCallback from '../utils/useEventCallback';
import useIsFocusVisible from '../utils/useIsFocusVisible';
import TouchRipple from './TouchRipple';
import buttonBaseClasses, { getButtonBaseUtilityClass } from './buttonBaseClasses';
+const useThemeProps = createUseThemeProps('MuiButtonBase');
+
const useUtilityClasses = (ownerState) => {
const { disabled, focusVisible, focusVisibleClassName, classes } = ownerState;
diff --git a/packages/mui-material/src/ButtonBase/Ripple.js b/packages/mui-material/src/ButtonBase/Ripple.js
index 7daadb96618fac..edcf4caddfa7d9 100644
--- a/packages/mui-material/src/ButtonBase/Ripple.js
+++ b/packages/mui-material/src/ButtonBase/Ripple.js
@@ -57,7 +57,7 @@ function Ripple(props) {
);
}
-Ripple.propTypes = {
+Ripple.propTypes /* remove-proptypes */ = {
/**
* Override or extend the styles applied to the component.
*/
diff --git a/packages/mui-material/src/ButtonBase/TouchRipple.js b/packages/mui-material/src/ButtonBase/TouchRipple.js
index 6834650d85fc06..0d4fc84c9aa6ac 100644
--- a/packages/mui-material/src/ButtonBase/TouchRipple.js
+++ b/packages/mui-material/src/ButtonBase/TouchRipple.js
@@ -3,13 +3,13 @@ import * as React from 'react';
import PropTypes from 'prop-types';
import { TransitionGroup } from 'react-transition-group';
import clsx from 'clsx';
-import { keyframes } from '@mui/system';
import useTimeout from '@mui/utils/useTimeout';
-import styled from '../styles/styled';
-import useThemeProps from '../styles/useThemeProps';
+import { keyframes, styled, createUseThemeProps } from '../zero-styled';
import Ripple from './Ripple';
import touchRippleClasses from './touchRippleClasses';
+const useThemeProps = createUseThemeProps('MuiTouchRipple');
+
const DURATION = 550;
export const DELAY_RIPPLE = 80;
@@ -316,7 +316,7 @@ const TouchRipple = React.forwardRef(function TouchRipple(inProps, ref) {
);
});
-TouchRipple.propTypes = {
+TouchRipple.propTypes /* remove-proptypes */ = {
/**
* If `true`, the ripple starts at the center of the component
* rather than at the point of interaction.
diff --git a/packages/mui-material/src/ButtonGroup/ButtonGroup.js b/packages/mui-material/src/ButtonGroup/ButtonGroup.js
index 7153a43d09ded9..179dec4ae71074 100644
--- a/packages/mui-material/src/ButtonGroup/ButtonGroup.js
+++ b/packages/mui-material/src/ButtonGroup/ButtonGroup.js
@@ -6,12 +6,13 @@ import composeClasses from '@mui/utils/composeClasses';
import { alpha } from '@mui/system/colorManipulator';
import getValidReactChildren from '@mui/utils/getValidReactChildren';
import capitalize from '../utils/capitalize';
-import styled from '../styles/styled';
-import useThemeProps from '../styles/useThemeProps';
+import { styled, createUseThemeProps } from '../zero-styled';
import buttonGroupClasses, { getButtonGroupUtilityClass } from './buttonGroupClasses';
import ButtonGroupContext from './ButtonGroupContext';
import ButtonGroupButtonContext from './ButtonGroupButtonContext';
+const useThemeProps = createUseThemeProps('MuiButtonGroup');
+
const overridesResolver = (props, styles) => {
const { ownerState } = props;
@@ -79,123 +80,169 @@ const ButtonGroupRoot = styled('div', {
name: 'MuiButtonGroup',
slot: 'Root',
overridesResolver,
-})(({ theme, ownerState }) => ({
+})(({ theme }) => ({
display: 'inline-flex',
borderRadius: (theme.vars || theme).shape.borderRadius,
- ...(ownerState.variant === 'contained' && {
- boxShadow: (theme.vars || theme).shadows[2],
- }),
- ...(ownerState.disableElevation && {
- boxShadow: 'none',
- }),
- ...(ownerState.fullWidth && {
- width: '100%',
- }),
- ...(ownerState.orientation === 'vertical' && {
- flexDirection: 'column',
- }),
- [`& .${buttonGroupClasses.grouped}`]: {
- minWidth: 40,
- '&:hover': {
- ...(ownerState.variant === 'contained' && {
+ variants: [
+ {
+ props: { variant: 'contained' },
+ style: {
+ boxShadow: (theme.vars || theme).shadows[2],
+ },
+ },
+ {
+ props: { disableElevation: true },
+ style: {
boxShadow: 'none',
- }),
+ },
},
- ...(ownerState.variant === 'contained' && {
- boxShadow: 'none',
- }),
- },
- [`& .${buttonGroupClasses.firstButton},& .${buttonGroupClasses.middleButton}`]: {
- ...(ownerState.orientation === 'horizontal' && {
- borderTopRightRadius: 0,
- borderBottomRightRadius: 0,
- }),
- ...(ownerState.orientation === 'vertical' && {
- borderBottomRightRadius: 0,
- borderBottomLeftRadius: 0,
- }),
- ...(ownerState.variant === 'text' &&
- ownerState.orientation === 'horizontal' && {
- borderRight: theme.vars
- ? `1px solid rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)`
- : `1px solid ${
- theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)'
- }`,
- [`&.${buttonGroupClasses.disabled}`]: {
- borderRight: `1px solid ${(theme.vars || theme).palette.action.disabled}`,
+ {
+ props: { fullWidth: true },
+ style: {
+ width: '100%',
+ },
+ },
+ {
+ props: { orientation: 'vertical' },
+ style: {
+ flexDirection: 'column',
+ [`& .${buttonGroupClasses.lastButton},& .${buttonGroupClasses.middleButton}`]: {
+ borderTopRightRadius: 0,
+ borderTopLeftRadius: 0,
},
- }),
- ...(ownerState.variant === 'text' &&
- ownerState.orientation === 'vertical' && {
- borderBottom: theme.vars
- ? `1px solid rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)`
- : `1px solid ${
- theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)'
- }`,
- [`&.${buttonGroupClasses.disabled}`]: {
- borderBottom: `1px solid ${(theme.vars || theme).palette.action.disabled}`,
+ [`& .${buttonGroupClasses.firstButton},& .${buttonGroupClasses.middleButton}`]: {
+ borderBottomRightRadius: 0,
+ borderBottomLeftRadius: 0,
},
- }),
- ...(ownerState.variant === 'text' &&
- ownerState.color !== 'inherit' && {
- borderColor: theme.vars
- ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / 0.5)`
- : alpha(theme.palette[ownerState.color].main, 0.5),
- }),
- ...(ownerState.variant === 'outlined' &&
- ownerState.orientation === 'horizontal' && {
- borderRightColor: 'transparent',
- }),
- ...(ownerState.variant === 'outlined' &&
- ownerState.orientation === 'vertical' && {
- borderBottomColor: 'transparent',
- }),
- ...(ownerState.variant === 'contained' &&
- ownerState.orientation === 'horizontal' && {
- borderRight: `1px solid ${(theme.vars || theme).palette.grey[400]}`,
- [`&.${buttonGroupClasses.disabled}`]: {
- borderRight: `1px solid ${(theme.vars || theme).palette.action.disabled}`,
+ },
+ },
+ {
+ props: { orientation: 'horizontal' },
+ style: {
+ [`& .${buttonGroupClasses.firstButton},& .${buttonGroupClasses.middleButton}`]: {
+ borderTopRightRadius: 0,
+ borderBottomRightRadius: 0,
},
- }),
- ...(ownerState.variant === 'contained' &&
- ownerState.orientation === 'vertical' && {
- borderBottom: `1px solid ${(theme.vars || theme).palette.grey[400]}`,
- [`&.${buttonGroupClasses.disabled}`]: {
- borderBottom: `1px solid ${(theme.vars || theme).palette.action.disabled}`,
+ [`& .${buttonGroupClasses.lastButton},& .${buttonGroupClasses.middleButton}`]: {
+ borderTopLeftRadius: 0,
+ borderBottomLeftRadius: 0,
},
- }),
- ...(ownerState.variant === 'contained' &&
- ownerState.color !== 'inherit' && {
- borderColor: (theme.vars || theme).palette[ownerState.color].dark,
- }),
- '&:hover': {
- ...(ownerState.variant === 'outlined' &&
- ownerState.orientation === 'horizontal' && {
- borderRightColor: 'currentColor',
- }),
- ...(ownerState.variant === 'outlined' &&
- ownerState.orientation === 'vertical' && {
- borderBottomColor: 'currentColor',
- }),
+ },
+ },
+ {
+ props: { variant: 'text', orientation: 'horizontal' },
+ style: {
+ [`& .${buttonGroupClasses.firstButton},& .${buttonGroupClasses.middleButton}`]: {
+ borderRight: theme.vars
+ ? `1px solid rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)`
+ : `1px solid ${
+ theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)'
+ }`,
+ [`&.${buttonGroupClasses.disabled}`]: {
+ borderRight: `1px solid ${(theme.vars || theme).palette.action.disabled}`,
+ },
+ },
+ },
+ },
+ {
+ props: { variant: 'text', orientation: 'vertical' },
+ style: {
+ [`& .${buttonGroupClasses.firstButton},& .${buttonGroupClasses.middleButton}`]: {
+ borderBottom: theme.vars
+ ? `1px solid rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)`
+ : `1px solid ${
+ theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)'
+ }`,
+ [`&.${buttonGroupClasses.disabled}`]: {
+ borderBottom: `1px solid ${(theme.vars || theme).palette.action.disabled}`,
+ },
+ },
+ },
+ },
+ ...Object.entries(theme.palette)
+ .filter(([, value]) => value.main)
+ .flatMap(([color]) => [
+ {
+ props: { variant: 'text', color },
+ style: {
+ [`& .${buttonGroupClasses.firstButton},& .${buttonGroupClasses.middleButton}`]: {
+ borderColor: theme.vars
+ ? `rgba(${theme.vars.palette[color].mainChannel} / 0.5)`
+ : alpha(theme.palette[color].main, 0.5),
+ },
+ },
+ },
+ ]),
+ {
+ props: { variant: 'outlined', orientation: 'horizontal' },
+ style: {
+ [`& .${buttonGroupClasses.firstButton},& .${buttonGroupClasses.middleButton}`]: {
+ borderRightColor: 'transparent',
+ '&:hover': {
+ borderRightColor: 'currentColor',
+ },
+ },
+ [`& .${buttonGroupClasses.lastButton},& .${buttonGroupClasses.middleButton}`]: {
+ marginLeft: -1,
+ },
+ },
+ },
+ {
+ props: { variant: 'outlined', orientation: 'vertical' },
+ style: {
+ [`& .${buttonGroupClasses.firstButton},& .${buttonGroupClasses.middleButton}`]: {
+ borderBottomColor: 'transparent',
+ '&:hover': {
+ borderBottomColor: 'currentColor',
+ },
+ },
+ [`& .${buttonGroupClasses.lastButton},& .${buttonGroupClasses.middleButton}`]: {
+ marginTop: -1,
+ },
+ },
+ },
+ {
+ props: { variant: 'contained', orientation: 'horizontal' },
+ style: {
+ [`& .${buttonGroupClasses.firstButton},& .${buttonGroupClasses.middleButton}`]: {
+ borderRight: `1px solid ${(theme.vars || theme).palette.grey[400]}`,
+ [`&.${buttonGroupClasses.disabled}`]: {
+ borderRight: `1px solid ${(theme.vars || theme).palette.action.disabled}`,
+ },
+ },
+ },
+ },
+ {
+ props: { variant: 'contained', orientation: 'vertical' },
+ style: {
+ [`& .${buttonGroupClasses.firstButton},& .${buttonGroupClasses.middleButton}`]: {
+ borderBottom: `1px solid ${(theme.vars || theme).palette.grey[400]}`,
+ [`&.${buttonGroupClasses.disabled}`]: {
+ borderBottom: `1px solid ${(theme.vars || theme).palette.action.disabled}`,
+ },
+ },
+ },
+ },
+ ...Object.entries(theme.palette)
+ .filter(([, value]) => value.dark)
+ .map(([color]) => ({
+ props: { variant: 'contained', color },
+ style: {
+ [`& .${buttonGroupClasses.firstButton},& .${buttonGroupClasses.middleButton}`]: {
+ borderColor: (theme.vars || theme).palette[color].dark,
+ },
+ },
+ })),
+ ],
+ [`& .${buttonGroupClasses.grouped}`]: {
+ minWidth: 40,
+ boxShadow: 'none',
+ props: { variant: 'contained' },
+ style: {
+ '&:hover': {
+ boxShadow: 'none',
+ },
},
- },
- [`& .${buttonGroupClasses.lastButton},& .${buttonGroupClasses.middleButton}`]: {
- ...(ownerState.orientation === 'horizontal' && {
- borderTopLeftRadius: 0,
- borderBottomLeftRadius: 0,
- }),
- ...(ownerState.orientation === 'vertical' && {
- borderTopRightRadius: 0,
- borderTopLeftRadius: 0,
- }),
- ...(ownerState.variant === 'outlined' &&
- ownerState.orientation === 'horizontal' && {
- marginLeft: -1,
- }),
- ...(ownerState.variant === 'outlined' &&
- ownerState.orientation === 'vertical' && {
- marginTop: -1,
- }),
},
}));
diff --git a/packages/mui-material/src/CircularProgress/CircularProgress.js b/packages/mui-material/src/CircularProgress/CircularProgress.js
index 183b589359da0b..2b81f050eb44d5 100644
--- a/packages/mui-material/src/CircularProgress/CircularProgress.js
+++ b/packages/mui-material/src/CircularProgress/CircularProgress.js
@@ -4,12 +4,12 @@ import PropTypes from 'prop-types';
import clsx from 'clsx';
import chainPropTypes from '@mui/utils/chainPropTypes';
import composeClasses from '@mui/utils/composeClasses';
-import { keyframes, css } from '@mui/system';
+import { keyframes, css, createUseThemeProps, styled } from '../zero-styled';
import capitalize from '../utils/capitalize';
-import useThemeProps from '../styles/useThemeProps';
-import styled from '../styles/styled';
import { getCircularProgressUtilityClass } from './circularProgressClasses';
+const useThemeProps = createUseThemeProps('MuiCircularProgress');
+
const SIZE = 44;
const circularRotateKeyframe = keyframes`
@@ -39,6 +39,14 @@ const circularDashKeyframe = keyframes`
}
`;
+const rotateAnimation = css`
+ animation: ${circularRotateKeyframe} 1.4s linear infinite;
+`;
+
+const dashAnimation = css`
+ animation: ${circularDashKeyframe} 1.4s ease-in-out infinite;
+`;
+
const useUtilityClasses = (ownerState) => {
const { classes, variant, color, disableShrink } = ownerState;
@@ -63,22 +71,39 @@ const CircularProgressRoot = styled('span', {
styles[`color${capitalize(ownerState.color)}`],
];
},
-})(
- ({ ownerState, theme }) => ({
- display: 'inline-block',
- ...(ownerState.variant === 'determinate' && {
- transition: theme.transitions.create('transform'),
- }),
- ...(ownerState.color !== 'inherit' && {
- color: (theme.vars || theme).palette[ownerState.color].main,
- }),
- }),
- ({ ownerState }) =>
- ownerState.variant === 'indeterminate' &&
- css`
- animation: ${circularRotateKeyframe} 1.4s linear infinite;
- `,
-);
+})(({ theme }) => ({
+ display: 'inline-block',
+ variants: [
+ {
+ props: {
+ variant: 'determinate',
+ },
+ style: {
+ transition: theme.transitions.create('transform'),
+ },
+ },
+ {
+ props: {
+ variant: 'indeterminate',
+ },
+ style:
+ // For Styled-components v4+: https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#12
+ rotateAnimation !== 'string'
+ ? rotateAnimation
+ : {
+ animation: `${circularRotateKeyframe} 1.4s linear infinite`,
+ },
+ },
+ ...Object.entries(theme.palette)
+ .filter(([, palette]) => palette.main)
+ .map(([color]) => ({
+ props: { color },
+ style: {
+ color: (theme.vars || theme).palette[color].main,
+ },
+ })),
+ ],
+}));
const CircularProgressSVG = styled('svg', {
name: 'MuiCircularProgress',
@@ -100,27 +125,40 @@ const CircularProgressCircle = styled('circle', {
ownerState.disableShrink && styles.circleDisableShrink,
];
},
-})(
- ({ ownerState, theme }) => ({
- stroke: 'currentColor',
- // Use butt to follow the specification, by chance, it's already the default CSS value.
- // strokeLinecap: 'butt',
- ...(ownerState.variant === 'determinate' && {
- transition: theme.transitions.create('stroke-dashoffset'),
- }),
- ...(ownerState.variant === 'indeterminate' && {
- // Some default value that looks fine waiting for the animation to kicks in.
- strokeDasharray: '80px, 200px',
- strokeDashoffset: 0, // Add the unit to fix a Edge 16 and below bug.
- }),
- }),
- ({ ownerState }) =>
- ownerState.variant === 'indeterminate' &&
- !ownerState.disableShrink &&
- css`
- animation: ${circularDashKeyframe} 1.4s ease-in-out infinite;
- `,
-);
+})(({ theme }) => ({
+ stroke: 'currentColor',
+ variants: [
+ {
+ props: {
+ variant: 'determinate',
+ },
+ style: {
+ transition: theme.transitions.create('stroke-dashoffset'),
+ },
+ },
+ {
+ props: {
+ variant: 'indeterminate',
+ },
+ style: {
+ // Some default value that looks fine waiting for the animation to kicks in.
+ strokeDasharray: '80px, 200px',
+ strokeDashoffset: 0, // Add the unit to fix a Edge 16 and below bug.
+ },
+ },
+ {
+ // For Styled-components v4+: https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#12
+ props: ({ ownerState }) =>
+ ownerState.variant === 'indeterminate' && !ownerState.disableShrink,
+ style:
+ typeof dashAnimation !== 'string'
+ ? dashAnimation
+ : {
+ animation: `${circularDashKeyframe} 1.4s ease-in-out infinite`,
+ },
+ },
+ ],
+}));
/**
* ## ARIA
diff --git a/packages/mui-material/src/Dialog/Dialog.js b/packages/mui-material/src/Dialog/Dialog.js
index 927c9b0f44e244..b88a9103d01389 100644
--- a/packages/mui-material/src/Dialog/Dialog.js
+++ b/packages/mui-material/src/Dialog/Dialog.js
@@ -182,6 +182,7 @@ const Dialog = React.forwardRef(function Dialog(inProps, ref) {
fullWidth = false,
maxWidth = 'sm',
onBackdropClick,
+ onClick,
onClose,
open,
PaperComponent = Paper,
@@ -211,6 +212,10 @@ const Dialog = React.forwardRef(function Dialog(inProps, ref) {
backdropClick.current = event.target === event.currentTarget;
};
const handleBackdropClick = (event) => {
+ if (onClick) {
+ onClick(event);
+ }
+
// Ignore the events not coming from the "backdrop".
if (!backdropClick.current) {
return;
@@ -360,6 +365,10 @@ Dialog.propTypes /* remove-proptypes */ = {
* @deprecated Use the `onClose` prop with the `reason` argument to handle the `backdropClick` events.
*/
onBackdropClick: PropTypes.func,
+ /**
+ * @ignore
+ */
+ onClick: PropTypes.func,
/**
* Callback fired when the component requests to be closed.
*
diff --git a/packages/mui-material/src/Dialog/Dialog.test.js b/packages/mui-material/src/Dialog/Dialog.test.js
index 7690dd907bf183..e17f7ac397d7de 100644
--- a/packages/mui-material/src/Dialog/Dialog.test.js
+++ b/packages/mui-material/src/Dialog/Dialog.test.js
@@ -187,6 +187,28 @@ describe(' ', () => {
expect(onClose.callCount).to.equal(1);
});
+ it('calls onBackdropClick when onClick callback also exists', () => {
+ const onBackdropClick = spy();
+ const onClick = spy();
+ render(
+ {
+ if (reason === 'backdropClick') {
+ onBackdropClick();
+ }
+ }}
+ open
+ >
+ foo
+ ,
+ );
+
+ clickBackdrop(screen);
+ expect(onBackdropClick.callCount).to.equal(1);
+ expect(onClick.callCount).to.equal(1);
+ });
+
it('should ignore the backdrop click if the event did not come from the backdrop', () => {
const onBackdropClick = spy();
const { getByRole } = render(
diff --git a/packages/mui-material/src/Fab/Fab.js b/packages/mui-material/src/Fab/Fab.js
index 10f3ab80910ed0..bf80527ebd2f57 100644
--- a/packages/mui-material/src/Fab/Fab.js
+++ b/packages/mui-material/src/Fab/Fab.js
@@ -5,9 +5,11 @@ import clsx from 'clsx';
import composeClasses from '@mui/utils/composeClasses';
import ButtonBase from '../ButtonBase';
import capitalize from '../utils/capitalize';
-import useThemeProps from '../styles/useThemeProps';
import fabClasses, { getFabUtilityClass } from './fabClasses';
-import styled, { rootShouldForwardProp } from '../styles/styled';
+import { rootShouldForwardProp } from '../styles/styled';
+import { styled, createUseThemeProps } from '../zero-styled';
+
+const useThemeProps = createUseThemeProps('MuiFab');
const useUtilityClasses = (ownerState) => {
const { color, variant, classes, size } = ownerState;
@@ -46,7 +48,7 @@ const FabRoot = styled(ButtonBase, {
];
},
})(
- ({ theme, ownerState }) => ({
+ ({ theme }) => ({
...theme.typography.button,
minHeight: 36,
transition: theme.transitions.create(['background-color', 'box-shadow', 'border-color'], {
@@ -77,56 +79,79 @@ const FabRoot = styled(ButtonBase, {
[`&.${fabClasses.focusVisible}`]: {
boxShadow: (theme.vars || theme).shadows[6],
},
- ...(ownerState.size === 'small' && {
- width: 40,
- height: 40,
- }),
- ...(ownerState.size === 'medium' && {
- width: 48,
- height: 48,
- }),
- ...(ownerState.variant === 'extended' && {
- borderRadius: 48 / 2,
- padding: '0 16px',
- width: 'auto',
- minHeight: 'auto',
- minWidth: 48,
- height: 48,
- }),
- ...(ownerState.variant === 'extended' &&
- ownerState.size === 'small' && {
- width: 'auto',
- padding: '0 8px',
- borderRadius: 34 / 2,
- minWidth: 34,
- height: 34,
- }),
- ...(ownerState.variant === 'extended' &&
- ownerState.size === 'medium' && {
- width: 'auto',
- padding: '0 16px',
- borderRadius: 40 / 2,
- minWidth: 40,
- height: 40,
- }),
- ...(ownerState.color === 'inherit' && {
- color: 'inherit',
- }),
+ variants: [
+ {
+ props: { size: 'small' },
+ style: {
+ width: 40,
+ height: 40,
+ },
+ },
+ {
+ props: { size: 'medium' },
+ style: {
+ width: 48,
+ height: 48,
+ },
+ },
+ {
+ props: { variant: 'extended' },
+ style: {
+ borderRadius: 48 / 2,
+ padding: '0 16px',
+ width: 'auto',
+ minHeight: 'auto',
+ minWidth: 48,
+ height: 48,
+ },
+ },
+ {
+ props: { variant: 'extended', size: 'small' },
+ style: {
+ width: 'auto',
+ padding: '0 8px',
+ borderRadius: 34 / 2,
+ minWidth: 34,
+ height: 34,
+ },
+ },
+ {
+ props: { variant: 'extended', size: 'medium' },
+ style: {
+ width: 'auto',
+ padding: '0 16px',
+ borderRadius: 40 / 2,
+ minWidth: 40,
+ height: 40,
+ },
+ },
+ {
+ props: { color: 'inherit' },
+ style: {
+ color: 'inherit',
+ },
+ },
+ ],
}),
- ({ theme, ownerState }) => ({
- ...(ownerState.color !== 'inherit' &&
- ownerState.color !== 'default' &&
- (theme.vars || theme).palette[ownerState.color] != null && {
- color: (theme.vars || theme).palette[ownerState.color].contrastText,
- backgroundColor: (theme.vars || theme).palette[ownerState.color].main,
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette[ownerState.color].dark,
- // Reset on touch devices, it doesn't add specificity
- '@media (hover: none)': {
- backgroundColor: (theme.vars || theme).palette[ownerState.color].main,
+ ({ theme }) => ({
+ variants: [
+ ...Object.entries(theme.palette)
+ .filter(([, value]) => value.main && value.dark && value.contrastText) // check all the used fields in the style below
+ .map(([color]) => ({
+ props: { color },
+ style: {
+ color: (theme.vars || theme).palette[color].contrastText,
+ backgroundColor: (theme.vars || theme).palette[color].main,
+ '&:hover': {
+ backgroundColor: (theme.vars || theme).palette[color].dark,
+ // Reset on touch devices, it doesn't add specificity
+ '@media (hover: none)': {
+ backgroundColor: (theme.vars || theme).palette[color].main,
+ },
+ },
},
- },
- }),
+ })),
+ ],
}),
({ theme }) => ({
[`&.${fabClasses.disabled}`]: {
diff --git a/packages/mui-material/src/PaginationItem/PaginationItem.js b/packages/mui-material/src/PaginationItem/PaginationItem.js
index 3f51141d0587a9..0b65f22c60f365 100644
--- a/packages/mui-material/src/PaginationItem/PaginationItem.js
+++ b/packages/mui-material/src/PaginationItem/PaginationItem.js
@@ -5,7 +5,6 @@ import clsx from 'clsx';
import composeClasses from '@mui/utils/composeClasses';
import { alpha } from '@mui/system/colorManipulator';
import { useRtl } from '@mui/system/RtlProvider';
-import useThemeProps from '../styles/useThemeProps';
import paginationItemClasses, { getPaginationItemUtilityClass } from './paginationItemClasses';
import ButtonBase from '../ButtonBase';
import capitalize from '../utils/capitalize';
@@ -13,7 +12,9 @@ import FirstPageIcon from '../internal/svg-icons/FirstPage';
import LastPageIcon from '../internal/svg-icons/LastPage';
import NavigateBeforeIcon from '../internal/svg-icons/NavigateBefore';
import NavigateNextIcon from '../internal/svg-icons/NavigateNext';
-import styled from '../styles/styled';
+import { styled, createUseThemeProps } from '../zero-styled';
+
+const useThemeProps = createUseThemeProps('MuiPaginationItem');
const overridesResolver = (props, styles) => {
const { ownerState } = props;
@@ -65,7 +66,7 @@ const PaginationItemEllipsis = styled('div', {
name: 'MuiPaginationItem',
slot: 'Root',
overridesResolver,
-})(({ theme, ownerState }) => ({
+})(({ theme }) => ({
...theme.typography.body2,
borderRadius: 32 / 2,
textAlign: 'center',
@@ -78,185 +79,225 @@ const PaginationItemEllipsis = styled('div', {
[`&.${paginationItemClasses.disabled}`]: {
opacity: (theme.vars || theme).palette.action.disabledOpacity,
},
- ...(ownerState.size === 'small' && {
- minWidth: 26,
- borderRadius: 26 / 2,
- margin: '0 1px',
- padding: '0 4px',
- }),
- ...(ownerState.size === 'large' && {
- minWidth: 40,
- borderRadius: 40 / 2,
- padding: '0 10px',
- fontSize: theme.typography.pxToRem(15),
- }),
+ variants: [
+ {
+ props: { size: 'small' },
+ style: {
+ minWidth: 26,
+ borderRadius: 26 / 2,
+ margin: '0 1px',
+ padding: '0 4px',
+ },
+ },
+ {
+ props: { size: 'large' },
+ style: {
+ minWidth: 40,
+ borderRadius: 40 / 2,
+ padding: '0 10px',
+ fontSize: theme.typography.pxToRem(15),
+ },
+ },
+ ],
}));
const PaginationItemPage = styled(ButtonBase, {
name: 'MuiPaginationItem',
slot: 'Root',
overridesResolver,
-})(
- ({ theme, ownerState }) => ({
- ...theme.typography.body2,
- borderRadius: 32 / 2,
- textAlign: 'center',
- boxSizing: 'border-box',
- minWidth: 32,
- height: 32,
- padding: '0 6px',
- margin: '0 3px',
- color: (theme.vars || theme).palette.text.primary,
- [`&.${paginationItemClasses.focusVisible}`]: {
- backgroundColor: (theme.vars || theme).palette.action.focus,
- },
- [`&.${paginationItemClasses.disabled}`]: {
- opacity: (theme.vars || theme).palette.action.disabledOpacity,
+})(({ theme }) => ({
+ ...theme.typography.body2,
+ borderRadius: 32 / 2,
+ textAlign: 'center',
+ boxSizing: 'border-box',
+ minWidth: 32,
+ height: 32,
+ padding: '0 6px',
+ margin: '0 3px',
+ color: (theme.vars || theme).palette.text.primary,
+ [`&.${paginationItemClasses.focusVisible}`]: {
+ backgroundColor: (theme.vars || theme).palette.action.focus,
+ },
+ [`&.${paginationItemClasses.disabled}`]: {
+ opacity: (theme.vars || theme).palette.action.disabledOpacity,
+ },
+ transition: theme.transitions.create(['color', 'background-color'], {
+ duration: theme.transitions.duration.short,
+ }),
+ '&:hover': {
+ backgroundColor: (theme.vars || theme).palette.action.hover,
+ // Reset on touch devices, it doesn't add specificity
+ '@media (hover: none)': {
+ backgroundColor: 'transparent',
},
- transition: theme.transitions.create(['color', 'background-color'], {
- duration: theme.transitions.duration.short,
- }),
+ },
+ [`&.${paginationItemClasses.selected}`]: {
+ backgroundColor: (theme.vars || theme).palette.action.selected,
'&:hover': {
- backgroundColor: (theme.vars || theme).palette.action.hover,
+ backgroundColor: theme.vars
+ ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))`
+ : alpha(
+ theme.palette.action.selected,
+ theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity,
+ ),
// Reset on touch devices, it doesn't add specificity
'@media (hover: none)': {
- backgroundColor: 'transparent',
+ backgroundColor: (theme.vars || theme).palette.action.selected,
},
},
- [`&.${paginationItemClasses.selected}`]: {
+ [`&.${paginationItemClasses.focusVisible}`]: {
+ backgroundColor: theme.vars
+ ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))`
+ : alpha(
+ theme.palette.action.selected,
+ theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity,
+ ),
+ },
+ [`&.${paginationItemClasses.disabled}`]: {
+ opacity: 1,
+ color: (theme.vars || theme).palette.action.disabled,
backgroundColor: (theme.vars || theme).palette.action.selected,
- '&:hover': {
- backgroundColor: theme.vars
- ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))`
- : alpha(
- theme.palette.action.selected,
- theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity,
- ),
- // Reset on touch devices, it doesn't add specificity
- '@media (hover: none)': {
- backgroundColor: (theme.vars || theme).palette.action.selected,
- },
+ },
+ },
+ variants: [
+ {
+ props: { size: 'small' },
+ style: {
+ minWidth: 26,
+ height: 26,
+ borderRadius: 26 / 2,
+ margin: '0 1px',
+ padding: '0 4px',
},
- [`&.${paginationItemClasses.focusVisible}`]: {
- backgroundColor: theme.vars
- ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))`
- : alpha(
- theme.palette.action.selected,
- theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity,
- ),
+ },
+ {
+ props: { size: 'large' },
+ style: {
+ minWidth: 40,
+ height: 40,
+ borderRadius: 40 / 2,
+ padding: '0 10px',
+ fontSize: theme.typography.pxToRem(15),
},
- [`&.${paginationItemClasses.disabled}`]: {
- opacity: 1,
- color: (theme.vars || theme).palette.action.disabled,
- backgroundColor: (theme.vars || theme).palette.action.selected,
+ },
+ {
+ props: { shape: 'rounded' },
+ style: {
+ borderRadius: (theme.vars || theme).shape.borderRadius,
},
},
- ...(ownerState.size === 'small' && {
- minWidth: 26,
- height: 26,
- borderRadius: 26 / 2,
- margin: '0 1px',
- padding: '0 4px',
- }),
- ...(ownerState.size === 'large' && {
- minWidth: 40,
- height: 40,
- borderRadius: 40 / 2,
- padding: '0 10px',
- fontSize: theme.typography.pxToRem(15),
- }),
- ...(ownerState.shape === 'rounded' && {
- borderRadius: (theme.vars || theme).shape.borderRadius,
- }),
- }),
- ({ theme, ownerState }) => ({
- ...(ownerState.variant === 'text' && {
- [`&.${paginationItemClasses.selected}`]: {
- ...(ownerState.color !== 'standard' && {
- color: (theme.vars || theme).palette[ownerState.color].contrastText,
- backgroundColor: (theme.vars || theme).palette[ownerState.color].main,
- '&:hover': {
- backgroundColor: (theme.vars || theme).palette[ownerState.color].dark,
- // Reset on touch devices, it doesn't add specificity
- '@media (hover: none)': {
- backgroundColor: (theme.vars || theme).palette[ownerState.color].main,
- },
+ {
+ props: { variant: 'outlined' },
+ style: {
+ border: theme.vars
+ ? `1px solid rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)`
+ : `1px solid ${
+ theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)'
+ }`,
+ [`&.${paginationItemClasses.selected}`]: {
+ [`&.${paginationItemClasses.disabled}`]: {
+ borderColor: (theme.vars || theme).palette.action.disabledBackground,
+ color: (theme.vars || theme).palette.action.disabled,
},
- [`&.${paginationItemClasses.focusVisible}`]: {
- backgroundColor: (theme.vars || theme).palette[ownerState.color].dark,
+ },
+ },
+ },
+ {
+ props: { variant: 'text' },
+ style: {
+ [`&.${paginationItemClasses.selected}`]: {
+ [`&.${paginationItemClasses.disabled}`]: {
+ color: (theme.vars || theme).palette.action.disabled,
},
- }),
- [`&.${paginationItemClasses.disabled}`]: {
- color: (theme.vars || theme).palette.action.disabled,
},
},
- }),
- ...(ownerState.variant === 'outlined' && {
- border: theme.vars
- ? `1px solid rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)`
- : `1px solid ${
- theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)'
- }`,
- [`&.${paginationItemClasses.selected}`]: {
- ...(ownerState.color !== 'standard' && {
- color: (theme.vars || theme).palette[ownerState.color].main,
- border: `1px solid ${
- theme.vars
- ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / 0.5)`
- : alpha(theme.palette[ownerState.color].main, 0.5)
- }`,
- backgroundColor: theme.vars
- ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / ${
- theme.vars.palette.action.activatedOpacity
- })`
- : alpha(theme.palette[ownerState.color].main, theme.palette.action.activatedOpacity),
- '&:hover': {
- backgroundColor: theme.vars
- ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / calc(${
- theme.vars.palette.action.activatedOpacity
- } + ${theme.vars.palette.action.focusOpacity}))`
- : alpha(
- theme.palette[ownerState.color].main,
- theme.palette.action.activatedOpacity + theme.palette.action.focusOpacity,
- ),
- // Reset on touch devices, it doesn't add specificity
- '@media (hover: none)': {
- backgroundColor: 'transparent',
+ },
+ ...Object.entries(theme.palette)
+ .filter(([, value]) => value.main && value.dark && value.contrastText)
+ .map(([color]) => ({
+ props: { variant: 'text', color },
+ style: {
+ [`&.${paginationItemClasses.selected}`]: {
+ color: (theme.vars || theme).palette[color].contrastText,
+ backgroundColor: (theme.vars || theme).palette[color].main,
+ '&:hover': {
+ backgroundColor: (theme.vars || theme).palette[color].dark,
+ // Reset on touch devices, it doesn't add specificity
+ '@media (hover: none)': {
+ backgroundColor: (theme.vars || theme).palette[color].main,
+ },
+ },
+ [`&.${paginationItemClasses.focusVisible}`]: {
+ backgroundColor: (theme.vars || theme).palette[color].dark,
+ },
+ [`&.${paginationItemClasses.disabled}`]: {
+ color: (theme.vars || theme).palette.action.disabled,
},
},
- [`&.${paginationItemClasses.focusVisible}`]: {
+ },
+ })),
+ ...Object.entries(theme.palette)
+ .filter(([, value]) => value.main && value.light)
+ .map(([color]) => ({
+ props: { variant: 'outlined', color },
+ style: {
+ [`&.${paginationItemClasses.selected}`]: {
+ color: (theme.vars || theme).palette[color].main,
+ border: `1px solid ${
+ theme.vars
+ ? `rgba(${theme.vars.palette[color].mainChannel} / 0.5)`
+ : alpha(theme.palette[color].main, 0.5)
+ }`,
backgroundColor: theme.vars
- ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / calc(${
- theme.vars.palette.action.activatedOpacity
- } + ${theme.vars.palette.action.focusOpacity}))`
- : alpha(
- theme.palette[ownerState.color].main,
- theme.palette.action.activatedOpacity + theme.palette.action.focusOpacity,
- ),
+ ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.activatedOpacity})`
+ : alpha(theme.palette[color].main, theme.palette.action.activatedOpacity),
+ '&:hover': {
+ backgroundColor: theme.vars
+ ? `rgba(${theme.vars.palette[color].mainChannel} / calc(${theme.vars.palette.action.activatedOpacity} + ${theme.vars.palette.action.focusOpacity}))`
+ : alpha(
+ theme.palette[color].main,
+ theme.palette.action.activatedOpacity + theme.palette.action.focusOpacity,
+ ),
+ // Reset on touch devices, it doesn't add specificity
+ '@media (hover: none)': {
+ backgroundColor: 'transparent',
+ },
+ },
+ [`&.${paginationItemClasses.focusVisible}`]: {
+ backgroundColor: theme.vars
+ ? `rgba(${theme.vars.palette[color].mainChannel} / calc(${theme.vars.palette.action.activatedOpacity} + ${theme.vars.palette.action.focusOpacity}))`
+ : alpha(
+ theme.palette[color].main,
+ theme.palette.action.activatedOpacity + theme.palette.action.focusOpacity,
+ ),
+ },
},
- }),
- [`&.${paginationItemClasses.disabled}`]: {
- borderColor: (theme.vars || theme).palette.action.disabledBackground,
- color: (theme.vars || theme).palette.action.disabled,
},
- },
- }),
- }),
-);
+ })),
+ ],
+}));
const PaginationItemPageIcon = styled('div', {
name: 'MuiPaginationItem',
slot: 'Icon',
overridesResolver: (props, styles) => styles.icon,
-})(({ theme, ownerState }) => ({
+})(({ theme }) => ({
fontSize: theme.typography.pxToRem(20),
margin: '0 -8px',
- ...(ownerState.size === 'small' && {
- fontSize: theme.typography.pxToRem(18),
- }),
- ...(ownerState.size === 'large' && {
- fontSize: theme.typography.pxToRem(22),
- }),
+ variants: [
+ {
+ props: { size: 'small' },
+ style: {
+ fontSize: theme.typography.pxToRem(18),
+ },
+ },
+ {
+ props: { size: 'large' },
+ style: {
+ fontSize: theme.typography.pxToRem(22),
+ },
+ },
+ ],
}));
const PaginationItem = React.forwardRef(function PaginationItem(inProps, ref) {
diff --git a/packages/mui-material/src/Select/Select.d.ts b/packages/mui-material/src/Select/Select.d.ts
index c39944e1e0ded8..f4984bdc71f84d 100644
--- a/packages/mui-material/src/Select/Select.d.ts
+++ b/packages/mui-material/src/Select/Select.d.ts
@@ -151,7 +151,8 @@ export interface BaseSelectProps
variant?: SelectVariants;
}
-export interface FilledSelectProps extends Omit {
+export interface FilledSelectProps
+ extends Omit {
/**
* The variant to use.
* @default 'outlined'
@@ -159,7 +160,8 @@ export interface FilledSelectProps extends Omit {
+export interface StandardSelectProps
+ extends Omit {
/**
* The variant to use.
* @default 'outlined'
@@ -167,7 +169,8 @@ export interface StandardSelectProps extends Omit {
+export interface OutlinedSelectProps
+ extends Omit {
/**
* The variant to use.
* @default 'outlined'
@@ -193,8 +196,8 @@ export type SelectProps =
* - [Select API](https://mui.com/material-ui/api/select/)
* - inherits [OutlinedInput API](https://mui.com/material-ui/api/outlined-input/)
*/
-export default function Select(
- props: SelectProps,
-): JSX.Element & {
+declare const Select: ((props: SelectProps) => JSX.Element) & {
muiName: string;
};
+
+export default Select;
diff --git a/packages/mui-material/src/Select/Select.spec.tsx b/packages/mui-material/src/Select/Select.spec.tsx
index 78f69c76c606d0..0aaa8004646534 100644
--- a/packages/mui-material/src/Select/Select.spec.tsx
+++ b/packages/mui-material/src/Select/Select.spec.tsx
@@ -196,3 +196,6 @@ const AppSelect = (props: Props) => {
);
};
+
+// test for applying Select's static muiName property type to wrapper components
+AppSelect.muiName = Select.muiName;
diff --git a/packages/mui-material/src/Slider/Slider.js b/packages/mui-material/src/Slider/Slider.js
index 5b5ed8c9e97f61..f87f34f51bdd68 100644
--- a/packages/mui-material/src/Slider/Slider.js
+++ b/packages/mui-material/src/Slider/Slider.js
@@ -277,6 +277,30 @@ export const SliderThumb = styled('span', {
},
},
variants: [
+ {
+ props: { size: 'small' },
+ style: {
+ width: 12,
+ height: 12,
+ '&::before': {
+ boxShadow: 'none',
+ },
+ },
+ },
+ {
+ props: { orientation: 'horizontal' },
+ style: {
+ top: '50%',
+ transform: 'translate(-50%, -50%)',
+ },
+ },
+ {
+ props: { orientation: 'vertical' },
+ style: {
+ left: '50%',
+ transform: 'translate(-50%, 50%)',
+ },
+ },
...Object.keys((theme.vars ?? theme).palette)
.filter((key) => (theme.vars ?? theme).palette[key].main)
.map((color) => ({
@@ -305,30 +329,6 @@ export const SliderThumb = styled('span', {
},
},
})),
- {
- props: { size: 'small' },
- style: {
- width: 12,
- height: 12,
- '&::before': {
- boxShadow: 'none',
- },
- },
- },
- {
- props: { orientation: 'horizontal' },
- style: {
- top: '50%',
- transform: 'translate(-50%, -50%)',
- },
- },
- {
- props: { orientation: 'vertical' },
- style: {
- left: '50%',
- transform: 'translate(-50%, 50%)',
- },
- },
],
}));
diff --git a/packages/mui-material/src/StepConnector/stepConnectorClasses.ts b/packages/mui-material/src/StepConnector/stepConnectorClasses.ts
index 30f6fb2f3fa54f..a7f46ca2880c9f 100644
--- a/packages/mui-material/src/StepConnector/stepConnectorClasses.ts
+++ b/packages/mui-material/src/StepConnector/stepConnectorClasses.ts
@@ -18,9 +18,13 @@ export interface StepConnectorClasses {
disabled: string;
/** Styles applied to the line element. */
line: string;
- /** Styles applied to the root element if `orientation="horizontal"`. */
+ /** Styles applied to the line element if `orientation="horizontal"`.
+ * @deprecated Combine the [.MuiStepConnector-horizontal](/material-ui/api/step-connector/#step-connector-classes-horizontal) and [.MuiStepConnector-line](/material-ui/api/step-connector/#step-connector-classes-line) classes instead. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/)
+ */
lineHorizontal: string;
- /** Styles applied to the root element if `orientation="vertical"`. */
+ /** Styles applied to the line element if `orientation="vertical"`.
+ * @deprecated Combine the [.MuiStepConnector-vertical](/material-ui/api/step-connector/#step-connector-classes-vertical) and [.MuiStepConnector-line](/material-ui/api/step-connector/#step-connector-classes-line) classes instead. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/)
+ */
lineVertical: string;
}
diff --git a/packages/mui-material/src/StepLabel/StepLabel.d.ts b/packages/mui-material/src/StepLabel/StepLabel.d.ts
index bd389907657f0d..b47182a67a9623 100644
--- a/packages/mui-material/src/StepLabel/StepLabel.d.ts
+++ b/packages/mui-material/src/StepLabel/StepLabel.d.ts
@@ -12,12 +12,17 @@ export interface StepLabelSlots {
* @default span
*/
label?: React.ElementType;
+ /**
+ * The component to render in place of the [`StepIcon`](/material-ui/api/step-icon/).
+ */
+ stepIcon?: React.ElementType;
}
export type StepLabelSlotsAndSlotProps = CreateSlotsAndSlotProps<
StepLabelSlots,
{
label: SlotProps>, {}, StepLabelOwnerState>;
+ stepIcon: SlotProps, {}, StepLabelOwnerState>;
}
>;
@@ -61,10 +66,12 @@ export interface StepLabelProps
optional?: React.ReactNode;
/**
* The component to render in place of the [`StepIcon`](/material-ui/api/step-icon/).
+ * @deprecated Use `slots.stepIcon` instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
*/
StepIconComponent?: React.ElementType;
/**
* Props applied to the [`StepIcon`](/material-ui/api/step-icon/) element.
+ * @deprecated Use `slotProps.stepIcon` instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
*/
StepIconProps?: Partial;
/**
diff --git a/packages/mui-material/src/StepLabel/StepLabel.js b/packages/mui-material/src/StepLabel/StepLabel.js
index 42efdda24b6a68..585941fad0ecec 100644
--- a/packages/mui-material/src/StepLabel/StepLabel.js
+++ b/packages/mui-material/src/StepLabel/StepLabel.js
@@ -165,6 +165,7 @@ const StepLabel = React.forwardRef(function StepLabel(inProps, ref) {
const externalForwardedProps = {
slots,
slotProps: {
+ stepIcon: StepIconProps,
...componentsProps,
...slotProps,
},
@@ -176,6 +177,12 @@ const StepLabel = React.forwardRef(function StepLabel(inProps, ref) {
ownerState,
});
+ const [StepIconSlot, stepIconProps] = useSlot('stepIcon', {
+ elementType: StepIconComponent,
+ externalForwardedProps,
+ ownerState,
+ });
+
return (
- {icon || StepIconComponent ? (
+ {icon || StepIconSlot ? (
-
) : null}
@@ -250,6 +257,7 @@ StepLabel.propTypes /* remove-proptypes */ = {
*/
slotProps: PropTypes.shape({
label: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
+ stepIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
}),
/**
* The components used for each slot inside.
@@ -257,13 +265,16 @@ StepLabel.propTypes /* remove-proptypes */ = {
*/
slots: PropTypes.shape({
label: PropTypes.elementType,
+ stepIcon: PropTypes.elementType,
}),
/**
* The component to render in place of the [`StepIcon`](/material-ui/api/step-icon/).
+ * @deprecated Use `slots.stepIcon` instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
*/
StepIconComponent: PropTypes.elementType,
/**
* Props applied to the [`StepIcon`](/material-ui/api/step-icon/) element.
+ * @deprecated Use `slotProps.stepIcon` instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
*/
StepIconProps: PropTypes.object,
/**
diff --git a/packages/mui-material/src/Table/Table.d.ts b/packages/mui-material/src/Table/Table.d.ts
index cbc37912c61bbf..4327d327dc68b9 100644
--- a/packages/mui-material/src/Table/Table.d.ts
+++ b/packages/mui-material/src/Table/Table.d.ts
@@ -28,8 +28,6 @@ export interface TableOwnProps {
size?: OverridableStringUnion<'small' | 'medium', TablePropsSizeOverrides>;
/**
* Set the header sticky.
- *
- * ⚠️ It doesn't work with IE11.
* @default false
*/
stickyHeader?: boolean;
diff --git a/packages/mui-material/src/Table/Table.js b/packages/mui-material/src/Table/Table.js
index 33201ca6ae94ab..8690bf2017f2a0 100644
--- a/packages/mui-material/src/Table/Table.js
+++ b/packages/mui-material/src/Table/Table.js
@@ -122,8 +122,6 @@ Table.propTypes /* remove-proptypes */ = {
]),
/**
* Set the header sticky.
- *
- * ⚠️ It doesn't work with IE11.
* @default false
*/
stickyHeader: PropTypes.bool,
diff --git a/packages/mui-material/src/ToggleButton/ToggleButton.js b/packages/mui-material/src/ToggleButton/ToggleButton.js
index bfa15b63247e6a..c9224e80889d4f 100644
--- a/packages/mui-material/src/ToggleButton/ToggleButton.js
+++ b/packages/mui-material/src/ToggleButton/ToggleButton.js
@@ -5,16 +5,17 @@ import PropTypes from 'prop-types';
import clsx from 'clsx';
import resolveProps from '@mui/utils/resolveProps';
import composeClasses from '@mui/utils/composeClasses';
-import { alpha } from '../styles';
+import { alpha } from '@mui/system/colorManipulator';
import ButtonBase from '../ButtonBase';
import capitalize from '../utils/capitalize';
-import useThemeProps from '../styles/useThemeProps';
-import styled from '../styles/styled';
+import { createUseThemeProps, styled } from '../zero-styled';
import toggleButtonClasses, { getToggleButtonUtilityClass } from './toggleButtonClasses';
import ToggleButtonGroupContext from '../ToggleButtonGroup/ToggleButtonGroupContext';
import ToggleButtonGroupButtonContext from '../ToggleButtonGroup/ToggleButtonGroupButtonContext';
import isValueSelected from '../ToggleButtonGroup/isValueSelected';
+const useThemeProps = createUseThemeProps('MuiToggleButton');
+
const useUtilityClasses = (ownerState) => {
const { classes, fullWidth, selected, disabled, size, color } = ownerState;
@@ -40,76 +41,105 @@ const ToggleButtonRoot = styled(ButtonBase, {
return [styles.root, styles[`size${capitalize(ownerState.size)}`]];
},
-})(({ theme, ownerState }) => {
- let selectedColor =
- ownerState.color === 'standard'
- ? theme.palette.text.primary
- : theme.palette[ownerState.color].main;
- let selectedColorChannel;
- if (theme.vars) {
- selectedColor =
- ownerState.color === 'standard'
- ? theme.vars.palette.text.primary
- : theme.vars.palette[ownerState.color].main;
- selectedColorChannel =
- ownerState.color === 'standard'
- ? theme.vars.palette.text.primaryChannel
- : theme.vars.palette[ownerState.color].mainChannel;
- }
-
- return {
- ...theme.typography.button,
- borderRadius: (theme.vars || theme).shape.borderRadius,
- padding: 11,
- border: `1px solid ${(theme.vars || theme).palette.divider}`,
- color: (theme.vars || theme).palette.action.active,
- ...(ownerState.fullWidth && {
- width: '100%',
- }),
- [`&.${toggleButtonClasses.disabled}`]: {
- color: (theme.vars || theme).palette.action.disabled,
- border: `1px solid ${(theme.vars || theme).palette.action.disabledBackground}`,
+})(({ theme }) => ({
+ ...theme.typography.button,
+ borderRadius: (theme.vars || theme).shape.borderRadius,
+ padding: 11,
+ border: `1px solid ${(theme.vars || theme).palette.divider}`,
+ color: (theme.vars || theme).palette.action.active,
+ [`&.${toggleButtonClasses.disabled}`]: {
+ color: (theme.vars || theme).palette.action.disabled,
+ border: `1px solid ${(theme.vars || theme).palette.action.disabledBackground}`,
+ },
+ '&:hover': {
+ textDecoration: 'none',
+ // Reset on mouse devices
+ backgroundColor: theme.vars
+ ? `rgba(${theme.vars.palette.text.primaryChannel} / ${theme.vars.palette.action.hoverOpacity})`
+ : alpha(theme.palette.text.primary, theme.palette.action.hoverOpacity),
+ '@media (hover: none)': {
+ backgroundColor: 'transparent',
},
- '&:hover': {
- textDecoration: 'none',
- // Reset on mouse devices
- backgroundColor: theme.vars
- ? `rgba(${theme.vars.palette.text.primaryChannel} / ${theme.vars.palette.action.hoverOpacity})`
- : alpha(theme.palette.text.primary, theme.palette.action.hoverOpacity),
- '@media (hover: none)': {
- backgroundColor: 'transparent',
+ },
+ variants: [
+ {
+ props: { color: 'standard' },
+ style: {
+ [`&.${toggleButtonClasses.selected}`]: {
+ color: (theme.vars || theme).palette.text.primary,
+ backgroundColor: theme.vars
+ ? `rgba(${theme.vars.palette.text.primaryChannel} / ${theme.vars.palette.action.selectedOpacity})`
+ : alpha(theme.palette.text.primary, theme.palette.action.selectedOpacity),
+ '&:hover': {
+ backgroundColor: theme.vars
+ ? `rgba(${theme.vars.palette.text.primaryChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))`
+ : alpha(
+ theme.palette.text.primary,
+ theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity,
+ ),
+ // Reset on touch devices, it doesn't add specificity
+ '@media (hover: none)': {
+ backgroundColor: theme.vars
+ ? `rgba(${theme.vars.palette.text.primaryChannel} / ${theme.vars.palette.action.selectedOpacity})`
+ : alpha(theme.palette.text.primary, theme.palette.action.selectedOpacity),
+ },
+ },
+ },
},
},
- [`&.${toggleButtonClasses.selected}`]: {
- color: selectedColor,
- backgroundColor: theme.vars
- ? `rgba(${selectedColorChannel} / ${theme.vars.palette.action.selectedOpacity})`
- : alpha(selectedColor, theme.palette.action.selectedOpacity),
- '&:hover': {
- backgroundColor: theme.vars
- ? `rgba(${selectedColorChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))`
- : alpha(
- selectedColor,
- theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity,
- ),
- // Reset on touch devices, it doesn't add specificity
- '@media (hover: none)': {
- backgroundColor: theme.vars
- ? `rgba(${selectedColorChannel} / ${theme.vars.palette.action.selectedOpacity})`
- : alpha(selectedColor, theme.palette.action.selectedOpacity),
+ ...Object.keys((theme.vars || theme).palette)
+ .filter((key) =>
+ theme.vars
+ ? theme.vars.palette[key].main && theme.vars.palette[key].mainChannel
+ : theme.palette[key].main,
+ )
+ .map((color) => ({
+ props: { color },
+ style: {
+ [`&.${toggleButtonClasses.selected}`]: {
+ color: (theme.vars || theme).palette[color].main,
+ backgroundColor: theme.vars
+ ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.selectedOpacity})`
+ : alpha(theme.palette[color].main, theme.palette.action.selectedOpacity),
+ '&:hover': {
+ backgroundColor: theme.vars
+ ? `rgba(${theme.vars.palette[color].mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))`
+ : alpha(
+ theme.palette[color].main,
+ theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity,
+ ),
+ // Reset on touch devices, it doesn't add specificity
+ '@media (hover: none)': {
+ backgroundColor: theme.vars
+ ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.selectedOpacity})`
+ : alpha(theme.palette[color].main, theme.palette.action.selectedOpacity),
+ },
+ },
+ },
},
+ })),
+ {
+ props: { fullWidth: true },
+ style: {
+ width: '100%',
},
},
- ...(ownerState.size === 'small' && {
- padding: 7,
- fontSize: theme.typography.pxToRem(13),
- }),
- ...(ownerState.size === 'large' && {
- padding: 15,
- fontSize: theme.typography.pxToRem(15),
- }),
- };
-});
+ {
+ props: { size: 'small' },
+ style: {
+ padding: 7,
+ fontSize: theme.typography.pxToRem(13),
+ },
+ },
+ {
+ props: { size: 'large' },
+ style: {
+ padding: 15,
+ fontSize: theme.typography.pxToRem(15),
+ },
+ },
+ ],
+}));
const ToggleButton = React.forwardRef(function ToggleButton(inProps, ref) {
// props priority: `inProps` > `contextProps` > `themeDefaultProps`
diff --git a/packages/mui-material/src/ToggleButtonGroup/ToggleButtonGroup.js b/packages/mui-material/src/ToggleButtonGroup/ToggleButtonGroup.js
index 799cf46053b912..73e31065a0c4c1 100644
--- a/packages/mui-material/src/ToggleButtonGroup/ToggleButtonGroup.js
+++ b/packages/mui-material/src/ToggleButtonGroup/ToggleButtonGroup.js
@@ -5,8 +5,7 @@ import PropTypes from 'prop-types';
import clsx from 'clsx';
import composeClasses from '@mui/utils/composeClasses';
import getValidReactChildren from '@mui/utils/getValidReactChildren';
-import styled from '../styles/styled';
-import useThemeProps from '../styles/useThemeProps';
+import { styled, createUseThemeProps } from '../zero-styled';
import capitalize from '../utils/capitalize';
import toggleButtonGroupClasses, {
getToggleButtonGroupUtilityClass,
@@ -15,11 +14,13 @@ import ToggleButtonGroupContext from './ToggleButtonGroupContext';
import ToggleButtonGroupButtonContext from './ToggleButtonGroupButtonContext';
import toggleButtonClasses from '../ToggleButton/toggleButtonClasses';
+const useThemeProps = createUseThemeProps('MuiToggleButtonGroup');
+
const useUtilityClasses = (ownerState) => {
const { classes, orientation, fullWidth, disabled } = ownerState;
const slots = {
- root: ['root', orientation === 'vertical' && 'vertical', fullWidth && 'fullWidth'],
+ root: ['root', orientation, fullWidth && 'fullWidth'],
grouped: ['grouped', `grouped${capitalize(orientation)}`, disabled && 'disabled'],
firstButton: ['firstButton'],
lastButton: ['lastButton'],
@@ -55,47 +56,21 @@ const ToggleButtonGroupRoot = styled('div', {
ownerState.fullWidth && styles.fullWidth,
];
},
-})(({ ownerState, theme }) => ({
+})(({ theme }) => ({
display: 'inline-flex',
borderRadius: (theme.vars || theme).shape.borderRadius,
- ...(ownerState.orientation === 'vertical' && {
- flexDirection: 'column',
- }),
- ...(ownerState.fullWidth && {
- width: '100%',
- }),
- [`& .${toggleButtonGroupClasses.grouped}`]: {
- ...(ownerState.orientation === 'horizontal'
- ? {
- [`&.${toggleButtonGroupClasses.selected} + .${toggleButtonGroupClasses.grouped}.${toggleButtonGroupClasses.selected}`]:
- {
- borderLeft: 0,
- marginLeft: 0,
- },
- }
- : {
+ variants: [
+ {
+ props: { orientation: 'vertical' },
+ style: {
+ flexDirection: 'column',
+ [`& .${toggleButtonGroupClasses.grouped}`]: {
[`&.${toggleButtonGroupClasses.selected} + .${toggleButtonGroupClasses.grouped}.${toggleButtonGroupClasses.selected}`]:
{
borderTop: 0,
marginTop: 0,
},
- }),
- },
- ...(ownerState.orientation === 'horizontal'
- ? {
- [`& .${toggleButtonGroupClasses.firstButton},& .${toggleButtonGroupClasses.middleButton}`]:
- {
- borderTopRightRadius: 0,
- borderBottomRightRadius: 0,
- },
- [`& .${toggleButtonGroupClasses.lastButton},& .${toggleButtonGroupClasses.middleButton}`]: {
- marginLeft: -1,
- borderLeft: '1px solid transparent',
- borderTopLeftRadius: 0,
- borderBottomLeftRadius: 0,
},
- }
- : {
[`& .${toggleButtonGroupClasses.firstButton},& .${toggleButtonGroupClasses.middleButton}`]:
{
borderBottomLeftRadius: 0,
@@ -107,20 +82,46 @@ const ToggleButtonGroupRoot = styled('div', {
borderTopLeftRadius: 0,
borderTopRightRadius: 0,
},
- }),
- ...(ownerState.orientation === 'horizontal'
- ? {
[`& .${toggleButtonGroupClasses.lastButton}.${toggleButtonClasses.disabled},& .${toggleButtonGroupClasses.middleButton}.${toggleButtonClasses.disabled}`]:
{
- borderLeft: '1px solid transparent',
+ borderTop: '1px solid transparent',
},
- }
- : {
+ },
+ },
+ {
+ props: { fullWidth: true },
+ style: {
+ width: '100%',
+ },
+ },
+ {
+ props: { orientation: 'horizontal' },
+ style: {
+ [`& .${toggleButtonGroupClasses.grouped}`]: {
+ [`&.${toggleButtonGroupClasses.selected} + .${toggleButtonGroupClasses.grouped}.${toggleButtonGroupClasses.selected}`]:
+ {
+ borderLeft: 0,
+ marginLeft: 0,
+ },
+ },
+ [`& .${toggleButtonGroupClasses.firstButton},& .${toggleButtonGroupClasses.middleButton}`]:
+ {
+ borderTopRightRadius: 0,
+ borderBottomRightRadius: 0,
+ },
+ [`& .${toggleButtonGroupClasses.lastButton},& .${toggleButtonGroupClasses.middleButton}`]: {
+ marginLeft: -1,
+ borderLeft: '1px solid transparent',
+ borderTopLeftRadius: 0,
+ borderBottomLeftRadius: 0,
+ },
[`& .${toggleButtonGroupClasses.lastButton}.${toggleButtonClasses.disabled},& .${toggleButtonGroupClasses.middleButton}.${toggleButtonClasses.disabled}`]:
{
- borderTop: '1px solid transparent',
+ borderLeft: '1px solid transparent',
},
- }),
+ },
+ },
+ ],
}));
const ToggleButtonGroup = React.forwardRef(function ToggleButtonGroup(inProps, ref) {
diff --git a/packages/mui-material/src/ToggleButtonGroup/ToggleButtonGroup.test.js b/packages/mui-material/src/ToggleButtonGroup/ToggleButtonGroup.test.js
index 142ffc45a3ef5e..385ae149f5d6a7 100644
--- a/packages/mui-material/src/ToggleButtonGroup/ToggleButtonGroup.test.js
+++ b/packages/mui-material/src/ToggleButtonGroup/ToggleButtonGroup.test.js
@@ -39,6 +39,15 @@ describe(' ', () => {
expect(getByRole('button')).to.have.class('MuiToggleButtonGroup-groupedVertical');
});
+ it('should have horizontal class', () => {
+ const { getByRole } = render(
+
+ 1
+ ,
+ );
+ expect(getByRole('group')).to.have.class(classes.horizontal);
+ });
+
it('should disable all ToggleButton if disabled prop is passed', () => {
render(
diff --git a/packages/mui-material/src/ToggleButtonGroup/toggleButtonGroupClasses.ts b/packages/mui-material/src/ToggleButtonGroup/toggleButtonGroupClasses.ts
index 75cf854a4d59fc..d4a133d61996f7 100644
--- a/packages/mui-material/src/ToggleButtonGroup/toggleButtonGroupClasses.ts
+++ b/packages/mui-material/src/ToggleButtonGroup/toggleButtonGroupClasses.ts
@@ -4,15 +4,21 @@ import generateUtilityClass from '@mui/utils/generateUtilityClass';
export interface ToggleButtonGroupClasses {
/** Styles applied to the root element. */
root: string;
+ /** Styles applied to the root element if `orientation="horizontal"`. */
+ horizontal: string;
/** Styles applied to the root element if `orientation="vertical"`. */
vertical: string;
/** State class applied to the root element if `disabled={true}`. */
disabled: string;
/** Styles applied to the children. */
grouped: string;
- /** Styles applied to the children if `orientation="horizontal"`. */
+ /** Styles applied to the children if `orientation="horizontal"`.
+ * @deprecated Combine the [.MuiToggleButtonGroup-horizontal](/material-ui/api/toggle-button-group/#toggle-button-group-classes-horizontal) and [.MuiToggleButtonGroup-grouped](/material-ui/api/toggle-button-group/#toggle-button-group-classes-grouped) classes instead. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/)
+ */
groupedHorizontal: string;
- /** Styles applied to the children if `orientation="vertical"`. */
+ /** Styles applied to the children if `orientation="vertical"`.
+ * @deprecated Combine the [.MuiToggleButtonGroup-vertical](/material-ui/api/toggle-button-group/#toggle-button-group-classes-vertical) and [.MuiToggleButtonGroup-grouped](/material-ui/api/toggle-button-group/#toggle-button-group-classes-grouped) classes instead. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/)
+ */
groupedVertical: string;
/** Styles applied to the root element if `fullWidth={true}`. */
fullWidth: string;
@@ -35,6 +41,7 @@ const toggleButtonGroupClasses: ToggleButtonGroupClasses = generateUtilityClasse
[
'root',
'selected',
+ 'horizontal',
'vertical',
'disabled',
'grouped',
diff --git a/packages/mui-material/src/Typography/Typography.js b/packages/mui-material/src/Typography/Typography.js
index 0f917f9d9a0318..36201f1829f952 100644
--- a/packages/mui-material/src/Typography/Typography.js
+++ b/packages/mui-material/src/Typography/Typography.js
@@ -46,6 +46,8 @@ export const TypographyRoot = styled('span', {
...(ownerState.variant === 'inherit' && {
// Some elements, like on Chrome have default font that doesn't inherit, reset this.
font: 'inherit',
+ lineHeight: 'inherit',
+ letterSpacing: 'inherit',
}),
...(ownerState.variant !== 'inherit' && theme.typography[ownerState.variant]),
...(ownerState.align !== 'inherit' && {
diff --git a/packages/mui-material/src/locale/index.ts b/packages/mui-material/src/locale/index.ts
index cc37e2429ab0ac..c6c494c16f96f8 100644
--- a/packages/mui-material/src/locale/index.ts
+++ b/packages/mui-material/src/locale/index.ts
@@ -1864,7 +1864,7 @@ export const isIS: Localization = {
},
labelRowsPerPage: 'Raðir á síðu:',
labelDisplayedRows: ({ from, to, count }) =>
- `${from}–${to} af ${count !== -1 ? count : `fleiri enn ${to}`}`,
+ `${from}–${to} af ${count !== -1 ? count : `fleiri en ${to}`}`,
},
},
MuiRating: {
diff --git a/packages/mui-material/src/zero-styled/index.ts b/packages/mui-material/src/zero-styled/index.ts
index fc74b033f7d4a6..deff4b2bff07a0 100644
--- a/packages/mui-material/src/zero-styled/index.ts
+++ b/packages/mui-material/src/zero-styled/index.ts
@@ -1,5 +1,7 @@
import useThemeProps from '../styles/useThemeProps';
+export { css, keyframes } from '@mui/system';
+
export { default as styled } from '../styles/styled';
// eslint-disable-next-line @typescript-eslint/no-unused-vars
diff --git a/packages/mui-private-theming/package.json b/packages/mui-private-theming/package.json
index a34d5e95b3f86a..7bf488f86cb475 100644
--- a/packages/mui-private-theming/package.json
+++ b/packages/mui-private-theming/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/private-theming",
- "version": "5.15.14",
+ "version": "6.0.0-alpha.1",
"private": false,
"author": "MUI Team",
"description": "Private - The React theme context to be shared between `@mui/styles` and `@mui/material`.",
@@ -38,14 +38,14 @@
"typescript": "tsc -p tsconfig.json"
},
"dependencies": {
- "@babel/runtime": "^7.23.9",
+ "@babel/runtime": "^7.24.4",
"@mui/utils": "workspace:^",
"prop-types": "^15.8.1"
},
"devDependencies": {
"@mui-internal/test-utils": "workspace:^",
"@mui/types": "workspace:^",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/react": "^18.2.55",
"chai": "^4.4.1",
"react": "^18.2.0"
diff --git a/packages/mui-styled-engine-sc/package.json b/packages/mui-styled-engine-sc/package.json
index 2ba63a9e22c951..5e850007c2b664 100644
--- a/packages/mui-styled-engine-sc/package.json
+++ b/packages/mui-styled-engine-sc/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/styled-engine-sc",
- "version": "6.0.0-alpha.19",
+ "version": "6.0.0-alpha.20",
"private": false,
"author": "MUI Team",
"description": "styled() API wrapper package for styled-components.",
@@ -38,7 +38,7 @@
"typescript": "tsc -p tsconfig.json"
},
"dependencies": {
- "@babel/runtime": "^7.23.9",
+ "@babel/runtime": "^7.24.4",
"csstype": "^3.1.3",
"hoist-non-react-statics": "^3.3.2",
"prop-types": "^15.8.1"
@@ -46,7 +46,7 @@
"devDependencies": {
"@mui-internal/test-utils": "workspace:^",
"@mui/styled-engine-sc": "workspace:*",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/hoist-non-react-statics": "^3.3.5",
"@types/react": "^18.2.55",
"chai": "^4.4.1",
diff --git a/packages/mui-styled-engine/package.json b/packages/mui-styled-engine/package.json
index 1b80bf09f9dc75..3f8e17d2c0f092 100644
--- a/packages/mui-styled-engine/package.json
+++ b/packages/mui-styled-engine/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/styled-engine",
- "version": "6.0.0-alpha.0",
+ "version": "6.0.0-alpha.1",
"private": false,
"author": "MUI Team",
"description": "styled() API wrapper package for emotion.",
@@ -38,17 +38,17 @@
"typescript": "tsc -p tsconfig.json"
},
"dependencies": {
- "@babel/runtime": "^7.23.9",
+ "@babel/runtime": "^7.24.4",
"@emotion/cache": "^11.11.0",
"csstype": "^3.1.3",
"prop-types": "^15.8.1"
},
"devDependencies": {
"@emotion/react": "^11.11.4",
- "@emotion/styled": "^11.11.0",
+ "@emotion/styled": "^11.11.5",
"@mui-internal/test-utils": "workspace:^",
"@mui/styled-engine": "workspace:*",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/react": "^18.2.55",
"chai": "^4.4.1",
"react": "^18.2.0"
diff --git a/packages/mui-styles/package.json b/packages/mui-styles/package.json
index e38671a510ee77..25fb2d11243519 100644
--- a/packages/mui-styles/package.json
+++ b/packages/mui-styles/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/styles",
- "version": "6.0.0-alpha.0",
+ "version": "6.0.0-alpha.2",
"private": false,
"author": "MUI Team",
"description": "MUI Styles - The legacy JSS-based styling solution of Material UI.",
@@ -38,7 +38,7 @@
"typescript": "tsc -p tsconfig.json"
},
"dependencies": {
- "@babel/runtime": "^7.23.9",
+ "@babel/runtime": "^7.24.4",
"@emotion/hash": "^0.9.1",
"@mui/private-theming": "workspace:^",
"@mui/types": "workspace:^",
@@ -59,7 +59,7 @@
"devDependencies": {
"@mui-internal/test-utils": "workspace:^",
"@mui/material": "workspace:^",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/react": "^18.2.55",
"@types/react-dom": "^18.2.19",
"@types/sinon": "^10.0.20",
diff --git a/packages/mui-system/package.json b/packages/mui-system/package.json
index 4d390686761376..7a6bb48a0104fe 100644
--- a/packages/mui-system/package.json
+++ b/packages/mui-system/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/system",
- "version": "6.0.0-alpha.0",
+ "version": "6.0.0-alpha.1",
"private": false,
"author": "MUI Team",
"description": "MUI System is a set of CSS utilities to help you build custom designs more efficiently. It makes it possible to rapidly lay out custom designs.",
@@ -40,7 +40,7 @@
"typescript:module-augmentation": "node scripts/testModuleAugmentation.js"
},
"dependencies": {
- "@babel/runtime": "^7.23.9",
+ "@babel/runtime": "^7.24.4",
"@mui/private-theming": "workspace:^",
"@mui/styled-engine": "workspace:^",
"@mui/types": "workspace:^",
@@ -51,11 +51,11 @@
},
"devDependencies": {
"@emotion/react": "^11.11.4",
- "@emotion/styled": "^11.11.0",
+ "@emotion/styled": "^11.11.5",
"@mui-internal/test-utils": "workspace:^",
"@mui/internal-babel-macros": "workspace:^",
"@mui/system": "workspace:*",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/prop-types": "^15.7.12",
"@types/react": "^18.2.55",
"@types/sinon": "^10.0.20",
diff --git a/packages/mui-utils/package.json b/packages/mui-utils/package.json
index 55ba187529fe77..2675ce2917f370 100644
--- a/packages/mui-utils/package.json
+++ b/packages/mui-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/utils",
- "version": "5.15.14",
+ "version": "6.0.0-alpha.1",
"private": false,
"author": "MUI Team",
"description": "Utility functions for React components.",
@@ -39,7 +39,7 @@
"typescript": "tsc -p tsconfig.json"
},
"dependencies": {
- "@babel/runtime": "^7.23.9",
+ "@babel/runtime": "^7.24.4",
"@types/prop-types": "^15.7.12",
"prop-types": "^15.8.1",
"react-is": "^18.2.0"
@@ -48,9 +48,9 @@
"@mui-internal/test-utils": "workspace:^",
"@mui/internal-babel-macros": "workspace:^",
"@mui/types": "workspace:^",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/mocha": "^10.0.6",
- "@types/node": "^18.19.25",
+ "@types/node": "^18.19.31",
"@types/react": "^18.2.55",
"@types/react-dom": "^18.2.19",
"@types/react-is": "^18.2.4",
diff --git a/packages/pigment-css-nextjs-plugin/package.json b/packages/pigment-css-nextjs-plugin/package.json
index ff9149029c1def..7096e3095ad65c 100644
--- a/packages/pigment-css-nextjs-plugin/package.json
+++ b/packages/pigment-css-nextjs-plugin/package.json
@@ -1,6 +1,6 @@
{
"name": "@pigment-css/nextjs-plugin",
- "version": "0.0.4",
+ "version": "0.0.6",
"main": "build/index.js",
"module": "build/index.mjs",
"types": "build/index.d.ts",
@@ -45,6 +45,7 @@
"loader.js",
"next-font.js",
"next-image.js",
+ "third-party-styled.js",
"zero-virtual.css",
"package.json",
"LICENSE"
diff --git a/packages/pigment-css-nextjs-plugin/src/index.ts b/packages/pigment-css-nextjs-plugin/src/index.ts
index d4cbe973021384..53e6e62ffdf78e 100644
--- a/packages/pigment-css-nextjs-plugin/src/index.ts
+++ b/packages/pigment-css-nextjs-plugin/src/index.ts
@@ -53,6 +53,7 @@ export function withPigment(nextConfig: NextConfig, pigmentConfig?: PigmentOptio
isServer,
outputCss: dev || hasAppDir || !isServer,
placeholderCssFile: extractionFile,
+ projectPath: dir,
},
async asyncResolve(what: string, importer: string, stack: string[]) {
// Using the same stub file as "next/font". Should be updated in future to
@@ -72,6 +73,9 @@ export function withPigment(nextConfig: NextConfig, pigmentConfig?: PigmentOptio
if (what.startsWith('next/font')) {
return require.resolve('../next-font');
}
+ if (what.startsWith('@emotion/styled') || what.startsWith('styled-components')) {
+ return require.resolve('../third-party-styled');
+ }
if (asyncResolve) {
return asyncResolve(what, importer, stack);
}
diff --git a/packages/pigment-css-nextjs-plugin/third-party-styled.js b/packages/pigment-css-nextjs-plugin/third-party-styled.js
new file mode 100644
index 00000000000000..053f431428732b
--- /dev/null
+++ b/packages/pigment-css-nextjs-plugin/third-party-styled.js
@@ -0,0 +1,4 @@
+/* eslint-env node */
+module.exports = function DummyStyled() {
+ return () => () => null;
+};
diff --git a/packages/pigment-css-react/.gitignore b/packages/pigment-css-react/.gitignore
index ce2260016524df..3b44608184d983 100644
--- a/packages/pigment-css-react/.gitignore
+++ b/packages/pigment-css-react/.gitignore
@@ -1,3 +1,4 @@
/processors/
/utils/
LICENSE
+/private-runtime/
diff --git a/packages/pigment-css-react/README.md b/packages/pigment-css-react/README.md
index 736bc4c3e2c208..6a7190afcb4cac 100644
--- a/packages/pigment-css-react/README.md
+++ b/packages/pigment-css-react/README.md
@@ -39,7 +39,9 @@ Pigment CSS is built on top of [WyW-in-JS](https://wyw-in-js.dev/), enabling to
### Start with Next.js
-Use the following commands to create a new Next.js project with Pigment CSS set up:
+#### Quickstart
+
+Use the following commands to quickly create a new Next.js project with Pigment CSS set up:
```bash
curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/pigment-css-nextjs-ts
@@ -85,7 +87,9 @@ Finally, import the stylesheet in the root `layout.tsx` file:
### Start with Vite
-Use the following commands to create a new Vite project with Pigment CSS set up:
+#### Quickstart
+
+Use the following commands to quickly create a new Vite project with Pigment CSS set up:
```bash
curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/pigment-css-vite-ts
@@ -188,7 +192,7 @@ function App() {
}
```
-The Pigment CSS library differs from "standard" runtime CSS-in-JS libraries in a few ways:
+Pigment CSS differs from "standard" runtime CSS-in-JS libraries in a few ways:
1. You never get direct access to props in your styled declarations. This is because prop values are only available at runtime, but the CSS is extracted at build time. See [Styling based on runtime values](#styling-based-on-runtime-values) for a workaround.
2. Your styles must be declarative and must account for all combinations of props that you want to style.
@@ -204,11 +208,15 @@ Each variant is an object with `props` and `style` keys. The styles are applied
**Example 1** — A button component with `small` and `large` sizes:
-```jsx
-const Button = styled('button')({
+```tsx
+interface ButtonProps {
+ size?: 'small' | 'large';
+}
+
+const Button = styled('button')({
border: 'none',
padding: '0.75rem',
- // ...other base styles
+ // ...other styles
variants: [
{
props: { size: 'large' },
@@ -300,7 +308,7 @@ const Button = styled('button')({
> 💡 This approach is recommended when the value of a prop is **unknown** ahead of time or possibly unlimited values, for example styling based on the user's input.
-There are two ways to acheive this (both involve using a CSS variable):
+There are two ways to achieve this (both involve using a CSS variable):
1. Declare a CSS variable directly in the styles and set its value using inline styles:
@@ -335,7 +343,7 @@ Pigment CSS replaces the callback with a CSS variable and injects the value thr
```jsx
(isError ? 'red' : 'black'),
+ '--Heading_class_akjsdfb-0': isError ? 'red' : 'black',
}}
>
Hello
@@ -533,7 +541,7 @@ module.exports = withPigment(
);
```
-The `extendTheme` utility goes through the theme and create a `vars` object which represents the tokens that refer to CSS variables.
+The `extendTheme` utility goes through the theme and creates a `vars` object which represents the tokens that refer to CSS variables.
```jsx
const theme = extendTheme({
@@ -557,7 +565,7 @@ extendTheme({
});
```
-The generated CSS variables has the `pigment` prefix:
+The generated CSS variables have the `pigment` prefix:
```css
:root {
@@ -806,7 +814,7 @@ const Flex = styled('div')((props) => ({
2. **Programatically generated styles**
-For Emotion and styled-components, the styles is different on each render and instance because the styles are generated at runtime:
+For Emotion and styled-components, the styles are different on each render and instance because the styles are generated at runtime:
```js
function randomBetween(min: number, max: number) {
@@ -854,3 +862,250 @@ function App() {
)
}
```
+
+## Building reusable components for UI libraries
+
+The purpose of this guide is to demonstrate how to create reusable components for a UI library that can be shared across multiple projects and used to implement different design systems through custom theming.
+The approach outlined here is not necessary when constructing components to be consumed and themed in a single project.
+It's most relevant for developers who want to build a component library that could be published as a package to be consumed and themed by other developers.
+
+The steps below will walk you through how to create a statistics component that could serve as part of a reusable UI library built with Pigment CSS.
+This process has three parts:
+
+1. [Create component slots](#1-create-component-slots).
+2. [Compose slots to create the component](#2-create-the-component).
+3. [Style slots based on props](#3-style-slots-based-on-props).
+
+### 1. Create component slots
+
+Slots let the consumers customize each individual element of the component by targeting its respective name in the [theme's styleOverrides](#themeable-statistics-component).
+
+This statistics component is composed of three slots:
+
+- `root`: the container of the component
+- `value`: the number to be displayed
+- `unit`: the unit or description of the value
+
+> 💡 Though you can give these slots any names you prefer, we recommend using `root` for the outermost container element for consistency with the rest of the library.
+
+Use the `styled` API with `name` and `slot` parameters to create the slots, as shown below:
+
+```js
+// /path/to/Stat.js
+import * as React from 'react';
+import { styled } from '@pigment-css/react';
+
+const StatRoot = styled('div', {
+ name: 'PigmentStat', // The component name
+ slot: 'root', // The slot name
+})({
+ display: 'flex',
+ flexDirection: 'column',
+ gap: '1rem',
+ padding: '0.75rem 1rem',
+ backgroundColor: '#f9f9f9',
+ borderRadius: '8px',
+ boxShadow: '0 2px 4px rgba(0, 0, 0, 0.1)',
+ letterSpacing: '-0.025em',
+ fontWeight: 600,
+});
+
+const StatValue = styled('div', {
+ name: 'PigmentStat',
+ slot: 'value',
+})({
+ font: '1.2rem "Fira Sans", sans-serif',
+});
+
+const StatUnit = styled('div', {
+ name: 'PigmentStat',
+ slot: 'unit',
+})({
+ font: '0.875rem "Fira Sans", sans-serif',
+ color: '#121212',
+});
+```
+
+### 2. Create the component
+
+Assemble the component using the slots created in the previous step:
+
+```js
+// /path/to/Stat.js
+import * as React from 'react';
+
+// ...slot styled-components
+
+const Stat = React.forwardRef(function Stat(props, ref) {
+ const { value, unit, ...other } = props;
+
+ return (
+
+ {value}
+ {unit}
+
+ );
+});
+
+export default Stat;
+```
+
+### 3. Style slots based on props
+
+In this example, a prop named `variant` is defined to let consumers change the appearance of the `Stat` component.
+
+Pass down the `variant` prop to `` to style the `root` slot, as shown below:
+
+```diff
+ const Stat = React.forwardRef(function Stat(props, ref) {
++ const { value, unit, variant, ...other } = props;
+
+ return (
+-
+- {value}
+- {unit}
+-
++
++ {value}
++ {unit}
++
+ );
+ });
+```
+
+Then you can use Pigment CSS variants API to style it when `variant` prop has a value of `outlined`:
+
+```diff
+ const StatRoot = styled('div', {
+ name: 'PigmentStat',
+ slot: 'root',
+ })({
+ display: 'flex',
+ flexDirection: 'column',
+ gap: '1rem',
+ padding: '0.75rem 1rem',
+ backgroundColor: '#f9f9f9',
+ borderRadius: '8px',
+ boxShadow: '0 2px 4px rgba(0, 0, 0, 0.1)',
+ letterSpacing: '-0.025em',
+ fontWeight: 600,
++ variants: [
++ {
++ props: { variant: 'outlined' },
++ style: {
++ border: `2px solid #e9e9e9`,
++ },
++ },
++ ],
+ });
+```
+
+This completes the reusable statistics component.
+If this were a real UI library, the component would be ready to upload to a package registry so others could use it.
+
+### Consumer usage
+
+Developers using your component must first install your package as well as the Pigment CSS packages that correspond to the [framework](#start-with-nextjs) they're using.
+
+```bash
+npm install your-package-name @pigment-css/react
+npm install -D @pigment-css/nextjs-plugin
+```
+
+Next, they must set up Pigment CSS in their project:
+
+```js
+// framework config file, for example next.config.js
+const { withPigment } = require('@pigment-css/nextjs-plugin');
+
+module.exports = withPigment(
+ {
+ // ... Your nextjs config.
+ },
+ { transformLibraries: ['your-package-name'] },
+);
+```
+
+Finally, they must import the stylesheet in the root layout file:
+
+```js
+// index.tsx
+import '@pigment-css/react/styles.css';
+```
+
+Then they can use your component in their project:
+
+```jsx
+import Stat from 'your-package-name/Stat';
+
+function App() {
+ return ;
+}
+```
+
+### Consumer theming
+
+Developers can customize the component's styles using the theme's `styleOverrides` key and the component name and slots you defined in [step 2](#2-create-the-component).
+For example, the custom theme below sets the background color of the statistics component's root slot to `tomato`:
+
+```js
+module.exports = withPigment(
+ { ...nextConfig },
+ {
+ theme: {
+ styleOverrides: {
+ PigmentStat: {
+ root: {
+ backgroundColor: 'tomato',
+ },
+ value: {
+ color: 'white',
+ },
+ unit: {
+ color: 'white',
+ },
+ },
+ },
+ },
+ },
+);
+```
+
+Developers can also access theme values and apply styles based on the component's props using the `variants` key:
+
+```js
+module.exports = withPigment(
+ { ...nextConfig },
+ {
+ theme: {
+ // user defined colors
+ colors: {
+ primary: 'tomato',
+ primaryLight: 'lightcoral',
+ },
+ styleOverrides: {
+ PigmentStat: {
+ root: ({ theme }) => ({
+ backgroundColor: 'tomato',
+ variants: [
+ {
+ props: { variant: 'outlined' },
+ style: {
+ border: `2px solid ${theme.colors.primary}`,
+ backgroundColor: theme.colors.primaryLight,
+ },
+ },
+ ],
+ }),
+ value: {
+ color: 'white',
+ },
+ unit: {
+ color: 'white',
+ },
+ },
+ },
+ },
+ },
+);
+```
diff --git a/packages/pigment-css-react/exports/sx-plugin.js b/packages/pigment-css-react/exports/sx-plugin.js
index dad557a6deab17..5aaf3ba4deb4b8 100644
--- a/packages/pigment-css-react/exports/sx-plugin.js
+++ b/packages/pigment-css-react/exports/sx-plugin.js
@@ -2,4 +2,4 @@ Object.defineProperty(exports, '__esModule', {
value: true,
});
-exports.default = require('../utils/pre-linaria-plugin').babelPlugin;
+exports.default = require('../utils/sx-plugin').babelPlugin;
diff --git a/packages/pigment-css-react/package.json b/packages/pigment-css-react/package.json
index 4613a04db77e02..f230f29382a143 100644
--- a/packages/pigment-css-react/package.json
+++ b/packages/pigment-css-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@pigment-css/react",
- "version": "0.0.4",
+ "version": "0.0.6",
"main": "build/index.js",
"module": "build/index.mjs",
"types": "build/index.d.ts",
@@ -31,16 +31,16 @@
"typecheck": "tsc --noEmit -p ."
},
"dependencies": {
- "@babel/core": "^7.23.9",
- "@babel/helper-module-imports": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/parser": "^7.23.9",
- "@babel/types": "^7.23.9",
+ "@babel/core": "^7.24.4",
+ "@babel/helper-module-imports": "^7.24.3",
+ "@babel/helper-plugin-utils": "^7.24.0",
+ "@babel/parser": "^7.24.4",
+ "@babel/types": "^7.24.0",
"@emotion/css": "^11.11.2",
"@emotion/is-prop-valid": "^1.2.2",
"@emotion/react": "^11.11.4",
- "@emotion/serialize": "^1.1.3",
- "@emotion/styled": "^11.11.0",
+ "@emotion/serialize": "^1.1.4",
+ "@emotion/styled": "^11.11.5",
"@mui/system": "workspace:^",
"@wyw-in-js/processor-utils": "^0.5.0",
"@wyw-in-js/shared": "^0.5.0",
@@ -53,19 +53,20 @@
"stylis-plugin-rtl": "^2.1.1"
},
"devDependencies": {
- "@babel/plugin-syntax-jsx": "^7.23.3",
+ "@babel/plugin-syntax-jsx": "^7.24.1",
"@types/babel__core": "^7.20.5",
"@types/babel__helper-module-imports": "^7.18.3",
"@types/babel__helper-plugin-utils": "^7.10.3",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/cssesc": "^3.0.2",
"@types/lodash": "^4.17.0",
"@types/mocha": "^10.0.6",
- "@types/node": "^18.19.25",
+ "@types/node": "^18.19.31",
"@types/react": "^18.2.55",
"@types/stylis": "^4.2.5",
"chai": "^4.4.1",
"prettier": "^3.2.5",
+ "prop-types": "^15.8.1",
"react": "^18.2.0"
},
"peerDependencies": {
@@ -126,26 +127,8 @@
"require": "./utils/index.js",
"default": "./utils/index.js"
},
- "./exports/generateAtomics": {
- "default": "./exports/generateAtomics.js"
- },
- "./exports/keyframes": {
- "default": "./exports/keyframes.js"
- },
- "./exports/styled": {
- "default": "./exports/styled.js"
- },
- "./exports/sx-plugin": {
- "default": "./exports/sx-plugin.js"
- },
- "./exports/remove-prop-types-plugin": {
- "default": "./exports/remove-prop-types-plugin.js"
- },
- "./exports/sx": {
- "default": "./exports/sx.js"
- },
- "./exports/createUseThemeProps": {
- "default": "./exports/createUseThemeProps.js"
+ "./exports/*": {
+ "default": "./exports/*.js"
},
"./Box": {
"types": "./build/Box.d.ts",
@@ -164,6 +147,15 @@
},
"require": "./build/RtlProvider.js",
"default": "./build/RtlProvider.js"
+ },
+ "./private-runtime": {
+ "types": "./private-runtime/index.d.ts",
+ "import": {
+ "types": "./private-runtime/index.d.mts",
+ "default": "./private-runtime/index.mjs"
+ },
+ "require": "./private-runtime/index.js",
+ "default": "./private-runtime/index.js"
}
},
"nx": {
diff --git a/packages/pigment-css-react/src/Box.d.ts b/packages/pigment-css-react/src/Box.d.ts
index 8cfb27534aa6d4..0fe8b89db82c79 100644
--- a/packages/pigment-css-react/src/Box.d.ts
+++ b/packages/pigment-css-react/src/Box.d.ts
@@ -23,4 +23,4 @@ export interface PolymorphicComponent
declare const Box: PolymorphicComponent<{}>;
-export { Box };
+export default Box;
diff --git a/packages/pigment-css-react/src/Box.jsx b/packages/pigment-css-react/src/Box.jsx
index 235cb67cf10210..de32424c204c3b 100644
--- a/packages/pigment-css-react/src/Box.jsx
+++ b/packages/pigment-css-react/src/Box.jsx
@@ -1,7 +1,7 @@
/* eslint-disable react/prop-types */
import * as React from 'react';
-export const Box = React.forwardRef(
+const Box = React.forwardRef(
(
{
as = 'div',
@@ -50,3 +50,5 @@ export const Box = React.forwardRef(
return ;
},
);
+
+export default Box;
diff --git a/packages/pigment-css-react/src/private-runtime/ForwardSx.js b/packages/pigment-css-react/src/private-runtime/ForwardSx.js
new file mode 100644
index 00000000000000..2201ae8a94936c
--- /dev/null
+++ b/packages/pigment-css-react/src/private-runtime/ForwardSx.js
@@ -0,0 +1,32 @@
+import * as React from 'react';
+import clsx from 'clsx';
+
+function useSx(sx, className, style) {
+ const sxClass = typeof sx === 'string' ? sx : sx?.className;
+ const sxVars = sx && typeof sx !== 'string' ? sx.vars : undefined;
+ const varStyles = {};
+
+ if (sxVars) {
+ Object.entries(sxVars).forEach(([cssVariable, [value, isUnitLess]]) => {
+ if (typeof value === 'string' || isUnitLess) {
+ varStyles[`--${cssVariable}`] = value;
+ } else {
+ varStyles[`--${cssVariable}`] = `${value}px`;
+ }
+ });
+ }
+
+ return {
+ className: clsx(sxClass, className),
+ style: {
+ ...varStyles,
+ ...style,
+ },
+ };
+}
+
+/* eslint-disable-next-line react/prop-types */
+export const ForwardSx = React.forwardRef(({ sx, sxComponent, className, style, ...rest }, ref) => {
+ const Component = sxComponent;
+ return ;
+});
diff --git a/packages/pigment-css-react/src/private-runtime/index.ts b/packages/pigment-css-react/src/private-runtime/index.ts
new file mode 100644
index 00000000000000..b8e8215a9be903
--- /dev/null
+++ b/packages/pigment-css-react/src/private-runtime/index.ts
@@ -0,0 +1 @@
+export * from './ForwardSx';
diff --git a/packages/pigment-css-react/src/processors/sx.ts b/packages/pigment-css-react/src/processors/sx.ts
index b0293aa8c58f93..141c470ed8c1ae 100644
--- a/packages/pigment-css-react/src/processors/sx.ts
+++ b/packages/pigment-css-react/src/processors/sx.ts
@@ -11,6 +11,31 @@ import { processCssObject } from '../utils/processCssObject';
import { cssFnValueToVariable } from '../utils/cssFnValueToVariable';
import BaseProcessor from './base-processor';
+// @TODO: Maybe figure out a better way allow imports.
+const allowedSxTransformImports = [`${process.env.PACKAGE_NAME}/Box`];
+
+/**
+ * Specifically looks for whether the sx prop should be transformed or not.
+ * If it's a Pigment CSS styled component, the value of `argumentValue` will
+ * be a string className starting with "."
+ * In other cases, it explicitly checks if the import is allowed for sx transformation.
+ */
+function allowSxTransform(argumentExpression: ExpressionValue, argumentValue?: string) {
+ if (!argumentExpression) {
+ return false;
+ }
+ if (
+ argumentExpression.kind === ValueType.LAZY &&
+ argumentExpression.importedFrom?.some((i) => allowedSxTransformImports.includes(i))
+ ) {
+ return true;
+ }
+ if (argumentValue && argumentValue[0] === '.') {
+ return true;
+ }
+ return false;
+}
+
export class SxProcessor extends BaseProcessor {
sxArguments: ExpressionValue[] = [];
@@ -41,7 +66,7 @@ export class SxProcessor extends BaseProcessor {
}
}
- if (!this.elementClassName || this.elementClassName[0] !== '.') {
+ if (!allowSxTransform(elementClassExpression, this.elementClassName)) {
return;
}
@@ -95,7 +120,7 @@ export class SxProcessor extends BaseProcessor {
doRuntimeReplacement() {
const t = this.astService;
// do not replace if sx prop is not a Pigment styled component
- if (!this.elementClassName) {
+ if (this.artifacts.length === 0) {
return;
}
if (this.collectedVariables.length) {
diff --git a/packages/pigment-css-react/src/utils/pre-linaria-plugin.ts b/packages/pigment-css-react/src/utils/pre-linaria-plugin.ts
deleted file mode 100644
index 22503a07aaa879..00000000000000
--- a/packages/pigment-css-react/src/utils/pre-linaria-plugin.ts
+++ /dev/null
@@ -1,82 +0,0 @@
-import { addNamed } from '@babel/helper-module-imports';
-import { declare } from '@babel/helper-plugin-utils';
-import { NodePath } from '@babel/core';
-import * as Types from '@babel/types';
-import { sxPropConverter } from './sxPropConverter';
-
-function replaceNodePath(
- expressionPath: NodePath,
- namePath: NodePath,
- importName: string,
- t: typeof Types,
- tagName: NodePath,
-) {
- const sxIdentifier = addNamed(namePath, importName, process.env.PACKAGE_NAME as string);
-
- const wrapWithSxCall = (expPath: NodePath) => {
- expPath.replaceWith(
- t.callExpression(sxIdentifier, [expPath.node, t.identifier(tagName.node.name)]),
- );
- };
-
- sxPropConverter(expressionPath, wrapWithSxCall);
-}
-
-export const babelPlugin = declare<{ propName?: string; importName?: string }>(
- (api, { propName = 'sx', importName = 'sx' }) => {
- api.assertVersion(7);
- const { types: t } = api;
- return {
- name: '@pigmentcss/sx-plugin',
- visitor: {
- JSXAttribute(path) {
- const namePath = path.get('name');
- const openingElement = path.findParent((p) => p.isJSXOpeningElement());
- if (
- !openingElement ||
- !openingElement.isJSXOpeningElement() ||
- !namePath.isJSXIdentifier() ||
- namePath.node.name !== propName
- ) {
- return;
- }
- const tagName = openingElement.get('name');
- if (!tagName.isJSXIdentifier()) {
- return;
- }
- const valuePath = path.get('value');
- if (!valuePath.isJSXExpressionContainer()) {
- return;
- }
- const expressionPath = valuePath.get('expression');
- if (!expressionPath.isExpression()) {
- return;
- }
- replaceNodePath(expressionPath, namePath, importName, t, tagName);
- },
- ObjectProperty(path) {
- // @TODO - Maybe add support for React.createElement calls as well.
- // Right now, it only checks for jsx(),jsxs(),jsxDEV() and jsxsDEV() calls.
- const keyPath = path.get('key');
- if (!keyPath.isIdentifier() || keyPath.node.name !== propName) {
- return;
- }
- const valuePath = path.get('value');
- if (!valuePath.isObjectExpression() && !valuePath.isArrowFunctionExpression()) {
- return;
- }
- const parentJsxCall = path.findParent((p) => p.isCallExpression());
- if (!parentJsxCall || !parentJsxCall.isCallExpression()) {
- return;
- }
- const callee = parentJsxCall.get('callee');
- if (!callee.isIdentifier() || !callee.node.name.includes('jsx')) {
- return;
- }
- const jsxElement = parentJsxCall.get('arguments')[0] as NodePath;
- replaceNodePath(valuePath, keyPath, importName, t, jsxElement);
- },
- },
- };
- },
-);
diff --git a/packages/pigment-css-react/src/utils/remove-prop-types-plugin.ts b/packages/pigment-css-react/src/utils/remove-prop-types-plugin.ts
index 703fe989b249a9..de48af2ae2d0ba 100644
--- a/packages/pigment-css-react/src/utils/remove-prop-types-plugin.ts
+++ b/packages/pigment-css-react/src/utils/remove-prop-types-plugin.ts
@@ -11,11 +11,15 @@ export const removePropTypesPlugin = declare<{}>((api) => {
return;
}
const property = left.get('property');
- if (!property.isIdentifier({ name: 'propTypes' })) {
+ const isPropTypes = property.isIdentifier({ name: 'propTypes' });
+ const isMuiName = property.isIdentifier({ name: 'muiName' });
+
+ if (!isPropTypes && !isMuiName) {
return;
}
- if (path.parentPath.isExpressionStatement()) {
- path.parentPath.remove();
+ const parentExpression = path.findParent((p) => p.isExpressionStatement());
+ if (parentExpression) {
+ parentExpression.remove();
}
},
},
diff --git a/packages/pigment-css-react/src/utils/sx-plugin.ts b/packages/pigment-css-react/src/utils/sx-plugin.ts
new file mode 100644
index 00000000000000..4265dcfb77ae33
--- /dev/null
+++ b/packages/pigment-css-react/src/utils/sx-plugin.ts
@@ -0,0 +1,166 @@
+import { addNamed } from '@babel/helper-module-imports';
+import { declare } from '@babel/helper-plugin-utils';
+import { NodePath } from '@babel/core';
+import * as Types from '@babel/types';
+
+import { sxPropConverter } from './sxPropConverter';
+
+function convertJsxMemberExpressionToMemberExpression(
+ t: typeof Types,
+ nodePath: NodePath,
+): Types.MemberExpression {
+ const object = nodePath.get('object');
+ const property = nodePath.get('property');
+
+ if (object.isJSXMemberExpression()) {
+ return t.memberExpression(
+ convertJsxMemberExpressionToMemberExpression(t, object),
+ t.identifier(property.node.name),
+ );
+ }
+ return t.memberExpression(
+ t.identifier((object.node as Types.JSXIdentifier).name),
+ t.identifier(property.node.name),
+ );
+}
+
+function wrapWithSxComponent(
+ t: typeof Types,
+ tagNamePath: NodePath,
+ sxComponentName: string,
+) {
+ const sxComponent = addNamed(
+ tagNamePath,
+ sxComponentName,
+ `${process.env.PACKAGE_NAME}/private-runtime`,
+ );
+ const jsxElement = tagNamePath.findParent((p) => p.isJSXElement());
+ if (!jsxElement?.isJSXElement()) {
+ return;
+ }
+ const component = t.jsxIdentifier(sxComponent.name);
+
+ const newChildren = (jsxElement.get('children') ?? []).map((child) => child.node);
+ let sxComponentValue: Types.Identifier | Types.MemberExpression | null = null;
+
+ if (tagNamePath.isJSXIdentifier()) {
+ sxComponentValue = t.identifier(tagNamePath.node.name);
+ } else if (tagNamePath.isJSXMemberExpression()) {
+ sxComponentValue = convertJsxMemberExpressionToMemberExpression(t, tagNamePath);
+ }
+
+ const newElement = t.jsxElement(
+ t.jsxOpeningElement(
+ component,
+ [
+ t.jsxAttribute(
+ t.jsxIdentifier('sxComponent'),
+ t.jsxExpressionContainer(sxComponentValue ?? t.nullLiteral()),
+ ),
+ ...jsxElement
+ .get('openingElement')
+ .get('attributes')
+ .map((attr) => attr.node),
+ ],
+ !newChildren.length,
+ ),
+ newChildren.length ? t.jsxClosingElement(component) : null,
+ newChildren,
+ !newChildren.length,
+ );
+ jsxElement.replaceWith(newElement);
+}
+
+function replaceNodePath(
+ expressionPath: NodePath,
+ namePath: NodePath,
+ importName: string,
+ t: typeof Types,
+ tagNamePath: NodePath<
+ Types.JSXIdentifier | Types.Identifier | Types.JSXMemberExpression | Types.MemberExpression
+ >,
+ sxComponentName: string,
+) {
+ const sxIdentifier = addNamed(namePath, importName, process.env.PACKAGE_NAME as string);
+ let wasSxTransformed = false;
+
+ const wrapWithSxCall = (expPath: NodePath) => {
+ let tagNameArg: Types.Identifier | Types.MemberExpression | null = null;
+ if (tagNamePath.isJSXIdentifier()) {
+ tagNameArg = t.identifier(tagNamePath.node.name);
+ } else if (tagNamePath.isJSXMemberExpression()) {
+ tagNameArg = convertJsxMemberExpressionToMemberExpression(t, tagNamePath);
+ } else {
+ tagNameArg = tagNamePath.node as Types.Identifier | Types.MemberExpression;
+ }
+ expPath.replaceWith(t.callExpression(sxIdentifier, [expPath.node, tagNameArg]));
+ wasSxTransformed = true;
+ };
+
+ sxPropConverter(expressionPath, wrapWithSxCall);
+
+ if (wasSxTransformed) {
+ if (tagNamePath.isJSXIdentifier() || tagNamePath.isJSXMemberExpression()) {
+ wrapWithSxComponent(t, tagNamePath, sxComponentName);
+ }
+ }
+}
+
+export const babelPlugin = declare<{
+ propName?: string;
+ importName?: string;
+ sxComponentName?: string;
+}>((api, { propName = 'sx', importName = 'sx', sxComponentName = 'ForwardSx' }) => {
+ api.assertVersion(7);
+ const { types: t } = api;
+ return {
+ name: '@pigmentcss/sx-plugin',
+ visitor: {
+ JSXAttribute(path) {
+ const namePath = path.get('name');
+ const openingElement = path.findParent((p) => p.isJSXOpeningElement());
+ if (
+ !openingElement ||
+ !openingElement.isJSXOpeningElement() ||
+ !namePath.isJSXIdentifier() ||
+ namePath.node.name !== propName
+ ) {
+ return;
+ }
+ const tagName = openingElement.get('name');
+ const valuePath = path.get('value');
+ if (!valuePath.isJSXExpressionContainer()) {
+ return;
+ }
+ const expressionPath = valuePath.get('expression');
+ if (!expressionPath.isExpression()) {
+ return;
+ }
+ // @ts-ignore
+ replaceNodePath(expressionPath, namePath, importName, t, tagName, sxComponentName);
+ },
+ ObjectProperty(path) {
+ // @TODO - Maybe add support for React.createElement calls as well.
+ // Right now, it only checks for jsx(),jsxs(),jsxDEV() and jsxsDEV() calls.
+ const keyPath = path.get('key');
+ if (!keyPath.isIdentifier() || keyPath.node.name !== propName) {
+ return;
+ }
+ const valuePath = path.get('value');
+ if (!valuePath.isObjectExpression() && !valuePath.isArrowFunctionExpression()) {
+ return;
+ }
+ const parentJsxCall = path.findParent((p) => p.isCallExpression());
+ if (!parentJsxCall || !parentJsxCall.isCallExpression()) {
+ return;
+ }
+ const callee = parentJsxCall.get('callee');
+ if (!callee.isIdentifier() || !callee.node.name.includes('jsx')) {
+ return;
+ }
+ const jsxElement = parentJsxCall.get('arguments')[0] as NodePath;
+ replaceNodePath(valuePath, keyPath, importName, t, jsxElement, sxComponentName);
+ },
+ },
+ };
+});
diff --git a/packages/pigment-css-react/tests/Box/box.test.tsx b/packages/pigment-css-react/tests/Box/box.test.tsx
new file mode 100644
index 00000000000000..a5a33298b875b4
--- /dev/null
+++ b/packages/pigment-css-react/tests/Box/box.test.tsx
@@ -0,0 +1,13 @@
+import path from 'node:path';
+import { runTransformation, expect } from '../testUtils';
+
+describe('Pigment CSS - Box', () => {
+ it('should transform and render sx prop', async () => {
+ const { output, fixture } = await runTransformation(
+ path.join(__dirname, 'fixtures/box.input.js'),
+ );
+
+ expect(output.js).to.equal(fixture.js);
+ expect(output.css).to.equal(fixture.css);
+ });
+});
diff --git a/packages/pigment-css-react/tests/Box/fixtures/box.input.js b/packages/pigment-css-react/tests/Box/fixtures/box.input.js
new file mode 100644
index 00000000000000..b8548e7690dc31
--- /dev/null
+++ b/packages/pigment-css-react/tests/Box/fixtures/box.input.js
@@ -0,0 +1,20 @@
+import Box from '@pigment-css/react/Box';
+
+export function App() {
+ return (
+
+ Hello Box
+
+ );
+}
diff --git a/packages/pigment-css-react/tests/Box/fixtures/box.output.css b/packages/pigment-css-react/tests/Box/fixtures/box.output.css
new file mode 100644
index 00000000000000..eb1554a5a0285f
--- /dev/null
+++ b/packages/pigment-css-react/tests/Box/fixtures/box.output.css
@@ -0,0 +1,9 @@
+._1yemdgw {
+ margin: 0;
+ margin-block: 1rem;
+ padding: 0;
+ padding-left: 1.5rem;
+ display: flex;
+ flex-direction: column;
+ gap: 0.5rem;
+}
diff --git a/packages/pigment-css-react/tests/Box/fixtures/box.output.js b/packages/pigment-css-react/tests/Box/fixtures/box.output.js
new file mode 100644
index 00000000000000..4f231e1a80fc4d
--- /dev/null
+++ b/packages/pigment-css-react/tests/Box/fixtures/box.output.js
@@ -0,0 +1,10 @@
+import { sx as _sx2 } from '@pigment-css/react';
+import { ForwardSx as _ForwardSx } from '@pigment-css/react/private-runtime';
+import Box from '@pigment-css/react/Box';
+export function App() {
+ return (
+ <_ForwardSx sxComponent={Box} as="ul" sx={'_1yemdgw'}>
+ Hello Box
+
+ );
+}
diff --git a/packages/pigment-css-react/tests/styled/fixtures/styled-theme.input.js b/packages/pigment-css-react/tests/styled/fixtures/styled-theme.input.js
index 909306c646fd71..d06b7864ff96d4 100644
--- a/packages/pigment-css-react/tests/styled/fixtures/styled-theme.input.js
+++ b/packages/pigment-css-react/tests/styled/fixtures/styled-theme.input.js
@@ -1,4 +1,5 @@
import { styled, keyframes } from '@pigment-css/react';
+import PropTypes from 'prop-types';
const rotateKeyframe = keyframes({
from: {
@@ -34,3 +35,20 @@ const SliderRail2 = styled.span`
display: none;
}
`;
+
+export function App() {
+ return (
+
+
+
+
+ );
+}
+
+process.env.NODE_ENV !== 'production'
+ ? (App.propTypes = {
+ children: PropTypes.element,
+ })
+ : void 0;
+
+process.env.NODE_ENV !== 'production' ? (App.muiName = 'App') : void 0;
diff --git a/packages/pigment-css-react/tests/styled/fixtures/styled-theme.output.js b/packages/pigment-css-react/tests/styled/fixtures/styled-theme.output.js
index dab3d187f4b191..3e3eae8b2f3244 100644
--- a/packages/pigment-css-react/tests/styled/fixtures/styled-theme.output.js
+++ b/packages/pigment-css-react/tests/styled/fixtures/styled-theme.output.js
@@ -1,8 +1,29 @@
import { styled as _styled, styled as _styled2, styled as _styled3 } from '@pigment-css/react';
import _theme from '@pigment-css/react/theme';
+import PropTypes from 'prop-types';
const Component = /*#__PURE__*/ _styled('div')({
classes: ['c1h7nuob'],
});
+const SliderRail = /*#__PURE__*/ _styled2('span', {
+ name: 'MuiSlider',
+ slot: 'Rail',
+})({
+ classes: ['s13xim6i', 's13xim6i-1'],
+});
const SliderRail2 = /*#__PURE__*/ _styled3('span')({
classes: ['s1emg10t'],
});
+export function App() {
+ return (
+
+
+
+
+ );
+}
+process.env.NODE_ENV !== 'production'
+ ? (App.propTypes = {
+ children: PropTypes.element,
+ })
+ : void 0;
+process.env.NODE_ENV !== 'production' ? (App.muiName = 'App') : void 0;
diff --git a/packages/pigment-css-react/tests/styled/fixtures/styled.input.js b/packages/pigment-css-react/tests/styled/fixtures/styled.input.js
index 92126ff9efa283..355ba897b1d1f4 100644
--- a/packages/pigment-css-react/tests/styled/fixtures/styled.input.js
+++ b/packages/pigment-css-react/tests/styled/fixtures/styled.input.js
@@ -1,4 +1,5 @@
import { styled, keyframes } from '@pigment-css/react';
+import PropTypes from 'prop-types';
const rotateKeyframe = keyframes({
from: {
@@ -32,3 +33,18 @@ const SliderRail2 = styled.span`
display: none;
}
`;
+
+export function App() {
+ return (
+
+
+
+
+ );
+}
+
+App.propTypes = {
+ children: PropTypes.element,
+};
+
+App.muiName = 'App';
diff --git a/packages/pigment-css-react/tests/styled/fixtures/styled.output.js b/packages/pigment-css-react/tests/styled/fixtures/styled.output.js
index c57ec6223df072..5ae7640121516f 100644
--- a/packages/pigment-css-react/tests/styled/fixtures/styled.output.js
+++ b/packages/pigment-css-react/tests/styled/fixtures/styled.output.js
@@ -1,5 +1,6 @@
import { styled as _styled, styled as _styled2, styled as _styled3 } from '@pigment-css/react';
import _theme from '@pigment-css/react/theme';
+import PropTypes from 'prop-types';
const Component = /*#__PURE__*/ _styled('div')({
classes: ['c1aiqtje'],
});
@@ -12,3 +13,15 @@ export const SliderRail = /*#__PURE__*/ _styled2('span', {
const SliderRail2 = /*#__PURE__*/ _styled3('span')({
classes: ['shdkmm7'],
});
+export function App() {
+ return (
+
+
+
+
+ );
+}
+App.propTypes = {
+ children: PropTypes.element,
+};
+App.muiName = 'App';
diff --git a/packages/pigment-css-react/tests/sx/fixtures/sxProps.output.css b/packages/pigment-css-react/tests/sx/fixtures/sxProps.output.css
index c7f2c2d52a85d5..6d7384b2e1627f 100644
--- a/packages/pigment-css-react/tests/sx/fixtures/sxProps.output.css
+++ b/packages/pigment-css-react/tests/sx/fixtures/sxProps.output.css
@@ -9,20 +9,20 @@
.sjfloo5-1 {
font-size: 3rem;
}
-.sjfloo5.s1o8xp19 {
+.sjfloo5._1o8xp19 {
color: red;
}
-.sjfloo5.s1xbsywq {
- color: var(--s1xbsywq-0);
+.sjfloo5._1xbsywq {
+ color: var(--_1xbsywq-0);
}
-.sjfloo5.s1wnk6s5 {
+.sjfloo5._1wnk6s5 {
background-color: blue;
color: white;
}
-.sjfloo5.stzaibv {
- color: var(--stzaibv-0);
+.sjfloo5._tzaibv {
+ color: var(--_tzaibv-0);
}
-.sjfloo5.sazg8ol {
+.sjfloo5._azg8ol {
margin-bottom: 8px;
text-align: center;
}
diff --git a/packages/pigment-css-react/tests/sx/fixtures/sxProps.output.js b/packages/pigment-css-react/tests/sx/fixtures/sxProps.output.js
index 1f60cb6e1b5aa9..5aefa5d93cda52 100644
--- a/packages/pigment-css-react/tests/sx/fixtures/sxProps.output.js
+++ b/packages/pigment-css-react/tests/sx/fixtures/sxProps.output.js
@@ -1,4 +1,11 @@
-import { styled as _styled } from '@pigment-css/react';
+import { sx as _sx8, styled as _styled } from '@pigment-css/react';
+import { ForwardSx as _ForwardSx4 } from '@pigment-css/react/private-runtime';
+import { sx as _sx6 } from '@pigment-css/react';
+import { ForwardSx as _ForwardSx3 } from '@pigment-css/react/private-runtime';
+import { sx as _sx4 } from '@pigment-css/react';
+import { ForwardSx as _ForwardSx2 } from '@pigment-css/react/private-runtime';
+import { sx as _sx2 } from '@pigment-css/react';
+import { ForwardSx as _ForwardSx } from '@pigment-css/react/private-runtime';
export const SliderRail = /*#__PURE__*/ _styled('span', {
name: 'MuiSlider',
slot: 'Rail',
@@ -6,32 +13,34 @@ export const SliderRail = /*#__PURE__*/ _styled('span', {
classes: ['sjfloo5', 'sjfloo5-1'],
});
function App() {
- return ;
+ return <_ForwardSx sxComponent={SliderRail} sx={'_1o8xp19'} />;
}
function App2(props) {
return (
-
);
}
function App3(props) {
return (
- ;
+ return <_ForwardSx4 sxComponent={SliderRail} sx={'_azg8ol'} />;
}
diff --git a/packages/pigment-css-react/tests/sx/fixtures/sxProps2.input.js b/packages/pigment-css-react/tests/sx/fixtures/sxProps2.input.js
index 6835baeca846d9..34370216509ab8 100644
--- a/packages/pigment-css-react/tests/sx/fixtures/sxProps2.input.js
+++ b/packages/pigment-css-react/tests/sx/fixtures/sxProps2.input.js
@@ -16,6 +16,10 @@ const SliderRail = styled('span', {
font-size: ${({ theme }) => (theme.vars ?? theme).size.font.h1};
`;
+const A = {
+ SliderRail,
+};
+
function App(props) {
return (
({
color: (theme.vars || theme).palette.primary.main,
fontSize: props.isRed ? 'h1-fontSize' : 'h2-fontSize',
diff --git a/packages/pigment-css-react/tests/sx/fixtures/sxProps2.output.css b/packages/pigment-css-react/tests/sx/fixtures/sxProps2.output.css
index 55afb9b4d87acc..90b60e9eba1a27 100644
--- a/packages/pigment-css-react/tests/sx/fixtures/sxProps2.output.css
+++ b/packages/pigment-css-react/tests/sx/fixtures/sxProps2.output.css
@@ -9,38 +9,38 @@
.sdbmcs3-1 {
font-size: 3rem;
}
-.sdbmcs3.si7ulc4 {
+.sdbmcs3._i7ulc4 {
margin-bottom: 8px;
}
@media (prefers-color-scheme: dark) {
- .sdbmcs3.si7ulc4 {
+ .sdbmcs3._i7ulc4 {
color: white;
}
}
-.sdbmcs3.sliig2s {
+.sdbmcs3._liig2s {
border-radius: 8px;
margin: 5px;
}
-.sdbmcs3.sliig2s.MuiAutocomplete-option {
+.sdbmcs3._liig2s.MuiAutocomplete-option {
padding: 8px;
}
-.sdbmcs3.so956n {
+.sdbmcs3._o956n {
color: red;
- font-size: var(--so956n-0);
+ font-size: var(--_o956n-0);
}
@media (min-width: 0px) {
- .sdbmcs3.so956n :hover {
+ .sdbmcs3._o956n :hover {
background-color: red;
}
}
@media (min-width: 600px) {
- .sdbmcs3.so956n :hover {
+ .sdbmcs3._o956n :hover {
background-color: blue;
color: red;
}
}
@media (min-width: 900px) {
- .sdbmcs3.so956n :hover {
+ .sdbmcs3._o956n :hover {
color: blue;
}
}
diff --git a/packages/pigment-css-react/tests/sx/fixtures/sxProps2.output.js b/packages/pigment-css-react/tests/sx/fixtures/sxProps2.output.js
index 39a69d867ec8b3..7c8a5ca1d23900 100644
--- a/packages/pigment-css-react/tests/sx/fixtures/sxProps2.output.js
+++ b/packages/pigment-css-react/tests/sx/fixtures/sxProps2.output.js
@@ -1,23 +1,32 @@
-import { styled as _styled } from '@pigment-css/react';
+import { sx as _sx6, styled as _styled } from '@pigment-css/react';
+import { ForwardSx as _ForwardSx3 } from '@pigment-css/react/private-runtime';
+import { sx as _sx4 } from '@pigment-css/react';
+import { ForwardSx as _ForwardSx2 } from '@pigment-css/react/private-runtime';
+import { sx as _sx2 } from '@pigment-css/react';
+import { ForwardSx as _ForwardSx } from '@pigment-css/react/private-runtime';
const SliderRail = /*#__PURE__*/ _styled('span', {
name: 'MuiSlider',
slot: 'Rail',
})({
classes: ['sdbmcs3', 'sdbmcs3-1'],
});
+const A = {
+ SliderRail,
+};
function App(props) {
- return ;
+ return <_ForwardSx sxComponent={SliderRail} sx={'_i7ulc4'} />;
}
function App2() {
- return ;
+ return <_ForwardSx2 sxComponent={SliderRail} sx={'_liig2s'} component="li" {...props} />;
}
function App3(props) {
return (
-
diff --git a/packages/pigment-css-react/tests/testUtils.ts b/packages/pigment-css-react/tests/testUtils.ts
index 66008fc628f609..fd7db17ced5380 100644
--- a/packages/pigment-css-react/tests/testUtils.ts
+++ b/packages/pigment-css-react/tests/testUtils.ts
@@ -51,7 +51,10 @@ export async function runTransformation(
babelrc: false,
plugins: ['@babel/plugin-syntax-jsx'],
},
- tagResolver(_source: string, tag: string) {
+ tagResolver(source: string, tag: string) {
+ if (source !== '@pigment-css/react') {
+ return null;
+ }
return require.resolve(`../exports/${tag}`);
},
};
diff --git a/packages/pigment-css-react/tests/theme/fixtures/themed-component.input.js b/packages/pigment-css-react/tests/theme/fixtures/themed-component.input.js
new file mode 100644
index 00000000000000..b162403d9824e6
--- /dev/null
+++ b/packages/pigment-css-react/tests/theme/fixtures/themed-component.input.js
@@ -0,0 +1,53 @@
+import * as React from 'react';
+import { styled } from '@pigment-css/react';
+
+const StatRoot = styled('div', {
+ name: 'PigmentStat', // The component name
+ slot: 'root', // The slot name
+})(({ theme }) => ({
+ display: 'flex',
+ flexDirection: 'column',
+ gap: '1rem',
+ padding: '0.75rem 1rem',
+ backgroundColor: theme.colors.primary.background,
+ borderRadius: theme.radius.xs,
+ boxShadow: theme.shadow.sm,
+ letterSpacing: '-0.025em',
+ fontWeight: 600,
+ variants: [
+ {
+ props: { variant: 'outlined' },
+ style: {
+ border: `2px solid #e9e9e9`,
+ },
+ },
+ ],
+}));
+
+const StatValue = styled('div', {
+ name: 'PigmentStat',
+ slot: 'value',
+})(({ theme }) => ({
+ ...theme.typography.h3,
+}));
+
+const StatUnit = styled('div', {
+ name: 'PigmentStat',
+ slot: 'unit',
+})(({ theme }) => ({
+ ...theme.typography.body2,
+ color: theme.colors.neutral.foreground,
+}));
+
+const Stat = React.forwardRef(function Stat(props, ref) {
+ const { value, unit, ...other } = props;
+
+ return (
+
+ {value}
+ {unit}
+
+ );
+});
+
+export default Stat;
diff --git a/packages/pigment-css-react/tests/theme/fixtures/themed-component.output.css b/packages/pigment-css-react/tests/theme/fixtures/themed-component.output.css
new file mode 100644
index 00000000000000..78a83f48768ee9
--- /dev/null
+++ b/packages/pigment-css-react/tests/theme/fixtures/themed-component.output.css
@@ -0,0 +1,21 @@
+.si9gu6v {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ padding: 0.75rem 1rem;
+ background-color: #ebf5ff;
+ border-radius: 0.25rem;
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
+ letter-spacing: -0.025em;
+ font-weight: 600;
+}
+.si9gu6v-1 {
+ border: 2px solid #e9e9e9;
+}
+.sbfbm5t {
+ font-size: 2rem;
+}
+.s1xscf0o {
+ font-size: 1rem;
+ color: #6f7f95;
+}
diff --git a/packages/pigment-css-react/tests/theme/fixtures/themed-component.output.js b/packages/pigment-css-react/tests/theme/fixtures/themed-component.output.js
new file mode 100644
index 00000000000000..98cafa341251ad
--- /dev/null
+++ b/packages/pigment-css-react/tests/theme/fixtures/themed-component.output.js
@@ -0,0 +1,44 @@
+import { styled as _styled3 } from '@pigment-css/react';
+import _theme3 from '@pigment-css/react/theme';
+import { styled as _styled2 } from '@pigment-css/react';
+import _theme2 from '@pigment-css/react/theme';
+import { styled as _styled } from '@pigment-css/react';
+import _theme from '@pigment-css/react/theme';
+import * as React from 'react';
+const StatRoot = /*#__PURE__*/ _styled('div', {
+ name: 'PigmentStat',
+ // The component name
+ slot: 'root', // The slot name
+})({
+ classes: ['si9gu6v'],
+ variants: [
+ {
+ props: {
+ variant: 'outlined',
+ },
+ className: 'si9gu6v-1',
+ },
+ ],
+});
+const StatValue = /*#__PURE__*/ _styled2('div', {
+ name: 'PigmentStat',
+ slot: 'value',
+})({
+ classes: ['sbfbm5t'],
+});
+const StatUnit = /*#__PURE__*/ _styled3('div', {
+ name: 'PigmentStat',
+ slot: 'unit',
+})({
+ classes: ['s1xscf0o'],
+});
+const Stat = React.forwardRef(function Stat(props, ref) {
+ const { value, unit, ...other } = props;
+ return (
+
+ {value}
+ {unit}
+
+ );
+});
+export default Stat;
diff --git a/packages/pigment-css-react/tests/theme/theme.test.ts b/packages/pigment-css-react/tests/theme/theme.test.ts
new file mode 100644
index 00000000000000..02f71def92da8f
--- /dev/null
+++ b/packages/pigment-css-react/tests/theme/theme.test.ts
@@ -0,0 +1,65 @@
+import path from 'node:path';
+import { runTransformation, expect } from '../testUtils';
+
+describe('Pigment CSS - theme', () => {
+ it('should work with theme', async () => {
+ const { output, fixture } = await runTransformation(
+ path.join(__dirname, 'fixtures/themed-component.input.js'),
+ {
+ themeArgs: {
+ theme: {
+ colors: {
+ primary: {
+ background: '#EBF5FF',
+ foreground: '#003A75',
+ },
+ neutral: {
+ background: '#F3F6F9',
+ foreground: '#6F7F95',
+ },
+ },
+ radius: {
+ xs: '0.25rem',
+ },
+ shadow: {
+ sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
+ },
+ typography: {
+ h3: {
+ fontSize: '2rem',
+ },
+ body2: {
+ fontSize: '1rem',
+ },
+ },
+ components: {
+ MuiStat: {
+ styleOverrides: {
+ root: ({ theme }) => ({
+ variants: [
+ {
+ props: { variant: 'outlined' },
+ style: {
+ borderColor: theme.colors.primary.background,
+ },
+ },
+ ],
+ }),
+ title: {
+ letterSpacing: '0.1rem',
+ },
+ value: {
+ lineHeight: 1.7,
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ );
+
+ expect(output.js).to.equal(fixture.js);
+ expect(output.css).to.equal(fixture.css);
+ });
+});
diff --git a/packages/pigment-css-react/tsup.config.ts b/packages/pigment-css-react/tsup.config.ts
index 1d29f3b572e390..fe170a407cde54 100644
--- a/packages/pigment-css-react/tsup.config.ts
+++ b/packages/pigment-css-react/tsup.config.ts
@@ -26,9 +26,14 @@ export default defineConfig([
...baseConfig,
entry: [
'./src/utils/index.ts',
- './src/utils/pre-linaria-plugin.ts',
+ './src/utils/sx-plugin.ts',
'./src/utils/remove-prop-types-plugin.ts',
],
outDir: 'utils',
},
+ {
+ ...baseConfig,
+ entry: ['./src/private-runtime/index.ts'],
+ outDir: 'private-runtime',
+ },
]);
diff --git a/packages/pigment-css-unplugin/.eslintrc b/packages/pigment-css-unplugin/.eslintrc
new file mode 100644
index 00000000000000..5abd34a395bc37
--- /dev/null
+++ b/packages/pigment-css-unplugin/.eslintrc
@@ -0,0 +1,5 @@
+{
+ "rules": {
+ "import/prefer-default-export": "off"
+ }
+}
diff --git a/packages/pigment-css-unplugin/package.json b/packages/pigment-css-unplugin/package.json
index 9dff04d1e21d7f..ecddb0af7ccd3e 100644
--- a/packages/pigment-css-unplugin/package.json
+++ b/packages/pigment-css-unplugin/package.json
@@ -1,6 +1,6 @@
{
"name": "@pigment-css/unplugin",
- "version": "0.0.4",
+ "version": "0.0.6",
"main": "build/index.js",
"module": "build/index.mjs",
"types": "build/index.d.ts",
@@ -25,10 +25,12 @@
"watch": "tsup --watch --tsconfig tsconfig.build.json",
"copy-license": "node ../../scripts/pigment-license.mjs",
"build": "tsup --tsconfig tsconfig.build.json",
- "typecheck": "tsc --noEmit -p ."
+ "typecheck": "tsc --noEmit -p .",
+ "test": "cd ../../ && cross-env NODE_ENV=test mocha 'packages/pigment-css-unplugin/**/*.test.{js,ts,tsx}'",
+ "test:ci": "cd ../../ && cross-env NODE_ENV=test BABEL_ENV=coverage nyc --reporter=lcov --report-dir=./coverage/pigment-css-unplugin mocha 'packages/pigment-css-unplugin/**/*.test.{js,ts,tsx}'"
},
"dependencies": {
- "@babel/core": "^7.23.9",
+ "@babel/core": "^7.24.4",
"@pigment-css/react": "workspace:^",
"@wyw-in-js/shared": "^0.5.0",
"@wyw-in-js/transform": "^0.5.0",
@@ -36,7 +38,10 @@
"unplugin": "^1.7.1"
},
"devDependencies": {
- "@types/babel__core": "^7.20.5"
+ "@types/babel__core": "^7.20.5",
+ "@types/chai": "^4.3.14",
+ "@types/mocha": "^10.0.6",
+ "chai": "^4.4.1"
},
"sideEffects": false,
"publishConfig": {
diff --git a/packages/pigment-css-unplugin/src/index.ts b/packages/pigment-css-unplugin/src/index.ts
index bd8a047609fd4c..cbddd39982e4d7 100644
--- a/packages/pigment-css-unplugin/src/index.ts
+++ b/packages/pigment-css-unplugin/src/index.ts
@@ -21,15 +21,19 @@ import {
generateThemeTokens,
extendTheme,
type Theme as BaseTheme,
+ type PluginCustomOptions,
} from '@pigment-css/react/utils';
import type { ResolvePluginInstance } from 'webpack';
+import { handleUrlReplacement, type AsyncResolver } from './utils';
+
type NextMeta = {
type: 'next';
dev: boolean;
isServer: boolean;
outputCss: boolean;
placeholderCssFile: string;
+ projectPath: string;
};
type ViteMeta = {
@@ -41,7 +45,6 @@ type WebpackMeta = {
};
type Meta = NextMeta | ViteMeta | WebpackMeta;
-export type AsyncResolver = (what: string, importer: string, stack: string[]) => Promise;
export type PigmentOptions = {
theme?: Theme;
@@ -52,7 +55,8 @@ export type PigmentOptions = {
meta?: Meta;
asyncResolve?: (...args: Parameters) => Promise;
transformSx?: boolean;
-} & Partial;
+} & Partial &
+ Omit;
const extensions = ['.js', '.jsx', '.mjs', '.cjs', '.ts', '.tsx', '.mts', '.cts'];
@@ -100,13 +104,14 @@ export const plugin = createUnplugin((options) => {
theme,
meta,
transformLibraries = [],
- preprocessor = basePreprocessor,
+ preprocessor,
asyncResolve: asyncResolveOpt,
debug = false,
sourceMap = false,
transformSx = true,
overrideContext,
tagResolver,
+ css,
...rest
} = options;
const cache = new TransformCacheCollection();
@@ -116,7 +121,7 @@ export const plugin = createUnplugin((options) => {
const isNext = meta?.type === 'next';
const outputCss = isNext && meta.outputCss;
const babelTransformPlugin: UnpluginOptions = {
- name: 'zero-plugin-transform-babel',
+ name: 'pigment-css-plugin-transform-babel',
enforce: 'post',
transformInclude(id) {
return isZeroRuntimeProcessableFile(id, transformLibraries);
@@ -137,6 +142,7 @@ export const plugin = createUnplugin((options) => {
};
},
};
+ const projectPath = meta?.type === 'next' ? meta.projectPath : process.cwd();
let webpackResolver: AsyncResolver;
@@ -151,8 +157,12 @@ export const plugin = createUnplugin((options) => {
return asyncResolveFallback(what, importer, stack);
};
+ const withRtl = (selector: string, cssText: string) => {
+ return basePreprocessor(selector, cssText, css);
+ };
+
const wywInJSTransformPlugin: UnpluginOptions = {
- name: 'zero-plugin-transform-wyw-in-js',
+ name: 'pigment-css-plugin-transform-wyw-in-js',
enforce: 'post',
buildEnd() {
onDone(process.cwd());
@@ -188,12 +198,13 @@ export const plugin = createUnplugin((options) => {
compiler.options.resolve.plugins = compiler.options.resolve.plugins || [];
compiler.options.resolve.plugins.push(resolverPlugin);
},
- async transform(code, id) {
+ async transform(code, filePath) {
+ const [id] = filePath.split('?');
const transformServices = {
options: {
filename: id,
root: process.cwd(),
- preprocessor,
+ preprocessor: preprocessor ?? withRtl,
pluginOptions: {
...rest,
themeArgs: {
@@ -246,8 +257,15 @@ export const plugin = createUnplugin((options) => {
map: result.sourceMap,
};
}
- const slug = slugify(cssText);
- const cssFilename = `${slug}.zero.css`;
+
+ if (isNext) {
+ // Handle url() replacement in css. Only handled in Next.js as the css is injected
+ // through the use of a placeholder CSS file that lies in the nextjs plugin package.
+ // So url paths can't be resolved relative to that file.
+ if (cssText && cssText.includes('url(')) {
+ cssText = await handleUrlReplacement(cssText, id, asyncResolve, projectPath);
+ }
+ }
if (sourceMap && result.cssSourceMapText) {
const map = Buffer.from(result.cssSourceMapText).toString('base64');
@@ -255,12 +273,13 @@ export const plugin = createUnplugin((options) => {
}
// Virtual modules do not work consistently in Next.js (the build is done at least
- // thrice) resulting in error in subsequent builds. So we use a placeholder CSS
- // file with the actual CSS content as part of the query params.
+ // thrice with different combination of parameters) resulting in error in
+ // subsequent builds. So we use a placeholder CSS file with the actual CSS content
+ // as part of the query params.
if (isNext) {
const data = `${meta.placeholderCssFile}?${encodeURIComponent(
JSON.stringify({
- filename: cssFilename,
+ filename: id.split('/').pop(),
source: cssText,
}),
)}`;
@@ -270,9 +289,13 @@ export const plugin = createUnplugin((options) => {
map: result.sourceMap,
};
}
+
+ const slug = slugify(cssText);
+ const cssFilename = `${slug}.pigment.css`;
const cssId = `./${cssFilename}`;
cssFileLookup.set(cssId, cssFilename);
cssLookup.set(cssFilename, cssText);
+
return {
code: `${result.code}\nimport ${JSON.stringify(`./${cssFilename}`)};`,
map: result.sourceMap,
@@ -287,7 +310,7 @@ export const plugin = createUnplugin((options) => {
const plugins: Array = [
{
- name: 'zero-plugin-theme-tokens',
+ name: 'pigment-css-plugin-theme-tokens',
enforce: 'pre',
webpack(compiler) {
compiler.hooks.normalModuleFactory.tap(pluginName, (nmf) => {
@@ -295,7 +318,7 @@ export const plugin = createUnplugin((options) => {
pluginName,
// @ts-expect-error CreateData is typed as 'object'...
(createData: { matchResource?: string; settings: { sideEffects?: boolean } }) => {
- if (createData.matchResource && createData.matchResource.endsWith('.zero.css')) {
+ if (createData.matchResource && createData.matchResource.endsWith('.pigment.css')) {
createData.settings.sideEffects = true;
}
},
@@ -361,13 +384,13 @@ export const plugin = createUnplugin((options) => {
// This is already handled separately for Next.js using `placeholderCssFile`
if (!isNext) {
plugins.push({
- name: 'zero-plugin-load-output-css',
+ name: 'pigment-css-plugin-load-output-css',
enforce: 'pre',
resolveId(source: string) {
return cssFileLookup.get(source);
},
loadInclude(id) {
- return id.endsWith('.zero.css');
+ return id.endsWith('.pigment.css');
},
load(id) {
return cssLookup.get(id) ?? '';
@@ -382,4 +405,4 @@ export const webpack = plugin.webpack as unknown as UnpluginFactoryOutput<
WebpackPluginInstance
>;
-export { extendTheme };
+export { type AsyncResolver, extendTheme };
diff --git a/packages/pigment-css-unplugin/src/utils.ts b/packages/pigment-css-unplugin/src/utils.ts
new file mode 100644
index 00000000000000..da108320f607b2
--- /dev/null
+++ b/packages/pigment-css-unplugin/src/utils.ts
@@ -0,0 +1,66 @@
+import * as path from 'node:path';
+
+export type AsyncResolver = (what: string, importer: string, stack: string[]) => Promise;
+
+/**
+ * There might be a better way to do this in future, but due to the async
+ * nature of the resolver, this is the best way currently to replace url()
+ * content references with the absolute path of the referenced file.
+ * This is because WyW-in-JS's preprocessor is a sync call. So we can't resolve
+ * paths in this call asyncronously.
+ * The upside is that we can use aliases in the url() references as well
+ * alongside relative paths.
+ */
+export const handleUrlReplacement = async (
+ cssText: string,
+ filename: string,
+ asyncResolver: AsyncResolver,
+ projectPath: string,
+) => {
+ // [0] [1][2] [3] [4]
+ const urlRegex = /\b(url\((["']?))(\.?[^)]+?)(\2\))/g;
+ let newCss = '';
+ let match = urlRegex.exec(cssText);
+ let lastIndex = 0;
+ while (match) {
+ newCss += cssText.substring(lastIndex, match.index);
+ const mainItem = match[3];
+ // no need to handle data uris or absolute paths
+ if (
+ mainItem.startsWith('data:') ||
+ mainItem.startsWith('http:') ||
+ mainItem.startsWith('https:')
+ ) {
+ newCss += `url(${mainItem})`;
+ } else if (mainItem[0] === '/') {
+ const newPath = mainItem.replace(projectPath, '').split(path.sep).join('/');
+ if (newPath === mainItem) {
+ // absolute path unrelated to files in the project or in public directory
+ newCss += `url(${mainItem})`;
+ } else {
+ // absolute path to files in the project
+ newCss += `url(~${mainItem.replace(projectPath, '').split(path.sep).join('/')})`;
+ }
+ } else {
+ // eslint-disable-next-line no-await-in-loop
+ const resolvedAbsolutePath = await asyncResolver(mainItem, filename, []);
+ if (!resolvedAbsolutePath) {
+ newCss += `url(${mainItem})`;
+ } else {
+ let pathFromRoot = resolvedAbsolutePath.replace(projectPath, '');
+ // Need to do this for Windows paths
+ pathFromRoot = pathFromRoot.split(path.sep).join('/');
+ // const relativePathToProjectRoot = path.relative()
+ // Next.js expects the path to be relative to the project root and starting with ~
+ newCss += `url(~${pathFromRoot})`;
+ }
+ }
+ lastIndex = match.index + match[0].length;
+ match = urlRegex.exec(cssText);
+ }
+ newCss += cssText.substring(lastIndex);
+ if (!newCss) {
+ return cssText;
+ }
+ return newCss;
+};
diff --git a/packages/pigment-css-unplugin/tests/utils.test.ts b/packages/pigment-css-unplugin/tests/utils.test.ts
new file mode 100644
index 00000000000000..c0f8a4bd97ee4f
--- /dev/null
+++ b/packages/pigment-css-unplugin/tests/utils.test.ts
@@ -0,0 +1,88 @@
+import { expect } from 'chai';
+import { handleUrlReplacement } from '../src/utils';
+
+const DATA_URI =
+ 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTIwLjUgMTMuN2';
+const HTML_LOGO_URL = 'https://mui.com/static/logo.svg';
+const ABSOLUTE_PATH = '/static/logo.svg';
+const dummyResolver = (url: string) => {
+ return Promise.resolve(url);
+};
+
+describe('utils', () => {
+ describe('handleUrlReplacement', () => {
+ it('should not replace http/data/absolute urls', async () => {
+ [DATA_URI, HTML_LOGO_URL, ABSOLUTE_PATH].forEach(async (url) => {
+ const cssString1 = `.className {
+ background-image: url(${url});
+ }`;
+ const cssString2 = `.className {
+ background-image: url('${url}');
+ }`;
+ expect(
+ await handleUrlReplacement(
+ cssString1,
+ '/path/to/project/filename.ts',
+ dummyResolver,
+ '/path/to/project',
+ ),
+ ).to.equal(cssString1);
+ expect(
+ await handleUrlReplacement(
+ cssString2,
+ '/path/to/project/filename.ts',
+ dummyResolver,
+ '/path/to/project',
+ ),
+ ).to.equal(cssString1);
+ });
+ });
+
+ it('should replace relative or aliased paths with paths relative to the current working directory', async () => {
+ const projectPath = '/path/to/project';
+ const filePath = `${projectPath}/src/components/Slider.tsx`;
+ const resolver = (url: string): Promise => {
+ return new Promise((resolve) => {
+ if (url.startsWith('@/')) {
+ resolve(`${projectPath}/src${url.slice(1)}`);
+ } else if (url.startsWith('../../')) {
+ resolve(`${projectPath}/src/${url.replace('../../', '')}`);
+ } else if (url.startsWith('/')) {
+ resolve(url);
+ }
+ });
+ };
+ const cssString = `.className_c17ksbvo{
+ background-color:var(--mui-palette-background-default, #fff);
+ color:var(--mui-palette-text-primary, rgba(0, 0, 0, 0.87));
+ background-image: url('${DATA_URI}');
+ background-image: url('${HTML_LOGO_URL}');
+ background-image: url(${ABSOLUTE_PATH});
+ background-image: url('../../assets/mui.svg');
+ background-image: url('@/assets/mui.svg');
+ background-image: url('${projectPath}/src/assets/mui.svg');
+ background-image: url('/assets/mui.svg');
+ background-image: url('@/assets/mui.svg');
+ display: flex;
+ position: absolute;
+ }`;
+ const expectedCssString = `.className_c17ksbvo{
+ background-color:var(--mui-palette-background-default, #fff);
+ color:var(--mui-palette-text-primary, rgba(0, 0, 0, 0.87));
+ background-image: url(${DATA_URI});
+ background-image: url(${HTML_LOGO_URL});
+ background-image: url(${ABSOLUTE_PATH});
+ background-image: url(~/src/assets/mui.svg);
+ background-image: url(~/src/assets/mui.svg);
+ background-image: url(~/src/assets/mui.svg);
+ background-image: url(/assets/mui.svg);
+ background-image: url(~/src/assets/mui.svg);
+ display: flex;
+ position: absolute;
+ }`;
+ expect(await handleUrlReplacement(cssString, filePath, resolver, projectPath)).to.equal(
+ expectedCssString,
+ );
+ });
+ });
+});
diff --git a/packages/pigment-css-unplugin/tsconfig.json b/packages/pigment-css-unplugin/tsconfig.json
index aa7c7cb0fab5b0..76104e9ff8ee6d 100644
--- a/packages/pigment-css-unplugin/tsconfig.json
+++ b/packages/pigment-css-unplugin/tsconfig.json
@@ -11,7 +11,8 @@
"@mui/utils/*": ["./packages/mui-utils/src/*"],
"@pigment-css/react": ["./packages/pigment-css-react/src"],
"@pigment-css/react/*": ["./packages/pigment-css-react/src/*"]
- }
+ },
+ "types": ["node", "mocha", "chai"]
},
"include": ["src/**/*.ts"],
"exclude": ["./tsup.config.ts"]
diff --git a/packages/pigment-css-vite-plugin/package.json b/packages/pigment-css-vite-plugin/package.json
index 9a76867d55c749..866082e607cfe5 100644
--- a/packages/pigment-css-vite-plugin/package.json
+++ b/packages/pigment-css-vite-plugin/package.json
@@ -1,6 +1,6 @@
{
"name": "@pigment-css/vite-plugin",
- "version": "0.0.4",
+ "version": "0.0.6",
"main": "build/index.js",
"module": "build/index.mjs",
"types": "build/index.d.ts",
@@ -28,8 +28,8 @@
"typecheck": "tsc --noEmit -p ."
},
"dependencies": {
- "@babel/core": "^7.23.9",
- "@babel/preset-typescript": "^7.23.3",
+ "@babel/core": "^7.24.4",
+ "@babel/preset-typescript": "^7.24.1",
"@pigment-css/react": "workspace:^",
"@wyw-in-js/shared": "^0.5.0",
"@wyw-in-js/transform": "^0.5.0",
@@ -37,7 +37,7 @@
},
"devDependencies": {
"@types/babel__core": "^7.20.5",
- "vite": "^5.0.12"
+ "vite": "^5.2.8"
},
"peerDependencies": {
"vite": "^4.0.0 || ^5.0.0"
diff --git a/packages/pigment-css-vite-plugin/src/index.ts b/packages/pigment-css-vite-plugin/src/index.ts
index 20bb2d6c39b716..a3772fce0f726e 100644
--- a/packages/pigment-css-vite-plugin/src/index.ts
+++ b/packages/pigment-css-vite-plugin/src/index.ts
@@ -9,16 +9,11 @@ import {
import { transformAsync } from '@babel/core';
import baseWywPluginPlugin, { type VitePluginOptions } from './vite-plugin';
-export interface PigmentOptions extends VitePluginOptions {
+export interface PigmentOptions extends Omit {
/**
* The theme object that you want to be passed to the `styled` function
*/
theme: Theme;
- /**
- * Whether the css variables for the default theme should target the :root selector or not.
- * @default true
- */
- injectDefaultThemeInRoot?: boolean;
}
const VIRTUAL_CSS_FILE = `\0zero-runtime-styles.css`;
diff --git a/packages/rsc-builder/package.json b/packages/rsc-builder/package.json
index 8e9a60d6c178e2..8960baa67a5402 100644
--- a/packages/rsc-builder/package.json
+++ b/packages/rsc-builder/package.json
@@ -9,6 +9,6 @@
},
"devDependencies": {
"@types/mocha": "^10.0.6",
- "@types/node": "^18.19.25"
+ "@types/node": "^18.19.31"
}
}
diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json
index e9574b5a71ece2..5bd16cd571c856 100644
--- a/packages/test-utils/package.json
+++ b/packages/test-utils/package.json
@@ -18,15 +18,15 @@
"./setupKarma": "./src/setupKarma.js"
},
"dependencies": {
- "@babel/plugin-transform-modules-commonjs": "^7.23.3",
- "@babel/preset-typescript": "^7.23.3",
+ "@babel/plugin-transform-modules-commonjs": "^7.24.1",
+ "@babel/preset-typescript": "^7.24.1",
"@babel/register": "^7.23.7",
- "@babel/runtime": "^7.23.9",
+ "@babel/runtime": "^7.24.4",
"@emotion/cache": "^11.11.0",
"@emotion/react": "^11.11.4",
"@mnajdova/enzyme-adapter-react-18": "^0.2.0",
"@testing-library/dom": "^9.3.4",
- "@testing-library/react": "^14.2.2",
+ "@testing-library/react": "^14.3.1",
"chai": "^4.4.1",
"chai-dom": "^1.12.0",
"dom-accessibility-api": "^0.6.3",
@@ -35,14 +35,14 @@
"fs-extra": "^11.2.0",
"jsdom": "^24.0.0",
"lodash": "^4.17.21",
- "mocha": "^10.3.0",
- "playwright": "^1.42.1",
+ "mocha": "^10.4.0",
+ "playwright": "^1.43.1",
"prop-types": "^15.8.1",
"react-test-renderer": "^18.2.0",
"sinon": "^15.2.0"
},
"devDependencies": {
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/chai-dom": "^1.11.3",
"@types/enzyme": "^3.10.18",
"@types/format-util": "^1.0.4",
@@ -51,7 +51,7 @@
"@types/react-dom": "^18.2.19",
"@types/react-test-renderer": "^18.0.7",
"@types/sinon": "^10.0.20",
- "typescript": "^5.4.3"
+ "typescript": "^5.4.5"
},
"peerDependencies": {
"react": "^18.2.0",
diff --git a/packages/zero-runtime/src/RtlProvider/index.ts b/packages/zero-runtime/src/RtlProvider/index.ts
deleted file mode 100644
index 811b0c2c514f04..00000000000000
--- a/packages/zero-runtime/src/RtlProvider/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { default as RtlProvider, useRtl } from '@mui/system/RtlProvider';
diff --git a/patches/@wyw-in-js__transform@0.5.0.patch b/patches/@wyw-in-js__transform@0.5.0.patch
new file mode 100644
index 00000000000000..2c8676be1898aa
--- /dev/null
+++ b/patches/@wyw-in-js__transform@0.5.0.patch
@@ -0,0 +1,44 @@
+diff --git a/esm/module.js b/esm/module.js
+index 527070166142e7fda5ed14e1f3465052c82f2a2b..122061e0d481066a2b5fd0c7ab2a8b1d523b1ef1 100644
+--- a/esm/module.js
++++ b/esm/module.js
+@@ -119,7 +119,7 @@ export class Module {
+ this.services = services;
+ this.moduleImpl = moduleImpl;
+ this.cache = services.cache;
+- this.#entrypointRef = new WeakRef(entrypoint);
++ this.#entrypointRef = entrypoint;
+ this.idx = entrypoint.idx;
+ this.id = entrypoint.name;
+ this.filename = entrypoint.name;
+@@ -143,7 +143,7 @@ export class Module {
+ this.debug('the whole exports was overridden with %O', value);
+ }
+ get entrypoint() {
+- const entrypoint = this.#entrypointRef.deref();
++ const entrypoint = this.#entrypointRef;
+ invariant(entrypoint, `Module ${this.idx} is disposed`);
+ return entrypoint;
+ }
+diff --git a/lib/module.js b/lib/module.js
+index d2f2644c2469ac7ad0dbd1b9f58099eda4084b80..b8bad9c43c35bef14c3f6a277f8c9974607b2a00 100644
+--- a/lib/module.js
++++ b/lib/module.js
+@@ -127,7 +127,7 @@ class Module {
+ this.services = services;
+ this.moduleImpl = moduleImpl;
+ this.cache = services.cache;
+- this.#entrypointRef = new WeakRef(entrypoint);
++ this.#entrypointRef = entrypoint;
+ this.idx = entrypoint.idx;
+ this.id = entrypoint.name;
+ this.filename = entrypoint.name;
+@@ -151,7 +151,7 @@ class Module {
+ this.debug('the whole exports was overridden with %O', value);
+ }
+ get entrypoint() {
+- const entrypoint = this.#entrypointRef.deref();
++ const entrypoint = this.#entrypointRef;
+ (0, _tsInvariant.invariant)(entrypoint, `Module ${this.idx} is disposed`);
+ return entrypoint;
+ }
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ccdc319d95bb87..08af18d8d31af1 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -5,28 +5,33 @@ settings:
excludeLinksFromLockfile: false
overrides:
- '@babel/core': ^7.23.9
- '@babel/code-frame': ^7.23.5
+ '@babel/core': ^7.24.4
+ '@babel/code-frame': ^7.24.2
'@babel/plugin-proposal-class-properties': ^7.18.6
'@babel/plugin-proposal-object-rest-spread': ^7.20.7
'@babel/plugin-proposal-nullish-coalescing-operator': ^7.18.6
'@babel/plugin-proposal-numeric-separator': ^7.18.6
'@babel/plugin-proposal-optional-chaining': ^7.21.0
'@babel/plugin-transform-destructuring': npm:@minh.nguyen/plugin-transform-destructuring@^7.5.2
- '@babel/plugin-transform-runtime': ^7.23.9
- '@babel/preset-env': ^7.23.9
- '@babel/preset-react': ^7.23.3
- '@babel/preset-typescript': ^7.23.3
- '@babel/runtime': ^7.23.9
- '@babel/types': ^7.23.9
- '@definitelytyped/header-parser': ^0.2.8
+ '@babel/plugin-transform-runtime': ^7.24.3
+ '@babel/preset-env': ^7.24.4
+ '@babel/preset-react': ^7.24.1
+ '@babel/preset-typescript': ^7.24.1
+ '@babel/runtime': ^7.24.4
+ '@babel/types': ^7.24.0
+ '@definitelytyped/header-parser': ^0.2.9
'@definitelytyped/typescript-versions': ^0.1.1
- '@definitelytyped/utils': ^0.1.5
- '@types/node': ^18.19.25
+ '@definitelytyped/utils': ^0.1.6
+ '@types/node': ^18.19.31
'@types/react': 18.2.55
'@types/react-dom': 18.2.19
cross-fetch: ^4.0.0
+patchedDependencies:
+ '@wyw-in-js/transform@0.5.0':
+ hash: zicb4vap2prvslgwedcxhpcmvy
+ path: patches/@wyw-in-js__transform@0.5.0.patch
+
importers:
.:
@@ -51,47 +56,47 @@ importers:
specifier: ^1.5.5
version: 1.5.5
'@babel/cli':
- specifier: ^7.23.9
- version: 7.23.9(@babel/core@7.24.3)
+ specifier: ^7.24.1
+ version: 7.24.1(@babel/core@7.24.4)
'@babel/core':
- specifier: ^7.23.9
- version: 7.24.3
+ specifier: ^7.24.4
+ version: 7.24.4
'@babel/node':
specifier: ^7.23.9
- version: 7.23.9(@babel/core@7.24.3)
+ version: 7.23.9(@babel/core@7.24.4)
'@babel/plugin-proposal-class-properties':
specifier: ^7.18.6
- version: 7.18.6(@babel/core@7.24.3)
+ version: 7.18.6(@babel/core@7.24.4)
'@babel/plugin-proposal-object-rest-spread':
specifier: ^7.20.7
- version: 7.20.7(@babel/core@7.24.3)
+ version: 7.20.7(@babel/core@7.24.4)
'@babel/plugin-proposal-private-methods':
specifier: ^7.18.6
- version: 7.18.6(@babel/core@7.24.3)
+ version: 7.18.6(@babel/core@7.24.4)
'@babel/plugin-proposal-private-property-in-object':
specifier: ^7.21.11
- version: 7.21.11(@babel/core@7.24.3)
+ version: 7.21.11(@babel/core@7.24.4)
'@babel/plugin-transform-object-assign':
- specifier: ^7.23.3
- version: 7.23.3(@babel/core@7.24.3)
+ specifier: ^7.24.1
+ version: 7.24.1(@babel/core@7.24.4)
'@babel/plugin-transform-react-constant-elements':
- specifier: ^7.23.3
- version: 7.23.3(@babel/core@7.24.3)
+ specifier: ^7.24.1
+ version: 7.24.1(@babel/core@7.24.4)
'@babel/plugin-transform-runtime':
- specifier: ^7.23.9
- version: 7.24.3(@babel/core@7.24.3)
+ specifier: ^7.24.3
+ version: 7.24.3(@babel/core@7.24.4)
'@babel/preset-env':
- specifier: ^7.23.9
- version: 7.24.3(@babel/core@7.24.3)
+ specifier: ^7.24.4
+ version: 7.24.4(@babel/core@7.24.4)
'@babel/preset-react':
- specifier: ^7.23.3
- version: 7.23.3(@babel/core@7.24.3)
+ specifier: ^7.24.1
+ version: 7.24.1(@babel/core@7.24.4)
'@babel/preset-typescript':
- specifier: ^7.23.3
- version: 7.24.1(@babel/core@7.24.3)
+ specifier: ^7.24.1
+ version: 7.24.1(@babel/core@7.24.4)
'@babel/register':
specifier: ^7.23.7
- version: 7.23.7(@babel/core@7.24.3)
+ version: 7.23.7(@babel/core@7.24.4)
'@mnajdova/enzyme-adapter-react-18':
specifier: ^0.2.0
version: 0.2.0(enzyme@3.11.0)(react-dom@18.2.0)(react@18.2.0)
@@ -120,17 +125,17 @@ importers:
specifier: workspace:^
version: link:packages/mui-utils/build
'@next/eslint-plugin-next':
- specifier: ^14.1.4
- version: 14.1.4
+ specifier: ^14.2.1
+ version: 14.2.1
'@octokit/rest':
- specifier: ^20.0.2
- version: 20.0.2
+ specifier: ^20.1.0
+ version: 20.1.0
'@pigment-css/react':
specifier: workspace:^
version: link:packages/pigment-css-react
'@playwright/test':
- specifier: 1.42.1
- version: 1.42.1
+ specifier: 1.43.1
+ version: 1.43.1
'@types/enzyme':
specifier: ^3.10.18
version: 3.10.18
@@ -144,8 +149,8 @@ importers:
specifier: ^10.0.6
version: 10.0.6
'@types/node':
- specifier: ^18.19.25
- version: 18.19.26
+ specifier: ^18.19.31
+ version: 18.19.31
'@types/prettier':
specifier: ^2.7.3
version: 2.7.3
@@ -156,14 +161,14 @@ importers:
specifier: ^17.0.32
version: 17.0.32
'@typescript-eslint/eslint-plugin':
- specifier: ^6.19.1
- version: 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.57.0)(typescript@5.4.3)
+ specifier: ^6.21.0
+ version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.5)
'@typescript-eslint/parser':
- specifier: ^6.19.1
- version: 6.19.1(eslint@8.57.0)(typescript@5.4.3)
+ specifier: ^6.21.0
+ version: 6.21.0(eslint@8.57.0)(typescript@5.4.5)
babel-loader:
specifier: ^9.1.3
- version: 9.1.3(@babel/core@7.24.3)(webpack@5.90.3)
+ version: 9.1.3(@babel/core@7.24.4)(webpack@5.90.3)
babel-plugin-istanbul:
specifier: ^6.1.1
version: 6.1.1
@@ -214,7 +219,7 @@ importers:
version: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.57.0)
eslint-config-airbnb-typescript:
specifier: ^17.1.0
- version: 17.1.0(@typescript-eslint/eslint-plugin@6.19.1)(@typescript-eslint/parser@6.19.1)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
+ version: 17.1.0(@typescript-eslint/eslint-plugin@6.21.0)(@typescript-eslint/parser@6.21.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
eslint-config-prettier:
specifier: ^9.1.0
version: 9.1.0(eslint@8.57.0)
@@ -229,7 +234,7 @@ importers:
version: 1.3.2(eslint@8.57.0)
eslint-plugin-import:
specifier: ^2.29.1
- version: 2.29.1(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
+ version: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
eslint-plugin-jsx-a11y:
specifier: ^6.7.1
version: 6.7.1(eslint@8.57.0)
@@ -237,8 +242,8 @@ importers:
specifier: workspace:^
version: link:packages/eslint-plugin-material-ui
eslint-plugin-mocha:
- specifier: ^10.4.1
- version: 10.4.1(eslint@8.57.0)
+ specifier: ^10.4.2
+ version: 10.4.2(eslint@8.57.0)
eslint-plugin-react:
specifier: ^7.34.1
version: 7.34.1(eslint@8.57.0)
@@ -285,11 +290,11 @@ importers:
specifier: ^4.17.21
version: 4.17.21
markdownlint-cli2:
- specifier: ^0.12.1
- version: 0.12.1
+ specifier: ^0.13.0
+ version: 0.13.0
mocha:
- specifier: ^10.3.0
- version: 10.3.0
+ specifier: ^10.4.0
+ version: 10.4.0
nx:
specifier: ^17.3.2
version: 17.3.2
@@ -334,22 +339,22 @@ importers:
version: 5.3.10(esbuild@0.19.11)(webpack@5.90.3)
tsup:
specifier: ^8.0.2
- version: 8.0.2(postcss@8.4.38)(typescript@5.4.3)
+ version: 8.0.2(postcss@8.4.38)(typescript@5.4.5)
tsx:
- specifier: ^4.7.1
- version: 4.7.1
+ specifier: ^4.7.2
+ version: 4.7.2
typescript:
- specifier: ^5.4.3
- version: 5.4.3
+ specifier: ^5.4.5
+ version: 5.4.5
webpack:
specifier: ^5.90.3
version: 5.90.3(esbuild@0.19.11)(webpack-cli@5.1.4)
webpack-bundle-analyzer:
- specifier: ^4.10.1
- version: 4.10.1
+ specifier: ^4.10.2
+ version: 4.10.2
webpack-cli:
specifier: ^5.1.4
- version: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3)
+ version: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.90.3)
yargs:
specifier: ^17.7.2
version: 17.7.2
@@ -371,6 +376,9 @@ importers:
'@mui/icons-material':
specifier: workspace:^
version: link:../../packages/mui-icons-material/build
+ '@mui/lab':
+ specifier: workspace:^
+ version: link:../../packages/mui-lab/build
'@mui/material':
specifier: workspace:^
version: link:../../packages/mui-material/build
@@ -391,7 +399,7 @@ importers:
version: link:../local-ui-lib
next:
specifier: latest
- version: 14.1.4(@babel/core@7.24.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0)
+ version: 14.2.1(@babel/core@7.24.4)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: ^18.2.0
version: 18.2.0
@@ -403,8 +411,8 @@ importers:
specifier: workspace:^
version: link:../../packages/pigment-css-nextjs-plugin
'@types/node':
- specifier: ^18.19.25
- version: 18.19.26
+ specifier: ^18.19.31
+ version: 18.19.31
'@types/react':
specifier: 18.2.55
version: 18.2.55
@@ -415,8 +423,8 @@ importers:
specifier: ^8.57.0
version: 8.57.0
typescript:
- specifier: ^5.4.3
- version: 5.4.3
+ specifier: ^5.4.5
+ version: 5.4.5
apps/pigment-css-vite-app:
dependencies:
@@ -426,6 +434,9 @@ importers:
'@mui/icons-material':
specifier: workspace:^
version: link:../../packages/mui-icons-material/build
+ '@mui/lab':
+ specifier: workspace:^
+ version: link:../../packages/mui-lab/build
'@mui/material':
specifier: workspace:^
version: link:../../packages/mui-material/build
@@ -454,18 +465,18 @@ importers:
specifier: ^4.0.13
version: 4.0.13(react@18.2.0)
react-router:
- specifier: ^6.22.1
- version: 6.22.1(react@18.2.0)
+ specifier: ^6.22.3
+ version: 6.22.3(react@18.2.0)
react-router-dom:
- specifier: ^6.22.1
- version: 6.22.1(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^6.22.3
+ version: 6.22.3(react-dom@18.2.0)(react@18.2.0)
devDependencies:
'@babel/preset-react':
- specifier: ^7.23.3
- version: 7.23.3(@babel/core@7.24.3)
+ specifier: ^7.24.1
+ version: 7.24.1(@babel/core@7.24.4)
'@babel/preset-typescript':
- specifier: ^7.23.3
- version: 7.24.1(@babel/core@7.24.3)
+ specifier: ^7.24.1
+ version: 7.24.1(@babel/core@7.24.4)
'@pigment-css/vite-plugin':
specifier: workspace:^
version: link:../../packages/pigment-css-vite-plugin
@@ -477,7 +488,7 @@ importers:
version: 18.2.19
'@vitejs/plugin-react':
specifier: ^4.2.1
- version: 4.2.1(vite@5.2.2)
+ version: 4.2.1(vite@5.2.8)
postcss:
specifier: ^8.4.38
version: 8.4.38
@@ -485,17 +496,17 @@ importers:
specifier: ^1.0.1
version: 1.0.1
vite:
- specifier: 5.2.2
- version: 5.2.2(@types/node@18.19.26)
+ specifier: 5.2.8
+ version: 5.2.8(@types/node@18.19.31)
vite-plugin-pages:
- specifier: ^0.32.0
- version: 0.32.0(vite@5.2.2)
+ specifier: ^0.32.1
+ version: 0.32.1(vite@5.2.8)
benchmark:
dependencies:
'@chakra-ui/system':
specifier: ^2.6.2
- version: 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(react@18.2.0)
+ version: 2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.2.0)
'@emotion/react':
specifier: ^11.11.4
version: 11.11.4(@types/react@18.2.55)(react@18.2.0)
@@ -503,8 +514,8 @@ importers:
specifier: ^11.11.0
version: 11.11.0
'@emotion/styled':
- specifier: ^11.11.0
- version: 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ specifier: ^11.11.5
+ version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
'@mui/material':
specifier: workspace:^
version: link:../packages/mui-material/build
@@ -524,7 +535,7 @@ importers:
specifier: workspace:^
version: link:../docs
express:
- specifier: ^4.18.3
+ specifier: ^4.19.2
version: 4.19.2
fs-extra:
specifier: ^11.2.0
@@ -533,8 +544,8 @@ importers:
specifier: ^10.10.0
version: 10.10.0
playwright:
- specifier: ^1.42.1
- version: 1.42.1
+ specifier: ^1.43.1
+ version: 1.43.1
prop-types:
specifier: ^15.8.1
version: 15.8.1
@@ -575,17 +586,17 @@ importers:
docs:
dependencies:
'@babel/core':
- specifier: ^7.23.9
- version: 7.24.3
+ specifier: ^7.24.4
+ version: 7.24.4
'@babel/plugin-transform-object-assign':
- specifier: ^7.23.3
- version: 7.23.3(@babel/core@7.24.3)
+ specifier: ^7.24.1
+ version: 7.24.1(@babel/core@7.24.4)
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
'@babel/runtime-corejs2':
- specifier: ^7.23.9
- version: 7.23.9
+ specifier: ^7.24.4
+ version: 7.24.4
'@docsearch/react':
specifier: ^3.6.0
version: 3.6.0(@algolia/client-search@4.23.0)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0)
@@ -599,17 +610,17 @@ importers:
specifier: ^11.11.0
version: 11.11.0
'@emotion/styled':
- specifier: ^11.11.0
- version: 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ specifier: ^11.11.5
+ version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
'@fortawesome/fontawesome-svg-core':
- specifier: ^6.5.1
- version: 6.5.1
+ specifier: ^6.5.2
+ version: 6.5.2
'@fortawesome/free-solid-svg-icons':
- specifier: ^6.5.1
- version: 6.5.1
+ specifier: ^6.5.2
+ version: 6.5.2
'@fortawesome/react-fontawesome':
specifier: ^0.2.0
- version: 0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0)
+ version: 0.2.0(@fortawesome/fontawesome-svg-core@6.5.2)(react@18.2.0)
'@mui/base':
specifier: workspace:*
version: link:../packages/mui-base/build
@@ -651,31 +662,31 @@ importers:
version: link:../packages/mui-utils/build
'@mui/x-charts':
specifier: 6.19.8
- version: 6.19.8(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
+ version: 6.19.8(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@mui/x-data-grid':
- specifier: 7.0.0
- version: 7.0.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
+ specifier: 7.2.0
+ version: 7.2.0(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@mui/x-data-grid-generator':
- specifier: 7.0.0
- version: 7.0.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/icons-material@packages+mui-icons-material+build)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
+ specifier: 7.2.0
+ version: 7.2.0(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/icons-material@packages+mui-icons-material+build)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@mui/x-data-grid-premium':
- specifier: 7.0.0
- version: 7.0.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
+ specifier: 7.2.0
+ version: 7.2.0(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@mui/x-data-grid-pro':
- specifier: 7.0.0
- version: 7.0.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
+ specifier: 7.2.0
+ version: 7.2.0(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@mui/x-date-pickers':
- specifier: 6.19.8
- version: 6.19.8(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(date-fns-jalali@2.21.3-1)(date-fns@2.30.0)(react-dom@18.2.0)(react@18.2.0)
+ specifier: 6.19.9
+ version: 6.19.9(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(date-fns-jalali@2.21.3-1)(date-fns@2.30.0)(react-dom@18.2.0)(react@18.2.0)
'@mui/x-date-pickers-pro':
- specifier: 6.19.8
- version: 6.19.8(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(date-fns-jalali@2.21.3-1)(date-fns@2.30.0)(react-dom@18.2.0)(react@18.2.0)
+ specifier: 6.19.9
+ version: 6.19.9(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(date-fns-jalali@2.21.3-1)(date-fns@2.30.0)(react-dom@18.2.0)(react@18.2.0)
'@mui/x-license-pro':
specifier: 6.10.2
version: 6.10.2(@types/react@18.2.55)(react@18.2.0)
'@mui/x-tree-view':
specifier: 6.17.0
- version: 6.17.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
+ version: 6.17.0(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@popperjs/core':
specifier: ^2.11.8
version: 2.11.8
@@ -758,14 +769,14 @@ importers:
specifier: ^1.5.0
version: 1.5.0
markdown-to-jsx:
- specifier: ^7.4.5
- version: 7.4.5(react@18.2.0)
+ specifier: ^7.4.7
+ version: 7.4.7(react@18.2.0)
material-ui-popup-state:
- specifier: ^5.0.10
- version: 5.0.10(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^5.1.0
+ version: 5.1.0(@mui/material@packages+mui-material+build)(react@18.2.0)
next:
specifier: ^13.5.1
- version: 13.5.1(@babel/core@7.24.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0)
+ version: 13.5.1(@babel/core@7.24.4)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0)
notistack:
specifier: 3.0.1
version: 3.0.1(csstype@3.1.3)(react-dom@18.2.0)(react@18.2.0)
@@ -794,20 +805,20 @@ importers:
specifier: ^6.5.9
version: 6.5.9(final-form@4.20.10)(react@18.2.0)
react-imask:
- specifier: ^7.5.0
- version: 7.5.0(react@18.2.0)
+ specifier: ^7.6.0
+ version: 7.6.0(react@18.2.0)
react-intersection-observer:
- specifier: ^9.8.1
- version: 9.8.1(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^9.8.2
+ version: 9.8.2(react-dom@18.2.0)(react@18.2.0)
react-is:
specifier: ^18.2.0
version: 18.2.0
react-number-format:
- specifier: ^5.3.3
- version: 5.3.3(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^5.3.4
+ version: 5.3.4(react-dom@18.2.0)(react@18.2.0)
react-router-dom:
- specifier: ^6.21.3
- version: 6.22.1(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^6.22.3
+ version: 6.22.3(react-dom@18.2.0)(react@18.2.0)
react-runner:
specifier: ^1.0.3
version: 1.0.3(react-dom@18.2.0)(react@18.2.0)
@@ -827,8 +838,8 @@ importers:
specifier: ^4.4.5
version: 4.4.5(react-dom@18.2.0)(react@18.2.0)
react-virtuoso:
- specifier: ^4.7.2
- version: 4.7.2(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^4.7.8
+ version: 4.7.8(react-dom@18.2.0)(react@18.2.0)
react-window:
specifier: ^1.8.10
version: 1.8.10(react-dom@18.2.0)(react@18.2.0)
@@ -848,15 +859,15 @@ importers:
specifier: ^3.0.1
version: 3.0.1(react@18.2.0)
webpack-bundle-analyzer:
- specifier: ^4.10.1
- version: 4.10.1
+ specifier: ^4.10.2
+ version: 4.10.2
devDependencies:
'@babel/plugin-transform-react-constant-elements':
- specifier: ^7.23.3
- version: 7.23.3(@babel/core@7.24.3)
+ specifier: ^7.24.1
+ version: 7.24.1(@babel/core@7.24.4)
'@babel/preset-typescript':
- specifier: ^7.23.3
- version: 7.24.1(@babel/core@7.24.3)
+ specifier: ^7.24.1
+ version: 7.24.1(@babel/core@7.24.4)
'@mui-internal/test-utils':
specifier: workspace:^
version: link:../packages/test-utils
@@ -870,8 +881,8 @@ importers:
specifier: ^3.2.3
version: 3.2.3
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/css-mediaquery':
specifier: ^0.1.4
version: 0.1.4
@@ -879,8 +890,8 @@ importers:
specifier: ^0.2.2
version: 0.2.2
'@types/node':
- specifier: ^18.19.25
- version: 18.19.26
+ specifier: ^18.19.31
+ version: 18.19.31
'@types/prop-types':
specifier: ^15.7.12
version: 15.7.12
@@ -918,14 +929,14 @@ importers:
specifier: ^5.1.2
version: 5.1.2
playwright:
- specifier: ^1.42.1
- version: 1.42.1
+ specifier: ^1.43.1
+ version: 1.43.1
prettier:
specifier: ^3.2.5
version: 3.2.5
tailwindcss:
- specifier: ^3.4.1
- version: 3.4.1
+ specifier: ^3.4.3
+ version: 3.4.3
yargs:
specifier: ^17.7.2
version: 17.7.2
@@ -936,25 +947,25 @@ importers:
specifier: ^5.0.5
version: 5.0.5
typescript:
- specifier: ^5.4.3
- version: 5.4.3
+ specifier: ^5.4.5
+ version: 5.4.5
packages-internal/scripts:
dependencies:
'@babel/core':
- specifier: ^7.23.9
- version: 7.24.3
+ specifier: ^7.24.4
+ version: 7.24.4
'@babel/plugin-syntax-class-properties':
specifier: ^7.12.13
- version: 7.12.13(@babel/core@7.24.3)
+ version: 7.12.13(@babel/core@7.24.4)
'@babel/plugin-syntax-jsx':
- specifier: ^7.23.3
- version: 7.24.1(@babel/core@7.24.3)
+ specifier: ^7.24.1
+ version: 7.24.1(@babel/core@7.24.4)
'@babel/plugin-syntax-typescript':
- specifier: ^7.23.3
- version: 7.24.1(@babel/core@7.24.3)
+ specifier: ^7.24.1
+ version: 7.24.1(@babel/core@7.24.4)
'@babel/types':
- specifier: ^7.23.9
+ specifier: ^7.24.0
version: 7.24.0
'@mui/internal-docs-utils':
specifier: workspace:^
@@ -966,21 +977,21 @@ importers:
specifier: ^4.17.21
version: 4.17.21
typescript:
- specifier: ^5.4.3
- version: 5.4.3
+ specifier: ^5.4.5
+ version: 5.4.5
uuid:
specifier: ^9.0.1
version: 9.0.1
devDependencies:
'@babel/register':
specifier: ^7.23.7
- version: 7.23.7(@babel/core@7.24.3)
+ version: 7.23.7(@babel/core@7.24.4)
'@types/babel__core':
specifier: ^7.20.5
version: 7.20.5
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/doctrine':
specifier: ^0.0.9
version: 0.0.9
@@ -988,8 +999,8 @@ importers:
specifier: ^4.17.0
version: 4.17.0
'@types/node':
- specifier: ^18.19.25
- version: 18.19.26
+ specifier: ^18.19.31
+ version: 18.19.31
'@types/prettier':
specifier: ^2.7.3
version: 2.7.3
@@ -1015,13 +1026,13 @@ importers:
packages/api-docs-builder:
dependencies:
'@babel/core':
- specifier: ^7.23.9
- version: 7.24.3
+ specifier: ^7.24.4
+ version: 7.24.4
'@babel/preset-typescript':
- specifier: ^7.23.3
- version: 7.24.1(@babel/core@7.24.3)
+ specifier: ^7.24.1
+ version: 7.24.1(@babel/core@7.24.4)
'@babel/traverse':
- specifier: ^7.23.9
+ specifier: ^7.24.1
version: 7.24.1
'@mui/internal-docs-utils':
specifier: workspace:^
@@ -1057,8 +1068,8 @@ importers:
specifier: ^13.0.0
version: 13.0.0
typescript:
- specifier: ^5.4.3
- version: 5.4.3
+ specifier: ^5.4.5
+ version: 5.4.5
unist-util-visit:
specifier: ^2.0.3
version: 2.0.3
@@ -1070,8 +1081,8 @@ importers:
specifier: ^7.20.5
version: 7.20.5
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/doctrine':
specifier: ^0.0.9
version: 0.0.9
@@ -1082,8 +1093,8 @@ importers:
specifier: ^10.0.6
version: 10.0.6
'@types/node':
- specifier: ^18.19.25
- version: 18.19.26
+ specifier: ^18.19.31
+ version: 18.19.31
'@types/react-docgen':
specifier: workspace:*
version: link:../react-docgen-types
@@ -1113,14 +1124,14 @@ importers:
version: 4.17.21
devDependencies:
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/mocha':
specifier: ^10.0.6
version: 10.0.6
'@types/node':
- specifier: ^18.19.25
- version: 18.19.26
+ specifier: ^18.19.31
+ version: 18.19.31
'@types/sinon':
specifier: ^10.0.20
version: 10.0.20
@@ -1131,8 +1142,8 @@ importers:
specifier: ^15.2.0
version: 15.2.0
typescript:
- specifier: ^5.4.3
- version: 5.4.3
+ specifier: ^5.4.5
+ version: 5.4.5
packages/eslint-plugin-material-ui:
dependencies:
@@ -1141,11 +1152,11 @@ importers:
version: 10.3.0
devDependencies:
'@types/eslint':
- specifier: ^8.56.6
- version: 8.56.6
+ specifier: ^8.56.9
+ version: 8.56.9
'@typescript-eslint/parser':
- specifier: ^6.19.1
- version: 6.19.1(eslint@8.57.0)(typescript@5.4.3)
+ specifier: ^6.21.0
+ version: 6.21.0(eslint@8.57.0)(typescript@5.4.5)
eslint:
specifier: ^8.57.0
version: 8.57.0
@@ -1160,8 +1171,8 @@ importers:
version: 9.0.1
optionalDependencies:
aws-sdk:
- specifier: ^2.1579.0
- version: 2.1585.0
+ specifier: ^2.1599.0
+ version: 2.1599.0
devDependencies:
claudia:
specifier: ^5.14.1
@@ -1170,8 +1181,8 @@ importers:
packages/markdown:
dependencies:
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
lodash:
specifier: ^4.17.21
version: 4.17.21
@@ -1183,8 +1194,8 @@ importers:
version: 1.29.0
devDependencies:
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
chai:
specifier: ^4.4.1
version: 4.4.1
@@ -1192,14 +1203,14 @@ importers:
packages/mui-babel-macros:
dependencies:
'@babel/helper-module-imports':
- specifier: ^7.22.15
+ specifier: ^7.24.3
version: 7.24.3
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
'@mui/utils':
specifier: ^5.0.0
- version: link:../mui-utils/build
+ version: 5.15.14(@types/react@18.2.55)(react@18.2.0)
babel-plugin-macros:
specifier: ^3.1.0
version: 3.1.0
@@ -1211,17 +1222,17 @@ importers:
specifier: ^3.1.3
version: 3.1.3
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/mocha':
specifier: ^10.0.6
version: 10.0.6
'@types/node':
- specifier: ^18.19.25
- version: 18.19.26
+ specifier: ^18.19.31
+ version: 18.19.31
babel-plugin-tester:
specifier: ^11.0.4
- version: 11.0.4(@babel/core@7.24.3)
+ version: 11.0.4(@babel/core@7.24.4)
chai:
specifier: ^4.4.1
version: 4.4.1
@@ -1229,8 +1240,8 @@ importers:
packages/mui-base:
dependencies:
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
'@floating-ui/react-dom':
specifier: ^2.0.8
version: 2.0.8(react-dom@18.2.0)(react@18.2.0)
@@ -1257,14 +1268,14 @@ importers:
specifier: workspace:^
version: link:../mui-babel-macros
'@testing-library/react':
- specifier: ^14.2.2
- version: 14.2.2(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^14.3.1
+ version: 14.3.1(react-dom@18.2.0)(react@18.2.0)
'@testing-library/user-event':
specifier: ^14.5.2
version: 14.5.2(@testing-library/dom@9.3.4)
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/prop-types':
specifier: ^15.7.12
version: 15.7.12
@@ -1300,20 +1311,20 @@ importers:
packages/mui-codemod:
dependencies:
'@babel/core':
- specifier: ^7.23.9
- version: 7.24.3
+ specifier: ^7.24.4
+ version: 7.24.4
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
'@babel/traverse':
- specifier: ^7.23.9
+ specifier: ^7.24.1
version: 7.24.1
jscodeshift:
- specifier: ^0.13.1
- version: 0.13.1(@babel/preset-env@7.24.3)
+ specifier: ^0.15.2
+ version: 0.15.2(@babel/preset-env@7.24.4)
jscodeshift-add-imports:
specifier: ^1.0.10
- version: 1.0.10(jscodeshift@0.13.1)
+ version: 1.0.10(jscodeshift@0.15.2)
postcss:
specifier: ^8.4.38
version: 8.4.38
@@ -1325,11 +1336,11 @@ importers:
version: 17.7.2
devDependencies:
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/jscodeshift':
- specifier: 0.11.5
- version: 0.11.5
+ specifier: 0.11.11
+ version: 0.11.11
chai:
specifier: ^4.4.1
version: 4.4.1
@@ -1341,14 +1352,14 @@ importers:
packages/mui-docs:
dependencies:
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
'@mui/base':
specifier: '*'
version: link:../mui-base/build
'@mui/system':
specifier: ^5.0.0
- version: 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react@18.2.0)
+ version: 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.55)(react@18.2.0)
clsx:
specifier: ^2.1.0
version: 2.1.0
@@ -1366,8 +1377,8 @@ importers:
specifier: workspace:*
version: link:../mui-material/build
'@types/node':
- specifier: ^18.19.25
- version: 18.19.26
+ specifier: ^18.19.31
+ version: 18.19.31
'@types/prop-types':
specifier: ^15.7.12
version: 15.7.12
@@ -1376,7 +1387,7 @@ importers:
version: 18.2.55
next:
specifier: ^13.5.1
- version: 13.5.1(@babel/core@7.24.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0)
+ version: 13.5.1(@babel/core@7.24.4)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: ^18.2.0
version: 18.2.0
@@ -1385,12 +1396,12 @@ importers:
packages/mui-envinfo:
dependencies:
envinfo:
- specifier: ^7.11.1
- version: 7.11.1
+ specifier: ^7.12.0
+ version: 7.12.0
devDependencies:
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
chai:
specifier: ^4.4.1
version: 4.4.1
@@ -1404,17 +1415,17 @@ importers:
specifier: ^11.11.4
version: 11.11.4(@types/react@18.2.55)(react@18.2.0)
'@emotion/styled':
- specifier: ^11.11.0
- version: 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ specifier: ^11.11.5
+ version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
'@mui/base':
specifier: 5.0.0-beta.30
version: 5.0.0-beta.30(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@mui/joy':
specifier: 5.0.0-beta.22
- version: 5.0.0-beta.22(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
+ version: 5.0.0-beta.22(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@mui/material':
specifier: 5.15.4
- version: 5.15.4(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
+ version: 5.15.4(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: ^18.2.0
version: 18.2.0
@@ -1429,8 +1440,8 @@ importers:
packages/mui-icons-material:
dependencies:
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
devDependencies:
'@mui/icons-material':
specifier: workspace:*
@@ -1442,8 +1453,8 @@ importers:
specifier: workspace:^
version: link:../mui-material/build
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/react':
specifier: 18.2.55
version: 18.2.55
@@ -1488,14 +1499,14 @@ importers:
packages/mui-joy:
dependencies:
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
'@emotion/react':
specifier: ^11.5.0
version: 11.11.4(@types/react@18.2.55)(react@18.2.0)
'@emotion/styled':
specifier: ^11.3.0
- version: 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
'@mui/base':
specifier: workspace:*
version: link:../mui-base/build
@@ -1525,8 +1536,8 @@ importers:
specifier: workspace:^
version: link:../mui-material/build
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/prop-types':
specifier: ^15.7.12
version: 15.7.12
@@ -1550,7 +1561,7 @@ importers:
version: 4.17.21
next:
specifier: ^13.4.19
- version: 13.5.1(@babel/core@7.24.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0)
+ version: 13.5.1(@babel/core@7.24.4)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: ^18.2.0
version: 18.2.0
@@ -1565,14 +1576,14 @@ importers:
packages/mui-lab:
dependencies:
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
'@emotion/react':
specifier: ^11.5.0
version: 11.11.4(@types/react@18.2.55)(react@18.2.0)
'@emotion/styled':
specifier: ^11.3.0
- version: 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
'@mui/base':
specifier: workspace:*
version: link:../mui-base/build
@@ -1599,8 +1610,8 @@ importers:
specifier: workspace:*
version: link:../mui-material/build
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/prop-types':
specifier: ^15.7.12
version: 15.7.12
@@ -1630,14 +1641,14 @@ importers:
packages/mui-material:
dependencies:
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
'@emotion/react':
specifier: ^11.5.0
version: 11.11.4(@types/react@18.2.55)(react@18.2.0)
'@emotion/styled':
specifier: ^11.3.0
- version: 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
'@mui/base':
specifier: workspace:*
version: link:../mui-base/build
@@ -1691,8 +1702,8 @@ importers:
specifier: ^14.5.2
version: 14.5.2(@testing-library/dom@9.3.4)
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/prop-types':
specifier: ^15.7.12
version: 15.7.12
@@ -1712,7 +1723,7 @@ importers:
specifier: ^0.1.2
version: 0.1.2
express:
- specifier: ^4.18.3
+ specifier: ^4.19.2
version: 4.19.2
fast-glob:
specifier: ^3.3.2
@@ -1724,8 +1735,8 @@ importers:
specifier: ^4.17.21
version: 4.17.21
playwright:
- specifier: ^1.42.1
- version: 1.42.1
+ specifier: ^1.43.1
+ version: 1.43.1
react:
specifier: ^18.2.0
version: 18.2.0
@@ -1733,14 +1744,14 @@ importers:
specifier: ^18.2.0
version: 18.2.0(react@18.2.0)
react-router-dom:
- specifier: ^6.21.3
- version: 6.22.1(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^6.22.3
+ version: 6.22.3(react-dom@18.2.0)(react@18.2.0)
rollup:
specifier: ^3.29.4
version: 3.29.4
rollup-plugin-babel:
specifier: ^4.4.0
- version: 4.4.0(@babel/core@7.24.3)(rollup@3.29.4)
+ version: 4.4.0(@babel/core@7.24.4)(rollup@3.29.4)
rollup-plugin-commonjs:
specifier: ^10.1.0
version: 10.1.0(rollup@3.29.4)
@@ -1761,8 +1772,8 @@ importers:
packages/mui-material-nextjs:
dependencies:
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
'@mui/material':
specifier: workspace:^
version: link:../mui-material/build
@@ -1781,7 +1792,7 @@ importers:
version: 18.2.55
next:
specifier: 13.5.1
- version: 13.5.1(@babel/core@7.24.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0)
+ version: 13.5.1(@babel/core@7.24.4)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: ^18.2.0
version: 18.2.0
@@ -1790,8 +1801,8 @@ importers:
packages/mui-private-theming:
dependencies:
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
'@mui/utils':
specifier: workspace:^
version: link:../mui-utils/build
@@ -1806,8 +1817,8 @@ importers:
specifier: workspace:^
version: link:../mui-types/build
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/react':
specifier: 18.2.55
version: 18.2.55
@@ -1822,8 +1833,8 @@ importers:
packages/mui-styled-engine:
dependencies:
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
'@emotion/cache':
specifier: ^11.11.0
version: 11.11.0
@@ -1838,8 +1849,8 @@ importers:
specifier: ^11.11.4
version: 11.11.4(@types/react@18.2.55)(react@18.2.0)
'@emotion/styled':
- specifier: ^11.11.0
- version: 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ specifier: ^11.11.5
+ version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
'@mui-internal/test-utils':
specifier: workspace:^
version: link:../test-utils
@@ -1847,8 +1858,8 @@ importers:
specifier: workspace:*
version: link:build
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/react':
specifier: 18.2.55
version: 18.2.55
@@ -1863,8 +1874,8 @@ importers:
packages/mui-styled-engine-sc:
dependencies:
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
csstype:
specifier: ^3.1.3
version: 3.1.3
@@ -1882,8 +1893,8 @@ importers:
specifier: workspace:*
version: link:build
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/hoist-non-react-statics':
specifier: ^3.3.5
version: 3.3.5
@@ -1904,8 +1915,8 @@ importers:
packages/mui-styles:
dependencies:
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
'@emotion/hash':
specifier: ^0.9.1
version: 0.9.1
@@ -1962,8 +1973,8 @@ importers:
specifier: workspace:^
version: link:../mui-material/build
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/react':
specifier: 18.2.55
version: 18.2.55
@@ -1990,8 +2001,8 @@ importers:
packages/mui-system:
dependencies:
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
'@mui/private-theming':
specifier: workspace:^
version: link:../mui-private-theming/build
@@ -2018,8 +2029,8 @@ importers:
specifier: ^11.11.4
version: 11.11.4(@types/react@18.2.55)(react@18.2.0)
'@emotion/styled':
- specifier: ^11.11.0
- version: 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ specifier: ^11.11.5
+ version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
'@mui-internal/test-utils':
specifier: workspace:^
version: link:../test-utils
@@ -2030,8 +2041,8 @@ importers:
specifier: workspace:*
version: link:build
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/prop-types':
specifier: ^15.7.12
version: 15.7.12
@@ -2074,8 +2085,8 @@ importers:
packages/mui-utils:
dependencies:
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
'@types/prop-types':
specifier: ^15.7.12
version: 15.7.12
@@ -2096,14 +2107,14 @@ importers:
specifier: workspace:^
version: link:../mui-types/build
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/mocha':
specifier: ^10.0.6
version: 10.0.6
'@types/node':
- specifier: ^18.19.25
- version: 18.19.26
+ specifier: ^18.19.31
+ version: 18.19.31
'@types/react':
specifier: 18.2.55
version: 18.2.55
@@ -2144,24 +2155,24 @@ importers:
devDependencies:
next:
specifier: ^13.5.1
- version: 13.5.1(@babel/core@7.24.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0)
+ version: 13.5.1(@babel/core@7.24.4)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0)
packages/pigment-css-react:
dependencies:
'@babel/core':
- specifier: ^7.23.9
- version: 7.24.3
+ specifier: ^7.24.4
+ version: 7.24.4
'@babel/helper-module-imports':
- specifier: ^7.22.15
+ specifier: ^7.24.3
version: 7.24.3
'@babel/helper-plugin-utils':
- specifier: ^7.22.5
+ specifier: ^7.24.0
version: 7.24.0
'@babel/parser':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
'@babel/types':
- specifier: ^7.23.9
+ specifier: ^7.24.0
version: 7.24.0
'@emotion/css':
specifier: ^11.11.2
@@ -2173,11 +2184,11 @@ importers:
specifier: ^11.11.4
version: 11.11.4(@types/react@18.2.55)(react@18.2.0)
'@emotion/serialize':
- specifier: ^1.1.3
- version: 1.1.3
+ specifier: ^1.1.4
+ version: 1.1.4
'@emotion/styled':
- specifier: ^11.11.0
- version: 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ specifier: ^11.11.5
+ version: 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
'@mui/system':
specifier: workspace:^
version: link:../mui-system/build
@@ -2189,7 +2200,7 @@ importers:
version: 0.5.0
'@wyw-in-js/transform':
specifier: ^0.5.0
- version: 0.5.0
+ version: 0.5.0(patch_hash=zicb4vap2prvslgwedcxhpcmvy)
clsx:
specifier: ^2.1.0
version: 2.1.0
@@ -2210,8 +2221,8 @@ importers:
version: 2.1.1(stylis@4.3.1)
devDependencies:
'@babel/plugin-syntax-jsx':
- specifier: ^7.23.3
- version: 7.24.1(@babel/core@7.24.3)
+ specifier: ^7.24.1
+ version: 7.24.1(@babel/core@7.24.4)
'@types/babel__core':
specifier: ^7.20.5
version: 7.20.5
@@ -2222,8 +2233,8 @@ importers:
specifier: ^7.10.3
version: 7.10.3
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/cssesc':
specifier: ^3.0.2
version: 3.0.2
@@ -2234,8 +2245,8 @@ importers:
specifier: ^10.0.6
version: 10.0.6
'@types/node':
- specifier: ^18.19.25
- version: 18.19.26
+ specifier: ^18.19.31
+ version: 18.19.31
'@types/react':
specifier: 18.2.55
version: 18.2.55
@@ -2248,6 +2259,9 @@ importers:
prettier:
specifier: ^3.2.5
version: 3.2.5
+ prop-types:
+ specifier: ^15.8.1
+ version: 15.8.1
react:
specifier: ^18.2.0
version: 18.2.0
@@ -2255,8 +2269,8 @@ importers:
packages/pigment-css-unplugin:
dependencies:
'@babel/core':
- specifier: ^7.23.9
- version: 7.24.3
+ specifier: ^7.24.4
+ version: 7.24.4
'@pigment-css/react':
specifier: workspace:^
version: link:../pigment-css-react
@@ -2265,7 +2279,7 @@ importers:
version: 0.5.0
'@wyw-in-js/transform':
specifier: ^0.5.0
- version: 0.5.0
+ version: 0.5.0(patch_hash=zicb4vap2prvslgwedcxhpcmvy)
babel-plugin-define-var:
specifier: ^0.1.0
version: 0.1.0
@@ -2276,15 +2290,24 @@ importers:
'@types/babel__core':
specifier: ^7.20.5
version: 7.20.5
+ '@types/chai':
+ specifier: ^4.3.14
+ version: 4.3.14
+ '@types/mocha':
+ specifier: ^10.0.6
+ version: 10.0.6
+ chai:
+ specifier: ^4.4.1
+ version: 4.4.1
packages/pigment-css-vite-plugin:
dependencies:
'@babel/core':
- specifier: ^7.23.9
- version: 7.24.3
+ specifier: ^7.24.4
+ version: 7.24.4
'@babel/preset-typescript':
- specifier: ^7.23.3
- version: 7.24.1(@babel/core@7.24.3)
+ specifier: ^7.24.1
+ version: 7.24.1(@babel/core@7.24.4)
'@pigment-css/react':
specifier: workspace:^
version: link:../pigment-css-react
@@ -2293,7 +2316,7 @@ importers:
version: 0.5.0
'@wyw-in-js/transform':
specifier: ^0.5.0
- version: 0.5.0
+ version: 0.5.0(patch_hash=zicb4vap2prvslgwedcxhpcmvy)
babel-plugin-define-var:
specifier: ^0.1.0
version: 0.1.0
@@ -2302,8 +2325,8 @@ importers:
specifier: ^7.20.5
version: 7.20.5
vite:
- specifier: ^5.0.12
- version: 5.2.2(@types/node@18.19.26)
+ specifier: ^5.2.8
+ version: 5.2.8(@types/node@18.19.31)
packages/react-docgen-types:
devDependencies:
@@ -2324,23 +2347,23 @@ importers:
specifier: ^10.0.6
version: 10.0.6
'@types/node':
- specifier: ^18.19.25
- version: 18.19.26
+ specifier: ^18.19.31
+ version: 18.19.31
packages/test-utils:
dependencies:
'@babel/plugin-transform-modules-commonjs':
- specifier: ^7.23.3
- version: 7.24.1(@babel/core@7.24.3)
+ specifier: ^7.24.1
+ version: 7.24.1(@babel/core@7.24.4)
'@babel/preset-typescript':
- specifier: ^7.23.3
- version: 7.24.1(@babel/core@7.24.3)
+ specifier: ^7.24.1
+ version: 7.24.1(@babel/core@7.24.4)
'@babel/register':
specifier: ^7.23.7
- version: 7.23.7(@babel/core@7.24.3)
+ version: 7.23.7(@babel/core@7.24.4)
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
'@emotion/cache':
specifier: ^11.11.0
version: 11.11.0
@@ -2354,8 +2377,8 @@ importers:
specifier: ^9.3.4
version: 9.3.4
'@testing-library/react':
- specifier: ^14.2.2
- version: 14.2.2(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^14.3.1
+ version: 14.3.1(react-dom@18.2.0)(react@18.2.0)
chai:
specifier: ^4.4.1
version: 4.4.1
@@ -2381,11 +2404,11 @@ importers:
specifier: ^4.17.21
version: 4.17.21
mocha:
- specifier: ^10.3.0
- version: 10.3.0
+ specifier: ^10.4.0
+ version: 10.4.0
playwright:
- specifier: ^1.42.1
- version: 1.42.1
+ specifier: ^1.43.1
+ version: 1.43.1
prop-types:
specifier: ^15.8.1
version: 15.8.1
@@ -2403,8 +2426,8 @@ importers:
version: 15.2.0
devDependencies:
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/chai-dom':
specifier: ^1.11.3
version: 1.11.3
@@ -2430,16 +2453,16 @@ importers:
specifier: ^10.0.20
version: 10.0.20
typescript:
- specifier: ^5.4.3
- version: 5.4.3
+ specifier: ^5.4.5
+ version: 5.4.5
packages/waterfall: {}
test:
devDependencies:
'@babel/runtime':
- specifier: ^7.23.9
- version: 7.24.1
+ specifier: ^7.24.4
+ version: 7.24.4
'@emotion/cache':
specifier: ^11.11.0
version: 11.11.0
@@ -2471,14 +2494,14 @@ importers:
specifier: workspace:^
version: link:../packages/mui-utils/build
'@playwright/test':
- specifier: 1.42.1
- version: 1.42.1
+ specifier: 1.43.1
+ version: 1.43.1
'@testing-library/dom':
specifier: ^9.3.4
version: 9.3.4
'@types/chai':
- specifier: ^4.3.12
- version: 4.3.12
+ specifier: ^4.3.14
+ version: 4.3.14
'@types/react':
specifier: 18.2.55
version: 18.2.55
@@ -2507,8 +2530,8 @@ importers:
specifier: ^4.17.21
version: 4.17.21
playwright:
- specifier: ^1.42.1
- version: 1.42.1
+ specifier: ^1.43.1
+ version: 1.43.1
prop-types:
specifier: ^15.8.1
version: 15.8.1
@@ -2522,8 +2545,8 @@ importers:
specifier: ^18.2.0
version: 18.2.0
react-router-dom:
- specifier: ^6.21.3
- version: 6.22.1(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^6.22.3
+ version: 6.22.3(react-dom@18.2.0)(react@18.2.0)
sinon:
specifier: ^15.2.0
version: 15.2.0
@@ -2757,14 +2780,14 @@ packages:
engines: {node: '>=16.0.0'}
dev: true
- /@babel/cli@7.23.9(@babel/core@7.24.3):
- resolution: {integrity: sha512-vB1UXmGDNEhcf1jNAHKT9IlYk1R+hehVTLFlCLHBi8gfuHQGP6uRjgXVYU0EVlI/qwAWpstqkBdf2aez3/z/5Q==}
+ /@babel/cli@7.24.1(@babel/core@7.24.4):
+ resolution: {integrity: sha512-HbmrtxyFUr34LwAlV9jS+sSIjUp4FpdtIMGwgufY3AsxrIfsh/HxlMTywsONAZsU0RMYbZtbZFpUCrSGs7o0EA==}
engines: {node: '>=6.9.0'}
hasBin: true
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@jridgewell/trace-mapping': 0.3.25
commander: 4.1.1
convert-source-map: 2.0.0
@@ -2784,21 +2807,21 @@ packages:
'@babel/highlight': 7.24.2
picocolors: 1.0.0
- /@babel/compat-data@7.24.1:
- resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==}
+ /@babel/compat-data@7.24.4:
+ resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==}
engines: {node: '>=6.9.0'}
- /@babel/core@7.24.3:
- resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==}
+ /@babel/core@7.24.4:
+ resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==}
engines: {node: '>=6.9.0'}
dependencies:
'@ampproject/remapping': 2.3.0
'@babel/code-frame': 7.24.2
- '@babel/generator': 7.24.1
+ '@babel/generator': 7.24.4
'@babel/helper-compilation-targets': 7.23.6
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
- '@babel/helpers': 7.24.1
- '@babel/parser': 7.24.1
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4)
+ '@babel/helpers': 7.24.4
+ '@babel/parser': 7.24.4
'@babel/template': 7.24.0
'@babel/traverse': 7.24.1
'@babel/types': 7.24.0
@@ -2810,8 +2833,8 @@ packages:
transitivePeerDependencies:
- supports-color
- /@babel/generator@7.24.1:
- resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==}
+ /@babel/generator@7.24.4:
+ resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.24.0
@@ -2835,46 +2858,46 @@ packages:
resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/compat-data': 7.24.1
+ '@babel/compat-data': 7.24.4
'@babel/helper-validator-option': 7.23.5
browserslist: 4.23.0
lru-cache: 5.1.1
semver: 6.3.1
- /@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3):
- resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==}
+ /@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.24.4):
+ resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-annotate-as-pure': 7.22.5
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-function-name': 7.23.0
'@babel/helper-member-expression-to-functions': 7.23.0
'@babel/helper-optimise-call-expression': 7.22.5
- '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3)
+ '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4)
'@babel/helper-skip-transparent-expression-wrappers': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
semver: 6.3.1
- /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3):
+ /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.4):
resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-annotate-as-pure': 7.22.5
regexpu-core: 5.3.2
semver: 6.3.1
- /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3):
+ /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.4):
resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-compilation-targets': 7.23.6
'@babel/helper-plugin-utils': 7.24.0
debug: 4.3.4(supports-color@8.1.1)
@@ -2912,13 +2935,13 @@ packages:
dependencies:
'@babel/types': 7.24.0
- /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3):
+ /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4):
resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-module-imports': 7.24.3
'@babel/helper-simple-access': 7.22.5
@@ -2935,24 +2958,24 @@ packages:
resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==}
engines: {node: '>=6.9.0'}
- /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3):
+ /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.4):
resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-annotate-as-pure': 7.22.5
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-wrap-function': 7.22.20
- /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3):
+ /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-member-expression-to-functions': 7.23.0
'@babel/helper-optimise-call-expression': 7.22.5
@@ -2995,8 +3018,8 @@ packages:
'@babel/template': 7.24.0
'@babel/types': 7.24.0
- /@babel/helpers@7.24.1:
- resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==}
+ /@babel/helpers@7.24.4:
+ resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/template': 7.24.0
@@ -3014,15 +3037,15 @@ packages:
js-tokens: 4.0.0
picocolors: 1.0.0
- /@babel/node@7.23.9(@babel/core@7.24.3):
+ /@babel/node@7.23.9(@babel/core@7.24.4):
resolution: {integrity: sha512-/d4ju/POwlGIJlZ+NqWH1qu61wt6ZlTZZZutrK2MOSdaH1JCh726nLw/GSvAjG+LTY6CO9SsB8uWcttnFKm6yg==}
engines: {node: '>=6.9.0'}
hasBin: true
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/register': 7.23.7(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/register': 7.23.7(@babel/core@7.24.4)
commander: 4.1.1
core-js: 3.32.1
node-environment-flags: 1.0.6
@@ -3030,1105 +3053,1116 @@ packages:
v8flags: 3.2.0
dev: true
- /@babel/parser@7.24.1:
- resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==}
+ /@babel/parser@7.24.4:
+ resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
'@babel/types': 7.24.0
- /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.4(@babel/core@7.24.4):
+ resolution: {integrity: sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.24.4
+ dependencies:
+ '@babel/core': 7.24.4
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-plugin-utils': 7.24.0
+
+ /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
'@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3)
+ '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4)
- /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.24.3):
+ /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.24.4):
resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-plugin-utils': 7.24.0
- '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3)
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3)
+ '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4)
dev: false
- /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.3):
+ /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.4):
resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-proposal-export-default-from@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-proposal-export-default-from@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-+0hrgGGV3xyYIjOrD/bUZk/iUwOIGuoANfRfVg1cPhYBxF+TIXSEcc42DqzBICmWsnAQ+SfKedY0bj8QD+LuMg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.24.3)
+ '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.24.4)
dev: false
- /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.24.3):
+ /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.24.4):
resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4)
dev: false
- /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.24.3):
+ /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.24.4):
resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4)
dev: false
- /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.3):
+ /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.4):
resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/compat-data': 7.24.1
- '@babel/core': 7.24.3
+ '@babel/compat-data': 7.24.4
+ '@babel/core': 7.24.4
'@babel/helper-compilation-targets': 7.23.6
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3)
- '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4)
+ '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4)
- /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.24.3):
+ /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.24.4):
resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4)
dev: false
- /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.24.3):
+ /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.24.4):
resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
'@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4)
dev: false
- /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.24.3):
+ /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.24.4):
resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
dev: true
- /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3):
+ /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4):
resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
- /@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.24.3):
+ /@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.24.4):
resolution: {integrity: sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
+ '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4)
dev: true
- /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3):
+ /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.4):
resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3):
+ /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.4):
resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3):
+ /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.4):
resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3):
+ /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.4):
resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-export-default-from@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-syntax-export-default-from@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-cNXSxv9eTkGUtd0PsNMK8Yx5xeScxfpWOUAxE+ZPAXXEcAMOC3fk7LRdXq5fvpra2pLx2p1YtkAhpUbB2SwaRA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
dev: false
- /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3):
+ /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.4):
resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
dev: false
- /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3):
+ /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.4):
resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3):
+ /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.4):
resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3):
+ /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.4):
resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3):
+ /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.4):
resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3):
+ /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.4):
resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3):
+ /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.4):
resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3):
+ /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.4):
resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3):
+ /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.4):
resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3):
+ /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.4):
resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3):
+ /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.4):
resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3):
+ /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.4):
resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3):
+ /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.4):
resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-plugin-utils': 7.24.0
- '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3)
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3)
+ '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4)
- /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-module-imports': 7.24.3
'@babel/helper-plugin-utils': 7.24.0
- '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3)
+ '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4)
- /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3):
- resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==}
+ /@babel/plugin-transform-block-scoping@7.24.4(@babel/core@7.24.4):
+ resolution: {integrity: sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3):
- resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==}
+ /@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.24.4):
+ resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4)
- /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-annotate-as-pure': 7.22.5
'@babel/helper-compilation-targets': 7.23.6
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-function-name': 7.23.0
'@babel/helper-plugin-utils': 7.24.0
- '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3)
+ '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4)
'@babel/helper-split-export-declaration': 7.22.6
globals: 11.12.0
- /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
'@babel/template': 7.24.0
- /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4)
- /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3)
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4)
- /@babel/plugin-transform-flow-strip-types@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-flow-strip-types@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.3)
+ '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.4)
dev: false
- /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
'@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-compilation-targets': 7.23.6
'@babel/helper-function-name': 7.23.0
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4)
- /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4)
- /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
'@babel/helper-simple-access': 7.22.5
- /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-hoist-variables': 7.22.5
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
'@babel/helper-validator-identifier': 7.22.20
- /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3):
+ /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.4):
resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4)
- /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4)
- /@babel/plugin-transform-object-assign@7.23.3(@babel/core@7.24.3):
- resolution: {integrity: sha512-TPJ6O7gVC2rlQH2hvQGRH273G1xdoloCj9Pc07Q7JbIZYDi+Sv5gaE2fu+r5E7qK4zyt6vj0FbZaZTRU5C3OMA==}
+ /@babel/plugin-transform-object-assign@7.24.1(@babel/core@7.24.4):
+ resolution: {integrity: sha512-I1kctor9iKtupb7jv7FyjApHCuKLBKCblVAeHVK9PB6FW7GI0ac6RtobC3MwwJy8CZ1JxuhQmnbrsqI5G8hAIg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-compilation-targets': 7.23.6
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3)
- '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4)
+ '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4)
- /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3)
+ '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4)
- /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4)
- /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
'@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4)
- /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
+ '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4)
- /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-react-constant-elements@7.23.3(@babel/core@7.24.3):
- resolution: {integrity: sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==}
+ /@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.4):
+ resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
dev: true
- /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3):
+ /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.4):
resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4)
dev: true
- /@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3):
+ /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.4):
resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-annotate-as-pure': 7.22.5
'@babel/helper-module-imports': 7.24.3
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3)
+ '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4)
'@babel/types': 7.24.0
- /@babel/plugin-transform-react-pure-annotations@7.23.3(@babel/core@7.24.3):
- resolution: {integrity: sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==}
+ /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.4):
+ resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-annotate-as-pure': 7.22.5
'@babel/helper-plugin-utils': 7.24.0
dev: true
- /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
regenerator-transform: 0.15.2
- /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.3):
+ /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.4):
resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-module-imports': 7.24.3
'@babel/helper-plugin-utils': 7.24.0
- babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.3)
- babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.3)
- babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.3)
+ babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.4)
+ babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.4)
+ babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.4)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
'@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-annotate-as-pure': 7.22.5
- '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
+ '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
- '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3)
+ '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4)
- /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
- /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3):
+ /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4)
'@babel/helper-plugin-utils': 7.24.0
- /@babel/preset-env@7.24.3(@babel/core@7.24.3):
- resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==}
+ /@babel/preset-env@7.24.4(@babel/core@7.24.4):
+ resolution: {integrity: sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/compat-data': 7.24.1
- '@babel/core': 7.24.3
+ '@babel/compat-data': 7.24.4
+ '@babel/core': 7.24.4
'@babel/helper-compilation-targets': 7.23.6
'@babel/helper-plugin-utils': 7.24.0
'@babel/helper-validator-option': 7.23.5
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3)
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.3)
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3)
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3)
- '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3)
- '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.3)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3)
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.3)
- '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.3)
- '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.3)
- '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-block-scoping': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-class-static-block': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-destructuring': /@minh.nguyen/plugin-transform-destructuring@7.5.2(@babel/core@7.24.3)
- '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.3)
- '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-object-rest-spread': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-private-property-in-object': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-typeof-symbol': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.3)
- '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.3)
- babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.3)
- babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.3)
- babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.3)
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.4(@babel/core@7.24.4)
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4)
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4)
+ '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.4)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.4)
+ '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.4)
+ '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-block-scoping': 7.24.4(@babel/core@7.24.4)
+ '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.24.4)
+ '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-destructuring': /@minh.nguyen/plugin-transform-destructuring@7.5.2(@babel/core@7.24.4)
+ '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.4)
+ '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-object-rest-spread': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-private-property-in-object': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-typeof-symbol': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.4)
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.4)
+ babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.4)
+ babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.4)
+ babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.4)
core-js-compat: 3.36.1
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- /@babel/preset-flow@7.24.1(@babel/core@7.24.3):
+ /@babel/preset-flow@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-sWCV2G9pcqZf+JHyv/RyqEIpFypxdCSxWIxQjpdaQxenNog7cN1pr76hg8u0Fz8Qgg0H4ETkGcJnXL8d4j0PPA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
'@babel/helper-validator-option': 7.23.5
- '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.3)
+ '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.4)
dev: false
- /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3):
+ /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.4):
resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
'@babel/types': 7.24.0
esutils: 2.0.3
- /@babel/preset-react@7.23.3(@babel/core@7.24.3):
- resolution: {integrity: sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==}
+ /@babel/preset-react@7.24.1(@babel/core@7.24.4):
+ resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
'@babel/helper-validator-option': 7.23.5
- '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3)
- '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.3)
- '@babel/plugin-transform-react-pure-annotations': 7.23.3(@babel/core@7.24.3)
+ '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4)
+ '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.4)
+ '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.4)
dev: true
- /@babel/preset-typescript@7.24.1(@babel/core@7.24.3):
+ /@babel/preset-typescript@7.24.1(@babel/core@7.24.4):
resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
'@babel/helper-validator-option': 7.23.5
- '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3)
+ '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.4)
- /@babel/register@7.23.7(@babel/core@7.24.3):
+ /@babel/register@7.23.7(@babel/core@7.24.4):
resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
clone-deep: 4.0.1
find-cache-dir: 2.1.0
make-dir: 2.1.0
@@ -4138,24 +4172,24 @@ packages:
/@babel/regjsgen@0.8.0:
resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
- /@babel/runtime-corejs2@7.23.9:
- resolution: {integrity: sha512-lwwDy5QfMkO2rmSz9AvLj6j2kWt5a4ulMi1t21vWQEO0kNCFslHoszat8reU/uigIQSUDF31zraZG/qMkcqAlw==}
+ /@babel/runtime-corejs2@7.24.4:
+ resolution: {integrity: sha512-ZCKqyUKt/Coimg+3Kafu43yNetgYnTXzNbEGAgxc81J5sI0qFNbQ613w7PNny+SmijAmGVroL0GDvx5rG/JI5Q==}
engines: {node: '>=6.9.0'}
dependencies:
core-js: 2.6.12
regenerator-runtime: 0.14.0
dev: false
- /@babel/runtime-corejs3@7.24.0:
- resolution: {integrity: sha512-HxiRMOncx3ly6f3fcZ1GVKf+/EROcI9qwPgmij8Czqy6Okm/0T37T4y2ZIlLUuEUFjtM7NRsfdCO8Y3tAiJZew==}
+ /@babel/runtime-corejs3@7.24.4:
+ resolution: {integrity: sha512-VOQOexSilscN24VEY810G/PqtpFvx/z6UqDIjIWbDe2368HhDLkYN5TYwaEz/+eRCUkhJ2WaNLLmQAlxzfWj4w==}
engines: {node: '>=6.9.0'}
dependencies:
core-js-pure: 3.32.1
regenerator-runtime: 0.14.0
dev: false
- /@babel/runtime@7.24.1:
- resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==}
+ /@babel/runtime@7.24.4:
+ resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.14.0
@@ -4165,7 +4199,7 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.24.2
- '@babel/parser': 7.24.1
+ '@babel/parser': 7.24.4
'@babel/types': 7.24.0
/@babel/traverse@7.24.1:
@@ -4173,12 +4207,12 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.24.2
- '@babel/generator': 7.24.1
+ '@babel/generator': 7.24.4
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-function-name': 7.23.0
'@babel/helper-hoist-variables': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
- '@babel/parser': 7.24.1
+ '@babel/parser': 7.24.4
'@babel/types': 7.24.0
debug: 4.3.4(supports-color@8.1.1)
globals: 11.12.0
@@ -4243,7 +4277,7 @@ packages:
lodash.mergewith: 4.6.2
dev: false
- /@chakra-ui/system@2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(react@18.2.0):
+ /@chakra-ui/system@2.6.2(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.2.0):
resolution: {integrity: sha512-EGtpoEjLrUu4W1fHD+a62XR+hzC5YfsWm+6lO0Kybcga3yYEij9beegO0jZgug27V+Rf7vns95VPVP6mFd/DEQ==}
peerDependencies:
'@emotion/react': ^11.0.0
@@ -4257,7 +4291,7 @@ packages:
'@chakra-ui/theme-utils': 2.0.21
'@chakra-ui/utils': 2.0.15
'@emotion/react': 11.11.4(@types/react@18.2.55)(react@18.2.0)
- '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
react: 18.2.0
react-fast-compare: 3.2.2
dev: false
@@ -4382,10 +4416,10 @@ packages:
resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==}
dependencies:
'@babel/helper-module-imports': 7.24.3
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@emotion/hash': 0.9.1
'@emotion/memoize': 0.8.1
- '@emotion/serialize': 1.1.3
+ '@emotion/serialize': 1.1.4
babel-plugin-macros: 3.1.0
convert-source-map: 1.8.0
escape-string-regexp: 4.0.0
@@ -4407,7 +4441,7 @@ packages:
dependencies:
'@emotion/babel-plugin': 11.11.0
'@emotion/cache': 11.11.0
- '@emotion/serialize': 1.1.3
+ '@emotion/serialize': 1.1.4
'@emotion/sheet': 1.2.2
'@emotion/utils': 1.2.1
dev: false
@@ -4461,10 +4495,10 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@emotion/babel-plugin': 11.11.0
'@emotion/cache': 11.11.0
- '@emotion/serialize': 1.1.3
+ '@emotion/serialize': 1.1.4
'@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0)
'@emotion/utils': 1.2.1
'@emotion/weak-memoize': 0.3.1
@@ -4472,8 +4506,8 @@ packages:
hoist-non-react-statics: 3.3.2
react: 18.2.0
- /@emotion/serialize@1.1.3:
- resolution: {integrity: sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==}
+ /@emotion/serialize@1.1.4:
+ resolution: {integrity: sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==}
dependencies:
'@emotion/hash': 0.9.1
'@emotion/memoize': 0.8.1
@@ -4497,8 +4531,8 @@ packages:
/@emotion/sheet@1.2.2:
resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==}
- /@emotion/styled@11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0):
- resolution: {integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==}
+ /@emotion/styled@11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0):
+ resolution: {integrity: sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==}
peerDependencies:
'@emotion/react': ^11.0.0-rc.0
'@types/react': '*'
@@ -4507,11 +4541,11 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@emotion/babel-plugin': 11.11.0
'@emotion/is-prop-valid': 1.2.2
'@emotion/react': 11.11.4(@types/react@18.2.55)(react@18.2.0)
- '@emotion/serialize': 1.1.3
+ '@emotion/serialize': 1.1.4
'@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0)
'@emotion/utils': 1.2.1
'@types/react': 18.2.55
@@ -4967,7 +5001,7 @@ packages:
/@fast-csv/format@4.3.5:
resolution: {integrity: sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
lodash.escaperegexp: 4.1.2
lodash.isboolean: 3.0.3
lodash.isequal: 4.5.0
@@ -4978,7 +5012,7 @@ packages:
/@fast-csv/parse@4.3.6:
resolution: {integrity: sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
lodash.escaperegexp: 4.1.2
lodash.groupby: 4.6.0
lodash.isfunction: 3.0.9
@@ -5015,35 +5049,35 @@ packages:
resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==}
dev: false
- /@fortawesome/fontawesome-common-types@6.5.1:
- resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==}
+ /@fortawesome/fontawesome-common-types@6.5.2:
+ resolution: {integrity: sha512-gBxPg3aVO6J0kpfHNILc+NMhXnqHumFxOmjYCFfOiLZfwhnnfhtsdA2hfJlDnj+8PjAs6kKQPenOTKj3Rf7zHw==}
engines: {node: '>=6'}
requiresBuild: true
dev: false
- /@fortawesome/fontawesome-svg-core@6.5.1:
- resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==}
+ /@fortawesome/fontawesome-svg-core@6.5.2:
+ resolution: {integrity: sha512-5CdaCBGl8Rh9ohNdxeeTMxIj8oc3KNBgIeLMvJosBMdslK/UnEB8rzyDRrbKdL1kDweqBPo4GT9wvnakHWucZw==}
engines: {node: '>=6'}
requiresBuild: true
dependencies:
- '@fortawesome/fontawesome-common-types': 6.5.1
+ '@fortawesome/fontawesome-common-types': 6.5.2
dev: false
- /@fortawesome/free-solid-svg-icons@6.5.1:
- resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==}
+ /@fortawesome/free-solid-svg-icons@6.5.2:
+ resolution: {integrity: sha512-QWFZYXFE7O1Gr1dTIp+D6UcFUF0qElOnZptpi7PBUMylJh+vFmIedVe1Ir6RM1t2tEQLLSV1k7bR4o92M+uqlw==}
engines: {node: '>=6'}
requiresBuild: true
dependencies:
- '@fortawesome/fontawesome-common-types': 6.5.1
+ '@fortawesome/fontawesome-common-types': 6.5.2
dev: false
- /@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0):
+ /@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.2)(react@18.2.0):
resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==}
peerDependencies:
'@fortawesome/fontawesome-svg-core': ~1 || ~6
react: '>=16.3'
dependencies:
- '@fortawesome/fontawesome-svg-core': 6.5.1
+ '@fortawesome/fontawesome-svg-core': 6.5.2
prop-types: 15.8.1
react: 18.2.0
dev: false
@@ -5170,7 +5204,7 @@ packages:
dependencies:
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
jest-mock: 29.7.0
dev: false
@@ -5180,7 +5214,7 @@ packages:
dependencies:
'@jest/types': 29.6.3
'@sinonjs/fake-timers': 10.3.0
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
jest-message-util: 29.7.0
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -5198,7 +5232,7 @@ packages:
dependencies:
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
'@types/yargs': 15.0.19
chalk: 4.1.2
dev: false
@@ -5210,7 +5244,7 @@ packages:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
'@types/yargs': 17.0.32
chalk: 4.1.2
dev: false
@@ -5329,12 +5363,12 @@ packages:
'@types/react': 18.2.55
dev: true
- /@minh.nguyen/plugin-transform-destructuring@7.5.2(@babel/core@7.24.3):
+ /@minh.nguyen/plugin-transform-destructuring@7.5.2(@babel/core@7.24.4):
resolution: {integrity: sha512-DIzWFKl5nzSk9Hj9ZsEXAvvgHiyuAsw52queJMuKqfZOk1BOr9u1i2h0tc6tPF3rQieubP+eX4DPLTKSMpbyMg==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-plugin-utils': 7.24.0
/@mnajdova/enzyme-adapter-react-18@0.2.0(enzyme@3.11.0)(react-dom@18.2.0)(react@18.2.0):
@@ -5369,7 +5403,7 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@floating-ui/react-dom': 2.0.8(react-dom@18.2.0)(react@18.2.0)
'@mui/types': 7.2.14(@types/react@18.2.55)
'@mui/utils': 5.15.14(@types/react@18.2.55)(react@18.2.0)
@@ -5392,7 +5426,7 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@floating-ui/react-dom': 2.0.8(react-dom@18.2.0)(react@18.2.0)
'@mui/types': 7.2.14(@types/react@18.2.55)
'@mui/utils': 5.15.14(@types/react@18.2.55)(react@18.2.0)
@@ -5415,7 +5449,7 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@floating-ui/react-dom': 2.0.8(react-dom@18.2.0)(react@18.2.0)
'@mui/types': 7.2.14(@types/react@18.2.55)
'@mui/utils': 5.15.14(@types/react@18.2.55)(react@18.2.0)
@@ -5431,7 +5465,7 @@ packages:
resolution: {integrity: sha512-on75VMd0XqZfaQW+9pGjSNiqW+ghc5E2ZSLRBXwcXl/C4YzjfyjrLPhrEpKnR9Uym9KXBvxrhoHfPcczYHweyA==}
dev: false
- /@mui/joy@5.0.0-beta.22(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0):
+ /@mui/joy@5.0.0-beta.22(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-XFJd/cWXqt9MMlaUh10QQH893YaRw2CORYRhQovXvaJk7mmt/Sc4q3Fb7ANCXf4xMUPdwqdnvawLkAOAKVHuXg==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -5448,12 +5482,12 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@emotion/react': 11.11.4(@types/react@18.2.55)(react@18.2.0)
- '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
'@mui/base': 5.0.0-beta.31(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@mui/core-downloads-tracker': 5.15.14
- '@mui/system': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react@18.2.0)
+ '@mui/system': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.55)(react@18.2.0)
'@mui/types': 7.2.14(@types/react@18.2.55)
'@mui/utils': 5.15.14(@types/react@18.2.55)(react@18.2.0)
'@types/react': 18.2.55
@@ -5463,7 +5497,7 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: false
- /@mui/material@5.15.4(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0):
+ /@mui/material@5.15.4(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-T/LGRAC+M0c+D3+y67eHwIN5bSje0TxbcJCWR0esNvU11T0QwrX3jedXItPNBwMupF2F5VWCDHBVLlFnN3+ABA==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -5480,12 +5514,12 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@emotion/react': 11.11.4(@types/react@18.2.55)(react@18.2.0)
- '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
'@mui/base': 5.0.0-beta.31(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@mui/core-downloads-tracker': 5.15.14
- '@mui/system': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react@18.2.0)
+ '@mui/system': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.55)(react@18.2.0)
'@mui/types': 7.2.14(@types/react@18.2.55)
'@mui/utils': 5.15.14(@types/react@18.2.55)(react@18.2.0)
'@types/react': 18.2.55
@@ -5509,14 +5543,14 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@mui/utils': 5.15.14(@types/react@18.2.55)(react@18.2.0)
'@types/react': 18.2.55
prop-types: 15.8.1
react: 18.2.0
dev: false
- /@mui/styled-engine@5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(react@18.2.0):
+ /@mui/styled-engine@5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.2.0):
resolution: {integrity: sha512-RILkuVD8gY6PvjZjqnWhz8fu68dVkqhM5+jYWfB5yhlSQKg+2rHkmEwm75XIeAqI3qwOndK6zELK5H6Zxn4NHw==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -5529,16 +5563,16 @@ packages:
'@emotion/styled':
optional: true
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@emotion/cache': 11.11.0
'@emotion/react': 11.11.4(@types/react@18.2.55)(react@18.2.0)
- '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
csstype: 3.1.3
prop-types: 15.8.1
react: 18.2.0
dev: false
- /@mui/system@5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react@18.2.0):
+ /@mui/system@5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.55)(react@18.2.0):
resolution: {integrity: sha512-auXLXzUaCSSOLqJXmsAaq7P96VPRXg2Rrz6OHNV7lr+kB8lobUF+/N84Vd9C4G/wvCXYPs5TYuuGBRhcGbiBGg==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -5554,11 +5588,11 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@emotion/react': 11.11.4(@types/react@18.2.55)(react@18.2.0)
- '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
'@mui/private-theming': 5.15.14(@types/react@18.2.55)(react@18.2.0)
- '@mui/styled-engine': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(react@18.2.0)
+ '@mui/styled-engine': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(react@18.2.0)
'@mui/types': 7.2.14(@types/react@18.2.55)
'@mui/utils': 5.15.14(@types/react@18.2.55)(react@18.2.0)
'@types/react': 18.2.55
@@ -5589,7 +5623,7 @@ packages:
'@types/react':
optional: true
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@types/prop-types': 15.7.12
'@types/react': 18.2.55
prop-types: 15.8.1
@@ -5597,7 +5631,7 @@ packages:
react-is: 18.2.0
dev: false
- /@mui/x-charts@6.19.8(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0):
+ /@mui/x-charts@6.19.8(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-cjwsCJrUPDlMytJHBV+g3gDoSRURiphjclZs8sRnkZ+h4QbHn24K5QkK4bxEj7aCkO2HVJmDE0aqYEg4BnWCOA==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -5613,9 +5647,9 @@ packages:
'@emotion/styled':
optional: true
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@emotion/react': 11.11.4(@types/react@18.2.55)(react@18.2.0)
- '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
'@mui/base': 5.0.0-beta.30(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@mui/material': link:packages/mui-material/build
'@mui/system': link:packages/mui-system/build
@@ -5632,19 +5666,19 @@ packages:
- '@types/react'
dev: false
- /@mui/x-data-grid-generator@7.0.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/icons-material@packages+mui-icons-material+build)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-VnkTeScXs5fYEPGPpTDzZClxb6OupV1I70wH1u2E5TO2bcCF1UTZLFP24rCB7/OFSXlBkcXcQZ0kXrtRIUz7bg==}
+ /@mui/x-data-grid-generator@7.2.0(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/icons-material@packages+mui-icons-material+build)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-lBA60trUaidVk85ndfYN9rvha1rwDFp51PjosY1nb0Ravb1ShGpLrbTzYN+tSRZZdtN9fRuI3WAW3mA9kZh5Og==}
engines: {node: '>=14.0.0'}
peerDependencies:
'@mui/icons-material': ^5.4.1
'@mui/material': ^5.15.14
react: ^17.0.0 || ^18.0.0
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@mui/base': 5.0.0-beta.40(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@mui/icons-material': link:packages/mui-icons-material/build
'@mui/material': link:packages/mui-material/build
- '@mui/x-data-grid-premium': 7.0.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
+ '@mui/x-data-grid-premium': 7.2.0(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
chance: 1.1.11
clsx: 2.1.0
lru-cache: 7.18.3
@@ -5656,21 +5690,21 @@ packages:
- react-dom
dev: false
- /@mui/x-data-grid-premium@7.0.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-Vi9o9jzqsFaUcawx2NGq/8sEEeP4smeOwj0EPKftLRcVogJl6zWonnbM7pvth5Swqqyzu6dntn5vPnW2Q5gSfA==}
+ /@mui/x-data-grid-premium@7.2.0(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-VQuXD289RuSKs5bz4fwHg6WTo1Rmh2QFokCAU66+yJ5ZTpqljp371y9pfvn+OMdGx4C7EkNad73VUKfP/xo1xQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
'@mui/material': ^5.15.14
react: ^17.0.0 || ^18.0.0
react-dom: ^17.0.0 || ^18.0.0
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@mui/material': link:packages/mui-material/build
- '@mui/system': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react@18.2.0)
+ '@mui/system': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.55)(react@18.2.0)
'@mui/utils': 5.15.14(@types/react@18.2.55)(react@18.2.0)
- '@mui/x-data-grid': 7.0.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
- '@mui/x-data-grid-pro': 7.0.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
- '@mui/x-license': 7.0.0(@types/react@18.2.55)(react@18.2.0)
+ '@mui/x-data-grid': 7.2.0(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
+ '@mui/x-data-grid-pro': 7.2.0(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
+ '@mui/x-license': 7.2.0(@types/react@18.2.55)(react@18.2.0)
'@types/format-util': 1.0.4
clsx: 2.1.0
exceljs: 4.4.0
@@ -5684,20 +5718,20 @@ packages:
- '@types/react'
dev: false
- /@mui/x-data-grid-pro@7.0.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-2lauQfkV3gksfFS5cBC992/Xs1PDfOAcr9JV8bQNX2MmwdYFhCJmJR+MYK5VbO72bDrwCDRJC399Pgxnw9Saxg==}
+ /@mui/x-data-grid-pro@7.2.0(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-QZG30g0OspTaD9oRfLDIJGROQwpalZUhI//DVpvTZW2ZvAJAkfR1t38MJzRMdnksPmCE6sdSWUFru8eSvNg1Cg==}
engines: {node: '>=14.0.0'}
peerDependencies:
'@mui/material': ^5.15.14
react: ^17.0.0 || ^18.0.0
react-dom: ^17.0.0 || ^18.0.0
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@mui/material': link:packages/mui-material/build
- '@mui/system': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react@18.2.0)
+ '@mui/system': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.55)(react@18.2.0)
'@mui/utils': 5.15.14(@types/react@18.2.55)(react@18.2.0)
- '@mui/x-data-grid': 7.0.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
- '@mui/x-license': 7.0.0(@types/react@18.2.55)(react@18.2.0)
+ '@mui/x-data-grid': 7.2.0(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
+ '@mui/x-license': 7.2.0(@types/react@18.2.55)(react@18.2.0)
'@types/format-util': 1.0.4
clsx: 2.1.0
prop-types: 15.8.1
@@ -5710,17 +5744,17 @@ packages:
- '@types/react'
dev: false
- /@mui/x-data-grid@7.0.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-Nwwfr+ot/di0oH/pVwIxKV2QD7QyUY/MKkTWRSKzQoJw2aiFQf1Usmvq9Fu1qsCsvMmqIFaToY7972p0cczRjw==}
+ /@mui/x-data-grid@7.2.0(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-WKmFo0eKhj3W7Fv8u5n2XP4UcdzuJ+mEYALiMUDAYsah/hPBH9mA1miXn9DjXF3i3dxgzrTjdJemTgTJxAQZKg==}
engines: {node: '>=14.0.0'}
peerDependencies:
'@mui/material': ^5.15.14
react: ^17.0.0 || ^18.0.0
react-dom: ^17.0.0 || ^18.0.0
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@mui/material': link:packages/mui-material/build
- '@mui/system': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react@18.2.0)
+ '@mui/system': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@types/react@18.2.55)(react@18.2.0)
'@mui/utils': 5.15.14(@types/react@18.2.55)(react@18.2.0)
clsx: 2.1.0
prop-types: 15.8.1
@@ -5733,8 +5767,8 @@ packages:
- '@types/react'
dev: false
- /@mui/x-date-pickers-pro@6.19.8(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(date-fns-jalali@2.21.3-1)(date-fns@2.30.0)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-0E4He1uxcJLYovKG0BByvQq2lTqL0MkpPoIdZwKA7PSP4iexSEn46zGsufgbGrcHEi7ievSUxXbjazpcDQPTiQ==}
+ /@mui/x-date-pickers-pro@6.19.9(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(date-fns-jalali@2.21.3-1)(date-fns@2.30.0)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-0EmWiRoZUc3ZGin3EdJaYNuCS5PA45KHEc9HkCmkT6sAnPeXMVpXrl8TFJvJxFVV6Vp7IYV8RZHC5gSZcfIrfQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
'@emotion/react': ^11.9.0
@@ -5770,14 +5804,14 @@ packages:
moment-jalaali:
optional: true
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@emotion/react': 11.11.4(@types/react@18.2.55)(react@18.2.0)
- '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
'@mui/base': 5.0.0-beta.30(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@mui/material': link:packages/mui-material/build
'@mui/system': link:packages/mui-system/build
'@mui/utils': 5.15.14(@types/react@18.2.55)(react@18.2.0)
- '@mui/x-date-pickers': 6.19.8(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(date-fns-jalali@2.21.3-1)(date-fns@2.30.0)(react-dom@18.2.0)(react@18.2.0)
+ '@mui/x-date-pickers': 6.19.9(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(date-fns-jalali@2.21.3-1)(date-fns@2.30.0)(react-dom@18.2.0)(react@18.2.0)
'@mui/x-license-pro': 6.10.2(@types/react@18.2.55)(react@18.2.0)
clsx: 2.1.0
date-fns: 2.30.0
@@ -5790,8 +5824,8 @@ packages:
- '@types/react'
dev: false
- /@mui/x-date-pickers@6.19.8(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(date-fns-jalali@2.21.3-1)(date-fns@2.30.0)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-6wgc2DoRTR9/mKesku4CVCKr9yYkY3FI2Oy/wshLTs2rFkw2Z10uxXFHBR9ugEtNPNCQv0qqwldElenYI97wsA==}
+ /@mui/x-date-pickers@6.19.9(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(date-fns-jalali@2.21.3-1)(date-fns@2.30.0)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-B2m4Fv/fOme5qmV6zuE3QnWQSvj3zKtI2OvikPz5prpiCcIxqpeytkQ7VfrWH3/Aqd5yhG1Yr4IgbqG0ymIXGg==}
engines: {node: '>=14.0.0'}
peerDependencies:
'@emotion/react': ^11.9.0
@@ -5827,9 +5861,9 @@ packages:
moment-jalaali:
optional: true
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@emotion/react': 11.11.4(@types/react@18.2.55)(react@18.2.0)
- '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
'@mui/base': 5.0.0-beta.30(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@mui/material': link:packages/mui-material/build
'@mui/system': link:packages/mui-system/build
@@ -5852,27 +5886,27 @@ packages:
peerDependencies:
react: ^17.0.0 || ^18.0.0
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@mui/utils': 5.15.14(@types/react@18.2.55)(react@18.2.0)
react: 18.2.0
transitivePeerDependencies:
- '@types/react'
dev: false
- /@mui/x-license@7.0.0(@types/react@18.2.55)(react@18.2.0):
- resolution: {integrity: sha512-WR9OkroKKGmnIno6tw4RzuyCQqI/Y+nbzt1r9sKtBgDQG/LvoBI45lC6zNtVosi8HhGWuXVsHDC7NYsEh31suA==}
+ /@mui/x-license@7.2.0(@types/react@18.2.55)(react@18.2.0):
+ resolution: {integrity: sha512-z9mqsfNPVFqjfxcPgz15o29Vb3FupSImwpMd5CFjZqNasJu3ptLpKxbIUnTtJMUicRdhsVfm3d93Z5XQkq1JuQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
react: ^17.0.0 || ^18.0.0
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@mui/utils': 5.15.14(@types/react@18.2.55)(react@18.2.0)
react: 18.2.0
transitivePeerDependencies:
- '@types/react'
dev: false
- /@mui/x-tree-view@6.17.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0):
+ /@mui/x-tree-view@6.17.0(@emotion/react@11.11.4)(@emotion/styled@11.11.5)(@mui/material@packages+mui-material+build)(@mui/system@packages+mui-system+build)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-09dc2D+Rjg2z8KOaxbUXyPi0aw7fm2jurEtV8Xw48xJ00joLWd5QJm1/v4CarEvaiyhTQzHImNqdgeJW8ZQB6g==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -5883,9 +5917,9 @@ packages:
react: ^17.0.0 || ^18.0.0
react-dom: ^17.0.0 || ^18.0.0
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@emotion/react': 11.11.4(@types/react@18.2.55)(react@18.2.0)
- '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
'@mui/base': 5.0.0-beta.30(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
'@mui/material': link:packages/mui-material/build
'@mui/system': link:packages/mui-system/build
@@ -5923,12 +5957,12 @@ packages:
/@next/env@13.5.1:
resolution: {integrity: sha512-CIMWiOTyflFn/GFx33iYXkgLSQsMQZV4jB91qaj/TfxGaGOXxn8C1j72TaUSPIyN7ziS/AYG46kGmnvuk1oOpg==}
- /@next/env@14.1.4:
- resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==}
+ /@next/env@14.2.1:
+ resolution: {integrity: sha512-qsHJle3GU3CmVx7pUoXcghX4sRN+vINkbLdH611T8ZlsP//grzqVW87BSUgOZeSAD4q7ZdZicdwNe/20U2janA==}
dev: false
- /@next/eslint-plugin-next@14.1.4:
- resolution: {integrity: sha512-n4zYNLSyCo0Ln5b7qxqQeQ34OZKXwgbdcx6kmkQbywr+0k6M3Vinft0T72R6CDAcDrne2IAgSud4uWCzFgc5HA==}
+ /@next/eslint-plugin-next@14.2.1:
+ resolution: {integrity: sha512-Fp+mthEBjkn8r9qd6o4JgxKp0IDEzW0VYHD8ZC05xS5/lFNwHKuOdr2kVhWG7BQCO9L6eeepshM1Wbs2T+LgSg==}
dependencies:
glob: 10.3.10
dev: true
@@ -5941,8 +5975,8 @@ packages:
requiresBuild: true
optional: true
- /@next/swc-darwin-arm64@14.1.4:
- resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==}
+ /@next/swc-darwin-arm64@14.2.1:
+ resolution: {integrity: sha512-kGjnjcIJehEcd3rT/3NAATJQndAEELk0J9GmGMXHSC75TMnvpOhONcjNHbjtcWE5HUQnIHy5JVkatrnYm1QhVw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
@@ -5958,8 +5992,8 @@ packages:
requiresBuild: true
optional: true
- /@next/swc-darwin-x64@14.1.4:
- resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==}
+ /@next/swc-darwin-x64@14.2.1:
+ resolution: {integrity: sha512-dAdWndgdQi7BK2WSXrx4lae7mYcOYjbHJUhvOUnJjMNYrmYhxbbvJ2xElZpxNxdfA6zkqagIB9He2tQk+l16ew==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
@@ -5975,8 +6009,8 @@ packages:
requiresBuild: true
optional: true
- /@next/swc-linux-arm64-gnu@14.1.4:
- resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==}
+ /@next/swc-linux-arm64-gnu@14.2.1:
+ resolution: {integrity: sha512-2ZctfnyFOGvTkoD6L+DtQtO3BfFz4CapoHnyLTXkOxbZkVRgg3TQBUjTD/xKrO1QWeydeo8AWfZRg8539qNKrg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@@ -5992,8 +6026,8 @@ packages:
requiresBuild: true
optional: true
- /@next/swc-linux-arm64-musl@14.1.4:
- resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==}
+ /@next/swc-linux-arm64-musl@14.2.1:
+ resolution: {integrity: sha512-jazZXctiaanemy4r+TPIpFP36t1mMwWCKMsmrTRVChRqE6putyAxZA4PDujx0SnfvZHosjdkx9xIq9BzBB5tWg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@@ -6009,8 +6043,8 @@ packages:
requiresBuild: true
optional: true
- /@next/swc-linux-x64-gnu@14.1.4:
- resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==}
+ /@next/swc-linux-x64-gnu@14.2.1:
+ resolution: {integrity: sha512-VjCHWCjsAzQAAo8lkBOLEIkBZFdfW+Z18qcQ056kL4KpUYc8o59JhLDCBlhg+hINQRgzQ2UPGma2AURGOH0+Qg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@@ -6026,8 +6060,8 @@ packages:
requiresBuild: true
optional: true
- /@next/swc-linux-x64-musl@14.1.4:
- resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==}
+ /@next/swc-linux-x64-musl@14.2.1:
+ resolution: {integrity: sha512-7HZKYKvAp4nAHiHIbY04finRqjeYvkITOGOurP1aLMexIFG/1+oCnqhGogBdc4lao/lkMW1c+AkwWSzSlLasqw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@@ -6043,8 +6077,8 @@ packages:
requiresBuild: true
optional: true
- /@next/swc-win32-arm64-msvc@14.1.4:
- resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==}
+ /@next/swc-win32-arm64-msvc@14.2.1:
+ resolution: {integrity: sha512-YGHklaJ/Cj/F0Xd8jxgj2p8po4JTCi6H7Z3Yics3xJhm9CPIqtl8erlpK1CLv+HInDqEWfXilqatF8YsLxxA2Q==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
@@ -6060,8 +6094,8 @@ packages:
requiresBuild: true
optional: true
- /@next/swc-win32-ia32-msvc@14.1.4:
- resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==}
+ /@next/swc-win32-ia32-msvc@14.2.1:
+ resolution: {integrity: sha512-o+ISKOlvU/L43ZhtAAfCjwIfcwuZstiHVXq/BDsZwGqQE0h/81td95MPHliWCnFoikzWcYqh+hz54ZB2FIT8RA==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
@@ -6077,8 +6111,8 @@ packages:
requiresBuild: true
optional: true
- /@next/swc-win32-x64-msvc@14.1.4:
- resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==}
+ /@next/swc-win32-x64-msvc@14.2.1:
+ resolution: {integrity: sha512-GmRoTiLcvCLifujlisknv4zu9/C4i9r0ktsA8E51EMqJL4bD4CpO7lDYr7SrUxCR0tS4RVcrqKmCak24T0ohaw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -6352,15 +6386,15 @@ packages:
- encoding
dev: true
- /@octokit/core@5.0.0:
- resolution: {integrity: sha512-YbAtMWIrbZ9FCXbLwT9wWB8TyLjq9mxpKdgB3dUNxQcIVTf9hJ70gRPwAcqGZdY6WdJPZ0I7jLaaNDCiloGN2A==}
+ /@octokit/core@5.2.0:
+ resolution: {integrity: sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==}
engines: {node: '>= 18'}
dependencies:
'@octokit/auth-token': 4.0.0
- '@octokit/graphql': 7.0.1
- '@octokit/request': 8.1.1
- '@octokit/request-error': 5.0.0
- '@octokit/types': 11.1.0
+ '@octokit/graphql': 7.1.0
+ '@octokit/request': 8.3.1
+ '@octokit/request-error': 5.1.0
+ '@octokit/types': 13.1.0
before-after-hook: 2.2.2
universal-user-agent: 6.0.0
dev: true
@@ -6382,12 +6416,11 @@ packages:
universal-user-agent: 6.0.0
dev: true
- /@octokit/endpoint@9.0.0:
- resolution: {integrity: sha512-szrQhiqJ88gghWY2Htt8MqUDO6++E/EIXqJ2ZEp5ma3uGS46o7LZAzSLt49myB7rT+Hfw5Y6gO3LmOxGzHijAQ==}
+ /@octokit/endpoint@9.0.5:
+ resolution: {integrity: sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==}
engines: {node: '>= 18'}
dependencies:
- '@octokit/types': 11.1.0
- is-plain-object: 5.0.0
+ '@octokit/types': 13.1.0
universal-user-agent: 6.0.0
dev: true
@@ -6412,12 +6445,12 @@ packages:
- encoding
dev: true
- /@octokit/graphql@7.0.1:
- resolution: {integrity: sha512-T5S3oZ1JOE58gom6MIcrgwZXzTaxRnxBso58xhozxHpOqSTgDS6YNeEUvZ/kRvXgPrRz/KHnZhtb7jUMRi9E6w==}
+ /@octokit/graphql@7.1.0:
+ resolution: {integrity: sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==}
engines: {node: '>= 18'}
dependencies:
- '@octokit/request': 8.1.1
- '@octokit/types': 11.1.0
+ '@octokit/request': 8.3.1
+ '@octokit/types': 13.1.0
universal-user-agent: 6.0.0
dev: true
@@ -6433,8 +6466,12 @@ packages:
resolution: {integrity: sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==}
dev: true
- /@octokit/openapi-types@19.0.2:
- resolution: {integrity: sha512-8li32fUDUeml/ACRp/njCWTsk5t17cfTM1jp9n08pBrqs5cDFJubtjsSnuz56r5Tad6jdEPJld7LxNp9dNcyjQ==}
+ /@octokit/openapi-types@20.0.0:
+ resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==}
+ dev: true
+
+ /@octokit/openapi-types@21.2.0:
+ resolution: {integrity: sha512-xx+Xd6I7rYvul/hgUDqv6TeGX0IOGnhSg9IOeYgd/uI7IAqUy6DE2B6Ipv2M4mWoxaMcWjIzgTIcv8pMO3F3vw==}
dev: true
/@octokit/plugin-enterprise-rest@6.0.1:
@@ -6461,14 +6498,14 @@ packages:
'@octokit/types': 9.3.2
dev: true
- /@octokit/plugin-paginate-rest@9.1.2(@octokit/core@5.0.0):
- resolution: {integrity: sha512-euDbNV6fxX6btsCDnZoZM4vw3zO1nj1Z7TskHAulO6mZ9lHoFTpwll6farf+wh31mlBabgU81bBYdflp0GLVAQ==}
+ /@octokit/plugin-paginate-rest@9.2.1(@octokit/core@5.2.0):
+ resolution: {integrity: sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==}
engines: {node: '>= 18'}
peerDependencies:
- '@octokit/core': '>=5'
+ '@octokit/core': '5'
dependencies:
- '@octokit/core': 5.0.0
- '@octokit/types': 12.1.1
+ '@octokit/core': 5.2.0
+ '@octokit/types': 12.6.0
dev: true
/@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0):
@@ -6487,23 +6524,23 @@ packages:
'@octokit/core': 4.2.4
dev: true
- /@octokit/plugin-request-log@4.0.0(@octokit/core@5.0.0):
+ /@octokit/plugin-request-log@4.0.0(@octokit/core@5.2.0):
resolution: {integrity: sha512-2uJI1COtYCq8Z4yNSnM231TgH50bRkheQ9+aH8TnZanB6QilOnx8RMD2qsnamSOXtDj0ilxvevf5fGsBhBBzKA==}
engines: {node: '>= 18'}
peerDependencies:
'@octokit/core': '>=5'
dependencies:
- '@octokit/core': 5.0.0
+ '@octokit/core': 5.2.0
dev: true
- /@octokit/plugin-rest-endpoint-methods@10.1.2(@octokit/core@5.0.0):
- resolution: {integrity: sha512-JztgZ82CY4JNlPTuF0jh4iWuuGpEi5czFCoXyAbMg4F2XyFBbG5DWAKfa3odRvdZww6Df1tQgBKnqpd9X0WF9g==}
+ /@octokit/plugin-rest-endpoint-methods@10.4.1(@octokit/core@5.2.0):
+ resolution: {integrity: sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==}
engines: {node: '>= 18'}
peerDependencies:
- '@octokit/core': '>=5'
+ '@octokit/core': '5'
dependencies:
- '@octokit/core': 5.0.0
- '@octokit/types': 12.1.1
+ '@octokit/core': 5.2.0
+ '@octokit/types': 12.6.0
dev: true
/@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0):
@@ -6543,11 +6580,11 @@ packages:
once: 1.4.0
dev: true
- /@octokit/request-error@5.0.0:
- resolution: {integrity: sha512-1ue0DH0Lif5iEqT52+Rf/hf0RmGO9NWFjrzmrkArpG9trFfDM/efx00BJHdLGuro4BR/gECxCU2Twf5OKrRFsQ==}
+ /@octokit/request-error@5.1.0:
+ resolution: {integrity: sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==}
engines: {node: '>= 18'}
dependencies:
- '@octokit/types': 11.1.0
+ '@octokit/types': 13.1.0
deprecation: 2.3.1
once: 1.4.0
dev: true
@@ -6579,14 +6616,13 @@ packages:
- encoding
dev: true
- /@octokit/request@8.1.1:
- resolution: {integrity: sha512-8N+tdUz4aCqQmXl8FpHYfKG9GelDFd7XGVzyN8rc6WxVlYcfpHECnuRkgquzz+WzvHTK62co5di8gSXnzASZPQ==}
+ /@octokit/request@8.3.1:
+ resolution: {integrity: sha512-fin4cl5eHN5Ybmb/gtn7YZ+ycyUlcyqqkg5lfxeSChqj7sUt6TNaJPehREi+0PABKLREYL8pfaUhH3TicEWNoA==}
engines: {node: '>= 18'}
dependencies:
- '@octokit/endpoint': 9.0.0
- '@octokit/request-error': 5.0.0
- '@octokit/types': 11.1.0
- is-plain-object: 5.0.0
+ '@octokit/endpoint': 9.0.5
+ '@octokit/request-error': 5.1.0
+ '@octokit/types': 13.1.0
universal-user-agent: 6.0.0
dev: true
@@ -6613,14 +6649,14 @@ packages:
- encoding
dev: true
- /@octokit/rest@20.0.2:
- resolution: {integrity: sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ==}
+ /@octokit/rest@20.1.0:
+ resolution: {integrity: sha512-STVO3itHQLrp80lvcYB2UIKoeil5Ctsgd2s1AM+du3HqZIR35ZH7WE9HLwUOLXH0myA0y3AGNPo8gZtcgIbw0g==}
engines: {node: '>= 18'}
dependencies:
- '@octokit/core': 5.0.0
- '@octokit/plugin-paginate-rest': 9.1.2(@octokit/core@5.0.0)
- '@octokit/plugin-request-log': 4.0.0(@octokit/core@5.0.0)
- '@octokit/plugin-rest-endpoint-methods': 10.1.2(@octokit/core@5.0.0)
+ '@octokit/core': 5.2.0
+ '@octokit/plugin-paginate-rest': 9.2.1(@octokit/core@5.2.0)
+ '@octokit/plugin-request-log': 4.0.0(@octokit/core@5.2.0)
+ '@octokit/plugin-rest-endpoint-methods': 10.4.1(@octokit/core@5.2.0)
dev: true
/@octokit/tsconfig@1.0.2:
@@ -6633,16 +6669,16 @@ packages:
'@octokit/openapi-types': 18.0.0
dev: true
- /@octokit/types@11.1.0:
- resolution: {integrity: sha512-Fz0+7GyLm/bHt8fwEqgvRBWwIV1S6wRRyq+V6exRKLVWaKGsuy6H9QFYeBVDV7rK6fO3XwHgQOPxv+cLj2zpXQ==}
+ /@octokit/types@12.6.0:
+ resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==}
dependencies:
- '@octokit/openapi-types': 18.0.0
+ '@octokit/openapi-types': 20.0.0
dev: true
- /@octokit/types@12.1.1:
- resolution: {integrity: sha512-qnJTldJ1NyGT5MTsCg/Zi+y2IFHZ1Jo5+njNCjJ9FcainV7LjuHgmB697kA0g4MjZeDAJsM3B45iqCVsCLVFZg==}
+ /@octokit/types@13.1.0:
+ resolution: {integrity: sha512-nBwAFOYqVUUJ2AZFK4ZzESQptaAVqdTDKk8gE0Xr0o99WuPDSrhUC38x0F40xD9OUxXhOOuZKWNNVVLPSHQDvQ==}
dependencies:
- '@octokit/openapi-types': 19.0.2
+ '@octokit/openapi-types': 21.2.0
dev: true
/@octokit/types@6.41.0:
@@ -6669,13 +6705,12 @@ packages:
requiresBuild: true
optional: true
- /@playwright/test@1.42.1:
- resolution: {integrity: sha512-Gq9rmS54mjBL/7/MvBaNOBwbfnh7beHvS6oS4srqXFcQHpQCV1+c8JXWE8VLPyRDhgS3H8x8A7hztqI9VnwrAQ==}
+ /@playwright/test@1.43.1:
+ resolution: {integrity: sha512-HgtQzFgNEEo4TE22K/X7sYTYNqEMMTZmFS8kTq6m8hXj+m1D8TgwgIbumHddJa9h4yl4GkKb8/bgAl2+g7eDgA==}
engines: {node: '>=16'}
hasBin: true
dependencies:
- playwright: 1.42.1
- dev: true
+ playwright: 1.43.1
/@polka/url@1.0.0-next.21:
resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
@@ -6724,7 +6759,7 @@ packages:
chalk: 4.1.2
command-exists: 1.2.9
deepmerge: 4.3.1
- envinfo: 7.11.1
+ envinfo: 7.12.0
execa: 5.1.1
hermes-profile-transformer: 0.0.6
node-stream-zip: 1.15.0
@@ -6855,95 +6890,95 @@ packages:
engines: {node: '>=18'}
dev: false
- /@react-native/babel-plugin-codegen@0.73.4(@babel/preset-env@7.24.3):
+ /@react-native/babel-plugin-codegen@0.73.4(@babel/preset-env@7.24.4):
resolution: {integrity: sha512-XzRd8MJGo4Zc5KsphDHBYJzS1ryOHg8I2gOZDAUCGcwLFhdyGu1zBNDJYH2GFyDrInn9TzAbRIf3d4O+eltXQQ==}
engines: {node: '>=18'}
dependencies:
- '@react-native/codegen': 0.73.3(@babel/preset-env@7.24.3)
+ '@react-native/codegen': 0.73.3(@babel/preset-env@7.24.4)
transitivePeerDependencies:
- '@babel/preset-env'
- supports-color
dev: false
- /@react-native/babel-preset@0.73.21(@babel/core@7.24.3)(@babel/preset-env@7.24.3):
+ /@react-native/babel-preset@0.73.21(@babel/core@7.24.4)(@babel/preset-env@7.24.4):
resolution: {integrity: sha512-WlFttNnySKQMeujN09fRmrdWqh46QyJluM5jdtDNrkl/2Hx6N4XeDUGhABvConeK95OidVO7sFFf7sNebVXogA==}
engines: {node: '>=18'}
peerDependencies:
- '@babel/core': ^7.23.9
- dependencies:
- '@babel/core': 7.24.3
- '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.24.3)
- '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.3)
- '@babel/plugin-proposal-export-default-from': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.3)
- '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.24.3)
- '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.3)
- '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.24.3)
- '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.3)
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3)
- '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3)
- '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-block-scoping': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-destructuring': /@minh.nguyen/plugin-transform-destructuring@7.5.2(@babel/core@7.24.3)
- '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.3)
- '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-private-property-in-object': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3)
- '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-runtime': 7.24.3(@babel/core@7.24.3)
- '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.3)
+ '@babel/core': ^7.24.4
+ dependencies:
+ '@babel/core': 7.24.4
+ '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.24.4)
+ '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.4)
+ '@babel/plugin-proposal-export-default-from': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.4)
+ '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.24.4)
+ '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.4)
+ '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.24.4)
+ '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.4)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4)
+ '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4)
+ '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-block-scoping': 7.24.4(@babel/core@7.24.4)
+ '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-destructuring': /@minh.nguyen/plugin-transform-destructuring@7.5.2(@babel/core@7.24.4)
+ '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.4)
+ '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-private-property-in-object': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4)
+ '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-runtime': 7.24.3(@babel/core@7.24.4)
+ '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.4)
'@babel/template': 7.24.0
- '@react-native/babel-plugin-codegen': 0.73.4(@babel/preset-env@7.24.3)
- babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.24.3)
+ '@react-native/babel-plugin-codegen': 0.73.4(@babel/preset-env@7.24.4)
+ babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.24.4)
react-refresh: 0.14.0
transitivePeerDependencies:
- '@babel/preset-env'
- supports-color
dev: false
- /@react-native/codegen@0.73.3(@babel/preset-env@7.24.3):
+ /@react-native/codegen@0.73.3(@babel/preset-env@7.24.4):
resolution: {integrity: sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg==}
engines: {node: '>=18'}
peerDependencies:
- '@babel/preset-env': ^7.23.9
+ '@babel/preset-env': ^7.24.4
dependencies:
- '@babel/parser': 7.24.1
- '@babel/preset-env': 7.24.3(@babel/core@7.24.3)
+ '@babel/parser': 7.24.4
+ '@babel/preset-env': 7.24.4(@babel/core@7.24.4)
flow-parser: 0.206.0
glob: 7.2.3
invariant: 2.2.4
- jscodeshift: 0.14.0(@babel/preset-env@7.24.3)
+ jscodeshift: 0.14.0(@babel/preset-env@7.24.4)
mkdirp: 0.5.6
nullthrows: 1.1.1
transitivePeerDependencies:
- supports-color
dev: false
- /@react-native/community-cli-plugin@0.73.17(@babel/core@7.24.3)(@babel/preset-env@7.24.3):
+ /@react-native/community-cli-plugin@0.73.17(@babel/core@7.24.4)(@babel/preset-env@7.24.4):
resolution: {integrity: sha512-F3PXZkcHg+1ARIr6FRQCQiB7ZAA+MQXGmq051metRscoLvgYJwj7dgC8pvgy0kexzUkHu5BNKrZeySzUft3xuQ==}
engines: {node: '>=18'}
dependencies:
'@react-native-community/cli-server-api': 12.3.6
'@react-native-community/cli-tools': 12.3.6
'@react-native/dev-middleware': 0.73.8
- '@react-native/metro-babel-transformer': 0.73.15(@babel/core@7.24.3)(@babel/preset-env@7.24.3)
+ '@react-native/metro-babel-transformer': 0.73.15(@babel/core@7.24.4)(@babel/preset-env@7.24.4)
chalk: 4.1.2
execa: 5.1.1
metro: 0.80.7
@@ -6997,14 +7032,14 @@ packages:
engines: {node: '>=18'}
dev: false
- /@react-native/metro-babel-transformer@0.73.15(@babel/core@7.24.3)(@babel/preset-env@7.24.3):
+ /@react-native/metro-babel-transformer@0.73.15(@babel/core@7.24.4)(@babel/preset-env@7.24.4):
resolution: {integrity: sha512-LlkSGaXCz+xdxc9819plmpsl4P4gZndoFtpjN3GMBIu6f7TBV0GVbyJAU4GE8fuAWPVSVL5ArOcdkWKSbI1klw==}
engines: {node: '>=18'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@react-native/babel-preset': 0.73.21(@babel/core@7.24.3)(@babel/preset-env@7.24.3)
+ '@babel/core': 7.24.4
+ '@react-native/babel-preset': 0.73.21(@babel/core@7.24.4)(@babel/preset-env@7.24.4)
hermes-parser: 0.15.0
nullthrows: 1.1.1
transitivePeerDependencies:
@@ -7024,7 +7059,7 @@ packages:
dependencies:
invariant: 2.2.4
nullthrows: 1.1.1
- react-native: 0.73.6(@babel/core@7.24.3)(@babel/preset-env@7.24.3)(react@18.2.0)
+ react-native: 0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0)
dev: false
/@react-spring/animated@9.7.3(react@18.2.0):
@@ -7075,7 +7110,7 @@ packages:
'@react-spring/shared': 9.7.3(react@18.2.0)
'@react-spring/types': 9.7.3
react: 18.2.0
- react-native: 0.73.6(@babel/core@7.24.3)(@babel/preset-env@7.24.3)(react@18.2.0)
+ react-native: 0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0)
dev: false
/@react-spring/rafz@9.7.3:
@@ -7168,7 +7203,7 @@ packages:
react-native:
optional: true
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@types/react-reconciler': 0.26.7
'@types/webxr': 0.5.14
base64-js: 1.5.1
@@ -7176,7 +7211,7 @@ packages:
its-fine: 1.1.3(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
- react-native: 0.73.6(@babel/core@7.24.3)(@babel/preset-env@7.24.3)(react@18.2.0)
+ react-native: 0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0)
react-reconciler: 0.27.0(react@18.2.0)
react-use-measure: 2.1.1(react-dom@18.2.0)(react@18.2.0)
scheduler: 0.21.0
@@ -7185,8 +7220,8 @@ packages:
zustand: 3.7.2(react@18.2.0)
dev: false
- /@remix-run/router@1.15.1:
- resolution: {integrity: sha512-zcU0gM3z+3iqj8UX45AmWY810l3oUmXM7uH4dt5xtzvMhRtYVhKGOmgOd1877dOPPepfCjUv57w+syamWIYe7w==}
+ /@remix-run/router@1.15.3:
+ resolution: {integrity: sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==}
engines: {node: '>=14.0.0'}
/@rollup/plugin-replace@5.0.5(rollup@3.29.4):
@@ -7394,11 +7429,6 @@ packages:
engines: {node: '>=10'}
dev: true
- /@sindresorhus/merge-streams@1.0.0:
- resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==}
- engines: {node: '>=18'}
- dev: true
-
/@sindresorhus/merge-streams@2.2.1:
resolution: {integrity: sha512-255V7MMIKw6aQ43Wbqp9HZ+VHn6acddERTLiiLnlcPLU9PdTq9Aijl12oklAgUEblLWye+vHLzmqBx6f2TGcZw==}
engines: {node: '>=18'}
@@ -7459,14 +7489,14 @@ packages:
resolution: {integrity: sha512-DTuBFbqu4gGfajREEMrkq5jBhcnskinhr4+AnfJEk48zhVeEv3XnUKGIX98B74kxhYsIMfApGGySTn7V3b5yBA==}
engines: {node: '>= 12.13.0', npm: '>= 6.12.0'}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
dev: false
/@slack/logger@4.0.0:
resolution: {integrity: sha512-Wz7QYfPAlG/DR+DfABddUZeNgoeY7d1J39OCR2jR+v7VBsB8ezulDK5szTnDDPDwLH5IWhLvXIHlCFZV7MSKgA==}
engines: {node: '>= 18', npm: '>= 8.6.0'}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
dev: false
/@slack/oauth@2.6.2:
@@ -7476,7 +7506,7 @@ packages:
'@slack/logger': 3.0.0
'@slack/web-api': 6.12.0
'@types/jsonwebtoken': 8.5.9
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
jsonwebtoken: 9.0.0
lodash.isstring: 4.0.1
transitivePeerDependencies:
@@ -7489,7 +7519,7 @@ packages:
dependencies:
'@slack/logger': 3.0.0
'@slack/web-api': 6.12.0
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
'@types/p-queue': 2.3.2
'@types/ws': 7.4.7
eventemitter3: 3.1.2
@@ -7515,7 +7545,7 @@ packages:
'@slack/logger': 3.0.0
'@slack/types': 2.11.0
'@types/is-stream': 1.1.0
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
axios: 1.6.5(debug@4.3.4)
eventemitter3: 3.1.2
form-data: 2.5.1
@@ -7616,11 +7646,22 @@ packages:
'@styled-system/css': 5.1.5
dev: false
+ /@swc/counter@0.1.3:
+ resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
+ dev: false
+
/@swc/helpers@0.5.2:
resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
dependencies:
tslib: 2.6.2
+ /@swc/helpers@0.5.5:
+ resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==}
+ dependencies:
+ '@swc/counter': 0.1.3
+ tslib: 2.6.2
+ dev: false
+
/@szmarczak/http-timer@4.0.6:
resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==}
engines: {node: '>=10'}
@@ -7633,7 +7674,7 @@ packages:
engines: {node: '>=14'}
dependencies:
'@babel/code-frame': 7.24.2
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@types/aria-query': 5.0.1
aria-query: 5.1.3
chalk: 4.1.2
@@ -7641,14 +7682,14 @@ packages:
lz-string: 1.5.0
pretty-format: 27.5.1
- /@testing-library/react@14.2.2(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-SOUuM2ysCvjUWBXTNfQ/ztmnKDmqaiPV3SvoIuyxMUca45rbSWWAT/qB8CUs/JQ/ux/8JFs9DNdFQ3f6jH3crA==}
+ /@testing-library/react@14.3.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ==}
engines: {node: '>=14'}
peerDependencies:
react: ^18.0.0
react-dom: ^18.0.0
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@testing-library/dom': 9.3.4
'@types/react-dom': 18.2.19
react: 18.2.0
@@ -7792,7 +7833,7 @@ packages:
/@types/babel__core@7.20.5:
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
dependencies:
- '@babel/parser': 7.24.1
+ '@babel/parser': 7.24.4
'@babel/types': 7.24.0
'@types/babel__generator': 7.6.4
'@types/babel__template': 7.4.1
@@ -7821,7 +7862,7 @@ packages:
/@types/babel__template@7.4.1:
resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==}
dependencies:
- '@babel/parser': 7.24.1
+ '@babel/parser': 7.24.4
'@babel/types': 7.24.0
dev: true
@@ -7835,7 +7876,7 @@ packages:
resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==}
dependencies:
'@types/connect': 3.4.35
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
dev: false
/@types/cacheable-request@6.0.2:
@@ -7843,30 +7884,30 @@ packages:
dependencies:
'@types/http-cache-semantics': 4.0.1
'@types/keyv': 3.1.4
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
'@types/responselike': 1.0.0
dev: true
/@types/chai-dom@1.11.3:
resolution: {integrity: sha512-EUEZI7uID4ewzxnU7DJXtyvykhQuwe+etJ1wwOiJyQRTH/ifMWKX+ghiXkxCUvNJ6IQDodf0JXhuP6zZcy2qXQ==}
dependencies:
- '@types/chai': 4.3.12
+ '@types/chai': 4.3.14
dev: true
- /@types/chai@4.3.12:
- resolution: {integrity: sha512-zNKDHG/1yxm8Il6uCCVsm+dRdEsJlFoDu73X17y09bId6UwoYww+vFBsAcRzl8knM1sab3Dp1VRikFQwDOtDDw==}
+ /@types/chai@4.3.14:
+ resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==}
dev: true
/@types/cheerio@0.22.31:
resolution: {integrity: sha512-Kt7Cdjjdi2XWSfrZ53v4Of0wG3ZcmaegFXjMmz9tfNrZSkzzo36G0AL1YqSdcIA78Etjt6E609pt5h1xnQkPUw==}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
dev: true
/@types/connect@3.4.35:
resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
dev: false
/@types/cookie@0.4.1:
@@ -7905,11 +7946,11 @@ packages:
/@types/eslint-scope@3.7.4:
resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==}
dependencies:
- '@types/eslint': 8.56.6
+ '@types/eslint': 8.56.9
'@types/estree': 1.0.5
- /@types/eslint@8.56.6:
- resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==}
+ /@types/eslint@8.56.9:
+ resolution: {integrity: sha512-W4W3KcqzjJ0sHg2vAq9vfml6OhsJ53TcUjUqfzzZf/EChUtwspszj/S0pzMxnfRcO55/iGq47dscXw71Fxc4Zg==}
dependencies:
'@types/estree': 1.0.5
'@types/json-schema': 7.0.12
@@ -7920,7 +7961,7 @@ packages:
/@types/express-serve-static-core@4.17.35:
resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
'@types/qs': 6.9.7
'@types/range-parser': 1.2.4
'@types/send': 0.17.1
@@ -7942,7 +7983,7 @@ packages:
resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
dependencies:
'@types/jsonfile': 6.1.1
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
dev: true
/@types/hoist-non-react-statics@3.3.5:
@@ -7966,7 +8007,7 @@ packages:
/@types/is-stream@1.1.0:
resolution: {integrity: sha512-jkZatu4QVbR60mpIzjINmtS1ZF4a/FqdTUTBeQDVOQ2PYyidtwFKr0B5G6ERukKwliq+7mIXvxyppwzG5EgRYg==}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
dev: false
/@types/istanbul-lib-coverage@2.0.6:
@@ -7985,8 +8026,8 @@ packages:
'@types/istanbul-lib-report': 3.0.3
dev: false
- /@types/jscodeshift@0.11.5:
- resolution: {integrity: sha512-7JV0qdblTeWFigevmwFUgROXX395F+MQx6v0YqPn8Bx0B4Sng6alEejz9PENzgLYpG+zL0O4tGdBzc4gKZH8XA==}
+ /@types/jscodeshift@0.11.11:
+ resolution: {integrity: sha512-d7CAfFGOupj5qCDqMODXxNz2/NwCv/Lha78ZFbnr6qpk3K98iSB8I+ig9ERE2+EeYML352VMRsjPyOpeA+04eQ==}
dependencies:
ast-types: 0.14.2
recast: 0.20.5
@@ -8006,19 +8047,19 @@ packages:
/@types/jsonfile@6.1.1:
resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
dev: true
/@types/jsonwebtoken@8.5.9:
resolution: {integrity: sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
dev: false
/@types/keyv@3.1.4:
resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
dev: true
/@types/lodash.mergewith@4.6.7:
@@ -8066,8 +8107,8 @@ packages:
resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
dev: true
- /@types/node@18.19.26:
- resolution: {integrity: sha512-+wiMJsIwLOYCvUqSdKTrfkS8mpTp+MPINe6+Np4TAGFWWRWiBQ5kSq9nZGCSPkzx9mvT+uEukzpX4MOSCydcvw==}
+ /@types/node@18.19.31:
+ resolution: {integrity: sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==}
dependencies:
undici-types: 5.26.5
@@ -8165,13 +8206,13 @@ packages:
/@types/resolve@0.0.8:
resolution: {integrity: sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
dev: true
/@types/responselike@1.0.0:
resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
dev: true
/@types/retry@0.12.0:
@@ -8189,7 +8230,7 @@ packages:
resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==}
dependencies:
'@types/mime': 1.3.2
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
dev: false
/@types/serve-static@1.15.2:
@@ -8197,7 +8238,7 @@ packages:
dependencies:
'@types/http-errors': 2.0.1
'@types/mime': 3.0.1
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
dev: false
/@types/sinon@10.0.20:
@@ -8253,7 +8294,7 @@ packages:
/@types/ws@7.4.7:
resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
dev: false
/@types/yargs-parser@21.0.3:
@@ -8270,8 +8311,8 @@ packages:
dependencies:
'@types/yargs-parser': 21.0.3
- /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.57.0)(typescript@5.4.3):
- resolution: {integrity: sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==}
+ /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.5):
+ resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
'@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
@@ -8282,25 +8323,25 @@ packages:
optional: true
dependencies:
'@eslint-community/regexpp': 4.6.2
- '@typescript-eslint/parser': 6.19.1(eslint@8.57.0)(typescript@5.4.3)
- '@typescript-eslint/scope-manager': 6.19.1
- '@typescript-eslint/type-utils': 6.19.1(eslint@8.57.0)(typescript@5.4.3)
- '@typescript-eslint/utils': 6.19.1(eslint@8.57.0)(typescript@5.4.3)
- '@typescript-eslint/visitor-keys': 6.19.1
+ '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/scope-manager': 6.21.0
+ '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/visitor-keys': 6.21.0
debug: 4.3.4(supports-color@8.1.1)
eslint: 8.57.0
graphemer: 1.4.0
ignore: 5.3.1
natural-compare: 1.4.0
semver: 7.6.0
- ts-api-utils: 1.0.1(typescript@5.4.3)
- typescript: 5.4.3
+ ts-api-utils: 1.0.1(typescript@5.4.5)
+ typescript: 5.4.5
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/parser@6.19.1(eslint@8.57.0)(typescript@5.4.3):
- resolution: {integrity: sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==}
+ /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5):
+ resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
@@ -8309,27 +8350,27 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/scope-manager': 6.19.1
- '@typescript-eslint/types': 6.19.1
- '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.4.3)
- '@typescript-eslint/visitor-keys': 6.19.1
+ '@typescript-eslint/scope-manager': 6.21.0
+ '@typescript-eslint/types': 6.21.0
+ '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.5)
+ '@typescript-eslint/visitor-keys': 6.21.0
debug: 4.3.4(supports-color@8.1.1)
eslint: 8.57.0
- typescript: 5.4.3
+ typescript: 5.4.5
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/scope-manager@6.19.1:
- resolution: {integrity: sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==}
+ /@typescript-eslint/scope-manager@6.21.0:
+ resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
engines: {node: ^16.0.0 || >=18.0.0}
dependencies:
- '@typescript-eslint/types': 6.19.1
- '@typescript-eslint/visitor-keys': 6.19.1
+ '@typescript-eslint/types': 6.21.0
+ '@typescript-eslint/visitor-keys': 6.21.0
dev: true
- /@typescript-eslint/type-utils@6.19.1(eslint@8.57.0)(typescript@5.4.3):
- resolution: {integrity: sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg==}
+ /@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.4.5):
+ resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
@@ -8338,23 +8379,23 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.4.3)
- '@typescript-eslint/utils': 6.19.1(eslint@8.57.0)(typescript@5.4.3)
+ '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.5)
+ '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.5)
debug: 4.3.4(supports-color@8.1.1)
eslint: 8.57.0
- ts-api-utils: 1.0.1(typescript@5.4.3)
- typescript: 5.4.3
+ ts-api-utils: 1.0.1(typescript@5.4.5)
+ typescript: 5.4.5
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/types@6.19.1:
- resolution: {integrity: sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg==}
+ /@typescript-eslint/types@6.21.0:
+ resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
engines: {node: ^16.0.0 || >=18.0.0}
dev: true
- /@typescript-eslint/typescript-estree@6.19.1(typescript@5.4.3):
- resolution: {integrity: sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA==}
+ /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.5):
+ resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
typescript: '*'
@@ -8362,21 +8403,21 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/types': 6.19.1
- '@typescript-eslint/visitor-keys': 6.19.1
+ '@typescript-eslint/types': 6.21.0
+ '@typescript-eslint/visitor-keys': 6.21.0
debug: 4.3.4(supports-color@8.1.1)
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.3
semver: 7.6.0
- ts-api-utils: 1.0.1(typescript@5.4.3)
- typescript: 5.4.3
+ ts-api-utils: 1.0.1(typescript@5.4.5)
+ typescript: 5.4.5
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/utils@6.19.1(eslint@8.57.0)(typescript@5.4.3):
- resolution: {integrity: sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w==}
+ /@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.4.5):
+ resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
@@ -8384,9 +8425,9 @@ packages:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
'@types/json-schema': 7.0.12
'@types/semver': 7.5.0
- '@typescript-eslint/scope-manager': 6.19.1
- '@typescript-eslint/types': 6.19.1
- '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.4.3)
+ '@typescript-eslint/scope-manager': 6.21.0
+ '@typescript-eslint/types': 6.21.0
+ '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.5)
eslint: 8.57.0
semver: 7.6.0
transitivePeerDependencies:
@@ -8394,11 +8435,11 @@ packages:
- typescript
dev: true
- /@typescript-eslint/visitor-keys@6.19.1:
- resolution: {integrity: sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==}
+ /@typescript-eslint/visitor-keys@6.21.0:
+ resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
engines: {node: ^16.0.0 || >=18.0.0}
dependencies:
- '@typescript-eslint/types': 6.19.1
+ '@typescript-eslint/types': 6.21.0
eslint-visitor-keys: 3.4.3
dev: true
@@ -8406,18 +8447,18 @@ packages:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
dev: true
- /@vitejs/plugin-react@4.2.1(vite@5.2.2):
+ /@vitejs/plugin-react@4.2.1(vite@5.2.8):
resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
vite: ^4.2.0 || ^5.0.0
dependencies:
- '@babel/core': 7.24.3
- '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.3)
- '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.4)
'@types/babel__core': 7.20.5
react-refresh: 0.14.0
- vite: 5.2.2(@types/node@18.19.26)
+ vite: 5.2.8(@types/node@18.19.31)
transitivePeerDependencies:
- supports-color
dev: true
@@ -8521,7 +8562,7 @@ packages:
webpack-cli: 5.x.x
dependencies:
webpack: 5.90.3(esbuild@0.19.11)(webpack-cli@5.1.4)
- webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3)
+ webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.90.3)
/@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.90.3):
resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==}
@@ -8531,7 +8572,7 @@ packages:
webpack-cli: 5.x.x
dependencies:
webpack: 5.90.3(esbuild@0.19.11)(webpack-cli@5.1.4)
- webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3)
+ webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.90.3)
/@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.90.3):
resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==}
@@ -8545,13 +8586,13 @@ packages:
optional: true
dependencies:
webpack: 5.90.3(esbuild@0.19.11)(webpack-cli@5.1.4)
- webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3)
+ webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.90.3)
/@wyw-in-js/processor-utils@0.5.0:
resolution: {integrity: sha512-3sRwuDTMy2GmD+44bhCTcBasCrjBexzYRzhxkmMrX49cpVDmQOH+4O7kX5OMRbmzMXe6Z5MsnxIlDlm3bJlcww==}
engines: {node: '>=16.0.0'}
dependencies:
- '@babel/generator': 7.24.1
+ '@babel/generator': 7.24.4
'@wyw-in-js/shared': 0.5.0
transitivePeerDependencies:
- supports-color
@@ -8568,20 +8609,20 @@ packages:
- supports-color
dev: false
- /@wyw-in-js/transform@0.5.0:
+ /@wyw-in-js/transform@0.5.0(patch_hash=zicb4vap2prvslgwedcxhpcmvy):
resolution: {integrity: sha512-tpa2/FsB30fdXB1E+9MmfxQYbRgLv/+VMKzpBKNraDH39zwnA2eGGAEho5gpqK40cEV7NH6zhVbaBcEnV0HQyw==}
engines: {node: '>=16.0.0'}
dependencies:
- '@babel/core': 7.24.3
- '@babel/generator': 7.24.1
+ '@babel/core': 7.24.4
+ '@babel/generator': 7.24.4
'@babel/helper-module-imports': 7.24.3
- '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3)
+ '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4)
'@babel/template': 7.24.0
'@babel/traverse': 7.24.1
'@babel/types': 7.24.0
'@wyw-in-js/processor-utils': 0.5.0
'@wyw-in-js/shared': 0.5.0
- babel-merge: 3.0.0(@babel/core@7.24.3)
+ babel-merge: 3.0.0(@babel/core@7.24.4)
cosmiconfig: 8.2.0
happy-dom: 12.10.3
source-map: 0.7.4
@@ -8590,6 +8631,7 @@ packages:
transitivePeerDependencies:
- supports-color
dev: false
+ patched: true
/@xtuc/ieee754@1.2.0:
resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
@@ -8983,21 +9025,6 @@ packages:
dequal: 2.0.3
dev: true
- /arr-diff@4.0.0:
- resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==}
- engines: {node: '>=0.10.0'}
- dev: false
-
- /arr-flatten@1.1.0:
- resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==}
- engines: {node: '>=0.10.0'}
- dev: false
-
- /arr-union@3.1.0:
- resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==}
- engines: {node: '>=0.10.0'}
- dev: false
-
/array-buffer-byte-length@1.0.1:
resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
engines: {node: '>= 0.4'}
@@ -9040,11 +9067,6 @@ packages:
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
engines: {node: '>=8'}
- /array-unique@0.3.2:
- resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==}
- engines: {node: '>=0.10.0'}
- dev: false
-
/array.prototype.filter@1.0.1:
resolution: {integrity: sha512-Dk3Ty7N42Odk7PjU/Ci3zT4pLj20YvuVnneG/58ICM6bt4Ij5kZaJTVQ9TSaWaIECX2sFyz4KItkVZqHNnciqw==}
engines: {node: '>= 0.4'}
@@ -9180,11 +9202,6 @@ packages:
/assertion-error@1.1.0:
resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
- /assign-symbols@1.0.0:
- resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==}
- engines: {node: '>=0.10.0'}
- dev: false
-
/ast-types-flow@0.0.7:
resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==}
dev: true
@@ -9252,12 +9269,6 @@ packages:
engines: {node: '>= 4.0.0'}
dev: false
- /atob@2.1.2:
- resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
- engines: {node: '>= 4.5.0'}
- hasBin: true
- dev: false
-
/autoprefixer@10.4.19(postcss@8.4.38):
resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
engines: {node: ^10 || ^12 || >=14}
@@ -9286,8 +9297,8 @@ packages:
dependencies:
possible-typed-array-names: 1.0.0
- /aws-sdk@2.1585.0:
- resolution: {integrity: sha512-zDJ76hivdnBLH2+hXTO0F5y3Sdx5RRSDCf4EqZILZCUkPLTwaVmKmaU6XO3pyhrMTcWk58m7UBgHFyARE5SCkQ==}
+ /aws-sdk@2.1599.0:
+ resolution: {integrity: sha512-jPb1LAN+s1TLTK+VR3TTJLr//sb3AhhT60Bm9jxB5G/fVeeRczXtBtixNpQ00gksQdkstILYLc9S6MuKMsksxA==}
engines: {node: '>= 10.0.0'}
requiresBuild: true
dependencies:
@@ -9326,34 +9337,34 @@ packages:
resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==}
dev: true
- /babel-core@7.0.0-bridge.0(@babel/core@7.24.3):
+ /babel-core@7.0.0-bridge.0(@babel/core@7.24.4):
resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
dev: false
- /babel-loader@9.1.3(@babel/core@7.24.3)(webpack@5.90.3):
+ /babel-loader@9.1.3(@babel/core@7.24.4)(webpack@5.90.3):
resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==}
engines: {node: '>= 14.15.0'}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
webpack: '>=5'
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
find-cache-dir: 4.0.0
schema-utils: 4.2.0
webpack: 5.90.3(esbuild@0.19.11)(webpack-cli@5.1.4)
dev: true
- /babel-merge@3.0.0(@babel/core@7.24.3):
+ /babel-merge@3.0.0(@babel/core@7.24.4):
resolution: {integrity: sha512-eBOBtHnzt9xvnjpYNI5HmaPp/b2vMveE5XggzqHnQeHJ8mFIBrBv6WZEVIj5jJ2uwTItkqKo9gWzEEcBxEq0yw==}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
deepmerge: 2.2.1
object.omit: 3.0.0
dev: false
@@ -9380,7 +9391,7 @@ packages:
resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==}
engines: {node: '>=10', npm: '>=6'}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
cosmiconfig: 7.0.1
resolve: 1.22.8
@@ -9397,56 +9408,56 @@ packages:
/babel-plugin-optimize-clsx@2.6.2:
resolution: {integrity: sha512-TxgyjdVb7trTAsg/J5ByqJdbBPTYR8yaWLGQGpSxwygw8IFST5gEc1J9QktCGCHCb+69t04DWg9KOE0y2hN30w==}
dependencies:
- '@babel/generator': 7.24.1
+ '@babel/generator': 7.24.4
'@babel/template': 7.24.0
'@babel/types': 7.24.0
find-cache-dir: 3.3.2
lodash: 4.17.21
object-hash: 2.2.0
- /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3):
+ /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.4):
resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/compat-data': 7.24.1
- '@babel/core': 7.24.3
- '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3)
+ '@babel/compat-data': 7.24.4
+ '@babel/core': 7.24.4
+ '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3):
+ /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.4):
resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4)
core-js-compat: 3.36.1
transitivePeerDependencies:
- supports-color
- /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3):
+ /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.4):
resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
- '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3)
+ '@babel/core': 7.24.4
+ '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4)
transitivePeerDependencies:
- supports-color
/babel-plugin-react-remove-properties@0.3.0:
resolution: {integrity: sha512-vbxegtXGyVcUkCvayLzftU95vuvpYFV85pRpeMpohMHeEY46Qe0VNWfkVVcCbaZ12CXHzDFOj0esumATcW83ng==}
- /babel-plugin-tester@11.0.4(@babel/core@7.24.3):
+ /babel-plugin-tester@11.0.4(@babel/core@7.24.4):
resolution: {integrity: sha512-cqswtpSPo0e++rZB0l/54EG17LL25l9gLgh59yXfnmNxX+2lZTIOpx2zt4YI9QIClVXc8xf63J6yWwKkzy0jNg==}
engines: {node: ^14.20.0 || ^16.16.0 || >=18.5.0}
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
core-js: 3.32.1
debug: 4.3.4(supports-color@8.1.1)
lodash.mergewith: 4.6.2
@@ -9456,10 +9467,10 @@ packages:
- supports-color
dev: true
- /babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.24.3):
+ /babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.24.4):
resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==}
dependencies:
- '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.3)
+ '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.4)
transitivePeerDependencies:
- '@babel/core'
dev: false
@@ -9486,19 +9497,6 @@ packages:
engines: {node: ^4.5.0 || >= 5.9}
dev: true
- /base@0.11.2:
- resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- cache-base: 1.0.1
- class-utils: 0.3.6
- component-emitter: 1.3.0
- define-property: 1.0.0
- isobject: 3.0.1
- mixin-deep: 1.3.2
- pascalcase: 0.1.1
- dev: false
-
/before-after-hook@2.2.2:
resolution: {integrity: sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==}
dev: true
@@ -9593,24 +9591,6 @@ packages:
dependencies:
balanced-match: 1.0.2
- /braces@2.3.2:
- resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==}
- engines: {node: '>=0.10.0'}
- dependencies:
- arr-flatten: 1.1.0
- array-unique: 0.3.2
- extend-shallow: 2.0.1
- fill-range: 4.0.0
- isobject: 3.0.1
- repeat-element: 1.1.4
- snapdragon: 0.8.2
- snapdragon-node: 2.1.1
- split-string: 3.1.0
- to-regex: 3.0.2
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/braces@3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
@@ -9813,21 +9793,6 @@ packages:
unique-filename: 3.0.0
dev: true
- /cache-base@1.0.1:
- resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- collection-visit: 1.0.0
- component-emitter: 1.3.0
- get-value: 2.0.6
- has-value: 1.0.0
- isobject: 3.0.1
- set-value: 2.0.1
- to-object-path: 0.3.0
- union-value: 1.0.1
- unset-value: 1.0.0
- dev: false
-
/cacheable-lookup@5.0.4:
resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==}
engines: {node: '>=10.6.0'}
@@ -10096,7 +10061,7 @@ packages:
engines: {node: '>=12.13.0'}
hasBin: true
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
escape-string-regexp: 4.0.0
is-wsl: 2.2.0
lighthouse-logger: 1.4.2
@@ -10111,7 +10076,7 @@ packages:
/chromium-edge-launcher@1.0.0:
resolution: {integrity: sha512-pgtgjNKZ7i5U++1g1PWv75umkHvhVTDOQIZ+sjeUX9483S7Y6MUvO0lrd7ShGlQlFHMN4SwKTCq/X8hWrbv2KA==}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
escape-string-regexp: 4.0.0
is-wsl: 2.2.0
lighthouse-logger: 1.4.2
@@ -10129,16 +10094,6 @@ packages:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'}
- /class-utils@0.3.6:
- resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- arr-union: 3.1.0
- define-property: 0.2.5
- isobject: 3.0.1
- static-extend: 0.1.2
- dev: false
-
/classnames@2.3.2:
resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==}
dev: false
@@ -10153,7 +10108,7 @@ packages:
hasBin: true
dependencies:
archiver: 3.1.1
- aws-sdk: 2.1585.0
+ aws-sdk: 2.1599.0
fs-extra: 6.0.1
glob: 7.2.3
gunzip-maybe: 1.4.2
@@ -10283,14 +10238,6 @@ packages:
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
dev: true
- /collection-visit@1.0.0:
- resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==}
- engines: {node: '>=0.10.0'}
- dependencies:
- map-visit: 1.0.0
- object-visit: 1.0.1
- dev: false
-
/color-convert@1.9.3:
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
dependencies:
@@ -10405,10 +10352,6 @@ packages:
dot-prop: 5.3.0
dev: true
- /component-emitter@1.3.0:
- resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==}
- dev: false
-
/compress-commons@2.1.1:
resolution: {integrity: sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==}
engines: {node: '>= 6'}
@@ -10626,11 +10569,6 @@ packages:
resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
engines: {node: '>= 0.6'}
- /copy-descriptor@0.1.1:
- resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==}
- engines: {node: '>=0.10.0'}
- dev: false
-
/core-js-compat@3.36.1:
resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==}
dependencies:
@@ -10800,7 +10738,7 @@ packages:
/css-jss@10.10.0:
resolution: {integrity: sha512-YyMIS/LsSKEGXEaVJdjonWe18p4vXLo8CMA4FrW/kcaEyqdIGKCFXao31gbJddXEdIxSXFFURWrenBJPlKTgAA==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
jss: 10.10.0
jss-preset-default: 10.10.0
dev: false
@@ -10853,7 +10791,7 @@ packages:
/css-vendor@2.0.8:
resolution: {integrity: sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
is-in-browser: 1.1.3
dev: false
@@ -11048,7 +10986,7 @@ packages:
resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==}
engines: {node: '>=0.11'}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
/date-format@4.0.13:
resolution: {integrity: sha512-bnYCwf8Emc3pTD8pXnre+wfnjGtfi5ncMDKy7+cWZXbmRAsdWkOQHrfC1yz/KiwP5thDp2kCHWYWKBX4HP1hoQ==}
@@ -11127,6 +11065,7 @@ packages:
/decode-uri-component@0.2.2:
resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
engines: {node: '>=0.10'}
+ dev: true
/decompress-response@6.0.0:
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
@@ -11225,28 +11164,6 @@ packages:
has-property-descriptors: 1.0.2
object-keys: 1.1.1
- /define-property@0.2.5:
- resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-descriptor: 0.1.6
- dev: false
-
- /define-property@1.0.0:
- resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-descriptor: 1.0.2
- dev: false
-
- /define-property@2.0.2:
- resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-descriptor: 1.0.2
- isobject: 3.0.1
- dev: false
-
/delay@5.0.0:
resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==}
engines: {node: '>=10'}
@@ -11373,7 +11290,7 @@ packages:
/dom-helpers@5.2.1:
resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
csstype: 3.1.3
dev: false
@@ -11538,7 +11455,7 @@ packages:
dependencies:
'@types/cookie': 0.4.1
'@types/cors': 2.8.12
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
accepts: 1.3.8
base64id: 2.0.0
cookie: 0.4.2
@@ -11592,8 +11509,8 @@ packages:
engines: {node: '>=6'}
dev: true
- /envinfo@7.11.1:
- resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==}
+ /envinfo@7.12.0:
+ resolution: {integrity: sha512-Iw9rQJBGpJRd3rwXm9ft/JiGoAZmLxxJZELYDQoPRZ4USVhkKtIcNBPw6U+/K2mBpaqM25JSV6Yl4Az9vO2wJg==}
engines: {node: '>=4'}
hasBin: true
@@ -11898,13 +11815,13 @@ packages:
dependencies:
confusing-browser-globals: 1.0.11
eslint: 8.57.0
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
object.assign: 4.1.5
object.entries: 1.1.7
semver: 6.3.1
dev: true
- /eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@6.19.1)(@typescript-eslint/parser@6.19.1)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
+ /eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@6.21.0)(@typescript-eslint/parser@6.21.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
resolution: {integrity: sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==}
peerDependencies:
'@typescript-eslint/eslint-plugin': ^5.13.0 || ^6.0.0
@@ -11912,11 +11829,11 @@ packages:
eslint: ^7.32.0 || ^8.2.0
eslint-plugin-import: ^2.25.3
dependencies:
- '@typescript-eslint/eslint-plugin': 6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.57.0)(typescript@5.4.3)
- '@typescript-eslint/parser': 6.19.1(eslint@8.57.0)(typescript@5.4.3)
+ '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.5)
+ '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.5)
eslint: 8.57.0
eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.57.0)
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
dev: true
/eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.7.1)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.34.1)(eslint@8.57.0):
@@ -11931,7 +11848,7 @@ packages:
dependencies:
eslint: 8.57.0
eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.57.0)
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
eslint-plugin-jsx-a11y: 6.7.1(eslint@8.57.0)
eslint-plugin-react: 7.34.1(eslint@8.57.0)
eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0)
@@ -11968,7 +11885,7 @@ packages:
array.prototype.find: 2.2.2
debug: 3.2.7
enhanced-resolve: 0.9.1
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
find-root: 1.1.0
hasown: 2.0.2
interpret: 1.4.0
@@ -11982,7 +11899,7 @@ packages:
- supports-color
dev: true
- /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0):
+ /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0):
resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
engines: {node: '>=4'}
peerDependencies:
@@ -12003,7 +11920,7 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
- '@typescript-eslint/parser': 6.19.1(eslint@8.57.0)(typescript@5.4.3)
+ '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.5)
debug: 3.2.7
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
@@ -12034,7 +11951,7 @@ packages:
lodash.upperfirst: 4.3.1
dev: true
- /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0):
+ /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0):
resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
engines: {node: '>=4'}
peerDependencies:
@@ -12044,7 +11961,7 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
- '@typescript-eslint/parser': 6.19.1(eslint@8.57.0)(typescript@5.4.3)
+ '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.5)
array-includes: 3.1.7
array.prototype.findlastindex: 1.2.3
array.prototype.flat: 1.3.2
@@ -12053,7 +11970,7 @@ packages:
doctrine: 2.1.0
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-webpack@0.13.8)(eslint@8.57.0)
hasown: 2.0.2
is-core-module: 2.13.1
is-glob: 4.0.3
@@ -12075,7 +11992,7 @@ packages:
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
aria-query: 5.3.0
array-includes: 3.1.7
array.prototype.flatmap: 1.3.2
@@ -12094,8 +12011,8 @@ packages:
semver: 6.3.1
dev: true
- /eslint-plugin-mocha@10.4.1(eslint@8.57.0):
- resolution: {integrity: sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA==}
+ /eslint-plugin-mocha@10.4.2(eslint@8.57.0):
+ resolution: {integrity: sha512-cur4dVYnSEWTBwdqIBQFxa/9siAhesu0TX+lbJ4ClE9j0eNMNe6BSx3vkFFNz6tGoveyMyELFXa30f3fvuAVDg==}
engines: {node: '>=14.0.0'}
peerDependencies:
eslint: '>=7.0.0'
@@ -12394,21 +12311,6 @@ packages:
strip-final-newline: 3.0.0
dev: false
- /expand-brackets@2.1.4:
- resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- debug: 2.6.9
- define-property: 0.2.5
- extend-shallow: 2.0.1
- posix-character-classes: 0.1.1
- regex-not: 1.0.2
- snapdragon: 0.8.2
- to-regex: 3.0.2
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/expand-template@2.0.3:
resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
engines: {node: '>=6'}
@@ -12468,14 +12370,7 @@ packages:
engines: {node: '>=0.10.0'}
dependencies:
is-extendable: 0.1.1
-
- /extend-shallow@3.0.2:
- resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==}
- engines: {node: '>=0.10.0'}
- dependencies:
- assign-symbols: 1.0.0
- is-extendable: 1.0.1
- dev: false
+ dev: true
/extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
@@ -12489,22 +12384,6 @@ packages:
tmp: 0.0.33
dev: true
- /extglob@2.0.4:
- resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==}
- engines: {node: '>=0.10.0'}
- dependencies:
- array-unique: 0.3.2
- define-property: 1.0.0
- expand-brackets: 2.1.4
- extend-shallow: 2.0.1
- fragment-cache: 0.2.1
- regex-not: 1.0.2
- snapdragon: 0.8.2
- to-regex: 3.0.2
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/extract-comments@1.1.0:
resolution: {integrity: sha512-dzbZV2AdSSVW/4E7Ti5hZdHWbA+Z80RJsJhr5uiL10oyjl/gy7/o+HI1HwK4/WSZhlq4SNKU3oUzXlM13Qx02Q==}
engines: {node: '>=6'}
@@ -12615,16 +12494,6 @@ packages:
minimatch: 5.1.0
dev: true
- /fill-range@4.0.0:
- resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- extend-shallow: 2.0.1
- is-number: 3.0.0
- repeat-string: 1.6.1
- to-regex-range: 2.1.1
- dev: false
-
/fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
@@ -12640,7 +12509,7 @@ packages:
resolution: {integrity: sha512-TL48Pi1oNHeMOHrKv1bCJUrWZDcD3DIG6AGYVNOnyZPr7Bd/pStN0pL+lfzF5BNoj/FclaoiaLenk4XUIFVYng==}
engines: {node: '>=8'}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
dev: false
/finalhandler@1.1.2:
@@ -12790,11 +12659,6 @@ packages:
dependencies:
is-callable: 1.2.7
- /for-in@1.0.2:
- resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==}
- engines: {node: '>=0.10.0'}
- dev: false
-
/foreground-child@2.0.0:
resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==}
engines: {node: '>=8.0.0'}
@@ -12838,13 +12702,6 @@ packages:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
dev: false
- /fragment-cache@0.2.1:
- resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- map-cache: 0.2.2
- dev: false
-
/framesync@6.1.2:
resolution: {integrity: sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==}
dependencies:
@@ -13090,11 +12947,6 @@ packages:
resolve-pkg-maps: 1.0.0
dev: true
- /get-value@2.0.6:
- resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==}
- engines: {node: '>=0.10.0'}
- dev: false
-
/git-config-path@1.0.1:
resolution: {integrity: sha512-KcJ2dlrrP5DbBnYIZ2nlikALfRhKzNSX0stvv3ImJ+fvC4hXKoV+U+74SV0upg+jlQZbrtQzc0bu6/Zh+7aQbg==}
engines: {node: '>=0.10.0'}
@@ -13276,18 +13128,6 @@ packages:
slash: 4.0.0
dev: true
- /globby@14.0.0:
- resolution: {integrity: sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==}
- engines: {node: '>=18'}
- dependencies:
- '@sindresorhus/merge-streams': 1.0.0
- fast-glob: 3.3.2
- ignore: 5.3.1
- path-type: 5.0.0
- slash: 5.1.0
- unicorn-magic: 0.1.0
- dev: true
-
/globby@14.0.1:
resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==}
engines: {node: '>=18'}
@@ -13480,37 +13320,6 @@ packages:
resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
dev: true
- /has-value@0.3.1:
- resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==}
- engines: {node: '>=0.10.0'}
- dependencies:
- get-value: 2.0.6
- has-values: 0.1.4
- isobject: 2.1.0
- dev: false
-
- /has-value@1.0.0:
- resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==}
- engines: {node: '>=0.10.0'}
- dependencies:
- get-value: 2.0.6
- has-values: 1.0.0
- isobject: 3.0.1
- dev: false
-
- /has-values@0.1.4:
- resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==}
- engines: {node: '>=0.10.0'}
- dev: false
-
- /has-values@1.0.0:
- resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-number: 3.0.0
- kind-of: 4.0.0
- dev: false
-
/has@1.0.3:
resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
engines: {node: '>= 0.4.0'}
@@ -13840,11 +13649,11 @@ packages:
queue: 6.0.2
dev: false
- /imask@7.5.0:
- resolution: {integrity: sha512-eoTEnw67KAamB1zsiYtU35s0Fj1XYZ8mN2q3ZDGO4ot4FtPmBpw9S6kOTj0kaOILdsEA6ZhNtH2TAMXe/NChmQ==}
+ /imask@7.6.0:
+ resolution: {integrity: sha512-6EHsq1q7v5+M4Vas2MGrs2oRpxPRWPwPDiL0HmG1ikBI/0hOwvkxRhVRFQnWIlZcTG7R8iw0az5V+z868qnQ9A==}
engines: {npm: '>=4.0.0'}
dependencies:
- '@babel/runtime-corejs3': 7.24.0
+ '@babel/runtime-corejs3': 7.24.4
dev: false
/immediate@3.0.6:
@@ -13975,22 +13784,6 @@ packages:
resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
engines: {node: '>= 0.10'}
- /is-accessor-descriptor@0.1.6:
- resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==}
- engines: {node: '>=0.10.0'}
- deprecated: Please upgrade to v0.1.7
- dependencies:
- kind-of: 3.2.2
- dev: false
-
- /is-accessor-descriptor@1.0.0:
- resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==}
- engines: {node: '>=0.10.0'}
- deprecated: Please upgrade to v1.0.1
- dependencies:
- kind-of: 6.0.3
- dev: false
-
/is-alphabetical@1.0.4:
resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==}
dev: false
@@ -14049,10 +13842,6 @@ packages:
call-bind: 1.0.7
has-tostringtag: 1.0.2
- /is-buffer@1.1.6:
- resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
- dev: false
-
/is-buffer@2.0.5:
resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==}
engines: {node: '>=4'}
@@ -14074,22 +13863,6 @@ packages:
dependencies:
hasown: 2.0.2
- /is-data-descriptor@0.1.4:
- resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==}
- engines: {node: '>=0.10.0'}
- deprecated: Please upgrade to v0.1.5
- dependencies:
- kind-of: 3.2.2
- dev: false
-
- /is-data-descriptor@1.0.0:
- resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==}
- engines: {node: '>=0.10.0'}
- deprecated: Please upgrade to v1.0.1
- dependencies:
- kind-of: 6.0.3
- dev: false
-
/is-date-object@1.0.5:
resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
engines: {node: '>= 0.4'}
@@ -14104,24 +13877,6 @@ packages:
resolution: {integrity: sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==}
dev: true
- /is-descriptor@0.1.6:
- resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-accessor-descriptor: 0.1.6
- is-data-descriptor: 0.1.4
- kind-of: 5.1.0
- dev: false
-
- /is-descriptor@1.0.2:
- resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-accessor-descriptor: 1.0.0
- is-data-descriptor: 1.0.0
- kind-of: 6.0.3
- dev: false
-
/is-directory@0.3.1:
resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==}
engines: {node: '>=0.10.0'}
@@ -14139,6 +13894,7 @@ packages:
/is-extendable@0.1.1:
resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
engines: {node: '>=0.10.0'}
+ dev: true
/is-extendable@1.0.1:
resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
@@ -14217,13 +13973,6 @@ packages:
dependencies:
has-tostringtag: 1.0.2
- /is-number@3.0.0:
- resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- kind-of: 3.2.2
- dev: false
-
/is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
@@ -14256,6 +14005,7 @@ packages:
/is-plain-object@5.0.0:
resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
engines: {node: '>=0.10.0'}
+ dev: true
/is-port-reachable@4.0.0:
resolution: {integrity: sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==}
@@ -14370,6 +14120,7 @@ packages:
/is-windows@1.0.2:
resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
engines: {node: '>=0.10.0'}
+ dev: true
/is-wsl@1.1.0:
resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==}
@@ -14404,13 +14155,6 @@ packages:
engines: {node: '>=16'}
dev: true
- /isobject@2.1.0:
- resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- isarray: 1.0.0
- dev: false
-
/isobject@3.0.1:
resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
engines: {node: '>=0.10.0'}
@@ -14435,7 +14179,7 @@ packages:
resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==}
engines: {node: '>=8'}
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.0
semver: 6.3.1
@@ -14447,8 +14191,8 @@ packages:
resolution: {integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==}
engines: {node: '>=8'}
dependencies:
- '@babel/core': 7.24.3
- '@babel/parser': 7.24.1
+ '@babel/core': 7.24.4
+ '@babel/parser': 7.24.4
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.0
semver: 6.3.1
@@ -14573,7 +14317,7 @@ packages:
'@jest/environment': 29.7.0
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
jest-mock: 29.7.0
jest-util: 29.7.0
dev: false
@@ -14602,7 +14346,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
jest-util: 29.7.0
dev: false
@@ -14611,7 +14355,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
chalk: 4.1.2
ci-info: 3.9.0
graceful-fs: 4.2.11
@@ -14634,7 +14378,7 @@ packages:
resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==}
engines: {node: '>= 10.13.0'}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
merge-stream: 2.0.0
supports-color: 7.2.0
dev: true
@@ -14643,7 +14387,7 @@ packages:
resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
engines: {node: '>= 10.13.0'}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
merge-stream: 2.0.0
supports-color: 8.1.1
@@ -14651,14 +14395,14 @@ packages:
resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
dev: false
- /jiti@1.19.1:
- resolution: {integrity: sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==}
+ /jiti@1.21.0:
+ resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
hasBin: true
dev: true
@@ -14706,80 +14450,84 @@ packages:
resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==}
dev: false
- /jscodeshift-add-imports@1.0.10(jscodeshift@0.13.1):
+ /jscodeshift-add-imports@1.0.10(jscodeshift@0.15.2):
resolution: {integrity: sha512-VUe9DJ3zkWIR62zSRQnmsOVeyt77yD8knvYNna/PzRZlF9j799hJw5sqTZu4EX16XLIqS3FxWz3nXuGuiw9iyQ==}
peerDependencies:
jscodeshift: ^0.7.0 || ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0
dependencies:
'@babel/traverse': 7.24.1
- jscodeshift: 0.13.1(@babel/preset-env@7.24.3)
- jscodeshift-find-imports: 2.0.4(jscodeshift@0.13.1)
+ jscodeshift: 0.15.2(@babel/preset-env@7.24.4)
+ jscodeshift-find-imports: 2.0.4(jscodeshift@0.15.2)
transitivePeerDependencies:
- supports-color
dev: false
- /jscodeshift-find-imports@2.0.4(jscodeshift@0.13.1):
+ /jscodeshift-find-imports@2.0.4(jscodeshift@0.15.2):
resolution: {integrity: sha512-HxOzjWDOFFSCf8EKSTQGqCxXeRFqZszOywnZ0HuMB9YPDFHVpxftGRsY+QS+Qq8o2qUojlmNU3JEHts5DWYS1A==}
peerDependencies:
jscodeshift: ^0.7.0 || ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0
dependencies:
- jscodeshift: 0.13.1(@babel/preset-env@7.24.3)
+ jscodeshift: 0.15.2(@babel/preset-env@7.24.4)
dev: false
- /jscodeshift@0.13.1(@babel/preset-env@7.24.3):
- resolution: {integrity: sha512-lGyiEbGOvmMRKgWk4vf+lUrCWO/8YR8sUR3FKF1Cq5fovjZDlIcw3Hu5ppLHAnEXshVffvaM0eyuY/AbOeYpnQ==}
+ /jscodeshift@0.14.0(@babel/preset-env@7.24.4):
+ resolution: {integrity: sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==}
hasBin: true
peerDependencies:
- '@babel/preset-env': ^7.23.9
- dependencies:
- '@babel/core': 7.24.3
- '@babel/parser': 7.24.1
- '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.3)
- '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.3)
- '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.3)
- '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3)
- '@babel/preset-env': 7.24.3(@babel/core@7.24.3)
- '@babel/preset-flow': 7.24.1(@babel/core@7.24.3)
- '@babel/preset-typescript': 7.24.1(@babel/core@7.24.3)
- '@babel/register': 7.23.7(@babel/core@7.24.3)
- babel-core: 7.0.0-bridge.0(@babel/core@7.24.3)
+ '@babel/preset-env': ^7.24.4
+ dependencies:
+ '@babel/core': 7.24.4
+ '@babel/parser': 7.24.4
+ '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.4)
+ '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.4)
+ '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.4)
+ '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4)
+ '@babel/preset-env': 7.24.4(@babel/core@7.24.4)
+ '@babel/preset-flow': 7.24.1(@babel/core@7.24.4)
+ '@babel/preset-typescript': 7.24.1(@babel/core@7.24.4)
+ '@babel/register': 7.23.7(@babel/core@7.24.4)
+ babel-core: 7.0.0-bridge.0(@babel/core@7.24.4)
chalk: 4.1.2
flow-parser: 0.206.0
graceful-fs: 4.2.11
- micromatch: 3.1.10
+ micromatch: 4.0.5
neo-async: 2.6.2
node-dir: 0.1.17
- recast: 0.20.5
+ recast: 0.21.5
temp: 0.8.4
write-file-atomic: 2.4.3
transitivePeerDependencies:
- supports-color
dev: false
- /jscodeshift@0.14.0(@babel/preset-env@7.24.3):
- resolution: {integrity: sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==}
+ /jscodeshift@0.15.2(@babel/preset-env@7.24.4):
+ resolution: {integrity: sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==}
hasBin: true
peerDependencies:
- '@babel/preset-env': ^7.23.9
- dependencies:
- '@babel/core': 7.24.3
- '@babel/parser': 7.24.1
- '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.3)
- '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.3)
- '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.3)
- '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3)
- '@babel/preset-env': 7.24.3(@babel/core@7.24.3)
- '@babel/preset-flow': 7.24.1(@babel/core@7.24.3)
- '@babel/preset-typescript': 7.24.1(@babel/core@7.24.3)
- '@babel/register': 7.23.7(@babel/core@7.24.3)
- babel-core: 7.0.0-bridge.0(@babel/core@7.24.3)
+ '@babel/preset-env': ^7.24.4
+ peerDependenciesMeta:
+ '@babel/preset-env':
+ optional: true
+ dependencies:
+ '@babel/core': 7.24.4
+ '@babel/parser': 7.24.4
+ '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4)
+ '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.4)
+ '@babel/preset-env': 7.24.4(@babel/core@7.24.4)
+ '@babel/preset-flow': 7.24.1(@babel/core@7.24.4)
+ '@babel/preset-typescript': 7.24.1(@babel/core@7.24.4)
+ '@babel/register': 7.23.7(@babel/core@7.24.4)
+ babel-core: 7.0.0-bridge.0(@babel/core@7.24.4)
chalk: 4.1.2
flow-parser: 0.206.0
graceful-fs: 4.2.11
micromatch: 4.0.5
neo-async: 2.6.2
node-dir: 0.1.17
- recast: 0.21.5
+ recast: 0.23.6
temp: 0.8.4
write-file-atomic: 2.4.3
transitivePeerDependencies:
@@ -14889,6 +14637,10 @@ packages:
resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
dev: true
+ /jsonc-parser@3.2.1:
+ resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==}
+ dev: true
+
/jsonfile@4.0.0:
resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
optionalDependencies:
@@ -14923,7 +14675,7 @@ packages:
/jss-plugin-camel-case@10.10.0:
resolution: {integrity: sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
hyphenate-style-name: 1.0.4
jss: 10.10.0
dev: false
@@ -14931,7 +14683,7 @@ packages:
/jss-plugin-compose@10.10.0:
resolution: {integrity: sha512-F5kgtWpI2XfZ3Z8eP78tZEYFdgTIbpA/TMuX3a8vwrNolYtN1N4qJR/Ob0LAsqIwCMLojtxN7c7Oo/+Vz6THow==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
jss: 10.10.0
tiny-warning: 1.0.3
dev: false
@@ -14939,21 +14691,21 @@ packages:
/jss-plugin-default-unit@10.10.0:
resolution: {integrity: sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
jss: 10.10.0
dev: false
/jss-plugin-expand@10.10.0:
resolution: {integrity: sha512-ymT62W2OyDxBxr7A6JR87vVX9vTq2ep5jZLIdUSusfBIEENLdkkc0lL/Xaq8W9s3opUq7R0sZQpzRWELrfVYzA==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
jss: 10.10.0
dev: false
/jss-plugin-extend@10.10.0:
resolution: {integrity: sha512-sKYrcMfr4xxigmIwqTjxNcHwXJIfvhvjTNxF+Tbc1NmNdyspGW47Ey6sGH8BcQ4FFQhLXctpWCQSpDwdNmXSwg==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
jss: 10.10.0
tiny-warning: 1.0.3
dev: false
@@ -14961,14 +14713,14 @@ packages:
/jss-plugin-global@10.10.0:
resolution: {integrity: sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
jss: 10.10.0
dev: false
/jss-plugin-nested@10.10.0:
resolution: {integrity: sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
jss: 10.10.0
tiny-warning: 1.0.3
dev: false
@@ -14976,14 +14728,14 @@ packages:
/jss-plugin-props-sort@10.10.0:
resolution: {integrity: sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
jss: 10.10.0
dev: false
/jss-plugin-rule-value-function@10.10.0:
resolution: {integrity: sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
jss: 10.10.0
tiny-warning: 1.0.3
dev: false
@@ -14991,7 +14743,7 @@ packages:
/jss-plugin-rule-value-observable@10.10.0:
resolution: {integrity: sha512-ZLMaYrR3QE+vD7nl3oNXuj79VZl9Kp8/u6A1IbTPDcuOu8b56cFdWRZNZ0vNr8jHewooEeq2doy8Oxtymr2ZPA==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
jss: 10.10.0
symbol-observable: 1.2.0
dev: false
@@ -14999,7 +14751,7 @@ packages:
/jss-plugin-template@10.10.0:
resolution: {integrity: sha512-ocXZBIOJOA+jISPdsgkTs8wwpK6UbsvtZK5JI7VUggTD6LWKbtoxUzadd2TpfF+lEtlhUmMsCkTRNkITdPKa6w==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
jss: 10.10.0
tiny-warning: 1.0.3
dev: false
@@ -15007,7 +14759,7 @@ packages:
/jss-plugin-vendor-prefixer@10.10.0:
resolution: {integrity: sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
css-vendor: 2.0.8
jss: 10.10.0
dev: false
@@ -15015,7 +14767,7 @@ packages:
/jss-preset-default@10.10.0:
resolution: {integrity: sha512-GL175Wt2FGhjE+f+Y3aWh+JioL06/QWFgZp53CbNNq6ZkVU0TDplD8Bxm9KnkotAYn3FlplNqoW5CjyLXcoJ7Q==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
jss: 10.10.0
jss-plugin-camel-case: 10.10.0
jss-plugin-compose: 10.10.0
@@ -15043,7 +14795,7 @@ packages:
/jss@10.10.0:
resolution: {integrity: sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
csstype: 3.1.3
is-in-browser: 1.1.3
tiny-warning: 1.0.3
@@ -15210,25 +14962,6 @@ packages:
json-buffer: 3.0.1
dev: true
- /kind-of@3.2.2:
- resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-buffer: 1.1.6
- dev: false
-
- /kind-of@4.0.0:
- resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-buffer: 1.1.6
- dev: false
-
- /kind-of@5.1.0:
- resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==}
- engines: {node: '>=0.10.0'}
- dev: false
-
/kind-of@6.0.3:
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
engines: {node: '>=0.10.0'}
@@ -15332,7 +15065,7 @@ packages:
strong-log-transformer: 2.1.0
tar: 6.1.11
temp-dir: 1.0.0
- typescript: 5.4.3
+ typescript: 5.4.5
upath: 2.0.1
uuid: 9.0.1
validate-npm-package-license: 3.0.4
@@ -15423,7 +15156,7 @@ packages:
/linkify-it@5.0.0:
resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
dependencies:
- uc.micro: 2.0.0
+ uc.micro: 2.1.0
dev: true
/listenercount@1.0.1:
@@ -15814,11 +15547,6 @@ packages:
tmpl: 1.0.5
dev: false
- /map-cache@0.2.2:
- resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}
- engines: {node: '>=0.10.0'}
- dev: false
-
/map-obj@1.0.1:
resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
engines: {node: '>=0.10.0'}
@@ -15833,15 +15561,8 @@ packages:
resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==}
dev: true
- /map-visit@1.0.0:
- resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
- engines: {node: '>=0.10.0'}
- dependencies:
- object-visit: 1.0.1
- dev: false
-
- /markdown-it@14.0.0:
- resolution: {integrity: sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==}
+ /markdown-it@14.1.0:
+ resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
hasBin: true
dependencies:
argparse: 2.0.1
@@ -15849,11 +15570,11 @@ packages:
linkify-it: 5.0.0
mdurl: 2.0.0
punycode.js: 2.3.1
- uc.micro: 2.0.0
+ uc.micro: 2.1.0
dev: true
- /markdown-to-jsx@7.4.5(react@18.2.0):
- resolution: {integrity: sha512-c8NB0H/ig+FOWssE9be0PKsYbCDhcWEkicxMnpdfUuHbFljnen4LAdgUShOyR/PgO3/qKvt9cwfQ0U/zQvZ44A==}
+ /markdown-to-jsx@7.4.7(react@18.2.0):
+ resolution: {integrity: sha512-0+ls1IQZdU6cwM1yu0ZjjiVWYtkbExSyUIFU2ZeDIFuZM1W42Mh4OlJ4nb4apX4H8smxDHRdFaoIVJGwfv5hkg==}
engines: {node: '>= 10'}
peerDependencies:
react: '>= 0.14.0'
@@ -15861,38 +15582,38 @@ packages:
react: 18.2.0
dev: false
- /markdownlint-cli2-formatter-default@0.0.4(markdownlint-cli2@0.12.1):
+ /markdownlint-cli2-formatter-default@0.0.4(markdownlint-cli2@0.13.0):
resolution: {integrity: sha512-xm2rM0E+sWgjpPn1EesPXx5hIyrN2ddUnUwnbCsD/ONxYtw3PX6LydvdH6dciWAoFDpwzbHM1TO7uHfcMd6IYg==}
peerDependencies:
markdownlint-cli2: '>=0.0.4'
dependencies:
- markdownlint-cli2: 0.12.1
+ markdownlint-cli2: 0.13.0
dev: true
- /markdownlint-cli2@0.12.1:
- resolution: {integrity: sha512-RcK+l5FjJEyrU3REhrThiEUXNK89dLYNJCYbvOUKypxqIGfkcgpz8g08EKqhrmUbYfYoLC5nEYQy53NhJSEtfQ==}
+ /markdownlint-cli2@0.13.0:
+ resolution: {integrity: sha512-Pg4nF7HlopU97ZXtrcVISWp3bdsuc5M0zXyLp2/sJv2zEMlInrau0ZKK482fQURzVezJzWBpNmu4u6vGAhij+g==}
engines: {node: '>=18'}
hasBin: true
dependencies:
- globby: 14.0.0
- jsonc-parser: 3.2.0
- markdownlint: 0.33.0
- markdownlint-cli2-formatter-default: 0.0.4(markdownlint-cli2@0.12.1)
+ globby: 14.0.1
+ js-yaml: 4.1.0
+ jsonc-parser: 3.2.1
+ markdownlint: 0.34.0
+ markdownlint-cli2-formatter-default: 0.0.4(markdownlint-cli2@0.13.0)
micromatch: 4.0.5
- yaml: 2.3.4
dev: true
- /markdownlint-micromark@0.1.8:
- resolution: {integrity: sha512-1ouYkMRo9/6gou9gObuMDnvZM8jC/ly3QCFQyoSPCS2XV1ZClU0xpKbL1Ar3bWWRT1RnBZkWUEiNKrI2CwiBQA==}
- engines: {node: '>=16'}
+ /markdownlint-micromark@0.1.9:
+ resolution: {integrity: sha512-5hVs/DzAFa8XqYosbEAEg6ok6MF2smDj89ztn9pKkCtdKHVdPQuGMH7frFfYL9mLkvfFe4pTyAMffLbjf3/EyA==}
+ engines: {node: '>=18'}
dev: true
- /markdownlint@0.33.0:
- resolution: {integrity: sha512-4lbtT14A3m0LPX1WS/3d1m7Blg+ZwiLq36WvjQqFGsX3Gik99NV+VXp/PW3n+Q62xyPdbvGOCfjPqjW+/SKMig==}
+ /markdownlint@0.34.0:
+ resolution: {integrity: sha512-qwGyuyKwjkEMOJ10XN6OTKNOVYvOIi35RNvDLNxTof5s8UmyGHlCdpngRHoRGNvQVGuxO3BJ7uNSgdeX166WXw==}
engines: {node: '>=18'}
dependencies:
- markdown-it: 14.0.0
- markdownlint-micromark: 0.1.8
+ markdown-it: 14.1.0
+ markdownlint-micromark: 0.1.9
dev: true
/marked@5.1.2:
@@ -15904,21 +15625,20 @@ packages:
resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==}
dev: false
- /material-ui-popup-state@5.0.10(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-gd0DI8skwCSdth/j/yndoIwNkS2eDusosTe5hyPZ3jbrMzDkbQBs+tBbwapQ9hLfgiVLwICd1mwyerUV9Y5Elw==}
+ /material-ui-popup-state@5.1.0(@mui/material@packages+mui-material+build)(react@18.2.0):
+ resolution: {integrity: sha512-kG0xGqdPx3WM6AYnq0h7hCb3gk2M1FM/G/NFQN+HahcyABxCx3EFzLj5mdJICu2NYj0etZ2s7VDhAbrAezkxYg==}
+ engines: {node: '>=16'}
peerDependencies:
+ '@mui/material': ^5.0.0
react: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
- '@babel/runtime': 7.24.1
- '@mui/material': 5.15.4(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0)
+ '@babel/runtime': 7.24.4
+ '@mui/material': link:packages/mui-material/build
+ '@types/prop-types': 15.7.12
+ '@types/react': 18.2.55
classnames: 2.3.2
prop-types: 15.8.1
react: 18.2.0
- transitivePeerDependencies:
- - '@emotion/react'
- - '@emotion/styled'
- - '@types/react'
- - react-dom
dev: false
/mathml-tag-names@2.1.3:
@@ -16042,7 +15762,7 @@ packages:
resolution: {integrity: sha512-b773yA16DsDQiM4OOzCsr1gwEd+iio9au98o3bj7F/bxVyoz1LuYox06BIdsiLL1o4kV5VtzTu3UXSJ2X0ZGXg==}
engines: {node: '>=18'}
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
hermes-parser: 0.20.1
nullthrows: 1.1.1
transitivePeerDependencies:
@@ -16124,7 +15844,7 @@ packages:
resolution: {integrity: sha512-gWqzfm9YQw9I08L23hcLmY7XNx48W0c0vLEkVEF5P7ZNIOSfX9CkEv0JvTTJWshRYkbgIqsdtpMAHq13LJJ6iA==}
engines: {node: '>=18'}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
dev: false
/metro-source-map@0.80.7:
@@ -16162,8 +15882,8 @@ packages:
resolution: {integrity: sha512-ENGvQF7wZCtn2rO6jwsYy3XRSPrlm0G/1TgDC8AXdvz0yjfAe1ODSCYWxP8S3JXfjKL5m3b6j9RsV8sQIxsUjQ==}
engines: {node: '>=18'}
dependencies:
- '@babel/core': 7.24.3
- '@babel/generator': 7.24.1
+ '@babel/core': 7.24.4
+ '@babel/generator': 7.24.4
'@babel/template': 7.24.0
'@babel/traverse': 7.24.1
nullthrows: 1.1.1
@@ -16175,9 +15895,9 @@ packages:
resolution: {integrity: sha512-QcgKpx3WZo71jTtXMEeeFuGpA+nG8YuWjxPTIsIYTjgDxcArS8zDDRzS18mmYkP65yyzH4dT94B1FJH9+flRag==}
engines: {node: '>=18'}
dependencies:
- '@babel/core': 7.24.3
- '@babel/generator': 7.24.1
- '@babel/parser': 7.24.1
+ '@babel/core': 7.24.4
+ '@babel/generator': 7.24.4
+ '@babel/parser': 7.24.4
'@babel/types': 7.24.0
metro: 0.80.7
metro-babel-transformer: 0.80.7
@@ -16200,9 +15920,9 @@ packages:
hasBin: true
dependencies:
'@babel/code-frame': 7.24.2
- '@babel/core': 7.24.3
- '@babel/generator': 7.24.1
- '@babel/parser': 7.24.1
+ '@babel/core': 7.24.4
+ '@babel/generator': 7.24.4
+ '@babel/parser': 7.24.4
'@babel/template': 7.24.0
'@babel/traverse': 7.24.1
'@babel/types': 7.24.0
@@ -16258,27 +15978,6 @@ packages:
- supports-color
dev: false
- /micromatch@3.1.10:
- resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- arr-diff: 4.0.0
- array-unique: 0.3.2
- braces: 2.3.2
- define-property: 2.0.2
- extend-shallow: 3.0.2
- extglob: 2.0.4
- fragment-cache: 0.2.1
- kind-of: 6.0.3
- nanomatch: 1.2.13
- object.pick: 1.3.0
- regex-not: 1.0.2
- snapdragon: 0.8.2
- to-regex: 3.0.2
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/micromatch@4.0.5:
resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
engines: {node: '>=8.6'}
@@ -16479,14 +16178,6 @@ packages:
yallist: 4.0.0
dev: true
- /mixin-deep@1.3.2:
- resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- for-in: 1.0.2
- is-extendable: 1.0.1
- dev: false
-
/mkdirp-classic@0.5.3:
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
dev: true
@@ -16511,8 +16202,8 @@ packages:
ufo: 1.4.0
dev: true
- /mocha@10.3.0:
- resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==}
+ /mocha@10.4.0:
+ resolution: {integrity: sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==}
engines: {node: '>= 14.0.0'}
hasBin: true
dependencies:
@@ -16606,25 +16297,6 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
- /nanomatch@1.2.13:
- resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- arr-diff: 4.0.0
- array-unique: 0.3.2
- define-property: 2.0.2
- extend-shallow: 3.0.2
- fragment-cache: 0.2.1
- is-windows: 1.0.2
- kind-of: 6.0.3
- object.pick: 1.3.0
- regex-not: 1.0.2
- snapdragon: 0.8.2
- to-regex: 3.0.2
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/napi-build-utils@1.0.2:
resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
dev: true
@@ -16653,7 +16325,7 @@ packages:
resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==}
dev: true
- /next@13.5.1(@babel/core@7.24.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0):
+ /next@13.5.1(@babel/core@7.24.4)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-GIudNR7ggGUZoIL79mSZcxbXK9f5pwAIPZxEM8+j2yLqv5RODg4TkmUlaKSYVqE1bPQueamXSqdC3j7axiTSEg==}
engines: {node: '>=16.14.0'}
hasBin: true
@@ -16675,7 +16347,7 @@ packages:
postcss: 8.4.14
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
- styled-jsx: 5.1.1(@babel/core@7.24.3)(babel-plugin-macros@3.1.0)(react@18.2.0)
+ styled-jsx: 5.1.1(@babel/core@7.24.4)(babel-plugin-macros@3.1.0)(react@18.2.0)
watchpack: 2.4.0
zod: 3.21.4
optionalDependencies:
@@ -16692,40 +16364,44 @@ packages:
- '@babel/core'
- babel-plugin-macros
- /next@14.1.4(@babel/core@7.24.3)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==}
+ /next@14.2.1(@babel/core@7.24.4)(@playwright/test@1.43.1)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-SF3TJnKdH43PMkCcErLPv+x/DY1YCklslk3ZmwaVoyUfDgHKexuKlf9sEfBQ69w+ue8jQ3msLb+hSj1T19hGag==}
engines: {node: '>=18.17.0'}
hasBin: true
peerDependencies:
'@opentelemetry/api': ^1.1.0
+ '@playwright/test': ^1.41.2
react: ^18.2.0
react-dom: ^18.2.0
sass: ^1.3.0
peerDependenciesMeta:
'@opentelemetry/api':
optional: true
+ '@playwright/test':
+ optional: true
sass:
optional: true
dependencies:
- '@next/env': 14.1.4
- '@swc/helpers': 0.5.2
+ '@next/env': 14.2.1
+ '@playwright/test': 1.43.1
+ '@swc/helpers': 0.5.5
busboy: 1.6.0
caniuse-lite: 1.0.30001599
graceful-fs: 4.2.11
postcss: 8.4.31
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
- styled-jsx: 5.1.1(@babel/core@7.24.3)(babel-plugin-macros@3.1.0)(react@18.2.0)
+ styled-jsx: 5.1.1(@babel/core@7.24.4)(babel-plugin-macros@3.1.0)(react@18.2.0)
optionalDependencies:
- '@next/swc-darwin-arm64': 14.1.4
- '@next/swc-darwin-x64': 14.1.4
- '@next/swc-linux-arm64-gnu': 14.1.4
- '@next/swc-linux-arm64-musl': 14.1.4
- '@next/swc-linux-x64-gnu': 14.1.4
- '@next/swc-linux-x64-musl': 14.1.4
- '@next/swc-win32-arm64-msvc': 14.1.4
- '@next/swc-win32-ia32-msvc': 14.1.4
- '@next/swc-win32-x64-msvc': 14.1.4
+ '@next/swc-darwin-arm64': 14.2.1
+ '@next/swc-darwin-x64': 14.2.1
+ '@next/swc-linux-arm64-gnu': 14.2.1
+ '@next/swc-linux-arm64-musl': 14.2.1
+ '@next/swc-linux-x64-gnu': 14.2.1
+ '@next/swc-linux-x64-musl': 14.2.1
+ '@next/swc-win32-arm64-msvc': 14.2.1
+ '@next/swc-win32-ia32-msvc': 14.2.1
+ '@next/swc-win32-x64-msvc': 14.2.1
transitivePeerDependencies:
- '@babel/core'
- babel-plugin-macros
@@ -17212,15 +16888,6 @@ packages:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
- /object-copy@0.1.0:
- resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- copy-descriptor: 0.1.1
- define-property: 0.2.5
- kind-of: 3.2.2
- dev: false
-
/object-hash@2.2.0:
resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==}
engines: {node: '>= 6'}
@@ -17247,13 +16914,6 @@ packages:
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
engines: {node: '>= 0.4'}
- /object-visit@1.0.1:
- resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- isobject: 3.0.1
- dev: false
-
/object.assign@4.1.5:
resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
engines: {node: '>= 0.4'}
@@ -17312,13 +16972,6 @@ packages:
is-extendable: 1.0.1
dev: false
- /object.pick@1.3.0:
- resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- isobject: 3.0.1
- dev: false
-
/object.values@1.1.7:
resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==}
engines: {node: '>= 0.4'}
@@ -17771,11 +17424,6 @@ packages:
tslib: 2.6.2
dev: true
- /pascalcase@0.1.1:
- resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==}
- engines: {node: '>=0.10.0'}
- dev: false
-
/path-exists@3.0.0:
resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
engines: {node: '>=4'}
@@ -17940,7 +17588,7 @@ packages:
/pkg-types@1.0.3:
resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==}
dependencies:
- jsonc-parser: 3.2.0
+ jsonc-parser: 3.2.1
mlly: 1.6.1
pathe: 1.1.2
dev: true
@@ -17955,17 +17603,17 @@ packages:
resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==}
dev: false
- /playwright-core@1.42.1:
- resolution: {integrity: sha512-mxz6zclokgrke9p1vtdy/COWBH+eOZgYUVVU34C73M+4j4HLlQJHtfcqiqqxpP0o8HhMkflvfbquLX5dg6wlfA==}
+ /playwright-core@1.43.1:
+ resolution: {integrity: sha512-EI36Mto2Vrx6VF7rm708qSnesVQKbxEWvPrfA1IPY6HgczBplDx7ENtx+K2n4kJ41sLLkuGfmb0ZLSSXlDhqPg==}
engines: {node: '>=16'}
hasBin: true
- /playwright@1.42.1:
- resolution: {integrity: sha512-PgwB03s2DZBcNRoW+1w9E+VkLBxweib6KTXM0M3tkiT4jVxKSi6PmVJ591J+0u10LUrgxB7dLRbiJqO5s2QPMg==}
+ /playwright@1.43.1:
+ resolution: {integrity: sha512-V7SoH0ai2kNt1Md9E3Gwas5B9m8KR2GVvwZnAI6Pg0m3sh7UvgiYhRrhsziCmqMJNouPckiOhk8T+9bSAK0VIA==}
engines: {node: '>=16'}
hasBin: true
dependencies:
- playwright-core: 1.42.1
+ playwright-core: 1.43.1
optionalDependencies:
fsevents: 2.3.2
@@ -17975,11 +17623,6 @@ packages:
semver-compare: 1.0.0
dev: false
- /posix-character-classes@0.1.1:
- resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==}
- engines: {node: '>=0.10.0'}
- dev: false
-
/possible-typed-array-names@1.0.0:
resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
engines: {node: '>= 0.4'}
@@ -18119,7 +17762,7 @@ packages:
postcss: ^8.4.21
dependencies:
postcss: 8.4.38
- typescript: 5.4.3
+ typescript: 5.4.5
dev: true
/postcss-value-parser@4.2.0:
@@ -18563,9 +18206,9 @@ packages:
engines: {node: '>=8.10.0'}
hasBin: true
dependencies:
- '@babel/core': 7.24.3
- '@babel/generator': 7.24.1
- '@babel/runtime': 7.24.1
+ '@babel/core': 7.24.4
+ '@babel/generator': 7.24.4
+ '@babel/runtime': 7.24.4
ast-types: 0.14.2
commander: 2.20.3
doctrine: 3.0.0
@@ -18603,7 +18246,7 @@ packages:
peerDependencies:
react: '>=16.13.1'
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
react: 18.2.0
dev: false
@@ -18612,7 +18255,7 @@ packages:
peerDependencies:
react: ^16.3.0
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
prop-types: 15.8.1
react: 18.2.0
warning: 4.0.3
@@ -18628,24 +18271,24 @@ packages:
final-form: ^4.20.4
react: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
final-form: 4.20.10
react: 18.2.0
dev: false
- /react-imask@7.5.0(react@18.2.0):
- resolution: {integrity: sha512-yWExhHphDmNaHvmOsYR+5QcludeBdYk6bXyo8kouIJFAub5sF+O0kLPVupg2yhd7EfTqjLswFZ/tqY1AhKnd9Q==}
+ /react-imask@7.6.0(react@18.2.0):
+ resolution: {integrity: sha512-SilPct67Xw4TN+dqn3SM4BVpy+FwNSeT0wblA/DXQ3El2KPBEWwrn4x3gQ39ZohFAphp7yG7w6gSKq5SeR/6Kg==}
engines: {npm: '>=4.0.0'}
peerDependencies:
react: '>=0.14.0'
dependencies:
- imask: 7.5.0
+ imask: 7.6.0
prop-types: 15.8.1
react: 18.2.0
dev: false
- /react-intersection-observer@9.8.1(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-QzOFdROX8D8MH3wE3OVKH0f3mLjKTtEN1VX/rkNuECCff+aKky0pIjulDhr3Ewqj5el/L+MhBkM3ef0Tbt+qUQ==}
+ /react-intersection-observer@9.8.2(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-901naEiiZmse3p+AmtbQ3NL9xx+gQ8TXLiGDc+8GiE3JKJkNV3vP737aGuWTAXBA+1QqxPrDDE+fIEgYpGDlrQ==}
peerDependencies:
react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
@@ -18671,7 +18314,7 @@ packages:
peerDependencies:
react: '>=16.8.6'
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@emotion/is-prop-valid': 0.7.3
css-jss: 10.10.0
hoist-non-react-statics: 3.3.2
@@ -18701,7 +18344,7 @@ packages:
scheduler: 0.23.0
dev: false
- /react-native@0.73.6(@babel/core@7.24.3)(@babel/preset-env@7.24.3)(react@18.2.0):
+ /react-native@0.73.6(@babel/core@7.24.4)(@babel/preset-env@7.24.4)(react@18.2.0):
resolution: {integrity: sha512-oqmZe8D2/VolIzSPZw+oUd6j/bEmeRHwsLn1xLA5wllEYsZ5zNuMsDus235ONOnCRwexqof/J3aztyQswSmiaA==}
engines: {node: '>=18'}
hasBin: true
@@ -18713,8 +18356,8 @@ packages:
'@react-native-community/cli-platform-android': 12.3.6
'@react-native-community/cli-platform-ios': 12.3.6
'@react-native/assets-registry': 0.73.1
- '@react-native/codegen': 0.73.3(@babel/preset-env@7.24.3)
- '@react-native/community-cli-plugin': 0.73.17(@babel/core@7.24.3)(@babel/preset-env@7.24.3)
+ '@react-native/codegen': 0.73.3(@babel/preset-env@7.24.4)
+ '@react-native/community-cli-plugin': 0.73.17(@babel/core@7.24.4)(@babel/preset-env@7.24.4)
'@react-native/gradle-plugin': 0.73.4
'@react-native/js-polyfills': 0.73.1
'@react-native/normalize-colors': 0.73.2
@@ -18756,8 +18399,8 @@ packages:
- utf-8-validate
dev: false
- /react-number-format@5.3.3(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-maGHWmOvwYzyeRIpL0YC6drWqYaX6iFqjisdJXpZ+HzEtSEJsL6nqw4azTpF5Sm6SAvwUeAr7JY924Ebqq8EdA==}
+ /react-number-format@5.3.4(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-2hHN5mbLuCDUx19bv0Q8wet67QqYK6xmtLQeY5xx+h7UXiMmRtaCwqko4mMPoKXLc6xAzwRrutg8XbTRlsfjRg==}
peerDependencies:
react: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
react-dom: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
@@ -18809,7 +18452,7 @@ packages:
redux:
optional: true
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
'@types/hoist-non-react-statics': 3.3.5
'@types/react': 18.2.55
'@types/use-sync-external-store': 0.0.3
@@ -18825,25 +18468,25 @@ packages:
resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==}
engines: {node: '>=0.10.0'}
- /react-router-dom@6.22.1(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-iwMyyyrbL7zkKY7MRjOVRy+TMnS/OPusaFVxM2P11x9dzSzGmLsebkCvYirGq0DWB9K9hOspHYYtDz33gE5Duw==}
+ /react-router-dom@6.22.3(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-7ZILI7HjcE+p31oQvwbokjk6OA/bnFxrhJ19n82Ex9Ph8fNAq+Hm/7KchpMGlTgWhUxRHMMCut+vEtNpWpowKw==}
engines: {node: '>=14.0.0'}
peerDependencies:
react: '>=16.8'
react-dom: '>=16.8'
dependencies:
- '@remix-run/router': 1.15.1
+ '@remix-run/router': 1.15.3
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
- react-router: 6.22.1(react@18.2.0)
+ react-router: 6.22.3(react@18.2.0)
- /react-router@6.22.1(react@18.2.0):
- resolution: {integrity: sha512-0pdoRGwLtemnJqn1K0XHUbnKiX0S4X8CgvVVmHGOWmofESj31msHo/1YiqcJWK7Wxfq2a4uvvtS01KAQyWK/CQ==}
+ /react-router@6.22.3(react@18.2.0):
+ resolution: {integrity: sha512-dr2eb3Mj5zK2YISHK++foM9w4eBnO23eKnZEDs7c880P6oKbrjz/Svg9+nxqtHQK+oMW4OtjZca0RqPglXxguQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
react: '>=16.8'
dependencies:
- '@remix-run/router': 1.15.1
+ '@remix-run/router': 1.15.3
react: 18.2.0
/react-runner@1.0.3(react-dom@18.2.0)(react@18.2.0):
@@ -18904,7 +18547,7 @@ packages:
resolution: {integrity: sha512-0W/e9uPweNEOSPjmYtuKSC/SvKKg1sfo+WtPdnxeLF3t2L82h7jjszuOHz9C23fzkvLfdgkaOmcbAxE9w2GEjA==}
engines: {node: '>=6.0.0'}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
warning: 4.0.3
dev: false
@@ -18912,7 +18555,7 @@ packages:
resolution: {integrity: sha512-W+fXBOsDqgFK1/g7MzRMVcDurp3LqO3ksC8UgInh2P/tKgb5DusuuB1geKHFc6o1wKl+4oyER4Zh3Lxmr8xbXA==}
engines: {node: '>=6.0.0'}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
keycode: 2.2.1
prop-types: 15.8.1
react-event-listener: 0.6.6(react@18.2.0)
@@ -18928,7 +18571,7 @@ packages:
peerDependencies:
react: ^15.3.0 || ^16.0.0 || ^17.0.0
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
prop-types: 15.8.1
react: 18.2.0
react-swipeable-views-core: 0.14.0
@@ -18952,7 +18595,7 @@ packages:
react: '>=16.6.0'
react-dom: '>=16.6.0'
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
dom-helpers: 5.2.1
loose-envify: 1.4.0
prop-types: 15.8.1
@@ -18971,8 +18614,8 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: false
- /react-virtuoso@4.7.2(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-xF4es1ajK36Hs9MciaiGA9l16tV2bpkpgxM9JVKh0rJSn6uhdAUrxSQ6FttQOOPAGt4GRG2A4gdjlo18JWhyRw==}
+ /react-virtuoso@4.7.8(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-P0BHOsLrmfnXv1bY9Nja07nvFciRGNgM7lTRHMcVDteTDb9tLtHzajBapKGUZ5zdyUOEVWvuW6ufQxzdGN2AKw==}
engines: {node: '>=10'}
peerDependencies:
react: '>=16 || >=17 || >= 18'
@@ -18989,7 +18632,7 @@ packages:
react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
memoize-one: 5.2.1
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -19166,6 +18809,7 @@ packages:
esprima: 4.0.1
source-map: 0.6.1
tslib: 2.6.2
+ dev: true
/recast@0.21.5:
resolution: {integrity: sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==}
@@ -19220,7 +18864,7 @@ packages:
/redux@4.2.1:
resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
dev: false
/reflect.getprototypeof@1.0.4:
@@ -19256,15 +18900,7 @@ packages:
/regenerator-transform@0.15.2:
resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
dependencies:
- '@babel/runtime': 7.24.1
-
- /regex-not@1.0.2:
- resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==}
- engines: {node: '>=0.10.0'}
- dependencies:
- extend-shallow: 3.0.2
- safe-regex: 1.1.0
- dev: false
+ '@babel/runtime': 7.24.4
/regexp.prototype.flags@1.5.2:
resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
@@ -19356,11 +18992,6 @@ packages:
strip-ansi: 6.0.1
dev: true
- /repeat-element@1.1.4:
- resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==}
- engines: {node: '>=0.10.0'}
- dev: false
-
/repeat-string@1.6.1:
resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
engines: {node: '>=0.10'}
@@ -19415,11 +19046,6 @@ packages:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
dev: true
- /resolve-url@0.2.1:
- resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==}
- deprecated: https://github.com/lydell/resolve-url#deprecated
- dev: false
-
/resolve@1.22.8:
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
hasBin: true
@@ -19513,14 +19139,14 @@ packages:
dependencies:
glob: 10.3.10
- /rollup-plugin-babel@4.4.0(@babel/core@7.24.3)(rollup@3.29.4):
+ /rollup-plugin-babel@4.4.0(@babel/core@7.24.4)(rollup@3.29.4):
resolution: {integrity: sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw==}
deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-babel.
peerDependencies:
- '@babel/core': ^7.23.9
+ '@babel/core': ^7.24.4
rollup: '>=0.60.0 <3'
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-module-imports': 7.24.3
rollup: 3.29.4
rollup-pluginutils: 2.8.2
@@ -19628,7 +19254,7 @@ packages:
/rtl-css-js@1.16.0:
resolution: {integrity: sha512-Oc7PnzwIEU4M0K1J4h/7qUUaljXhQ0kCObRsZjxs2HjkpKsnoTMvSmvJ4sqgJZd0zBoEfAyTdnK/jMIYvrjySQ==}
dependencies:
- '@babel/runtime': 7.24.1
+ '@babel/runtime': 7.24.4
dev: false
/run-async@2.4.1:
@@ -19670,12 +19296,6 @@ packages:
es-errors: 1.3.0
is-regex: 1.1.4
- /safe-regex@1.1.0:
- resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==}
- dependencies:
- ret: 0.1.15
- dev: false
-
/safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
@@ -19877,16 +19497,6 @@ packages:
functions-have-names: 1.2.3
has-property-descriptors: 1.0.2
- /set-value@2.0.1:
- resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==}
- engines: {node: '>=0.10.0'}
- dependencies:
- extend-shallow: 2.0.1
- is-extendable: 0.1.1
- is-plain-object: 2.0.4
- split-string: 3.1.0
- dev: false
-
/setimmediate@1.0.5:
resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
dev: false
@@ -20078,38 +19688,6 @@ packages:
engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
dev: true
- /snapdragon-node@2.1.1:
- resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
- engines: {node: '>=0.10.0'}
- dependencies:
- define-property: 1.0.0
- isobject: 3.0.1
- snapdragon-util: 3.0.1
- dev: false
-
- /snapdragon-util@3.0.1:
- resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- kind-of: 3.2.2
- dev: false
-
- /snapdragon@0.8.2:
- resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- base: 0.11.2
- debug: 2.6.9
- define-property: 0.2.5
- extend-shallow: 2.0.1
- map-cache: 0.2.2
- source-map: 0.5.7
- source-map-resolve: 0.5.3
- use: 3.1.1
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/socket.io-adapter@2.5.4:
resolution: {integrity: sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==}
dependencies:
@@ -20189,28 +19767,12 @@ packages:
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
engines: {node: '>=0.10.0'}
- /source-map-resolve@0.5.3:
- resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==}
- deprecated: See https://github.com/lydell/source-map-resolve#deprecated
- dependencies:
- atob: 2.1.2
- decode-uri-component: 0.2.2
- resolve-url: 0.2.1
- source-map-url: 0.4.1
- urix: 0.1.0
- dev: false
-
/source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
dependencies:
buffer-from: 1.1.2
source-map: 0.6.1
- /source-map-url@0.4.1:
- resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
- deprecated: See https://github.com/lydell/source-map-url#deprecated
- dev: false
-
/source-map@0.5.7:
resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
engines: {node: '>=0.10.0'}
@@ -20279,13 +19841,6 @@ packages:
engines: {node: '>=6'}
dev: true
- /split-string@3.1.0:
- resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
- engines: {node: '>=0.10.0'}
- dependencies:
- extend-shallow: 3.0.2
- dev: false
-
/split2@3.2.2:
resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
dependencies:
@@ -20339,14 +19894,6 @@ packages:
type-fest: 0.7.1
dev: false
- /static-extend@0.1.2:
- resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==}
- engines: {node: '>=0.10.0'}
- dependencies:
- define-property: 0.2.5
- object-copy: 0.1.0
- dev: false
-
/statuses@1.5.0:
resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
engines: {node: '>= 0.6'}
@@ -20565,7 +20112,7 @@ packages:
stylis: 4.3.1
tslib: 2.5.0
- /styled-jsx@5.1.1(@babel/core@7.24.3)(babel-plugin-macros@3.1.0)(react@18.2.0):
+ /styled-jsx@5.1.1(@babel/core@7.24.4)(babel-plugin-macros@3.1.0)(react@18.2.0):
resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
engines: {node: '>= 12.0.0'}
peerDependencies:
@@ -20578,7 +20125,7 @@ packages:
babel-plugin-macros:
optional: true
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
babel-plugin-macros: 3.1.0
client-only: 0.0.1
react: 18.2.0
@@ -20623,7 +20170,7 @@ packages:
/stylelint-processor-styled-components@1.10.0:
resolution: {integrity: sha512-g4HpN9rm0JD0LoHuIOcd/FIjTZCJ0ErQ+dC3VTxp+dSvnkV+MklKCCmCQEdz5K5WxF4vPuzfVgdbSDuPYGZhoA==}
dependencies:
- '@babel/parser': 7.24.1
+ '@babel/parser': 7.24.4
'@babel/traverse': 7.24.1
micromatch: 4.0.5
postcss: 7.0.39
@@ -20813,8 +20360,8 @@ packages:
strip-ansi: 6.0.1
dev: true
- /tailwindcss@3.4.1:
- resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
+ /tailwindcss@3.4.3:
+ resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==}
engines: {node: '>=14.0.0'}
hasBin: true
dependencies:
@@ -20826,7 +20373,7 @@ packages:
fast-glob: 3.3.2
glob-parent: 6.0.2
is-glob: 4.0.3
- jiti: 1.19.1
+ jiti: 1.21.0
lilconfig: 2.1.0
micromatch: 4.0.5
normalize-path: 3.0.0
@@ -21071,37 +20618,12 @@ packages:
resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
engines: {node: '>=4'}
- /to-object-path@0.3.0:
- resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- kind-of: 3.2.2
- dev: false
-
- /to-regex-range@2.1.1:
- resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-number: 3.0.0
- repeat-string: 1.6.1
- dev: false
-
/to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
dependencies:
is-number: 7.0.0
- /to-regex@3.0.2:
- resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==}
- engines: {node: '>=0.10.0'}
- dependencies:
- define-property: 2.0.2
- extend-shallow: 3.0.2
- regex-not: 1.0.2
- safe-regex: 1.1.0
- dev: false
-
/toidentifier@1.0.1:
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
engines: {node: '>=0.6'}
@@ -21159,13 +20681,13 @@ packages:
resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==}
dev: false
- /ts-api-utils@1.0.1(typescript@5.4.3):
+ /ts-api-utils@1.0.1(typescript@5.4.5):
resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==}
engines: {node: '>=16.13.0'}
peerDependencies:
typescript: '>=4.2.0'
dependencies:
- typescript: 5.4.3
+ typescript: 5.4.5
dev: true
/ts-interface-checker@0.1.13:
@@ -21211,7 +20733,7 @@ packages:
engines: {node: '>=0.6.x'}
dev: false
- /tsup@8.0.2(postcss@8.4.38)(typescript@5.4.3):
+ /tsup@8.0.2(postcss@8.4.38)(typescript@5.4.5):
resolution: {integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ==}
engines: {node: '>=18'}
hasBin: true
@@ -21245,14 +20767,14 @@ packages:
source-map: 0.8.0-beta.0
sucrase: 3.34.0
tree-kill: 1.2.2
- typescript: 5.4.3
+ typescript: 5.4.5
transitivePeerDependencies:
- supports-color
- ts-node
dev: true
- /tsx@4.7.1:
- resolution: {integrity: sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==}
+ /tsx@4.7.2:
+ resolution: {integrity: sha512-BCNd4kz6fz12fyrgCTEdZHGJ9fWTGeUzXmQysh0RVocDY3h4frk05ZNCXSy4kIenF7y/QnrdiVpTsyNRn6vlAw==}
engines: {node: '>=18.0.0'}
hasBin: true
dependencies:
@@ -21403,8 +20925,8 @@ packages:
resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
dev: true
- /typescript@5.4.3:
- resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==}
+ /typescript@5.4.5:
+ resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==}
engines: {node: '>=14.17'}
hasBin: true
@@ -21412,8 +20934,8 @@ packages:
resolution: {integrity: sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==}
dev: true
- /uc.micro@2.0.0:
- resolution: {integrity: sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig==}
+ /uc.micro@2.1.0:
+ resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
dev: true
/ufo@1.4.0:
@@ -21475,16 +20997,6 @@ packages:
vfile: 4.2.1
dev: false
- /union-value@1.0.1:
- resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
- engines: {node: '>=0.10.0'}
- dependencies:
- arr-union: 3.1.0
- get-value: 2.0.6
- is-extendable: 0.1.1
- set-value: 2.0.1
- dev: false
-
/unique-filename@3.0.0:
resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -21554,14 +21066,6 @@ packages:
webpack-virtual-modules: 0.6.1
dev: false
- /unset-value@1.0.0:
- resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==}
- engines: {node: '>=0.10.0'}
- dependencies:
- has-value: 0.3.1
- isobject: 3.0.1
- dev: false
-
/unzipper@0.10.11:
resolution: {integrity: sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==}
dependencies:
@@ -21604,11 +21108,6 @@ packages:
dependencies:
punycode: 2.3.1
- /urix@0.1.0:
- resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
- deprecated: Please see https://github.com/lydell/urix#deprecated
- dev: false
-
/url-parse@1.5.10:
resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
dependencies:
@@ -21656,11 +21155,6 @@ packages:
react: 18.2.0
dev: false
- /use@3.1.1:
- resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==}
- engines: {node: '>=0.10.0'}
- dev: false
-
/util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
@@ -21751,8 +21245,8 @@ packages:
vfile-message: 2.0.4
dev: false
- /vite-plugin-pages@0.32.0(vite@5.2.2):
- resolution: {integrity: sha512-OxS3n0zUo5wsfgNCAuw2FiG/KD1ipgQV+2Flst4RyeI2iPv+m0YueVq+nx41k5NOWJj/zhqEas6I0b7HXveXjA==}
+ /vite-plugin-pages@0.32.1(vite@5.2.8):
+ resolution: {integrity: sha512-4oPlIbb+J+zpJGfT2xI/27xqY+qTkRc3MBgWKfbW6IWM3CTcSyybuL9kRMCFRdBHfmgkF28qDs7fqVf/HjH1Xw==}
peerDependencies:
'@vue/compiler-sfc': ^2.7.0 || ^3.0.0
vite: ^2.0.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0
@@ -21768,18 +21262,18 @@ packages:
json5: 2.2.3
local-pkg: 0.5.0
picocolors: 1.0.0
- vite: 5.2.2(@types/node@18.19.26)
+ vite: 5.2.8(@types/node@18.19.31)
yaml: 2.4.1
transitivePeerDependencies:
- supports-color
dev: true
- /vite@5.2.2(@types/node@18.19.26):
- resolution: {integrity: sha512-FWZbz0oSdLq5snUI0b6sULbz58iXFXdvkZfZWR/F0ZJuKTSPO7v72QPXt6KqYeMFb0yytNp6kZosxJ96Nr/wDQ==}
+ /vite@5.2.8(@types/node@18.19.31):
+ resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
- '@types/node': ^18.19.25
+ '@types/node': ^18.19.31
less: '*'
lightningcss: ^1.21.0
sass: '*'
@@ -21802,7 +21296,7 @@ packages:
terser:
optional: true
dependencies:
- '@types/node': 18.19.26
+ '@types/node': 18.19.31
esbuild: 0.20.2
postcss: 8.4.38
rollup: 4.13.0
@@ -21870,8 +21364,8 @@ packages:
engines: {node: '>=12'}
dev: false
- /webpack-bundle-analyzer@4.10.1:
- resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==}
+ /webpack-bundle-analyzer@4.10.2:
+ resolution: {integrity: sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==}
engines: {node: '>= 10.13.0'}
hasBin: true
dependencies:
@@ -21883,7 +21377,6 @@ packages:
escape-string-regexp: 4.0.0
gzip-size: 6.0.0
html-escaper: 2.0.2
- is-plain-object: 5.0.0
opener: 1.5.2
picocolors: 1.0.0
sirv: 2.0.3
@@ -21892,7 +21385,7 @@ packages:
- bufferutil
- utf-8-validate
- /webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3):
+ /webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.90.3):
resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==}
engines: {node: '>=14.15.0'}
hasBin: true
@@ -21916,13 +21409,13 @@ packages:
colorette: 2.0.20
commander: 10.0.1
cross-spawn: 7.0.3
- envinfo: 7.11.1
+ envinfo: 7.12.0
fastest-levenshtein: 1.0.16
import-local: 3.1.0
interpret: 3.1.1
rechoir: 0.8.0
webpack: 5.90.3(esbuild@0.19.11)(webpack-cli@5.1.4)
- webpack-bundle-analyzer: 4.10.1
+ webpack-bundle-analyzer: 4.10.2
webpack-merge: 5.9.0
/webpack-merge@4.2.2:
@@ -21979,7 +21472,7 @@ packages:
tapable: 2.2.1
terser-webpack-plugin: 5.3.10(esbuild@0.19.11)(webpack@5.90.3)
watchpack: 2.4.0
- webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack@5.90.3)
+ webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.90.3)
webpack-sources: 3.2.3
transitivePeerDependencies:
- '@swc/core'
@@ -22325,11 +21818,6 @@ packages:
resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
engines: {node: '>= 6'}
- /yaml@2.3.4:
- resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==}
- engines: {node: '>= 14'}
- dev: true
-
/yaml@2.4.1:
resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==}
engines: {node: '>= 14'}
@@ -22460,20 +21948,20 @@ packages:
peerDependencies:
react: ^17.0.0 || ^18.0.0
dependencies:
- '@babel/core': 7.24.3
+ '@babel/core': 7.24.4
'@babel/helper-module-imports': 7.24.3
'@babel/helper-plugin-utils': 7.24.0
- '@babel/parser': 7.24.1
+ '@babel/parser': 7.24.4
'@babel/types': 7.24.0
'@emotion/css': 11.11.2
'@emotion/is-prop-valid': 1.2.2
'@emotion/react': 11.11.4(@types/react@18.2.55)(react@18.2.0)
- '@emotion/serialize': 1.1.3
- '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
+ '@emotion/serialize': 1.1.4
+ '@emotion/styled': 11.11.5(@emotion/react@11.11.4)(@types/react@18.2.55)(react@18.2.0)
'@mui/system': link:packages/mui-system/build
'@wyw-in-js/processor-utils': 0.5.0
'@wyw-in-js/shared': 0.5.0
- '@wyw-in-js/transform': 0.5.0
+ '@wyw-in-js/transform': 0.5.0(patch_hash=zicb4vap2prvslgwedcxhpcmvy)
clsx: 2.1.0
cssesc: 3.0.0
csstype: 3.1.3
diff --git a/scripts/pigmentcss-render-mui-demos.mjs b/scripts/pigmentcss-render-mui-demos.mjs
index 0a982601803a37..e40244f0588b46 100644
--- a/scripts/pigmentcss-render-mui-demos.mjs
+++ b/scripts/pigmentcss-render-mui-demos.mjs
@@ -2,20 +2,14 @@ import path from 'path';
import fse from 'fs-extra';
import * as prettier from 'prettier';
-function capitalize(string) {
+function pascalCase(string) {
if (typeof string !== 'string') {
- throw new Error('`capitalize(string)` expects a string argument.');
+ throw new Error('`pascalCase(string)` expects a string argument.');
}
- return string.charAt(0).toUpperCase() + string.slice(1);
-}
+ const result = string.replace(/-([a-z])/g, (g) => g[1].toUpperCase());
-function toPascalCase(string) {
- if (typeof string !== 'string') {
- throw new Error('`toPascalCase(string)` expects a string argument.');
- }
-
- return capitalize(string).replace(/-([a-z])/g, (g) => g[1].toUpperCase());
+ return result.charAt(0).toUpperCase() + result.slice(1);
}
function titleCase(str) {
@@ -65,7 +59,7 @@ async function run() {
return `import ${componentName} from '../../../../../../docs/data/material/components/${dataFolderName}/${componentName}';`;
});
- const functionName = toPascalCase(dataFolderName);
+ const functionName = pascalCase(dataFolderName);
const nextFileContent = `'use client';
import * as React from 'react';
@@ -106,7 +100,7 @@ ${viteImports.join('\n')}
export default function ${functionName}() {
return (
- ${capitalize(dataFolderName)}
+ ${functionName}
${renders.join('\n')}
);
diff --git a/test/bundling/fixtures/create-react-app/package.json b/test/bundling/fixtures/create-react-app/package.json
index c5cfabb1f6c3ae..5021833943974f 100644
--- a/test/bundling/fixtures/create-react-app/package.json
+++ b/test/bundling/fixtures/create-react-app/package.json
@@ -25,7 +25,7 @@
"devDependencies": {
"concurrently": "7.4.0",
"cross-env": "7.0.3",
- "playwright": "1.42.1",
+ "playwright": "1.43.1",
"serve": "14.0.1"
},
"browserslist": {
diff --git a/test/bundling/fixtures/esbuild/package.json b/test/bundling/fixtures/esbuild/package.json
index b4d19f0ee05829..b81d38d72b3d52 100644
--- a/test/bundling/fixtures/esbuild/package.json
+++ b/test/bundling/fixtures/esbuild/package.json
@@ -25,7 +25,7 @@
},
"devDependencies": {
"concurrently": "7.4.0",
- "playwright": "1.42.1",
+ "playwright": "1.43.1",
"serve": "14.0.1"
}
}
diff --git a/test/bundling/fixtures/gatsby/package.json b/test/bundling/fixtures/gatsby/package.json
index 712e24e04d31d7..b62769250c79ae 100644
--- a/test/bundling/fixtures/gatsby/package.json
+++ b/test/bundling/fixtures/gatsby/package.json
@@ -23,6 +23,6 @@
},
"devDependencies": {
"concurrently": "7.4.0",
- "playwright": "1.42.1"
+ "playwright": "1.43.1"
}
}
diff --git a/test/bundling/fixtures/next-webpack4/package.json b/test/bundling/fixtures/next-webpack4/package.json
index f6d4ab868517b3..01ceda7fb899d4 100644
--- a/test/bundling/fixtures/next-webpack4/package.json
+++ b/test/bundling/fixtures/next-webpack4/package.json
@@ -23,6 +23,6 @@
},
"devDependencies": {
"concurrently": "7.4.0",
- "playwright": "1.42.1"
+ "playwright": "1.43.1"
}
}
diff --git a/test/bundling/fixtures/next-webpack5/package.json b/test/bundling/fixtures/next-webpack5/package.json
index 65f197ec50f422..04dc0c0ba911ca 100644
--- a/test/bundling/fixtures/next-webpack5/package.json
+++ b/test/bundling/fixtures/next-webpack5/package.json
@@ -23,6 +23,6 @@
},
"devDependencies": {
"concurrently": "7.4.0",
- "playwright": "1.42.1"
+ "playwright": "1.43.1"
}
}
diff --git a/test/bundling/fixtures/snowpack/package.json b/test/bundling/fixtures/snowpack/package.json
index 697bea33ec61a5..0b03041995afd7 100644
--- a/test/bundling/fixtures/snowpack/package.json
+++ b/test/bundling/fixtures/snowpack/package.json
@@ -24,7 +24,7 @@
},
"devDependencies": {
"concurrently": "7.4.0",
- "playwright": "1.42.1",
+ "playwright": "1.43.1",
"serve": "14.0.1"
}
}
diff --git a/test/bundling/fixtures/vite/package.json b/test/bundling/fixtures/vite/package.json
index 40b4108a0151b6..ad3134dab746fe 100644
--- a/test/bundling/fixtures/vite/package.json
+++ b/test/bundling/fixtures/vite/package.json
@@ -20,11 +20,11 @@
"react": "18.2.0",
"react-dom": "18.2.0",
"react-is": "18.2.0",
- "vite": "3.2.8"
+ "vite": "3.2.10"
},
"devDependencies": {
"concurrently": "7.4.0",
- "playwright": "1.42.1",
+ "playwright": "1.43.1",
"serve": "14.0.1"
}
}
diff --git a/test/package.json b/test/package.json
index 95c44493b32902..125fe85ee08654 100644
--- a/test/package.json
+++ b/test/package.json
@@ -6,7 +6,7 @@
"typescript": "tsc -p tsconfig.json"
},
"devDependencies": {
- "@babel/runtime": "^7.23.9",
+ "@babel/runtime": "^7.24.4",
"@emotion/cache": "^11.11.0",
"@emotion/react": "^11.11.4",
"@mui-internal/test-utils": "workspace:^",
@@ -17,9 +17,9 @@
"@mui/material": "workspace:^",
"@mui/system": "workspace:^",
"@mui/utils": "workspace:^",
- "@playwright/test": "1.42.1",
+ "@playwright/test": "1.43.1",
"@testing-library/dom": "^9.3.4",
- "@types/chai": "^4.3.12",
+ "@types/chai": "^4.3.14",
"@types/react": "^18.2.55",
"@types/react-is": "^18.2.4",
"@types/sinon": "^10.0.20",
@@ -29,12 +29,12 @@
"fs-extra": "^11.2.0",
"html-webpack-plugin": "^5.6.0",
"lodash": "^4.17.21",
- "playwright": "^1.42.1",
+ "playwright": "^1.43.1",
"prop-types": "^15.8.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-is": "^18.2.0",
- "react-router-dom": "^6.21.3",
+ "react-router-dom": "^6.22.3",
"sinon": "^15.2.0",
"styled-components": "^6.1.8",
"stylis": "4.2.0",
diff --git a/test/regressions/index.js b/test/regressions/index.js
index 29e521fc490585..2d6fe49c0dad6e 100644
--- a/test/regressions/index.js
+++ b/test/regressions/index.js
@@ -31,7 +31,6 @@ const blacklist = [
'docs-getting-started-templates-sign-in/CustomIcons.png', // Theme file
'docs-getting-started-templates-sign-up/CustomIcons.png', // Theme file
'docs-getting-started-templates-sign-in-side/getSignInSideTheme.png', // Theme file
- 'docs-getting-started-templates-sign-in/getSignInTheme.png', // Theme file
'docs-getting-started-templates-sign-up/getSignUpTheme.png', // Theme file
'docs-getting-started-templates-checkout/getCheckoutTheme.png', // Theme file
'docs-getting-started-templates-landing-page/getLPTheme.png', // Theme file
@@ -173,6 +172,13 @@ function excludeDemoFixture(suite, name) {
return true;
}
+ // Exclude files that are not images and are not PascalCase
+ // Tantamount to skipping JS/TS files that are not React components or "index.js" files
+ // PascalCase starts with a capital letter and has zero or more capital letters in the middle
+ if (!suite.endsWith('.png') && name !== 'index' && !/^[A-Z][A-Za-z0-9]*$/.test(name)) {
+ return true;
+ }
+
if (suite.includes('docs-joy') && name.match(/(Variables|Usage)$/)) {
return true;
}