diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 8d85f7020200a0..105a4f31780e58 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -19,7 +19,7 @@ jobs: uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@b7cec7526559c32f1616476ff32d17ba4c59b2d6 # v3.25.5 + uses: github/codeql-action/init@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 with: languages: typescript config-file: ./.github/codeql/codeql-config.yml @@ -30,4 +30,4 @@ jobs: # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs # queries: security-extended,security-and-quality - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@b7cec7526559c32f1616476ff32d17ba4c59b2d6 # v3.25.5 + uses: github/codeql-action/analyze@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 4f7a0759e797d3..b74dab17bfb014 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -43,6 +43,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: Upload to code-scanning - uses: github/codeql-action/upload-sarif@b7cec7526559c32f1616476ff32d17ba4c59b2d6 # v3.25.5 + uses: github/codeql-action/upload-sarif@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 with: sarif_file: results.sarif diff --git a/.stylelintrc.js b/.stylelintrc.js index 3fbebcc38f0350..03c17d0d5c60ba 100644 --- a/.stylelintrc.js +++ b/.stylelintrc.js @@ -4,23 +4,22 @@ module.exports = { // TypeScript declaration files contain no styles. // Stylelint is also reporting parseError on `docs/types/react-docgen.d.ts`. '**/*.d.ts', + 'docs/.next/**/*', + 'docs/export/**/*', + '**/node_modules/**/*', ], rules: { 'alpha-value-notation': null, 'custom-property-pattern': null, - 'declaration-colon-newline-after': null, - 'function-parentheses-newline-inside': null, // not compatible with prettier 'media-feature-range-notation': null, 'no-empty-source': null, - 'no-missing-end-of-source-newline': null, 'selector-class-pattern': null, 'string-no-newline': null, // not compatible with prettier 'value-keyword-case': null, - 'value-list-comma-newline-after': null, // not compatible with prettier }, overrides: [ { - files: ['**/*.js', '**/*.cjs', '**/*.mjs', '**/*.jsx', '**/*.ts', '**/*.tsx'], + files: ['**/*.js', '**/*.cjs', '**/*.mjs', '**/*.ts', '**/*.tsx'], customSyntax: 'postcss-styled-syntax', }, ], diff --git a/apps/local-ui-lib/index.d.ts b/apps/local-ui-lib/index.d.ts index a24be41b8decc5..3f926bfe3bb446 100644 --- a/apps/local-ui-lib/index.d.ts +++ b/apps/local-ui-lib/index.d.ts @@ -1,6 +1,8 @@ +import * as React from 'react'; + export const bounceAnim: string; export const Button: React.ComponentType< - JSX.IntrinsicElements['button'] & { + React.JSX.IntrinsicElements['button'] & { isRed?: boolean; sx?: unknown; } diff --git a/apps/pigment-css-next-app/next.config.js b/apps/pigment-css-next-app/next.config.js index a2187d6190e6ba..4155177fb4ca45 100644 --- a/apps/pigment-css-next-app/next.config.js +++ b/apps/pigment-css-next-app/next.config.js @@ -1,7 +1,7 @@ /* eslint-env node */ // eslint-ignore-next-line import/no-unresolved const { withPigment } = require('@pigment-css/nextjs-plugin'); -const { experimental_extendTheme: extendTheme } = require('@mui/material/styles'); +const { extendTheme } = require('@mui/material/styles'); /** * @typedef {import('@pigment-css/nextjs-plugin').PigmentOptions} PigmentOptions diff --git a/apps/pigment-css-vite-app/package.json b/apps/pigment-css-vite-app/package.json index baf45d4960adc0..b8a5e8d8d9102f 100644 --- a/apps/pigment-css-vite-app/package.json +++ b/apps/pigment-css-vite-app/package.json @@ -25,8 +25,8 @@ "react-router-dom": "^6.23.1" }, "devDependencies": { - "@babel/preset-react": "^7.24.1", - "@babel/preset-typescript": "^7.24.1", + "@babel/preset-react": "^7.24.6", + "@babel/preset-typescript": "^7.24.6", "@pigment-css/vite-plugin": "^0.0.9", "@types/react": "^18.2.55", "@types/react-dom": "^18.3.0", diff --git a/apps/pigment-css-vite-app/src/augment.ts b/apps/pigment-css-vite-app/src/augment.ts index 1ce2a8f663e557..b1de2899db0e28 100644 --- a/apps/pigment-css-vite-app/src/augment.ts +++ b/apps/pigment-css-vite-app/src/augment.ts @@ -1,9 +1,9 @@ -import type { experimental_extendTheme } from '@mui/material/styles'; +import type { extendTheme } from '@mui/material/styles'; import '@pigment-css/react/theme'; declare module '@pigment-css/react/theme' { export interface ThemeArgs { - theme: ReturnType & { + theme: ReturnType & { applyDarkStyles(obj: T): Record; }; } diff --git a/apps/pigment-css-vite-app/src/extend-zero.ts b/apps/pigment-css-vite-app/src/extend-zero.ts index 0d111cdfda4d6b..ea1689cc1f65af 100644 --- a/apps/pigment-css-vite-app/src/extend-zero.ts +++ b/apps/pigment-css-vite-app/src/extend-zero.ts @@ -1,8 +1,8 @@ -import type { experimental_extendTheme } from '@mui/material/styles'; +import type { extendTheme } from '@mui/material/styles'; declare module '@pigment-css/react/theme' { interface ThemeArgs { - theme: ReturnType & { + theme: ReturnType & { applyDarkStyles(obj: T): Record; }; } diff --git a/apps/pigment-css-vite-app/vite.config.ts b/apps/pigment-css-vite-app/vite.config.ts index 031cd34a6f7571..c58f13101e834f 100644 --- a/apps/pigment-css-vite-app/vite.config.ts +++ b/apps/pigment-css-vite-app/vite.config.ts @@ -3,7 +3,7 @@ import { defineConfig, splitVendorChunkPlugin } from 'vite'; import reactPlugin from '@vitejs/plugin-react'; import Pages from 'vite-plugin-pages'; import { pigment } from '@pigment-css/vite-plugin'; -import { experimental_extendTheme as extendTheme } from '@mui/material/styles'; +import { extendTheme } from '@mui/material/styles'; const theme = extendTheme({ getSelector: function getSelector(colorScheme, css) { diff --git a/docs/data/about/teamMembers.json b/docs/data/about/teamMembers.json index 7227d10b9825e9..db48483baf1139 100644 --- a/docs/data/about/teamMembers.json +++ b/docs/data/about/teamMembers.json @@ -315,5 +315,13 @@ "about": "Amateur cook, DIYer, and film photographer", "github": "KenanYusuf", "twitter": "KebabYusuf" + }, + { + "name": "Nikita Ossei", + "title": "Customer Support", + "location": "London, United Kingdom", + "locationCountry": "uk", + "about": "Astrology ♊️, learning 📚 and designing stuff 🎨", + "github": "nikitaa24" } ] diff --git a/docs/data/base/components/modal/SpringModal.tsx b/docs/data/base/components/modal/SpringModal.tsx index e2411c77d73684..44c2f280a8b452 100644 --- a/docs/data/base/components/modal/SpringModal.tsx +++ b/docs/data/base/components/modal/SpringModal.tsx @@ -37,7 +37,7 @@ export default function SpringModal() { const Backdrop = React.forwardRef< HTMLDivElement, - { children: React.ReactElement; open: boolean } + { children: React.ReactElement; open: boolean } >((props, ref) => { const { open, ...other } = props; return ; @@ -61,7 +61,7 @@ const StyledBackdrop = styled(Backdrop)` `; interface FadeProps { - children: React.ReactElement; + children: React.ReactElement; in?: boolean; onClick?: any; onEnter?: (node: HTMLElement, isAppearing: boolean) => void; diff --git a/docs/data/base/components/modal/UseModal.tsx b/docs/data/base/components/modal/UseModal.tsx index 8024572f55d57b..0462704cf259e6 100644 --- a/docs/data/base/components/modal/UseModal.tsx +++ b/docs/data/base/components/modal/UseModal.tsx @@ -39,7 +39,7 @@ export default function UseModal() { } interface ModalProps { - children: React.ReactElement; + children: React.ReactElement; closeAfterTransition?: boolean; container?: Element | (() => Element | null) | null; disableAutoFocus?: boolean; diff --git a/docs/data/base/components/popper/PlacementPopper.tsx b/docs/data/base/components/popper/PlacementPopper.tsx index ce9c2b6bb352ab..d6d036e8175761 100644 --- a/docs/data/base/components/popper/PlacementPopper.tsx +++ b/docs/data/base/components/popper/PlacementPopper.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { Popper, PopperPlacementType } from '@mui/base/Popper'; -function Radio({ value, ...props }: JSX.IntrinsicElements['input']) { +function Radio({ value, ...props }: React.JSX.IntrinsicElements['input']) { return ( ; }) as ( props: SelectProps & React.RefAttributes, -) => JSX.Element; +) => React.JSX.Element; export default function UnstyledSelectBasic() { return ( diff --git a/docs/data/base/components/select/UnstyledSelectForm.tsx b/docs/data/base/components/select/UnstyledSelectForm.tsx index 114d64115e0a0c..9668cb831fcbdb 100644 --- a/docs/data/base/components/select/UnstyledSelectForm.tsx +++ b/docs/data/base/components/select/UnstyledSelectForm.tsx @@ -47,7 +47,7 @@ const Select = React.forwardRef(function CustomSelect< return ; }) as ( props: SelectProps & React.RefAttributes, -) => JSX.Element; +) => React.JSX.Element; const blue = { 100: '#DAECFF', diff --git a/docs/data/base/components/slider/DiscreteSlider.tsx b/docs/data/base/components/slider/DiscreteSlider.tsx index deb51db7f93215..87216292aca7cd 100644 --- a/docs/data/base/components/slider/DiscreteSlider.tsx +++ b/docs/data/base/components/slider/DiscreteSlider.tsx @@ -21,7 +21,7 @@ export default function DiscreteSlider() { } interface SliderValueLabelProps { - children: React.ReactElement; + children: React.ReactElement; } function SliderValueLabel({ children }: SliderValueLabelProps) { diff --git a/docs/data/base/components/slider/LabeledValuesSlider.tsx b/docs/data/base/components/slider/LabeledValuesSlider.tsx index e7f0357f3869b9..143073006c60bb 100644 --- a/docs/data/base/components/slider/LabeledValuesSlider.tsx +++ b/docs/data/base/components/slider/LabeledValuesSlider.tsx @@ -11,7 +11,7 @@ export default function LabeledValuesSlider() { } interface SliderValueLabelProps { - children: React.ReactElement; + children: React.ReactElement; } function SliderValueLabel({ children }: SliderValueLabelProps) { diff --git a/docs/data/base/components/transitions/ReactTransitionGroup.tsx b/docs/data/base/components/transitions/ReactTransitionGroup.tsx index 1f3ef41aaf6dfc..cc72ef63550fbc 100644 --- a/docs/data/base/components/transitions/ReactTransitionGroup.tsx +++ b/docs/data/base/components/transitions/ReactTransitionGroup.tsx @@ -115,7 +115,7 @@ function PopupWithTrigger(props: PopupProps) { ); } -function MaterialUITransitionAdapter(props: { children: React.ReactElement }) { +function MaterialUITransitionAdapter(props: { children: React.ReactElement }) { const { requestedEnter, onExited } = useTransitionStateManager(); const { children } = props; diff --git a/docs/data/base/getting-started/accessibility/KeyboardNavigation.tsx b/docs/data/base/getting-started/accessibility/KeyboardNavigation.tsx index 917e340d1ea07d..90109120fee33e 100644 --- a/docs/data/base/getting-started/accessibility/KeyboardNavigation.tsx +++ b/docs/data/base/getting-started/accessibility/KeyboardNavigation.tsx @@ -54,7 +54,7 @@ const Select = React.forwardRef(function Select< return ; }) as ( props: SelectProps & React.RefAttributes, -) => JSX.Element; +) => React.JSX.Element; const SelectButton = React.forwardRef(function SelectButton< TValue extends {}, diff --git a/docs/data/joy/components/alert/AlertVariousStates.tsx b/docs/data/joy/components/alert/AlertVariousStates.tsx index d5809cf4f57b3c..417632d2c3641c 100644 --- a/docs/data/joy/components/alert/AlertVariousStates.tsx +++ b/docs/data/joy/components/alert/AlertVariousStates.tsx @@ -14,7 +14,7 @@ export default function AlertVariousStates() { const items: { title: string; color: ColorPaletteProp; - icon: React.ReactElement; + icon: React.ReactElement; }[] = [ { title: 'Success', color: 'success', icon: }, { title: 'Warning', color: 'warning', icon: }, diff --git a/docs/data/joy/components/autocomplete/AutocompleteHint.tsx b/docs/data/joy/components/autocomplete/AutocompleteHint.tsx index 4b8ff21f8a4d04..4d7c518c49500f 100644 --- a/docs/data/joy/components/autocomplete/AutocompleteHint.tsx +++ b/docs/data/joy/components/autocomplete/AutocompleteHint.tsx @@ -12,7 +12,7 @@ const StyledDiv = styled('div')({ }); type WrapperProps = { - children: JSX.Element; + children: React.JSX.Element; hint: string; }; diff --git a/docs/data/joy/components/autocomplete/Virtualize.tsx b/docs/data/joy/components/autocomplete/Virtualize.tsx index 3484ab6a27358b..96737ce4ed76cd 100644 --- a/docs/data/joy/components/autocomplete/Virtualize.tsx +++ b/docs/data/joy/components/autocomplete/Virtualize.tsx @@ -66,7 +66,7 @@ const ListboxComponent = React.forwardRef< const { children, anchorEl, open, modifiers, ...other } = props; const itemData: Array = []; ( - children as [Array<{ children: Array | undefined }>] + children as [Array<{ children: Array> | undefined }>] )[0].forEach((item) => { if (item) { itemData.push(item); diff --git a/docs/data/joy/components/input/FloatingLabelInput.tsx b/docs/data/joy/components/input/FloatingLabelInput.tsx index 521eb66351af7c..562227ac60e82f 100644 --- a/docs/data/joy/components/input/FloatingLabelInput.tsx +++ b/docs/data/joy/components/input/FloatingLabelInput.tsx @@ -56,7 +56,7 @@ const StyledLabel = styled('label')(({ theme }) => ({ const InnerInput = React.forwardRef< HTMLInputElement, - JSX.IntrinsicElements['input'] + React.JSX.IntrinsicElements['input'] >(function InnerInput(props, ref) { const id = React.useId(); return ( diff --git a/docs/data/joy/components/menu/MenuIconSideNavExample.tsx b/docs/data/joy/components/menu/MenuIconSideNavExample.tsx index 28d26843928d4e..de451cc1bd3989 100644 --- a/docs/data/joy/components/menu/MenuIconSideNavExample.tsx +++ b/docs/data/joy/components/menu/MenuIconSideNavExample.tsx @@ -15,7 +15,7 @@ import MenuButton from '@mui/joy/MenuButton'; // https://popper.js.org/docs/v2/modifiers/offset/ interface MenuButtonProps extends React.HTMLAttributes { children: React.ReactNode; - menu: React.ReactElement; + menu: React.ReactElement; open: boolean; onOpen: ( event?: diff --git a/docs/data/joy/components/menu/MenuToolbarExample.tsx b/docs/data/joy/components/menu/MenuToolbarExample.tsx index d2cead8ad4fa98..764a66b010ec98 100644 --- a/docs/data/joy/components/menu/MenuToolbarExample.tsx +++ b/docs/data/joy/components/menu/MenuToolbarExample.tsx @@ -13,7 +13,7 @@ import { Theme } from '@mui/joy'; type MenuBarButtonProps = Pick & { onOpen: DropdownProps['onOpenChange']; onKeyDown: React.KeyboardEventHandler; - menu: JSX.Element; + menu: React.JSX.Element; onMouseEnter: React.MouseEventHandler; }; diff --git a/docs/data/joy/components/textarea/FloatingLabelTextarea.tsx b/docs/data/joy/components/textarea/FloatingLabelTextarea.tsx index 0115794252e0a7..f361e06583d233 100644 --- a/docs/data/joy/components/textarea/FloatingLabelTextarea.tsx +++ b/docs/data/joy/components/textarea/FloatingLabelTextarea.tsx @@ -48,7 +48,7 @@ const StyledLabel = styled('label')(({ theme }) => ({ const InnerTextarea = React.forwardRef< HTMLTextAreaElement, - JSX.IntrinsicElements['textarea'] + React.JSX.IntrinsicElements['textarea'] >(function InnerTextarea(props, ref) { const id = React.useId(); return ( diff --git a/docs/data/joy/getting-started/templates/files/components/Menu.tsx b/docs/data/joy/getting-started/templates/files/components/Menu.tsx index 9eb339005910d4..b5edc3477a58c0 100644 --- a/docs/data/joy/getting-started/templates/files/components/Menu.tsx +++ b/docs/data/joy/getting-started/templates/files/components/Menu.tsx @@ -4,7 +4,7 @@ import MenuItem from '@mui/joy/MenuItem'; import { ListActionTypes } from '@mui/base/useList'; export default function Menu(props: { - control: React.ReactElement; + control: React.ReactElement; id: string; menus: Array<{ label: string } & { [k: string]: any }>; }) { diff --git a/docs/data/joy/getting-started/templates/messages/components/ChatsPane.tsx b/docs/data/joy/getting-started/templates/messages/components/ChatsPane.tsx index adf0c5f3fa3258..85fbd4b4e4bb1c 100644 --- a/docs/data/joy/getting-started/templates/messages/components/ChatsPane.tsx +++ b/docs/data/joy/getting-started/templates/messages/components/ChatsPane.tsx @@ -24,7 +24,7 @@ export default function ChatsPane(props: ChatsPaneProps) { sx={{ borderRight: '1px solid', borderColor: 'divider', - height: 'calc(100dvh - var(--Header-height))', + height: { sm: 'calc(100dvh - var(--Header-height))', md: '100dvh' }, overflowY: 'auto', }} > diff --git a/docs/data/joy/getting-started/templates/messages/components/Header.tsx b/docs/data/joy/getting-started/templates/messages/components/Header.tsx index 9cae700a7495f4..5cad9f1367cb84 100644 --- a/docs/data/joy/getting-started/templates/messages/components/Header.tsx +++ b/docs/data/joy/getting-started/templates/messages/components/Header.tsx @@ -9,7 +9,7 @@ export default function Header() { return ( }, +) { const { icon, sx, ...other } = props; return ( ; fileName: string; fileSize: string; progress: number; diff --git a/docs/data/joy/integrations/material-ui/material-ui.md b/docs/data/joy/integrations/material-ui/material-ui.md index 3ee00b0839c8d2..e0377eec85086d 100644 --- a/docs/data/joy/integrations/material-ui/material-ui.md +++ b/docs/data/joy/integrations/material-ui/material-ui.md @@ -29,8 +29,8 @@ Render Joy UI's `CssVarsProvider` inside Material UI's provider and use `THEME ```js import { - experimental_extendTheme as materialExtendTheme, - Experimental_CssVarsProvider as MaterialCssVarsProvider, + extendTheme as materialExtendTheme, + CssVarsProvider as MaterialCssVarsProvider, THEME_ID as MATERIAL_THEME_ID, } from '@mui/material/styles'; import { CssVarsProvider as JoyCssVarsProvider } from '@mui/joy/styles'; diff --git a/docs/data/material/components/app-bar/BackToTop.tsx b/docs/data/material/components/app-bar/BackToTop.tsx index 87eca489bf5c9f..c2d9673bdfa8fe 100644 --- a/docs/data/material/components/app-bar/BackToTop.tsx +++ b/docs/data/material/components/app-bar/BackToTop.tsx @@ -16,7 +16,7 @@ interface Props { * You won't need it on your project. */ window?: () => Window; - children?: React.ReactElement; + children?: React.ReactElement; } function ScrollTop(props: Props) { diff --git a/docs/data/material/components/app-bar/ElevateAppBar.tsx b/docs/data/material/components/app-bar/ElevateAppBar.tsx index 195908dcaf13fe..df548678f153fd 100644 --- a/docs/data/material/components/app-bar/ElevateAppBar.tsx +++ b/docs/data/material/components/app-bar/ElevateAppBar.tsx @@ -13,7 +13,7 @@ interface Props { * You won't need it on your project. */ window?: () => Window; - children?: React.ReactElement; + children?: React.ReactElement; } function ElevationScroll(props: Props) { diff --git a/docs/data/material/components/app-bar/HideAppBar.tsx b/docs/data/material/components/app-bar/HideAppBar.tsx index 4bc84bfc663305..925410ed692eb9 100644 --- a/docs/data/material/components/app-bar/HideAppBar.tsx +++ b/docs/data/material/components/app-bar/HideAppBar.tsx @@ -14,7 +14,7 @@ interface Props { * You won't need it on your project. */ window?: () => Window; - children?: React.ReactElement; + children?: React.ReactElement; } function HideOnScroll(props: Props) { diff --git a/docs/data/material/components/autocomplete/Virtualize.tsx b/docs/data/material/components/autocomplete/Virtualize.tsx index 9cbc173d404c7f..7d7dab92ebd8c4 100644 --- a/docs/data/material/components/autocomplete/Virtualize.tsx +++ b/docs/data/material/components/autocomplete/Virtualize.tsx @@ -56,9 +56,9 @@ const ListboxComponent = React.forwardRef< React.HTMLAttributes >(function ListboxComponent(props, ref) { const { children, ...other } = props; - const itemData: React.ReactElement[] = []; - (children as React.ReactElement[]).forEach( - (item: React.ReactElement & { children?: React.ReactElement[] }) => { + const itemData: React.ReactElement[] = []; + (children as React.ReactElement[]).forEach( + (item: React.ReactElement & { children?: React.ReactElement[] }) => { itemData.push(item); itemData.push(...(item.children || [])); }, @@ -71,7 +71,7 @@ const ListboxComponent = React.forwardRef< const itemCount = itemData.length; const itemSize = smUp ? 36 : 48; - const getChildSize = (child: React.ReactElement) => { + const getChildSize = (child: React.ReactElement) => { if (child.hasOwnProperty('group')) { return 48; } diff --git a/docs/data/material/components/dialogs/FullScreenDialog.tsx b/docs/data/material/components/dialogs/FullScreenDialog.tsx index 1edd984e8388f5..5b0dc07b9cd042 100644 --- a/docs/data/material/components/dialogs/FullScreenDialog.tsx +++ b/docs/data/material/components/dialogs/FullScreenDialog.tsx @@ -15,7 +15,7 @@ import { TransitionProps } from '@mui/material/transitions'; const Transition = React.forwardRef(function Transition( props: TransitionProps & { - children: React.ReactElement; + children: React.ReactElement; }, ref: React.Ref, ) { diff --git a/docs/data/material/components/grid/AutoGridNoWrap.js b/docs/data/material/components/grid/AutoGridNoWrap.js index 9dd12f5d3373f0..15ffadca4efc7e 100644 --- a/docs/data/material/components/grid/AutoGridNoWrap.js +++ b/docs/data/material/components/grid/AutoGridNoWrap.js @@ -27,7 +27,7 @@ export default function AutoGridNoWrap() { p: 2, }} > - + W @@ -43,7 +43,7 @@ export default function AutoGridNoWrap() { p: 2, }} > - + W @@ -59,7 +59,7 @@ export default function AutoGridNoWrap() { p: 2, }} > - + W diff --git a/docs/data/material/components/grid/AutoGridNoWrap.tsx b/docs/data/material/components/grid/AutoGridNoWrap.tsx index 9dd12f5d3373f0..15ffadca4efc7e 100644 --- a/docs/data/material/components/grid/AutoGridNoWrap.tsx +++ b/docs/data/material/components/grid/AutoGridNoWrap.tsx @@ -27,7 +27,7 @@ export default function AutoGridNoWrap() { p: 2, }} > - + W @@ -43,7 +43,7 @@ export default function AutoGridNoWrap() { p: 2, }} > - + W @@ -59,7 +59,7 @@ export default function AutoGridNoWrap() { p: 2, }} > - + W diff --git a/docs/data/material/components/lists/InteractiveList.tsx b/docs/data/material/components/lists/InteractiveList.tsx index ba8ed0cfabbd5d..661995d60917d4 100644 --- a/docs/data/material/components/lists/InteractiveList.tsx +++ b/docs/data/material/components/lists/InteractiveList.tsx @@ -16,7 +16,7 @@ import Typography from '@mui/material/Typography'; import FolderIcon from '@mui/icons-material/Folder'; import DeleteIcon from '@mui/icons-material/Delete'; -function generate(element: React.ReactElement) { +function generate(element: React.ReactElement) { return [0, 1, 2].map((value) => React.cloneElement(element, { key: value, diff --git a/docs/data/material/components/modal/SpringModal.tsx b/docs/data/material/components/modal/SpringModal.tsx index b478ef1dc38fb2..31c07aadab1754 100644 --- a/docs/data/material/components/modal/SpringModal.tsx +++ b/docs/data/material/components/modal/SpringModal.tsx @@ -7,7 +7,7 @@ import Typography from '@mui/material/Typography'; import { useSpring, animated } from '@react-spring/web'; interface FadeProps { - children: React.ReactElement; + children: React.ReactElement; in?: boolean; onClick?: any; onEnter?: (node: HTMLElement, isAppearing: boolean) => void; diff --git a/docs/data/material/components/popper/SpringPopper.tsx b/docs/data/material/components/popper/SpringPopper.tsx index e7e5c98dee72f2..5526317503ff16 100644 --- a/docs/data/material/components/popper/SpringPopper.tsx +++ b/docs/data/material/components/popper/SpringPopper.tsx @@ -4,7 +4,7 @@ import Popper from '@mui/material/Popper'; import { useSpring, animated } from '@react-spring/web'; interface FadeProps { - children?: React.ReactElement; + children?: React.ReactElement; in?: boolean; onEnter?: () => void; onExited?: () => void; diff --git a/docs/data/material/components/rating/RadioGroupRating.tsx b/docs/data/material/components/rating/RadioGroupRating.tsx index 097970dd4bcd89..f42709d21c1359 100644 --- a/docs/data/material/components/rating/RadioGroupRating.tsx +++ b/docs/data/material/components/rating/RadioGroupRating.tsx @@ -15,7 +15,7 @@ const StyledRating = styled(Rating)(({ theme }) => ({ const customIcons: { [index: string]: { - icon: React.ReactElement; + icon: React.ReactElement; label: string; }; } = { diff --git a/docs/data/material/components/skeleton/YouTube.js b/docs/data/material/components/skeleton/YouTube.js index ad14816a766901..29f00ad7234114 100644 --- a/docs/data/material/components/skeleton/YouTube.js +++ b/docs/data/material/components/skeleton/YouTube.js @@ -33,7 +33,7 @@ function Media(props) { const { loading = false } = props; return ( - + {(loading ? Array.from(new Array(3)) : data).map((item, index) => ( {item ? ( diff --git a/docs/data/material/components/skeleton/YouTube.tsx b/docs/data/material/components/skeleton/YouTube.tsx index b0ac646c1853fd..e9dc01bacf6800 100644 --- a/docs/data/material/components/skeleton/YouTube.tsx +++ b/docs/data/material/components/skeleton/YouTube.tsx @@ -36,7 +36,7 @@ function Media(props: MediaProps) { const { loading = false } = props; return ( - + {(loading ? Array.from(new Array(3)) : data).map((item, index) => ( {item ? ( diff --git a/docs/data/material/components/steppers/CustomizedSteppers.tsx b/docs/data/material/components/steppers/CustomizedSteppers.tsx index 2fa6b486f6197f..3a4c2e7ddf879c 100644 --- a/docs/data/material/components/steppers/CustomizedSteppers.tsx +++ b/docs/data/material/components/steppers/CustomizedSteppers.tsx @@ -122,7 +122,7 @@ const ColorlibStepIconRoot = styled('div')<{ function ColorlibStepIcon(props: StepIconProps) { const { active, completed, className } = props; - const icons: { [index: string]: React.ReactElement } = { + const icons: { [index: string]: React.ReactElement } = { 1: , 2: , 3: , diff --git a/docs/data/material/experimental-api/css-theme-variables/customization.md b/docs/data/material/customization/css-theme-variables/configuration.md similarity index 91% rename from docs/data/material/experimental-api/css-theme-variables/customization.md rename to docs/data/material/customization/css-theme-variables/configuration.md index 6c8776bf98005e..5dad4c5f7f4b44 100644 --- a/docs/data/material/experimental-api/css-theme-variables/customization.md +++ b/docs/data/material/customization/css-theme-variables/configuration.md @@ -1,16 +1,13 @@ -# CSS theme variables - Customization +# CSS theme variables - Configuration -

A guide for customizing CSS theme variables in Material UI.

+

A guide for configuring CSS theme variables in Material UI.

## Theming -`experimental_extendTheme` is an API that extends the default theme. It returns a theme that can only be used by the `Experimental_CssVarsProvider`. +`extendTheme` is an API that extends the default theme. It returns a theme that can only be used by the `CssVarsProvider`. ```js -import { - Experimental_CssVarsProvider as CssVarsProvider, - experimental_extendTheme as extendTheme, -} from '@mui/material/styles'; +import { CssVarsProvider, extendTheme } from '@mui/material/styles'; const theme = extendTheme(); // ...custom theme @@ -181,7 +178,7 @@ Or use `var()` to refer to the CSS variable directly: ``` :::warning -If you're using a [custom prefix](/material-ui/experimental-api/css-theme-variables/customization/#changing-variable-prefixes), make sure to replace the default `--mui`. +If you're using a [custom prefix](/material-ui/customization/css-theme-variables/configuration/#changing-variable-prefixes), make sure to replace the default `--mui`. ::: ### TypeScript @@ -289,7 +286,7 @@ function App() { } ``` -For a server-side application, provide the same value to [`getInitColorSchemeScript()`](/material-ui/experimental-api/css-theme-variables/usage/#server-side-rendering): +For a server-side application, provide the same value to [`getInitColorSchemeScript()`](/material-ui/customization/css-theme-variables/usage/#server-side-rendering): ```js getInitColorSchemeScript({ diff --git a/docs/data/material/experimental-api/css-theme-variables/overview.md b/docs/data/material/customization/css-theme-variables/overview.md similarity index 81% rename from docs/data/material/experimental-api/css-theme-variables/overview.md rename to docs/data/material/customization/css-theme-variables/overview.md index c80b73e94c5dd7..b706687d6cb99e 100644 --- a/docs/data/material/experimental-api/css-theme-variables/overview.md +++ b/docs/data/material/customization/css-theme-variables/overview.md @@ -11,8 +11,15 @@ If this is your first time encountering CSS variables, you should check out [the ## Introduction -CSS theme variable support is a new feature in Material UI added in [`v5.6.0`](https://github.com/mui/material-ui/releases/tag/v5.6.0) (but not enabled by default). It tells Material UI components to use the generated CSS theme variables instead of raw values. This provides significant improvements in developer experience related to theming and customization. -With these variables, you can inject a theme into your app's stylesheet _at build time_ to apply the user's selected settings before the whole app is rendered. +CSS theme variables replace raw values in Material UI components for a better developer experience because, in the browser dev tool, you will see which theme token is used as a value. + +In addition with these variables, you can inject a theme into your app's stylesheet _at build time_ to apply the user's selected settings before the whole app is rendered. + +:::info +The `CssVarsProvider` is built on top of the [`ThemeProvider`](/material-ui/customization/theming/#themeprovider) with extra features like CSS variable generation, storage synchronization, unlimited color schemes, and more. + +If you have an existing theme, you can migrate to CSS theme variables by following the [migration guide](/material-ui/migration/migration-css-theme-variables/). +::: ## Advantages @@ -60,7 +67,7 @@ const darkTheme = createTheme({ **CSS theme variables**: Light and dark colors are consolidated into a theme. ```js -import { experimental_extendTheme as extendTheme } from '@mui/material/styles'; +import { extendTheme } from '@mui/material/styles'; // `extendTheme` is a new API const theme = extendTheme({ @@ -117,6 +124,6 @@ extendTheme({ ## What's next -- To start a new project with CSS theme variables, check out the [basic usage guide](/material-ui/experimental-api/css-theme-variables/usage/). -- For an existing Material UI project, check out the [migration guide](/material-ui/experimental-api/css-theme-variables/migration/). -- For theming and customization, check out the [how-to guide](/material-ui/experimental-api/css-theme-variables/customization/). +- To start a new project with CSS theme variables, check out the [basic usage guide](/material-ui/customization/css-theme-variables/usage/). +- For an existing Material UI project, check out the [migration guide](/material-ui/migration/migration-css-theme-variables/). +- For theming and customization, check out the [how-to guide](/material-ui/customization/css-theme-variables/configuration/). diff --git a/docs/data/material/experimental-api/css-theme-variables/usage/CssVarsBasic.js b/docs/data/material/customization/css-theme-variables/usage/CssVarsBasic.js similarity index 69% rename from docs/data/material/experimental-api/css-theme-variables/usage/CssVarsBasic.js rename to docs/data/material/customization/css-theme-variables/usage/CssVarsBasic.js index cbbdc835b12d7c..db146ef6c72468 100644 --- a/docs/data/material/experimental-api/css-theme-variables/usage/CssVarsBasic.js +++ b/docs/data/material/customization/css-theme-variables/usage/CssVarsBasic.js @@ -1,8 +1,5 @@ import * as React from 'react'; -import { - experimental_extendTheme as extendTheme, - Experimental_CssVarsProvider as CssVarsProvider, -} from '@mui/material/styles'; +import { extendTheme, CssVarsProvider } from '@mui/material/styles'; import Button from '@mui/material/Button'; const theme = extendTheme({ diff --git a/docs/data/material/experimental-api/css-theme-variables/usage/CssVarsBasic.tsx b/docs/data/material/customization/css-theme-variables/usage/CssVarsBasic.tsx similarity index 69% rename from docs/data/material/experimental-api/css-theme-variables/usage/CssVarsBasic.tsx rename to docs/data/material/customization/css-theme-variables/usage/CssVarsBasic.tsx index cbbdc835b12d7c..db146ef6c72468 100644 --- a/docs/data/material/experimental-api/css-theme-variables/usage/CssVarsBasic.tsx +++ b/docs/data/material/customization/css-theme-variables/usage/CssVarsBasic.tsx @@ -1,8 +1,5 @@ import * as React from 'react'; -import { - experimental_extendTheme as extendTheme, - Experimental_CssVarsProvider as CssVarsProvider, -} from '@mui/material/styles'; +import { extendTheme, CssVarsProvider } from '@mui/material/styles'; import Button from '@mui/material/Button'; const theme = extendTheme({ diff --git a/docs/data/material/experimental-api/css-theme-variables/usage/CssVarsBasic.tsx.preview b/docs/data/material/customization/css-theme-variables/usage/CssVarsBasic.tsx.preview similarity index 100% rename from docs/data/material/experimental-api/css-theme-variables/usage/CssVarsBasic.tsx.preview rename to docs/data/material/customization/css-theme-variables/usage/CssVarsBasic.tsx.preview diff --git a/docs/data/material/experimental-api/css-theme-variables/usage/usage.md b/docs/data/material/customization/css-theme-variables/usage/usage.md similarity index 86% rename from docs/data/material/experimental-api/css-theme-variables/usage/usage.md rename to docs/data/material/customization/css-theme-variables/usage/usage.md index 08089eb2def2a3..2b42442d16138a 100644 --- a/docs/data/material/experimental-api/css-theme-variables/usage/usage.md +++ b/docs/data/material/customization/css-theme-variables/usage/usage.md @@ -1,11 +1,11 @@ # CSS theme variables - Usage -

Learn how to use the experimental APIs to adopt CSS theme variables.

+

Learn how to adopt CSS theme variables.

## Getting started -The CSS variables API relies on a new experimental provider for the theme called `Experimental_CssVarsProvider` to inject styles into Material UI components. -In addition to providing the theme in the inner React context, this new provider also generates CSS variables out of all tokens in the theme that are not functions, and makes them available in the context as well. +The CSS variables API relies on a provider called `CssVarsProvider` to inject styles into Material UI components. +`CssVarsProvider` generates CSS variables out of all tokens in the theme that are serializable, and makes them available in the React context along with the theme itself via [`ThemeProvider`](/material-ui/customization/theming/#theme-provider). Once the `App` renders on the screen, you will see the CSS theme variables in the HTML `:root` stylesheet. The variables are flattened and prefixed with `--mui` by default: @@ -27,6 +27,8 @@ The following demo uses `--md-demo` as a prefix for the variables: :::info The `CssVarsProvider` is built on top of the [`ThemeProvider`](/material-ui/customization/theming/#themeprovider) with extra features like CSS variable generation, storage synchronization, unlimited color schemes, and more. + +If you have an existing theme, you can migrate to CSS theme variables by following the [migration guide](/material-ui/migration/migration-css-theme-variables/). ::: ## Toggle between light and dark mode @@ -34,10 +36,7 @@ The `CssVarsProvider` is built on top of the [`ThemeProvider`](/material-ui/cust The `useColorScheme` hook lets you read and update the user-selected mode: ```jsx -import { - Experimental_CssVarsProvider as CssVarsProvider, - useColorScheme, -} from '@mui/material/styles'; +import { CssVarsProvider, useColorScheme } from '@mui/material/styles'; // ModeSwitcher is an example interface for toggling between modes. // Material UI does not provide the toggle interface—you have to build it yourself. @@ -111,7 +110,7 @@ The structure of this object is nearly identical to the theme structure, the onl ``` :::warning - If you have set up a [custom prefix](/material-ui/experimental-api/css-theme-variables/customization/#changing-variable-prefixes), make sure to replace the default `--mui`. + If you have set up a [custom prefix](/material-ui/customization/css-theme-variables/configuration/#changing-variable-prefixes), make sure to replace the default `--mui`. ::: ## Server-side rendering diff --git a/docs/data/material/customization/theming/theming.md b/docs/data/material/customization/theming/theming.md index e545c049b02135..408dfe093c60a2 100644 --- a/docs/data/material/customization/theming/theming.md +++ b/docs/data/material/customization/theming/theming.md @@ -10,7 +10,7 @@ To promote greater consistency between apps, light and dark theme types are avai ## Theme provider -If you wish to customize the theme, you need to use the `ThemeProvider` component in order to inject a theme into your application. +Use `ThemeProvider` or [`CssVarsProvider`](#css-variables-provider) to inject a custom theme into your application. However, this is optional; Material UI components come with a default theme. `ThemeProvider` relies on the [context feature of React](https://react.dev/learn/passing-data-deeply-with-context) to pass the theme down to the components, so you need to make sure that `ThemeProvider` is a parent of the components you are trying to customize. @@ -45,7 +45,8 @@ const theme = createTheme({ ``` :::warning -`vars` is a private field for [CSS theme variables](/material-ui/experimental-api/css-theme-variables/overview/). It will throw an error if you try to pass a value to it: +`vars` is an autogenerated field for [CSS theme variables](/material-ui/customization/css-theme-variables/overview/). +It will throw an error if you try to pass a value to it: ```jsx createTheme({ @@ -114,6 +115,13 @@ You can extend the outer theme by providing a function: {{"demo": "ThemeNestingExtend.js"}} +## CSS variables provider + +The `CssVarsProvider` is built on top of the `ThemeProvider` with extra features like theme CSS variables generation, built-in color scheme synchronization with the user's system preference, and more. +The `CssVarsProvider` is built on top of the `ThemeProvider` with extra features like theme CSS variables generation, built-in color scheme synchronization, user's system preference, and more. + +To start using the `CssVarsProvider`, check out the [basic usage guide](/material-ui/customization/css-theme-variables/usage/). If you are using the `ThemeProvider`, read the [migration guide](/material-ui/migration/migration-css-theme-variables/). + ## API ### `createTheme(options, ...args) => theme` diff --git a/docs/data/material/design-resources/material-ui-sync/material-ui-sync.md b/docs/data/material/design-resources/material-ui-sync/material-ui-sync.md index d3c75e66df3647..77d1ac95ea7d5d 100644 --- a/docs/data/material/design-resources/material-ui-sync/material-ui-sync.md +++ b/docs/data/material/design-resources/material-ui-sync/material-ui-sync.md @@ -237,16 +237,13 @@ You can also check out the Storybook preview to test the Material UI version of ## Using the generated theme :::warning -Themes generated by Sync must be used with Material UI's [`CssVarsProvider`](/material-ui/experimental-api/css-theme-variables/migration/)—the default [`ThemeProvider`](/material-ui/customization/theming/#theme-provider) is not supported. +Themes generated by Sync must be used with Material UI's [`CssVarsProvider`](/material-ui/migration/migration-css-theme-variables/)—the [`ThemeProvider`](/material-ui/customization/theming/#theme-provider) is not supported. ::: Here's an example of how to add a Sync-generated theme to your codebase: ```tsx title="_app.tsx" -import { - experimental_extendTheme as extendTheme, - Experimental_CssVarsProvider as CssVarsProvider, -} from '@mui/material/styles'; +import { extendTheme, CssVarsProvider } from '@mui/material/styles'; export default function MyApp({ Component, pageProps }) { const theme = extendTheme({ diff --git a/docs/data/material/experimental-api/css-variables/CssVariablesCustomization.js b/docs/data/material/experimental-api/css-variables/CssVariablesCustomization.js deleted file mode 100644 index 7d492392a9c6b1..00000000000000 --- a/docs/data/material/experimental-api/css-variables/CssVariablesCustomization.js +++ /dev/null @@ -1,45 +0,0 @@ -import * as React from 'react'; -import Button from '@mui/material/Button'; -import { colorChannel } from '@mui/system'; -import { - Experimental_CssVarsProvider as CssVarsProvider, - styled, -} from '@mui/material/styles'; - -// Custom button using custom styles with CSS variables -const CustomButton = styled(Button)(({ theme }) => ({ - backgroundColor: theme.vars.palette.success.dark, - color: theme.vars.palette.common.white, - '&:hover': { - backgroundColor: `rgba(${theme.vars.palette.success.mainChannel} / 0.95)`, - }, -})); - -// Custom button using CSS variables -const CssVarsCustomButton = styled(Button)({ - '--mui-palette-primary-main': '#FF0000', - '--mui-palette-primary-dark': '#8B0000', - '--mui-palette-primary-mainChannel': colorChannel('#FF0000'), // necessary for calculating the alpha values -}); - -const useEnhancedEffect = - typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect; - -export default function CssVariablesCustomization() { - // the `node` is used for attaching CSS variables to this demo, you might not need it in your application. - const [node, setNode] = React.useState(null); - useEnhancedEffect(() => { - setNode(document.getElementById('css-vars-customization')); - }, []); - return ( -
- - Custom styles - CSS variables - -
- ); -} diff --git a/docs/data/material/experimental-api/css-variables/CssVarsCustomTheme.js b/docs/data/material/experimental-api/css-variables/CssVarsCustomTheme.js deleted file mode 100644 index 53a109d954f207..00000000000000 --- a/docs/data/material/experimental-api/css-variables/CssVarsCustomTheme.js +++ /dev/null @@ -1,134 +0,0 @@ -import * as React from 'react'; -import { - Experimental_CssVarsProvider as CssVarsProvider, - useColorScheme, - experimental_extendTheme, -} from '@mui/material/styles'; -import Moon from '@mui/icons-material/DarkMode'; -import Sun from '@mui/icons-material/LightMode'; -import Button from '@mui/material/Button'; -import Box from '@mui/material/Box'; -import { teal, deepOrange, orange, cyan } from '@mui/material/colors'; - -function ColorSchemePicker() { - const { mode, setMode } = useColorScheme(); - const [mounted, setMounted] = React.useState(false); - React.useEffect(() => { - setMounted(true); - }, []); - if (!mounted) { - return null; - } - - return ( - - ); -} - -const theme = experimental_extendTheme({ - colorSchemes: { - light: { - palette: { - primary: teal, - secondary: deepOrange, - }, - }, - dark: { - palette: { - primary: cyan, - secondary: orange, - }, - }, - }, -}); - -const useEnhancedEffect = - typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect; - -export default function CssVarsCustomTheme() { - // the `node` is used for attaching CSS variables to this demo, you might not need it in your application. - const [node, setNode] = React.useState(null); - useEnhancedEffect(() => { - setNode(document.getElementById('css-vars-custom-theme')); - }, []); - return ( -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ); -} diff --git a/docs/data/material/experimental-api/css-variables/CssVarsCustomTheme.tsx b/docs/data/material/experimental-api/css-variables/CssVarsCustomTheme.tsx deleted file mode 100644 index a0c0fa12fd97e7..00000000000000 --- a/docs/data/material/experimental-api/css-variables/CssVarsCustomTheme.tsx +++ /dev/null @@ -1,134 +0,0 @@ -import * as React from 'react'; -import { - Experimental_CssVarsProvider as CssVarsProvider, - useColorScheme, - experimental_extendTheme, -} from '@mui/material/styles'; -import Moon from '@mui/icons-material/DarkMode'; -import Sun from '@mui/icons-material/LightMode'; -import Button from '@mui/material/Button'; -import Box from '@mui/material/Box'; -import { teal, deepOrange, orange, cyan } from '@mui/material/colors'; - -function ColorSchemePicker() { - const { mode, setMode } = useColorScheme(); - const [mounted, setMounted] = React.useState(false); - React.useEffect(() => { - setMounted(true); - }, []); - if (!mounted) { - return null; - } - - return ( - - ); -} - -const theme = experimental_extendTheme({ - colorSchemes: { - light: { - palette: { - primary: teal, - secondary: deepOrange, - }, - }, - dark: { - palette: { - primary: cyan, - secondary: orange, - }, - }, - }, -}); - -const useEnhancedEffect = - typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect; - -export default function CssVarsCustomTheme() { - // the `node` is used for attaching CSS variables to this demo, you might not need it in your application. - const [node, setNode] = React.useState(null); - useEnhancedEffect(() => { - setNode(document.getElementById('css-vars-custom-theme') as null | HTMLElement); - }, []); - return ( -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ); -} diff --git a/docs/data/material/experimental-api/css-variables/CssVarsProviderBasic.tsx.preview b/docs/data/material/experimental-api/css-variables/CssVarsProviderBasic.tsx.preview deleted file mode 100644 index 7e68c29d7f5fc5..00000000000000 --- a/docs/data/material/experimental-api/css-variables/CssVarsProviderBasic.tsx.preview +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/docs/data/material/integrations/nextjs/nextjs.md b/docs/data/material/integrations/nextjs/nextjs.md index 5829d5d971a20c..75bcafea957d70 100644 --- a/docs/data/material/integrations/nextjs/nextjs.md +++ b/docs/data/material/integrations/nextjs/nextjs.md @@ -124,7 +124,7 @@ To learn more about theming, check out the [theming guide](/material-ui/customiz #### CSS theme variables -If you want to use [CSS theme variables](/material-ui/experimental-api/css-theme-variables/overview/), use the `extendTheme` and `CssVarsProvider` utilities instead: +If you want to use [CSS theme variables](/material-ui/customization/css-theme-variables/overview/), use the `extendTheme` and `CssVarsProvider` utilities instead: ```diff title="src/theme.ts" 'use client'; @@ -136,7 +136,7 @@ If you want to use [CSS theme variables](/material-ui/experimental-api/css-theme +import { CssVarsProvider } from '@mui/material/styles'; ``` -Learn more about [the advantages of CSS theme variables](/material-ui/experimental-api/css-theme-variables/overview/#advantages). +Learn more about [the advantages of CSS theme variables](/material-ui/customization/css-theme-variables/overview/#advantages). ### Using other styling solutions @@ -367,11 +367,11 @@ To learn more about theming, check out the [Theming guide](/material-ui/customiz #### CSS theme variables -If you want to use [CSS theme variables](/material-ui/experimental-api/css-theme-variables/overview/), use the `extendTheme` and `CssVarsProvider` instead: +If you want to use [CSS theme variables](/material-ui/customization/css-theme-variables/overview/), use the `extendTheme` and `CssVarsProvider` instead: ```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). +Learn more about [the advantages of CSS theme variables](/material-ui/customization/css-theme-variables/overview/#advantages). diff --git a/docs/data/material/integrations/routing/ListRouter.tsx b/docs/data/material/integrations/routing/ListRouter.tsx index 1900b67cf2d582..be912a6f8c9eff 100644 --- a/docs/data/material/integrations/routing/ListRouter.tsx +++ b/docs/data/material/integrations/routing/ListRouter.tsx @@ -33,7 +33,7 @@ function Router(props: { children?: React.ReactNode }) { } interface ListItemLinkProps { - icon?: React.ReactElement; + icon?: React.ReactElement; primary: string; to: string; } 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 7038df604d81d6..383afeebbe710c 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 @@ -1053,6 +1053,25 @@ The ListItemSecondaryAction component was deprecated in favor of the `secondaryA ``` +## Grid + +Use the [codemod](https://github.com/mui/material-ui/tree/HEAD/packages/mui-codemod#grid-props) below to migrate the code as described in the following sections: + +```bash +npx @mui/codemod@next deprecations/grid-props +``` + +### wrap prop + +The Grid's `wrap` prop was deprecated in favor of `flexWrap` MUI System prop: + +```diff + ; +``` + ## PaginationItem Use the [codemod](https://github.com/mui/material-ui/tree/HEAD/packages/mui-codemod#pagination-item-classes) below to migrate the code as described in the following sections: @@ -1116,6 +1135,36 @@ The PaginationItems's `components` prop was deprecated in favor of `slots`: /> ``` +## Popper + +Use the [codemod](https://github.com/mui/material-ui/tree/HEAD/packages/mui-codemod#popper-props) below to migrate the code as described in the following sections: + +```bash +npx @mui/codemod@next deprecations/popper-props +``` + +### components + +The Popper's prop `components` was deprecated in favor of `slots`: + +```diff + +``` + +### componentsProps + +The Popper's prop `componentsProps` was deprecated in favor of `slotProps`: + +```diff + +``` + ## Slider Use the [codemod](https://github.com/mui/material-ui/tree/HEAD/packages/mui-codemod#slider-props) below to migrate the code as described in the following sections: @@ -1215,6 +1264,36 @@ All of the TextField's slot props (`*Props`) props were deprecated in favor of e /> ``` +## Tooltip + +Use the [codemod](https://github.com/mui/material-ui/tree/HEAD/packages/mui-codemod#tooltip-props) below to migrate the code as described in the following sections: + +```bash +npx @mui/codemod@next deprecations/tooltip-props +``` + +### components + +The Tooltip's prop `components` was deprecated in favor of `slots`: + +```diff + +``` + +### componentsProps + +The Tooltip's prop `componentsProps` was deprecated in favor of `slotProps`: + +```diff + +``` + ## 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: diff --git a/docs/data/material/experimental-api/css-theme-variables/migration.md b/docs/data/material/migration/migration-v5/migration-css-theme-variables.md similarity index 89% rename from docs/data/material/experimental-api/css-theme-variables/migration.md rename to docs/data/material/migration/migration-v5/migration-css-theme-variables.md index 02cf6c5a4bddc2..c1b74433614de7 100644 --- a/docs/data/material/experimental-api/css-theme-variables/migration.md +++ b/docs/data/material/migration/migration-v5/migration-css-theme-variables.md @@ -12,7 +12,7 @@ This migration offers a solution to a longstanding issue in which a user who pre If you aren't using [`ThemeProvider`](/material-ui/customization/theming/#theme-provider), then all you need to do is wrap your application with the `CssVarsProvider`: ```js -import { Experimental_CssVarsProvider as CssVarsProvider } from '@mui/material/styles'; +import { CssVarsProvider } from '@mui/material/styles'; function App() { return ...your existing application; @@ -30,7 +30,7 @@ Other properties can be copied and pasted. ```diff -import { createTheme } from '@mui/material/styles'; -+import { experimental_extendTheme as extendTheme} from '@mui/material/styles'; ++import { extendTheme } from '@mui/material/styles'; -const lightTheme = createTheme({ - palette: { @@ -79,7 +79,7 @@ Then, replace the `ThemeProvider` with the `CssVarsProvider`: ```diff -import { ThemeProvider } from '@mui/material/styles'; -+import { Experimental_CssVarsProvider as CssVarsProvider } from '@mui/material/styles'; ++import { CssVarsProvider } from '@mui/material/styles'; const theme = extendTheme(...); @@ -141,11 +141,7 @@ function App() { **After**: ```js -import { - Experimental_CssVarsProvider as CssVarsProvider, - experimental_extendTheme as extendTheme, - useColorScheme, -} from '@mui/material/styles'; +import { CssVarsProvider, extendTheme, useColorScheme } from '@mui/material/styles'; function ModeToggle() { const { mode, setMode } = useColorScheme(); @@ -249,7 +245,7 @@ const Button = styled('button')(({ theme }) => ({ This is because the `theme.palette.mode` is always `light` on the server. -To fix this problem, replace conditional expressions with the attribute selector instead: +To fix this problem, replace conditional expressions with `theme.applyStyles()` instead: ```js // theming example @@ -259,9 +255,9 @@ extendTheme({ styleOverrides: { root: ({ theme }) => ({ backgroundColor: 'rgba(0 0 0 / 0.2)', - [theme.getColorSchemeSelector('dark')]: { + ...theme.applyStyles('dark', { backgroundColor: 'rgba(255 255 255 / 0.2)', - }, + }), }), }, }, @@ -271,16 +267,14 @@ extendTheme({ // or a custom component example const Button = styled('button')(({ theme }) => ({ backgroundColor: 'rgba(0 0 0 / 0.2)', - [theme.getColorSchemeSelector('dark')]: { + ...theme.applyStyles('dark', { backgroundColor: 'rgba(255 255 255 / 0.2)', - }, + }), })); ``` -:::warning -The `theme.getColorSchemeSelector()` is a utility function that returns an attribute selector `'[data-mui-color-scheme="dark"] &'`. - -Note that the attribute selector creates higher CSS specificity which could be cumbersome for theming. +:::info +The `theme.applyStyles()` is a new utility function available in Material UI v6 that applies the provided styles to the specified mode. ::: ## 5. Test dark-mode flickering diff --git a/docs/data/material/pages.ts b/docs/data/material/pages.ts index 9d3f176a50bacd..9f43d191484311 100644 --- a/docs/data/material/pages.ts +++ b/docs/data/material/pages.ts @@ -189,6 +189,17 @@ const pages: MuiPage[] = [ { pathname: '/material-ui/customization/transitions' }, ], }, + { + pathname: '/material-ui/customization/css-variables', + subheader: '/material-ui/customization/css-variables', + children: [ + { pathname: '/material-ui/customization/css-theme-variables/overview' }, + { pathname: '/material-ui/customization/css-theme-variables/usage' }, + { + pathname: '/material-ui/customization/css-theme-variables/configuration', + }, + ], + }, ], }, { @@ -238,19 +249,6 @@ const pages: MuiPage[] = [ pathname: '/material-ui/experimental-api/classname-generator', title: 'ClassName generator', }, - { - pathname: '/material-ui/experimental-api/css-theme-variables', - subheader: 'CSS theme variables', - children: [ - { pathname: '/material-ui/experimental-api/css-theme-variables/overview' }, - { pathname: '/material-ui/experimental-api/css-theme-variables/usage' }, - { pathname: '/material-ui/experimental-api/css-theme-variables/customization' }, - { - pathname: '/material-ui/experimental-api/css-theme-variables/migration', - title: 'Migrating to CSS variables', - }, - ], - }, ], }, { @@ -277,6 +275,10 @@ const pages: MuiPage[] = [ pathname: '/material-ui/migration/migration-v5', title: 'Migrating to v6', }, + { + pathname: '/material-ui/migration/migration-css-theme-variables', + title: 'Migrating to CSS theme variables', + }, ], }, { diff --git a/docs/data/system/experimental-api/css-theme-variables/css-theme-variables.md b/docs/data/system/experimental-api/css-theme-variables/css-theme-variables.md index 7f95416dee8ecf..9b834cccf0687e 100644 --- a/docs/data/system/experimental-api/css-theme-variables/css-theme-variables.md +++ b/docs/data/system/experimental-api/css-theme-variables/css-theme-variables.md @@ -12,7 +12,7 @@ If this is your first time encountering CSS variables, you should check out [the CSS theme variable support is a new feature in MUI System added in [`v5.0.5`](https://github.com/mui/material-ui/releases/tag/v5.0.5) as an experimental export. It tells the underlying Material UI, Joy UI or even custom UI library components to use the generated CSS theme variables instead of raw values. This provides significant improvements in developer experience related to theming and customization. With these variables, you can inject a theme into your app's stylesheet _at build time_ to apply the user's selected settings before the whole app is rendered. -You can checkout the [advantages](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/#advantages) and [trade-offs](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/#trade-offs) of using CSS theme variables before using them. +Learn more about the [advantages](https://mui.com/material-ui/customization/css-theme-variables/overview/#advantages) and [trade-offs](https://mui.com/material-ui/customization/css-theme-variables/overview/#trade-offs) of using CSS theme variables. ### Advantages @@ -39,7 +39,8 @@ The comparison described in the table above may not be applicable to large and c ## Usage -The CSS variables API usage is exposed as a higher order function called `unstable_createCssVarsProvider` which can be called to create a theme provider and other utilities to share the theme config throughout your app. This is a very low-level function and has a lot of moving parts. If you are already using [Material UI](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/) or [Joy UI](https://mui.com/joy-ui/customization/using-css-variables/), they already expose their own `CssVarsProvider` component that you can use directly without needing to configure your theme. Now that's out of the way, we can continue with how this util can be used. +The CSS variables API usage is exposed as a higher order function called `unstable_createCssVarsProvider` which can be called to create a theme provider and other utilities to share the theme config throughout your app. This is a very low-level function and has a lot of moving parts. +If you're using [Material UI](https://mui.com/material-ui/customization/css-theme-variables/overview/) or [Joy UI](https://mui.com/joy-ui/customization/using-css-variables/), they expose their own `CssVarsProvider` component that you can use directly without configuring your theme. We'll first define a minimal theme palette for light and dark modes. @@ -184,8 +185,8 @@ Now, the Button's `backgroundColor`, `borderColor` and text `color` values will ### Demo {{"demo": "CreateCssVarsProvider.js"}} - -For framework or language specific setup, see [this](https://mui.com/material-ui/experimental-api/css-theme-variables/usage/#server-side-rendering) +For framework- or language-specific setup instructions, see [CSS theme variables—Usage—Server-side rendering](https://mui.com/material-ui/customization/css-theme-variables/usage/#server-side-rendering). +For framework or language specific setup, see [this](https://mui.com/material-ui/customization/css-theme-variables/usage/#server-side-rendering) See the complete usage of `createCssVarsProvider` in [Material UI](https://github.com/mui/material-ui/blob/master/packages/mui-material/src/styles/CssVarsProvider.tsx) and [Joy UI](https://github.com/mui/material-ui/blob/master/packages/mui-joy/src/styles/CssVarsProvider.tsx). diff --git a/docs/package.json b/docs/package.json index 8ac1fbba0455a1..c830e0d9a50bd6 100644 --- a/docs/package.json +++ b/docs/package.json @@ -19,9 +19,9 @@ "link-check": "node ./scripts/reportBrokenLinks.js" }, "dependencies": { - "@babel/core": "^7.24.5", - "@babel/runtime": "^7.24.5", - "@babel/runtime-corejs2": "^7.24.5", + "@babel/core": "^7.24.6", + "@babel/runtime": "^7.24.6", + "@babel/runtime-corejs2": "^7.24.6", "@docsearch/react": "^3.6.0", "@emotion/cache": "^11.11.0", "@emotion/react": "^11.11.4", @@ -80,7 +80,7 @@ "lodash": "^4.17.21", "lz-string": "^1.5.0", "markdown-to-jsx": "^7.4.7", - "material-ui-popup-state": "^5.1.1", + "material-ui-popup-state": "^5.1.2", "next": "^13.5.1", "notistack": "3.0.1", "nprogress": "^0.2.0", @@ -91,7 +91,7 @@ "react-dom": "^18.2.0", "react-draggable": "^4.4.6", "react-final-form": "^6.5.9", - "react-imask": "^7.6.0", + "react-imask": "^7.6.1", "react-intersection-observer": "^9.10.2", "react-is": "^18.2.0", "react-number-format": "^5.3.4", @@ -100,7 +100,6 @@ "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.10", "react-window": "^1.8.10", @@ -112,8 +111,8 @@ "webpack-bundle-analyzer": "^4.10.2" }, "devDependencies": { - "@babel/plugin-transform-react-constant-elements": "^7.24.1", - "@babel/preset-typescript": "^7.24.1", + "@babel/plugin-transform-react-constant-elements": "^7.24.6", + "@babel/preset-typescript": "^7.24.6", "@mui/internal-docs-utils": "workspace:^", "@mui/internal-scripts": "workspace:^", "@mui-internal/test-utils": "workspace:^", @@ -126,7 +125,6 @@ "@types/react": "^18.2.55", "@types/react-dom": "^18.3.0", "@types/react-swipeable-views": "^0.13.5", - "@types/react-swipeable-views-utils": "^0.13.7", "@types/react-transition-group": "^4.4.10", "@types/react-window": "^1.8.8", "@types/stylis": "^4.2.0", diff --git a/docs/pages/base-ui/api/use-modal.json b/docs/pages/base-ui/api/use-modal.json index 494620611cab21..81e8315c9273b4 100644 --- a/docs/pages/base-ui/api/use-modal.json +++ b/docs/pages/base-ui/api/use-modal.json @@ -2,8 +2,8 @@ "parameters": { "children": { "type": { - "name": "React.ReactElement | undefined | null", - "description": "React.ReactElement | undefined | null" + "name": "React.ReactElement<any> | undefined | null", + "description": "React.ReactElement<any> | undefined | null" }, "required": true }, diff --git a/docs/pages/material-ui/api/grid.json b/docs/pages/material-ui/api/grid.json index 8dbd29b88f0e47..eacdac14949355 100644 --- a/docs/pages/material-ui/api/grid.json +++ b/docs/pages/material-ui/api/grid.json @@ -71,7 +71,9 @@ "name": "enum", "description": "'nowrap'
| 'wrap-reverse'
| 'wrap'" }, - "default": "'wrap'" + "default": "'wrap'", + "deprecated": true, + "deprecationInfo": "Use flexWrap instead. This prop will be removed in v7. See Migrating from deprecated APIs for more details." }, "xl": { "type": { diff --git a/docs/pages/material-ui/api/hidden.json b/docs/pages/material-ui/api/hidden.json index 2e4e13ea697f0e..9c0112eb0ff82b 100644 --- a/docs/pages/material-ui/api/hidden.json +++ b/docs/pages/material-ui/api/hidden.json @@ -40,5 +40,6 @@ "filename": "/packages/mui-material/src/Hidden/Hidden.js", "inheritance": null, "demos": "", - "cssComponent": false + "cssComponent": false, + "deprecated": true } diff --git a/docs/pages/material-ui/api/list-item-secondary-action.json b/docs/pages/material-ui/api/list-item-secondary-action.json index 9179bdd88d9224..e46ec7a4249ddc 100644 --- a/docs/pages/material-ui/api/list-item-secondary-action.json +++ b/docs/pages/material-ui/api/list-item-secondary-action.json @@ -36,5 +36,6 @@ "filename": "/packages/mui-material/src/ListItemSecondaryAction/ListItemSecondaryAction.js", "inheritance": null, "demos": "", - "cssComponent": false + "cssComponent": false, + "deprecated": true } diff --git a/docs/pages/material-ui/api/popper.json b/docs/pages/material-ui/api/popper.json index 06f2880cdc5b9e..94c41b76c2bb8f 100644 --- a/docs/pages/material-ui/api/popper.json +++ b/docs/pages/material-ui/api/popper.json @@ -11,11 +11,15 @@ "component": { "type": { "name": "elementType" } }, "components": { "type": { "name": "shape", "description": "{ Root?: elementType }" }, - "default": "{}" + "default": "{}", + "deprecated": true, + "deprecationInfo": "use the slots prop instead. This prop will be removed in v7. How to migrate." }, "componentsProps": { "type": { "name": "shape", "description": "{ root?: func
| object }" }, - "default": "{}" + "default": "{}", + "deprecated": true, + "deprecationInfo": "use the slotProps prop instead. This prop will be removed in v7. How to migrate." }, "container": { "type": { "name": "union", "description": "HTML element
| func" } }, "disablePortal": { "type": { "name": "bool" }, "default": "false" }, diff --git a/docs/pages/material-ui/api/tooltip.json b/docs/pages/material-ui/api/tooltip.json index bf857d230f1b75..da38990cf9ce1d 100644 --- a/docs/pages/material-ui/api/tooltip.json +++ b/docs/pages/material-ui/api/tooltip.json @@ -8,14 +8,18 @@ "name": "shape", "description": "{ Arrow?: elementType, Popper?: elementType, Tooltip?: elementType, Transition?: elementType }" }, - "default": "{}" + "default": "{}", + "deprecated": true, + "deprecationInfo": "use the slots prop instead. This prop will be removed in v7. How to migrate." }, "componentsProps": { "type": { "name": "shape", "description": "{ arrow?: object, popper?: object, tooltip?: object, transition?: object }" }, - "default": "{}" + "default": "{}", + "deprecated": true, + "deprecationInfo": "use the slotProps prop instead. This prop will be removed in v7. How to migrate." }, "describeChild": { "type": { "name": "bool" }, "default": "false" }, "disableFocusListener": { "type": { "name": "bool" }, "default": "false" }, diff --git a/docs/pages/material-ui/experimental-api/css-theme-variables/usage.js b/docs/pages/material-ui/customization/css-theme-variables/configuration.js similarity index 74% rename from docs/pages/material-ui/experimental-api/css-theme-variables/usage.js rename to docs/pages/material-ui/customization/css-theme-variables/configuration.js index 497c44f45569f2..e4641afb30117a 100644 --- a/docs/pages/material-ui/experimental-api/css-theme-variables/usage.js +++ b/docs/pages/material-ui/customization/css-theme-variables/configuration.js @@ -4,7 +4,7 @@ import { demos, docs, demoComponents, -} from 'docs/data/material/experimental-api/css-theme-variables/usage/usage.md?muiMarkdown'; +} from 'docs/data/material/customization/css-theme-variables/configuration.md?muiMarkdown'; export default function Page() { return ; diff --git a/docs/pages/material-ui/experimental-api/css-theme-variables/overview.js b/docs/pages/material-ui/customization/css-theme-variables/overview.js similarity index 74% rename from docs/pages/material-ui/experimental-api/css-theme-variables/overview.js rename to docs/pages/material-ui/customization/css-theme-variables/overview.js index 4eeebce4de29b6..0c73e3264aa8a0 100644 --- a/docs/pages/material-ui/experimental-api/css-theme-variables/overview.js +++ b/docs/pages/material-ui/customization/css-theme-variables/overview.js @@ -4,7 +4,7 @@ import { demos, docs, demoComponents, -} from 'docs/data/material/experimental-api/css-theme-variables/overview.md?muiMarkdown'; +} from 'docs/data/material/customization/css-theme-variables/overview.md?muiMarkdown'; export default function Page() { return ; diff --git a/docs/pages/material-ui/experimental-api/css-theme-variables/migration.js b/docs/pages/material-ui/customization/css-theme-variables/usage.js similarity index 74% rename from docs/pages/material-ui/experimental-api/css-theme-variables/migration.js rename to docs/pages/material-ui/customization/css-theme-variables/usage.js index a196acdc43008c..8b2ce0b00358ef 100644 --- a/docs/pages/material-ui/experimental-api/css-theme-variables/migration.js +++ b/docs/pages/material-ui/customization/css-theme-variables/usage.js @@ -4,7 +4,7 @@ import { demos, docs, demoComponents, -} from 'docs/data/material/experimental-api/css-theme-variables/migration.md?muiMarkdown'; +} from 'docs/data/material/customization/css-theme-variables/usage/usage.md?muiMarkdown'; export default function Page() { return ; diff --git a/docs/pages/material-ui/experimental-api/css-theme-variables/customization.js b/docs/pages/material-ui/migration/migration-css-theme-variables.js similarity index 73% rename from docs/pages/material-ui/experimental-api/css-theme-variables/customization.js rename to docs/pages/material-ui/migration/migration-css-theme-variables.js index 53d9eec8396886..83ceb99d825d1e 100644 --- a/docs/pages/material-ui/experimental-api/css-theme-variables/customization.js +++ b/docs/pages/material-ui/migration/migration-css-theme-variables.js @@ -4,7 +4,7 @@ import { demos, docs, demoComponents, -} from 'docs/data/material/experimental-api/css-theme-variables/customization.md?muiMarkdown'; +} from 'docs/data/material/migration/migration-v5/migration-css-theme-variables.md?muiMarkdown'; export default function Page() { return ; diff --git a/docs/public/_redirects b/docs/public/_redirects index fe5b414f634110..0238ec6ee87a7d 100644 --- a/docs/public/_redirects +++ b/docs/public/_redirects @@ -508,6 +508,10 @@ https://v4.material-ui.com/* https://v4.mui.com/:splat 301! /material-ui/guides/right-to-left/ /material-ui/customization/right-to-left/ 301 /material-ui/guides/pickers-migration/ /material-ui/migration/pickers-migration/ 301 /material-ui/guides/styled-components/ /material-ui/integrations/styled-components/ 301 +/material-ui/experimental-api/css-theme-variables/migration/ /material-ui/migration/migration-css-theme-variables/ 301 +/material-ui/experimental-api/css-theme-variables/overview/ /material-ui/customization/css-theme-variables/overview/ 301 +/material-ui/experimental-api/css-theme-variables/usage/ /material-ui/customization/css-theme-variables/usage/ 301 +/material-ui/experimental-api/css-theme-variables/customization/ /material-ui/customization/css-theme-variables/configuration/ 301 # Proxies diff --git a/docs/public/static/branding/about/nikita-ossei.png b/docs/public/static/branding/about/nikita-ossei.png new file mode 100644 index 00000000000000..efc26faffa1ecc Binary files /dev/null and b/docs/public/static/branding/about/nikita-ossei.png differ diff --git a/docs/src/BrandingCssVarsProvider.tsx b/docs/src/BrandingCssVarsProvider.tsx index 6cd467f1c10f9d..06b7a6197a67fc 100644 --- a/docs/src/BrandingCssVarsProvider.tsx +++ b/docs/src/BrandingCssVarsProvider.tsx @@ -1,10 +1,6 @@ import * as React from 'react'; import { deepmerge } from '@mui/utils'; -import { - Experimental_CssVarsProvider as CssVarsProvider, - experimental_extendTheme as extendTheme, - PaletteColorOptions, -} from '@mui/material/styles'; +import { CssVarsProvider, extendTheme, PaletteColorOptions } from '@mui/material/styles'; import CssBaseline from '@mui/material/CssBaseline'; import { NextNProgressBar } from 'docs/src/modules/components/AppFrame'; import { getDesignTokens, getThemedComponents } from '@mui/docs/branding'; diff --git a/docs/src/components/about/HowToSupport.tsx b/docs/src/components/about/HowToSupport.tsx index 128763cae41126..880347d3782e78 100644 --- a/docs/src/components/about/HowToSupport.tsx +++ b/docs/src/components/about/HowToSupport.tsx @@ -21,7 +21,7 @@ function Widget({ }: { children: React.ReactNode; title: string; - icon: React.ReactElement; + icon: React.ReactElement; }) { return ( } & BoxProps) { const [hidden, setHidden] = React.useState(false); const defaultContent = ( diff --git a/docs/src/components/header/HeaderNavBar.tsx b/docs/src/components/header/HeaderNavBar.tsx index a2c3f3fadff065..f135aa52fb9138 100644 --- a/docs/src/components/header/HeaderNavBar.tsx +++ b/docs/src/components/header/HeaderNavBar.tsx @@ -75,12 +75,12 @@ const PRODUCT_IDS = [ ]; type ProductSubMenuProps = { - icon: React.ReactElement; + icon: React.ReactElement; name: React.ReactNode; description: React.ReactNode; chip?: React.ReactNode; href: string; -} & Omit; +} & Omit; const ProductSubMenu = React.forwardRef( function ProductSubMenu({ icon, name, description, chip, href, ...props }, ref) { diff --git a/docs/src/components/home/MaterialDesignComponents.tsx b/docs/src/components/home/MaterialDesignComponents.tsx index c83c844faec8c4..890441d426fe9d 100644 --- a/docs/src/components/home/MaterialDesignComponents.tsx +++ b/docs/src/components/home/MaterialDesignComponents.tsx @@ -4,8 +4,8 @@ import { Theme, ThemeOptions, alpha, - experimental_extendTheme as extendTheme, - Experimental_CssVarsProvider as CssVarsProvider, + extendTheme, + CssVarsProvider, } from '@mui/material/styles'; import { capitalize } from '@mui/material/utils'; import Alert from '@mui/material/Alert'; @@ -125,7 +125,7 @@ function Demo({ }: { name: string; theme: Theme | undefined; - children: React.ReactElement; + children: React.ReactElement; control?: { prop: string; values: Array; defaultValue?: string }; }) { const [propValue, setPropValue] = React.useState( diff --git a/docs/src/components/home/StoreTemplatesBanner.tsx b/docs/src/components/home/StoreTemplatesBanner.tsx index b71858367e3545..3c074746c06428 100644 --- a/docs/src/components/home/StoreTemplatesBanner.tsx +++ b/docs/src/components/home/StoreTemplatesBanner.tsx @@ -100,7 +100,7 @@ const StoreTemplateLink = React.forwardRef< const StoreTemplateImage = React.forwardRef< HTMLImageElement, - { brand: TemplateBrand } & Omit + { brand: TemplateBrand } & Omit >(function StoreTemplateImage({ brand, ...props }, ref) { return ( ; }; }) { return ( diff --git a/docs/src/components/icon/IconImage.tsx b/docs/src/components/icon/IconImage.tsx index 0e6c75d91ed790..1b6809d16d98cf 100644 --- a/docs/src/components/icon/IconImage.tsx +++ b/docs/src/components/icon/IconImage.tsx @@ -40,7 +40,7 @@ export type IconImageProps = { mode?: '' | 'light' | 'dark'; sx?: SxProps; width?: number; -} & Omit; +} & Omit; const Img = styled('img')({ display: 'inline-block', verticalAlign: 'bottom' }); diff --git a/docs/src/components/pricing/PricingTable.tsx b/docs/src/components/pricing/PricingTable.tsx index c342fed6910a1e..bfb7cbff5b33ea 100644 --- a/docs/src/components/pricing/PricingTable.tsx +++ b/docs/src/components/pricing/PricingTable.tsx @@ -382,7 +382,11 @@ function Cell({ highlighted = false, ...props }: BoxProps & { highlighted?: bool ); } -function RowHead({ children, startIcon, ...props }: BoxProps & { startIcon?: React.ReactElement }) { +function RowHead({ + children, + startIcon, + ...props +}: BoxProps & { startIcon?: React.ReactElement }) { return ( ( - function StyledFloatingLabelInput(props, ref) { - const id = unstable_useId(props.id); - return ( - - - - - ); - }, -); +const StyledFloatingLabelInput = React.forwardRef< + HTMLInputElement, + React.JSX.IntrinsicElements['input'] +>(function StyledFloatingLabelInput(props, ref) { + const id = unstable_useId(props.id); + return ( + + + + + ); +}); -const FloatingLabelInput = React.forwardRef( +const FloatingLabelInput = React.forwardRef( function FloatingLabelInput(props, ref) { const id = unstable_useId(props.id); return ( @@ -121,7 +122,7 @@ const FloatingLabelInput = React.forwardRef(function TailwindFloatingLabelInput({ ownerState, ...props }, ref) { const id = unstable_useId(props.id); @@ -192,7 +193,7 @@ const Field = styled('div')\`${fieldStyles}\`; const StyledInput = styled('input')\`${inputStyles}/\`; const FloatingLabelInput = React.forwardRef< - HTMLInputElement, JSX.IntrinsicElements['input'] + HTMLInputElement, React.JSX.IntrinsicElements['input'] >( function FloatingLabelInput(props, ref) { const id = unstable_useId(props.id); @@ -219,7 +220,7 @@ const FloatingLabelInput = React.forwardRef< import './styles.css'; const FloatingLabelInput = React.forwardRef< - HTMLInputElement, JSX.IntrinsicElements['input'] + HTMLInputElement, React.JSX.IntrinsicElements['input'] >( function FloatingLabelInput(props, ref) { const id = unstable_useId(props.id); diff --git a/docs/src/components/productMaterial/MaterialComponents.tsx b/docs/src/components/productMaterial/MaterialComponents.tsx index 08dd1449262faf..ec9be48156e150 100644 --- a/docs/src/components/productMaterial/MaterialComponents.tsx +++ b/docs/src/components/productMaterial/MaterialComponents.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { Experimental_CssVarsProvider as CssVarsProvider, alpha } from '@mui/material/styles'; +import { CssVarsProvider, alpha } from '@mui/material/styles'; import Box from '@mui/material/Box'; import Alert from '@mui/material/Alert'; import Button, { buttonClasses } from '@mui/material/Button'; diff --git a/docs/src/components/productMaterial/MaterialHero.tsx b/docs/src/components/productMaterial/MaterialHero.tsx index dd37121529358d..803fa87c9b345f 100644 --- a/docs/src/components/productMaterial/MaterialHero.tsx +++ b/docs/src/components/productMaterial/MaterialHero.tsx @@ -1,8 +1,5 @@ import * as React from 'react'; -import { - experimental_extendTheme as extendTheme, - Experimental_CssVarsProvider as CssVarsProvider, -} from '@mui/material/styles'; +import { extendTheme, CssVarsProvider } from '@mui/material/styles'; import Alert from '@mui/material/Alert'; import Avatar from '@mui/material/Avatar'; import Box from '@mui/material/Box'; diff --git a/docs/src/components/productMaterial/MaterialTheming.tsx b/docs/src/components/productMaterial/MaterialTheming.tsx index a0c3560bbaebf1..abab393a9a15d9 100644 --- a/docs/src/components/productMaterial/MaterialTheming.tsx +++ b/docs/src/components/productMaterial/MaterialTheming.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { Experimental_CssVarsProvider as CssVarsProvider } from '@mui/material/styles'; +import { CssVarsProvider } from '@mui/material/styles'; import Grid from '@mui/material/Unstable_Grid2'; import Typography from '@mui/material/Typography'; import AutoAwesomeRounded from '@mui/icons-material/AutoAwesomeRounded'; diff --git a/docs/src/components/productX/XRoadmap.tsx b/docs/src/components/productX/XRoadmap.tsx index fc3803d400f5aa..a396a0f934fc1e 100644 --- a/docs/src/components/productX/XRoadmap.tsx +++ b/docs/src/components/productX/XRoadmap.tsx @@ -41,7 +41,7 @@ function RoadmapStatusDot({ color }: RoadmapStatusDotProps) { } export default function XRoadmap() { - function renderList(content: React.ReactElement, nested?: boolean) { + function renderList(content: React.ReactElement, nested?: boolean) { return ( = { +const viewIcons: Record> = { quilt: , module: , agenda: , diff --git a/docs/src/components/typography/SectionHeadline.tsx b/docs/src/components/typography/SectionHeadline.tsx index b2b587eee4595b..b1e30e3eb76611 100644 --- a/docs/src/components/typography/SectionHeadline.tsx +++ b/docs/src/components/typography/SectionHeadline.tsx @@ -11,7 +11,7 @@ interface SectionHeadlineProps { */ inverted?: boolean; overline?: React.ReactNode; - title: string | React.ReactElement; + title: string | React.ReactElement; } export default function SectionHeadline(props: SectionHeadlineProps) { diff --git a/docs/src/layouts/HeroContainer.tsx b/docs/src/layouts/HeroContainer.tsx index 240e794e5a0599..8001bbe7646f3d 100644 --- a/docs/src/layouts/HeroContainer.tsx +++ b/docs/src/layouts/HeroContainer.tsx @@ -8,9 +8,9 @@ import { alpha } from '@mui/material/styles'; interface HeroContainerProps { disableMobileHidden?: boolean; disableTabExclusion?: boolean; - left: React.ReactElement; + left: React.ReactElement; linearGradient?: boolean; - right: React.ReactElement; + right: React.ReactElement; rightSx?: BoxProps['sx']; } @@ -145,7 +145,7 @@ export default function HeroContainer(props: HeroContainerProps) { transition: '0.3s', }} > - + {left} diff --git a/docs/src/modules/components/ApiPage.js b/docs/src/modules/components/ApiPage.js index 6561be4775cd11..d2189cf882ce16 100644 --- a/docs/src/modules/components/ApiPage.js +++ b/docs/src/modules/components/ApiPage.js @@ -3,17 +3,17 @@ import * as React from 'react'; import PropTypes from 'prop-types'; import { exactProp } from '@mui/utils'; import Typography from '@mui/material/Typography'; -import AdGuest from 'docs/src/modules/components/AdGuest'; import Alert from '@mui/material/Alert'; +import AdGuest from 'docs/src/modules/components/AdGuest'; import VerifiedRoundedIcon from '@mui/icons-material/VerifiedRounded'; -import { alpha } from '@mui/material/styles'; +import WarningRoundedIcon from '@mui/icons-material/WarningRounded'; import { useTranslate, useUserLanguage } from '@mui/docs/i18n'; import { HighlightedCode } from '@mui/docs/HighlightedCode'; +import { BrandingProvider } from '@mui/docs/branding'; +import { SectionTitle } from '@mui/docs/SectionTitle'; import MarkdownElement from 'docs/src/modules/components/MarkdownElement'; import AppLayoutDocs from 'docs/src/modules/components/AppLayoutDocs'; import Ad from 'docs/src/modules/components/Ad'; -import { BrandingProvider } from '@mui/docs/branding'; -import { SectionTitle } from '@mui/docs/SectionTitle'; import PropertiesSection, { getPropsToC, } from 'docs/src/modules/components/ApiPage/sections/PropertiesSection'; @@ -72,6 +72,7 @@ export default function ApiPage(props) { const { cssComponent, demos, + deprecated, filename, forwardsRefTo, inheritance, @@ -104,6 +105,7 @@ export default function ApiPage(props) { componentDescription, componentDescriptionToc = [], classDescriptions, + deprecationInfo, propDescriptions, slotDescriptions, } = descriptions[userLanguage]; @@ -180,6 +182,19 @@ export default function ApiPage(props) { >

{pageContent.name} API

+ {deprecated ? ( + } + sx={{ mt: 1.5, mb: 3 }} + > + + + ) : null} {description} {disableAd ? null : ( @@ -191,46 +206,7 @@ export default function ApiPage(props) { )} - } - sx={[ - (theme) => ({ - mt: 1.5, - pt: 1, - px: 2, - pb: 0, - fontSize: theme.typography.pxToRem(16), - backgroundColor: (theme.vars || theme).palette.success[50], - borderColor: (theme.vars || theme).palette.success[100], - '& .MuiAlert-message': { - '& * p': { - color: (theme.vars || theme).palette.text.primary, - mb: 1, - }, - '& * a': { - fontWeight: theme.typography.fontWeightMedium, - color: (theme.vars || theme).palette.success[900], - textDecorationColor: alpha(theme.palette.success[600], 0.3), - }, - }, - ...theme.applyDarkStyles({ - backgroundColor: alpha(theme.palette.success[700], 0.12), - borderColor: alpha(theme.palette.success[400], 0.1), - '& .MuiAlert-message': { - ul: { - pl: 3, - }, - '& * a': { - color: (theme.vars || theme).palette.success[100], - textDecorationColor: alpha(theme.palette.success[100], 0.3), - }, - }, - }), - }), - ]} - > + }> For examples and details on the usage of this React component, visit the component demo pages:

diff --git a/docs/src/modules/components/ApiPage/ApiWarning.tsx b/docs/src/modules/components/ApiPage/ApiWarning.tsx deleted file mode 100644 index be5457e4e48a48..00000000000000 --- a/docs/src/modules/components/ApiPage/ApiWarning.tsx +++ /dev/null @@ -1,79 +0,0 @@ -import * as React from 'react'; -import { alpha } from '@mui/system'; -import { styled } from '@mui/material/styles'; -import Alert from '@mui/material/Alert'; -import WarningRoundedIcon from '@mui/icons-material/WarningRounded'; -import { - brandingDarkTheme as darkTheme, - brandingLightTheme as lightTheme, -} from '@mui/docs/branding'; - -const StyledAlert = styled(Alert)( - ({ theme }) => ({ - '&.MuiAlert-standardWarning': { - alignItems: 'center', - padding: '2px 12px', - fontWeight: theme.typography.fontWeightRegular, - color: `var(--muidocs-palette-grey-900, ${lightTheme.palette.grey[900]})`, - backgroundColor: alpha(lightTheme.palette.warning[50], 0.5), - borderColor: `var(--muidocs-palette-warning-200, ${lightTheme.palette.warning[200]})`, - '& .MuiAlert-icon': { - height: 'fit-content', - padding: 0, - }, - '& code': { all: 'unset' }, - '& strong': { - color: `var(--muidocs-palette-warning-800, ${lightTheme.palette.warning[800]})`, - }, - '& svg': { - fill: `var(--muidocs-palette-warning-600, ${lightTheme.palette.warning[600]})`, - }, - '& a': { - color: `var(--muidocs-palette-warning-800, ${lightTheme.palette.warning[800]})`, - textDecorationColor: alpha(lightTheme.palette.warning.main, 0.4), - '&:hover': { - textDecorationColor: `var(--muidocs-palette-warning-800, ${lightTheme.palette.warning[800]})`, - }, - }, - }, - }), - ({ theme }) => ({ - [`:where(${theme.vars ? '[data-mui-color-scheme="dark"]' : '.mode-dark'}) &`]: { - '&.MuiAlert-standardWarning': { - color: `var(--muidocs-palette-warning-50, ${darkTheme.palette.warning[50]})`, - backgroundColor: alpha(darkTheme.palette.warning[700], 0.15), - borderColor: alpha(darkTheme.palette.warning[600], 0.3), - '& strong': { - color: `var(--muidocs-palette-warning-200, ${darkTheme.palette.warning[200]})`, - }, - '& svg': { - fill: `var(--muidocs-palette-warning-400, ${darkTheme.palette.warning[400]})`, - }, - '& a': { - color: `var(--muidocs-palette-warning-200, ${darkTheme.palette.warning[200]})`, - textDecorationColor: alpha(darkTheme.palette.warning.main, 0.4), - '&:hover': { - textDecorationColor: `var(--muidocs-palette-warning-200, ${darkTheme.palette.warning[200]})`, - }, - }, - }, - }, - }), -); - -interface DeprecationAlertProps { - children?: React.ReactNode; - className?: string; -} - -export default function ApiWarning({ children, className }: DeprecationAlertProps) { - return ( - } - > - {children} - - ); -} diff --git a/docs/src/modules/components/ApiPage/ApiWarningAlert.tsx b/docs/src/modules/components/ApiPage/ApiWarningAlert.tsx new file mode 100644 index 00000000000000..bfec92a352174b --- /dev/null +++ b/docs/src/modules/components/ApiPage/ApiWarningAlert.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import Alert from '@mui/material/Alert'; +import WarningRoundedIcon from '@mui/icons-material/WarningRounded'; + +interface ApiWarningAlertProps { + children?: React.ReactNode; + className?: string; +} + +export default function ApiWarningAlert({ children, className }: ApiWarningAlertProps) { + return ( + } + sx={{ fontSize: '0.875rem', mt: '12px' }} + > + {children} + + ); +} diff --git a/docs/src/modules/components/ApiPage/list/ClassesList.tsx b/docs/src/modules/components/ApiPage/list/ClassesList.tsx index 5a31850fce8a07..4e20b6e72eab4a 100644 --- a/docs/src/modules/components/ApiPage/list/ClassesList.tsx +++ b/docs/src/modules/components/ApiPage/list/ClassesList.tsx @@ -11,7 +11,7 @@ import { brandingLightTheme as lightTheme, brandingDarkTheme as darkTheme, } from '@mui/docs/branding'; -import ApiWarning from 'docs/src/modules/components/ApiPage/ApiWarning'; +import ApiWarningAlert from 'docs/src/modules/components/ApiPage/ApiWarningAlert'; const StyledApiItem = styled(ExpandableApiItem)( ({ theme }) => ({ @@ -34,10 +34,6 @@ const StyledApiItem = styled(ExpandableApiItem)( color: `var(--muidocs-palette-warning-700, ${lightTheme.palette.warning[700]})`, }, }, - '& .classes-list-alert': { - marginTop: 12, - marginBottom: 16, - }, }), ({ theme }) => ({ [`:where(${theme.vars ? '[data-mui-color-scheme="dark"]' : '.mode-dark'}) &`]: { @@ -101,7 +97,7 @@ export default function ClassesList(props: ClassesListProps) {

)} {isDeprecated && ( - + {t('api-docs.deprecated')} {deprecationInfo && ( @@ -113,7 +109,7 @@ export default function ClassesList(props: ClassesListProps) { /> )} - + )} ); diff --git a/docs/src/modules/components/ApiPage/list/PropertiesList.tsx b/docs/src/modules/components/ApiPage/list/PropertiesList.tsx index 63a7f49c933ea5..9bd1ed3d69e756 100644 --- a/docs/src/modules/components/ApiPage/list/PropertiesList.tsx +++ b/docs/src/modules/components/ApiPage/list/PropertiesList.tsx @@ -10,7 +10,7 @@ import { import ExpandableApiItem, { ApiItemContaier, } from 'docs/src/modules/components/ApiPage/list/ExpandableApiItem'; -import ApiWarning from 'docs/src/modules/components/ApiPage/ApiWarning'; +import ApiWarningAlert from 'docs/src/modules/components/ApiPage/ApiWarningAlert'; const StyledApiItem = styled(ExpandableApiItem)( ({ theme }) => ({ @@ -42,8 +42,10 @@ const StyledApiItem = styled(ExpandableApiItem)( }, }, '& .prop-list-alert': { - marginTop: 12, marginBottom: 16, + '& .MuiAlert-icon': { + margin: 0, + }, }, '& .prop-list-default-props': { ...theme.typography.body2, @@ -218,13 +220,13 @@ export default function PropertiesList(props: PropertiesListProps) { {description && } {seeMoreDescription &&

} {requiresRef && ( - + - + )} {additionalInfo.map((key) => (

{isDeprecated && ( - + {t('api-docs.deprecated')} {deprecationInfo && ( @@ -303,7 +305,7 @@ export default function PropertiesList(props: PropertiesListProps) { /> )} - + )} ); diff --git a/docs/src/modules/components/ApiPage/sections/ToggleDisplayOption.tsx b/docs/src/modules/components/ApiPage/sections/ToggleDisplayOption.tsx index 6c379397e6a41c..9bc9fc506d8b8e 100644 --- a/docs/src/modules/components/ApiPage/sections/ToggleDisplayOption.tsx +++ b/docs/src/modules/components/ApiPage/sections/ToggleDisplayOption.tsx @@ -135,10 +135,10 @@ export default function ToggleDisplayOption(props: ToggleDisplayOptionProps) { data-ga-event-action={sectionType} data-ga-event-label="table" > + Table - Table + Expanded list - Expanded list + Collapsed list - Collapsed list diff --git a/docs/src/modules/components/ApiPage/table/ClassesTable.tsx b/docs/src/modules/components/ApiPage/table/ClassesTable.tsx index 1a33afb9ca4bb0..3eb163ec72727c 100644 --- a/docs/src/modules/components/ApiPage/table/ClassesTable.tsx +++ b/docs/src/modules/components/ApiPage/table/ClassesTable.tsx @@ -1,6 +1,7 @@ /* eslint-disable react/no-danger */ import * as React from 'react'; import { ComponentClassDefinition } from '@mui/internal-docs-utils'; +import { useTranslate } from '@mui/docs/i18n'; import { styled, alpha } from '@mui/material/styles'; import { brandingDarkTheme as darkTheme, @@ -8,8 +9,7 @@ import { } from '@mui/docs/branding'; import { getHash } from 'docs/src/modules/components/ApiPage/list/ClassesList'; import StyledTableContainer from 'docs/src/modules/components/ApiPage/table/StyledTableContainer'; -import { useTranslate } from '@mui/docs/i18n'; -import ApiWarning from 'docs/src/modules/components/ApiPage/ApiWarning'; +import ApiWarningAlert from 'docs/src/modules/components/ApiPage/ApiWarningAlert'; const StyledTable = styled('table')( ({ theme }) => ({ @@ -37,9 +37,6 @@ const StyledTable = styled('table')( borderColor: alpha(darkTheme.palette.primary[100], 0.8), backgroundColor: `var(--muidocs-palette-primary-50, ${lightTheme.palette.primary[50]})`, }, - '& .classes-table-alert': { - marginTop: 12, - }, }), ({ theme }) => ({ [`:where(${theme.vars ? '[data-mui-color-scheme="dark"]' : '.mode-dark'}) &`]: { @@ -94,7 +91,7 @@ export default function ClassesTable(props: ClassesTableProps) { }} /> {isDeprecated && ( - + {t('api-docs.deprecated')} {deprecationInfo && ( @@ -106,7 +103,7 @@ export default function ClassesTable(props: ClassesTableProps) { /> )} - + )} diff --git a/docs/src/modules/components/ApiPage/table/PropertiesTable.tsx b/docs/src/modules/components/ApiPage/table/PropertiesTable.tsx index b30d981b6ed8a8..a0dede795e2271 100644 --- a/docs/src/modules/components/ApiPage/table/PropertiesTable.tsx +++ b/docs/src/modules/components/ApiPage/table/PropertiesTable.tsx @@ -8,7 +8,7 @@ import { } from '@mui/docs/branding'; import { Properties, getHash } from 'docs/src/modules/components/ApiPage/list/PropertiesList'; import StyledTableContainer from 'docs/src/modules/components/ApiPage/table/StyledTableContainer'; -import ApiWarning from 'docs/src/modules/components/ApiPage/ApiWarning'; +import ApiWarningAlert from 'docs/src/modules/components/ApiPage/ApiWarningAlert'; const StyledTable = styled('table')( ({ theme }) => ({ @@ -63,7 +63,9 @@ const StyledTable = styled('table')( marginBottom: 0, }, '& .prop-table-alert': { - marginTop: 12, + '& .MuiAlert-icon': { + margin: 0, + }, }, }, '& .prop-table-signature': { @@ -208,15 +210,6 @@ export default function PropertiesTable(props: PropertiesTableProps) { className="prop-table-additional-description" /> )} - {requiresRef && ( - - - - )} {additionalInfo.map((key) => (

))} + {requiresRef && ( + + + + )} {isDeprecated && ( - + {t('api-docs.deprecated')} {deprecationInfo && ( @@ -239,7 +241,7 @@ export default function PropertiesTable(props: PropertiesTableProps) { /> )} - + )} {signature && (

diff --git a/docs/src/modules/components/AppNavDrawer.js b/docs/src/modules/components/AppNavDrawer.js index 0665d1a5364796..1039501c0ed53e 100644 --- a/docs/src/modules/components/AppNavDrawer.js +++ b/docs/src/modules/components/AppNavDrawer.js @@ -356,7 +356,7 @@ export default function AppNavDrawer(props) { {versions.map((item) => { if (item.text === 'View all versions') { return [ - , + , {/* eslint-disable-next-line material-ui/no-hardcoded-labels -- version string is untranslatable */} {`View all versions`} diff --git a/docs/src/modules/components/JoyThemeBuilder.tsx b/docs/src/modules/components/JoyThemeBuilder.tsx index 7cceb465dcba4b..849e4ab7297e94 100644 --- a/docs/src/modules/components/JoyThemeBuilder.tsx +++ b/docs/src/modules/components/JoyThemeBuilder.tsx @@ -1037,7 +1037,6 @@ function GlobalVariantForm({ Pick the specific primitive color, now in CSS variables form already, to correspond to a semantic global variant token. - ; data: any }) { const [open, setOpen] = React.useState(false); const { map: templateMap } = sourceJoyTemplates(); const renderItem = (name: string, item: TemplateData) => { diff --git a/docs/src/modules/components/JoyUsageDemo.tsx b/docs/src/modules/components/JoyUsageDemo.tsx index 787c5c22800aa4..afc7d5a4d6e19f 100644 --- a/docs/src/modules/components/JoyUsageDemo.tsx +++ b/docs/src/modules/components/JoyUsageDemo.tsx @@ -165,7 +165,7 @@ interface JoyUsageDemoProps { * A function to override the code block result. */ getCodeBlock?: (code: string, props: ComponentProps) => string; - renderDemo: (props: ComponentProps) => React.ReactElement; + renderDemo: (props: ComponentProps) => React.ReactElement; } export default function JoyUsageDemo({ diff --git a/docs/src/modules/components/JoyVariablesDemo.tsx b/docs/src/modules/components/JoyVariablesDemo.tsx index fe4fb76e37d8ef..79d1ebd4dd03f5 100644 --- a/docs/src/modules/components/JoyVariablesDemo.tsx +++ b/docs/src/modules/components/JoyVariablesDemo.tsx @@ -33,7 +33,7 @@ function formatSx(sx: { [k: string]: string | number }) { interface SlotVariablesProps { slot: string; data: Array; - renderField: (item: DataItem) => React.ReactElement; + renderField: (item: DataItem) => React.ReactElement; defaultOpen?: boolean; } @@ -88,7 +88,7 @@ export default function JoyVariablesDemo(props: { componentName: string; childrenAccepted?: boolean; data: Array, { defaultOpen?: boolean } | undefined]>; - renderDemo: (sx: { [k: string]: string | number }) => React.ReactElement; + renderDemo: (sx: { [k: string]: string | number }) => React.ReactElement; renderCode?: (formattedSx: string) => string; }) { const { componentName, data = [], childrenAccepted = false, renderCode } = props; diff --git a/docs/src/pages/premium-themes/onepirate/modules/withRoot.tsx b/docs/src/pages/premium-themes/onepirate/modules/withRoot.tsx index e2d99a652a1988..d89dd45fea732e 100644 --- a/docs/src/pages/premium-themes/onepirate/modules/withRoot.tsx +++ b/docs/src/pages/premium-themes/onepirate/modules/withRoot.tsx @@ -3,7 +3,7 @@ import { ThemeProvider } from '@mui/material/styles'; import CssBaseline from '@mui/material/CssBaseline'; import theme from './theme'; -export default function withRoot

( +export default function withRoot

( Component: React.ComponentType

, ) { function WithRoot(props: P) { diff --git a/docs/translations/api-docs/hidden/hidden.json b/docs/translations/api-docs/hidden/hidden.json index b4ac8adc37b812..761e9fd71256f4 100644 --- a/docs/translations/api-docs/hidden/hidden.json +++ b/docs/translations/api-docs/hidden/hidden.json @@ -1,5 +1,6 @@ { "componentDescription": "Responsively hides children based on the selected implementation.", + "deprecationInfo": "The Hidden component was deprecated in Material UI v5. To learn more, see the Hidden section of the migration docs.", "propDescriptions": { "children": { "description": "The content of the component." }, "implementation": { diff --git a/docs/translations/api-docs/list-item-secondary-action/list-item-secondary-action.json b/docs/translations/api-docs/list-item-secondary-action/list-item-secondary-action.json index 76c97232c297fd..3a537b274a4187 100644 --- a/docs/translations/api-docs/list-item-secondary-action/list-item-secondary-action.json +++ b/docs/translations/api-docs/list-item-secondary-action/list-item-secondary-action.json @@ -1,5 +1,6 @@ { "componentDescription": "Must be used as the last child of ListItem to function properly.", + "deprecationInfo": "Use the secondaryAction prop in the ListItem component instead. This component will be removed in v7. See Migrating from deprecated APIs for more details.", "propDescriptions": { "children": { "description": "The content of the component, normally an IconButton or selection control." diff --git a/docs/translations/api-docs/tooltip/tooltip.json b/docs/translations/api-docs/tooltip/tooltip.json index dbebeb920dcfd5..dc93836d7841a0 100644 --- a/docs/translations/api-docs/tooltip/tooltip.json +++ b/docs/translations/api-docs/tooltip/tooltip.json @@ -4,11 +4,9 @@ "arrow": { "description": "If true, adds an arrow to the tooltip." }, "children": { "description": "Tooltip reference element.", "requiresRef": true }, "classes": { "description": "Override or extend the styles applied to the component." }, - "components": { - "description": "The components used for each slot inside.
This prop is an alias for the slots prop. It's recommended to use the slots prop instead." - }, + "components": { "description": "The components used for each slot inside." }, "componentsProps": { - "description": "The extra props for the slot components. You can override the existing props or add new ones.
This prop is an alias for the slotProps prop. It's recommended to use the slotProps prop instead, as componentsProps will be deprecated in the future." + "description": "The extra props for the slot components. You can override the existing props or add new ones." }, "describeChild": { "description": "Set to true if the title acts as an accessible description. By default the title acts as an accessible label for the child." diff --git a/docs/translations/translations.json b/docs/translations/translations.json index 110ffd7366beeb..0cfc5dd7754186 100644 --- a/docs/translations/translations.json +++ b/docs/translations/translations.json @@ -236,6 +236,10 @@ "/material-ui/customization/density": "Density", "/material-ui/customization/z-index": "z-index", "/material-ui/customization/transitions": "Transitions", + "/material-ui/customization/css-variables": "Css variables", + "/material-ui/customization/css-theme-variables/overview": "Overview", + "/material-ui/customization/css-theme-variables/usage": "Usage", + "/material-ui/customization/css-theme-variables/configuration": "Configuration", "/material-ui/guides": "How-to guides", "/material-ui/guides/minimizing-bundle-size": "Minimizing bundle size", "/material-ui/guides/server-rendering": "Server rendering", @@ -253,17 +257,13 @@ "/material-ui/integrations/theme-scoping": "Theme scoping", "/material-ui/experimental-api": "Experimental APIs", "/material-ui/experimental-api/classname-generator": "ClassName generator", - "CSS theme variables": "CSS theme variables", - "/material-ui/experimental-api/css-theme-variables/overview": "Overview", - "/material-ui/experimental-api/css-theme-variables/usage": "Usage", - "/material-ui/experimental-api/css-theme-variables/customization": "Customization", - "/material-ui/experimental-api/css-theme-variables/migration": "Migrating to CSS variables", "/material-ui/migration": "Migration", "/material-ui/migration/migrating-from-deprecated-apis": "Migrating from deprecated APIs", "/material-ui/migration/migration-grid-v2": "Migrating to Grid v2", "/material-ui/migration/pickers-migration": "Migration from @material-ui/pickers", "Upgrade to v6": "Upgrade to v6", "/material-ui/migration/migration-v5": "Migrating to v6", + "/material-ui/migration/migration-css-theme-variables": "Migrating to CSS theme variables", "Upgrade to v5": "Upgrade to v5", "/material-ui/migration/migration-v4": "Migrating to v5: getting started", "/material-ui/migration/v5-style-changes": "Breaking changes: style and theme", diff --git a/docs/types/docs.d.ts b/docs/types/docs.d.ts index ccfe104621b766..fc96dea50c386a 100644 --- a/docs/types/docs.d.ts +++ b/docs/types/docs.d.ts @@ -10,7 +10,7 @@ declare module 'docs/src/modules/components/HighlightedCode' { */ code: string; copyButtonHidden?: boolean; - copyButtonProps?: JSX.IntrinsicElements['button']; + copyButtonProps?: React.JSX.IntrinsicElements['button']; /** * short identifier of the code language * see @mui/internal-markdown/prism for possible languages @@ -23,7 +23,7 @@ declare module 'docs/src/modules/components/HighlightedCode' { component?: React.ElementType; sx?: object; } - export default function HighlightedCode(props: Props): React.ReactElement; + export default function HighlightedCode(props: Props): React.ReactElement; } declare module 'react-imask'; diff --git a/package.json b/package.json index 9fef7dfe0050ae..32a19f36f4a8ca 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ "canary:release": "tsx ./scripts/canaryRelease.mts" }, "dependencies": { - "@googleapis/sheets": "^5.0.5", + "@googleapis/sheets": "^7.0.0", "@slack/bolt": "^3.18.0", "@netlify/functions": "^2.7.0", "execa": "^8.0.1", @@ -88,15 +88,15 @@ }, "devDependencies": { "@argos-ci/core": "^2.2.0", - "@babel/cli": "^7.24.5", - "@babel/core": "^7.24.5", - "@babel/node": "^7.23.9", - "@babel/plugin-transform-react-constant-elements": "^7.24.1", - "@babel/plugin-transform-runtime": "^7.24.3", - "@babel/preset-env": "^7.24.5", - "@babel/preset-react": "^7.24.1", - "@babel/preset-typescript": "^7.24.1", - "@babel/register": "^7.23.7", + "@babel/cli": "^7.24.6", + "@babel/core": "^7.24.6", + "@babel/node": "^7.24.6", + "@babel/plugin-transform-react-constant-elements": "^7.24.6", + "@babel/plugin-transform-runtime": "^7.24.6", + "@babel/preset-env": "^7.24.6", + "@babel/preset-react": "^7.24.6", + "@babel/preset-typescript": "^7.24.6", + "@babel/register": "^7.24.6", "@mnajdova/enzyme-adapter-react-18": "^0.2.0", "@mui/internal-docs-utils": "workspace:^", "@mui/internal-scripts": "workspace:^", @@ -131,7 +131,7 @@ "concurrently": "^8.2.2", "cpy-cli": "^5.0.0", "cross-env": "^7.0.3", - "danger": "^11.3.1", + "danger": "^12.3.0", "enzyme": "^3.11.0", "eslint": "^8.57.0", "eslint-config-airbnb": "^19.0.4", @@ -164,7 +164,7 @@ "mocha": "^10.4.0", "nx": "^17.3.2", "nyc": "^15.1.0", - "piscina": "^4.4.0", + "piscina": "^4.5.1", "postcss-styled-syntax": "^0.6.4", "prettier": "^3.2.5", "pretty-quick": "^4.0.0", @@ -187,14 +187,14 @@ "pnpm": "8.15.8" }, "resolutions": { - "@babel/core": "^7.24.5", - "@babel/code-frame": "^7.24.2", - "@babel/plugin-transform-runtime": "^7.24.3", - "@babel/preset-env": "^7.24.5", - "@babel/preset-react": "^7.24.1", - "@babel/preset-typescript": "^7.24.1", - "@babel/runtime": "^7.24.5", - "@babel/types": "^7.24.5", + "@babel/core": "^7.24.6", + "@babel/code-frame": "^7.24.6", + "@babel/plugin-transform-runtime": "^7.24.6", + "@babel/preset-env": "^7.24.6", + "@babel/preset-react": "^7.24.6", + "@babel/preset-typescript": "^7.24.6", + "@babel/runtime": "^7.24.6", + "@babel/types": "^7.24.6", "@definitelytyped/header-parser": "^0.2.9", "@definitelytyped/typescript-versions": "^0.1.1", "@definitelytyped/utils": "^0.1.6", diff --git a/packages-internal/scripts/package.json b/packages-internal/scripts/package.json index b99a88efa8b566..7dcff86edbdc57 100644 --- a/packages-internal/scripts/package.json +++ b/packages-internal/scripts/package.json @@ -25,11 +25,11 @@ "typescript": "tsc --build tsconfig.typecheck.json" }, "dependencies": { - "@babel/core": "^7.24.5", + "@babel/core": "^7.24.6", "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-jsx": "^7.24.1", - "@babel/plugin-syntax-typescript": "^7.24.1", - "@babel/types": "^7.24.5", + "@babel/plugin-syntax-jsx": "^7.24.6", + "@babel/plugin-syntax-typescript": "^7.24.6", + "@babel/types": "^7.24.6", "@mui/internal-docs-utils": "workspace:^", "doctrine": "^3.0.0", "lodash": "^4.17.21", @@ -37,7 +37,7 @@ "uuid": "^9.0.1" }, "devDependencies": { - "@babel/register": "^7.23.7", + "@babel/register": "^7.24.6", "@types/babel__core": "^7.20.5", "@types/chai": "^4.3.16", "@types/doctrine": "^0.0.9", diff --git a/packages-internal/scripts/typescript-to-proptypes/test/boolean-values/optional/input.d.ts b/packages-internal/scripts/typescript-to-proptypes/test/boolean-values/optional/input.d.ts index 953ef5a74ea240..5481039977a030 100644 --- a/packages-internal/scripts/typescript-to-proptypes/test/boolean-values/optional/input.d.ts +++ b/packages-internal/scripts/typescript-to-proptypes/test/boolean-values/optional/input.d.ts @@ -4,4 +4,4 @@ type Props = { baz?: false; }; -export default function Foo(props: Props): JSX.Element; +export default function Foo(props: Props): React.JSX.Element; diff --git a/packages-internal/scripts/typescript-to-proptypes/test/boolean-values/required/input.d.ts b/packages-internal/scripts/typescript-to-proptypes/test/boolean-values/required/input.d.ts index 5567ba9073b92c..e7aa7242683598 100644 --- a/packages-internal/scripts/typescript-to-proptypes/test/boolean-values/required/input.d.ts +++ b/packages-internal/scripts/typescript-to-proptypes/test/boolean-values/required/input.d.ts @@ -4,4 +4,4 @@ type Props = { baz: false; }; -export default function Foo(props: Props): JSX.Element; +export default function Foo(props: Props): React.JSX.Element; diff --git a/packages-internal/scripts/typescript-to-proptypes/test/code-order/input.d.ts b/packages-internal/scripts/typescript-to-proptypes/test/code-order/input.d.ts index 4aeb223970ab39..0574e9ebe9651b 100644 --- a/packages-internal/scripts/typescript-to-proptypes/test/code-order/input.d.ts +++ b/packages-internal/scripts/typescript-to-proptypes/test/code-order/input.d.ts @@ -4,4 +4,4 @@ export interface Props { value: unknown; } -export default function Component(props: Props): JSX.Element; +export default function Component(props: Props): React.JSX.Element; diff --git a/packages-internal/scripts/typescript-to-proptypes/test/default-value/input.d.ts b/packages-internal/scripts/typescript-to-proptypes/test/default-value/input.d.ts index 013e60b90d7ae4..6a227c3c2101ec 100644 --- a/packages-internal/scripts/typescript-to-proptypes/test/default-value/input.d.ts +++ b/packages-internal/scripts/typescript-to-proptypes/test/default-value/input.d.ts @@ -6,4 +6,4 @@ interface Props { type?: 'button' | 'reset' | 'submit'; } -export function Foo(props: Props): JSX.Element; +export function Foo(props: Props): React.JSX.Element; diff --git a/packages-internal/scripts/typescript-to-proptypes/test/generator/html-elements/input.d.ts b/packages-internal/scripts/typescript-to-proptypes/test/generator/html-elements/input.d.ts index ae12666f21c37d..38cb5e239a5192 100644 --- a/packages-internal/scripts/typescript-to-proptypes/test/generator/html-elements/input.d.ts +++ b/packages-internal/scripts/typescript-to-proptypes/test/generator/html-elements/input.d.ts @@ -3,4 +3,4 @@ export function Foo(props: { optional?: Element; htmlElement: HTMLElement; bothTypes: Element | HTMLElement; -}): JSX.Element; +}): React.JSX.Element; diff --git a/packages-internal/scripts/typescript-to-proptypes/test/generic/input.d.ts b/packages-internal/scripts/typescript-to-proptypes/test/generic/input.d.ts index a9e29a70c9b050..61227d0f785937 100644 --- a/packages-internal/scripts/typescript-to-proptypes/test/generic/input.d.ts +++ b/packages-internal/scripts/typescript-to-proptypes/test/generic/input.d.ts @@ -7,4 +7,4 @@ interface ParentProps { interface ChildProps extends ParentProps<'one' | 'two'> {} -export function Foo(props: ChildProps): JSX.Element; +export function Foo(props: ChildProps): React.JSX.Element; diff --git a/packages-internal/scripts/typescript-to-proptypes/test/getThemeProps/input.d.ts b/packages-internal/scripts/typescript-to-proptypes/test/getThemeProps/input.d.ts index 6c9d2db1d951be..47ee0a18f6dfd3 100644 --- a/packages-internal/scripts/typescript-to-proptypes/test/getThemeProps/input.d.ts +++ b/packages-internal/scripts/typescript-to-proptypes/test/getThemeProps/input.d.ts @@ -1,3 +1,3 @@ import * as React from 'react'; -export default function Modal(props: React.HTMLAttributes): JSX.Element; +export default function Modal(props: React.HTMLAttributes): React.JSX.Element; diff --git a/packages-internal/scripts/typescript-to-proptypes/test/omit-conditional/input.d.ts b/packages-internal/scripts/typescript-to-proptypes/test/omit-conditional/input.d.ts index 6a1e4b7aedd2ba..b06a97e352fd75 100644 --- a/packages-internal/scripts/typescript-to-proptypes/test/omit-conditional/input.d.ts +++ b/packages-internal/scripts/typescript-to-proptypes/test/omit-conditional/input.d.ts @@ -2,4 +2,4 @@ type TextFieldProps = A extends true ? { testProp: string } : type Props = Omit, 'b'> -export function Foo(props: Props): JSX.Element; +export function Foo(props: Props): React.JSX.Element; diff --git a/packages-internal/scripts/typescript-to-proptypes/test/overloaded-function-component/input.d.ts b/packages-internal/scripts/typescript-to-proptypes/test/overloaded-function-component/input.d.ts index d9fddc0e5f9303..406b40ac196649 100644 --- a/packages-internal/scripts/typescript-to-proptypes/test/overloaded-function-component/input.d.ts +++ b/packages-internal/scripts/typescript-to-proptypes/test/overloaded-function-component/input.d.ts @@ -5,9 +5,9 @@ interface ButtonProps { } interface Component { - (props: ButtonProps): JSX.Element; - (props: { component: C } & ButtonProps): JSX.Element; + (props: ButtonProps): React.JSX.Element; + (props: { component: C } & ButtonProps): React.JSX.Element; } // a component using overloading and intersection of function signature -declare const ButtonBase: Component & ((props: { href: string } & ButtonProps) => JSX.Element); +declare const ButtonBase: Component & ((props: { href: string } & ButtonProps) => React.JSX.Element); diff --git a/packages-internal/scripts/typescript-to-proptypes/test/partial-any-props/input.d.ts b/packages-internal/scripts/typescript-to-proptypes/test/partial-any-props/input.d.ts index 03a37509db9dac..d11bad94c16c3f 100644 --- a/packages-internal/scripts/typescript-to-proptypes/test/partial-any-props/input.d.ts +++ b/packages-internal/scripts/typescript-to-proptypes/test/partial-any-props/input.d.ts @@ -2,4 +2,4 @@ type Props = { foo: any; }; -export default function Foo(props: Partial): JSX.Element; +export default function Foo(props: Partial): React.JSX.Element; diff --git a/packages-internal/scripts/typescript-to-proptypes/test/propTypes-casting/input.tsx b/packages-internal/scripts/typescript-to-proptypes/test/propTypes-casting/input.tsx index 7c16789e21a3bf..89dccc3a6f106d 100644 --- a/packages-internal/scripts/typescript-to-proptypes/test/propTypes-casting/input.tsx +++ b/packages-internal/scripts/typescript-to-proptypes/test/propTypes-casting/input.tsx @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; // empty props are likely a mistake. // We want to make sure we catch this instead of keeping .propTypes -export default function Component(props: {}): JSX.Element { +export default function Component(props: {}): React.JSX.Element { return

; } diff --git a/packages-internal/scripts/typescript-to-proptypes/test/reconcile-prop-types/input.d.ts b/packages-internal/scripts/typescript-to-proptypes/test/reconcile-prop-types/input.d.ts index 6e43fc6bc542bb..324e24da284d4f 100644 --- a/packages-internal/scripts/typescript-to-proptypes/test/reconcile-prop-types/input.d.ts +++ b/packages-internal/scripts/typescript-to-proptypes/test/reconcile-prop-types/input.d.ts @@ -4,4 +4,4 @@ interface Props { children?: React.ReactNode; } -export default function Component(props: Props): JSX.Element; +export default function Component(props: Props): React.JSX.Element; diff --git a/packages-internal/scripts/typescript-to-proptypes/test/sort-unions/input.d.ts b/packages-internal/scripts/typescript-to-proptypes/test/sort-unions/input.d.ts index 5379600ee91549..7eefff1a862f14 100644 --- a/packages-internal/scripts/typescript-to-proptypes/test/sort-unions/input.d.ts +++ b/packages-internal/scripts/typescript-to-proptypes/test/sort-unions/input.d.ts @@ -11,4 +11,4 @@ export interface Props { only?: Breakpoint | Breakpoint[]; } -export default function Hidden(props: Props): JSX.Element; +export default function Hidden(props: Props): React.JSX.Element; diff --git a/packages-internal/scripts/typescript-to-proptypes/test/union-props/input.d.ts b/packages-internal/scripts/typescript-to-proptypes/test/union-props/input.d.ts index 551c9bcf1002ff..f5debd26d41bc7 100644 --- a/packages-internal/scripts/typescript-to-proptypes/test/union-props/input.d.ts +++ b/packages-internal/scripts/typescript-to-proptypes/test/union-props/input.d.ts @@ -16,4 +16,4 @@ export interface FilledProps extends BaseProps { export type TextFieldProps = StandardProps | OutlinedProps | FilledProps; -export default function TextField(props: TextFieldProps): JSX.Element; +export default function TextField(props: TextFieldProps): React.JSX.Element; diff --git a/packages/api-docs-builder/ApiBuilders/ComponentApiBuilder.ts b/packages/api-docs-builder/ApiBuilders/ComponentApiBuilder.ts index 035fb40d839eb2..5ad3416c3d59c8 100644 --- a/packages/api-docs-builder/ApiBuilders/ComponentApiBuilder.ts +++ b/packages/api-docs-builder/ApiBuilders/ComponentApiBuilder.ts @@ -81,6 +81,7 @@ export interface ReactApi extends ReactDocgenApi { imports: string[]; translations: { componentDescription: string; + deprecationInfo: string | undefined; propDescriptions: { [key: string]: { description: string; @@ -104,6 +105,7 @@ export interface ReactApi extends ReactDocgenApi { * The folder used to store the API translation. */ apiDocsTranslationFolder?: string; + deprecated: true | undefined; } const cssComponents = ['Box', 'Grid', 'Typography', 'Stack']; @@ -284,7 +286,7 @@ async function annotateComponentDefinition(api: ReactApi, componentJsdoc: Annota } let inheritanceAPILink = null; - if (api.inheritance !== null) { + if (api.inheritance) { inheritanceAPILink = `[${api.inheritance.name} API](${ api.inheritance.apiPathname.startsWith('http') ? api.inheritance.apiPathname @@ -315,7 +317,7 @@ async function annotateComponentDefinition(api: ReactApi, componentJsdoc: Annota api.apiPathname.startsWith('http') ? api.apiPathname : `${HOST}${api.apiPathname}` })`, ); - if (api.inheritance !== null) { + if (api.inheritance) { markdownLines.push(`- inherits ${inheritanceAPILink}`); } @@ -409,6 +411,7 @@ const generateApiPage = async ( .map((item) => `
  • ${item.demoPageTitle}
  • `) .join('\n')}`, cssComponent: cssComponents.indexOf(reactApi.name) >= 0, + deprecated: reactApi.deprecated, }; const { classesSort = sortAlphabetical('key'), slotsSort = null } = { @@ -463,9 +466,14 @@ const generateApiPage = async ( } }; -const attachTranslations = (reactApi: ReactApi, settings?: CreateDescribeablePropSettings) => { +const attachTranslations = ( + reactApi: ReactApi, + deprecationInfo: string | undefined, + settings?: CreateDescribeablePropSettings, +) => { const translations: ReactApi['translations'] = { componentDescription: reactApi.description, + deprecationInfo: deprecationInfo ? renderMarkdown(deprecationInfo) : undefined, propDescriptions: {}, classDescriptions: {}, }; @@ -769,6 +777,7 @@ export default async function generateComponentApi( reactApi.slots = []; reactApi.classes = []; reactApi.demos = componentInfo.getDemos(); + reactApi.inheritance = null; if (reactApi.demos.length === 0) { throw new Error( 'Unable to find demos. \n' + @@ -784,7 +793,8 @@ export default async function generateComponentApi( reactApi.spread = testInfo.spread ?? spread; reactApi.themeDefaultProps = testInfo.themeDefaultProps; reactApi.inheritance = componentInfo.getInheritance(testInfo.inheritComponent); - } catch (e) { + } catch (error: any) { + console.error(error.message); if (project.name.includes('grid')) { // TODO: Use `describeConformance` for the DataGrid components reactApi.forwardsRefTo = 'GridRoot'; @@ -804,8 +814,13 @@ export default async function generateComponentApi( reactApi.classes = classes; } + const deprecation = componentJsdoc.tags.find((tag) => tag.title === 'deprecated'); + const deprecationInfo = deprecation?.description || undefined; + + reactApi.deprecated = !!deprecation || undefined; + attachPropsTable(reactApi, projectSettings.propsSettings); - attachTranslations(reactApi, projectSettings.propsSettings); + attachTranslations(reactApi, deprecationInfo, projectSettings.propsSettings); // eslint-disable-next-line no-console console.log('Built API docs for', reactApi.apiPathname); diff --git a/packages/api-docs-builder/ApiBuilders/HookApiBuilder.ts b/packages/api-docs-builder/ApiBuilders/HookApiBuilder.ts index 479b6a2f7f8d1e..1df6ccac4bd82b 100644 --- a/packages/api-docs-builder/ApiBuilders/HookApiBuilder.ts +++ b/packages/api-docs-builder/ApiBuilders/HookApiBuilder.ts @@ -79,6 +79,7 @@ export interface ReactApi extends ReactDocgenApi { }>; translations: { hookDescription: string; + deprecationInfo: string | undefined; parametersDescriptions: { [key: string]: { description: string; @@ -96,6 +97,7 @@ export interface ReactApi extends ReactDocgenApi { * The folder used to store the API translation. */ apiDocsTranslationFolder?: string; + deprecated: true | undefined; } /** @@ -370,9 +372,10 @@ const generateTranslationDescription = (description: string) => { return renderMarkdown(description.replace(/\n@default.*$/, '')); }; -const attachTranslations = (reactApi: ReactApi) => { +const attachTranslations = (reactApi: ReactApi, deprecationInfo: string | undefined) => { const translations: ReactApi['translations'] = { hookDescription: reactApi.description, + deprecationInfo: deprecationInfo ? renderMarkdown(deprecationInfo).trim() : undefined, parametersDescriptions: {}, returnValueDescriptions: {}, }; @@ -440,6 +443,7 @@ const generateApiJson = async (outputDirectory: string, reactApi: ReactApi) => { demos: ``, + deprecated: reactApi.deprecated, }; await writePrettifiedFile( @@ -589,7 +593,12 @@ export default async function generateHookApi( attachTable(reactApi, returnValue, 'returnValueTable'); reactApi.returnValue = returnValue; - attachTranslations(reactApi); + const deprecation = hookJsdoc.tags.find((tag) => tag.title === 'deprecated'); + const deprecationInfo = deprecation?.description || undefined; + + reactApi.deprecated = !!deprecation || undefined; + + attachTranslations(reactApi, deprecationInfo); // eslint-disable-next-line no-console console.log('Built API docs for', reactApi.name); diff --git a/packages/api-docs-builder/package.json b/packages/api-docs-builder/package.json index 0c5bf537cac843..af08ad4978afc9 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.24.5", - "@babel/preset-typescript": "^7.24.1", - "@babel/traverse": "^7.24.5", + "@babel/core": "^7.24.6", + "@babel/preset-typescript": "^7.24.6", + "@babel/traverse": "^7.24.6", "@mui/internal-docs-utils": "workspace:^", "@mui/internal-markdown": "workspace:^", "ast-types": "^0.14.2", @@ -27,7 +27,7 @@ }, "devDependencies": { "@types/babel__core": "^7.20.5", - "@types/babel__traverse": "^7.20.5", + "@types/babel__traverse": "^7.20.6", "@types/chai": "^4.3.16", "@types/doctrine": "^0.0.9", "@types/mdast": "4.0.4", diff --git a/packages/markdown/package.json b/packages/markdown/package.json index e28a35a052f2d4..db788f7a1643db 100644 --- a/packages/markdown/package.json +++ b/packages/markdown/package.json @@ -20,7 +20,7 @@ "release:publish:dry-run": "pnpm publish --tag latest --registry=\"http://localhost:4873/\"" }, "dependencies": { - "@babel/runtime": "^7.24.5", + "@babel/runtime": "^7.24.6", "lodash": "^4.17.21", "marked": "^5.1.2", "prismjs": "^1.29.0" diff --git a/packages/markdown/prepareMarkdown.js b/packages/markdown/prepareMarkdown.js index 878bdea7e768db..79f8cf1f42a798 100644 --- a/packages/markdown/prepareMarkdown.js +++ b/packages/markdown/prepareMarkdown.js @@ -39,6 +39,9 @@ function resolveComponentApiUrl(productId, componentPkg, component) { if (componentPkg === 'mui-base' || BaseUIReexportedComponents.indexOf(component) >= 0) { return `/base-ui/react-${kebabCase(component)}/components-api/#${kebabCase(component)}`; } + if (productId === 'toolpad-core') { + return `/toolpad/core/api/${kebabCase(component)}/`; + } return `/${productId}/api/${kebabCase(component)}/`; } diff --git a/packages/mui-babel-macros/package.json b/packages/mui-babel-macros/package.json index d4d029f674b17a..b272d251109ff3 100644 --- a/packages/mui-babel-macros/package.json +++ b/packages/mui-babel-macros/package.json @@ -23,8 +23,8 @@ "test": "cd ../../ && cross-env NODE_ENV=test mocha 'packages/mui-babel-macros/**/*.test.{js,ts,tsx}'" }, "dependencies": { - "@babel/helper-module-imports": "^7.24.3", - "@babel/runtime": "^7.24.5", + "@babel/helper-module-imports": "^7.24.6", + "@babel/runtime": "^7.24.6", "babel-plugin-macros": "^3.1.0" }, "devDependencies": { diff --git a/packages/mui-base/package.json b/packages/mui-base/package.json index 60f60fa0bde8f5..fdb034c54823cc 100644 --- a/packages/mui-base/package.json +++ b/packages/mui-base/package.json @@ -40,7 +40,7 @@ "typescript:module-augmentation": "node scripts/testModuleAugmentation.js" }, "dependencies": { - "@babel/runtime": "^7.24.5", + "@babel/runtime": "^7.24.6", "@floating-ui/react-dom": "^2.0.8", "@mui/types": "workspace:^", "@mui/utils": "workspace:^", diff --git a/packages/mui-base/src/ClickAwayListener/ClickAwayListener.tsx b/packages/mui-base/src/ClickAwayListener/ClickAwayListener.tsx index dbdfcee7f097d1..ee00d7d9fc8d2b 100644 --- a/packages/mui-base/src/ClickAwayListener/ClickAwayListener.tsx +++ b/packages/mui-base/src/ClickAwayListener/ClickAwayListener.tsx @@ -35,7 +35,7 @@ export interface ClickAwayListenerProps { /** * The wrapped element. */ - children: React.ReactElement; + children: React.ReactElement; /** * If `true`, the React tree is ignored and only the DOM tree is considered. * This prop changes how portaled elements are handled. @@ -70,7 +70,7 @@ export interface ClickAwayListenerProps { * * - [ClickAwayListener API](https://mui.com/base-ui/react-click-away-listener/components-api/#click-away-listener) */ -function ClickAwayListener(props: ClickAwayListenerProps): JSX.Element { +function ClickAwayListener(props: ClickAwayListenerProps): React.JSX.Element { const { children, disableReactTree = false, diff --git a/packages/mui-base/src/FocusTrap/FocusTrap.tsx b/packages/mui-base/src/FocusTrap/FocusTrap.tsx index bd52658ac9b7df..3d00b5fc6f7bdc 100644 --- a/packages/mui-base/src/FocusTrap/FocusTrap.tsx +++ b/packages/mui-base/src/FocusTrap/FocusTrap.tsx @@ -132,7 +132,7 @@ function defaultIsEnabled(): boolean { * * - [FocusTrap API](https://mui.com/base-ui/react-focus-trap/components-api/#focus-trap) */ -function FocusTrap(props: FocusTrapProps): JSX.Element { +function FocusTrap(props: FocusTrapProps): React.JSX.Element { const { children, disableAutoFocus = false, diff --git a/packages/mui-base/src/FocusTrap/FocusTrap.types.ts b/packages/mui-base/src/FocusTrap/FocusTrap.types.ts index 70c6861eeaf4f7..be9cf5ee1e93c3 100644 --- a/packages/mui-base/src/FocusTrap/FocusTrap.types.ts +++ b/packages/mui-base/src/FocusTrap/FocusTrap.types.ts @@ -24,7 +24,7 @@ export interface FocusTrapProps { /** * A single child content element. */ - children: React.ReactElement; + children: React.ReactElement; /** * If `true`, the focus trap will not automatically shift focus to itself when it opens, and * replace it to the last focused element when it closes. diff --git a/packages/mui-base/src/Modal/Modal.types.ts b/packages/mui-base/src/Modal/Modal.types.ts index 899d1721291cdc..8aa7f1ea29ee85 100644 --- a/packages/mui-base/src/Modal/Modal.types.ts +++ b/packages/mui-base/src/Modal/Modal.types.ts @@ -10,7 +10,7 @@ export interface ModalOwnProps { /** * A single child content element. */ - children: React.ReactElement; + children: React.ReactElement; /** * When set to true the Modal waits until a nested Transition is completed before closing. * @default false diff --git a/packages/mui-base/src/NoSsr/NoSsr.tsx b/packages/mui-base/src/NoSsr/NoSsr.tsx index e2abe25adfb3fd..c637df94e70b61 100644 --- a/packages/mui-base/src/NoSsr/NoSsr.tsx +++ b/packages/mui-base/src/NoSsr/NoSsr.tsx @@ -22,7 +22,7 @@ import { NoSsrProps } from './NoSsr.types'; * * - [NoSsr API](https://mui.com/base-ui/react-no-ssr/components-api/#no-ssr) */ -function NoSsr(props: NoSsrProps): JSX.Element { +function NoSsr(props: NoSsrProps): React.JSX.Element { const { children, defer = false, fallback = null } = props; const [mountedState, setMountedState] = React.useState(false); diff --git a/packages/mui-base/src/Option/Option.types.ts b/packages/mui-base/src/Option/Option.types.ts index 3e08daa5712c90..907b8a8f601775 100644 --- a/packages/mui-base/src/Option/Option.types.ts +++ b/packages/mui-base/src/Option/Option.types.ts @@ -65,7 +65,7 @@ export interface OptionType { RootComponentType extends React.ElementType = OptionTypeMap['defaultComponent'], >( props: PolymorphicProps, RootComponentType>, - ): JSX.Element | null; + ): React.JSX.Element | null; propTypes?: any; displayName?: string | undefined; } diff --git a/packages/mui-base/src/Select/Select.types.ts b/packages/mui-base/src/Select/Select.types.ts index cca29cc508554d..d6cd2b1c35aa72 100644 --- a/packages/mui-base/src/Select/Select.types.ts +++ b/packages/mui-base/src/Select/Select.types.ts @@ -191,7 +191,7 @@ export interface SelectType { >['defaultComponent'], >( props: PolymorphicProps, RootComponentType>, - ): JSX.Element | null; + ): React.JSX.Element | null; propTypes?: any; displayName?: string | undefined; } diff --git a/packages/mui-base/src/Snackbar/Snackbar.test.tsx b/packages/mui-base/src/Snackbar/Snackbar.test.tsx index 3cd45136355ba5..21067dce9e9af1 100644 --- a/packages/mui-base/src/Snackbar/Snackbar.test.tsx +++ b/packages/mui-base/src/Snackbar/Snackbar.test.tsx @@ -17,7 +17,7 @@ describe('', () => { * We have to defer the effect manually like `useEffect` would so we have to flush the effect manually instead of relying on `act()`. * React bug: https://github.com/facebook/react/issues/20074 */ - function render(...args: [React.ReactElement]) { + function render(...args: [React.ReactElement]) { const result = clientRender(...args); clock.tick(0); return result; diff --git a/packages/mui-base/src/unstable_useModal/useModal.types.ts b/packages/mui-base/src/unstable_useModal/useModal.types.ts index 337b5b3918dfd0..ef7068b56f3a59 100644 --- a/packages/mui-base/src/unstable_useModal/useModal.types.ts +++ b/packages/mui-base/src/unstable_useModal/useModal.types.ts @@ -22,7 +22,7 @@ export type UseModalParameters = { /** * A single child content element. */ - children: React.ReactElement | undefined | null; + children: React.ReactElement | undefined | null; /** * When set to true the Modal waits until a nested Transition is completed before closing. * @default false diff --git a/packages/mui-base/src/utils/PolymorphicComponent.ts b/packages/mui-base/src/utils/PolymorphicComponent.ts index 0110cfc87ff530..abcc2682228f1f 100644 --- a/packages/mui-base/src/utils/PolymorphicComponent.ts +++ b/packages/mui-base/src/utils/PolymorphicComponent.ts @@ -10,7 +10,7 @@ import { DistributiveOmit, OverridableTypeMap } from '@mui/types'; export type PolymorphicComponent = { ( props: PolymorphicProps, - ): JSX.Element | null; + ): React.JSX.Element | null; propTypes?: any; displayName?: string | undefined; }; diff --git a/packages/mui-base/src/utils/appendOwnerState.ts b/packages/mui-base/src/utils/appendOwnerState.ts index 0ef5e0c47a4f60..965867cd8e71f0 100644 --- a/packages/mui-base/src/utils/appendOwnerState.ts +++ b/packages/mui-base/src/utils/appendOwnerState.ts @@ -10,7 +10,7 @@ import { isHostComponent } from './isHostComponent'; type OwnerStateWhenApplicable = ElementType extends React.ComponentType ? OwnerState - : ElementType extends keyof JSX.IntrinsicElements + : ElementType extends keyof React.JSX.IntrinsicElements ? undefined : OwnerState | undefined; diff --git a/packages/mui-base/test/describeConformanceUnstyled.tsx b/packages/mui-base/test/describeConformanceUnstyled.tsx index 750748d411eed9..ea9fef9b922acc 100644 --- a/packages/mui-base/test/describeConformanceUnstyled.tsx +++ b/packages/mui-base/test/describeConformanceUnstyled.tsx @@ -60,7 +60,7 @@ function forEachSlot( } function testPropForwarding( - element: React.ReactElement, + element: React.ReactElement, getOptions: () => UnstyledConformanceOptions, ) { const { @@ -110,7 +110,10 @@ function testPropForwarding( }); } -function testSlotsProp(element: React.ReactElement, getOptions: () => UnstyledConformanceOptions) { +function testSlotsProp( + element: React.ReactElement, + getOptions: () => UnstyledConformanceOptions, +) { const { render, slots, @@ -224,7 +227,7 @@ function testSlotsProp(element: React.ReactElement, getOptions: () => UnstyledCo } function testSlotPropsProp( - element: React.ReactElement, + element: React.ReactElement, getOptions: () => UnstyledConformanceOptions, ) { const { render, slots } = getOptions(); @@ -271,7 +274,7 @@ interface TestOwnerState { } function testSlotPropsCallbacks( - element: React.ReactElement, + element: React.ReactElement, getOptions: () => UnstyledConformanceOptions, ) { const { render, slots } = getOptions(); @@ -307,7 +310,7 @@ function testSlotPropsCallbacks( } function testOwnerStatePropagation( - element: React.ReactElement, + element: React.ReactElement, getOptions: () => UnstyledConformanceOptions, ) { const { @@ -359,7 +362,7 @@ function testOwnerStatePropagation( } function testDisablingClassGeneration( - element: React.ReactElement, + element: React.ReactElement, getOptions: () => UnstyledConformanceOptions, ) { const { render } = getOptions(); @@ -394,7 +397,7 @@ const fullSuite = { }; function describeConformance( - minimalElement: React.ReactElement, + minimalElement: React.ReactElement, getOptions: () => UnstyledConformanceOptions, ) { const { after: runAfterHook = () => {}, only = Object.keys(fullSuite), skip = [] } = getOptions(); diff --git a/packages/mui-codemod/README.md b/packages/mui-codemod/README.md index 783607b9513c35..b21ed229a3c491 100644 --- a/packages/mui-codemod/README.md +++ b/packages/mui-codemod/README.md @@ -1009,6 +1009,19 @@ npx @mui/codemod@next deprecations/form-control-label-props npx @mui/codemod@next deprecations/list-item-props ``` +#### `grid-props` + +```diff + +``` + +```bash +npx @mui/codemod@next deprecations/grid-props +``` + #### `pagination-item-classes` JS transforms: @@ -1095,6 +1108,32 @@ npx @mui/codemod@next deprecations/pagination-item-classes npx @mui/codemod@next deprecations/pagination-item-props ``` +#### `popper-props` + +```diff + +``` + +```diff + MuiPopper: { + defaultProps: { +- components: { Root: CustomRoot } ++ slots: { root: CustomRoot }, +- componentsProps: { root: { testid: 'test-id' }} ++ slotProps: { root: { testid: 'test-id' } }, + }, + }, +``` + +```bash +npx @mui/codemod@next deprecations/popper-props +``` + #### `slider-props` ```diff @@ -1121,6 +1160,32 @@ npx @mui/codemod@next deprecations/pagination-item-props npx @mui/codemod@next deprecations/slider-props ``` +#### `tooltip-props` + +```diff + +``` + +```diff + MuiTooltip: { + defaultProps: { +- components: { Arrow: CustomArrow } ++ slots: { arrow: CustomArrow }, +- componentsProps: { arrow: { testid: 'test-id' }} ++ slotProps: { arrow: { testid: 'test-id' } }, + }, + }, +``` + +```bash +npx @mui/codemod@next deprecations/tooltip-props +``` + #### `step-connector-classes` JS transforms: @@ -1249,6 +1314,42 @@ npx @mui/codemod@next deprecations/step-connector-classes ### v6.0.0 +#### `sx-prop` + +```bash +npx @mui/codemod@next v6.0.0/sx-prop +``` + +Update the usage of the `sx` prop to be compatible with `@pigment-css/react`. + +```diff + +- theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[900], +- }} ++ sx={theme => ({ ++ backgroundColor: theme.palette.grey[900], ++ ...theme.applyStyles("light", { ++ backgroundColor: theme.palette.grey[100] ++ }) ++ })} + /> +``` + +#### `system-props` + +```bash +npx @mui/codemod@next v6.0.0/system-props +``` + +Remove system props and add them to the `sx` prop. + +```diff +- ++ +``` + #### `theme-v6` ```bash @@ -1311,10 +1412,10 @@ Update the theme creation from `@mui/system@v5` to be compatible with `@pigment- }) ``` -#### `styled-v6` +#### `styled` ```bash -npx @mui/codemod@next v6.0.0/styled-v6 +npx @mui/codemod@next v6.0.0/styled ``` Updates the usage of `styled` from `@mui/system@v5` to be compatible with `@pigment-css/react`. diff --git a/packages/mui-codemod/package.json b/packages/mui-codemod/package.json index 2f0addd9cafedb..695f9cb71fc1b0 100644 --- a/packages/mui-codemod/package.json +++ b/packages/mui-codemod/package.json @@ -30,9 +30,9 @@ "url": "https://opencollective.com/mui-org" }, "dependencies": { - "@babel/core": "^7.24.5", - "@babel/runtime": "^7.24.5", - "@babel/traverse": "^7.24.5", + "@babel/core": "^7.24.6", + "@babel/runtime": "^7.24.6", + "@babel/traverse": "^7.24.6", "jscodeshift": "^0.15.2", "jscodeshift-add-imports": "^1.0.10", "postcss": "^8.4.38", diff --git a/packages/mui-codemod/src/deprecations/all/deprecations-all.js b/packages/mui-codemod/src/deprecations/all/deprecations-all.js index b061a6e09918c1..88f8d20947689f 100644 --- a/packages/mui-codemod/src/deprecations/all/deprecations-all.js +++ b/packages/mui-codemod/src/deprecations/all/deprecations-all.js @@ -14,6 +14,7 @@ import transformStepLabelProps from '../step-label-props'; import transformBackdropProps from '../backdrop-props'; import transformStepConnectorClasses from '../step-connector-classes'; import transformCircularProgressClasses from '../circular-progress-classes'; +import transformGridProps from '../grid-props'; import transformSpeedDialProps from '../speed-dial-props'; import transformTextFieldProps from '../text-field-props'; @@ -40,6 +41,7 @@ export default function deprecationsAll(file, api, options) { file.source = transformCircularProgressClasses(file, api, options); file.source = transformSpeedDialProps(file, api, options); file.source = transformTextFieldProps(file, api, options); + file.source = transformGridProps(file, api, options); return file.source; } diff --git a/packages/mui-codemod/src/deprecations/grid-props/grid-props.js b/packages/mui-codemod/src/deprecations/grid-props/grid-props.js new file mode 100644 index 00000000000000..328b30e9b657da --- /dev/null +++ b/packages/mui-codemod/src/deprecations/grid-props/grid-props.js @@ -0,0 +1,42 @@ +import findComponentJSX from '../../util/findComponentJSX'; + +/** + * @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; + + const filterJSXAttr = (attr, name) => attr.type === 'JSXAttribute' && attr.name.name === name; + + findComponentJSX(j, { root, componentName: 'Grid' }, (gridElement) => { + const attrs = gridElement.node.openingElement.attributes; + const wrapPropIndex = attrs.findIndex((attr) => filterJSXAttr(attr, 'wrap')); + + if (wrapPropIndex !== -1) { + if (attrs.findIndex((attr) => filterJSXAttr(attr, 'flexWrap')) !== -1) { + attrs.splice(wrapPropIndex, 1); + } else { + attrs[wrapPropIndex].name.name = 'flexWrap'; + } + } + }); + + root.find(j.ObjectProperty, { key: { name: 'MuiGrid' } }).forEach((path) => { + const defaultProps = path.value.value.properties.find(({ key }) => key.name === 'defaultProps'); + const props = defaultProps.value.properties; + const wrapPropIndex = props.findIndex((prop) => prop.key.name === 'wrap'); + + if (wrapPropIndex !== -1) { + if (props.findIndex((prop) => prop.key.name === 'flexWrap') !== -1) { + props.splice(wrapPropIndex, 1); + } else { + props[wrapPropIndex].key.name = 'flexWrap'; + } + } + }); + + return root.toSource(printOptions); +} diff --git a/packages/mui-codemod/src/deprecations/grid-props/grid-props.test.js b/packages/mui-codemod/src/deprecations/grid-props/grid-props.test.js new file mode 100644 index 00000000000000..9e44307050e920 --- /dev/null +++ b/packages/mui-codemod/src/deprecations/grid-props/grid-props.test.js @@ -0,0 +1,16 @@ +import { describeJscodeshiftTransform } from '../../../testUtils'; +import transform from './grid-props'; + +describe('@mui/codemod', () => { + describe('deprecations', () => { + describeJscodeshiftTransform({ + transform, + transformName: 'grid-props', + dirname: __dirname, + testCases: [ + { actual: '/test-cases/actual.js', expected: '/test-cases/expected.js' }, + { actual: '/test-cases/theme.actual.js', expected: '/test-cases/theme.expected.js' }, + ], + }); + }); +}); diff --git a/packages/mui-codemod/src/deprecations/grid-props/index.js b/packages/mui-codemod/src/deprecations/grid-props/index.js new file mode 100644 index 00000000000000..35a6d621882e1f --- /dev/null +++ b/packages/mui-codemod/src/deprecations/grid-props/index.js @@ -0,0 +1 @@ +export { default } from './grid-props'; diff --git a/packages/mui-codemod/src/deprecations/grid-props/test-cases/actual.js b/packages/mui-codemod/src/deprecations/grid-props/test-cases/actual.js new file mode 100644 index 00000000000000..bcddfdd74106fd --- /dev/null +++ b/packages/mui-codemod/src/deprecations/grid-props/test-cases/actual.js @@ -0,0 +1,11 @@ +import Grid from '@mui/material/Grid'; +import { Grid as MyGrid } from '@mui/material'; + +; +; + +; +; + +// should skip non MUI components +; diff --git a/packages/mui-codemod/src/deprecations/grid-props/test-cases/expected.js b/packages/mui-codemod/src/deprecations/grid-props/test-cases/expected.js new file mode 100644 index 00000000000000..666e3fccfca565 --- /dev/null +++ b/packages/mui-codemod/src/deprecations/grid-props/test-cases/expected.js @@ -0,0 +1,11 @@ +import Grid from '@mui/material/Grid'; +import { Grid as MyGrid } from '@mui/material'; + +; +; + +; +; + +// should skip non MUI components +; diff --git a/packages/mui-codemod/src/deprecations/grid-props/test-cases/theme.actual.js b/packages/mui-codemod/src/deprecations/grid-props/test-cases/theme.actual.js new file mode 100644 index 00000000000000..86d9e8f604e87e --- /dev/null +++ b/packages/mui-codemod/src/deprecations/grid-props/test-cases/theme.actual.js @@ -0,0 +1,24 @@ +fn({ + MuiGrid: { + defaultProps: { + wrap: 'wrap' + }, + }, +}); + +fn({ + MuiGrid: { + defaultProps: { + wrap: 'wrap-reverse' + }, + }, +}); + +fn({ + MuiGrid: { + defaultProps: { + wrap: 'wrap-reverse', + flexWrap: 'wrap' + }, + }, +}); diff --git a/packages/mui-codemod/src/deprecations/grid-props/test-cases/theme.expected.js b/packages/mui-codemod/src/deprecations/grid-props/test-cases/theme.expected.js new file mode 100644 index 00000000000000..e64036c5678295 --- /dev/null +++ b/packages/mui-codemod/src/deprecations/grid-props/test-cases/theme.expected.js @@ -0,0 +1,23 @@ +fn({ + MuiGrid: { + defaultProps: { + flexWrap: 'wrap' + }, + }, +}); + +fn({ + MuiGrid: { + defaultProps: { + flexWrap: 'wrap-reverse' + }, + }, +}); + +fn({ + MuiGrid: { + defaultProps: { + flexWrap: 'wrap' + }, + }, +}); diff --git a/packages/mui-codemod/src/deprecations/popper-props/index.js b/packages/mui-codemod/src/deprecations/popper-props/index.js new file mode 100644 index 00000000000000..1d9d5bdfb21134 --- /dev/null +++ b/packages/mui-codemod/src/deprecations/popper-props/index.js @@ -0,0 +1 @@ +export { default } from './popper-props'; diff --git a/packages/mui-codemod/src/deprecations/popper-props/popper-props.js b/packages/mui-codemod/src/deprecations/popper-props/popper-props.js new file mode 100644 index 00000000000000..f005e8453bdb5d --- /dev/null +++ b/packages/mui-codemod/src/deprecations/popper-props/popper-props.js @@ -0,0 +1,15 @@ +import replaceComponentsWithSlots from '../utils/replaceComponentsWithSlots'; + +/** + * @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; + + replaceComponentsWithSlots(j, { root, componentName: 'Popper' }); + + return root.toSource(printOptions); +} diff --git a/packages/mui-codemod/src/deprecations/popper-props/popper-props.test.js b/packages/mui-codemod/src/deprecations/popper-props/popper-props.test.js new file mode 100644 index 00000000000000..f50b9a59d25288 --- /dev/null +++ b/packages/mui-codemod/src/deprecations/popper-props/popper-props.test.js @@ -0,0 +1,16 @@ +import { describeJscodeshiftTransform } from '../../../testUtils'; +import transform from './popper-props'; + +describe('@mui/codemod', () => { + describe('deprecations', () => { + describeJscodeshiftTransform({ + transform, + transformName: 'popper-props', + dirname: __dirname, + testCases: [ + { actual: '/test-cases/actual.js', expected: '/test-cases/expected.js' }, + { actual: '/test-cases/theme.actual.js', expected: '/test-cases/theme.expected.js' }, + ], + }); + }); +}); diff --git a/packages/mui-codemod/src/deprecations/popper-props/test-cases/actual.js b/packages/mui-codemod/src/deprecations/popper-props/test-cases/actual.js new file mode 100644 index 00000000000000..dcd4a139ab2bf6 --- /dev/null +++ b/packages/mui-codemod/src/deprecations/popper-props/test-cases/actual.js @@ -0,0 +1,12 @@ +import Popper from '@mui/material/Popper'; + +; +; diff --git a/packages/mui-codemod/src/deprecations/popper-props/test-cases/expected.js b/packages/mui-codemod/src/deprecations/popper-props/test-cases/expected.js new file mode 100644 index 00000000000000..0413a8592825f9 --- /dev/null +++ b/packages/mui-codemod/src/deprecations/popper-props/test-cases/expected.js @@ -0,0 +1,14 @@ +import Popper from '@mui/material/Popper'; + +; +; diff --git a/packages/mui-codemod/src/deprecations/popper-props/test-cases/theme.actual.js b/packages/mui-codemod/src/deprecations/popper-props/test-cases/theme.actual.js new file mode 100644 index 00000000000000..888e0cd2cff4d7 --- /dev/null +++ b/packages/mui-codemod/src/deprecations/popper-props/test-cases/theme.actual.js @@ -0,0 +1,19 @@ +fn({ + MuiPopper: { + defaultProps: { + components: { Root: ComponentsRoot }, + componentsProps: { root: componentsRootProps }, + }, + }, +}); + +fn({ + MuiPopper: { + defaultProps: { + components: { Root: ComponentsRoot }, + slots: { root: SlotsRoot }, + componentsProps: { root: componentsRootProps }, + slotProps: { root: slotsRootProps }, + }, + }, +}); diff --git a/packages/mui-codemod/src/deprecations/popper-props/test-cases/theme.expected.js b/packages/mui-codemod/src/deprecations/popper-props/test-cases/theme.expected.js new file mode 100644 index 00000000000000..ff6302e757b4d8 --- /dev/null +++ b/packages/mui-codemod/src/deprecations/popper-props/test-cases/theme.expected.js @@ -0,0 +1,30 @@ +fn({ + MuiPopper: { + defaultProps: { + slots: { + root: ComponentsRoot + }, + + slotProps: { + root: componentsRootProps + } + }, + }, +}); + +fn({ + MuiPopper: { + defaultProps: { + slots: { + root: SlotsRoot + }, + + slotProps: { + root: { + ...componentsRootProps, + ...slotsRootProps + } + } + }, + }, +}); diff --git a/packages/mui-codemod/src/deprecations/tooltip-props/index.js b/packages/mui-codemod/src/deprecations/tooltip-props/index.js new file mode 100644 index 00000000000000..3f4630b5474a31 --- /dev/null +++ b/packages/mui-codemod/src/deprecations/tooltip-props/index.js @@ -0,0 +1 @@ +export { default } from './tooltip-props'; diff --git a/packages/mui-codemod/src/deprecations/tooltip-props/test-cases/actual.js b/packages/mui-codemod/src/deprecations/tooltip-props/test-cases/actual.js new file mode 100644 index 00000000000000..a02495c65013ca --- /dev/null +++ b/packages/mui-codemod/src/deprecations/tooltip-props/test-cases/actual.js @@ -0,0 +1,60 @@ +import Tooltip from '@mui/material/Tooltip'; + +; +; +; +; +; diff --git a/packages/mui-codemod/src/deprecations/tooltip-props/test-cases/expected.js b/packages/mui-codemod/src/deprecations/tooltip-props/test-cases/expected.js new file mode 100644 index 00000000000000..a6e62ef6c7d73f --- /dev/null +++ b/packages/mui-codemod/src/deprecations/tooltip-props/test-cases/expected.js @@ -0,0 +1,65 @@ +import Tooltip from '@mui/material/Tooltip'; + +; +; +; +; +; diff --git a/packages/mui-codemod/src/deprecations/tooltip-props/test-cases/theme.actual.js b/packages/mui-codemod/src/deprecations/tooltip-props/test-cases/theme.actual.js new file mode 100644 index 00000000000000..d6933e8bc29102 --- /dev/null +++ b/packages/mui-codemod/src/deprecations/tooltip-props/test-cases/theme.actual.js @@ -0,0 +1,41 @@ +fn({ + MuiTooltip: { + defaultProps: { + components: { Arrow: ComponentsArrow }, + componentsProps: { arrow: componentsArrowProps }, + }, + }, +}); + +fn({ + MuiTooltip: { + defaultProps: { + components: { Arrow: ComponentsArrow }, + slots: { tooltip: SlotsTooltip }, + componentsProps: { arrow: componentsArrowProps }, + slotProps: { tooltip: slotsTooltipProps }, + }, + }, +}); + +fn({ + MuiTooltip: { + defaultProps: { + components: { Arrow: ComponentsArrow }, + slots: { tooltip: SlotsTooltip, arrow: SlotsArrow }, + componentsProps: { arrow: componentsArrowProps }, + slotProps: { tooltip: slotsTooltipProps, arrow: slotsArrowProps }, + }, + }, +}); + +fn({ + MuiTooltip: { + defaultProps: { + components: { Arrow: ComponentsArrow }, + slots: { tooltip: SlotsTooltip, arrow: SlotsArrow }, + componentsProps: { arrow: componentsArrowProps, tooltip: componentsTooltipProps }, + slotProps: { tooltip: slotsTooltipProps, arrow: slotsArrowProps }, + }, + }, +}); diff --git a/packages/mui-codemod/src/deprecations/tooltip-props/test-cases/theme.expected.js b/packages/mui-codemod/src/deprecations/tooltip-props/test-cases/theme.expected.js new file mode 100644 index 00000000000000..ad6b795e2c4d53 --- /dev/null +++ b/packages/mui-codemod/src/deprecations/tooltip-props/test-cases/theme.expected.js @@ -0,0 +1,72 @@ +fn({ + MuiTooltip: { + defaultProps: { + slots: { + arrow: ComponentsArrow + }, + + slotProps: { + arrow: componentsArrowProps + } + }, + }, +}); + +fn({ + MuiTooltip: { + defaultProps: { + slots: { + arrow: ComponentsArrow, + tooltip: SlotsTooltip + }, + + slotProps: { + arrow: componentsArrowProps, + tooltip: slotsTooltipProps + } + }, + }, +}); + +fn({ + MuiTooltip: { + defaultProps: { + slots: { + arrow: SlotsArrow, + tooltip: SlotsTooltip + }, + + slotProps: { + arrow: { + ...componentsArrowProps, + ...slotsArrowProps + }, + + tooltip: slotsTooltipProps + } + }, + }, +}); + +fn({ + MuiTooltip: { + defaultProps: { + slots: { + arrow: SlotsArrow, + tooltip: SlotsTooltip + }, + + slotProps: { + arrow: { + ...componentsArrowProps, + ...slotsArrowProps + }, + + tooltip: { + ...componentsTooltipProps, + ...slotsTooltipProps + } + } + }, + }, +}); diff --git a/packages/mui-codemod/src/deprecations/tooltip-props/tooltip-props.js b/packages/mui-codemod/src/deprecations/tooltip-props/tooltip-props.js new file mode 100644 index 00000000000000..feb7e35348d69b --- /dev/null +++ b/packages/mui-codemod/src/deprecations/tooltip-props/tooltip-props.js @@ -0,0 +1,15 @@ +import replaceComponentsWithSlots from '../utils/replaceComponentsWithSlots'; + +/** + * @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; + + replaceComponentsWithSlots(j, { root, componentName: 'Tooltip' }); + + return root.toSource(printOptions); +} diff --git a/packages/mui-codemod/src/deprecations/tooltip-props/tooltip-props.test.js b/packages/mui-codemod/src/deprecations/tooltip-props/tooltip-props.test.js new file mode 100644 index 00000000000000..a3880ee54d158e --- /dev/null +++ b/packages/mui-codemod/src/deprecations/tooltip-props/tooltip-props.test.js @@ -0,0 +1,16 @@ +import { describeJscodeshiftTransform } from '../../../testUtils'; +import transform from './tooltip-props'; + +describe('@mui/codemod', () => { + describe('deprecations', () => { + describeJscodeshiftTransform({ + transform, + transformName: 'tooltip-props', + dirname: __dirname, + testCases: [ + { actual: '/test-cases/actual.js', expected: '/test-cases/expected.js' }, + { actual: '/test-cases/theme.actual.js', expected: '/test-cases/theme.expected.js' }, + ], + }); + }); +}); diff --git a/packages/mui-codemod/src/util/migrateToVariants.js b/packages/mui-codemod/src/util/migrateToVariants.js index c8508c67b2f2d9..34ec7e27861b1a 100644 --- a/packages/mui-codemod/src/util/migrateToVariants.js +++ b/packages/mui-codemod/src/util/migrateToVariants.js @@ -1,10 +1,10 @@ const MAX_DEPTH = 20; + /** - * * @param {import('jscodeshift').API['j']} j - * @param {any[]} styles + * @returns */ -export default function migrateToVariants(j, styles) { +export const getCreateBuildStyle = (j) => function createBuildStyle(key, upperBuildStyle, applyStylesMode) { if (applyStylesMode) { upperBuildStyle = (styleExpression) => @@ -35,63 +35,159 @@ export default function migrateToVariants(j, styles) { } return upperBuildStyle ? upperBuildStyle(styleExpression) : styleExpression; }; - } + }; +/** + * @param {import('jscodeshift').API['j']} j + */ +export const getAppendPaletteModeStyles = (j) => /** * - * @param {import('ast-types').namedTypes.MemberExpression | import('ast-types').namedTypes.Identifier} node + * @param {{ properties: any[] }} node + * @param {Record} modeStyles */ - function getIdentifierKey(node) { - if (node.type === 'MemberExpression') { - return node.property; - } - return node; + function appendPaletteModeStyles(node, modeStyles) { + Object.entries(modeStyles).forEach(([mode, objectStyles]) => { + node.properties.push( + j.spreadElement( + j.callExpression(j.memberExpression(j.identifier('theme'), j.identifier('applyStyles')), [ + j.stringLiteral(mode), + Array.isArray(objectStyles) ? j.objectExpression(objectStyles) : objectStyles, + ]), + ), + ); + }); + }; + +/** + * + * @param {import('jscodeshift').MemberExpression | import('jscodeshift').Identifier} node + */ +export function getIdentifierKey(node) { + if (node.type === 'MemberExpression') { + return node.property; } + return node; +} - /** - * - * @param {import('ast-types').namedTypes.UnaryExpression | import('ast-types').namedTypes.MemberExpression | import('ast-types').namedTypes.Identifier} node - */ - function getObjectKey(node) { - let tempNode = { ...node }; - while (tempNode.type === 'UnaryExpression') { - tempNode = tempNode.argument; - } - while (tempNode.type === 'MemberExpression') { - tempNode = tempNode.object; +/** + * + * @param {import('jscodeshift').UnaryExpression | import('jscodeshift').MemberExpression | import('jscodeshift').Identifier} node + */ +export function getObjectKey(node) { + let tempNode = { ...node }; + while (tempNode.type === 'UnaryExpression') { + tempNode = tempNode.argument; + } + while (tempNode.type === 'MemberExpression' || tempNode.type === 'OptionMemberExpression') { + tempNode = tempNode.object; + } + return tempNode; +} + +/** + * + * @param {import('jscodeshift').ObjectExpression} node + */ +export function removeProperty(parentNode, child) { + if (parentNode) { + if (parentNode.type === 'ObjectExpression') { + parentNode.properties = parentNode.properties.filter( + (prop) => prop !== child && prop.value !== child, + ); } - return tempNode; } +} +/** + * @param {import('jscodeshift').API['j']} j + */ +export const getBuildArrowFunctionAST = (j) => /** * - * @param {import('ast-types').namedTypes.ObjectExpression} objectExpression - * @param {import('ast-types').namedTypes.BinaryExpression} addtional + * @param {Set | import('jscodeshift').Expression[]} params + * @param {import('jscodeshift').BlockStatement} body + * @returns */ - function objectToArrowFunction(objectExpression, addtional) { - const paramKeys = new Set(); - let left; - objectExpression.properties.forEach((prop, index) => { - paramKeys.add(prop.key.name); - const result = j.binaryExpression('===', prop.key, prop.value); - if (index === 0) { - left = result; - } else { - left = j.logicalExpression('&&', left, result); + function buildArrowFunctionAST(params, body) { + const destructured = [...params].every((param) => typeof param === 'string'); + return j.arrowFunctionExpression( + destructured + ? [ + j.objectPattern( + [...params].map((k) => ({ + ...j.objectProperty(j.identifier(k), j.identifier(k)), + shorthand: true, + })), + ), + ] + : params, + body, + ); + }; + +/** + * @param {import('jscodeshift').API['j']} j + */ +export const getObjectToArrowFunction = (j) => { + const buildArrowFunctionAST = getBuildArrowFunctionAST(j); + return ( + /** + * + * @param {import('jscodeshift').ObjectExpression} objectExpression + * @param {import('jscodeshift').BinaryExpression} addtional + */ + function objectToArrowFunction(objectExpression, addtional) { + const paramKeys = new Set(); + let left; + objectExpression.properties.forEach((prop, index) => { + paramKeys.add(prop.key.name); + const result = j.binaryExpression('===', prop.key, prop.value); + if (index === 0) { + left = result; + } else { + left = j.logicalExpression('&&', left, result); + } + }); + if (addtional) { + paramKeys.add(getObjectKey(addtional.left).name); } - }); - if (addtional) { - paramKeys.add(getObjectKey(addtional.left).name); + return buildArrowFunctionAST( + paramKeys, + addtional ? j.logicalExpression('&&', left, addtional) : left, + ); } - return buildArrowFunctionAST( - paramKeys, - addtional ? j.logicalExpression('&&', left, addtional) : left, - ); - } + ); +}; + +/** + * + * @param {undefined | null | import('jscodeshift').Expression} node + */ +export function isThemePaletteMode(node) { + return ( + node?.type === 'MemberExpression' && + node.object.type === 'MemberExpression' && + node.object.object.name === 'theme' && + node.object.property.name === 'palette' && + node.property.name === 'mode' + ); +} + +/** + * + * @param {import('jscodeshift').API['j']} j + * @param {any[]} styles + */ +export default function migrateToVariants(j, styles) { + const createBuildStyle = getCreateBuildStyle(j); + const appendPaletteModeStyles = getAppendPaletteModeStyles(j); + const buildArrowFunctionAST = getBuildArrowFunctionAST(j); + const objectToArrowFunction = getObjectToArrowFunction(j); /** * - * @param {import('ast-types').namedTypes.Identifier | import('ast-types').namedTypes.BinaryExpression | import('ast-types').namedTypes.UnaryExpression | import('ast-types').namedTypes.MemberExpression} node + * @param {import('jscodeshift').Identifier | import('jscodeshift').BinaryExpression | import('jscodeshift').UnaryExpression | import('jscodeshift').MemberExpression} node */ function inverseBinaryExpression(node) { if (node.type === 'Identifier' || node.type === 'MemberExpression') { @@ -112,20 +208,6 @@ export default function migrateToVariants(j, styles) { return node; } - /** - * - * @param {import('ast-types').namedTypes.ObjectExpression} node - */ - function removeProperty(parentNode, child) { - if (parentNode) { - if (parentNode.type === 'ObjectExpression') { - parentNode.properties = parentNode.properties.filter( - (prop) => prop !== child && prop.value !== child, - ); - } - } - } - function buildObjectAST(jsObject) { const result = j.objectExpression([]); Object.entries(jsObject).forEach(([key, value]) => { @@ -134,41 +216,9 @@ export default function migrateToVariants(j, styles) { return result; } - function buildArrowFunctionAST(params, body) { - return j.arrowFunctionExpression( - [ - j.objectPattern( - [...params].map((k) => ({ - ...j.objectProperty(j.identifier(k), j.identifier(k)), - shorthand: true, - })), - ), - ], - body, - ); - } - - /** - * - * @param {{ properties: any[] }} node - * @param {Record} modeStyles - */ - function appendPaletteModeStyles(node, modeStyles) { - Object.entries(modeStyles).forEach(([mode, objectStyles]) => { - node.properties.push( - j.spreadElement( - j.callExpression(j.memberExpression(j.identifier('theme'), j.identifier('applyStyles')), [ - j.stringLiteral(mode), - Array.isArray(objectStyles) ? j.objectExpression(objectStyles) : objectStyles, - ]), - ), - ); - }); - } - /** * - * @param {import('ast-types').namedTypes.LogicalExpression | import('ast-types').namedTypes.BinaryExpression | import('ast-types').namedTypes.UnaryExpression | import('ast-types').namedTypes.MemberExpression} node + * @param {import('jscodeshift').LogicalExpression | import('jscodeshift').BinaryExpression | import('jscodeshift').UnaryExpression | import('jscodeshift').MemberExpression} node */ function buildProps(node) { const properties = []; @@ -243,16 +293,6 @@ export default function migrateToVariants(j, styles) { ); } - function isThemePaletteMode(node) { - return ( - node.type === 'MemberExpression' && - node.object.type === 'MemberExpression' && - node.object.object.name === 'theme' && - node.object.property.name === 'palette' && - node.property.name === 'mode' - ); - } - // 2. Find logical spread expressions to convert to variants styles.forEach((style) => { const parameters = new Set(); @@ -262,14 +302,18 @@ export default function migrateToVariants(j, styles) { parameters.add(prop.key.name); }); } + if (param.type === 'Identifier') { + parameters.add(param.name); + } }); const variants = []; if (style.body.type === 'LogicalExpression') { if ( style.params[0] && - style.params[0].type === 'ObjectPattern' && - style.params[0].properties.some((prop) => prop.key.name !== 'theme') + (style.params[0].type === 'Identifier' || + (style.params[0].type === 'ObjectPattern' && + style.params[0].properties.some((prop) => prop.key.name !== 'theme'))) ) { // case: ({ theme, ownerState }) => ownerState.variant === 'regular' && theme.mixins.toolbar style.body = j.objectExpression([ @@ -531,6 +575,11 @@ export default function migrateToVariants(j, styles) { } data.modeStyles[mode].push(j.objectProperty(data.key, clonedNode)); }); + if (data.key) { + // to remove the arrow function + // { ...: theme => `1px solid...` } to { ...: `1px solid...` } + data.replaceValue?.(data.node); + } } } } diff --git a/packages/mui-codemod/src/v6.0.0/sx-prop/index.js b/packages/mui-codemod/src/v6.0.0/sx-prop/index.js new file mode 100644 index 00000000000000..5058756b00f0f8 --- /dev/null +++ b/packages/mui-codemod/src/v6.0.0/sx-prop/index.js @@ -0,0 +1 @@ +export { default } from './sx-v6'; diff --git a/packages/mui-codemod/src/v6.0.0/sx-prop/sx-v6.js b/packages/mui-codemod/src/v6.0.0/sx-prop/sx-v6.js new file mode 100644 index 00000000000000..e6a0bf68d92c16 --- /dev/null +++ b/packages/mui-codemod/src/v6.0.0/sx-prop/sx-v6.js @@ -0,0 +1,426 @@ +import getReturnExpression from '../../util/getReturnExpression'; +import { + getCreateBuildStyle, + getAppendPaletteModeStyles, + getObjectKey, + getBuildArrowFunctionAST, + isThemePaletteMode, + removeProperty, +} from '../../util/migrateToVariants'; + +/** + * + * @param {import('jscodeshift').MemberExpression | import('jscodeshift').Identifier} node + */ +function getCssVarName(node) { + if (node.type === 'MemberExpression') { + return `--${getObjectKey(node)?.name}-${node.property.name}`; + } + if (node.type === 'Identifier') { + return `--${node.name}`; + } + return ''; +} + +/** + * @param {import('jscodeshift').FileInfo} file + * @param {import('jscodeshift').API} api + */ +export default function sxV6(file, api, options) { + const j = api.jscodeshift; + const root = j(file.source); + const printOptions = options.printOptions; + + const createBuildStyle = getCreateBuildStyle(j); + const appendPaletteModeStyles = getAppendPaletteModeStyles(j); + const buildArrowFunctionAST = getBuildArrowFunctionAST(j); + + /** + * + * @param {import('jscodeshift').Identifier} node + */ + function replaceUndefined(node, replacement = j.nullLiteral()) { + if (node?.type === 'Identifier' && node.name === 'undefined') { + return replacement; + } + return node; + } + + let shouldTransform = false; + + root + .find(j.JSXAttribute, { name: { name: 'sx' }, value: { type: 'JSXExpressionContainer' } }) + .forEach((path) => { + /** + * @type {[import('jscodeshift').StringLiteral, import('jscodeshift').Expression][]} + */ + const cssVars = []; + const conditionalExpressions = []; // for ensuring the sequence of styles + let currentIndex = 0; + const sxContainer = path.node.value; + + if ( + ['ArrowFunctionExpression', 'ObjectExpression', 'ArrayExpression'].includes( + sxContainer.expression.type, + ) + ) { + shouldTransform = true; + (sxContainer.expression.type === 'ArrayExpression' + ? sxContainer.expression.elements + : [sxContainer.expression] + ).forEach((item, index) => { + currentIndex = index; + recurseObjectExpression({ + root: item, + replaceRoot: (newRoot) => { + sxContainer.expression = newRoot; + }, + node: item, + buildStyle: createBuildStyle(), + }); + }); + + if (cssVars.length) { + const cssVarsObject = j.objectExpression( + cssVars.map(([varName, value]) => j.objectProperty(varName, value)), + ); + if (path.parent.node.type === 'JSXOpeningElement') { + const styleAttribute = path.parent.node.attributes.find( + (attribute) => attribute.type === 'JSXAttribute' && attribute.name.name === 'style', + ); + const spreadAttribute = path.parent.node.attributes.find( + (attribute) => attribute.type === 'JSXSpreadAttribute', + ); + if (styleAttribute) { + if (styleAttribute.value.expression.type === 'ObjectExpression') { + styleAttribute.value.expression.properties = [ + ...cssVarsObject.properties, + ...styleAttribute.value.expression.properties, + ]; + } else if ( + styleAttribute.value.expression.type === 'Identifier' || + styleAttribute.value.expression.type === 'MemberExpression' + ) { + styleAttribute.value.expression = j.objectExpression([ + ...cssVarsObject.properties, + j.spreadElement(styleAttribute.value.expression), + ]); + } + } else if (spreadAttribute) { + path.parent.node.attributes.push( + j.jsxAttribute( + j.jsxIdentifier('style'), + j.jsxExpressionContainer( + j.objectExpression([ + ...cssVarsObject.properties, + j.spreadElement( + j.memberExpression(spreadAttribute.argument, j.identifier('style')), + ), + ]), + ), + ), + ); + } else { + path.parent.node.attributes.push( + j.jsxAttribute(j.jsxIdentifier('style'), j.jsxExpressionContainer(cssVarsObject)), + ); + } + } + } + + if (conditionalExpressions.length && sxContainer.expression.type === 'ArrayExpression') { + // insert the conditional expressions in the correct order + let cumulativeIndex = 0; + conditionalExpressions.forEach(([index, newElement]) => { + sxContainer.expression.elements.splice(index + 1 + cumulativeIndex, 0, newElement); + cumulativeIndex += 1; + }); + } + + if (sxContainer.expression.type === 'ArrayExpression') { + sxContainer.expression.elements = sxContainer.expression.elements.filter( + (item) => item.type !== 'ObjectExpression' || item.properties.length > 0, + ); + } + } + + function wrapSxInArray(newElement) { + if ( + sxContainer.expression.type === 'ObjectExpression' || + sxContainer.expression.type === 'ArrowFunctionExpression' + ) { + sxContainer.expression = j.arrayExpression([sxContainer.expression]); + } + if (sxContainer.expression.type === 'ArrayExpression') { + // store in a list to be added later to ensure the sequence of styles + conditionalExpressions.push([currentIndex, newElement]); + } + } + + /** + * + * @param {{ node: import('jscodeshift').Expression }} data + */ + function recurseObjectExpression(data) { + if (data.node.type === 'ArrowFunctionExpression') { + const returnExpression = getReturnExpression(data.node); + if (returnExpression) { + recurseObjectExpression({ + ...data, + node: returnExpression, + }); + } + } + if (data.node.type === 'ObjectExpression') { + const modeStyles = {}; // to collect styles from `theme.palette.mode === '...'` + data.node.properties.forEach((prop) => { + if (prop.type === 'ObjectProperty') { + recurseObjectExpression({ + ...data, + node: prop.value, + parentNode: data.node, + key: prop.key, + buildStyle: createBuildStyle(prop.key, data.buildStyle), + replaceValue: (newValue) => { + prop.value = newValue; + }, + deleteSelf: () => { + removeProperty(data.node, prop); + if (data.node.properties.length === 0) { + data.deleteSelf?.(); + } + }, + modeStyles, + }); + } else { + recurseObjectExpression({ + ...data, + node: prop, + parentNode: data.node, + buildStyle: createBuildStyle(prop.key, data.buildStyle), + }); + } + }); + appendPaletteModeStyles(data.node, modeStyles); + } + if (data.node.type === 'SpreadElement') { + if (data.node.argument.type === 'LogicalExpression') { + const paramName = + data.node.argument.left.type === 'BinaryExpression' + ? getObjectKey(data.node.argument.left.left)?.name + : getObjectKey(data.node.argument.left)?.name; + if (paramName === 'theme' && data.node.argument.left.right.type === 'StringLiteral') { + if (data.node.argument.right.type === 'ObjectExpression') { + const mode = data.node.argument.left.right.value; + data.node.argument.right.properties.forEach((prop) => { + if (prop.type === 'ObjectProperty') { + recurseObjectExpression({ + ...data, + node: prop.value, + parentNode: data.node.argument.right, + key: prop.key, + buildStyle: createBuildStyle(prop.key, data.buildStyle, mode), + replaceValue: (newValue) => { + prop.value = newValue; + }, + }); + } else { + recurseObjectExpression({ + ...data, + node: prop, + parentNode: data.node.argument.right, + buildStyle: createBuildStyle(prop.key, data.buildStyle, mode), + }); + } + }); + appendPaletteModeStyles(data.parentNode, { + [mode]: data.node.argument.right, + }); + } + if (data.deleteSelf) { + data.deleteSelf(); + } else { + removeProperty(data.parentNode, data.node); + } + return; + } + + if (data.node.argument.right.type === 'ObjectExpression') { + recurseObjectExpression({ + ...data, + node: data.node.argument.right, + root: data.node.argument.right, + replaceRoot: (newRoot) => { + data.node.argument.right = newRoot; + }, + }); + } + wrapSxInArray( + j.logicalExpression( + data.node.argument.operator, + data.node.argument.left, + data.node.argument.right, + ), + ); + if (data.deleteSelf) { + data.deleteSelf(); + } else { + removeProperty(data.parentNode, data.node); + } + } + if (data.node.argument.type === 'ConditionalExpression') { + recurseObjectExpression({ + ...data, + node: data.node.argument, + parentNode: data.node, + }); + if (data.deleteSelf) { + data.deleteSelf(); + } else { + removeProperty(data.parentNode, data.node); + } + } + } + if (data.node.type === 'ConditionalExpression') { + if ( + data.node.test.type === 'BinaryExpression' || + data.node.test.type === 'UnaryExpression' || + data.node.test.type === 'Identifier' || + data.node.test.type === 'MemberExpression' + ) { + if ( + data.parentNode?.type === 'ObjectExpression' && + (data.node.test?.type === 'BinaryExpression' || data.node.test?.type === 'Identifier') + ) { + if ( + data.node.consequent.type !== 'ObjectExpression' && + data.node.alternate.type !== 'ObjectExpression' + ) { + if (isThemePaletteMode(data.node.test.left)) { + const consequentKey = getObjectKey(data.node.consequent); + if (consequentKey.type === 'Identifier' && consequentKey.name !== 'theme') { + const varName = getCssVarName(data.node.consequent); + cssVars.push([j.stringLiteral(varName), data.node.consequent]); + data.node.consequent = j.stringLiteral(`var(${varName})`); + } + const alternateKey = getObjectKey(data.node.alternate); + if (alternateKey.type === 'Identifier' && alternateKey.name !== 'theme') { + const varName = getCssVarName(data.node.alternate); + cssVars.push([j.stringLiteral(varName), data.node.alternate]); + data.node.alternate = j.stringLiteral(`var(${varName})`); + } + + if (data.modeStyles) { + if (!data.modeStyles[data.node.test.right.value]) { + data.modeStyles[data.node.test.right.value] = []; + } + data.modeStyles[data.node.test.right.value].push( + j.objectProperty(data.key, replaceUndefined(data.node.consequent)), + ); + } + data.replaceValue?.(replaceUndefined(data.node.alternate)); + + if (data.root.type === 'ObjectExpression') { + data.replaceRoot?.(buildArrowFunctionAST([j.identifier('theme')], data.root)); + } else if (data.root.type === 'ArrayExpression') { + data.root.elements.forEach((item, index) => { + if (item === data.node) { + data.root.elements[index] = buildArrowFunctionAST( + [j.identifier('theme')], + data.root, + ); + } + }); + } + } else { + wrapSxInArray( + j.conditionalExpression( + data.node.test, + data.buildStyle?.(replaceUndefined(data.node.consequent)), + data.buildStyle?.(replaceUndefined(data.node.alternate)), + ), + ); + if (data.deleteSelf) { + data.deleteSelf(); + } else { + removeProperty(data.parentNode, data.node); + } + } + } + } + } + } + if (data.node.type === 'TemplateLiteral') { + if (data.parentNode?.type === 'ObjectExpression') { + const modeStyles = {}; + data.node.expressions.forEach((expression, index) => { + if (expression.type === 'MemberExpression') { + const memberKey = getObjectKey(expression); + if (memberKey.type === 'Identifier' && memberKey.name !== 'theme') { + const varName = getCssVarName(expression); + cssVars.push([j.stringLiteral(varName), expression]); + data.node.expressions[index] = j.stringLiteral(`var(${varName})`); + } + } else { + recurseObjectExpression({ + ...data, + node: expression, + parentNode: data.parentNode, + buildStyle: createBuildStyle(data.key, data.buildStyle), + replaceValue: (newValue) => { + data.node.expressions[index] = newValue; + }, + modeStyles, + }); + } + }); + if (data.modeStyles) { + Object.entries(modeStyles).forEach(([mode, objectStyles]) => { + const clonedNode = { + ...data.node, + expressions: data.node.expressions.map((expression) => ({ ...expression })), + }; + clonedNode.expressions = objectStyles.map((item) => item.value); + + if (!data.modeStyles[mode]) { + data.modeStyles[mode] = []; + } + data.modeStyles[mode].push(j.objectProperty(data.key, clonedNode)); + }); + if (data.key) { + data.replaceValue?.(data.node); + } + } + } + } + } + }); + + const transformed = root.toSource(printOptions); + + if (shouldTransform) { + // recast adds extra newlines that we don't want, https://github.com/facebook/jscodeshift/issues/249 + // need to remove them manually + const lines = []; + let isInStyled = false; + let spaceMatch; + transformed.split('\n').forEach((line) => { + if (!isInStyled) { + lines.push(line); + } else if (line !== '') { + if (spaceMatch && line.match(/^\s+/)?.[0] === spaceMatch?.[0] && line.endsWith('}')) { + isInStyled = false; + spaceMatch = null; + } + lines.push(line); + } + if (line.includes('sx=')) { + isInStyled = true; + spaceMatch = line.match(/^\s+/); + } + }); + return lines.join('\n'); + } + + return transformed; +} diff --git a/packages/mui-codemod/src/v6.0.0/sx-prop/sx-v6.test.js b/packages/mui-codemod/src/v6.0.0/sx-prop/sx-v6.test.js new file mode 100644 index 00000000000000..69aa0b4d9332d3 --- /dev/null +++ b/packages/mui-codemod/src/v6.0.0/sx-prop/sx-v6.test.js @@ -0,0 +1,109 @@ +import path from 'path'; +import { expect } from 'chai'; +import { jscodeshift } from '../../../testUtils'; +import transform from './sx-v6'; +import readFile from '../../util/readFile'; + +function read(fileName) { + return readFile(path.join(__dirname, fileName)); +} + +describe('@mui/codemod', () => { + describe('v6.0.0', () => { + describe('basic sx-v6', () => { + it('transforms props as needed', () => { + const actual = transform( + { source: read('./test-cases/basic-sx.actual.js') }, + { jscodeshift }, + {}, + ); + + const expected = read('./test-cases/basic-sx.expected.js'); + expect(actual).to.equal(expected, 'The transformed version should be correct'); + }); + + it('should be idempotent', () => { + const actual = transform( + { source: read('./test-cases/basic-sx.expected.js') }, + { jscodeshift }, + {}, + ); + + const expected = read('./test-cases/basic-sx.expected.js'); + expect(actual).to.equal(expected, 'The transformed version should be correct'); + }); + }); + + describe('css vars sx-v6', () => { + it('transforms props as needed', () => { + const actual = transform( + { source: read('./test-cases/sx-css-vars.actual.js') }, + { jscodeshift }, + {}, + ); + + const expected = read('./test-cases/sx-css-vars.expected.js'); + expect(actual).to.equal(expected, 'The transformed version should be correct'); + }); + + it('should be idempotent', () => { + const actual = transform( + { source: read('./test-cases/sx-css-vars.expected.js') }, + { jscodeshift }, + {}, + ); + + const expected = read('./test-cases/sx-css-vars.expected.js'); + expect(actual).to.equal(expected, 'The transformed version should be correct'); + }); + }); + + describe('dynamic spread sx-v6', () => { + it('transforms props as needed', () => { + const actual = transform( + { source: read('./test-cases/sx-dynamic.actual.js') }, + { jscodeshift }, + {}, + ); + + const expected = read('./test-cases/sx-dynamic.expected.js'); + expect(actual).to.equal(expected, 'The transformed version should be correct'); + }); + + it('should be idempotent', () => { + const actual = transform( + { source: read('./test-cases/sx-dynamic.expected.js') }, + { jscodeshift }, + {}, + ); + + const expected = read('./test-cases/sx-dynamic.expected.js'); + expect(actual).to.equal(expected, 'The transformed version should be correct'); + }); + }); + + describe('dynamic conditional sx-v6', () => { + it('transforms props as needed', () => { + const actual = transform( + { source: read('./test-cases/sx-dynamic2.actual.js') }, + { jscodeshift }, + {}, + ); + + const expected = read('./test-cases/sx-dynamic2.expected.js'); + expect(actual).to.equal(expected, 'The transformed version should be correct'); + }); + + it('should be idempotent', () => { + const actual = transform( + { source: read('./test-cases/sx-dynamic2.expected.js') }, + { jscodeshift }, + {}, + ); + + const expected = read('./test-cases/sx-dynamic2.expected.js'); + expect(actual).to.equal(expected, 'The transformed version should be correct'); + }); + }); + }); +}); diff --git a/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/basic-sx.actual.js b/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/basic-sx.actual.js new file mode 100644 index 00000000000000..79f153de4a858a --- /dev/null +++ b/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/basic-sx.actual.js @@ -0,0 +1,40 @@ + ({ + display: 'flex', + alignItems: 'center', + justifyContent: 'space-between', + flexShrink: 0, + borderRadius: '999px', + bgcolor: theme.palette.mode === 'light' ? 'hsla(220, 60%, 99%, 0.6)' : 'hsla(220, 0%, 0%, 0.7)', + backdropFilter: 'blur(24px)', + maxHeight: 40, + border: '1px solid', + borderColor: 'divider', + boxShadow: + theme.palette.mode === 'light' + ? '0 1px 2px hsla(210, 0%, 0%, 0.05), 0 2px 12px hsla(210, 100%, 80%, 0.5)' + : '0 1px 2px hsla(210, 0%, 0%, 0.5), 0 2px 12px hsla(210, 100%, 25%, 0.3)', + })} +>; + + + theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[900], + flexGrow: 1, + height: '100vh', + overflow: 'auto', + }} +>; + + + `1px solid ${theme.palette.mode === 'light' ? 'grey.200' : 'grey.800'}`, + backgroundSize: 'cover', + backgroundPosition: 'center', + minHeight: 280, + }} +/>; diff --git a/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/basic-sx.expected.js b/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/basic-sx.expected.js new file mode 100644 index 00000000000000..37d9d40f3cea32 --- /dev/null +++ b/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/basic-sx.expected.js @@ -0,0 +1,46 @@ + ({ + display: 'flex', + alignItems: 'center', + justifyContent: 'space-between', + flexShrink: 0, + borderRadius: '999px', + bgcolor: 'hsla(220, 0%, 0%, 0.7)', + backdropFilter: 'blur(24px)', + maxHeight: 40, + border: '1px solid', + borderColor: 'divider', + boxShadow: + '0 1px 2px hsla(210, 0%, 0%, 0.5), 0 2px 12px hsla(210, 100%, 25%, 0.3)', + ...theme.applyStyles("light", { + bgcolor: 'hsla(220, 60%, 99%, 0.6)', + boxShadow: '0 1px 2px hsla(210, 0%, 0%, 0.05), 0 2px 12px hsla(210, 100%, 80%, 0.5)' + }) + })} +>; + + ({ + backgroundColor: theme.palette.grey[900], + flexGrow: 1, + height: '100vh', + overflow: 'auto', + ...theme.applyStyles("light", { + backgroundColor: theme.palette.grey[100] + }) + })} +>; + + ({ + borderBottom: `1px solid ${'grey.800'}`, + backgroundSize: 'cover', + backgroundPosition: 'center', + minHeight: 280, + ...theme.applyStyles("light", { + borderBottom: `1px solid ${'grey.200'}` + }) + })} +/>; diff --git a/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-css-vars.actual.js b/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-css-vars.actual.js new file mode 100644 index 00000000000000..b452e8f139288e --- /dev/null +++ b/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-css-vars.actual.js @@ -0,0 +1,54 @@ + + theme.palette.mode === 'light' + ? items[selectedItemIndex].imageLight + : items[selectedItemIndex].imageDark, + }} +/>; + + + theme.palette.mode === 'light' + ? items[selectedItemIndex].imageLight + : items[selectedItemIndex].imageDark, + }} +/>; + + + theme.palette.mode === 'light' + ? items[selectedItemIndex].imageLight + : items[selectedItemIndex].imageDark, + }} +/>; + + + theme.palette.mode === 'light' + ? items[selectedItemIndex].imageLight + : items[selectedItemIndex].imageDark, + }} +/>; + +; diff --git a/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-css-vars.expected.js b/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-css-vars.expected.js new file mode 100644 index 00000000000000..42a4309abdc52a --- /dev/null +++ b/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-css-vars.expected.js @@ -0,0 +1,69 @@ + ({ + backgroundImage: "var(--items-imageDark)", + ...theme.applyStyles("light", { + backgroundImage: "var(--items-imageLight)" + }) + })} + style={{ + "--items-imageLight": items[selectedItemIndex].imageLight, + "--items-imageDark": items[selectedItemIndex].imageDark + }} />; + + ({ + backgroundImage: "var(--items-imageDark)", + ...theme.applyStyles("light", { + backgroundImage: "var(--items-imageLight)" + }) + })} +/>; + + ({ + backgroundImage: "var(--items-imageDark)", + ...theme.applyStyles("light", { + backgroundImage: "var(--items-imageLight)" + }) + })} +/>; + + ({ + backgroundImage: "var(--items-imageDark)", + ...theme.applyStyles("light", { + backgroundImage: "var(--items-imageLight)" + }) + })} + style={{ + "--items-imageLight": items[selectedItemIndex].imageLight, + "--items-imageDark": items[selectedItemIndex].imageDark, + ...props.style + }} />; + +; diff --git a/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-dynamic.actual.js b/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-dynamic.actual.js new file mode 100644 index 00000000000000..4d016d93060ef7 --- /dev/null +++ b/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-dynamic.actual.js @@ -0,0 +1,102 @@ + + theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[900], + borderBottom: (theme) => + `1px solid ${theme.palette.mode === 'light' ? 'grey.200' : 'grey.800'}`, + }} +>; + + ({ + p: 2, + display: 'flex', + flexDirection: 'column', + gap: 4, + ...(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%))', + }), + })} +>; + + handleItemClick(index)} + sx={(theme) => ({ + p: 3, + height: 'fit-content', + width: '100%', + background: 'none', + ...(selectedItemIndex === index && { + backgroundColor: 'action.selected', + borderColor: theme.palette.mode === 'light' ? 'primary.light' : 'primary.dark', + }), + '&:hover': { + background: + theme.palette.mode === 'light' + ? 'linear-gradient(to bottom right, hsla(210, 100%, 97%, 0.5) 25%, hsla(210, 100%, 90%, 0.3) 100%)' + : 'linear-gradient(to right bottom, hsla(210, 100%, 12%, 0.2) 25%, hsla(210, 100%, 16%, 0.2) 100%)', + borderColor: theme.palette.mode === 'light' ? 'primary.light' : 'primary.dark', + boxShadow: + theme.palette.mode === 'light' + ? '0px 2px 8px hsla(0, 0%, 0%, 0.1)' + : '0px 1px 8px hsla(210, 100%, 25%, 0.5) ', + }, + })} +>; + + ({ + color: theme.palette.mode === 'light' ? 'grey.400' : 'grey.600', + ...(paymentType === 'creditCard' && { + color: 'primary.main', + }), + })} +/>; + + + +; + +
    ({ + color: theme.palette.mode === 'light' ? 'grey.400' : 'grey.600', + ...(paymentType === 'creditCard' && { + color: 'primary.main', + }), + }), + { + marginRight: '36px', + ...(open && { display: 'none' }), + }, + ]} +/>; diff --git a/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-dynamic.expected.js b/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-dynamic.expected.js new file mode 100644 index 00000000000000..5846dd5a445e31 --- /dev/null +++ b/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-dynamic.expected.js @@ -0,0 +1,105 @@ + ({ + mb: 1, + display: 'flex', + justifyContent: 'space-between', + alignItems: 'center', + gap: 2, + backgroundColor: theme.palette.grey[900], + borderBottom: `1px solid ${'grey.800'}`, + ...theme.applyStyles("light", { + backgroundColor: theme.palette.grey[100], + borderBottom: `1px solid ${'grey.200'}` + }) + })} +>; + + ({ + p: 2, + display: 'flex', + flexDirection: 'column', + gap: 4 + }), tier.title === 'Professional' && (theme => ({ + border: 'none', + boxShadow: + `0 8px 12px hsla(0, 0%, 0%, 0.8)`, + background: 'radial-gradient(circle at 50% 0%, hsl(210, 98%, 35%), hsl(210, 100%, 16%))', + ...theme.applyStyles("light", { + boxShadow: `0 8px 12px hsla(210, 98%, 42%, 0.2)` + }) + }))]} +>; + + handleItemClick(index)} + sx={[(theme) => ({ + p: 3, + height: 'fit-content', + width: '100%', + background: 'none', + '&:hover': { + background: + 'linear-gradient(to right bottom, hsla(210, 100%, 12%, 0.2) 25%, hsla(210, 100%, 16%, 0.2) 100%)', + borderColor: 'primary.dark', + boxShadow: + '0px 1px 8px hsla(210, 100%, 25%, 0.5) ', + ...theme.applyStyles("light", { + background: 'linear-gradient(to bottom right, hsla(210, 100%, 97%, 0.5) 25%, hsla(210, 100%, 90%, 0.3) 100%)', + borderColor: 'primary.light', + boxShadow: '0px 2px 8px hsla(0, 0%, 0%, 0.1)' + }) + } + }), selectedItemIndex === index && (theme => ({ + backgroundColor: 'action.selected', + borderColor: 'primary.dark', + ...theme.applyStyles("light", { + borderColor: 'primary.light' + }) + }))]} +>; + + ({ + color: 'grey.600', + ...theme.applyStyles("light", { + color: 'grey.400' + }), + }), paymentType === 'creditCard' && { + color: 'primary.main', + }]} +/>; + + + +; + +
    ({ + backgroundColor: 'action.selected', + borderColor: 'primary.dark', + ...theme.applyStyles("light", { + borderColor: 'primary.light' + }) + })), (theme) => ({ + color: 'grey.600', + ...theme.applyStyles("light", { + color: 'grey.400' + }), + }), paymentType === 'creditCard' && { + color: 'primary.main', + }, { + marginRight: '36px' + }, open && { display: 'none' }]} +/>; diff --git a/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-dynamic2.actual.js b/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-dynamic2.actual.js new file mode 100644 index 00000000000000..fc585392630ee7 --- /dev/null +++ b/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-dynamic2.actual.js @@ -0,0 +1,31 @@ +; + +; + +; diff --git a/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-dynamic2.expected.js b/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-dynamic2.expected.js new file mode 100644 index 00000000000000..6a237cbb33f7ed --- /dev/null +++ b/packages/mui-codemod/src/v6.0.0/sx-prop/test-cases/sx-dynamic2.expected.js @@ -0,0 +1,50 @@ +; + +; + +; diff --git a/packages/mui-codemod/src/v6.0.0/system-props/index.js b/packages/mui-codemod/src/v6.0.0/system-props/index.js new file mode 100644 index 00000000000000..d1fe754e407b16 --- /dev/null +++ b/packages/mui-codemod/src/v6.0.0/system-props/index.js @@ -0,0 +1 @@ +export { default } from './removeSystemProps'; diff --git a/packages/mui-codemod/src/v6.0.0/system-props/removeSystemProps.js b/packages/mui-codemod/src/v6.0.0/system-props/removeSystemProps.js new file mode 100644 index 00000000000000..421fb32f5c9b0e --- /dev/null +++ b/packages/mui-codemod/src/v6.0.0/system-props/removeSystemProps.js @@ -0,0 +1,291 @@ +// from `packages/mui-system/src/styleFunctionSx/defaultSxConfig.js` +const defaultSxConfig = { + // borders + border: {}, + borderTop: {}, + borderRight: {}, + borderBottom: {}, + borderLeft: {}, + borderColor: {}, + borderTopColor: {}, + borderRightColor: {}, + borderBottomColor: {}, + borderLeftColor: {}, + outline: {}, + outlineColor: {}, + borderRadius: {}, + color: {}, + bgcolor: {}, + backgroundColor: {}, + p: {}, + pt: {}, + pr: {}, + pb: {}, + pl: {}, + px: {}, + py: {}, + padding: {}, + paddingTop: {}, + paddingRight: {}, + paddingBottom: {}, + paddingLeft: {}, + paddingX: {}, + paddingY: {}, + paddingInline: {}, + paddingInlineStart: {}, + paddingInlineEnd: {}, + paddingBlock: {}, + paddingBlockStart: {}, + paddingBlockEnd: {}, + + m: {}, + mt: {}, + mr: {}, + mb: {}, + ml: {}, + mx: {}, + my: {}, + margin: {}, + marginTop: {}, + marginRight: {}, + marginBottom: {}, + marginLeft: {}, + marginX: {}, + marginY: {}, + marginInline: {}, + marginInlineStart: {}, + marginInlineEnd: {}, + marginBlock: {}, + marginBlockStart: {}, + marginBlockEnd: {}, + + // display + displayPrint: {}, + display: {}, + overflow: {}, + textOverflow: {}, + visibility: {}, + whiteSpace: {}, + + // flexbox + flexBasis: {}, + flexDirection: {}, + flexWrap: {}, + justifyContent: {}, + alignItems: {}, + alignContent: {}, + order: {}, + flex: {}, + flexGrow: {}, + flexShrink: {}, + alignSelf: {}, + justifyItems: {}, + justifySelf: {}, + + // grid + gap: {}, + rowGap: {}, + columnGap: {}, + gridColumn: {}, + gridRow: {}, + gridAutoFlow: {}, + gridAutoColumns: {}, + gridAutoRows: {}, + gridTemplateColumns: {}, + gridTemplateRows: {}, + gridTemplateAreas: {}, + gridArea: {}, + + // positions + position: {}, + zIndex: {}, + top: {}, + right: {}, + bottom: {}, + left: {}, + + // shadows + boxShadow: {}, + + // sizing + width: {}, + maxWidth: {}, + minWidth: {}, + height: {}, + maxHeight: {}, + minHeight: {}, + boxSizing: {}, + + // typography + font: {}, + fontFamily: {}, + fontSize: {}, + fontStyle: {}, + fontWeight: {}, + letterSpacing: {}, + textTransform: {}, + lineHeight: {}, + textAlign: {}, + typography: {}, +}; +const systemProps = Object.keys(defaultSxConfig); +const components = ['Box', 'Stack', 'Typography', 'Link', 'Grid']; + +/** + * @param {import('jscodeshift').FileInfo} file + * @param {import('jscodeshift').API} api + */ +export default function removeSystemProps(file, api, options) { + if (file.path?.endsWith('.json') || file.path?.endsWith('.d.ts')) { + return file.source; + } + const j = api.jscodeshift; + const root = j(file.source); + const printOptions = options.printOptions; + + const deprecatedElements = []; + const customReplacement = { + Typography: { + matcher: (key, val) => + key !== 'color' || + (val.value?.includes('.') && val.value !== 'inherit') || + val.value === 'divider', + }, + Link: { + matcher: (key) => key !== 'color', + }, + }; + const elementReplacement = {}; + + root + .find(j.ImportDeclaration, (decl) => decl.source.value.includes('@mui')) + .forEach((decl) => { + decl.node.specifiers.forEach((spec) => { + if (spec.type === 'ImportSpecifier') { + if (components.includes(spec.imported.name)) { + deprecatedElements.push(spec.local.name); + } + } + if (spec.type === 'ImportDefaultSpecifier') { + const name = decl.node.source.value.split('/').pop(); + if (components.includes(name)) { + deprecatedElements.push(spec.local.name); + if (customReplacement[name]) { + elementReplacement[spec.local.name] = customReplacement[name]; + } + } + } + }); + }); + + root + .find(j.JSXElement, { + openingElement: { + name: { + name: (name) => { + return deprecatedElements.includes(name); + }, + }, + }, + }) + .forEach((el) => { + const sx = j.objectExpression([]); + const elementName = el.value?.openingElement?.name?.name; + + const sxNodes = j(el) + .find(j.JSXAttribute) + .filter((path) => path.parent.parent.node === el.node && path.node.name.name === 'sx'); + + const sxNodesArray = sxNodes.nodes() || []; + const existingSxValue = sxNodesArray[0]?.value?.expression; + + let spreadElement = null; + el.node.openingElement.attributes.forEach((attr) => { + if (attr.type === 'JSXSpreadAttribute') { + spreadElement = attr; + } + }); + + const attrToPrune = ['sx']; + el.node.openingElement.attributes.forEach((attr) => { + if ( + attr.type === 'JSXSpreadAttribute' || + !attr.value || + !systemProps.includes(attr?.name?.name) + ) { + return; + } + const key = attr?.name?.name; + const literal = attr?.value; + const val = literal.type === 'JSXExpressionContainer' ? literal.expression : literal; + const shouldPrune = + !elementReplacement[elementName] || elementReplacement[elementName].matcher(key, val); + if (key && val) { + if (shouldPrune) { + sx.properties.push(j.property('init', j.identifier(key), val)); + attrToPrune.push(key); + } + } + }); + + if (sx.properties.length) { + el.node.openingElement.attributes = el.node.openingElement.attributes.filter( + (attr) => attr.type !== 'JSXAttribute' || !attrToPrune.includes(attr?.name?.name), + ); + + let finalSx; + if (!existingSxValue) { + finalSx = sx; + } else if (existingSxValue?.type === 'ObjectExpression') { + sx.properties.push(...existingSxValue.properties); + finalSx = sx; + } else if (existingSxValue?.type === 'ArrayExpression') { + existingSxValue.elements = [sx, ...existingSxValue.elements]; + finalSx = existingSxValue; + } else { + finalSx = j.arrayExpression([ + sx, + existingSxValue.type === 'Identifier' + ? j.spreadElement( + j.conditionalExpression( + j.callExpression( + j.memberExpression(j.identifier('Array'), j.identifier('isArray')), + [existingSxValue], + ), + existingSxValue, + j.arrayExpression([existingSxValue]), + ), + ) + : existingSxValue, + ]); + } + + if (spreadElement && spreadElement.argument.type === 'Identifier') { + if (finalSx.type === 'ObjectExpression') { + const propSx = j.memberExpression(spreadElement.argument, j.identifier('sx')); + finalSx = j.arrayExpression([ + finalSx, + j.spreadElement( + j.conditionalExpression( + j.callExpression( + j.memberExpression(j.identifier('Array'), j.identifier('isArray')), + [propSx], + ), + propSx, + j.arrayExpression([propSx]), + ), + ), + ]); + } else if (finalSx.type === 'ArrayExpression') { + finalSx.elements.push(j.memberExpression(spreadElement.argument, j.identifier('sx'))); + } + } + + el.node.openingElement.attributes.push( + j.jsxAttribute(j.jsxIdentifier('sx'), j.jsxExpressionContainer(finalSx)), + ); + } + }); + + return root.toSource(printOptions); +} diff --git a/packages/mui-codemod/src/v6.0.0/system-props/removeSystemProps.test.js b/packages/mui-codemod/src/v6.0.0/system-props/removeSystemProps.test.js new file mode 100644 index 00000000000000..d2ff1476234f11 --- /dev/null +++ b/packages/mui-codemod/src/v6.0.0/system-props/removeSystemProps.test.js @@ -0,0 +1,35 @@ +import path from 'path'; +import { expect } from 'chai'; +import { jscodeshift } from '../../../testUtils'; +import transform from './removeSystemProps'; +import readFile from '../../util/readFile'; + +function read(fileName) { + return readFile(path.join(__dirname, fileName)); +} + +describe('@mui/codemod', () => { + describe('v6.0.0 - removeSystemProps', () => { + it('transforms props as needed', () => { + const actual = transform( + { source: read('./test-cases/system-props.actual.js') }, + { jscodeshift }, + {}, + ); + + const expected = read('./test-cases/system-props.expected.js'); + expect(actual).to.equal(expected, 'The transformed version should be correct'); + }); + + it('should be idempotent', () => { + const actual = transform( + { source: read('./test-cases/system-props.expected.js') }, + { jscodeshift }, + {}, + ); + + const expected = read('./test-cases/system-props.expected.js'); + expect(actual).to.equal(expected, 'The transformed version should be correct'); + }); + }); +}); diff --git a/packages/mui-codemod/src/v6.0.0/system-props/test-cases/system-props.actual.js b/packages/mui-codemod/src/v6.0.0/system-props/test-cases/system-props.actual.js new file mode 100644 index 00000000000000..71163fe44f369d --- /dev/null +++ b/packages/mui-codemod/src/v6.0.0/system-props/test-cases/system-props.actual.js @@ -0,0 +1,42 @@ +import { Box as Boxxx, Grid as Griddd } from '@mui/material'; +import Typographyyy from '@mui/material/Typography'; +import Stackkk from '@mui/material/Stack'; + +; +; + +; + +const sx = { display: 'flex' }; +const ml = 2; +; +; +; + + $ + + } + sx={{ alignItems: 'flex-start' }} +> + 25 +; +function Copyright(props) { + return ( + + {'Copyright © '} + + Your Website + {' '} + {new Date().getFullYear()} + {'.'} + + ); +} + +; + +; diff --git a/packages/mui-codemod/src/v6.0.0/system-props/test-cases/system-props.expected.js b/packages/mui-codemod/src/v6.0.0/system-props/test-cases/system-props.expected.js new file mode 100644 index 00000000000000..e137ecc15e479b --- /dev/null +++ b/packages/mui-codemod/src/v6.0.0/system-props/test-cases/system-props.expected.js @@ -0,0 +1,80 @@ +import { Box as Boxxx, Grid as Griddd } from '@mui/material'; +import Typographyyy from '@mui/material/Typography'; +import Stackkk from '@mui/material/Stack'; + +; +; + +; + +const sx = { display: 'flex' }; +const ml = 2; +; +; +; + + $ + + } + sx={{ + fontSize: "xl4", + lineHeight: 1, + alignItems: 'flex-start' + }}> + 25 +; +function Copyright(props) { + return ( + ( + {'Copyright © '} + + Your Website + {' '} + {new Date().getFullYear()} + {'.'} + ) + ); +} + +; + +; diff --git a/packages/mui-codemod/src/v6.0.0/theme-v6/theme-v6.js b/packages/mui-codemod/src/v6.0.0/theme-v6/theme-v6.js index 00b08bad9afdd9..07d21bc7f9eec6 100644 --- a/packages/mui-codemod/src/v6.0.0/theme-v6/theme-v6.js +++ b/packages/mui-codemod/src/v6.0.0/theme-v6/theme-v6.js @@ -5,7 +5,7 @@ import migrateToVariants from '../../util/migrateToVariants'; * @param {import('jscodeshift').FileInfo} file * @param {import('jscodeshift').API} api */ -export default function styledV6(file, api, options) { +export default function themeV6(file, api, options) { const j = api.jscodeshift; const root = j(file.source); const printOptions = options.printOptions; diff --git a/packages/mui-docs/package.json b/packages/mui-docs/package.json index 08f7ae0688f2c2..6c5bc63b6d26b2 100644 --- a/packages/mui-docs/package.json +++ b/packages/mui-docs/package.json @@ -34,7 +34,7 @@ "test": "exit 0" }, "dependencies": { - "@babel/runtime": "^7.24.5", + "@babel/runtime": "^7.24.6", "@mui/internal-markdown": "workspace:^", "clipboard-copy": "^4.0.1", "clsx": "^2.1.1", diff --git a/packages/mui-docs/src/branding/brandingTheme.ts b/packages/mui-docs/src/branding/brandingTheme.ts index 9ef9e9c47a1f82..02ae63cca16861 100644 --- a/packages/mui-docs/src/branding/brandingTheme.ts +++ b/packages/mui-docs/src/branding/brandingTheme.ts @@ -419,30 +419,89 @@ export function getThemedComponents(): ThemeOptions { MuiAlert: { styleOverrides: { root: { - padding: '12px 16px', + padding: '16px', + gap: '12px', + fontSize: '1rem', + '& * ul': { paddingLeft: '24px !important', marginBottom: '0 !important' }, // !important is used here to override the anchor tag color coming from MarkdownElement + '& .MuiAlert-icon': { + margin: 0, + marginTop: '2px', + padding: 0, + }, + '& .MuiAlert-message': { padding: 0 }, + }, + icon: { + paddingTop: 10, + paddingBottom: 0, }, standardWarning: ({ theme }) => [ + // same styles from the MarkdownElement callout { backgroundColor: alpha(theme.palette.warning[50], 0.5), color: (theme.vars || theme).palette.grey[900], border: '1px solid', - borderColor: alpha(theme.palette.warning[600], 0.3), + borderColor: alpha(theme.palette.warning[700], 0.15), '& .MuiAlert-icon': { - color: (theme.vars || theme).palette.warning[700], + color: (theme.vars || theme).palette.warning[600], + }, + '& * a': { + // !important is used here to override the anchor tag color coming from MarkdownElement + color: `${(theme.vars || theme).palette.warning[900]} !important`, + textDecorationColor: `${alpha(theme.palette.warning.main, 0.4)} !important`, + '&:hover': { + textDecorationColor: `${(theme.vars || theme).palette.warning[900]} !important`, + }, }, }, theme.applyDarkStyles({ - backgroundColor: alpha(theme.palette.warning[700], 0.2), + backgroundColor: alpha(theme.palette.warning[700], 0.12), color: (theme.vars || theme).palette.warning[50], '& .MuiAlert-icon': { - color: (theme.vars || theme).palette.warning[200], + color: (theme.vars || theme).palette.warning[400], + }, + '& * a': { + color: `${(theme.vars || theme).palette.warning[100]} !important`, + textDecorationColor: `${alpha(theme.palette.warning[600], 0.4)} !important`, + '&:hover': { + textDecorationColor: `${(theme.vars || theme).palette.warning[600]} !important`, + }, + }, + }), + ], + standardSuccess: ({ theme }) => [ + // same styles from the MarkdownElement callout + { + backgroundColor: alpha(theme.palette.success[50], 0.5), + color: (theme.vars || theme).palette.success[900], + border: `1px solid ${(theme.vars || theme).palette.success[100]}`, + '& .MuiAlert-icon': { + color: (theme.vars || theme).palette.success[600], + }, + '& * a': { + // !important is used here to override the anchor tag color coming from MarkdownElement + color: `${(theme.vars || theme).palette.success[900]} !important`, + textDecorationColor: `${alpha(theme.palette.success.main, 0.4)} !important`, + '&:hover': { + textDecorationColor: `${(theme.vars || theme).palette.success[900]} !important`, + }, + }, + }, + theme.applyDarkStyles({ + backgroundColor: alpha(theme.palette.success[700], 0.12), + color: (theme.vars || theme).palette.success[50], + borderColor: alpha(theme.palette.success[400], 0.1), + '& .MuiAlert-icon': { + color: (theme.vars || theme).palette.success[500], + }, + '& * a': { + color: `${(theme.vars || theme).palette.success[100]} !important`, + textDecorationColor: `${alpha(theme.palette.success[600], 0.4)} !important`, + '&:hover': { + textDecorationColor: `${(theme.vars || theme).palette.success[600]} !important`, + }, }, }), ], - icon: { - paddingTop: 12, - paddingBottom: 0, - }, }, }, MuiButtonBase: { @@ -509,7 +568,7 @@ export function getThemedComponents(): ThemeOptions { color: (theme.vars || theme).palette.text.primary, backgroundColor: alpha(theme.palette.primaryDark[50], 0.1), borderColor: (theme.vars || theme).palette.primaryDark[100], - boxShadow: `${alpha(theme.palette.grey[200], 0.5)} 0 1px 0 inset, ${alpha(theme.palette.grey[100], 0.4)} 0 -1px 0 inset, ${alpha(theme.palette.grey[200], 0.5)} 0 1px 2px 0`, + boxShadow: `#FFF 0 1px 0 inset, ${alpha(theme.palette.grey[200], 0.4)} 0 -1px 0 inset, ${alpha(theme.palette.grey[200], 0.5)} 0 1px 2px 0`, '&:hover': { backgroundColor: (theme.vars || theme).palette.grey[50], }, @@ -801,6 +860,14 @@ export function getThemedComponents(): ThemeOptions { border: '1px solid', backgroundColor: (theme.vars || theme).palette.background.paper, borderColor: (theme.vars || theme).palette.grey[200], + '& .MuiMenu-list': { + display: 'flex', + flexDirection: 'column', + gap: '2px', + '& .MuiDivider-root': { + margin: '4px -8px 4px -8px', + }, + }, '& .MuiMenuItem-root': { padding: '6px 12px', borderRadius: '6px', @@ -849,10 +916,7 @@ export function getThemedComponents(): ThemeOptions { MuiDivider: { styleOverrides: { root: ({ theme }) => ({ - borderColor: (theme.vars || theme).palette.grey[100], - ...theme.applyDarkStyles({ - borderColor: alpha(theme.palette.primaryDark[500], 0.3), - }), + borderColor: (theme.vars || theme).palette.divider, }), }, }, diff --git a/packages/mui-docs/src/translations/translations.json b/packages/mui-docs/src/translations/translations.json index fa24d3122de6ee..7ce0de59c20934 100644 --- a/packages/mui-docs/src/translations/translations.json +++ b/packages/mui-docs/src/translations/translations.json @@ -15,6 +15,7 @@ "defaultComponent": "Default component", "defaultValue": "Default value", "defaultHTMLTag": "Default HTML tag", + "defaultDeprecationMessage": "This API is deprecated.", "demos": "Demos", "deprecated": "Deprecated", "description": "Description", diff --git a/packages/mui-icons-material/package.json b/packages/mui-icons-material/package.json index 3484b116829614..3c335508e08a15 100644 --- a/packages/mui-icons-material/package.json +++ b/packages/mui-icons-material/package.json @@ -45,7 +45,7 @@ "typescript": "tsc -p tsconfig.json" }, "dependencies": { - "@babel/runtime": "^7.24.5" + "@babel/runtime": "^7.24.6" }, "devDependencies": { "@mui/icons-material": "workspace:*", diff --git a/packages/mui-joy/package.json b/packages/mui-joy/package.json index 6603963ce3356c..19c1e08e8ac260 100644 --- a/packages/mui-joy/package.json +++ b/packages/mui-joy/package.json @@ -38,7 +38,7 @@ "typescript:module-augmentation": "node scripts/testModuleAugmentation.js" }, "dependencies": { - "@babel/runtime": "^7.24.5", + "@babel/runtime": "^7.24.6", "@mui/base": "workspace:*", "@mui/core-downloads-tracker": "workspace:^", "@mui/system": "workspace:^", diff --git a/packages/mui-joy/src/Autocomplete/Autocomplete.tsx b/packages/mui-joy/src/Autocomplete/Autocomplete.tsx index dbbb1631332c72..21879755e722cc 100644 --- a/packages/mui-joy/src/Autocomplete/Autocomplete.tsx +++ b/packages/mui-joy/src/Autocomplete/Autocomplete.tsx @@ -735,7 +735,7 @@ interface AutocompleteComponent { FreeSolo extends boolean | undefined = undefined, >( props: AutocompleteProps, - ): JSX.Element; + ): React.JSX.Element; propTypes?: any; } diff --git a/packages/mui-joy/src/Breadcrumbs/Breadcrumbs.tsx b/packages/mui-joy/src/Breadcrumbs/Breadcrumbs.tsx index 6da089a2c1d580..10a278263f5500 100644 --- a/packages/mui-joy/src/Breadcrumbs/Breadcrumbs.tsx +++ b/packages/mui-joy/src/Breadcrumbs/Breadcrumbs.tsx @@ -154,7 +154,7 @@ const Breadcrumbs = React.forwardRef(function Breadcrumbs(inProps, ref) { const allItems = ( React.Children.toArray(children).filter((child) => { return React.isValidElement(child); - }) as Array + }) as Array> ).map((child, index) => ( {isMuiElement(child, ['Typography']) diff --git a/packages/mui-joy/src/Button/Button.spec.tsx b/packages/mui-joy/src/Button/Button.spec.tsx index 0eb33a5f726351..c24940a6880324 100644 --- a/packages/mui-joy/src/Button/Button.spec.tsx +++ b/packages/mui-joy/src/Button/Button.spec.tsx @@ -47,7 +47,7 @@ function CustomLink({ children, to, ...props -}: React.PropsWithChildren<{ to: string } & Omit>) { +}: React.PropsWithChildren<{ to: string } & Omit>) { return ( {children} diff --git a/packages/mui-joy/src/Button/ButtonProps.ts b/packages/mui-joy/src/Button/ButtonProps.ts index 6cb4ab2d12c8df..5c4a676bf0d0b5 100644 --- a/packages/mui-joy/src/Button/ButtonProps.ts +++ b/packages/mui-joy/src/Button/ButtonProps.ts @@ -147,5 +147,5 @@ export interface ButtonOwnerState extends ApplyColorInversion { export type ExtendButton = (( props: OverrideProps, 'a'>, -) => JSX.Element) & +) => React.JSX.Element) & OverridableComponent>; diff --git a/packages/mui-joy/src/IconButton/IconButtonProps.ts b/packages/mui-joy/src/IconButton/IconButtonProps.ts index 69479718836f3d..573fdc45783f50 100644 --- a/packages/mui-joy/src/IconButton/IconButtonProps.ts +++ b/packages/mui-joy/src/IconButton/IconButtonProps.ts @@ -120,5 +120,5 @@ export interface IconButtonOwnerState extends ApplyColorInversion = (( props: OverrideProps, 'a'>, -) => JSX.Element) & +) => React.JSX.Element) & OverridableComponent>; diff --git a/packages/mui-joy/src/Link/Link.tsx b/packages/mui-joy/src/Link/Link.tsx index 378a91b8d2f142..bac2fbe4f315bc 100644 --- a/packages/mui-joy/src/Link/Link.tsx +++ b/packages/mui-joy/src/Link/Link.tsx @@ -292,8 +292,8 @@ const Link = React.forwardRef(function Link(inProps, ref) { )} {isMuiElement(children, ['Skeleton']) - ? React.cloneElement(children as React.ReactElement, { - variant: (children as React.ReactElement).props.variant || 'inline', + ? React.cloneElement(children as React.ReactElement, { + variant: (children as React.ReactElement).props.variant || 'inline', }) : children} {endDecorator && {endDecorator}} diff --git a/packages/mui-joy/src/ListItemButton/ListItemButtonProps.ts b/packages/mui-joy/src/ListItemButton/ListItemButtonProps.ts index 54402f51c8991d..4fe2151bff8fcd 100644 --- a/packages/mui-joy/src/ListItemButton/ListItemButtonProps.ts +++ b/packages/mui-joy/src/ListItemButton/ListItemButtonProps.ts @@ -123,5 +123,5 @@ export interface ListItemButtonOwnerState extends ApplyColorInversion = (( props: OverrideProps, 'a'>, -) => JSX.Element) & +) => React.JSX.Element) & OverridableComponent>; diff --git a/packages/mui-joy/src/MenuItem/MenuItem.test.tsx b/packages/mui-joy/src/MenuItem/MenuItem.test.tsx index 7492c1e39340e3..27956ec5ab260f 100644 --- a/packages/mui-joy/src/MenuItem/MenuItem.test.tsx +++ b/packages/mui-joy/src/MenuItem/MenuItem.test.tsx @@ -26,7 +26,7 @@ function Wrapper({ children }: { children: React.ReactNode }) { describe('Joy ', () => { const { render: baseRender } = createRenderer(); - const render = (element: JSX.Element, options = {}) => + const render = (element: React.JSX.Element, options = {}) => baseRender(element, { wrapper: Wrapper as React.JSXElementConstructor<{ children?: React.ReactNode }>, ...options, diff --git a/packages/mui-joy/src/MenuItem/MenuItemProps.ts b/packages/mui-joy/src/MenuItem/MenuItemProps.ts index d67ec37029a28a..d87650a1bf351c 100644 --- a/packages/mui-joy/src/MenuItem/MenuItemProps.ts +++ b/packages/mui-joy/src/MenuItem/MenuItemProps.ts @@ -50,5 +50,5 @@ export interface MenuItemOwnerState extends ApplyColorInversion { export type ExtendMenuItem = (( props: OverrideProps, 'a'>, -) => JSX.Element) & +) => React.JSX.Element) & OverridableComponent>; diff --git a/packages/mui-joy/src/Option/OptionProps.ts b/packages/mui-joy/src/Option/OptionProps.ts index e13575dfa2bcd3..6466898f1f634a 100644 --- a/packages/mui-joy/src/Option/OptionProps.ts +++ b/packages/mui-joy/src/Option/OptionProps.ts @@ -48,7 +48,7 @@ export interface OptionTypeMap

    { * A text representation of the option's content. * Used for keyboard text navigation matching. */ - label?: string | React.ReactElement; + label?: string | React.ReactElement; /** * The [global variant](https://mui.com/joy-ui/main-features/global-variants/) to use. * @default 'plain' @@ -100,5 +100,5 @@ export interface OptionOwnerState extends ApplyColorInversion = (( props: OverrideProps, 'a'>, -) => JSX.Element) & +) => React.JSX.Element) & OverridableComponent>; diff --git a/packages/mui-joy/src/Select/Select.tsx b/packages/mui-joy/src/Select/Select.tsx index 017fd87c2c348e..5a4db947b53849 100644 --- a/packages/mui-joy/src/Select/Select.tsx +++ b/packages/mui-joy/src/Select/Select.tsx @@ -626,12 +626,12 @@ interface SelectComponent { component: C; multiple?: Multiple; } & OverrideProps, C>, - ): JSX.Element | null; + ): React.JSX.Element | null; ( props: { multiple?: Multiple; } & DefaultComponentProps>, - ): JSX.Element | null; + ): React.JSX.Element | null; propTypes?: any; } diff --git a/packages/mui-joy/src/Snackbar/Snackbar.test.tsx b/packages/mui-joy/src/Snackbar/Snackbar.test.tsx index e0041cbe6e5ab1..2d9fdc6c2173a3 100644 --- a/packages/mui-joy/src/Snackbar/Snackbar.test.tsx +++ b/packages/mui-joy/src/Snackbar/Snackbar.test.tsx @@ -19,7 +19,7 @@ describe('Joy ', () => { * We have to defer the effect manually like `useEffect` would so we have to flush the effect manually instead of relying on `act()`. * React bug: https://github.com/facebook/react/issues/20074 */ - function render(...args: [React.ReactElement]) { + function render(...args: [React.ReactElement]) { const result = clientRender(...args); clock.tick(0); return result; diff --git a/packages/mui-joy/src/ToggleButtonGroup/ToggleButtonGroup.tsx b/packages/mui-joy/src/ToggleButtonGroup/ToggleButtonGroup.tsx index 54564bcc9c78b2..85282d67ef56aa 100644 --- a/packages/mui-joy/src/ToggleButtonGroup/ToggleButtonGroup.tsx +++ b/packages/mui-joy/src/ToggleButtonGroup/ToggleButtonGroup.tsx @@ -193,10 +193,10 @@ interface ToggleButtonGroupComponent { */ component: C; } & OverrideProps, C>, - ): JSX.Element | null; + ): React.JSX.Element | null; ( props: DefaultComponentProps>, - ): JSX.Element | null; + ): React.JSX.Element | null; propTypes?: any; } diff --git a/packages/mui-joy/src/Tooltip/TooltipProps.ts b/packages/mui-joy/src/Tooltip/TooltipProps.ts index bd01a316186c3c..f76a50e775fd86 100644 --- a/packages/mui-joy/src/Tooltip/TooltipProps.ts +++ b/packages/mui-joy/src/Tooltip/TooltipProps.ts @@ -47,7 +47,7 @@ export interface TooltipTypeMap

    { /** * Tooltip reference element. */ - children: React.ReactElement; + children: React.ReactElement; /** * The color of the component. It supports those theme colors that make sense for this component. * @default 'neutral' diff --git a/packages/mui-joy/src/Typography/Typography.spec.tsx b/packages/mui-joy/src/Typography/Typography.spec.tsx index 87059cd77ed56c..c85d02d5e2ebc2 100644 --- a/packages/mui-joy/src/Typography/Typography.spec.tsx +++ b/packages/mui-joy/src/Typography/Typography.spec.tsx @@ -6,7 +6,7 @@ import Typography, { TypographyOwnerState } from '@mui/joy/Typography'; Text ; -function Link(props: JSX.IntrinsicElements['a']) { +function Link(props: React.JSX.IntrinsicElements['a']) { return ; } diff --git a/packages/mui-joy/src/Typography/Typography.tsx b/packages/mui-joy/src/Typography/Typography.tsx index e77423e8c6400e..dd520cde4d4d3b 100644 --- a/packages/mui-joy/src/Typography/Typography.tsx +++ b/packages/mui-joy/src/Typography/Typography.tsx @@ -250,8 +250,8 @@ const Typography = React.forwardRef(function Typography(inProps, ref) { )} {hasSkeleton - ? React.cloneElement(children as React.ReactElement, { - variant: (children as React.ReactElement).props.variant || 'inline', + ? React.cloneElement(children as React.ReactElement, { + variant: (children as React.ReactElement).props.variant || 'inline', }) : children} {endDecorator && {endDecorator}} diff --git a/packages/mui-joy/test/describeConformance.ts b/packages/mui-joy/test/describeConformance.ts index f82c1e1e0215b7..ade3a04028c76a 100644 --- a/packages/mui-joy/test/describeConformance.ts +++ b/packages/mui-joy/test/describeConformance.ts @@ -6,7 +6,7 @@ import { ThemeProvider } from '@mui/joy/styles'; import { createTheme } from '@mui/system'; export default function describeConformance( - minimalElement: React.ReactElement, + minimalElement: React.ReactElement, getOptions: () => ConformanceOptions, ) { function getOptionsWithDefaults() { diff --git a/packages/mui-lab/package.json b/packages/mui-lab/package.json index 9f14cb509ba02d..2e026b9228f721 100644 --- a/packages/mui-lab/package.json +++ b/packages/mui-lab/package.json @@ -40,7 +40,7 @@ "typescript": "tsc -p tsconfig.json" }, "dependencies": { - "@babel/runtime": "^7.24.5", + "@babel/runtime": "^7.24.6", "@mui/base": "workspace:*", "@mui/system": "workspace:^", "@mui/types": "workspace:^", diff --git a/packages/mui-lab/src/CalendarPicker/CalendarPicker.tsx b/packages/mui-lab/src/CalendarPicker/CalendarPicker.tsx index d1b244336688e5..f5999beccc8488 100644 --- a/packages/mui-lab/src/CalendarPicker/CalendarPicker.tsx +++ b/packages/mui-lab/src/CalendarPicker/CalendarPicker.tsx @@ -23,7 +23,7 @@ const warn = () => { type CalendarPickerComponent = (( props: CalendarPickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The CalendarPicker component was moved from `@mui/lab` to `@mui/x-date-pickers`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/CalendarPickerSkeleton/CalendarPickerSkeleton.tsx b/packages/mui-lab/src/CalendarPickerSkeleton/CalendarPickerSkeleton.tsx index 5a5eedc42e23ba..1fdb678f251d1a 100644 --- a/packages/mui-lab/src/CalendarPickerSkeleton/CalendarPickerSkeleton.tsx +++ b/packages/mui-lab/src/CalendarPickerSkeleton/CalendarPickerSkeleton.tsx @@ -23,7 +23,7 @@ const warn = () => { type CalendarPickerSkeletonComponent = (( props: CalendarPickerSkeletonProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The CalendarPickerSkeleton component was moved from `@mui/lab` to `@mui/x-date-pickers`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/ClockPicker/ClockPicker.tsx b/packages/mui-lab/src/ClockPicker/ClockPicker.tsx index ff9f19395863cb..47187af85eee8c 100644 --- a/packages/mui-lab/src/ClockPicker/ClockPicker.tsx +++ b/packages/mui-lab/src/ClockPicker/ClockPicker.tsx @@ -23,7 +23,7 @@ const warn = () => { type ClockPickerComponent = (( props: ClockPickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The ClockPicker component was moved from `@mui/lab` to `@mui/x-date-pickers`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/DatePicker/DatePicker.tsx b/packages/mui-lab/src/DatePicker/DatePicker.tsx index de1b2d83ea164c..a684d79cae4e1f 100644 --- a/packages/mui-lab/src/DatePicker/DatePicker.tsx +++ b/packages/mui-lab/src/DatePicker/DatePicker.tsx @@ -23,7 +23,7 @@ const warn = () => { type DatePickerComponent = (( props: DatePickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @ignore - do not document. diff --git a/packages/mui-lab/src/DateRangePicker/DateRangePicker.ts b/packages/mui-lab/src/DateRangePicker/DateRangePicker.ts index a0e08d393c6d44..24c4bfc4352984 100644 --- a/packages/mui-lab/src/DateRangePicker/DateRangePicker.ts +++ b/packages/mui-lab/src/DateRangePicker/DateRangePicker.ts @@ -23,7 +23,7 @@ const warn = () => { type DateRangePickerComponent = (( props: DateRangePickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The DateRangePicker component was moved from `@mui/lab` to `@mui/x-date-pickers-pro`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/DateRangePickerDay/DateRangePickerDay.ts b/packages/mui-lab/src/DateRangePickerDay/DateRangePickerDay.ts index 2b2c3db7ed6912..f7a27e2bbb22f7 100644 --- a/packages/mui-lab/src/DateRangePickerDay/DateRangePickerDay.ts +++ b/packages/mui-lab/src/DateRangePickerDay/DateRangePickerDay.ts @@ -22,7 +22,7 @@ const warn = () => { type DateRangePickerDayComponent = (( props: DateRangePickerDayProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The DateRangePickerDay component was moved from `@mui/lab` to `@mui/x-date-pickers-pro`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/DateTimePicker/DateTimePicker.tsx b/packages/mui-lab/src/DateTimePicker/DateTimePicker.tsx index c65c2db4a7d155..aefd8cde158008 100644 --- a/packages/mui-lab/src/DateTimePicker/DateTimePicker.tsx +++ b/packages/mui-lab/src/DateTimePicker/DateTimePicker.tsx @@ -23,7 +23,7 @@ const warn = () => { type DateTimePickerComponent = (( props: DateTimePickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The DateTimePicker component was moved from `@mui/lab` to `@mui/x-date-pickers`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/DesktopDatePicker/DesktopDatePicker.tsx b/packages/mui-lab/src/DesktopDatePicker/DesktopDatePicker.tsx index 23bfe7b4a463b8..0d48b7a1847e35 100644 --- a/packages/mui-lab/src/DesktopDatePicker/DesktopDatePicker.tsx +++ b/packages/mui-lab/src/DesktopDatePicker/DesktopDatePicker.tsx @@ -23,7 +23,7 @@ const warn = () => { type DesktopDatePickerComponent = (( props: DesktopDatePickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The DesktopDatePicker component was moved from `@mui/lab` to `@mui/x-date-pickers`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/DesktopDateRangePicker/DesktopDateRangePicker.ts b/packages/mui-lab/src/DesktopDateRangePicker/DesktopDateRangePicker.ts index bc5697f3f97cdd..b9343203786669 100644 --- a/packages/mui-lab/src/DesktopDateRangePicker/DesktopDateRangePicker.ts +++ b/packages/mui-lab/src/DesktopDateRangePicker/DesktopDateRangePicker.ts @@ -23,7 +23,7 @@ const warn = () => { type DesktopDateRangePickerComponent = (( props: DesktopDateRangePickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The DesktopDateRangePicker component was moved from `@mui/lab` to `@mui/x-date-pickers-pro`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/DesktopDateTimePicker/DesktopDateTimePicker.tsx b/packages/mui-lab/src/DesktopDateTimePicker/DesktopDateTimePicker.tsx index fc3f559a4a3ff2..c7cc3a097b1a7d 100644 --- a/packages/mui-lab/src/DesktopDateTimePicker/DesktopDateTimePicker.tsx +++ b/packages/mui-lab/src/DesktopDateTimePicker/DesktopDateTimePicker.tsx @@ -23,7 +23,7 @@ const warn = () => { type DesktopDateTimePickerComponent = (( props: DesktopDateTimePickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The DesktopDateTimePicker component was moved from `@mui/lab` to `@mui/x-date-pickers`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/DesktopTimePicker/DesktopTimePicker.tsx b/packages/mui-lab/src/DesktopTimePicker/DesktopTimePicker.tsx index f09c774b9bf6e7..cb9be262d70210 100644 --- a/packages/mui-lab/src/DesktopTimePicker/DesktopTimePicker.tsx +++ b/packages/mui-lab/src/DesktopTimePicker/DesktopTimePicker.tsx @@ -23,7 +23,7 @@ const warn = () => { type DesktopTimePickerComponent = (( props: DesktopTimePickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The DesktopTimePicker component was moved from `@mui/lab` to `@mui/x-date-pickers-pro`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/LocalizationProvider/LocalizationProvider.tsx b/packages/mui-lab/src/LocalizationProvider/LocalizationProvider.tsx index 2e3ead720c4300..8b662afd80a00f 100644 --- a/packages/mui-lab/src/LocalizationProvider/LocalizationProvider.tsx +++ b/packages/mui-lab/src/LocalizationProvider/LocalizationProvider.tsx @@ -22,7 +22,7 @@ const warn = () => { type LocalizationProviderComponent = (( props: LocalizationProviderProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The LocalizationProvider component was moved from `@mui/lab` to `@mui/x-date-pickers`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/MobileDatePicker/MobileDatePicker.tsx b/packages/mui-lab/src/MobileDatePicker/MobileDatePicker.tsx index f0b0f9defa6395..d2fb825a73f84e 100644 --- a/packages/mui-lab/src/MobileDatePicker/MobileDatePicker.tsx +++ b/packages/mui-lab/src/MobileDatePicker/MobileDatePicker.tsx @@ -23,7 +23,7 @@ const warn = () => { type MobileDatePickerComponent = (( props: MobileDatePickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The MobileDatePicker component was moved from `@mui/lab` to `@mui/x-date-pickers`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/MobileDateRangePicker/MobileDateRangePicker.ts b/packages/mui-lab/src/MobileDateRangePicker/MobileDateRangePicker.ts index a5a9768e1e57aa..d8609f6a180f4e 100644 --- a/packages/mui-lab/src/MobileDateRangePicker/MobileDateRangePicker.ts +++ b/packages/mui-lab/src/MobileDateRangePicker/MobileDateRangePicker.ts @@ -23,7 +23,7 @@ const warn = () => { type MobileDateRangePickerComponent = (( props: MobileDateRangePickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The MobileDateRangePicker component was moved from `@mui/lab` to `@mui/x-date-pickers-pro`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/MobileDateTimePicker/MobileDateTimePicker.tsx b/packages/mui-lab/src/MobileDateTimePicker/MobileDateTimePicker.tsx index 6a24b35b216f53..992337cf359ec3 100644 --- a/packages/mui-lab/src/MobileDateTimePicker/MobileDateTimePicker.tsx +++ b/packages/mui-lab/src/MobileDateTimePicker/MobileDateTimePicker.tsx @@ -23,7 +23,7 @@ const warn = () => { type MobileDateTimePickerComponent = (( props: MobileDateTimePickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The MobileDateTimePicker component was moved from `@mui/lab` to `@mui/x-date-pickers`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/MobileTimePicker/MobileTimePicker.tsx b/packages/mui-lab/src/MobileTimePicker/MobileTimePicker.tsx index aef9f13eb0f734..b59f3e8066f2fc 100644 --- a/packages/mui-lab/src/MobileTimePicker/MobileTimePicker.tsx +++ b/packages/mui-lab/src/MobileTimePicker/MobileTimePicker.tsx @@ -23,7 +23,7 @@ const warn = () => { type MobileTimePickerComponent = (( props: MobileTimePickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The MobileTimePicker component was moved from `@mui/lab` to `@mui/x-date-pickers`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/MonthPicker/MonthPicker.tsx b/packages/mui-lab/src/MonthPicker/MonthPicker.tsx index baa3643955e109..bfd784b256e06b 100644 --- a/packages/mui-lab/src/MonthPicker/MonthPicker.tsx +++ b/packages/mui-lab/src/MonthPicker/MonthPicker.tsx @@ -23,7 +23,7 @@ const warn = () => { type MonthPickerComponent = (( props: MonthPickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The MonthPicker component was moved from `@mui/lab` to `@mui/x-date-pickers`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/PickersDay/PickersDay.tsx b/packages/mui-lab/src/PickersDay/PickersDay.tsx index dbd13583b7e868..d4ec6e02fe99e1 100644 --- a/packages/mui-lab/src/PickersDay/PickersDay.tsx +++ b/packages/mui-lab/src/PickersDay/PickersDay.tsx @@ -23,7 +23,7 @@ const warn = () => { type PickersDayComponent = (( props: PickersDayProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The PickersDay component was moved from `@mui/lab` to `@mui/x-date-pickers`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/StaticDatePicker/StaticDatePicker.tsx b/packages/mui-lab/src/StaticDatePicker/StaticDatePicker.tsx index 07aedfa8e1c201..e25bd78b8df689 100644 --- a/packages/mui-lab/src/StaticDatePicker/StaticDatePicker.tsx +++ b/packages/mui-lab/src/StaticDatePicker/StaticDatePicker.tsx @@ -23,7 +23,7 @@ const warn = () => { type StaticDatePickerComponent = (( props: StaticDatePickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The StaticDatePicker component was moved from `@mui/lab` to `@mui/x-date-pickers`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/StaticDateRangePicker/StaticDateRangePicker.ts b/packages/mui-lab/src/StaticDateRangePicker/StaticDateRangePicker.ts index ab9e86fe8bcfa0..51954ef4cabaa1 100644 --- a/packages/mui-lab/src/StaticDateRangePicker/StaticDateRangePicker.ts +++ b/packages/mui-lab/src/StaticDateRangePicker/StaticDateRangePicker.ts @@ -23,7 +23,7 @@ const warn = () => { type StaticDateRangePickerComponent = (( props: StaticDateRangePickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The StaticDateRangePicker component was moved from `@mui/lab` to `@mui/x-date-pickers-pro`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/StaticDateTimePicker/StaticDateTimePicker.tsx b/packages/mui-lab/src/StaticDateTimePicker/StaticDateTimePicker.tsx index e2adcb889202ea..cee2ec9b345afc 100644 --- a/packages/mui-lab/src/StaticDateTimePicker/StaticDateTimePicker.tsx +++ b/packages/mui-lab/src/StaticDateTimePicker/StaticDateTimePicker.tsx @@ -23,7 +23,7 @@ const warn = () => { type StaticDateTimePickerComponent = (( props: StaticDateTimePickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The StaticDateTimePicker component was moved from `@mui/lab` to `@mui/x-date-pickers`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/StaticTimePicker/StaticTimePicker.tsx b/packages/mui-lab/src/StaticTimePicker/StaticTimePicker.tsx index 743b8168c0d2b2..d09364b5804bd3 100644 --- a/packages/mui-lab/src/StaticTimePicker/StaticTimePicker.tsx +++ b/packages/mui-lab/src/StaticTimePicker/StaticTimePicker.tsx @@ -23,7 +23,7 @@ const warn = () => { type StaticTimePickerComponent = (( props: StaticTimePickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The StaticTimePicker component was moved from `@mui/lab` to `@mui/x-date-pickers`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/TabContext/TabContext.d.ts b/packages/mui-lab/src/TabContext/TabContext.d.ts index b3db92467f8936..38274ad8257053 100644 --- a/packages/mui-lab/src/TabContext/TabContext.d.ts +++ b/packages/mui-lab/src/TabContext/TabContext.d.ts @@ -25,7 +25,7 @@ export interface TabContextProps { * * - [TabContext API](https://mui.com/material-ui/api/tab-context/) */ -export default function TabContext(props: TabContextProps): JSX.Element; +export default function TabContext(props: TabContextProps): React.JSX.Element; export function useTabContext(): TabContextValue | null; export function getPanelId(context: TabContextValue, tabValue: string): string; export function getTabId(context: TabContextValue, tabValue: string): string; diff --git a/packages/mui-lab/src/TabPanel/TabPanel.d.ts b/packages/mui-lab/src/TabPanel/TabPanel.d.ts index 378190b80f60e7..47905950704896 100644 --- a/packages/mui-lab/src/TabPanel/TabPanel.d.ts +++ b/packages/mui-lab/src/TabPanel/TabPanel.d.ts @@ -39,4 +39,4 @@ export interface TabPanelProps extends StandardProps { type TimePickerComponent = (( props: TimePickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The StaticTimePicker component was moved from `@mui/lab` to `@mui/x-date-pickers`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/src/TimelineConnector/TimelineConnector.d.ts b/packages/mui-lab/src/TimelineConnector/TimelineConnector.d.ts index df54d02189e8cb..168b023cece9c2 100644 --- a/packages/mui-lab/src/TimelineConnector/TimelineConnector.d.ts +++ b/packages/mui-lab/src/TimelineConnector/TimelineConnector.d.ts @@ -30,4 +30,4 @@ export interface TimelineConnectorProps * * - [TimelineConnector API](https://mui.com/material-ui/api/timeline-connector/) */ -export default function TimelineConnector(props: TimelineConnectorProps): JSX.Element; +export default function TimelineConnector(props: TimelineConnectorProps): React.JSX.Element; diff --git a/packages/mui-lab/src/TimelineContent/TimelineContent.d.ts b/packages/mui-lab/src/TimelineContent/TimelineContent.d.ts index a7991cd1aba397..6bfe5fe24e9ffd 100644 --- a/packages/mui-lab/src/TimelineContent/TimelineContent.d.ts +++ b/packages/mui-lab/src/TimelineContent/TimelineContent.d.ts @@ -30,4 +30,4 @@ export interface TimelineContentProps extends StandardProps { * - [TimelineContent API](https://mui.com/material-ui/api/timeline-content/) * - inherits [Typography API](https://mui.com/material-ui/api/typography/) */ -export default function TimelineContent(props: TimelineContentProps): JSX.Element; +export default function TimelineContent(props: TimelineContentProps): React.JSX.Element; diff --git a/packages/mui-lab/src/TimelineDot/TimelineDot.d.ts b/packages/mui-lab/src/TimelineDot/TimelineDot.d.ts index 2109ee9592186c..1d04d9caacd8f4 100644 --- a/packages/mui-lab/src/TimelineDot/TimelineDot.d.ts +++ b/packages/mui-lab/src/TimelineDot/TimelineDot.d.ts @@ -47,4 +47,4 @@ export interface TimelineDotProps extends StandardProps JSX.Element) & { +declare const TimelineOppositeContent: (( + props: TimelineOppositeContentProps, +) => React.JSX.Element) & { muiName: string; }; diff --git a/packages/mui-lab/src/TimelineSeparator/TimelineSeparator.d.ts b/packages/mui-lab/src/TimelineSeparator/TimelineSeparator.d.ts index 4f851adbfa3f7e..3f5b950647e812 100644 --- a/packages/mui-lab/src/TimelineSeparator/TimelineSeparator.d.ts +++ b/packages/mui-lab/src/TimelineSeparator/TimelineSeparator.d.ts @@ -30,4 +30,4 @@ export interface TimelineSeparatorProps * * - [TimelineSeparator API](https://mui.com/material-ui/api/timeline-separator/) */ -export default function TimelineSeparator(props: TimelineSeparatorProps): JSX.Element; +export default function TimelineSeparator(props: TimelineSeparatorProps): React.JSX.Element; diff --git a/packages/mui-lab/src/TreeItem/TreeItem.tsx b/packages/mui-lab/src/TreeItem/TreeItem.tsx index 5920ce65567cae..6a202115c04d23 100644 --- a/packages/mui-lab/src/TreeItem/TreeItem.tsx +++ b/packages/mui-lab/src/TreeItem/TreeItem.tsx @@ -22,7 +22,7 @@ const warn = () => { type TreeItemComponent = (( props: TreeItemProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The TreeItem component was moved from `@mui/lab` to `@mui/x-tree-view`. More information about this migration on our blog: https://mui.com/blog/lab-tree-view-to-mui-x/. diff --git a/packages/mui-lab/src/TreeView/TreeView.tsx b/packages/mui-lab/src/TreeView/TreeView.tsx index a9baef3618f4ba..cc7b3000f58154 100644 --- a/packages/mui-lab/src/TreeView/TreeView.tsx +++ b/packages/mui-lab/src/TreeView/TreeView.tsx @@ -23,7 +23,7 @@ const warn = () => { type TreeViewComponent = (( props: TreeViewProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The TreeView component was moved from `@mui/lab` to `@mui/x-tree-view`. More information about this migration on our blog: https://mui.com/blog/lab-tree-view-to-mui-x/. diff --git a/packages/mui-lab/src/YearPicker/YearPicker.tsx b/packages/mui-lab/src/YearPicker/YearPicker.tsx index b83ba6b10812dd..9f67498da59c8d 100644 --- a/packages/mui-lab/src/YearPicker/YearPicker.tsx +++ b/packages/mui-lab/src/YearPicker/YearPicker.tsx @@ -23,7 +23,7 @@ const warn = () => { type YearPickerComponent = (( props: YearPickerProps & React.RefAttributes, -) => JSX.Element) & { propTypes?: any }; +) => React.JSX.Element) & { propTypes?: any }; /** * @deprecated The YearPicker component was moved from `@mui/lab` to `@mui/x-date-pickers`. More information about this migration on our blog: https://mui.com/blog/lab-date-pickers-to-mui-x/. diff --git a/packages/mui-lab/test/describeConformance.ts b/packages/mui-lab/test/describeConformance.ts index 633cf72e03ebbe..4715d91bad6817 100644 --- a/packages/mui-lab/test/describeConformance.ts +++ b/packages/mui-lab/test/describeConformance.ts @@ -5,7 +5,7 @@ import { import { ThemeProvider, createTheme } from '@mui/material/styles'; export default function describeConformance( - minimalElement: React.ReactElement, + minimalElement: React.ReactElement, getOptions: () => ConformanceOptions, ) { function getOptionsWithDefaults() { diff --git a/packages/mui-material-nextjs/package.json b/packages/mui-material-nextjs/package.json index e4d07fc672a085..36263785a85244 100644 --- a/packages/mui-material-nextjs/package.json +++ b/packages/mui-material-nextjs/package.json @@ -36,7 +36,7 @@ "typescript": "tsc -p tsconfig.json" }, "dependencies": { - "@babel/runtime": "^7.24.5" + "@babel/runtime": "^7.24.6" }, "devDependencies": { "@emotion/cache": "^11.11.0", diff --git a/packages/mui-material-nextjs/src/v13-pagesRouter/pagesRouterV13Document.tsx b/packages/mui-material-nextjs/src/v13-pagesRouter/pagesRouterV13Document.tsx index c8c385ea74ab10..2bc922d62dd059 100644 --- a/packages/mui-material-nextjs/src/v13-pagesRouter/pagesRouterV13Document.tsx +++ b/packages/mui-material-nextjs/src/v13-pagesRouter/pagesRouterV13Document.tsx @@ -9,7 +9,7 @@ import createEmotionCache from './createCache'; interface Plugin { enhanceApp: ( App: React.ComponentType>, - ) => (props: any) => JSX.Element; + ) => (props: any) => React.JSX.Element; resolveProps: (initialProps: DocumentInitialProps) => Promise; } @@ -37,7 +37,7 @@ export function createGetInitialProps(plugins: Plugin[]) { } export interface DocumentHeadTagsProps { - emotionStyleTags: React.ReactElement[]; + emotionStyleTags: React.ReactElement[]; } export function DocumentHeadTags(props: DocumentHeadTagsProps) { diff --git a/packages/mui-material/package.json b/packages/mui-material/package.json index f61bb88e72e63c..3610ded6e9449e 100644 --- a/packages/mui-material/package.json +++ b/packages/mui-material/package.json @@ -40,7 +40,7 @@ "typescript:module-augmentation": "node scripts/testModuleAugmentation.js" }, "dependencies": { - "@babel/runtime": "^7.24.5", + "@babel/runtime": "^7.24.6", "@mui/base": "workspace:*", "@mui/core-downloads-tracker": "workspace:^", "@mui/system": "workspace:^", diff --git a/packages/mui-material/src/AccordionActions/AccordionActions.d.ts b/packages/mui-material/src/AccordionActions/AccordionActions.d.ts index 2e8b781355f70a..39c13ee770255f 100644 --- a/packages/mui-material/src/AccordionActions/AccordionActions.d.ts +++ b/packages/mui-material/src/AccordionActions/AccordionActions.d.ts @@ -33,4 +33,4 @@ export interface AccordionActionsProps extends StandardProps { * - [AlertTitle API](https://mui.com/material-ui/api/alert-title/) * - inherits [Typography API](https://mui.com/material-ui/api/typography/) */ -export default function AlertTitle(props: AlertTitleProps): JSX.Element; +export default function AlertTitle(props: AlertTitleProps): React.JSX.Element; diff --git a/packages/mui-material/src/Autocomplete/Autocomplete.d.ts b/packages/mui-material/src/Autocomplete/Autocomplete.d.ts index cfc564954e847c..3119083dab2ef3 100644 --- a/packages/mui-material/src/Autocomplete/Autocomplete.d.ts +++ b/packages/mui-material/src/Autocomplete/Autocomplete.d.ts @@ -372,4 +372,4 @@ export default function Autocomplete< ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent'], >( props: AutocompleteProps, -): JSX.Element; +): React.JSX.Element; diff --git a/packages/mui-material/src/AvatarGroup/AvatarGroup.d.ts b/packages/mui-material/src/AvatarGroup/AvatarGroup.d.ts index ed052bbf48d468..e0f06ce925decd 100644 --- a/packages/mui-material/src/AvatarGroup/AvatarGroup.d.ts +++ b/packages/mui-material/src/AvatarGroup/AvatarGroup.d.ts @@ -92,4 +92,4 @@ export interface AvatarGroupProps extends StandardProps { export type ExtendButton = (( props: { href: string } & OverrideProps, 'a'>, -) => JSX.Element) & +) => React.JSX.Element) & OverridableComponent>; /** diff --git a/packages/mui-material/src/ButtonBase/ButtonBase.d.ts b/packages/mui-material/src/ButtonBase/ButtonBase.d.ts index af1edc9aa88849..53a65f79fc1920 100644 --- a/packages/mui-material/src/ButtonBase/ButtonBase.d.ts +++ b/packages/mui-material/src/ButtonBase/ButtonBase.d.ts @@ -105,7 +105,7 @@ export interface ExtendButtonBaseTypeMap { export type ExtendButtonBase = (( props: { href: string } & OverrideProps, 'a'>, -) => JSX.Element) & +) => React.JSX.Element) & OverridableComponent>; /** diff --git a/packages/mui-material/src/CardActions/CardActions.d.ts b/packages/mui-material/src/CardActions/CardActions.d.ts index 3258f2ca248e6d..eb5494dc0e0229 100644 --- a/packages/mui-material/src/CardActions/CardActions.d.ts +++ b/packages/mui-material/src/CardActions/CardActions.d.ts @@ -33,4 +33,4 @@ export interface CardActionsProps extends StandardProps, - ): JSX.Element; + ): React.JSX.Element; } export type CardHeaderProps< diff --git a/packages/mui-material/src/Checkbox/Checkbox.d.ts b/packages/mui-material/src/Checkbox/Checkbox.d.ts index 8d3b3529cde81e..9d9d6ffca56d24 100644 --- a/packages/mui-material/src/Checkbox/Checkbox.d.ts +++ b/packages/mui-material/src/Checkbox/Checkbox.d.ts @@ -115,4 +115,4 @@ export interface CheckboxProps * - [Checkbox API](https://mui.com/material-ui/api/checkbox/) * - inherits [ButtonBase API](https://mui.com/material-ui/api/button-base/) */ -export default function Checkbox(props: CheckboxProps): JSX.Element; +export default function Checkbox(props: CheckboxProps): React.JSX.Element; diff --git a/packages/mui-material/src/Chip/Chip.d.ts b/packages/mui-material/src/Chip/Chip.d.ts index 1b576bf9705a27..4db5e9ac779872 100644 --- a/packages/mui-material/src/Chip/Chip.d.ts +++ b/packages/mui-material/src/Chip/Chip.d.ts @@ -15,7 +15,7 @@ export interface ChipOwnProps { /** * The Avatar element to display. */ - avatar?: React.ReactElement; + avatar?: React.ReactElement; /** * This prop isn't supported. * Use the `component` prop if you need to change the children structure. @@ -47,7 +47,7 @@ export interface ChipOwnProps { /** * Override the default delete icon element. Shown only if `onDelete` is set. */ - deleteIcon?: React.ReactElement; + deleteIcon?: React.ReactElement; /** * If `true`, the component is disabled. * @default false @@ -56,7 +56,7 @@ export interface ChipOwnProps { /** * Icon element. */ - icon?: React.ReactElement; + icon?: React.ReactElement; /** * The content of the component. */ diff --git a/packages/mui-material/src/Chip/Chip.test.js b/packages/mui-material/src/Chip/Chip.test.js index 6af617103ddb7d..1e47fa38beba73 100644 --- a/packages/mui-material/src/Chip/Chip.test.js +++ b/packages/mui-material/src/Chip/Chip.test.js @@ -11,12 +11,7 @@ import { } from '@mui-internal/test-utils'; import Avatar from '@mui/material/Avatar'; import Chip, { chipClasses as classes } from '@mui/material/Chip'; -import { - ThemeProvider, - createTheme, - hexToRgb, - experimental_extendTheme as extendTheme, -} from '@mui/material/styles'; +import { ThemeProvider, createTheme, hexToRgb, extendTheme } from '@mui/material/styles'; import CheckBox from '../internal/svg-icons/CheckBox'; import defaultTheme from '../styles/defaultTheme'; import describeConformance from '../../test/describeConformance'; diff --git a/packages/mui-material/src/CircularProgress/CircularProgress.d.ts b/packages/mui-material/src/CircularProgress/CircularProgress.d.ts index c0046a5b247e2b..31b99ab6a7273e 100644 --- a/packages/mui-material/src/CircularProgress/CircularProgress.d.ts +++ b/packages/mui-material/src/CircularProgress/CircularProgress.d.ts @@ -73,4 +73,4 @@ export interface CircularProgressProps * * - [CircularProgress API](https://mui.com/material-ui/api/circular-progress/) */ -export default function CircularProgress(props: CircularProgressProps): JSX.Element; +export default function CircularProgress(props: CircularProgressProps): React.JSX.Element; diff --git a/packages/mui-material/src/Collapse/Collapse.d.ts b/packages/mui-material/src/Collapse/Collapse.d.ts index 2206f44019aefc..aa756bb779a3f7 100644 --- a/packages/mui-material/src/Collapse/Collapse.d.ts +++ b/packages/mui-material/src/Collapse/Collapse.d.ts @@ -69,4 +69,4 @@ export interface CollapseProps extends StandardProps * - inherits [Transition API](https://reactcommunity.org/react-transition-group/transition/#Transition-props) */ -export default function Collapse(props: CollapseProps): JSX.Element; +export default function Collapse(props: CollapseProps): React.JSX.Element; diff --git a/packages/mui-material/src/CssBaseline/CssBaseline.d.ts b/packages/mui-material/src/CssBaseline/CssBaseline.d.ts index 45af35281561a9..11cb225bd7ac03 100644 --- a/packages/mui-material/src/CssBaseline/CssBaseline.d.ts +++ b/packages/mui-material/src/CssBaseline/CssBaseline.d.ts @@ -26,4 +26,4 @@ export interface CssBaselineProps extends StyledComponentProps { * * - [CssBaseline API](https://mui.com/material-ui/api/css-baseline/) */ -export default function CssBaseline(props: CssBaselineProps): JSX.Element; +export default function CssBaseline(props: CssBaselineProps): React.JSX.Element; diff --git a/packages/mui-material/src/Dialog/Dialog.d.ts b/packages/mui-material/src/Dialog/Dialog.d.ts index 14fdf0f2bc5c9d..d3c52d4ce7ccb4 100644 --- a/packages/mui-material/src/Dialog/Dialog.d.ts +++ b/packages/mui-material/src/Dialog/Dialog.d.ts @@ -118,4 +118,4 @@ export interface DialogProps extends StandardProps { * - [Dialog API](https://mui.com/material-ui/api/dialog/) * - inherits [Modal API](https://mui.com/material-ui/api/modal/) */ -export default function Dialog(props: DialogProps): JSX.Element; +export default function Dialog(props: DialogProps): React.JSX.Element; diff --git a/packages/mui-material/src/DialogActions/DialogActions.d.ts b/packages/mui-material/src/DialogActions/DialogActions.d.ts index 5e6a13e309c1d0..3f1842f3461c08 100644 --- a/packages/mui-material/src/DialogActions/DialogActions.d.ts +++ b/packages/mui-material/src/DialogActions/DialogActions.d.ts @@ -33,4 +33,4 @@ export interface DialogActionsProps extends StandardProps { * - [Fade API](https://mui.com/material-ui/api/fade/) * - inherits [Transition API](https://reactcommunity.org/react-transition-group/transition/#Transition-props) */ -export default function Fade(props: FadeProps): JSX.Element; +export default function Fade(props: FadeProps): React.JSX.Element; diff --git a/packages/mui-material/src/FilledInput/FilledInput.d.ts b/packages/mui-material/src/FilledInput/FilledInput.d.ts index b54d7c165608ec..c31279ed4f8b8b 100644 --- a/packages/mui-material/src/FilledInput/FilledInput.d.ts +++ b/packages/mui-material/src/FilledInput/FilledInput.d.ts @@ -37,6 +37,6 @@ export interface FilledInputProps extends StandardProps { * - [FilledInput API](https://mui.com/material-ui/api/filled-input/) * - inherits [InputBase API](https://mui.com/material-ui/api/input-base/) */ -declare const FilledInput: ((props: FilledInputProps) => JSX.Element) & { muiName: string }; +declare const FilledInput: ((props: FilledInputProps) => React.JSX.Element) & { muiName: string }; export default FilledInput; diff --git a/packages/mui-material/src/FormControlLabel/FormControlLabel.d.ts b/packages/mui-material/src/FormControlLabel/FormControlLabel.d.ts index 0a171d69a5db2f..8191b83c0638bc 100644 --- a/packages/mui-material/src/FormControlLabel/FormControlLabel.d.ts +++ b/packages/mui-material/src/FormControlLabel/FormControlLabel.d.ts @@ -106,4 +106,4 @@ export interface FormControlLabelProps * * - [FormControlLabel API](https://mui.com/material-ui/api/form-control-label/) */ -export default function FormControlLabel(props: FormControlLabelProps): JSX.Element; +export default function FormControlLabel(props: FormControlLabelProps): React.JSX.Element; diff --git a/packages/mui-material/src/FormGroup/FormGroup.d.ts b/packages/mui-material/src/FormGroup/FormGroup.d.ts index b8e6478f1b3ef4..120c8bda2f6ad4 100644 --- a/packages/mui-material/src/FormGroup/FormGroup.d.ts +++ b/packages/mui-material/src/FormGroup/FormGroup.d.ts @@ -37,4 +37,4 @@ export interface FormGroupProps extends StandardProps; diff --git a/packages/mui-material/src/Grid/Grid.d.ts b/packages/mui-material/src/Grid/Grid.d.ts index 8df168eec79edb..b25bcac691eeb5 100644 --- a/packages/mui-material/src/Grid/Grid.d.ts +++ b/packages/mui-material/src/Grid/Grid.d.ts @@ -139,6 +139,7 @@ export interface GridOwnProps extends SystemProps, Breakpoints { * Defines the `flex-wrap` style property. * It's applied for all screen sizes. * @default 'wrap' + * @deprecated Use `flexWrap` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details. */ wrap?: GridWrap; /** diff --git a/packages/mui-material/src/Grid/Grid.js b/packages/mui-material/src/Grid/Grid.js index 7d8935e4395b74..da39ef72229cf7 100644 --- a/packages/mui-material/src/Grid/Grid.js +++ b/packages/mui-material/src/Grid/Grid.js @@ -598,6 +598,7 @@ Grid.propTypes /* remove-proptypes */ = { * Defines the `flex-wrap` style property. * It's applied for all screen sizes. * @default 'wrap' + * @deprecated Use `flexWrap` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details. */ wrap: PropTypes.oneOf(['nowrap', 'wrap-reverse', 'wrap']), /** diff --git a/packages/mui-material/src/Grow/Grow.d.ts b/packages/mui-material/src/Grow/Grow.d.ts index 173360b6ed7b55..244a6278f734e6 100644 --- a/packages/mui-material/src/Grow/Grow.d.ts +++ b/packages/mui-material/src/Grow/Grow.d.ts @@ -47,4 +47,4 @@ export interface GrowProps extends Omit { * - [Grow API](https://mui.com/material-ui/api/grow/) * - inherits [Transition API](https://reactcommunity.org/react-transition-group/transition/#Transition-props) */ -export default function Grow(props: GrowProps): JSX.Element; +export default function Grow(props: GrowProps): React.JSX.Element; diff --git a/packages/mui-material/src/ImageListItemBar/ImageListItemBar.d.ts b/packages/mui-material/src/ImageListItemBar/ImageListItemBar.d.ts index fb9e5260c08a64..b134d22e35121d 100644 --- a/packages/mui-material/src/ImageListItemBar/ImageListItemBar.d.ts +++ b/packages/mui-material/src/ImageListItemBar/ImageListItemBar.d.ts @@ -48,4 +48,4 @@ export interface ImageListItemBarProps * * - [ImageListItemBar API](https://mui.com/material-ui/api/image-list-item-bar/) */ -export default function ImageListItemBar(props: ImageListItemBarProps): JSX.Element; +export default function ImageListItemBar(props: ImageListItemBarProps): React.JSX.Element; diff --git a/packages/mui-material/src/Input/Input.d.ts b/packages/mui-material/src/Input/Input.d.ts index 87e624d32c0b21..771af138da3324 100644 --- a/packages/mui-material/src/Input/Input.d.ts +++ b/packages/mui-material/src/Input/Input.d.ts @@ -30,6 +30,6 @@ export interface InputProps extends StandardProps { * - [Input API](https://mui.com/material-ui/api/input/) * - inherits [InputBase API](https://mui.com/material-ui/api/input-base/) */ -declare const Input: ((props: InputProps) => JSX.Element) & { muiName: string }; +declare const Input: ((props: InputProps) => React.JSX.Element) & { muiName: string }; export default Input; diff --git a/packages/mui-material/src/InputBase/InputBase.d.ts b/packages/mui-material/src/InputBase/InputBase.d.ts index 98d5fb1e411020..abf037f2288987 100644 --- a/packages/mui-material/src/InputBase/InputBase.d.ts +++ b/packages/mui-material/src/InputBase/InputBase.d.ts @@ -263,4 +263,4 @@ export interface InputBaseComponentProps * * - [InputBase API](https://mui.com/material-ui/api/input-base/) */ -export default function InputBase(props: InputBaseProps): JSX.Element; +export default function InputBase(props: InputBaseProps): React.JSX.Element; diff --git a/packages/mui-material/src/LinearProgress/LinearProgress.d.ts b/packages/mui-material/src/LinearProgress/LinearProgress.d.ts index 9b940c879c61bd..58e7a73e9e80c5 100644 --- a/packages/mui-material/src/LinearProgress/LinearProgress.d.ts +++ b/packages/mui-material/src/LinearProgress/LinearProgress.d.ts @@ -59,4 +59,4 @@ export interface LinearProgressProps * * - [LinearProgress API](https://mui.com/material-ui/api/linear-progress/) */ -export default function LinearProgress(props: LinearProgressProps): JSX.Element; +export default function LinearProgress(props: LinearProgressProps): React.JSX.Element; diff --git a/packages/mui-material/src/Link/getTextDecoration.test.js b/packages/mui-material/src/Link/getTextDecoration.test.js index 41e92011448c54..cf15c993b1d48c 100644 --- a/packages/mui-material/src/Link/getTextDecoration.test.js +++ b/packages/mui-material/src/Link/getTextDecoration.test.js @@ -1,5 +1,5 @@ import { expect } from 'chai'; -import { createTheme, experimental_extendTheme as extendTheme } from '../styles'; +import { createTheme, extendTheme } from '../styles'; import getTextDecoration from './getTextDecoration'; describe('getTextDecoration', () => { diff --git a/packages/mui-material/src/ListItemAvatar/ListItemAvatar.d.ts b/packages/mui-material/src/ListItemAvatar/ListItemAvatar.d.ts index 0fe8e56956dc83..5a13d4c9d5d8de 100644 --- a/packages/mui-material/src/ListItemAvatar/ListItemAvatar.d.ts +++ b/packages/mui-material/src/ListItemAvatar/ListItemAvatar.d.ts @@ -28,4 +28,4 @@ export interface ListItemAvatarProps extends StandardProps JSX.Element) & { +declare const ListItemSecondaryAction: (( + props: ListItemSecondaryActionProps, +) => React.JSX.Element) & { muiName: string; }; diff --git a/packages/mui-material/src/ListItemText/ListItemText.d.ts b/packages/mui-material/src/ListItemText/ListItemText.d.ts index 5c1f4f1690ca8b..f99f467ec6b74c 100644 --- a/packages/mui-material/src/ListItemText/ListItemText.d.ts +++ b/packages/mui-material/src/ListItemText/ListItemText.d.ts @@ -73,4 +73,6 @@ export interface ListItemTextProps< export default function ListItemText< PrimaryTypographyComponent extends React.ElementType = 'span', SecondaryTypographyComponent extends React.ElementType = 'p', ->(props: ListItemTextProps): JSX.Element; +>( + props: ListItemTextProps, +): React.JSX.Element; diff --git a/packages/mui-material/src/Menu/Menu.d.ts b/packages/mui-material/src/Menu/Menu.d.ts index 34b27cb8cca448..4e25f63ddfd124 100644 --- a/packages/mui-material/src/Menu/Menu.d.ts +++ b/packages/mui-material/src/Menu/Menu.d.ts @@ -94,4 +94,4 @@ export declare const MenuPaper: React.FC; * - [Menu API](https://mui.com/material-ui/api/menu/) * - inherits [Popover API](https://mui.com/material-ui/api/popover/) */ -export default function Menu(props: MenuProps): JSX.Element; +export default function Menu(props: MenuProps): React.JSX.Element; diff --git a/packages/mui-material/src/MobileStepper/MobileStepper.d.ts b/packages/mui-material/src/MobileStepper/MobileStepper.d.ts index 86a5e95f20981e..9a05cabb4b9b5d 100644 --- a/packages/mui-material/src/MobileStepper/MobileStepper.d.ts +++ b/packages/mui-material/src/MobileStepper/MobileStepper.d.ts @@ -59,4 +59,4 @@ export interface MobileStepperProps extends StandardProps; /** * Override or extend the styles applied to the component. */ diff --git a/packages/mui-material/src/NativeSelect/NativeSelect.d.ts b/packages/mui-material/src/NativeSelect/NativeSelect.d.ts index 6e4d078e6179ce..4f09d74c00833a 100644 --- a/packages/mui-material/src/NativeSelect/NativeSelect.d.ts +++ b/packages/mui-material/src/NativeSelect/NativeSelect.d.ts @@ -64,6 +64,6 @@ export interface NativeSelectProps * - [NativeSelect API](https://mui.com/material-ui/api/native-select/) * - inherits [Input API](https://mui.com/material-ui/api/input/) */ -declare const NativeSelect: ((props: NativeSelectProps) => JSX.Element) & { muiName: string }; +declare const NativeSelect: ((props: NativeSelectProps) => React.JSX.Element) & { muiName: string }; export default NativeSelect; diff --git a/packages/mui-material/src/OutlinedInput/OutlinedInput.d.ts b/packages/mui-material/src/OutlinedInput/OutlinedInput.d.ts index 61646bc8096fef..f8faee63a44db8 100644 --- a/packages/mui-material/src/OutlinedInput/OutlinedInput.d.ts +++ b/packages/mui-material/src/OutlinedInput/OutlinedInput.d.ts @@ -35,6 +35,8 @@ export interface OutlinedInputProps extends StandardProps { * - [OutlinedInput API](https://mui.com/material-ui/api/outlined-input/) * - inherits [InputBase API](https://mui.com/material-ui/api/input-base/) */ -declare const OutlinedInput: ((props: OutlinedInputProps) => JSX.Element) & { muiName: string }; +declare const OutlinedInput: ((props: OutlinedInputProps) => React.JSX.Element) & { + muiName: string; +}; export default OutlinedInput; diff --git a/packages/mui-material/src/OverridableComponent.d.ts b/packages/mui-material/src/OverridableComponent.d.ts index 1a65de60e6c1f5..d982e97a4d009a 100644 --- a/packages/mui-material/src/OverridableComponent.d.ts +++ b/packages/mui-material/src/OverridableComponent.d.ts @@ -20,8 +20,8 @@ export interface OverridableComponent { */ component: RootComponent; } & OverrideProps, - ): JSX.Element | null; - (props: DefaultComponentProps): JSX.Element | null; + ): React.JSX.Element | null; + (props: DefaultComponentProps): React.JSX.Element | null; } /** diff --git a/packages/mui-material/src/Pagination/Pagination.d.ts b/packages/mui-material/src/Pagination/Pagination.d.ts index 11a27ca7b51a4c..130d148f830c15 100644 --- a/packages/mui-material/src/Pagination/Pagination.d.ts +++ b/packages/mui-material/src/Pagination/Pagination.d.ts @@ -86,4 +86,4 @@ export interface PaginationProps * * - [Pagination API](https://mui.com/material-ui/api/pagination/) */ -export default function Pagination(props: PaginationProps): JSX.Element; +export default function Pagination(props: PaginationProps): React.JSX.Element; diff --git a/packages/mui-material/src/Popover/Popover.d.ts b/packages/mui-material/src/Popover/Popover.d.ts index d8308b68ac7a5b..cd61ebd110215c 100644 --- a/packages/mui-material/src/Popover/Popover.d.ts +++ b/packages/mui-material/src/Popover/Popover.d.ts @@ -195,4 +195,4 @@ export declare const PopoverPaper: React.FC; * - [Popover API](https://mui.com/material-ui/api/popover/) * - inherits [Modal API](https://mui.com/material-ui/api/modal/) */ -export default function Popover(props: PopoverProps): JSX.Element; +export default function Popover(props: PopoverProps): React.JSX.Element; diff --git a/packages/mui-material/src/Popper/Popper.spec.tsx b/packages/mui-material/src/Popper/Popper.spec.tsx index c970097dd3db65..0431883265da3f 100644 --- a/packages/mui-material/src/Popper/Popper.spec.tsx +++ b/packages/mui-material/src/Popper/Popper.spec.tsx @@ -3,7 +3,7 @@ import { Instance } from '@popperjs/core'; import Tooltip from '@mui/material/Tooltip'; interface Props { - children: React.ReactElement; + children: React.ReactElement; value: number; } diff --git a/packages/mui-material/src/Popper/Popper.tsx b/packages/mui-material/src/Popper/Popper.tsx index 3d946e9e32adf8..2213d3ee72419b 100644 --- a/packages/mui-material/src/Popper/Popper.tsx +++ b/packages/mui-material/src/Popper/Popper.tsx @@ -17,6 +17,8 @@ export interface PopperProps extends Omit { /** * The components used for each slot inside the Popper. * Either a string to use a HTML element or a component. + * + * @deprecated use the `slots` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/). * @default {} */ components?: { @@ -24,6 +26,8 @@ export interface PopperProps extends Omit { }; /** * The props used for each slot inside the Popper. + * + * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/). * @default {} */ componentsProps?: BasePopperProps['slotProps']; @@ -137,6 +141,8 @@ Popper.propTypes /* remove-proptypes */ = { /** * The components used for each slot inside the Popper. * Either a string to use a HTML element or a component. + * + * @deprecated use the `slots` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/). * @default {} */ components: PropTypes.shape({ @@ -144,6 +150,8 @@ Popper.propTypes /* remove-proptypes */ = { }), /** * The props used for each slot inside the Popper. + * + * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/). * @default {} */ componentsProps: PropTypes.shape({ diff --git a/packages/mui-material/src/Radio/Radio.d.ts b/packages/mui-material/src/Radio/Radio.d.ts index 9b07e5576a34c3..839696994c4b31 100644 --- a/packages/mui-material/src/Radio/Radio.d.ts +++ b/packages/mui-material/src/Radio/Radio.d.ts @@ -62,4 +62,4 @@ export interface RadioProps * - [Radio API](https://mui.com/material-ui/api/radio/) * - inherits [ButtonBase API](https://mui.com/material-ui/api/button-base/) */ -export default function Radio(props: RadioProps): JSX.Element; +export default function Radio(props: RadioProps): React.JSX.Element; diff --git a/packages/mui-material/src/RadioGroup/RadioGroup.d.ts b/packages/mui-material/src/RadioGroup/RadioGroup.d.ts index 3cfdf5713537e9..3793f088ac1384 100644 --- a/packages/mui-material/src/RadioGroup/RadioGroup.d.ts +++ b/packages/mui-material/src/RadioGroup/RadioGroup.d.ts @@ -36,4 +36,4 @@ export interface RadioGroupProps extends Omit { * - [RadioGroup API](https://mui.com/material-ui/api/radio-group/) * - inherits [FormGroup API](https://mui.com/material-ui/api/form-group/) */ -export default function RadioGroup(props: RadioGroupProps): JSX.Element; +export default function RadioGroup(props: RadioGroupProps): React.JSX.Element; diff --git a/packages/mui-material/src/Rating/Rating.d.ts b/packages/mui-material/src/Rating/Rating.d.ts index 1eb262d4c43d9f..6056f8966d5d4f 100644 --- a/packages/mui-material/src/Rating/Rating.d.ts +++ b/packages/mui-material/src/Rating/Rating.d.ts @@ -124,4 +124,4 @@ export interface RatingProps * * - [Rating API](https://mui.com/material-ui/api/rating/) */ -export default function Rating(props: RatingProps): JSX.Element; +export default function Rating(props: RatingProps): React.JSX.Element; diff --git a/packages/mui-material/src/Select/Select.d.ts b/packages/mui-material/src/Select/Select.d.ts index f4984bdc71f84d..3f68467ee861ab 100644 --- a/packages/mui-material/src/Select/Select.d.ts +++ b/packages/mui-material/src/Select/Select.d.ts @@ -196,7 +196,7 @@ export type SelectProps = * - [Select API](https://mui.com/material-ui/api/select/) * - inherits [OutlinedInput API](https://mui.com/material-ui/api/outlined-input/) */ -declare const Select: ((props: SelectProps) => JSX.Element) & { +declare const Select: ((props: SelectProps) => React.JSX.Element) & { muiName: string; }; diff --git a/packages/mui-material/src/Slide/Slide.d.ts b/packages/mui-material/src/Slide/Slide.d.ts index 76621b10735cbf..c7e2d14e5bc92f 100644 --- a/packages/mui-material/src/Slide/Slide.d.ts +++ b/packages/mui-material/src/Slide/Slide.d.ts @@ -61,4 +61,4 @@ export interface SlideProps extends TransitionProps { * - [Slide API](https://mui.com/material-ui/api/slide/) * - inherits [Transition API](https://reactcommunity.org/react-transition-group/transition/#Transition-props) */ -export default function Slide(props: SlideProps): JSX.Element; +export default function Slide(props: SlideProps): React.JSX.Element; diff --git a/packages/mui-material/src/Slider/Slider.d.ts b/packages/mui-material/src/Slider/Slider.d.ts index 98a9f281f14ae6..4aa0b3f0f7a399 100644 --- a/packages/mui-material/src/Slider/Slider.d.ts +++ b/packages/mui-material/src/Slider/Slider.d.ts @@ -281,7 +281,7 @@ export interface SliderTypeMap< } export interface SliderValueLabelProps extends React.HTMLAttributes { - children: React.ReactElement; + children: React.ReactElement; index: number; open: boolean; value: number; diff --git a/packages/mui-material/src/Slider/SliderValueLabel.types.ts b/packages/mui-material/src/Slider/SliderValueLabel.types.ts index 68fe865e14d10f..251c91edc65617 100644 --- a/packages/mui-material/src/Slider/SliderValueLabel.types.ts +++ b/packages/mui-material/src/Slider/SliderValueLabel.types.ts @@ -1,5 +1,5 @@ export interface SliderValueLabelProps { - children?: React.ReactElement; + children?: React.ReactElement; className?: string; style?: React.CSSProperties; /** diff --git a/packages/mui-material/src/Snackbar/Snackbar.d.ts b/packages/mui-material/src/Snackbar/Snackbar.d.ts index 30b6fc17082d8b..7c9d89895df2e7 100644 --- a/packages/mui-material/src/Snackbar/Snackbar.d.ts +++ b/packages/mui-material/src/Snackbar/Snackbar.d.ts @@ -127,4 +127,4 @@ export interface SnackbarProps extends StandardProps JSX.Element) & { muiName: string }; +declare const SpeedDialIcon: ((props: SpeedDialIconProps) => React.JSX.Element) & { + muiName: string; +}; export default SpeedDialIcon; diff --git a/packages/mui-material/src/StepConnector/StepConnector.d.ts b/packages/mui-material/src/StepConnector/StepConnector.d.ts index 28d55ad48c9476..e60c7c6bac61b4 100644 --- a/packages/mui-material/src/StepConnector/StepConnector.d.ts +++ b/packages/mui-material/src/StepConnector/StepConnector.d.ts @@ -4,7 +4,7 @@ import { InternalStandardProps as StandardProps } from '..'; import { Theme } from '../styles'; import { StepConnectorClasses } from './stepConnectorClasses'; -export type StepConnectorIcon = React.ReactElement | string | number; +export type StepConnectorIcon = React.ReactElement | string | number; export interface StepConnectorProps extends StandardProps, 'children'> { @@ -30,4 +30,4 @@ export type StepConnectorClasskey = keyof NonNullable * * - [StepContent API](https://mui.com/material-ui/api/step-content/) */ -export default function StepContent(props: StepContentProps): JSX.Element; +export default function StepContent(props: StepContentProps): React.JSX.Element; diff --git a/packages/mui-material/src/StepIcon/StepIcon.d.ts b/packages/mui-material/src/StepIcon/StepIcon.d.ts index 4f0c11140ae708..d71906a033977e 100644 --- a/packages/mui-material/src/StepIcon/StepIcon.d.ts +++ b/packages/mui-material/src/StepIcon/StepIcon.d.ts @@ -47,4 +47,4 @@ export type StepIconClasskey = keyof NonNullable; * * - [StepIcon API](https://mui.com/material-ui/api/step-icon/) */ -export default function StepIcon(props: StepIconProps): JSX.Element; +export default function StepIcon(props: StepIconProps): React.JSX.Element; diff --git a/packages/mui-material/src/StepLabel/StepLabel.d.ts b/packages/mui-material/src/StepLabel/StepLabel.d.ts index c695ac48ef9fe5..f3606a5e8c7b55 100644 --- a/packages/mui-material/src/StepLabel/StepLabel.d.ts +++ b/packages/mui-material/src/StepLabel/StepLabel.d.ts @@ -92,7 +92,7 @@ export type StepLabelClasskey = keyof NonNullable; * * - [StepLabel API](https://mui.com/material-ui/api/step-label/) */ -declare const StepLabel: ((props: StepLabelProps) => JSX.Element) & { +declare const StepLabel: ((props: StepLabelProps) => React.JSX.Element) & { muiName: string; }; diff --git a/packages/mui-material/src/Switch/Switch.d.ts b/packages/mui-material/src/Switch/Switch.d.ts index e4592a27ebfd57..b57cb0aa32fa4c 100644 --- a/packages/mui-material/src/Switch/Switch.d.ts +++ b/packages/mui-material/src/Switch/Switch.d.ts @@ -66,4 +66,4 @@ export interface SwitchProps * - [Switch API](https://mui.com/material-ui/api/switch/) * - inherits [IconButton API](https://mui.com/material-ui/api/icon-button/) */ -export default function Switch(props: SwitchProps): JSX.Element; +export default function Switch(props: SwitchProps): React.JSX.Element; diff --git a/packages/mui-material/src/Tab/Tab.d.ts b/packages/mui-material/src/Tab/Tab.d.ts index dc19a6eed31db4..f4885f67009c07 100644 --- a/packages/mui-material/src/Tab/Tab.d.ts +++ b/packages/mui-material/src/Tab/Tab.d.ts @@ -28,7 +28,7 @@ export interface TabOwnProps { /** * The icon to display. */ - icon?: string | React.ReactElement; + icon?: string | React.ReactElement; /** * The position of the icon relative to the label. * @default 'top' diff --git a/packages/mui-material/src/TabScrollButton/TabScrollButton.d.ts b/packages/mui-material/src/TabScrollButton/TabScrollButton.d.ts index e8d396e4a49b12..e755333b88ed82 100644 --- a/packages/mui-material/src/TabScrollButton/TabScrollButton.d.ts +++ b/packages/mui-material/src/TabScrollButton/TabScrollButton.d.ts @@ -75,4 +75,4 @@ export interface TabScrollButtonProps extends ButtonBaseProps { * * - [TabScrollButton API](https://mui.com/material-ui/api/tab-scroll-button/) */ -export default function TabScrollButton(props: TabScrollButtonProps): JSX.Element; +export default function TabScrollButton(props: TabScrollButtonProps): React.JSX.Element; diff --git a/packages/mui-material/src/TableCell/TableCell.d.ts b/packages/mui-material/src/TableCell/TableCell.d.ts index a702716b8e456f..0a5de08842ca09 100644 --- a/packages/mui-material/src/TableCell/TableCell.d.ts +++ b/packages/mui-material/src/TableCell/TableCell.d.ts @@ -83,4 +83,4 @@ export type SortDirection = 'asc' | 'desc' | false; * * - [TableCell API](https://mui.com/material-ui/api/table-cell/) */ -export default function TableCell(props: TableCellProps): JSX.Element; +export default function TableCell(props: TableCellProps): React.JSX.Element; diff --git a/packages/mui-material/src/TextField/TextField.d.ts b/packages/mui-material/src/TextField/TextField.d.ts index 84c910a3e11599..eaa9d2ab97c03d 100644 --- a/packages/mui-material/src/TextField/TextField.d.ts +++ b/packages/mui-material/src/TextField/TextField.d.ts @@ -340,4 +340,4 @@ export default function TextField( */ variant?: Variant; } & Omit, -): JSX.Element; +): React.JSX.Element; diff --git a/packages/mui-material/src/ToggleButtonGroup/ToggleButtonGroup.d.ts b/packages/mui-material/src/ToggleButtonGroup/ToggleButtonGroup.d.ts index 2ba480dca945d4..dee8f289b5553b 100644 --- a/packages/mui-material/src/ToggleButtonGroup/ToggleButtonGroup.d.ts +++ b/packages/mui-material/src/ToggleButtonGroup/ToggleButtonGroup.d.ts @@ -86,4 +86,4 @@ export interface ToggleButtonGroupProps * * - [ToggleButtonGroup API](https://mui.com/material-ui/api/toggle-button-group/) */ -export default function ToggleButtonGroup(props: ToggleButtonGroupProps): JSX.Element; +export default function ToggleButtonGroup(props: ToggleButtonGroupProps): React.JSX.Element; diff --git a/packages/mui-material/src/Tooltip/Tooltip.d.ts b/packages/mui-material/src/Tooltip/Tooltip.d.ts index a6f699533ec61f..9991be721dcccc 100644 --- a/packages/mui-material/src/Tooltip/Tooltip.d.ts +++ b/packages/mui-material/src/Tooltip/Tooltip.d.ts @@ -24,8 +24,7 @@ export interface TooltipProps extends StandardProps { ...props }: TypographyProps & { maxLines?: number; - }): JSX.Element => { + }): React.JSX.Element => { return ( { let originalMatchmedia; diff --git a/packages/mui-material/src/styles/CssVarsProvider.tsx b/packages/mui-material/src/styles/CssVarsProvider.tsx index e7779777a3094c..06c0ad33302fda 100644 --- a/packages/mui-material/src/styles/CssVarsProvider.tsx +++ b/packages/mui-material/src/styles/CssVarsProvider.tsx @@ -1,18 +1,12 @@ 'use client'; -// do not remove the following import (https://github.com/microsoft/TypeScript/issues/29808#issuecomment-1320713018) -/* eslint-disable @typescript-eslint/no-unused-vars */ -// @ts-ignore import * as React from 'react'; import { unstable_createCssVarsProvider as createCssVarsProvider, SxProps } from '@mui/system'; import styleFunctionSx from '@mui/system/styleFunctionSx'; -import experimental_extendTheme, { - SupportedColorScheme, - CssVarsTheme, -} from './experimental_extendTheme'; +import extendTheme, { SupportedColorScheme, CssVarsTheme } from './extendTheme'; import createTypography from './createTypography'; import THEME_ID from './identifier'; -const defaultTheme = experimental_extendTheme(); +const defaultTheme = extendTheme(); const { CssVarsProvider, useColorScheme, getInitColorSchemeScript } = createCssVarsProvider< SupportedColorScheme, @@ -41,8 +35,23 @@ const { CssVarsProvider, useColorScheme, getInitColorSchemeScript } = createCssV }, }); -export { - useColorScheme, - getInitColorSchemeScript, - CssVarsProvider as Experimental_CssVarsProvider, -}; +let warnedOnce = false; + +// eslint-disable-next-line @typescript-eslint/naming-convention +function Experimental_CssVarsProvider(props: any) { + if (!warnedOnce) { + console.warn( + [ + 'MUI: The Experimental_CssVarsProvider component has been stabilized.', + '', + "You should use `import { CssVarsProvider } from '@mui/material/styles'`", + ].join('\n'), + ); + + warnedOnce = true; + } + + return ; +} + +export { useColorScheme, getInitColorSchemeScript, CssVarsProvider, Experimental_CssVarsProvider }; diff --git a/packages/mui-material/src/styles/experimental_extendTheme.js b/packages/mui-material/src/styles/experimental_extendTheme.js index 8dea1c19f7ef61..3ead445e2bd92a 100644 --- a/packages/mui-material/src/styles/experimental_extendTheme.js +++ b/packages/mui-material/src/styles/experimental_extendTheme.js @@ -1,452 +1,19 @@ -import deepmerge from '@mui/utils/deepmerge'; -import { unstable_createGetCssVar as systemCreateGetCssVar, createSpacing } from '@mui/system'; -import { createUnarySpacing } from '@mui/system/spacing'; -import { prepareCssVars, prepareTypographyVars } from '@mui/system/cssVars'; -import styleFunctionSx, { - unstable_defaultSxConfig as defaultSxConfig, -} from '@mui/system/styleFunctionSx'; - -import { - private_safeColorChannel as safeColorChannel, - private_safeAlpha as safeAlpha, - private_safeDarken as safeDarken, - private_safeLighten as safeLighten, - private_safeEmphasize as safeEmphasize, - hslToRgb, -} from '@mui/system/colorManipulator'; - -import defaultShouldSkipGeneratingVar from './shouldSkipGeneratingVar'; -import createThemeWithoutVars from './createTheme'; -import getOverlayAlpha from './getOverlayAlpha'; -import defaultGetSelector from './createGetSelector'; - -const defaultDarkOverlays = [...Array(25)].map((_, index) => { - if (index === 0) { - return undefined; - } - const overlay = getOverlayAlpha(index); - return `linear-gradient(rgba(255 255 255 / ${overlay}), rgba(255 255 255 / ${overlay}))`; -}); - -function assignNode(obj, keys) { - keys.forEach((k) => { - if (!obj[k]) { - obj[k] = {}; - } - }); -} - -function setColor(obj, key, defaultValue) { - if (!obj[key] && defaultValue) { - obj[key] = defaultValue; - } -} - -function toRgb(color) { - if (!color || !color.startsWith('hsl')) { - return color; - } - return hslToRgb(color); -} - -function setColorChannel(obj, key) { - if (!(`${key}Channel` in obj)) { - // custom channel token is not provided, generate one. - // if channel token can't be generated, show a warning. - obj[`${key}Channel`] = safeColorChannel( - toRgb(obj[key]), - `MUI: Can't create \`palette.${key}Channel\` because \`palette.${key}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` + - '\n' + - `To suppress this warning, you need to explicitly provide the \`palette.${key}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`, +import extendTheme from './extendTheme'; + +let warnedOnce = false; + +export default function deprecatedExtendTheme(...args) { + if (!warnedOnce) { + console.warn( + [ + 'MUI: The `experimental_extendTheme` has been stabilized.', + '', + "You should use `import { extendTheme } from '@mui/material/styles'`", + ].join('\n'), ); - } -} - -function getSpacingVal(spacingInput) { - if (typeof spacingInput === 'number') { - return `${spacingInput}px`; - } - if (typeof spacingInput === 'string') { - return spacingInput; - } - if (typeof spacingInput === 'function') { - return getSpacingVal(spacingInput(1)); - } - if (Array.isArray(spacingInput)) { - return spacingInput; - } - return '8px'; -} -const silent = (fn) => { - try { - return fn(); - } catch (error) { - // ignore error + warnedOnce = true; } - return undefined; -}; - -export const createGetCssVar = (cssVarPrefix = 'mui') => systemCreateGetCssVar(cssVarPrefix); - -export default function extendTheme(options = {}, ...args) { - const { - colorSchemes: colorSchemesInput = {}, - cssVarPrefix = 'mui', - shouldSkipGeneratingVar = defaultShouldSkipGeneratingVar, - getSelector, - ...input - } = options; - const getCssVar = createGetCssVar(cssVarPrefix); - - const { palette: lightPalette, ...muiTheme } = createThemeWithoutVars({ - ...input, - ...(colorSchemesInput.light && { palette: colorSchemesInput.light?.palette }), - }); - const { palette: darkPalette } = createThemeWithoutVars({ - palette: { mode: 'dark', ...colorSchemesInput.dark?.palette }, - }); - - let theme = { - defaultColorScheme: 'light', - ...muiTheme, - cssVarPrefix, - getCssVar, - colorSchemes: { - ...colorSchemesInput, - light: { - ...colorSchemesInput.light, - palette: lightPalette, - opacity: { - inputPlaceholder: 0.42, - inputUnderline: 0.42, - switchTrackDisabled: 0.12, - switchTrack: 0.38, - ...colorSchemesInput.light?.opacity, - }, - overlays: colorSchemesInput.light?.overlays || [], - }, - dark: { - ...colorSchemesInput.dark, - palette: darkPalette, - opacity: { - inputPlaceholder: 0.5, - inputUnderline: 0.7, - switchTrackDisabled: 0.2, - switchTrack: 0.3, - ...colorSchemesInput.dark?.opacity, - }, - overlays: colorSchemesInput.dark?.overlays || defaultDarkOverlays, - }, - }, - font: { ...prepareTypographyVars(muiTheme.typography), ...muiTheme.font }, - spacing: getSpacingVal(input.spacing), - }; - - Object.keys(theme.colorSchemes).forEach((key) => { - const palette = theme.colorSchemes[key].palette; - - const setCssVarColor = (cssVar) => { - const tokens = cssVar.split('-'); - const color = tokens[1]; - const colorToken = tokens[2]; - return getCssVar(cssVar, palette[color][colorToken]); - }; - - // attach black & white channels to common node - if (key === 'light') { - setColor(palette.common, 'background', '#fff'); - setColor(palette.common, 'onBackground', '#000'); - } else { - setColor(palette.common, 'background', '#000'); - setColor(palette.common, 'onBackground', '#fff'); - } - - // assign component variables - assignNode(palette, [ - 'Alert', - 'AppBar', - 'Avatar', - 'Button', - 'Chip', - 'FilledInput', - 'LinearProgress', - 'Skeleton', - 'Slider', - 'SnackbarContent', - 'SpeedDialAction', - 'StepConnector', - 'StepContent', - 'Switch', - 'TableCell', - 'Tooltip', - ]); - if (key === 'light') { - setColor(palette.Alert, 'errorColor', safeDarken(palette.error.light, 0.6)); - setColor(palette.Alert, 'infoColor', safeDarken(palette.info.light, 0.6)); - setColor(palette.Alert, 'successColor', safeDarken(palette.success.light, 0.6)); - setColor(palette.Alert, 'warningColor', safeDarken(palette.warning.light, 0.6)); - setColor(palette.Alert, 'errorFilledBg', setCssVarColor('palette-error-main')); - setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-main')); - setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-main')); - setColor(palette.Alert, 'warningFilledBg', setCssVarColor('palette-warning-main')); - setColor( - palette.Alert, - 'errorFilledColor', - silent(() => lightPalette.getContrastText(palette.error.main)), - ); - setColor( - palette.Alert, - 'infoFilledColor', - silent(() => lightPalette.getContrastText(palette.info.main)), - ); - setColor( - palette.Alert, - 'successFilledColor', - silent(() => lightPalette.getContrastText(palette.success.main)), - ); - setColor( - palette.Alert, - 'warningFilledColor', - silent(() => lightPalette.getContrastText(palette.warning.main)), - ); - setColor(palette.Alert, 'errorStandardBg', safeLighten(palette.error.light, 0.9)); - setColor(palette.Alert, 'infoStandardBg', safeLighten(palette.info.light, 0.9)); - setColor(palette.Alert, 'successStandardBg', safeLighten(palette.success.light, 0.9)); - setColor(palette.Alert, 'warningStandardBg', safeLighten(palette.warning.light, 0.9)); - setColor(palette.Alert, 'errorIconColor', setCssVarColor('palette-error-main')); - setColor(palette.Alert, 'infoIconColor', setCssVarColor('palette-info-main')); - setColor(palette.Alert, 'successIconColor', setCssVarColor('palette-success-main')); - setColor(palette.Alert, 'warningIconColor', setCssVarColor('palette-warning-main')); - setColor(palette.AppBar, 'defaultBg', setCssVarColor('palette-grey-100')); - setColor(palette.Avatar, 'defaultBg', setCssVarColor('palette-grey-400')); - setColor(palette.Button, 'inheritContainedBg', setCssVarColor('palette-grey-300')); - setColor(palette.Button, 'inheritContainedHoverBg', setCssVarColor('palette-grey-A100')); - setColor(palette.Chip, 'defaultBorder', setCssVarColor('palette-grey-400')); - setColor(palette.Chip, 'defaultAvatarColor', setCssVarColor('palette-grey-700')); - setColor(palette.Chip, 'defaultIconColor', setCssVarColor('palette-grey-700')); - setColor(palette.FilledInput, 'bg', 'rgba(0, 0, 0, 0.06)'); - setColor(palette.FilledInput, 'hoverBg', 'rgba(0, 0, 0, 0.09)'); - setColor(palette.FilledInput, 'disabledBg', 'rgba(0, 0, 0, 0.12)'); - setColor(palette.LinearProgress, 'primaryBg', safeLighten(palette.primary.main, 0.62)); - setColor(palette.LinearProgress, 'secondaryBg', safeLighten(palette.secondary.main, 0.62)); - setColor(palette.LinearProgress, 'errorBg', safeLighten(palette.error.main, 0.62)); - setColor(palette.LinearProgress, 'infoBg', safeLighten(palette.info.main, 0.62)); - setColor(palette.LinearProgress, 'successBg', safeLighten(palette.success.main, 0.62)); - setColor(palette.LinearProgress, 'warningBg', safeLighten(palette.warning.main, 0.62)); - setColor( - palette.Skeleton, - 'bg', - `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.11)`, - ); - setColor(palette.Slider, 'primaryTrack', safeLighten(palette.primary.main, 0.62)); - setColor(palette.Slider, 'secondaryTrack', safeLighten(palette.secondary.main, 0.62)); - setColor(palette.Slider, 'errorTrack', safeLighten(palette.error.main, 0.62)); - setColor(palette.Slider, 'infoTrack', safeLighten(palette.info.main, 0.62)); - setColor(palette.Slider, 'successTrack', safeLighten(palette.success.main, 0.62)); - setColor(palette.Slider, 'warningTrack', safeLighten(palette.warning.main, 0.62)); - const snackbarContentBackground = safeEmphasize(palette.background.default, 0.8); - setColor(palette.SnackbarContent, 'bg', snackbarContentBackground); - setColor( - palette.SnackbarContent, - 'color', - silent(() => lightPalette.getContrastText(snackbarContentBackground)), - ); - setColor( - palette.SpeedDialAction, - 'fabHoverBg', - safeEmphasize(palette.background.paper, 0.15), - ); - setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-400')); - setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-400')); - setColor(palette.Switch, 'defaultColor', setCssVarColor('palette-common-white')); - setColor(palette.Switch, 'defaultDisabledColor', setCssVarColor('palette-grey-100')); - setColor(palette.Switch, 'primaryDisabledColor', safeLighten(palette.primary.main, 0.62)); - setColor(palette.Switch, 'secondaryDisabledColor', safeLighten(palette.secondary.main, 0.62)); - setColor(palette.Switch, 'errorDisabledColor', safeLighten(palette.error.main, 0.62)); - setColor(palette.Switch, 'infoDisabledColor', safeLighten(palette.info.main, 0.62)); - setColor(palette.Switch, 'successDisabledColor', safeLighten(palette.success.main, 0.62)); - setColor(palette.Switch, 'warningDisabledColor', safeLighten(palette.warning.main, 0.62)); - setColor(palette.TableCell, 'border', safeLighten(safeAlpha(palette.divider, 1), 0.88)); - setColor(palette.Tooltip, 'bg', safeAlpha(palette.grey[700], 0.92)); - } else { - setColor(palette.Alert, 'errorColor', safeLighten(palette.error.light, 0.6)); - setColor(palette.Alert, 'infoColor', safeLighten(palette.info.light, 0.6)); - setColor(palette.Alert, 'successColor', safeLighten(palette.success.light, 0.6)); - setColor(palette.Alert, 'warningColor', safeLighten(palette.warning.light, 0.6)); - setColor(palette.Alert, 'errorFilledBg', setCssVarColor('palette-error-dark')); - setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-dark')); - setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-dark')); - setColor(palette.Alert, 'warningFilledBg', setCssVarColor('palette-warning-dark')); - setColor( - palette.Alert, - 'errorFilledColor', - silent(() => darkPalette.getContrastText(palette.error.dark)), - ); - setColor( - palette.Alert, - 'infoFilledColor', - silent(() => darkPalette.getContrastText(palette.info.dark)), - ); - setColor( - palette.Alert, - 'successFilledColor', - silent(() => darkPalette.getContrastText(palette.success.dark)), - ); - setColor( - palette.Alert, - 'warningFilledColor', - silent(() => darkPalette.getContrastText(palette.warning.dark)), - ); - setColor(palette.Alert, 'errorStandardBg', safeDarken(palette.error.light, 0.9)); - setColor(palette.Alert, 'infoStandardBg', safeDarken(palette.info.light, 0.9)); - setColor(palette.Alert, 'successStandardBg', safeDarken(palette.success.light, 0.9)); - setColor(palette.Alert, 'warningStandardBg', safeDarken(palette.warning.light, 0.9)); - setColor(palette.Alert, 'errorIconColor', setCssVarColor('palette-error-main')); - setColor(palette.Alert, 'infoIconColor', setCssVarColor('palette-info-main')); - setColor(palette.Alert, 'successIconColor', setCssVarColor('palette-success-main')); - setColor(palette.Alert, 'warningIconColor', setCssVarColor('palette-warning-main')); - setColor(palette.AppBar, 'defaultBg', setCssVarColor('palette-grey-900')); - setColor(palette.AppBar, 'darkBg', setCssVarColor('palette-background-paper')); // specific for dark mode - setColor(palette.AppBar, 'darkColor', setCssVarColor('palette-text-primary')); // specific for dark mode - setColor(palette.Avatar, 'defaultBg', setCssVarColor('palette-grey-600')); - setColor(palette.Button, 'inheritContainedBg', setCssVarColor('palette-grey-800')); - setColor(palette.Button, 'inheritContainedHoverBg', setCssVarColor('palette-grey-700')); - setColor(palette.Chip, 'defaultBorder', setCssVarColor('palette-grey-700')); - setColor(palette.Chip, 'defaultAvatarColor', setCssVarColor('palette-grey-300')); - setColor(palette.Chip, 'defaultIconColor', setCssVarColor('palette-grey-300')); - setColor(palette.FilledInput, 'bg', 'rgba(255, 255, 255, 0.09)'); - setColor(palette.FilledInput, 'hoverBg', 'rgba(255, 255, 255, 0.13)'); - setColor(palette.FilledInput, 'disabledBg', 'rgba(255, 255, 255, 0.12)'); - setColor(palette.LinearProgress, 'primaryBg', safeDarken(palette.primary.main, 0.5)); - setColor(palette.LinearProgress, 'secondaryBg', safeDarken(palette.secondary.main, 0.5)); - setColor(palette.LinearProgress, 'errorBg', safeDarken(palette.error.main, 0.5)); - setColor(palette.LinearProgress, 'infoBg', safeDarken(palette.info.main, 0.5)); - setColor(palette.LinearProgress, 'successBg', safeDarken(palette.success.main, 0.5)); - setColor(palette.LinearProgress, 'warningBg', safeDarken(palette.warning.main, 0.5)); - setColor( - palette.Skeleton, - 'bg', - `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.13)`, - ); - setColor(palette.Slider, 'primaryTrack', safeDarken(palette.primary.main, 0.5)); - setColor(palette.Slider, 'secondaryTrack', safeDarken(palette.secondary.main, 0.5)); - setColor(palette.Slider, 'errorTrack', safeDarken(palette.error.main, 0.5)); - setColor(palette.Slider, 'infoTrack', safeDarken(palette.info.main, 0.5)); - setColor(palette.Slider, 'successTrack', safeDarken(palette.success.main, 0.5)); - setColor(palette.Slider, 'warningTrack', safeDarken(palette.warning.main, 0.5)); - const snackbarContentBackground = safeEmphasize(palette.background.default, 0.98); - setColor(palette.SnackbarContent, 'bg', snackbarContentBackground); - setColor( - palette.SnackbarContent, - 'color', - silent(() => darkPalette.getContrastText(snackbarContentBackground)), - ); - setColor( - palette.SpeedDialAction, - 'fabHoverBg', - safeEmphasize(palette.background.paper, 0.15), - ); - setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-600')); - setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-600')); - setColor(palette.Switch, 'defaultColor', setCssVarColor('palette-grey-300')); - setColor(palette.Switch, 'defaultDisabledColor', setCssVarColor('palette-grey-600')); - setColor(palette.Switch, 'primaryDisabledColor', safeDarken(palette.primary.main, 0.55)); - setColor(palette.Switch, 'secondaryDisabledColor', safeDarken(palette.secondary.main, 0.55)); - setColor(palette.Switch, 'errorDisabledColor', safeDarken(palette.error.main, 0.55)); - setColor(palette.Switch, 'infoDisabledColor', safeDarken(palette.info.main, 0.55)); - setColor(palette.Switch, 'successDisabledColor', safeDarken(palette.success.main, 0.55)); - setColor(palette.Switch, 'warningDisabledColor', safeDarken(palette.warning.main, 0.55)); - setColor(palette.TableCell, 'border', safeDarken(safeAlpha(palette.divider, 1), 0.68)); - setColor(palette.Tooltip, 'bg', safeAlpha(palette.grey[700], 0.92)); - } - - // MUI X - DataGrid needs this token. - setColorChannel(palette.background, 'default'); - - // added for consistency with the `background.default` token - setColorChannel(palette.background, 'paper'); - - setColorChannel(palette.common, 'background'); - setColorChannel(palette.common, 'onBackground'); - - setColorChannel(palette, 'divider'); - - Object.keys(palette).forEach((color) => { - const colors = palette[color]; - - // The default palettes (primary, secondary, error, info, success, and warning) errors are handled by the above `createTheme(...)`. - - if (colors && typeof colors === 'object') { - // Silent the error for custom palettes. - if (colors.main) { - setColor(palette[color], 'mainChannel', safeColorChannel(toRgb(colors.main))); - } - if (colors.light) { - setColor(palette[color], 'lightChannel', safeColorChannel(toRgb(colors.light))); - } - if (colors.dark) { - setColor(palette[color], 'darkChannel', safeColorChannel(toRgb(colors.dark))); - } - if (colors.contrastText) { - setColor( - palette[color], - 'contrastTextChannel', - safeColorChannel(toRgb(colors.contrastText)), - ); - } - - if (color === 'text') { - // Text colors: text.primary, text.secondary - setColorChannel(palette[color], 'primary'); - setColorChannel(palette[color], 'secondary'); - } - - if (color === 'action') { - // Action colors: action.active, action.selected - if (colors.active) { - setColorChannel(palette[color], 'active'); - } - if (colors.selected) { - setColorChannel(palette[color], 'selected'); - } - } - } - }); - }); - - theme = args.reduce((acc, argument) => deepmerge(acc, argument), theme); - - const parserConfig = { - prefix: cssVarPrefix, - shouldSkipGeneratingVar, - getSelector: getSelector || defaultGetSelector(theme), - }; - const { vars, generateThemeVars, generateStyleSheets } = prepareCssVars(theme, parserConfig); - theme.attribute = 'data-mui-color-scheme'; - theme.colorSchemeSelector = ':root'; - theme.vars = vars; - Object.entries(theme.colorSchemes[theme.defaultColorScheme]).forEach(([key, value]) => { - theme[key] = value; - }); - theme.generateThemeVars = generateThemeVars; - theme.generateStyleSheets = generateStyleSheets; - theme.generateSpacing = function generateSpacing() { - return createSpacing(input.spacing, createUnarySpacing(this)); - }; - theme.getColorSchemeSelector = (colorScheme) => `[${theme.attribute}="${colorScheme}"] &`; - theme.spacing = theme.generateSpacing(); - theme.shouldSkipGeneratingVar = shouldSkipGeneratingVar; - theme.unstable_sxConfig = { - ...defaultSxConfig, - ...input?.unstable_sxConfig, - }; - theme.unstable_sx = function sx(props) { - return styleFunctionSx({ - sx: props, - theme: this, - }); - }; - return theme; + return extendTheme(...args); } diff --git a/packages/mui-material/src/styles/experimental_extendTheme.d.ts b/packages/mui-material/src/styles/extendTheme.d.ts similarity index 99% rename from packages/mui-material/src/styles/experimental_extendTheme.d.ts rename to packages/mui-material/src/styles/extendTheme.d.ts index b82af5287cf4aa..6a01d0dae59322 100644 --- a/packages/mui-material/src/styles/experimental_extendTheme.d.ts +++ b/packages/mui-material/src/styles/extendTheme.d.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/naming-convention */ import { OverridableStringUnion } from '@mui/types'; import { SxConfig, SxProps, CSSObject, ApplyStyles } from '@mui/system'; import { ExtractTypographyTokens } from '@mui/system/cssVars'; @@ -465,7 +464,7 @@ export interface CssVarsTheme extends ColorSystem { * @param args Deep merge the arguments with the about to be returned theme. * @returns A complete, ready-to-use theme object. */ -export default function experimental_extendTheme( +export default function extendTheme( options?: CssVarsThemeOptions, ...args: object[] ): Omit & CssVarsTheme; diff --git a/packages/mui-material/src/styles/extendTheme.js b/packages/mui-material/src/styles/extendTheme.js new file mode 100644 index 00000000000000..8dea1c19f7ef61 --- /dev/null +++ b/packages/mui-material/src/styles/extendTheme.js @@ -0,0 +1,452 @@ +import deepmerge from '@mui/utils/deepmerge'; +import { unstable_createGetCssVar as systemCreateGetCssVar, createSpacing } from '@mui/system'; +import { createUnarySpacing } from '@mui/system/spacing'; +import { prepareCssVars, prepareTypographyVars } from '@mui/system/cssVars'; +import styleFunctionSx, { + unstable_defaultSxConfig as defaultSxConfig, +} from '@mui/system/styleFunctionSx'; + +import { + private_safeColorChannel as safeColorChannel, + private_safeAlpha as safeAlpha, + private_safeDarken as safeDarken, + private_safeLighten as safeLighten, + private_safeEmphasize as safeEmphasize, + hslToRgb, +} from '@mui/system/colorManipulator'; + +import defaultShouldSkipGeneratingVar from './shouldSkipGeneratingVar'; +import createThemeWithoutVars from './createTheme'; +import getOverlayAlpha from './getOverlayAlpha'; +import defaultGetSelector from './createGetSelector'; + +const defaultDarkOverlays = [...Array(25)].map((_, index) => { + if (index === 0) { + return undefined; + } + const overlay = getOverlayAlpha(index); + return `linear-gradient(rgba(255 255 255 / ${overlay}), rgba(255 255 255 / ${overlay}))`; +}); + +function assignNode(obj, keys) { + keys.forEach((k) => { + if (!obj[k]) { + obj[k] = {}; + } + }); +} + +function setColor(obj, key, defaultValue) { + if (!obj[key] && defaultValue) { + obj[key] = defaultValue; + } +} + +function toRgb(color) { + if (!color || !color.startsWith('hsl')) { + return color; + } + return hslToRgb(color); +} + +function setColorChannel(obj, key) { + if (!(`${key}Channel` in obj)) { + // custom channel token is not provided, generate one. + // if channel token can't be generated, show a warning. + obj[`${key}Channel`] = safeColorChannel( + toRgb(obj[key]), + `MUI: Can't create \`palette.${key}Channel\` because \`palette.${key}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` + + '\n' + + `To suppress this warning, you need to explicitly provide the \`palette.${key}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`, + ); + } +} + +function getSpacingVal(spacingInput) { + if (typeof spacingInput === 'number') { + return `${spacingInput}px`; + } + if (typeof spacingInput === 'string') { + return spacingInput; + } + if (typeof spacingInput === 'function') { + return getSpacingVal(spacingInput(1)); + } + if (Array.isArray(spacingInput)) { + return spacingInput; + } + return '8px'; +} + +const silent = (fn) => { + try { + return fn(); + } catch (error) { + // ignore error + } + return undefined; +}; + +export const createGetCssVar = (cssVarPrefix = 'mui') => systemCreateGetCssVar(cssVarPrefix); + +export default function extendTheme(options = {}, ...args) { + const { + colorSchemes: colorSchemesInput = {}, + cssVarPrefix = 'mui', + shouldSkipGeneratingVar = defaultShouldSkipGeneratingVar, + getSelector, + ...input + } = options; + const getCssVar = createGetCssVar(cssVarPrefix); + + const { palette: lightPalette, ...muiTheme } = createThemeWithoutVars({ + ...input, + ...(colorSchemesInput.light && { palette: colorSchemesInput.light?.palette }), + }); + const { palette: darkPalette } = createThemeWithoutVars({ + palette: { mode: 'dark', ...colorSchemesInput.dark?.palette }, + }); + + let theme = { + defaultColorScheme: 'light', + ...muiTheme, + cssVarPrefix, + getCssVar, + colorSchemes: { + ...colorSchemesInput, + light: { + ...colorSchemesInput.light, + palette: lightPalette, + opacity: { + inputPlaceholder: 0.42, + inputUnderline: 0.42, + switchTrackDisabled: 0.12, + switchTrack: 0.38, + ...colorSchemesInput.light?.opacity, + }, + overlays: colorSchemesInput.light?.overlays || [], + }, + dark: { + ...colorSchemesInput.dark, + palette: darkPalette, + opacity: { + inputPlaceholder: 0.5, + inputUnderline: 0.7, + switchTrackDisabled: 0.2, + switchTrack: 0.3, + ...colorSchemesInput.dark?.opacity, + }, + overlays: colorSchemesInput.dark?.overlays || defaultDarkOverlays, + }, + }, + font: { ...prepareTypographyVars(muiTheme.typography), ...muiTheme.font }, + spacing: getSpacingVal(input.spacing), + }; + + Object.keys(theme.colorSchemes).forEach((key) => { + const palette = theme.colorSchemes[key].palette; + + const setCssVarColor = (cssVar) => { + const tokens = cssVar.split('-'); + const color = tokens[1]; + const colorToken = tokens[2]; + return getCssVar(cssVar, palette[color][colorToken]); + }; + + // attach black & white channels to common node + if (key === 'light') { + setColor(palette.common, 'background', '#fff'); + setColor(palette.common, 'onBackground', '#000'); + } else { + setColor(palette.common, 'background', '#000'); + setColor(palette.common, 'onBackground', '#fff'); + } + + // assign component variables + assignNode(palette, [ + 'Alert', + 'AppBar', + 'Avatar', + 'Button', + 'Chip', + 'FilledInput', + 'LinearProgress', + 'Skeleton', + 'Slider', + 'SnackbarContent', + 'SpeedDialAction', + 'StepConnector', + 'StepContent', + 'Switch', + 'TableCell', + 'Tooltip', + ]); + if (key === 'light') { + setColor(palette.Alert, 'errorColor', safeDarken(palette.error.light, 0.6)); + setColor(palette.Alert, 'infoColor', safeDarken(palette.info.light, 0.6)); + setColor(palette.Alert, 'successColor', safeDarken(palette.success.light, 0.6)); + setColor(palette.Alert, 'warningColor', safeDarken(palette.warning.light, 0.6)); + setColor(palette.Alert, 'errorFilledBg', setCssVarColor('palette-error-main')); + setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-main')); + setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-main')); + setColor(palette.Alert, 'warningFilledBg', setCssVarColor('palette-warning-main')); + setColor( + palette.Alert, + 'errorFilledColor', + silent(() => lightPalette.getContrastText(palette.error.main)), + ); + setColor( + palette.Alert, + 'infoFilledColor', + silent(() => lightPalette.getContrastText(palette.info.main)), + ); + setColor( + palette.Alert, + 'successFilledColor', + silent(() => lightPalette.getContrastText(palette.success.main)), + ); + setColor( + palette.Alert, + 'warningFilledColor', + silent(() => lightPalette.getContrastText(palette.warning.main)), + ); + setColor(palette.Alert, 'errorStandardBg', safeLighten(palette.error.light, 0.9)); + setColor(palette.Alert, 'infoStandardBg', safeLighten(palette.info.light, 0.9)); + setColor(palette.Alert, 'successStandardBg', safeLighten(palette.success.light, 0.9)); + setColor(palette.Alert, 'warningStandardBg', safeLighten(palette.warning.light, 0.9)); + setColor(palette.Alert, 'errorIconColor', setCssVarColor('palette-error-main')); + setColor(palette.Alert, 'infoIconColor', setCssVarColor('palette-info-main')); + setColor(palette.Alert, 'successIconColor', setCssVarColor('palette-success-main')); + setColor(palette.Alert, 'warningIconColor', setCssVarColor('palette-warning-main')); + setColor(palette.AppBar, 'defaultBg', setCssVarColor('palette-grey-100')); + setColor(palette.Avatar, 'defaultBg', setCssVarColor('palette-grey-400')); + setColor(palette.Button, 'inheritContainedBg', setCssVarColor('palette-grey-300')); + setColor(palette.Button, 'inheritContainedHoverBg', setCssVarColor('palette-grey-A100')); + setColor(palette.Chip, 'defaultBorder', setCssVarColor('palette-grey-400')); + setColor(palette.Chip, 'defaultAvatarColor', setCssVarColor('palette-grey-700')); + setColor(palette.Chip, 'defaultIconColor', setCssVarColor('palette-grey-700')); + setColor(palette.FilledInput, 'bg', 'rgba(0, 0, 0, 0.06)'); + setColor(palette.FilledInput, 'hoverBg', 'rgba(0, 0, 0, 0.09)'); + setColor(palette.FilledInput, 'disabledBg', 'rgba(0, 0, 0, 0.12)'); + setColor(palette.LinearProgress, 'primaryBg', safeLighten(palette.primary.main, 0.62)); + setColor(palette.LinearProgress, 'secondaryBg', safeLighten(palette.secondary.main, 0.62)); + setColor(palette.LinearProgress, 'errorBg', safeLighten(palette.error.main, 0.62)); + setColor(palette.LinearProgress, 'infoBg', safeLighten(palette.info.main, 0.62)); + setColor(palette.LinearProgress, 'successBg', safeLighten(palette.success.main, 0.62)); + setColor(palette.LinearProgress, 'warningBg', safeLighten(palette.warning.main, 0.62)); + setColor( + palette.Skeleton, + 'bg', + `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.11)`, + ); + setColor(palette.Slider, 'primaryTrack', safeLighten(palette.primary.main, 0.62)); + setColor(palette.Slider, 'secondaryTrack', safeLighten(palette.secondary.main, 0.62)); + setColor(palette.Slider, 'errorTrack', safeLighten(palette.error.main, 0.62)); + setColor(palette.Slider, 'infoTrack', safeLighten(palette.info.main, 0.62)); + setColor(palette.Slider, 'successTrack', safeLighten(palette.success.main, 0.62)); + setColor(palette.Slider, 'warningTrack', safeLighten(palette.warning.main, 0.62)); + const snackbarContentBackground = safeEmphasize(palette.background.default, 0.8); + setColor(palette.SnackbarContent, 'bg', snackbarContentBackground); + setColor( + palette.SnackbarContent, + 'color', + silent(() => lightPalette.getContrastText(snackbarContentBackground)), + ); + setColor( + palette.SpeedDialAction, + 'fabHoverBg', + safeEmphasize(palette.background.paper, 0.15), + ); + setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-400')); + setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-400')); + setColor(palette.Switch, 'defaultColor', setCssVarColor('palette-common-white')); + setColor(palette.Switch, 'defaultDisabledColor', setCssVarColor('palette-grey-100')); + setColor(palette.Switch, 'primaryDisabledColor', safeLighten(palette.primary.main, 0.62)); + setColor(palette.Switch, 'secondaryDisabledColor', safeLighten(palette.secondary.main, 0.62)); + setColor(palette.Switch, 'errorDisabledColor', safeLighten(palette.error.main, 0.62)); + setColor(palette.Switch, 'infoDisabledColor', safeLighten(palette.info.main, 0.62)); + setColor(palette.Switch, 'successDisabledColor', safeLighten(palette.success.main, 0.62)); + setColor(palette.Switch, 'warningDisabledColor', safeLighten(palette.warning.main, 0.62)); + setColor(palette.TableCell, 'border', safeLighten(safeAlpha(palette.divider, 1), 0.88)); + setColor(palette.Tooltip, 'bg', safeAlpha(palette.grey[700], 0.92)); + } else { + setColor(palette.Alert, 'errorColor', safeLighten(palette.error.light, 0.6)); + setColor(palette.Alert, 'infoColor', safeLighten(palette.info.light, 0.6)); + setColor(palette.Alert, 'successColor', safeLighten(palette.success.light, 0.6)); + setColor(palette.Alert, 'warningColor', safeLighten(palette.warning.light, 0.6)); + setColor(palette.Alert, 'errorFilledBg', setCssVarColor('palette-error-dark')); + setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-dark')); + setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-dark')); + setColor(palette.Alert, 'warningFilledBg', setCssVarColor('palette-warning-dark')); + setColor( + palette.Alert, + 'errorFilledColor', + silent(() => darkPalette.getContrastText(palette.error.dark)), + ); + setColor( + palette.Alert, + 'infoFilledColor', + silent(() => darkPalette.getContrastText(palette.info.dark)), + ); + setColor( + palette.Alert, + 'successFilledColor', + silent(() => darkPalette.getContrastText(palette.success.dark)), + ); + setColor( + palette.Alert, + 'warningFilledColor', + silent(() => darkPalette.getContrastText(palette.warning.dark)), + ); + setColor(palette.Alert, 'errorStandardBg', safeDarken(palette.error.light, 0.9)); + setColor(palette.Alert, 'infoStandardBg', safeDarken(palette.info.light, 0.9)); + setColor(palette.Alert, 'successStandardBg', safeDarken(palette.success.light, 0.9)); + setColor(palette.Alert, 'warningStandardBg', safeDarken(palette.warning.light, 0.9)); + setColor(palette.Alert, 'errorIconColor', setCssVarColor('palette-error-main')); + setColor(palette.Alert, 'infoIconColor', setCssVarColor('palette-info-main')); + setColor(palette.Alert, 'successIconColor', setCssVarColor('palette-success-main')); + setColor(palette.Alert, 'warningIconColor', setCssVarColor('palette-warning-main')); + setColor(palette.AppBar, 'defaultBg', setCssVarColor('palette-grey-900')); + setColor(palette.AppBar, 'darkBg', setCssVarColor('palette-background-paper')); // specific for dark mode + setColor(palette.AppBar, 'darkColor', setCssVarColor('palette-text-primary')); // specific for dark mode + setColor(palette.Avatar, 'defaultBg', setCssVarColor('palette-grey-600')); + setColor(palette.Button, 'inheritContainedBg', setCssVarColor('palette-grey-800')); + setColor(palette.Button, 'inheritContainedHoverBg', setCssVarColor('palette-grey-700')); + setColor(palette.Chip, 'defaultBorder', setCssVarColor('palette-grey-700')); + setColor(palette.Chip, 'defaultAvatarColor', setCssVarColor('palette-grey-300')); + setColor(palette.Chip, 'defaultIconColor', setCssVarColor('palette-grey-300')); + setColor(palette.FilledInput, 'bg', 'rgba(255, 255, 255, 0.09)'); + setColor(palette.FilledInput, 'hoverBg', 'rgba(255, 255, 255, 0.13)'); + setColor(palette.FilledInput, 'disabledBg', 'rgba(255, 255, 255, 0.12)'); + setColor(palette.LinearProgress, 'primaryBg', safeDarken(palette.primary.main, 0.5)); + setColor(palette.LinearProgress, 'secondaryBg', safeDarken(palette.secondary.main, 0.5)); + setColor(palette.LinearProgress, 'errorBg', safeDarken(palette.error.main, 0.5)); + setColor(palette.LinearProgress, 'infoBg', safeDarken(palette.info.main, 0.5)); + setColor(palette.LinearProgress, 'successBg', safeDarken(palette.success.main, 0.5)); + setColor(palette.LinearProgress, 'warningBg', safeDarken(palette.warning.main, 0.5)); + setColor( + palette.Skeleton, + 'bg', + `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.13)`, + ); + setColor(palette.Slider, 'primaryTrack', safeDarken(palette.primary.main, 0.5)); + setColor(palette.Slider, 'secondaryTrack', safeDarken(palette.secondary.main, 0.5)); + setColor(palette.Slider, 'errorTrack', safeDarken(palette.error.main, 0.5)); + setColor(palette.Slider, 'infoTrack', safeDarken(palette.info.main, 0.5)); + setColor(palette.Slider, 'successTrack', safeDarken(palette.success.main, 0.5)); + setColor(palette.Slider, 'warningTrack', safeDarken(palette.warning.main, 0.5)); + const snackbarContentBackground = safeEmphasize(palette.background.default, 0.98); + setColor(palette.SnackbarContent, 'bg', snackbarContentBackground); + setColor( + palette.SnackbarContent, + 'color', + silent(() => darkPalette.getContrastText(snackbarContentBackground)), + ); + setColor( + palette.SpeedDialAction, + 'fabHoverBg', + safeEmphasize(palette.background.paper, 0.15), + ); + setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-600')); + setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-600')); + setColor(palette.Switch, 'defaultColor', setCssVarColor('palette-grey-300')); + setColor(palette.Switch, 'defaultDisabledColor', setCssVarColor('palette-grey-600')); + setColor(palette.Switch, 'primaryDisabledColor', safeDarken(palette.primary.main, 0.55)); + setColor(palette.Switch, 'secondaryDisabledColor', safeDarken(palette.secondary.main, 0.55)); + setColor(palette.Switch, 'errorDisabledColor', safeDarken(palette.error.main, 0.55)); + setColor(palette.Switch, 'infoDisabledColor', safeDarken(palette.info.main, 0.55)); + setColor(palette.Switch, 'successDisabledColor', safeDarken(palette.success.main, 0.55)); + setColor(palette.Switch, 'warningDisabledColor', safeDarken(palette.warning.main, 0.55)); + setColor(palette.TableCell, 'border', safeDarken(safeAlpha(palette.divider, 1), 0.68)); + setColor(palette.Tooltip, 'bg', safeAlpha(palette.grey[700], 0.92)); + } + + // MUI X - DataGrid needs this token. + setColorChannel(palette.background, 'default'); + + // added for consistency with the `background.default` token + setColorChannel(palette.background, 'paper'); + + setColorChannel(palette.common, 'background'); + setColorChannel(palette.common, 'onBackground'); + + setColorChannel(palette, 'divider'); + + Object.keys(palette).forEach((color) => { + const colors = palette[color]; + + // The default palettes (primary, secondary, error, info, success, and warning) errors are handled by the above `createTheme(...)`. + + if (colors && typeof colors === 'object') { + // Silent the error for custom palettes. + if (colors.main) { + setColor(palette[color], 'mainChannel', safeColorChannel(toRgb(colors.main))); + } + if (colors.light) { + setColor(palette[color], 'lightChannel', safeColorChannel(toRgb(colors.light))); + } + if (colors.dark) { + setColor(palette[color], 'darkChannel', safeColorChannel(toRgb(colors.dark))); + } + if (colors.contrastText) { + setColor( + palette[color], + 'contrastTextChannel', + safeColorChannel(toRgb(colors.contrastText)), + ); + } + + if (color === 'text') { + // Text colors: text.primary, text.secondary + setColorChannel(palette[color], 'primary'); + setColorChannel(palette[color], 'secondary'); + } + + if (color === 'action') { + // Action colors: action.active, action.selected + if (colors.active) { + setColorChannel(palette[color], 'active'); + } + if (colors.selected) { + setColorChannel(palette[color], 'selected'); + } + } + } + }); + }); + + theme = args.reduce((acc, argument) => deepmerge(acc, argument), theme); + + const parserConfig = { + prefix: cssVarPrefix, + shouldSkipGeneratingVar, + getSelector: getSelector || defaultGetSelector(theme), + }; + const { vars, generateThemeVars, generateStyleSheets } = prepareCssVars(theme, parserConfig); + theme.attribute = 'data-mui-color-scheme'; + theme.colorSchemeSelector = ':root'; + theme.vars = vars; + Object.entries(theme.colorSchemes[theme.defaultColorScheme]).forEach(([key, value]) => { + theme[key] = value; + }); + theme.generateThemeVars = generateThemeVars; + theme.generateStyleSheets = generateStyleSheets; + theme.generateSpacing = function generateSpacing() { + return createSpacing(input.spacing, createUnarySpacing(this)); + }; + theme.getColorSchemeSelector = (colorScheme) => `[${theme.attribute}="${colorScheme}"] &`; + theme.spacing = theme.generateSpacing(); + theme.shouldSkipGeneratingVar = shouldSkipGeneratingVar; + theme.unstable_sxConfig = { + ...defaultSxConfig, + ...input?.unstable_sxConfig, + }; + theme.unstable_sx = function sx(props) { + return styleFunctionSx({ + sx: props, + theme: this, + }); + }; + + return theme; +} diff --git a/packages/mui-material/src/styles/experimental_extendTheme.spec.ts b/packages/mui-material/src/styles/extendTheme.spec.ts similarity index 86% rename from packages/mui-material/src/styles/experimental_extendTheme.spec.ts rename to packages/mui-material/src/styles/extendTheme.spec.ts index 96e6b8b89b5256..ae8722c899c93b 100644 --- a/packages/mui-material/src/styles/experimental_extendTheme.spec.ts +++ b/packages/mui-material/src/styles/extendTheme.spec.ts @@ -1,4 +1,4 @@ -import { experimental_extendTheme as extendTheme } from '@mui/material/styles'; +import { extendTheme } from '@mui/material/styles'; const theme = extendTheme(); diff --git a/packages/mui-material/src/styles/experimental_extendTheme.test.js b/packages/mui-material/src/styles/extendTheme.test.js similarity index 99% rename from packages/mui-material/src/styles/experimental_extendTheme.test.js rename to packages/mui-material/src/styles/extendTheme.test.js index 601dc385562a73..a06f9b4eea416c 100644 --- a/packages/mui-material/src/styles/experimental_extendTheme.test.js +++ b/packages/mui-material/src/styles/extendTheme.test.js @@ -2,14 +2,10 @@ import * as React from 'react'; import { expect } from 'chai'; import { createRenderer } from '@mui-internal/test-utils'; import Button from '@mui/material/Button'; -import { - Experimental_CssVarsProvider as CssVarsProvider, - experimental_extendTheme as extendTheme, - styled, -} from '@mui/material/styles'; +import { CssVarsProvider, extendTheme, styled } from '@mui/material/styles'; import { deepOrange, green } from '@mui/material/colors'; -describe('experimental_extendTheme', () => { +describe('extendTheme', () => { let originalMatchmedia; const { render } = createRenderer(); const storage = {}; diff --git a/packages/mui-material/src/styles/index.d.ts b/packages/mui-material/src/styles/index.d.ts index 234aed07d592ce..8db9015025569e 100644 --- a/packages/mui-material/src/styles/index.d.ts +++ b/packages/mui-material/src/styles/index.d.ts @@ -99,7 +99,7 @@ export { default as withTheme } from './withTheme'; export * from './CssVarsProvider'; -export { default as experimental_extendTheme } from './experimental_extendTheme'; +export { default as extendTheme } from './extendTheme'; export type { ColorSchemeOverrides, SupportedColorScheme, @@ -132,7 +132,7 @@ export type { ThemeCssVar, ThemeCssVarOverrides, ColorSystemOptions, -} from './experimental_extendTheme'; +} from './extendTheme'; export { default as getOverlayAlpha } from './getOverlayAlpha'; export { default as shouldSkipGeneratingVar } from './shouldSkipGeneratingVar'; diff --git a/packages/mui-material/src/styles/index.js b/packages/mui-material/src/styles/index.js index 42e3a789b6c13c..82a05b20ac68e6 100644 --- a/packages/mui-material/src/styles/index.js +++ b/packages/mui-material/src/styles/index.js @@ -45,7 +45,8 @@ export { default as withStyles } from './withStyles'; export { default as withTheme } from './withTheme'; export * from './CssVarsProvider'; -export { default as experimental_extendTheme } from './experimental_extendTheme'; +export { default as extendTheme } from './extendTheme'; +export { default as experimental_extendTheme } from './experimental_extendTheme'; // TODO: Remove in v7 export { default as getOverlayAlpha } from './getOverlayAlpha'; export { default as shouldSkipGeneratingVar } from './shouldSkipGeneratingVar'; diff --git a/packages/mui-material/src/styles/responsiveFontSizes.js b/packages/mui-material/src/styles/responsiveFontSizes.js index fe0a5a6eda7d4f..e01b0a3e186c5c 100644 --- a/packages/mui-material/src/styles/responsiveFontSizes.js +++ b/packages/mui-material/src/styles/responsiveFontSizes.js @@ -34,6 +34,11 @@ export default function responsiveFontSizes(themeInput, options = {}) { variants.forEach((variant) => { const style = typography[variant]; + + if (!style) { + return; + } + const remFontSize = parseFloat(convert(style.fontSize, 'rem')); if (remFontSize <= 1) { diff --git a/packages/mui-material/src/styles/responsiveFontSizes.test.js b/packages/mui-material/src/styles/responsiveFontSizes.test.js index 2383c2ecddd6c2..bf7da7e0d2a9ef 100644 --- a/packages/mui-material/src/styles/responsiveFontSizes.test.js +++ b/packages/mui-material/src/styles/responsiveFontSizes.test.js @@ -59,6 +59,19 @@ describe('responsiveFontSizes', () => { }); }); + it('should handle variants that have been reset to undefined', () => { + const theme = createTheme({ + typography: { + h1: undefined, + }, + }); + const { typography } = responsiveFontSizes(theme, { + disableAlign: true, + }); + + expect(typography.h1).to.deep.equal(undefined); + }); + describe('when requesting a responsive typography with non unitless line height and alignment', () => { it('should throw an error, as this is not supported', () => { const theme = createTheme({ diff --git a/packages/mui-material/src/themeCssVarsAugmentation/index.d.ts b/packages/mui-material/src/themeCssVarsAugmentation/index.d.ts index b34facddabf5d9..06f66f75d2088a 100644 --- a/packages/mui-material/src/themeCssVarsAugmentation/index.d.ts +++ b/packages/mui-material/src/themeCssVarsAugmentation/index.d.ts @@ -6,7 +6,7 @@ import type { PaletteColorChannel, PaletteTextChannel, PaletteActionChannel, -} from '../styles/experimental_extendTheme'; +} from '../styles/extendTheme'; /** * Enhance the theme types to include new properties from the CssVarsProvider. diff --git a/packages/mui-material/src/types/OverridableComponentAugmentation.ts b/packages/mui-material/src/types/OverridableComponentAugmentation.ts index e3b9d08664e56f..f7f3bb22765d8b 100644 --- a/packages/mui-material/src/types/OverridableComponentAugmentation.ts +++ b/packages/mui-material/src/types/OverridableComponentAugmentation.ts @@ -16,8 +16,8 @@ declare module '@mui/material/OverridableComponent' { */ component: DefaultComponent; } & OverridePropsVer2, - ): JSX.Element; - (props: DefaultComponentPropsVer2): JSX.Element; + ): React.JSX.Element; + (props: DefaultComponentPropsVer2): React.JSX.Element; } /** diff --git a/packages/mui-material/test/describeConformance.ts b/packages/mui-material/test/describeConformance.ts index 633cf72e03ebbe..4715d91bad6817 100644 --- a/packages/mui-material/test/describeConformance.ts +++ b/packages/mui-material/test/describeConformance.ts @@ -5,7 +5,7 @@ import { import { ThemeProvider, createTheme } from '@mui/material/styles'; export default function describeConformance( - minimalElement: React.ReactElement, + minimalElement: React.ReactElement, getOptions: () => ConformanceOptions, ) { function getOptionsWithDefaults() { diff --git a/packages/mui-material/test/typescript/moduleAugmentation/themeCssVariables.spec.tsx b/packages/mui-material/test/typescript/moduleAugmentation/themeCssVariables.spec.tsx index 7c319f041a45a1..b6a26ebfc464ba 100644 --- a/packages/mui-material/test/typescript/moduleAugmentation/themeCssVariables.spec.tsx +++ b/packages/mui-material/test/typescript/moduleAugmentation/themeCssVariables.spec.tsx @@ -1,5 +1,5 @@ // testing docs/src/pages/customization/theme-components/theme-components.md -import { styled, experimental_extendTheme as extendTheme } from '@mui/material/styles'; +import { styled, extendTheme } from '@mui/material/styles'; import type {} from '@mui/material/themeCssVarsAugmentation'; declare module '@mui/material/styles' { diff --git a/packages/mui-material/test/typescript/moduleAugmentation/themeGetCssVar.spec.tsx b/packages/mui-material/test/typescript/moduleAugmentation/themeGetCssVar.spec.tsx index 96c53215f78be1..8690b12518c372 100644 --- a/packages/mui-material/test/typescript/moduleAugmentation/themeGetCssVar.spec.tsx +++ b/packages/mui-material/test/typescript/moduleAugmentation/themeGetCssVar.spec.tsx @@ -1,4 +1,4 @@ -import { experimental_extendTheme as extendTheme } from '@mui/material/styles'; +import { extendTheme } from '@mui/material/styles'; import type {} from '@mui/material/themeCssVarsAugmentation'; declare module '@mui/material/styles' { diff --git a/packages/mui-private-theming/package.json b/packages/mui-private-theming/package.json index 5aaea93a6ba4ab..7349046aa2e34d 100644 --- a/packages/mui-private-theming/package.json +++ b/packages/mui-private-theming/package.json @@ -37,7 +37,7 @@ "typescript": "tsc -p tsconfig.json" }, "dependencies": { - "@babel/runtime": "^7.24.5", + "@babel/runtime": "^7.24.6", "@mui/utils": "workspace:^", "prop-types": "^15.8.1" }, diff --git a/packages/mui-styled-engine-sc/package.json b/packages/mui-styled-engine-sc/package.json index 518d19a65a450f..2e8da75804a2c5 100644 --- a/packages/mui-styled-engine-sc/package.json +++ b/packages/mui-styled-engine-sc/package.json @@ -37,7 +37,7 @@ "typescript": "tsc -p tsconfig.json" }, "dependencies": { - "@babel/runtime": "^7.24.5", + "@babel/runtime": "^7.24.6", "csstype": "^3.1.3", "hoist-non-react-statics": "^3.3.2", "prop-types": "^15.8.1" diff --git a/packages/mui-styled-engine-sc/src/GlobalStyles/GlobalStyles.d.ts b/packages/mui-styled-engine-sc/src/GlobalStyles/GlobalStyles.d.ts index 6e46a0722a27e1..0c2ef1cd47e33f 100644 --- a/packages/mui-styled-engine-sc/src/GlobalStyles/GlobalStyles.d.ts +++ b/packages/mui-styled-engine-sc/src/GlobalStyles/GlobalStyles.d.ts @@ -8,4 +8,4 @@ export interface GlobalStylesProps { export default function Global( props: GlobalStylesProps, -): React.ReactElement; +): React.ReactElement; diff --git a/packages/mui-styled-engine-sc/src/GlobalStyles/GlobalStyles.spec.tsx b/packages/mui-styled-engine-sc/src/GlobalStyles/GlobalStyles.spec.tsx index a87926dad34aac..f253f453661a40 100644 --- a/packages/mui-styled-engine-sc/src/GlobalStyles/GlobalStyles.spec.tsx +++ b/packages/mui-styled-engine-sc/src/GlobalStyles/GlobalStyles.spec.tsx @@ -25,7 +25,7 @@ export interface GlobalStylesProps { styles: SCGlobalStylesProps['styles']; } -function GlobalStyles(props: GlobalStylesProps): React.ReactElement { +function GlobalStyles(props: GlobalStylesProps): React.ReactElement { return ; } diff --git a/packages/mui-styled-engine-sc/src/StyledEngineProvider/StyledEngineProvider.d.ts b/packages/mui-styled-engine-sc/src/StyledEngineProvider/StyledEngineProvider.d.ts index 64288e446205fd..267542a1f6be31 100644 --- a/packages/mui-styled-engine-sc/src/StyledEngineProvider/StyledEngineProvider.d.ts +++ b/packages/mui-styled-engine-sc/src/StyledEngineProvider/StyledEngineProvider.d.ts @@ -5,4 +5,4 @@ export interface StyledEngineProviderProps { injectFirst?: boolean; } -export default function StyledEngineProvider(props: StyledEngineProviderProps): JSX.Element; +export default function StyledEngineProvider(props: StyledEngineProviderProps): React.JSX.Element; diff --git a/packages/mui-styled-engine-sc/src/index.d.ts b/packages/mui-styled-engine-sc/src/index.d.ts index ea46672d21563a..994c02c99c3c28 100644 --- a/packages/mui-styled-engine-sc/src/index.d.ts +++ b/packages/mui-styled-engine-sc/src/index.d.ts @@ -23,7 +23,7 @@ type Defaultize = P extends any Partial>> : never; -export type IntrinsicElementsKeys = keyof JSX.IntrinsicElements; +export type IntrinsicElementsKeys = keyof React.JSX.IntrinsicElements; type ReactDefaultizedProps = C extends { defaultProps: infer D } ? Defaultize : P; type MakeAttrsOptional< @@ -156,7 +156,7 @@ type StyledComponentPropsWithAs< }; export type StyledComponent< - C extends keyof JSX.IntrinsicElements | React.ComponentType, + C extends keyof React.JSX.IntrinsicElements | React.ComponentType, T extends object = {}, O extends object = {}, A extends keyof any = never, @@ -217,7 +217,7 @@ export interface StyledComponentBase< O & StyledComponentInnerOtherProps, A | StyledComponentInnerAttrs >; - withComponent>( + withComponent>( component: WithC, ): StyledComponent; } @@ -232,18 +232,18 @@ type StyledComponentInterpolation = type AnyIfEmpty = keyof T extends never ? any : T; type ThemedStyledComponentFactories = { - [TTag in keyof JSX.IntrinsicElements]: ThemedStyledFunctionBase; + [TTag in keyof React.JSX.IntrinsicElements]: ThemedStyledFunctionBase; }; export type StyledComponentPropsWithRef< - C extends keyof JSX.IntrinsicElements | React.ComponentType, + C extends keyof React.JSX.IntrinsicElements | React.ComponentType, > = C extends AnyStyledComponent ? React.ComponentPropsWithRef> : React.ComponentPropsWithRef; // Same as in styled-components, but copied here so that it would use the Interpolation & CSS typings from above export interface ThemedStyledFunctionBase< - C extends keyof JSX.IntrinsicElements | React.ComponentType, + C extends keyof React.JSX.IntrinsicElements | React.ComponentType, T extends object, O extends object = {}, A extends keyof any = never, @@ -267,7 +267,7 @@ export interface ThemedStyledFunctionBase< // same as ThemedStyledFunction in styled-components, but without attrs, and withConfig export interface ThemedStyledFunction< - C extends keyof JSX.IntrinsicElements | React.ComponentType, + C extends keyof React.JSX.IntrinsicElements | React.ComponentType, T extends object, O extends object = {}, A extends keyof any = never, @@ -348,22 +348,24 @@ export interface ThemedBaseStyledInterface< ): CreateStyledComponent & MUIStyledCommonProps, {}, {}, Theme>; < - Tag extends keyof JSX.IntrinsicElements, - ForwardedProps extends keyof JSX.IntrinsicElements[Tag] = keyof JSX.IntrinsicElements[Tag], + Tag extends keyof React.JSX.IntrinsicElements, + ForwardedProps extends + keyof React.JSX.IntrinsicElements[Tag] = keyof React.JSX.IntrinsicElements[Tag], >( tag: Tag, - options: FilteringStyledOptions & MuiStyledOptions, + options: FilteringStyledOptions & + MuiStyledOptions, ): CreateStyledComponent< MUIStyledCommonProps, - Pick, + Pick, {}, Theme >; - ( + ( tag: Tag, options?: StyledConfig & MuiStyledOptions, - ): CreateStyledComponent; + ): CreateStyledComponent; } export type CreateMUIStyled< @@ -372,8 +374,9 @@ export type CreateMUIStyled< T extends object = {}, > = ThemedBaseStyledInterface>; -export type PropsOf> = - JSX.LibraryManagedAttributes>; +export type PropsOf< + C extends keyof React.JSX.IntrinsicElements | React.JSXElementConstructor, +> = React.JSX.LibraryManagedAttributes>; export interface MUIStyledComponent< ComponentProps extends {}, @@ -386,7 +389,7 @@ export interface MUIStyledComponent< withComponent>>( component: C, ): MUIStyledComponent>; - withComponent( + withComponent( tag: Tag, - ): MUIStyledComponent; + ): MUIStyledComponent; } diff --git a/packages/mui-styled-engine/package.json b/packages/mui-styled-engine/package.json index 3352b89017750e..e9cbc0948b3650 100644 --- a/packages/mui-styled-engine/package.json +++ b/packages/mui-styled-engine/package.json @@ -37,7 +37,7 @@ "typescript": "tsc -p tsconfig.json" }, "dependencies": { - "@babel/runtime": "^7.24.5", + "@babel/runtime": "^7.24.6", "@emotion/cache": "^11.11.0", "csstype": "^3.1.3", "prop-types": "^15.8.1" diff --git a/packages/mui-styled-engine/src/GlobalStyles/GlobalStyles.d.ts b/packages/mui-styled-engine/src/GlobalStyles/GlobalStyles.d.ts index 41b379c3214083..e746c3036a3a62 100644 --- a/packages/mui-styled-engine/src/GlobalStyles/GlobalStyles.d.ts +++ b/packages/mui-styled-engine/src/GlobalStyles/GlobalStyles.d.ts @@ -8,4 +8,4 @@ export interface GlobalStylesProps { export default function GlobalStyles( props: GlobalStylesProps, -): React.ReactElement; +): React.ReactElement; diff --git a/packages/mui-styled-engine/src/GlobalStyles/GlobalStyles.spec.tsx b/packages/mui-styled-engine/src/GlobalStyles/GlobalStyles.spec.tsx index 2420e7ea060d97..13b34d7f29b019 100644 --- a/packages/mui-styled-engine/src/GlobalStyles/GlobalStyles.spec.tsx +++ b/packages/mui-styled-engine/src/GlobalStyles/GlobalStyles.spec.tsx @@ -25,7 +25,7 @@ export interface GlobalStylesProps { styles: EmGlobalStylesProps['styles']; } -function GlobalStyles(props: GlobalStylesProps): React.ReactElement { +function GlobalStyles(props: GlobalStylesProps): React.ReactElement { return ; } diff --git a/packages/mui-styled-engine/src/StyledEngineProvider/StyledEngineProvider.d.ts b/packages/mui-styled-engine/src/StyledEngineProvider/StyledEngineProvider.d.ts index 64288e446205fd..267542a1f6be31 100644 --- a/packages/mui-styled-engine/src/StyledEngineProvider/StyledEngineProvider.d.ts +++ b/packages/mui-styled-engine/src/StyledEngineProvider/StyledEngineProvider.d.ts @@ -5,4 +5,4 @@ export interface StyledEngineProviderProps { injectFirst?: boolean; } -export default function StyledEngineProvider(props: StyledEngineProviderProps): JSX.Element; +export default function StyledEngineProvider(props: StyledEngineProviderProps): React.JSX.Element; diff --git a/packages/mui-styled-engine/src/index.d.ts b/packages/mui-styled-engine/src/index.d.ts index 4bc50bc1452bda..d0df929ca95554 100644 --- a/packages/mui-styled-engine/src/index.d.ts +++ b/packages/mui-styled-engine/src/index.d.ts @@ -200,20 +200,22 @@ export interface CreateMUIStyled< ): CreateStyledComponent & MUIStyledCommonProps, {}, {}, Theme>; < - Tag extends keyof JSX.IntrinsicElements, - ForwardedProps extends keyof JSX.IntrinsicElements[Tag] = keyof JSX.IntrinsicElements[Tag], + Tag extends keyof React.JSX.IntrinsicElements, + ForwardedProps extends + keyof React.JSX.IntrinsicElements[Tag] = keyof React.JSX.IntrinsicElements[Tag], >( tag: Tag, - options: FilteringStyledOptions & MuiStyledOptions, + options: FilteringStyledOptions & + MuiStyledOptions, ): CreateStyledComponent< MUIStyledCommonProps, - Pick, + Pick, {}, Theme >; - ( + ( tag: Tag, options?: StyledOptions & MuiStyledOptions, - ): CreateStyledComponent; + ): CreateStyledComponent; } diff --git a/packages/mui-styles/package.json b/packages/mui-styles/package.json index f465358a35aa9c..1c0f101667f1e1 100644 --- a/packages/mui-styles/package.json +++ b/packages/mui-styles/package.json @@ -37,7 +37,7 @@ "typescript": "tsc -p tsconfig.json" }, "dependencies": { - "@babel/runtime": "^7.24.5", + "@babel/runtime": "^7.24.6", "@emotion/hash": "^0.9.1", "@mui/private-theming": "workspace:^", "@mui/types": "workspace:^", diff --git a/packages/mui-styles/src/ServerStyleSheets/ServerStyleSheets.d.ts b/packages/mui-styles/src/ServerStyleSheets/ServerStyleSheets.d.ts index 84617671784509..24ec50839ed00a 100644 --- a/packages/mui-styles/src/ServerStyleSheets/ServerStyleSheets.d.ts +++ b/packages/mui-styles/src/ServerStyleSheets/ServerStyleSheets.d.ts @@ -5,7 +5,7 @@ declare class ServerStyleSheets { constructor(options?: object); collect(children: React.ReactNode, options?: object): React.ReactElement; toString(): string; - getStyleElement(props?: object): React.ReactElement; + getStyleElement(props?: object): React.ReactElement; } export default ServerStyleSheets; diff --git a/packages/mui-styles/src/styled/styled.d.ts b/packages/mui-styles/src/styled/styled.d.ts index 7e3666e301b576..f0d15df8f4dff6 100644 --- a/packages/mui-styles/src/styled/styled.d.ts +++ b/packages/mui-styles/src/styled/styled.d.ts @@ -23,7 +23,7 @@ export type ComponentCreator = < options?: WithStylesOptions, ) => StyledComponent< DistributiveOmit< - JSX.LibraryManagedAttributes>, + React.JSX.LibraryManagedAttributes>, 'classes' | 'className' > & StyledComponentProps<'root'> & diff --git a/packages/mui-styles/src/withTheme/withTheme.d.ts b/packages/mui-styles/src/withTheme/withTheme.d.ts index e211c3e54086ae..82d1f8f1b473fc 100644 --- a/packages/mui-styles/src/withTheme/withTheme.d.ts +++ b/packages/mui-styles/src/withTheme/withTheme.d.ts @@ -25,7 +25,7 @@ export default function withTheme< component: C, ): React.JSXElementConstructor< DistributiveOmit< - JSX.LibraryManagedAttributes>, + React.JSX.LibraryManagedAttributes>, keyof WithTheme > & Partial> & diff --git a/packages/mui-styles/test/styles.spec.tsx b/packages/mui-styles/test/styles.spec.tsx index 2b68e4278ccf56..8ed6a1d215f263 100644 --- a/packages/mui-styles/test/styles.spec.tsx +++ b/packages/mui-styles/test/styles.spec.tsx @@ -215,7 +215,7 @@ withStyles((theme) => }); interface ListItemContentProps extends WithStyles { - children?: React.ReactElement; + children?: React.ReactElement; inset?: boolean; row?: boolean; } diff --git a/packages/mui-system/package.json b/packages/mui-system/package.json index f8c4c49a68c942..bc82056dd99c93 100644 --- a/packages/mui-system/package.json +++ b/packages/mui-system/package.json @@ -39,7 +39,7 @@ "typescript:module-augmentation": "node scripts/testModuleAugmentation.js" }, "dependencies": { - "@babel/runtime": "^7.24.5", + "@babel/runtime": "^7.24.6", "@mui/private-theming": "workspace:^", "@mui/styled-engine": "workspace:^", "@mui/types": "workspace:^", diff --git a/packages/mui-system/src/Stack/createStack.tsx b/packages/mui-system/src/Stack/createStack.tsx index 840163c4e20799..0f1f9659ebb952 100644 --- a/packages/mui-system/src/Stack/createStack.tsx +++ b/packages/mui-system/src/Stack/createStack.tsx @@ -50,7 +50,7 @@ function useThemePropsDefault(props: T) { * > joinChildren([1,2,3], 0) * [1,0,2,0,3] */ -function joinChildren(children: React.ReactNode, separator: React.ReactElement) { +function joinChildren(children: React.ReactNode, separator: React.ReactElement) { const childrenArray = React.Children.toArray(children).filter(Boolean); return childrenArray.reduce((output, child, index) => { @@ -209,7 +209,7 @@ export default function createStack( className={clsx(classes.root, className)} {...other} > - {divider ? joinChildren(children, divider as React.ReactElement) : children} + {divider ? joinChildren(children, divider as React.ReactElement) : children} ); }) as OverridableComponent; diff --git a/packages/mui-system/src/Unstable_Grid/createGrid.tsx b/packages/mui-system/src/Unstable_Grid/createGrid.tsx index 092185ae30fcb1..e0984a90dd7f23 100644 --- a/packages/mui-system/src/Unstable_Grid/createGrid.tsx +++ b/packages/mui-system/src/Unstable_Grid/createGrid.tsx @@ -166,7 +166,7 @@ export default function createGrid( {React.Children.map(children, (child) => { if (React.isValidElement(child) && isMuiElement(child, ['Grid'])) { return React.cloneElement(child, { - unstable_level: child.props.unstable_level ?? level + 1, + unstable_level: (child.props as any).unstable_level ?? level + 1, } as GridProps); } return child; diff --git a/packages/mui-system/src/createTheme/applyStyles.ts b/packages/mui-system/src/createTheme/applyStyles.ts index d0278951b7a822..b24b674bc25590 100644 --- a/packages/mui-system/src/createTheme/applyStyles.ts +++ b/packages/mui-system/src/createTheme/applyStyles.ts @@ -8,7 +8,7 @@ export interface ApplyStyles { * A universal utility to style components with multiple color modes. Always use it from the theme object. * It works with: * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/) - * - [CSS theme variables](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/) + * - [CSS theme variables](https://mui.com/material-ui/customization/css-theme-variables/overview/) * - Zero-runtime engine * * Tips: Use an array over object spread and place `theme.applyStyles()` last. diff --git a/packages/mui-system/src/cssVars/createCssVarsProvider.d.ts b/packages/mui-system/src/cssVars/createCssVarsProvider.d.ts index b8dc3ff9a2d703..2e8e398d6dadb8 100644 --- a/packages/mui-system/src/cssVars/createCssVarsProvider.d.ts +++ b/packages/mui-system/src/cssVars/createCssVarsProvider.d.ts @@ -90,7 +90,7 @@ export interface CreateCssVarsProviderResult< disableStyleSheetGeneration?: boolean; } >, - ) => React.ReactElement; + ) => React.ReactElement; useColorScheme: () => ColorSchemeContextValue; getInitColorSchemeScript: typeof getInitColorSchemeScript; } diff --git a/packages/mui-system/test/describeConformance.ts b/packages/mui-system/test/describeConformance.ts index 85ce541f937df4..aa876199917f98 100644 --- a/packages/mui-system/test/describeConformance.ts +++ b/packages/mui-system/test/describeConformance.ts @@ -5,7 +5,7 @@ import { import { ThemeProvider, createTheme } from '@mui/system'; export default function describeConformance( - minimalElement: React.ReactElement, + minimalElement: React.ReactElement, getOptions: () => ConformanceOptions, ) { function getOptionsWithDefaults() { diff --git a/packages/mui-types/OverridableComponentAugmentation.ts b/packages/mui-types/OverridableComponentAugmentation.ts index aa50ed447020f4..4c735e21896bbb 100644 --- a/packages/mui-types/OverridableComponentAugmentation.ts +++ b/packages/mui-types/OverridableComponentAugmentation.ts @@ -15,8 +15,8 @@ declare module '@mui/types' { */ component: C; } & OverridePropsVer2, - ): JSX.Element; - (props: DefaultComponentPropsVer2): JSX.Element; + ): React.JSX.Element; + (props: DefaultComponentPropsVer2): React.JSX.Element; propTypes?: any; } diff --git a/packages/mui-types/index.d.ts b/packages/mui-types/index.d.ts index 64daa8cb6bb7bc..7988996932d6be 100644 --- a/packages/mui-types/index.d.ts +++ b/packages/mui-types/index.d.ts @@ -27,7 +27,10 @@ export type PropInjector = < >( component: C, ) => React.JSXElementConstructor< - DistributiveOmit>, keyof InjectedProps> & + DistributiveOmit< + React.JSX.LibraryManagedAttributes>, + keyof InjectedProps + > & AdditionalProps >; @@ -101,8 +104,8 @@ export interface OverridableComponent { */ component: C; } & OverrideProps, - ): JSX.Element | null; - (props: DefaultComponentProps): JSX.Element | null; + ): React.JSX.Element | null; + (props: DefaultComponentProps): React.JSX.Element | null; propTypes?: any; } diff --git a/packages/mui-utils/package.json b/packages/mui-utils/package.json index 55af83f4df341f..2c365bc8078b61 100644 --- a/packages/mui-utils/package.json +++ b/packages/mui-utils/package.json @@ -38,7 +38,7 @@ "typescript": "tsc -p tsconfig.json" }, "dependencies": { - "@babel/runtime": "^7.24.5", + "@babel/runtime": "^7.24.6", "@types/prop-types": "^15.7.12", "prop-types": "^15.8.1", "react-is": "^18.2.0" diff --git a/packages/mui-utils/src/deepmerge/deepmerge.test.ts b/packages/mui-utils/src/deepmerge/deepmerge.test.ts index db39f72df32499..9cb09790761553 100644 --- a/packages/mui-utils/src/deepmerge/deepmerge.test.ts +++ b/packages/mui-utils/src/deepmerge/deepmerge.test.ts @@ -4,11 +4,59 @@ import deepmerge from './deepmerge'; describe('deepmerge', () => { // https://snyk.io/blog/after-three-years-of-silence-a-new-jquery-prototype-pollution-vulnerability-emerges-once-again/ - it('should not be subject to prototype pollution', () => { - deepmerge({}, JSON.parse('{ "myProperty": "a", "__proto__" : { "isAdmin" : true } }'), { - clone: false, - }); + it('should not be subject to prototype pollution via __proto__', () => { + const result = deepmerge( + {}, + JSON.parse('{ "myProperty": "a", "__proto__" : { "isAdmin" : true } }'), + { + clone: false, + }, + ); + + // @ts-expect-error __proto__ is not on this object type + // eslint-disable-next-line no-proto + expect(result.__proto__).to.have.property('isAdmin'); + expect({}).not.to.have.property('isAdmin'); + }); + + // https://cwe.mitre.org/data/definitions/915.html + it('should not be subject to prototype pollution via constructor', () => { + const result = deepmerge( + {}, + JSON.parse('{ "myProperty": "a", "constructor" : { "prototype": { "isAdmin" : true } } }'), + { + clone: true, + }, + ); + + expect(result.constructor.prototype).to.have.property('isAdmin'); + expect({}).not.to.have.property('isAdmin'); + }); + + // https://cwe.mitre.org/data/definitions/915.html + it('should not be subject to prototype pollution via prototype', () => { + const result = deepmerge( + {}, + JSON.parse('{ "myProperty": "a", "prototype": { "isAdmin" : true } }'), + { + clone: false, + }, + ); + + // @ts-expect-error prototype is not on this object type + expect(result.prototype).to.have.property('isAdmin'); + expect({}).not.to.have.property('isAdmin'); + }); + + it('should appropriately copy the fields without prototype pollution', () => { + const result = deepmerge( + {}, + JSON.parse('{ "myProperty": "a", "__proto__" : { "isAdmin" : true } }'), + ); + // @ts-expect-error __proto__ is not on this object type + // eslint-disable-next-line no-proto + expect(result.__proto__).to.have.property('isAdmin'); expect({}).not.to.have.property('isAdmin'); }); diff --git a/packages/mui-utils/src/deepmerge/deepmerge.ts b/packages/mui-utils/src/deepmerge/deepmerge.ts index a8035a0c470177..e04e90a7851d7e 100644 --- a/packages/mui-utils/src/deepmerge/deepmerge.ts +++ b/packages/mui-utils/src/deepmerge/deepmerge.ts @@ -41,12 +41,12 @@ export default function deepmerge( if (isPlainObject(target) && isPlainObject(source)) { Object.keys(source).forEach((key) => { - // Avoid prototype pollution - if (key === '__proto__') { - return; - } - - if (isPlainObject(source[key]) && key in target && isPlainObject(target[key])) { + if ( + isPlainObject(source[key]) && + // Avoid prototype pollution + Object.prototype.hasOwnProperty.call(target, key) && + isPlainObject(target[key]) + ) { // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type. (output as Record)[key] = deepmerge(target[key], source[key], options); } else if (options.clone) { diff --git a/packages/mui-utils/src/getValidReactChildren/getValidReactChildren.ts b/packages/mui-utils/src/getValidReactChildren/getValidReactChildren.ts index 6a2d5912347563..ea1132e5fc32ba 100644 --- a/packages/mui-utils/src/getValidReactChildren/getValidReactChildren.ts +++ b/packages/mui-utils/src/getValidReactChildren/getValidReactChildren.ts @@ -9,5 +9,5 @@ import * as React from 'react'; export default function getValidReactChildren(children: React.ReactNode) { return React.Children.toArray(children).filter((child) => React.isValidElement(child), - ) as React.ReactElement[]; + ) as React.ReactElement[]; } diff --git a/packages/pigment-css-react/README.md b/packages/pigment-css-react/README.md index 463f9d5c5ab6d9..6ba0e05680e4f7 100644 --- a/packages/pigment-css-react/README.md +++ b/packages/pigment-css-react/README.md @@ -1,3 +1,3 @@ # Pigment CSS -The package has moved [here](https://github.com/mui/pigment-css). +The package has moved to [mui/pigment-css](https://github.com/mui/pigment-css). diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index fa6f3b7e699642..77b8b2663cfd27 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -18,10 +18,10 @@ "./setupKarma": "./src/setupKarma.js" }, "dependencies": { - "@babel/plugin-transform-modules-commonjs": "^7.24.1", - "@babel/preset-typescript": "^7.24.1", - "@babel/register": "^7.23.7", - "@babel/runtime": "^7.24.5", + "@babel/plugin-transform-modules-commonjs": "^7.24.6", + "@babel/preset-typescript": "^7.24.6", + "@babel/register": "^7.24.6", + "@babel/runtime": "^7.24.6", "@emotion/cache": "^11.11.0", "@emotion/react": "^11.11.4", "@mnajdova/enzyme-adapter-react-18": "^0.2.0", diff --git a/packages/test-utils/src/createMount.tsx b/packages/test-utils/src/createMount.tsx index 03f0d273d08bff..f690f03a7bb327 100644 --- a/packages/test-utils/src/createMount.tsx +++ b/packages/test-utils/src/createMount.tsx @@ -11,7 +11,7 @@ interface ModeProps { * using `wrapper.setProps({ children })` would work differently if this component * would be the root. */ - __element: React.ReactElement; + __element: React.ReactElement; __strict: boolean; } @@ -93,7 +93,7 @@ export default function createMount(options: CreateMountOptions = {}) { }); const mountWithContext = function mountWithContext( - node: React.ReactElement, + node: React.ReactElement, localOptions: Omit = {}, ) { const { strict = globalStrict, ...localEnzymeOptions } = localOptions; diff --git a/packages/test-utils/src/createRenderer.tsx b/packages/test-utils/src/createRenderer.tsx index 33d7a6017dfa3b..4813c6a5e63236 100644 --- a/packages/test-utils/src/createRenderer.tsx +++ b/packages/test-utils/src/createRenderer.tsx @@ -281,7 +281,7 @@ export interface MuiRenderToStringResult { } function render( - element: React.ReactElement, + element: React.ReactElement, configuration: ClientRenderConfiguration, ): MuiRenderResult { const { container, hydrate, wrapper } = configuration; @@ -316,7 +316,7 @@ function render( } function renderToString( - element: React.ReactElement, + element: React.ReactElement, configuration: ServerRenderConfiguration, ): { container: HTMLElement; hydrate(): MuiRenderResult } { const { container, wrapper: Wrapper } = configuration; @@ -438,8 +438,11 @@ function createClock(defaultMode: 'fake' | 'real', config: ClockConfig): Clock { interface Renderer { clock: Clock; - render(element: React.ReactElement, options?: RenderOptions): MuiRenderResult; - renderToString(element: React.ReactElement, options?: RenderOptions): MuiRenderToStringResult; + render(element: React.ReactElement, options?: RenderOptions): MuiRenderResult; + renderToString( + element: React.ReactElement, + options?: RenderOptions, + ): MuiRenderToStringResult; } export interface CreateRendererOptions extends Pick { @@ -577,7 +580,7 @@ export function createRenderer(globalOptions: CreateRendererOptions = {}): Rende return { clock, - render(element: React.ReactElement, options: RenderOptions = {}) { + render(element: React.ReactElement, options: RenderOptions = {}) { if (!prepared) { throw new Error( 'Unable to finish setup before `render()` was called. ' + @@ -592,7 +595,7 @@ export function createRenderer(globalOptions: CreateRendererOptions = {}): Rende wrapper: createWrapper(options), }); }, - renderToString(element: React.ReactElement, options: RenderOptions = {}) { + renderToString(element: React.ReactElement, options: RenderOptions = {}) { if (!prepared) { throw new Error( 'Unable to finish setup before `render()` was called. ' + diff --git a/packages/test-utils/src/describeConformance.tsx b/packages/test-utils/src/describeConformance.tsx index 1c5b6505118dfe..4cb6d35c2120bb 100644 --- a/packages/test-utils/src/describeConformance.tsx +++ b/packages/test-utils/src/describeConformance.tsx @@ -26,7 +26,7 @@ export interface SlotTestingOptions { /** * A custom HTML tag to use for the `slots` prop. */ - testWithElement?: keyof JSX.IntrinsicElements | null; + testWithElement?: keyof React.JSX.IntrinsicElements | null; /** * To ensure that the slot has this class name when `slotProps` is provided. */ @@ -45,8 +45,8 @@ export interface ConformanceOptions { refInstanceof: any; after?: () => void; inheritComponent?: React.ElementType; - render: (node: React.ReactElement) => MuiRenderResult; - mount?: (node: React.ReactElement) => ReactWrapper; + render: (node: React.ReactElement) => MuiRenderResult; + mount?: (node: React.ReactElement) => ReactWrapper; only?: Array; skip?: Array; testComponentsRootPropWith?: string; @@ -58,8 +58,8 @@ export interface ConformanceOptions { testVariantProps?: object; testLegacyComponentsProp?: boolean; wrapMount?: ( - mount: (node: React.ReactElement) => ReactWrapper, - ) => (node: React.ReactElement) => ReactWrapper; + mount: (node: React.ReactElement) => ReactWrapper, + ) => (node: React.ReactElement) => ReactWrapper; slots?: Record; ThemeProvider?: React.ElementType; createTheme?: (arg: any) => any; @@ -79,7 +79,7 @@ function assertDOMNode(node: unknown) { * The element should have a component wrapped in withStyles as the root */ function testRef( - element: React.ReactElement, + element: React.ReactElement, mount: ConformanceOptions['mount'], onRef: (instance: unknown, wrapper: import('enzyme').ReactWrapper) => void = assertDOMNode, ) { @@ -129,7 +129,10 @@ function throwMissingPropError(field: string): never { * MUI components have a `className` prop. The `className` is applied to * the root component. */ -export function testClassName(element: React.ReactElement, getOptions: () => ConformanceOptions) { +export function testClassName( + element: React.ReactElement, + getOptions: () => ConformanceOptions, +) { it('applies the className to the root component', () => { const { mount } = getOptions(); if (!mount) { @@ -149,7 +152,7 @@ export function testClassName(element: React.ReactElement, getOptions: () => Con * Component from @inheritComponent */ export function testComponentProp( - element: React.ReactElement, + element: React.ReactElement, getOptions: () => ConformanceOptions, ) { describe('prop: component', () => { @@ -169,7 +172,10 @@ export function testComponentProp( /** * MUI components can spread additional props to a documented component. */ -export function testPropsSpread(element: React.ReactElement, getOptions: () => ConformanceOptions) { +export function testPropsSpread( + element: React.ReactElement, + getOptions: () => ConformanceOptions, +) { it(`spreads props to the root component`, () => { // type def in ConformanceOptions const { inheritComponent, mount } = getOptions(); @@ -199,7 +205,10 @@ export function testPropsSpread(element: React.ReactElement, getOptions: () => C * This is determined by a given constructor i.e. a React.Component or HTMLElement for * components that forward their ref and attach it to a host component. */ -export function describeRef(element: React.ReactElement, getOptions: () => ConformanceOptions) { +export function describeRef( + element: React.ReactElement, + getOptions: () => ConformanceOptions, +) { describe('ref', () => { it(`attaches the ref`, () => { // type def in ConformanceOptions @@ -220,7 +229,10 @@ export function describeRef(element: React.ReactElement, getOptions: () => Confo /** * Tests that the root component has the root class */ -export function testRootClass(element: React.ReactElement, getOptions: () => ConformanceOptions) { +export function testRootClass( + element: React.ReactElement, + getOptions: () => ConformanceOptions, +) { it('applies the root class to the root component if it has this class', () => { const { classes, render, skip } = getOptions(); if (classes.root == null) { @@ -259,7 +271,7 @@ export function testRootClass(element: React.ReactElement, getOptions: () => Con * Tests that the component can be rendered with react-test-renderer. * This is important for snapshot testing with Jest (even if we don't encourage it). */ -export function testReactTestRenderer(element: React.ReactElement) { +export function testReactTestRenderer(element: React.ReactElement) { it('should render without errors in ReactTestRenderer', () => { ReactTestRenderer.act(() => { ReactTestRenderer.create(element, { @@ -286,7 +298,7 @@ function forEachSlot( }); } -function testSlotsProp(element: React.ReactElement, getOptions: () => ConformanceOptions) { +function testSlotsProp(element: React.ReactElement, getOptions: () => ConformanceOptions) { const { render, slots, testLegacyComponentsProp } = getOptions(); const CustomComponent = React.forwardRef< @@ -457,7 +469,7 @@ function testSlotsProp(element: React.ReactElement, getOptions: () => Conformanc }); } -function testSlotPropsProp(element: React.ReactElement, getOptions: () => ConformanceOptions) { +function testSlotPropsProp(element: React.ReactElement, getOptions: () => ConformanceOptions) { const { render, slots, testLegacyComponentsProp } = getOptions(); if (!render) { @@ -540,7 +552,10 @@ function testSlotPropsProp(element: React.ReactElement, getOptions: () => Confor }); } -function testSlotPropsCallback(element: React.ReactElement, getOptions: () => ConformanceOptions) { +function testSlotPropsCallback( + element: React.ReactElement, + getOptions: () => ConformanceOptions, +) { const { render, slots } = getOptions(); if (!render) { @@ -568,7 +583,10 @@ function testSlotPropsCallback(element: React.ReactElement, getOptions: () => Co * MUI components have a `components` prop that allows rendering a different * Components from @inheritComponent */ -function testComponentsProp(element: React.ReactElement, getOptions: () => ConformanceOptions) { +function testComponentsProp( + element: React.ReactElement, + getOptions: () => ConformanceOptions, +) { describe('prop components:', () => { it('can render another root component with the `components` prop', () => { const { mount, testComponentsRootPropWith: component = 'em' } = getOptions(); @@ -587,7 +605,10 @@ function testComponentsProp(element: React.ReactElement, getOptions: () => Confo * MUI theme has a components section that allows specifying default props. * Components from @inheritComponent */ -function testThemeDefaultProps(element: React.ReactElement, getOptions: () => ConformanceOptions) { +function testThemeDefaultProps( + element: React.ReactElement, + getOptions: () => ConformanceOptions, +) { describe('theme default components:', () => { it("respect theme's defaultProps", () => { const testProp = 'data-id'; @@ -631,7 +652,7 @@ function testThemeDefaultProps(element: React.ReactElement, getOptions: () => Co * Components from @inheritComponent */ function testThemeStyleOverrides( - element: React.ReactElement, + element: React.ReactElement, getOptions: () => ConformanceOptions, ) { describe('theme style overrides:', () => { @@ -877,7 +898,7 @@ function testThemeStyleOverrides( * MUI theme has a components section that allows specifying custom variants. * Components from @inheritComponent */ -function testThemeVariants(element: React.ReactElement, getOptions: () => ConformanceOptions) { +function testThemeVariants(element: React.ReactElement, getOptions: () => ConformanceOptions) { describe('theme variants:', () => { it("respect theme's variants", function test() { if (/jsdom/.test(window.navigator.userAgent)) { @@ -982,7 +1003,10 @@ function testThemeVariants(element: React.ReactElement, getOptions: () => Confor * MUI theme supports custom palettes. * The components that iterate over the palette via `variants` should be able to render with or without applying the custom palette styles. */ -function testThemeCustomPalette(element: React.ReactElement, getOptions: () => ConformanceOptions) { +function testThemeCustomPalette( + element: React.ReactElement, + getOptions: () => ConformanceOptions, +) { describe('theme extended palette:', () => { it('should render without errors', function test() { const { render, ThemeProvider, createTheme } = getOptions(); @@ -1026,7 +1050,7 @@ const fullSuite = { * components. */ function describeConformance( - minimalElement: React.ReactElement, + minimalElement: React.ReactElement, getOptions: () => ConformanceOptions, ) { let originalMatchmedia: typeof window.matchMedia; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 385750c901daf4..83d88be1840916 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,14 +5,14 @@ settings: excludeLinksFromLockfile: false overrides: - '@babel/core': ^7.24.5 - '@babel/code-frame': ^7.24.2 - '@babel/plugin-transform-runtime': ^7.24.3 - '@babel/preset-env': ^7.24.5 - '@babel/preset-react': ^7.24.1 - '@babel/preset-typescript': ^7.24.1 - '@babel/runtime': ^7.24.5 - '@babel/types': ^7.24.5 + '@babel/core': ^7.24.6 + '@babel/code-frame': ^7.24.6 + '@babel/plugin-transform-runtime': ^7.24.6 + '@babel/preset-env': ^7.24.6 + '@babel/preset-react': ^7.24.6 + '@babel/preset-typescript': ^7.24.6 + '@babel/runtime': ^7.24.6 + '@babel/types': ^7.24.6 '@definitelytyped/header-parser': ^0.2.9 '@definitelytyped/typescript-versions': ^0.1.1 '@definitelytyped/utils': ^0.1.6 @@ -26,8 +26,8 @@ importers: .: dependencies: '@googleapis/sheets': - specifier: ^5.0.5 - version: 5.0.5 + specifier: ^7.0.0 + version: 7.0.0 '@netlify/functions': specifier: ^2.7.0 version: 2.7.0(@opentelemetry/api@1.8.0) @@ -45,32 +45,32 @@ importers: specifier: ^2.2.0 version: 2.2.0 '@babel/cli': - specifier: ^7.24.5 - version: 7.24.5(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/core': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@babel/node': - specifier: ^7.23.9 - version: 7.23.9(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/plugin-transform-react-constant-elements': - specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/plugin-transform-runtime': - specifier: ^7.24.3 - version: 7.24.3(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/preset-env': - specifier: ^7.24.5 - version: 7.24.5(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/preset-react': - specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/preset-typescript': - specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/register': - specifier: ^7.23.7 - version: 7.23.7(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@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) @@ -139,7 +139,7 @@ importers: 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.5)(webpack@5.91.0) + version: 9.1.3(@babel/core@7.24.6)(webpack@5.91.0) babel-plugin-istanbul: specifier: ^6.1.1 version: 6.1.1 @@ -174,8 +174,8 @@ importers: specifier: ^7.0.3 version: 7.0.3 danger: - specifier: ^11.3.1 - version: 11.3.1 + specifier: ^12.3.0 + version: 12.3.0 enzyme: specifier: ^3.11.0 version: 3.11.0 @@ -273,8 +273,8 @@ importers: specifier: ^15.1.0 version: 15.1.0 piscina: - specifier: ^4.4.0 - version: 4.4.0 + specifier: ^4.5.1 + version: 4.5.1 postcss-styled-syntax: specifier: ^0.6.4 version: 0.6.4(postcss@8.4.38) @@ -364,7 +364,7 @@ importers: version: link:../local-ui-lib next: specifier: latest - version: 14.2.3(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0) + version: 14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0) react: specifier: ^18.2.0 version: 18.2.0 @@ -437,11 +437,11 @@ importers: version: 6.23.1(react-dom@18.2.0)(react@18.2.0) devDependencies: '@babel/preset-react': - specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/preset-typescript': - specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@pigment-css/vite-plugin': specifier: ^0.0.9 version: 0.0.9(@types/react@18.2.55)(react@18.2.0)(vite@5.2.11) @@ -551,14 +551,14 @@ importers: docs: dependencies: '@babel/core': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@babel/runtime-corejs2': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@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) @@ -734,11 +734,11 @@ importers: specifier: ^7.4.7 version: 7.4.7(react@18.2.0) material-ui-popup-state: - specifier: ^5.1.1 - version: 5.1.1(@mui/material@packages+mui-material+build)(react@18.2.0) + specifier: ^5.1.2 + version: 5.1.2(@mui/material@packages+mui-material+build)(react@18.2.0) next: specifier: ^13.5.1 - version: 13.5.1(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.1(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(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) @@ -767,8 +767,8 @@ importers: specifier: ^6.5.9 version: 6.5.9(final-form@4.20.10)(react@18.2.0) react-imask: - specifier: ^7.6.0 - version: 7.6.0(react@18.2.0) + specifier: ^7.6.1 + version: 7.6.1(react@18.2.0) react-intersection-observer: specifier: ^9.10.2 version: 9.10.2(react-dom@18.2.0)(react@18.2.0) @@ -793,9 +793,6 @@ importers: react-swipeable-views: specifier: ^0.14.0 version: 0.14.0(react@18.2.0) - react-swipeable-views-utils: - specifier: ^0.14.0 - version: 0.14.0(react@18.2.0) react-transition-group: specifier: ^4.4.5 version: 4.4.5(react-dom@18.2.0)(react@18.2.0) @@ -825,11 +822,11 @@ importers: version: 4.10.2 devDependencies: '@babel/plugin-transform-react-constant-elements': - specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/preset-typescript': - specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@mui-internal/test-utils': specifier: workspace:^ version: link:../packages/test-utils @@ -866,9 +863,6 @@ importers: '@types/react-swipeable-views': specifier: ^0.13.5 version: 0.13.5 - '@types/react-swipeable-views-utils': - specifier: ^0.13.7 - version: 0.13.7 '@types/react-transition-group': specifier: ^4.4.10 version: 4.4.10 @@ -915,20 +909,20 @@ importers: packages-internal/scripts: dependencies: '@babel/core': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@babel/plugin-syntax-class-properties': specifier: ^7.12.13 - version: 7.12.13(@babel/core@7.24.5) + version: 7.12.13(@babel/core@7.24.6) '@babel/plugin-syntax-jsx': - specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/plugin-syntax-typescript': - specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/types': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@mui/internal-docs-utils': specifier: workspace:^ version: link:../docs-utils @@ -946,8 +940,8 @@ importers: version: 9.0.1 devDependencies: '@babel/register': - specifier: ^7.23.7 - version: 7.23.7(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@types/babel__core': specifier: ^7.20.5 version: 7.20.5 @@ -985,14 +979,14 @@ importers: packages/api-docs-builder: dependencies: '@babel/core': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@babel/preset-typescript': - specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/traverse': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@mui/internal-docs-utils': specifier: workspace:^ version: link:../../packages-internal/docs-utils @@ -1037,8 +1031,8 @@ importers: specifier: ^7.20.5 version: 7.20.5 '@types/babel__traverse': - specifier: ^7.20.5 - version: 7.20.5 + specifier: ^7.20.6 + version: 7.20.6 '@types/chai': specifier: ^4.3.16 version: 4.3.16 @@ -1140,8 +1134,8 @@ importers: packages/markdown: dependencies: '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 lodash: specifier: ^4.17.21 version: 4.17.21 @@ -1162,11 +1156,11 @@ importers: packages/mui-babel-macros: dependencies: '@babel/helper-module-imports': - specifier: ^7.24.3 - version: 7.24.3 + specifier: ^7.24.6 + version: 7.24.6 '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@mui/utils': specifier: ^5.0.0 version: 5.15.14(@types/react@18.2.55)(react@18.2.0) @@ -1191,7 +1185,7 @@ importers: version: 18.19.33 babel-plugin-tester: specifier: ^11.0.4 - version: 11.0.4(@babel/core@7.24.5) + version: 11.0.4(@babel/core@7.24.6) chai: specifier: ^4.4.1 version: 4.4.1 @@ -1199,8 +1193,8 @@ importers: packages/mui-base: dependencies: '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@floating-ui/react-dom': specifier: ^2.0.8 version: 2.0.8(react-dom@18.2.0)(react@18.2.0) @@ -1270,17 +1264,17 @@ importers: packages/mui-codemod: dependencies: '@babel/core': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@babel/traverse': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 jscodeshift: specifier: ^0.15.2 - version: 0.15.2(@babel/preset-env@7.24.5) + version: 0.15.2(@babel/preset-env@7.24.6) jscodeshift-add-imports: specifier: ^1.0.10 version: 1.0.10(jscodeshift@0.15.2) @@ -1311,8 +1305,8 @@ importers: packages/mui-docs: dependencies: '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@mui/base': specifier: '*' version: link:../mui-base/build @@ -1352,7 +1346,7 @@ importers: version: 18.2.55 next: specifier: ^13.5.1 - version: 13.5.1(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.1(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0) react: specifier: ^18.2.0 version: 18.2.0 @@ -1405,8 +1399,8 @@ importers: packages/mui-icons-material: dependencies: '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 devDependencies: '@mui/icons-material': specifier: workspace:* @@ -1464,8 +1458,8 @@ importers: packages/mui-joy: dependencies: '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@emotion/react': specifier: ^11.5.0 version: 11.11.4(@types/react@18.2.55)(react@18.2.0) @@ -1526,7 +1520,7 @@ importers: version: 4.17.21 next: specifier: ^13.4.19 - version: 13.5.1(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.1(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0) react: specifier: ^18.2.0 version: 18.2.0 @@ -1541,8 +1535,8 @@ importers: packages/mui-lab: dependencies: '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@emotion/react': specifier: ^11.5.0 version: 11.11.4(@types/react@18.2.55)(react@18.2.0) @@ -1606,8 +1600,8 @@ importers: packages/mui-material: dependencies: '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@emotion/react': specifier: ^11.5.0 version: 11.11.4(@types/react@18.2.55)(react@18.2.0) @@ -1713,8 +1707,8 @@ importers: packages/mui-material-nextjs: dependencies: '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@mui/material': specifier: workspace:^ version: link:../mui-material/build @@ -1733,7 +1727,7 @@ importers: version: 18.2.55 next: specifier: 13.5.1 - version: 13.5.1(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.1(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0) react: specifier: ^18.2.0 version: 18.2.0 @@ -1742,8 +1736,8 @@ importers: packages/mui-private-theming: dependencies: '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@mui/utils': specifier: workspace:^ version: link:../mui-utils/build @@ -1774,8 +1768,8 @@ importers: packages/mui-styled-engine: dependencies: '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@emotion/cache': specifier: ^11.11.0 version: 11.11.0 @@ -1815,8 +1809,8 @@ importers: packages/mui-styled-engine-sc: dependencies: '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 csstype: specifier: ^3.1.3 version: 3.1.3 @@ -1856,8 +1850,8 @@ importers: packages/mui-styles: dependencies: '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@emotion/hash': specifier: ^0.9.1 version: 0.9.1 @@ -1942,8 +1936,8 @@ importers: packages/mui-system: dependencies: '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@mui/private-theming': specifier: workspace:^ version: link:../mui-private-theming/build @@ -2026,8 +2020,8 @@ importers: packages/mui-utils: dependencies: '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@types/prop-types': specifier: ^15.7.12 version: 15.7.12 @@ -2113,17 +2107,17 @@ importers: packages/test-utils: dependencies: '@babel/plugin-transform-modules-commonjs': - specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/preset-typescript': - specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/register': - specifier: ^7.23.7 - version: 7.23.7(@babel/core@7.24.5) + specifier: ^7.24.6 + version: 7.24.6(@babel/core@7.24.6) '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@emotion/cache': specifier: ^11.11.0 version: 11.11.0 @@ -2221,8 +2215,8 @@ importers: test: devDependencies: '@babel/runtime': - specifier: ^7.24.5 - version: 7.24.5 + specifier: ^7.24.6 + version: 7.24.6 '@emotion/cache': specifier: ^11.11.0 version: 11.11.0 @@ -2540,16 +2534,16 @@ packages: engines: {node: '>=18.0.0'} dev: true - /@babel/cli@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-2qg1mYtJRsOOWF6IUwLP5jI42P8Cc0hQ5TmnjLrik/4DKouO8dFJN80HEz81VmVeUs97yuuf3vQ/9j7Elrcjlg==} + /@babel/cli@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-Sm/YhG/0REw9SKByFHDf4hkk7PYsjcsOyZgHGz1nvab4tUTQ9N4XVv+ykK0Y+VCJ3OshA/7EDyxnwCd8NEP/mQ==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 '@jridgewell/trace-mapping': 0.3.25 - commander: 4.1.1 + commander: 6.2.1 convert-source-map: 2.0.0 fs-readdir-recursive: 1.1.0 glob: 7.2.3 @@ -2560,31 +2554,31 @@ packages: chokidar: 3.6.0 dev: true - /@babel/code-frame@7.24.2: - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + /@babel/code-frame@7.24.6: + resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.24.2 + '@babel/highlight': 7.24.6 picocolors: 1.0.0 - /@babel/compat-data@7.24.4: - resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} + /@babel/compat-data@7.24.6: + resolution: {integrity: sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==} engines: {node: '>=6.9.0'} - /@babel/core@7.24.5: - resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==} + /@babel/core@7.24.6: + resolution: {integrity: sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) - '@babel/helpers': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 + '@babel/code-frame': 7.24.6 + '@babel/generator': 7.24.6 + '@babel/helper-compilation-targets': 7.24.6 + '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) + '@babel/helpers': 7.24.6 + '@babel/parser': 7.24.6 + '@babel/template': 7.24.6 + '@babel/traverse': 7.24.6 + '@babel/types': 7.24.6 convert-source-map: 2.0.0 debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -2593,1312 +2587,1309 @@ packages: transitivePeerDependencies: - supports-color - /@babel/generator@7.24.5: - resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==} + /@babel/generator@7.24.6: + resolution: {integrity: sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - /@babel/helper-annotate-as-pure@7.22.5: - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + /@babel/helper-annotate-as-pure@7.24.6: + resolution: {integrity: sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + /@babel/helper-builder-binary-assignment-operator-visitor@7.24.6: + resolution: {integrity: sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - /@babel/helper-compilation-targets@7.23.6: - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + /@babel/helper-compilation-targets@7.24.6: + resolution: {integrity: sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.24.4 - '@babel/helper-validator-option': 7.23.5 + '@babel/compat-data': 7.24.6 + '@babel/helper-validator-option': 7.24.6 browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==} + /@babel/helper-create-class-features-plugin@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 - dependencies: - '@babel/core': 7.24.5 - '@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.24.5 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.24.5 + '@babel/core': ^7.24.6 + dependencies: + '@babel/core': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-function-name': 7.24.6 + '@babel/helper-member-expression-to-functions': 7.24.6 + '@babel/helper-optimise-call-expression': 7.24.6 + '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.6) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 + '@babel/helper-split-export-declaration': 7.24.6 semver: 6.3.1 - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.5): - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + /@babel/helper-create-regexp-features-plugin@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/core': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.6 regexpu-core: 5.3.2 semver: 6.3.1 - /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.5): + /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.6): resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-compilation-targets': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 debug: 4.3.4(supports-color@8.1.1) lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: - supports-color - /@babel/helper-environment-visitor@7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + /@babel/helper-environment-visitor@7.24.6: + resolution: {integrity: sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==} engines: {node: '>=6.9.0'} - /@babel/helper-function-name@7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + /@babel/helper-function-name@7.24.6: + resolution: {integrity: sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.5 + '@babel/template': 7.24.6 + '@babel/types': 7.24.6 - /@babel/helper-hoist-variables@7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + /@babel/helper-hoist-variables@7.24.6: + resolution: {integrity: sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - /@babel/helper-member-expression-to-functions@7.24.5: - resolution: {integrity: sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==} + /@babel/helper-member-expression-to-functions@7.24.6: + resolution: {integrity: sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - /@babel/helper-module-imports@7.24.3: - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + /@babel/helper-module-imports@7.24.6: + resolution: {integrity: sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - /@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} + /@babel/helper-module-transforms@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.24.5 - '@babel/helper-split-export-declaration': 7.24.5 - '@babel/helper-validator-identifier': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-module-imports': 7.24.6 + '@babel/helper-simple-access': 7.24.6 + '@babel/helper-split-export-declaration': 7.24.6 + '@babel/helper-validator-identifier': 7.24.6 - /@babel/helper-optimise-call-expression@7.22.5: - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + /@babel/helper-optimise-call-expression@7.24.6: + resolution: {integrity: sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - /@babel/helper-plugin-utils@7.24.5: - resolution: {integrity: sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==} + /@babel/helper-plugin-utils@7.24.6: + resolution: {integrity: sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==} engines: {node: '>=6.9.0'} - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.5): - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + /@babel/helper-remap-async-to-generator@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.20 + '@babel/core': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-wrap-function': 7.24.6 - /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} + /@babel/helper-replace-supers@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.24.5 - '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/core': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-member-expression-to-functions': 7.24.6 + '@babel/helper-optimise-call-expression': 7.24.6 - /@babel/helper-simple-access@7.24.5: - resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==} + /@babel/helper-simple-access@7.24.6: + resolution: {integrity: sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - /@babel/helper-skip-transparent-expression-wrappers@7.22.5: - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + /@babel/helper-skip-transparent-expression-wrappers@7.24.6: + resolution: {integrity: sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - /@babel/helper-split-export-declaration@7.24.5: - resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==} + /@babel/helper-split-export-declaration@7.24.6: + resolution: {integrity: sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - /@babel/helper-string-parser@7.24.1: - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + /@babel/helper-string-parser@7.24.6: + resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier@7.24.5: - resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} + /@babel/helper-validator-identifier@7.24.6: + resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.23.5: - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + /@babel/helper-validator-option@7.24.6: + resolution: {integrity: sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==} engines: {node: '>=6.9.0'} - /@babel/helper-wrap-function@7.22.20: - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + /@babel/helper-wrap-function@7.24.6: + resolution: {integrity: sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.24.0 - '@babel/types': 7.24.5 + '@babel/helper-function-name': 7.24.6 + '@babel/template': 7.24.6 + '@babel/types': 7.24.6 - /@babel/helpers@7.24.5: - resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} + /@babel/helpers@7.24.6: + resolution: {integrity: sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 - transitivePeerDependencies: - - supports-color + '@babel/template': 7.24.6 + '@babel/types': 7.24.6 - /@babel/highlight@7.24.2: - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + /@babel/highlight@7.24.6: + resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.24.5 + '@babel/helper-validator-identifier': 7.24.6 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.0.0 - /@babel/node@7.23.9(@babel/core@7.24.5): - resolution: {integrity: sha512-/d4ju/POwlGIJlZ+NqWH1qu61wt6ZlTZZZutrK2MOSdaH1JCh726nLw/GSvAjG+LTY6CO9SsB8uWcttnFKm6yg==} + /@babel/node@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-63bD/Kbh1Vl6HapTZLSsyaGlQhhpF1/GpyS1oJotroJKoamOgKKEEKk3iHZAkicjcr+n4V4zdB0V+8siv6AZ5Q==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/register': 7.23.7(@babel/core@7.24.5) - commander: 4.1.1 + '@babel/core': 7.24.6 + '@babel/register': 7.24.6(@babel/core@7.24.6) + commander: 6.2.1 core-js: 3.32.1 node-environment-flags: 1.0.6 regenerator-runtime: 0.14.0 v8flags: 3.2.0 dev: true - /@babel/parser@7.24.5: - resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} + /@babel/parser@7.24.6: + resolution: {integrity: sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 - /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==} + /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 + '@babel/plugin-transform-optional-chaining': 7.24.6(@babel/core@7.24.6) - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.24.5): + /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.24.6): 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.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-remap-async-to-generator': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.6) dev: false - /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.5): + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.6): 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.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 dev: false - /@babel/plugin-proposal-export-default-from@7.24.1(@babel/core@7.24.5): + /@babel/plugin-proposal-export-default-from@7.24.1(@babel/core@7.24.6): resolution: {integrity: sha512-+0hrgGGV3xyYIjOrD/bUZk/iUwOIGuoANfRfVg1cPhYBxF+TIXSEcc42DqzBICmWsnAQ+SfKedY0bj8QD+LuMg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.24.6) dev: false - /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.24.5): + /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.24.6): 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.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.6) dev: false - /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.24.5): + /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.24.6): 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.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.6) dev: false - /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.5): + /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.6): 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.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/compat-data': 7.24.4 - '@babel/core': 7.24.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5) + '@babel/compat-data': 7.24.6 + '@babel/core': 7.24.6 + '@babel/helper-compilation-targets': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.6) dev: false - /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.24.5): + /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.24.6): 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.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.6) dev: false - /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.24.5): + /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.24.6): 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.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.6) dev: false - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.6): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.5): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.6): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.5): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.6): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.5): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.6): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.5): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.6): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-export-default-from@7.24.1(@babel/core@7.24.5): + /@babel/plugin-syntax-export-default-from@7.24.1(@babel/core@7.24.6): resolution: {integrity: sha512-cNXSxv9eTkGUtd0PsNMK8Yx5xeScxfpWOUAxE+ZPAXXEcAMOC3fk7LRdXq5fvpra2pLx2p1YtkAhpUbB2SwaRA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 dev: false - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.5): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.6): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.5): + /@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.6): resolution: {integrity: sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 dev: false - /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} + /@babel/plugin-syntax-import-assertions@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} + /@babel/plugin-syntax-import-attributes@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.5): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.6): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.5): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.6): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + /@babel/plugin-syntax-jsx@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.5): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.6): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.5): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.6): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.5): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.6): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.5): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.6): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.5): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.6): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.5): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.6): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.5): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.6): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.5): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.6): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + /@babel/plugin-syntax-typescript@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-TzCtxGgVTEJWWwcYwQhCIQ6WaKlo80/B+Onsk4RRCcYqpYGFcG9etPW94VToGte5AAcxRrhjPUFvUS3Y2qKi4A==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.5): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.6): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} + /@babel/plugin-transform-arrow-functions@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.5): - resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} + /@babel/plugin-transform-async-generator-functions@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-remap-async-to-generator': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.6) - /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} + /@babel/plugin-transform-async-to-generator@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-module-imports': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-remap-async-to-generator': 7.24.6(@babel/core@7.24.6) - /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} + /@babel/plugin-transform-block-scoped-functions@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-block-scoping@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==} + /@babel/plugin-transform-block-scoping@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} + /@babel/plugin-transform-class-properties@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.24.5): - resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==} + /@babel/plugin-transform-class-static-block@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.6) - /@babel/plugin-transform-classes@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==} + /@babel/plugin-transform-classes@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@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.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) - '@babel/helper-split-export-declaration': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/helper-compilation-targets': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-function-name': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.6) + '@babel/helper-split-export-declaration': 7.24.6 globals: 11.12.0 - /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} + /@babel/plugin-transform-computed-properties@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/template': 7.24.0 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/template': 7.24.6 - /@babel/plugin-transform-destructuring@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==} + /@babel/plugin-transform-destructuring@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} + /@babel/plugin-transform-dotall-regex@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} + /@babel/plugin-transform-duplicate-keys@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} + /@babel/plugin-transform-dynamic-import@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.6) - /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} + /@babel/plugin-transform-exponentiation-operator@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} + /@babel/plugin-transform-export-namespace-from@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.6) - /@babel/plugin-transform-flow-strip-types@7.24.1(@babel/core@7.24.5): + /@babel/plugin-transform-flow-strip-types@7.24.1(@babel/core@7.24.6): resolution: {integrity: sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.6) dev: false - /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} + /@babel/plugin-transform-for-of@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 - /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} + /@babel/plugin-transform-function-name@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-compilation-targets': 7.24.6 + '@babel/helper-function-name': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} + /@babel/plugin-transform-json-strings@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.6) - /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} + /@babel/plugin-transform-literals@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} + /@babel/plugin-transform-logical-assignment-operators@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.6) - /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} + /@babel/plugin-transform-member-expression-literals@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} + /@babel/plugin-transform-modules-amd@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + /@babel/plugin-transform-modules-commonjs@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-simple-access': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-simple-access': 7.24.6 - /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} + /@babel/plugin-transform-modules-systemjs@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-validator-identifier': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-hoist-variables': 7.24.6 + '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-validator-identifier': 7.24.6 - /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} + /@babel/plugin-transform-modules-umd@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.5): - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + /@babel/plugin-transform-named-capturing-groups-regex@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} + /@babel/plugin-transform-new-target@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} + /@babel/plugin-transform-nullish-coalescing-operator@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.6) - /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} + /@babel/plugin-transform-numeric-separator@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.6) - /@babel/plugin-transform-object-rest-spread@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==} + /@babel/plugin-transform-object-rest-spread@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-compilation-targets': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.6) - /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} + /@babel/plugin-transform-object-super@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.6) - /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} + /@babel/plugin-transform-optional-catch-binding@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.6) - /@babel/plugin-transform-optional-chaining@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==} + /@babel/plugin-transform-optional-chaining@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.6) - /@babel/plugin-transform-parameters@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==} + /@babel/plugin-transform-parameters@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} + /@babel/plugin-transform-private-methods@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-private-property-in-object@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==} + /@babel/plugin-transform-private-property-in-object@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.6) - /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} + /@babel/plugin-transform-property-literals@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-react-constant-elements@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==} + /@babel/plugin-transform-react-constant-elements@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-vQfyXRtG/kNIcTYRd/49uJnwvMig9X3R4XsTVXRml2RFupZFY+2RDuK+/ymb+MfX2WuIHAgUZc2xEvQrnI7QCg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 dev: true - /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} + /@babel/plugin-transform-react-display-name@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-/3iiEEHDsJuj9QU09gbyWGSUxDboFcD7Nj6dnHIlboWSodxXAoaY/zlNMHeYAC0WsERMqgO9a7UaM77CsYgWcg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.5): - resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + /@babel/plugin-transform-react-jsx-development@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-F7EsNp5StNDouSSdYyDSxh4J+xvj/JqG+Cb6s2fA+jCyHOzigG5vTwgH8tU2U8Voyiu5zCG9bAK49wTr/wPH0w==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/plugin-transform-react-jsx': 7.24.6(@babel/core@7.24.6) dev: true - /@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.5): + /@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.6): resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.5): + /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.6): resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5): - resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + /@babel/plugin-transform-react-jsx@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-pCtPHhpRZHfwdA5G1Gpk5mIzMA99hv0R8S/Ket50Rw+S+8hkt3wBWqdqHaPw0CuUYxdshUgsPiLQ5fAs4ASMhw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5) - '@babel/types': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/helper-module-imports': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.6) + '@babel/types': 7.24.6 - /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} + /@babel/plugin-transform-react-pure-annotations@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-0HoDQlFJJkXRyV2N+xOpUETbKHcouSwijRQbKWVtxsPoq5bbB30qZag9/pSc5xcWVYjTHlLsBsY+hZDnzQTPNw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 dev: true - /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} + /@babel/plugin-transform-regenerator@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 regenerator-transform: 0.15.2 - /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} + /@babel/plugin-transform-reserved-words@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.5): - resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} + /@babel/plugin-transform-runtime@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-W3gQydMb0SY99y/2lV0Okx2xg/8KzmZLQsLaiCmwNRl1kKomz14VurEm+2TossUb+sRvBCnGe+wx8KtIgDtBbQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.5 - babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.5) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.5) - babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-module-imports': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.6) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.6) + babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.6) semver: 6.3.1 transitivePeerDependencies: - supports-color - /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} + /@babel/plugin-transform-shorthand-properties@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} + /@babel/plugin-transform-spread@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 - /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} + /@babel/plugin-transform-sticky-regex@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} + /@babel/plugin-transform-template-literals@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-typeof-symbol@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==} + /@babel/plugin-transform-typeof-symbol@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==} + /@babel/plugin-transform-typescript@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-H0i+hDLmaYYSt6KU9cZE0gb3Cbssa/oxWis7PX4ofQzbvsfix9Lbh8SRk7LCPDlLWJHUiFeHU0qRRpF/4Zv7mQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-typescript': 7.24.6(@babel/core@7.24.6) - /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} + /@babel/plugin-transform-unicode-escapes@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} + /@babel/plugin-transform-unicode-property-regex@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} + /@babel/plugin-transform-unicode-regex@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 - /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} + /@babel/plugin-transform-unicode-sets-regex@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 - /@babel/preset-env@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==} + /@babel/preset-env@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 - dependencies: - '@babel/compat-data': 7.24.4 - '@babel/core': 7.24.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.5) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.5) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.5) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.5) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.5) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.5) - '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.5) - '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-block-scoping': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.24.5) - '@babel/plugin-transform-classes': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-destructuring': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.5) - '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-object-rest-spread': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-private-property-in-object': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-typeof-symbol': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.5) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.5) - babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.5) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.5) - babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.5) + '@babel/core': ^7.24.6 + dependencies: + '@babel/compat-data': 7.24.6 + '@babel/core': 7.24.6 + '@babel/helper-compilation-targets': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-validator-option': 7.24.6 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.6) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.6) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.6) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.6) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-syntax-import-assertions': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-syntax-import-attributes': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.6) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.6) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.6) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.6) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.6) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.6) + '@babel/plugin-transform-arrow-functions': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-async-generator-functions': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-async-to-generator': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-block-scoped-functions': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-block-scoping': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-class-properties': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-class-static-block': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-classes': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-computed-properties': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-destructuring': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-dotall-regex': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-duplicate-keys': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-dynamic-import': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-exponentiation-operator': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-export-namespace-from': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-for-of': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-function-name': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-json-strings': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-literals': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-logical-assignment-operators': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-member-expression-literals': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-modules-amd': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-modules-systemjs': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-modules-umd': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-new-target': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-numeric-separator': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-object-rest-spread': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-object-super': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-optional-catch-binding': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-optional-chaining': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-private-methods': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-private-property-in-object': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-property-literals': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-regenerator': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-reserved-words': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-shorthand-properties': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-spread': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-sticky-regex': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-template-literals': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-typeof-symbol': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-unicode-escapes': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-unicode-property-regex': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-unicode-regex': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-unicode-sets-regex': 7.24.6(@babel/core@7.24.6) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.6) + babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.6) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.6) + babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.6) core-js-compat: 3.36.1 semver: 6.3.1 transitivePeerDependencies: - supports-color - /@babel/preset-flow@7.24.1(@babel/core@7.24.5): + /@babel/preset-flow@7.24.1(@babel/core@7.24.6): resolution: {integrity: sha512-sWCV2G9pcqZf+JHyv/RyqEIpFypxdCSxWIxQjpdaQxenNog7cN1pr76hg8u0Fz8Qgg0H4ETkGcJnXL8d4j0PPA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-validator-option': 7.24.6 + '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.6) dev: false - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.5): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.6): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/types': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/types': 7.24.6 esutils: 2.0.3 - /@babel/preset-react@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} + /@babel/preset-react@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-8mpzh1bWvmINmwM3xpz6ahu57mNaWavMm+wBNjQ4AFu1nghKBiIRET7l/Wmj4drXany/BBGjJZngICcD98F1iw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.5) - '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.5) - '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-validator-option': 7.24.6 + '@babel/plugin-transform-react-display-name': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-react-jsx': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-react-jsx-development': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-react-pure-annotations': 7.24.6(@babel/core@7.24.6) dev: true - /@babel/preset-typescript@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} + /@babel/preset-typescript@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-U10aHPDnokCFRXgyT/MaIRTivUu2K/mu0vJlwRS9LxJmJet+PFQNKpggPyFCUtC6zWSBPjvxjnpNkAn3Uw2m5w==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-validator-option': 7.24.6 + '@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-typescript': 7.24.6(@babel/core@7.24.6) - /@babel/register@7.23.7(@babel/core@7.24.5): - resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} + /@babel/register@7.24.6(@babel/core@7.24.6): + resolution: {integrity: sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -3908,8 +3899,8 @@ packages: /@babel/regjsgen@0.8.0: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - /@babel/runtime-corejs2@7.24.5: - resolution: {integrity: sha512-cC9jiO6s/IN+xwCHYy1AGrcFJ4bwgIwb8HX1KaoEpRsznLlO4x9eBP6AX7RIeMSWlQqEj2WHox637OS8cDq6Ew==} + /@babel/runtime-corejs2@7.24.6: + resolution: {integrity: sha512-5UK2PnfpmiCftYGBeJ+SpFIMNaoMPU/eQt1P5ISx0TB7nGGzEMLT4/3PapNZEfGZh+nGxGOGj2t59prGFBhunQ==} engines: {node: '>=6.9.0'} dependencies: core-js: 2.6.12 @@ -3924,43 +3915,43 @@ packages: regenerator-runtime: 0.14.0 dev: false - /@babel/runtime@7.24.5: - resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==} + /@babel/runtime@7.24.6: + resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.0 - /@babel/template@7.24.0: - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + /@babel/template@7.24.6: + resolution: {integrity: sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/code-frame': 7.24.6 + '@babel/parser': 7.24.6 + '@babel/types': 7.24.6 - /@babel/traverse@7.24.5: - resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} + /@babel/traverse@7.24.6: + resolution: {integrity: sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.5 - '@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.24.5 - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/code-frame': 7.24.6 + '@babel/generator': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-function-name': 7.24.6 + '@babel/helper-hoist-variables': 7.24.6 + '@babel/helper-split-export-declaration': 7.24.6 + '@babel/parser': 7.24.6 + '@babel/types': 7.24.6 debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color - /@babel/types@7.24.5: - resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} + /@babel/types@7.24.6: + resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.24.5 + '@babel/helper-string-parser': 7.24.6 + '@babel/helper-validator-identifier': 7.24.6 to-fast-properties: 2.0.0 /@bcoe/v8-coverage@0.2.3: @@ -4159,8 +4150,8 @@ packages: /@emotion/babel-plugin@11.11.0: resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} dependencies: - '@babel/helper-module-imports': 7.24.3 - '@babel/runtime': 7.24.5 + '@babel/helper-module-imports': 7.24.6 + '@babel/runtime': 7.24.6 '@emotion/hash': 0.9.1 '@emotion/memoize': 0.8.1 '@emotion/serialize': 1.1.4 @@ -4233,7 +4224,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@emotion/babel-plugin': 11.11.0 '@emotion/cache': 11.11.0 '@emotion/serialize': 1.1.4 @@ -4279,7 +4270,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@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) @@ -4633,41 +4624,33 @@ packages: react: 18.2.0 dev: false - /@gitbeaker/core@35.8.1: - resolution: {integrity: sha512-KBrDykVKSmU9Q9Gly8KeHOgdc0lZSa435srECxuO0FGqqBcUQ82hPqUc13YFkkdOI9T1JRA3qSFajg8ds0mZKA==} - engines: {node: '>=14.2.0'} + /@gitbeaker/core@38.12.1: + resolution: {integrity: sha512-8XMVcBIdVAAoxn7JtqmZ2Ee8f+AZLcCPmqEmPFOXY2jPS84y/DERISg/+sbhhb18iRy+ZsZhpWgQ/r3CkYNJOQ==} + engines: {node: '>=18.0.0'} dependencies: - '@gitbeaker/requester-utils': 35.8.1 - form-data: 4.0.0 - li: 1.3.0 - mime: 3.0.0 - query-string: 7.1.3 + '@gitbeaker/requester-utils': 38.12.1 + qs: 6.12.0 xcase: 2.0.1 dev: true - /@gitbeaker/node@35.8.1: - resolution: {integrity: sha512-g6rX853y61qNhzq9cWtxIEoe2KDeFBtXAeWMGWJnc3nz3WRump2pIICvJqw/yobLZqmTNt+ea6w3/n92Mnbn3g==} - engines: {node: '>=14.2.0'} - deprecated: Please use its successor @gitbeaker/rest + /@gitbeaker/requester-utils@38.12.1: + resolution: {integrity: sha512-Rc/DgngS0YPN+AY1s9UnexKSy4Lh0bkQVAq9p7PRbRpXb33SlTeCg8eg/8+A/mrMcHgYmP0XhH8lkizyA5tBUQ==} + engines: {node: '>=18.0.0'} dependencies: - '@gitbeaker/core': 35.8.1 - '@gitbeaker/requester-utils': 35.8.1 - delay: 5.0.0 - got: 11.8.5 + qs: 6.12.0 xcase: 2.0.1 dev: true - /@gitbeaker/requester-utils@35.8.1: - resolution: {integrity: sha512-MFzdH+Z6eJaCZA5ruWsyvm6SXRyrQHjYVR6aY8POFraIy7ceIHOprWCs1R+0ydDZ8KtBnd8OTHjlJ0sLtSFJCg==} - engines: {node: '>=14.2.0'} + /@gitbeaker/rest@38.12.1: + resolution: {integrity: sha512-9KMSDtJ/sIov+5pcH+CAfiJXSiuYgN0KLKQFg0HHWR2DwcjGYkcbmhoZcWsaOWOqq4kihN1l7wX91UoRxxKKTQ==} + engines: {node: '>=18.0.0'} dependencies: - form-data: 4.0.0 - qs: 6.12.0 - xcase: 2.0.1 + '@gitbeaker/core': 38.12.1 + '@gitbeaker/requester-utils': 38.12.1 dev: true - /@googleapis/sheets@5.0.5: - resolution: {integrity: sha512-XMoONmgAJm2jYeTYHX4054VcEkElxlgqmnHvt0wAurzEHoGJLdUHhTAJXGPLgSs4WVMPtgU8HLrmk7/U+Qlw7A==} + /@googleapis/sheets@7.0.0: + resolution: {integrity: sha512-hzlIg/Jco+EdujvP05MznE+thVJ2tXt+4TumHw8xgEhGUfKysVhRuDndmvrJ2hkh5Eloc9BurwXdgw5EQ8p4mQ==} engines: {node: '>=12.0.0'} dependencies: googleapis-common: 7.0.0 @@ -5096,12 +5079,6 @@ packages: - supports-color dev: true - /@material-ui/types@4.1.1: - resolution: {integrity: sha512-AN+GZNXytX9yxGi0JOfxHrRTbhFybjUJ05rnsBVjcB+16e466Z0Xe5IxawuOayVZgTBNDxmPKo5j4V6OnMtaSQ==} - dependencies: - '@types/react': 18.2.55 - dev: true - /@mnajdova/enzyme-adapter-react-18@0.2.0(enzyme@3.11.0)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-BOnjlVa7FHI1YUnYe+FdUtQu6szI1wLJ+C1lHyqmF3T9gu/J/WCYqqcD44dPkrU+8eYvvk/gQducsqna4HFiAg==} peerDependencies: @@ -5134,7 +5111,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@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) @@ -5157,7 +5134,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@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) @@ -5180,7 +5157,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@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) @@ -5213,7 +5190,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@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) @@ -5245,7 +5222,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@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) @@ -5274,7 +5251,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@mui/utils': 5.15.14(@types/react@18.2.55)(react@18.2.0) '@types/react': 18.2.55 prop-types: 15.8.1 @@ -5291,7 +5268,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@mui/utils': 6.0.0-alpha.3(@types/react@18.2.55)(react@18.2.0) '@types/react': 18.2.55 prop-types: 15.8.1 @@ -5310,7 +5287,7 @@ packages: '@emotion/styled': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@emotion/cache': 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) @@ -5332,7 +5309,7 @@ packages: '@emotion/styled': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@emotion/cache': 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) @@ -5356,7 +5333,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@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) @@ -5386,7 +5363,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@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': 6.0.0-alpha.3(@types/react@18.2.55)(react@18.2.0) @@ -5419,7 +5396,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@types/prop-types': 15.7.12 '@types/react': 18.2.55 prop-types: 15.8.1 @@ -5437,7 +5414,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@types/prop-types': 15.7.12 '@types/react': 18.2.55 prop-types: 15.8.1 @@ -5459,7 +5436,7 @@ packages: '@emotion/styled': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@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.40(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0) @@ -5489,7 +5466,7 @@ packages: '@mui/material': ^5.15.14 react: ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@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 @@ -5513,7 +5490,7 @@ packages: react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@mui/material': link:packages/mui-material/build '@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) @@ -5541,7 +5518,7 @@ packages: react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@mui/material': link:packages/mui-material/build '@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) @@ -5567,7 +5544,7 @@ packages: react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@mui/material': link:packages/mui-material/build '@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) @@ -5618,7 +5595,7 @@ packages: moment-jalaali: optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@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.40(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0) @@ -5674,7 +5651,7 @@ packages: moment-jalaali: optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@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.40(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0) @@ -5699,7 +5676,7 @@ packages: peerDependencies: react: ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@mui/utils': 5.15.14(@types/react@18.2.55)(react@18.2.0) react: 18.2.0 transitivePeerDependencies: @@ -5716,7 +5693,7 @@ packages: react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@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.40(@types/react@18.2.55)(react-dom@18.2.0)(react@18.2.0) @@ -6620,7 +6597,7 @@ packages: next: ^12.0.0 || ^13.0.0 || ^14.0.0 dependencies: '@pigment-css/unplugin': 0.0.10(@types/react@18.2.55)(react@18.2.0) - next: 14.2.3(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0) transitivePeerDependencies: - '@types/react' - react @@ -6632,11 +6609,11 @@ packages: peerDependencies: react: ^17.0.0 || ^18.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-module-imports': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/parser': 7.24.6 + '@babel/types': 7.24.6 '@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) @@ -6663,11 +6640,11 @@ packages: peerDependencies: react: ^17.0.0 || ^18.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/core': 7.24.6 + '@babel/helper-module-imports': 7.24.6 + '@babel/helper-plugin-utils': 7.24.6 + '@babel/parser': 7.24.6 + '@babel/types': 7.24.6 '@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) @@ -6692,7 +6669,7 @@ packages: /@pigment-css/unplugin@0.0.10(@types/react@18.2.55)(react@18.2.0): resolution: {integrity: sha512-ypzpEZPIYRDP/BInXWEH6cjVMnHdiCuC1k5qaLaJMIRemWDtWpMt5bpgtIigLsP8BFXdYxoH23RRbzUXuuqc1Q==} dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 '@pigment-css/react': 0.0.10(@types/react@18.2.55)(react@18.2.0) '@wyw-in-js/shared': 0.5.3 '@wyw-in-js/transform': 0.5.3 @@ -6709,8 +6686,8 @@ packages: peerDependencies: vite: ^4.0.0 || ^5.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/preset-typescript': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/preset-typescript': 7.24.6(@babel/core@7.24.6) '@pigment-css/react': 0.0.9(@types/react@18.2.55)(react@18.2.0) '@wyw-in-js/shared': 0.5.3 '@wyw-in-js/transform': 0.5.3 @@ -6913,95 +6890,95 @@ packages: engines: {node: '>=18'} dev: false - /@react-native/babel-plugin-codegen@0.73.4(@babel/preset-env@7.24.5): + /@react-native/babel-plugin-codegen@0.73.4(@babel/preset-env@7.24.6): resolution: {integrity: sha512-XzRd8MJGo4Zc5KsphDHBYJzS1ryOHg8I2gOZDAUCGcwLFhdyGu1zBNDJYH2GFyDrInn9TzAbRIf3d4O+eltXQQ==} engines: {node: '>=18'} dependencies: - '@react-native/codegen': 0.73.3(@babel/preset-env@7.24.5) + '@react-native/codegen': 0.73.3(@babel/preset-env@7.24.6) transitivePeerDependencies: - '@babel/preset-env' - supports-color dev: false - /@react-native/babel-preset@0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.24.5): + /@react-native/babel-preset@0.73.21(@babel/core@7.24.6)(@babel/preset-env@7.24.6): resolution: {integrity: sha512-WlFttNnySKQMeujN09fRmrdWqh46QyJluM5jdtDNrkl/2Hx6N4XeDUGhABvConeK95OidVO7sFFf7sNebVXogA==} engines: {node: '>=18'} peerDependencies: - '@babel/core': ^7.24.5 - dependencies: - '@babel/core': 7.24.5 - '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.24.5) - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.5) - '@babel/plugin-proposal-export-default-from': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.5) - '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.24.5) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.5) - '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.24.5) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.5) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-block-scoping': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-classes': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-destructuring': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.5) - '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-private-property-in-object': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.5) - '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-runtime': 7.24.3(@babel/core@7.24.5) - '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.5) - '@babel/template': 7.24.0 - '@react-native/babel-plugin-codegen': 0.73.4(@babel/preset-env@7.24.5) - babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.24.5) + '@babel/core': ^7.24.6 + dependencies: + '@babel/core': 7.24.6 + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.24.6) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.6) + '@babel/plugin-proposal-export-default-from': 7.24.1(@babel/core@7.24.6) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.6) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.24.6) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.6) + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.24.6) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.6) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.24.6) + '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.6) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.6) + '@babel/plugin-transform-arrow-functions': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-async-to-generator': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-block-scoping': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-classes': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-computed-properties': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-destructuring': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.6) + '@babel/plugin-transform-function-name': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-literals': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-private-methods': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-private-property-in-object': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-react-display-name': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-react-jsx': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.6) + '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.6) + '@babel/plugin-transform-runtime': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-shorthand-properties': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-spread': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-sticky-regex': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-typescript': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-unicode-regex': 7.24.6(@babel/core@7.24.6) + '@babel/template': 7.24.6 + '@react-native/babel-plugin-codegen': 0.73.4(@babel/preset-env@7.24.6) + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.24.6) react-refresh: 0.14.0 transitivePeerDependencies: - '@babel/preset-env' - supports-color dev: false - /@react-native/codegen@0.73.3(@babel/preset-env@7.24.5): + /@react-native/codegen@0.73.3(@babel/preset-env@7.24.6): resolution: {integrity: sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg==} engines: {node: '>=18'} peerDependencies: - '@babel/preset-env': ^7.24.5 + '@babel/preset-env': ^7.24.6 dependencies: - '@babel/parser': 7.24.5 - '@babel/preset-env': 7.24.5(@babel/core@7.24.5) + '@babel/parser': 7.24.6 + '@babel/preset-env': 7.24.6(@babel/core@7.24.6) flow-parser: 0.206.0 glob: 7.2.3 invariant: 2.2.4 - jscodeshift: 0.14.0(@babel/preset-env@7.24.5) + jscodeshift: 0.14.0(@babel/preset-env@7.24.6) 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.5)(@babel/preset-env@7.24.5): + /@react-native/community-cli-plugin@0.73.17(@babel/core@7.24.6)(@babel/preset-env@7.24.6): 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.5)(@babel/preset-env@7.24.5) + '@react-native/metro-babel-transformer': 0.73.15(@babel/core@7.24.6)(@babel/preset-env@7.24.6) chalk: 4.1.2 execa: 5.1.1 metro: 0.80.7 @@ -7055,14 +7032,14 @@ packages: engines: {node: '>=18'} dev: false - /@react-native/metro-babel-transformer@0.73.15(@babel/core@7.24.5)(@babel/preset-env@7.24.5): + /@react-native/metro-babel-transformer@0.73.15(@babel/core@7.24.6)(@babel/preset-env@7.24.6): resolution: {integrity: sha512-LlkSGaXCz+xdxc9819plmpsl4P4gZndoFtpjN3GMBIu6f7TBV0GVbyJAU4GE8fuAWPVSVL5ArOcdkWKSbI1klw==} engines: {node: '>=18'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@react-native/babel-preset': 0.73.21(@babel/core@7.24.5)(@babel/preset-env@7.24.5) + '@babel/core': 7.24.6 + '@react-native/babel-preset': 0.73.21(@babel/core@7.24.6)(@babel/preset-env@7.24.6) hermes-parser: 0.15.0 nullthrows: 1.1.1 transitivePeerDependencies: @@ -7082,7 +7059,7 @@ packages: dependencies: invariant: 2.2.4 nullthrows: 1.1.1 - react-native: 0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(react@18.2.0) + react-native: 0.73.6(@babel/core@7.24.6)(@babel/preset-env@7.24.6)(react@18.2.0) dev: false /@react-spring/animated@9.7.3(react@18.2.0): @@ -7133,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.5)(@babel/preset-env@7.24.5)(react@18.2.0) + react-native: 0.73.6(@babel/core@7.24.6)(@babel/preset-env@7.24.6)(react@18.2.0) dev: false /@react-spring/rafz@9.7.3: @@ -7226,7 +7203,7 @@ packages: react-native: optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@types/react-reconciler': 0.26.7 '@types/webxr': 0.5.14 base64-js: 1.5.1 @@ -7234,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.5)(@babel/preset-env@7.24.5)(react@18.2.0) + react-native: 0.73.6(@babel/core@7.24.6)(@babel/preset-env@7.24.6)(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 @@ -7418,11 +7395,6 @@ packages: /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - /@sindresorhus/is@4.6.0: - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - dev: true - /@sindresorhus/merge-streams@2.2.1: resolution: {integrity: sha512-255V7MMIKw6aQ43Wbqp9HZ+VHn6acddERTLiiLnlcPLU9PdTq9Aijl12oklAgUEblLWye+vHLzmqBx6f2TGcZw==} engines: {node: '>=18'} @@ -7654,19 +7626,12 @@ packages: '@swc/counter': 0.1.3 tslib: 2.6.2 - /@szmarczak/http-timer@4.0.6: - resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} - engines: {node: '>=10'} - dependencies: - defer-to-connect: 2.0.1 - dev: true - /@testing-library/dom@10.1.0: resolution: {integrity: sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA==} engines: {node: '>=18'} dependencies: - '@babel/code-frame': 7.24.2 - '@babel/runtime': 7.24.5 + '@babel/code-frame': 7.24.6 + '@babel/runtime': 7.24.6 '@types/aria-query': 5.0.1 aria-query: 5.3.0 chalk: 4.1.2 @@ -7678,8 +7643,8 @@ packages: resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} engines: {node: '>=14'} dependencies: - '@babel/code-frame': 7.24.2 - '@babel/runtime': 7.24.5 + '@babel/code-frame': 7.24.6 + '@babel/runtime': 7.24.6 '@types/aria-query': 5.0.1 aria-query: 5.1.3 chalk: 4.1.2 @@ -7699,7 +7664,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@testing-library/dom': 10.1.0 '@types/react': 18.2.55 '@types/react-dom': 18.3.0 @@ -7844,30 +7809,30 @@ packages: /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/parser': 7.24.6 + '@babel/types': 7.24.6 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 - '@types/babel__traverse': 7.20.5 + '@types/babel__traverse': 7.20.6 dev: true /@types/babel__generator@7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 dev: true /@types/babel__template@7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/parser': 7.24.6 + '@babel/types': 7.24.6 dev: true - /@types/babel__traverse@7.20.5: - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + /@types/babel__traverse@7.20.6: + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 dev: true /@types/body-parser@1.19.2: @@ -7877,15 +7842,6 @@ packages: '@types/node': 18.19.33 dev: false - /@types/cacheable-request@6.0.2: - resolution: {integrity: sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==} - dependencies: - '@types/http-cache-semantics': 4.0.1 - '@types/keyv': 3.1.4 - '@types/node': 18.19.33 - '@types/responselike': 1.0.0 - dev: true - /@types/chai-dom@1.11.3: resolution: {integrity: sha512-EUEZI7uID4ewzxnU7DJXtyvykhQuwe+etJ1wwOiJyQRTH/ifMWKX+ghiXkxCUvNJ6IQDodf0JXhuP6zZcy2qXQ==} dependencies: @@ -7990,10 +7946,6 @@ packages: resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} dev: true - /@types/http-cache-semantics@4.0.1: - resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} - dev: true - /@types/http-errors@2.0.1: resolution: {integrity: sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==} dev: false @@ -8050,12 +8002,6 @@ packages: '@types/node': 18.19.33 dev: false - /@types/keyv@3.1.4: - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - dependencies: - '@types/node': 18.19.33 - dev: true - /@types/lodash.mergewith@4.6.7: resolution: {integrity: sha512-3m+lkO5CLRRYU0fhGRp7zbsGi6+BZj0uTVSwvcKU+nSlhjA9/QRNfuSGnD2mX6hQA7ZbmcCkzk5h4ZYGOtk14A==} dependencies: @@ -8155,14 +8101,6 @@ packages: '@types/react': 18.2.55 dev: false - /@types/react-swipeable-views-utils@0.13.7: - resolution: {integrity: sha512-ED8pf8dq3S79uWtP8EnSdrg7dUCrxyL9Uapq1dSA2mz+H83SjS8vsqmlFWmmBQoTuEHsQp5Ru9fxxsofQ+bI9Q==} - dependencies: - '@material-ui/types': 4.1.1 - '@types/react': 18.2.55 - '@types/react-swipeable-views': 0.13.5 - dev: true - /@types/react-swipeable-views@0.13.5: resolution: {integrity: sha512-ni6WjO7gBq2xB2Y/ZiRdQOgjGOxIik5ow2s7xKieDq8DxsXTdV46jJslSBVK2yoIJHf6mG3uqNTwxwgzbXRRzg==} dependencies: @@ -8193,12 +8131,6 @@ packages: '@types/scheduler': 0.16.8 csstype: 3.1.3 - /@types/responselike@1.0.0: - resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} - dependencies: - '@types/node': 18.19.33 - dev: true - /@types/retry@0.12.0: resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} dev: false @@ -8433,9 +8365,9 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.6) + '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.6) '@types/babel__core': 7.20.5 react-refresh: 0.14.0 vite: 5.2.11(@types/node@18.19.33) @@ -8572,7 +8504,7 @@ packages: resolution: {integrity: sha512-DATsRHLqq8cWYkTD8iwEmvWzG2UvmsFN6Poru4NJ1RwjxtcEdnNKCKZBaBdlH5XyhL7jRTcURUMyee3lqGljhg==} engines: {node: '>=16.0.0'} dependencies: - '@babel/generator': 7.24.5 + '@babel/generator': 7.24.6 '@wyw-in-js/shared': 0.5.3 transitivePeerDependencies: - supports-color @@ -8591,16 +8523,16 @@ packages: resolution: {integrity: sha512-Bt1Ey8MN88FzYJekvZBYFT69157UmwURj2N7Dy8yauErcxtpuNe/1P0Jxd56tdFz0f6uooat5ntzvWgej/iBZg==} engines: {node: '>=16.0.0'} dependencies: - '@babel/core': 7.24.5 - '@babel/generator': 7.24.5 - '@babel/helper-module-imports': 7.24.3 - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 + '@babel/core': 7.24.6 + '@babel/generator': 7.24.6 + '@babel/helper-module-imports': 7.24.6 + '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.6) + '@babel/template': 7.24.6 + '@babel/traverse': 7.24.6 + '@babel/types': 7.24.6 '@wyw-in-js/processor-utils': 0.5.3 '@wyw-in-js/shared': 0.5.3 - babel-merge: 3.0.0(@babel/core@7.24.5) + babel-merge: 3.0.0(@babel/core@7.24.6) cosmiconfig: 8.2.0 happy-dom: 12.10.3 source-map: 0.7.4 @@ -8746,6 +8678,7 @@ packages: /airbnb-prop-types@2.16.0(react@18.2.0): resolution: {integrity: sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==} + deprecated: This package has been renamed to 'prop-types-tools' peerDependencies: react: ^0.14 || ^15.0.0 || ^16.0.0-alpha dependencies: @@ -9305,34 +9238,34 @@ packages: dequal: 2.0.3 dev: true - /babel-core@7.0.0-bridge.0(@babel/core@7.24.5): + /babel-core@7.0.0-bridge.0(@babel/core@7.24.6): resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 dev: false - /babel-loader@9.1.3(@babel/core@7.24.5)(webpack@5.91.0): + /babel-loader@9.1.3(@babel/core@7.24.6)(webpack@5.91.0): resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} engines: {node: '>= 14.15.0'} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 webpack: '>=5' dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 find-cache-dir: 4.0.0 schema-utils: 4.2.0 webpack: 5.91.0(webpack-cli@5.1.4) dev: true - /babel-merge@3.0.0(@babel/core@7.24.5): + /babel-merge@3.0.0(@babel/core@7.24.6): 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.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 deepmerge: 2.2.1 object.omit: 3.0.0 @@ -9345,7 +9278,7 @@ packages: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} dependencies: - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.6 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.0 @@ -9358,7 +9291,7 @@ packages: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 cosmiconfig: 7.0.1 resolve: 1.22.8 @@ -9374,56 +9307,56 @@ packages: /babel-plugin-optimize-clsx@2.6.2: resolution: {integrity: sha512-TxgyjdVb7trTAsg/J5ByqJdbBPTYR8yaWLGQGpSxwygw8IFST5gEc1J9QktCGCHCb+69t04DWg9KOE0y2hN30w==} dependencies: - '@babel/generator': 7.24.5 - '@babel/template': 7.24.0 - '@babel/types': 7.24.5 + '@babel/generator': 7.24.6 + '@babel/template': 7.24.6 + '@babel/types': 7.24.6 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.5): + /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.6): resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/compat-data': 7.24.4 - '@babel/core': 7.24.5 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.5) + '@babel/compat-data': 7.24.6 + '@babel/core': 7.24.6 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.6) semver: 6.3.1 transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.5): + /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.6): resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.6) core-js-compat: 3.36.1 transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.5): + /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.6): resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.6) 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.5): + /babel-plugin-tester@11.0.4(@babel/core@7.24.6): resolution: {integrity: sha512-cqswtpSPo0e++rZB0l/54EG17LL25l9gLgh59yXfnmNxX+2lZTIOpx2zt4YI9QIClVXc8xf63J6yWwKkzy0jNg==} engines: {node: ^14.20.0 || ^16.16.0 || >=18.5.0} peerDependencies: - '@babel/core': ^7.24.5 + '@babel/core': ^7.24.6 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 core-js: 3.32.1 debug: 4.3.4(supports-color@8.1.1) lodash.mergewith: 4.6.2 @@ -9433,10 +9366,10 @@ packages: - supports-color dev: true - /babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.24.5): + /babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.24.6): resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} dependencies: - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.6) transitivePeerDependencies: - '@babel/core' dev: false @@ -9731,24 +9664,6 @@ packages: unique-filename: 3.0.0 dev: true - /cacheable-lookup@5.0.4: - resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} - engines: {node: '>=10.6.0'} - dev: true - - /cacheable-request@7.0.2: - resolution: {integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==} - engines: {node: '>=8'} - dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 - http-cache-semantics: 4.1.1 - keyv: 4.5.4 - lowercase-keys: 2.0.0 - normalize-url: 6.1.0 - responselike: 2.0.1 - dev: true - /caching-transform@4.0.0: resolution: {integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==} engines: {node: '>=8'} @@ -10151,12 +10066,6 @@ packages: kind-of: 6.0.3 shallow-clone: 3.0.1 - /clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - dependencies: - mimic-response: 1.0.1 - dev: true - /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} @@ -10261,6 +10170,11 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} + /commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} + dev: true + /commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} @@ -10678,7 +10592,7 @@ packages: /css-jss@10.10.0: resolution: {integrity: sha512-YyMIS/LsSKEGXEaVJdjonWe18p4vXLo8CMA4FrW/kcaEyqdIGKCFXao31gbJddXEdIxSXFFURWrenBJPlKTgAA==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 jss: 10.10.0 jss-preset-default: 10.10.0 dev: false @@ -10731,7 +10645,7 @@ packages: /css-vendor@2.0.8: resolution: {integrity: sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 is-in-browser: 1.1.3 dev: false @@ -10859,13 +10773,12 @@ packages: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} dev: true - /danger@11.3.1: - resolution: {integrity: sha512-+slkGnbf0czY7g4LSuYpYkKJgFrb9YIXFJvV5JAuLLF39CXLlUw0iebgeL3ASK1t6RDb8xe+Rk2F5ilh2Hdv2w==} - engines: {node: '>=14.13.1'} + /danger@12.3.0: + resolution: {integrity: sha512-S5vGNCjWfO5VkHnguq+LFfzJWSJdGuzhGxWAv1TtRmJKxNnL2dW/zWM96wPSJ7ZU6ggtHIbR+F8PD3c4NHzuzA==} + engines: {node: '>=18'} hasBin: true dependencies: - '@gitbeaker/core': 35.8.1 - '@gitbeaker/node': 35.8.1 + '@gitbeaker/rest': 38.12.1 '@octokit/rest': 18.12.0 async-retry: 1.2.3 chalk: 2.4.2 @@ -10929,7 +10842,7 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 /date-format@4.0.13: resolution: {integrity: sha512-bnYCwf8Emc3pTD8pXnre+wfnjGtfi5ncMDKy7+cWZXbmRAsdWkOQHrfC1yz/KiwP5thDp2kCHWYWKBX4HP1hoQ==} @@ -11005,18 +10918,6 @@ packages: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} dev: false - /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==} - engines: {node: '>=10'} - dependencies: - mimic-response: 3.1.0 - dev: true - /dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} dev: true @@ -11081,11 +10982,6 @@ packages: dependencies: clone: 1.0.4 - /defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - dev: true - /define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -11113,11 +11009,6 @@ packages: robust-predicates: 3.0.2 dev: false - /delay@5.0.0: - resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} - engines: {node: '>=10'} - dev: true - /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -11238,7 +11129,7 @@ packages: /dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 csstype: 3.1.3 dev: false @@ -11905,7 +11796,7 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 aria-query: 5.3.0 array-includes: 3.1.7 array.prototype.flatmap: 1.3.2 @@ -12105,8 +11996,8 @@ packages: resolution: {integrity: sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg==} engines: {node: '>=8.3.0'} dependencies: - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 + '@babel/traverse': 7.24.6 + '@babel/types': 7.24.6 c8: 7.12.0 transitivePeerDependencies: - supports-color @@ -12394,16 +12285,11 @@ packages: dependencies: to-regex-range: 5.0.1 - /filter-obj@1.1.0: - resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} - engines: {node: '>=0.10.0'} - dev: true - /final-form@4.20.10: resolution: {integrity: sha512-TL48Pi1oNHeMOHrKv1bCJUrWZDcD3DIG6AGYVNOnyZPr7Bd/pStN0pL+lfzF5BNoj/FclaoiaLenk4XUIFVYng==} engines: {node: '>=8'} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 dev: false /finalhandler@1.1.2: @@ -12810,13 +12696,6 @@ packages: engines: {node: '>=10'} dev: false - /get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - dependencies: - pump: 3.0.0 - dev: true - /get-stream@6.0.0: resolution: {integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==} engines: {node: '>=10'} @@ -12929,6 +12808,7 @@ packages: /glob@7.1.6: resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -12939,6 +12819,7 @@ packages: /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -12950,6 +12831,7 @@ packages: /glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -13092,23 +12974,6 @@ packages: dependencies: get-intrinsic: 1.2.4 - /got@11.8.5: - resolution: {integrity: sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==} - engines: {node: '>=10.19.0'} - dependencies: - '@sindresorhus/is': 4.6.0 - '@szmarczak/http-timer': 4.0.6 - '@types/cacheable-request': 6.0.2 - '@types/responselike': 1.0.0 - cacheable-lookup: 5.0.4 - cacheable-request: 7.0.2 - decompress-response: 6.0.0 - http2-wrapper: 1.0.3 - lowercase-keys: 2.0.0 - p-cancelable: 2.1.1 - responselike: 2.0.1 - dev: true - /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -13434,14 +13299,6 @@ packages: - debug dev: true - /http2-wrapper@1.0.3: - resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} - engines: {node: '>=10.19.0'} - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - dev: true - /https-proxy-agent@2.2.4: resolution: {integrity: sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==} engines: {node: '>= 4.5.0'} @@ -13541,8 +13398,8 @@ packages: queue: 6.0.2 dev: false - /imask@7.6.0: - resolution: {integrity: sha512-6EHsq1q7v5+M4Vas2MGrs2oRpxPRWPwPDiL0HmG1ikBI/0hOwvkxRhVRFQnWIlZcTG7R8iw0az5V+z868qnQ9A==} + /imask@7.6.1: + resolution: {integrity: sha512-sJlIFM7eathUEMChTh9Mrfw/IgiWgJqBKq2VNbyXvBZ7ev/IlO6/KQTKlV/Fm+viQMLrFLG/zCuudrLIwgK2dg==} engines: {npm: '>=4.0.0'} dependencies: '@babel/runtime-corejs3': 7.24.4 @@ -14064,7 +13921,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 @@ -14076,8 +13933,8 @@ packages: resolution: {integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.24.5 - '@babel/parser': 7.24.5 + '@babel/core': 7.24.6 + '@babel/parser': 7.24.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 @@ -14215,7 +14072,7 @@ packages: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.6 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -14326,8 +14183,8 @@ packages: peerDependencies: jscodeshift: ^0.7.0 || ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 dependencies: - '@babel/traverse': 7.24.5 - jscodeshift: 0.15.2(@babel/preset-env@7.24.5) + '@babel/traverse': 7.24.6 + jscodeshift: 0.15.2(@babel/preset-env@7.24.6) jscodeshift-find-imports: 2.0.4(jscodeshift@0.15.2) transitivePeerDependencies: - supports-color @@ -14338,26 +14195,26 @@ packages: peerDependencies: jscodeshift: ^0.7.0 || ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 dependencies: - jscodeshift: 0.15.2(@babel/preset-env@7.24.5) + jscodeshift: 0.15.2(@babel/preset-env@7.24.6) dev: false - /jscodeshift@0.14.0(@babel/preset-env@7.24.5): + /jscodeshift@0.14.0(@babel/preset-env@7.24.6): resolution: {integrity: sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==} hasBin: true peerDependencies: - '@babel/preset-env': ^7.24.5 - dependencies: - '@babel/core': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.5) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.5) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.5) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) - '@babel/preset-env': 7.24.5(@babel/core@7.24.5) - '@babel/preset-flow': 7.24.1(@babel/core@7.24.5) - '@babel/preset-typescript': 7.24.1(@babel/core@7.24.5) - '@babel/register': 7.23.7(@babel/core@7.24.5) - babel-core: 7.0.0-bridge.0(@babel/core@7.24.5) + '@babel/preset-env': ^7.24.6 + dependencies: + '@babel/core': 7.24.6 + '@babel/parser': 7.24.6 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.6) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.6) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.6) + '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.6) + '@babel/preset-env': 7.24.6(@babel/core@7.24.6) + '@babel/preset-flow': 7.24.1(@babel/core@7.24.6) + '@babel/preset-typescript': 7.24.6(@babel/core@7.24.6) + '@babel/register': 7.24.6(@babel/core@7.24.6) + babel-core: 7.0.0-bridge.0(@babel/core@7.24.6) chalk: 4.1.2 flow-parser: 0.206.0 graceful-fs: 4.2.11 @@ -14371,27 +14228,27 @@ packages: - supports-color dev: false - /jscodeshift@0.15.2(@babel/preset-env@7.24.5): + /jscodeshift@0.15.2(@babel/preset-env@7.24.6): resolution: {integrity: sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==} hasBin: true peerDependencies: - '@babel/preset-env': ^7.24.5 + '@babel/preset-env': ^7.24.6 peerDependenciesMeta: '@babel/preset-env': optional: true dependencies: - '@babel/core': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5) - '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.5) - '@babel/preset-env': 7.24.5(@babel/core@7.24.5) - '@babel/preset-flow': 7.24.1(@babel/core@7.24.5) - '@babel/preset-typescript': 7.24.1(@babel/core@7.24.5) - '@babel/register': 7.23.7(@babel/core@7.24.5) - babel-core: 7.0.0-bridge.0(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/parser': 7.24.6 + '@babel/plugin-transform-class-properties': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-optional-chaining': 7.24.6(@babel/core@7.24.6) + '@babel/plugin-transform-private-methods': 7.24.6(@babel/core@7.24.6) + '@babel/preset-env': 7.24.6(@babel/core@7.24.6) + '@babel/preset-flow': 7.24.1(@babel/core@7.24.6) + '@babel/preset-typescript': 7.24.6(@babel/core@7.24.6) + '@babel/register': 7.24.6(@babel/core@7.24.6) + babel-core: 7.0.0-bridge.0(@babel/core@7.24.6) chalk: 4.1.2 flow-parser: 0.206.0 graceful-fs: 4.2.11 @@ -14546,7 +14403,7 @@ packages: /jss-plugin-camel-case@10.10.0: resolution: {integrity: sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 hyphenate-style-name: 1.0.4 jss: 10.10.0 dev: false @@ -14554,7 +14411,7 @@ packages: /jss-plugin-compose@10.10.0: resolution: {integrity: sha512-F5kgtWpI2XfZ3Z8eP78tZEYFdgTIbpA/TMuX3a8vwrNolYtN1N4qJR/Ob0LAsqIwCMLojtxN7c7Oo/+Vz6THow==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 jss: 10.10.0 tiny-warning: 1.0.3 dev: false @@ -14562,21 +14419,21 @@ packages: /jss-plugin-default-unit@10.10.0: resolution: {integrity: sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 jss: 10.10.0 dev: false /jss-plugin-expand@10.10.0: resolution: {integrity: sha512-ymT62W2OyDxBxr7A6JR87vVX9vTq2ep5jZLIdUSusfBIEENLdkkc0lL/Xaq8W9s3opUq7R0sZQpzRWELrfVYzA==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 jss: 10.10.0 dev: false /jss-plugin-extend@10.10.0: resolution: {integrity: sha512-sKYrcMfr4xxigmIwqTjxNcHwXJIfvhvjTNxF+Tbc1NmNdyspGW47Ey6sGH8BcQ4FFQhLXctpWCQSpDwdNmXSwg==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 jss: 10.10.0 tiny-warning: 1.0.3 dev: false @@ -14584,14 +14441,14 @@ packages: /jss-plugin-global@10.10.0: resolution: {integrity: sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 jss: 10.10.0 dev: false /jss-plugin-nested@10.10.0: resolution: {integrity: sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 jss: 10.10.0 tiny-warning: 1.0.3 dev: false @@ -14599,14 +14456,14 @@ packages: /jss-plugin-props-sort@10.10.0: resolution: {integrity: sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 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.5 + '@babel/runtime': 7.24.6 jss: 10.10.0 tiny-warning: 1.0.3 dev: false @@ -14614,7 +14471,7 @@ packages: /jss-plugin-rule-value-observable@10.10.0: resolution: {integrity: sha512-ZLMaYrR3QE+vD7nl3oNXuj79VZl9Kp8/u6A1IbTPDcuOu8b56cFdWRZNZ0vNr8jHewooEeq2doy8Oxtymr2ZPA==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 jss: 10.10.0 symbol-observable: 1.2.0 dev: false @@ -14622,7 +14479,7 @@ packages: /jss-plugin-template@10.10.0: resolution: {integrity: sha512-ocXZBIOJOA+jISPdsgkTs8wwpK6UbsvtZK5JI7VUggTD6LWKbtoxUzadd2TpfF+lEtlhUmMsCkTRNkITdPKa6w==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 jss: 10.10.0 tiny-warning: 1.0.3 dev: false @@ -14630,7 +14487,7 @@ packages: /jss-plugin-vendor-prefixer@10.10.0: resolution: {integrity: sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 css-vendor: 2.0.8 jss: 10.10.0 dev: false @@ -14638,7 +14495,7 @@ packages: /jss-preset-default@10.10.0: resolution: {integrity: sha512-GL175Wt2FGhjE+f+Y3aWh+JioL06/QWFgZp53CbNNq6ZkVU0TDplD8Bxm9KnkotAYn3FlplNqoW5CjyLXcoJ7Q==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 jss: 10.10.0 jss-plugin-camel-case: 10.10.0 jss-plugin-compose: 10.10.0 @@ -14666,7 +14523,7 @@ packages: /jss@10.10.0: resolution: {integrity: sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 csstype: 3.1.3 is-in-browser: 1.1.3 tiny-warning: 1.0.3 @@ -14967,10 +14824,6 @@ packages: type-check: 0.4.0 dev: true - /li@1.3.0: - resolution: {integrity: sha512-z34TU6GlMram52Tss5mt1m//ifRIpKH5Dqm7yUVOdHI+BQCs9qGPHFaCUTIzsWX7edN30aa2WrPwR7IO10FHaw==} - dev: true - /libnpmaccess@7.0.2: resolution: {integrity: sha512-vHBVMw1JFMTgEk15zRsJuSAg7QtGGHpUSEfnbcRL1/gTBag9iEfJbyjpDmdJmwMhvpoLoNBtdAUCdGnaP32hhw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -15277,11 +15130,6 @@ packages: tslib: 2.6.2 dev: true - /lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - dev: true - /lru-cache@10.1.0: resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} engines: {node: 14 || >=16.14} @@ -15458,14 +15306,14 @@ packages: resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} dev: false - /material-ui-popup-state@5.1.1(@mui/material@packages+mui-material+build)(react@18.2.0): - resolution: {integrity: sha512-6HbWnQ8hEcx8SVTRd0E29YLBIK0n8/ECBxPtkyYFF7+vG7ACSW/fvCr13JmsTTPdCDLKaY3U7b7cvh08cwISZw==} + /material-ui-popup-state@5.1.2(@mui/material@packages+mui-material+build)(react@18.2.0): + resolution: {integrity: sha512-+MPpydg2a/NqSbF4vNKbsHeEktiH6j0OPtNud0ZbhElKRc915XdyNH3Z7N+lL/l1erHcsCHB85izHC+zc6GgmQ==} engines: {node: '>=16'} peerDependencies: '@mui/material': ^5.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@mui/material': link:packages/mui-material/build '@types/prop-types': 15.7.12 '@types/react': 18.2.55 @@ -15597,7 +15445,7 @@ packages: resolution: {integrity: sha512-b773yA16DsDQiM4OOzCsr1gwEd+iio9au98o3bj7F/bxVyoz1LuYox06BIdsiLL1o4kV5VtzTu3UXSJ2X0ZGXg==} engines: {node: '>=18'} dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 hermes-parser: 0.20.1 nullthrows: 1.1.1 transitivePeerDependencies: @@ -15679,15 +15527,15 @@ packages: resolution: {integrity: sha512-gWqzfm9YQw9I08L23hcLmY7XNx48W0c0vLEkVEF5P7ZNIOSfX9CkEv0JvTTJWshRYkbgIqsdtpMAHq13LJJ6iA==} engines: {node: '>=18'} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 dev: false /metro-source-map@0.80.7: resolution: {integrity: sha512-6a1m/51ekkAl+ISNBcKQUXTU+AldbbPUHDE3DDDU17Y0HNoovkQR23DB/uH/SzUHQszYxK1fnwUTSxpzOjx+pw==} engines: {node: '>=18'} dependencies: - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 + '@babel/traverse': 7.24.6 + '@babel/types': 7.24.6 invariant: 2.2.4 metro-symbolicate: 0.80.7 nullthrows: 1.1.1 @@ -15717,10 +15565,10 @@ packages: resolution: {integrity: sha512-ENGvQF7wZCtn2rO6jwsYy3XRSPrlm0G/1TgDC8AXdvz0yjfAe1ODSCYWxP8S3JXfjKL5m3b6j9RsV8sQIxsUjQ==} engines: {node: '>=18'} dependencies: - '@babel/core': 7.24.5 - '@babel/generator': 7.24.5 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.5 + '@babel/core': 7.24.6 + '@babel/generator': 7.24.6 + '@babel/template': 7.24.6 + '@babel/traverse': 7.24.6 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color @@ -15730,10 +15578,10 @@ packages: resolution: {integrity: sha512-QcgKpx3WZo71jTtXMEeeFuGpA+nG8YuWjxPTIsIYTjgDxcArS8zDDRzS18mmYkP65yyzH4dT94B1FJH9+flRag==} engines: {node: '>=18'} dependencies: - '@babel/core': 7.24.5 - '@babel/generator': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/core': 7.24.6 + '@babel/generator': 7.24.6 + '@babel/parser': 7.24.6 + '@babel/types': 7.24.6 metro: 0.80.7 metro-babel-transformer: 0.80.7 metro-cache: 0.80.7 @@ -15754,13 +15602,13 @@ packages: engines: {node: '>=18'} hasBin: true dependencies: - '@babel/code-frame': 7.24.2 - '@babel/core': 7.24.5 - '@babel/generator': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 + '@babel/code-frame': 7.24.6 + '@babel/core': 7.24.6 + '@babel/generator': 7.24.6 + '@babel/parser': 7.24.6 + '@babel/template': 7.24.6 + '@babel/traverse': 7.24.6 + '@babel/types': 7.24.6 accepts: 1.3.8 chalk: 4.1.2 ci-info: 2.0.0 @@ -15851,12 +15699,6 @@ packages: engines: {node: '>=4.0.0'} hasBin: true - /mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true - dev: true - /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -15866,16 +15708,6 @@ packages: engines: {node: '>=12'} dev: false - /mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - dev: true - - /mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - dev: true - /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -16155,7 +15987,7 @@ packages: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} dev: true - /next@13.5.1(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0): + /next@13.5.1(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(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 @@ -16178,7 +16010,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.5)(babel-plugin-macros@3.1.0)(react@18.2.0) + styled-jsx: 5.1.1(@babel/core@7.24.6)(babel-plugin-macros@3.1.0)(react@18.2.0) watchpack: 2.4.0 zod: 3.21.4 optionalDependencies: @@ -16195,7 +16027,7 @@ packages: - '@babel/core' - babel-plugin-macros - /next@14.2.3(@babel/core@7.24.5)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0): + /next@14.2.3(@babel/core@7.24.6)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.0)(babel-plugin-macros@3.1.0)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==} engines: {node: '>=18.17.0'} hasBin: true @@ -16223,7 +16055,7 @@ packages: 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.5)(babel-plugin-macros@3.1.0)(react@18.2.0) + styled-jsx: 5.1.1(@babel/core@7.24.6)(babel-plugin-macros@3.1.0)(react@18.2.0) optionalDependencies: '@next/swc-darwin-arm64': 14.2.3 '@next/swc-darwin-x64': 14.2.3 @@ -16425,11 +16257,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - dev: true - /notistack@3.0.1(csstype@3.1.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-ntVZXXgSQH5WYfyU+3HfcXuKaapzAJ8fBLQ/G618rn3yvSzEbnOB8ZSOwhX+dAORy/lw+GC2N061JA0+gYWTVA==} engines: {node: '>=12.0.0', npm: '>=6.0.0'} @@ -16920,11 +16747,6 @@ packages: engines: {node: '>=6'} dev: false - /p-cancelable@2.1.1: - resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} - engines: {node: '>=8'} - dev: true - /p-event@5.0.1: resolution: {integrity: sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -17194,7 +17016,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.6 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -17381,8 +17203,8 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} - /piscina@4.4.0: - resolution: {integrity: sha512-+AQduEJefrOApE4bV7KRmp3N2JnnyErlVqq4P/jmko4FPz9Z877BCccl/iB3FdrWSUkvbGV9Kan/KllJgat3Vg==} + /piscina@4.5.1: + resolution: {integrity: sha512-DVhySLPfqAW+uRH9dF0bjA2xEWr5ANLAzkYXx5adSLMFnwssSIVJYhg0FlvgYsnT/khILQJ3WkjqbAlBvt+maw==} optionalDependencies: nice-napi: 1.0.2 dev: true @@ -17881,16 +17703,6 @@ packages: dependencies: side-channel: 1.0.6 - /query-string@7.1.3: - resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} - engines: {node: '>=6'} - dependencies: - decode-uri-component: 0.2.2 - filter-obj: 1.1.0 - split-on-first: 1.1.0 - strict-uri-encode: 2.0.0 - dev: true - /querystring@0.2.0: resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} engines: {node: '>=0.4.x'} @@ -17990,9 +17802,9 @@ packages: engines: {node: '>=8.10.0'} hasBin: true dependencies: - '@babel/core': 7.24.5 - '@babel/generator': 7.24.5 - '@babel/runtime': 7.24.5 + '@babel/core': 7.24.6 + '@babel/generator': 7.24.6 + '@babel/runtime': 7.24.6 ast-types: 0.14.2 commander: 2.20.3 doctrine: 3.0.0 @@ -18030,7 +17842,7 @@ packages: peerDependencies: react: '>=16.13.1' dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 react: 18.2.0 dev: false @@ -18039,7 +17851,7 @@ packages: peerDependencies: react: ^16.3.0 dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 prop-types: 15.8.1 react: 18.2.0 warning: 4.0.3 @@ -18055,18 +17867,18 @@ packages: final-form: ^4.20.4 react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 final-form: 4.20.10 react: 18.2.0 dev: false - /react-imask@7.6.0(react@18.2.0): - resolution: {integrity: sha512-SilPct67Xw4TN+dqn3SM4BVpy+FwNSeT0wblA/DXQ3El2KPBEWwrn4x3gQ39ZohFAphp7yG7w6gSKq5SeR/6Kg==} + /react-imask@7.6.1(react@18.2.0): + resolution: {integrity: sha512-vLNfzcCz62Yzx/GRGh5tiCph9Gbh2cZu+Tz8OiO5it2eNuuhpA0DWhhSlOtVtSJ80+Bx+vFK5De8eQ9AmbkXzA==} engines: {npm: '>=4.0.0'} peerDependencies: react: '>=0.14.0' dependencies: - imask: 7.6.0 + imask: 7.6.1 prop-types: 15.8.1 react: 18.2.0 dev: false @@ -18098,7 +17910,7 @@ packages: peerDependencies: react: '>=16.8.6' dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@emotion/is-prop-valid': 0.7.3 css-jss: 10.10.0 hoist-non-react-statics: 3.3.2 @@ -18128,7 +17940,7 @@ packages: scheduler: 0.23.0 dev: false - /react-native@0.73.6(@babel/core@7.24.5)(@babel/preset-env@7.24.5)(react@18.2.0): + /react-native@0.73.6(@babel/core@7.24.6)(@babel/preset-env@7.24.6)(react@18.2.0): resolution: {integrity: sha512-oqmZe8D2/VolIzSPZw+oUd6j/bEmeRHwsLn1xLA5wllEYsZ5zNuMsDus235ONOnCRwexqof/J3aztyQswSmiaA==} engines: {node: '>=18'} hasBin: true @@ -18140,8 +17952,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.5) - '@react-native/community-cli-plugin': 0.73.17(@babel/core@7.24.5)(@babel/preset-env@7.24.5) + '@react-native/codegen': 0.73.3(@babel/preset-env@7.24.6) + '@react-native/community-cli-plugin': 0.73.17(@babel/core@7.24.6)(@babel/preset-env@7.24.6) '@react-native/gradle-plugin': 0.73.4 '@react-native/js-polyfills': 0.73.1 '@react-native/normalize-colors': 0.73.2 @@ -18236,7 +18048,7 @@ packages: redux: optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 '@types/hoist-non-react-statics': 3.3.5 '@types/react': 18.2.55 '@types/use-sync-external-store': 0.0.3 @@ -18331,7 +18143,7 @@ packages: resolution: {integrity: sha512-0W/e9uPweNEOSPjmYtuKSC/SvKKg1sfo+WtPdnxeLF3t2L82h7jjszuOHz9C23fzkvLfdgkaOmcbAxE9w2GEjA==} engines: {node: '>=6.0.0'} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 warning: 4.0.3 dev: false @@ -18339,7 +18151,7 @@ packages: resolution: {integrity: sha512-W+fXBOsDqgFK1/g7MzRMVcDurp3LqO3ksC8UgInh2P/tKgb5DusuuB1geKHFc6o1wKl+4oyER4Zh3Lxmr8xbXA==} engines: {node: '>=6.0.0'} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 keycode: 2.2.1 prop-types: 15.8.1 react-event-listener: 0.6.6(react@18.2.0) @@ -18355,7 +18167,7 @@ packages: peerDependencies: react: ^15.3.0 || ^16.0.0 || ^17.0.0 dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 prop-types: 15.8.1 react: 18.2.0 react-swipeable-views-core: 0.14.0 @@ -18379,7 +18191,7 @@ packages: react: '>=16.6.0' react-dom: '>=16.6.0' dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -18416,7 +18228,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.5 + '@babel/runtime': 7.24.6 memoize-one: 5.2.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -18650,7 +18462,7 @@ packages: /redux@4.2.1: resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 dev: false /reflect.getprototypeof@1.0.4: @@ -18686,7 +18498,7 @@ packages: /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 /regexp.prototype.flags@1.5.2: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} @@ -18805,10 +18617,6 @@ packages: resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} dev: false - /resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - dev: true - /resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} @@ -18849,12 +18657,6 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /responselike@2.0.1: - resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} - dependencies: - lowercase-keys: 2.0.0 - dev: true - /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -18886,6 +18688,7 @@ packages: /rimraf@2.5.4: resolution: {integrity: sha512-Lw7SHMjssciQb/rRz7JyPIy9+bbUshEucPoLRvWqy09vC5zQixl8Uet+Zl+SROBB/JMWHJRdCk1qdxNWHNMvlQ==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 @@ -18893,6 +18696,7 @@ packages: /rimraf@2.6.3: resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 @@ -18900,12 +18704,14 @@ packages: /rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 @@ -18965,7 +18771,7 @@ packages: /rtl-css-js@1.16.0: resolution: {integrity: sha512-Oc7PnzwIEU4M0K1J4h/7qUUaljXhQ0kCObRsZjxs2HjkpKsnoTMvSmvJ4sqgJZd0zBoEfAyTdnK/jMIYvrjySQ==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.6 dev: false /run-async@2.4.1: @@ -19533,11 +19339,6 @@ packages: resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} dev: true - /split-on-first@1.1.0: - resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} - engines: {node: '>=6'} - dev: true - /split2@3.2.2: resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} dependencies: @@ -19630,11 +19431,6 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} - /strict-uri-encode@2.0.0: - resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} - engines: {node: '>=4'} - dev: true - /string-convert@0.2.1: resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} dev: false @@ -19802,7 +19598,7 @@ packages: stylis: 4.3.2 tslib: 2.6.2 - /styled-jsx@5.1.1(@babel/core@7.24.5)(babel-plugin-macros@3.1.0)(react@18.2.0): + /styled-jsx@5.1.1(@babel/core@7.24.6)(babel-plugin-macros@3.1.0)(react@18.2.0): resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} engines: {node: '>= 12.0.0'} peerDependencies: @@ -19815,7 +19611,7 @@ packages: babel-plugin-macros: optional: true dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.6 babel-plugin-macros: 3.1.0 client-only: 0.0.1 react: 18.2.0 @@ -19860,8 +19656,8 @@ packages: /stylelint-processor-styled-components@1.10.0: resolution: {integrity: sha512-g4HpN9rm0JD0LoHuIOcd/FIjTZCJ0ErQ+dC3VTxp+dSvnkV+MklKCCmCQEdz5K5WxF4vPuzfVgdbSDuPYGZhoA==} dependencies: - '@babel/parser': 7.24.5 - '@babel/traverse': 7.24.5 + '@babel/parser': 7.24.6 + '@babel/traverse': 7.24.6 micromatch: 4.0.5 postcss: 7.0.39 transitivePeerDependencies: diff --git a/test/package.json b/test/package.json index bb29dfcb09c768..04a7aa489a8e22 100644 --- a/test/package.json +++ b/test/package.json @@ -6,7 +6,7 @@ "typescript": "tsc -p tsconfig.json" }, "devDependencies": { - "@babel/runtime": "^7.24.5", + "@babel/runtime": "^7.24.6", "@emotion/cache": "^11.11.0", "@emotion/react": "^11.11.4", "@mui-internal/test-utils": "workspace:^", diff --git a/test/regressions/fixtures/CssBaseline/MaterialCssBaseline.js b/test/regressions/fixtures/CssBaseline/MaterialCssBaseline.js index 56e5b874851d5c..b3499bbb778fd0 100644 --- a/test/regressions/fixtures/CssBaseline/MaterialCssBaseline.js +++ b/test/regressions/fixtures/CssBaseline/MaterialCssBaseline.js @@ -1,5 +1,5 @@ import * as React from 'react'; -import { Experimental_CssVarsProvider as CssVarsProvider } from '@mui/material/styles'; +import { CssVarsProvider } from '@mui/material/styles'; import Box from '@mui/material/Box'; import CssBaseline from '@mui/material/CssBaseline'; diff --git a/test/regressions/fixtures/CssBaseline/MaterialScopedCssBaseline.js b/test/regressions/fixtures/CssBaseline/MaterialScopedCssBaseline.js index 00aed3b0ec229d..091edca632f6bf 100644 --- a/test/regressions/fixtures/CssBaseline/MaterialScopedCssBaseline.js +++ b/test/regressions/fixtures/CssBaseline/MaterialScopedCssBaseline.js @@ -1,9 +1,5 @@ import * as React from 'react'; -import { - Experimental_CssVarsProvider as CssVarsProvider, - experimental_extendTheme as extendTheme, - createTheme, -} from '@mui/material/styles'; +import { CssVarsProvider, extendTheme, createTheme } from '@mui/material/styles'; import { cyan } from '@mui/material/colors'; import Box from '@mui/material/Box'; import ScopedCssBaseline from '@mui/material/ScopedCssBaseline'; diff --git a/test/regressions/fixtures/CssVarsProvider/MaterialUIDefaultDark.js b/test/regressions/fixtures/CssVarsProvider/MaterialUIDefaultDark.js index c8b6477f284bb9..4c88391e43a56f 100644 --- a/test/regressions/fixtures/CssVarsProvider/MaterialUIDefaultDark.js +++ b/test/regressions/fixtures/CssVarsProvider/MaterialUIDefaultDark.js @@ -1,5 +1,5 @@ import * as React from 'react'; -import { Experimental_CssVarsProvider as CssVarsProvider } from '@mui/material/styles'; +import { CssVarsProvider } from '@mui/material/styles'; import AppBar from '@mui/material/AppBar'; import Box from '@mui/material/Box'; import Paper from '@mui/material/Paper'; diff --git a/test/regressions/fixtures/CssVarsProvider/MaterialUIDefaultDarkToLight.js b/test/regressions/fixtures/CssVarsProvider/MaterialUIDefaultDarkToLight.js index 5a881a2bac0bf5..48e4f603314c4b 100644 --- a/test/regressions/fixtures/CssVarsProvider/MaterialUIDefaultDarkToLight.js +++ b/test/regressions/fixtures/CssVarsProvider/MaterialUIDefaultDarkToLight.js @@ -1,8 +1,5 @@ import * as React from 'react'; -import { - Experimental_CssVarsProvider as CssVarsProvider, - useColorScheme, -} from '@mui/material/styles'; +import { CssVarsProvider, useColorScheme } from '@mui/material/styles'; import AppBar from '@mui/material/AppBar'; import Box from '@mui/material/Box'; import Paper from '@mui/material/Paper';